← ClaudeAtlas

documenting-dbt-modelslisted

Document a dbt project — model and column descriptions in schema.yml, source definitions, exposures, doc blocks, and generated docs/lineage. Use when adding descriptions to dbt models, documenting sources or dashboards as exposures, setting up dbt docs, or improving data catalog coverage.
Unknown-333/awesome-data-engineering-skills · ★ 16 · AI & Automation · score 68
Install: claude install-skill Unknown-333/awesome-data-engineering-skills
# Documenting dbt Models ## When to use - Adding or improving descriptions for models, columns, and sources. - Registering downstream dashboards/apps as exposures for lineage. - Setting up `dbt docs` generation and reusable doc blocks. - Do NOT use for writing tests (use `testing-dbt-projects`). ## Workflow ``` - [ ] Describe each model: what it is, its grain, and who uses it - [ ] Describe key columns (keys, enums, money, dates) - [ ] Reuse repeated definitions with doc blocks - [ ] Register BI dashboards as exposures - [ ] Run dbt docs generate and review lineage ``` 1. **Model description** states the grain and purpose in one or two lines — the grain is the most valuable fact for a consumer. 2. **Column descriptions** for keys, enums, money, and dates; skip self-evident ones to avoid noise. 3. **Doc blocks** (`{% docs %}`) for definitions reused across models (e.g. what "active customer" means) so they stay consistent. 4. **Exposures** connect models to the dashboards/ML jobs that consume them, so lineage and `dbt build --select +exposure` work. ## Patterns **schema.yml with descriptions:** ```yaml models: - name: fct_orders description: "One row per order line. Grain: order_id + line_number. Feeds Finance revenue dashboard." columns: - name: order_id description: "Natural order identifier from the shop system." - name: status description: '{{ doc("order_status") }}' ``` **Reusable doc block** (in a `.md` file unde