A snapshot: read at commit 707a04c7ce8 on 2026-10-18T00:06:01Z by majordomus 0.29.0. Nothing on this page is read again. See it live
The product, composed
Every stable feature of the product, the capability modules, shell commands and object kinds it is made of, and the interfaces those project onto: the command line, the HTTP API, MCP, the Cockpit and the documentation. Every edge is derived from a feature's typed references and the registry's exposures; a feature that named something the repository does not have would fail validation rather than draw an edge to nothing.
Where it comes from
- Derived from
- the features of the layer, the capability registry and the command registry
- Nodes
153- Edges
548- Acyclic
- no
- As data
- /api/v1/graph
Graph
The drawing is an enhancement. Everything it shows is in the lists below, which is what a reader without JavaScript, a crawler and a screen reader get.
What the shapes mean
Nodes
- command
- a public command of the shell tool
- feature
- one product feature, as its file declares it
- kind
- one kind of object of the layer
- module
- a capability module of the executable
- surface
- an interface a feature is exposed through
Edges
- exposed_through
- the module, command or kind is reached through that interface
- made_of
- the feature is made of that module, command or kind
- related_to
- the feature names that one as related
Nodes
| Node | Kind | Summary | Status | Now | Source |
|---|---|---|---|---|---|
| majordomus adr | command | The repository's architecture decisions as objects: list, show, ask for the next free identity, propose one with provenance, and validate the whole set against this tree and every other ref. | conclude | - | share/commands.yaml |
| majordomus archive | command | Take a snapshot of the tracked tree that can be read, or checked, somewhere else. | inspect | - | share/commands.yaml |
| majordomus bench | command | Time every public command of the registry, cold and warm, and compare with the baseline. | inspect | - | share/commands.yaml |
| majordomus capture | command | Record the person's raw prompts from a provider hook as a record with its renderings, draw the episode boundary from the provider's own lifecycle hooks, install those hooks, reconcile and prune the archive, and report what each provider actually does here. | work | - | share/commands.yaml |
| majordomus check | command | Is the current task still consistent with its policy, its scope and this checkout? | verify | - | share/commands.yaml |
| majordomus checkpoint | command | Record compact progress inside the active task, so the next worker does not start over. | work | - | share/commands.yaml |
| majordomus context | command | What the next worker needs to know now, in authority order and within a budget. | work | - | share/commands.yaml |
| majordomus decision | command | Record a decision that was made between real alternatives, with its reason, and read them back. | work | - | share/commands.yaml |
| majordomus doctor | command | It checks governance only: is Majordomus itself healthy, and is every enforcement it declares actually wired here? | inspect | - | share/commands.yaml |
| majordomus doctrine | command | What rules are enforced, by what, and whether each one is actually wired. | inspect | - | share/commands.yaml |
| majordomus evidence | command | Record evidence against the active task: one obligation it declared, discharged, or one validation gate of the CI model that has reported — each as a ledger line carrying the hash of the files it was taken over. | work | - | share/commands.yaml |
| majordomus finish | command | Evaluate the finish contract and refuse the outcome if any line of it is unmet. | conclude | - | share/commands.yaml |
| majordomus handover | command | Write an append-only continuation record, and resolve the most relevant prior one. | conclude | - | share/commands.yaml |
| majordomus history | command | Read the append-only ledger back, filtered by task, event or time. | inspect | - | share/commands.yaml |
| majordomus init | command | Create the .ai/ layer in this repository, and refuse to overwrite an existing one. | setup | - | share/commands.yaml |
| majordomus knowledge | command | The compiled index over what this repository states, and the candidate records it derives from what an episode did. | inspect | - | share/commands.yaml |
| majordomus migrate | command | Move pre-.ai project data from .majordomus/ into .ai/, explicitly and backed up. | setup | - | share/commands.yaml |
| majordomus plan | command | The milestone and issue model — validate it, read it, and move one issue through it. | begin | - | share/commands.yaml |
| majordomus prompt | command | List, show and render the repository's own prompt assets, substituting known tokens only. | work | - | share/commands.yaml |
| majordomus question | command | Open a question that blocks acceptance, resolve it, and list what is still open. | work | - | share/commands.yaml |
| majordomus recover | command | Close episodes nobody ended, fold duplicate records, classify the stores' stray files. | setup | - | share/commands.yaml |
| majordomus rules | command | The effective rule set, vendored baseline plus project rules. | inspect | - | share/commands.yaml |
| majordomus search | command | Find a durable record without reading all of them, in authority order. | inspect | - | share/commands.yaml |
| majordomus session | command | Open, inspect and close one execution episode. | begin | - | share/commands.yaml |
| majordomus skills | command | The repository's skills — provider-neutral procedures under the skills section — listed, shown and checked from the one catalogue every surface reads. | work | - | share/commands.yaml |
| majordomus start | command | Begin one scoped task under a profile, and refuse while another is active. | begin | - | share/commands.yaml |
| majordomus update | command | Regenerate every provider instruction file from the one policy, deterministically. | setup | - | share/commands.yaml |
| majordomus usecase | command | The executable use cases: list, show, validate, run against the real tool, coverage, impact, scaffold. | verify | - | share/commands.yaml |
| majordomus version | command | Print the version, without needing a repository or an installation. | inspect | - | share/commands.yaml |
| majordomus watch | command | What has drifted since the last update — policy, projections, state, retention. | inspect | - | share/commands.yaml |
| Benchmarks | feature | The benchmark targets are derived from the registry, so a capability nothing times cannot be merged; runs are compared with a tracked baseline per platform under a regression policy; the shell tool reports where every command's time went; and derived state is computed once per state version rather than per call. | stable | - | .ai/repo/features/benchmarks.md |
| CI | feature | The gate model names every validation gate and which classes of paths select it; the workflow is a thin adapter over that plan; the publication path proves the committed derived data current by its input hash and renders it; and the tool supervises its own repository with its own hooks. | stable | - | .ai/repo/features/ci.md |
| Cockpit | feature | At /cockpit the shared server lays out what a capability answered — the registry explorer, every object of the layer, the derived graphs, the directory contracts, the continuity of this checkout, the worktree topology, one health report naming the engine behind every check — and every page is complete HTML before any script runs. | featured | - | .ai/repo/features/cockpit.md |
| Commits | feature | The same parse the changelog reads the history with decides whether a new message passes. The policy is data in the repository's own policy file, its subject width measured from the history rather than taken from the convention. The scope vocabulary is observed from at most 1500 commits of the log, so a subsystem committed today is in it today and a scope nobody uses sinks on its own. A plan over the working tree carries a fingerprint of repository, worktree, HEAD and change set, so a plan acted on after the tree moved is refused rather than applied - and a change set holding generated files is one commit, because only the last of several could carry current derived data. | featured | - | .ai/repo/features/commit.md |
| Context | feature | Every README under .ai/ is a context document with an identity, a scope, the providers and audience it addresses and how it composes with its ancestors; the repository scope declares what a worker reads and what it never reads; and the briefing a worker gets is assembled from durable state within a line budget with every exclusion named. | stable | - | .ai/repo/features/context.md |
| Continuity | feature | Task state, checkpoints, handovers, decisions and open questions live in files outside every conversation; a session opens and closes into an immutable record; the person's prompts are captured by the provider's own hooks; and the next episode is briefed from those records, labelled by how far git has moved since. | featured | - | .ai/repo/features/continuity.md |
| Coordination | feature | A task claims its scope before the first edit; check and finish refuse a file outside it and report another worktree's overlapping claim; every client of the shared server is a peer that can announce its intent and paths; and each branch has exactly one worktree, derived from git. | featured | - | .ai/repo/features/coordination.md |
| Coverage | feature | scripts/rust-coverage is the one coverage authority: a single cargo-llvm-cov export, test code excluded from both sides of every fraction, one rule for lines, functions and regions. Three questions read that judgment — a crate-wide line floor, a floor over the session/continuity domain, and the changed-code differential gate that refuses new debt while leaving untouched legacy debt alone. The differential intersects the export with the lines git says a change touched against the branch's merge-base, working tree included, and distinguishes PASS, FAIL, UNKNOWN and BLOCKED so a crashed tool or an unresolvable base is never a silent green. | stable | - | .ai/repo/features/coverage.md |
| Declare once | feature | One typed declaration per capability, one file per object of the layer; every interface, generated document and page is derived from the registry those declarations build, and a stale projection fails the build. | featured | - | .ai/repo/features/declare-once.md |
| Doctrine | feature | Every rule is a portable Markdown object with front matter, and it is enforced in one of three declared modes: a validator the dispatcher runs, a gate or case that proves it, or a stated reason why no program can express it. Doctor walks the dispatch chain from the source, refusing a validator nobody declares and a declaration nothing runs; the proof graph walks the other relation, joining each rule to the tree and to the runs recorded against it, so that a rule naming a case which was deleted is reported as reading enforced rather than being it. | featured | - | .ai/repo/features/doctrine.md |
| Economics | feature | A task corpus runs in a real harness twice — without Majordomus and with it — and the provider's usage, the gate verdicts and the context compiler's counted selection are recorded as raw facts; one calculator derives pairs, distributions, seeded bootstrap intervals and the one statement the methodology's publication rule allows, projected to the CLI, HTTP, OpenAPI, MCP, the Cockpit, a generated report and the site; economics check refuses any savings number typed by hand. | stable | - | .ai/repo/features/economics.md |
| Evidence | feature | The claims matrix binds a claim to a test by path, and a path resolving says a file exists rather than that anything ran. The ledger records the latest execution of every test with its provenance; the join is derived on every read and answers, per claim, whether the repository can honestly call it proven, only-not-invalidated, stale, failing or never run. | featured | - | .ai/repo/features/evidence.md |
| Finish contract | feature | A task starts with a declared scope and a profile; check reports whether the task is consistent with policy, scope and state; finish evaluates the policy's contract — scope respected, verification ran, state updated, no open blockers, a note present — and refuses with the reproducing command when any line fails. | featured | - | .ai/repo/features/finish-contract.md |
| Install | feature | One distribution model owns every platform, artifact name and URL; the installer, the release build matrix, the installation guide, the website's install block and the public release metadata are generated from it, and a release publishes an artifact for every supported target or it is not published. | stable | - | .ai/repo/features/install.md |
| Interfaces | feature | The Rust executable serves the layer read-only over stdio MCP, MCP over HTTP, routes under /api/v1/, an OpenAPI document with a Swagger UI, and a command line, all derived from the capability registry; one shared server per repository, and every attached client is a peer the others can see. | stable | - | .ai/repo/features/interfaces.md |
| Knowledge | feature | Decisions are recorded with their reason and their task, open questions block acceptance until resolved, architecture decision records carry typed references to the rules, claims, files and tests they put in force, and the graph of all of it is derived from those references rather than drawn. | featured | - | .ai/repo/features/knowledge.md |
| Mesh | feature | Each runtime is a key-authenticated participant; discovery (multicast, broadcast, rendezvous, seeds) only finds candidates, and a signed handshake admits a link only for the same repository, a compatible protocol and a trusted key. Linked runtimes replicate one signed event journal every heartbeat and fold it into the same state everywhere, so an exclusive claim on one machine refuses an overlapping claim on another, a handover published on one is consumed on another, and a runtime that crashes expires everywhere on its own. The CLI, HTTP, OpenAPI, MCP and the Cockpit render the same state, and every guarantee is held by tests over real processes and a container lab on a real network. | featured | - | .ai/repo/features/mesh.md |
| Models | feature | share/models.yaml declares vendors and models in one place, in routing's preference order, with provenance stated and pricing deliberately absent; models.list and models.route project the catalogue and its explainable routing to the CLI, HTTP, OpenAPI, MCP and the Cockpit, credential presence is reported without any value being read, and nothing anywhere calls a model — the crate's no-network boundary stands. | featured | - | .ai/repo/features/models.md |
| Observatory | feature | At /ui/observatory, and at /ui/kiosk filling the window unattended, the shared server draws the machines of the mesh and their runtimes, the newest events of its journal, the milestones of the plan, the dimensions of health, the published releases and the sessions cooperating, from the same capabilities the other screens read. The published site carries it as a snapshot that says which commit it was read at. | featured | - | .ai/repo/features/observatory.md |
| Planning | feature | Milestones are outcome specifications and issues are execution contracts, one YAML file each; the dependency graph decides execution waves and the next ready issue; a milestone whose dependencies are not accepted is blocked whatever its own issues say; and the GitHub projection is rendered offline from the same model. | stable | - | .ai/repo/features/planning.md |
Edges
| From | Edge | To |
|---|---|---|
command:adr | exposed_through | surface:cli |
command:archive | exposed_through | surface:cli |
command:bench | exposed_through | surface:cli |
command:capture | exposed_through | surface:cli |
command:check | exposed_through | surface:cli |
command:checkpoint | exposed_through | surface:cli |
command:context | exposed_through | surface:cli |
command:decision | exposed_through | surface:cli |
command:doctor | exposed_through | surface:cli |
command:doctrine | exposed_through | surface:cli |
command:evidence | exposed_through | surface:cli |
command:finish | exposed_through | surface:cli |
command:handover | exposed_through | surface:cli |
command:history | exposed_through | surface:cli |
command:init | exposed_through | surface:cli |
command:knowledge | exposed_through | surface:cli |
command:migrate | exposed_through | surface:cli |
command:plan | exposed_through | surface:cli |
command:prompt | exposed_through | surface:cli |
command:question | exposed_through | surface:cli |
command:recover | exposed_through | surface:cli |
command:rules | exposed_through | surface:cli |
command:search | exposed_through | surface:cli |
command:session | exposed_through | surface:cli |
command:skills | exposed_through | surface:cli |
command:start | exposed_through | surface:cli |
command:update | exposed_through | surface:cli |
command:usecase | exposed_through | surface:cli |
command:version | exposed_through | surface:cli |
command:watch | exposed_through | surface:cli |
feature:benchmarks | made_of | command:bench |
feature:benchmarks | related_to | feature:ci |
feature:benchmarks | related_to | feature:declare-once |
feature:benchmarks | made_of | module:perf |
feature:benchmarks | exposed_through | surface:docs |
feature:ci | made_of | command:doctor |
feature:ci | made_of | command:watch |
feature:ci | related_to | feature:benchmarks |
feature:ci | related_to | feature:doctrine |
feature:ci | made_of | kind:derive-offload |
feature:ci | exposed_through | surface:docs |
feature:cockpit | related_to | feature:declare-once |
feature:cockpit | related_to | feature:interfaces |
feature:cockpit | made_of | module:dashboard |
feature:cockpit | made_of | module:design |
feature:cockpit | made_of | module:health |
feature:cockpit | exposed_through | surface:docs |
feature:commit | related_to | feature:declare-once |
feature:commit | related_to | feature:doctrine |
feature:commit | related_to | feature:provenance |