clay-borg/scenarios/ground/gr-d01-darvo-trigger.yaml

47 lines
1.1 KiB
YAML
Raw Normal View History

T08 iter 2: Reveal, Resolve, End; relations and the DARVO trigger Round machinery, system-driven (GR-R04/R06/R08): - GR-R06 fixed step order with GR-R07 Lead-first ordering inside a step. Steps 1 (GROUND), 3 (DARVO stages), 4 (INVESTIGATE) and 6 (SOLVE) are not implemented yet; their Actions resolve as no-ops and no scenario claims coverage of them. - SUPPORT GR-A03/A04/A05 and ATTACK GR-A06..A09, with relation formation, flip and break per GR-L01/L03/L04 and Protection cancellation. - GR-R08 End: DARVO trigger at Stress 5 in Lead order, Lead rotation, Round advance, per-round flags cleared. - Stress clamps 0-5 on every application, the U2 default, so a mid-round spike that is reduced before End does not trigger DARVO. Two consent-dependent rules are deliberately left out because they need a decision command rather than a default: Bond formation (GR-L02) and the target's flip-or-break choice on Support-through-Rivalry (GR-A05). Both are noted in code and covered by a provisional scenario. Fixes a defect in the T07 scaffold: relations were keyed by a tuple, which JSON cannot use as an object key, so state_hash would have panicked on any state holding a relation. Relation keys are now a Pair newtype serialized as "a-b", with a regression test. setup.patch may now create a final key so scenarios can seed open-ended maps; a typo anywhere earlier in the path is still an error. 8 scenarios pass, 28 rules covered; 17 tests, fmt/clippy green. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 02:19:34 +02:00
scenario: ground/gr-d01-darvo-trigger
description: >
DARVO trigger: a player who ends the round at Stress 5 with the marker
OFF is set to DENY (GR-D01, GR-R08). Stress clamps at 5 on every
application (GR-F01 under the U2 default).
covers: [GR-D01, GR-R08, GR-F01]
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: 2026-08-03
ruled_by: ground-game
ruled_note: >
GROUND-WP-0002 T05/T03, 2026-08-03 — confirm: clamp on every application; DARVO still arms only at End (GR-R08). Encodes the U2 default.
encodes_u_item: U2
T08 iter 2: Reveal, Resolve, End; relations and the DARVO trigger Round machinery, system-driven (GR-R04/R06/R08): - GR-R06 fixed step order with GR-R07 Lead-first ordering inside a step. Steps 1 (GROUND), 3 (DARVO stages), 4 (INVESTIGATE) and 6 (SOLVE) are not implemented yet; their Actions resolve as no-ops and no scenario claims coverage of them. - SUPPORT GR-A03/A04/A05 and ATTACK GR-A06..A09, with relation formation, flip and break per GR-L01/L03/L04 and Protection cancellation. - GR-R08 End: DARVO trigger at Stress 5 in Lead order, Lead rotation, Round advance, per-round flags cleared. - Stress clamps 0-5 on every application, the U2 default, so a mid-round spike that is reduced before End does not trigger DARVO. Two consent-dependent rules are deliberately left out because they need a decision command rather than a default: Bond formation (GR-L02) and the target's flip-or-break choice on Support-through-Rivalry (GR-A05). Both are noted in code and covered by a provisional scenario. Fixes a defect in the T07 scaffold: relations were keyed by a tuple, which JSON cannot use as an object key, so state_hash would have panicked on any state holding a relation. Relation keys are now a Pair newtype serialized as "a-b", with a regression test. setup.patch may now create a final key so scenarios can seed open-ended maps; a typo anywhere earlier in the path is still an error. 8 scenarios pass, 28 rules covered; 17 tests, fmt/clippy green. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 02:19:34 +02:00
seed: 42
setup:
players: 3
preset: standard-3p
patch:
"lead": 0
"players.1.stress": 4
commands:
- actor: P1
cmd: select_action
args: { action: ATTACK, target: P2 }
- actor: P2
cmd: select_action
args: { action: ATTACK, target: P3 }
T08 iter 2: Reveal, Resolve, End; relations and the DARVO trigger Round machinery, system-driven (GR-R04/R06/R08): - GR-R06 fixed step order with GR-R07 Lead-first ordering inside a step. Steps 1 (GROUND), 3 (DARVO stages), 4 (INVESTIGATE) and 6 (SOLVE) are not implemented yet; their Actions resolve as no-ops and no scenario claims coverage of them. - SUPPORT GR-A03/A04/A05 and ATTACK GR-A06..A09, with relation formation, flip and break per GR-L01/L03/L04 and Protection cancellation. - GR-R08 End: DARVO trigger at Stress 5 in Lead order, Lead rotation, Round advance, per-round flags cleared. - Stress clamps 0-5 on every application, the U2 default, so a mid-round spike that is reduced before End does not trigger DARVO. Two consent-dependent rules are deliberately left out because they need a decision command rather than a default: Bond formation (GR-L02) and the target's flip-or-break choice on Support-through-Rivalry (GR-A05). Both are noted in code and covered by a provisional scenario. Fixes a defect in the T07 scaffold: relations were keyed by a tuple, which JSON cannot use as an object key, so state_hash would have panicked on any state holding a relation. Relation keys are now a Pair newtype serialized as "a-b", with a regression test. setup.patch may now create a final key so scenarios can seed open-ended maps; a typo anywhere earlier in the path is still an error. 8 scenarios pass, 28 rules covered; 17 tests, fmt/clippy green. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 02:19:34 +02:00
- actor: P3
cmd: select_action
args: { action: INVESTIGATE, problem: 3 }
T08 iter 2: Reveal, Resolve, End; relations and the DARVO trigger Round machinery, system-driven (GR-R04/R06/R08): - GR-R06 fixed step order with GR-R07 Lead-first ordering inside a step. Steps 1 (GROUND), 3 (DARVO stages), 4 (INVESTIGATE) and 6 (SOLVE) are not implemented yet; their Actions resolve as no-ops and no scenario claims coverage of them. - SUPPORT GR-A03/A04/A05 and ATTACK GR-A06..A09, with relation formation, flip and break per GR-L01/L03/L04 and Protection cancellation. - GR-R08 End: DARVO trigger at Stress 5 in Lead order, Lead rotation, Round advance, per-round flags cleared. - Stress clamps 0-5 on every application, the U2 default, so a mid-round spike that is reduced before End does not trigger DARVO. Two consent-dependent rules are deliberately left out because they need a decision command rather than a default: Bond formation (GR-L02) and the target's flip-or-break choice on Support-through-Rivalry (GR-A05). Both are noted in code and covered by a provisional scenario. Fixes a defect in the T07 scaffold: relations were keyed by a tuple, which JSON cannot use as an object key, so state_hash would have panicked on any state holding a relation. Relation keys are now a Pair newtype serialized as "a-b", with a regression test. setup.patch may now create a final key so scenarios can seed open-ended maps; a typo anywhere earlier in the path is still an error. 8 scenarios pass, 28 rules covered; 17 tests, fmt/clippy green. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 02:19:34 +02:00
- actor: SYSTEM
cmd: reveal
- actor: SYSTEM
cmd: resolve
- actor: SYSTEM
cmd: end_round
expect:
events:
- kind: StressSet
player: 1
stress: 5
- kind: DarvoTriggered
player: 1
state:
"players.1.stress": 5
"players.1.darvo": Deny
"round": 2
rejects: []