clay-borg/scenarios/ground/gr-e02-shared-ground.yaml
tegwick 704b99975b
Some checks failed
ci / check (push) Failing after 4s
Apply ground-game's rulings: mastery in points, four boards, and a
vendor tool that covers what the gate checks

They ruled on all seven items the same day. Two were actionable here.

F28 RULED: points. Modes.csv MODE_COOP clarified upstream to say
"penalties apply to points, not card count"; mastery is now
total - blame - denied. A recorded scenario went red on it --
gr-e02-shared-ground pinned 0 (2 claimed CARDS - 1 - 1) and now expects
2 (4 POINTS - 1 - 1). The number moved because the rule was decided, not
because the engine drifted, and the scenario records both rulings; its
schema has no field for a second one, so both live in ruled_note with
`ruled` carrying the LATEST date.

F29 RULED not-intended and APPLIED upstream: SCN_02's suits re-tuned the
same day. The characterisation test is how we found out -- it pinned the
duplication, went red on the re-tune, and that red WAS the notification.
It now asserts every pair distinct, the stronger statement the
duplication had made unavailable. SCN_02 re-measures at 73 at 2p, not
67: its own board now.

F26/F30 ruled and recorded. F30's ruling incidentally confirms our
reading -- they name priority-2's suit as the first lever, which is the
difference we identified without having measured causation.

vendor-editions grew twice, both times because it covered less than the
gate it exists to satisfy:

  - It refused to touch ground-darvo-r0/ on the reasoning that the
    baseline is "a separate record". That was wrong within the hour:
    ground-game clarified Modes.csv and `make vendor` reported a clean
    sync while edition-check went red. A sync tool that covers less than
    its check reports success into a red gate.
  - Its two-block rewrite DETECTED which fence held which set and
    preserved the arrangement -- faithfully preserving a swap an earlier
    write had introduced, leaving each fence under a heading describing
    the other. edition-check reads every sha256 line flat and passed
    throughout: a document can be self-consistently wrong and green.
    Order is now asserted, with a control that goes red on a swap.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-09 00:15:14 +02:00

61 lines
2.2 KiB
YAML
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.

scenario: ground/gr-e02-shared-ground
description: >
SHARED GROUND scoring after Round 5 (GR-R09, GR-E01, GR-E02): one
shared total against the player-count threshold, with a Mastery
rating reduced by each Blame token and each Denied Problem.
covers: [GR-R09, GR-E01, GR-E02, GR-P03]
ruled: 2026-08-08
ruled_by: ground-game
ruled_note: >
GROUND-WP-0002 T03, 2026-08-03 — confirm: encode Modes.csv MODE_COOP as printed. Encodes no U-item; it was provisional on the mode data, not on an undetermined rule.
RE-RULED 2026-08-08 (F28 / GROUND-RPT-0006 §5(a)): mastery penalties apply to POINTS, not card count. Modes.csv MODE_COOP was clarified upstream and this scenario's expectation moved from 0 to 2. The schema has no field for a second ruling, so both are recorded here; the `ruled` date is the LATEST, because that is the one a reader must check the edition against.
seed: 42
setup:
players: 3
preset: standard-3p
patch:
"lead": 0
"round": 5
"mode": SharedGround
# 3p threshold is 7; claimed values 1+3 fall short.
"problems.1.claimed_by": 0
"problems.3.claimed_by": 1
"problems.2.denied": true
"players.2.blame_from": [0]
commands:
- actor: P1
cmd: select_action
args: { action: INVESTIGATE, problem: 2 }
- actor: P2
cmd: select_action
args: { action: INVESTIGATE, problem: 2 }
- actor: P3
cmd: select_action
args: { action: INVESTIGATE, problem: 2 }
- actor: SYSTEM
cmd: reveal
- actor: SYSTEM
cmd: resolve
- actor: SYSTEM
cmd: end_round
expect:
events:
- kind: GameEnded
state:
"outcome.total": 4
"outcome.threshold": 7
"outcome.group_success": false
# POINTS, not card count (F28, ruled by ground-game 2026-08-08):
# start from the shared point total (4), 1 point per Blame token,
# 1 point per Denied Problem.
#
# **This scenario asserted 0** — 2 claimed CARDS 1 1 — which is
# the reading the clarified Modes.csv now rules out. The number moved
# because the rule was decided, not because the engine drifted, and
# the gate went red on exactly this line.
"outcome.mastery": 2
"outcome.winners": []
# GR-R09: the game ended rather than advancing to Round 6.
"round": 5
"step": End
rejects: []