CB-WP-0022 T04: specs/GameDesign.md -- what a reproduction must show

Not a register; ADR-0012 D2 put that in GroundRules §Underdetermined. This
spec says what may go in it, what a reproduction must show, how a finding
dies, and how a trial game is run.

§1.2 is written against evidence rather than principle. A finding must
print the rows behind any number it claims, and the spec carries the table
of what shipped instead: a sum ("12 in the file"), a green scenario
("4/6/9 against 5/7/9"), and a condition named without checking which one
fired ("SOLVE on a face-down Problem"). "12" was arithmetically defensible
and still wrong about the game -- that sentence is the requirement.

§1.3's target is 0 reproductions that have gone green while open. GR-E01
would have tripped it four days before a human caught it by hand.

No baseline rate is quoted. The 33% was withdrawn by C2 and the first
honest denominator is T05's backfill; quoting a new number from a
discredited instrument is how the first one got in.

The trial protocol costs one flag: cb-play --record already writes a
finished game as a scenario, so a trial is that plus a sibling .md in the
player's own words. An observation is a NOTE until it has a reproduction,
and notes may not cross the repo boundary and expire at 30 days on the
existing provisional-age machinery. The maintainer's "I felt it was too
easy but then we lost" is the case the protocol is shaped around --
forcing it into a schema at the moment of observation would lose it.

loop-lint: no findings.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
tegwick 2026-08-05 15:07:38 +02:00
parent 580081ef71
commit b4f51effad
2 changed files with 200 additions and 1 deletions

View file

@ -287,7 +287,7 @@ under its own workplan, citing the reproduction by path.
```task
id: CB-WP-0022-T04
status: todo
status: done
priority: high
state_hub_task_id: "60ddfeab-81b1-45e4-9ec9-91cc8ea7fb72"
```
@ -328,6 +328,36 @@ here: a trial game is a `--record`ed session plus an observation log, so
engine already records sessions as scenarios; a trial is that plus notes,
and it must cost almost nothing or it will not be done.
**Done 2026-08-05.** [specs/GameDesign.md](../specs/GameDesign.md) v1.0.
**It is not a register, and says so in its second line** — ADR-0012 D2 put
the register in `§Underdetermined`, so this spec says what may go in it,
what a reproduction must *show*, and how a finding dies.
**§1.2 had to be written against evidence rather than principle.** A
finding must now print the rows behind any number it claims, and the spec
carries the table of what shipped instead: a sum, a green scenario, and a
condition named without checking which one fired. *"12" was arithmetically
defensible and still wrong about the game* — that sentence is the whole
requirement.
**§1.3's target is `0` reproductions that have gone green while open.**
That is the metric GR-E01 would have tripped four days before a human
caught it.
**No baseline rate is quoted.** C2 withdrew the 33%, and the first honest
denominator is T05's backfill — quoting a new number from a discredited
instrument is how the first one got in.
**The trial protocol costs one flag.** `cb-play --record` already writes a
finished game as a scenario and `record.rs`'s round trip is its own test,
so a trial is that plus a sibling `.md` in the player's own words. The
rule that makes it safe: an observation is a **note** until it has a
reproduction, and a trial log is where findings are *noticed*, not a
finding source. The maintainer's *"I felt it was too easy but then we
lost"* is the case it is shaped around — forcing that into a schema at the
moment of observation would lose it.
## Task: build it, and backfill what is already known
```task