Some checks failed
ci / check (push) Has been cancelled
Nine observations from the maintainer's session. Two are about the game and go to the register; seven are about the engine and are this workplan. F18 IS THE ONE THAT REFRAMES THE PASS. "I don't understand the GROUND card" reads as a design problem. It is not: Actions.csv carries that card's own tagline -- "Regulate. Restore the frame. Decide." -- and its full rules text, and clay-borg never imported it. We vendored ONE OF NINETEEN edition files. Everything else the engine knows is a hand-transcription into GroundRules.md's 59 numbered rules, which is enough to PLAY the game and gives a player nothing to READ. The page shows `Clarify` where the card says "Ask What Happened -- Invite a concrete account before judging." Registered as `inert`: the data exists and cannot fire, because nothing reads it. Found by a player saying he did not understand something. Rule coverage is 59/59 and has been for weeks. F17: no incentive to ATTACK while holding useful Solutions. Registered as a NOTE, not a finding -- no artifact demonstrates it, and under GameDesign §3.1 it may not go to ground-game until one exists. One is cheap (count ATTACK selections across the policy panel against hand quality). Owner is ground-game if it survives, since it would be a design finding. The workplan (M, chaos d8=1, no override, declaration 11 of window 2) carries the seven engine observations. Two tasks are deliberately shaped against past mistakes: T01 must decide whether ADR-0011's hand-rolled CSV reader survives Solutions.csv, whose microcopy and rules_text are prose with commas and quotes -- ADR-0011 named exactly that as its revisit condition, so if the reader cannot parse them the dependency argument gets re-run rather than a fragile parser written. T04 must first establish whether "click the deck to draw" is a legal move at all. GR-A01 draws as part of INVESTIGATE; the deck is not a thing a player may take from. If it is not legal, that is a FINDING for ground-game -- the maintainer expected an interaction the rules do not offer -- and not a feature. CB-WP-0023 exists because SOLVE was offered where it could not act. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
179 lines
10 KiB
Markdown
179 lines
10 KiB
Markdown
# The finding register
|
||
|
||
Design findings about **GROUND**, with their reproductions. Governed by
|
||
[`GameDesign.md`](GameDesign.md) (admissibility, kinds, states, metrics)
|
||
and [ADR-0012](../decisions/ADR-0012-the-design-instrument.md). Reported
|
||
by `make design`.
|
||
|
||
**Split out of `GroundRules.md §Underdetermined` on 2026-08-05** when that
|
||
file crossed the ~400-line loadability limit. ADR-0012 D2 said *"no new
|
||
file"* and this is a new file — but D2's substance was **one register, not
|
||
a second mechanism competing with the first**, and that holds: this *is*
|
||
§Underdetermined's register, moved, still driving off the same
|
||
`provisional`/ruling machinery. D2 also named the awkwardness this
|
||
resolves — a finding about the engine sitting in a document about the
|
||
game.
|
||
|
||
The U-items themselves, with their defaults and rulings, stay in
|
||
[`GroundRules.md §Underdetermined`](GroundRules.md); this file tracks them
|
||
*as findings*.
|
||
|
||
**This section is the design-finding register** (ADR-0012 D2). It was the
|
||
register for dataset ambiguities already; CB-WP-0022 extended it to all
|
||
five kinds rather than building a second one beside it. Admissibility,
|
||
kinds, states and metrics: [`GameDesign.md`](GameDesign.md). Reported by
|
||
`make design`.
|
||
|
||
<!-- design-register:begin -->
|
||
|
||
| id | kind | state | reproduction | role | raised | owner |
|
||
|---|---|---|---|---|---|---|
|
||
| U1 | underdetermined | applied | — | default | 2026-07-31 | ground-game |
|
||
| U2 | underdetermined | applied | scenarios/ground/gr-d01-darvo-trigger.yaml | default | 2026-07-31 | ground-game |
|
||
| U3 | underdetermined | applied | — | default | 2026-07-31 | ground-game |
|
||
| U4 | underdetermined | applied | — | default | 2026-07-31 | ground-game |
|
||
| U5 | underdetermined | applied | — | default | 2026-07-31 | ground-game |
|
||
| U6 | underdetermined | applied | — | default | 2026-07-31 | ground-game |
|
||
| U7 | underdetermined | applied | — | default | 2026-07-31 | ground-game |
|
||
| U8 | underdetermined | applied | — | default | 2026-07-31 | ground-game |
|
||
| U9 | underdetermined | applied | — | default | 2026-07-31 | ground-game |
|
||
| U10 | underdetermined | applied | — | default | 2026-07-31 | ground-game |
|
||
| F11 | inert | applied | scenarios/ground/gr-p05-solve-legality.yaml | counterexample | 2026-08-02 | clay-borg |
|
||
| F12 | degenerate | note | — | — | 2026-08-01 | clay-borg |
|
||
| F13 | inconsistent | withdrawn | scenarios/ground/gr-e01-threshold-reachable-2p.yaml | counterexample | 2026-08-01 | clay-borg |
|
||
| F14 | unplayed | note | — | — | 2026-08-01 | clay-borg |
|
||
| F15 | underdetermined | note | — | — | 2026-08-05 | clay-borg |
|
||
| F16 | inconsistent | withdrawn | games/ground/examples/difficulty.rs | counterexample | 2026-08-05 | clay-borg |
|
||
| F17 | degenerate | note | — | — | 2026-08-06 | ground-game |
|
||
| F18 | inert | raised | — | — | 2026-08-06 | clay-borg |
|
||
|
||
<!-- design-register:end -->
|
||
|
||
- **F11 — SOLVE offered where it cannot act.** Offered on a face-down
|
||
Problem, or with no matching suit in hand; inert every time. Ruled
|
||
GROUND-WP-0002 T02, implemented CB-WP-0023 as GR-P05. `applied` — the
|
||
rule changed, not just the annotation. **The case we reported was not the
|
||
case that fired**: `validate` already rejected face-down, and the
|
||
maintainer's three inert SOLVEs were the *hand* case.
|
||
- **F12 — GR-A13 "wasted SOLVE" on an already-claimed Problem.** A
|
||
scenario had to pick a default and did. `note`: no artifact isolates the
|
||
degenerate line, so under GameDesign §3.1 it may not be reported until
|
||
one exists.
|
||
- **F13 — GR-E01 vs GR-S01, withdrawn 2026-08-05.** Raised as *"4/6/9
|
||
against 5/7/9, no dataset reconciles them."* `2da19a4` measured **6/9/12
|
||
against 5/7/9** and the scenario was renamed `-unreachable-` →
|
||
`-reachable-`. **Its reproduction is green**, which under GameDesign §1.3
|
||
is the alarm that forced the resolution. Withdrawn rather than deleted,
|
||
and the withdrawal is reported (ADR-0012 D5).
|
||
- **F16 — "the game is too easy at 5–6 seats", withdrawn the day it was
|
||
raised.** Claimed from `GreedyPolicy` winning 200/200 at those seat
|
||
counts. A `FirstLegal` policy scores **0%** on the identical deals, and
|
||
at two seats it *beats* greedy — two unsophisticated agents span the
|
||
whole range, so the measurement was about the policy. Caught by the
|
||
CB-WP-0025 adversarial review (C4) **before transmission**; it would
|
||
have been the fifth wrong premise sent to ground-game and the worst,
|
||
since GROUND-WP-0005 is blocked on exactly this number. The withdrawal
|
||
was reported (ADR-0012 D5). Its reproduction is `difficulty.rs`, whose
|
||
policy panel is plural *because of this finding*.
|
||
- **F17 — no incentive to ATTACK while holding useful Solutions.**
|
||
Reported from play, 2026-08-06: *"there is no incentive to play attacks
|
||
as long as I have positive cards."* If true, ATTACK is a dead branch for
|
||
most of a game, which would make GR-A06/A07/A08 and the whole Rivalry
|
||
half of the relation system reachable only when a player is out of good
|
||
options. **`note`, not a finding**: no artifact demonstrates it yet. One
|
||
is cheap — count ATTACK selections across the policy panel and compare
|
||
against hand quality — and until it exists this may not go to
|
||
`ground-game` (GameDesign §3.1). **Owner is ground-game if it survives**;
|
||
it would be a design finding, not an engine one.
|
||
- **F18 — the engine imports one of nineteen edition files, so the cards
|
||
cannot say what they do.** Reported as *"I don't understand the GROUND
|
||
card"* — which is not a design gap: `Actions.csv` carries that card's
|
||
tagline (*"Regulate. Restore the frame. Decide."*) and full rules text,
|
||
and clay-borg never imported it. Every other card is the same: a player
|
||
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.**
|
||
- **F15 — the rules define one game, not a series.** `OutcomeView` gives
|
||
`personal` (per seat), `group_success` (per table) and `winners`. Summing
|
||
the first and counting the third answer different questions, and GROUND
|
||
says nothing about how several games combine. CB-WP-0024 T04 shows
|
||
**both, labelled**, rather than picking one and letting it become the
|
||
score by default. `note`: no artifact demonstrates that this *harms*
|
||
play — a unit test showing the two tallies point at different seats
|
||
demonstrates only that they can differ, which is arithmetic, not a design
|
||
defect. Under GameDesign §3.1 it may not be reported until one exists.
|
||
- **F14 — GR-E03/GR-E04 never played to the end.** Nineteen passes, never
|
||
played out. `note` until a trial game exists; GROUND-WP-0003 is the
|
||
playtest that would close it, and GameDesign §5's protocol makes the
|
||
recording the artifact.
|
||
|
||
### The register's first run found ten answers nobody had collected
|
||
|
||
**U1–U10 are `ruled`, not `reported`.** GROUND-WP-0002 T05 answered all
|
||
ten on **2026-08-03** — every one **confirmed** as the default clay-borg
|
||
already simulates — and GROUND-WP-0002 T03 confirmed five of the six
|
||
provisional scenarios, voiding `gr-e01` as a rules gap. The workplan is
|
||
`finished`.
|
||
|
||
CB-RES-0007 reported *"0 of 10 ruled"* and this register was built saying
|
||
`reported`. **Both were two days stale on the day they were written.** The
|
||
answers had arrived and nothing propagated them — the same failure as the
|
||
unread inbox, in the opposite direction.
|
||
|
||
**They are `ruled`, not `applied`, and the difference is work we owe.**
|
||
Per ADR-0012 D5, `applied` means the source changed and the provisional
|
||
default was deleted. The rulings *confirmed* our defaults, so the rules did
|
||
not move — but the scenarios still carry `provisional: true` for choices
|
||
that are now settled. **Lifting those flags and recording each ruling is
|
||
what closes U1–U10**, and it is not done. `make design` shows them open
|
||
until it is.
|
||
|
||
### The U-item ↔ scenario mapping, measured twice
|
||
|
||
**One U-item has a scenario that names it: U2.** CB-RES-0007 asserted six
|
||
of ten did.
|
||
|
||
CB-WP-0026 T03 tried to write the other mappings and **produced two wrong
|
||
ones before checking them**:
|
||
|
||
| claimed | why it was withdrawn |
|
||
|---|---|
|
||
| `gr-a04-bond-support` → U1 | it asserts consent is **required**; U1 asks **when** the target accepts. Different question. |
|
||
| `gr-d05-darvo-reverse` → U5 | it exercises the **unrejected** REVERSE; U5 is the **rejected** one (GROUND—ND). Different stage. |
|
||
|
||
Both were plausible from the `covers:` list and both were wrong on
|
||
reading the description. **That is the third and fourth instance of this
|
||
exact defect** — a link that looks right, asserted without checking what
|
||
the artifact actually exercises — and the first two reached ground-game.
|
||
|
||
So a scenario now declares `encodes_u_item` explicitly or claims nothing.
|
||
**Nine U-items have no reproduction and are recorded as having none.**
|
||
They are `applied` because the ruling landed and the provisional flag came
|
||
off, not because anything demonstrates them.
|
||
|
||
### What the backfill measured, and what it contradicted
|
||
|
||
**Only U2 names its U-item in a scenario.** Measured, not estimated:
|
||
|
||
```
|
||
for u in U1 .. U10; do grep -lE "\b$u\b" scenarios/ground/*.yaml; done
|
||
```
|
||
|
||
CB-RES-0007 asserted *"six of the ten already have provisional
|
||
scenarios."* Five provisional scenarios exist and **one** cites the item
|
||
it stands for. The other four may well encode U-item defaults — the
|
||
mapping is simply **not written down**, so it is not checkable, and an
|
||
uncheckable link is the defect this register exists to fix. The register
|
||
records what is citable; the rest is debt, visible in `make design`.
|
||
|
||
**No sixth kind was needed** — the five kinds absorbed all four non-U
|
||
findings. And the survey's *"six provisional defaults"* was **not** entered
|
||
as a finding: C3 showed it double-counted GR-E01, and the provisional
|
||
scenarios are *reproductions for* underdetermined items, not a finding of
|
||
their own.
|
||
|
||
**U1–U10 are `reported` while lacking reproductions**, which GameDesign
|
||
§3.1 would now forbid. They were reported on 2026-07-30, before the rule
|
||
existed. They are grandfathered rather than rewritten, and the debt is a
|
||
reported metric with a target of zero.
|
||
|