Skip to content

Choosing checkers

The agent roster carries five read-only checkers (reviewer, critic, tester, bugbot, security-review), and they overlap — so the coordinator does not run all of them on every task. Selection follows two independent axes:

  • Surface — what the change touches — decides which checkers are relevant.
  • Rigor — how hard the run tries — decides the inclusion threshold and effort on whichever checkers are relevant.

They are orthogonal on purpose: a medium-rigor change to an auth endpoint still needs security-review, while a high-rigor change to a pure-math utility needs none. The baseline is reviewer; every other checker is earned by the surface:

Checker Earns its slot when…
reviewer almost any non-trivial logic change (the baseline)
critic design judgment is involved — refactor, core/shared abstractions, non-obvious approach, possible symptom-patch
tester the project has a test suite and behavior changed
bugbot the diff is large or scattered, where mechanical bugs hide
security-review the change touches a security surface — input parsing, auth, file/network/subprocess I/O, deserialization, query building, secrets, user data

critic vs bugbot

critic and bugbot are complementary, not redundant. They overlap only on "a concrete bug in the diff"; their coverage differs in shape. critic is a scalpel — adversarial and anchored to the task's intent, so it catches symptom-fixes and weak assumptions. bugbot is a metal detector — a breadth-first mechanical sweep over the whole diff. The default is critic; bugbot is added when the diff is large or scattered, and both run together only when a change is both design-heavy and large.

Approval and aggregation

The selected checkers (and any deliberately skipped) are shown with a one-line justification at graph approval, so the choice is visible and you can veto or add one before the run starts. When several checkers run, their verdicts are aggregated once per wave: overlapping findings are de-duplicated, a single fix-or-ship decision is made (any P0 → fix cycle), and a fix cycle re-runs only the checkers that failed (plus a cheap reviewer confirmation) rather than the whole panel.