clay-borg/scenarios/ground/gr-e02-shared-ground.yaml

62 lines
2.2 KiB
YAML
Raw Normal View History

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]
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
ruled: 2026-08-08
CB-WP-0026: collect the rulings -- ten answers that arrived and were never applied ground-game ruled all ten U-items on 2026-08-03, every one CONFIRMED as the default clay-borg simulates, and confirmed five of six provisional scenarios. clay-borg never collected the answers: CB-RES-0007 reported "0 of 10 ruled" the same day, and CB-WP-0022 built the finding register two days later still recording them as `reported`. make design's first run is what noticed -- not a human, not the adversarial review that found four other things. That is the unread-inbox failure running in the opposite direction, and it appears nowhere in the declaration, survey, ADR or spec of the pass that was built entirely around the forward version. It is arguably worse: an unread message is visible as silence, while a collected-but-unapplied ruling looks exactly like work in progress. Ten rulings quoted into §Underdetermined (the three conditional ones verbatim -- U1's designer note, U2's End-only trigger, U8's consume-only-if-it-cancels). Five provisional flags lifted, replaced by ruled/ruled_by/ruled_note so the flag went and the provenance stayed. Register queue 9 -> 0. T02's control came back clean: make sim is 26 passed, 59 rules covered, nothing red. Had a scenario gone red it would have meant we described our own behaviour incorrectly to ground-game. I wrote two U-item mappings and both were wrong. gr-a04 -> U1 (it asserts consent is REQUIRED; U1 asks WHEN the target accepts) and gr-d05 -> U5 (it exercises the UNREJECTED Reverse; U5 is the rejected one). Both plausible from covers:, neither survived reading the description. Third and fourth instance of this defect; the first two reached ground-game. So encodes_u_item is now a declaration and design.py asserts the file names what it claims -- and that check's own first version grepped for mentions and went red when two files recorded why they do NOT encode U1 and U5. A mention is not a claim, which is exactly the looseness that let "six of the ten have provisional scenarios" stand. Two positive controls went red for the best possible reason, both broken the same way -- asserting against live repo data instead of constructing their condition. rule-coverage.py required at least one provisional item to EXIST; it now builds a fixture and reports the live count as a diagnostic, because there is no number of provisional items this project should have. design-baseline.py pinned "2 of 6" while recomputing one row from a live glob, so the dated snapshot was never a snapshot; frozen to its 2026-08-03 list and unwired from self-tests, since per ADR-0012 D8 it is no longer a reporting tool. ScenarioFile is deny_unknown_fields and refused the four new fields until declared -- correct: a corpus accepting unknown metadata would let a typo'd encodes_u_iem sit there claiming nothing. DEVIATION: ADR-0012 D2 said "no new file". GroundRules.md crossed the loadability limit, so the register moved to specs/FindingRegister.md. D2's substance holds -- one register, same machinery, nothing competing -- but the literal instruction did not, and it resolves an awkwardness D2 named itself. make all: exit 0. loop-lint clean. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-05 16:13:37 +02:00
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.
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
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
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
# 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: []