bigquery-analyst/SKILL.md
Expert BigQuery data analysis using MCP tools. Perform schema discovery, data profiling, distribution analysis, anomaly detection, time series exploration, data quality assessment, and ad-hoc analytical queries against any BigQuery dataset. Use when the user asks to analyze, explore, profile, investigate, or query data in BigQuery, or asks questions that can be answered by querying a BigQuery dataset (e.g., 'how many users signed up last week?', 'show me the distribution of order values', 'find anomalies in the revenue data', 'what does the customers table look like?').
npx skillsauth add jswortz/my-skills bigquery-analystInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Expert analysis workflow for any BigQuery dataset using MCP tools.
| Tool | Purpose |
|------|---------|
| mcp__bigquery__list_dataset_ids | List all datasets in a project |
| mcp__bigquery__list_table_ids | List tables/views in a dataset |
| mcp__bigquery__get_dataset_info | Get dataset metadata |
| mcp__bigquery__get_table_info | Get table schema, row count, size |
| mcp__bigquery__execute_sql | Run SQL queries (read-only preferred) |
| mcp__bigquery__search_catalog | Search Data Catalog for tables by keyword |
| mcp__bigquery__ask_data_insights | AI-driven insights on a table |
| mcp__bigquery__forecast | Time series forecasting |
| mcp__bigquery__analyze_contribution | Contribution/driver analysis |
Follow this sequence, skipping steps when the user's intent is clear:
Discover what data exists. If the user specifies a table, skip to step 2.
list_dataset_ids to find datasetslist_table_ids on relevant datasetssearch_catalog if looking for a topic (e.g., "revenue", "users")Before writing any query, get the schema first:
get_table_info on target tables — note column names, types, partitioning, row countRun targeted profiling queries to understand the data shape. See references/analysis-patterns.md section "Data Profiling" for templates. Key checks:
Execute the analysis matching the user's question. Use references/analysis-patterns.md for SQL templates:
| User intent | Pattern to use |
|---|---|
| "What does X look like?" | Data Profiling, Distribution Analysis |
| "Find outliers / anomalies" | Anomaly Detection (z-score or IQR) |
| "Show me the trend" | Time Series Exploration |
| "Compare periods" | Period-over-Period Comparison |
| "Are there data quality issues?" | Data Quality Assessment |
| "How does X relate to Y?" | Correlation, Segmented Analysis |
| "What drives X?" | analyze_contribution tool, Segmented Analysis |
| "Predict / forecast X" | forecast tool |
| "Find Black Swan insights" | Exogenous Data Hybridization (GDELT & Google Trends) |
| General questions about the data | ask_data_insights tool, then targeted SQL |
To prevent analytical agents from converging on local optima or purely operational explanations, cross-reference internal enterprise metrics against external public datasets:
gdelt-bq.gdeltv2 for global events & material conflict signals.bigquery-public-data.google_trends for shifts in public search interest.Hybridize internal 1P data with these 3P datasets to generate novel "Black Swan" insights that standalone internal data cannot reveal.
project.dataset.tableLIMIT on exploratory queries (start with 1000, adjust as needed)APPROX_QUANTILES and APPROX_COUNT_DISTINCT for large tablesSAFE_DIVIDE to avoid division-by-zero errorsROUND(), FORMAT() as appropriateSELECT * LIMIT 5 firstReusable SQL templates for all analysis types are in references/analysis-patterns.md. Consult this file for:
research
Constant-Time Analyzer (ct-analyzer)
testing
--- name: condition-based-waiting description: -- name: Condition-Based Waiting description: Replace arbitrary timeouts with condition polling for reliable async tests when_to_use: when tests have ... --- -- name: Condition-Based Waiting description: Replace arbitrary timeouts with condition polling for reliable async tests when_to_use: when tests have race conditions, timing dependencies, or inconsistent pass/fail behavior version: 1.1.0 languages: all --- # Condition-Based Waiting ## Overvi
testing
--- name: collision-zone-thinking description: -- name: Collision-Zone Thinking description: Force unrelated concepts together to discover emergent properties - "What if we treated X like Y?" when_... --- -- name: Collision-Zone Thinking description: Force unrelated concepts together to discover emergent properties - "What if we treated X like Y?" when_to_use: when conventional approaches feel inadequate and you need breakthrough innovation by forcing unrelated concepts together version: 1.1.0
documentation
--- name: canvas-design description: -- name: canvas-design description: Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the... --- -- name: canvas-design description: Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid