← Back to list

model-builder
by armanzeroeight
🚀 A collection of Claude subagents, skills, rules, guides, and blueprints for Developers, Engineers, and Creators. | Covering programming languages, DevOps, Cloud, and beyond.
⭐ 20🍴 4📅 Jan 18, 2026
SKILL.md
name: model-builder description: Creates dbt models with proper layering (staging, marts), incremental strategies, and documentation. Use when creating dbt models, organizing data transformations, or implementing incremental models.
dbt Model Builder
Quick Start
Create well-structured dbt models following best practices for staging, intermediate, and mart layers.
Instructions
Step 1: Create staging models
Staging models clean and standardize raw data:
-- models/staging/stg_orders.sql
with source as (
select * from {{ source('raw', 'orders') }}
),
renamed as (
select
order_id,
customer_id,
order_date,
order_total,
order_status,
created_at,
updated_at
from source
)
select * from renamed
Add schema file:
# models/staging/schema.yml
version: 2
models:
- name: stg_orders
description: Cleaned and standardized orders from raw data
columns:
- name: order_id
description: Unique order identifier
tests:
- unique
- not_null
- name: customer_id
description: Customer who placed the order
tests:
- not_null
Step 2: Create mart models
Mart models contain business logic:
-- models/marts/fct_orders.sql
with orders as (
select * from {{ ref('stg_orders') }}
),
customers as (
select * from {{ ref('stg_customers') }}
),
final as (
select
orders.order_id,
orders.customer_id,
customers.customer_name,
orders.order_date,
orders.order_total,
orders.order_status
from orders
left join customers
on orders.customer_id = customers.customer_id
)
select * from final
Step 3: Create incremental models
For large datasets, use incremental models:
-- models/marts/fct_events.sql
{{
config(
materialized='incremental',
unique_key='event_id',
on_schema_change='fail'
)
}}
with events as (
select * from {{ source('raw', 'events') }}
{% if is_incremental() %}
where event_timestamp > (select max(event_timestamp) from {{ this }})
{% endif %}
)
select * from events
Step 4: Add documentation
# models/marts/schema.yml
version: 2
models:
- name: fct_orders
description: Order facts with customer information
columns:
- name: order_id
description: Unique order identifier
tests:
- unique
- not_null
- name: order_total
description: Total order amount
tests:
- not_null
- dbt_utils.accepted_range:
min_value: 0
Model Layering
Staging (stg_):
- Clean and standardize raw data
- One-to-one with source tables
- Minimal transformations
- Column renaming and type casting
Intermediate (int_):
- Complex transformations
- Join multiple staging models
- Not exposed to end users
Marts (fct_, dim_):
- Business logic
- Fact and dimension tables
- Exposed to end users
Best Practices
- Follow naming conventions (stg_, int_, fct_, dim_)
- Use CTEs for readability
- Document all models and columns
- Add tests to all models
- Use refs for dependencies
- Implement incremental models for large datasets
- Configure materialization appropriately
- Use sources for raw data
Advanced
For detailed information, see:
- Staging Patterns - Staging model best practices
- Marts Patterns - Fact and dimension table patterns
- Incremental - Incremental model strategies
Score
Total Score
70/100
Based on repository quality metrics
✓SKILL.md
SKILL.mdファイルが含まれている
+20
✓LICENSE
ライセンスが設定されている
+10
✓説明文
100文字以上の説明がある
+10
○人気
GitHub Stars 100以上
0/15
✓最近の活動
1ヶ月以内に更新
+10
○フォーク
10回以上フォークされている
0/5
✓Issue管理
オープンIssueが50未満
+5
○言語
プログラミング言語が設定されている
0/5
✓タグ
1つ以上のタグが設定されている
+5
Reviews
💬
Reviews coming soon
