ground-game/workplans/GROUND-WP-0002-rulings-clay-borg-is-blocked-on.md
tegwick 0eea287099 GROUND-WP-0002 T01: the edition dataset is authoritative
Ruled by the maintainer 2026-08-03. 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. This
unblocks clay-borg and very likely dissolves
gr-e01-threshold-unreachable-2p.

The three sub-questions were not ruled, so proposed defaults are recorded
rather than blocking the import on them: which columns are authoritative
vs presentational; that point_value and required_solution may NOT change
within r0; and that a version bump is the directory name, so it shows in
a diff and is never silent.

The second matters most: the engine hashes game state and a Problem's
value and required suit are IN that state. If they can change under a
fixed revision name, every recorded scenario hash in clay-borg silently
rots. Hence 'no' rather than 'probably not'.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-03 19:31:31 +02:00

9.1 KiB
Raw Blame History

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

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 (04) — all of which the engine currently invents.

GR-E01's thresholds are 2p → 5, 34p → 7, 56p → 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_value and required_solution may change between r0 and 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.

What was ruled, and what was not

The headline is answered. The three sub-questions were not, and rather than block the import on them, these are the proposed defaults; each is cheap to overturn and none is load-bearing for a first import:

question proposed default
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

The distinction that matters is the second: the engine will hash game state, and a Problem's value and required suit are in that state. If they can change under a fixed revision name, every recorded scenario hash in clay-borg silently rots. That is why "no" is proposed rather than "probably not".

Owed: confirm or overturn the three rows above. Until then the engine imports under them and says so.

Task: rule on SOLVE's legality

id: GROUND-WP-0002-T02
status: todo
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.

Task: answer the ten underdetermined points (U1U10)

id: GROUND-WP-0002-T05
status: todo
priority: high

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.

Task: confirm or overturn the six provisional defaults

id: GROUND-WP-0002-T03
status: todo
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 U1U10 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.

Task: GR-E03 and GR-E04 have never been played to the end

id: GROUND-WP-0002-T04
status: todo
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.