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

Majordomus has no deployment at all: no container, no hosting provider, no way for anyone who is not standing in front of this checkout to see the layer it serves. The obvious repair is the wrong one. A Dockerfile and a fly.toml written by hand would be a second description of facts the repository already holds — the port the server binds, the routes it registers, the assets the site build produces, the binary the workspace names — and every one of those pairs would drift the first time one half changed. The repository already refuses that shape everywhere else: capabilities are declared once and projected into CLI, HTTP, MCP, OpenAPI, docs and the site, and generate --check fails when a projection is stale. A deployment must arrive the same way or not at all.

The outcome

One canonical deployment object under .ai/repo/deployments/ describes the image; a typed Rust model parses and validates it; the Dockerfile, its ignore file, the GHCR image that docker-image.yml and release.yml build, its smoke derived from the route registry, the doctor checks, the documentation and the cockpit view are projections of that object and of the capability registry, each checked for drift. The published image runs as a non-root user, carries no secret and no developer path, answers live and ready in its smoke, and has measured size, cold-start and memory baselines. Re-scoped 2026-10-14 from a Fly.io deployment, which the owner disconnected on 2026-10-12.

Where it stands

Measured 2026-10-14 on master e28daccd9b: .ai/repo/deployments/majordomus.yaml is the canonical object; deploy/Dockerfile and its ignore file are generated from it (Alpine, uid 10001, exec-form entrypoint); docker-image.yml builds and smoke-tests the image on pull requests and on master, and release.yml publishes it to GHCR; .github/actions/image-smoke checks the image runs as non-root and answers /api/v1/live and /api/v1/ready; deploy.list, deploy.get, deploy.check and deploy.observed are capabilities. Missing: a smoke derived from the route registry, a secret and developer-path scan of the image, an SBOM, size, cold-start and memory baselines, a documentation page. The object still carries region, machines and resources, which nothing reads since Fly.io was disconnected on 2026-10-12.

Where it should stand

The GHCR image is a projection of the canonical object like every other artifact: generated, checked for drift, smoke-tested from the route registry, scanned for secrets and developer paths, measured against recorded budgets, documented and shown in the cockpit. Whether region, machines and resources leave the deployment/v1 schema is decided and recorded.

In scope

  • .ai/repo/deployments
  • .ai/repo/adrs
  • .ai/repo/rules/project
  • .ai/repo/policy.yaml
  • apps/majordomus-cli/src/deploy
  • apps/majordomus-cli/src/capability/builtin
  • apps/majordomus-cli/src/http
  • deploy
  • share/kinds.yaml
  • share/allow
  • share/schemas
  • docs
  • site
  • test/cases
  • .github/workflows

Out of scope

  • Any dependency, in code, script, documentation, CI or default, on ~/dev/prismatic-platform
  • A provider abstraction covering hosts other than the one this repository deploys to
  • Kubernetes, Nomad, buildpacks, Nixpacks or a second container implementation
  • A persistent volume, a database or any stateful service, unless a measured requirement forces one
  • Mutating deployment operations exposed to unauthenticated HTTP or to the browser
  • Profile-guided optimisation

Proven when

  • One canonical deployment object is the only place the port, the region, the resources, the Machine count, the health routes, the build inputs and the budgets are stated
  • Every image artifact — the Dockerfile and its ignore file — is generated, marked as generated with its source and its regeneration command, and fails generate --check when edited by hand
  • The deployment reads are declared once in the capability registry and appear in the CLI, the HTTP API, MCP, OpenAPI and the generated documentation without a second registration
  • The smoke suite is derived from the route registry; no second list of endpoints exists anywhere
  • The production image runs as a non-root user, contains no build toolchain, no repository history, no secret and no absolute developer path
  • The published image answers live and ready in its smoke, run from outside the container on a free host port
  • Image size, binary size, build context size, cold start, resident memory and endpoint latency are measured, recorded as baselines and gated against unexplained regression
  • No credential is written to the repository, to a Docker layer, to a generated file, to the site or to a log, and the image is published with the workflow's own token
  • Every rule this milestone states is enforced by a check that CI executes

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.

fly-deployment · order 70 · p1

The container image is a projection of the repository model, and its smoke is its evidence

activeClose

Done
4 of 32
Blocked
14
Waits for
none
Blocked by
none
Unblocks
none
Serves
none

Critical path

  1. I0905
  2. I0909
  3. I0912
  4. I0930
  5. I0923
  6. I0932

Issues

IssueStatusPriorityWaveBlocked by
I0901The deployment description is a kind of the layer, not a provider filedonep00none
I0902The deployment object becomes typed Rust that refuses nonsensedonep01none
I0903Deployment reads are declared once and projected everywheredonep02none
I0904The listen address is one fact with two projectionsdonep02none
I0905Liveness and readiness are registered capabilities, not router hacksreadyp02none
I0906Termination is graceful and proved against the real containerreadyp13none
I0907The running process says what it is, from an allowlistreadyp12none
I0908A hosted process has no repository, and says so instead of failingreadyp02none
I0909The production image is a generated projection of the build specificationblockedp03I0905
I0910The release profile is chosen by measurement, not by folkloreblockedp14I0909
I0911A source change does not rebuild the world, and the context stays smallblockedp14I0909
I0912The image serves the site the canonical pipeline producedblockedp04I0909
I0913The provider configuration is generated, and the cheap profile is declaredcancelledp03none
I0914One deployment core, one command, and a dry run that mutates nothingcancelledp04I0909I0913
I0915Deployment joins the diagnostics that already existcancelledp05I0914
I0916The smoke suite is derived from the route registry, never written twiceblockedp05I0905I0914
I0917A bad deployment can be undone deterministicallycancelledp15I0914
I0918The bootstrap credential is used once and belongs to nothingcancelledp02none
I0919Nothing secret and nothing local leaves in the imageblockedp04I0909
I0920The image's dependencies are known and its advisories are policyblockedp24I0909
I0921Size is measured first and budgeted secondblockedp15I0910I0911
I0922The memory hypothesis is tested, not assertedcancelledp06I0930
I0923Cold start and endpoint cost are benchmark targets like everything elseblockedp16I0930
I0924The decision is recorded where architecture decisions are recordedcancelledp11none
I0925Every deployment rule is a check that runsblockedp06I0915
I0926The deployment documentation is generated and reachableblockedp14I0913I0924
I0927The cockpit shows the deployment from the same datareadyp23none
I0928A pull request cannot merge a deployment that would not workblockedp06I0919I0921I0930
I0929Production deploys from CI with a token scoped to one applicationcancelledp18I0918I0931
I0930The real image runs under the real limits before anything is deployedblockedp05I0906I0909I0912
I0931The application exists, one machine runs it, and the URL answerscancelledp07I0913I0914I0916I0917I0918I0922I0930
I0932The milestone is accepted on its evidenceblockedp09I0920I0923I0925I0926I0927I0928I0929I0931

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