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
146
editions/ASPECTS.md
Normal file
146
editions/ASPECTS.md
Normal file
|
|
@ -0,0 +1,146 @@
|
|||
# Aspects of the game — design space for GROUND
|
||||
|
||||
**Authority:** this file + [`catalog.yaml`](catalog.yaml) `aspects:` list.
|
||||
**Catalog contract:** [`CATALOG.md`](CATALOG.md)
|
||||
**Research (simulator side):** clay-borg `research/CB-RES-0010-game-aspects-and-design-space.md`
|
||||
|
||||
An **aspect** is an orthogonal **design dimension** of the game: a family of
|
||||
questions you can answer independently when defining or varying rules.
|
||||
A **module** is one concrete answer on one aspect. A **profile** is a named
|
||||
point in multi-aspect space (a combination of modules).
|
||||
|
||||
Terminology: **aspect** is the human and catalog term (schema 2). Older
|
||||
text said *axis*; treat them as synonyms until references are gone.
|
||||
|
||||
This is **game design structure**, not a game-theory taxonomy. Game theory
|
||||
supplies formal objects (players, actions, payoffs, information) used when
|
||||
*analyzing* a configuration; it does not list edition-level modules.
|
||||
|
||||
---
|
||||
|
||||
## Vocabulary
|
||||
|
||||
| Term | Meaning |
|
||||
|------|---------|
|
||||
| **Aspect** | A dimension of design space (e.g. how the game ends, how stress is routed). |
|
||||
| **Module** | One implementable choice for an aspect (`problem_stress.scoped`). |
|
||||
| **Default module** | The r0 / printed answer when no experimental module is selected. |
|
||||
| **Profile** | Named list of modules (e.g. `h2`, `scoped_plus_attack_soothe`). |
|
||||
| **Baseline** | Content package (`ground-darvo-r0`) + all default modules. |
|
||||
| **Configuration** | Baseline + resolved module list — what a sim or table actually plays. |
|
||||
|
||||
**Rule:** at most **one module per aspect**. Cross-aspect behaviour is an
|
||||
explicit **profile**, never a silent dependency inside a single module.
|
||||
|
||||
---
|
||||
|
||||
## Full aspect map for GROUND
|
||||
|
||||
Aspects marked **modular** have entries under `editions/modules/`.
|
||||
Aspects marked **fixed (r0)** are part of the baseline until someone
|
||||
proposes a competing module.
|
||||
Aspects marked **product** may never need a kernel module.
|
||||
|
||||
### A. Structure — when and how the session runs
|
||||
|
||||
| Aspect id | Question | GROUND today | Modular? |
|
||||
|-----------|----------|--------------|----------|
|
||||
| `player_structure` | Who plays? seats? teams? | 2–6 seats; modes redefine who wins | fixed (r0) |
|
||||
| `objective_scoring` | What is success / who wins? | Modes: co-op / semi / coalition + thresholds | fixed (r0 modes cards) |
|
||||
| `turn_time_structure` | How does play advance? | Simultaneous select–reveal–resolve; Lead | fixed (r0) |
|
||||
| `end_condition` | When does the game stop? | Fixed 5 rounds + score | **modular** |
|
||||
| `setup` | What is on the table at start? | Scenario + mode; mats; start Stress 2 | fixed (r0); future difficulty card |
|
||||
| `information` | What is hidden vs public? | Hidden Problems; face-down actions; DENY | fixed (r0) |
|
||||
|
||||
### B. Content economy — what enters play
|
||||
|
||||
| Aspect id | Question | GROUND today | Modular? |
|
||||
|-----------|----------|--------------|----------|
|
||||
| `problem_deal` | How do Problems enter play? | Surface + hidden 1..k at setup | **modular** |
|
||||
| `solution_economy` | Hands, draws, suits | Solution deck; INVESTIGATE draws | fixed (r0) |
|
||||
| `action_set` | What may a seat choose? | Investigate, Solve, Support, Attack, GROUND | fixed (r0) |
|
||||
| `legality_filters` | What is offerable when? | SOLVE legality; Stress 4–5 gate | fixed (r0 rulings) |
|
||||
|
||||
### C. Pressure and regulation
|
||||
|
||||
| Aspect id | Question | GROUND today | Modular? |
|
||||
|-----------|----------|--------------|----------|
|
||||
| `individual_state` | Stress, Freedom, arming | Stress 0–5; Freedom token | fixed (r0) |
|
||||
| `problem_stress` | Unclaimed Problems → who gets Stress? | None (until module) | **modular** |
|
||||
| `interaction_stress` | Attack/Support stress numbers | As printed on Actions | fixed (r0) |
|
||||
| `attack_relief` | Does ATTACK soothe the attacker? | No | **modular** |
|
||||
| `reflex_sequences` | Multi-round binding chains | DARVO DENY→ATTACK→REVERSE | fixed (r0); future pacing module |
|
||||
| `regulation_practices` | How you exit pressure | GROUND GR/OU/ND; Bond Support | fixed (r0); future GROUND-sequence module |
|
||||
|
||||
### D. Relationships
|
||||
|
||||
| Aspect id | Question | GROUND today | Modular? |
|
||||
|-----------|----------|--------------|----------|
|
||||
| `relation_structure` | Bonds, Rivalries, slots | 2 slots; Bond/Rivalry | fixed (r0) |
|
||||
| `relation_scoring` | Do networks win? | Coalition mode | under `objective_scoring` / modes |
|
||||
| `relation_stress` | Shared liability via Bonds | Bond-scope under `problem_stress.scoped` | via problem_stress modules |
|
||||
|
||||
### E. Product and frame (often outside kernel)
|
||||
|
||||
| Aspect id | Question | GROUND today | Modular? |
|
||||
|-----------|----------|--------------|----------|
|
||||
| `scenario_fiction` | Thematic conflict | Scenarios.csv | content, not rules module |
|
||||
| `safety_teaching_frame` | How DARVO is framed | Rules_Text safety; INTENT | product |
|
||||
| `difficulty_accessibility` | Learning vs mastery | **WP-0005 finished:** Standard thresholds only; dial via `problem_stress` / `problem_deal` modules, not Learning/Mastery threshold cards | future if needed |
|
||||
| `medium` | Print vs digital | Edition CSV vs clay-borg | product |
|
||||
|
||||
---
|
||||
|
||||
## Registered aspects (have module directories)
|
||||
|
||||
These appear in `catalog.yaml` `aspects:` and accept non-default modules:
|
||||
|
||||
| Aspect | Default module | Other modules |
|
||||
|--------|----------------|---------------|
|
||||
| `problem_stress` | `problem_stress.none` | `flat_any_open`, `scoped` |
|
||||
| `attack_relief` | `attack_relief.none` | `self_soothe_ge4` |
|
||||
| `end_condition` | `end_condition.fixed_rounds_5` | `hybrid_clear_collapse` (proposed) |
|
||||
| `problem_deal` | `problem_deal.fixed_setup` | `pressure_deck` (proposed) |
|
||||
|
||||
---
|
||||
|
||||
## Configuration as a vector
|
||||
|
||||
```text
|
||||
playable configuration =
|
||||
baseline content (ground-darvo-rN)
|
||||
× problem_stress
|
||||
× attack_relief
|
||||
× end_condition
|
||||
× problem_deal
|
||||
× …future modular aspects…
|
||||
```
|
||||
|
||||
Missing aspects use defaults. clay-borg should **persist the full resolved
|
||||
module list** (and baseline id) on every game so measurements name the
|
||||
point in design space, not only a legacy experiment slug.
|
||||
|
||||
---
|
||||
|
||||
## Adding an aspect
|
||||
|
||||
1. Add a row to the tables above (this file).
|
||||
2. If two competing designs exist (or one alternative to r0): register in
|
||||
`catalog.yaml` `aspects:`, create `editions/modules/<aspect>/…`.
|
||||
3. Do not overload an existing aspect with unrelated rules (e.g. do not put
|
||||
end-of-game into `problem_stress`).
|
||||
4. Prefer measuring a new module **alone**, then in profiles with others.
|
||||
|
||||
---
|
||||
|
||||
## Relation to external frameworks
|
||||
|
||||
See clay-borg **CB-RES-0010** for sources. Short map:
|
||||
|
||||
| Framework | How it maps here |
|
||||
|-----------|------------------|
|
||||
| Formal elements (Fullerton et al.) | Coarse checklist → our Structure / Economy groups |
|
||||
| MDA (Hunicke et al.) | Module = Mechanics; panels = Dynamics; intent = Aesthetics |
|
||||
| Characteristics of Games (Elias/Garfield/Gutschera) | Independent dimensions → our aspects |
|
||||
| Design space | Configuration = point in multi-aspect space |
|
||||
| Extensive-form game theory | Analysis substrate (CB-RES-0009), not the aspect list |
|
||||
146
editions/CATALOG.md
Normal file
146
editions/CATALOG.md
Normal file
|
|
@ -0,0 +1,146 @@
|
|||
# Edition & rules catalog (schema 2 — composable modules by **aspect**)
|
||||
|
||||
**Authority:** this file + [`catalog.yaml`](catalog.yaml) on `main`.
|
||||
**Aspect map:** [`ASPECTS.md`](ASPECTS.md) — full design-space dimensionality for GROUND.
|
||||
**Simulator research:** clay-borg `research/CB-RES-0010-game-aspects-and-design-space.md`
|
||||
|
||||
**Purpose:** pin **baseline content** and **independent rules modules** so humans and **clay-borg** can run any module alone or in combination, measure, keep, or reject — without silent baseline edits.
|
||||
|
||||
---
|
||||
|
||||
## Model
|
||||
|
||||
```
|
||||
┌─────────────────────┐
|
||||
│ baseline content │ editions/ground-darvo-rN/
|
||||
│ (CSVs, print data) │
|
||||
└──────────┬──────────┘
|
||||
│
|
||||
┌─────────────────────┼─────────────────────┐
|
||||
▼ ▼ ▼
|
||||
problem_stress attack_relief end_condition …
|
||||
(≤1 module) (≤1 module) (≤1 module)
|
||||
▲ ▲ ▲
|
||||
└────────── aspects of the game ────────────┘
|
||||
```
|
||||
|
||||
| Concept | Meaning |
|
||||
|---------|---------|
|
||||
| **Aspect** | An orthogonal **design dimension** of the game (how stress is routed, how the game ends, how Problems enter play, …). Full list: [ASPECTS.md](ASPECTS.md). |
|
||||
| **Baseline** | Edition **data** package (`Problems.csv`, modes, …). Frozen columns still require `rN→rN+1` (GROUND-WP-0002 T01). |
|
||||
| **Module** | One implementable choice on **one aspect**. Defaults are named modules with no delta. |
|
||||
| **Profile** | Named list of modules (convenience). **Not** a third rules source — expands to baseline + modules. |
|
||||
| **Configuration** | Baseline + resolved module list = what is actually played. |
|
||||
| **Composition** | At most **one module per aspect**. Missing aspects use `default_module`. |
|
||||
|
||||
**Independence rule:** a module may only declare rules on its **own aspect**. Cross-aspect effects belong in a **profile** (explicit combo) or a new aspect — never silent coupling inside one module.
|
||||
|
||||
**Legacy experiments** (`editions/experiments/h1-…`, `h2-…`) remain on disk as measured packages; they map to **profiles**. Prefer `module_id` / `profile_id` going forward.
|
||||
|
||||
**Synonym:** older docs said *axis* for aspect. Machine field is `aspect:`.
|
||||
|
||||
---
|
||||
|
||||
## Aspects with modules (registered)
|
||||
|
||||
| Aspect | Default | Other modules |
|
||||
|--------|---------|----------------|
|
||||
| `problem_stress` | `none` | `flat_any_open` (H1-A, reject), `scoped` (H2, keep) |
|
||||
| `attack_relief` | `none` | `self_soothe_ge4` (H1-B) |
|
||||
| `end_condition` | `fixed_rounds_5` | `hybrid_clear_collapse` (**ready-for-implement**) |
|
||||
| `problem_deal` | `fixed_setup` | `pressure_deck` (**ready-for-implement**) |
|
||||
|
||||
Many other aspects exist but are **fixed in r0** until a competing design appears (see ASPECTS.md § full map).
|
||||
|
||||
---
|
||||
|
||||
## Selection (clay-borg / trials)
|
||||
|
||||
### Preferred API
|
||||
|
||||
```yaml
|
||||
baseline: ground-darvo-r0
|
||||
modules:
|
||||
- problem_stress.scoped
|
||||
- end_condition.hybrid_clear_collapse # when implemented
|
||||
# other aspects → defaults
|
||||
```
|
||||
|
||||
Or:
|
||||
|
||||
```yaml
|
||||
profile: h2
|
||||
# expands to modules: [problem_stress.scoped]
|
||||
```
|
||||
|
||||
Or multi-aspect:
|
||||
|
||||
```yaml
|
||||
profile: scoped_plus_attack_soothe
|
||||
# problem_stress.scoped + attack_relief.self_soothe_ge4
|
||||
```
|
||||
|
||||
### Validation
|
||||
|
||||
1. Every `module_id` exists and `selectable: true`.
|
||||
2. No two modules share the same **aspect**.
|
||||
3. `status: proposed` modules may be selected only if the host declares `allow_proposed: true` (kernel may no-op or refuse).
|
||||
4. State / recordings must store the **resolved module list** (and baseline id), not only a legacy experiment string — so A/B names the **point in design space**.
|
||||
|
||||
### Implementation
|
||||
|
||||
- Baseline CSVs: vendor as today.
|
||||
- Each module: apply `rules_delta` + optional `data_overlays` from its `path`.
|
||||
- Apply modules in **aspect order** listed in `catalog.yaml` `aspects:` (stable, documented).
|
||||
- Conflict: refuse composition rather than last-write-wins.
|
||||
- **`consumed_files` (RPT-0006):** when present on a module, a consumer that
|
||||
has not read those paths is in a **detectable** incomplete state — not
|
||||
silence. Freshness/edition-check should fail or warn if a listed file is
|
||||
unread or undigested. Modules without the field still work; new modules
|
||||
should list it.
|
||||
|
||||
---
|
||||
|
||||
## Profiles (named combos)
|
||||
|
||||
| profile_id | modules | note |
|
||||
|------------|---------|------|
|
||||
| `baseline` | (defaults) | Pure r0 |
|
||||
| `h1` | flat + attack soothe | Legacy H1; reject-as-baseline |
|
||||
| `h2` | scoped | Legacy H2; keep-as-experiment |
|
||||
| `scoped_plus_attack_soothe` | scoped + soothe | Unmeasured combo |
|
||||
| `scoped_plus_hybrid_end` | scoped + hybrid end | Needs kernel for end |
|
||||
| `scoped_plus_pressure_deck` | scoped + pressure deck | Needs kernel for deal |
|
||||
|
||||
---
|
||||
|
||||
## Adding a module (checklist)
|
||||
|
||||
1. Confirm the **aspect** exists in [ASPECTS.md](ASPECTS.md); add the aspect first if needed.
|
||||
2. Create `editions/modules/<aspect>/<slug>/` with `MODULE.md` and, if non-default, `rules_delta.yaml` (+ CSV overlays if needed).
|
||||
3. Register under `modules:` with `aspect`, `path`, `status`, `decision`.
|
||||
4. Optionally add a **profile** that includes it alone and/or with other modules.
|
||||
5. Message clay-borg: `module_id`, aspect, delta path, compose examples.
|
||||
6. Measure **alone** first when possible; then measure interesting **profiles**.
|
||||
7. Update `utility_estimate` / `decision` per module (and per profile if combo-specific).
|
||||
|
||||
### What must not happen
|
||||
|
||||
- Silent edit of frozen baseline columns inside `ground-darvo-r0`.
|
||||
- A new mega-experiment that re-bundles three aspects into one non-decomposable id (use a profile instead).
|
||||
- Modules that hard-require another aspect’s module without documenting a profile.
|
||||
|
||||
---
|
||||
|
||||
## Git
|
||||
|
||||
**main + catalog** is discovery; commits pin digests; branches optional for WIP. Modules live as directories on `main`.
|
||||
|
||||
---
|
||||
|
||||
## Legacy map
|
||||
|
||||
| Old experiment | Prefer |
|
||||
|----------------|--------|
|
||||
| `h1-problem-stress` | profile `h1` or modules `problem_stress.flat_any_open` + `attack_relief.self_soothe_ge4` |
|
||||
| `h2-scoped-problem-stress` | profile `h2` or module `problem_stress.scoped` |
|
||||
263
editions/catalog.yaml
Normal file
263
editions/catalog.yaml
Normal file
|
|
@ -0,0 +1,263 @@
|
|||
# GROUND edition catalog — schema 2: composable modules
|
||||
# Docs: CATALOG.md
|
||||
# clay-borg: select baseline + 0..N modules (≤1 per aspect), or a named profile.
|
||||
|
||||
schema_version: 2
|
||||
# terminology: aspect (human) = former axis; modules remain module_id
|
||||
# packages declare files consumers must read (consumed_files / data_overlays)
|
||||
updated: "2026-08-08"
|
||||
default_baseline: ground-darvo-r0
|
||||
default_profile: baseline
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Aspects — orthogonal design dimensions (formerly "axes"). At most one non-default module per aspect.
|
||||
# ---------------------------------------------------------------------------
|
||||
aspects:
|
||||
- id: problem_stress
|
||||
# legacy key: axis (same meaning)
|
||||
title: Problem → Stress routing
|
||||
default_module: problem_stress.none
|
||||
summary: >
|
||||
Whether and how unclaimed Problems raise Stress at Round End.
|
||||
|
||||
- id: attack_relief
|
||||
title: ATTACK self-soothing
|
||||
default_module: attack_relief.none
|
||||
summary: >
|
||||
Whether resolving ATTACK can reduce the attacker's Stress.
|
||||
|
||||
- id: end_condition
|
||||
title: How the game ends
|
||||
default_module: end_condition.fixed_rounds_5
|
||||
summary: >
|
||||
Fixed round clock vs clear-board / collapse / hybrid ends.
|
||||
|
||||
- id: problem_deal
|
||||
title: How Problems enter play
|
||||
default_module: problem_deal.fixed_setup
|
||||
summary: >
|
||||
Fixed setup deal only vs mid-game influx (pressure deck, etc.).
|
||||
|
||||
# Future aspects (not yet registered): setup_difficulty, sequence_pacing,
|
||||
# ground_as_sequence, status_stress, competence_track.
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Baseline content package (CSV edition data)
|
||||
# ---------------------------------------------------------------------------
|
||||
baselines:
|
||||
- baseline_id: ground-darvo-r0
|
||||
path: editions/ground-darvo-r0
|
||||
selectable: true
|
||||
status: baseline
|
||||
dataset_id: GROUND-DARVO-CORE-0.1
|
||||
title: "GROUND DARVO Edition — core r0"
|
||||
summary: >
|
||||
Print/playtest content. Modes, deal 6/9/12, thresholds 5/7/9.
|
||||
Default modules on all aspects = r0 printed behaviour.
|
||||
utility_estimate: >
|
||||
Ship-default content. Stress has no problem pressure until a
|
||||
problem_stress module is selected.
|
||||
decision: none
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Modules — independent variations (one directory each)
|
||||
# ---------------------------------------------------------------------------
|
||||
modules:
|
||||
# --- problem_stress ---
|
||||
- module_id: problem_stress.none
|
||||
aspect: problem_stress
|
||||
path: editions/modules/problem_stress/none
|
||||
is_default: true
|
||||
selectable: true
|
||||
status: baseline-default
|
||||
rules_delta: null
|
||||
summary: Unclaimed Problems do not raise Stress (r0).
|
||||
decision: none
|
||||
|
||||
- module_id: problem_stress.flat_any_open
|
||||
aspect: problem_stress
|
||||
path: editions/modules/problem_stress/flat_any_open
|
||||
is_default: false
|
||||
selectable: true
|
||||
status: measured
|
||||
rules_delta: editions/modules/problem_stress/flat_any_open/rules_delta.yaml
|
||||
legacy_experiment_ids: [h1-problem-stress]
|
||||
measurement_ref: reports/260808-clay-borg-h1-measured.md
|
||||
summary: >
|
||||
+1 Stress to every seat if any Problem unclaimed (former H1-A).
|
||||
utility_estimate: >
|
||||
Reject as sole pressure: greedy 3–4p wins → 0. Keep for A/B control.
|
||||
decision: reject-as-baseline
|
||||
clay_borg_notes: Former H1-A; implement without H1-B unless attack_relief also selected.
|
||||
|
||||
- module_id: problem_stress.scoped
|
||||
aspect: problem_stress
|
||||
path: editions/modules/problem_stress/scoped
|
||||
is_default: false
|
||||
selectable: true
|
||||
status: measured
|
||||
rules_delta: editions/modules/problem_stress/scoped/rules_delta.yaml
|
||||
data_overlays: [Problems.csv, Rules_Text.csv]
|
||||
# files a consumer must open to implement this module (RPT-0006 §5b)
|
||||
consumed_files:
|
||||
- editions/modules/problem_stress/scoped/rules_delta.yaml
|
||||
- editions/modules/problem_stress/scoped/Problems.csv
|
||||
- editions/modules/problem_stress/scoped/Rules_Text.csv
|
||||
- editions/modules/problem_stress/scoped/MODULE.md
|
||||
legacy_experiment_ids: [h2-scoped-problem-stress]
|
||||
measurement_ref: reports/260808-clay-borg-h2-measured.md
|
||||
hypothesis_ref: history/260808-h2-scoped-problem-stress.md
|
||||
summary: >
|
||||
+1 Stress per unclaimed Problem to stress_scope (personal/bond/global).
|
||||
utility_estimate: >
|
||||
Scoping works (RPT-0005). Keep; candidate promote with other axes later.
|
||||
decision: keep-as-experiment
|
||||
clay_borg_notes: >
|
||||
Prefer path editions/modules/problem_stress/scoped. Use with_variant()/owners.
|
||||
legacy_experiment_id h2-scoped-problem-stress remains an alias profile.
|
||||
|
||||
# --- attack_relief ---
|
||||
- module_id: attack_relief.none
|
||||
aspect: attack_relief
|
||||
path: editions/modules/attack_relief/none
|
||||
is_default: true
|
||||
selectable: true
|
||||
status: baseline-default
|
||||
rules_delta: null
|
||||
summary: ATTACK does not self-soothe (r0).
|
||||
decision: none
|
||||
|
||||
- module_id: attack_relief.self_soothe_ge4
|
||||
aspect: attack_relief
|
||||
path: editions/modules/attack_relief/self_soothe_ge4
|
||||
is_default: false
|
||||
selectable: true
|
||||
status: measured-as-combo
|
||||
rules_delta: editions/modules/attack_relief/self_soothe_ge4/rules_delta.yaml
|
||||
legacy_experiment_ids: [h1-problem-stress]
|
||||
measurement_ref: reports/260808-clay-borg-h1-measured.md
|
||||
summary: Uncancelled ATTACK at Stress ≥4 → attacker −1 Stress (former H1-B).
|
||||
utility_estimate: >
|
||||
Alone unmeasured. With flat problem stress, dead for competent play.
|
||||
Re-measure with problem_stress.scoped via profile scoped_plus_attack_soothe.
|
||||
decision: none
|
||||
clay_borg_notes: Independent of problem_stress; compose explicitly.
|
||||
|
||||
# --- end_condition ---
|
||||
- module_id: end_condition.fixed_rounds_5
|
||||
aspect: end_condition
|
||||
path: editions/modules/end_condition/fixed_rounds_5
|
||||
is_default: true
|
||||
selectable: true
|
||||
status: baseline-default
|
||||
rules_delta: null
|
||||
summary: Always 5 rounds then threshold scoring (r0).
|
||||
decision: none
|
||||
|
||||
- module_id: end_condition.hybrid_clear_collapse
|
||||
aspect: end_condition
|
||||
path: editions/modules/end_condition/hybrid_clear_collapse
|
||||
is_default: false
|
||||
selectable: true
|
||||
status: ready-for-implement
|
||||
rules_delta: editions/modules/end_condition/hybrid_clear_collapse/rules_delta.yaml
|
||||
hypothesis_ref: history/260808-deal-end-sequences-design.md
|
||||
summary: >
|
||||
End on board clear, group collapse, or round-5 ceiling (v0 frozen).
|
||||
utility_estimate: Unimplemented in kernel — package ready for clay-borg.
|
||||
decision: none
|
||||
clay_borg_notes: >
|
||||
v0 frozen in MODULE.md. Implement alone then profile scoped_plus_hybrid_end.
|
||||
allow_proposed/ready-for-implement: refuse measure-as-green until kernel ships.
|
||||
|
||||
# --- problem_deal ---
|
||||
- module_id: problem_deal.fixed_setup
|
||||
aspect: problem_deal
|
||||
path: editions/modules/problem_deal/fixed_setup
|
||||
is_default: true
|
||||
selectable: true
|
||||
status: baseline-default
|
||||
rules_delta: null
|
||||
summary: Surface + hidden 1..k at setup only (r0).
|
||||
decision: none
|
||||
|
||||
- module_id: problem_deal.pressure_deck
|
||||
aspect: problem_deal
|
||||
path: editions/modules/problem_deal/pressure_deck
|
||||
is_default: false
|
||||
selectable: true
|
||||
status: ready-for-implement
|
||||
rules_delta: editions/modules/problem_deal/pressure_deck/rules_delta.yaml
|
||||
hypothesis_ref: history/260808-deal-end-sequences-design.md
|
||||
summary: >
|
||||
Reduced starters + Pressure deck draws; drawn cards 0 points (v0 frozen).
|
||||
utility_estimate: Unimplemented in kernel — package ready for clay-borg.
|
||||
decision: none
|
||||
clay_borg_notes: >
|
||||
v0 frozen in MODULE.md. Drawn point_value 0; thresholds unchanged.
|
||||
Compose with problem_stress.scoped via profile scoped_plus_pressure_deck.
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Profiles — named compositions (convenience; not a second rules source)
|
||||
# Selection = baseline + modules list. Defaults fill missing axes.
|
||||
# ---------------------------------------------------------------------------
|
||||
profiles:
|
||||
- profile_id: baseline
|
||||
title: Pure r0
|
||||
modules: []
|
||||
summary: All aspect defaults — printed ground-darvo-r0 behaviour.
|
||||
|
||||
- profile_id: h1
|
||||
title: Legacy H1 (flat problem stress + attack soothe)
|
||||
modules:
|
||||
- problem_stress.flat_any_open
|
||||
- attack_relief.self_soothe_ge4
|
||||
legacy_experiment_id: h1-problem-stress
|
||||
summary: Equivalent to old monolithic experiment h1-problem-stress.
|
||||
decision: reject-as-baseline
|
||||
|
||||
- profile_id: h2
|
||||
title: Legacy H2 (scoped problem stress only)
|
||||
modules:
|
||||
- problem_stress.scoped
|
||||
legacy_experiment_id: h2-scoped-problem-stress
|
||||
summary: Equivalent to old monolithic experiment h2-scoped-problem-stress.
|
||||
decision: keep-as-experiment
|
||||
|
||||
- profile_id: scoped_plus_attack_soothe
|
||||
title: Scoped stress + ATTACK self-soothe
|
||||
modules:
|
||||
- problem_stress.scoped
|
||||
- attack_relief.self_soothe_ge4
|
||||
summary: First intentional multi-aspect combo after modular catalog.
|
||||
status: unmeasured
|
||||
|
||||
- profile_id: scoped_plus_hybrid_end
|
||||
title: Scoped stress + hybrid end (when end module ships)
|
||||
modules:
|
||||
- problem_stress.scoped
|
||||
- end_condition.hybrid_clear_collapse
|
||||
summary: Requires end_condition.hybrid_clear_collapse kernel support.
|
||||
status: proposed
|
||||
|
||||
- profile_id: scoped_plus_pressure_deck
|
||||
title: Scoped stress + pressure deck (when deal module ships)
|
||||
modules:
|
||||
- problem_stress.scoped
|
||||
- problem_deal.pressure_deck
|
||||
summary: Requires problem_deal.pressure_deck kernel support.
|
||||
status: proposed
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Legacy experiment paths (still on disk; prefer modules + profiles)
|
||||
# ---------------------------------------------------------------------------
|
||||
legacy_experiments:
|
||||
- experiment_id: h1-problem-stress
|
||||
path: editions/experiments/h1-problem-stress
|
||||
equivalent_profile: h1
|
||||
note: Prefer profile h1 or modules problem_stress.flat_any_open + attack_relief.self_soothe_ge4
|
||||
|
||||
- experiment_id: h2-scoped-problem-stress
|
||||
path: editions/experiments/h2-scoped-problem-stress
|
||||
equivalent_profile: h2
|
||||
note: Prefer profile h2 or module problem_stress.scoped
|
||||
6
editions/experiments/h1-problem-stress/Actions.csv
Normal file
6
editions/experiments/h1-problem-stress/Actions.csv
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
action_id,title,symbol_id,resolution_order,target,tagline,rules_text,stress_restriction,designer_note
|
||||
ACT_INVESTIGATE,INVESTIGATE,SYM_INVESTIGATE,4,One hidden Problem,Reveal what is hidden.,"Choose one hidden, non-Denied Problem and reveal it. Then draw one Solution. If no hidden Problems remain, draw one Solution only.","At Stress 4 or 5, this action requires spending a ready Freedom token.",Place the face-down action card beside the chosen hidden Problem.
|
||||
ACT_SOLVE,SOLVE,SYM_SOLVE,6,"One face-up, non-Denied Problem",Match a solution to the real problem.,"Play and discard one Solution with the matching symbol. Claim the Problem if it is still available when Solve resolves. If another player has already claimed it, keep your Solution.","At Stress 4 or 5, this action requires spending a ready Freedom token.","Resolve competing claims in Lead order, then clockwise."
|
||||
ACT_SUPPORT,SUPPORT,SYM_SUPPORT,2,One other player,Increase another player's room to choose.,"No relation: −1 Stress; you may form a Bond if both players have a free relation slot and the target accepts. Existing Bond: −2 Stress, ready their Freedom, and cancel their current DARVO stage and end that sequence. Existing Rivalry: −1 Stress; the target chooses to flip the relation to Bond or break it.","At Stress 4 or 5, this action requires spending a ready Freedom token.",A Bond formed by this same Support does not cancel DARVO; the Bond must already exist.
|
||||
ACT_ATTACK,ATTACK,SYM_ATTACK,5,One other player,Push pressure into another player.,"Protection or GROUND—OU may cancel this Attack. No relation: +1 Stress; form a Rivalry if both players have a free relation slot. Existing Bond: +2 Stress and flip it to Rivalry. Existing Rivalry: +2 Stress and break the relation. A cancelled Attack changes neither Stress nor relation. H1: if this Attack is not cancelled and the attacker's Stress was 4 or 5 before the Attack's effects, the attacker then takes −1 Stress (clamp 0–5).","Always legal. At Stress 4 or 5, Attack is one of the two actions available without spending Freedom.",Rivalry formation is not consensual. H1 self-soothe is experiment-only (variant h1-problem-stress).
|
||||
ACT_GROUND,GROUND,SYM_GROUND,1,"Self, a Problem, a relation, or an incoming effect",Regulate. Restore the frame. Decide.,"After all actions are revealed, choose one mode: GR—Ground & Restate: −2 Stress, ready Freedom; if you are in DARVO, its current stage still resolves, then the remaining sequence ends. OU—Observe & Uphold: restore one Denied Problem, cancel one Attack targeting you this round, or protect one face-up Problem from Deny this round. ND—Name & Decide: remove one Blame from yourself, break one relation involving you, or reject one Reverse targeting you this round.","Always legal. At Stress 4 or 5, GROUND is one of the two actions available without spending Freedom.",Keep the revealed GROUND card in front of the player until the end of the round as a reminder of the chosen mode.
|
||||
|
22
editions/experiments/h1-problem-stress/Rules_Text.csv
Normal file
22
editions/experiments/h1-problem-stress/Rules_Text.csv
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
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.
|
||||
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,"H1 problem pressure: if any Problem still in play is unclaimed (face-up, hidden, or Denied), each player gains +1 Stress. 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. H1: an uncancelled Attack by a player whose Stress was 4 or 5 before that Attack's effects also reduces the attacker's Stress by 1 (after target effects; then clamp)."
|
||||
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."
|
||||
20,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)."
|
||||
21,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."
|
||||
|
46
editions/experiments/h1-problem-stress/VARIANT.md
Normal file
46
editions/experiments/h1-problem-stress/VARIANT.md
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
# Experiment H1 — problem pressure + high-stress ATTACK self-soothe
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| **variant_id** | `h1-problem-stress` (**legacy** — prefer profile `h1` = `problem_stress.flat_any_open` + `attack_relief.self_soothe_ge4`) |
|
||||
| **modules** | flat problem stress + attack self-soothe (see `editions/modules/`) |
|
||||
| **base** | `ground-darvo-r0` |
|
||||
| **status** | measured — reject as baseline (2026-08-08); keep for A/B |
|
||||
| **measurement** | [`../../../reports/260808-clay-borg-h1-measured.md`](../../../reports/260808-clay-borg-h1-measured.md) |
|
||||
| **catalog** | [`../../catalog.yaml`](../../catalog.yaml) |
|
||||
| **design note** | [`../../../history/260807-attack-darvo-stress-design.md`](../../../history/260807-attack-darvo-stress-design.md) |
|
||||
| **workplan** | [`../../../workplans/GROUND-WP-0006-h1-problem-stress-experiment.md`](../../../workplans/GROUND-WP-0006-h1-problem-stress-experiment.md) |
|
||||
|
||||
## Hypothesis
|
||||
|
||||
If unsolved shared Problems raise Stress, and high-Stress ATTACK returns a small self-relief, then competent play will sometimes arm DARVO and sometimes select ATTACK, without making always-ATTACK optimal.
|
||||
|
||||
## Deltas (only)
|
||||
|
||||
### H1-A — Problem pressure
|
||||
|
||||
At **Round End**, before the Stress clamp that arms DARVO:
|
||||
|
||||
- If **any** Problem still in play is **unclaimed** (face-up unsolved, hidden, or Denied), **each player +1 Stress**.
|
||||
- Then clamp 0–5, arm DARVO at 5 as in baseline, rotate Lead, advance Round.
|
||||
|
||||
### H1-B — High-stress ATTACK self-soothe
|
||||
|
||||
When an Attack resolves and is **not cancelled**, if the attacker’s Stress was **≥ 4 before that Attack’s effects**, the attacker takes **−1 Stress** (then clamp). Target and relation effects unchanged.
|
||||
|
||||
## Table play
|
||||
|
||||
Use baseline components for everything except:
|
||||
|
||||
1. Read End step and Stress/Attack wording from this package’s `Rules_Text.csv` / `Actions.csv` (or this file).
|
||||
2. Do not mix with baseline r0 wording mid-game.
|
||||
|
||||
## Simulation (clay-borg)
|
||||
|
||||
1. Select `variant_id: h1-problem-stress` via catalog.
|
||||
2. Inherit base edition data for Problems/Solutions/Modes/Tokens.
|
||||
3. Implement `rules_delta.yaml` in the kernel (H1-A, H1-B). CSV text is provenance for the table, not a substitute for kernel changes.
|
||||
|
||||
## Decision criteria
|
||||
|
||||
See design note §3.2. Catalog `utility_estimate` / `decision` update only after measurement — not when packaging.
|
||||
40
editions/experiments/h1-problem-stress/metadata.json
Normal file
40
editions/experiments/h1-problem-stress/metadata.json
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
{
|
||||
"dataset_id": "GROUND-DARVO-EXP-H1-0.1",
|
||||
"variant_id": "h1-problem-stress",
|
||||
"base_variant_id": "ground-darvo-r0",
|
||||
"base_path": "editions/ground-darvo-r0",
|
||||
"game_title": "GROUND",
|
||||
"subtitle": "A Game of Bonds and Rivalry",
|
||||
"edition": "DARVO Edition — experiment H1",
|
||||
"version": "0.1-h1",
|
||||
"status": "Experimental rules variant (not baseline)",
|
||||
"player_count": "2–6",
|
||||
"duration": "5–15 minutes",
|
||||
"rounds": 5,
|
||||
"relationship_slots_per_player": 2,
|
||||
"description": "Experiment H1 on top of ground-darvo-r0: unsolved Problems raise everyone's Stress at Round End; high-Stress ATTACK self-soothes by 1. Hypothesis and success criteria: history/260807-attack-darvo-stress-design.md",
|
||||
"inherits_unchanged_from_base": [
|
||||
"Problems.csv",
|
||||
"Solutions.csv",
|
||||
"Modes.csv",
|
||||
"Scenarios.csv",
|
||||
"Tokens.csv",
|
||||
"DARVO.csv",
|
||||
"Relations.csv",
|
||||
"Player_Mats.csv",
|
||||
"Glossary.csv",
|
||||
"Extensions.csv",
|
||||
"BOM.csv",
|
||||
"Print_Manifest.csv",
|
||||
"Symbols.csv",
|
||||
"Back_Designs.csv",
|
||||
"Design_Tokens.csv"
|
||||
],
|
||||
"changed_files": [
|
||||
"Actions.csv",
|
||||
"Rules_Text.csv",
|
||||
"metadata.json",
|
||||
"rules_delta.yaml",
|
||||
"VARIANT.md"
|
||||
]
|
||||
}
|
||||
50
editions/experiments/h1-problem-stress/rules_delta.yaml
Normal file
50
editions/experiments/h1-problem-stress/rules_delta.yaml
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
# Machine-oriented rules deltas for clay-borg / simulators.
|
||||
# Human prose: VARIANT.md and history/260807-attack-darvo-stress-design.md
|
||||
# Apply on top of base variant ground-darvo-r0 kernel behaviour.
|
||||
|
||||
variant_id: h1-problem-stress
|
||||
base: ground-darvo-r0
|
||||
schema_version: 1
|
||||
|
||||
deltas:
|
||||
- id: H1-A
|
||||
name: problem_pressure_end_of_round
|
||||
phase: round_end
|
||||
# Order relative to baseline End step:
|
||||
# 1) apply this +1 if any unclaimed Problem remains
|
||||
# 2) clamp Stress 0–5
|
||||
# 3) arm DARVO (Stress 5 and not already in sequence) as today
|
||||
# 4) rotate Lead; advance Round
|
||||
when:
|
||||
any_problem_unclaimed: true
|
||||
# unclaimed = not claimed by any seat this game
|
||||
# includes face-up unsolved, still-hidden, and Denied
|
||||
effect:
|
||||
each_player_stress_delta: +1
|
||||
notes: >
|
||||
Soft shared pressure. Does not scale by number of open Problems
|
||||
(deliberately). Denied and hidden unclaimed Problems count.
|
||||
|
||||
- id: H1-B
|
||||
name: high_stress_attack_self_soothe
|
||||
phase: resolve_attack
|
||||
# Applies to ACT_ATTACK and to DARVO-stage extra Attack if they share
|
||||
# the same Attack resolution path.
|
||||
when:
|
||||
attack_not_cancelled: true
|
||||
attacker_stress_before_attack_effects_gte: 4
|
||||
effect:
|
||||
attacker_stress_delta: -1
|
||||
order: after_target_and_relation_effects
|
||||
notes: >
|
||||
Does not change target Stress, Rivalry/Bond rules, or Protection/OU
|
||||
cancel. Clamp after delta.
|
||||
|
||||
unchanged:
|
||||
- deal_and_thresholds
|
||||
- solve_legality
|
||||
- support
|
||||
- ground_modes
|
||||
- darvo_stage_table
|
||||
- start_stress: 2
|
||||
- relation_slots: 2
|
||||
21
editions/experiments/h2-scoped-problem-stress/Problems.csv
Normal file
21
editions/experiments/h2-scoped-problem-stress/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/experiments/h2-scoped-problem-stress/Rules_Text.csv
Normal file
23
editions/experiments/h2-scoped-problem-stress/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."
|
||||
|
54
editions/experiments/h2-scoped-problem-stress/VARIANT.md
Normal file
54
editions/experiments/h2-scoped-problem-stress/VARIANT.md
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
# Experiment H2 — scoped problem stress (personal / bond / global)
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| **variant_id** | `h2-scoped-problem-stress` (**legacy** — prefer module `problem_stress.scoped` / profile `h2`) |
|
||||
| **module** | [`../../modules/problem_stress/scoped/`](../../modules/problem_stress/scoped/) |
|
||||
| **base** | `ground-darvo-r0` (not stacked on H1) |
|
||||
| **status** | measured — keep-as-experiment |
|
||||
| **catalog** | [`../../catalog.yaml`](../../catalog.yaml) |
|
||||
| **design note** | [`../../../history/260808-h2-scoped-problem-stress.md`](../../../history/260808-h2-scoped-problem-stress.md) |
|
||||
| **workplan** | [`../../../workplans/GROUND-WP-0007-h2-scoped-problem-stress.md`](../../../workplans/GROUND-WP-0007-h2-scoped-problem-stress.md) |
|
||||
| **control** | `h1-problem-stress` (reject-as-baseline) |
|
||||
|
||||
## Hypothesis
|
||||
|
||||
If unclaimed Problems apply End stress only to their **stress_scope**, with mostly personal, one bond at 3p+, and rare global (Surface), then some seats can climb toward DARVO **without** taxing the whole table into zero group wins — and **bond-scoped** cards give the Bond network a shared reason to SOLVE.
|
||||
|
||||
## Scopes
|
||||
|
||||
| stress_scope | End +1 Stress while unclaimed goes to… |
|
||||
|--------------|----------------------------------------|
|
||||
| **global** | every seat |
|
||||
| **personal** | assigned **owner** only |
|
||||
| **bond** | owner + every seat in the owner’s **Bond network** (Bond edges only). No Bonds → behaves as personal |
|
||||
|
||||
**SOLVE:** any seat with matching suit may claim any Problem (owner need not solve). Clearing a bond card is a network public good — that is intentional.
|
||||
|
||||
## Assignment in this package
|
||||
|
||||
By `hidden_priority` in `Problems.csv`:
|
||||
|
||||
| priority | scope | in play at |
|
||||
|---------:|-------|------------|
|
||||
| 0 Surface | global | all seats |
|
||||
| 1 | personal | 2p+ |
|
||||
| 2 | personal | 2p+ |
|
||||
| 3 | **bond** | 3p+ only |
|
||||
| 4 | personal | 5p+ only |
|
||||
|
||||
Owners: non-global in-play Problems, ascending priority, round-robin clockwise from **Lead**.
|
||||
|
||||
## Bond incentive (design intent)
|
||||
|
||||
Bond is still the regulation tool (−2 Stress, cancel DARVO). Bond-scope pressure **spreads** cost across the network so partners are incentivised to clear *that* card together rather than leave one seat to melt alone. Measure whether networks SOLVE bond cards faster or avoid Bonding.
|
||||
|
||||
## Not in H2
|
||||
|
||||
- H1 flat global +1 for “any open problem”
|
||||
- H1-B ATTACK self-soothe
|
||||
- Owner-only SOLVE, shadow goals, competence track
|
||||
|
||||
## Simulation
|
||||
|
||||
Select `variant_id: h2-scoped-problem-stress`. Implement `rules_delta.yaml` (H2-SCOPE, H2-OWN, H2-A, H2-SOLVE). Compare to `ground-darvo-r0` and optionally `h1-problem-stress`.
|
||||
40
editions/experiments/h2-scoped-problem-stress/metadata.json
Normal file
40
editions/experiments/h2-scoped-problem-stress/metadata.json
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
{
|
||||
"dataset_id": "GROUND-DARVO-EXP-H2-0.1",
|
||||
"variant_id": "h2-scoped-problem-stress",
|
||||
"base_variant_id": "ground-darvo-r0",
|
||||
"base_path": "editions/ground-darvo-r0",
|
||||
"game_title": "GROUND",
|
||||
"subtitle": "A Game of Bonds and Rivalry",
|
||||
"edition": "DARVO Edition — experiment H2",
|
||||
"version": "0.1-h2",
|
||||
"status": "Experimental rules variant (not baseline)",
|
||||
"player_count": "2–6",
|
||||
"duration": "5–15 minutes",
|
||||
"rounds": 5,
|
||||
"relationship_slots_per_player": 2,
|
||||
"description": "Experiment H2: unclaimed Problems apply End Stress only to stress_scope (personal / bond / global). Bond scope taxes the Bond network so bonded seats share incentive to SOLVE. Not stacked on H1. Design: history/260808-h2-scoped-problem-stress.md",
|
||||
"inherits_unchanged_from_base": [
|
||||
"Solutions.csv",
|
||||
"Modes.csv",
|
||||
"Scenarios.csv",
|
||||
"Tokens.csv",
|
||||
"DARVO.csv",
|
||||
"Relations.csv",
|
||||
"Player_Mats.csv",
|
||||
"Glossary.csv",
|
||||
"Extensions.csv",
|
||||
"BOM.csv",
|
||||
"Print_Manifest.csv",
|
||||
"Symbols.csv",
|
||||
"Back_Designs.csv",
|
||||
"Design_Tokens.csv",
|
||||
"Actions.csv"
|
||||
],
|
||||
"changed_files": [
|
||||
"Problems.csv",
|
||||
"Rules_Text.csv",
|
||||
"metadata.json",
|
||||
"rules_delta.yaml",
|
||||
"VARIANT.md"
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,93 @@
|
|||
# Machine-oriented rules deltas for clay-borg / simulators.
|
||||
# Human prose: VARIANT.md and history/260808-h2-scoped-problem-stress.md
|
||||
# Apply on top of base variant ground-darvo-r0 (not on H1).
|
||||
|
||||
variant_id: h2-scoped-problem-stress
|
||||
base: ground-darvo-r0
|
||||
schema_version: 1
|
||||
replaces_experiments:
|
||||
# H2 is a new package, not a silent edit of H1. Do not stack H1-A/H1-B.
|
||||
- h1-problem-stress
|
||||
|
||||
deltas:
|
||||
- id: H2-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 # Surface
|
||||
1: personal
|
||||
2: personal
|
||||
3: bond
|
||||
4: personal
|
||||
notes: >
|
||||
Seat-band dial without a difficulty card: 2p deal (S+1..2) has no bond
|
||||
card in play; 3–4p introduces one bond; 5–6p still one bond + more personal.
|
||||
|
||||
- id: H2-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
|
||||
# Each such Problem gets exactly one owner seat.
|
||||
notes: >
|
||||
Deterministic for sims. Table: place owner marker on the card.
|
||||
Global Problems have owner = none.
|
||||
|
||||
- id: H2-A
|
||||
name: scoped_problem_pressure_end_of_round
|
||||
phase: round_end
|
||||
# Order:
|
||||
# 1) for each unclaimed Problem in play, +1 Stress to each seat in scope
|
||||
# 2) clamp 0–5
|
||||
# 3) arm DARVO at 5 as baseline
|
||||
# 4) rotate Lead; advance Round
|
||||
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
|
||||
bond_network: >
|
||||
owner plus every seat reachable from owner by traversing Bond
|
||||
edges only (not Rivalry). If owner has degree 0, treat as personal.
|
||||
stacking: true # two open bond problems both hit the network
|
||||
notes: >
|
||||
Bond incentive: every bonded partner shares the tick, so the network
|
||||
is jointly motivated to SOLVE that card (anyone may still SOLVE).
|
||||
|
||||
- id: H2-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
|
||||
notes: >
|
||||
Altruistic clear is legal and intended — especially on bond-scope cards.
|
||||
|
||||
unchanged:
|
||||
- deal_and_thresholds
|
||||
- solve_legality_suit_faceup_unclaimed_race
|
||||
- support
|
||||
- ground_modes
|
||||
- darvo_stage_table
|
||||
- attack_resolution # no H1-B self-soothe in H2
|
||||
- start_stress: 2
|
||||
- relation_slots: 2
|
||||
|
||||
not_in_this_variant:
|
||||
- H1-A_flat_global_plus_one
|
||||
- H1-B_attack_self_soothe
|
||||
- owner_only_solve
|
||||
- shadow_goals
|
||||
- competence_track
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
mode_id,title,mode_type,tagline,rules_text,scoring_tiebreak,back_design_id
|
||||
MODE_COOP,SHARED GROUND,Cooperative,The group succeeds or fails together.,"All claimed Problem cards form one shared score. Meet the Scenario threshold by the end of Round 5. Playable at 2–6 players — not a high-seat-only mode. No individual winner is declared. For a mastery rating, subtract 1 for each Blame token still in play and 1 for each Denied Problem.",Not applicable.,BACK_MODE
|
||||
MODE_COOP,SHARED GROUND,Cooperative,The group succeeds or fails together.,"All claimed Problem cards form one shared score equal to the sum of their point values. Meet the Scenario threshold by the end of Round 5. Playable at 2–6 players — not a high-seat-only mode. No individual winner is declared. For a mastery rating, start from that shared point total and subtract 1 point for each Blame token still in play and 1 point for each Denied Problem (penalties apply to points, not card count).",Not applicable.,BACK_MODE
|
||||
MODE_SEMI,"COMMON PROBLEM, PERSONAL EDGE",Semi-cooperative,The group must succeed before anyone can win.,"The group succeeds only if the total value of all claimed Problems meets the Scenario threshold (always ≤ available points for the seat band). If it succeeds, each player scores the value of Problems they claimed minus 1 per Blame token they hold. Highest score wins.","Lower Stress, then more Bonds, then shared victory.",BACK_MODE
|
||||
MODE_COALITION,BONDED COALITIONS,Dynamic teams,Bonds decide the sides at the end.,"The group must first meet the Scenario threshold (always ≤ available points for the seat band). At game end, each connected network of Bonds is a coalition; unbonded players are one-player coalitions. Sum the personal scores of coalition members. The highest-scoring coalition wins. Rivalries do not connect players.","Lower combined Stress, then fewer Blame tokens, then shared victory.",BACK_MODE
|
||||
|
|
|
|||
|
|
|
@ -1,21 +1,21 @@
|
|||
problem_id,scenario_id,visibility,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,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.,No card-specific effect; it simply remains unsolved.,BACK_PROBLEM_SURFACE
|
||||
PRB_01_1,SCN_01,Hidden,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.,No card-specific effect; it simply remains unsolved.,BACK_PROBLEM
|
||||
PRB_01_2,SCN_01,Hidden,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.,No card-specific effect; it simply remains unsolved.,BACK_PROBLEM
|
||||
PRB_01_3,SCN_01,Hidden,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.,No card-specific effect; it simply remains unsolved.,BACK_PROBLEM
|
||||
PRB_01_4,SCN_01,Hidden,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.,No card-specific effect; it simply remains unsolved.,BACK_PROBLEM
|
||||
PRB_02_S,SCN_02,Surface,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.,No card-specific effect; it simply remains unsolved.,BACK_PROBLEM_SURFACE
|
||||
PRB_02_1,SCN_02,Hidden,1,Different Standards,"Players were using different definitions of complete, timely, or fair.",Clarify,SYM_CLARIFY,2,Resolve with Clarify. Value: 2.,None in the core set.,No card-specific effect; it simply remains unsolved.,BACK_PROBLEM
|
||||
PRB_02_2,SCN_02,Hidden,2,Invisible Workload,Some contributions and constraints were not visible to the group.,Boundary,SYM_BOUNDARY,2,Resolve with Boundary. Value: 2.,None in the core set.,No card-specific effect; it simply remains unsolved.,BACK_PROBLEM
|
||||
PRB_02_3,SCN_02,Hidden,3,Resentment Never Raised,Frustration accumulated without a direct request or acknowledgement.,Repair,SYM_REPAIR,3,Resolve with Repair. Value: 3.,None in the core set.,No card-specific effect; it simply remains unsolved.,BACK_PROBLEM
|
||||
PRB_02_4,SCN_02,Hidden,4,No Ownership Routine,The group relied on goodwill instead of a dependable allocation method.,Change,SYM_CHANGE,3,Resolve with Change. Value: 3.,None in the core set.,No card-specific effect; it simply remains unsolved.,BACK_PROBLEM
|
||||
PRB_03_S,SCN_03,Surface,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.,No card-specific effect; it simply remains unsolved.,BACK_PROBLEM_SURFACE
|
||||
PRB_03_1,SCN_03,Hidden,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.,No card-specific effect; it simply remains unsolved.,BACK_PROBLEM
|
||||
PRB_03_2,SCN_03,Hidden,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.,No card-specific effect; it simply remains unsolved.,BACK_PROBLEM
|
||||
PRB_03_3,SCN_03,Hidden,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.,No card-specific effect; it simply remains unsolved.,BACK_PROBLEM
|
||||
PRB_03_4,SCN_03,Hidden,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.,No card-specific effect; it simply remains unsolved.,BACK_PROBLEM
|
||||
PRB_04_S,SCN_04,Surface,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.,No card-specific effect; it simply remains unsolved.,BACK_PROBLEM_SURFACE
|
||||
PRB_04_1,SCN_04,Hidden,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.,No card-specific effect; it simply remains unsolved.,BACK_PROBLEM
|
||||
PRB_04_2,SCN_04,Hidden,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.,No card-specific effect; it simply remains unsolved.,BACK_PROBLEM
|
||||
PRB_04_3,SCN_04,Hidden,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.,No card-specific effect; it simply remains unsolved.,BACK_PROBLEM
|
||||
PRB_04_4,SCN_04,Hidden,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.,No card-specific effect; it simply remains unsolved.,BACK_PROBLEM
|
||||
problem_id,scenario_id,visibility,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,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.,No card-specific effect; it simply remains unsolved.,BACK_PROBLEM_SURFACE
|
||||
PRB_01_1,SCN_01,Hidden,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.,No card-specific effect; it simply remains unsolved.,BACK_PROBLEM
|
||||
PRB_01_2,SCN_01,Hidden,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.,No card-specific effect; it simply remains unsolved.,BACK_PROBLEM
|
||||
PRB_01_3,SCN_01,Hidden,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.,No card-specific effect; it simply remains unsolved.,BACK_PROBLEM
|
||||
PRB_01_4,SCN_01,Hidden,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.,No card-specific effect; it simply remains unsolved.,BACK_PROBLEM
|
||||
PRB_02_S,SCN_02,Surface,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.,No card-specific effect; it simply remains unsolved.,BACK_PROBLEM_SURFACE
|
||||
PRB_02_1,SCN_02,Hidden,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.,No card-specific effect; it simply remains unsolved.,BACK_PROBLEM
|
||||
PRB_02_2,SCN_02,Hidden,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.,No card-specific effect; it simply remains unsolved.,BACK_PROBLEM
|
||||
PRB_02_3,SCN_02,Hidden,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.,No card-specific effect; it simply remains unsolved.,BACK_PROBLEM
|
||||
PRB_02_4,SCN_02,Hidden,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.,No card-specific effect; it simply remains unsolved.,BACK_PROBLEM
|
||||
PRB_03_S,SCN_03,Surface,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.,No card-specific effect; it simply remains unsolved.,BACK_PROBLEM_SURFACE
|
||||
PRB_03_1,SCN_03,Hidden,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.,No card-specific effect; it simply remains unsolved.,BACK_PROBLEM
|
||||
PRB_03_2,SCN_03,Hidden,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.,No card-specific effect; it simply remains unsolved.,BACK_PROBLEM
|
||||
PRB_03_3,SCN_03,Hidden,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.,No card-specific effect; it simply remains unsolved.,BACK_PROBLEM
|
||||
PRB_03_4,SCN_03,Hidden,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.,No card-specific effect; it simply remains unsolved.,BACK_PROBLEM
|
||||
PRB_04_S,SCN_04,Surface,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.,No card-specific effect; it simply remains unsolved.,BACK_PROBLEM_SURFACE
|
||||
PRB_04_1,SCN_04,Hidden,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.,No card-specific effect; it simply remains unsolved.,BACK_PROBLEM
|
||||
PRB_04_2,SCN_04,Hidden,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.,No card-specific effect; it simply remains unsolved.,BACK_PROBLEM
|
||||
PRB_04_3,SCN_04,Hidden,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.,No card-specific effect; it simply remains unsolved.,BACK_PROBLEM
|
||||
PRB_04_4,SCN_04,Hidden,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.,No card-specific effect; it simply remains unsolved.,BACK_PROBLEM
|
||||
|
|
|
|||
|
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
|
||||
7
editions/profiles/README.md
Normal file
7
editions/profiles/README.md
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
# Profiles
|
||||
|
||||
Named compositions of modules. Authoritative definitions live in
|
||||
[`../catalog.yaml`](../catalog.yaml) under `profiles:`.
|
||||
|
||||
This directory may hold optional human notes per profile; it is not required
|
||||
for selection.
|
||||
Loading…
Add table
Add a link
Reference in a new issue