clay-borg messaged this repo on 2026-07-30 with ten rules points the dataset does not decide (U1-U10), each simulated under a provisional default, asking for confirm-or-correct per item. Four days later it was still unread, because there was nowhere for it to land. U2 (stress clamping), U6 (same-round Bond-Support vs DARVO step order) and U8 (GROUND-OU cancelling an Attack before Protection is consumed) are the three that change play -- each decides whether a DARVO stage fires at all. The rest are edge cases or confirmations. T03's six provisional scenarios are the scenarios that ENCODE these defaults, so T05 comes first and T03 becomes the check that nothing was missed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
186 lines
7.5 KiB
Markdown
186 lines
7.5 KiB
Markdown
---
|
||
id: GROUND-WP-0002
|
||
type: workplan
|
||
title: "Rulings the engine is blocked on, and the dataset it never loaded"
|
||
domain: consumer
|
||
repo: ground-game
|
||
status: ready
|
||
owner: bernd
|
||
topic_slug: whynot
|
||
created: "2026-08-03"
|
||
updated: "2026-08-03"
|
||
state_hub_workstream_id: "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` (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
|
||
|
||
```task
|
||
id: GROUND-WP-0002-T01
|
||
status: todo
|
||
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.**
|
||
|
||
## Task: rule on SOLVE's legality
|
||
|
||
```task
|
||
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 (U1–U10)
|
||
|
||
```task
|
||
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
|
||
|
||
```task
|
||
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 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.
|
||
|
||
## Task: GR-E03 and GR-E04 have never been played to the end
|
||
|
||
```task
|
||
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.
|