# CB-EV-0026 — the table you sit at CB-WP-0028 T08. Tier M (structural M — imports more of an external dataset under AM-4's budgets; chaos d8=1 → no override). Declaration 11 of chaos window 2. Closed 2026-08-06. **Delivered:** [ADR-0015](../decisions/ADR-0015-the-cards-own-words.md), three vendored edition files, a generic reader, the cards' own words on the page, one overhead table replacing three diagrams, controls and log in the meta column, *"game solved"*, and rankings that cite their source. --- ## 1. Nine observations, and where they actually came from **Seven of nine were engine defects. One was a design finding. One was already true and nobody could tell.** | # | observation | what it turned out to be | |---|---|---| | 1 | no incentive to attack | a **design finding** (F17), and still a note | | 2 | *"I don't understand the GROUND card"* | **a data-import gap** — the card explains itself and we never read it | | 3 | overhead view | three diagrams the player had to assemble | | 4 | click the deck to draw | **not a legal move**; built nothing | | 5 | auto-draw option | **already automatic**, and always was | | 6–7 | controls and log on the right | layout | | 8 | *"Game Over"* on a win | wrong vocabulary for a co-operative game | | 9 | rankings | a place where the game defines *not to rank* | **Observations 4 and 5 are the most useful pair in the set**, because both dissolved. Clicking the deck is not a move — `GroundCommand` has no standalone draw, and the edition's INVESTIGATE text says *"…reveal it. **Then draw one Solution.**"* Drawing is a consequence. And auto-draw was asked for a thing that has **never been manual**. **Both had one cause: nothing on the page said how drawing works.** The INVESTIGATE card's own words were in a file we had not imported. So a player invented a mental model to fill the gap, and reported the gap as two feature requests. **No finding was raised.** An instinct differing from a *legible* rule is a comprehension gap; an instinct differing from an *invisible* one is our defect. Whether it recurs now that the card says it is a testable question and was not before. ## 2. The import gap was worse than "one file of nineteen" Measured before deciding: | | | |---|---| | edition files upstream | 19 | | vendored | **1** | | columns in that one file | 13 | | columns the engine read | **5** | | scenarios in the file | 4 | | scenarios the engine deals | **1**, hardcoded | `title`, `problem_text`, `front_rules`, `reveal_effect` and `unresolved_effect` were vendored on 2026-08-04 and **discarded at parse time for eight days**. The page showed `Repair 2` for a card that reads *"Missed Deadline"*. Fixing that cost no new bytes, no dependency and no budget — it was the cheapest thing in the pass and the one nothing had found. **Rule coverage was 59/59 throughout.** The gate measures whether rules are exercised, and every rule was. **Nothing measures whether a player can read the game**, and nothing cheaply could — which is why the person playing it is the instrument. ## 3. The dependency question was answered by measurement, not preference ADR-0011 refused the `csv` crate and named its own revisit condition: *"nested quoting, embedded newlines, multiple dialects."* Across every candidate file — Actions, Solutions, Modes, Scenarios — **zero doubled quotes and zero embedded newlines.** The hand reader's only job is comma-in-quoted-field, which it already did. So the argument was not re-run, **and the reason is a measurement rather than the inconvenience of re-running it.** `edition-check` now asserts that condition on every vendored file, so the day it stops being true the gate says so instead of a parser mangling a card. **One reader, four callers.** A per-file copy is how a parser acquires four subtly different bugs. ## 4. Two gates were written for a smaller world **`edition-check` compared the first recorded digest against `Problems.csv` regardless of which file that digest described.** With one vendored file it was correct; with four it was comparing across files. It now checks both directions — a vendored file with no digest fails, and a digest naming an absent file fails. **A `cb-play` test asserted the literal string `"game over"`** and went red when a won game began saying *"solved"* — the feature working. Fixed by asserting the heading **against the outcome** rather than against a word, which also covers the no-outcome case the original never touched. **Both are the same shape:** an assertion that encoded a world with one file, or one ending. Neither was wrong when written. ## 5. What T07 decided not to do `Modes.csv` gives `scoring_tiebreak` per mode. For SHARED GROUND it is **"Not applicable"** — the table succeeds or fails together. So the co-operative mode shows contributions and **refuses to order them**, and says why on the page. A leaderboard would have been easy, looked good, and invented scoring the game does not have — the same defect class as canonising a provisional default, which this project has already committed once. Where a mode *does* rank, the ordering is the game's own words. The single derived superlative is labelled **"clay-borg's reading, not a rule."** **This is the first time the project has had the game's own tiebreak to cite**, and it only had it because §2's import brought `Modes.csv` in. The alternative was inventing one. ## 6. The overhead view cost no coverage probe All existing probes passed through a restructure that **deleted two renderers** (`relations_svg`, `piles_svg`) and merged three diagrams into one. **Second confirmation of CB-WP-0027's finding**: a probe that names a *fact* survives a reflow; one that names a *presentation* does not. CB-WP-0024's `17 remaining` probe broke on a rendering change; CB-WP-0027's and this pass's did not, and this reflow was far larger. The new control is per-seat-count: **2 through 6 seats all lay out with no two seat circles closer than 70px**, asserted rather than eyeballed at three — which is the only count anyone ever looks at. ## 7. Chaos window 2 — closed > **CORRECTED 2026-08-07 — this section is wrong.** > Window 2 produced **one** override: declaration 3 (CB-WP-0020) rolled > d8 = 8, drew S against a structural S, and **changed nothing** — which > CB-WP-0020 recorded correctly at the time as *"One."* Eleven rolls at d8 > (declaration 1 opened the window at d4) against an expectation of 1.375 > eights. **The rate was working; I asserted "zero" without counting, and > each later evidence file cited the one before it.** > See [ADR-0017](../decisions/ADR-0017-chaos-window-2-verdict.md) and F23. **Declaration 11 of 12**, structural M, d8 = 1, no override. The window has now produced **zero overrides in eleven declarations at d8**. Its retirement condition — *retire if an override changes nothing twice running* — was never testable, and CB-EV-0024 and CB-EV-0025 both said so. This is the third and final statement of it. **The window's verdict should be that d8 bought rarity by spending evidence.** Window 1 at d4: two overrides, both changed the outcome. Window 2 at d8: none. **A mechanism that produces no data across a full window cannot be evaluated by that window**, which is a stronger conclusion than "the rate is too low" and belongs in whatever closes it. ## Open after this pass - **F17 needs an artifact.** Counting ATTACK selections across the policy panel against hand quality is cheap and nobody has done it. - **Three of four scenarios have never been dealt** (ADR-0015 D5). Now visible, still true. - **`Relations`, `DARVO`, `Tokens`, `Glossary` are deferred, not refused.** If a seat's DARVO stage needs its own words, that is the trigger. - **Nobody has written a trial note in anger** — carried forward from CB-EV-0025, and the note channel only started working today. - **Whether the card text changed what the maintainer understood** is this pass's real acceptance test and has a person attached to it.