Error decorrelation
Different routes and architectures attack the same claim. D023 heterogeneity and the capability floor remain: this is not multi-agent voting, but making errors uncorrelated.
XMM Proposal Agent · Parallel Conveyor · D049 / D050 / D051
中文One planner chooses K non-conflicting jobs, K independent processes execute them concurrently, and one reduce writer commits the ledger. D049/D050 preserved concurrency safety; D051 must turn that safety machinery from high-frequency review into a continuous output of submittable proposals.
01 — TWO AXES
Understanding the whole architecture requires one idea: a unit of work is neither “one idea” nor “one role,” but one shift — one role performs one bounded task on one idea and leaves a 3-line handoff at the end. No worker owns an idea end to end.
Global state is therefore a matrix: the 47 ideas are rows and the pipeline's 12 roles are columns. In each batch, the planner selects K mutually independent cells from that matrix and advances them concurrently.
| idea | M0 | R1 | R2 | R3 | R4 | R5 | R6 | R7 |
|---|---|---|---|---|---|---|---|---|
| I021 M101 | · | · | ✓ | ✓ | ✓ | wk1 | · | · |
| I017 M83 | · | · | ✓ | wk2 | · | · | · | · |
| I024 M31 | · | · | wk3 | · | · | · | · | · |
| I039 NGC 5907 | · | · | wk4 | · | · | · | · | · |
| I018 M83 ULX | ✓ | wk5 | ✓ | ✓ | · | · | · | · |
| I005 NGC 4631 | · | · | ✓ | ✓ | ✓ | ✓ | · | · |
| …41 others | · | · | · | · | · | · | · | · |
Historical shift completed The 5 concurrent cells in this batch Untouched
The parallel-planning prompt requires every pair of shifts in a batch to satisfy all four conditions:
Clause 1 is the source of every design consequence. It caps parallelism by “how many independently advanceable ideas are currently available,” not by “how much backend concurrency can be tolerated.”
02 — TIMING
PLAN is serial, expensive, and LLM-driven; COMPOSE is deterministic and millisecond-scale; MAP is the only parallel part; REDUCE is the sole global writer. PREFETCH tries to hide planning of the next batch beneath MAP.
The planner is always one hermes invocation (default nim-large) and does not inspect route.
Workers are K genuinely concurrent, independent processes. Their engine is jointly determined by the packet's route
and the quota gate; failures fall back down the chain:
03 — RELATION TO THE PIPELINE
This is where all the tension lies: proposal delivery depends on the latency of one idea traversing the whole chain, while a batch parallelizes different positions in different ideas.
This is the architectural core of the problem
Raising parallelism to 10 advances work horizontally: more seeds receive an R3 freeze. But a proposal needs vertical progress: one particular idea reaching R6 → R7. The length of that vertical critical path (R2→R3→R4→R5→repair→R6→R7, one shift per step) is wholly unaffected by K because clauses 1 and 2 of the independence predicate forbid an idea from advancing twice in the same batch.
04 — MEASUREMENTS
The single-writer invariant, idea-level mutex locks, frag proof-of-work, summary sidecars, and engine-chain fallback all worked as designed. Five workers wrote their respective idea files concurrently without conflict; reduce merged correctly; the calibration log recorded all five entries, including the noop.
Repeated ideas are not a bug: scheduling the same idea again represents its R2→R3→R4→R5 role progression.
No mechanism caught the failure mode. “Said it but did not write a file” occurred three times. The driver can see only whether a file exists, so it logged a strike once, a noop once, and silently lost 39 minutes once. Fixed: a write-first protocol plus raising the harness tool-call ceiling from 250 to 500.
AIMD measures a signal that is always zero. The shared backend saw 255 requests, 0 HTTP 429s, and 0 failures in 30 minutes. The decrease branch of adaptive parallelism is therefore structurally never triggered, and K only rises 3→4→…→the ceiling of 12. The real constraints are barrier-tail latency and the supply of independent shifts — neither is in that signal.
A lint false positive can pre-empt the whole parallel pool. The gate-drift check matched “is not resolved here” in an idea's prose as the status word RESOLVED. Because the repair is serial-only, K = 6 collapsed to one scheduled job, spending a 12-minute PLAN plus 322 seconds of work to change a negated sentence.
05 — D051 INSTITUTIONAL REDESIGN
What Figures 1–6 measure is not that a model is insufficiently capable. It is that the scheduler is in fact deciding the organisational structure: cheap, always-eligible review shifts structurally overproduce under stage-FIFO, while the evidence and production work that move an idea to R6 and R7 are starved. D051 is an owner-endorsed institutional revision. It retains D049/D050's concurrency-safety invariants but changes slot budgets, adjudication conditions, and product ownership.
Statistical basis: the cumulative role histogram above comes from orchestrate/state/calibration.log, excluding 71 legacy-format rows whose role column actually records route. Full R6 / R7 / R8 are 0 / 0 / 0, while all-time R6-lite is 14. All numbers are historical diagnostics from 2026-07-26, not a live dashboard for the current cycle.
D051 diagnosis
We built a review bureaucracy while trying to solve research problems. The problem is neither an insufficient K nor a need for a smarter end-to-end agent. Stage-FIFO, the anti-polish quota, and review's low cost and constant eligibility together make review the default output, while evidence contact and production receive no protected budget.
Different routes and architectures attack the same claim. D023 heterogeneity and the capability floor remain: this is not multi-agent voting, but making errors uncorrelated.
Disagreements can be resolved only by inspectable external anchors: independent recomputation, archive refetch, rerun/hash check, or a feasibility/power number — never by “agreement.”
Every correct increment must enter a ledger and cannot be lost. Gate ledger, graveyard, TRUST_TABLE, SHIFTS, and frag+reduce remain institutional memory, not chat history.
D051 adopts a Mayo-style severity clause: an R4/R5 event may move a gate only when it supplies a replayable, checkable anchor. Unanchored reviewer prose may remain as a note, but its information content is zero and it cannot justify FATAL, REFRAME, CORRECTION, or a lifecycle change.
Measured examples: I026's FATAL came from an XSA-footprint recomputation; I035's REFRAME from rank arithmetic and a HEAVY hash mismatch; I005's PARK from power 0.060/0.073 ≪ 0.8. In contrast, unanchored prose produced 8 of the 17 NO_NEW_SHOT outcomes that day.
M0 / R0 / R1 / R3-data / HEAVY pilots receive a protected majority of slots. HEAVY becomes an owner-set, weekly pre-authorized budget, with champions first.
Full R6 + R7 living drafts. Each champion keeps one living draft in shared/drafts/; an empty feasibility table is an honest TODO. R8 attacks the draft, not the idea prose.
R4 / R5 / R8 / L spend evidence only to stop false evidence. Two consecutive rounds with no FATAL+REFRAME and no new evidence file trigger a yield circuit-breaker: review of that idea pauses until new evidence arrives.
Breadth grows while the product chain stops at seed. Eleven same-day R2 seeds received 17 R5 adjudications.
serves:Elo/score only schedules; it does not constitute scientific success. The sole permitted success claim is an R8 verdict on a living draft and AO submission.
| No. | Change | Status | Purpose |
|---|---|---|---|
| 0a | write-first protocol; hermes agent.max_turns 250→500 | LIVE | Block “work completed but not persisted” |
| 0b | write-set gate + parallel reduce frags + orphan lock guard | LIVE | Mechanically enforce one file / one writer |
| 1 | R4/R5 severity clause; gate-drift negation-aware matching | DECIDED | Only anchored review may move a gate |
| 2 | plan_constraints.py yield circuit-breaker | DECIDED | Zero-yield review can no longer loop indefinitely |
| 3 | champions.py + milestone contracts + serves: | DECIDED | Concentrate most budget on the product critical path |
| 4 | deterministic typed inventory; separate FAST/HEAVY lane views; LLM writes task only | DECIDED | Remove the second planning brain and the 20–24 min PLAN critical path |
| 5 | rolling.sh completion-driven reduce_one() + queue refill | LIVE | Batch full barrier eliminated; planner remains an LLM |
| 6 | champion full-R6 + shared/drafts/ living drafts | DECIDED | Start the real proposal-production chain |
| 7 | north-star / velocity / yield / utilization metrics | DECIDED | Metrics serve scheduling only, under a Goodhart guard |
| 8 | weekly HEAVY budget (N×3h/week); global fixed H=1 | OWNER INPUT | N controls weekly work only; HEAVY is never parallel and is independent of FAST K |
rolling.sh, running processes, and wk1–wk88 logs; it does not mean that the deterministic scheduler (item 4) has been implemented.
Goodhart guard and the sole north star
proposal-ready count is the sole north star: feasibility closed ∧ no open FATAL ∧ draft sections complete. Velocity is decisive-evidence delta per champion-week; review efficiency is (FATAL+REFRAME)/R4-shift. These metrics may influence scheduling, but they cannot replace scientific judgment or become a declaration of proposal success.