Skip to main content

dbt-development

Build and review dbt models, snapshots, macros, sources, tests, and project structure with explicit grain, layering, materialization, and incremental behavior.

Quellinformationen

Repository
majesticlabs-dev/majestic-abilities
Letzte Quellaktivität
16. September 2026 um 22:00
Erkannte Sprache von SKILL.md
Englisch
Sterne
1
Forks
1

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
2 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
dbt-development
description
Build and review dbt models, snapshots, macros, sources, tests, and project structure with explicit grain, layering, materialization, and incremental behavior.
# dbt Development Implement transformations in the conventions and dbt version already used by the project. Inspect the adapter, project configuration, packages, and neighboring models before changing code. ## Boundary Use `data-pipeline-design` to decide source extraction, checkpointing, file publication, and non-dbt pipeline behavior. Use `data-pipeline-testing` for fixture design, multi-run incremental scenarios, and reconciliation oracles. dbt implements transformation logic and warehouse contracts; it does not replace source-change analysis. ## Workflow ### 1. Inspect the project Read: - `dbt_project.yml` - dependency or package files - source definitions - neighboring model SQL and YAML - adapter and warehouse configuration - CI commands - installed dbt version when available Follow existing naming and configuration unless they are the problem. ### 2. State the model contract Before writing SQL, define: - model purpose - grain - primary or unique key - upstream sources and models - downstream consumers - materialization - update and delete behavior - required tests and documentation Every model should have one explainable grain. ### 3. Place logic in the correct layer Use the project's layering conventions. A common flow is: - **Staging:** source-conformed renaming, casting, and light cleanup - **Intermediate:** purpose-built joins or transformations - **Marts:** business-conformed entities and facts for consumers Do not force an intermediate layer when it adds no clarity. Avoid embedding final business metrics in source-conformed staging models. ### 4. Write dependency-aware SQL - Use `source()` for declared raw sources. - Use `ref()` for dbt-managed dependencies. - Select explicit columns once the model contract matters. - Name transformation CTEs by purpose. - Make join cardinality and deduplication tie-breakers visible. - Keep warehouse-specific SQL intentional and documented. ### 5. Choose materialization deliberately Select view, table, incremental, ephemeral, snapshot, or project-specific materialization based on data volume, update behavior, cost, and consumer needs. For incremental models, use [dbt-patterns.md](references/dbt-patterns.md) and define: - reliable filter or change signal - unique key - adapter-supported incremental strategy - overlap and late-arrival behavior - delete handling - full-refresh and backfill procedure A `max(timestamp)` filter without a tie-breaker, overlap, and late-data analysis is not a complete incremental design. ### 6. Add tests at the right level Use: - source freshness for arrival expectations - data tests for dataset invariants - unit tests for model SQL logic on static inputs when supported by the project version - singular tests for cross-row or cross-model rules - reconciliation queries for critical totals Current dbt documentation calls schema assertions data tests; `tests` may remain a supported alias in some versions. Follow the installed version and project convention. ### 7. Document ownership and meaning Document model purpose, grain, important columns, owners, and material caveats. Do not write descriptions that merely restate column names. ### 8. Verify narrowly, then broadly Use the project's commands. Typical progression: ```sh dbt parse dbt compile --select <model> dbt build --select +<model>+ dbt source freshness ``` Scope builds during iteration, then run the required downstream or CI surface. Inspect compiled SQL when Jinja, dispatch, or adapter behavior matters. ### 9. Review generated warehouse behavior Check: - query plan or warehouse cost where material - row count and grain - duplicates and nulls - incremental merge behavior - downstream compatibility - full-refresh safety ## Output For implementation, return changed models, YAML, tests, and verification results. For review, return: 1. Contract and grain findings 2. Layering and dependency issues 3. Materialization and incrementality risks 4. Test and documentation gaps 5. Smallest correct changes 6. Commands needed to verify ## Quality Gate - Model grain and key are explicit. - `source()` and `ref()` preserve the DAG. - Layer placement has a clear purpose. - Incremental behavior covers late data, deletes, and full refresh. - Tests protect meaningful contracts. - Verification matches the installed dbt version and adapter.
Auf GitHub ansehen