К основному содержанию
скилл CX Codex

running-dbt-commands — скилл для Claude Code: команды dbt без ошибок

Скилл подсказывает агенту, как правильно собирать и запускать команды dbt CLI: какой исполняемый файл взять, какие флаги добавить, как задать селектор.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add dbt-labs/dbt-agent-skills --skill running-dbt-commands -a claude-code
Открыть на GitHub

Что делает running-dbt-commands

Скилл описывает, как форматировать и выполнять команды dbt CLI: выбор исполняемого файла, структура параметров, селекторы и переменные. Внутри — справочник по трём вариантам CLI (dbt Core, dbt Fusion, dbt Cloud CLI), таблица операторов графа для --select, список ключей вывода dbt list --output json и разбор частых ошибок.

Главное правило: вместо dbt run скилл советует dbt build, потому что build сразу прогоняет и модель, и тесты. Ещё он требует всегда указывать --select и добавлять --quiet вместе с --warn-error-options '{"error": ["NoNodesForSelectionCriteria"]}', чтобы поймать опечатку в селекторе. Если доступны MCP-инструменты вроде dbt_build или dbt_run, скилл предпочитает их — они сами разбираются с путями и таймаутами.

Есть нюанс с Fusion: --resource-type не работает вместе с dbt test, поэтому юнит-тесты там запускают через dbt build --select model_name или по имени теста. Это повод проверить, какой именно CLI у вас в проекте: если dbt Core стоит в venv, команда dbt возьмёт его, а для Fusion нужен dbtf или ~/.local/bin/dbt.

Какие задачи решает

  • собрать модель и сразу прогнать тесты одной командой
  • выбрать правильный исполняемый файл dbt, когда в системе их несколько
  • проверить сложный селектор через dbt list до запуска
  • посмотреть данные модели без правки SQL-файла
  • разобрать target/run_results.json после упавшего запуска

Примеры запросов агенту

  • собери модель stg_orders и прогони тесты
  • покажи первые 10 строк из orders
  • запусти юнит-тест по имени в Fusion

Как установить running-dbt-commands

1Через Skills CLI (Vercel)

npx skills add dbt-labs/dbt-agent-skills --skill running-dbt-commands -a claude-code

2Вручную: положить файлы

~/.claude/skills/running-dbt-commands/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/running-dbt-commands/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о running-dbt-commands

Как установить running-dbt-commands в Claude?

Выполните npx skills add dbt-labs/dbt-agent-skills --skill running-dbt-commands -a claude-code. После этого файл скилла появится по пути ~/.claude/skills/running-dbt-commands/SKILL.md.

Что делает running-dbt-commands?

Подсказывает агенту, как правильно оформить команду dbt CLI: какой бинарник вызвать, какие флаги добавить, как задать селектор и переменные. Ещё разбирает частые ошибки вроде запуска без --select.

Почему скилл советует dbt build, а не dbt run?

build объединяет run и test в один шаг, поэтому проблемы с качеством данных видны сразу. Для разработки одиночный dbt run скилл считает почти всегда неправильным выбором.

Исходный текст

SKILL.md · Apache-2.0
---
name: running-dbt-commands
description: Formats and executes dbt CLI commands, selects the correct dbt executable, and structures command parameters. Use when running models, tests, builds, compiles, or show queries via dbt CLI. Use when unsure which dbt executable to use or how to format command parameters.
user-invocable: false
metadata:
  author: dbt-labs
---

# Running dbt Commands

## Preferences

1. **Use MCP tools if available** (`dbt_build`, `dbt_run`, `dbt_show`, etc.) - they handle paths, timeouts, and formatting automatically
2. **Always use `build` — even when users say "run"** - When a user asks to "run" a model, recommend `dbt build` instead. `build` = `run` + `test` in one step, so it catches data quality issues immediately. `dbt run` alone is almost never the right answer during development.
3. **Always use `--quiet`** with `--warn-error-options '{"error": ["NoNodesForSelectionCriteria"]}'` to reduce output while catching selector typos
4. **Always use `--select`** - never run the entire project without explicit user approval

## Quick Reference

```bash
# Standard command pattern
dbt build --select my_model --quiet --warn-error-options '{"error": ["NoNodesForSelectionCriteria"]}'

# Preview model output
dbt show --select my_model --limit 10

# Run inline SQL query
dbt show --inline "select * from {{ ref('orders') }}" --limit 5

# With variables (JSON format for multiple)
dbt build --select my_model --vars '{"key": "value"}'

# Full refresh for incremental models
dbt build --select my_model --full-refresh

# List resources before running
dbt list --select my_model+ --resource-type model
```

