CB-WP-0008-T03: prove the 2-6 player range
GR-O01 states 2-6 players; every scenario in the corpus was 3-player. Now all five counts play to GameEnded under both policies and reproduce at the same seed, with scenarios at both boundaries and the CLI transcript run at 2p, 3p and 6p. Nothing broke — the rules are seat-count-generic. What the boundaries exposed is arithmetic: with the standard preset's placeholder Problem values (value = priority), the best total any game can reach is 3 at 2p, 6 at 3-4p, 10 at 5-6p, against GR-E01 thresholds of 5, 7 and 9. Group success is unreachable below five seats regardless of play, and no scenario noticed because none had played to scoring with everything claimed. GR-S01 calls the fixture a stand-in for scenario Problem data, so this is evidence the stand-in is not neutral, not that GR-E01 is wrong. It is pinned by a passing scenario, an arithmetic test, and a provisional marker owned by ground-game so it ages in `make coverage`. The test states its own delete-by: it is expected to fail when Problem values become real data, and that failure is the signal to delete it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
25531e9d01
commit
d97e8e825d
7 changed files with 289 additions and 28 deletions
53
scenarios/ground/gr-e01-threshold-unreachable-2p.yaml
Normal file
53
scenarios/ground/gr-e01-threshold-unreachable-2p.yaml
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
scenario: ground/gr-e01-threshold-unreachable-2p
|
||||
description: >
|
||||
GR-E01's threshold against the standard preset's Problem values, at the
|
||||
2-player boundary. Both Problems are claimed — the best case available
|
||||
— and the total is 3 against a threshold of 5. With the placeholder
|
||||
fixture (value = priority) group success is unreachable at 2, 3 and 4
|
||||
players; only 5–6p can reach its 9. Recorded here so the gap has a
|
||||
failing-in-fact scenario rather than a paragraph, and marked provisional
|
||||
because the fixture is explicitly a stand-in for scenario Problem data.
|
||||
covers: [GR-E01, GR-E02, GR-O01]
|
||||
provisional: true
|
||||
provisional_owner: ground-game
|
||||
provisional_raised: 2026-08-01
|
||||
seed: 42
|
||||
setup:
|
||||
players: 2
|
||||
preset: standard-2p
|
||||
patch:
|
||||
"round": 5
|
||||
"mode": SharedGround
|
||||
"problems.1.claimed_by": 0
|
||||
"problems.2.claimed_by": 1
|
||||
"problems.2.face_up": true
|
||||
commands:
|
||||
- actor: P1
|
||||
cmd: select_action
|
||||
args: { action: GROUND }
|
||||
- actor: P2
|
||||
cmd: select_action
|
||||
args: { action: GROUND }
|
||||
- actor: SYSTEM
|
||||
cmd: reveal
|
||||
- actor: P1
|
||||
cmd: choose_ground_mode
|
||||
args: { mode: GR }
|
||||
- actor: P2
|
||||
cmd: choose_ground_mode
|
||||
args: { mode: GR }
|
||||
- actor: SYSTEM
|
||||
cmd: resolve
|
||||
- actor: SYSTEM
|
||||
cmd: end_round
|
||||
expect:
|
||||
events:
|
||||
- kind: GameEnded
|
||||
state:
|
||||
# 1 + 2 = 3, the maximum any 2-player game of this preset can score.
|
||||
"outcome.total": 3
|
||||
"outcome.threshold": 5
|
||||
"outcome.group_success": false
|
||||
"round": 5
|
||||
"step": End
|
||||
rejects: []
|
||||
51
scenarios/ground/gr-o01-six-player.yaml
Normal file
51
scenarios/ground/gr-o01-six-player.yaml
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
scenario: ground/gr-o01-six-player
|
||||
description: >
|
||||
GR-O01's upper boundary, the counterpart to gr-o01-two-player. Six
|
||||
seats exercise the 5–6p Problem set (GR-S01, four priorities) and the
|
||||
longest resolution order (GR-R07, Lead first then clockwise with a
|
||||
wrap).
|
||||
covers: [GR-O01, GR-S01, GR-R07]
|
||||
seed: 42
|
||||
setup:
|
||||
players: 6
|
||||
preset: standard-6p
|
||||
commands:
|
||||
- actor: P1
|
||||
cmd: select_action
|
||||
args: { action: INVESTIGATE, problem: 2 }
|
||||
- actor: P2
|
||||
cmd: select_action
|
||||
args: { action: INVESTIGATE, problem: 3 }
|
||||
- actor: P3
|
||||
cmd: select_action
|
||||
args: { action: INVESTIGATE, problem: 4 }
|
||||
- actor: P4
|
||||
cmd: select_action
|
||||
args: { action: SUPPORT, target: P5 }
|
||||
- actor: P5
|
||||
cmd: select_action
|
||||
args: { action: GROUND }
|
||||
- actor: P6
|
||||
cmd: select_action
|
||||
args: { action: ATTACK, target: P1 }
|
||||
- actor: SYSTEM
|
||||
cmd: reveal
|
||||
- actor: P5
|
||||
cmd: choose_ground_mode
|
||||
args: { mode: GR }
|
||||
- actor: P5
|
||||
cmd: respond_to_support
|
||||
args: { response: accept_bond }
|
||||
- actor: SYSTEM
|
||||
cmd: resolve
|
||||
- actor: SYSTEM
|
||||
cmd: end_round
|
||||
expect:
|
||||
events:
|
||||
- kind: ProblemRevealed
|
||||
- kind: RoundEnded
|
||||
state:
|
||||
# GR-S01: four Problems at six players.
|
||||
"problems.4.face_up": true
|
||||
"round": 2
|
||||
rejects: []
|
||||
40
scenarios/ground/gr-o01-two-player.yaml
Normal file
40
scenarios/ground/gr-o01-two-player.yaml
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
scenario: ground/gr-o01-two-player
|
||||
description: >
|
||||
GR-O01's lower boundary. Every scenario in this corpus before
|
||||
CB-WP-0008 T03 was 3-player, so a rule stated for a range (2–6) was
|
||||
tested at one point. A full round at two seats: setup deals the 2p
|
||||
Problem set (GR-S01), both seats select, and resolution runs with the
|
||||
smallest possible seat order.
|
||||
covers: [GR-O01, GR-S01, GR-R01, GR-R07]
|
||||
seed: 42
|
||||
setup:
|
||||
players: 2
|
||||
preset: standard-2p
|
||||
commands:
|
||||
- actor: P1
|
||||
cmd: select_action
|
||||
args: { action: INVESTIGATE, problem: 2 }
|
||||
- actor: P2
|
||||
cmd: select_action
|
||||
args: { action: SUPPORT, target: P1 }
|
||||
- actor: SYSTEM
|
||||
cmd: reveal
|
||||
- actor: P1
|
||||
cmd: respond_to_support
|
||||
args: { response: accept_bond }
|
||||
- actor: SYSTEM
|
||||
cmd: resolve
|
||||
- actor: SYSTEM
|
||||
cmd: end_round
|
||||
expect:
|
||||
events:
|
||||
# GR-R06 order: Support (step 2) resolves before INVESTIGATE (step 4).
|
||||
- kind: RelationFormed
|
||||
- kind: ProblemRevealed
|
||||
- kind: RoundEnded
|
||||
state:
|
||||
# GR-S01: two Problems at two players, not three.
|
||||
"problems.2.face_up": true
|
||||
"round": 2
|
||||
"step": Select
|
||||
rejects: []
|
||||
Loading…
Add table
Add a link
Reference in a new issue