dbt-snapshots

Manage dbt snapshots for SCD Type 2 with strategy selection and validation.

475|25|Updated Mar 31, 2026
One-click install
npx skills add https://github.com/SignalPilot-Labs/SignalPilot --skill dbt-snapshots
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: dbt-snapshots
Source: https://github.com/SignalPilot-Labs/SignalPilot/tree/main/benchmark/signalpilot-plugin/skills/dbt-snapshots
Command: npx skills add https://github.com/SignalPilot-Labs/SignalPilot --skill dbt-snapshots

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

dbt snapshots enable tracking of historical changes in data, with a focus on SCD Type 2, but configuring policies, naming, and verification can be error-prone without a clear guide.

Core Features & Use Cases

  • Strategy-before-writing: select the appropriate snapshot strategy (timestamp or check) before writing the snapshot config.
  • Case-sensitive config: ensure unique_key and updated_at match source column casing to detect changes reliably.
  • Verification & downstream: validate history with dbt_valid_from/dbt_valid_to and guide downstream models.

Quick Start

Place your snapshot blocks in proper .sql files with a proper unique_key and strategy, then run dbt snapshot to initialize history.

Frequently Asked Questions about dbt-snapshots

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

FAQPage Schema
How do I configure dbt snapshots for SCD Type 2 correctly?

Configuring dbt snapshots for SCD Type 2 requires selecting a snapshot strategy, matching column casing for unique_key and updated_at, and validating history post-run.

Why are my dbt snapshots not capturing historical changes?

dbt snapshots fail to capture changes when the unique_key or updated_at fields do not match source column casing exactly, preventing reliable change detection.

What is the best way to verify dbt snapshot history after a run?

Verify dbt snapshot history by validating the dbt_valid_from and dbt_valid_to columns to ensure historical data tracking is accurate and reliable.

When should I use timestamp vs check strategy in dbt snapshots?

Selecting a snapshot strategy in dbt requires enforcing pre-write strategy selection, choosing between timestamp or check strategies before writing the snapshot config.

Do I need to validate column casing before running dbt snapshots?

Validating column casing before running dbt snapshots is necessary to ensure the unique_key and updated_at fields match source columns and reliably detect changes.