From snowflake-skills
Creates and modifies dbt models following discovered project conventions. Verifies with dbt build, compilation, and output previews including row counts and calculations.
npx claudepluginhub altimateai/data-engineering-skills --plugin dbt-skillsThis skill uses the workspace's default tool permissions.
**Read before you write. Build after you write. Verify your output.**
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Generates original PNG/PDF visual art via design philosophy manifestos for posters, graphics, and static designs on user request.
Read before you write. Build after you write. Verify your output.
dbt build after creating/modifying models - compile is NOT enoughdbt show - don't assume successcat dbt_project.yml
find models/ -name "*.sql" | head -20
Read 2-3 existing models to learn naming, config, and SQL patterns.
# 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.
# Preview upstream data if needed
dbt show --select <upstream_model> --limit 10
Follow discovered conventions. Match the required columns exactly.
dbt compile --select <model_name>
This step is REQUIRED. Do NOT skip it.
dbt build --select <model_name>
If build fails:
Build success does NOT mean correct output.
# Check the table was created and preview data
dbt show --select <model_name> --limit 10
Verify:
For models with calculations, verify correctness manually:
# Pick a specific row and verify calculation by hand
dbt show --inline "
select *
from {{ ref('model_name') }}
where <primary_key> = '<known_value>'
" --limit 1
# Cross-check aggregations
dbt show --inline "
select count(*), sum(<column>)
from {{ ref('model_name') }}
"
For example, if calculating total_revenue = quantity * price:
Before declaring done, re-read the original request: