tmux-amq/.claude/rules/workplan-convention.md
tegwick 7b4a972655
Some checks failed
tamq-ci / test (push) Failing after 6s
chore: register repository governance baseline
Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a03397-4d51-7fd1-8ff2-946eb22ea2bc
2026-08-24 14:16:11 +02:00

4 KiB

Workplan Convention (ADR-001)

File location: workplans/TAMQ-WP-NNNN-<slug>.md ID prefix: TAMQ-WP-

Work items originate as files in this repo before being registered in the hub.

Canonical workplan frontmatter statuses are: proposed, ready, active, blocked, backlog, finished, archived. Use proposed for a newly drafted plan, ready after review against current repo state, and finished when implementation is complete. stalled and needs_review are derived health labels, not stored statuses.

Closed workplans may be moved to workplans/archived/ with a completion-date prefix: YYMMDD-TAMQ-WP-NNNN-<slug>.md. The frontmatter id remains unchanged; the prefix is only for quick visual reference.

Small opportunistic tasks discovered during another session use Ad Hoc Tasks: workplans/ADHOC-YYYY-MM-DD.md, workplan id TAMQ-WP-ADHOC-YYYY-MM-DD, and task ids TAMQ-WP-ADHOC-YYYY-MM-DD-T01, T02, etc. TAMQ-WP includes its final -WP token. Unqualified historic ADHOC-* ids are grandfathered and must not be copied into new records. Use adhocs only for low-risk work completed directly. Promote anything requiring analysis, design, approval, dependencies, or multiple planned phases into a normal workplan.

Ecosystem todos from other agents arrive as [repo:tmux-amq] hub tasks — visible at session start. Pick one up by creating the workplan file, committing, and running statehub fix-consistency — C-06 registers the workplan in the hub. Never register by hand with create_workplan (legacy MCP alias: create_workstream).

If fix-consistency reports C-06/C-11 skipped because this host is not the identifier registrar, further retries cannot help. Do not set STATEHUB_REGISTRAR and do not create hub rows manually. Commit and push the file-backed work, then run the scoped repo-manager fallback once:

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

If it is unavailable, send one request to repo-manager naming the repository and missing canonical ids. Continue local work from files; hub UUID absence is an indexing delay, not a reason to repeat the same checks.

Task blocks use this shape:

id: TAMQ-WP-NNNN-T01
status: wait | todo | progress | done | cancel
priority: high | medium | low
state_hub_task_id: "<uuid>"         # written by fix-consistency — do not edit

Status progression is todoprogressdone; use wait for waiting or blocked work and cancel for stopped work.

Residuals (role, not kind)

When finishing a workplan, actionable leftovers must become live work records before status: finished. Residual is not a registered kind and must not be parked only in SCOPE.md or finished-file prose.

Shape Capture as Links
Small Green/Blue parkable intake (queue YAML / *-IN-*) origin: residual, origin_ref: TAMQ-WP-NNNN
Multi-step next workplan name parent WP; optional promote from residual intake
Founder gate / time decision / engagement same origin fields when from residual intake

Fleet listing of residuals is a State Hub concern (list_intakes + origin filters; planned statehub residuals). Canon: the-custodian/canon/standards/work-record-types_v0.1.md § Residuals.

Workplan frontmatter carries state_hub_workstream_id — a legacy field name kept for compatibility; it holds the hub workplan UUID and is written by fix-consistency. Do not edit or rename it.

Legacy terminology (compatibility footnote)

Workplan is the fleet term — see the-custodian/canon/standards/workplan-terminology-fleet_v0.1.md. Workstream is legacy only: some API routes (/workstreams/), params (workstream_id), MCP aliases (create_workstream), and the frontmatter field above remain until STATE-WP-0069 retires them via legacy-meter. Treat those identifiers as workplan IDs. Prefer GET /workplans/ and workplan_id in new examples and scripts.