dbt-core

Design dbt Core project structures with sources, refs, materializations, and snapshots.

14|1|Updated May 5, 2026
One-click install
npx skills add https://github.com/ivanshamaev/de-agent-skills --skill dbt-core-ivanshamaev
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: dbt-core
Source: https://github.com/ivanshamaev/de-agent-skills/tree/main/skills/dbt_core
Command: npx skills add https://github.com/ivanshamaev/de-agent-skills --skill dbt-core-ivanshamaev

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This skill helps you structure, configure, and implement production-ready dbt (data build tool) projects so your data models, sources, tests, and deployments are consistent, maintainable, and easy to operate.

Core Features & Use Cases

  • dbt project scaffolding: Set up a standard folder layout (models, macros, tests, seeds, snapshots) backed by a correct dbt_project.yml, profiles.yml, and packages.yml.
  • Modeling and orchestration patterns: Build staging → intermediate → marts layers using ref() and source(), and apply the right materializations (view/table/incremental/ephemeral) with adapter-aware options.
  • Incrementals, snapshots, and data quality: Implement incremental strategies with is_incremental() filters, capture SCD Type 2 history with snapshots, and enforce correctness with generic/singular tests and severity/store-failures controls.
  • Operational productivity: Use Jinja macros (including dbt-utils patterns), node selection (graph operators, tags, config, state:modified+) and CI/CD “slim CI” approaches.

Quick Start

Ask the agent to generate a complete dbt_project.yml + example models for staging and marts, including an incremental model using is_incremental() and a snapshot for SCD Type 2.

Frequently Asked Questions about dbt-core

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I structure a dbt project for staging and marts layers?

Structure dbt projects by creating staging, intermediate, and marts directories. Use source() for raw data ingestion in staging models and ref() to build dependencies in downstream marts, ensuring maintainable transformation workflows across your data warehouse.

How do I implement incremental loading and is_incremental() logic in dbt models?

Implement incremental loading in dbt models by configuring materialized='incremental' and applying the is_incremental() macro within a WHERE filter. This mechanism processes only new or modified records, optimizing warehouse compute and pipeline execution time.

What is the best way to capture SCD Type 2 history using dbt snapshots?

Capture SCD Type 2 history using dbt snapshots by configuring snapshot files with target_schema, unique_key, and hard-coded check_cols or updated_at parameters. Snapshots automatically track historical changes to source records over time.

How do I run slim CI in dbt using state modified node selection?

Run slim CI in dbt by using the state:modified+ node selector during execution. This compares current code against a previous manifest state, testing only modified models and their downstream dependencies to reduce CI runtime significantly.

When should I use source() versus ref() in dbt data models?

Use source() in dbt data models when referencing raw, untransformed tables outside the current project, and use ref() when building dependencies between models within the same dbt project to construct the correct directed acyclic graph (DAG).

How do I enforce data quality tests and store failures in dbt?

Enforce data quality in dbt by applying generic or singular tests to models and sources. Configure test severity to warn or error, and use the store_failures parameter to save failing records in the database for troubleshooting.