900 pre-registered runs · 6 architectures · 3 models
Scale beat scaffold.
We ran planners, verifiers, worker pools, selectors and review gates against a plain single agent on Haiku 4.5, Sonnet 5.5 and Opus 5.5. On no model did any scaffold measurably beat the single agent, and every one cost 1.3 to 4.8 times as much per task. One step up in model bought more score than any scaffold did.
- scaffolds that beat a single agent
- 0 / 15
- 5 architectures × 3 models, paired by task, Holm-adjusted
- what a scaffold costs per task
- ×1.3–4.8
- 15 of 15 shown costlier than the single agent
- score from one model step up
- +0.13
- Haiku 4.5 → Sonnet 5.5, single agent, at ×1.24 the cost
- from the best Haiku 4.5 scaffold
- +0.04
- Propose-select, not separable, at ×4.34 the cost
Single
one agent
$0Plan-execute
a planner, then an executor
$0Orchestrator-workers
an orchestrator fanning out to parallel workers, then a synthesis
$0Plan-execute-verify
a planner, an executor and a verifier that can loop back
$0Propose-select
three parallel proposers, a selector, then an executor
$0Gated-execute
an agent whose actions pass through a reviewer gate
$0
Same task, same model, 6 harnesses: $0.031 to $0.199 a run (6.4×), 26.0s to 3m 5s, scores 0.000 to 1.000.
The result · scaffold-or-scale-v1
Within a model, the scaffolds scatter around the plain agent. Across models, the plain agent climbs.
Five scaffolds against a single agent on three Claude models: 15 paired comparisons, none separated in the scaffold's favour. On Haiku 4.5, four of the five scored below the agent they wrap.
Show the numbers
| Model | Architecture | Score | 95% CI | Cost / run | vs single (Holm) |
|---|---|---|---|---|---|
| Haiku 4.5 | Single | 0.771 | [0.673, 0.868] | $0.091 | control |
| Haiku 4.5 | Plan-execute | 0.754 | [0.634, 0.862] | $0.128 | −0.017 · inconclusive |
| Haiku 4.5 | Orchestrator-workers | 0.701 | [0.573, 0.824] | $0.171 | −0.070 · inconclusive |
| Haiku 4.5 | Plan-execute-verify | 0.723 | [0.588, 0.845] | $0.305 | −0.048 · inconclusive |
| Haiku 4.5 | Propose-select | 0.809 | [0.711, 0.901] | $0.373 | +0.038 · inconclusive |
| Haiku 4.5 | Gated-execute | 0.677 | [0.534, 0.809] | $0.862 | −0.094 · inconclusive |
| Sonnet 5.5 | Single | 0.900 | [0.843, 0.947] | $0.116 | control |
| Sonnet 5.5 | Plan-execute | 0.933 | [0.895, 0.966] | $0.146 | +0.034 · inconclusive |
| Sonnet 5.5 | Orchestrator-workers | 0.924 | [0.883, 0.962] | $0.216 | +0.025 · inconclusive |
| Sonnet 5.5 | Plan-execute-verify | 0.930 | [0.856, 0.985] | $0.278 | +0.031 · inconclusive |
| Sonnet 5.5 | Propose-select | 0.939 | [0.903, 0.972] | $0.437 | +0.040 · inconclusive |
| Sonnet 5.5 | Gated-execute | 0.927 | [0.889, 0.963] | $0.495 | +0.028 · inconclusive |
| Opus 5.5 | Single | 0.939 | [0.903, 0.974] | $0.252 | control |
| Opus 5.5 | Plan-execute | 0.947 | [0.913, 0.977] | $0.336 | +0.008 · inconclusive |
| Opus 5.5 | Orchestrator-workers | 0.921 | [0.869, 0.961] | $0.459 | −0.019 · inconclusive |
| Opus 5.5 | Plan-execute-verify | 0.947 | [0.890, 0.986] | $0.561 | +0.008 · inconclusive |
| Opus 5.5 | Propose-select | 0.958 | [0.925, 0.985] | $0.928 | +0.018 · inconclusive |
| Opus 5.5 | Gated-execute | 0.956 | [0.922, 0.985] | $0.934 | +0.016 · inconclusive |
Read this before quoting it
- 25 tasks are 25 clusters. Power is set by the task count, not the number of runs, so most contrasts are inconclusive rather than shown equivalent: “no scaffold won” is not “every scaffold is useless”.
- Opus 5.5 had little headroom. Its single agent already scored 0.939, and on 10 of the 25 tasks every architecture scored 0.99 or more, leaving no room to show a gain.
- We wrote the pre-registration. It was committed and tagged before the runs, and the single pilot and what it changed are disclosed in it.
- Our first leaderboard was wrong. Four of five designs never ran as designed; every run now has to prove it did. Read the post-mortem.
Pre-registration scorecard
We wrote down six predictions before the first run. Half of them failed.
The hypotheses, the analysis and its settings were committed and tagged prereg-v1 before any of the 900 runs. Each verdict below is recomputed from the run records by the same code, with Holm adjustment within each family.
- ✓ 1 supported
- ≈ 1 consistent
- ◐ 1 partial
- ✗ 3 not supported
- H1Not supported
Confirmatory
Scaffolds help the small model
Predicted: On Haiku 4.5, plan-execute-verify or gated-execute scores better than a single agent.
Neither separated, and both point estimates are below zero: Plan-execute-verify −0.048 [−0.171, +0.051], Gated-execute −0.094 [−0.215, +0.005].
- H2Consistent
Confirmatory
Scaffolds stop paying on the large model
Predicted: On Opus 5.5, no architecture scores better than a single agent.
None of 5 is better. None is shown equivalent either, so the data cannot say the gain is under 0.05.
- H3Supported
Confirmatory
Every scaffold costs more
Predicted: On every model, every multi-call architecture costs more per task than a single agent.
15 of 15 costlier, each interval above ×1: ×1.34 to ×4.77 the cost of a run.
- H4Not supported
Secondary
The gain shrinks as models scale
Predicted: Plan-execute-verify gains more over a single agent on Haiku 4.5 than on Opus 5.5.
Difference in gains −0.056 [−0.181, +0.050]: inconclusive, and the wrong sign.
- H5Partial
Secondary
Scale beats scaffold, one step up
Predicted: A single agent on Sonnet 5.5 scores better than every architecture on Haiku 4.5.
3 of 6 shown below Sonnet’s single agent (Orchestrator-workers, Plan-execute-verify, Gated-execute); the other 3 are below it on point estimates but not separated after Holm. None matches it while costing less.
- H6Not supported
Descriptive only
Fan-out buys time on breadth research
Predicted: On the gold-key research tasks, orchestrator-workers ties a single agent on score and is faster.
Three tasks, so no verdict. Orchestrator-workers was slower on 3 of 3 models (median 71 s vs 69 s; 44 s vs 27 s; 64 s vs 34 s).
H1–H3 are confirmatory (the baseline family); H4 and H5 are secondary, each its own family; H6 has three tasks, fewer than the five a verdict needs, so it is described rather than tested. The pre-registration also discloses the pilot and the two changes it led to. Every number: REPORT.md.
One thing worth a second lookExploratory · not pre-registered
Plan-execute on Sonnet 5.5 matched a single agent on Opus 5.5, at ×0.64 the cost.
The planner did not separably beat Sonnet 5.5's own single agent (+0.034, not separable). What it did was close enough of the gap to Opus 5.5 for the equivalence test to pass: within ±0.05 of Opus 5.5 working alone, on the same tasks and repeats. Sonnet 5.5's single agent is cheaper still (×0.48) but scored −0.040 against it, not separable. The comparison comes from the analysis's scale family, computed but not predicted, so read it as a lead for the next run set rather than a finding of this one.
- Score difference
- −0.006
- 95% CI [−0.033, +0.020]
- Verdict
- equivalent
- within ±0.05, two one-sided tests
- Cost ratio
- ×0.64
- paired, geometric mean per cell
- Pairs
- 50
- 25 tasks, paired by task and repeat
Read the traces
The averages hide the runs. Here are a few, call by call.
Every prompt, tool call, review and verdict is recorded. The repository keeps 9 of the 900 traces, chosen to show a design at work; every run's score, phases and final answer are on its page.
- Gated-execute · Haiku 4.50.000
A gate that blocked the right move
Haiku 4.5 behind a review gate: the first reviewer denied the cancellation the task called for, reasoning that the flight had already flown, and the second approved closing the fare out instead. 0.000 for $0.086; the plain single agent solved the same task for $0.031.
$0.086 · 1m 17s · airline-hard
- Propose-select · Haiku 4.51.000
Three proposals beat one agent
A propose-select win: three plans, one selected and executed, scoring 1.000 where the single Haiku agent on the same task and repeat scored 0.429. It cost 4.4× as much.
$0.114 · 51.9s · airline-easy
- Plan-execute-verify · Sonnet 5.51.000
A verifier that earned its keep
Sonnet 5.5 planned, executed, was sent back by its verifier, revised once and passed verification: a full 1.000 on a hard task.
$0.177 · 1m 20s · ecommerce-hard
Replay the six-way race above, call by call →A revision that did not help →The control, missing a step →
The evidence, model by model
Each scaffold against its own single agent: what it gained, and what it cost.
Every architecture against a plain single agent on the same model, the same tasks and the same repeats. Up the page is score gained; across it, what that cost. An interval wholly above the grey band is structure that bought real score.
None of the 15 architecture–model combinations scores reliably above a single agent. All 15 are equivalent to it or not separable at this sample size.
Show the numbers
| Model | Architecture | Δ score | interval | Cost × | interval | Verdict |
|---|---|---|---|---|---|---|
| Haiku 4.5 | Plan-execute | −0.017 | −0.143 to +0.084 | 1.5× | 1.4×–1.7× | inconclusive (too few tasks carry the spread to show equivalence) |
| Haiku 4.5 | Orchestrator-workers | −0.070 | −0.152 to −0.001 | 2.0× | 1.6×–2.5× | inconclusive (too few tasks carry the spread to show equivalence) |
| Haiku 4.5 | Plan-execute-verify | −0.048 | −0.171 to +0.051 | 3.3× | 2.9×–3.9× | inconclusive (too few tasks carry the spread to show equivalence) |
| Haiku 4.5 | Propose-select | +0.038 | −0.018 to +0.094 | 4.3× | 4.0×–4.7× | inconclusive |
| Haiku 4.5 | Gated-execute | −0.094 | −0.215 to +0.005 | 4.8× | 2.9×–7.7× | inconclusive (too few tasks carry the spread to show equivalence) |
| Sonnet 5.5 | Plan-execute | +0.034 | 0.000 to +0.087 | 1.3× | 1.3×–1.4× | inconclusive (too few tasks carry the spread to show equivalence) |
| Sonnet 5.5 | Orchestrator-workers | +0.025 | −0.005 to +0.078 | 1.8× | 1.5×–2.2× | inconclusive (too few tasks carry the spread to show equivalence) |
| Sonnet 5.5 | Plan-execute-verify | +0.031 | −0.019 to +0.077 | 2.4× | 2.2×–2.6× | inconclusive (too few tasks carry the spread to show equivalence) |
| Sonnet 5.5 | Propose-select | +0.040 | +0.003 to +0.095 | 4.1× | 3.8×–4.3× | inconclusive (too few tasks carry the spread to show equivalence) |
| Sonnet 5.5 | Gated-execute | +0.028 | −0.012 to +0.083 | 2.6× | 2.0×–3.5× | inconclusive (too few tasks carry the spread to show equivalence) |
| Opus 5.5 | Plan-execute | +0.008 | −0.020 to +0.039 | 1.4× | 1.3×–1.6× | inconclusive (too few tasks carry the spread to show equivalence) |
| Opus 5.5 | Orchestrator-workers | −0.019 | −0.051 to +0.006 | 1.8× | 1.5×–2.2× | inconclusive (too few tasks carry the spread to show equivalence) |
| Opus 5.5 | Plan-execute-verify | +0.008 | −0.042 to +0.053 | 2.4× | 2.1×–2.7× | inconclusive (too few tasks carry the spread to show equivalence) |
| Opus 5.5 | Propose-select | +0.018 | 0.000 to +0.043 | 4.1× | 3.7×–4.5× | inconclusive (too few tasks carry the spread to show equivalence) |
| Opus 5.5 | Gated-execute | +0.016 | 0.000 to +0.041 | 2.5× | 1.9×–3.2× | inconclusive (too few tasks carry the spread to show equivalence) |
How we got here · Act 1: the harness that lied
The leaderboard said five architectures tied. The traces said four of them never ran as designed.
The first published run set, 90 runs on Sonnet 5 in July 2026, scored every architecture between 0.980 and 1.000. Reading the traces showed why it looked like a tie: 4 of the 5 designs never executed as designed, so what was measured was mostly a single agent with dead steps around it. No run crashed, and every score looked plausible.
Singleran as designed
The control: one agent, nothing to skip. It ran as designed in 18/18 runs.
Scored0.990Plan-executedid not run as designed
- 18/18runs: the planning phase ended in an error
Scored0.990Orchestrator-workersdid not run as designed
- 18/18runs: the decomposition phase ended in an error
- 18/18runs: the task went to a single worker
Scored0.980Plan-execute-verifydid not run as designed
- 18/18runs: the planning phase ended in an error
- 18/18runs: the verifier sent nothing back for revision, including the 1 that scored below 1.0
Scored0.990Propose-selectdid not run as designed
- 36/54proposals made without a single tool call
- 18/18runs: the selection phase ended in an error
Scored1.000
The fault was in our harness, not the models. The sandbox guard denied the tool the Agent SDK uses for structured output, so planning, decomposition and selection steps could not hand back their result, and with a single turn they had no way to recover. The guard recorded denials in 70 of 90 runs.
So a run now has to prove that its architecture executed: each design declares checks such as “the plan was not empty” or “the work fanned out”, and a run that fails one is excluded from every ranking on this site and counted instead. The records behind every number above stay in the repository, unchanged, as evidence: results/2026-07-25T20-18-35Z-3fs5.
Why you can trust this
Trust, but verify: each claim links to the code that enforces it.
Proof the design ran
Each architecture declares what running as designed looks like: a non-empty plan, a real fan-out, a parsed verdict. A run that fails a check is excluded from rankings and counted, never scored.
Same inputs for every design
Every architecture gets the same model, tools, task prompt, domain policy and budget. Only the harness around the model changes.
Scored by state, not by vibes
Tool-use tasks are graded by checking the final state of the world and the journal of tool calls: no language model decides who won. Research tasks are graded by a judge model against a rubric, and say so.
A sandbox that says no
A guard denies any tool outside the task’s toolset, before it runs, and every denial is written to the trace.
Paired, task-clustered statistics
Architectures are compared on the same task and repeat, bootstrapped over tasks so repeats are not mistaken for independent evidence.
Outages are not failures
A run lost to the API is never scored as the architecture failing. It is excluded from every ranking and reported in the health count.
Explore
Go as deep as the data goes.
Results
Every architecture on one model at a time: mean score with its interval, cost and latency.
Where it breaks
Architecture by task, down to every repeat. Click a square to read the run.
Score against cost
The plane architectures are actually chosen on, with intervals on both axes.
The six designs
Each architecture drawn as the calls it makes, what each call costs, and the checks that prove it ran.
Harness health
Every integrity check, how often it held, and each run that was left out because one did not.
Replay a run
Watch a recorded run call by call, then re-run any cell yourself on your own machine and key.