diff --git a/campaign/board.md b/campaign/board.md index 441e7a3..9dd359e 100644 --- a/campaign/board.md +++ b/campaign/board.md @@ -363,3 +363,4 @@ Status flow: `backlog → in-progress → mapped → verified` (or `blocked`). | k=6 is NOT closed - a seventh value appeared | verify | backlog | — | 0% | 2026-09-08 | **Player 512's research target `282` is a value no prior run produced, and nobody has mapped it to a tech name.** Lane L4's XNC arm had k = 6 with four observed; lane CB's pinned runs produced a fifth distinct value. So Rung C-set's "we can name all k" remains **TO PROVE**, exactly as the resolver ruled - and the outstanding `BIO_GnMod` arm is still unidentified. The pinned-seed sweep the resolver specified (quit-to-menu/reload advances the pin table, no relaunch needed) is the way to enumerate the set under known seeds | | CB's own gaps, stated | verify | backlog | — | 0% | 2026-09-08 | **C2 (the ModCount trap set) not run** - RB's replay reaching ModCount = 24 with zero residual is a STRONGER check than the trap multiset, so per-EIP attribution stays an open cheap hour with `shim.cfg.cbtrap` staged. **C4 (a second unpinned turn-1 run) not run** - superseded by the pinned triple, so P5 as written stays unresolved and there is one unpinned turn-1 stream, not two | | two more lab facts | meta | verified | high | 100% | 2026-09-08 | From lane CB: **the vmwatch wall CACHES FRAMES FOR 5 s**, which cost it a misdiagnosis of four working clicks before it spotted the staleness - if you are driving a guest and watching the wall, the wall lags you. And **chained click batches via `schtasks /Run` can silently drop one** - drive one click per call. Both in verify/harness/cb/README.md, joining L2's real-mouse-motion and L4's move-then-click | +| CORPUS 11 -> 19 SAVES, and the ratchet broke as designed | verify | backlog | — | 0% | 2026-09-08 | The save corpus grew from 11 to 19 in one evening as lanes finally manufactured workloads nobody had. **Verified clean on the original 11** (mars_stream_save 1/1); every failure comes from saves added today - L3's trade-route games, which reached LATER TURNS while integration ran, plus CB's captures. Newly opaque and itemised: **`` 704, `TacReports` 369, `Lay` 79, `` 9, `fwarn` 3** - and `trdmgr` is THE TRADE MANAGER, the container three lanes could not get to fill. Named coverage 97.6% against a 99.99 ratchet. **DO NOT MOVE THE RATCHET** - the reader is sound on all of them (round trip tree-identical, typed-identical), it just does not NAME the new items. Now rule 27. INTEGRATOR NOTE: my first control excluded `*traderoutes*` by name and still failed, which briefly looked like CB's merge was at fault - **scope a control by an explicit list, not a name filter** | diff --git a/guides/method-rules.md b/guides/method-rules.md index 11af517..ce458de 100644 --- a/guides/method-rules.md +++ b/guides/method-rules.md @@ -352,3 +352,23 @@ three AI empires visibly varied, which looked like a tiebreak among near-equal c all three streams differed every run; two empires never reach the seed-sensitive code path at all. Before reasoning from *which* items varied, establish whether the others were even exposed to the mechanism. + +## 27. A ratchet is meant to break when the corpus grows — do not move it, and scope your control + +The save corpus went from 11 to 19 in one evening as lanes finally manufactured workloads nobody had +before. The coverage ratchet broke immediately: named coverage fell to 97.6% against a 99.99 bar, +because the new saves carry content no schema names — ``, `TacReports`, `Lay`, +``, `fwarn`. + +**That is the ratchet working.** The reader is sound on every one of them (`round trip: tree +identical, typed identical`); it simply does not *name* the new items. The temptation is to lower the +bar so the suite goes green. Type the content instead — a ratchet you move on contact is a +decoration. + +Two integrator lessons from the same episode: + +- **A new save can break a gate without any code changing.** Before blaming a merge, run the suite + against the corpus as it was. Both times this happened the merge was clean. +- **Scope that control by an explicit list, not by a name filter.** My first control excluded + `*traderoutes*` and still failed, which briefly looked like the merge *was* at fault — the lane had + added more saves under other names while I worked. Pin the control to the exact set you mean.