Skip to content

Read at

A snapshot: read at commit 707a04c7ce8 on 2026-10-18T00:01:48Z by majordomus 0.29.0. Nothing on this page is read again. See it live

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

  1. I1011
  2. I1018
  3. I1019
  4. I1027
  5. I1030

Issues

IssueStatusPriorityWaveBlocked by
I1001One typed graph composes the registries that already own their factsdonep00none
I1002Relations are typed, inferred from stable identities, and never dangledonep01none
I1003Skills, rules, decisions, documents, use cases and benchmarks enter the graph as themselvesdonep01none
I1004Availability and visibility are metadata, not conditions in a templatedonep01none
I1005The graph is a generated artifact with a schema and no unsafe fielddonep02none
I1006The runtime reads the graph through the registry, like every other readdonep13none
I1007The site renders the same graph, generated oncereadyp03none
I1008The two projections are proved to be the same modelblockedp04I1007
I1009Every menu in this repository comes from one derivationreadyp03none
I1010The overview is what exists, counted rather than claimedreadyp13none
I1011The coverage matrix reports evidence, and never a green cell without onereadyp02none
I1012One detail view, assembled from what a node actually hasreadyp13none
I1013Search over the graph, generated, with nothing to runblockedp24I1007
I1014The relation view reads the graph and holds no data of its ownblockedp24I1007
I1015A surface with no server behind it is not offered as if it had onedonep02none
I1016The Cockpit works on a phone and before JavaScript runsblockedp04I1009
I1017Live state is an overlay that degrades to nothingreadyp24none
I1018The surface rules exist as checks, proved by making them failblockedp03I1011
I1019One skill runs the whole loop, and is itself in the graphblockedp24I1018
I1020The graph's health is answered by the doctor that already answers everything elseblockedp14I1007
I1021A browser proves the interface, at the widths people useblockedp15I1014I1016
I1022Drift in any derived surface fails the buildblockedp04I1007
I1023Nothing private reaches a published pagereadyp03none
I1024The interface has a weight, and it is measuredblockedp25I1014
I1025The federated model and its two projections are an architecture decisiondonep11none
I1026The architecture explains itself, from inside itselfblockedp14I1012
I1027A synthetic capability proves the architecture instead of describing itblockedp05I1018I1019
I1028The inventories this replaces are removed, not left running beside itblockedp14I1009
I1029The gate refuses what would silently break the interfaceblockedp16I1021I1022I1023
I1030The milestone is accepted on its evidenceblockedp07I1010I1013I1017I1020I1024I1026I1027I1028I1029
I1031A served surface says which checkout it is servingverifyp10none
I1966The composed graph is whole or its generation refusesdonep10none

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.

MilestoneStateIssues done
M000Milestone and DAG driven developmentdone15 of 15
M001A blocking question survives a handoverdone4 of 4
M002A durable record names the worker that wrote itactive1 of 4
M003A session is a durable envelope, and knowledge is compiled from what is already canonicalactive11 of 16
M004Performance is executable evidence, and the hot path does no canonical work twiceactive16 of 38
foundationA supervisory control layer that is real rather than describeddone0 of 0
fly-deploymentThe container image is a projection of the repository model, and its smoke is its evidenceactive4 of 32
web-sign-inThe deployed surfaces know who is asking, and the identity providers are dataplanned0 of 8
capability-graphOne capability graph, two projections, and no second inventory of what this repository can doactive9 of 32
external-workspacesAn external workspace is read the way this repository reads anything else, and its content never becomes public by accidentactive1 of 10
two-folder-integrationA repository that adopts Majordomus gains two directories and two lines, and can give them backactive0 of 23
derived-data-integrityA committed derivation describes something it can be a projection ofverify1 of 1
work-graph-githubThe projection to GitHub is gated, identified and traversable, and a merged pull request leads back to the outcome it servedverify10 of 10
intent-lifecycleWork is traceable to the intent it serves, and an intent is satisfied only by evidenceplanned0 of 2
development-runtimeThe runtime has a development surfaceactive38 of 70
test-evidenceEvery verifiable claim and widget resolves to revision-bound test evidence, on every surfaceactive12 of 28
public-proofA visitor sees the product prove itself, and can check every claim it makesactive1 of 2
adopter-upgradesAn adopting repository survives a Majordomus upgrade, and what the tool vendors into it is adopter-neutralactive10 of 17
a-second-adopter-is-servedA second adopter is served: what a foreign repository met on its first day is fixed in the toolactive0 of 1
a-session-leaves-what-it-observedA session leaves what it observed, and the repository routes itdone3 of 3
automationRepository automation is scripted capabilities over typed Rust, not shellactive2 of 5
runtime-trustA runtime is safe to reach from another machine, and joining the mesh trusts nobody by accidentactive5 of 9
runtime-lifecycleOne usable server per checkout starts, attaches, stops and reports its state without races or hidden killsactive5 of 8
mesh-journal-convergesThe cooperation journal is durable, converges under any delivery order, and never lets a stale claim winactive2 of 5
mcp-transports-are-reliableEvery MCP transport delivers each request at most once, bounds what it carries, and honours cancellationverify2 of 2
surfaces-never-disagreeEvery surface projects the same state, says when it was observed, and keeps no list of its ownactive1 of 6
failure-is-visibleEvery failure the runtime can suffer is bounded, tested or stated, and changes the health it reportsactive3 of 4
architecture-is-enforcedA violated invariant fails a gate, and green means every required check ranactive2 of 3
safe-self-updateEvery mesh node follows the published release by itself, versions meet safely, and a release's provenance can be checkedactive2 of 7
every-session-joins-the-meshEvery LLM session joins the Majordomus mesh at start, told the mesh as workplanned0 of 4
truthful-plan-surfacesThe plan's surfaces are inferred from delivery, and nothing they show is typed beside the repositoryactive0 of 9
idd-workspaceThe UI is where the owner directs the work, from an intent to its next moveactive0 of 1
everything-is-followed-in-one-streamEverything that happens in the repository is followed in one streamactive1 of 8
the-mesh-works-out-of-the-boxThe mesh works out of the box: trusted machines find each other by every means and their sessions cooperate from the first turnplanned0 of 6
runtime-adaptersProfiles become runtime constraints rather than adviceplanned0 of 6
intent-planningThe plan of an intent is held to it before executionblocked0 of 2
execution-telemetryExecution telemetry, only from providers that expose it honestlyblocked0 of 5
intent-bound-workA task is bound to the intent it servesblocked0 of 5
cost-per-accepted-outcomeCost per accepted outcome, only on measured datablocked0 of 4
routing-recommendationsRouting recommendations derived from measured costblocked0 of 4
shared-policyShared policy across repositories and workersblocked0 of 5

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.

View all
424issues
  • 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.

MilestoneDepends onBlocked by
runtime-adaptersfoundation
intent-planningintent-lifecycleintent-lifecycle
execution-telemetryruntime-adaptersruntime-adapters
intent-bound-workintent-planningintent-planning
cost-per-accepted-outcomeexecution-telemetryexecution-telemetry
routing-recommendationscost-per-accepted-outcomecost-per-accepted-outcome
shared-policyrouting-recommendationsrouting-recommendations

plan.roadmap0 msAPI/api/v1/plan/roadmapMCPmajordomus_plan_roadmaptechnical view