fix(workplans): adopt ADR-007 derived identifiers
Records absent from central carried random pre-ADR-007 identifiers minted by the retired local hub, which C-06 refused as stale references. Deriving from the canonical record id takes no identity from anything. Refs CUST-WP-0068-T06 Assistant: claude-code Assistant-Model: opus Assistant-Process: 2583210@bnt-lap001 Assistant-Session: f2bff2d5-e9b2-4338-92ca-10282a927006
This commit is contained in:
parent
9458d0256a
commit
b5730f280b
55 changed files with 2937 additions and 150 deletions
7
editions/modules/attack_relief/none/MODULE.md
Normal file
7
editions/modules/attack_relief/none/MODULE.md
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
# Module: `attack_relief.none`
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| **aspect** | `attack_relief` |
|
||||
| **role** | **Default.** ATTACK never reduces attacker Stress. |
|
||||
| **status** | baseline-default |
|
||||
10
editions/modules/attack_relief/self_soothe_ge4/MODULE.md
Normal file
10
editions/modules/attack_relief/self_soothe_ge4/MODULE.md
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
# Module: `attack_relief.self_soothe_ge4`
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| **aspect** | `attack_relief` |
|
||||
| **role** | Uncancelled ATTACK: if attacker Stress was ≥4 before effects → attacker −1 Stress |
|
||||
| **status** | measured only as part of H1; alone unmeasured |
|
||||
| **legacy** | H1-B half of `h1-problem-stress` |
|
||||
|
||||
Under H1, never fired for competent play (Stress stayed <4). Worth re-trying **with** `problem_stress.scoped` as a composition profile.
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
# attack_relief.self_soothe_ge4 (was H1-B)
|
||||
module_id: attack_relief.self_soothe_ge4
|
||||
aspect: attack_relief
|
||||
schema_version: 1
|
||||
base: ground-darvo-r0
|
||||
deltas:
|
||||
- id: AR-H4
|
||||
name: high_stress_attack_self_soothe
|
||||
phase: resolve_attack
|
||||
when:
|
||||
attack_not_cancelled: true
|
||||
attacker_stress_before_attack_effects_gte: 4
|
||||
effect:
|
||||
attacker_stress_delta: -1
|
||||
order: after_target_and_relation_effects
|
||||
notes: Former H1-B alone.
|
||||
unchanged:
|
||||
- deal_and_thresholds
|
||||
- problem_pressure
|
||||
7
editions/modules/end_condition/fixed_rounds_5/MODULE.md
Normal file
7
editions/modules/end_condition/fixed_rounds_5/MODULE.md
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
# Module: `end_condition.fixed_rounds_5`
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| **aspect** | `end_condition` |
|
||||
| **role** | **Default.** Always play Round 1–5, then threshold + mode scoring. |
|
||||
| **status** | baseline-default |
|
||||
|
|
@ -0,0 +1,64 @@
|
|||
# Module: `end_condition.hybrid_clear_collapse`
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| **aspect** | `end_condition` |
|
||||
| **module_id** | `end_condition.hybrid_clear_collapse` |
|
||||
| **role** | End on **board clear**, **group collapse**, or **max rounds** |
|
||||
| **status** | **ready-for-implement** (draft frozen for v0 kernel) |
|
||||
| **rules_delta** | [`rules_delta.yaml`](rules_delta.yaml) |
|
||||
| **design** | [history/260808-deal-end-sequences-design.md](../../../history/260808-deal-end-sequences-design.md) |
|
||||
|
||||
Independent of `problem_stress` / `problem_deal` / `attack_relief`. Measure
|
||||
**alone** first, then profile `scoped_plus_hybrid_end`.
|
||||
|
||||
## Frozen v0 rules
|
||||
|
||||
### END-CLEAR
|
||||
|
||||
After the **Solve** step: if **zero** unclaimed Problems remain in play →
|
||||
**end the game immediately**.
|
||||
|
||||
- Apply mode scoring as usual.
|
||||
- **Threshold:** if total claimed value ≥ scenario threshold for seat band →
|
||||
group success (SHARED mastery / semi-coalition personal winners as normal).
|
||||
- If claimed value < threshold but board is empty (should be rare) → group
|
||||
**failure** (nothing left to claim).
|
||||
|
||||
### END-COLLAPSE
|
||||
|
||||
After Round End stress clamp (and problem-stress ticks if any module active),
|
||||
before Lead rotation:
|
||||
|
||||
**Collapse** if **either**:
|
||||
|
||||
1. **No seat has Stress ≤ 3**, or
|
||||
2. **Majority** of seats are in an **active DARVO sequence** (stage ≠ OFF).
|
||||
|
||||
Effect:
|
||||
|
||||
- End the game.
|
||||
- **Group success = false** (SHARED fails).
|
||||
- Semi / coalition: **no personal / coalition winners** (table broke).
|
||||
|
||||
### END-CEILING
|
||||
|
||||
If Round **5** completes without CLEAR or COLLAPSE → end with current
|
||||
threshold + mode scoring (identical to baseline fixed-rounds behaviour).
|
||||
|
||||
Round max is **5** in v0 (same product length as r0). Changing max is a
|
||||
different module later if needed.
|
||||
|
||||
## Non-goals (v0)
|
||||
|
||||
- Soft collapse (one seat at 5 only).
|
||||
- Extending rounds when board not clear.
|
||||
- Mode-specific collapse exceptions.
|
||||
|
||||
## Success criteria (when clay-borg implements)
|
||||
|
||||
1. Alone on baseline content: some games end before round 5 (clear or collapse).
|
||||
2. Mean game length ≤ 5 rounds; no hangs.
|
||||
3. With `problem_stress.scoped`: collapse rate non-zero for unregulated policies;
|
||||
clear rate non-zero for greedy SHARED at 3–4p.
|
||||
4. Does not recreate H1-style 0% greedy wins solely via collapse spam.
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
# module: end_condition.hybrid_clear_collapse
|
||||
# status: ready-for-implement (v0 rules frozen in MODULE.md)
|
||||
module_id: end_condition.hybrid_clear_collapse
|
||||
aspect: end_condition
|
||||
schema_version: 1
|
||||
base: ground-darvo-r0
|
||||
status: ready-for-implement
|
||||
implementation: pending_kernel
|
||||
|
||||
deltas:
|
||||
- id: END-CLEAR
|
||||
name: early_end_board_clear
|
||||
phase: after_solve_step
|
||||
when:
|
||||
unclaimed_problems_in_play: 0
|
||||
effect:
|
||||
end_game: true
|
||||
scoring: mode_as_usual
|
||||
group_success_if_claimed_ge_threshold: true
|
||||
group_fail_if_claimed_lt_threshold: true
|
||||
|
||||
- id: END-COLLAPSE
|
||||
name: early_end_group_collapse
|
||||
phase: round_end_after_stress_clamp
|
||||
when:
|
||||
any_of:
|
||||
- no_seat_with_stress_lte: 3
|
||||
- majority_seats_in_active_darvo: true
|
||||
effect:
|
||||
end_game: true
|
||||
group_success: false
|
||||
personal_winners: none
|
||||
|
||||
- id: END-CEILING
|
||||
name: max_rounds_five
|
||||
phase: after_round
|
||||
when:
|
||||
round_completed: 5
|
||||
effect:
|
||||
end_game: true
|
||||
scoring: mode_as_usual
|
||||
7
editions/modules/problem_deal/fixed_setup/MODULE.md
Normal file
7
editions/modules/problem_deal/fixed_setup/MODULE.md
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
# Module: `problem_deal.fixed_setup`
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| **aspect** | `problem_deal` |
|
||||
| **role** | **Default.** Surface + hidden 1..k at setup only; no mid-game Problem influx. |
|
||||
| **status** | baseline-default |
|
||||
77
editions/modules/problem_deal/pressure_deck/MODULE.md
Normal file
77
editions/modules/problem_deal/pressure_deck/MODULE.md
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
# Module: `problem_deal.pressure_deck`
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| **aspect** | `problem_deal` |
|
||||
| **module_id** | `problem_deal.pressure_deck` |
|
||||
| **role** | Small start set + mid-game **Pressure deck** draws |
|
||||
| **status** | **ready-for-implement** (draft frozen for v0 kernel) |
|
||||
| **rules_delta** | [`rules_delta.yaml`](rules_delta.yaml) |
|
||||
| **design** | [history/260808-deal-end-sequences-design.md](../../../history/260808-deal-end-sequences-design.md) |
|
||||
|
||||
Independent of end_condition. **Recommended** compose with
|
||||
`problem_stress.scoped` so drawn scopes matter. Measure alone first if
|
||||
possible (with default problem_stress.none, influx still adds board clutter).
|
||||
|
||||
## Frozen v0 rules
|
||||
|
||||
### DEAL-START
|
||||
|
||||
- **Always in play at setup:** Surface Problem (priority 0).
|
||||
- **Also deal face-down:** hidden priority **1** (and priority **2** only if
|
||||
seats ≥ 4).
|
||||
- All other scenario Problems for that scenario go into the **Pressure deck**,
|
||||
shuffled with the game seed (deterministic).
|
||||
- Seat-band `k` from r0 does **not** bulk-deal the rest; influx replaces
|
||||
“deal all k at once.”
|
||||
|
||||
| seats | starters in play | rest → pressure deck |
|
||||
|------:|------------------|----------------------|
|
||||
| 2–3 | Surface + H1 | H2… |
|
||||
| 4–6 | Surface + H1 + H2 | H3… |
|
||||
|
||||
### DEAL-INFLUX
|
||||
|
||||
At **Round End** (after problem-stress ticks if any, before DARVO arm):
|
||||
|
||||
- If Pressure deck non-empty **and** unclaimed Problems in play < **open_cap**,
|
||||
draw **1** card into play.
|
||||
- **open_cap** = number of seats.
|
||||
- Placement: face-down if hidden/personal/bond as printed; Surface-like global
|
||||
face-up if scope is global.
|
||||
- Stop drawing for that End once one card is drawn (v0: max 1 per round).
|
||||
|
||||
### DEAL-OWN (if problem_stress.scoped also active)
|
||||
|
||||
- **personal:** owner = Lead at time of draw (or next free seat clockwise if
|
||||
Lead already owns ≥2 personal — v0 simplify: **drawer seat = current Lead**).
|
||||
- **bond:** same owner rule; network = Bond network of owner.
|
||||
- **global:** no owner.
|
||||
|
||||
If `problem_stress.none`, owners may still be recorded for table clarity but
|
||||
have no stress effect.
|
||||
|
||||
### DEAL-POINTS (v0)
|
||||
|
||||
- Cards that entered via **Pressure deck draw** have **point_value 0** for
|
||||
scoring (stress / fiction only).
|
||||
- **Starters** keep printed `point_value`.
|
||||
- Scenario **thresholds unchanged** (5/7/9) and apply only to starter claims
|
||||
+ any printed values that were starters.
|
||||
|
||||
This avoids reopening GR-E01 arithmetic while testing influx.
|
||||
|
||||
## Non-goals (v0)
|
||||
|
||||
- Problems in Solution hand.
|
||||
- Multiple draws per round.
|
||||
- Owner-only SOLVE.
|
||||
- Changing thresholds mid-game.
|
||||
|
||||
## Success criteria (when clay-borg implements)
|
||||
|
||||
1. Games show mid-game influx (deck depletes or open_cap binds).
|
||||
2. With scoped stress: variance and DARVO still possible; greedy SHARED 3–4p
|
||||
wins not collapsed to H1-zero.
|
||||
3. Threshold success still well-defined (starter points only).
|
||||
4. Composable: works with default end_condition and with hybrid end.
|
||||
45
editions/modules/problem_deal/pressure_deck/rules_delta.yaml
Normal file
45
editions/modules/problem_deal/pressure_deck/rules_delta.yaml
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
# module: problem_deal.pressure_deck
|
||||
# status: ready-for-implement (v0 rules frozen in MODULE.md)
|
||||
module_id: problem_deal.pressure_deck
|
||||
aspect: problem_deal
|
||||
schema_version: 1
|
||||
base: ground-darvo-r0
|
||||
status: ready-for-implement
|
||||
implementation: pending_kernel
|
||||
|
||||
deltas:
|
||||
- id: DEAL-START
|
||||
name: reduced_initial_deal
|
||||
phase: setup
|
||||
effect:
|
||||
seats_2_3_initial: [surface, hidden_priority_1]
|
||||
seats_4_6_initial: [surface, hidden_priority_1, hidden_priority_2]
|
||||
remainder_to: pressure_deck
|
||||
pressure_deck_shuffle: deterministic_seeded
|
||||
|
||||
- id: DEAL-INFLUX
|
||||
name: end_round_draw_if_room
|
||||
phase: round_end
|
||||
when:
|
||||
pressure_deck_nonempty: true
|
||||
unclaimed_count_lt: open_cap
|
||||
effect:
|
||||
open_cap: seat_count
|
||||
draw_problems: 1
|
||||
max_draws_per_end: 1
|
||||
place: face_down_unless_global_scope
|
||||
|
||||
- id: DEAL-OWN
|
||||
name: owner_on_draw
|
||||
phase: on_pressure_draw
|
||||
effect:
|
||||
personal_or_bond_owner: current_lead
|
||||
global_owner: none
|
||||
|
||||
- id: DEAL-POINTS
|
||||
name: drawn_card_scoring
|
||||
phase: data
|
||||
effect:
|
||||
drawn_point_value: 0
|
||||
starter_printed_values: unchanged
|
||||
thresholds: unchanged_5_7_9
|
||||
14
editions/modules/problem_stress/flat_any_open/MODULE.md
Normal file
14
editions/modules/problem_stress/flat_any_open/MODULE.md
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
# Module: `problem_stress.flat_any_open`
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| **aspect** | `problem_stress` |
|
||||
| **role** | End of round: if **any** Problem unclaimed → **each** seat +1 Stress |
|
||||
| **status** | measured → reject as sole pressure (H1-A); keep for A/B |
|
||||
| **legacy** | H1-A half of `h1-problem-stress` |
|
||||
| **measurement** | [RPT-0004](../../../../reports/260808-clay-borg-h1-measured.md) |
|
||||
|
||||
**Compose with:** any `end_condition`, `problem_deal`, `attack_relief`.
|
||||
**Conflicts with:** other `problem_stress.*` modules (one per aspect).
|
||||
|
||||
Known result: flat tax → solve-rate collapse at 3p+ under greedy (when used alone or with H1-B).
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
# problem_stress.flat_any_open (was H1-A)
|
||||
module_id: problem_stress.flat_any_open
|
||||
aspect: problem_stress
|
||||
schema_version: 1
|
||||
base: ground-darvo-r0
|
||||
deltas:
|
||||
- id: PS-FLAT
|
||||
name: flat_any_open_problem_pressure
|
||||
phase: round_end
|
||||
when:
|
||||
any_problem_unclaimed: true
|
||||
effect:
|
||||
each_player_stress_delta: 1
|
||||
notes: Former H1-A alone. +1 to every seat if any unclaimed Problem remains.
|
||||
unchanged:
|
||||
- deal_and_thresholds
|
||||
- attack_resolution
|
||||
- solve_legality
|
||||
9
editions/modules/problem_stress/none/MODULE.md
Normal file
9
editions/modules/problem_stress/none/MODULE.md
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
# Module: `problem_stress.none`
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| **aspect** | `problem_stress` |
|
||||
| **role** | **Default.** Unclaimed Problems do not raise Stress. |
|
||||
| **status** | baseline-default |
|
||||
|
||||
This is the implicit r0 behaviour. No `rules_delta`; selecting it means “no problem_stress module active.”
|
||||
13
editions/modules/problem_stress/scoped/MODULE.md
Normal file
13
editions/modules/problem_stress/scoped/MODULE.md
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
# Module: `problem_stress.scoped`
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| **aspect** | `problem_stress` |
|
||||
| **role** | Unclaimed Problems +1 Stress to **stress_scope** only (personal / bond / global) |
|
||||
| **status** | measured → keep-as-experiment; candidate for core |
|
||||
| **legacy** | `h2-scoped-problem-stress` |
|
||||
| **measurement** | [RPT-0005](../../../../reports/260808-clay-borg-h2-measured.md) |
|
||||
|
||||
Bond network shares ticks → joint SOLVE incentive (bots do not test joint motive).
|
||||
**Compose with:** end, deal, attack_relief independently.
|
||||
**Conflicts with:** other `problem_stress.*`.
|
||||
21
editions/modules/problem_stress/scoped/Problems.csv
Normal file
21
editions/modules/problem_stress/scoped/Problems.csv
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
problem_id,scenario_id,visibility,stress_scope,hidden_priority,title,problem_text,required_solution,symbol_id,point_value,front_rules,reveal_effect,unresolved_effect,back_design_id
|
||||
PRB_01_S,SCN_01,Surface,global,0,Deadline Missed,A promised result was not delivered when expected.,Repair,SYM_REPAIR,2,Resolve with Repair. Value: 2.,None in the core set.,"H2: while unclaimed, +1 Stress at Round End to stress_scope=global (personal=owner; bond=owner's Bond network; global=all).",BACK_PROBLEM_SURFACE
|
||||
PRB_01_1,SCN_01,Hidden,personal,1,Unclear Ownership,Responsibility for the commitment and the work was never made explicit.,Clarify,SYM_CLARIFY,2,Resolve with Clarify. Value: 2.,None in the core set.,"H2: while unclaimed, +1 Stress at Round End to stress_scope=personal (personal=owner; bond=owner's Bond network; global=all).",BACK_PROBLEM
|
||||
PRB_01_2,SCN_01,Hidden,personal,2,Unspoken Overload,The work required more capacity than someone could safely or fairly provide.,Boundary,SYM_BOUNDARY,2,Resolve with Boundary. Value: 2.,None in the core set.,"H2: while unclaimed, +1 Stress at Round End to stress_scope=personal (personal=owner; bond=owner's Bond network; global=all).",BACK_PROBLEM
|
||||
PRB_01_3,SCN_01,Hidden,bond,3,Bad News Was Delayed,A warning was withheld until the remaining options became worse.,Repair,SYM_REPAIR,3,Resolve with Repair. Value: 3.,None in the core set.,"H2: while unclaimed, +1 Stress at Round End to stress_scope=bond (personal=owner; bond=owner's Bond network; global=all).",BACK_PROBLEM
|
||||
PRB_01_4,SCN_01,Hidden,personal,4,No Checkpoint Process,The group had no reliable moment for testing progress and changing course.,Change,SYM_CHANGE,3,Resolve with Change. Value: 3.,None in the core set.,"H2: while unclaimed, +1 Stress at Round End to stress_scope=personal (personal=owner; bond=owner's Bond network; global=all).",BACK_PROBLEM
|
||||
PRB_02_S,SCN_02,Surface,global,0,Shared Task Left Undone,"A recurring responsibility was not completed, and others absorbed the impact.",Repair,SYM_REPAIR,2,Resolve with Repair. Value: 2.,None in the core set.,"H2: while unclaimed, +1 Stress at Round End to stress_scope=global (personal=owner; bond=owner's Bond network; global=all).",BACK_PROBLEM_SURFACE
|
||||
PRB_02_1,SCN_02,Hidden,personal,1,Different Standards,"Players were using different definitions of complete, timely, or fair.",Change,SYM_CHANGE,2,Resolve with Change. Value: 2.,None in the core set.,"H2: while unclaimed, +1 Stress at Round End to stress_scope=personal (personal=owner; bond=owner's Bond network; global=all).",BACK_PROBLEM
|
||||
PRB_02_2,SCN_02,Hidden,personal,2,Invisible Workload,Some contributions and constraints were not visible to the group.,Clarify,SYM_CLARIFY,2,Resolve with Clarify. Value: 2.,None in the core set.,"H2: while unclaimed, +1 Stress at Round End to stress_scope=personal (personal=owner; bond=owner's Bond network; global=all).",BACK_PROBLEM
|
||||
PRB_02_3,SCN_02,Hidden,bond,3,Resentment Never Raised,Frustration accumulated without a direct request or acknowledgement.,Boundary,SYM_BOUNDARY,3,Resolve with Boundary. Value: 3.,None in the core set.,"H2: while unclaimed, +1 Stress at Round End to stress_scope=bond (personal=owner; bond=owner's Bond network; global=all).",BACK_PROBLEM
|
||||
PRB_02_4,SCN_02,Hidden,personal,4,No Ownership Routine,The group relied on goodwill instead of a dependable allocation method.,Repair,SYM_REPAIR,3,Resolve with Repair. Value: 3.,None in the core set.,"H2: while unclaimed, +1 Stress at Round End to stress_scope=personal (personal=owner; bond=owner's Bond network; global=all).",BACK_PROBLEM
|
||||
PRB_03_S,SCN_03,Surface,global,0,Decision Announced as Settled,A group-affecting choice was presented as final before meaningful agreement.,Boundary,SYM_BOUNDARY,2,Resolve with Boundary. Value: 2.,None in the core set.,"H2: while unclaimed, +1 Stress at Round End to stress_scope=global (personal=owner; bond=owner's Bond network; global=all).",BACK_PROBLEM_SURFACE
|
||||
PRB_03_1,SCN_03,Hidden,personal,1,Mandate Was Ambiguous,"It was unclear who could decide, advise, consent, or veto.",Clarify,SYM_CLARIFY,2,Resolve with Clarify. Value: 2.,None in the core set.,"H2: while unclaimed, +1 Stress at Round End to stress_scope=personal (personal=owner; bond=owner's Bond network; global=all).",BACK_PROBLEM
|
||||
PRB_03_2,SCN_03,Hidden,personal,2,Contributions Were Dismissed,Relevant input was ignored or treated as less legitimate.,Repair,SYM_REPAIR,2,Resolve with Repair. Value: 2.,None in the core set.,"H2: while unclaimed, +1 Stress at Round End to stress_scope=personal (personal=owner; bond=owner's Bond network; global=all).",BACK_PROBLEM
|
||||
PRB_03_3,SCN_03,Hidden,bond,3,One Voice Spoke for Others,A player claimed authority to represent people who had not agreed.,Boundary,SYM_BOUNDARY,3,Resolve with Boundary. Value: 3.,None in the core set.,"H2: while unclaimed, +1 Stress at Round End to stress_scope=bond (personal=owner; bond=owner's Bond network; global=all).",BACK_PROBLEM
|
||||
PRB_03_4,SCN_03,Hidden,personal,4,No Decision Rule,The group had no shared method for turning discussion into a legitimate choice.,Change,SYM_CHANGE,3,Resolve with Change. Value: 3.,None in the core set.,"H2: while unclaimed, +1 Stress at Round End to stress_scope=personal (personal=owner; bond=owner's Bond network; global=all).",BACK_PROBLEM
|
||||
PRB_04_S,SCN_04,Surface,global,0,Private Information Spread,Information moved beyond the circle in which it was originally shared.,Repair,SYM_REPAIR,2,Resolve with Repair. Value: 2.,None in the core set.,"H2: while unclaimed, +1 Stress at Round End to stress_scope=global (personal=owner; bond=owner's Bond network; global=all).",BACK_PROBLEM_SURFACE
|
||||
PRB_04_1,SCN_04,Hidden,personal,1,Confidentiality Was Assumed,The players never made the scope of confidentiality explicit.,Clarify,SYM_CLARIFY,2,Resolve with Clarify. Value: 2.,None in the core set.,"H2: while unclaimed, +1 Stress at Round End to stress_scope=personal (personal=owner; bond=owner's Bond network; global=all).",BACK_PROBLEM
|
||||
PRB_04_2,SCN_04,Hidden,personal,2,Exposure Caused Harm,"The sharing changed another player's safety, reputation, or freedom to choose.",Repair,SYM_REPAIR,2,Resolve with Repair. Value: 2.,None in the core set.,"H2: while unclaimed, +1 Stress at Round End to stress_scope=personal (personal=owner; bond=owner's Bond network; global=all).",BACK_PROBLEM
|
||||
PRB_04_3,SCN_04,Hidden,bond,3,Consent Boundary Was Ignored,A clear or reasonably expected limit on sharing was crossed.,Boundary,SYM_BOUNDARY,3,Resolve with Boundary. Value: 3.,None in the core set.,"H2: while unclaimed, +1 Stress at Round End to stress_scope=bond (personal=owner; bond=owner's Bond network; global=all).",BACK_PROBLEM
|
||||
PRB_04_4,SCN_04,Hidden,personal,4,No Sharing Protocol,"The group lacked a repeatable rule for consent, need-to-know, and escalation.",Change,SYM_CHANGE,3,Resolve with Change. Value: 3.,None in the core set.,"H2: while unclaimed, +1 Stress at Round End to stress_scope=personal (personal=owner; bond=owner's Bond network; global=all).",BACK_PROBLEM
|
||||
|
23
editions/modules/problem_stress/scoped/Rules_Text.csv
Normal file
23
editions/modules/problem_stress/scoped/Rules_Text.csv
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
order,section,heading,body
|
||||
1,Object,What players are trying to do,"Uncover hidden Problems and solve them with matching Solutions before the end of Round 5. Support, Attack, Bonds, Rivalries, Stress, DARVO, and GROUND determine how much freedom each player retains while doing so. The game is for 2–6 players in every Mode, including SHARED GROUND."
|
||||
2,Setup,Choose the game,"Choose one Scenario card and one Mode card. Always use the Scenario's Surface Problem. Then add hidden Problems by player count: priorities 1–2 for 2 players, 1–3 for 3–4 players, and 1–4 for 5–6 players. Surface is never optional and is never counted as one of those hidden priorities."
|
||||
3,Setup,Problems in play and available value,"Problems in play = Surface + the selected hidden priorities. With the core problem values (2+2+2+3+3), available points are 6 at 2 players, 9 at 3–4 players, and 12 at 5–6 players. Every published setup must keep the Scenario threshold at or below that available total so the group can win in principle."
|
||||
4,Setup,Prepare each player,"Each player takes one mat, the five Action cards with their player symbol, one Stress marker at 2, one ready Freedom token, one DARVO marker at OFF, one Focus/Blame token, and two relation-link tokens. Deal two Solution cards to each player."
|
||||
5,Setup,Prepare the table,"Place the Surface Problem face up and the selected hidden Problems face down. Put the remaining Solution deck within reach. Give the Lead marker to a random player and place the Round marker on 1. H2 stress scope: each Problem has a printed stress_scope (global / personal / bond). Assign owners for every personal and bond Problem in play: in ascending hidden_priority order, assign the next seat clockwise starting from Lead (each assignment uses the next seat). Place that seat's owner marker on the card (or note it). Global Problems have no owner."
|
||||
6,Round,1. Select,"Every player chooses one Action face down and places it beside its target where needed. At Stress 4 or 5, a player must choose ATTACK or GROUND unless they spend a ready Freedom token before reveal."
|
||||
7,Round,2. Reveal,Reveal all selected Actions simultaneously. Players using GROUND choose their mode after seeing the revealed Actions.
|
||||
8,Round,3. Resolve,"Resolve in this order: GROUND, Support, active DARVO stages, Investigate, Attack, Solve. Within the same step, start with the Lead player and continue clockwise."
|
||||
9,Round,4. End,"H2 scoped problem pressure: for each still-unclaimed Problem in play, add +1 Stress to every seat in that Problem's stress_scope (see Problems). Then cap Stress at 0–5. Any player at Stress 5 who is not already in DARVO places their marker on DENY for the next round. Rotate Lead clockwise and advance the Round marker."
|
||||
10,Stress,Stress and Freedom,"Stress 0–3 allows any Action. At Stress 4–5, only ATTACK or GROUND is freely available. Spending a ready Freedom token allows any one Action; turn it to SPENT. GROUND—GR and Support through an existing Bond can ready it. H2: inbound Stress also comes from unclaimed Problems by scope — personal (owner only), bond (owner's Bond network), global (all seats)."
|
||||
11,DARVO,A binding sequence,"Once triggered, DARVO continues from DENY to ATTACK to REVERSE over consecutive rounds even if Stress later falls. Existing Bond Support cancels the current stage and ends the sequence. GROUND—GR lets the current stage resolve, then ends the remaining sequence."
|
||||
12,DARVO,DENY,Turn one visible unsolved Problem face down and mark it Denied. It cannot be solved or revealed by ordinary Investigate. GROUND—OU can restore it.
|
||||
13,DARVO,ATTACK,Make one extra Attack against another player and place your Focus token beside that target. This extra Attack is in addition to your chosen Action.
|
||||
14,DARVO,REVERSE,"Target the player holding your Focus. Unless rejected by GROUND—ND, flip Focus to Blame in front of them, give them +1 Stress, and gain Protection. Reduce your own Stress by 2 and end the sequence."
|
||||
15,Relations,Creating and limiting relations,"Every player has two relation slots. A relation uses one link token from each player. If either player has no free slot, the immediate Support or Attack still works but no new relation is formed. Only one relation may exist between the same two players."
|
||||
16,Relations,Bond,A no-relation Support may create a Bond if both players have a free slot and the target accepts. Support through an existing Bond is strong enough to regulate DARVO. Attack through a Bond causes +2 Stress and flips it to Rivalry.
|
||||
17,Relations,Rivalry,A no-relation Attack creates Rivalry automatically when both slots are available. Attack through Rivalry causes +2 Stress and breaks it. Support through Rivalry causes −1 Stress; the target chooses to flip it to Bond or break it.
|
||||
18,Problems,Hidden and Denied Problems,"Only face-up, non-Denied Problems can be solved. Investigate reveals one hidden Problem and draws one Solution. Deny can turn a previously revealed Problem face down again."
|
||||
19,Problems,Solving,"Play SOLVE beside a face-up Problem and discard one matching Solution when Solve resolves. Claim that Problem and count its printed value. If another player claims it first in Lead order, keep your Solution. H2: any seat with a matching Solution may SOLVE any Problem — claim rights are not limited by stress_scope or owner. Clearing a bond-scoped Problem relieves the whole Bond network."
|
||||
20,Problems,Stress scope (H2 experiment),"Each Problem has stress_scope. global: every seat. personal: the assigned owner only. bond: the owner and every seat connected to the owner through one or more Bonds (the Bond network). If the owner has no Bonds, bond scope behaves as personal. Rivalries do not expand bond scope. Multiple unclaimed Problems stack (+1 each) for seats in their scopes."
|
||||
21,End,End of game,"After Round 5, total solved Problem values and apply the selected Mode card. The Scenario's Standard thresholds are 5 for 2 players, 7 for 3–4 players, and 9 for 5–6 players — always at or below available points for that seat band (6 / 9 / 12)."
|
||||
22,Safety,Learning frame,"DARVO is a response pattern, not proof of an underlying accusation and not a diagnosis. GROUND does not require reconciliation. Breaking a relation, bringing in process, or preserving personal freedom can be a successful result."
|
||||
|
58
editions/modules/problem_stress/scoped/rules_delta.yaml
Normal file
58
editions/modules/problem_stress/scoped/rules_delta.yaml
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
# module: problem_stress.scoped (formerly experiment h2-scoped-problem-stress)
|
||||
# Compose with other axes freely; do not require attack_relief or end/deal modules.
|
||||
|
||||
module_id: problem_stress.scoped
|
||||
aspect: problem_stress
|
||||
schema_version: 1
|
||||
base: ground-darvo-r0
|
||||
legacy_experiment_id: h2-scoped-problem-stress
|
||||
|
||||
deltas:
|
||||
- id: PS-SCOPE
|
||||
name: problem_stress_scope_field
|
||||
phase: data
|
||||
effect:
|
||||
problems_csv_column: stress_scope
|
||||
allowed_values: [global, personal, bond]
|
||||
edition_assignment_by_hidden_priority:
|
||||
0: global
|
||||
1: personal
|
||||
2: personal
|
||||
3: bond
|
||||
4: personal
|
||||
|
||||
- id: PS-OWN
|
||||
name: assign_owners_at_setup
|
||||
phase: setup_after_deal
|
||||
when:
|
||||
problem_stress_scope_in: [personal, bond]
|
||||
effect:
|
||||
assign_owner:
|
||||
order: ascending_hidden_priority_among_in_play_non_global
|
||||
start: lead
|
||||
step: clockwise_next_seat
|
||||
|
||||
- id: PS-TICK
|
||||
name: scoped_problem_pressure_end_of_round
|
||||
phase: round_end
|
||||
when:
|
||||
problem_unclaimed: true
|
||||
effect:
|
||||
stress_delta_per_matching_problem: +1
|
||||
recipients: stress_scope_of_that_problem
|
||||
scope_resolution:
|
||||
global: all_seats
|
||||
personal: [owner]
|
||||
bond: bond_network_of_owner
|
||||
stacking: true
|
||||
|
||||
- id: PS-SOLVE
|
||||
name: claim_not_restricted_by_scope
|
||||
phase: resolve_solve
|
||||
effect:
|
||||
any_seat_with_matching_suit_may_solve: true
|
||||
owner_need_not_be_solver: true
|
||||
|
||||
data_overlays:
|
||||
- Problems.csv
|
||||
- Rules_Text.csv
|
||||
Loading…
Add table
Add a link
Reference in a new issue