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
The executable already declares a capability once and projects it into MCP, HTTP, OpenAPI, Swagger, the command line and now the Cockpit (ADR 2, ADR 4, ADR 12). Everything the repository knows that is not a capability is outside that model: the skills, the rules, the decisions, the documents, the use cases, the examples, the benchmarks and the deployment are each authoritative in their own directory and related to the capabilities only in the reader's head. The Cockpit, the landing page, the navigation, the site indexes and the search each therefore assemble their own view of what exists, and every new subsystem costs an edit in each of them. The failure this produces is not visual: a capability with no documentation, no test and no enforcement looks exactly like one that has all three, because nothing resolves the relation.
The outcome
One typed, deterministic capability graph composes the registries that already own their facts — it does not replace them — and adds typed relations between them that are inferred where a stable convention exists and declared where it does not. Both the running server and the published site render from that one graph: the static projection is the snapshot, the runtime projection is the snapshot plus live state. Navigation, overview, detail, search, the relation view and the coverage matrix are all derived, a dangling relation fails generation rather than rendering as a missing section, and a capability that exists with no documentation, no test or no enforcement is visible as such rather than indistinguishable from one that has them.
Where it stands
The Cockpit is a projection of the registry and the index with its own graph derivation (ADR 12, feature/ai-artifacts). Web surfaces are being made discoverable from their producers (ADR 13, in flight). Skills, rules, decisions, use cases, documents, benchmarks and — after the deployment milestone — deployments are each indexed as kinds, and none of them is related to a capability by anything a machine reads.
Where it should stand
A contributor registers a capability in the subsystem that owns it, runs generation, and the Cockpit, the navigation, the search, the graph, the documentation index, the coverage matrix, the static snapshot and the runtime metadata all change. Nothing else has to be edited, and CI refuses a change that leaves any of them stale.
In scope
- apps/majordomus-cli/src/graph.rs
- apps/majordomus-cli/src/capability
- apps/majordomus-cli/src/cockpit
- apps/majordomus-cli/src/generate.rs
- share/cockpit
- site
- docs
- .ai/repo/rules/project
- .ai/repo/adrs
- .ai/repo/skills
- test/cases
- .github/workflows
Out of scope
- A hand-maintained menu, page list or capability inventory in any format, including a YAML one
- Replacing any registry that is already authoritative for what it owns
- A client-side application framework; the Cockpit stays server-rendered with progressive enhancement
- A layout description language with coordinates, columns or component trees as data
- An external search service for a graph this size
- Mutating controls in the Cockpit beyond what the existing authorisation architecture already makes safe
Proven when
- The graph composes the existing authoritative registries and introduces no second store of what they own
- Every node has a stable identity that survives a title change, identities are unique, and generation is deterministic over identical inputs
- Relations are typed, inferred only from stable conventions, and a relation that does not resolve fails generation with a message naming both ends
- The static and the runtime projections come from the same graph, and their representations are equal once runtime-only fields are removed
- A surface that requires a running backend is not offered as usable in the static projection, and that decision comes from availability metadata rather than from any check on the page's location
- Navigation, overview, detail, search and the coverage matrix are all derived, and adding a capability requires no edit to any of them
- The coverage matrix reports documentation, tests, enforcement and benchmarks only where an artifact or a resolved relation supports the claim
- The Cockpit is usable on a narrow phone viewport and its core information is present before JavaScript runs
- Each enforcement rule introduced here has a check that CI executes, proved by a negative test
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.
capability-graph · order 80 · p1
One capability graph, two projections, and no second inventory of what this repository can do
activeClose
- Done
- 9 of 32
- Blocked
- 15
- Waits for
- none
- Blocked by
- none
- Unblocks
- none
- Serves
- none
Critical path
Issues
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.list344 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