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:
codex 2026-08-25 19:30:13 +02:00
parent 9458d0256a
commit b5730f280b
55 changed files with 2937 additions and 150 deletions

129
HANDOFF.md Normal file
View file

@ -0,0 +1,129 @@
# Handoff — ground-game (2026-08-12)
Written for the next agent/session. Generated `.custodian-brief.md` may say
*no active workstreams* and still be right about *tasks* — this file says
**what not to misread** and **what to pick up**.
**Domain:** consumer · **Repo:** ground-game · **Agent inbox:** `ground-game`
**Sister:** clay-borg (engine/sim; design authority defers *here*)
---
## One-line state
Product repo is **clean of open formal workplans**. Catalog **schema 2**
(aspects × modules × profiles) is the rules-variation contract. clay-borg
is integrating configurations (CB-WP-0048). Several clay-borg *reports*
are filed under `reports/`**RPT-0007 needs a disposition pass** next.
---
## Orient next session (order)
1. `cat HANDOFF.md` (this file) then `cat .custodian-brief.md`
2. Inbox:
`curl -s "http://127.0.0.1:8000/messages/?to_agent=ground-game&unread_only=true"`
3. Skim recent reports (newest first):
`ls -lt reports/`
4. Catalog contract: `editions/CATALOG.md`, `editions/ASPECTS.md`, `editions/catalog.yaml`
5. If clay-borg work: sibling `../clay-borg/HANDOFF.md` and CB-RES-0010
---
## Finished this multi-day stretch (do not reopen casually)
| ID | Outcome |
|----|---------|
| WP-0002 / 0003 / 0004 | Finished earlier (rulings, engine mode playtest, threshold arithmetic) |
| WP-0005 | **Finished:** Standard thresholds only; no Learning/Mastery cards |
| WP-0006 | **Finished:** H1 reject-as-baseline (flat pressure); package kept for A/B |
| WP-0007 | **Finished:** `problem_stress.scoped` keep-as-experiment; not promoted to r0 |
| WP-0008 | **Finished:** schema 2 aspects/modules/profiles; hybrid end + pressure deck **ready-for-implement** |
| ADHOC-2026-08-08 | **Finished:** mastery=points; SCN_02 suit retune; SCN_04 left hard |
---
## Catalog / design-space (authoritative here)
```text
configuration = baseline (ground-darvo-r0)
× one module per aspect
```
| Aspect | Key modules |
|--------|-------------|
| `problem_stress` | `none` · `flat_any_open` (reject) · **`scoped`** (keep) |
| `attack_relief` | `none` · `self_soothe_ge4` (needs problem_stress to *reach*) |
| `end_condition` | `fixed_rounds_5` · `hybrid_clear_collapse` (ready-for-implement) |
| `problem_deal` | `fixed_setup` · `pressure_deck` (ready-for-implement) |
Profiles: `h1`, `h2`, `scoped_plus_attack_soothe`, `scoped_plus_hybrid_end`,
`scoped_plus_pressure_deck`.
**Do not** silently edit frozen r0 `point_value` / `required_solution`
(GROUND-WP-0002 T01). Content bumps → new revision directory.
---
## Reports — trust carefully
| Report | Topic | Disposition status |
|--------|--------|-------------------|
| RPT-0003 | Modes / ATTACK value | Filed; WP-0003 closed on engine path |
| RPT-0004 | H1 measured | Reject H1-A stands |
| RPT-0005 | H2 measured | Scoping works; keep module |
| RPT-0006 | All boards × modes | Dispositions filed; SCN_02 retuned 2026-08-09 |
| **RPT-0007** | **H1-B correction** | **On disk; needs formal review/reply next** |
### RPT-0007 (unread disposition — pick up first)
clay-borg correction: H1-B was never measured under bots that never
attacked; once a gate-attack probe + problem_stress is present, self-soothe
**does** fire and cuts DARVO arms / raises probe wins slightly. **Do not
reopen H1 as a package** (H1-A still kills group wins). Open ask:
> Catalog **preconditions / reachability** on modules so “unreachable in
> this configuration” is not misread as “module is inert.”
Also still open from RPT-0006/0007 prose: weak competitive-mode testing
(no rival model); scoped stress unreadable in round 1 when only Surface is
up — measurement hygiene, not automatic design bugs.
---
## Content note (SCN_02)
2026-08-09: SCN_02 suits retuned so it is not a mechanical twin of SCN_01
(`history/260809-scn02-mechanical-distinct.md`). clay-borg must re-vendor
`Problems.csv` digests. SCN_04 remains harder at 2p (double Repair) by choice.
Mastery rating: **points**, not card count (`Modes.csv` MODE_COOP).
---
## Suggested next work (when returning)
1. **Triage RPT-0007** — reply clay-borg; catalog field for module
preconditions if agreed; update `attack_relief` utility notes.
2. Optional: `consumed_files` on remaining modules (process hygiene).
3. Wait on clay-borg for hybrid end / pressure deck kernel + profile panels
before promoting `scoped` into baseline r1.
4. Do **not** invent ATTACK “should pay” or mode difficulty without new
evidence; F17 still design judgement.
---
## Hub hygiene
- Agent: `ground-game`
- Topic id: `4c2e5315-2cb9-447c-9d16-a39bdb0aabd0`
- After workplan edits: `statehub fix-consistency`
- Progress: `POST /progress/` with author
---
## Sister repo
clay-borg owns simulation, panels, configuration selector. ground-game owns
rules truth, edition CSV, catalog modules. Claudes clay-borg hall entry
and `clay-borg/HANDOFF.md` cover the engine side of the same week.

View file

@ -4,7 +4,7 @@
> in design or delivery *now*. Counterpart: [`INTENT.md`](INTENT.md) (stable /
> aspirational).
**Last updated:** 2026-07-31
**Last updated:** 2026-08-07
---
@ -49,6 +49,10 @@ must outrank partnership.
- Glossary and rules-text consistency across CSV sheets.
- Safety/safeguards language for the core set (non-clinical framing).
- Edition packaging notes (zip, metadata, version bumps).
- **Rules modules by aspect** under `editions/modules/`, indexed by
`editions/catalog.yaml` (schema 2) and mapped in `editions/ASPECTS.md`.
Profiles compose modules (H1/H2 legacy → profiles `h1` / `h2`).
Compare / keep / reject before promoting into baseline `ground-darvo-rN`.
---

View file

@ -8,11 +8,19 @@
| Kind | ID | Status | Lane | Source |
| --- | --- | --- | --- | --- |
| workplan | ADHOC-2026-08-08 | finished | — | workplans/ADHOC-2026-08-08.md |
| workplan | GROUND-WP-0001 | done | — | workplans/GROUND-WP-0001-statehub-bootstrap.md |
| workplan | GROUND-WP-0002 | finished | — | workplans/GROUND-WP-0002-rulings-clay-borg-is-blocked-on.md |
| workplan | GROUND-WP-0003 | ready | — | workplans/GROUND-WP-0003-playtest-semi-and-coalitions.md |
| workplan | GROUND-WP-0003 | finished | — | workplans/GROUND-WP-0003-playtest-semi-and-coalitions.md |
| workplan | GROUND-WP-0004 | finished | — | workplans/GROUND-WP-0004-the-threshold-ruling-rests-on-a-bad-premise.md |
| workplan | GROUND-WP-0005 | active | — | workplans/GROUND-WP-0005-difficulty-tiers-and-pressure-dial.md |
| workplan | GROUND-WP-0005 | finished | — | workplans/GROUND-WP-0005-difficulty-tiers-and-pressure-dial.md |
| workplan | GROUND-WP-0006 | finished | — | workplans/GROUND-WP-0006-h1-problem-stress-experiment.md |
| workplan | GROUND-WP-0007 | finished | — | workplans/GROUND-WP-0007-h2-scoped-problem-stress.md |
| workplan | GROUND-WP-0008 | finished | — | workplans/GROUND-WP-0008-composable-rules-modules.md |
| task | ADHOC-2026-08-08-T01 | done | — | workplans/ADHOC-2026-08-08.md |
| task | ADHOC-2026-08-08-T02 | done | — | workplans/ADHOC-2026-08-08.md |
| task | ADHOC-2026-08-08-T03 | cancel | — | workplans/ADHOC-2026-08-08.md |
| task | ADHOC-2026-08-08-T04 | done | — | workplans/ADHOC-2026-08-08.md |
| task | GROUND-WP-0001-T01 | done | — | workplans/GROUND-WP-0001-statehub-bootstrap.md |
| task | GROUND-WP-0001-T02 | done | — | workplans/GROUND-WP-0001-statehub-bootstrap.md |
| task | GROUND-WP-0001-T03 | done | — | workplans/GROUND-WP-0001-statehub-bootstrap.md |
@ -21,12 +29,26 @@
| task | GROUND-WP-0002-T03 | done | — | workplans/GROUND-WP-0002-rulings-clay-borg-is-blocked-on.md |
| task | GROUND-WP-0002-T04 | done | — | workplans/GROUND-WP-0002-rulings-clay-borg-is-blocked-on.md |
| task | GROUND-WP-0002-T05 | done | — | workplans/GROUND-WP-0002-rulings-clay-borg-is-blocked-on.md |
| task | GROUND-WP-0003-T01 | todo | — | workplans/GROUND-WP-0003-playtest-semi-and-coalitions.md |
| task | GROUND-WP-0003-T02 | todo | — | workplans/GROUND-WP-0003-playtest-semi-and-coalitions.md |
| task | GROUND-WP-0003-T03 | todo | — | workplans/GROUND-WP-0003-playtest-semi-and-coalitions.md |
| task | GROUND-WP-0003-T04 | todo | — | workplans/GROUND-WP-0003-playtest-semi-and-coalitions.md |
| task | GROUND-WP-0003-T05 | todo | — | workplans/GROUND-WP-0003-playtest-semi-and-coalitions.md |
| task | GROUND-WP-0003-T01 | done | — | workplans/GROUND-WP-0003-playtest-semi-and-coalitions.md |
| task | GROUND-WP-0003-T02 | done | — | workplans/GROUND-WP-0003-playtest-semi-and-coalitions.md |
| task | GROUND-WP-0003-T03 | done | — | workplans/GROUND-WP-0003-playtest-semi-and-coalitions.md |
| task | GROUND-WP-0003-T04 | done | — | workplans/GROUND-WP-0003-playtest-semi-and-coalitions.md |
| task | GROUND-WP-0003-T05 | done | — | workplans/GROUND-WP-0003-playtest-semi-and-coalitions.md |
| task | GROUND-WP-0004-T01 | done | — | workplans/GROUND-WP-0004-the-threshold-ruling-rests-on-a-bad-premise.md |
| task | GROUND-WP-0004-T02 | done | — | workplans/GROUND-WP-0004-the-threshold-ruling-rests-on-a-bad-premise.md |
| task | GROUND-WP-0005-T01 | wait | — | workplans/GROUND-WP-0005-difficulty-tiers-and-pressure-dial.md |
| task | GROUND-WP-0005-T02 | wait | — | workplans/GROUND-WP-0005-difficulty-tiers-and-pressure-dial.md |
| task | GROUND-WP-0005-T01 | done | — | workplans/GROUND-WP-0005-difficulty-tiers-and-pressure-dial.md |
| task | GROUND-WP-0005-T02 | cancel | — | workplans/GROUND-WP-0005-difficulty-tiers-and-pressure-dial.md |
| task | GROUND-WP-0006-T01 | done | — | workplans/GROUND-WP-0006-h1-problem-stress-experiment.md |
| task | GROUND-WP-0006-T02 | done | — | workplans/GROUND-WP-0006-h1-problem-stress-experiment.md |
| task | GROUND-WP-0006-T03 | cancel | — | workplans/GROUND-WP-0006-h1-problem-stress-experiment.md |
| task | GROUND-WP-0006-T04 | done | — | workplans/GROUND-WP-0006-h1-problem-stress-experiment.md |
| task | GROUND-WP-0006-T05 | done | — | workplans/GROUND-WP-0006-h1-problem-stress-experiment.md |
| task | GROUND-WP-0007-T01 | done | — | workplans/GROUND-WP-0007-h2-scoped-problem-stress.md |
| task | GROUND-WP-0007-T02 | done | — | workplans/GROUND-WP-0007-h2-scoped-problem-stress.md |
| task | GROUND-WP-0007-T03 | cancel | — | workplans/GROUND-WP-0007-h2-scoped-problem-stress.md |
| task | GROUND-WP-0007-T04 | done | — | workplans/GROUND-WP-0007-h2-scoped-problem-stress.md |
| task | GROUND-WP-0007-T05 | done | — | workplans/GROUND-WP-0007-h2-scoped-problem-stress.md |
| task | GROUND-WP-0008-T01 | done | — | workplans/GROUND-WP-0008-composable-rules-modules.md |
| task | GROUND-WP-0008-T02 | done | — | workplans/GROUND-WP-0008-composable-rules-modules.md |
| task | GROUND-WP-0008-T03 | cancel | — | workplans/GROUND-WP-0008-composable-rules-modules.md |
| task | GROUND-WP-0008-T04 | done | — | workplans/GROUND-WP-0008-composable-rules-modules.md |

