From dd262169bfd28610a645535a381749c62f47f9d7 Mon Sep 17 00:00:00 2001 From: tegwick Date: Fri, 31 Jul 2026 01:33:54 +0200 Subject: [PATCH] T05: GROUND rules spec derived from GROUND-DARVO-CORE-0.1 (numbered rules, 10 flagged underdeterminations) --- specs/GroundRules.md | 257 +++++++++++++++++++++++++++++ workplans/CB-WP-0001-inner-loop.md | 2 +- 2 files changed, 258 insertions(+), 1 deletion(-) create mode 100644 specs/GroundRules.md diff --git a/specs/GroundRules.md b/specs/GroundRules.md new file mode 100644 index 0000000..78a1284 --- /dev/null +++ b/specs/GroundRules.md @@ -0,0 +1,257 @@ +# GROUND Rules — simulation specification + +Status: **v0.1 draft**, derived 2026-07-31 from the authoritative sister +repo `ground-game`, edition dataset **GROUND-DARVO-CORE-0.1** +(`editions/ground-darvo-r0/`: Rules_Text, Actions, DARVO, Relations, +Problems, Solutions, Scenarios, Modes, Tokens, Player_Mats, Glossary). +This is a derivation, not a design: where the dataset is silent, the gap +is listed in §Underdetermined with a PROVISIONAL simulation default and +must be flagged back to ground-game, never silently canonized. + +Every rule is numbered and individually testable; scenario files cover +rules via their `covers:` list (M-D1-COV). Names in `CAPS` are dataset +terms. + +--- + +## 1. Objects and state (GR-O) + +- **GR-O01** A game has 2–6 players, exactly 5 rounds, one Scenario card, + and one Mode card. +- **GR-O02** Per-player state: Stress (integer 0–5), Freedom token + (READY/SPENT), DARVO marker (OFF/DENY/ATTACK/REVERSE), Focus/Blame token + (with owner and location), 2 relation slots, a hand of Solution cards, + a set of 5 Action cards, claimed Problems, and 0+ Protection tokens. +- **GR-O03** Table state: Surface Problem (face up), hidden Problems (face + down), Denied tokens on Problems, Solution deck and discard, Lead marker + (one player), Round marker (1–5), relation tiles (Bond/Rivalry side) + between player pairs. +- **GR-O04** A Problem has: required Solution suit (Clarify, Repair, + Boundary, or Change), point value, visibility (face up / face down), + Denied flag, and claimed-by (a player or nobody). +- **GR-O05** A relation between two players is exactly one of Bond or + Rivalry; at most one relation may exist between the same two players. + +## 2. Setup (GR-S) + +- **GR-S01** Setup uses the chosen Scenario's Surface Problem face up and + its hidden Problems face down, filtered by player count: priorities 1–2 + for 2 players, 1–3 for 3–4 players, 1–4 for 5–6 players. +- **GR-S02** Each player starts with: Stress 2, Freedom READY, DARVO + marker OFF, Focus/Blame token (Focus side, unplaced), two free relation + slots, and two dealt Solution cards. +- **GR-S03** The Lead marker starts with a (seeded-)random player; the + Round marker starts at 1. +- **GR-S04** The Solution deck is the 24 core Solution cards (6 per suit) + minus those dealt, shuffled deterministically from the game seed. + +## 3. Round structure (GR-R) + +- **GR-R01** Each round has four steps in order: Select, Reveal, Resolve, + End. +- **GR-R02 (Select)** Every player simultaneously chooses exactly one of + their five Actions face down, with target designation where the Action + requires one. Choices are hidden from other players until Reveal + (commit/reveal). +- **GR-R03 (Select, stress gate)** A player at Stress 4 or 5 may select + only ATTACK or GROUND, unless they spend their READY Freedom token + during Select (before Reveal), which permits any one Action and turns + the token to SPENT. +- **GR-R04 (Reveal)** All selected Actions are revealed simultaneously. +- **GR-R05 (Reveal, GROUND mode)** A player who revealed GROUND chooses + its mode (GR / OU / ND) and its target *after* seeing all revealed + Actions, before resolution begins. +- **GR-R06 (Resolve)** Resolution proceeds in fixed step order: + 1 GROUND, 2 Support, 3 active DARVO stages, 4 Investigate, 5 Attack, + 6 Solve. +- **GR-R07 (Resolve, ties)** Within the same step, resolve starting with + the Lead player, continuing clockwise. +- **GR-R08 (End)** At End: clamp all Stress to 0–5; any player at Stress 5 + whose DARVO marker is OFF sets it to DENY (their sequence begins next + round); rotate Lead clockwise; advance the Round marker. +- **GR-R09** After Round 5's End step, the game ends and scoring applies + (GR-E). + +## 4. Stress and Freedom (GR-F) + +- **GR-F01** Stress is always an integer clamped to 0–5. +- **GR-F02** At Stress 0–3 all five Actions are selectable. +- **GR-F03** A Freedom token is READY or SPENT; spending is only possible + when READY, and only during Select (GR-R03). +- **GR-F04** GROUND—GR readies its player's Freedom token. Support + received through an existing Bond readies the target's Freedom token. + +## 5. Actions (GR-A) + +- **GR-A01 (INVESTIGATE)** Reveal one chosen hidden, non-Denied Problem, + then draw one Solution. If no hidden non-Denied Problems remain, draw + one Solution only. +- **GR-A02 (SOLVE)** Targeting one face-up, non-Denied Problem: when Solve + resolves, discard one Solution matching the Problem's required suit and + claim the Problem. If the Problem was already claimed by an earlier + resolver this round (Lead order), the Solution is not discarded and + nothing happens. +- **GR-A03 (SUPPORT, no relation)** Target gets −1 Stress; a Bond may then + form per GR-L02. +- **GR-A04 (SUPPORT, existing Bond)** Target gets −2 Stress, target's + Freedom becomes READY, and if the target is in an active DARVO sequence + its current stage is cancelled and the whole sequence ends (marker to + OFF). +- **GR-A05 (SUPPORT, existing Rivalry)** Target gets −1 Stress; the target + chooses: flip the relation to Bond, or break it. +- **GR-A06 (ATTACK, no relation)** Target gets +1 Stress; a Rivalry forms + automatically if both players have a free slot (GR-L03). +- **GR-A07 (ATTACK, existing Bond)** Target gets +2 Stress and the Bond + flips to Rivalry. +- **GR-A08 (ATTACK, existing Rivalry)** Target gets +2 Stress and the + relation breaks (both link tokens return). +- **GR-A09 (ATTACK, cancellation)** Protection or GROUND—OU may cancel an + Attack. A cancelled Attack changes neither Stress nor relations. +- **GR-A10 (GROUND—GR, Ground & Restate)** Self: −2 Stress and Freedom + becomes READY. If the player is in an active DARVO sequence, the current + stage still resolves this round, then the remaining sequence ends. +- **GR-A11 (GROUND—OU, Observe & Uphold)** Choose one: restore one Denied + Problem (face up, remove Denied token); cancel one Attack targeting the + player this round; or protect one face-up Problem from Deny this round. +- **GR-A12 (GROUND—ND, Name & Decide)** Choose one: remove one Blame token + from the player; break one relation involving the player; or reject one + Reverse targeting the player this round. +- **GR-A13** SUPPORT and ATTACK target one *other* player; INVESTIGATE + targets a hidden Problem; SOLVE targets a face-up non-Denied Problem. + +## 6. Relations (GR-L) + +- **GR-L01** Each player has exactly 2 relation slots; each relation + consumes one slot from each endpoint. If either endpoint lacks a free + slot, the immediate Support/Attack effect still applies but no relation + forms. +- **GR-L02 (Bond formation)** A no-relation Support creates a Bond only if + both players have a free slot **and the target accepts**. +- **GR-L03 (Rivalry formation)** A no-relation Attack creates a Rivalry + automatically (no consent) if both players have a free slot. +- **GR-L04 (Flip/break)** Bond→Rivalry on Attack-through-Bond (GR-A07); + Rivalry→Bond or break by target's choice on Support-through-Rivalry + (GR-A05); break on Attack-through-Rivalry (GR-A08); GROUND—ND may break + any relation involving its player (GR-A12). +- **GR-L05** A Bond formed this round by a Support does not itself cancel + DARVO; only Support through a Bond that existed before this round's + Support step regulates DARVO (GR-A04). + +## 7. DARVO sequence (GR-D) + +- **GR-D01 (Trigger)** At End, a player at Stress 5 with marker OFF sets + the marker to DENY; their DENY stage resolves in the next round's DARVO + step (GR-R08). +- **GR-D02 (Binding)** Once triggered, the sequence advances one stage per + consecutive round — DENY, then ATTACK, then REVERSE — regardless of the + player's later Stress, unless ended early (GR-D06/GR-A04/GR-A10). +- **GR-D03 (DENY)** Mandatory effect in the DARVO step: choose one + face-up, unsolved Problem not protected by GROUND—OU this round; turn it + face down and place a Denied token. A Denied Problem cannot be solved or + revealed by ordinary Investigate; only GROUND—OU restores it. +- **GR-D04 (ATTACK stage)** Mandatory effect: make one extra Attack + against any other player, resolved with the normal relation rules + (GR-A06..A09), in addition to the player's chosen Action. Then place the + player's Focus token beside the target — even if the extra Attack was + cancelled. The Focus target is remembered as the REVERSE target. +- **GR-D05 (REVERSE)** Mandatory effect targeting the Focus holder: unless + rejected by that player's GROUND—ND this round, flip Focus to Blame in + front of them, give them +1 Stress, and gain one Protection token. Then + (rejected or not — see §Underdetermined U5) the sequence owner reduces + own Stress by 2 and the sequence ends (marker OFF). +- **GR-D06 (Early end)** The sequence ends immediately when: an existing + Bond's Support cancels the current stage (GR-A04), or GROUND—GR ends it + after the current stage resolves (GR-A10). If it ends before REVERSE, + the placed Focus token is removed. +- **GR-D07** A player whose marker is not OFF cannot trigger a new + sequence (GR-R08); after the sequence ends, the marker is OFF and + re-triggering is possible at a later End. + +## 8. Problems and solving (GR-P) + +- **GR-P01** Only face-up, non-Denied Problems can be targeted by SOLVE or + claimed. +- **GR-P02** Hidden (face-down, non-Denied) Problems can only be revealed + by INVESTIGATE (GR-A01); Denied Problems only by GROUND—OU (GR-A11). +- **GR-P03** A claimed Problem belongs to its claimant and counts its + printed value for scoring; a Problem can be claimed at most once. +- **GR-P04** Competing SOLVEs on the same Problem in the same round + resolve in Lead order (GR-R07); losers keep their Solution (GR-A02). + +## 9. Protection, Focus and Blame (GR-T) + +- **GR-T01** A Protection token cancels the next Attack against its + holder (including a DARVO extra Attack), then returns to the supply. +- **GR-T02** A Blame token in front of a player is worth −1 to that + player's personal score and stays until removed by GROUND—ND. +- **GR-T03** Each player has exactly one Focus/Blame token; it is either + unplaced (Focus, with owner), placed Focus-side (during own DARVO), or + flipped to Blame in front of the REVERSE target. + +## 10. Game end and scoring (GR-E) + +- **GR-E01** After Round 5, sum the printed values of all claimed + Problems; the Scenario's threshold (by player count: 2p → 5, 3–4p → 7, + 5–6p → 9 in dataset 0.1) decides group success where the Mode uses it. +- **GR-E02 (SHARED GROUND, co-op)** One shared score; group succeeds iff + total ≥ threshold. Mastery rating = successes minus 1 per Blame token in + play and 1 per Denied Problem. +- **GR-E03 (COMMON PROBLEM, PERSONAL EDGE, semi-co-op)** Group must meet + the threshold; if it does, each player scores claimed value −1 per Blame + they hold; highest wins. Tiebreak: lower Stress, then more Bonds, then + shared victory. +- **GR-E04 (BONDED COALITIONS)** Group must meet the threshold; each + connected Bond network is a coalition (unbonded players are solo); + coalition score = sum of members' personal scores; highest coalition + wins. Rivalries do not connect. Tiebreak: lower combined Stress, then + fewer Blame tokens, then shared victory. + +--- + +## Underdetermined in dataset 0.1 — PROVISIONAL defaults (flag to ground-game) + +Formalization exposed points the dataset does not decide. Simulation uses +the stated default; each is tagged in scenarios that depend on it and must +be confirmed or corrected by ground-game. + +- **U1 Bond acceptance timing (GR-L02):** when does the target "accept"? + Default: a decision point during the Support resolution, target decides + with full knowledge of revealed Actions. +- **U2 Stress clamping during resolution (GR-F01):** dataset caps Stress + at End; mats physically cap at 0–5. Default: clamp on every + application (no intermediate values above 5/below 0). Note this + interacts with DARVO triggering (a mid-round spike to 5 that is reduced + again before End does not trigger). +- **U3 DENY with no legal target (GR-D03):** if no face-up unsolved + unprotected Problem exists, default: the stage resolves as a no-op and + the sequence still advances. +- **U4 Solution deck exhaustion (GR-A01):** default: reshuffle the discard + into a new deck deterministically; if both are empty, the draw is + skipped. +- **U5 Rejected REVERSE — self-effects (GR-D05):** the Actions sheet says + GROUND—ND "rejects one Reverse"; the DARVO sheet orders the −2 + self-Stress after the flip/+1/Protection block. Default: rejection + cancels the effects on the target (no Blame, no +1) **and** the + Protection gain, but the sequence owner still takes −2 Stress and the + sequence still ends; the Focus token returns unflipped. +- **U6 Simultaneous Bond-Support and stage cancellation (GR-A04, GR-R06):** + Support (step 2) resolves before DARVO stages (step 3), so a Bond + Support in the same round cancels that round's stage before it fires. + Stated as the intended reading; confirm. +- **U7 Focus target elimination:** dataset has no player elimination, so + no rule needed; confirm none exists. +- **U8 Multiple Attack cancellation sources (GR-A09):** if both Protection + and GROUND—OU could cancel the same Attack, default: GROUND—OU (chosen + at step 1) applies first; Protection is consumed only if it actually + cancels. +- **U9 Two players at Stress 5 at the same End (GR-R08):** both trigger; + their stages resolve in Lead order in later rounds. No interaction rule + needed; confirm. +- **U10 Hand limits:** none stated. Default: no hand limit. + +## Scenario coverage obligation + +Every GR-rule above must be covered by ≥1 scenario under +`scenarios/ground/` (M-D1-COV); every U-item's default must be covered by +a scenario tagged `provisional: true` so a ground-game correction flips +the scenario, not the kernel. diff --git a/workplans/CB-WP-0001-inner-loop.md b/workplans/CB-WP-0001-inner-loop.md index d6a4841..7695511 100644 --- a/workplans/CB-WP-0001-inner-loop.md +++ b/workplans/CB-WP-0001-inner-loop.md @@ -114,7 +114,7 @@ committed. ```task id: CB-WP-0001-T05 -status: todo +status: done priority: high state_hub_task_id: "2b35574b-0e14-4074-903f-294c32fa22ae" ```