--- id: GROUND-WP-0001 type: workplan title: "Bootstrap State Hub integration" domain: consumer repo: ground-game status: done owner: codex topic_slug: whynot created: "2026-07-31" updated: "2026-08-03" state_hub_workstream_id: "1e356c32-3a04-43a0-aa02-43cc18cca60a" --- # Bootstrap State Hub integration Product repo for GROUND — A Game of Bonds and Rivalry (DARVO Edition): playtest edition datasets, rules content, and design history for a semi-cooperative conflict card game. ## Review Generated Integration Files ```task id: GROUND-WP-0001-T01 status: done priority: high 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: done priority: high state_hub_task_id: "d4dbf142-6a5b-4631-923e-9e761f462900" ``` 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: done priority: medium state_hub_task_id: "7912f74a-1ae3-40c6-a65d-28221beb0f40" ``` Create the first implementation workplan for the repository's most important next change. After workplan file updates, run the sync locally from this repo 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, 3–4p → 7, 5–6p → 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.