Build-Loop Autoresearch — the 25 Experiments

2026-06-11 · opus as coordinator throughout · every hypothesis pre-registered with a prediction · ~$165
Method: mine existing run artifacts first (free), micro-test phrasings with controls next (~$1–5), spend full eval runs only where the cheaper tiers couldn't answer (~$7–15 each). Every automated score got a manual inspection pass — which caught and corrected three measurement bugs mid-loop (a grep counting template echoes as findings, a harness that never inlined the diff it claimed to test, a scorer regex blind across newlines). One retracted verdict was re-measured clean. Quality gates (planted-defect scenario) guard every config change; negative results get equal billing.

Mining the corpus — ten experiments from runs we already had

E02Do Interfaces blocks cut implementer exploration?REFUTED

What it tested
Whether the per-task Interfaces blocks (exact signatures consumed/produced) reduce how much implementers poke around the codebase before editing.
How
Mined per-subagent tool-call profiles from completed runs: elicited plans (with Interfaces) vs control plans (without), complete code held constant.
Pre-registered prediction
Elicited implementers make fewer pre-edit reads.
What happened
No reduction: 1.9 pre-edit explores with Interfaces vs 1.3–1.5 without. But the mining surfaced something bigger — the transcription effect quantified: implementers on complete-code plans run 17–24 turns with 1.3–1.9 explores, vs 36.7 turns and 5.6 explores on prose plans. The plan's code, not its interface annotations, is what keeps implementers on rails.
So what
Interfaces earn their keep elsewhere (fix-wave reduction, cross-task consistency) — not navigation.

E04Does the controller waste money reading report files?ALREADY OPTIMAL

What it tested
The brief/report file design intends to keep bulk text out of the controller's context. Does the controller defeat it by reading the reports anyway?
How
Counted controller Read calls touching report files across five runs.
Pre-registered prediction
Controller reads report files in under 30% of tasks.
What happened
0–1 report-file reads per run across all five runs. The handoff design works exactly as intended.
So what
Lead closed — no saving available.

E07Is the implementer self-review step worth its turns?REFUTED (THE GREP LIED)

What it tested
Implementers self-review before handoff. Does that step catch enough to justify its cost?
How
Grepped 87 implementer transcripts for self-review findings — then manually read every match, per the methodology rule.
Pre-registered prediction
Self-review catches something in >25% of tasks.
What happened
The grep claimed 9 catches in 87. Manual inspection killed 8 of them as template echoes in dispatch prompts. True catch rate: 1 in 87 — an unanchored .gitignore entry that would have blocked staging. In the complete-code regime there is almost nothing for self-review to catch.
So what
Kept anyway: one averted fix wave (~$0.75) per ~87 tasks roughly pays for the turns, and catching before review is far cheaper than after. No change.

E08Can fix subagents run on the cheapest tier?CONFIRMED AS-IS

