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

What Majordomus leaves in a repository it adopts is not decided anywhere; it is the sum of what each subsystem happened to write. Provider files at the root, scripts, configuration beside configuration, generated registries that became inputs, and no record of which of them Majordomus put there. The costs compound in three directions at once. A person cannot tell what is theirs and what is the tool's, so nothing can be safely removed. A second provider means a second copy of the same instructions rather than a second adapter. And every subsystem rediscovers the repository for itself — the CLI, the environment entry, the documentation, the server — so the same facts are read four ways and disagree on the fourth.

The outcome

Adoption is a reconciliation, not a template copy. One typed repository model is discovered once and every consumer reads it. A desired integration is computed from that model, diffed against what the repository actually holds, and applied as the smallest mutation that closes the gap — with everything Majordomus owns living under .ai/ and .majordomus/, and anything outside those two namespaces reduced to a small managed bridge whose ownership is recorded. Running the reconciliation twice changes nothing the second time, and uninstalling gives back exactly what was taken and nothing a person authored.

Where it stands

.ai/ and .majordomus/ both exist and carry real material, and directory contracts are already enforced under .ai/ (ADR 0011). Against that: provider bootstraps are generated to the root, the environment entry and the CLI each discover the repository their own way, init writes what it was written to write rather than what the repository lacks, no ledger records what was placed outside the two namespaces, and nothing can undo an adoption.

Where it should stand

majordomus init on a foreign repository adds .ai/, .majordomus/, a managed block in AGENTS.md and — when direnv is wanted — one stable line in .envrc. A second run reports no change. majordomus uninstall removes what the ledger records and leaves authored knowledge alone. Adding a valid artifact under a discoverable namespace registers it everywhere, and no list anywhere enumerates what discovery already finds.

In scope

  • apps/majordomus-cli/src
  • .ai/repo/rules/project
  • .ai/repo/adrs
  • .majordomus
  • share/schemas
  • share/skeleton
  • docs
  • test/cases
  • .github/workflows

Out of scope

  • A configuration format that restates what the repository can be inspected for
  • Rewriting a working subsystem for symmetry rather than for a defect
  • Deleting user-authored content on any path, under any flag, without an explicit and separate instruction
  • A second worktree convention, a second handover format or a second doctor
  • Provider-specific semantics anywhere but an adapter

Proven when

  • Everything Majordomus persists in an adopted repository lives under .ai/ or .majordomus/, and every exception outside them is a bridge recorded in the ownership ledger
  • One typed repository model is discovered once per process and every consumer — CLI, environment, API, MCP, Cockpit, documentation, providers, completion — reads that model rather than the filesystem
  • The desired integration is a value, the plan is a diff against what is there, and the apply is the smallest mutation that closes it
  • A second init on a conforming repository produces no change, proved by a test rather than by observation
  • uninstall reverses every recorded mutation, refuses to touch a bridge a person has edited, and leaves .ai/ authored content in place by default
  • Every generated artifact declares its provenance, its generator and the inputs it derives from, and no generated artifact is read back as canonical input
  • No hand-maintained list enumerates artifacts that discovery finds, and adding a valid artifact registers it in every consumer with no second edit
  • Environment entry stays local and bounded, with no network and no build, and its cost is measured against a declared budget
  • Every invariant above is a project rule with a check that CI executes, each 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.

two-folder-integration · order 90 · p1

A repository that adopts Majordomus gains two directories and two lines, and can give them back

activeClose

Done
0 of 23
Ready now
none
Blocked
22
Waits for
none
Blocked by
none
Unblocks
none
Serves
none

Critical path

  1. I1101
  2. I1105
  3. I1106
  4. I1108
  5. I1109
  6. I1112
  7. I1114
  8. I1115
  9. I1123

Issues

IssueStatusPriorityWaveBlocked by
I1101What this tool leaves behind, established by inspection rather than by memoryverifyp00none
I1102The two namespaces are a typed contract, not a habitblockedp01I1101
I1103Whether a file is authored or derived is a field, not a naming conventionblockedp02I1102
I1104Both namespaces carry their contracts, all the way downblockedp12I1102
I1105The repository is discovered once, into one modelblockedp01I1101
I1106The registries are views of the model, not separate discoveriesblockedp02I1105
I1107Discovery is deterministic, cached, and its cost is knownblockedp13I1106
I1108The desired integration is a value, and the plan is a diffblockedp03I1106
I1109Everything placed outside the two namespaces is recorded, with what it wasblockedp04I1108
I1110The second run changes nothing, and a test says soblockedp05I1109
I1111Uninstall gives back exactly what was takenblockedp05I1109
I1112What touches the root is two small blocks, and they never change againblockedp05I1109
I1113Entering a directory is local, bounded and silent about the networkblockedp16I1112
I1114A provider is an adapter over the model, and adding one is an implementationblockedp16I1112
I1115Completion comes from the command model, not from a second listblockedp27I1114
I1116This repository's own footprint moves, through the reconcilerblockedp06I1110I1112
I1117The hand-maintained lists are removed, not left running beside the derivationblockedp13I1106
I1118Every invariant of this milestone is a rule with a check that runsblockedp07I1110I1116
I1119The budgets are measured, and a regression fails rather than being noticedblockedp27I1113
I1120A refusal says what to do about itblockedp14I1108
I1121Every surface shows the integration from the one modelblockedp16I1112
I1122A foreign repository, adopted, upgraded and given backblockedp07I1110I1111I1116I1121
I1123The milestone is accepted on its evidenceblockedp08I1104I1107I1115I1117I1118I1119I1120I1122

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.list190 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