An issue is marked done because the person doing it was done. The test it required was never written, the document it promised never appeared, and the milestone advances on a claim. A roadmap maintained by hand says something else again.
plan status, plan show <id>: derived status, and the evidence an issue requires
plan roadmap: milestone order derived from state
plan body <id>: the neutral projection body the GitHub sync renders from
setup: plan-model
given:
- 'installed, with a canonical project model carrying one milestone and two issues'
steps:
- id: status
run: ['plan', 'status']
note: 'milestone progress and the next executable issue, derived from recorded facts'
expect:
exit: 0
stdout_contains: ['^M000 +PLANNED', 'next ready issue: I0001']
- id: show
run: ['plan', 'show', 'I0001']
note: 'the full record of one issue, including the evidence it requires before it may complete'
expect:
exit: 0
stdout_contains: ['^# I0001', 'READY.*derived', 'wave']
- id: roadmap
run: ['plan', 'roadmap']
note: 'milestones in derived order, with now and next; no document is a second authority for this'
expect:
exit: 0
stdout_contains: ['^now: M000']
- id: body
run: ['plan', 'body', 'I0001']
note: 'the provider-neutral projection body of one record, the same one the GitHub projection renders'
expect:
exit: 0
stdout_contains: ['^# I0001']
then:
- 'completion is refused while a required evidence item is missing'
- 'the roadmap is derived from milestone state, never written'
- 'a hand edit inside a generated GitHub region is reported rather than kept'
An issue completes only when its evidence exists in the repository, status is derived and stored nowhere, and the roadmap and the GitHub issues are projections of the one model rather than second authorities.
-
milestone progress and the next executable issue, derived from recorded facts
ID STATUS DONE TITLE
M000 PLANNED 0/2 Milestone M000
active milestone: M000
next ready issue: I0001 — Issue I0001
- exit 0
- stdout_contains /^M000 +PLANNED/
- stdout_contains /next ready issue: I0001/
-
the full record of one issue, including the evidence it requires before it may complete
# I0001 — Issue I0001
| field | value |
|---|---|
| status | **READY** (derived) |
| milestone | M000 |
| wave | 0 |
| priority | p1 |
| profile | implementation |
| parallel safe | true |
| canonical | `.ai/repo/project/issues/I0001.yaml` |
## Objective
Do the bounded piece of work called I0001.
## Scope
- `src/I0001`
## Dependencies
None. This issue is a root of the graph.
## Acceptance Criteria
- [ ] The work is done
## Validation
- `true`
## Evidence Required
- proof
## Execution Notes
Risk:
This body is generated from the canonical record by `majordomus plan body I0001`.
Edit the YAML, not this text.
## Completion Report
- exit 0
- stdout_contains /^# I0001/
- stdout_contains /READY.*derived/
- stdout_contains /wave/
-
milestones in derived order, with now and next; no document is a second authority for this
RELEASED STATUS MILESTONE TITLE
- PLANNED M000 Milestone M000
now: M000 — Milestone M000
- exit 0
- stdout_contains /^now: M000/
-
the provider-neutral projection body of one record, the same one the GitHub projection renders
# I0001 — Issue I0001
| field | value |
|---|---|
| status | **READY** (derived) |
| milestone | M000 |
| wave | 0 |
| priority | p1 |
| profile | implementation |
| parallel safe | true |
| canonical | `.ai/repo/project/issues/I0001.yaml` |
## Objective
Do the bounded piece of work called I0001.
## Scope
- `src/I0001`
## Dependencies
None. This issue is a root of the graph.
## Acceptance Criteria
- [ ] The work is done
## Validation
- `true`
## Evidence Required
- proof
## Execution Notes
Risk:
This body is generated from the canonical record by `majordomus plan body I0001`.
Edit the YAML, not this text.
## Completion Report
- exit 0
- stdout_contains /^# I0001/
The chain from this page to the code: the use case names commands, rules and claims; each rule is dispatched from the registry and each claim names the test that proves it; the scenario above executed the commands. Nothing in this chain is prose about intent.
Computed from what they share: claims, rules, commands, category, applications. Nobody maintains this list.