Surface is always in play with hidden priorities 1..k, so available points are 6/9/12 against Standard thresholds 5/7/9 — every seat band is winnable. Encode the contract in edition rules, finish the workplan, and park optional difficulty tiers as GROUND-WP-0005.
292 lines
17 KiB
Markdown
292 lines
17 KiB
Markdown
# Threshold reachability and difficulty levers
|
||
|
||
**Date:** 2026-08-04
|
||
**Status:** **Ruled** under GROUND-WP-0004-T01 (deal 6/9/12, thresholds 5/7/9 Standard, SHARED GROUND 2–6). Difficulty tiers residual → GROUND-WP-0005.
|
||
**Context:** GROUND-WP-0004 (reopen of GR-E01 after clay-borg's premise correction); table confirmation that 3p SHARED GROUND felt unwinnable.
|
||
**Purpose:** (1) make every seat count arithmetically winnable; (2) map mechanical bottlenecks and propose difficulty control that fits existing rules.
|
||
|
||
---
|
||
|
||
## 0. What the numbers actually are
|
||
|
||
Three different point totals have been used. Only one matches the printed rules plus `Problems.csv`.
|
||
|
||
### Authoritative problem values (every scenario)
|
||
|
||
| card | `hidden_priority` | `point_value` | suit |
|
||
|------|------------------:|--------------:|------|
|
||
| Surface | 0 | 2 | Repair (varies by scenario pattern; see Problems.csv) |
|
||
| Hidden 1 | 1 | 2 | Clarify |
|
||
| Hidden 2 | 2 | 2 | Boundary |
|
||
| Hidden 3 | 3 | 3 | Repair |
|
||
| Hidden 4 | 4 | 3 | Change |
|
||
| **file total** | | **12** | |
|
||
|
||
### GR-S01 as printed (`Rules_Text.csv` §Setup + `Scenarios.csv`)
|
||
|
||
> Use the **Surface Problem**. Add **hidden** Problems: priorities **1–2** (2p), **1–3** (3–4p), **1–4** (5–6p).
|
||
|
||
Surface is **always** in play; the priority filter only selects which *hidden* cards join it.
|
||
|
||
| seats | in play | max points | GR-E01 threshold | margin | need % of max |
|
||
|------:|--------:|-----------:|-----------------:|-------:|--------------:|
|
||
| 2 | S + H1–2 (3) | **6** | 5 | +1 | 83% |
|
||
| 3–4 | S + H1–3 (4) | **9** | 7 | +2 | 78% |
|
||
| 5–6 | S + H1–4 (5) | **12** | 9 | +3 | 75% |
|
||
|
||
**Under a correct import of GR-S01 + Problems.csv, every seat count is arithmetically winnable.**
|
||
|
||
### Where clay-borg's 4 / 6 / 9 came from
|
||
|
||
After correcting the false "12 always available" claim, CB-WP-0021 treated GR-S01 as dealing **2 / 3 / 4 total** problems counted from the Surface upward (Surface + first *n−1* hidden). That drops one card vs the printed setup and yields:
|
||
|
||
| seats | their deal | their max | threshold | |
|
||
|------:|-----------:|----------:|----------:|---|
|
||
| 2 | 2 | 4 | 5 | impossible |
|
||
| 3–4 | 3 | 6 | 7 | impossible |
|
||
| 5–6 | 4 | 9 | 9 | exact only |
|
||
|
||
That matches the engine **stand-in** shape (deal depth 2/3/4, Surface = priority 1), not the edition text. The stand-in itself (values = priority: 1+2+3 = 6 at 3p vs threshold 7) is what table play and `gd0001` measured.
|
||
|
||
| source | 2p max | 3–4p max | 5–6p max | vs 5/7/9 |
|
||
|--------|-------:|---------:|---------:|----------|
|
||
| Engine stand-in | 3 | 6 | 10 | fail / fail / ok |
|
||
| clay-borg "CSV deal" | 4 | 6 | 9 | fail / fail / exact |
|
||
| **Printed GR-S01 + CSV** | **6** | **9** | **12** | **ok / ok / ok** |
|
||
|
||
**Implication for the ruling:** the void of `gr-e01-threshold-unreachable-2p` was wrong for the *wrong reason* (claimed 12 in play). The reopened claim that low seats are *arithmetically* impossible is also wrong for the *correct* dataset + setup. What remains real is:
|
||
|
||
1. The engine has been simulating an impossible game at 2–4p.
|
||
2. Even with correct 6/9/12, thresholds demand **~75–83% of all available points** — little room for DENY, missed suits, or social friction. That matches "I played well and still lost" without true impossibility.
|
||
|
||
---
|
||
|
||
## 1. Easy adaptation — make every setup winnable
|
||
|
||
### Recommended default (no rebalance, rules already allow it)
|
||
|
||
**Rule the deal explicitly, once, for clay-borg and print:**
|
||
|
||
- Problems in play = **Surface (always)** ∪ **hidden priorities `1..k`**, with `k ∈ {2,3,4}` by seat band.
|
||
- Available value = **6 / 9 / 12** (not 4 / 6 / 9, not 12-always).
|
||
- Thresholds **5 / 7 / 9 stand**.
|
||
- `gr-e01-threshold-unreachable-2p` becomes an **engine import / fixture bug**, not a design gap — rewrite the scenario as a non-provisional check that `sum(point_value of dealt) ≥ threshold` for every seat band.
|
||
- Explicitly **reject** "SHARED GROUND is 5–6p only": README and Modes advertise 2–6.
|
||
|
||
**Dataset touch (optional but clarifying):** add a one-line setup formula to `Rules_Text` / scenario microcopy:
|
||
|
||
> *In play: Surface + hidden priorities 1–k. Available points: 6 (2p) / 9 (3–4p) / 12 (5–6p). Threshold: 5 / 7 / 9.*
|
||
|
||
No threshold column change required for step 1.
|
||
|
||
### If table feel still fails after correct deal (fallback knobs)
|
||
|
||
Use only if playtest after correct import still loses too often when play is competent:
|
||
|
||
| knob | change | effect |
|
||
|------|--------|--------|
|
||
| **A. Soften thresholds** | 2p→4, 3–4p→6, 5–6p→8 | ~67% of max; one mid-value miss still ok |
|
||
| **B. Always deal full five** | k=4 at all seats | max always 12; scale threshold by seats or difficulty |
|
||
| **C. Extra round at low seats** | 2p: 6 rounds | more Investigate/Solve bandwidth when action total is 10 |
|
||
|
||
Prefer **A** only after measuring with correct deal; do not pre-emptively lower numbers that already work on paper.
|
||
|
||
### What not to do for step 1
|
||
|
||
- Do **not** declare low-seat SHARED GROUND intentionally unwinnable (user requirement: every setup must allow player win).
|
||
- Do **not** raise problem values silently inside `r0` (GROUND-WP-0002 contract: `point_value` change = revision bump).
|
||
- Do **not** leave clay-borg on stand-in values while print says otherwise.
|
||
|
||
---
|
||
|
||
## 2. Structural analysis — limits and bottlenecks
|
||
|
||
### 2.1 Win pipeline (per Problem)
|
||
|
||
```
|
||
[hidden?] --INVESTIGATE--> face-up --SOLVE + matching suit--> claimed (points)
|
||
^ ^
|
||
| |
|
||
DENY can reverse Stress 4–5 gates SOLVE
|
||
(needs GROUND—OU) (needs Freedom or calm)
|
||
```
|
||
|
||
Only **face-up, non-Denied** Problems can be claimed. Surface starts face up; every hidden card costs at least one Investigate somewhere in the five rounds.
|
||
|
||
### 2.2 Action budget (5 rounds, simultaneous)
|
||
|
||
| seats | total actions | min INV (full clear) | min SOLVE | productive floor | slack |
|
||
|------:|--------------:|---------------------:|----------:|-----------------:|------:|
|
||
| 2 | 10 | 2 | 3 | 5 | 5 |
|
||
| 3 | 15 | 3 | 4 | 7 | 8 |
|
||
| 4 | 20 | 3 | 4 | 7 | 13 |
|
||
| 5 | 25 | 4 | 5 | 9 | 16 |
|
||
| 6 | 30 | 4 | 5 | 9 | 21 |
|
||
|
||
Slack looks generous, but it is **not free**: Support, Attack, GROUND, DARVO recovery, and failed suit races all consume the same action slot. At 2p, half the game *must* be pure problem work if the table wants a full clear; any DARVO episode that forces GROUND/Support eats the margin that threshold 5-of-6 already requires.
|
||
|
||
### 2.3 Bottleneck map
|
||
|
||
| # | bottleneck | mechanism | how it blocks the win |
|
||
|---|------------|-----------|------------------------|
|
||
| **B1** | **Reveal chain** | Only Investigate reveals non-Denied hidden Problems | Unrevealed cards contribute 0; DENY undoes prior Investigates until OU |
|
||
| **B2** | **Suit match** | SOLVE needs exact suit in hand; only Investigate (and starting deal) add Solutions | Dead hands; wasted rounds fishing the deck |
|
||
| **B3** | **Stress gate** | Stress 4–5 → only ATTACK/GROUND free; Investigate/Solve need ready Freedom | Productive actions disappear exactly when the table is on fire |
|
||
| **B4** | **Freedom scarcity** | One binary token; ready via GROUND—GR or Bond Support | Serializes recovery; no hand limit but Freedom is the real scarce resource |
|
||
| **B5** | **DARVO tax** | 3-stage binding sequence; DENY steals a face-up Problem | Multi-round opportunity cost; can deny the exact card needed for threshold |
|
||
| **B6** | **Relation slots** | 2 slots/player; Bond Support is the strong DARVO cancel | Support network is capacity-limited; Rivalry burns slots |
|
||
| **B7** | **Solve race** | Same-round Lead order; loser keeps Solution but burns the Action | Coordination tax in semi-coop / coalitions |
|
||
| **B8** | **Fixed horizon** | Exactly 5 rounds | No catch-up time after a late DENY or late reveal of a 3-point card |
|
||
| **B9** | **Threshold density** | Need ~75–83% of all points in play | Losing any 3-value card (or two 2-value) often ends the group |
|
||
|
||
### 2.4 Suit demand (full clear, typical scenario shape)
|
||
|
||
| seats | suits required |
|
||
|------:|----------------|
|
||
| 2 | Repair, Clarify, Boundary (one each) |
|
||
| 3–4 | Repair ×2, Clarify, Boundary |
|
||
| 5–6 | Repair ×2, Clarify, Boundary, Change |
|
||
|
||
Deck is 6 per suit / 24 total; opening deal is 2 per seat (random). **Investigate is both the reveal engine and the only steady suit pump.** That double duty is the deepest structural coupling: the action that opens problems also feeds the action that closes them.
|
||
|
||
### 2.5 Seat-count dynamics (why low seats feel worse)
|
||
|
||
- **Absolute slack** is lowest at 2p, but **threshold %** is also highest (83%).
|
||
- Fewer seats ⇒ fewer parallel Investigates and fewer Bond partners to cancel DARVO.
|
||
- More seats ⇒ more Attacks and more DARVO triggers, but more total actions and more Support bandwidth.
|
||
- Semi-coop / coalitions add **incentive to race SOLVE** and to Attack for personal edge, which steals actions from the group pipeline — thresholds that are tight in pure co-op become brutal when players partially defect.
|
||
|
||
Solo (not in core; `EXT_SOLO` noted) inherits the 2p action poverty without a Bond partner: DENY cannot be cancelled by Bond Support; only GROUND—GR after the stage / OU for Denied cards. Solo difficulty is dominated by **B3–B5**, not by multiplayer politics.
|
||
|
||
---
|
||
|
||
## 3. Mechanisms to control difficulty of winning
|
||
|
||
Goal: every setup remains **winnable in principle**; harder settings demand luck, persistence, and tighter coordination — not arithmetic impossibility.
|
||
|
||
### 3.1 Candidate levers (ordered by simplicity / fit)
|
||
|
||
#### L1 — **Target ratio of available points** (recommended primary dial)
|
||
|
||
Define:
|
||
|
||
```
|
||
available = sum(point_value of Problems in play) # 6 / 9 / 12 under GR-S01
|
||
threshold = ceil(available × ratio) # or a printed table per band
|
||
```
|
||
|
||
| tier | ratio | 2p thr | 3–4p thr | 5–6p thr | feel |
|
||
|------|------:|-------:|---------:|---------:|------|
|
||
| Learning | ~50% | 3 | 5 | 6 | room for one serious mistake |
|
||
| Standard (≈ current) | ~75–83% | 5 | 7 | 9 | competent group, little waste |
|
||
| Mastery / Hard | 100% | 6 | 9 | 12 | claim everything; DENY is lethal |
|
||
| Impossible (forbidden) | >100% | — | — | — | never ship |
|
||
|
||
**Why this fits:** thresholds already scale with seat band; this only *names* the relationship to available value and makes difficulty a first-class setup choice instead of a hidden property of three magic numbers. Solo and multiplayer share one concept. clay-borg can assert `threshold ≤ available` as an invariant for every tier except an explicit "impossible" test fixture.
|
||
|
||
#### L2 — **Pressure dial** (starting Stress / Freedom / DARVO aggressiveness)
|
||
|
||
| tier | start Stress | Freedom | note |
|
||
|------|-------------:|---------|------|
|
||
| Calm | 1 | READY | more rounds of free Investigate/Solve |
|
||
| Standard | 2 | READY | current |
|
||
| Frayed | 3 | READY | gate approaches sooner |
|
||
| Solo Hard | 2 | SPENT or none | Freedom scarcity as difficulty |
|
||
|
||
Thematic fit is excellent (individual layer). Does not by itself fix a bad threshold; pairs with L1.
|
||
|
||
#### L3 — **Problem depth (k)**
|
||
|
||
Today `k` is tied only to seat count. Untie slightly:
|
||
|
||
- Learning: always `k=2` (max 6) even at 5–6p, lower absolute complexity.
|
||
- Standard: current seat scaling.
|
||
- Deep dive: always `k=4` (max 12) at any seat count — more to discover, longer pipeline; threshold from L1.
|
||
|
||
This is the original design note in history ("complexity control: number of active problems and relationship slots").
|
||
|
||
#### L4 — **Round track length**
|
||
|
||
6 rounds at 2p / solo increases slack without changing card data. Simple but changes the Scenario card layout and "5 rounds" product promise.
|
||
|
||
#### L5 — **Solution economy**
|
||
|
||
Guaranteed opening suits, extra starting Solutions, or "Investigate draws 2" on easy tiers. Effective but blunts B2 and risks making SOLVE automatic.
|
||
|
||
#### L6 — **DENY severity**
|
||
|
||
Easy: DENY only flips face down without Denied token (Investigate can re-open). Hard: current Denied rules. Changes the antagonist's teeth; high thematic cost if softened too much for the DARVO edition identity.
|
||
|
||
### 3.2 Recommended package
|
||
|
||
| layer | rule |
|
||
|-------|------|
|
||
| **Invariant** | For every published setup: `threshold ≤ available_points` (hard). |
|
||
| **Default (r0 print)** | Keep seat bands and 5/7/9 once deal is correctly 6/9/12; document as **Standard** (~75–83%). |
|
||
| **Difficulty (setup choice)** | Optional third setup axis beside Scenario + Mode: **Learning / Standard / Mastery**, implemented primarily as **L1 ratios** (and optionally L2 start Stress for solo). |
|
||
| **Solo** | Same L1 tiers; default slightly easier ratio or Calm start Stress until automa exists; Bond-less cancel path is only GROUND. |
|
||
|
||
### 3.3 Integration with existing rules (how it would look on the table)
|
||
|
||
Current setup sentence:
|
||
|
||
> Choose one Scenario card and one Mode card. … Add hidden Problems by player count …
|
||
|
||
Proposed addition (minimal):
|
||
|
||
> Optionally choose a **Difficulty** (Learning / Standard / Mastery). Standard uses the Scenario's printed thresholds. Learning / Mastery replace the threshold with the tier table (or: with ⌈available × ratio⌉). Available points are always Surface + selected hidden priorities.
|
||
|
||
**Where it lives in data:**
|
||
|
||
| artifact | change |
|
||
|----------|--------|
|
||
| `Scenarios.csv` | Keep `threshold_*` as **Standard**; *or* replace with `available_*` + document ratios in Modes/Rules |
|
||
| `Modes.csv` | Unaffected (still who wins *after* group success) |
|
||
| `Rules_Text.csv` | One Setup row: available formula + difficulty tiers |
|
||
| `Extensions.csv` / solo | `EXT_SOLO` can reference the same tiers |
|
||
| clay-borg | `threshold()` becomes `f(seats, difficulty)`; setup asserts reachability |
|
||
|
||
**Print economy:** Scenario already has three threshold columns. Learning/Mastery can be:
|
||
|
||
- a small **Difficulty card** (3 cards) with three numbers each, or
|
||
- a second row of numbers on the Scenario (busy), or
|
||
- a single lookup: "Learning = Standard − 2 (min 1); Mastery = available".
|
||
|
||
Simplest physical form: **one Difficulty card** used with every Scenario — three numbers for the three seat bands — so Scenario text stays clean.
|
||
|
||
**Interaction with mastery rating (MODE_COOP):** already subtracts Blame and Denied Problems. That remains a *quality* score after a win; difficulty tiers change *whether* the win is possible under waste. Keep them separate: tier = gate hardness; mastery = cleanliness of the win.
|
||
|
||
**Interaction with semi-coop / coalitions:** group gate is shared; personal race sits on top. Harder L1 increases cooperation pressure (defecting into pure Attack becomes more self-defeating). That is desirable tension, not a conflict with L1.
|
||
|
||
### 3.4 Worked examples
|
||
|
||
**2p Standard (current intent, correct deal):** available 6, need 5. May leave one 1-point miss — but all cards are 2+, so must claim 3 of 3 cards *or* claim two cards only if values were uneven — with values 2+2+2, **must claim all three** to reach 5? 2+2=4 < 5, so **must claim all three (6)**. Margin +1 is illusory for discrete 2-point cards: **2p Standard requires a full clear.**
|
||
|
||
That is an important subtlety: integer card values mean **margin +1 with all-even values still forces 100% claim rate**. True slack appears only when a 3-value card can be left unsolved while two others cover the threshold — which starts at 3–4p (e.g. claim 2+2+3=7 exactly, leave a 2).
|
||
|
||
So even "arithmetically reachable" 2p Standard is **full-clear or lose**. That may be intended hardness or a reason to set Learning at 4 (any two cards) and Standard at 5 only if a 1-point card exists — or accept full-clear as the 2p identity.
|
||
|
||
**3p Standard:** available 9, need 7. Patterns that win: drop one 2-value (claim 7) or claim all. Drop a 3-value (claim 6) → lose. DENY on a 3 without OU recovery often ends the game.
|
||
|
||
**Mastery any seats:** claim all; every DENY must be undone.
|
||
|
||
---
|
||
|
||
## 4. Decisions (GROUND-WP-0004-T01/T02 — ruled 2026-08-04)
|
||
|
||
1. **Deal arithmetic:** Surface + hidden 1..k ⇒ available **6 / 9 / 12**. Confirmed.
|
||
2. **Thresholds 5 / 7 / 9** stand as **Standard** (2p Standard = full clear). Confirmed.
|
||
3. **Difficulty tiers:** not in r0 close-out; residual **GROUND-WP-0005** after playtest on correct deal.
|
||
4. **SHARED GROUND** is **2–6**, not 5–6p only. Confirmed.
|
||
5. **Hygiene (T02):** arithmetic findings need runnable repro **and** Surface-separated deal table; rulings should cite the repro; edition text is authority for GR-S01 if the engine under-tests the wrong deal.
|
||
|
||
---
|
||
|
||
## 5. Summary
|
||
|
||
| step | outcome |
|
||
|------|---------|
|
||
| **1. Easy winability** | Correct GR-S01 counting already makes all seats winnable (6/9/12 ≥ 5/7/9). Fix is primarily a **deal specification + engine import**, not new thresholds. Optionally soften later if full-clear 2p is too sharp. |
|
||
| **2. Difficulty control** | Best simple concept: **threshold as a ratio of available problem value**, with optional **Pressure dial** (start Stress/Freedom) for solo and mastery. Integrates as a third setup card or a tier table; preserves Modes, DARVO, and edition IDs. |
|
||
|
||
Until Standard is played on the **correct** deal, do not rebalance point values or lower printed thresholds solely on stand-in or undercounted evidence.
|