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.