## dbt CLI Flavors

Three CLIs exist. **Ask the user which one if unsure.**

| Flavor | Location | Notes |
|--------|----------|-------|
| **dbt Core** | Python venv | `pip show dbt-core` or `uv pip show dbt-core` |
| **dbt Fusion** | `~/.local/bin/dbt` or `dbtf` | Faster and has stronger SQL comprehension |
| **dbt Cloud CLI** | `~/.local/bin/dbt` | Go-based, runs on platform |

**Common setup:** Core in venv + Fusion at `~/.local/bin`. Running `dbt` uses Core. Use `dbtf` or `~/.local/bin/dbt` for Fusion.

## Selectors

**Always provide a selector.** Graph operators:

| Operator | Meaning | Example |
|----------|---------|---------|
| `model+` | Model and all downstream | `stg_orders+` |
| `+model` | Model and all upstream | `+dim_customers` |
| `+model+` | Both directions | `+orders+` |
| `model+N` | Model and N levels downstream | `stg_orders+1` |

```bash
--select my_model              # Single model
--select staging.*             # Path pattern
--select fqn:*stg_*            # FQN pattern
--select model_a model_b       # Union (space)
--select tag:x,config.mat:y    # Intersection (comma)
--exclude my_model             # Exclude from selection
```

**Resource type filter:**
```bash
--resource-type model
--resource-type test --resource-type unit_test
```

Valid types: `model`, `test`, `unit_test`, `snapshot`, `seed`, `source`, `exposure`, `metric`, `semantic_model`, `saved_query`, `analysis`

