Skip to content
Back to skills

Dbt Incremental Strategy Audit

ASecurity

Use when reviewing a new or changed dbt incremental model -- the strategy looks over-engineered, rebuild or delete behavior is unclear, or the model deviates from how the rest of the repo handles incrementals.

  • 6 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 6, 2026
ai-agentsgobashsql

Security analysis

A100/100

Scanned September 6, 2026

npx -y skills add yeaight7/agent-powerups --skill dbt-incremental-strategy-audit --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Dbt Incremental Strategy Audit?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Dbt Incremental Strategy Audit
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/yeaight7-dbt-incremental-strategy-audit-agent-powerups/badge)](https://www.skillsdirectory.com/skills/yeaight7-dbt-incremental-strategy-audit-agent-powerups)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: dbt-incremental-strategy-audit
description: Use when reviewing a new or changed dbt incremental model -- the strategy looks over-engineered, rebuild or delete behavior is unclear, or the model deviates from how the rest of the repo handles incrementals.
---

## Purpose

Determine whether a dbt incremental model's chosen strategy is justified, understandable, maintainable, and consistent with repository conventions. The goal is not to praise clever implementations. Default stance: skeptical, low-risk, root-cause oriented, convention-preserving — prefer the simplest correct strategy.

## When to Use

- Reviewing a new or modified `materialized='incremental'` model
- An incremental model shows confusing runtime behavior: unexpected rebuilds, deletes, or reprocessing
- A model deviates from the repo's established incremental conventions without explanation

## Inputs

- The model SQL and its config: `incremental_strategy`, `unique_key`, `partition_by`/`cluster_by`/`partitions`, `pre_hook`/`post_hook`
- Comparable incremental models in the same repo

## Workflow

1. **Understand the repo pattern first.** Inspect similar incremental models and how they configure their strategies:

   ```bash
   grep -rn "incremental_strategy" models/
   grep -rln "is_incremental()" models/
   ```

2. **Explain the actual runtime behavior.** Compile the model and read the SQL that really runs — `is_incremental()` branches make the Jinja source misleading:

   ```bash
   dbt compile --select <model>
   # then read target/compiled/<project>/models/.../<model>.sql
   ```

   `is_incremental()` is false when the target table does not yet exist or on `--full-refresh`, so reason through both branches.

3. **Review the full incremental surface:** `materialized='incremental'`, `incremental_strategy`, `is_incremental()` logic, `unique_key`, `partition_by`/`cluster_by`/`partitions`, `pre_hook`/`post_hook`, delete/overwrite/merge semantics, rolling window logic, deduplication choices.

4. **Identify hidden risks:**
   - hybrid full-refresh behavior hidden inside an incremental model
   - deletes outside expected scope
   - reprocessing more data than intended
   - partition/window drift and maintenance burden
   - strategy mismatch with the repo's established conventions
   - operational complexity without clear business benefit
   - confusing runtime behavior that future maintainers may misread

5. **Check downstream stability before recommending a change:**

   ```bash
   dbt ls --select <model>+
   ```

   Strategy changes can shift BI/reporting outputs; list affected downstream assets.

## Output

- A. Current model runtime behavior
- B. Repo convention comparison
- C. Strategy risks
- D. Whether the complexity is justified
- E. Safer alternative
- F. Minimal-diff recommendation
- G. Validation plan

## Verification

- [ ] Compiled SQL inspected, not just the Jinja source
- [ ] At least one comparable incremental model in the repo compared
- [ ] Delete/overwrite/merge scope stated explicitly
- [ ] Downstream assets listed before any strategy change is recommended
- [ ] Recommendation is a minimal diff and includes a validation plan

## Failure Modes

- **Praising cleverness** — operational complexity without clear business benefit is a finding, not a feature.
- **Reading Jinja instead of compiled SQL** — `is_incremental()` branches hide the real runtime behavior.
- **Auditing in isolation** — a strategy that is fine on its own may still be an unjustified deviation from repo conventions.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.