Analytics Engineer
borghei/Claude-Skills
Analytics engineering across data modeling, dbt, transformation, and semantic layers.
Writes and executes SQL queries against the data warehouse using dbt's Semantic Layer or ad-hoc SQL to answer business questions.
$ npx skills add Kilo-Org/kilo-marketplace --skill answering-natural-language-questions-with-dbt -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Kilo-Org/kilo-marketplace answering-natural-language-questions-with-dbt --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Kilo-Org/kilo-marketplace.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/dbt/skills/answering-natural-language-questions-with-dbt .claude/skills/answering-natural-language-questions-with-dbt && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "answering-natural-language-questions-with-dbt" agent skill from https://github.com/Kilo-Org/kilo-marketplace/tree/main/skills/dbt/skills/answering-natural-language-questions-with-dbt into .claude/skills/answering-natural-language-questions-with-dbt/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "answering-natural-language-questions-with-dbt", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Kilo-Org/kilo-marketplace/tree/main/skills/dbt/skills/answering-natural-language-questions-with-dbtType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Kilo-Org/kilo-marketplace --skill answering-natural-language-questions-with-dbt -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Kilo-Org/kilo-marketplace answering-natural-language-questions-with-dbt --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Kilo-Org/kilo-marketplace.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/dbt/skills/answering-natural-language-questions-with-dbt .agents/skills/answering-natural-language-questions-with-dbt && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "answering-natural-language-questions-with-dbt" agent skill from https://github.com/Kilo-Org/kilo-marketplace/tree/main/skills/dbt/skills/answering-natural-language-questions-with-dbt into .agents/skills/answering-natural-language-questions-with-dbt/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "answering-natural-language-questions-with-dbt", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Kilo-Org/kilo-marketplace --skill answering-natural-language-questions-with-dbt -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Kilo-Org/kilo-marketplace answering-natural-language-questions-with-dbt --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Kilo-Org/kilo-marketplace.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/dbt/skills/answering-natural-language-questions-with-dbt .cursor/skills/answering-natural-language-questions-with-dbt && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "answering-natural-language-questions-with-dbt" agent skill from https://github.com/Kilo-Org/kilo-marketplace/tree/main/skills/dbt/skills/answering-natural-language-questions-with-dbt into .cursor/skills/answering-natural-language-questions-with-dbt/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "answering-natural-language-questions-with-dbt", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Kilo-Org/kilo-marketplace.git --path skills/dbt/skills/answering-natural-language-questions-with-dbt--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Kilo-Org/kilo-marketplace --skill answering-natural-language-questions-with-dbt -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Kilo-Org/kilo-marketplace answering-natural-language-questions-with-dbt --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Kilo-Org/kilo-marketplace.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/dbt/skills/answering-natural-language-questions-with-dbt .gemini/skills/answering-natural-language-questions-with-dbt && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "answering-natural-language-questions-with-dbt" agent skill from https://github.com/Kilo-Org/kilo-marketplace/tree/main/skills/dbt/skills/answering-natural-language-questions-with-dbt into .gemini/skills/answering-natural-language-questions-with-dbt/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "answering-natural-language-questions-with-dbt", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Kilo-Org/kilo-marketplace answering-natural-language-questions-with-dbtInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Kilo-Org/kilo-marketplace --skill answering-natural-language-questions-with-dbt -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Kilo-Org/kilo-marketplace.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/dbt/skills/answering-natural-language-questions-with-dbt .github/skills/answering-natural-language-questions-with-dbt && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "answering-natural-language-questions-with-dbt" agent skill from https://github.com/Kilo-Org/kilo-marketplace/tree/main/skills/dbt/skills/answering-natural-language-questions-with-dbt into .github/skills/answering-natural-language-questions-with-dbt/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "answering-natural-language-questions-with-dbt", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Kilo-Org/kilo-marketplace --skill answering-natural-language-questions-with-dbt -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Kilo-Org/kilo-marketplace answering-natural-language-questions-with-dbt --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Kilo-Org/kilo-marketplace.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/dbt/skills/answering-natural-language-questions-with-dbt .opencode/skills/answering-natural-language-questions-with-dbt && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "answering-natural-language-questions-with-dbt" agent skill from https://github.com/Kilo-Org/kilo-marketplace/tree/main/skills/dbt/skills/answering-natural-language-questions-with-dbt into .opencode/skills/answering-natural-language-questions-with-dbt/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "answering-natural-language-questions-with-dbt", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
answering-natural-language-questions-with-dbtWrites and executes SQL queries against the data warehouse using dbt's Semantic Layer or ad-hoc SQL to answer business questions.
Answering Natural Language Questions With Dbt is an agent skill from Kilo-Org/kilo-marketplace. Writes and executes SQL queries against the data warehouse using dbt's Semantic Layer or ad-hoc SQL to answer business questions. Use when a user asks about analytics, metrics, KPIs, or data (e.g., "What were total sales last quarter?", "Show me top customers by revenue"). NOT for validating, testing, or building dbt models during development.
Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Data & Analytics, covering Data pipelines and ETL and SQL. It works with dbt and SQL. The repository describes itself as: Kilo Marketplace - A curated collection of Skills, MCP Servers, and Modes for enhancing AI agent capabilities across the Kilo ecosystem—including Kilo Code (VS Code extension)… The licence is Apache-2.0.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit ff51758. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
dbtjqFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Answering Natural Language Questions With Dbt loads about 1.9k tokens when it runs. Until then it costs about 98 tokens; SKILL.md has 633 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from Kilo-Org/kilo-marketplace at commit ff51758, republished under its Apache-2.0 licence (© Kilo-Org). 633 words, ~1,942 tokens.
.claude/skills/answering-natural-language-questions-with-dbt/SKILL.md (or your agent's skills folder).Answer data questions using the best available method: semantic layer first, then SQL modification, then model discovery, then manifest analysis. Always exhaust options before saying "cannot answer."
Use for: Business questions from users that need data answers
Not for:
dbt run, dbt test, or dbt build workflowsflowchart TD
start([Business question received])
check_sl{Semantic layer tools available?}
list_metrics[list_metrics]
metric_exists{Relevant metric exists?}
get_dims[get_dimensions]
sl_sufficient{SL can answer directly?}
query_metrics[query_metrics]
answer([Return answer])
try_compiled[get_metrics_compiled_sql<br/>Modify SQL, execute_sql]
check_discovery{Model discovery tools available?}
try_discovery[get_mart_models<br/>get_model_details<br/>Write SQL, execute]
check_manifest{In dbt project?}
try_manifest[Analyze manifest/catalog<br/>Write SQL]
cannot([Cannot answer])
suggest{In dbt project?}
improvements[Suggest semantic layer changes]
done([Done])
start --> check_sl
check_sl -->|yes| list_metrics
check_sl -->|no| check_discovery
list_metrics --> metric_exists
metric_exists -->|yes| get_dims
metric_exists -->|no| check_discovery
get_dims --> sl_sufficient
sl_sufficient -->|yes| query_metrics
sl_sufficient -->|no| try_compiled
query_metrics --> answer
try_compiled -->|success| answer
try_compiled -->|fail| check_discovery
check_discovery -->|yes| try_discovery
check_discovery -->|no| check_manifest
try_discovery -->|success| answer
try_discovery -->|fail| check_manifest
check_manifest -->|yes| try_manifest
check_manifest -->|no| cannot
try_manifest -->|SQL ready| answer
answer --> suggest
cannot --> done
suggest -->|yes| improvements
suggest -->|no| done
improvements --> done| Priority | Condition | Approach | Tools |
|---|---|---|---|
| 1 | Semantic layer active | Query metrics directly | list_metrics, get_dimensions, query_metrics |
| 2 | SL active but minor modifications needed (missing dimension, custom filter, case when, different aggregation) | Modify compiled SQL | get_metrics_compiled_sql, then execute_sql |
| 3 | No SL, discovery tools active | Explore models, write SQL | get_mart_models, get_model_details, then show/execute_sql |
| 4 | No MCP, in dbt project | Analyze artifacts, write SQL | Read target/manifest.json, target/catalog.json |
When list_metrics and query_metrics are available:
list_metrics - find relevant metricget_dimensions - verify required dimensions existquery_metrics - execute with appropriate filtersIf semantic layer can't answer directly (missing dimension, need custom logic) → go to Approach 2.
When semantic layer has the metric but needs minor modifications:
get_metrics_compiled_sql - get the SQL that would run (returns raw SQL, not Jinja)execute_sql to run the raw SQL-- Example: Adding sales_rep dimension
WITH base AS (
-- ... compiled metric logic (already resolved to table names) ...
)
SELECT base.*, reps.sales_rep_name
FROM base
JOIN analytics.dim_sales_reps reps ON base.rep_id = reps.id
GROUP BY ...
-- Example: Custom filter
SELECT * FROM (compiled_metric_sql) WHERE region = 'EMEA'
-- Example: Case when categorization
SELECT
CASE WHEN amount > 1000 THEN 'large' ELSE 'small' END as deal_size,
SUM(amount)
FROM (compiled_metric_sql)
GROUP BY 1Note: The compiled SQL contains resolved table names, not {{ ref() }}. Work with the raw SQL as returned.
When no semantic layer but get_all_models/get_model_details available:
get_mart_models - start with marts, not stagingget_model_details for relevant models - understand schema{{ ref('model_name') }}show --inline "..." or execute_sqlPrefer marts over staging - marts have business logic applied.
When in a dbt project but no MCP server:
target/manifest.json and target/catalog.json# Find mart models in manifest
jq '.nodes | to_entries | map(select(.key | startswith("model.") and contains("mart"))) | .[].value | {name: .name, schema: .schema, columns: .columns}' target/manifest.json
# Get column info from catalog
jq '.nodes["model.project_name.model_name"].columns' target/catalog.jsonWhen in a dbt project, suggest semantic layer changes after answering (or when cannot answer):
| Gap | Suggestion |
|---|---|
| Metric doesn't exist | "Add a metric definition to your semantic model" |
| Dimension missing | "Add dimension_name to the dimensions list in the semantic model" |
| No semantic layer | "Consider adding a semantic layer for this data" |
Stay at semantic layer level. Do NOT suggest:
| You're Thinking... | Reality |
|---|---|
| "Semantic layer doesn't support this exact query" | Get compiled SQL and modify it (Approach 2) |
| "No MCP tools, can't help" | Check for manifest/catalog locally |
| "User needs this quickly, skip the systematic check" | Systematic approach IS the fastest path |
| "Just write SQL, it's faster" | Semantic layer exists for a reason - use it first |
| "The dimension doesn't exist in the data" | Maybe it exists but not in semantic layer config |
| Mistake | Fix |
|---|---|
| Giving up when SL can't answer directly | Get compiled SQL and modify it |
| Querying staging models | Use get_mart_models first |
| Reading full manifest.json | Use jq to filter |
| Suggesting ETL changes | Keep suggestions at semantic layer |
| Not checking tool availability | List available tools before choosing approach |
© Kilo-Org, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/dbt/skills/answering-natural-language-questions-with-dbt of Kilo-Org/kilo-marketplace.
Open the folder on GitHubat commit ff51758
Answering Natural Language Questions With Dbt next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Answering Natural Language Questions With Dbt this skillKilo-Org/kilo-marketplace | 190 | — | ~1.9k | Automated safety check: Pass | Apache-2.0 | |
| Analytics Engineerborghei/Claude-Skills | 891 | — | ~3.4k | Automated safety check: Pass | MIT | |
| Monte Carlo Validation Notebooksickn33/agentic-awesome-skills | 47k | 1 repos | ~1.1k | Automated safety check: Pass | MIT | |
| dbt Model BuilderAltimateAI/data-engineering-skills | 128 | — | ~890 | Automated safety check: Pass | MIT | |
| dbt Error DebuggingAltimateAI/data-engineering-skills | 128 | — | ~1.1k | Automated safety check: Pass | MIT | |
| Migrating SQL To DbtAltimateAI/data-engineering-skills | 128 | — | ~762 | Automated safety check: Pass | MIT |
borghei/Claude-Skills
Analytics engineering across data modeling, dbt, transformation, and semantic layers.
sickn33/agentic-awesome-skills
Generates SQL validation notebooks for dbt PR changes with before/after comparison queries.
AltimateAI/data-engineering-skills
Creates or modifies dbt models in line with a project's own conventions, then runs dbt build and dbt show to check the output instead of stopping at compile.
AltimateAI/data-engineering-skills
Walks through fixing dbt compilation, database and test errors: read the full error, check upstream models, apply a fix, then verify with dbt build and a data preview.
AltimateAI/data-engineering-skills
Converts legacy SQL to modular dbt models. An agent skill from AltimateAI/data-engineering-skills.
sickn33/agentic-awesome-skills
Comprehensive Snowflake development assistant covering SQL best practices, data pipeline design (Dynamic Tables, Streams, Tasks, Snowpipe), Cortex AI functions, Cortex Agents, Snowpark Python, dbt…
Kilo-Org/kilo-marketplace
Sets up and maintains AzureML-ready Python projects as uv workspaces with devcontainers, a Makefile and job YAML, so local runs match cloud jobs and experiments stay reproducible.
Kilo-Org/kilo-marketplace
Creates, inspects, edits and runs Jupyter notebooks, scaffolding experiment or tutorial notebooks from templates and preferring a Jupyter MCP server over raw JSON edits.
Kilo-Org/kilo-marketplace
Takes a plain-language dashboard request through brand setup, data exploration, planning, an interactive HTML mock and a Tableau implementation spec.
Kilo-Org/kilo-marketplace
Ingest and transform data files (CSV/JSON/Parquet/Arrow IPC) into Elasticsearch with stream processing and custom transforms.
Kilo-Org/kilo-marketplace
A skill your agent uses when arranging Apache NiFi processors, process groups, ports, comments, numbering, crossing connections, dense fan-in/fan-out, or reusable readable canvas layouts.
Kilo-Org/kilo-marketplace
Render Cisco Data Fabric ingest-time routing workflows and Splunk Cloud Platform Ingest Processor setup plans with SPL2 pipelines, source types, destinations, lifecycle handoffs, queue and…
Categories
Writes and executes SQL queries against the data warehouse using dbt's Semantic Layer or ad-hoc SQL to answer business questions. Answering Natural Language Questions With Dbt is an agent skill from Kilo-Org/kilo-marketplace. Writes and executes SQL queries against the data warehouse using dbt's Semantic Layer or ad-hoc SQL to answer business questions.
Answering Natural Language Questions With Dbt fits situations like: A user asks about analytics; what were total sales last quarter?; show me top customers by revenue).
Run `npx skills add Kilo-Org/kilo-marketplace --skill answering-natural-language-questions-with-dbt -a claude-code`. Or copy the skill folder (skills/dbt/skills/answering-natural-language-questions-with-dbt in Kilo-Org/kilo-marketplace) into .claude/skills/answering-natural-language-questions-with-dbt in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Kilo-Org/kilo-marketplace --skill answering-natural-language-questions-with-dbt -a codex`. Or copy the skill folder (skills/dbt/skills/answering-natural-language-questions-with-dbt in Kilo-Org/kilo-marketplace) into .agents/skills/answering-natural-language-questions-with-dbt in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Kilo-Org/kilo-marketplace --skill answering-natural-language-questions-with-dbt -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/answering-natural-language-questions-with-dbt, .gemini/skills/answering-natural-language-questions-with-dbt, .github/skills/answering-natural-language-questions-with-dbt and .opencode/skills/answering-natural-language-questions-with-dbt in your project.
Going by SKILL.md and its folder, Answering Natural Language Questions With Dbt needs the command-line tools its instructions call (dbt and jq).
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Answering Natural Language Questions With Dbt is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.9k tokens (SKILL.md is roughly 7.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Answering Natural Language Questions With Dbt: Analytics Engineer (borghei/Claude-Skills, 891 stars), Monte Carlo Validation Notebook (sickn33/agentic-awesome-skills, 47k stars), dbt Model Builder (AltimateAI/data-engineering-skills, 128 stars) and dbt Error Debugging (AltimateAI/data-engineering-skills, 128 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Kilo-Org (a GitHub organization) maintains it in Kilo-Org/kilo-marketplace, which has 190 GitHub stars. The repository holds 86 skills in this directory. The repository was last updated on September 28, 2026.
Source: Kilo-Org/kilo-marketplace on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.