diff --git a/WORK-RECORDS.md b/WORK-RECORDS.md index b6b3b85..be86d86 100644 --- a/WORK-RECORDS.md +++ b/WORK-RECORDS.md @@ -8,7 +8,12 @@ | Kind | ID | Status | Lane | Source | | --- | --- | --- | --- | --- | -| workplan | GROUND-WP-0001 | ready | — | workplans/GROUND-WP-0001-statehub-bootstrap.md | -| task | GROUND-WP-0001-T01 | todo | — | workplans/GROUND-WP-0001-statehub-bootstrap.md | -| task | GROUND-WP-0001-T02 | todo | — | workplans/GROUND-WP-0001-statehub-bootstrap.md | -| task | GROUND-WP-0001-T03 | todo | — | workplans/GROUND-WP-0001-statehub-bootstrap.md | +| workplan | GROUND-WP-0001 | done | — | workplans/GROUND-WP-0001-statehub-bootstrap.md | +| workplan | GROUND-WP-0002 | ready | — | workplans/GROUND-WP-0002-rulings-clay-borg-is-blocked-on.md | +| task | GROUND-WP-0001-T01 | done | — | workplans/GROUND-WP-0001-statehub-bootstrap.md | +| task | GROUND-WP-0001-T02 | done | — | workplans/GROUND-WP-0001-statehub-bootstrap.md | +| task | GROUND-WP-0001-T03 | done | — | workplans/GROUND-WP-0001-statehub-bootstrap.md | +| task | GROUND-WP-0002-T01 | todo | — | workplans/GROUND-WP-0002-rulings-clay-borg-is-blocked-on.md | +| task | GROUND-WP-0002-T02 | todo | — | workplans/GROUND-WP-0002-rulings-clay-borg-is-blocked-on.md | +| task | GROUND-WP-0002-T03 | todo | — | workplans/GROUND-WP-0002-rulings-clay-borg-is-blocked-on.md | +| task | GROUND-WP-0002-T04 | todo | — | workplans/GROUND-WP-0002-rulings-clay-borg-is-blocked-on.md | diff --git a/workplans/GROUND-WP-0002-rulings-clay-borg-is-blocked-on.md b/workplans/GROUND-WP-0002-rulings-clay-borg-is-blocked-on.md index fc9048d..ea1548b 100644 --- a/workplans/GROUND-WP-0002-rulings-clay-borg-is-blocked-on.md +++ b/workplans/GROUND-WP-0002-rulings-clay-borg-is-blocked-on.md @@ -4,18 +4,20 @@ type: workplan title: "Rulings the engine is blocked on, and the dataset it never loaded" domain: consumer repo: ground-game -status: ready +status: active 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. Nine such questions have -accumulated there and none has been answered, because none had a home. +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 @@ -53,8 +55,9 @@ dissolve without anyone changing a rule. ```task id: GROUND-WP-0002-T01 -status: todo +status: done priority: high +state_hub_task_id: "431cca12-e6d9-4eba-9360-f4f13ed263c1" ``` State whether `editions/ground-darvo-r0/` is the **authoritative** source @@ -73,12 +76,42 @@ contract clay-borg can build against: **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 ```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 @@ -105,18 +138,54 @@ 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`. 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. +`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 | |---|---| @@ -136,6 +205,7 @@ T01 may dissolve it. 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