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.
17 KiB
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:
- The engine has been simulating an impossible game at 2–4p.
- 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, withk ∈ {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-2pbecomes an engine import / fixture bug, not a design gap — rewrite the scenario as a non-provisional check thatsum(point_value of dealt) ≥ thresholdfor 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_valuechange = 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)
- Deal arithmetic: Surface + hidden 1..k ⇒ available 6 / 9 / 12. Confirmed.
- Thresholds 5 / 7 / 9 stand as Standard (2p Standard = full clear). Confirmed.
- Difficulty tiers: not in r0 close-out; residual GROUND-WP-0005 after playtest on correct deal.
- SHARED GROUND is 2–6, not 5–6p only. Confirmed.
- 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.