146
editions/ASPECTS.md Normal file
View 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? | 26 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 selectrevealresolve; 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 45 gate | fixed (r0 rulings) |
### C. Pressure and regulation
| Aspect id | Question | GROUND today | Modular? |
|-----------|----------|--------------|----------|
| `individual_state` | Stress, Freedom, arming | Stress 05; 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
View 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 aspects 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
View 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 34p 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

View 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 05).","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.
1 action_id title symbol_id resolution_order target tagline rules_text stress_restriction designer_note
2 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.
3 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.
4 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.
5 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).
6 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.

View 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 26 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 12 for 2 players, 13 for 34 players, and 14 for 56 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 34 players, and 12 at 56 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 05. 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 03 allows any Action. At Stress 45, 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 34 players, and 9 for 56 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."
1 order section heading body
2 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.
3 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.
4 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.
5 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.
6 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.
7 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.
8 7 Round 2. Reveal Reveal all selected Actions simultaneously. Players using GROUND choose their mode after seeing the revealed Actions.
9 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.
10 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.
11 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).
12 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.
13 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.
14 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.
15 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.
16 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.
17 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.
18 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.
19 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.
20 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.
21 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).
22 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.

View 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 05, 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 attackers Stress was **≥ 4 before that Attacks 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 packages `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.

View 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": "26",
"duration": "515 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"
]
}

View 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 05
# 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

View 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
1 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
2 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
3 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
4 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
5 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
6 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
7 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
8 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
9 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
10 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
11 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
12 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
13 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
14 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
15 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
16 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
17 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
18 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
19 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
20 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
21 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

View 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 26 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 12 for 2 players, 13 for 34 players, and 14 for 56 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 34 players, and 12 at 56 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 05. 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 03 allows any Action. At Stress 45, 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 34 players, and 9 for 56 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."
1 order section heading body
2 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.
3 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.
4 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.
5 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.
6 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.
7 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.
8 7 Round 2. Reveal Reveal all selected Actions simultaneously. Players using GROUND choose their mode after seeing the revealed Actions.
9 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.
10 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.
11 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).
12 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.
13 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.
14 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.
15 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.
16 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.
17 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.
18 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.
19 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.
20 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.
21 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.
22 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).
23 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.

View 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 owners **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`.

View 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": "26",
"duration": "515 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"
]
}

View file

@ -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; 34p introduces one bond; 56p 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 05
# 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

View file

@ -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 26 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 26 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 mode_id title mode_type tagline rules_text scoring_tiebreak back_design_id
2 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. 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
3 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
4 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

View file

@ -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

1 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
2 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
3 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
4 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
5 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
6 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
7 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
8 PRB_02_1 SCN_02 Hidden 1 Different Standards Players were using different definitions of complete, timely, or fair. Clarify Change SYM_CLARIFY SYM_CHANGE 2 Resolve with Clarify. Value: 2. Resolve with Change. Value: 2. None in the core set. No card-specific effect; it simply remains unsolved. BACK_PROBLEM
9 PRB_02_2 SCN_02 Hidden 2 Invisible Workload Some contributions and constraints were not visible to the group. Boundary Clarify SYM_BOUNDARY SYM_CLARIFY 2 Resolve with Boundary. Value: 2. Resolve with Clarify. Value: 2. None in the core set. No card-specific effect; it simply remains unsolved. BACK_PROBLEM
10 PRB_02_3 SCN_02 Hidden 3 Resentment Never Raised Frustration accumulated without a direct request or acknowledgement. Repair Boundary SYM_REPAIR SYM_BOUNDARY 3 Resolve with Repair. Value: 3. Resolve with Boundary. Value: 3. None in the core set. No card-specific effect; it simply remains unsolved. BACK_PROBLEM
11 PRB_02_4 SCN_02 Hidden 4 No Ownership Routine The group relied on goodwill instead of a dependable allocation method. Change Repair SYM_CHANGE SYM_REPAIR 3 Resolve with Change. Value: 3. Resolve with Repair. Value: 3. None in the core set. No card-specific effect; it simply remains unsolved. BACK_PROBLEM
12 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
13 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
14 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
15 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
16 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
17 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
18 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
19 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
20 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
21 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

View file

@ -0,0 +1,7 @@
# Module: `attack_relief.none`
| | |
|---|---|
| **aspect** | `attack_relief` |
| **role** | **Default.** ATTACK never reduces attacker Stress. |
| **status** | baseline-default |

View 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 &lt;4). Worth re-trying **with** `problem_stress.scoped` as a composition profile.

View file

@ -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

View file

@ -0,0 +1,7 @@
# Module: `end_condition.fixed_rounds_5`
| | |
|---|---|
| **aspect** | `end_condition` |
| **role** | **Default.** Always play Round 15, then threshold + mode scoring. |
| **status** | baseline-default |

View file

@ -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 &lt; 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 34p.
4. Does not recreate H1-style 0% greedy wins solely via collapse spam.

View file

@ -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

View 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 |

View 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 |
|------:|------------------|----------------------|
| 23 | Surface + H1 | H2… |
| 46 | 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 &lt; **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 34p
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.

View 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

View 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).

View file

@ -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

View 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.”

