Adovo

Data & Analytics

dbt slim CI builds more models than the pull request changed

A CI job can select an unexpected graph when its state baseline or downstream selection differs from the team’s assumptions. Inspect the manifest and selector.

October 24, 2026

A small dbt pull request starts a large CI build, or unexpectedly skips a model. A dbt Community discussion shows how quickly a team can lose confidence in “slim” CI when the selected graph is opaque. The first step is to inspect the comparison state, not to weaken tests.

Name the baseline being compared

dbt CI compares the pull request with a production state and builds modified assets plus downstream dependencies in an isolated schema. Record the deferred environment, last successful production job, manifest generation time and PR commit. A stale or missing baseline changes what “modified” means.

Explain the selector as a graph

Review the actual command and selector, including a trailing + that includes descendants. dbt deferral guidance distinguishes state selection from resolving unbuilt parents against another environment. Generate and review the selected node list before the expensive build; compare a supposedly surprising model’s dependency path to the changed node.

Check the run’s purpose

A scheduled deploy job and a PR CI job have different objectives. dbt warns that state:modified on a scheduled job may complete with zero models when no code changed, even if source data did. Keep code-change selection for CI; make data-refresh behavior explicit in production scheduling.

Adovo’s view

Fast CI is useful only when engineers can explain what was tested. Preserve the manifest, selector and selected-node list as release evidence so “green” means a known slice of the data contract passed.

Continue exploring

Data & Analytics

dbtIncremental Models

A dbt incremental run replaces a production table with empty data

An unexpected initial-build path can turn an incremental model run into a table replacement. Protect row counts and rebuild authorization while retaining managed schema evolution.

Read more

Data & Analytics

dbtData quality

dbt tests failed: how to hand the actual rows to the business owner

A failed test alert is not a remediation queue. Store or model failed records with keys, ownership and retention so the source can be corrected.

Read more

Data & Analytics

dbtIncremental models

dbt incremental model misses lookup changes: rebuild the affected keys

A source row stays unchanged while its joined lookup value changes. The dbt run passes but the served dimension remains stale.

Read more
Explore data and analytics services →