Roadmap
From intent to impact, in the order the plan's dependencies allow.
Every milestone of the plan with the issues it holds, and the intents the work serves.
- NowM002plan.roadmap /now
- NextM003plan.roadmap /next
- Milestones41plan.roadmap /milestones
- Intents5intents.list /intents
What it is for
The milestone's own record: why it exists, what it promises, and what would prove it.
The problem
This repository models the work: milestones are outcomes, issues are execution contracts, commits trace to issues and claims trace to recorded runs. Nothing above the milestone records what must become true for a person, so no command can say which outcome a change serves, whether a set of finished milestones achieved what they were for, or which intents have no work and which work has no intent. The public site stated as much: 'There is no intent object, no intent registry and no intent id.' An intent lived only in a prompt, and a prompt is unversioned, unenforced and gone when the session ends.
The outcome
An intent is a typed record above the milestones that realise it: a statement, its invariants, and satisfaction criteria each naming the evidence that settles it. Its stage is derived from the plan's milestone status and its satisfaction from the evidence ledger, never stored. A gate refuses an intent that names no milestone or evidence that resolves to nothing, a session's preflight names the intent its work serves or refuses, the Cockpit shows intents with measured and enforced coverage of its scripts, and a milestone closes on GitHub only when the intents it serves are satisfied.
Where it stands
Milestones and issues are validated by majordomus plan validate; claims are joined to recorded runs by majordomus evidence. There is no intent kind, no intent capability and no gate that relates work to an intent.
Where it should stand
A worker asks which intent a change serves and one capability answers from the plan, or refuses naming the missing link. A reader asks whether an intent is satisfied and the answer is derived from recorded evidence, not from a merged pull request.
In scope
- .ai/repo/project
- .ai/repo/ci/gates.yaml
- .ai/repo/rules/project
- .ai/repo/adrs
- apps/majordomus-cli/src
- share/schemas/majordomus/intent
- share/kinds.yaml
- share/cockpit
- site/data
- test/cases
Out of scope
- A second task lifecycle beside the plan; the stage is derived and nothing transitions
- Storing an intent status, or stamping an intent from a merge
- Deriving a plan from an intent automatically
Proven when
- Slice 1 — typed record and gate: the intent kind, its schema in the distribution and the skeleton, the read-only capabilities intents.list, intents.record, intents.validate and intents.preflight on every surface, and the intent-check gate refusing an invalid intent model
- Slice 2 — satisfaction is decided by evidence alone (ADR 0107): completion discharges obligations and never decides whether an intent is satisfied; the intent engine is the one authority for a criterion's verdict, and a derived
verdictanswers satisfaction separately from the plan-derived stage - Slice 3 — preflight join: devcontext and the session start name the intent the task serves, from intents.preflight, and load its governance
- Slice 4 — Cockpit Intent view, with the Cockpit's JavaScript coverage measured and enforced by a gate
- Slice 5 — GitHub reconciliation: milestones projected with the intent they serve, and a closure gate that refuses to close a milestone whose intents are unsatisfied
objects.get0 msAPI/api/v1/objectMCPmajordomus_gettechnical view
Milestone
One milestone of the plan: what it holds, what can start, and what it waits for.
intent-lifecycle · order 96 · p1
Work is traceable to the intent it serves, and an intent is satisfied only by evidence
plannedClose
- Done
- 0 of 2
- Ready now
I1900- Blocked
- 1
- Waits for
- none
- Blocked by
- none
- Unblocks
intent-planning- Serves
intent-lifecycle
Critical path
Issues
| Issue | Status | Priority | Wave | Blocked by |
|---|---|---|---|---|
| I1900An intent is a typed record whose stage and satisfaction are derived | ready | p1 | 0 | none |
| I1903The work realising an intent is joined across episodes, providers and handovers | blocked | p1 | 1 | I1900 |
plan.roadmap0 msAPI/api/v1/plan/roadmapMCPmajordomus_plan_roadmaptechnical view
plan.issues0 msAPI/api/v1/plan/issuesMCPmajordomus_plan_issuestechnical view
Milestones
Every milestone, in the plan's order; the plan declares no dates, so none are drawn.
plan.roadmap0 msAPI/api/v1/plan/roadmapMCPmajordomus_plan_roadmaptechnical view
Intents
What the work is for, and whether the evidence says it is met.
intents.list171 msAPI/api/v1/intentsCLImajordomus intent listMCPmajordomus_intentstechnical view
Issues by status
Every issue of the plan, counted by the plan.
- active1
- blocked159
- cancelled10
- done161
- ready86
- verify7
plan.status0 msAPI/api/v1/plan/statusMCPmajordomus_plan_statustechnical view
Dependencies
Which milestone waits for which, as the plan records it.
| Milestone | Depends on | Blocked by |
|---|---|---|
| runtime-adapters | foundation | |
| intent-planning | intent-lifecycle | intent-lifecycle |
| execution-telemetry | runtime-adapters | runtime-adapters |
| intent-bound-work | intent-planning | intent-planning |
| cost-per-accepted-outcome | execution-telemetry | execution-telemetry |
| routing-recommendations | cost-per-accepted-outcome | cost-per-accepted-outcome |
| shared-policy | routing-recommendations | routing-recommendations |
plan.roadmap0 msAPI/api/v1/plan/roadmapMCPmajordomus_plan_roadmaptechnical view