GROUND-WP-0002 T03 voided gr-e01-threshold-unreachable-2p as a stand-in artifact, on the basis that Problems.csv makes 12 points available. The 12 is wrong and clay-borg supplied it: twelve points exist in the FILE, but GR-S01 deals 2/3/4 of the five Problems, so 4/6/9 are ever in play. clay-borg asserted the 12 in its CB-WP-0021 declaration and corrected itself one commit later, by which time the ruling had been made. The gap survives the authoritative dataset and is now confirmed at the table: the maintainer could not win any 3-player game on 2026-08-03. Three independent forms of evidence -- play, the engine's own constants, and both datasets agreeing -- plus a named reproduction. T06 has been removed from GROUND-WP-0002, which is finished; a new task does not belong in a closed workplan and the hub correctly refused to register it there. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
13 KiB
| id | type | title | domain | repo | status | owner | topic_slug | created | updated | state_hub_workstream_id |
|---|---|---|---|---|---|---|---|---|---|---|
| GROUND-WP-0002 | workplan | Rulings the engine is blocked on, and the dataset it never loaded | consumer | ground-game | finished | bernd | whynot | 2026-08-03 | 2026-08-03 | d8fc3a69-a5ae-4f6e-b4fc-b07d1ff9c783 |
Rulings the engine is blocked on
clay-borg implements the engine that simulates GROUND. Its INTENT says
game-semantics questions defer to this repo. Ten underdetermined rules points, six provisional scenarios and three
questions raised by play have accumulated there, and none has been
answered, because none had a home.
This is their home.
Nothing here is a clay-borg change. Every item is a ruling only the game's owner can make; the engine already carries a provisional default for each and will flip it when the ruling lands.
Session 2026-08-03: all rulings below were decided with the maintainer in a guided pass. Residual playtest work handed to GROUND-WP-0003.
The finding that reframes most of this
The engine has never loaded this repository's edition data.
games/ground/src/lib.rs:1839 builds Problems with value: priority and
suits cycled by index — a stand-in it has always labelled as such. Mean-
while editions/ground-darvo-r0/Problems.csv has carried the real thing
since 2026-07-31:
| problems per scenario | values | total available | |
|---|---|---|---|
Problems.csv (real) |
5 | 2, 2, 2, 3, 3 | 12 |
| the engine's stand-in | 3 | 1, 2, 3 | 6 |
The dataset also defines required_solution (Repair / Clarify /
Boundary), visibility (Surface / Hidden) and hidden_priority (0–4) —
all of which the engine currently invents.
GR-E01's thresholds are 2p → 5, 3–4p → 7, 5–6p → 9. Against 12 available points those are ordinary targets. Against a stand-in worth 6 they are unreachable, which is exactly what clay-borg reported as a rules gap needing a ruling here.
So the first question is not a rules question at all. It is whether this dataset is authoritative — and if it is, several of the items below dissolve without anyone changing a rule.
Task: declare the dataset authoritative, and say what the engine may rely on
id: GROUND-WP-0002-T01
status: done
priority: high
state_hub_task_id: "431cca12-e6d9-4eba-9360-f4f13ed263c1"
State whether editions/ground-darvo-r0/ is the authoritative source
for Problem values, required solutions, visibility and priority — and what
the engine may treat as stable.
SCOPE.md already promises "stable IDs suitable for layout templates,
print merges, and later digital import." This task turns that into a
contract clay-borg can build against:
- which columns are authoritative vs presentational;
- whether
point_valueandrequired_solutionmay change betweenr0and a later revision without a version bump; - what a version bump looks like, so the engine can pin one.
Until this is answered the engine cannot import the data, and every threshold question below stays unanswerable.
RULED 2026-08-03, by the maintainer: "The edition dataset is authoritative."
So editions/ground-darvo-r0/ is the source of truth for Problem values,
required solutions, visibility and priority, and the engine must import
it rather than invent them. That unblocks clay-borg and it very likely
dissolves gr-e01-threshold-unreachable-2p — see T03.
Dataset contract (confirmed 2026-08-03)
| question | ruling |
|---|---|
| authoritative vs presentational columns | Authoritative: problem_id, scenario_id, visibility, hidden_priority, required_solution, point_value. Presentational: title, problem_text, symbol_id, front_rules, reveal_effect, unresolved_effect, back_design_id |
may point_value / required_solution change within r0? |
No — a change to either is a new revision |
| what a version bump looks like | the directory name: ground-darvo-r0 → -r1. The engine pins a directory, so a bump is visible in a diff and never silent |
Rationale: Problem value and required suit are in hashed game state. Silent in-revision edits would rot every recorded scenario hash in clay-borg.
Task: rule on SOLVE's legality
id: GROUND-WP-0002-T02
status: done
priority: high
state_hub_task_id: "895573ac-d7b9-4160-a118-5bc8866c28c8"
Three related questions, all raised by play, all currently decided by the engine's default rather than by the rules.
(a) May SOLVE be selected against a face-down Problem? Measured in the browser on 2026-08-03: a player selected SOLVE on a face-down Problem in three consecutive rounds. Nothing happened, three times, because GR-A02's resolver skips a Problem that is not face up. The engine offered the move each time.
A face-down commit you cannot fulfil is a plausible bluff in a commit/reveal game with DARVO — which is why this is a ruling and not a bug. But if it is a bluff it should be intended; if it is not, the move should not be offered.
(b) May SOLVE be selected when the seat holds no Solution of the required suit? Same shape: currently offered, silently does nothing.
(c) GR-A13 — SOLVE against an already-claimed Problem. Long-standing in clay-borg's evidence as "wasted SOLVE". Intended cost of a bad read, or a gap?
For each: intended, or not offered. If intended, say what the player is meant to learn from the waste.
RULED 2026-08-03
| sub | ruling | what the player learns |
|---|---|---|
| (a) face-down Problem | Not offered — illegal target | Matches ACT_SOLVE target and Rules §Problems: only face-up, non-Denied. Browser no-ops were a filter bug, not a bluff mechanic. |
| (b) no matching Solution in hand | Not offered — digital legality filter | Player always knows their hand; engine only offers SOLVE when a matching suit is held. Physical tables self-police the same way. |
| (c) already-claimed Problem | Same-round race legal; prior-round claim not offered | Competing SOLVEs resolve Lead-then-clockwise; losers keep their Solution. That race is the intended cost of a bad read. Targeting a Problem claimed in a prior round is illegal (nothing left to race for). |
Task: answer the ten underdetermined points (U1–U10)
id: GROUND-WP-0002-T05
status: done
priority: high
state_hub_task_id: "e1d6a548-dedf-473a-9ebd-a2e3a286d510"
This is the oldest item and it has never been read. clay-borg
messaged this repo on 2026-07-30 with ten points the dataset does not
decide, each simulated under a provisional default, asking for "confirm /
correct (with ruling)" per item. Four days later the message was still
unopened, because there was nowhere for it to land. Now there is.
| question | the default clay-borg simulates | |
|---|---|---|
| U1 | Bond-acceptance timing | the target decides during Support resolution, post-reveal |
| U2 | Stress clamping | clamp on every application, not only at End — this changes when DARVO triggers mid-round |
| U3 | DENY with no legal target | no-op; the sequence still advances |
| U4 | Solution deck exhaustion | deterministic reshuffle of the discard, else skip the draw |
| U5 | rejected REVERSE self-effects | owner still gets −2 Stress and the sequence ends; no Blame, no +1, no Protection |
| U6 | same-round Bond-Support vs DARVO | the Support cancels that round's DARVO stage before it fires (step order 2 before 3) |
| U7 | player elimination | none exists — confirm |
| U8 | GROUND—OU vs Attack | OU cancels the Attack before Protection is consumed |
| U9 | simultaneous double DARVO trigger | needs no extra rule — confirm |
| U10 | hand limit | none |
Full text of each default is in clay-borg/specs/GroundRules.md
§Underdetermined. U2, U6 and U8 are the ones that change play, because
each decides whether a DARVO stage fires at all; the rest are edge cases
or confirmations.
Answer per item: confirm, or correct with the ruling.
RULED 2026-08-03 — all ten confirmed as clay-borg defaults
| ruling | note | |
|---|---|---|
| U1 | Confirm | Target accepts during Support resolution, with full knowledge of revealed Actions. Bond formed by this Support still does not cancel DARVO (printed designer note). |
| U2 | Confirm | Clamp Stress to 0–5 on every application. Matches physical mats. DARVO still arms only at End when at Stress 5 (GR-R08). |
| U3 | Confirm | DENY with no legal target is a no-op; sequence still advances. |
| U4 | Confirm | Deterministic reshuffle of discard into new deck; if both empty, skip the draw. |
| U5 | Confirm | GROUND—ND rejection cancels target effects (no Blame, no +1, no Protection) and owner still gets −2 Stress and the sequence ends. |
| U6 | Confirm | Pre-existing Bond Support (step 2) cancels that round's DARVO stage before it fires (step 3) and ends the sequence. |
| U7 | Confirm | No player elimination. |
| U8 | Confirm | When both GROUND—OU and Protection could cancel the same Attack: OU applies first; Protection is consumed only if it actually cancels. |
| U9 | Confirm | Two players at Stress 5 at the same End both trigger; later stages resolve in Lead order. No extra interaction rule. |
| U10 | Confirm | No hand limit in r0. Revisit only if playtest shows bloat. |
Task: confirm or overturn the six provisional defaults
id: GROUND-WP-0002-T03
status: done
priority: medium
state_hub_task_id: "52cc157f-8fbd-469d-9da7-a96f1c60b654"
Six engine scenarios are tagged provisional: true with
provisional_owner: ground-game. These are the scenarios that encode
T05's defaults — answering U1–U10 will settle most of them, so take T05
first and use this list to check nothing was missed. A ruling flips the
scenario; it does not change the kernel.
| scenario | the default currently in force |
|---|---|
gr-a04-bond-support |
a Support with no existing relation forms no Bond, because GR-L02 requires the target's consent |
gr-d01-darvo-trigger |
Stress clamps at 5 on every application (GR-F01 under the U2 default) |
gr-d05-darvo-reverse |
the REVERSE stage's default resolution |
gr-e01-threshold-unreachable-2p |
thresholds measured against the stand-in values — see the finding above |
gr-e02-shared-ground |
SHARED GROUND scoring default |
gr-e04-coalitions |
Bond networks score together; Rivalries do not connect; an unbonded player is a coalition of one |
Confirm each or overturn it. gr-e01 should be taken last, because
T01 may dissolve it.
RULED 2026-08-03
| scenario | ruling |
|---|---|
gr-a04-bond-support |
Confirm — consent required; no auto-Bond from no-relation Support |
gr-d01-darvo-trigger |
Confirm — follows U2 |
gr-d05-darvo-reverse |
Confirm — follows printed REVERSE + U5 |
gr-e01-threshold-unreachable-2p |
Void / overturn as a rules gap — stand-in artifact. With authoritative Problems.csv (12 pts available) the printed thresholds (2p→5, 3–4p→7, 5–6p→9) stand. Retire or rewrite the scenario as a non-provisional data-import check, not a design ruling. |
gr-e02-shared-ground |
Confirm — encode Modes.csv MODE_COOP as printed |
gr-e04-coalitions |
Confirm — encode Modes.csv MODE_COALITION as printed |
Task: GR-E03 and GR-E04 have never been played to the end
id: GROUND-WP-0002-T04
status: done
priority: medium
state_hub_task_id: "6c55eb56-22dc-4ee2-ac1a-4ced0dedfab9"
Both scoring modes are implemented and neither has been played through a full game — by a person or by the engine. Whatever the rules say, nobody knows what these modes feel like at the table.
This is a playtest task, not an engine task, and it belongs here.
Handed off 2026-08-03 (residual)
Rules encoding for both modes is confirmed under T03 (gr-e02,
gr-e04). Full-game felt experience is not a ruling and is residual
work:
- Residual workplan: GROUND-WP-0003
- origin: residual of GROUND-WP-0002-T04
This task is done as a handoff, not as a completed playtest.
Ruling index (for clay-borg)
One-page flip list. Engine may clear provisional: true against these.
- Dataset —
editions/ground-darvo-r0/authoritative; contract rows under T01. - SOLVE legality — offer only face-up non-Denied, unclaimed (or same-round race), with matching suit in hand.
- U1–U10 — all confirmed as prior clay-borg defaults (table under T05).
- Provisional scenarios — confirm five; void
gr-e01as stand-in artifact. - Playtest residual — GROUND-WP-0003.