CB-WP-0037 T02: the engine's rules against the edition's
Some checks failed
ci / check (push) Failing after 3s
Some checks failed
ci / check (push) Failing after 3s
Vendored DARVO.csv, Relations.csv and Scenarios.csv — the three unread files that carry mechanism. The engine has implemented the DARVO sequence and relation formation/breaking from GroundRules.md since the beginning, and had never read the game owner's statement of them. Every checkable clause agrees, and agreement is recorded rather than noted: a survey that finds nothing and leaves no trace cannot be told from one never run. The two hardest clauses to notice were already right — Focus placed "even if the Attack was cancelled", and Focus removed when the sequence ends before REVERSE. The tests are tripwires, not derivations. The match was made by a person reading prose, and that reading goes stale in silence when the prose changes; each behaviour pins the phrase it was read from, so a reworded edition goes red and asks for a human. Mutation-proven by rewording the cancelled-Attack clause. F25 raised, and it is the real yield: Scenarios.csv carries threshold_2_players/3_4/5_6, starting_stress and round_track, and the engine hardcodes all three — a match returning 5/7/9, stress: 2 at setup, five rounds. They agree on all four scenarios. These are the most contested numbers in the project; the whole 4/6/9 vs 5/7/9 episode turned on them, and the engine has been right by maintenance coincidence rather than by reading the file that owns them. Also pinned: Problems.csv and Scenarios.csv both state the deal and the engine reads only the first. They agree; nothing was checking. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
d98580fb4c
commit
53109ec5e5
7 changed files with 423 additions and 1 deletions
|
|
@ -46,6 +46,7 @@ kinds, states and metrics: [`GameDesign.md`](GameDesign.md). Reported by
|
|||
| F16 | inconsistent | withdrawn | games/ground/examples/difficulty.rs | counterexample | 2026-08-05 | clay-borg |
|
||||
| F17 | degenerate | raised | games/ground/examples/attack-value.rs | counterexample | 2026-08-06 | ground-game |
|
||||
| F18 | inert | raised | `games/ground/src/edition.rs::card_text_tests::the_engine_reads_only_part_of_what_it_vendored` | counterexample | 2026-08-06 | clay-borg |
|
||||
| F25 | inert | raised | `games/ground/src/edition.rs::card_text_tests::the_engine_agrees_with_the_editions_own_numbers` | default | 2026-08-08 | clay-borg |
|
||||
| F24 | inert | raised | `games/ground/src/edition.rs::card_text_tests::the_hardcoded_deck_still_matches_the_edition` | default | 2026-08-07 | clay-borg |
|
||||
| F19 | degenerate | applied | crates/cb-render-html/src/lib.rs::overhead_table | counterexample | 2026-08-06 | clay-borg |
|
||||
| F20 | inert | applied | crates/cb-render-html/src/lib.rs::ending_page | counterexample | 2026-08-06 | clay-borg |
|
||||
|
|
@ -202,6 +203,19 @@ kinds, states and metrics: [`GameDesign.md`](GameDesign.md). Reported by
|
|||
sees `Clarify` where the card reads *"Ask What Happened — Invite a
|
||||
concrete account before judging."* **`inert`**: the data exists and
|
||||
cannot fire, because nothing reads it. **Ours, and CB-WP-0028 fixes it.**
|
||||
- **F25 — the engine hardcodes numbers the edition states.**
|
||||
`GroundState::threshold` is a `match` returning 5/7/9 while
|
||||
`Scenarios.csv` carries `threshold_2_players`, `threshold_3_4_players`
|
||||
and `threshold_5_6_players`; setup writes `stress: 2` against *"All
|
||||
players start at Stress 2."*; the engine plays five rounds against a
|
||||
printed 1–5 track. **All three agree, on all four scenarios**, and that
|
||||
is the finding rather than the reassurance: these are the most contested
|
||||
numbers in the project — the whole 4/6/9 versus 5/7/9 episode turned on
|
||||
them — and the engine has been right by maintenance coincidence rather
|
||||
than by reading the file that owns them. **`inert`**, role `default`:
|
||||
green because they agree, red the moment either side moves. **Ours.**
|
||||
Same shape as F24.
|
||||
|
||||
- **F24 — the draw pile is a Rust literal.** `solution_deck()` builds six
|
||||
of each suit from an array and never opens `Solutions.csv`, whose `suit`
|
||||
and `quantity` columns say the same thing. **They agree today** — 24
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue