Four code-review agents, three Claude models, seven runs per case. Smaller models keep recall — and lose precision.
A reproducible flakiness benchmark built with 7runs. The agents still catch real
vulnerabilities on the cheapest model. What collapses is the other half of the job: on clean code
that merely looks dangerous, they start inventing issues.
336 AGENT EXECUTIONS · EVERY CHECK JUDGED TWICE (672 JUDGE CALLS) · 0 INFRA ERRORS · JUDGE PINNED TO SONNET-5 ACROSS ALL WAVES · WRONG ANSWERS NEVER RETRIED
THREE WAVES, THREE FINDINGS
WAVE 1 — EASY CASES
The only failure was environmental
84 runs. One failure — and it wasn't a missed vulnerability. One agent got distracted
by the machine's local config (plugins, connectors) and never reviewed the code. Isolate the
environment, and the failure disappears.
WAVE 2 — HARD CASES
At Opus, we couldn't break them
Obfuscated injection, false-positive bait, a vulnerability split across two files.
All four agents: 21/21 each. Difficulty with a clear answer is not the discriminating
axis at the top model tier.
WAVE 3 — MODEL AXIS
The curve finally bends
Same hard cases, smaller models. Sonnet holds ≈ Opus reliability. Haiku drops to
67–76% at ~3× lower cost — and the collapse is almost entirely on one case type.
THE LEADERBOARD — PASS RATE PER 21 RUNS (7 REPS × 3 CASES)
AGENT
W1 · EASY (NATIVE)
W2 · HARD (OPUS)
W3 · HARD (SONNET-5)
W3 · HARD (HAIKU-4-5)
COST/RUN (OPUS · SONNET · HAIKU)
security-auditor wshobson/agents
100%
100%
95%
76%
$0.034 · $0.020‡ · $0.010
code-reviewer wshobson/agents
100%
100%
100%
67%
$0.037 · $0.020‡ · $0.010
security-auditor VoltAgent
100%
100%
100%
67%
$0.039 · $0.024‡ · $0.012
Claude Code claude -p, Read/Grep/Glob only
95%*
100%
100%
76%
n/a†
Every 100% carries a Wilson 95% interval of [85%, 100%] at N=21 — "no failure
observed in 21 tries," never "perfect." Haiku CIs overlap heavily; the two same-name auditors swap
ranks between Sonnet and Haiku, so we do not claim an ordering between them.
* Wave 1 ran Claude Code with the user's full local config; the one failure was config distraction.
From Wave 2 on, the row is Claude Code restricted to Read/Grep/Glob with no skills/MCP.
† The shell adapter cannot capture token usage, so this row gets a reliability curve but no
cost point — we don't fabricate one. Costs are modeled from measured tokens × list prices; ‡ Sonnet-5 pricing is promotional ($2/$10 per MTok) through Aug 31, 2026; at the standard $3/$15 rate from Sep 1 the Sonnet points are $0.030–$0.035 — still at or below Opus.
execution actually ran on a Claude Code subscription.
WHERE IT BREAKS — THE FALSE-POSITIVE COLLAPSE
clean-code bait — runs that correctly said "no issue" (of 7)
On the two real vulnerabilities, every agent stayed at or near 7/7 even on Haiku
— recall survives the cheap model. On the clean-code bait, Haiku collapsed:
two agents became stable-fail (0/7 — reliably inventing an issue in safe code,
sometimes in code the diff never touched) and two became flaky (2/7). A consistently-wrong agent is
arguably worse than a flaky one: a single test run makes it look dependable. This distinction —
stable_fail vs flaky — only exists if you run the case more than once.
What this report does not claim
No model-vs-model verdicts: every number is a whole system (prompt + scaffolding + model). Two agents on the same model still differ.
No ranking of the two same-name security auditors: the winner flips between tiers and the intervals overlap. Ranking them needs more data, and we'd rather say that than force one.
Part of the Haiku penalty is rubric strictness: it often correctly calls the new code safe, then over-claims about pre-existing code and is failed for it. Logged, not hidden.
Three cases per suite is small. That's what makes it cheap to reproduce — and wide intervals are printed instead of pretended away.
REPRODUCE IT
Everything is public at
github.com/7runs/leaderboard — suites,
fixtures, vendored agent definitions (pinned to upstream commit SHAs), and the raw run records and
judge transcripts of all 336 executions, for replay. Each maintainer whose agent appears here was
notified with their results before publication and given a week to respond; responses are reflected
in the repo. Built with the 7runs measurement engine — to see it run on your
own agent, book a demo.