clay-borg/evidence/CB-EV-0026-the-table-you-sit-at.md
tegwick a9978c7a91
Some checks failed
ci / check (push) Failing after 4s
ADR-0017: window 2's verdict — the mechanism worked, my account of it did
not

Tier M (changes how the loop constrains its own operation), declared at
d8 because the rate for window 3 is what this document decides and
declaring at a rate it invents would be circular. chaos d8 = 7, no
override.

I CLAIMED WINDOW 2 PRODUCED ZERO OVERRIDES, FIVE TIMES, AND IT IS FALSE.
Declaration 3 (CB-WP-0020) rolled d8 = 8, overrode, drew S against a
structural S, and changed nothing -- and CB-WP-0020 recorded it correctly
at the time, in those words: "the first override at d8... It changed
nothing... One."

Counting the workplans takes one command and I never ran it. CB-EV-0024
asserted "zero" without checking; CB-EV-0025, 0026, 0027 and CB-WP-0029
each cited the one before. A claim propagated five times by citation
rather than by measurement, in files whose subject was that exact failure.
facts-check catches a copied number that disagrees with its source;
nothing catches a number with NO source, asserted once and repeated.
Registered F23, and all four evidence files carry an in-place correction
rather than a silent edit (ADR-0012 D5).

THE ACTUAL VERDICT: THE RATE IS WORKING. Eleven rolls at d8 -- declaration
1 opened the window at the old d4 -- against 1.375 eights expected, 1
observed. Not a shortage of evidence; the design.

BUT THE RETIREMENT CONDITION GENUINELY CANNOT FIRE, and that took
computing to see. "An override changes nothing twice running" needs a
consecutive pair at P=1/3 each, so ~12 overrides expected, at ~1.4 per
window: ~9 windows, roughly 100 declarations. A gate that cannot cash out
on any realistic horizon is decoration, which ADR-0006 D3 forbids.

Restated to be evaluated PER WINDOW: retire if a full window's overrides
all change nothing, met in two consecutive windows. A window with no
overrides is inconclusive and advances nothing. ~24 declarations rather
than ~100. Window 2 counts as the first; window 3 opens at d8 and decides.

Recorded and deliberately not acted on: declarations 5-9 rolled six five
times running, ~1 in 370 for some run of five in eleven rolls. shuf tested
over 200 rapid successive calls looks uniform, longest run three. Found
post hoc, which is how coincidences become findings, so it is logged for a
future window to check rather than treated as evidence.

InnerLoop.md then crossed the loadability limit, and so did
InnerLoopReference.md. The window log moved to specs/ChaosRollHistory.md:
it grows by one entry per window, and a log inside a reference eventually
crowds out the reference.

make all: exit 0.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-07 10:55:54 +02:00

172 lines
7.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 |
| 67 | 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.