creating-dbt-modelslisted
Install: claude install-skill AltimateAI/data-engineering-skills
# dbt Model Development
**Read before you write. Build after you write. Verify your output.**
## Critical Rules
1. **ALWAYS run `dbt build`** after creating/modifying models - compile is NOT enough
2. **ALWAYS verify output** after build using `dbt show` - don't assume success
3. **If build fails 3+ times**, stop and reassess your entire approach
## Workflow
### 1. Understand the Task Requirements
- What columns are needed? List them explicitly.
- What is the grain of the table (one row per what)?
- What calculations or aggregations are required?
### 2. Discover Project Conventions
```bash
cat dbt_project.yml
find models/ -name "*.sql" | head -20
```
Read 2-3 existing models to learn naming, config, and SQL patterns.
### 3. Find Similar Models
```bash
# Find models with similar purpose
find models/ -name "*agg*.sql" -o -name "*fct_*.sql" | head -5
```
Learn from existing models: join types, aggregation patterns, NULL handling.
### 4. Check Upstream Data
```bash
# Preview upstream data if needed
dbt show --select <upstream_model> --limit 10
```
### 5. Write the Model
Follow discovered conventions. Match the required columns exactly.
### 6. Compile (Syntax Check)
```bash
dbt compile --select <model_name>
```
### 7. BUILD - MANDATORY
**This step is REQUIRED. Do NOT skip it.**
```bash
dbt build --select <model_name>
```
If build fails:
1. Read the error carefully
2. Fix the specific issue
3. Run build again
4. **If fails 3+ times, step back and reassess appr