The case against a second AI reviewer is always the same and always reasonable: the first reviewer is thorough, the ritual is established, it already catches real bugs, and every extra pass costs time and money. This factory ran on that logic for a while, and its single-reviewer ritual genuinely earned its keep. Then, in roughly two weeks across four different labs, a second, independent model caught five things the first reviewer missed or could not have established alone. Different failure modes every time, one lesson every time.

Exhibit one: the fabricated example

A design pack for a new gremlin included a waiver example: a specific account name in a specific CI file, concrete and plausible. The adversarial critique pass, run on a different model, checked the example against the actual repository and found it did not exist; the design had invented it. The finding forced the fabricated example’s deletion, and, better, a supervised dry-run of the waiver mechanism was added to the plan’s first phase, replacing an invented proof with a scheduled real one. The same critique caught a false invariant nearby (“the only writes are archive moves”) and replaced it with a real write-path allowlist. Its overall verdict was amend, not approve, and every amendment is tagged in the shipped docs.

Exhibit two: two cold reviews, one verdict

A drafted spec proposed a live work graph with session coordination: leases, blocking, RED defaults. Two adversarial reviews ran from one identical written brief, fresh-context, in parallel: one on a Claude-family model, one on Codex. They disagreed on severity grading and converged on every conclusion that mattered: live coordination belongs in a different lab; the storage design honestly carries observational logging only; the draft’s first phase secretly depended on machinery from later phases; “advisory by default” was contradicted by its own blocking behaviour. The reconciliation turned a locking system into an observability experiment. The session log is explicit about why two reviewers were needed: the first reviewer was a Claude-family model reviewing a Claude-filed framing, so the second family exists to offset same-family bias, and the convergence, not either review alone, is the load-bearing signal.

Exhibits three, four, five: the diff-level catches

On a sandbox review, Claude’s finder pass and a Codex persona panel, run independently on the same diff, both surfaced the same fail-open default and the same duplicated canonicalization: one blind spot, found twice, which is confirmation no single reviewer can produce. On a share-mount changeset, the second model caught a security check verifying a hardcoded default secret path while silently ignoring the configured one, a setting still load-bearing for signing that had quietly stopped being load-bearing for containment. And on an architecture-metadata judgment call, the question went to the second model as a written contract with explicit options; its recommendation came back with citations, and the citations were independently re-verified before the fix was applied, cross-model review of a design decision rather than a diff.

The part worth stealing

The economics moved. A second cold review costs minutes, and this fortnight’s ledger says what it buys: one fabricated fact, one system rescoped before it was built wrong, one bug confirmed to certainty, one inert security check, one design decision grounded in verified citations. If your AI-written changes are reviewed by the ecosystem that wrote them, run one genuinely cold second-model pass on your next material change and treat whatever it catches, or confirms, as the data.

What Next

The Gateway Reviews Its Own Changesets

The prequel, already live: what the single-reviewer ritual catches on its own, and the fail-open regression that proved a ritualised one-reviewer pass is worth having before you add the second.