AI.Agent.Review.Decomposer (fnord v0.9.29)

View Source

Triage agent for code reviews. Estimates change complexity, partitions large changes into right-sized review units, fans out scoped Reviewers in parallel, optionally runs an integration review for cross-component seams, and synthesizes a deduplicated final report.

Sits between the reviewer_tool and AI.Agent.Review.Reviewer. Small changes (< 3 scrum points) pass through to a single Reviewer with full scope. Larger changes are decomposed so each Reviewer sees only a focused subset of files and concerns.

Pipeline

  1. Estimate - read the diff, estimate scrum points (1-13), identify files to exclude from review (vendored, generated, lockfiles).
  2. Partition (>= 3 points) - split into ~3-point review units, each described as a self-contained briefing string for a scoped Reviewer.
  3. Fan-out - delegate to N scoped Reviewers (and an integration reviewer for >= 5 points), all running in parallel.
  4. Synthesize - deduplicate findings across review units, merge findings with the same root cause, produce a final severity-grouped report.

Steps 2-4 are injected dynamically via get_next_steps/2 based on the estimate result. This is the first composite agent to use dynamic step generation.

Summary

Functions

Build the small-reviewer scope using only the original scope and estimate.

Functions

build_small_scope(original_scope, estimate)

@spec build_small_scope(binary(), map()) :: binary()

Build the small-reviewer scope using only the original scope and estimate.

Legacy/test helper: extracts :constraints from the estimate if present (tests may inject them), otherwise defaults to an empty list. Production flow uses build_small_scope/3 with constraints from composite state.