ground-game/workplans
codex e3d5b33522 fix(workplans): declare records the hub already holds as workplans
Canon defines six work-record kinds — workplan, task, intake, decision,
engagement, register-entry. These files declared none of them (feature, runbook,
bug-report, extension-workplan, scorecard, session-note, adhoc) while the hub
held each as a workplan.

Selection is by 'type: workplan', so the mismatch made them invisible to any
projection: a forge-derived reset read their correct hub records as no longer
deriving and proposed retiring live work.

Where a file also lacked a canonical identifier, one was assigned continuing the
repository's sequence. Existing hub identifiers are preserved, so no record is
orphaned.

Refs STATE-WP-0083

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 2583210@bnt-lap001
Assistant-Session: f2bff2d5-e9b2-4338-92ca-10282a927006
2026-08-26 10:29:34 +02:00
..
ADHOC-2026-08-08.md fix(workplans): declare records the hub already holds as workplans 2026-08-26 10:29:34 +02:00
GROUND-WP-0001-statehub-bootstrap.md fix(workplans): adopt ADR-007 derived identifiers 2026-08-25 19:30:13 +02:00
GROUND-WP-0002-rulings-clay-borg-is-blocked-on.md fix(workplans): adopt ADR-007 derived identifiers 2026-08-25 19:30:13 +02:00
GROUND-WP-0003-playtest-semi-and-coalitions.md fix(workplans): adopt ADR-007 derived identifiers 2026-08-25 19:30:13 +02:00
GROUND-WP-0004-the-threshold-ruling-rests-on-a-bad-premise.md fix(workplans): adopt ADR-007 derived identifiers 2026-08-25 19:30:13 +02:00
GROUND-WP-0005-difficulty-tiers-and-pressure-dial.md fix(workplans): adopt ADR-007 derived identifiers 2026-08-25 19:30:13 +02:00
GROUND-WP-0006-h1-problem-stress-experiment.md fix(workplans): adopt ADR-007 derived identifiers 2026-08-25 19:30:13 +02:00
GROUND-WP-0007-h2-scoped-problem-stress.md fix(workplans): adopt ADR-007 derived identifiers 2026-08-25 19:30:13 +02:00
GROUND-WP-0008-composable-rules-modules.md fix(workplans): adopt ADR-007 derived identifiers 2026-08-25 19:30:13 +02:00
README.md docs(workplans): note how workplans must be structured to register 2026-08-25 22:22:52 +02:00

Workplan structure and registration

Read this before adding or editing workplans in this repository.

Workplans here do not currently register with the State Hub. This note records why, and what has to change. Nothing has been rewritten — the files are left as they are so the cleanup can happen when this repository is next picked up.

What the hub expects

A workplan is a Markdown file in workplans/ whose frontmatter declares:

---
id: PREFIX-WP-NNNN            # canonical record id; one prefix per repository
type: workplan                # REQUIRED — this is what identifies the file
title: "..."
domain: <sector domain>       # see the Repo Classification Standard
repo: <repo slug>
status: proposed | ready | active | blocked | backlog | finished | archived
owner: <who>
created: "YYYY-MM-DD"
updated: "YYYY-MM-DD"
---

Tasks are fenced blocks inside the file:

```task
id: PREFIX-WP-NNNN-T01
status: wait | todo | progress | done | cancel
priority: high | medium | low
```

Note the two vocabularies differ. done and todo are task statuses. A workplan is finished, never done.

Why these files are invisible today

The scanner selects files by type: workplan. Anything else in frontmatter — kind:, or no type at all — is skipped silently, so the file is not merely unregistered but unseen: it does not appear as a gap, an error, or a warning.

Where a workplan also carries a status outside the list above, that status cannot be projected even once the file is found.

How registration works

Files originate the work; the hub holds a projection of them (ADR-001, ADR-012). Never create records in the hub by hand — write the file, commit, and let the registrar derive the record:

uv run --project ~/repo-manager rmgr registrar-reconcile \
  --path . --confirm-primary --push

The registrar requires a clean worktree, and it will refuse a workplan whose backing file is not committed and pushed — a hub record whose source is only local cannot be re-derived by anyone else.

When cleaning this repository up

  1. Decide whether each file is genuinely a workplan. Some may be design notes or product documents that simply live in workplans/; those belong elsewhere, or should keep a non-workplan type deliberately.
  2. For real workplans: set type: workplan, map statuses to the workplan vocabulary, add the missing fields.
  3. Commit, push, then run the registrar above.

References: the-custodian/.claude/rules/workplan-convention.md, canon/architecture/adr-001-workplans-as-repo-artefacts.md, canon/architecture/adr-012-projection-source-and-preliminary-overlay.md.