View 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.*`.

View 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
1 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
2 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
3 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
4 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
5 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
6 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
7 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
8 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
9 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
10 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
11 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
12 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
13 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
14 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
15 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
16 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
17 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
18 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
19 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
20 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
21 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

View 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 26 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 12 for 2 players, 13 for 34 players, and 14 for 56 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 34 players, and 12 at 56 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 05. 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 03 allows any Action. At Stress 45, 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 34 players, and 9 for 56 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."
1 order section heading body
2 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.
3 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.
4 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.
5 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.
6 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.
7 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.
8 7 Round 2. Reveal Reveal all selected Actions simultaneously. Players using GROUND choose their mode after seeing the revealed Actions.
9 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.
10 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.
11 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).
12 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.
13 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.
14 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.
15 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.
16 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.
17 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.
18 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.
19 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.
20 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.
21 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.
22 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).
23 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.

View 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

View 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.

View file

@ -0,0 +1,166 @@
# ATTACK / DARVO relevance — design challenge and H1
**Date:** 2026-08-07 (measurement 2026-08-08)
**Status:** H1 **measured** — reject as baseline; direction kept for H2
**Triggers:** [GROUND-RPT-0003](../reports/260807-clay-borg-attack-and-modes.md); inbox triage
**Variant:** [`editions/experiments/h1-problem-stress/`](../editions/experiments/h1-problem-stress/)
**Measurement:** [GROUND-RPT-0004](../reports/260808-clay-borg-h1-measured.md)
**Catalog:** [`editions/CATALOG.md`](../editions/CATALOG.md)
**Workplan:** [GROUND-WP-0006](../workplans/GROUND-WP-0006-h1-problem-stress-experiment.md)
---
## 0. The measured gap
clay-borg (RPT-0003): under competent play, **ATTACK never improves** outcomes in any mode, and in 500 competent games **DARVO armed zero times**. Modes themselves differentiate correctly; the driver bug that forced SHARED GROUND is fixed on their side.
So the namesake loop is reachable only by playing badly. That may be intentional (cautionary structure) or a missing Problem → Stress coupling. This note challenges design options **before** promoting any change into baseline `ground-darvo-r0`.
---
## 1. Stress ledger today (baseline r0)
| Source | Whos stress changes? | Notes |
|--------|----------------------|--------|
| **ACT_ATTACK** | **Target** +1 or +2 | **Attacker: no relief.** Cancelled → no change |
| **SUPPORT** | **Target** 1 or 2 | Bond Support also readies Freedom, cancels DARVO |
| **GROUND—GR** | **Self** 2 | Readies Freedom; DARVO current stage still fires |
| **DARVO REVERSE** | **Self** 2; **Focus target** +1 | Blame on target; Protection for self |
| **Unsolved Problems** | **Nobody** | `unresolved_effect` is empty in `Problems.csv` |
| **Status / rank** | **Nobody** | No hierarchy stress |
| Start | All at **2** | |
At Stress 45 the rules force the *vocabulary* of ATTACK or GROUND (unless Freedom is spent), but ordinary ATTACK is not a stress valve—only GROUND—GR and receiving Support (and later REVERSE) are.
**Implication:** Stress is almost a **closed social subsystem**. If nobody attacks, stress drifts mid/down; DARVO never arms. clay-borgs zero-DARVO result is the ledger working as printed, not a simulator bug.
INTENT principle (“DARVO must sometimes work **locally** — short-term advantage, delayed relational cost”) is therefore under-served: the only local advantage is REVERSEs package, gated on already being at Stress 5 for three rounds of sequence.
---
## 2. Design directions (challenged)
### 2.1 Stress from stuck problems + outward projection
**Strong:** Restores Problem → Individual link in the four-layer model. Makes GROUND regulation under load; Support anti-cascade; DARVO “I cant hold this.”
**Challenge:**
- Today **ATTACK and Blame do not reduce the projectors stress**. Without a rules change, “forced projection” is flavor on a move that still does not help the projector.
- Passive problem ticks can flatten into always-DARVO or kill group thresholds (already ~7583% of available points).
- Personal / Bond-attached problems are powerful and already listed as **extensions** (`EXT_PERSONAL`) — keep out of first core experiment.
- Even with self-soothe, **E04** still punishes Bond-breaking; mode-aware evaluation is required.
### 2.2 Hierarchy / competitive status stress
**Strong:** Injects stress without anyone choosing ATTACK; natural in semi-coop.
**Challenge:** Leader stress amplifies Matthew effects; “leading” mid-game is noisy; co-op must not invent early winners; stacking with problem pressure overproduces Stress 5 at 2p.
**Parked** behind H1 (last-place-only semi-coop is the minimal follow-up if H1 under-delivers).
### 2.3 Competence score
**Strong as extension** (follow-through, self-regard). **Wrong tool** for RPT-0003: does not create ATTACK incentive unless it secretly becomes another stress track. **Out of H1.**
---
## 3. Playtest hypothesis H1
> 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.
### 3.1 Two rule deltas only (relative to `ground-darvo-r0`)
| ID | Rule | Detail |
|----|------|--------|
| **H1-A** | Problem pressure | At **Round End**, after Stress clamp step preparation: if **any** Problem still in play is **unclaimed** (face-up, hidden, or Denied), **each player +1 Stress**, then clamp 05, then DARVO arm check as today. |
| **H1-B** | High-stress ATTACK self-soothe | When an **ACT_ATTACK** resolves and is **not cancelled**, if the **attackers Stress was ≥ 4 before this Attacks effects**, the attacker takes **1 Stress** (then clamp). Target / relation effects unchanged. DARVO-stage extra Attack uses the same Attack resolution (so it can self-soothe too if Stress ≥ 4). |
Unchanged on purpose: thresholds, deal, SOLVE legality, Support, GROUND modes, DARVO stage table, relation slots, starting Stress 2.
### 3.2 Success criteria (compare to RPT-0003 harness)
Under a competent multi-policy panel, same seat counts as RPT-0003 where practical:
1. **DARVO arm rate** non-trivial (target band to refine after first N; not 0/500).
2. **ATTACK selection** rises for some subpopulation (e.g. Stress ≥ 4) and **raising ATTACK rank** improves at least one objective in some mode/seat cell — not “always attack wins.”
3. **Group threshold success** does not collapse to “only perfect peaceful play.”
4. Bond Support and GROUND remain better than DARVO **when regulation holds** — DARVO stays the failure mode, not the dominant strategy.
### 3.3 Explicit non-goals for H1
- No personal / bond-group problem cards.
- No competence track.
- No leader/last-place status stress (Idea 2).
- No silent edit of baseline `point_value` / `required_solution` inside r0.
- No promotion of H1 into `ground-darvo-r0` until measured utility is accepted.
---
## 4. Rules variation versioning (how we compare experiments)
See full contract: [`editions/CATALOG.md`](../editions/CATALOG.md).
**Summary:**
| Mechanism | Role |
|-----------|------|
| **`editions/catalog.yaml` + `CATALOG.md`** | Authoritative **index of selectable packages** (baseline + experiments). Lives on `main`. clay-borg and humans read this to know what can be pinned. |
| **Directory path** | Selectable unit, e.g. `editions/ground-darvo-r0/`, `editions/experiments/h1-problem-stress/`. Matches clay-borgs vendor-by-path practice (ADR-0011). |
| **`variant_id` + `base`** | Stable ids (`ground-darvo-r0`, `h1-problem-stress`); experiments declare inheritance and file-level deltas. |
| **Git** | Commits/tags pin content digests; optional feature branches for WIP **before** an experiment directory lands on `main`. Branches are **not** the primary selection API (sibling checkout + multi-ref is hostile to clay-borg CI). |
| **Utility fields** | Catalog rows carry `status`, `utility_estimate`, `decision` (keep / reject / merge-to-baseline / supersede). Updated when measurement lands — not when the idea is written. |
Baseline contract (GROUND-WP-0002 T01) still holds: changing frozen columns inside `ground-darvo-r0` requires a **new revision directory** (`-r1`), not an experiment. Experiments may **copy** and alter rules text/actions; only a later **promote** step rewrites baseline.
---
## 5. clay-borg selection contract
A package is **selectable for simulation** when it appears in `editions/catalog.yaml` with `selectable: true` and a `path`.
Minimum fields clay-borg should read (or we message explicitly):
```yaml
variant_id: h1-problem-stress
path: editions/experiments/h1-problem-stress
base: ground-darvo-r0
status: experimental
rules_engine_notes: rules_delta.yaml # structured deltas if CSV alone is not executable
```
Engine note: today clay-borg **hardcodes** much of the rules kernel and **vendors** selected CSVs. H1-A/B are **rules-kernel changes**, not Problem table changes. Selecting H1 means:
1. Vendor or overlay the experiments changed CSVs for text/provenance, **and**
2. Implement `rules_delta.yaml` in the kernel (or a feature flag keyed by `variant_id`).
Until (2) exists, H1 is **specified here** and playable at a human table from the experiment package; bulk ATTACK-value re-runs wait on clay-borg.
---
## 6. Exploration order (after H1)
| Step | If… | Then… |
|------|-----|--------|
| H1 measured | criteria met | promote candidates into r1 design / keep as optional mode card |
| H1 measured | DARVO still ~0 | add Idea 2 last-place stress (semi only) as **H2** experiment |
| H1 measured | always-ATTACK optimal | reject H1-B or gate self-soothe tighter |
| Later | core loop works | competence / personal problems as extensions |
---
## 7. Decision log
| Date | Decision |
|------|----------|
| 2026-08-07 | Do not invent “DARVO-only-from-bad-play is intended” without measurement of H1-class pressure. |
| 2026-08-07 | First experiment is **H1** (problem pressure + high-stress ATTACK 1). |
| 2026-08-07 | Versioning = **catalog + directories on main**; git tags pin; branches optional for WIP. |
| 2026-08-08 | H1 measured (CB-EV-0030/0031 → RPT-0004). **Reject as baseline.** Direction (Problem→Stress) confirmed useful; flat +1/end is a solve-rate tax. H2 must change pressure *shape*, not only re-stack. Baseline finding: non-attacking policies never raise Stress above 2. |
| 2026-08-08 | **H2 packaged:** scoped stress (personal / bond / global). See [260808-h2-scoped-problem-stress.md](260808-h2-scoped-problem-stress.md). Bond network shares ticks → joint SOLVE incentive. |
## 8. Measurement summary (2026-08-08)
See RPT-0004 for full tables. One-line:
> H1 reaches the seat that will not regulate; under greedy regulation the table stops winning; H1-B is dead code for competent play.

View file

@ -0,0 +1,18 @@
# Inbox triage — clay-borg messages (2026-08-07)
Four unread messages from `clay-borg-custodian` were processed in one
pass. Report files already lived under `reports/` (not `workplans/` as
the message bodies claimed). No kernel or edition change in this pass.
| date | subject | report | action taken |
|------|---------|--------|--------------|
| 2026-08-03 | SOLVE ruling as GR-P05 + premise correction | (inline in message) | Acknowledged: GR-P05 matches GROUND-WP-0002 T02; face-down vs hand misdescription does not reopen the ruling |
| 2026-08-05 | Withdraw GR-E01 4/6/9; U-items collected | [GROUND-RPT-0001](../reports/260805-clay-borg-findings.md) | Acknowledged: confirms WP-0002 T03/T05; no work from us |
| 2026-08-05 | Difficulty baseline; no threshold proposal | [GROUND-RPT-0002](../reports/260805-clay-borg-difficulty.md) | Receipt noted on [WP-0005](../workplans/GROUND-WP-0005-difficulty-tiers-and-pressure-dial.md); T01 stays `wait` |
| 2026-08-07 | E03/E04 played; ATTACK value; DARVO never arms | [GROUND-RPT-0003](../reports/260807-clay-borg-attack-and-modes.md) | Receipt noted on [WP-0003](../workplans/GROUND-WP-0003-playtest-semi-and-coalitions.md); design question escalated to human |
## Outstanding human decision
**Is it intended that ATTACK (and therefore DARVO) is unreachable under
competent play in all three modes?** clay-borg asks this explicitly and
does not call it a defect. Ground-game has not ruled yet.

View file

@ -0,0 +1,170 @@
# After H2: deal influx, end conditions, sequence salience
**Date:** 2026-08-08
**Context:** H2 measured (RPT-0005) — scoping works; felt “more interesting.”
**Status:** design discussion — not yet a packaged variant
Maintainer questions: (1) fixed problem deal vs random influx; (2) fixed
5 rounds vs clear-board / stressed-out ends; (3) GROUND/DARVO as sequences
with significant effect — sim artifact or gameplay gap?
---
## 0. What H2 already proved
- Scoped stress is the right *pressure* shape (all-global control = H1 collapse).
- DARVO can arm for a seat that still sometimes wins (unlike H1).
- ATTACK is affordable under H2, still not profitable.
- Bond joint-SOLVE incentive is **untested by bots** (they do not model scopes).
H2 does **not** yet answer deal variety, pacing, or “do sequences *feel*
significant.” Those are the next design layer.
---
## 1. Problem deal: start set + random influx
### Current
Fixed deal at setup: Surface + hidden 1..k by seats. Owners assigned once.
Solution deck is the only ongoing draw (INVESTIGATE draws Solutions).
### Proposal
Keep a **starting set** of Problems, then **random draws** that can add
personal / bond / global Problems to play (or into a hand that can be
played/attached).
### Strengths
- Replay variety without new scenarios every time.
- Fiction: issues *arrive* mid-relationship; hand/draw = what lands on you.
- Difficulty dial = composition of the **draw bag** (how many personal vs
bond vs global), cleaner than fixed priority mapping alone.
- Supports “my hand gave *me* a personal problem” without full EXT_PERSONAL
shadow goals.
### Challenges
| Risk | Mitigation |
|------|------------|
| Available points / threshold float mid-game | Threshold as % of *currently in play* claimed target, or score only starting set, or drawn problems are stress-only (no point value) |
| Global flood rebuilds H1 | Cap globals in bag; max N open globals |
| Too long / never clears | Soft cap on open Problems; draw only on triggers (missed SOLVE, DENY, Round End if board empty of hidden) |
| Ownership chaos | Drawn personal → drawer is owner; bond → drawers network; global → none |
| Teach complexity | Phase 1: **draw adds to board face-down**, not a second hand of problems |
### Lean experiment shape (if packaged later)
**H3-deal (sketch):** After setup of Surface + 12 starters, remaining scoped
Problems form a **Pressure deck**. At End of round (or on INVESTIGATE
miss), draw 01 if open unclaimed count < cap. Drawn card enters play
with scope as printed; owner = drawer or Lead-round-robin.
Do **not** put Problems in the Solution hand first — that collides with
suit management. Separate “issue arrives” channel is clearer.
---
## 2. End conditions: beyond fixed 5 rounds
### Current
Always 5 rounds, then threshold + mode scoring. Compact (515 min) was
explicit intent (2026-07-30 exploration).
### Why 5 feels arbitrary
It is a **timer**, not a story beat. Under H2 stress, a clear board early
still forces empty rounds; a meltdown at round 3 still limps to 5.
### Proposal family
| End | Meaning | Risk |
|-----|---------|------|
| **A. Board clear** | No unclaimed Problems left → immediate group success check | Short games; INVESTIGATE race |
| **B. Group break** | All seats at Stress 5 and/or in DARVO → group fail (or “stressed out”) | Need precise definition; soft lock if one seat holds out |
| **C. Max rounds** | Still a ceiling (46) so games terminate | Keeps product length |
| **Hybrid** | End on A or B, else at round max | Best of both |
### Recommendation
**Hybrid** is the least arbitrary and keeps the product box promise:
1. If **no unclaimed Problems** remain after a rounds Solve → end; apply mode scoring (threshold may be automatic success if all claimed value ≥ threshold, or redefine success as “cleared the table”).
2. If **collapse**: e.g. every seat is at Stress ≥4 **or** ≥ half the table is in active DARVO → end as **group failure** (SHARED) / no personal win (semi).
3. Else after **Round Max** (keep 5 or try 6) → current threshold scoring.
“All stressed out” as pure unanimous Stress 5 is harsh and rare; prefer
**majority in DARVO** or **no seat below Stress 4** as the fail line.
Threshold vs clear-board: if success = clear all, thresholds become
redundant; if success = clear *enough*, keep threshold and treat early
clear as auto-meet if points ≥ threshold.
---
## 3. GROUND and DARVO as sequences — sim vs design
### What the rules actually are
| System | In r0 today | “Sequence”? |
|--------|-------------|-------------|
| **DARVO** | DENY → ATTACK → REVERSE over **consecutive rounds** once armed at Stress 5 | **Yes** — three mandatory stages |
| **GROUND** | One action, **one of three modes** (GR / OU / ND) chosen after reveal | **No** — not a multi-round sequence |
| INTENT / early design | GROUND as G-R-O-U-N-D practices; DARVO as binding multi-turn chain | Aspirational / partial |
So if the desire is “GROUND is also a sequence,” that is **missing design**,
not a clay-borg bug.
### Why sequences feel weak in the simulator
**Mostly gameplay + policy, not “sim is broken.”**
1. **Competent bots regulate.** Greedy GROUNDs when gated → Stress often
never hits 5 → **no DARVO stage chain to watch**. H2 reactive shows
arms; greedy play will not.
2. **Full DARVO chain needs three rounds.** With max 5, a late arm gets
DENY only (or DENY+ATTACK). REVERSEs drama is rare.
3. **Exits are strong.** Bond Support cancels the stage and ends the
sequence; GROUND—GR lets current stage fire then ends the rest. So
sequences are designed to be **interruptible** — good for teaching,
bad for “unstoppable set piece” feel.
4. **GROUND modes are situational.** GR (2 Stress) is the default bot
use. OU/ND only matter if DENY/Attack/Blame already happened — rare
under peaceful greedy play. Sim never “chooses the dramatic mode.”
5. **Bots optimize scores, not narrative.** Sequence significance is a
human-felt property; aggregates report arms and wins, not “that REVERSE
mattered.”
**Where the sim *is* limited:** no multi-seat-aware bond motivation; no
felt-play; watching greedy H2 underplays DARVO by construction.
### If we want sequences to *matter* more (gameplay levers)
| Lever | Effect |
|-------|--------|
| Longer max rounds or early arm | More full DENY→…→REVERSE completions |
| Softer exits (Bond Support cancels only *this* stage, not whole sequence) | Harder to snuff DARVO |
| DARVO stages alter scoring more (Blame already 1; DENY already blocks points) | Make completion costly for the *group* |
| GROUND as optional **multi-step practice** (e.g. commit GR this round, may chain OU next if still regulating) | True GROUND sequence — large design change |
| Scenario “Focus cards” that force a stage | Guaranteed set piece for teaching |
Prefer measuring **full-sequence completion rate** (DENY+ATTACK+REVERSE all
fired) under H2 before changing exits — if completion ≈ 0 even when arms
> 0, the chain is too long for the clock.
---
## 4. Suggested order (do not stack into one silent H2 edit)
1. **Keep H2 stress routing** (`keep-as-experiment`; candidate for r1 core).
2. **Table smoke** for bond joint SOLVE (criterion 4).
3. Package **one** next experiment, not three:
- either **H3-end** hybrid end conditions on top of H2, **or**
- **H3-deal** pressure-deck influx on top of H2,
- measure sequence completion rate as a side metric either way.
4. Only then consider GROUND-as-sequence or DARVO exit tuning.
Promoting H2 into baseline before deal/end redesign is optional; stress
routing can be kept even if deal changes later.

View file

@ -0,0 +1,89 @@
# H2 — scoped problem stress (personal / bond / global)
**Date:** 2026-08-08
**Status:** experiment open — packaged as selectable variant
**Parent:** [H1 design + measurement](260807-attack-darvo-stress-design.md), [RPT-0004](../reports/260808-clay-borg-h1-measured.md)
**Variant:** [`editions/experiments/h2-scoped-problem-stress/`](../editions/experiments/h2-scoped-problem-stress/)
**Workplan:** [GROUND-WP-0007](../workplans/GROUND-WP-0007-h2-scoped-problem-stress.md)
---
## 0. Why H2 (after H1)
H1 applied **+1 Stress to every seat** whenever any Problem remained unclaimed. Competent play regulated (GROUND); Stress plateaus ~3; SOLVE bandwidth died; group wins collapsed at 3p+. Direction (Problem → Stress) was right; **equal global tax** was wrong.
H2 keeps inbound problem pressure but **routes** it:
| scope | who pays | design role |
|-------|----------|-------------|
| **personal** | one owner | asymmetric load; someone can approach DARVO while others SOLVE |
| **bond** | Bond network of owner | shared load → shared **incentive to SOLVE** that card |
| **global** | all seats | rare systemic pressure (Surface only in this package) |
Difficulty dial (later / WP-0005): vary how many of each scope are in the deal. This packages first recipe uses **priority mapping** so seat band already changes mix (no bond card at 2p).
---
## 1. Bond scope — the interesting bit
Bond today is almost pure upside (stress down, cancel DARVO). Bond-scope problems add a **joint liability**:
- While the card stays unclaimed, **every bonded partner** takes the End tick.
- **Any** seat may SOLVE it (matching suit) — including a non-owner altruist.
- So the network is incentivised to **clear the shared load**, not only to Support through the crisis.
That is the hypothesis to protect in measurement:
> Do Bond networks clear bond-scoped Problems faster / more often than equivalent personal cards, and does that keep group success above H1s floor?
**Risk to watch:** players avoid Bonding to shed liability. If Bond rate collapses and DARVO rises, magnitude is still wrong (or bond tick needs to be softer than personal).
**Network definition:** seats reachable from the **owner** by Bond edges only. Rivalries do not connect. Degree 0 → personal behaviour.
---
## 2. Package rules (summary)
See `rules_delta.yaml` for machine form.
1. **H2-SCOPE**`Problems.csv` column `stress_scope`; mapping by `hidden_priority` 0→global, 12 personal, 3 bond, 4 personal.
2. **H2-OWN** — owners for personal/bond: ascending priority among in-play non-global, round-robin from Lead.
3. **H2-A** — Round End: each unclaimed Problem → +1 Stress to each seat in its scope; then clamp; then DARVO arm as r0.
4. **H2-SOLVE** — claim rights unchanged by scope (anyone with suit).
**Not included:** H1-A, H1-B, owner-only solve, shadow goals.
**Thresholds / deal depth / start Stress 2:** unchanged from r0.
---
## 3. Hypothesis and success criteria
> Scoped pressure creates stress **variance** and occasional DARVO under mixed policies **without** driving greedy SHARED group wins to ~0 at 34p; bond cards create joint SOLVE incentive inside Bond networks.
| # | criterion | target (directional) |
|---|-----------|----------------------|
| 1 | Group success (greedy SHARED, 34p) | **Well above H1s 0**; not required to match baseline |
| 2 | Stress variance | maxmin Stress across seats **higher** than baseline and H1-greedy |
| 3 | DARVO | non-zero for some policy that still sometimes wins; not only pure reactive-never-wins |
| 4 | Bond cards | among bond-scoped unclaimed time, networks show elevated SOLVE rate on those cards vs personal (or qualitative report) |
| 5 | Control | if all scopes forced global, H1-like collapse returns (optional A/B) |
Instrument caveats from CB-EV-0030/0031 still apply: plural panel; report sample-specific vs invariant; no felt-play substitute.
---
## 4. Safety / scope of fiction
Cards keep existing scenario language (deadline, ownership, overload). No new trauma-personal content. Full `EXT_PERSONAL` (shadow goals, expose, win rewrite) stays **out**.
---
## 5. Decision log
| Date | Decision |
|------|----------|
| 2026-08-08 | H1 reject-as-baseline; spawn H2 scoped stress |
| 2026-08-08 | Bond = full Bond network of owner; SOLVE unrestricted by owner |
| 2026-08-08 | Surface global; one bond card (priority 3) enters at 3p+ |
| 2026-08-08 | Do not stack H1-B in H2 until scoped pressure is measured alone |

View file

@ -0,0 +1,91 @@
# Mode playtest notes — engine (GR-E03 / GR-E04)
**Date:** 2026-08-08
**Workplan:** [GROUND-WP-0003](../workplans/GROUND-WP-0003-playtest-semi-and-coalitions.md)
**Source:** [GROUND-RPT-0003](../reports/260807-clay-borg-attack-and-modes.md) (clay-borg attack-value panel + full-mode playouts)
**Variant:** `ground-darvo-r0` (baseline)
These notes close the **engine** half of WP-0003 (“human table *or* full
engine playout”). They are not a substitute for human felt-play if we want
table texture later; they do answer “do the modes score to the end, and
what does ATTACK do?”
---
## Runs covered
| Task | Mode | Seats | Evidence |
|------|------|------:|----------|
| T01 | MODE_SEMI | 2p | attack-value cells; modes playable to scoring |
| T02 | MODE_SEMI | 34p (and 6p) | same panel |
| T03 | MODE_COALITION | 2p | same |
| T04 | MODE_COALITION | 34p (and 6p) | same |
| — | MODE_COOP | all | control cells |
**Identical-play differentiation (seed 1, 4p, 37 commands):**
| Mode | Winners |
|------|---------|
| SHARED GROUND | all four (mastery 4) |
| COMMON PROBLEM (semi) | **P3** (top personal) |
| BONDED COALITIONS | **P1+P2** (best Bond network) |
Encoding of Modes.csv behaves as three distinct games.
**Driver note (clay-borg):** GR-E03/E04 were previously unplayed because
`cb-play` forced SHARED GROUND — fixed on their side; not a modes defect.
---
## Outcomes checklist
### Shared total vs threshold / personal scores
- Group success rates under “never attack” competent-ish policy (wins per
200 games, 2/3/4/6 seats):
- SHARED: 132 / 165 / 190 / 200
- SEMI (seat-0 among winners framing differs; personal race present): lower individual “among winners” counts
- COALITION: high “among winners” when not attacking (network still intact)
- Exact seed-by-seed personal score tables were not shipped in RPT-0003;
mode differentiation and ATTACK value are the load-bearing results.
### Stress / DARVO
- Under competent non-attacking play on baseline r0: **DARVO armed 0 times**
in the RPT-0003 competent aggregate (500 games cited).
- Later CB-EV-0031: peak Stress *held* never exceeds start **2** when policies
never select ATTACK — Stress only falls. Inbound pressure is ATTACK-only
for those policies.
### ATTACK value (all three modes)
| mode | never | sometimes | always |
|------|------:|----------:|-------:|
| SHARED | 132/165/190/200 | identical | 0 |
| SEMI | 59/52/48/44 | 59/52/48/**34** | 0 |
| COALITION | 131/134/132/116 | **59/52/48/34** | 0 |
*(2/3/4/6 seats.)* ATTACK never improves outcomes; in coalitions it roughly
halves “among winners.” E04 attacking numbers match E03 when Bonds break
(GR-A07 + network scoring).
### Underdetermined rules exposed?
- **No new U-items** from mode scoring itself.
- **Design gap (not rules ambiguity):** ATTACK/DARVO irrelevant under
competent baseline play — tracked experimentally via WP-0006 (H1,
reject) → WP-0007 (H2 scoped stress, in flight).
---
## Follow-ups
| Item | Where |
|------|--------|
| Restore inbound Stress without flat table tax | H2 `h2-scoped-problem-stress` |
| Human felt-play of semi/coalition (optional) | residual note below; not blocking |
| Opening-action economy (INVESTIGATE first) | clay-borg offer; deferred |
**Residual (optional, not a new workplan unless scheduled):** one human
2p semi and one 34p coalition session for “feels like one game” texture.
Engine checklist for T01T04 is satisfied.

View file

@ -0,0 +1,43 @@
# Composable rules modules by aspect (catalog schema 2)
**Date:** 2026-08-08
**Status:** adopted as catalog contract
**Catalog:** [`editions/CATALOG.md`](../editions/CATALOG.md), [`editions/catalog.yaml`](../editions/catalog.yaml)
**Aspect map:** [`editions/ASPECTS.md`](../editions/ASPECTS.md)
**Simulator research:** clay-borg `research/CB-RES-0010-game-aspects-and-design-space.md`
---
## Decision
Rules variations are **independent modules on named aspects** (design
dimensions), not only monolithic experiments. Each module can be measured
**alone** or in a **profile** (explicit combination).
| Aspect | Examples |
|--------|----------|
| `problem_stress` | none / flat_any_open / scoped |
| `attack_relief` | none / self_soothe_ge4 |
| `end_condition` | fixed_rounds_5 / hybrid_clear_collapse (proposed) |
| `problem_deal` | fixed_setup / pressure_deck (proposed) |
Full aspect inventory (including fixed-in-r0 dimensions): **ASPECTS.md**.
H1 becomes profile `h1` = flat + attack soothe.
H2 becomes profile `h2` = scoped only.
New work prefers new modules + profiles over `experiments/mega-bundle`.
**Terminology:** *aspect* replaces earlier *axis* in human docs; YAML field
is `aspect:`.
## Why
Maintainer: end-of-game, setup, dealing, stress-boosters should be
tryable alone and in combination. Monolithic H1/H2 hid that H1 mixed two
aspects and that end/deal work should not force a rewrite of stress routing.
## clay-borg
Resolve `profile` or `modules[]` → apply deltas in catalog **aspect**
order; record full module list in game state / replays. Evolve selection
UI and panels around **aspects × modules × profiles** (CB-RES-0010).

View file

@ -0,0 +1,35 @@
# SCN_02 re-tuned for mechanical distinctness
**Date:** 2026-08-09
**Source:** GROUND-RPT-0006 / ADHOC-2026-08-08-T02
clay-borg measured SCN_01 and SCN_02 as identical on suit and value at
every priority (only titles differed). That was not intentional.
## Change (SCN_02 only; titles kept)
| priority | was | now | title (unchanged) |
|---------:|-----|-----|-------------------|
| 0 Surface | Repair | Repair | Shared Task Left Undone |
| 1 | Clarify | **Change** | Different Standards |
| 2 | Boundary | **Clarify** | Invisible Workload |
| 3 | Repair | **Boundary** | Resentment Never Raised |
| 4 | Change | **Repair** | No Ownership Routine |
Point values **unchanged** (2/2/2/3/3). Thresholds unchanged.
## 2p suit multiset (Surface + H12)
| board | suits |
|-------|--------|
| SCN_01 | Repair, Clarify, Boundary |
| SCN_02 | Repair, **Change**, Clarify |
| SCN_03 | Boundary, Clarify, Repair |
| SCN_04 | Repair, Clarify, Repair (harder) |
SCN_02 is no longer a twin of SCN_01. Panels may treat four scenarios as
four mechanical boards again (within suit/value space).
Fiction note: “Different Standards” as **Change** reads as revising the
shared standard; “Resentment” as **Boundary** as needing a limit — light
theme stretch, acceptable for r0 playtest.

View file

@ -0,0 +1,171 @@
---
id: GROUND-RPT-0006
type: report
title: "clay-borg: all four Scenarios and all three Modes measured — modes change who wins, not whether the group survives"
domain: consumer
repo: ground-game
status: informational
owner: bernd
topic_slug: whynot
created: "2026-08-08"
extends: GROUND-WP-0003
---
# Boards and Modes measurement receipt (CB-EV-0033)
Upstream: clay-borg `evidence/CB-EV-0033-boards-and-modes.md`.
**Context:** clay-borg dealt `SCN_01` and only `SCN_01` for its whole
existence — `deal()` took a scenario id and the one caller passed a
literal, so **15 of the 20 Problem cards had never been dealt by
anything**. Fixed on our side; all four boards and all three modes now
run. 4 × 3 × 3 cells, 100 games each, two bots. Everything below is bots,
no felt play.
---
## 1. SCN_01 and SCN_02 are the same board — is that intended?
Identical suit **and** value at every priority. Every measured cell
matches exactly, at every seat band, under both bots.
A reskin is a legitimate choice and we are not calling this a defect. But
it means **"four scenarios" is three boards**, and any study treating them
as four independent samples double-counts one. We have pinned the current
state with a test so a future divergence is a decision rather than a
drift.
**Ask:** intended reskin, or did one deck get copied and not re-tuned?
---
## 2. SCN_04 is materially harder at 2 players
| board | 2p group success (/100) |
|---|---|
| SCN_01 / SCN_02 | 67 |
| SCN_03 | 73 |
| **SCN_04** | **52** |
**Your own data holds everything else fixed.** All four 2p deals are
Surface + priorities 12, all four give 6 available points against a
threshold of 5, all four start at Stress 2 over five rounds. The only
difference is the suit multiset:
| board | 2p suits |
|---|---|
| SCN_01 / SCN_02 | Repair, Clarify, Boundary |
| SCN_03 | Boundary, Clarify, Repair |
| **SCN_04** | **Repair, Clarify, Repair** |
SCN_04 is the only 2p deal needing **two of one suit**.
**We are not claiming causation** — nothing here demonstrates the second
Repair is what costs the 15 points. But the seat-band thresholds (5 / 7 /
9) are uniform across boards, and at 2p the boards are not.
**Ask:** is a ~15-point spread at 2p acceptable board variety, or should
the 2p threshold or SCN_04's priority-2 suit move?
---
## 3. Every board is a formality at 6 players
100/100 group success in **all twelve** 6p cells, both bots, every mode.
Same shape as F17. Reported, not acted on.
---
## 4. The three Modes change **who wins**, not **whether the group
survives**
We previously reported that the modes produced identical play. That was
**our instrument, not your game** — the bot never read the Mode card. We
built one that plays its seat's own objective and re-ran everything.
**Group success: unchanged in 34 of 36 cells.** (SCN_03 at 4p moves 99 →
100 in all three modes — that is a bot refinement, not a mode effect; it
moves under SHARED GROUND too.)
**Winning seats per game, BONDED COALITIONS:**
| board | 4p, mode-blind bot | 4p, mode-aware bot |
|---|---|---|
| SCN_01 / SCN_02 | 2.04 | **2.98** |
| SCN_03 | 2.12 | **3.29** |
| SCN_04 | 2.05 | **3.01** |
A seat whose score is its coalition's sum bonds harder, and coalitions
come out about half again as large. COMMON PROBLEM moves at 6p (1.10 →
1.17). Nothing else moves.
**Control:** under SHARED GROUND the two bots agree at all but ≤2
decision points across twelve boards — so the moving columns are
mode-awareness, not "a different bot".
**Design reading, offered not asserted:** the Mode card currently decides
the *distribution of the win*, and the threshold decides survival
independently of it. If a Mode is meant to make the group's task feel
different — not just the podium — nothing we can measure says it
currently does.
### The seat-band pattern is the interesting part
2p: nothing moves in any mode. 4p: the largest effect. 6p: **nothing**
under BONDED COALITIONS.
Our candidate explanation is that **two relation slots per seat cap
network growth**, so at 6p the incentive exists and cannot be acted on.
**This is untested.** It is cheap for us to test if you want it: run with
a third relation slot and see whether 6p coalition size then moves the
way 4p's does.
**Ask:** is the two-slot limit meant to bind this hard at 56 players?
---
## 5. Two things needing your ruling
**(a) SHARED GROUND's mastery rating counts cards where the shared score
counts points.** The Mode card reads *"All claimed Problem cards form one
shared score. … For a mastery rating, subtract 1 for each Blame token
still in play and 1 for each Denied Problem."* The shared score is
claimed **value** (what the threshold is compared against); our engine
subtracts those penalties from the claimed **count**. Both readings fit
the sentence and they differ on every game where a 3-point Problem is
claimed. We have not changed it — scoring is yours.
**(b) A package that adds a *file* is invisible to a consumer.**
`h2-scoped-problem-stress` ships `Rules_Text.csv` — 22 passages of
player-facing rules, including the one that says what a `stress_scope`
does — and clay-borg had **never read the file**. Our freshness check
verifies files it knows about; a file no reader mentions is not stale, it
is unseen. We have since read the passage we needed; the other 21 are
still unread.
**Ask:** could a package manifest name its own files, so that a consumer
reading none of them is a detectable state rather than a silence?
---
## Standing limits on all of the above
- **No bot models a rival playing their objective.** A competitive mode
in which nobody anticipates an opponent is a weak test of that mode.
- **Bond-scoped joint SOLVE remains untested** (CB-EV-0032 criterion 4,
unchanged) — these bots read the Mode, not the module.
- **No felt play.** All bots, every number.
---
## Ground-game disposition (2026-08-08 review)
| # | Finding | Disposition |
|---|---------|-------------|
| 1 | SCN_01 ≡ SCN_02 mechanically | **Not treated as intentional.** Fiction reskin only; three distinct boards, not four. Residual: re-tune SCN_02 suit and/or values (content workplan). |
| 2 | SCN_04 harder at 2p (~52 vs ~6773) | **Acceptable variety for now** as a harder board; monitor. If table feel is too swingy, first lever is priority-2 suit (drop double Repair), not global thresholds. |
| 3 | 6p 100% group success | **Known pattern** (F17 / difficulty line). Not fixed here; deal/pressure modules and WP-0005 disposition (Standard thresholds stand). |
| 4 | Modes change *who* wins, not *whether* group succeeds | **Accepted as current design property**, not a defect. Threshold = survival; Mode = distribution. Mode-aware bot was clay-borg instrument fix. |
| 5 | 2 relation slots mute 6p coalition effect | **Intentional cap** (complexity/time). Documented; third slot stays extension, not core r0. Optional clay-borg sensitivity run welcome. |
| 6 | Mastery: points vs card count | **RULED: points.** Shared score and mastery penalties use **point values**, not card count. Modes.csv clarified. |
| 7 | Package file manifest | **Accepted process ask.** Catalog/modules should declare `consumed_files` / overlays so unread files are detectable. Tracked under WP-0008 residual. |

View file

@ -0,0 +1,78 @@
---
id: GROUND-RPT-0004
type: report
title: "clay-borg: H1 measured — reaches unregulated seats; group success collapses"
domain: consumer
repo: ground-game
status: informational
owner: bernd
topic_slug: whynot
created: "2026-08-08"
extends: GROUND-WP-0006
---
# H1 measurement receipt (clay-borg CB-EV-0030 / CB-EV-0031)
Upstream: clay-borg `evidence/CB-EV-0030-h1-measured.md`,
`evidence/CB-EV-0031-a-seat-that-does-not-regulate.md`, hub message
2026-08-08. Variant selection + H1-A/H1-B implemented in their kernel from
`rules_delta.yaml`. Baseline `unchanged:` list asserted.
**Instrument caveat (their words):** three rounds of adversarial review;
twelve defects were in *their* harness, not in H1 design. Stable finding:
**H1 reaches the unregulated seat, and the table stops winning.** Supporting
numbers moved across corrections — treat policy-dependent tables as
directional, not absolute.
No felt-play. SHARED GROUND dominant for regulation comparison; attack-value
covers three modes for arms.
---
## Criteria §3.2 (design note)
| # | criterion | verdict |
|---|-----------|---------|
| 1 | DARVO arm rate non-trivial | **Policy-dependent.** 0 for greedy. **Met for unregulated `reactive`** (~1 arm/seat/game at 3p+). Under rank-75, H1 *reduces* arms to 0 at 3p+ |
| 2 | ATTACK rises for some subpopulation | **Met only for unregulated seat.** rank-75 attacks **fall** under H1 (often to 0 at 3p+) |
| 3 | group success does not collapse | **Fails hard.** Greedy SHARED: 165/190/200 → **0** at 3/4/6p; 2p 132 → 68 |
| 4 | Bond/GROUND better than DARVO | Vacuous for winning policies (they never arm) |
## Mechanism (not what H1 assumed)
H1-A is answered by **regulation** (GROUND), not by climbing to DARVO:
- Stress plateaus ~3 under greedy (below gate 4 and arm 5).
- Actions spent on stress hygiene → fewer SOLVEs → **solve-rate tax**.
- **H1-B never fires** under competent play (Stress never ≥4).
Seed-1 3p illustration: baseline clear board / success; H1 ends Stress 3,3,3 with 2 unclaimed and under threshold.
Tax scales with open board (harder at 3p+); intended DARVO effect does not.
## Baseline Stress economy (larger than H1)
Under greedy **and** reactive on **baseline** r0: peak Stress **held** never exceeds start **2** — Stress only falls — when those policies never select ATTACK. ATTACK appears to be the **sole inbound pressure** for those policies. That is a sharper account of RPT-0003 than “ATTACK never pays”: **the pressure ATTACK would answer never occurs** unless someone already attacks.
(Always-attack rank-95 *does* drive Stress under baseline — so the economy is reachable; just not by non-attacking competent play.)
## Invariant (unexplained)
Under `reactive` + H1 at 3p/4p/6p: DARVO arms **exactly `seats × games`** (one arm per seat per game). clay-borg does not explain it. H1-B disabled → arm count unchanged (withdrawn “H1-B suppresses attacker DARVO” story).
## Withdrawn by clay-borg
Story that H1-B suppresses DARVO in the attacker / concentrates it in the target — from a broken multi-preference policy.
## Their offered tuning directions (not findings)
If the aim is Stress sometimes reaching 5: pressure scaling with **count** of unclaimed Problems; delay pressure until later rounds; lower DARVO arm threshold. Each is a rules choice for ground-game.
---
## Ground-game reading (for WP-0006-T04/T05)
1. **Do not promote H1 as packaged** into baseline — criterion 3 fails.
2. **Direction is right:** Problem → Stress coupling addresses the real gap (inbound pressure only via ATTACK).
3. **Shape/magnitude is wrong:** flat +1/end is a board-clear tax that competent players absorb with GROUND before DARVO.
4. **Next experiment** should change *how* pressure is applied (scaled/delayed/targeted), not only add status stress — though Idea 2 last-place (semi) remains a candidate **H2** per design note §6.

View file

@ -0,0 +1,30 @@
---
id: GROUND-RPT-0005
type: report
title: "clay-borg: H2 measured — scoping works; bond SOLVE untested by bots"
domain: consumer
repo: ground-game
status: informational
owner: bernd
topic_slug: whynot
created: "2026-08-08"
extends: GROUND-WP-0007
---
# H2 measurement receipt (CB-EV-0032)
Upstream: clay-borg `evidence/CB-EV-0032-h2-measured.md`, hub 2026-08-08.
| # | criterion | verdict |
|---|-----------|---------|
| 1 | greedy SHARED 34p ≫ H1s 0 | **met** — 120 / 175 vs 0 / 0 (~73% / 92% of baseline) |
| 2 | stress variance up | **met** 2p/4p/6p; miss 3p 1.50 vs baseline 1.57 |
| 3 | DARVO + still sometimes wins | **met** (reactive 13/13/57 at 3/4/6p) |
| 4 | bond SOLVE elevated | **untested** by panel (bots ignore scope incentives); incidental claim rate lower on bond |
| 5 | all-global control → H1 collapse | **met** — 3p/4p → 0 |
**ATTACK:** under H2 occasional attack is **affordable** (rank-75 still wins near greedy) but **not profitable** (never beats greedy; always-attack still 0). F17 still open as design judgement.
**Instrument:** `with_variant()` required for owner assignment; bare `state.variant =` left H2 inert — fixed on their side.
No felt-play. Bond joint-motivation needs a table or multi-agent-aware policy.

View file

@ -0,0 +1,116 @@
---
id: GROUND-RPT-0007
type: report
title: "clay-borg: correction — H1-B was never measured, and it does something"
domain: consumer
repo: ground-game
status: informational
owner: bernd
topic_slug: whynot
created: "2026-08-09"
extends: GROUND-WP-0006
---
# Correction to GROUND-RPT-0004 (H1 measured)
Upstream: clay-borg `specs/FindingRegister.md` F31,
`games/ground/examples/module-panel.rs`.
**This is a correction we owe you, not a new result we chose to send.**
---
## 1. What we got wrong
We reported H1 as measured and rejected. **Half of it was never
measured.**
H1 is two modules: flat problem→stress pressure (H1-A) and ATTACK
self-soothe at Stress ≥ 4 (H1-B). Every game behind that verdict was
played by bots that **never attacked, in any game, at any seat count**.
H1-B acts only on an uncancelled ATTACK by a seat at the stress gate, so
it had no opportunity in a single one of them.
**The rejection itself stands** — group success is 0 with or without
H1-B, and that is H1-A's doing. But *"H1-B does nothing"* was never
established, and is now known to be false.
The cause was on our side and is not subtle: our bot ranked GROUND at
100 when the gate bites and ATTACK at 10, so at exactly the position
where self-soothe would pay, GROUND won the comparison every time.
---
## 2. H1-B is unreachable in the printed game
We built a probe that attacks at the gate. **Selected on its own,
`attack_relief.self_soothe_ge4` still never fires.**
Peak Stress in the baseline never exceeds its starting 2. The gate is at
4. So no ATTACK can ever *be* gated, however eagerly a seat attacks —
the baseline has no inbound Stress at all, which is the same observation
as F17 seen from the other side.
**A module can be unreachable because of an aspect it does not name.**
`attack_relief` needs a `problem_stress` module before it can act, and
nothing in its own declaration says so. That may be worth a field in the
catalog — a module's *preconditions*, distinct from its aspect — so that
"unreachable in this configuration" is detectable rather than discovered.
---
## 3. Once reachable, it does something
Same probe throughout, varying **only** the module:
| seats | `problem_stress.scoped` | `+ attack_relief.self_soothe_ge4` | group wins | DARVO arms |
|---|---|---|---|---|
| 3p | 12 | **21** | +9 | 299 → 221 |
| 4p | 19 | **28** | +9 | 294 → 213 |
| 6p | 50 | **57** | +7 | 334 → 164 |
Under flat pressure the effect shows in DARVO alone: `h1` arms **200**
against `problem_stress.flat_any_open`'s 300 / 400 / 600, with group wins
0 in both.
**Read this as the conditional it is.** *Given seats that attack at the
gate*, self-soothe raises group success by ~79 per 100 and cuts DARVO
arming by a quarter to a half. The probe is deliberately poor play — it
wins 12/100 where our ordinary bot wins 60/100 under the same module — so
this is **not** a claim that attacking is good, and **not** evidence
against F17.
**Sensitivity:** vary only the ATTACK rank. At 10 and at +55 the module
never fires; at 110 it fires in every game. Nothing about the module
changed — only whether any seat gave it a turn.
---
## 4. What we are not saying
- **Not** that H1 should be reconsidered. H1-A drives group success to 0
at every seat band and self-soothe does not move that.
- **Not** that ATTACK is good play.
- **Not** that these numbers describe a table. Every one is bots, and the
seats that produce them play badly on purpose.
**Ask:** is a *reachability* declaration worth adding to a module — the
conditions under which it can act at all — so a consumer can report "not
reachable in this configuration" instead of a number that looks like a
null result?
---
## 5. Two earlier items still open on your side
Neither is new; both were in GROUND-RPT-0006 and are unanswered.
**(a) The competitive modes are weakly tested.** No bot of ours models a
*rival* playing their objective. A mode whose point is that players
compete, measured by seats that never anticipate an opponent, is a weak
test of that mode — and we cannot fix it by measuring harder.
**(b) `problem_stress.scoped` cannot reach a decision in round one.**
Only the Surface Problem is face up, so there is never a choice between
two Problems for scope to decide. Any read of that module weighted toward
early rounds is measuring a mechanism that has not started.

View file

@ -0,0 +1,65 @@
---
id: ADHOC-2026-08-08
type: adhoc
title: "RPT-0006 boards/modes disposition and small rules clarifications"
domain: consumer
repo: ground-game
status: finished
owner: grok
created: "2026-08-08"
updated: "2026-08-09"
state_hub_workstream_id: "3a4e45a3-2fea-49b7-8104-feb9ec1b521b"
---
# Ad hoc from clay-borg boards & modes panel (GROUND-RPT-0006)
**Finished 2026-08-09.**
## Task: clarify SHARED GROUND mastery uses points
```task
id: ADHOC-2026-08-08-T01
status: done
priority: high
state_hub_task_id: "df9fe896-9461-41bb-aab4-620f6c0fdf7d"
```
**Done 2026-08-08.** Modes.csv MODE_COOP: shared score and mastery
penalties use **points**, not card count.
## Task: re-tune SCN_02 (was mechanical twin of SCN_01)
```task
id: ADHOC-2026-08-08-T02
status: done
priority: medium
state_hub_task_id: "2eb85dc8-45ff-4189-8fd2-d4ec8fe5f784"
```
**Done 2026-08-09.** SCN_02 suits retuned; values/titles kept. Note:
[`history/260809-scn02-mechanical-distinct.md`](../history/260809-scn02-mechanical-distinct.md).
Scoped module `Problems.csv` rebuilt to match. clay-borg notified to
re-vendor / re-run twin pin.
## Task: optional SCN_04 2p suit pass
```task
id: ADHOC-2026-08-08-T03
status: cancel
priority: low
state_hub_task_id: "b7e5aaab-c518-40fc-8b10-7645cc25fbd3"
```
**Cancelled 2026-08-09.** Not requested; SCN_04 stays the harder 2p board
by design (double Repair). Reopen only if table feel complains.
## Task: consumed_files on modules (process)
```task
id: ADHOC-2026-08-08-T04
status: done
priority: medium
state_hub_task_id: "09787097-7677-4422-b61f-9930646bbff3"
```
**Done 2026-08-08.** Example on `problem_stress.scoped` + CATALOG rule.

View file

@ -9,7 +9,7 @@ owner: codex
topic_slug: whynot
created: "2026-07-31"
updated: "2026-08-03"
state_hub_workstream_id: "1e356c32-3a04-43a0-aa02-43cc18cca60a"
state_hub_workstream_id: "221583ba-992a-5ca1-a519-6b100ea90157"
---
# Bootstrap State Hub integration
@ -22,7 +22,7 @@ Product repo for GROUND — A Game of Bonds and Rivalry (DARVO Edition): playtes
id: GROUND-WP-0001-T01
status: done
priority: high
state_hub_task_id: "bde46494-9425-4f1c-8b5d-f01fe705bf9a"
state_hub_task_id: "5a2dd899-1117-5981-ae15-3527c26772e5"
```
Review `INTENT.md`, `SCOPE.md`, `AGENTS.md`, and `.custodian-brief.md`.
@ -47,7 +47,7 @@ rely on before the scope sentence can be written honestly.
id: GROUND-WP-0001-T02
status: done
priority: high
state_hub_task_id: "d4dbf142-6a5b-4631-923e-9e761f462900"
state_hub_task_id: "481611a1-38bf-586b-92de-9c57afa25f3a"
```
Identify the repo's install, test, lint, build, and run commands. Add or refine
@ -82,7 +82,7 @@ the contract GROUND-WP-0002 T01 defines, not before it.
id: GROUND-WP-0001-T03
status: done
priority: medium
state_hub_task_id: "7912f74a-1ae3-40c6-a65d-28221beb0f40"
state_hub_task_id: "ab005402-9c7e-5425-be54-53e7eb693ec3"
```
Create the first implementation workplan for the repository's most important

