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