diff --git a/campaign/board.md b/campaign/board.md index eb1e08f..bcff547 100644 --- a/campaign/board.md +++ b/campaign/board.md @@ -355,3 +355,5 @@ Status flow: `backlog → in-progress → mapped → verified` (or `blocked`). | apply order verified three ways - and honestly unfalsifiable here | control-flow | verified | high | 90% | 2026-09-08 | Thirty steps: lists `6 11 20 19 17 18 5 23 24`, gate loop A, `1 4 3 21 2 22 9 10 12 13 14 15 16 7 8 25 27 26`, gate loops B and C. Verified three ways: the six inlined bump sites plus the three gate-loop heads are **strictly increasing in address in exactly that step order** (9 of 30 positions independently re-derived, the other 21 inherited from AI4); bijection of 1..27; and **neither the list nor the offset sequence is ascending, so a sorted implementation cannot pass**. **STATED PLAINLY BY THE LANE: apply order is unfalsifiable on this corpus** - every non-empty list is one player's and every command names one system | | CB's capture replays unchanged; first AI seeds landed | verify | verified | high | 100% | 2026-09-08 | RB did not duplicate CB's tool - `tools/tcb_from_json.py` joins them, CB's JSON staying the capture of record and `.tcb` the engine's parser-free input. **CB's real VM146 capture replays through it unchanged to the identical canonical result**, and brings the first **AI seeds** (32 -> 0x9dfad635, 496 -> 0xb482b2d8, 512 -> 0xfb81e993 - now Rung C's primary input) plus heap payloads closing two gap rows: list 8's route is [272], list 10's vector is [1728], a ship the input save already contains | | Rung B completeness gap (the real backlog) | verify | backlog | — | 0% | 2026-09-08 | From RB, full table in its finding: ship construction; **the client's ID ALLOCATOR** - design 18 and fleet 34 are allocated CLIENT-SIDE before submission, and it is a watchpoint not a week of reading; the rates frame's memory order; list 10's and list 14's EFFECTS; the Population body; **techId -> name** (the wire carries an id, the save a name; today transcribed from the capture and reported in its own column, with 144/90/288 -> IND_Waldo/DRV_PlsFiss/XNC_TrnsMorr2); the civilian-ratios gate has **NO APPLIER ANYWHERE** so its cost is unknown NOT zero; and whether the **load-time batch** charges the counter is untested | +| RATCHET HIT: L3's trade-route saves carry unmodelled content | verify | backlog | — | 0% | 2026-09-08 | **A good failure, and the ratchet doing exactly its job.** `mars_stream_save` fails only when lane L3's two new saves are present - **isolated by re-running on the 13-save corpus, which passes 1/1** - so this is NOT a regression in lane RB's code. `human-turn5-traderoutes.sav` drops named coverage to **99.0%** (409 opaque) and `human-turn8-traderoutes.sav` to **98.6%** (613 opaque), against a 99.99 ratchet. **The reader is sound on both: `round trip: tree identical, typed identical`** - the items are carried correctly, just not NAMED. What is newly opaque: **`` 284 and 439** (the largest, and almost certainly the trade-route/prep data itself - the thing three lanes could not manufacture), **TacReports 123** (which lanes B5/J had already flagged as carried-not-typed), and **`Lay` 49**, which is new. DO NOT LOWER THE RATCHET - type the content; that is the drift the campaign guards against. This is the first corpus expansion in the campaign to lower coverage, which is what a ratchet is for | +| L3 DELIVERED THE TRADE-ROUTE SAVES | verify | verified | high | 100% | 2026-09-08 | Visible in the corpus ahead of its report: `human-turn5-traderoutes.sav` and `human-turn8-traderoutes.sav`, game `MyGamel3trade`, 28 systems, 2 players, turns 5 and 8. **Three lanes failed to build this workload** (H, W2, W3 each accounted for why); lane W3 had measured the absence - trade routes count 0, all three vector pointers zero, default-constructed not emptied. These saves are what unblocks `spies2`/`SysMem`/`mts` (rule-6 hypotheses with count 0 in all 11 previous saves) and the four tail callees that CAN draw RNG but have never fired on an empty container |