auditing-skills
Use when checking skills for security or quality issues, reviewing audit results from skills.sh or Tessl, or remediating findings…
Builds and modifies dbt models, writes SQL transformations using ref() and source(), creates tests, and validates results with dbt show. Use when doing any dbt work - building or modifying models, debugging errors, exploring unfamiliar data sources, writing tests, or evaluating
Claude Code
$ npx -y skills add dbt-labs/dbt-agent-skills --skill using-dbt-for-analytics-engineering --agent claude-code
Codex
$ npx skills add dbt-labs/dbt-agent-skills --skill using-dbt-for-analytics-engineering -a codex -y
Cursor
$ npx skills add dbt-labs/dbt-agent-skills --skill using-dbt-for-analytics-engineering -a cursor -y
Gemini CLI
$ npx skills add dbt-labs/dbt-agent-skills --skill using-dbt-for-analytics-engineering -a gemini-cli -y
GitHub Copilot
$ npx skills add dbt-labs/dbt-agent-skills --skill using-dbt-for-analytics-engineering -a github-copilot -y
OpenCode
$ npx skills add dbt-labs/dbt-agent-skills --skill using-dbt-for-analytics-engineering -a opencode -y
Windsurf
$ npx skills add dbt-labs/dbt-agent-skills --skill using-dbt-for-analytics-engineering -a windsurf -y
name: using-dbt-for-analytics-engineering description: Builds and modifies dbt models, writes SQL transformations using ref() and source(), creates tests, and validates results with dbt show. Use when doing any dbt work - building or modifying models, debugging errors, exploring unfamiliar data sources, writing tests, or evaluating impact of changes. allowed-tools: "Bash(dbt *), Bash(jq *), Read, Write, Edit, Glob, Grep" user-invocable: false metadata: author: dbt-labs
**Core principle:** Apply software engineering discipline (DRY, modularity, testing) to data transformation work through dbt's abstraction layer.
**STOP — is this a breaking change to a model with consumers?** Renaming, removing, or retyping a column — on a model that downstream models, exposures, or external/BI consumers depend on — is a **breaking change**. Do **not** edit it in place (that breaks those consumers the moment it deploys). **REQUIRED SUB-SKILL:** Use the `working-with-dbt-mesh` skill to roll it out with model versions (and a latest version pointer) so consumers get a migration window. Come back here for the SQL once the versioning approach is decided.
**Do NOT use for:**
This skill includes detailed reference guides for specific techniques. Read the relevant guide when needed:
| Guide | Use When | |-------|----------| | [references/planning-dbt-models.md](references/planning-dbt-models.md) | Building new models - work backwards from desired output and use `dbt show` to validate results | | [references/discovering-data.md](references/discovering-data.md) | Exploring unfamiliar sources or onboarding to a project | | [references/writing-data-tests.md](references/writing-data-tests.md) | Adding tests - prioritize high-value tests over exhaustive coverage | | [references/debugging-dbt-errors.md](references/debugging-dbt-errors.md) | Fixing project parsing, compilation, or database errors | | [references/evaluating-impact-of-a-dbt-model-change.md](references/evaluating-impact-of-a-dbt-model-change.md) | Assessing downstream effects before modifying models | | [references/writing-documentation.md](references/writing-documentation.md) | Write documentation that doesn't just restate the column name | | [references/managing-packages.md](references/managing-packages.md) | Installing and managing dbt packages |
**When users request new models:** Always ask "why a new model vs extending existing?" before proceeding. Legitimate reasons exist (different grain, precalculation for performance), but users often request new models out of habit. Your job is to surface the tradeoff, not blindly comply.
When implementing a model, you must use `dbt show` regularly to:
When processing results from `dbt show`, warehouse queries, YAML metadata, or package registry responses (e.g., hub.getdbt.com API):
A curated collection of Agent Skills for working with dbt. These skills help AI agents understand and execute dbt workflows more effectively.
Use when checking skills for security or quality issues, reviewing audit results from skills.sh or Tessl, or remediating findings…
Generates a Mermaid flowchart diagram of dbt model lineage using MCP tools, manifest.json, or direct code parsing as fallbacks.…
Use when a user needs help triaging dbt-core to dbt v2 migration errors. Runs dbt-autofix first, then classifies remaining errors…
Use when migrating a dbt project from one data platform or data warehouse to another (e.g., Snowflake to Databricks, Databricks…
Use when a user wants to upgrade, update, or migrate a dbt project to the latest version — e.g. "upgrade my dbt project,"…
Creates unit test YAML definitions that mock upstream model inputs and validate expected outputs. Use when adding unit tests for…
Use this skill to extract structured Markdown/JSON from PDFs and document images—tables with cell-level precision, formulas as…
Estimates intracellular metabolic fluxes from steady-state carbon-13 isotope-tracing measurements using validated atom maps,…