T08 iter 5: the DARVO sequence machine
Resolution step 3 (GR-R06), the last unimplemented step:
- GR-D02 binding: one stage per consecutive round, DENY then ATTACK
then REVERSE, regardless of the player's later Stress.
- GR-D03 DENY: turn one face-up, unsolved, unprotected Problem face
down and Deny it. Under the U3 default no legal target is a no-op and
the sequence still advances.
- GR-D04 ATTACK: one extra Attack under the normal relation rules, then
place the Focus token beside the target even if it was cancelled.
- GR-D05 REVERSE: flip Focus to Blame, +1 Stress to the holder, one
Protection to the owner, unless the holder's GROUND-ND rejects it.
Under the U5 default the owner takes -2 either way and the sequence
ends.
- GR-D06 early end: a Support through a Bond that predates this round's
Support step cancels the stage and ends the sequence, and the placed
Focus token is removed. GROUND-GR ends it after the stage resolves.
- GR-D07: the marker returns to OFF, so a later End can re-trigger.
The Attack rules are now one routine shared by the chosen ATTACK Action
and the DARVO extra Attack, so GR-A06..A09 cannot drift between them.
Stage targets are named by their own command during Reveal, validated
against what the stage admits: DENY needs an eligible Problem, ATTACK
another player, and only a player with a live sequence may choose.
18 scenarios pass; AM-1 coverage 47/58 (81%), up from 41/58.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 02:30:58 +02:00
|
|
|
|
scenario: ground/gr-d05-darvo-reverse
|
|
|
|
|
|
description: >
|
|
|
|
|
|
The REVERSE stage flips Focus to Blame in front of the Focus holder,
|
|
|
|
|
|
gives them +1 Stress and the owner one Protection token, then the
|
|
|
|
|
|
owner takes −2 Stress and the sequence ends (GR-D05, GR-D07).
|
|
|
|
|
|
covers: [GR-D05, GR-D07, GR-T01]
|
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: the printed REVERSE stage plus U5.
|
|
|
|
|
|
Does NOT encode U5: U5 is the REJECTED Reverse (GROUND—ND), and this is the unrejected stage.
|
T08 iter 5: the DARVO sequence machine
Resolution step 3 (GR-R06), the last unimplemented step:
- GR-D02 binding: one stage per consecutive round, DENY then ATTACK
then REVERSE, regardless of the player's later Stress.
- GR-D03 DENY: turn one face-up, unsolved, unprotected Problem face
down and Deny it. Under the U3 default no legal target is a no-op and
the sequence still advances.
- GR-D04 ATTACK: one extra Attack under the normal relation rules, then
place the Focus token beside the target even if it was cancelled.
- GR-D05 REVERSE: flip Focus to Blame, +1 Stress to the holder, one
Protection to the owner, unless the holder's GROUND-ND rejects it.
Under the U5 default the owner takes -2 either way and the sequence
ends.
- GR-D06 early end: a Support through a Bond that predates this round's
Support step cancels the stage and ends the sequence, and the placed
Focus token is removed. GROUND-GR ends it after the stage resolves.
- GR-D07: the marker returns to OFF, so a later End can re-trigger.
The Attack rules are now one routine shared by the chosen ATTACK Action
and the DARVO extra Attack, so GR-A06..A09 cannot drift between them.
Stage targets are named by their own command during Reveal, validated
against what the stage admits: DENY needs an eligible Problem, ATTACK
another player, and only a player with a live sequence may choose.
18 scenarios pass; AM-1 coverage 47/58 (81%), up from 41/58.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 02:30:58 +02:00
|
|
|
|
seed: 42
|
|
|
|
|
|
setup:
|
|
|
|
|
|
players: 3
|
|
|
|
|
|
preset: standard-3p
|
|
|
|
|
|
patch:
|
|
|
|
|
|
"lead": 0
|
|
|
|
|
|
"players.0.darvo": Reverse
|
|
|
|
|
|
"players.0.stress": 3
|
|
|
|
|
|
"focus.0": 1
|
|
|
|
|
|
commands:
|
|
|
|
|
|
- actor: P1
|
|
|
|
|
|
cmd: select_action
|
|
|
|
|
|
args: { action: INVESTIGATE, problem: 3 }
|
|
|
|
|
|
- actor: P2
|
|
|
|
|
|
cmd: select_action
|
|
|
|
|
|
args: { action: INVESTIGATE, problem: 3 }
|
|
|
|
|
|
- actor: P3
|
|
|
|
|
|
cmd: select_action
|
|
|
|
|
|
args: { action: INVESTIGATE, problem: 3 }
|
|
|
|
|
|
- actor: SYSTEM
|
|
|
|
|
|
cmd: reveal
|
|
|
|
|
|
- actor: SYSTEM
|
|
|
|
|
|
cmd: resolve
|
|
|
|
|
|
expect:
|
|
|
|
|
|
events:
|
|
|
|
|
|
- kind: FocusFlippedToBlame
|
|
|
|
|
|
owner: 0
|
|
|
|
|
|
target: 1
|
|
|
|
|
|
- kind: StressSet
|
|
|
|
|
|
player: 1
|
|
|
|
|
|
stress: 3
|
|
|
|
|
|
- kind: ProtectionGained
|
|
|
|
|
|
player: 0
|
|
|
|
|
|
- kind: StressSet
|
|
|
|
|
|
player: 0
|
|
|
|
|
|
stress: 1
|
|
|
|
|
|
- kind: DarvoEnded
|
|
|
|
|
|
player: 0
|
|
|
|
|
|
state:
|
|
|
|
|
|
"players.1.blame_from": [0]
|
|
|
|
|
|
"players.1.stress": 3
|
|
|
|
|
|
"players.0.protection": 1
|
|
|
|
|
|
"players.0.stress": 1
|
|
|
|
|
|
# GR-D07: the marker is OFF, so a new sequence can trigger later.
|
|
|
|
|
|
"players.0.darvo": Off
|
|
|
|
|
|
"focus": {}
|
|
|
|
|
|
rejects: []
|