View file

@ -9,7 +9,7 @@ owner: bernd
topic_slug: whynot
created: "2026-08-03"
updated: "2026-08-03"
state_hub_workstream_id: "d8fc3a69-a5ae-4f6e-b4fc-b07d1ff9c783"
state_hub_workstream_id: "b53c9e6d-62b7-5074-a359-43e054c5f989"
---
# Rulings the engine is blocked on
@ -61,7 +61,7 @@ dissolve without anyone changing a rule.
id: GROUND-WP-0002-T01
status: done
priority: high
state_hub_task_id: "431cca12-e6d9-4eba-9360-f4f13ed263c1"
state_hub_task_id: "122c4b64-66c3-5b05-8d03-62ab372f62a0"
```
State whether `editions/ground-darvo-r0/` is the **authoritative** source
@ -106,7 +106,7 @@ clay-borg.
id: GROUND-WP-0002-T02
status: done
priority: high
state_hub_task_id: "895573ac-d7b9-4160-a118-5bc8866c28c8"
state_hub_task_id: "795a2fdd-d29b-523e-a85a-50bfb9eff260"
```
Three related questions, all raised by play, all currently decided by the
@ -147,7 +147,7 @@ is meant to learn from the waste.
id: GROUND-WP-0002-T05
status: done
priority: high
state_hub_task_id: "e1d6a548-dedf-473a-9ebd-a2e3a286d510"
state_hub_task_id: "5be3c879-96ef-518e-9cf9-e9863497db57"
```
**This is the oldest item and it has never been read.** `clay-borg`
@ -197,7 +197,7 @@ Answer per item: **confirm**, or **correct with the ruling**.
id: GROUND-WP-0002-T03
status: done
priority: medium
state_hub_task_id: "52cc157f-8fbd-469d-9da7-a96f1c60b654"
state_hub_task_id: "572dfbe3-2a8a-58f7-8d00-5de00cea4028"
```
Six engine scenarios are tagged `provisional: true` with
@ -235,7 +235,7 @@ T01 may dissolve it.
id: GROUND-WP-0002-T04
status: done
priority: medium
state_hub_task_id: "6c55eb56-22dc-4ee2-ac1a-4ced0dedfab9"
state_hub_task_id: "107b3b24-4e6d-58ca-98f7-ca2b5a6ded5f"
```
Both scoring modes are implemented and neither has been played through a

View file

@ -4,14 +4,14 @@ type: workplan
title: "Playtest GR-E03 semi-coop and GR-E04 coalitions to end of game"
domain: consumer
repo: ground-game
status: ready
status: finished
owner: bernd
topic_slug: whynot
created: "2026-08-03"
updated: "2026-08-03"
updated: "2026-08-08"
origin: residual
origin_ref: GROUND-WP-0002
state_hub_workstream_id: "998e00a0-cdc8-4e1d-879b-7df0858d26dc"
state_hub_workstream_id: "a6eb1807-3e79-588f-909c-61c002eb30d5"
---
# Playtest semi-coop and coalitions to the end
@ -21,8 +21,35 @@ state_hub_workstream_id: "998e00a0-cdc8-4e1d-879b-7df0858d26dc"
missing is a full game — human table or full engine playout — through
Round 5 and scoring.
Nothing here changes the kernel unless play exposes a new underdetermined
point; if it does, open a new rulings workplan rather than silent defaults.
**Finished 2026-08-08** on the engine path (RPT-0003 + notes). Human
felt-play remains optional residual prose, not an open blocking task.
## Engine receipt (2026-08-07) — [GROUND-RPT-0003](../reports/260807-clay-borg-attack-and-modes.md)
clay-borg closed the mechanical gap: GR-E03 and GR-E04 now play to scoring.
Root cause was theirs (`cb-play` always forced SHARED GROUND), not the modes.
| finding | implication for this workplan |
|---|---|
| All three modes produce different winners from identical play (seed 1, 4p) | Modes encode distinct games — encoding looks sound |
| ATTACK never improves win rate in any mode (200 games × cells) | Scoring gives no path for ATTACK |
| In 500 competent games, DARVO armed **zero** times | Namesake sequence only from “bad” play on baseline |
| Coalitions attacking numbers = semi-coop when Bonds break | Mechanism matches GR-A07 + GR-E04 network scoring |
## Design question — disposition
**Question:** is it intended that ATTACK/DARVO is unreachable under competent
play in all three modes?
**Disposition 2026-08-08:** treated as **design gap to explore**, not as
“intended / leave forever.” Experimental line:
1. [GROUND-WP-0006](GROUND-WP-0006-h1-problem-stress-experiment.md) — H1 flat
pressure — **reject-as-baseline** (group wins collapse).
2. [GROUND-WP-0007](GROUND-WP-0007-h2-scoped-problem-stress.md) — H2 scoped
stress — **in flight** (clay-borg).
Do not reopen WP-0002 for this.
## Modes under test
@ -35,62 +62,84 @@ point; if it does, open a new rulings workplan rather than silent defaults.
```task
id: GROUND-WP-0003-T01
status: todo
status: done
priority: high
state_hub_task_id: "dab51b0b-4202-4517-a0a4-e436eef8282c"
state_hub_task_id: "1baa22ee-5cc2-5168-9f55-14375dfacfe5"
```
Play or simulate one complete 2-player game under MODE_SEMI (threshold 5).
Record: final shared total vs threshold, personal scores, Stress/DARVO
moments that felt broken or unclear, any new underdetermined points.
**Done 2026-08-08 (engine).** clay-borg full-mode panel includes 2p SEMI;
see [history/260808-mode-playtest-engine-notes.md](../history/260808-mode-playtest-engine-notes.md).
## Task: 4p semi-coop full game
```task
id: GROUND-WP-0003-T02
status: todo
status: done
priority: medium
state_hub_task_id: "19ec0937-a001-4819-9916-0c87c9e92993"
state_hub_task_id: "4407f5e5-4389-5871-89e2-bc99ab8b2700"
```
Same checklist at 34p (threshold 7). Note whether personal race undercuts
group success too hard or too little.
**Done 2026-08-08 (engine).** 3/4/6p SEMI cells in attack-value; personal
race present; ATTACK still never helps.
## Task: 2p coalitions full game
```task
id: GROUND-WP-0003-T03
status: todo
status: done
priority: high
state_hub_task_id: "16c36d63-fc8c-45b7-a423-aec832a616f9"
state_hub_task_id: "bd039513-1eb5-504c-9a14-1c005570fa22"
```
Complete 2p game under MODE_COALITION. At 2p a Bond makes one coalition of
two; no Bond is two solo coalitions. Check that end scoring is intelligible.
**Done 2026-08-08 (engine).** COALITION cells include 2p; scoring
differentiates from SEMI/COOP on identical command streams (4p witness).
## Task: 4p coalitions full game
```task
id: GROUND-WP-0003-T04
status: todo
status: done
priority: medium
state_hub_task_id: "9a048533-f572-48cd-b10e-220982016d72"
state_hub_task_id: "ed8df52d-ce5e-53aa-b1c8-6b482980f158"
```
Complete 34p game under MODE_COALITION. Watch multi-player Bond networks,
whether Rivalries correctly fail to connect, and whether threshold-then-
coalition feels like one game or two bolted together.
**Done 2026-08-08 (engine).** Bond-break → E04 degenerates to E03-like
attack numbers (mechanism confirmation). “Feels like one game” remains
optional human residual.
## Task: write playtest notes back into repo
```task
id: GROUND-WP-0003-T05
status: todo
status: done
priority: medium
state_hub_task_id: "0b5d2785-33bf-435d-8e4e-f76b185098ab"
state_hub_task_id: "a551013a-fda3-50bf-9106-0320c0ce2446"
```
For each completed run, leave a short note under `history/` (or append to
this workplan) with date, mode, player count, outcome, and any follow-up
ruling needs. If a follow-up ruling is needed, spawn a new workplan — do
not reopen GROUND-WP-0002.
**Done 2026-08-08.** Notes:
[history/260808-mode-playtest-engine-notes.md](../history/260808-mode-playtest-engine-notes.md).
Follow-up design work lives in WP-0007 (H2), not a reopened rulings WP.
## Residuals
- Optional human table sessions (felt texture only).
- ATTACK/DARVO relevance → WP-0007 (active).

View file

@ -11,7 +11,7 @@ created: "2026-08-03"
updated: "2026-08-04"
origin: correction
origin_ref: GROUND-WP-0002
state_hub_workstream_id: "067434eb-18cc-472f-b4ea-7dd16555629f"
state_hub_workstream_id: "5cc37328-fb8a-5e4f-8d45-eeb806be2359"
---
# The GR-E01 ruling was made on a false premise, and clay-borg supplied it
@ -46,7 +46,7 @@ in clay-borg (stand-in / wrong deal depth).
id: GROUND-WP-0004-T01
status: done
priority: high
state_hub_task_id: "dcd7da12-be3a-4289-8d21-1924401a1259"
state_hub_task_id: "073dc0d9-c48b-5cb2-93f0-0931cdec9999"
```
### RULED 2026-08-04 (maintainer confirmed direction)
@ -80,7 +80,7 @@ state_hub_task_id: "dcd7da12-be3a-4289-8d21-1924401a1259"
id: GROUND-WP-0004-T02
status: done
priority: medium
state_hub_task_id: "bd1c7a7d-36a2-4bf4-ab42-8e5489706df4"
state_hub_task_id: "3b95edc7-0e0e-519a-a1b0-4bc4539e4804"
```
### RULED 2026-08-04 — process hygiene

View file

@ -4,48 +4,67 @@ type: workplan
title: "Difficulty tiers (threshold ratio) and optional Pressure dial"
domain: consumer
repo: ground-game
status: active
status: finished
owner: bernd
topic_slug: whynot
created: "2026-08-04"
updated: "2026-08-04"
updated: "2026-08-08"
origin: residual
origin_ref: GROUND-WP-0004
state_hub_workstream_id: "e6a26af9-f58d-44b4-89fd-bcb5ecba3e0f"
state_hub_workstream_id: "7a91ccc8-fe04-5831-b427-677b2a49a972"
---
# Optional difficulty control after GR-E01 arithmetic is settled
**Origin residual of GROUND-WP-0004.** Arithmetic winability is closed:
Surface + hidden `1..k` → available 6/9/12; Standard thresholds 5/7/9.
Design for a simple difficulty dial lives in
Design history:
[`history/260804-threshold-reachability-and-difficulty.md`](../history/260804-threshold-reachability-and-difficulty.md).
Do **not** start this until playtest on the correct deal shows a need for
Learning / Mastery (or solo) tuning. Standard is already shippable.
**Finished 2026-08-08.** No named Learning/Mastery **threshold** tiers for
now. Pressure / difficulty variation lives on modular **aspects** (see
[ASPECTS.md](../editions/ASPECTS.md) `difficulty_accessibility` and
`problem_stress` / `problem_deal`).
## Baseline receipt — [GROUND-RPT-0002](../reports/260805-clay-borg-difficulty.md)
clay-borg proposed **no threshold changes**. Spread 72100 points means
single-policy win rate is not difficulty. 2p tightest; 56p play-matters-more.
## Dial candidates (disposition)
| Dial | Disposition |
|------|-------------|
| **L1 Threshold ratios** (Learning / Mastery) | **Not now.** No measured need; RPT-0002 against moving 5/7/9. |
| **L2 Scope / composition** | **Preferred.** `problem_stress.scoped` measured (RPT-0005); further dials via `problem_deal` and profiles under [WP-0008](GROUND-WP-0008-composable-rules-modules.md). |
| **Flat global stress** | **Rejected** as difficulty lever (H1 / RPT-0004). |
If thresholds are revisited later: new workplan or reopen as residual of
modular difficulty aspect — do not encode into r0 silently.
## Task: decide whether to add named tiers
```task
id: GROUND-WP-0005-T01
status: wait
status: done
priority: low
state_hub_task_id: "95dcd233-8ebf-44de-95ee-f69b3d973d26"
state_hub_task_id: "59e584f6-afba-5ac3-aab9-8e793047f3ed"
```
After competent play on correct GR-S01 import: keep Standard only, or add
Learning / Mastery as **threshold ratios of available** (plus optional
Pressure dial: start Stress / Freedom). If yes, integrate as a third setup
axis (Difficulty card) without changing Mode scoring.
**RULED 2026-08-08:** Keep **Standard thresholds only** (5 / 7 / 9). Do
**not** add named Learning/Mastery threshold-ratio tiers at this time.
Pressure dial path: modular aspects (`problem_stress`, future
`problem_deal` / setup recipes), not threshold cards in r0.
## Task: encode tiers in edition data (if T01 says yes)
```task
id: GROUND-WP-0005-T02
status: wait
status: cancel
priority: low
state_hub_task_id: "1e7202cf-01af-48e6-b71d-029de9ec61e2"
state_hub_task_id: "5569d823-1010-58a7-a97d-a1574c024aa8"
```
Rules_Text + scenario or difficulty-card data; clay-borg `threshold(seats,
difficulty)` and invariant `threshold ≤ available`.
**Cancelled 2026-08-08.** T01 said no named threshold tiers. Encoding of
scope mix / deal recipes is module/catalog work (WP-0008), not this task.

View file

@ -4,14 +4,14 @@ type: workplan
title: "H1 experiment: problem pressure and high-stress ATTACK self-soothe"
domain: consumer
repo: ground-game
status: active
status: finished
owner: bernd
topic_slug: whynot
created: "2026-08-07"
updated: "2026-08-08"
origin: residual
origin_ref: GROUND-WP-0003
state_hub_workstream_id: "0056c739-e31a-459c-bf5c-d67a9bd9b596"
state_hub_workstream_id: "35d47980-4092-55a6-9ba8-4b67c0dc4f18"
---
# H1 — measure whether Stress coupling restores ATTACK/DARVO relevance
@ -25,9 +25,9 @@ Design challenge and hypothesis:
**Catalog id:** `h1-problem-stress` (selectable; not baseline).
**Measurement:** [GROUND-RPT-0004](../reports/260808-clay-borg-h1-measured.md).
Do **not** merge H1 into `ground-darvo-r0` from this workplan. Catalog
`decision: reject-as-baseline` recorded 2026-08-08 (agent recommendation
pending maintainer confirm on T05).
**Finished 2026-08-08.** H1 packaged, measured, **reject-as-baseline**.
Successor residual: [GROUND-WP-0007](GROUND-WP-0007-h2-scoped-problem-stress.md).
Package stays in catalog for regression A/B — do not delete.
## Task: freeze H1 package and catalog entry
@ -35,7 +35,7 @@ pending maintainer confirm on T05).
id: GROUND-WP-0006-T01
status: done
priority: high
state_hub_task_id: "183e5fef-d350-434f-8ebb-09c8a43e224a"
state_hub_task_id: "9cc1d6a2-ddb9-5d26-a55c-c61242cb520d"
```
Land experiment directory, `rules_delta.yaml`, `editions/catalog.yaml` +
@ -49,7 +49,7 @@ Land experiment directory, `rules_delta.yaml`, `editions/catalog.yaml` +
id: GROUND-WP-0006-T02
status: done
priority: high
state_hub_task_id: "20ea00ea-c196-4aab-982b-12d5ea79b258"
state_hub_task_id: "1944fdcb-6086-5398-a2e1-2defea01b177"
```
Message clay-borg with: catalog path, `variant_id: h1-problem-stress`,
@ -64,9 +64,9 @@ arm-rate report against H1 vs baseline.
```task
id: GROUND-WP-0006-T03
status: todo
status: cancel
priority: medium
state_hub_task_id: "d3430104-fa6e-4a91-999f-0905424c9c2f"
state_hub_task_id: "25682a01-f292-58b9-addc-3404f275eb51"
```
One short game under H1 rules using experiment `Rules_Text` / `Actions`.
@ -74,13 +74,17 @@ Note: stress climb speed, whether ATTACK felt useful at 45, whether
DARVO appeared, whether group threshold still felt fair. Append notes
under `history/` or this workplan.
**Cancelled 2026-08-08.** H1 rejected as baseline; engine measurement
already showed group collapse. Felt-play effort moves to H2
(GROUND-WP-0007-T03) if needed.
## Task: record measurement and catalog utility
```task
id: GROUND-WP-0006-T04
status: done
priority: high
state_hub_task_id: "a6d90fa8-1b95-4856-9642-851d0b0f2ff4"
state_hub_task_id: "050491b8-b62d-52a0-927b-cd1e7ecae1ef"
```
When clay-borg (or table + engine) results exist: update
@ -96,9 +100,9 @@ Package remains `selectable: true` for regression A/B.
```task
id: GROUND-WP-0006-T05
status: wait
status: done
priority: medium
state_hub_task_id: "40e74ec4-c006-4411-9259-6277371b2601"
state_hub_task_id: "c0da8011-2791-50f2-b5e1-d17ec75b24ca"
```
Maintainer decision from criteria in the design note §3.2. If reject or
@ -106,25 +110,13 @@ under-deliver: spawn H2 (e.g. last-place status stress) as a **new**
experiment package, not an in-place mutation of H1 without a new
`variant_id`.
**Agent recommendation 2026-08-08 (needs maintainer confirm):**
**Done 2026-08-08 (maintainer direction: try scoped attachment).**
| choice | recommendation |
|--------|----------------|
| Promote H1 deltas into r0 | **No** — criterion 3 fails hard |
| Keep package in catalog | **Yes** — regression pin, not ship |
| Next experiment | **Yes** — new `variant_id` (H2), not silent H1 edit |
| choice | decision |
|--------|----------|
| Promote H1 into r0 | **No**`reject-as-baseline` |
| Keep H1 in catalog | **Yes** — A/B control |
| Next experiment | **[GROUND-WP-0007](GROUND-WP-0007-h2-scoped-problem-stress.md)** — `h2-scoped-problem-stress` (personal / bond / global) |
**H2 shape candidates** (pick one or combine carefully):
1. **Pressure form:** +Stress **per** unclaimed Problem, or only from
Round 3+, or only if ≥2 unclaimed — so tax does not force full clear
every round before SOLVE bandwidth exists.
2. **Who pays:** not always everyone — e.g. Lead, or seats with 0 claims
this game, or last place (semi Idea 2).
3. **Keep or drop H1-B:** H1-B never fired under competent play; either
drop for H2 clarity or lower the self-soothe gate (Stress ≥3) so it is
testable.
4. **Do not** only stack last-place stress on top of flat H1-A without
fixing the solve-rate tax first.
Confirm T05 → close WP-0006 or spawn H2 workplan.
Bond scope kept because bonded players share stress **and** joint SOLVE
incentive. H1-B not stacked into H2.

View file

@ -4,15 +4,14 @@ type: workplan
title: "H2 experiment: scoped problem stress (personal / bond / global)"
domain: consumer
repo: ground-game
status: active
status: finished
owner: bernd
topic_slug: whynot
created: "2026-08-08"
updated: "2026-08-08"
# measurement: GROUND-RPT-0005
origin: residual
origin_ref: GROUND-WP-0006
state_hub_workstream_id: "6a72a7c3-b408-4f3a-9f15-bf204e52653d"
state_hub_workstream_id: "9ed6acaa-50e2-5b2d-987a-d53ebbc3aa8e"
---
# H2 — route problem stress by scope; measure bond-network incentive
@ -21,12 +20,14 @@ state_hub_workstream_id: "6a72a7c3-b408-4f3a-9f15-bf204e52653d"
(H1 reject-as-baseline). Design:
[`history/260808-h2-scoped-problem-stress.md`](../history/260808-h2-scoped-problem-stress.md).
**Package:** [`editions/experiments/h2-scoped-problem-stress/`](../editions/experiments/h2-scoped-problem-stress/)
**Catalog id:** `h2-scoped-problem-stress`
**Base:** `ground-darvo-r0` (do **not** stack H1-A/H1-B).
**Module (preferred):** `problem_stress.scoped`
**Legacy experiment:** `h2-scoped-problem-stress` / profile `h2`
**Measurement:** [GROUND-RPT-0005](../reports/260808-clay-borg-h2-measured.md)
Bond-scope intent: bonded seats share End stress on that card, so the
network is jointly incentivised to SOLVE it (any seat may still SOLVE).
**Finished 2026-08-08.** Scoped routing **kept as experiment module**; not
promoted into baseline `ground-darvo-r0` yet. Follow-ons are **other
aspects** (end, deal) under [WP-0008](GROUND-WP-0008-composable-rules-modules.md),
not silent H2 edits.
## Task: freeze H2 package and catalog entry
@ -34,12 +35,9 @@ network is jointly incentivised to SOLVE it (any seat may still SOLVE).
id: GROUND-WP-0007-T01
status: done
priority: high
state_hub_task_id: "8e492c40-f0d2-4b26-990d-c01e87f861e5"
state_hub_task_id: "2f197073-ed12-56e5-a3f5-21cbc95ff485"
```
Land experiment directory, `rules_delta.yaml`, catalog row, design note.
Baseline r0 and H1 package untouched (H1 stays reject-as-baseline control).
**Done 2026-08-08.**
## Task: request clay-borg implementation and panel
@ -48,30 +46,23 @@ Baseline r0 and H1 package untouched (H1 stays reject-as-baseline control).
id: GROUND-WP-0007-T02
status: done
priority: high
state_hub_task_id: "4b33a9ac-5b97-488f-bf0e-3a352053d1b0"
state_hub_task_id: "4f701446-edba-513b-9b76-19466960003a"
```
Message clay-borg: select `h2-scoped-problem-stress`; implement H2-SCOPE,
H2-OWN, H2-A, H2-SOLVE; **exclude** H1 deltas. Re-run attack-value /
regulation-style panel vs `ground-darvo-r0` and optionally `h1-problem-stress`.
Ask for: group win rates, stress variance (maxmin), DARVO arm rates by
policy, and if cheap **SOLVE rate / time-open on bond-scoped vs personal**
cards under Bonded tables.
**Done 2026-08-08.** Hub message to clay-borg-custodian requesting panel.
**Done 2026-08-08.**
## Task: human table smoke (optional)
```task
id: GROUND-WP-0007-T03
status: todo
status: cancel
priority: medium
state_hub_task_id: "116be9c8-d0e0-4da7-b9e4-15c531fff629"
state_hub_task_id: "30c01c7f-b915-572a-a8a1-f003677f4d7d"
```
2p (no bond card) and 34p (bond card in play). Note: does Bond feel like
shared liability worth clearing; does personal stress create asymmetric
DARVO without whole-table freeze.
**Cancelled 2026-08-08.** Bond joint-SOLVE still needs a table or
scope-aware bots, but that is residual product playtest — not blocking
module keep. Prefer clay-borg aspect integration + later optional table.
## Task: record measurement and catalog utility
@ -79,30 +70,27 @@ DARVO without whole-table freeze.
id: GROUND-WP-0007-T04
status: done
priority: high
state_hub_task_id: "b26e457e-fa2b-466c-8fb4-3b2cc4ca86db"
state_hub_task_id: "6676133a-36e9-52e6-928d-666e389f8609"
```
Update catalog `status` / `utility_estimate` / `decision` from results.
File report under `reports/` if clay-borg sends one.
**Done 2026-08-08.** [GROUND-RPT-0005](../reports/260808-clay-borg-h2-measured.md);
catalog `measured` / `keep-as-experiment` (not promote yet — deal & pacing
open questions).
**Done 2026-08-08.** RPT-0005; catalog `measured` / `keep-as-experiment`.
## Task: decide promote / reject / H3
```task
id: GROUND-WP-0007-T05
status: wait
status: done
priority: medium
state_hub_task_id: "46118988-9421-40ba-812b-46f8b15f8209"
state_hub_task_id: "e7636d0c-f1f4-540e-becf-648521bc3081"
```
Maintainer decision. Options: promote scopes into r1 design; reject;
tune deal mix (difficulty dial); add ATTACK self-soothe only if seats
reach ≥4 and projection is still dead.
**RULED 2026-08-08:**
**2026-08-08 interim:** Keep H2 stress routing. Do **not** promote until
deal influx / end conditions / sequence salience are decided (see
session design notes). Bond SOLVE incentive still needs table or
scope-aware bots.
| choice | decision |
|--------|----------|
| Promote into `ground-darvo-r0` now | **No** — wait for modular end/deal experiments and aspect-based selection maturity |
| Keep `problem_stress.scoped` | **Yes**`keep-as-experiment`; candidate for future r1 default on that aspect |
| Reject scoped idea | **No** — RPT-0005 met core criteria; scoping is the mechanism |
| Next work | **Other aspects as independent modules** (WP-0008), not monolithic H3 |
Profile `h2` remains the name for “only scoped stress on defaults.”

