AI

One-shot LLM review produces confident approvals at machine speed, and confident approval is the most expensive output in software. The fix is structural, not a better prompt.

August 8, 2026
7 min read
#ai-code-review#multi-agent#engineering-leadership
Your AI Code Reviewer Agrees With Everything. That Is the Bug.⊕ zoom
Share

The most expensive output in software is not a bug. It is a confident approval of a bug.

Teams are now wiring LLMs into their pull requests and celebrating the volume of feedback that comes back. Look closer at what those bots actually produce: style nits, naming suggestions, a summary of the diff, and an approval. The one thing they almost never produce is the comment that would have stopped a production incident. That is not a model quality problem. It is a structural problem, and adding a bigger model to the same structure makes it worse — you get more fluent agreement, faster.

I run a team of 12 engineers, and I run multi-agent review pipelines on my own systems every night. The difference between the reviews that catch real defects and the ones that rubber-stamp is not the model. It is whether the system separates the agent that finds a problem from the agent whose job is to kill the finding.

A One-Shot Review Is a Fluency Check, Not a Verification

A single LLM pass over a diff answers one question: does this code look like correct code? That is a plausibility judgment, and LLMs are exceptionally good at it — which is exactly the danger. Plausible and correct diverge in all the places that matter: off-by-one boundaries, error paths that swallow the wrong exception, a cache invalidation that misses one write path, a migration that is safe on the happy path and destructive on retry.

Linters do not have this problem because they do not have opinions. They check decidable properties and stay silent about everything else. The one-shot LLM reviewer occupies the worst position on the spectrum: it comments on everything, which trains your engineers to skim it, and it validates by pattern rather than by tracing execution, which means its confidence carries no information.

There is a second failure mode that engineering managers should recognize immediately, because we already solved it once with humans. A reviewer who both generates the assessment and blesses it is grading their own homework. Human review culture built norms against this — you do not approve your own PR, the senior reviewer asks for a failure case, someone plays skeptic. We wired LLMs into the review slot and quietly dropped every one of those norms. The bot proposes a finding and adjudicates it in the same forward pass. Of course it agrees with itself.

INSIGHT

An approval only carries information if the approver was capable of rejecting. A one-shot review bot is structurally incapable of rejecting its own analysis, so its approval is noise with good grammar.

Call this the rubber-stamp equilibrium: the bot comments enough to look useful, approves enough to never block anyone, and the team stops reading it within a month. Every metric on the dashboard improves. Nothing about defect escape rate changes.

Separate the Finder From the Verifier

The fix is the same control that banking, aviation, and intelligence analysis converged on decades ago: maker-checker separation. The agent that produces a claim never gets to be the agent that certifies it.

In an agentic review pipeline, that looks like two distinct roles with opposed incentives. Finders sweep the diff in parallel — one per dimension, so a correctness agent, a security agent, a concurrency agent, a performance agent, each with a narrow brief and no obligation to be balanced. Their job is to over-generate: surface everything suspicious, including things that turn out to be fine. Then every finding is handed to an independent verifier whose prompt is adversarial by design — reproduce this failure with concrete inputs, or refute it and explain why the finder was wrong. The verifier never saw the finder's reasoning, only the claim. It gets no credit for agreeing.

This is finder/verifier separation, and it changes the failure math. A one-shot reviewer's errors are correlated with themselves — the same pass that hallucinated the finding defends it. A finder and an independent verifier fail independently, so a hallucinated finding has to survive a hostile second opinion that was explicitly instructed to kill it. Most do not survive.

Finder output killed in verification
30-50%
Typical kill rate across my nightly review swarms — findings that read as plausible and die on adversarial reproduction.

That kill rate is the whole point. In my own pipelines, verifiers routinely refute a third to half of what finders raise. Every one of those kills is a false positive your engineers never had to triage — and the findings that survive arrive with a concrete failure scenario attached, not a vibe. The signal-to-noise problem that makes teams ignore review bots is solved at the architecture layer, not the prompt layer.

What Adversarial Structure Catches That Single-Pass Misses

The obvious win is fewer false positives. The deeper win is a class of true positives that single-pass review is structurally blind to.

Failure-scenario defects. A verifier forced to produce "these inputs, this state, this wrong output" has to actually trace execution. That tracing is where the real bugs live — the retry path that double-charges, the timezone boundary that skips a day, the lock ordering that deadlocks under load. A plausibility pass glides over all of these because the code looks like code that handles them.

Cross-file invariants. One-shot review sees a diff. Parallel finders can each be pointed at a different question — does this schema change break every consumer, does this renamed event still match the string the other service subscribes to. The 2 a.m. incidents in distributed systems are almost never inside one file, and a reviewer scoped to one file will never see them.

The unknown-unknown tail. A fixed single pass finds a fixed fraction of what is there. An agentic pipeline can loop — re-sweep with fresh finders until consecutive rounds surface nothing new. Discovery problems have long tails, and "run once" is a coverage decision most teams never consciously made.

This is the same discipline I built into the InDecision Framework for market calls: signal generation and conviction scoring are separate stages, and a signal that cannot survive the scoring layer never becomes a position. 82.5% directional accuracy did not come from a smarter signal generator. It came from refusing to let the generator grade itself. Code review is the same problem wearing different clothes.

What This Means If You Run a Team

First, stop evaluating AI review tools by comment volume or by demo quality. Ask one question: is the thing that finds the issue the same thing that decides the issue is real? If yes, you are buying a rubber stamp with better grammar, and your engineers will learn to ignore it faster than you can renew the contract.

Second, reposition your senior engineers instead of pretending the pipeline replaces them. The machine layer over-generates and adversarially filters; the human layer sits at the verdict point, ruling on the small set of findings that survived verification. That is a better use of a staff engineer's hour than nit-scanning 400 lines of diff, and it keeps the judgment where judgment actually pays.

SIGNAL

The build-vs-buy calculus has shifted. Finder/verifier pipelines are a few hundred lines of orchestration over models you already pay for — the expensive part is not the code, it is deciding what your verifiers must refute before a finding reaches a human.

Third, budget for the compute honestly. Adversarial review costs a multiple of one-shot review — five finders and three verifiers per finding is real money at scale. Price it against what it replaces: one production incident, one senior engineer's week lost to a subtle regression, one customer-facing data bug. The multiple stops looking expensive. If you want the full discipline — gates, verification loops, review as a pipeline rather than an event — I teach the working version in the Quality Engineering track.

The uncomfortable summary is that we already knew all of this. No functioning engineering org lets an author approve their own change, and no functioning intelligence shop lets an analyst certify their own estimate. The first generation of AI code review shipped without that structure because agreement is cheap to generate and pleasant to receive. The teams that win the next few years will be the ones that treat AI reviewers the way they treat human ones — useful exactly to the degree that someone independent is trying to prove them wrong.

Go deeper in the AcademyElite

Ready to go from single-agent to fleet? The Multi-Agent Systems track covers everything. 11 lessons.

Start the Multi-Agent Systems track →

Explore the Tesseract Labs Ecosystem

// Join the Network

Follow the Signal

If this was useful, follow along. Daily intelligence across AI, crypto, and strategy — before the mainstream catches on.

No spam. Unsubscribe anytime.

Share
// More SignalsAll Posts →