# SDD ledger — plan: docs/plans/2026-07-31-cost-pathologies-evals.md

Repo: superpowers-autoresearch @ main (push authorized at closeout).
Arm branches live in /Users/jesse/git/superpowers/superpowers as cp/* (local only, never pushed/merged).
Amendment-2 principle governs execution: non-catastrophic ambiguities get controller rulings in this ledger, not blocking questions.
Task 1: review returned 2 Important (X9 "verbatim" label drops a sentence; undisclosed X2 M0-cross-ref inside verbatim section) + 2 minor (deferred: M0 note lossy paraphrase — M0 executor must re-read design; X4 signature reword).
CONTROLLER RULING (Amendment-2 style): log is pre-use (single commit, uncited) — in-place correction permitted THIS ONCE with an appended dated disclosure entry; append-only binds strictly from the next commit on.
Task 1: minor (deferred): run-quorum.sh ARM selector doesn't know cp/* branches — integration work owed by Task 8+ (flag carried into Task 3's manifest notes).
Task 1: fix round 1/5 (2 addressed, 0 open — 140d0ef; re-review PASS, ruling honored)
Task 1: complete (commits fafae56+140d0ef, review clean)
Task 2: complete (commit d986d68, review clean; 377 tests green; validation exact incl. reviewer's independent re-derivations)
Task 2: minor (deferred): _resolve_child_path duplicated across 3 scorers + _cumulative_total_tokens across 2 — factor per codex-efficiency precedent; Task 7's X5 scorer MUST import shared helpers, not add copy #3
Task 2: minor (deferred): TDD red->green evidence prose-only (squashed commit; campaign convention)
Task 3: review REJECTED round 0 — C1 (X7-B script 6-10 FPs/clean plan, vacuous validation), I1 X9 eighth stall site, I2 X1-C rationalization row, I3 X1-B three contradictions, I4 X2-C template contradiction, I5 X7-B missing intra-brief check, I6 X3-B verb exceeds design (RULING: narrow to design's "flag"). Findings file: task-3-findings-round1.md.
Task 3: fix round 1/5 dispatched (amend arm branches in place; re-validate X7-B with real counts)
Task 3: minor (deferred to battery pre-regs): X1-B/X1-C confound separation; X2-A/X2-C channel attribution; X1-A plan-mandated probe; X2-B/X3-A phrasing adjacency; shared Ruling: token; X7-A pair-scoping; script continuation-line heuristic
Task 3: fix round 1/5 (8 addressed, re-review PASS with follow-ups — N1 X7-B consume check inert on bare identifiers (regression from C1 fix), N2 manifest vacuous-zero rows + wrong go-fractals path, N3 doctrine-clause note, N4 x1b/x1c opener same class as I3)
Task 3: fix round 2/5 dispatched (restore bare matching w/ targeted suppressors + honest two-direction validation w/ per-plan counts; manifest fixes; N4 batch)
Task 3 round 2 delivered (x7b edd9bcd, x1b 151b2e1, x1c 69fd769, manifest c41b6f9); re-review in flight.
CARRY-FORWARD to Task 6 fixture brief: cp-x7x9-conflicts plans must use backticked Interfaces convention (X7-B's parser needs it) AND include one prose-Interfaces variant (blind-spot probe); the clean plan must avoid the consume-and-self-produce shape or the pre-reg must except it.
CARRY-FORWARD to Task 9 pre-registration: producer-recognition scope question (Produces:-lines-only = 5 FPs on one real plan vs body-wide = silent misses); X8-vs-X9 attribution note (shared four-class doctrine clause across 4 arms); X7-A pair-scoping note; X1-B/X1-C confound separation metric.
Task 3: fix round 2/5 (N1/N3/N4 ADDRESSED hands-on, N2 mechanical asks done; 1 new: manifest FP narrative wrong for compactions/patch_applies — multi-name backtick span, not absent-from-Produces)
Task 3: fix round 3/5 dispatched (manifest-only prose correction + third parser-scope pre-reg item)
Task 3: fix round 3/5 (1 addressed — manifest FP narrative corrected + third parser-scope pre-reg item; re-review PASS)
Task 3: complete (17 arms verified across 3 rounds; final SHAs: x1a 1851307 x1b 151b2e1 x1c 69fd769 x1e b26cda2 x1g 6a0eedf x2a 5364c34 x2b dcdb3fb x2c 4b2abd9 x3a b5c931f x3b b670a91 x3c f478a24 x7a e1cd285 x7b edd9bcd x8a 83a7ef8 x8b a279eaf x9a 76cb06a x9b c9d0c87; manifest commits bdfb3e7,2a87290,c41b6f9,54caa1c)
Task 4: complete (79e4c20+37e1a52, review Approved; honest negative — no arm advances round 1; reviewer independently rescored everything, exact match; diagnosis instrument-limited CONFIRMED, ~$0.95 spend)
Task 4: minor (deferred): output-token derivation doc slip (~150 tokens, immaterial)
CONTROLLER RULING: Task 4b (Amendment 1) — fixture v2 with gray-area seeds; same arms/rule; new pre-reg; bait-block rate added as primary discriminator
Task 4b: complete (37163e6+60f9f02, review Approved; second honest negative, BAIT-1 void ruling verified correct on code merits, raw-vs-corrected reproducible; $1.67)
Task 4 (incl. 4b): complete. RULING logged+committed: micro prune gate void for instrument inability; X1 FULL = A+B+C+control, 4 reps each; all arms enter unproven.
Task 5: complete (pre-reg 251350c; fixtures+scripts+verdict pending final commit). X3 MICRO 60 calls, both call shapes (reviewer A/C vs D-control; implementer B vs D-control-impl) hit inconclusive-by-ceiling (0% invented-rate at both controls) — third consecutive ceiling result in this campaign (Task 4, 4b, 5). Real findings: escalation recurrence (logwriter A, 2nd A-mechanism instance after Task 4's X1-A); X3-C mechanical citation filter genuinely drops an uncited-but-correct finding (platform rep 3, not a scorer bug). One major scorer bug found+fixed (win32 substring inside darwin32 literal, inflated platform invented-rate to 90-100% before fix) + several proximity/vocabulary bugs; verifier converges to zero mismatches; 2 discourse-depth cases hand-corrected and disclosed. $2.3491 measured. BLOCKED-equivalent per Task 4/4b precedent — X3 FULL rider proceeds with all 3 arms unproven pending controller ruling (not made unilaterally by this task).
Task 5: complete (251350c+32147ac, review Approved; third ceiling, honest; $2.35; scorer bug caught pre-verdict)
Task 5 Important finding (model-mismatch caveat) ADJUDICATED via controller ruling entry (committed) — analysis framing is controller-owned; retroactively scopes Tasks 4/4b/5 + ruling 1b34f88
CARRY-FORWARD to Task 8 (X1 FULL + X3 rider): X3-C paraphrase-aware citation scoring or accounted false-demotion; X3-B controller-half first real test; micro-ceiling citations must be scoped opus-4-8-only
Task 6 delivered (85918ef, 8 scenarios, smokes pass, $8.78); review in flight.
PLAN GAP (mine, Task 3 list): cp/x5a cp/x5b cp/x6a cp/x6b never authored — fold arm authoring into Task 11 dispatch w/ Task 3 conventions + review.
CARRY-FORWARD to Task 9: re-confirm cap-exception/catastrophic seed reproduction per rep before grading (narrative-engineered, not mechanically forced).
CARRY-FORWARD to Task 8: cp-x1-buggy-sdd smoke used ~35/45min budget — size battery wall-clock accordingly; /tmp/cp-arm-control worktree exists for reuse; runner resolves only control today.
Task 6: complete (85918ef, review Approved; 8 scenarios, all quorum-check ok, smokes pass, $8.78; reviewer re-ran scan + suites, all exact)
Task 6: minor (deferred): cp-x2/cp-x8 fixture plans lack Interfaces: blocks (writing-plans template fidelity gap)
Task 6: minor (deferred): smoke results dir has doubled cp- prefix vs log citation (hand-invoked; traceability only)
Task 7: complete (commit 9333c9b+81d1dca after a round-1 history rewrite — see below; score_x5_leases.py + scorer_common.py; no subagent dispatch this task, single-implementer). DRY deferral from Task 2 CLOSED: scorer_common.py factors _resolve_child_path/_cumulative_total_tokens, X1/X4/X6 re-import unchanged (their 36 tests stayed green, zero edits). 412 tests green (377+35). Corpus-validated against Drew's donated session (3-restarts exemplar, local) and the 12x exemplar (tree 019faee1, remote-host-a, read-only via ssh — NOT the local host's own miner report as the brief named; that finding actually lives in remote-host-a's own report, disclosed in the log entry). 3 real scorer bugs found+fixed pre-commit (JS field-boundary leak, first-bracket-not-commit-bracket, blanket trailing-char-class corrupting a real `-run 'Test(A|B)'` argument) — each TDD'd with a regression test from the real corpus shape that exposed it.
Task 7: review round 0 REJECTED on privacy grounds only (code approved unconditionally, zero code changes) — committed text (log entry + first commit message) named the remote host literally instead of using the established alias convention (remote-host-a/remote-host-b, per campaigns/cost-pathologies/README.md), and the round-0 self-disclosure of an earlier privacy catch had re-leaked the real username path it was describing. Fix round 1/5: soft-reset both commits, rewrote to alias-only + value-free description, recommitted as two clean commits (9333c9b, 81d1dca); verified 0 hits for real-host/username needles across `git log <pre-task>..HEAD --patch` and each commit message; 412 tests unaffected. Full incident note in task-7-report.md's "Fix round 1" section.
Task 7: minor (disclosed, not fixed): 12x exemplar's own independent recount found 10 occurrences of the most-repeated `-run` target, not the audit narrative's "12" — the audit figure was a rough quote, not reproducible under this scorer's exact-command-text definition; not a scorer bug, flagged for whoever grades X5 FULL not to over-anchor on the narrative number.
CARRY-FORWARD to Task 11 (X5 arm authoring): the LEASE-RECEIPT/LEASE-HONORED/LEASE-INVALIDATED grammar in score_x5_leases.py's module docstring is the SPEC cp/x5a (receipts-in-report) and cp/x5b (machine-checkable receipt file) MUST emit for lease_events to have any signal; score_x5_leases.py itself is otherwise ready to score their battery output today (verification_runs/duplicate_groups need no arm-specific support).
Task 7: review REJECTED round 0 — code approved (412 tests, DRY closed, honest 10-not-12 correction) but TWO privacy criticals: literal hostname in log + commit message body; disclosure sentence re-quoting the leaked username. Fix round 1/5: history rewrite of the two unpushed tip commits (soft-reset to 85918ef, clean recommit), zero-grep verification required.
Task 7: fix round 1/5 (privacy history-rewrite verified — zero needles in range, content fidelity exact, disclosure genuine; re-review PASS)
Task 7: complete (commits 9333c9b+81d1dca replacing reset-away round-0 pair; 412 tests; DRY minor from Task 2 CLEARED)
BUILD PHASE COMPLETE. Spend ~$18. Battery sequence begins: Task 8 X1 FULL (A/B/C+control ×4 reps, X3 rider).
Task 8: pre-registration complete (commit b267184). Generalized run-quorum.sh to resolve any arm-manifest short code (materializes /tmp/cp-arm-<arm> on demand, reconciles mounted HEAD against the manifest SHA, refuses to run unreconciled); ported JOBS parallel-batching from codex-efficiency's script. Bumped cp-x1-buggy-sdd's quorum_max_time 45m->60m (disclosed harness accommodation). Added score_x3_rider.py (24 new tests, TDD) on an additive resolve_chains() refactor of score_x1_chains.py (24 pre-existing tests unchanged, 436 total green).
Task 8: smoke (x1a rep1) confirmed arm text live in the mounted container, scenario healthy, pass, $11.32.
Task 8: battery run — two run-quorum.sh lane-script aborts (its documented set -euo pipefail limitation firing on real, non-infra fail/indeterminate verdicts: control rep2, x1b rep2), backfilled per the script's own documented procedure; all 16 pre-registered reps completed.
Task 8: VERDICT (commit 6b8dfcc) — $158.18 measured, 16/16 reps. Defect-escape guard INCONCLUSIVE-BY-CEILING: 0/16 reps exhibit any seeded ANCHOR/DEBATABLE-1 mistake (manually confirmed via full source read on 7+ reps across all 4 arms plus a mechanical scan on all 16) — extends Tasks 4/4b/5's reviewer-side ceiling finding to the FULL-tier/implementer-side/codex-gpt-5.6, lifting the model-mismatch caveat. X1-B fastest convergence (mean 5.8 vs control 7.2 Σrounds), X1-C intermediate (6.5), X1-A no measurable speedup — directional at n=4/arm. X1-B/X1-C confound cleanly separated (X1-C's "Another round worth it" marker in 4/4 x1c reps' terminal round, 0/4 x1b reps). X3 rider: 2 scorer false positives found+manually corrected (disclosed, not patched — same discipline as X1 MICRO's false_block_rate), corrected invented_requirement rate 0/16 all arms; x3c_false_demotion answers the ruling's carry-forward directly (strict literal-citation reading would demote 4-6 true positives/arm, paraphrase-aware reading rescues all of them). X3-B remains COMPLETELY untested (no arm here mounts its mechanism) — disclosed as incomplete, not overclaimed. 25% of reps (1/arm, uniform) hit the bumped 60m ceiling — disclosed operational finding, none excluded from scoring. Running campaign total: $171.93.
CARRY-FORWARD to Task 9+ (whoever extends X1/X3 further): (1) cp-x1-buggy-sdd's seeded anchor/DEBATABLE-1 mistakes never occur in a from-scratch codex/gpt-5.6 build against clear prose — a defect-escape-guard fixture needs the mistake seeded into STARTING code an implementer edits, not prose the implementer builds from; (2) score_x1_chains._extract_findings()'s NONE_VALUE_RE (exact "none"/"none." match only) doesn't recognize "none identified beyond the [already-counted] X" phrasing as null, inflating finding/unbacked counts — not fixed, flagged; (3) score_x3_rider.py's BAIT region signature (verbatim from the ledger, designed for defect-presence recall) produces real false positives on FULL-tier's richer narrative text when reused for bait-BLOCKING precision (2 found this task, both manually corrected, not patched) — a future extension should consider a narrower BAIT-blocking-specific signature if the false-positive rate recurs at scale; (4) X3-B still needs its OWN battery (mount cp/x3b as a real arm) — it has never been tested end-to-end at any tier.
Task 8: review Approved (all headline numbers independently reproduced; 2 minors -> correction entry dispatched). CONTROLLER RULING: X1 closes on the honest ceiling verdict — no re-battery on the from-scratch fixture shape; the directional convergence signal (B 5.8 rounds fastest, C stop-verdict 4/4 separated) banks; an edit-existing-code fixture is future work, not this campaign. X3-B still needs its own battery (Task 10/11 window). Spend $171.93.
CLOSEOUT OBSERVATIONS BANK: finishing step doesn't reliably converge on merge even in pass reps; 60m ceiling hit by 1 rep/arm uniformly; from-scratch prose cannot seed defect-escape tests.
Task 8: fix round 1/5 (correction 48aef6f, re-review APPROVE — 31% merge-nonconvergence verified against live trees)
Task 8: complete (b267184, 6b8dfcc, 48aef6f; X1 CLOSED on ceiling verdict + banked convergence signal; spend $171.93)
Task 9: pre-registration complete (commit d08f0df). Settled all three carried-forward X7-B parser-scope questions (ratified arm-manifest.md's existing rationale, no code change), the X7-A pair-scoping note, and the X8-vs-X9 attribution note. 29-rep matrix pre-registered (28 new + 1 reused from Task 6's control smoke), reusing control reps across X7-C/X9-C/X1-F since it is one text graded on three axes.
Task 9: battery run — one real backfill (x7a rep3, aborted by run-quorum.sh's documented set -euo pipefail limitation on a genuine indeterminate rep1; backfilled per the script's own procedure). All 29 pre-registered cells landed real data.
Task 9: VERDICT (commit pending) — X7-A and X7-B both PASS their own pre-registered criterion (evidence artifact surfaced pre-Task-1, 8/8 reps; false-positive guard clean 6/6 clean-plan reps; X7-B blind-spot probe confirms the SCRIPT's documented gap while the ARM's prose-scan supplement independently catches it, both prose reps). X9-A PASSES 3/3 (rules on both conflicts, proceeds past Task 1 in all 3, catastrophic guard holds). X9-B PASSES 2/3 with ONE genuine, disclosed compliance failure (rep2 reverts to blocking behavior on non-catastrophic conflicts despite identical doctrine text to X9-A). Catastrophic-seed-stops guard: 6/6 held, 0/29 reps ever issue a DROP TABLE-shaped command. X1 wave-cap (E/F/G): INCONCLUSIVE-BY-ZERO-REPRODUCTION — 0/9 dedicated reps reach the cap-exception, root-caused to a fixture-design interaction (Conflict 1 and the cap-exception share Task 4; correctly resolving Conflict 1 structurally forecloses the cap-exception path, confirmed independently by 3 separate X9 reps that reach Task 4's decision point). $62.2629 new spend (28 reps), $63.3663 graded total (29 reps incl. reuse). Running campaign total $234.19.
CARRY-FORWARD to whoever revisits X1 wave-cap: needs a fixture where the cap-exception is reachable independent of any other seeded conflict's resolution, or must be composed with X9's doctrine to ever get past an earlier stall — untested by this campaign, not a negative result.
CARRY-FORWARD (X7/X9 composability): X7-A/X7-B's diffs are preflight-scoped only and do not by themselves stop session-level stalling (0/6 seeded-plan reps get past Task 1) — only X9's fuller-scope patch (preflight + task-loop breaker + implementer escalation + final-review breaker) achieves Amendment 2's "never stalls" goal on this fixture. X7 and X9 are complementary, not substitutes.
Task 9: minor (disclosed): extract_signals.py's find_ledger() dot-directory glob bug (Python glob skips .worktrees/.superpowers under '**') found and fixed against the control-rep1 exemplar before trusting it on the other 28 reps — not a campaign scorer, a task-local triage helper.
Task 9: review round 0 REJECTED — 1 Critical (x9b-rep2 was a harness confound: ad-libbed Gauntlet deflection wording, not a compliance failure) + 5 Important (I2 catastrophic guard 4/4+2excluded not 6/6; I3 Conflicts1&2 21/21 seeded not 28/29; I4 empirical n=5 not structural necessity; I5 wave-cap rep list corrected, x9a-rep1 actually dispatched task4_implementer+reviewer; I6 x7a-rep2 extra findings adjudicated) + minors (M7 destructive-string phrasing, M8 commit extract scripts, M9 quoted-rationale fix, warning10 X9-A composition). Findings file: task-9-findings-round1.md.
Task 9: fix round 1/5 (all 6 headline+amendment items corrected via append-only log entry; task9_extract_signals.py + task9_dump_narrative.py committed beside campaign scorers; carry-forward #3 retracted; cost figures unaffected)
Task 9: complete (commits d08f0df, c32c9f8, cd95740; X7-A/X7-B PASS own criterion; X9-A 3/3 PASS (2 clean+1 nuanced); X9-B 2/2 valid PASS n=2 (rep2 void-by-confound); catastrophic guard 4/4 held+2 excluded; wave-cap INCONCLUSIVE-BY-ZERO-REPRODUCTION; $62.2629 new spend; running total $234.19)
Task 9: review REJECTED round 0 — positives SURVIVED (stall baseline 15/15 GENUINE; X9-A real rulings+commits; X7 artifacts real+pre-dispatch; complementarity strong; costs exact) but C1: x9b-rep2 "failure" = Gauntlet-deflection harness confound (VOID, retract carry-forward, scenario-script defect noted for any re-run); I2 guard 6/6->4/4+2 non-repro; I3 impossible 28/29 denominators; I5 wrong rep list (conclusion strengthens); I4 structural->empirical n=5; I6 unadjudicated extra-findings guard; M7-M9, ⚠10. Findings file: task-9-findings-round1.md. Fix round 1/5 dispatched.
Task 9: fix round 1/5 (all 11 addressed, re-review ACCEPT; one residual imprecision in the prescribed 5-ruled framing, disclosed)
Task 9: complete (d08f0df, c32c9f8, cd95740; X7 PASS both arms; X9-A PASS 2clean+1nuanced; X9-B 2/2 valid PASS n=2; guard 4/4+2excl; wave INCONCLUSIVE-BY-ZERO empirical n=5; STALL BASELINE 15/15 — first solid discrimination; spend $234.19)
LESSON OPERATIONALIZED for Tasks 10+: extract delivered Gauntlet deflection text per rep and verify scripted-vs-ad-lib BEFORE grading any compliance claim (Task 9 C1); check story.md deflection pinning in cp-x2/cp-x8 pre-reg.
Task 10: pre-registration complete (ef5c1ce). X2 gate-conditional two-phase design (control x3 first, arm-battery size decided by outcome) + X8 unconditional 3-arm battery, both pre-registered together before any rep ran. Mechanism-coverage caveats disclosed up front: X2-A's writing-plans/SKILL.md half is inert in this fixture (plan pre-authored, writing-plans never invoked) — only its sdd/SKILL.md dispatch-brief half is live; X8's shared four-class catastrophic clause is untestable here (no catastrophic seed in cp-x8-approvals).
Task 10: battery run — two container lanes concurrent (lane A: X2 gate+arms; lane B: X8 full battery), JOBS=3 disclosed deviation from pre-registered JOBS=2 (ample disk, no measurement risk). Operational note: initial run_in_background reliance replaced with genuine foreground poll loops mid-task per coordinator correction. 21/21 reps landed clean pass, zero infra anomalies, zero backfill needed.
Task 10: X2 GATE POSITIVE — 3/3 control reps show a real send_message+wait_agent subagent-level stall on ADVISORY-1 (discountLookup.js) before any code, never reaching the human (0/12 root-thread advisory escalations). Full 9-rep arms battery ran (not guardrail-demoted). Hand-verified stall classification per rep (raw tool-call sequences, not grep alone): control 3/3 stalled -> X2-A 0/3 -> X2-B 1/3 -> X2-C 1/3. ADVISORY-2/3 never stall under any arm, 0/12. Genuine-conflict-still-escalates guard holds perfectly 12/12 across control+all 3 arms; final pricing.js spot-checked integer-cents-compliant (3 reps read in full). X2-A PASSES cleanly; X2-B/X2-C pass the letter (0 human escalation) with one disclosed residual subagent stall each — X2-B's improvement flagged as having no causal mechanism story (its patched text is never read by the deciding implementer agent in this fixture).
Task 10: X8 clean-flow interrupt guard holds perfectly 9/9 all arms (control included) — zero root-thread questions on Task 1 or the stray test in any rep. Design-fork discrimination INCONCLUSIVE-BY-FIXTURE-CONFOUND: Task 2's own plan text ("note your reasoning in the report") forces the report-level surfacing signal for EVERY arm including control, so it can't discriminate. X8-B's own Approval:/Ruling: ledger grammar found via raw-transcript grep (progress.md itself is deleted by the session's own cleanup before capture in both scenarios, confirmed — instrumentation limitation, not a scorer bug): fires correctly for the easy already-covered case (2/3 reps, stray-test scope correctly named) but ZERO of 3 reps produce the complementary Ruling: line for the actual design fork. X8-A shows zero literal ledger artifacts (no fixed grammar, expected) — no evidence beyond the report level shared with control.
Task 10: complete (ef5c1ce, d0b83a9; X2 gate POSITIVE, X2-A PASS clean, X2-B/X2-C pass-with-disclosed-residual; X8 clean-flow guard 9/9 PASS, design-fork discrimination INCONCLUSIVE-BY-FIXTURE-CONFOUND; 21 reps, zero infra anomalies, deflection-pinning verified per-rep with zero ad-lib confounds; $70.7079 this task; running campaign total $304.90)
Task 10: review Approved-conditional — mechanics all reproduced; blocking prose fixes C1 (X2-B fails criterion as written 1/3), C2 (gate justification restatement), I1 (retract integer-only generalization; 2/12 float incl. winning-arm rep), I2 (X2-A mechanism actually 3/3 — strengthens). Stall quantified: 10-20s, ~1% tokens, self-resolving; cost separation dispatch-count-driven. X8 nulls stand as-is. Fix round 1/5 dispatched.
Task 10: fix round 1/5 (all addressed, re-review APPROVE — every correction re-verified against raw data incl. the implementer's own M4 refinement)
Task 10: complete (ef5c1ce, d0b83a9, 0192683; X2 gate POSITIVE, X2-A WINS narrowed [3/3 pause-elimination + proceed-and-record, one live seed, n=3, one judge-accepted float rep], X2-B FAIL 1/3, X2-C letter-pass; X8 clean-flow 9/9 + fork INCONCLUSIVE-BY-FIXTURE-CONFOUND; spend $304.90)
Task 11: review REJECTED round 0 — C1 (X5-A mechanism actually CONFIRMED via unencrypted reviewer prose 3/3 reps; "structurally invisible" disproven — correction in the arm's favor), I2 (lease_events re-read inflation affects all counts, undisclosed). Infrastructure all reproduced (cost to the cent, guards, X6 gate). Fix round 1/5 dispatched (log-only).
QUEUE (next campaign): plan-framed X6 fixture (new scenario authoring); X5 savings battery at larger n with distinct-event counting.
Task 11: fix round 1/5 (C1+I2 addressed, re-review ACCEPT — table-row extension artifact benign, 8-quote count independently re-derived, x5b-rep3 collapse reproduced)
Task 11: complete (ddb1be3, 06f743f, 02b7d14, 4ec40a3; X5-A PASS mechanism-confirmed-via-prose, X5-B PASS, savings unproven n=3; X6 INCONCLUSIVE-BY-ZERO w/ correct gate stop; spend $342.50)
Task 12: pre-registration complete (f32025b). Scoped mined-corpus population (Task 2's 2 exemplars + same day-directories, cheap re-use not a full-corpus trawl) vs campaign-tree population (76 cp-* reps, Tasks 8-11, both lanes); confound stated up front (campaign has no guidance-off arm — control 329b8f1 already mounts codex-tools.md's isolation guidance).
Task 12: VERDICT (66e1a9e) — mined corpus 225 children, 64.9% full-history forks, mean dup ratio 0.291 (0.414 among full-history spawns). Campaign trees 540 children, 0% full-history forks, mean dup ratio 0.0003 — confounded field-measurement data point, not a controlled A/B (stated honestly). Found+worked-around a dot-directory glob-skip bug in fork_stats() invocation on battery rep roots (task12_measure_forktax.py wrapper, scorer itself unedited) — same bug class as Task 9's find_ledger(). Audit: only codex-tools.md carries parameter-level isolation guidance among 4 harness bridges; gemini/pi/antigravity-tools.md silent (documentation-gap follow-up-treatment note, no skill edits, no field evidence of an actual problem on those harnesses). Standing post-merge instruction recorded (compare real post-merge field data against THIS entry's mined baseline, not against campaign-tree numbers). $0 API spend; running campaign total unchanged $342.50.
Task 12: complete (f32025b, 66e1a9e; measurement study, no new battery runs; spend $0, running total $342.50)
Task 12: review Approved w/ 1 Important precision fix (20-30x -> ~31x means / ~2,400x medians); every measurement independently reproduced exactly; audit classifications verified incl. 2 silent harness bridges. Fix round 1/5 dispatched (log-only).
Task 12: fix round 1/5 (cfb10c2) — I1 corrected (log correction entry + 2 inline SEE-CORRECTION pointers + task-12-report.md CORRECTIONS section); arithmetic re-verified (0.4137/0.01327=31.18, 0.3396/0.0001411=2406.8); no other claim affected; $0 spend unchanged.
Task 12: complete (f32025b, 66e1a9e, cfb10c2; measurement study, no new battery runs; spend $0, running total $342.50)
Task 12: fix round 1/5 (arithmetic correction cfb10c2, re-review PASS — both deletions benign reflows, multipliers independently reproduced)
Task 12: complete (f32025b, 66e1a9e, cfb10c2; fork-tax signature: mined 64.9% full-history @0.414 dup vs isolated 0.013 [~31x means / ~2,400x medians, non-confounded]; campaign trees 540 children 0% full-history; 3 harness bridges silent on isolation -> follow-up note; $0)
Task 13: closeout report reports/2026-08-cost-pathologies-campaign.md + closing log entry written; final ledger reconciled ($342.4977 = $342.50, 59% of $580, $400 checkpoint never reached); 4 winning mechanism families staged for a FUTURE fix cycle (X9-A 76cb06a headline, X2-A 5364c34, X5-A d71d307 + X5-B 644bee6, X7-A e1cd285 + X7-B edd9bcd) under the no-unshipped-ungraded-text rule; 23-item queue consolidated in report section 6; privacy sweep run on BOTH files (report clean 0 hits all classes; 2 benign log findings disclosed in the closing entry: degenerate 2-char short-hostname needle, and the already-disclosed synthetic container commit-author identity). COMMITTED, NOT PUSHED per controller instruction — whole-plan review runs first.
Task 13: WHOLE-PLAN REVIEW (final, pre-push) — reviewer returned I2-I7 + M1-M12 + 2 handoff sharpenings against the closeout report, plus 2 structural decisions. CONTROLLER RULINGS: (D1) PUBLISH THIS LEDGER — full needle-set sweep (incl. the word-anchored two-char host form) then `git add -f` on this file ONLY; nothing else in this directory ships, and report section 9's sources bullet is narrowed to name this file instead of the directory. (D2) The plan's checkboxes are NOT this campaign's tracking mechanism — one pointer line under the plan header to this ledger + the hypothesis log, no retroactive ticking.
Task 13: fix round 1/5 (report corrections I2-I7, M1-M7, M10-M12, the X9-A/X2-A handoff sharpenings, and the commit-message-sweep-hole lesson; this ledger published; plan pointer line; closing log entry appended with the final-review record and M8's provenance correction). Privacy sweep run over this file, every staged diff, and the commit message across all needle classes (machine identity, donor/corpus codenames, ticket prefixes, client names): no leaks. Only three matches, each already adjudicated: the degenerate two-char short-hostname form hitting ordinary prose (full hostname word-anchored: 0 hits; two-char form case-sensitive: 0), the established `/Users/jesse/...` provenance-path convention, and the session donor's first name in the Task 7 line — the form Task 7's privacy round deliberately kept while scrubbing his username, already public in the prior campaign's report and ledger.
Task 13: complete. CAMPAIGN CLOSED — 13 plan tasks (14 counting Amendment 1's Task 4b), 9 experiments + M0, 21 arms, 77 container reps run / 76 graded + 100 Messages-API calls, $342.4977 = $342.50 against the $580 ceiling (59%), $400 checkpoint never reached. Four mechanism families staged for a FUTURE fix cycle with Jesse's approval; the `cp/*` arms stay local, unpushed, unmerged. Step 2 of this task — the push to origin/main — is the controller's and is what completes it.
PUSHED: origin/main advanced through ca71095 (42 commits). Task 13 Step 2 complete. CAMPAIGN CLOSED.