View file

@ -0,0 +1,122 @@
---
id: GROUND-WP-0008
type: workplan
title: "Composable rules modules catalog (schema 2)"
domain: consumer
repo: ground-game
status: finished
owner: bernd
topic_slug: whynot
created: "2026-08-08"
updated: "2026-08-08"
origin: residual
origin_ref: GROUND-WP-0007
state_hub_workstream_id: "b365be0e-ef94-553e-98f2-f50b5dac754c"
---
# Independent modules + combinable profiles (by **aspect**)
**Finished 2026-08-08.** ground-game catalog schema 2, aspect map, modules,
profiles, and ready-for-implement packages are **landed**. Simulator
adoption and multi-aspect panels live on **clay-borg** (CB-WP-0048 /
CB-RES-0010), not as open tasks here.
**Design:** [`history/260808-modular-variants.md`](../history/260808-modular-variants.md)
**Contract:** [`editions/CATALOG.md`](../editions/CATALOG.md)
**Aspect map:** [`editions/ASPECTS.md`](../editions/ASPECTS.md)
**Simulator digest:** clay-borg `research/CB-RES-0010-game-aspects-and-design-space.md`
Terminology: **aspect** (not axis) for each design dimension.
## Delivered (this repo)
| Artifact | Role |
|----------|------|
| `editions/catalog.yaml` schema 2 | aspects, modules, profiles, legacy map |
| `editions/CATALOG.md` | selection + `consumed_files` rule |
| `editions/ASPECTS.md` | full design-space inventory |
| `editions/modules/**` | defaults + measured + ready-for-implement |
| profiles `h1`, `h2`, `scoped_plus_*` | named compositions |
| CB-RES-0010 (clay-borg) | research handoff for design environment |
### Modules by status (at finish)
| module_id | status |
|-----------|--------|
| `problem_stress.none` / `flat_any_open` / `scoped` | baseline-default / measured-reject / measured-keep |
| `attack_relief.none` / `self_soothe_ge4` | baseline-default / measured-as-combo |
| `end_condition.fixed_rounds_5` / `hybrid_clear_collapse` | baseline-default / **ready-for-implement** |
| `problem_deal.fixed_setup` / `pressure_deck` | baseline-default / **ready-for-implement** |
## Task: land schema 2 catalog and module tree
```task
id: GROUND-WP-0008-T01
status: done
priority: high
state_hub_task_id: "9b5e2c3f-5c38-561d-8620-93b1cce53cb4"
```
**Done 2026-08-08.**
## Task: notify clay-borg of selection API change
```task
id: GROUND-WP-0008-T02
status: done
priority: high
state_hub_task_id: "36db32d7-1999-5589-a755-38b6ce7fd6e5"
```
**Done 2026-08-08.** Aspect terminology + CB-RES-0010 + closeout message
with ready-for-implement modules.
## Task: first multi-aspect measurement (optional)
```task
id: GROUND-WP-0008-T03
status: cancel
priority: medium
state_hub_task_id: "24263940-838e-5676-94a7-192306ab5548"
```
**Cancelled 2026-08-08 as ground-game task.** Optional by design; blocked
on simulator selection/panels. Handed off as **residual** to clay-borg
CB-WP-0048 (and follow-on panel work): resolve `scoped_plus_attack_soothe`
vs `h2` vs `h1`; later hybrid end / pressure deck alone then with scoped.
Not reopened here when those panels land — file a report extending the
relevant module, not this workplan.
## Task: package next proposed modules (ready-for-implement)
```task
id: GROUND-WP-0008-T04
status: done
priority: medium
state_hub_task_id: "bc5dec7f-ec3d-5855-9a16-da42176988e9"
```
**Done 2026-08-08.** v0 frozen:
- `end_condition.hybrid_clear_collapse`
- `problem_deal.pressure_deck`
Kernel implementation remains clay-borg.
## Residuals (live work elsewhere — not open tasks here)
| Residual | Home |
|----------|------|
| Configuration selector (schema 2 parse, persist module list) | clay-borg **CB-WP-0048** |
| Kernel for hybrid end + pressure deck | clay-borg (after CB-WP-0048) |
| Multi-aspect / profile panels | clay-borg evidence / reports → ground-game `reports/` |
| Bond joint-SOLVE table or scope-aware policy | optional human / clay-borg policy work |
| `consumed_files` on every module | opportunistic catalog hygiene |
| Accept `ready-for-implement` (not only `proposed`) in gates | clay-borg catalog reader |
## Close note
This workplans job was to **define the design-space contract and ship
packages** in ground-game. That is complete. Measuring configurations is
the simulators job once CB-WP-0048 finishes the selector.