> **Fusion:** `--resource-type` is **not supported with `dbt test`** ([dbt-fusion#1628](https://github.com/dbt-labs/dbt-fusion/issues/1628)). To run unit tests in Fusion:
> - `dbt build --select model_name` — builds the model first, then runs all tests including unit tests
> - `dbt build --select unit_test_name` — targets a specific unit test by name
> - `dbt list --resource-type unit_test` — lists unit test names for use in selectors

## List

Use `dbt list` to preview what will be selected before running. Helpful for validating complex selectors.

```bash
dbt list --select my_model+              # Preview selection
dbt list --select my_model+ --resource-type model  # Only models
dbt list --output json                   # JSON output
dbt list --select my_model --output json --output-keys unique_id name resource_type config
```

**Available output keys for `--output json`:**
`unique_id`, `name`, `resource_type`, `package_name`, `original_file_path`, `path`, `alias`, `description`, `columns`, `meta`, `tags`, `config`, `depends_on`, `patch_path`, `schema`, `database`, `relation_name`, `raw_code`, `compiled_code`, `language`, `docs`, `group`, `access`, `version`, `fqn`, `refs`, `sources`, `metrics`

## Show

Preview data with `dbt show`. Use `--inline` for arbitrary SQL queries.

```bash
dbt show --select my_model --limit 10
dbt show --inline "select * from {{ ref('orders') }} where status = 'pending'" --limit 5
```

**Important:** Use `--limit` flag, not SQL `LIMIT` clause.

## Variables

Pass as STRING, not dict. No special characters (`\`, `\n`).

```bash
--vars 'my_var: value'                              # Single
--vars '{"k1": "v1", "k2": 42, "k3": true}'         # Multiple (JSON)
```

## Analyzing Run Results

After a dbt command, check `target/run_results.json` for detailed execution info:

```bash
# Quick status check
cat target/run_results.json | jq '.results[] | {node: .unique_id, status: .status, time: .execution_time}'

# Find failures
cat target/run_results.json | jq '.results[] | select(.status != "success")'
```

**Key fields:**
- `status`: success, error, fail, skipped, warn
- `execution_time`: seconds spent executing
- `compiled_code`: rendered SQL
- `adapter_response`: database metadata (rows affected, bytes processed)

## Defer (Skip Upstream Builds)

Reference production data instead of building upstream models:

```bash
dbt build --select my_model --defer --state prod-artifacts
```

**Flags:**
- `--defer` - enable deferral to state manifest
- `--state <path>` - path to manifest from previous run (e.g., production artifacts)
- `--favor-state` - prefer node definitions from state even if they exist locally

```bash
dbt build --select my_model --defer --state prod-artifacts --favor-state
```

## Static Analysis (Fusion Only)

Override SQL analysis for models with dynamic SQL or unrecognized UDFs:

```bash
dbt run --static-analysis=off
dbt run --static-analysis=unsafe
```

## Common Mistakes

| Mistake | Fix |
|---------|-----|
| Using `test` after model change | Use `build` - test doesn't refresh the model |
| Running without `--select` | Always specify what to run |
| Using `--quiet` without warn-error | Add `--warn-error-options '{"error": ["NoNodesForSelectionCriteria"]}'` |
| Running `dbt` expecting Fusion when we are in a venv | Use `dbtf` or `~/.local/bin/dbt` |
| Schema errors after changing files in Fusion | Run `dbt clean` to clear the stale schema cache, then re-run |
| Adding LIMIT to SQL in `dbt_show` | Use `limit` parameter instead |
| Vars with special characters | Pass as simple string, no `\` or `\n` |

© dbt-labs · Apache-2.0 · dbt-labs/dbt-agent-skills

Похожие скиллы

Все скиллы по теме «Данные и базы» →
dbt-transformation-patterns Seth Hobson Скилл для Claude, Codex и Cursor, который подсказывает агенту, как раскладывать dbt-модели по слоям, писать тесты и делать инкрементальные витрины. CX Codex 11 000установок dbt-sf-to-bq-translator официальный google Переводит dbt-модели Snowflake в Standardized BigQuery SQL. Нужен для миграции пайплайнов на Google Cloud через Claude Code, Gemini CLI или Codex. CX Codex 2 300установок dbt-data-transformation manutej Скилл по dbt для аналитической инженерии: модели, тесты, документация, инкрементальные сборки, макросы и пакеты. Пригодится, когда нужно навести порядок в SQL-преобразованиях в хранилище. CX Codex +1 441установок data-analyst cline Скилл превращает агента в аналитика: уточняет вопрос, пишет ограниченный SQL к ClickHouse и объясняет, что стоит за цифрой. CX Codex +1 2 200установок cosmos-dbt-core astronomer Превращает проект dbt Core в Airflow DAG или TaskGroup через Astronomer Cosmos. Пригодится, когда нужно расписание и ретраи для моделей dbt. CX Codex +1 962установок snowflake-snowpark-dbt-cursorrules-prompt-file PatrickJS Правило для Cursor, которое задаёт агенту контекст по Snowpark Python и dbt с адаптером Snowflake. Пригодится, когда пишете пайплайны трансформаций в этих двух инструментах. ★ 41 011звёзд репо

Из того же набора12

using-dbt-for-analytics-engineering Скилл ведёт агента через сборку dbt-моделей, SQL-трансформации на ref() и source(), тесты и проверку результатов через dbt show. CX Codex +1 1 200установок adding-dbt-unit-test Пишет YAML-определения юнит-тестов для моделей dbt: подставляет моковые входные данные и проверяет ожидаемый результат. CX Codex +1 1 100установок fetching-dbt-docs Ищет и загружает документацию dbt Cloud, dbt Core и Semantic Layer в формате Markdown без лишней HTML-разметки. CX Codex +1 1 100установок troubleshooting-dbt-job-errors Разбирает упавшие джобы dbt Cloud: смотрит логи, историю git и данные, чтобы найти причину. Пригодится, когда ошибка непонятная или плавает. CX Codex +1 1 000установок building-dbt-semantic-layer Скилл помогает ИИ настраивать семантический слой dbt: метрики, сущности, измерения и time spines. Пригодится при переходе на спецификацию dbt Core 1.12+ или работе со старыми конфигами. CX Codex +1 1 000установок configuring-dbt-mcp-server Скилл собирает JSON-конфиг для dbt MCP-сервера, разбирается с авторизацией и проверяет, что соединение работает. CX Codex +1 1 000установок answering-natural-language-questions-with-dbt Скилл отвечает на бизнес-вопросы по данным: сначала ищет метрику в семантическом слое dbt, потом пишет и выполняет SQL. Пригодится, когда нужно узнать цифры, а не строить модели. CX Codex +1 1 000установок working-with-dbt-mesh Оценивает риски ломающих изменений в dbt-моделях и настраивает версионирование, контракты и межпроектные ссылки dbt Mesh. CX Codex +1 869установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой