Feature
Add a new native primary agent, dbt-optimizer, that scans an existing dbt project for concrete, fixable issues and proposes targeted fixes with cost and impact reporting. This is the agent behind the planned Optimize workflow.
Input: an existing dbt project (connected repository and environment).
Output: candidates (detected issues), fixes for user-selected candidates, impact reports (batch effect incl. estimated cost change), and PRs for applied fixes.
Detection scope (from the dbt-optimization taxonomy research, docs/internal/2026-08-12-dbt-optimization-taxonomy-research.md):
- materialization & incremental processing (strategy-aware: merge / delete+insert / insert_overwrite / microbatch, precondition-gated)
- warehouse physical design (clustering / partitioning / sort keys, query-history gated)
- SQL anti-patterns, DAG economics (fan-out, duplicate scans, dead models), run-level orchestration (Slim CI, threads, full-refresh overuse), tests/docs/storage
Safety requirements: scan phase is read-only; warehouse writes denied non-overridably; SQL rewrites gated on decidable equivalence; cost claims only from attributed query-history evidence.
Named dbt-optimizer (not optimizer) because more optimizer agents are planned later.
Feature
Add a new native primary agent,
dbt-optimizer, that scans an existing dbt project for concrete, fixable issues and proposes targeted fixes with cost and impact reporting. This is the agent behind the planned Optimize workflow.Input: an existing dbt project (connected repository and environment).
Output: candidates (detected issues), fixes for user-selected candidates, impact reports (batch effect incl. estimated cost change), and PRs for applied fixes.
Detection scope (from the dbt-optimization taxonomy research,
docs/internal/2026-08-12-dbt-optimization-taxonomy-research.md):Safety requirements: scan phase is read-only; warehouse writes denied non-overridably; SQL rewrites gated on decidable equivalence; cost claims only from attributed query-history evidence.
Named
dbt-optimizer(notoptimizer) because more optimizer agents are planned later.