A curated collection of Agent Skills for working with dbt, to help AI agents understand and execute dbt workflows more effectively.
65
82%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Risky
Do not use without reviewing
Assess downstream dependencies before modifying a dbt model. Determines scope of impact and recommends appropriate build selectors.
Not for: New models (no downstream dependencies yet)
flowchart TD
A[Identify model to change] --> B{MCP tools available?}
B -->|yes| C[Use get_model_lineage_dev]
B -->|no| D[Use dbt ls --select model+]
C --> E[Assess impact scope]
D --> E
E --> F{Column-level change?}
F -->|yes| G[Check column lineage]
F -->|no| H[Classify impact]
G --> H
H --> I{High impact?}
I -->|yes| J[Ask user: limit depth?]
I -->|no| K[Recommend build command]
J --> KCheck for these tools first - they provide richer lineage data:
| Tool | Use For |
|---|---|
get_model_lineage_dev | Model-level downstream dependencies |
get_column_lineage | Which downstream models reference specific columns |
List all downstream models:
dbt ls --select model_name+ --output nameCount downstream models:
dbt ls --select model_name+ --output name | wc -lView as JSON with details:
dbt ls --select model_name+ --output jsonWhen changing or removing a column, identify which downstream models reference it:
# Search for column references in downstream model SQL files
# First get the list of downstream models
dbt ls --select model_name+ --output name > /tmp/downstream.txt
# Then search for column usage in those model files
grep -r "column_name" models/ --include="*.sql" | grep -f /tmp/downstream.txtWith MCP tools, use get_column_lineage for precise tracking.
| Level | Criteria | Action |
|---|---|---|
| Low | 1-5 downstream models | Proceed with state:modified+ |
| Medium | 6-15 downstream models | Consider limiting depth |
| High | 16+ downstream models | Ask user about depth limit |
Standard (all downstream):
dbt build --select state:modified+Limited depth (user choice):
# Only 1 level downstream
dbt build --select state:modified+1
# Only 2 levels downstream
dbt build --select state:modified+2
# Only 3 levels downstream
dbt build --select state:modified+3When impact is high, ask the user:
"This change affects N downstream models. Do you want to:
- Build all downstream models with
state:modified+- Limit to a specific depth (e.g.,
state:modified+2for 2 levels)?"
| Task | Command |
|---|---|
| List downstream | dbt ls --select model_name+ |
| Count downstream | dbt ls --select model_name+ --output name | wc -l |
| Build all affected | dbt build --select state:modified+ |
| Build limited depth | dbt build --select state:modified+N |
| Find column refs | grep -r "col" models/ --include="*.sql" |
Not checking before changing - Always run impact assessment first, even for "small" changes.
Ignoring column-level impact - Removing a column breaks downstream models that reference it. Check column usage, not just model dependencies.
Building everything - Use --select to limit scope. Never run dbt build without selectors on large projects.
evals
skills
adding-dbt-unit-test
references
answering-natural-language-questions-with-dbt
building-dbt-semantic-layer
configuring-dbt-mcp-server
fetching-dbt-docs
scripts
migrating-dbt-core-to-fusion
running-dbt-commands
troubleshooting-dbt-job-errors
using-dbt-for-analytics-engineering