/dbt-transformation-patterns
Master dbt (data build tool) for analytics engineering with model organization, testing, documentation, and incremental strategies. Use when building data transformations, creating data models, or implementing analytics engineering best practices.
Claude Code
$ npx -y skills add wshobson/agents --skill dbt-transformation-patterns --agent claude-code
Codex
$ npx skills add wshobson/agents --skill dbt-transformation-patterns -a codex -y
Cursor
$ npx skills add wshobson/agents --skill dbt-transformation-patterns -a cursor -y
Gemini CLI
$ npx skills add wshobson/agents --skill dbt-transformation-patterns -a gemini-cli -y
GitHub Copilot
$ npx skills add wshobson/agents --skill dbt-transformation-patterns -a github-copilot -y
OpenCode
$ npx skills add wshobson/agents --skill dbt-transformation-patterns -a opencode -y
Windsurf
$ npx skills add wshobson/agents --skill dbt-transformation-patterns -a windsurf -y
SKILL.md
dbt-transformation-patterns.SKILL.mdname: dbt-transformation-patterns
description: Master dbt (data build tool) for analytics engineering with model organization, testing, documentation, and incremental strategies. Use when building data transformations, creating data models, or implementing analytics engineering best practices.
dbt Transformation Patterns
Production-ready patterns for dbt (data build tool) including model organization, testing strategies, documentation, and incremental processing.
When to Use This Skill
- Building data transformation pipelines with dbt
- Organizing models into staging, intermediate, and marts layers
- Implementing data quality tests
- Creating incremental models for large datasets
- Documenting data models and lineage
- Setting up dbt project structure
Core Concepts
1. Model Layers (Medallion Architecture)
sources/ Raw data definitions
โ
staging/ 1:1 with source, light cleaning
โ
intermediate/ Business logic, joins, aggregations
โ
marts/ Final analytics tables2. Naming Conventions
| Layer | Prefix | Example | | ------------ | -------------- | ----------------------------- | | Staging | `stg_` | `stg_stripe__payments` | | Intermediate | `int_` | `int_payments_pivoted` | | Marts | `dim_`, `fct_` | `dim_customers`, `fct_orders` |
Quick Start
# dbt_project.yml
name: "analytics"
version: "1.0.0"
profile: "analytics"
model-paths: ["models"]
analysis-paths: ["analyses"]
test-paths: ["tests"]
seed-paths: ["seeds"]
macro-paths: ["macros"]
vars:
start_date: "2020-01-01"
models:
analytics:
staging:
+materialized: view
+schema: staging
intermediate:
+materialized: ephemeral
marts:
+materialized: table
+schema: analytics# Project structure
models/
โโโ staging/
โ โโโ stripe/
โ โ โโโ _stripe__sources.yml
โ โ โโโ _stripe__models.yml
โ โ โโโ stg_stripe__customers.sql
โ โ โโโ stg_stripe__payments.sql
โ โโโ shopify/
โ โโโ _shopify__sources.yml
โ โโโ stg_shopify__orders.sql
โโโ intermediate/
โ โโโ finance/
โ โโโ int_payments_pivoted.sql
โโโ marts/
โโโ core/
โ โโโ _core__models.yml
โ โโโ dim_customers.sql
โ โโโ fct_orders.sql
โโโ finance/
โโโ fct_revenue.sqlDetailed patterns and worked examples
Detailed pattern documentation lives in `references/details.md`. Read that file when the navigation tier above is insufficient.
Best Practices
Do's
- **Use staging layer** - Clean data once, use everywhere
- **Test aggressively** - Not null, unique, relationships
- **Document everything** - Column descriptions, model descriptions
- **Use incremental** - For tables > 1M rows
- **Version control** - dbt project in Git
Don'ts
- **Don't skip staging** - Raw โ mart is tech debt
- **Don't hardcode dates** - Use `{{ var('start_date') }}`
- **Don't repeat logic** - Extract to macros
- **Don't test in prod** - Use dev target
- **Don't ignore freshness** - Monitor source data
Read more
name: dbt-transformation-patterns description: Master dbt (data build tool) for analytics engineering with model organization, testing, documentation, and incremental strategies. Use when building data transformations, creating data models, or implementing analytics engineering best practices.
dbt Transformation Patterns
Production-ready patterns for dbt (data build tool) including model organization, testing strategies, documentation, and incremental processing.
When to Use This Skill
- Building data transformation pipelines with dbt
- Organizing models into staging, intermediate, and marts layers
- Implementing data quality tests
- Creating incremental models for large datasets
- Documenting data models and lineage
- Setting up dbt project structure
Core Concepts
1. Model Layers (Medallion Architecture)
sources/ Raw data definitions
โ
staging/ 1:1 with source, light cleaning
โ
intermediate/ Business logic, joins, aggregations
โ
marts/ Final analytics tables2. Naming Conventions
| Layer | Prefix | Example | | ------------ | -------------- | ----------------------------- | | Staging | `stg_` | `stg_stripe__payments` | | Intermediate | `int_` | `int_payments_pivoted` | | Marts | `dim_`, `fct_` | `dim_customers`, `fct_orders` |
Quick Start
# dbt_project.yml
name: "analytics"
version: "1.0.0"
profile: "analytics"
model-paths: ["models"]
analysis-paths: ["analyses"]
test-paths: ["tests"]
seed-paths: ["seeds"]
macro-paths: ["macros"]
vars:
start_date: "2020-01-01"
models:
analytics:
staging:
+materialized: view
+schema: staging
intermediate:
+materialized: ephemeral
marts:
+materialized: table
+schema: analytics# Project structure
models/
โโโ staging/
โ โโโ stripe/
โ โ โโโ _stripe__sources.yml
โ โ โโโ _stripe__models.yml
โ โ โโโ stg_stripe__customers.sql
โ โ โโโ stg_stripe__payments.sql
โ โโโ shopify/
โ โโโ _shopify__sources.yml
โ โโโ stg_shopify__orders.sql
โโโ intermediate/
โ โโโ finance/
โ โโโ int_payments_pivoted.sql
โโโ marts/
โโโ core/
โ โโโ _core__models.yml
โ โโโ dim_customers.sql
โ โโโ fct_orders.sql
โโโ finance/
โโโ fct_revenue.sqlDetailed patterns and worked examples
Detailed pattern documentation lives in `references/details.md`. Read that file when the navigation tier above is insufficient.
Best Practices
Do's
- **Use staging layer** - Clean data once, use everywhere
- **Test aggressively** - Not null, unique, relationships
- **Document everything** - Column descriptions, model descriptions
- **Use incremental** - For tables > 1M rows
- **Version control** - dbt project in Git
Don'ts
- **Don't skip staging** - Raw โ mart is tech debt
- **Don't hardcode dates** - Use `{{ var('start_date') }}`
- **Don't repeat logic** - Extract to macros
- **Don't test in prod** - Use dev target
- **Don't ignore freshness** - Monitor source data
Use one collection of plugins, agents, skills, and commands across Claude Code, OpenAI Codex CLI, Cursor, OpenCode, Antigravity CLI, GitHub Copilot, and Pi. A harness is the coding tool that loads and runs the components.
Other skills on agents.
More skills from other plugins.
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, orโฆ
ask-matt
Ask which skill or flow fits your situation. A router over the skills in this repo.
Questions about dbt-transformation-patterns.
- Which coding agents can use dbt-transformation-patterns?
- dbt-transformation-patterns installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.

