Configuration

Create a .dbt-doctor file in your dbt project root.

Format: KEY=value (# comments allowed).

CLI flags override file values.

Minimal starter

preset=default
fail_on=error

Common setups

preset=strict
fail_on=warning
diff=main
manifest_path=target/manifest.json

Full governance

preset=enterprise
fail_on=warning
score_mode=files

Local-only fast mode

preset=default
fail_on=none

SQL mode

Native SQL rules are enabled by default.

Native only (no Python)

skip_sqlfluff=true

Use SQLFluff too

skip_sqlfluff=false
adopt_existing_sqlfluff_config=true

Most-used keys

Key Values Purpose
preset default, strict, enterprise Rule bundle
fail_on error, warning, none CI exit behavior
diff true or branch name Changed-files scan
manifest_path file path Enable manifest-aware checks
score_mode files, unique-rules Score formula
fail_project_under number (0–100) Fail when project score is below threshold
fail_any_item_under number (0–100) Fail when any per-model score is below threshold
ignore.rules comma list Skip specific rules
ignore.files glob list Skip all rules on files
ignore.tags comma list Skip rule families
rules.<id> error, warn, off Override one rule severity
rules.<id>.<option> string/number/bool/list Per-rule options

Preset behavior

  • If preset is omitted, dbt-doctor uses default.
  • strict = default + docs + SQL style checks.
  • enterprise = full catalog.

See Presets for details.

Focused override example

preset=strict
fail_on=warning

# Temporary legacy suppression
ignore.files=models/legacy/**

# Promote a specific rule
rules.no-select-star=error

# Rule-specific option
rules.model-name-contract.pattern=^(stg|int|fct|dim)_[a-z0-9_]+$

Score thresholds (CI gates)

Fail the job when scores drop below a minimum (requires a score to be computed - do not use --offline if you rely on these):

fail_project_under=70
fail_any_item_under=50

Combine with CLI flags --coverage and --show-per-model-scores when you want per-model visibility. See Score Modes.