What it tested
Post-review fixes are usually mechanical. Do haiku fixers hold up?
How
Mined every fix dispatch across the whole run corpus: model used, run outcome.
Pre-registered prediction
Holds; small saving.
What happened
34 haiku fix dispatches across passing runs — controllers already tier fixes down on their own. The one bad incident (a fixer's go mod tidy silently removed cobra) was caught by the existing fix-report contract.
So what
No skill change needed; the behavior already exists and the safety net already works.

E14Is dispatch cache behavior healthy?ALREADY OPTIMAL

What it tested
If subagent dispatches were cache-missing, reordering could save money.
How
Mined token-usage records from controller transcripts.
Pre-registered prediction
cache_read dwarfs uncached input; no win available.
What happened
Cache reads 7.7–30.7M vs only 19–31k uncached input tokens. Cache health is excellent; the cost axis is resident-context size, not hit rate.
So what
Lead closed.

E15Can reviewers be squeezed further?ALREADY AT FLOOR

What it tested
The reviewer risk budget was tuned earlier. Is there anything left?
How
Mined reviewer subagent profiles across complete-code runs.
Pre-registered prediction
No win available; close the lead.
What happened
Reviews run 4.7–5.0 turns / 2.7–3.0 tools everywhere packages exist (prose-plan runs: 10.1 turns / 6.8 tools). The package did the work; the budget binds.
So what
Lead closed.

E18Does coding-agent verbosity drive QA-agent cost?REFUTED

What it tested
If the eval QA agent's cost tracked the coding agent's message volume, terse final messages would cut eval costs too.
How
Correlated gauntlet token spend against coding-run duration across 30 fractals runs.
Pre-registered prediction
QA tokens correlate with coding final-message volume.
What happened
QA cost tracks duration (r=0.43) — the QA agent polls the screen. Message volume is irrelevant.
So what
Faster runs cut eval costs automatically; nothing else to do.

E19Is TodoWrite + ledger double bookkeeping?PREMISE REFUTED

What it tested
The skill asks for todos and a progress ledger. Dropping todos might save controller calls.
How
Counted TodoWrite calls in controller transcripts.
Pre-registered prediction
Todos redundant with the ledger for ≤10-task plans.
What happened
Zero TodoWrite calls in any measured run — controllers already run ledger-only. Bonus: controller tool calls scale with task count (49 on a 7-task plan vs 74 on a 10-task plan).
So what
No duplication exists to remove.

E20Is the TDD-evidence block in reports load-bearing?CONFIRMED

What it tested
Implementer reports carry RED/GREEN test transcripts. Do reviewers actually use them?
How
Searched 87 reviewer transcripts for references to the TDD evidence.
Pre-registered prediction
Reviewers cite it; keep.
What happened
41% of reviewer transcripts reference the TDD evidence.
So what
Keep. Removing it would be felt.

E23Does the controller still re-derive context per dispatch?FIXED ALREADY

What it tested
Before this campaign, real sessions had 42k-char dispatch prompts of pasted history. Did the recipe + briefs actually fix it?
How
Measured dispatch-prompt sizes across runs.
Pre-registered prediction
Measurable but small.
What happened
Implementer dispatch prompts now average 2.5k chars on elicited plans (4.6k on prose; 42k in the pathological pre-fix sessions). The remaining mass is the prompt template skeleton itself.
So what
Re-derivation is gone. Any further trim is a template-minification question (E13, backlog).

Micro-tests — phrasings against controls, dollars at a time

E11Can sonnet write the plans?DIED ON STRUCTURE

What it tested
Plan-writing is judgment-dense and pre-registered to stay at opus. How exactly does a cheaper planner fail?
How
5 sonnet plans from the same design + guidance, scored against opus baselines.
Pre-registered prediction
Sonnet plans miss constraints/interfaces fidelity.
What happened
Fidelity held perfectly (constraints 5/5, gradient verbatim, interfaces on every task) — mechanical guidance adoption is model-robust. But 4 of 5 plans collapsed to 3 tasks (sonnet mean 3.6 vs opus 5.8): the planner chose coarser review gates. The judgment loss showed up in structure, not in copying.
So what
Plan-writing stays at opus, with sharper evidence for why.

E17Do plan word-budgets help or hurt?CONFIRMED HARMFUL

What it tested
A length target might trim plan flab cheaply.
How
5 plans with a 1,200-word prose budget (code explicitly exempted) vs 5 baseline.
Pre-registered prediction
Test-assertion count falls before prose does.
What happened
Severe: test signals fell 53.8 → 20.6 (−62%) and code fences 39 → 14 — even though baseline prose was already under the budget and code was exempted. The model read 'economy' as licence for austerity everywhere, cutting exactly the load-bearing content.
So what
Never add length targets to writing-plans. Same mechanism as the earlier nuance-clause regression.

E21Can reviewer reports lose their preamble?WIN −41%

What it tested
Reviewer final messages narrate process before delivering verdicts. A 'your final message IS the report' contract might trim that.
How
Micro-test on a real brief+report+diff fixture, 5 reps per arm, sonnet. First attempt had a harness flaw (the diff never inlined) — verdict retracted and re-measured clean.
Pre-registered prediction
−10–20% reviewer output tokens, verdicts intact.
What happened
−41% (1,160 → 687 tokens), spec verdicts 5/5 in both arms. Accidental bonus: the fixture mispaired Task 2's brief with Task 3's diff — and both arms correctly flagged the mismatch. Reviewers genuinely cross-check brief against diff.
So what
Adopted into the E27 stack.

E25Can reviewers work from the diff package alone?DANGEROUS — BRIEF IS LOAD-BEARING

What it tested
Dropping the brief and report from reviewer inputs would simplify dispatches.
How
Micro-test: same fixture with brief and report removed, 5 reps.
Pre-registered prediction
Both needed; close the lead.
What happened
Package-only reviewers delivered confident spec verdicts 5/5 — but silently redefined 'spec' to mean just the global constraints. Zero of five flagged that the brief was missing. The confidence survived; the basis didn't.
So what
Keep all three inputs. Same failure family as cheap-reviewer rationalization: silent scope-shrinkage.

E26Can a recipe shrink controller narration?WORKS, SMALL

What it tested
46% of controller turns are thinking/narration. Message count is prompt-immune — but per-message length might not be.
How
Micro-test of a mid-workflow controller moment with tools provided, with and without a one-line-narration recipe; opus, 5 reps each.
Pre-registered prediction
Small win or nothing.
What happened
162 → 74 narration chars per turn (−54%) with zero variance — and the healthy verify-the-implementer's-claims behavior survived inside the one line. Worth ~$0.1–0.3/run.
So what
A freebie; adopted into the E27 stack.

Full runs — where only real execution answers

E01What do critical-sections-only plans cost to execute?REFUTED — CONFOUNDED

What it tested
Jesse's question: what if plans carry only the critical code instead of everything inline?
How
Generated critical-only plans (only 1 in 5 genuinely complied — opus resists withholding code), executed the genuine specimen twice.
Pre-registered prediction
Between complete-code and prose: $9–12, 3–6 fix waves.
What happened
$5.21/$5.11 — the cheapest runs ever measured. But the genuine specimen had also self-merged to 3 tasks: per-implementer effort did double exactly as predicted (35 turns vs 17–24), there were just fewer implementers. Task count swamped code policy; the price is coarser review gates.
So what
Spawned E28 to isolate code policy at constant structure. Also: eliciting this regime at all is hard (1/5 compliance).

E28Code policy at constant structureREFUTED — BODIES ARE MARGINAL

What it tested
The clean version of E01: the same 7-task elicited plan with implementation bodies stripped to one-line descriptions — tests, interfaces, and structure untouched.
How
Controlled fixture edit (10 bodies stripped, 19 test assertions kept), 2 runs.
Pre-registered prediction
Costlier than $6.34–8.49; implementer effort doubles across 7 tasks.
What happened
$7.78/$8.54 — inside the with-bodies range. Implementer turns rose only 7%: the test code pins the work; writing code to satisfy given tests is nearly as guided as transcribing. Fix waves ticked up (1 → 3–4).
So what
The plan-content hierarchy, measured: tests + interfaces + structure are load-bearing; implementation bodies are ~40% of plan length for roughly nothing. A defensible writing-plans relaxation.

E03Haiku implementers under complete-code plansVIABLE, SMALLER THAN HOPED

What it tested
If implementation is transcription, the cheapest tier should manage it — with sonnet reviewers as the quality gate.
How
Conditional guidance ('when the plan text contains the complete code…'), 2 runs on the elicited plan.
Pre-registered prediction
Gates hold; −$2–3/run.
What happened
$6.34/$7.33 vs sonnet implementers' $6.34/$8.49 — overlapping; the real saving is ~$0.5–1 because haiku's turn inflation (30 vs 17–24) ate half the price gap. Gates held; one classic haiku sloppiness (committed a build binary) was caught by review. One drift: the final review ran sonnet.
So what
Worth keeping in the stack with the final-review tier pinned; not the big rock.

E22Does the conditional tier guidance discriminate?CONFIRMED

What it tested
The E03 wording licenses haiku only when the plan carries complete code. On a prose plan, does the controller correctly refuse?
How
Same config, prose 10-task fixture, 1 run.
Pre-registered prediction
Controller picks sonnet implementers; if it picks haiku anyway, expect a blowup.
What happened
9 of 10 implementers went to sonnet — the one haiku was the genuinely mechanical task. $12.59, normal prose band, gates green.
So what
The conditional wording is shippable: it gates on exactly the right condition.

E05Narrower review-package context (-U3 vs -U10)NEUTRAL

What it tested
Does shrinking diff context push reviewers back into reading files?
How
review-package patched to -U3, 1 run.
Pre-registered prediction
-U3 forces file reads back up; keep -U10.
What happened
Reviewer profile byte-identical (5.0 turns / 3.0 tools), cost in-band. On small diffs the width doesn't matter — and the package is read once by sonnet, so there was no spend to recover anyway.
So what
Keep -U10 as large-diff insurance. Lead closed.

E06Cap the controller's thinking budgetBACKFIRED

What it tested
Mining showed ~2/3 of controller output tokens are invisible (redacted thinking) — the single biggest controller spend. Cap it?
How
MAX_THINKING_TOKENS=1024 injected into the launcher (verified in the binary first; careful contamination window), 2 runs.
Pre-registered prediction
−15–25% controller cost; judgment must stay clean.
What happened
Costs in-band ($7.15/$8.10) but controller messages rose 92 → 128/138 and output tokens nearly doubled (66k → 118–123k). Thinking buys turn efficiency; suppress it and the controller compensates with more steps and re-derivation. Gates held — it isn't harmful, just useless.
So what
Do not cap thinking. The turn floor rises to meet you.

E09Controller surveys the plan instead of reading itPARTIAL — HABIT WON

What it tested
With briefs delivering tasks, the controller only needs headings + constraints: a task-brief --list mode.
How
Implemented --list (smoke-tested on real plans), guidance added, 1 run.
Pre-registered prediction
−$0.5–1/run of resident context.
What happened
The controller ran --list once… then read plan.md twice anyway. Cost in-band, saving unrealized. The read-the-plan habit beat one guidance line.
So what
Dropped for now — the ceiling (~$1) doesn't justify more runs; phrasing iteration is future micro-work.

E24Fixture realism at svelte scaleCONFIRMED −24%

What it tested
Fractals showed hand-written fixture plans execute ~2× costlier than real skill output. Does it replicate on the bigger scenario?
How
Generated an elicited svelte plan — discovering first that the hand fixture had gold-plated an E2E suite the design never asked for; amended the design so scopes match. 2 runs incl. Playwright.
Pre-registered prediction
$10–13 vs the hand fixture's $14.99–20.30.
What happened
$12.40/$14.38 (mean $13.39) vs ~$17.6 — a −24% replication, milder than fractals' 2× because heavier intrinsic UI/E2E work dilutes plan effects.
So what
Fixture-realism finding stands across scales. Also: baseline svelte numbers always included unrequested scope.

The composition

E27The integrated ship candidateCANDIDATE ESTABLISHED

What it tested
Do the loop's wins compose? Opus controller + elicited plan + conditional haiku implementers + terse reviewer contract + narration recipe + final-review tier pin.
How
Stack clone, 2 fractals runs + 3 planted-defect quality gates.
Pre-registered prediction
All green; fractals ≤ $6.
What happened
Fractals $6.24/$6.60 (combo on hand plans: $11.67–14.84). Quality gates 2 of 3 — the one fail was a clean reviewer miss on DRY plus a stricter judge reading; inspecting the reviewer's 2,620-char report exonerated the terse contract as the suppressor.
So what
The candidate exists and costs half the shipped config. The N=5 gate battery is still owed before any of it becomes skill text.

Backlog — registered, not run (the 25 minimum was reached without them)

E10 Report contract 15→8 lines · E12 Coarser step granularity · E13 Prompt-template minification · E16 Best-stack composition on svelte

Where it nets out: the ship-candidate stack runs go-fractals at $6.24–6.60 against the shipped config's $11.67–14.84 — but most of that gap belongs to executing real, complete plans rather than the hand-written prose fixtures all earlier numbers were measured on. The durable lessons: tests+interfaces+structure are what make a plan cheap to execute; thinking is load-bearing, don't cap it; word budgets eat tests; cheap models fail by advocating, not by going quiet; and half of all leads close as "the current design already had this right" — which is exactly what the log is for.