Close GROUND-WP-0001; open GROUND-WP-0002, the rulings the engine is blocked on

T01: no generated placeholders remain. Named but not edited: SCOPE.md
does not say this repo is the authority clay-borg defers to for game
semantics, which is a real relationship with nine unanswered questions
behind it. Carried into WP-0002 T01 rather than written by hand, because
the sentence cannot be honest until the contract exists.

T02: there are no build/test/lint commands and that is the answer, not
an omission -- this is a content repo. Finding recorded: nothing
validates that the CSV sheets are internally consistent, because the
engine has never loaded them.

T03: GROUND-WP-0002. The most important next change is not content. The
engine has never loaded this repo's edition data -- it builds Problems
with value=priority and cycled suits, while Problems.csv has carried
point_value 2,2,2,3,3 and required_solution since 2026-07-31. GR-E01's
thresholds (2p 5, 3-4p 7, 5-6p 9) are ordinary against the 12 points the
dataset provides and unreachable against the stand-in's 6 -- which is
exactly what clay-borg reported as a rules gap needing a ruling here.

WP-0002 therefore leads with declaring the dataset authoritative, then
takes the rulings that survive it: SOLVE's legality against a face-down
problem, an unmatchable suit, and an already-claimed problem (GR-A13);
the six provisional defaults; and GR-E03/GR-E04 never having been played
to the end.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
tegwick 2026-08-03 18:54:42 +02:00
parent 68719392c2
commit 192e0486fb
2 changed files with 201 additions and 5 deletions

View file

@ -4,11 +4,11 @@ type: workplan
title: "Bootstrap State Hub integration"
domain: consumer
repo: ground-game
status: ready
status: done
owner: codex
topic_slug: whynot
created: "2026-07-31"
updated: "2026-07-31"
updated: "2026-08-03"
state_hub_workstream_id: "1e356c32-3a04-43a0-aa02-43cc18cca60a"
---
@ -20,7 +20,7 @@ Product repo for GROUND — A Game of Bonds and Rivalry (DARVO Edition): playtes
```task
id: GROUND-WP-0001-T01
status: todo
status: done
priority: high
state_hub_task_id: "bde46494-9425-4f1c-8b5d-f01fe705bf9a"
```
@ -28,11 +28,24 @@ state_hub_task_id: "bde46494-9425-4f1c-8b5d-f01fe705bf9a"
Review `INTENT.md`, `SCOPE.md`, `AGENTS.md`, and `.custodian-brief.md`.
Replace generated placeholders with repo-specific facts where needed.
**Done 2026-08-03.** Reviewed; **no generated placeholders remain**
`INTENT.md`, `SCOPE.md` and `AGENTS.md` all carry repo-specific content
(the DARVO edition, the `ground-darvo-r0` dataset, the consumer domain,
the `GROUND-WP-` prefix). Nothing to replace.
One gap worth naming rather than editing: `SCOPE.md`'s *"In scope now"*
does not mention that this repo is the **authority the engine defers to**
for game semantics. That is a real relationship — `clay-borg`'s INTENT
says *"game-semantics questions defer to that repo"* — and it now has
nine unanswered questions behind it. Rather than amend SCOPE by hand, it
is carried as GROUND-WP-0002 T01, which has to answer what the engine may
rely on before the scope sentence can be written honestly.
## Verify Local Developer Workflow
```task
id: GROUND-WP-0001-T02
status: todo
status: done
priority: high
state_hub_task_id: "d4dbf142-6a5b-4631-923e-9e761f462900"
```
@ -41,11 +54,33 @@ Identify the repo's install, test, lint, build, and run commands. Add or refine
those commands in the agent instructions so future coding sessions can verify
changes confidently.
**Done 2026-08-03.** There are none, and that is the honest answer rather
than an omission: this is a **content repository**. It holds CSV edition
data under `editions/ground-darvo-r0/`, prose under `INTENT`/`SCOPE`, and
design history. There is no build, no test runner and no linter, because
there is nothing here that executes.
The workflow is therefore:
| step | command |
|---|---|
| register workplan and task changes | `statehub fix-consistency` |
| verify the dataset loads | *(none — see below)* |
**The missing one is worth stating as a finding.** Nothing in this repo
validates that `Problems.csv` and its sibling sheets are internally
consistent — that `required_solution` values exist in `Solutions.csv`,
that `scenario_id` values exist in `Scenarios.csv`, that IDs are unique.
The engine has never loaded them, so nothing has ever checked them.
Not fixed here: a validator is real work and it should be built against
the contract GROUND-WP-0002 T01 defines, not before it.
## Seed First Real Workplan
```task
id: GROUND-WP-0001-T03
status: todo
status: done
priority: medium
state_hub_task_id: "7912f74a-1ae3-40c6-a65d-28221beb0f40"
```
@ -57,3 +92,19 @@ checkout:
```bash
statehub fix-consistency
```
**Done 2026-08-03.**
[GROUND-WP-0002](GROUND-WP-0002-rulings-clay-borg-is-blocked-on.md) —
*the rulings the engine is blocked on, and the dataset it never loaded.*
The most important next change is not a content change. It is that
**`clay-borg` has never loaded this repository's edition data** and has
been running on a stand-in that invents Problem values and suits. Its
`GR-E01 unreachable below 5 seats` finding — carried for passes as a rules
gap needing a ruling here — is most likely an artifact of that: the
thresholds (2p → 5, 34p → 7, 56p → 9) are ordinary against the 12 points
`Problems.csv` actually provides, and unreachable against the stand-in's
6.
So GROUND-WP-0002 leads with declaring the dataset authoritative, then
takes the rulings that survive it.

View file

@ -0,0 +1,145 @@
---
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"
---
# Rulings the engine is blocked on
`clay-borg` implements the engine that simulates GROUND. Its INTENT says
game-semantics questions defer to **this** repo. Nine such questions 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
```task
id: GROUND-WP-0002-T01
status: todo
priority: high
```
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
```
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: confirm or overturn the six provisional defaults
```task
id: GROUND-WP-0002-T03
status: todo
priority: medium
```
Six engine scenarios are tagged `provisional: true` with
`provisional_owner: ground-game`. Each encodes a default the engine had to
pick because the rules did not say. 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
```
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.