Skip to content

Registry

What the Rust executable compiled the repository into: every capability, every object of the layer, the kinds it reads, and the fingerprint that names this exact state.

The registry is the one model every interface of the Rust executable answers from. majordomus mcp, the HTTP routes, the OpenAPI document, the capabilities commands, the generated reference and every page under this route are projections of the same entries. This page is rendered from site/data/registry/registry.json, which majordomus generate site writes and majordomus generate --check compares in CI; the routes come from docs/generated/registry.json through scripts/generate-site-data. Nothing below is typed by hand: a number that disagrees with the executable is a stale generated file, and the build refuses it.

provenance
registry fingerprint
d1a79ec082933410bf86c27db889ac1c7ac5ce4ab4b0dd73cd680cf004b08347
index fingerprint
699db1350cdda9b1acc654c5159777a61105716dfd73a9805d5212f6983be41f
generator
majordomus-cli 0.4.0 · dataset majordomus-site-registry/v2
layer
ai-repository/v1 · index ok
routes from
docs/generated/registry.json · majordomus/capability-registry/v1

The registry fingerprint hashes the index fingerprint (every object's path and content) and every capability descriptor in id order. Same tree and same executable, same fingerprint; it is the cache key every executor answer is scoped by.

Modules

The builtin modules compose the executable's own capabilities; a declarative module is a kind of the layer, one resource per object, listed under Kinds below.

Executable capabilities

Composed in Rust, each exposed as the table says. The id is the operationId of the OpenAPI document and the _meta.majordomus.id of the MCP tool; each links to its own page with schemas, policies, provenance and claims.

idkindMCP toolHTTPCLIstabilitybenchmarkcache
artifacts.list

The manifest `majordomus generate` commits as docs/generated/artifacts.json, reconciled with the working tree: every document with the encodings it is written in, and every file with its format, schema, source, size, hash and whether the file on disk still matches. Optionally narrowed to one document or one encoding. Reads only; `majordomus generate` writes and `majordomus generate --check` is the byte-for-byte verdict.

query majordomus_artifacts GET /api/v1/artifacts behaviorally_verified required process
capabilities.describe

One capability by canonical id: its kind, schemas, provenance, stability, exposures, benchmark and cache policy.

query majordomus_capability GET /api/v1/capability majordomus capabilities describe behaviorally_verified required disabled
capabilities.list

Every capability of this executable and this repository, summarised: kind, module, stability, provenance, the projections it declares, its benchmark and cache policy; the schemas are answered by capabilities.describe.

query majordomus_capabilities GET /api/v1/capabilities majordomus capabilities list behaviorally_verified required process
capabilities.projections

A row per capability with the command line, HTTP route, MCP tool and MCP resource it reaches, whether every exposure it declares is answered by that surface, and the runnable commands no capability claims. Derived from the registry and the clap declaration; nothing is written down.

query majordomus_projections GET /api/v1/capabilities/projections majordomus capabilities projections behaviorally_verified required process
commands.get

One command by its canonical identity: its arguments with the source of each one's values, what running it changes, what it needs, where it came from, and every surface that carries it — with the reason a machine surface withholds it when one does.

query majordomus_command GET /api/v1/command implemented required disabled
commands.graph

The graph as one document, with its fingerprint and every diagnostic its build found: a duplicate identity, a recipe name two commands would take, an annotation that names a command which no longer exists. Deterministic — two builds over one tree produce the same document — so a client may cache against the fingerprint.

query majordomus_command_graph GET /api/v1/commands/graph implemented required disabled
commands.list

The commands this repository offers, filtered by the program that runs them, by what running them changes, or by text. A summary rather than the whole graph: enough to choose a command, and never so much that a client has to read every argument of every command to find one.

query majordomus_commands GET /api/v1/commands implemented required disabled
continuity.state

The open episode, the active task, the handover and checkpoint that resolve for this worktree and branch, each with its divergence label, the unresolved questions that refuse completion, and the record tallies. Selection is two-tiered and never repository-wide: a record from an unrelated worktree or branch is not offered, because a briefing that is quietly about somebody else is worse than none. Absence is reported as absence.

query majordomus_continuity GET /api/v1/continuity behaviorally_verified required process
deploy.check

Every refusal the declared deployments earn locally: a health route no capability registers, a package or binary the workspace does not produce, a build input that does not resolve, more machines running than exist, a hosted process that would bind loopback. Each names the file, the key, the value observed and the correction. Nothing here contacts the provider.

query majordomus_deploy_check GET /api/v1/deployments/check behaviorally_verified required process
deploy.get

One deployment by its identity, typed, with the repository-relative file it was read from.

query majordomus_deployment GET /api/v1/deployment behaviorally_verified required disabled
deploy.list

Every deployment the layer declares, typed: the application, the package and binary shipped, the address the process listens on, the routes a platform polls, the resources, the machine count, the region, the build inputs, the measured budgets and the provider's own facts. An object of the kind this executable cannot read is reported with the reason rather than skipped.

query majordomus_deployments GET /api/v1/deployments behaviorally_verified required disabled
directories.list

Every directory of the layer the index knows, with the contract it declares, whether it owes one and which contract decided, and — for a named path, or when asked for everywhere — the effective chain composed from the root down, least specific first.

query majordomus_directories GET /api/v1/directories behaviorally_verified required process
distribution.artifact

The archive name a target and a tag derive, the directory it unpacks into, and where a release publishes it. The one naming function answers; the release pipeline asks it rather than composing a name in a workflow file.

query majordomus_artifact GET /api/v1/distribution/artifact majordomus distribution artifact behaviorally_verified required disabled
distribution.build

What this executable is: the version of the crate it was built from, the Rust target triple, the profile, and the commit — all compiled in at build time, so an installed binary answers without a repository, a toolchain or git.

query majordomus_build GET /api/v1/distribution/build majordomus distribution build behaviorally_verified required disabled
distribution.model

The one-line install command, where an installation goes, and every declared target with the artifact name it derives. This is what the installation page, the landing page's install block and the cockpit's install card render; none of them holds a platform list of its own.

query majordomus_distribution GET /api/v1/distribution majordomus distribution show behaviorally_verified required disabled
distribution.releases

Every release this repository recorded, newest first, and the one an unpinned installation resolves to: the highest version among the stable, unwithdrawn records. The pointer is derived here and never authored anywhere.

query majordomus_releases GET /api/v1/distribution/releases majordomus distribution releases behaviorally_verified required disabled
distribution.status

Whether a machine that has never seen this project can install it right now with the advertised one-line command, and when it cannot, which link in the chain is missing and what changes it. Derived from the distribution model and the release records alone: it reaches no network, so it is as fast as any other local query and answers offline. The served bytes are proved by the release pipeline's smoke phase, not guessed at here.

query majordomus_install_status GET /api/v1/distribution/status majordomus distribution status behaviorally_verified required disabled
environment.explain

The provenance of the snapshot: for each field, what decided it — a compile-time constant, a file, a command, or the cache — which resolver read it, and how far it can be trusted. Narrow it to one field, or to a prefix, by name.

query majordomus_environment_explain GET /api/v1/environment/explain behaviorally_verified required disabled
environment.status

One snapshot of this checkout: project identity, repository identity, version control, declared toolchains, what the layer holds counted per kind, the workflows the runner describes, the provider projections against the policy that renders them, and the local services with the address a running server published. Every value carries where it came from.

query majordomus_environment GET /api/v1/environment behaviorally_verified required process
executions.cancel

Set the execution's cancellation flag and say so on its stream. Cancellation is cooperative: a task looks at its flag and stops, and a capability whose policy says it is not cancellable runs to completion — which the answer says rather than pretending otherwise.

command majordomus_execution_cancel POST /api/v1/executions/cancel majordomus executions cancel behaviorally_verified waived (transient_state) disabled
executions.demonstrate

Walk a given number of steps, reporting each one, logging a line and advancing progress, then finish — or fail at a step you name. It exists so that an operator, a probe and an end-to-end test can prove the whole path works without waiting for real work: it reads nothing, writes nothing, and its only effect is the events it produces. It looks at its cancellation flag between steps and while it waits, so cancelling it stops it.

query majordomus_demonstrate_execution GET /api/v1/executions/demonstrate behaviorally_verified required disabled
executions.events

The retained events of one execution, oldest first, after a sequence number. This is what a browser reads after a reload and what a client reads after a reconnect: the page carries the cursor to open the live channel with, so nothing is missed between the history and the stream.

query majordomus_execution_events GET /api/v1/executions/events majordomus executions events behaviorally_verified waived (transient_state) disabled
executions.get

The whole of what is known about one execution: its state, its input as it was stored, its steps, its progress, its diagnostics, and its output or its error. Taken under one lock, so a snapshot that says it succeeded carries what it produced.

query majordomus_execution GET /api/v1/executions/get majordomus executions show behaviorally_verified waived (transient_state) disabled
executions.list

Every execution this process remembers, newest first, narrowed by state or by capability. The counts beside them — remembered, active, queued, live channels — are what a control plane shows without asking a second question.

query majordomus_executions GET /api/v1/executions majordomus executions list behaviorally_verified required disabled
executions.protocol

Where the WebSocket is, how a subscription and a reconnect are expressed, what the server writes, and the JSON Schema of every message — derived from the Rust types that implement it, so a client validating against this is validating against the implementation. OpenAPI cannot describe a socket; this is where that contract lives.

query majordomus_execution_protocol GET /api/v1/executions/protocol majordomus executions protocol behaviorally_verified required disabled
executions.start

Run any executable capability of this registry as an execution: the input is checked against that capability's own input schema, the work is queued, and this answers at once with the execution's id and the links to follow it. Nothing waits for the handler. The capability runs through the same executor every other interface calls, so there is no second implementation of anything.

command majordomus_execution_start POST /api/v1/executions/start majordomus run behaviorally_verified required disabled
graph.get

One graph by id: its nodes and edges with the vocabularies that say what each kind means, the file every node was derived from, and whether the result is acyclic. Deterministic for a given tree and executable.

query majordomus_graph GET /api/v1/graph behaviorally_verified required process
graph.list

Every graph this executable derives: its id, what it shows, and what it is derived from.

query majordomus_graphs GET /api/v1/graphs behaviorally_verified required disabled
health.live

Is this process alive: the cheapest true statement this executable can make about itself, with the version that answered. No filesystem traversal, no index build, no network — this is what a hosting platform polls, and it must cost nothing to say.

query GET /api/v1/live behaviorally_verified required disabled
health.ready

Can this process serve traffic: the registry and the index it built at start-up, already resident, and how the layer read. Only local initialisation — never an external provider, a database or another service, because a readiness check that probes a dependency fails a deployment for something that is not this process.

query GET /api/v1/ready behaviorally_verified required disabled
health.report

Every dimension of what this process serves — the layer as it was read, the registry, the scope, version control, benchmark coverage, the committed registry manifest and the attached peers — each decided by the engine that owns it, with the command that reproduces the verdict.

query majordomus_health GET /api/v1/health behaviorally_verified required process
objects.get

One object by URI (majordomus://<kind>/<identity>): metadata, provenance and content; a URI a query projects (majordomus://repository) answers that query as a JSON document. The same resolution serves the MCP resource read.

query majordomus_get GET /api/v1/object behaviorally_verified required disabled
objects.list

List the declarative objects of the repository's AI layer, optionally by kind or tag.

query majordomus_list GET /api/v1/objects behaviorally_verified required disabled
objects.search

Case-insensitive substring search over identities, titles, descriptions and content.

query majordomus_search GET /api/v1/search behaviorally_verified required process
objects.verify

Read every file the layer was built from and compare it with what this process is serving. The index is built once at start-up and kept, which is what makes every other request cost nothing and what makes a file edited afterwards be served as it was; this is how a running server says whether that has happened, without being restarted to find out. A file that is one object is compared byte for byte; a collection file, whose objects the index keeps as members rather than as text, is compared by size, and every finding says which comparison was made. It reads every file of the layer, so it reports its progress file by file and stops when it is asked to.

query majordomus_verify_objects GET /api/v1/objects/verify behaviorally_verified required disabled
obligations.closure

Every obligation the active task declared, joined with what the vocabulary says about it and with the evidence that does or does not discharge it: what is owed, what is discharged, and what has gone stale — with the recorded input hash and the tree's current one, or the recorded commit and its label, so a reader can see against what. The judgement is the one `finish` applies, reproduced rather than re-decided, and the staleness words are the repository's only four. A checkout with no task reports that, rather than reporting nothing owed.

query majordomus_obligation_closure GET /api/v1/obligations/closure behaviorally_verified required process
obligations.vocabulary

The tokens a task may declare in `requires`: what each one asks of a worker, the command that discharges it, the pathspecs its evidence is hashed over, and whether its fact is remote and therefore bound to a commit rather than to a tree. Shipped data, identical in every clone, so this answers in a checkout that has never run the lifecycle.

query majordomus_obligations GET /api/v1/obligations behaviorally_verified required process
peers.announce

Tell the other peers of this shared server what the calling session is doing and which paths it expects to touch. Changes this process's memory only; the repository is never written. Needs an MCP session: over plain HTTP there is no caller.

command majordomus_announce POST /api/v1/peers/announce behaviorally_verified required disabled
peers.list

Every client attached to this shared server: id, the client's own name and version from its initialize, transport, when it attached, when it was last seen, and what it announced. In-memory, gone with the process.

query majordomus_peers GET /api/v1/peers behaviorally_verified required disabled
perf.counters

The counters of this process: repository scans, index and registry builds, schema generations, projection builds, executions, handler invocations, cache hits, misses and evictions, and the phase timings, as they stand now.

query majordomus_perf GET /api/v1/perf behaviorally_verified required disabled
plan.issues

One record per issue with its derived status, its wave, the dependencies it declares, the ones that are not DONE (plus `milestone:<id>` when the gate holds the whole outcome back), the issues that depend on it, the paths it touches and its evidence tally. Filtering by `status: READY` is the ready set and by `status: BLOCKED` the blocked set; nothing here is a separate derivation.

query majordomus_plan_issues GET /api/v1/plan/issues behaviorally_verified required disabled
plan.model

Every milestone and issue with its derived status, wave, rank, both directions of its graph and its counts; the execution waves; both dependency graphs as edges; every validation finding; and the plan's header with the active milestone derived. The one value every other capability of this module answers out of. Derived on every call: a transition writes a lifecycle marker into a record between two calls, and a plan answered from a snapshot would send two workers to one issue.

query majordomus_plan GET /api/v1/plan behaviorally_verified required disabled
plan.next

The lowest-wave READY issue of the active milestone, highest priority first, then id. The active milestone can have nothing ready while another one does — one waiting on its own acceptance evidence, for instance — so the search widens to the whole plan rather than answering `none` and sending a worker away from work that is genuinely executable. This is what an agent asks before it starts.

query majordomus_plan_next GET /api/v1/plan/next behaviorally_verified required disabled
plan.record

A milestone with its issues in full, or an issue with the issues it waits on in full. The record's own prose stays where it has always been — `majordomus://issue/<id>` returns the file — and this answers what the file cannot say about itself: what its status is, where it sits in the graph, and what is between it and being executable.

query majordomus_plan_record GET /api/v1/plan/record behaviorally_verified required disabled
plan.roadmap

The milestone graph laid out by rank, with `order` breaking ties inside a rank only, and the first unblocked unfinished milestone as `now` and the one after it as `next`. Nothing in the sequence is authored: a milestone whose prerequisites are not real cannot be nominated, which is what makes `each step is gated by the previous one being real` an invariant rather than a sentence.

query majordomus_plan_roadmap GET /api/v1/plan/roadmap behaviorally_verified required disabled
plan.status

Every milestone with its derived status and its issues counted by status, the milestone a worker is executing now, the next ready issue in full, and the plan's own totals. The counts are keyed by the declared vocabulary, which travels with the answer, so a status added to the engine appears here without anything being edited.

query majordomus_plan_status GET /api/v1/plan/status behaviorally_verified required disabled
plan.validate

Every finding the derivation produced, in the order it produced them: a dependency on something that is not an issue, a cycle, an issue executing ahead of its dependencies or of its milestone's gate, an issue with no acceptance criteria, evidence missing under a completion date, a milestone whose graph contradicts itself, two issues of one wave sharing a path. A failure means the model is invalid; a warning means it is legal and worth reading.

query majordomus_plan_validate GET /api/v1/plan/validate behaviorally_verified required disabled
plan.waves

The topological layering of the issue graph: an issue enters a wave only once every dependency has left it, so its wave is one past the longest path to it. Sharing a wave is a necessary condition for running two issues at once, not a sufficient one — overlapping scope serialises them, and every such overlap is reported beside the waves rather than left for two workers to discover in a merge conflict.

query majordomus_plan_waves GET /api/v1/plan/waves behaviorally_verified required disabled
product.feature

One product feature in full: the record as its file declares it, and everything derived from what it names — the capabilities of its modules with their tools, routes and command-line paths, the commands with their summaries, the objects of its kinds counted, the rules with their class and whether the tool enforces them, the documents, the decisions, the claims with their status, the use cases, the Cockpit areas and web surfaces with their routes, the moments it answers, and the interfaces all of that adds up to.

query majordomus_feature GET /api/v1/product/feature majordomus product show behaviorally_verified required process
product.features

Every product feature this repository declares, narrowed by any of the facets the model derives — featured, area, module, command, surface, text — with the interfaces each is exposed through, the counts behind it and what is guaranteed about it, none of which its file states. The default is the stable set; pass status=any for the drafts too.

query majordomus_features GET /api/v1/product/features majordomus product list behaviorally_verified required process
product.matrix

Every feature against the command line, the HTTP API, MCP, the Cockpit and the documentation, each mark derived from what the feature names; then every builtin module of the executable, every public command of the shell tool and every kind of the layer with the stable features that name it. A row with no feature is reported as a gap rather than hidden.

query majordomus_product_matrix GET /api/v1/product/matrix majordomus product matrix behaviorally_verified required process
product.providers

Every provider the tool has an adapter for — one per template the distribution ships — with the bootstraps this repository's policy renders through it, the client configuration it carries for the shared MCP server, and the hooks the policy wires. The set is the templates; nothing here is a list of vendors.

query majordomus_providers GET /api/v1/product/providers majordomus product providers behaviorally_verified required process
product.validate

Every finding over the product model: a reference that resolves to nothing, with the nearest candidate; a duplicate identity; a file name that disagrees with its id; a draft that is featured; a stable feature under its floors; and every module, command or kind that no stable feature names. Errors make the model invalid; warnings do not.

query majordomus_product_validate GET /api/v1/product/validate majordomus product validate behaviorally_verified required process
quality.report

The crate's exported surface measured against the repository's rules: how many items are documented and exampled, how many modules are documented, exampled and behaviourally tested, how the canonical operations stand against the command line, HTTP, OpenAPI and MCP, and one finding per violation carrying a stable code, the rule that requires it, its file and line, why it matters and what to do about it.

query majordomus_quality GET /api/v1/quality majordomus quality report behaviorally_verified required process
release.changelog

Every release the layer records, newest first, with the work that has not been released leading. A section's decisions are the ADRs dated inside that release's window, its changes the conventional commits in its range, its artifacts the record's own evidence. Nothing in it is authored, and a section that could not be read says so rather than appearing empty.

query majordomus_changelog GET /api/v1/changelog implemented required disabled
release.version

The version the crate manifest declares, the version the shell tool prints, and whether they agree — the same question `scripts/release-version --check` gates on. Then the bump the conventional commits since the last release imply, the version it would produce, and the commits themselves as the evidence for it.

query majordomus_release_version GET /api/v1/release/version implemented required disabled
repository.info

The repository root, layer sections, git state, discovery mode, kinds present, every diagnostic, and the capability registry counted.

query majordomus_repository GET /api/v1/repository behaviorally_verified required disabled
repository.scope

The scope declaration as read, where it came from (the repository's own or the distribution's default), and every tracked file tallied against it: how many are in, how many are out for each reason, and which.

query majordomus_scope GET /api/v1/scope majordomus scope behaviorally_verified required disabled
repository.scope_classify

Whether a repository-relative path is in or out of the scope, the reason when it is out, and the pattern or limit that decided; an existing file is judged by name, then size, then content.

query majordomus_scope_classify GET /api/v1/scope/classify behaviorally_verified required disabled
trace.commit

One commit with the issue and milestone it served, or the fact that none can be found. Attributed when exactly one issue's branches hold it, ambiguous when branches naming two issues do, and unattributed when no branch naming an issue holds it at all — which is either work committed without an execution contract or a branch deleted after its merge, and the answer says so rather than guessing between them.

query majordomus_trace_commit GET /api/v1/trace/commit behaviorally_verified required disabled
trace.issue

One issue with the branches that name it — local, and remote-tracking where only the remote still has the branch — and, for each, the commits it holds that the trunk did not: measured against the trunk while the branch is open, and against the first parent of the merge commit that brought it in once it is merged. A branch that reached the trunk without a merge commit of its own says so and claims nothing, because its commits cannot be told from the trunk's. The milestone comes from the canonical issue record, which is the one edge here that git does not hold, and `declared` says whether the project model has this id at all — a repository with no plan still gets the branches, and a typo still cannot read as work nobody did.

query majordomus_trace_issue GET /api/v1/trace/issue behaviorally_verified required disabled
trace.report

Every issue at least one branch names with its branches and commits, every declared issue no branch names, and the newest stretch of the trunk with each commit attributed to the issue whose branches hold it or reported as unattributed. The tallies count both sides, so the proportion of the trunk that no execution contract accounts for is a number rather than an impression. Read from git on every call: the history changes outside this process.

query majordomus_traceability GET /api/v1/trace behaviorally_verified required disabled
web.surfaces

The web topology in route-precedence order, with each surface's mount, category, visibility, kind, producer, artifact, runtime feature and the provenance of every value a reader could be surprised by; and which ids are served, published and offered to a person. Answered from the resolution this process serves from, so it cannot disagree with what the router routes or what the home page lists.

query majordomus_web_surfaces GET /api/v1/web/surfaces behaviorally_verified required process
why.areas

Every operational area the catalogue declares, each with the public moments that fall under it. Membership is derived from the moments and is never listed in an area's own file.

query majordomus_why_areas GET /api/v1/why/areas majordomus why areas behaviorally_verified required process
why.audiences

Every audience the catalogue declares, each with the public moments that name it. Membership is derived from the moments and is never listed in an audience's own file.

query majordomus_why_audiences GET /api/v1/why/audiences majordomus why audiences behaviorally_verified required process
why.diagnose

What a reader's own symptoms imply: the moments the selection resolves to, the operational areas and audiences they weigh towards, and the capabilities, commands, claims, rules and use cases that answer them — each carrying the moments that produced it. Counting, not inference: there is no weighting and no percentage.

query majordomus_why_diagnose GET /api/v1/why/diagnose majordomus why diagnose behaviorally_verified required process
why.list

Every operational moment this repository holds, narrowed by any of the facets the catalogue itself reports, with the audiences, the areas, the derived filters and the counts. The default is the public catalogue; pass status=any for the drafts too.

query majordomus_why GET /api/v1/why majordomus why list behaviorally_verified required process
why.moment

One operational moment in full: what it looks like, why it happens, what it costs, what this tool does about it, and every relation derived from its metadata — the responsibilities its claims belong to, the moments that name it, and the moments nearest it by shared area, audience and tag.

query majordomus_why_moment GET /api/v1/why/moment majordomus why show behaviorally_verified required process
why.validate

Every finding over the catalogue: a reference that resolves to nothing, with the nearest candidate; a duplicate identity; a file name that disagrees with its id; and a public record that does not meet the floor its status promises. Errors make the catalogue invalid; warnings do not.

query majordomus_why_validate GET /api/v1/why/validate majordomus why validate behaviorally_verified required process
worktree.inspect

The canonical path of a branch, derived from its name alone, whether the branch exists, whether something occupies that path, the worktree holding the branch when one does, and what stands in the way of creating or migrating it. The answer for a branch that does not exist yet is the path `worktree create` would use.

query majordomus_worktree_inspect GET /api/v1/worktrees/inspect majordomus worktree inspect behaviorally_verified required disabled
worktree.migration_plan

One step per misplaced worktree with a branch: where it is, where it belongs, how it would move, the uncommitted work that moves with it, and what blocks it; plus the exceptions the migration cannot address by design — detached worktrees, stale registrations, the primary checkout off the trunk — each with what a person does about it. Planning changes nothing; `majordomus worktree migrate` applies it with a fingerprint taken before and after every move.

query majordomus_worktree_migration_plan GET /api/v1/worktrees/migration majordomus worktree migrate behaviorally_verified required disabled
worktree.status

One worktree — the repository's own, or the one holding the directory the caller names — with its standing, its branch, its canonical path, its uncommitted work counted, whether it is where it belongs, and how many errors the whole topology carries. What an agent reads before it starts, and what the guard decides on.

query majordomus_worktree_status GET /api/v1/worktrees/status majordomus worktree status behaviorally_verified required disabled
worktree.topology

The repository, the container, the trunk and how it was decided, every registered worktree with its standing (primary, canonical, misplaced, detached, missing), its uncommitted work, its upstream distance and the issue its branch provably names, every local branch with or without a worktree and whether it is eligible for cleanup, every diagnostic with its code and remedy, and the tallies. Read from git on every call: the topology changes outside this process.

query majordomus_worktrees GET /api/v1/worktrees majordomus worktree topology behaviorally_verified required disabled

Kinds

What the executable reads, from share/kinds.yaml and the repository's own additions: how a file of the kind is read, the JSON Schema its metadata must satisfy, and how many objects of it the index holds.

kindformatfront matterschemaidentityobjects
adrmarkdownrequiredmajordomus.adr/v1.schema.jsonid33
applicationmarkdownrequiredmajordomus.application/v1.schema.jsonid5
areamarkdownrequiredmajordomus.area/v1.schema.jsonid9
audiencemarkdownrequiredmajordomus.audience/v1.schema.jsonid8
claimyamlnonemajordomus.claim/v1.schema.jsonid148
commandyamlnonemajordomus.command/v1.schema.jsonid29
contextmarkdownrequiredmajordomus.context/v1.schema.jsonid27
deploymentyamlnonemajordomus.deployment/v1.schema.jsonid1
distribution-modelyamlnonemajordomus.distribution/v1.schema.jsonpath1
documentmarkdownoptionalmajordomus.document/v1.schema.jsonpath210
featuremarkdownrequiredmajordomus.feature/v1.schema.jsonid20
implementationtextnonepath45
issueyamlnonemajordomus.issue/v1.schema.jsonid202
knowledgemarkdownrequiredmajordomus.knowledge/v1.schema.jsonid1
milestoneyamlnonemajordomus.milestone/v1.schema.jsonid17
momentmarkdownrequiredmajordomus.moment/v1.schema.jsonid38
policyyamlnonemajordomus.policy/v1.schema.jsonpath1
profileyamlnonemajordomus.profile/v1.schema.jsonname4
projectyamlnonemajordomus.project/v1.schema.jsonpath0
promptmarkdownrequiredmajordomus.prompt/v1.schema.jsonname4
release-recordyamlnonemajordomus.release/v1.schema.jsontag1
rulemarkdownrequiredmajordomus.rule/v1.schema.jsonid@version109
scopeyamlnonemajordomus.scope/v1.schema.jsonpath1
sessionmarkdownrequiredmajordomus.session-record/v1.schema.jsonsession_id11
session-contextmarkdownrequiredmajordomus.session-context/v1.schema.jsonsession_id0
skillmarkdownrequiredmajordomus.skill/v1.schema.jsonid3
taxonomyyamlnonemajordomus.taxonomy/v1.schema.jsonid10
testtextnonepath135
use-casemarkdownrequiredmajordomus.use-case/v1.schema.jsonid42
workspaceyamlnonemajordomus.workspace/v1.schema.jsonid1

Provider projections

The bootstraps the policy declares, rendered by majordomus generate providers and checked in CI. None of them is a source.

Objects of the layer

1116 objects, each an MCP resource. Grouped by kind; the path is where the object lives in the repository.

adr 33
  • adr-0001A Rust executable with a data-driven, read-only MCP surface over stdio.ai/repo/adrs/0001-rust-cli-and-stdio-mcp.md
  • adr-0002A canonical capability registry, with MCP, HTTP, OpenAPI, Swagger UI, the CLI and the reference as projections.ai/repo/adrs/0002-canonical-capability-registry.md
  • adr-0003One shared MCP server per repository, peers, and clients that start it themselves.ai/repo/adrs/0003-shared-mcp-server-peers-and-client-autostart.md
  • adr-0004One canonical declaration, composed modules, derived projections, and performance as evidence.ai/repo/adrs/0004-canonical-architecture-and-performance-truth.md
  • adr-0005One projection plan over the canonical inputs, named owners for every truth, and the site as a view of the registry.ai/repo/adrs/0005-one-projection-plan-canonical-owners-and-the-site-as-registry-view.md
  • adr-0006CI planned from one model of what affects what, gates as repository-owned scripts, and the site deployed from the run that verified it.ai/repo/adrs/0006-ci-planned-from-one-model-and-the-site-deployed-from-its-verified-run.md
  • adr-0007Skills are data under the layer's skills section, and every surface that shows one is a projection.ai/repo/adrs/0007-skills-are-data-not-registrations.md
  • adr-0008Use cases are executable canonical objects of the layer.ai/repo/adrs/0008-executable-use-cases.md
  • adr-0009Prompt capture happens below the model, or is reported as unavailable.ai/repo/adrs/0009-prompt-capture-happens-below-the-model.md
  • adr-0010Curated knowledge is one kind with a class, not a second store.ai/repo/adrs/0010-curated-knowledge-is-one-kind-with-a-class-not-a-second-stor.md
  • adr-0011Every directory in the layer carries a contract.ai/repo/adrs/0011-every-directory-in-the-layer-carries-a-contract.md
  • adr-0012The Cockpit is a sixth projection of the registry, not an application over it.ai/repo/adrs/0012-the-cockpit-is-a-projection-not-an-application.md
  • adr-0013Every web surface is discovered from its producer, resolved once, and projected.ai/repo/adrs/0013-every-web-surface-is-discovered-from-its-producer-resolved-o.md
  • adr-0014A closed session is a shared object of the layer, not a local note.ai/repo/adrs/0014-a-closed-session-is-a-shared-object-of-the-layer-not-a-local.md
  • adr-0015The episode boundary is drawn by the provider, not by the model.ai/repo/adrs/0015-the-episode-boundary-is-drawn-by-the-provider-not-by-the-mod.md
  • adr-0016The scenario is a body section, not a header field.ai/repo/adrs/0016-the-scenario-is-a-body-section-not-a-header-field.md
  • adr-0017An episode that opens is handed what the last one left.ai/repo/adrs/0017-an-episode-that-opens-is-handed-what-the-last-one-left.md
  • adr-0018Operational moments are objects of the layer, not pages of the site.ai/repo/adrs/0018-operational-moments-are-objects-of-the-layer-not-pages-of-th.md
  • adr-0019Distribution is one model, and every surface that ships the tool is a projection of it.ai/repo/adrs/0019-distribution-is-one-model-and-every-surface-that-ships-the-t.md
  • adr-0020The capability graph is composed, not centralised, and projected twice.ai/repo/adrs/0020-the-capability-graph-is-composed-not-centralised-and-projecte.md
  • adr-0021The branch-to-worktree topology is derived from git identity and enforced everywhere.ai/repo/adrs/0021-the-branch-to-worktree-topology-is-derived-from-git-identity-and-enfor.md
  • adr-0022The UI standard is an audit over a discovered page set, and its failures are fixed at their shared source.ai/repo/adrs/0022-the-ui-standard-is-an-audit-over-a-discovered-page-set.md
  • adr-0023Product features are objects of the layer, and the landing page is a projection of them.ai/repo/adrs/0023-product-features-are-objects-of-the-layer-and-the-landing-page-is-a-projection.md
  • adr-0024An orchestrator is a provider only at the bootstrap level, and its worktrees are scratch checkouts.ai/repo/adrs/0024-an-orchestrator-is-a-provider-only-at-the-bootstrap-level-an.md
  • adr-0025Presentation order is one total order owned by the crate, not a decision each surface makes.ai/repo/adrs/0025-presentation-order-is-one-total-order-owned-by-the-crate-not-a-decision-each-surface-makes.md
  • adr-0026A capability module's area is derived from the features that name it, not declared beside it.ai/repo/adrs/0026-a-capability-modules-area-is-derived-from-the-features-that-name-it.md
  • adr-0027A command is declared once and every surface is a projection of the command graph.ai/repo/adrs/0027-a-command-is-declared-once-and-every-surface-is-a-projection.md
  • adr-0028The crate's public surface is measured by the crate, and absence from the API is a decision.ai/repo/adrs/0028-the-crates-public-surface-is-measured-by-the-crate-and-absence.md
  • adr-0029The changelog is a projection of what the repository already records, and the version has one writer rather than one source.ai/repo/adrs/0029-the-changelog-is-a-projection-and-the-version-has-one-writer.md
  • adr-0030A task owes obligations, and the evidence that discharges them goes stale.ai/repo/adrs/0030-a-task-owes-obligations-and-evidence-goes-stale.md
  • adr-0031The design is one declaration and every surface is a projection of it.ai/repo/adrs/0031-the-design-is-one-declaration-and-every-surface-is-a-project.md
  • adr-0032An external workspace is not a provider: the term, the dependency posture, and where synced content lives.ai/repo/adrs/0032-an-external-workspace-is-not-a-provider-the-term-the-depende.md
  • adr-0033An execution is a watched capability call, not a second registry.ai/repo/adrs/0033-an-execution-is-a-watched-capability-call-not-a-second-registry.md
application 5
  • ci-gated-projectA project where CI decides what is acceptable.ai/repo/applications/ci-gated-project.md
  • long-running-workWork that outlives the session doing it.ai/repo/applications/long-running-work.md
  • repository-opened-in-ai-clientsA repository opened in AI clients, not only by people.ai/repo/applications/repository-opened-in-ai-clients.md
  • repository-with-authored-governanceA repository whose rules were written by people.ai/repo/applications/repository-with-authored-governance.md
  • several-agents-one-repositorySeveral workers in one repository at once.ai/repo/applications/several-agents-one-repository.md
area 9
  • contextContext and continuity.ai/repo/why/areas/context.md
  • coordinationCoordination and ownership.ai/repo/why/areas/coordination.md
  • costModel, effort and cost.ai/repo/why/areas/cost.md
  • decisionsDecisions.ai/repo/why/areas/decisions.md
  • documentationDocumentation and drift.ai/repo/why/areas/documentation.md
  • governanceRules and governance.ai/repo/why/areas/governance.md
  • observabilityObservability.ai/repo/why/areas/observability.md
  • verificationVerification and evidence.ai/repo/why/areas/verification.md
  • work-trackingWork and its state.ai/repo/why/areas/work-tracking.md
audience 8
  • agencyAgency or consultancy.ai/repo/why/audiences/agency.md
  • ai-native-teamAI-native development team.ai/repo/why/audiences/ai-native-team.md
  • engineering-leadEngineering lead.ai/repo/why/audiences/engineering-lead.md
  • enterpriseEnterprise engineering.ai/repo/why/audiences/enterprise.md
  • open-source-maintainerOpen-source maintainer.ai/repo/why/audiences/open-source-maintainer.md
  • platform-teamPlatform and developer productivity team.ai/repo/why/audiences/platform-team.md
  • research-teamResearch and experimental engineering.ai/repo/why/audiences/research-team.md
  • solo-builderSolo builder.ai/repo/why/audiences/solo-builder.md
claim 148
  • adr-catalogueAn architecture decision is one file under the layer's adrs section, validated against the decision contract, with an identity nothing else claims, reciprocal supersession, and every reference it makes resolvingdocs/CLAIMS.yaml
  • adr-proposemajordomus adr propose writes a decision with status proposed and refuses to write any other status, allocates its identity under a lock so concurrent workers never collide, and records what the decision was derived fromdocs/CLAIMS.yaml
  • adr-traceabilityA decision states what it put in force as typed references, each one validated, and the reverse direction — what a rule, a document, an implementation or a case was decided by — is read from the knowledge graph rather than written down a second timedocs/CLAIMS.yaml
  • advertised-install-command-worksThe install command this project advertises is fetched and run from the published site on every push to the default branch, and the branch is red while it does not install a working tooldocs/CLAIMS.yaml
  • ai-layer-manifestThe repository's AI layer is one directory whose manifest names every section, readable without the tooldocs/CLAIMS.yaml
  • benchmark-coverage-derivedEvery externally callable operation of the Rust executable is a benchmark target with a denominator generated from the registry, and a missing case fails the structural checkdocs/CLAIMS.yaml
  • blocker-storeAn entry in the questions store that does not parse blocks acceptance exactly as an unresolved question doesdocs/CLAIMS.yaml
  • blocker-survives-handoverA blocking question keeps blocking after the work is handed to a new taskdocs/CLAIMS.yaml
  • bootstrap-chainProvider instruction files are thin bootstraps that point at the AI layer and carry no rule of their owndocs/CLAIMS.yaml
  • capability-classA profile names a capability class rather than a vendor modeldocs/CLAIMS.yaml
  • capability-modulesA capability of the Rust executable is declared once and composed into its module, the root composes modules, and the registry refuses a capability outside its module's namespacedocs/CLAIMS.yaml
  • capability-registryEvery capability of the Rust executable is defined once, and the registry refuses a duplicate id or a colliding projection name, naming both partiesdocs/CLAIMS.yaml
  • catalogue-resolvesA use case or application cannot name a command, doctrine or claim that does not exist, and the two catalogues cannot disagree about which applies to whichdocs/CLAIMS.yaml
  • checkpoint-intervalA profile sets how often a worker should checkpoint, and a stale task is reporteddocs/CLAIMS.yaml
  • checkpoint-recordA checkpoint is a capped progress record with computed identity, and a body over the cap is refused rather than truncateddocs/CLAIMS.yaml
  • ci-planned-gatesA change runs the gates its paths can affect, decided by one model of what affects what, and a change to the pipeline itself or a path the model does not know runs every gatedocs/CLAIMS.yaml
  • ci-verdictThe one status a branch rule requires is green only when planning succeeded and every gate the plan selected ran in a job that succeeded; a failed or cancelled job, a selected gate whose job was skipped, or a plan that selected nothing is reddocs/CLAIMS.yaml
  • cli-documentation-executableEvery command of the Rust executable's command line carries a summary, a long description, help on every argument and at least one example, and every example shown to a reader is executed against the built executabledocs/CLAIMS.yaml
  • command-coverageEvery public command has a behavioural test and a negative test, computed rather than remembereddocs/CLAIMS.yaml
  • command-surfaceThe public command surface is declared, and reconciled against the dispatcherdocs/CLAIMS.yaml
  • consistency-checkcheck reports whether state, scope, blockers and checkpoint age are consistent right nowdocs/CLAIMS.yaml
  • context-assemblyThe context a worker is given is assembled from durable state in authority order, and what a profile excludes is excludeddocs/CLAIMS.yaml
  • context-budgetThe always-loaded instruction file has a line budget with a failing checkdocs/CLAIMS.yaml
  • context-coverageEvery directory of the layer carries a context document, the exemption is declared by the contract that governs the subtree, and a descendant may narrow that requirement but never weaken itdocs/CLAIMS.yaml
  • context-documentsThe context that applies to a path is composed from the layer's scoped documents, root to target, in one deterministic order with provenance, and a tree that does not validate resolves nothingdocs/CLAIMS.yaml
  • context-impactThe impact of a change set on the scoped context is reported from git — the documents, the scopes below them, moves with their ancestry, tracked sources to review, and stale projections — and an unrelated change reports nothingdocs/CLAIMS.yaml
  • context-selection-budgetThe assembled context obeys a line budget, and every section it drops is named with its reasondocs/CLAIMS.yaml
  • continuity-reachableEvery continuity store is proven reachable through its own command, not merely present on diskdocs/CLAIMS.yaml
  • cost-per-outcomeCost per accepted outcome will be reported from measured data onlydocs/CLAIMS.yaml
  • dag-validationA cycle, a self-dependency and a dependency on an issue that does not exist are each refused by namedocs/CLAIMS.yaml
  • decision-attributionA decision record without a task, a head and a reason is reported, and does not blockdocs/CLAIMS.yaml
  • decision-recordA decision is recorded with its reason and its task, and is superseded by a later entry rather than editeddocs/CLAIMS.yaml
  • derivation-one-graphEvery committed derived artifact of the repository is regenerated by one command in dependency order and checked by one read-only command that names every stale artifact, a second regeneration on a clean tree changes nothing, and no derived file records the commit it lands indocs/CLAIMS.yaml
  • derived-data-currentA commit whose derived data is behind its canonical inputs is refused before it exists, and a repository that unwires that gate is a doctor failuredocs/CLAIMS.yaml
  • derived-not-declaredWhat the tool knows about itself is written once and derived everywhere else, and a second copy is a test failuredocs/CLAIMS.yaml
  • dispatcher-wiringWiring is found in a hook or in any subhook of the directory that hook dispatches todocs/CLAIMS.yaml
  • distribution-canonical-modelEvery platform, artifact name and installation URL is derived from one model, and a projection that disagrees with it is refuseddocs/CLAIMS.yaml
  • divergence-labelState read back is labelled exact, advanced, diverged or different_context against gitdocs/CLAIMS.yaml
  • doctrine-class-decidesA doctrine's class is what decides whether a violation stops the command, not a label beside itdocs/CLAIMS.yaml
  • doctrine-registryEvery rule the tool enforces is declared once, as a rule object in the repository's effective set, and doctor proves each one is reached by the command that claims to run itdocs/CLAIMS.yaml
  • drift-watchwatch reports policy, projection, state, scope, handover, verification, staleness and retention driftdocs/CLAIMS.yaml
  • effort-escalationEscalating reasoning effort after repeated blocked attempts is recorded rather than assumeddocs/CLAIMS.yaml
  • event-vocabularyThe ledger's event vocabulary is closed, on the way in and on the way outdocs/CLAIMS.yaml
  • evidence-gates-doneAn issue cannot be completed while a required piece of evidence is missingdocs/CLAIMS.yaml
  • executable-reference-derivedThe site's pages about the Rust executable (one per module, one per capability, the command line, the MCP surface, the benchmarks, the executable's own narrative) are derived from the registry manifest and the registry dataset the executable generates, nothing names a capability by hand, and a capability that joins or leaves the registry gains or loses its page, its index entries and its links from the generators alonedocs/CLAIMS.yaml
  • execution-cache-equivalenceA cached capability of the Rust executable answers the same value uncached, cold and warm, a hit runs no handler, errors and commands are never cached, and the key carries the registry fingerprintdocs/CLAIMS.yaml
  • execution-wavesExecution waves are computed from the graph, and issues in one wave that touch the same paths are reported as serialiseddocs/CLAIMS.yaml
  • exit-code-contractExit codes are a contract, and no code means "warn and continue"docs/CLAIMS.yaml
  • finish-contractfinish evaluates the finish contract line by line and refuses when any line is unmetdocs/CLAIMS.yaml
  • generated-artifacts-typedEvery generated artifact declares the document it projects, the encoding it is written in, the schema its content satisfies and its source, and a structured document is written in every encoding it is committed in from one valuedocs/CLAIMS.yaml
  • generated-projections-checkedThe committed projections, the OpenAPI document, the capability reference and the allow-lists, are regenerated from the registry and the schemas, and generate --check refuses a stale onedocs/CLAIMS.yaml
  • git-identityIdentity fields on every state record are computed from git and never authoreddocs/CLAIMS.yaml
  • github-projectionGitHub milestones and issues are generated from the canonical model, and a hand-edited generated region is reported rather than overwrittendocs/CLAIMS.yaml
  • github-projection-gatedA projection that stops being applied turns a build red, and a gate that cannot reach GitHub reports that it cannot rather than passingdocs/CLAIMS.yaml
  • handover-recordhandover writes an append-only record with computed front matter and required sectionsdocs/CLAIMS.yaml
  • history-ledger-readThe ledger is readable back as operational history, filtered by task, event and timedocs/CLAIMS.yaml
  • hot-path-no-rebuildAfter startup, no MCP or HTTP request of the Rust executable scans the repository, builds the index or the registry, derives a schema or builds a projection, and perf.counters proves itdocs/CLAIMS.yaml
  • init-refusesInstalling into a repository that already has an installation is refuseddocs/CLAIMS.yaml
  • install-command-is-derivedThe documented one-line install command is composed from the model's parts, and a document that states a different one fails the suitedocs/CLAIMS.yaml
  • installer-verifies-before-installingThe installer verifies an artifact's digest and inspects its archive before anything is unpacked, and any failure leaves the previous installation workingdocs/CLAIMS.yaml
  • interfaces-are-projectionsMCP, HTTP, OpenAPI, Swagger UI, the capabilities commands and the generated reference are derived from the registry, and a change to one definition reaches every one of themdocs/CLAIMS.yaml
  • landing-page-is-a-projectionThe website's homepage and feature pages name no feature, module, command, provider or count of their own, and a stale product dataset fails the build before it can be deployeddocs/CLAIMS.yaml
  • ledger-integrityEvery line of the append-only ledger is a well-formed event, and a malformed line is a failure rather than a skipped recorddocs/CLAIMS.yaml
  • legacy-migrationA repository on the pre-.ai layout is migrated once, explicitly, with a previewed plan and a verified backup of its local state, and the command is idempotent afterwardsdocs/CLAIMS.yaml
  • local-state-ignoredCheckout-local state lives under .ai/local/, is ignored by git, and is absent on a fresh clone or worktreedocs/CLAIMS.yaml
  • mcp-client-autostartAn MCP client opened in the repository starts the server itself, building the executable when it must, through the client configurations at the root and bin/majordomus-mcpdocs/CLAIMS.yaml
  • mcp-data-drivenWhat the MCP server serves is decided by the manifest, the declared source classes and each file's front matter, so an object added to the layer is served with no change to the executabledocs/CLAIMS.yaml
  • mcp-degraded-not-silentA file of the layer the MCP server cannot read is excluded with a diagnostic naming its path and the index says it is degraded, never silently smallerdocs/CLAIMS.yaml
  • mcp-lease-resilienceNothing a client leaves behind locks another client out of the shared server; a corrupt, empty, stale or abandoned lease is taken over and named, a client that cannot share is served alone with the reason logged, and a signal removes the lease before the server diesdocs/CLAIMS.yaml
  • mcp-peersEvery client attached to the shared server is a peer named by its own initialize, listed by majordomus_peers, and majordomus_announce tells the others what it is working on and which paths it expects to touchdocs/CLAIMS.yaml
  • mcp-shared-serverOne shared server serves a repository: the first majordomus mcp binds loopback HTTP with Swagger UI and MCP over HTTP beside its stdio session and logs the URL, every later one attaches to it, and it ends when the last client leavesdocs/CLAIMS.yaml
  • mcp-stdio-surfaceThe Rust executable serves the repository's AI layer to an MCP client over stdio, read-only, with protocol frames alone on stdoutdocs/CLAIMS.yaml
  • mcp-uri-resolutionA majordomus:// URI resolves the same way through the MCP resource read, the majordomus_get tool and the HTTP object route, and majordomus://repository answers repository.info as a JSON document tagged builtindocs/CLAIMS.yaml
  • minimum-contextA profile declares which context a worker should load and no moredocs/CLAIMS.yaml
  • no-counts-in-contextA hardcoded count in the always-loaded file is a failuredocs/CLAIMS.yaml
  • no-networkNothing performs a network call, evaluates generated text, or deletes recursivelydocs/CLAIMS.yaml
  • no-silent-overwriteA hand-edited instruction file is never silently overwrittendocs/CLAIMS.yaml
  • no-transcriptsHandovers carry durable facts, never conversation transcriptsdocs/CLAIMS.yaml
  • obligation-closureA task that declares obligations reaches the outcome completed only when each one has evidence recorded against it, and evidence taken over files that have since changed, or at a commit the branch has since left, no longer discharges anythingdocs/CLAIMS.yaml
  • obligation-establishmentAn obligation whose fact the tool can hold is established live rather than recorded — a clean tree, a remote-tracking ref that reaches the head, a trunk that reaches it, a published site that serves it — and a hand-recorded line neither discharges it nor rescues itdocs/CLAIMS.yaml
  • open-question-gateAn unresolved question blocks acceptance, and an entry the gate cannot parse is a failure rather than a silent passdocs/CLAIMS.yaml
  • openapi-inferredThe OpenAPI document is inferred, the tags are the modules, the examples are the benchmark cases, the responses are the router's statuses by kind, the prose is the one text every projection shares, and the site's API reference is rendered from the committed documentdocs/CLAIMS.yaml
  • overlap-reportOverlap between parallel workers is computed on claimed paths in both containment directionsdocs/CLAIMS.yaml
  • pointer-integrityEvery repository-relative reference in the always-loaded file is proven to resolvedocs/CLAIMS.yaml
  • policy-parseThe canonical policy is parsed and rejected if it contains an unknown keydocs/CLAIMS.yaml
  • product-features-discoveredA product feature is one file under the layer, discovered rather than registered, and answered by the command line, the HTTP API, the OpenAPI document, MCP, the derived graph, the capability matrix and the website's homepage and feature pages with nothing else changeddocs/CLAIMS.yaml
  • product-projection-public-safeThe dataset the website is rendered from carries only fields an allow-list names, so a feature's prose, a machine path or a field nobody allowed cannot reach a published pagedocs/CLAIMS.yaml
  • product-references-resolveEvery reference a feature makes resolves against the registry that owns it, and one that does not is an error naming the file, the key and the nearest candidate rather than a page linking to nothingdocs/CLAIMS.yaml
  • product-surfaces-derivedWhich interfaces a feature is exposed through, what stands behind it and what it answers are derived from the registries that own those facts, never authored, and a source file that writes one down is refused by its schemadocs/CLAIMS.yaml
  • profile-axesCapability class, reasoning effort, output verbosity, context and verification are five independent axesdocs/CLAIMS.yaml
  • profile-validateEvery profile is parsed, its unknown keys rejected, and the default profile proven to existdocs/CLAIMS.yaml
  • project-schemaMilestones and issues are canonical repository files, and a key nobody reads is an errordocs/CLAIMS.yaml
  • project-status-derivedIssue and milestone status is derived from recorded facts and is stored nowheredocs/CLAIMS.yaml
  • projection-fingerprintEvery generated instruction file carries its own stamp, and a hand edit is detecteddocs/CLAIMS.yaml
  • projection-generationProvider instruction files are generated from the one policy, deterministicallydocs/CLAIMS.yaml
  • prompt-assetA repository-local prompt renders against a closed set of state tokens, and an unknown token is an errordocs/CLAIMS.yaml
  • prompt-assetsEvery repository-local prompt asset renders, and an unknown token is a failuredocs/CLAIMS.yaml
  • prompt-captureA declared provider hook captures the person's raw prompts below the model, and doctor proves it by running itdocs/CLAIMS.yaml
  • provider-projections-one-rendererThe provider bootstraps the policy declares (AGENTS.md, CLAUDE.md, GEMINI.md, ...) are a target of majordomus generate, rendered from the policy and the provider templates byte for byte as the shell tool renders them, and generate --check refuses a hand-edited or stale one in CIdocs/CLAIMS.yaml
  • record-resolutionThe right prior record is resolved by worktree and branch, and an unrelated one is never offereddocs/CLAIMS.yaml
  • record-retentionRotating the ledger archives the oldest lines and never deletes themdocs/CLAIMS.yaml
  • record-searchDurable records are searchable literally, across kinds, without an indexdocs/CLAIMS.yaml
  • region-projectionA projection can own only the region between its markers, leaving the rest of the file untoucheddocs/CLAIMS.yaml
  • release-archive-shapeA release archive carries every path once and carries nothing but files and directoriesdocs/CLAIMS.yaml
  • release-is-complete-or-absentA release publishes an artifact for every supported target or it is not publisheddocs/CLAIMS.yaml
  • reproduce-commandEvery finding carries the command that reproduces itdocs/CLAIMS.yaml
  • retention-capsThe append-only ledger and handover store have retention caps that are checkeddocs/CLAIMS.yaml
  • roadmap-derivedThe roadmap is derived from milestone state, and no document may be a second authority for itdocs/CLAIMS.yaml
  • routingRouting recommendations will be derived from measured cost and outcome datadocs/CLAIMS.yaml
  • rule-resolutionThe effective rule set is resolved as a dependency graph in a deterministic order, and a set that does not resolve is applied by nothingdocs/CLAIMS.yaml
  • runtime-adaptersOpt-in runtime adapters will clamp read size, output size and fan-out from profile-derived limitsdocs/CLAIMS.yaml
  • rust-binary-artifactThe Rust executable the rust gate built is published as an artifact with its provenance, and every Rust case drives the executable MAJORDOMUS_BIN names instead of building onedocs/CLAIMS.yaml
  • rust-coverage-floorLine coverage of the Rust crate is measured on every change that can affect the crate and on every push to master, and the build fails under the floor in scripts/rust-coverage-threshold, one integer read by CI, by scripts/rust-check and by just coveragedocs/CLAIMS.yaml
  • rust-evidence-gatesEvery gate the Rust executable must pass is one script, scripts/rust-check, and CI runs that script on every change that can reach the cratedocs/CLAIMS.yaml
  • rust-hot-path-benchmarksThe paths of the Rust executable that scale with the repository carry criterion benchmarks that build on every push, and every executable capability declares its benchmark policy, required or waived for a typed reasondocs/CLAIMS.yaml
  • schema-driven-kindsHow each declarative kind is read and which keys it may carry is data read at run time, and a repository adds a kind with its JSON Schema without a code changedocs/CLAIMS.yaml
  • scope-declaredWhat a worker reads of the repository is declared once in .ai/repo/scope.yaml, out wins over in, and the Rust executable discovers, indexes and serves nothing outside itdocs/CLAIMS.yaml
  • scope-enforcementA touched file outside the claimed scope is a failure, not a warningdocs/CLAIMS.yaml
  • scoped-taskA task is started with a declared file scope and a profile, and only one task is active per checkoutdocs/CLAIMS.yaml
  • semantic-retrievalRanked or semantic retrieval over durable records is deliberately not implementeddocs/CLAIMS.yaml
  • session-lifecycleA provider hook opens the episode below the model and hands the worker what the last one left, records what a compaction is about to discard, and closes the episode with a continuation record beside its envelopedocs/CLAIMS.yaml
  • session-recordsA closed execution episode is a shared object of the layer, written by the tool from git and the ledger, valid against a contract that admits no conversation and no absolute path, and discovered rather than registereddocs/CLAIMS.yaml
  • shared-policyOne policy will be shared across repositories and workersdocs/CLAIMS.yaml
  • site-deploy-one-pathThe site is deployed by one script, scripts/site-deploy, from a terminal or from the publication workflow; it refuses a dirty tree, a commit master does not contain and a build that is not HEAD's, pushes site/public to gh-pages with the source commit named, and pushes nothing when the output is unchangeddocs/CLAIMS.yaml
  • site-deploys-from-verified-runPublication is gated on everything that can make the published site wrong and waits for nothing else; the checks that decide whether a change may merge run beside it on the same commit, not in front of itdocs/CLAIMS.yaml
  • site-registry-datasetThe site's Registry page is rendered from site/data/registry/registry.json, a dataset majordomus generate site derives from the registry and the index with their fingerprints, and generate --check refuses a stale one in CIdocs/CLAIMS.yaml
  • skill-catalogueA skill is one directory under the layer's skills section holding SKILL.md, discovered by the source class `skill` the shell tool and the Rust executable both read, so that adding the file is the whole registration and the catalogue, the command, doctor, MCP and the site all derive from itdocs/CLAIMS.yaml
  • skill-checkEvery skill is validated against the allow-list generated from its schema, its directory, its sections and its references, a violation names the file and every reason, and a repository with no skills is reported rather than passeddocs/CLAIMS.yaml
  • skill-site-projectionThe website's skills section is rendered from the skills catalogue, one page per skill carrying the skill's own body and examples, and a removed or renamed skill leaves no page, entry or link behinddocs/CLAIMS.yaml
  • suite-parallelThe behavioural suite runs a bounded number of cases at a time with the serial runner's semantics, a case that writes into the checkout declares itself exclusive and runs alone, and the parallel phase fails naming the paths when the checkout changed under itdocs/CLAIMS.yaml
  • task-commit-attributionA task will know which commits it produced, rather than inferring them from a rangedocs/CLAIMS.yaml
  • task-dependenciesA task record has no dependencies; sequencing between sessions is not representeddocs/CLAIMS.yaml
  • telemetryExecution telemetry will be recorded once a provider exposes it honestlydocs/CLAIMS.yaml
  • tool-location-independentThe tool runs read-only from any location, and two locations of one version agree about one repositorydocs/CLAIMS.yaml
  • typed-outcomeAn outcome is a value from a closed vocabulary, not free textdocs/CLAIMS.yaml
  • use-case-coverageEvery public command is named and run by an active use case, a guaranteed claim or an MCP tool without one is a named gap, and the policy says which gaps fail doctor, check and finishdocs/CLAIMS.yaml
  • use-case-evidenceA use case's scenario executes against the real tool in a disposable repository, every step's exit code and output are asserted, and the normalised evidence is what the site showsdocs/CLAIMS.yaml
  • use-case-impactFrom the files a change touched, the tool names the commands, rules, use cases, scenarios and behavioural cases affected, and scaffolds a draft for a capability no use case coversdocs/CLAIMS.yaml
  • vendored-rule-packageThe rule baseline is vendored into the repository with a manifest naming every file and its hash, and a hand edit is detected and refuseddocs/CLAIMS.yaml
  • web-namespaces-reserved/docs serves this repository's documentation and /swagger serves the Swagger UI, and neither may take the other's mountdocs/CLAIMS.yaml
  • web-surface-declared-onceEvery web surface is declared once at its producer and resolved into one topology, from which the router, the landing page and the machine-readable index are each projecteddocs/CLAIMS.yaml
  • why-catalogue-discoveredAn operational moment is one file under the layer, discovered rather than registered, and answered by the command line, the HTTP API, the OpenAPI document, MCP, the derived graph and the website with nothing else changeddocs/CLAIMS.yaml
  • why-diagnosis-explainableA diagnosis of a reader's own symptoms is deterministic counting over the catalogue's metadata, and every recommendation names the moments that produced itdocs/CLAIMS.yaml
  • why-references-resolveEvery reference a moment makes resolves against the thing it names, and one that does not is an error carrying the nearest candidatedocs/CLAIMS.yaml
  • wiring-reconciliationEvery enforcement the policy declares is reconciled against what actually runsdocs/CLAIMS.yaml
  • worktree-migration-losslessA misplaced worktree is brought to its canonical path with its modified, staged, unstaged and untracked work intact, verified by a fingerprint taken before and after the move, and a step is reported as moved only when the two are equaldocs/CLAIMS.yaml
  • worktree-ownershipA task record names the checkout it belongs to, and another checkout is never held to its scopedocs/CLAIMS.yaml
  • worktree-topology-derivedA branch's worktree path is derived from git identity and the branch name alone — the primary checkout's sibling named with -wt, then the branch with its hierarchy kept — and is the same answer from every directory of every worktree, with nothing registered or configureddocs/CLAIMS.yaml
command 29
  • adradrshare/commands.yaml
  • benchbenchshare/commands.yaml
  • capturecaptureshare/commands.yaml
  • checkcheckshare/commands.yaml
  • checkpointcheckpointshare/commands.yaml
  • contextcontextshare/commands.yaml
  • decisiondecisionshare/commands.yaml
  • doctordoctorshare/commands.yaml
  • doctrinedoctrineshare/commands.yaml
  • evidenceevidenceshare/commands.yaml
  • finishfinishshare/commands.yaml
  • handoverhandovershare/commands.yaml
  • helphelpshare/commands.yaml
  • historyhistoryshare/commands.yaml
  • initinitshare/commands.yaml
  • knowledgeknowledgeshare/commands.yaml
  • migratemigrateshare/commands.yaml
  • planplanshare/commands.yaml
  • promptpromptshare/commands.yaml
  • questionquestionshare/commands.yaml
  • rulesrulesshare/commands.yaml
  • searchsearchshare/commands.yaml
  • sessionsessionshare/commands.yaml
  • skillsskillsshare/commands.yaml
  • startstartshare/commands.yaml
  • updateupdateshare/commands.yaml
  • usecaseusecaseshare/commands.yaml
  • versionversionshare/commands.yaml
  • watchwatchshare/commands.yaml
context 27
  • ai.layerRepository AI context.ai/README.md
  • ai.repoTracked repository context.ai/repo/README.md
  • ai.repo.adrsArchitecture decisions.ai/repo/adrs/README.md
  • ai.repo.applicationsApplications.ai/repo/applications/README.md
  • ai.repo.benchmarksBenchmarks.ai/repo/benchmarks/README.md
  • ai.repo.benchmarks.pagesPublication baselines.ai/repo/benchmarks/pages/README.md
  • ai.repo.benchmarks.rustExecutable baselines.ai/repo/benchmarks/rust/README.md
  • ai.repo.ciContinuous integration.ai/repo/ci/README.md
  • ai.repo.deploymentsDeployments.ai/repo/deployments/README.md
  • ai.repo.featuresProduct features.ai/repo/features/README.md
  • ai.repo.knowledgeKnowledge.ai/repo/knowledge/README.md
  • ai.repo.knowledge.curatedCurated notes.ai/repo/knowledge/curated/README.md
  • ai.repo.profilesProfiles.ai/repo/profiles/README.md
  • ai.repo.projectProject model.ai/repo/project/README.md
  • ai.repo.project.issuesIssues.ai/repo/project/issues/README.md
  • ai.repo.project.milestonesMilestones.ai/repo/project/milestones/README.md
  • ai.repo.promptsPrompt assets.ai/repo/prompts/README.md
  • ai.repo.providersProvider templates.ai/repo/providers/README.md
  • ai.repo.releasesPublished releases.ai/repo/releases/README.md
  • ai.repo.rulesRepository rules.ai/repo/rules/README.md
  • ai.repo.rules.projectProject rules.ai/repo/rules/project/README.md
  • ai.repo.sessionsSession records.ai/repo/sessions/README.md
  • ai.repo.skillsSkills.ai/repo/skills/README.md
  • ai.repo.use-casesUse cases.ai/repo/use-cases/README.md
  • ai.repo.whyWhy this tool exists.ai/repo/why/README.md
  • ai.repo.workflowsWorkflows.ai/repo/workflows/README.md
  • ai.repo.workspacesExternal workspaces.ai/repo/workspaces/README.md
deployment 1
  • majordomusThe Majordomus layer, served from one machine.ai/repo/deployments/majordomus.yaml
distribution-model 1
  • share/distribution.yamlshare/distribution.yaml
document 210
  • .ai/repo/skills/implement/examples/add-a-catalogue-item.mdAdd a declarative catalogue item.ai/repo/skills/implement/examples/add-a-catalogue-item.md
  • .ai/repo/skills/implement/examples/fix-a-defect.mdFix a defect.ai/repo/skills/implement/examples/fix-a-defect.md
  • .ai/repo/skills/implement/examples/implement-a-feature.mdImplement a feature from an issue.ai/repo/skills/implement/examples/implement-a-feature.md
  • .ai/repo/skills/implement/examples/make-an-operation-faster.mdMake an operation faster.ai/repo/skills/implement/examples/make-an-operation-faster.md
  • .ai/repo/skills/implement/examples/refactor-without-behaviour-change.mdRefactor a subsystem without changing its behaviour.ai/repo/skills/implement/examples/refactor-without-behaviour-change.md
  • .ai/repo/skills/repo-review/examples/review-a-subsystem.mdReview a subsystem.ai/repo/skills/repo-review/examples/review-a-subsystem.md
  • .ai/repo/skills/repo-review/examples/review-against-an-issue.mdReview an implementation against its issue.ai/repo/skills/repo-review/examples/review-against-an-issue.md
  • .ai/repo/skills/repo-review/examples/review-current-diff.mdReview the current diff.ai/repo/skills/repo-review/examples/review-current-diff.md
  • .ai/repo/skills/repo-review/examples/review-generated-synchronisation.mdReview generated files and documents for drift.ai/repo/skills/repo-review/examples/review-generated-synchronisation.md
  • .ai/repo/skills/repo-review/examples/review-repository-architecture.mdReview the whole repository's architecture.ai/repo/skills/repo-review/examples/review-repository-architecture.md
  • .ai/repo/workflows/continuity.mdContinuity.ai/repo/workflows/continuity.md
  • .ai/repo/workflows/plan.mdTaking work from the plan.ai/repo/workflows/plan.md
  • .ai/repo/workflows/task-lifecycle.mdThe task lifecycle.ai/repo/workflows/task-lifecycle.md
  • .ai/repo/workflows/use-cases.mdUse cases.ai/repo/workflows/use-cases.md
  • AGENTS.mdAGENTS.mdAGENTS.md
  • CLAUDE.mdCLAUDE.mdCLAUDE.md
  • CONTRIBUTING.mdContributingCONTRIBUTING.md
  • README.mdPrismatic MajordomusREADME.md
  • SECURITY.mdSecuritySECURITY.md
  • docs/ADOPTION.mdAdoptiondocs/ADOPTION.md
  • docs/ADOPTION_FIRST_RUN.mdFirst run in a foreign repository — forensic findingdocs/ADOPTION_FIRST_RUN.md
  • docs/CAPABILITIES.mdCapabilities — one definition, every interface deriveddocs/CAPABILITIES.md
  • docs/CATALOGUE.mdThe cataloguedocs/CATALOGUE.md
  • docs/CI.mdContinuous integrationdocs/CI.md
  • docs/CLI.mdCLI specification — `majordomus`docs/CLI.md
  • docs/COCKPIT.mdThe Cockpit — the registry, rendered for a persondocs/COCKPIT.md
  • docs/COMMANDS.mdThe command graphdocs/COMMANDS.md
  • docs/CONCEPTS.mdConceptsdocs/CONCEPTS.md
  • docs/CONTEXT.mdScoped contextdocs/CONTEXT.md
  • docs/CONTINUITY.mdContinuity — how work survives the session that was doing itdocs/CONTINUITY.md
  • docs/DESIGN.mdPrismatic Majordomusdocs/DESIGN.md
  • docs/DISTRIBUTION.mdDistributiondocs/DISTRIBUTION.md
  • docs/DOCTRINE.mdDoctrinedocs/DOCTRINE.md
  • docs/DOGFOODING.mdDogfoodingdocs/DOGFOODING.md
  • docs/DYNAMICITY.mdCanonical ownership and derivationdocs/DYNAMICITY.md
  • docs/ECONOMICS.mdEconomicsdocs/ECONOMICS.md
  • docs/ENVIRONMENT.mdThe repository environment — one snapshot, every surface a renderingdocs/ENVIRONMENT.md
  • docs/EXECUTIONS.mdExecutions — watching a capability call happendocs/EXECUTIONS.md
  • docs/EXTRACTION_REPORT.mdExtraction Report — Prismatic Majordomus v0.1 design phasedocs/EXTRACTION_REPORT.md
  • docs/GITHUB_PAGES_ARCHITECTURE.mdGitHub Pages architecturedocs/GITHUB_PAGES_ARCHITECTURE.md
  • docs/GITHUB_PAGES_PERFORMANCE.mdGitHub Pages performancedocs/GITHUB_PAGES_PERFORMANCE.md
  • docs/INSTALL.mdInstalling Majordomusdocs/INSTALL.md
  • docs/MCP.mdMCP surface — `majordomus mcp`docs/MCP.md
  • docs/PAGES_STATUS.mdGitHub Pages performance statusdocs/PAGES_STATUS.md
  • docs/PERFORMANCE.mdPerformance truthdocs/PERFORMANCE.md
  • docs/PLANNING.mdPlanning — milestones, issues, and the graph between themdocs/PLANNING.md
  • docs/PLAN_STATUS.mdPlan statusdocs/PLAN_STATUS.md
  • docs/PRODUCT.mdProduct — the features, and the landing page as a projection of themdocs/PRODUCT.md
  • docs/QUALITY.mdPublic API qualitydocs/QUALITY.md
  • docs/README.mdDocumentation indexdocs/README.md
  • docs/RELEASE.mdThe release — a changelog nobody writes, and one writer for the versiondocs/RELEASE.md
  • docs/ROADMAP.mdThe roadmap — milestones as a graphdocs/ROADMAP.md
  • docs/SCHEMAS.mdFile schemas — every file Majordomus reads or writesdocs/SCHEMAS.md
  • docs/SCOPE.mdThe repository scopedocs/SCOPE.md
  • docs/SITE_CLAIMS.mdSite claimsdocs/SITE_CLAIMS.md
  • docs/SITE_REVIEW.mdSite review — route audit, ownership, validationdocs/SITE_REVIEW.md
  • docs/TWO_FOLDER_CONSOLIDATION.mdTwo-folder consolidation — forensic findings and migration plandocs/TWO_FOLDER_CONSOLIDATION.md
  • docs/UI.mdUI conformance — `scripts/ui`docs/UI.md
  • docs/USE_CASES.mdExecutable use casesdocs/USE_CASES.md
  • docs/WEB.mdThe web surface — discovered from its producer, projected oncedocs/WEB.md
  • docs/WHY.mdWhy — the operational moments, as datadocs/WHY.md
  • docs/WORKTREES.mdWorktreesdocs/WORKTREES.md
  • docs/claims/adr-catalogue.mdAn architecture decision is one file under the layer's adrs section, validated against the decision contract, with an identity nothing else claims, reciprocal supersession, and every reference it makes resolvingdocs/claims/adr-catalogue.md
  • docs/claims/adr-propose.md`majordomus adr propose` writes a decision with status proposed and refuses to write any other status, allocates its identity under a lock so concurrent workers never collide, and records what the decision was derived fromdocs/claims/adr-propose.md
  • docs/claims/adr-traceability.mdA decision states what it put in force as typed references, each one validated, and the reverse direction is read from the knowledge graph rather than written down a second timedocs/claims/adr-traceability.md
  • docs/claims/advertised-install-command-works.mdThe install command this project advertises is run, from the published site, and proved to workdocs/claims/advertised-install-command-works.md
  • docs/claims/ai-layer-manifest.mdThe repository's AI layer is one directory whose manifest names every section, readable without the tooldocs/claims/ai-layer-manifest.md
  • docs/claims/benchmark-coverage-derived.mdEvery externally callable operation of the Rust executable is a benchmark target with a denominator generated from the registry, and a missing case fails the structural checkdocs/claims/benchmark-coverage-derived.md
  • docs/claims/blocker-store.mdAn unparseable question blocks acceptance exactly as an unresolved one doesdocs/claims/blocker-store.md
  • docs/claims/blocker-survives-handover.mdA blocking question keeps blocking after the work is handed to a new taskdocs/claims/blocker-survives-handover.md
  • docs/claims/bootstrap-chain.mdProvider instruction files are thin bootstraps that point at the AI layer and carry no rule of their owndocs/claims/bootstrap-chain.md
  • docs/claims/capability-class.mdA profile names a capability class rather than a vendor modeldocs/claims/capability-class.md
  • docs/claims/capability-modules.mdA capability of the Rust executable is declared once and composed into its module, the root composes modules, and the registry refuses a capability outside its module's namespacedocs/claims/capability-modules.md
  • docs/claims/capability-registry.mdEvery capability of the Rust executable is defined once, and the registry refuses a duplicate id or a colliding projection name, naming both partiesdocs/claims/capability-registry.md
  • docs/claims/catalogue-resolves.mdA use case cannot name something the tool does not havedocs/claims/catalogue-resolves.md
  • docs/claims/checkpoint-interval.mdA profile sets how often a worker should checkpoint, and a stale task is reporteddocs/claims/checkpoint-interval.md
  • docs/claims/checkpoint-record.mdA checkpoint is a capped progress record, and a body over the cap is refuseddocs/claims/checkpoint-record.md
  • docs/claims/ci-planned-gates.mdA change runs the gates its paths can affect, decided by one model of what affects what, and a change to the pipeline itself or a path the model does not know runs every gatedocs/claims/ci-planned-gates.md
  • docs/claims/ci-verdict.mdThe one status a branch rule requires is green only when planning succeeded and every gate the plan selected ran in a job that succeeded; a failed or cancelled job, a selected gate whose job was skipped, or a plan that selected nothing is reddocs/claims/ci-verdict.md
  • docs/claims/cli-documentation-executable.mdEvery command of the Rust executable's command line carries a summary, a long description, help on every argument and at least one example, and every example shown to a reader is executed against the built executabledocs/claims/cli-documentation-executable.md
  • docs/claims/command-coverage.mdEvery public command has a behavioural test and a negative test, computed rather than remembereddocs/claims/command-coverage.md
  • docs/claims/command-surface.mdThe public command surface is declared, and reconciled against the dispatcherdocs/claims/command-surface.md
  • docs/claims/consistency-check.mdcheck reports whether state, scope, blockers and checkpoint age are consistent right nowdocs/claims/consistency-check.md
  • docs/claims/context-assembly.mdThe context a worker is given is assembled from durable state in authority orderdocs/claims/context-assembly.md
  • docs/claims/context-budget.mdThe always-loaded instruction file has a line budget with a failing checkdocs/claims/context-budget.md
  • docs/claims/context-coverage.mdEvery directory of the layer carries a context document, the exemption is declared by the contract that governs the subtree, and a descendant may narrow that requirement but never weaken itdocs/claims/context-coverage.md
  • docs/claims/context-documents.mdThe context that applies to a path is composed from the layer's scoped documents, root to target, in one deterministic order with provenance, and a tree that does not validate resolves nothingdocs/claims/context-documents.md
  • docs/claims/context-impact.mdThe impact of a change set on the scoped context is reported from git — the documents, the scopes below them, moves with their ancestry, tracked sources to review, and stale projections — and an unrelated change reports nothingdocs/claims/context-impact.md
  • docs/claims/context-selection-budget.mdThe assembled context obeys a line budget, and every section it drops is nameddocs/claims/context-selection-budget.md
  • docs/claims/continuity-reachable.mdEvery continuity store is proven reachable through its own commanddocs/claims/continuity-reachable.md
  • docs/claims/cost-per-outcome.mdCost per accepted outcome will be reported from measured data onlydocs/claims/cost-per-outcome.md
  • docs/claims/dag-validation.mdA cycle, a self-dependency and a dependency on an issue that does not exist are each refused by namedocs/claims/dag-validation.md
  • docs/claims/decision-attribution.mdA decision record without a task, a head and a reason is reporteddocs/claims/decision-attribution.md
  • docs/claims/decision-record.mdA decision is recorded with its reason, and superseded rather than editeddocs/claims/decision-record.md
  • docs/claims/derivation-one-graph.mdEvery committed derived artifact is regenerated by one command in dependency order and checked by one read-only commanddocs/claims/derivation-one-graph.md
  • docs/claims/derived-data-current.mdA commit whose derived data is behind its canonical inputs is refused before it existsdocs/claims/derived-data-current.md
  • docs/claims/derived-not-declared.mdWhat the tool knows about itself is written once and derived everywhere elsedocs/claims/derived-not-declared.md
  • docs/claims/dispatcher-wiring.mdWiring is found in a hook or in any subhook of the directory it dispatches todocs/claims/dispatcher-wiring.md
  • docs/claims/distribution-canonical-model.mdEvery platform, artifact name and installation URL is derived from one model, and a projection that disagrees with it is refuseddocs/claims/distribution-canonical-model.md
  • docs/claims/divergence-label.mdState read back is labelled exact, advanced, diverged or different_context against gitdocs/claims/divergence-label.md
  • docs/claims/doctrine-class-decides.mdA doctrine's class decides whether a violation stops the commanddocs/claims/doctrine-class-decides.md
  • docs/claims/doctrine-registry.mdEvery enforced rule is declared once, and doctor proves it is reacheddocs/claims/doctrine-registry.md
  • docs/claims/drift-watch.mdwatch reports policy, projection, state, scope, handover, verification, staleness and retention driftdocs/claims/drift-watch.md
  • docs/claims/effort-escalation.mdEscalating reasoning effort after repeated blocked attempts is recorded rather than assumeddocs/claims/effort-escalation.md
  • docs/claims/event-vocabulary.mdThe ledger's event vocabulary is closed, on the way in and on the way outdocs/claims/event-vocabulary.md
  • docs/claims/evidence-gates-done.mdAn issue cannot be completed while a required piece of evidence is missingdocs/claims/evidence-gates-done.md
  • docs/claims/executable-reference-derived.mdThe site's pages about the Rust executable are derived from the registry, and a capability that joins or leaves it gains or loses its page from the generators alonedocs/claims/executable-reference-derived.md
  • docs/claims/execution-cache-equivalence.mdA cached capability of the Rust executable answers the same value uncached, cold and warm, a hit runs no handler, errors and commands are never cached, and the key carries the registry fingerprintdocs/claims/execution-cache-equivalence.md
  • docs/claims/execution-waves.mdExecution waves are computed from the graph, and issues in one wave that touch the same paths are reported as serialiseddocs/claims/execution-waves.md
  • docs/claims/exit-code-contract.mdExit codes are a contract, and no code means "warn and continue"docs/claims/exit-code-contract.md
  • docs/claims/finish-contract.mdfinish evaluates the finish contract line by line and refuses when any line is unmetdocs/claims/finish-contract.md
  • docs/claims/generated-artifacts-typed.mdEvery generated artifact declares the document it projects, the encoding it is written in, the schema its content satisfies and its source, and a structured document is written in every encoding it is committed in from one valuedocs/claims/generated-artifacts-typed.md
  • docs/claims/generated-projections-checked.mdThe committed projections, the OpenAPI document, the capability reference and the allow-lists, are regenerated from the registry and the schemas, and generate --check refuses a stale onedocs/claims/generated-projections-checked.md
  • docs/claims/git-identity.mdIdentity fields on every state record are computed from git and never authoreddocs/claims/git-identity.md
  • docs/claims/github-projection-gated.mdA projection that stops being applied turns a build red, and a gate that cannot reach GitHub reports that it cannot rather than passingdocs/claims/github-projection-gated.md
  • docs/claims/github-projection.mdGitHub milestones and issues are generated from the canonical model, and a hand-edited generated region is reported rather than overwrittendocs/claims/github-projection.md
  • docs/claims/handover-record.mdhandover writes an append-only record with computed front matter and required sectionsdocs/claims/handover-record.md
  • docs/claims/history-ledger-read.mdThe ledger is readable back as operational historydocs/claims/history-ledger-read.md
  • docs/claims/hot-path-no-rebuild.mdAfter startup, no MCP or HTTP request of the Rust executable scans the repository, builds the index or the registry, derives a schema or builds a projection, and perf.counters proves itdocs/claims/hot-path-no-rebuild.md
  • docs/claims/init-refuses.mdInstalling into a repository that already has an installation is refuseddocs/claims/init-refuses.md
  • docs/claims/install-command-is-derived.mdThe documented one-line install command is composed from the model's parts, and a document that states a different one fails the suitedocs/claims/install-command-is-derived.md
  • docs/claims/installer-verifies-before-installing.mdThe installer verifies an artifact's digest and inspects its archive before anything is unpacked, and any failure leaves the previous installation workingdocs/claims/installer-verifies-before-installing.md
  • docs/claims/interfaces-are-projections.mdMCP, HTTP, OpenAPI, Swagger UI, the capabilities commands and the generated reference are derived from the registry, and a change to one definition reaches every one of themdocs/claims/interfaces-are-projections.md
  • docs/claims/landing-page-is-a-projection.mdThe homepage names nothing of its owndocs/claims/landing-page-is-a-projection.md
  • docs/claims/ledger-integrity.mdEvery line of the ledger is a well-formed eventdocs/claims/ledger-integrity.md
  • docs/claims/legacy-migration.mdA repository on the pre-.ai layout is migrated once, explicitly, with a previewed plan and a verified backup of its local state, and the command is idempotent afterwardsdocs/claims/legacy-migration.md
  • docs/claims/local-state-ignored.mdCheckout-local state lives under .ai/local/, is ignored by git, and is absent on a fresh clone or worktreedocs/claims/local-state-ignored.md
  • docs/claims/mcp-client-autostart.mdAn MCP client opened in the repository starts the server itself, building the executable when it must, through the client configurations at the root and bin/majordomus-mcpdocs/claims/mcp-client-autostart.md
  • docs/claims/mcp-data-driven.mdWhat the MCP server serves is decided by the manifest, the declared source classes and each file's front matter, so an object added to the layer is served with no change to the executabledocs/claims/mcp-data-driven.md
  • docs/claims/mcp-degraded-not-silent.mdA file of the layer the MCP server cannot read is excluded with a diagnostic naming its path and the index says it is degraded, never silently smallerdocs/claims/mcp-degraded-not-silent.md
  • docs/claims/mcp-lease-resilience.mdNothing a client leaves behind locks another client out of the shared server; a corrupt, empty, stale or abandoned lease is taken over and named, a client that cannot share is served alone with the reason logged, and a signal removes the lease before the server diesdocs/claims/mcp-lease-resilience.md
  • docs/claims/mcp-peers.mdEvery client attached to the shared server is a peer named by its own initialize, listed by majordomus_peers, and majordomus_announce tells the others what it is working on and which paths it expects to touchdocs/claims/mcp-peers.md
  • docs/claims/mcp-shared-server.mdOne shared server serves a repository: the first majordomus mcp binds loopback HTTP with Swagger UI and MCP over HTTP beside its stdio session and logs the URL, every later one attaches to it, and it ends when the last client leavesdocs/claims/mcp-shared-server.md
  • docs/claims/mcp-stdio-surface.mdThe Rust executable serves the repository's AI layer to an MCP client over stdio, read-only, with protocol frames alone on stdoutdocs/claims/mcp-stdio-surface.md
  • docs/claims/mcp-uri-resolution.mdA majordomus:// URI resolves the same way through the MCP resource read, the majordomus_get tool and the HTTP object route, and majordomus://repository answers repository.info as a JSON document tagged builtindocs/claims/mcp-uri-resolution.md
  • docs/claims/minimum-context.mdA profile declares which context a worker should load and no moredocs/claims/minimum-context.md
  • docs/claims/no-counts-in-context.mdA hardcoded count in the always-loaded file is a failuredocs/claims/no-counts-in-context.md
  • docs/claims/no-network.mdNothing performs a network call, evaluates generated text, or deletes recursivelydocs/claims/no-network.md
  • docs/claims/no-silent-overwrite.mdA hand-edited instruction file is never silently overwrittendocs/claims/no-silent-overwrite.md
  • docs/claims/no-transcripts.mdHandovers carry durable facts, never conversation transcriptsdocs/claims/no-transcripts.md
  • docs/claims/obligation-closure.mdA task that declares obligations reaches the outcome completed only when each one has evidence, and evidence taken over files that have since changed no longer discharges anythingdocs/claims/obligation-closure.md
  • docs/claims/obligation-establishment.mdAn obligation whose fact the tool can hold is established live rather than recorded, and a hand-recorded line neither discharges it nor rescues itdocs/claims/obligation-establishment.md
  • docs/claims/open-question-gate.mdAn unresolved question blocks acceptance, and an unparseable entry is a failuredocs/claims/open-question-gate.md
  • docs/claims/openapi-inferred.mdThe OpenAPI document is inferred: the tags are the modules, the examples are the benchmark cases, the responses are the router's statuses by kind, the prose is the one text every projection shares, and the site's API reference is rendered from the committed documentdocs/claims/openapi-inferred.md
  • docs/claims/overlap-report.mdOverlap between parallel workers is computed on claimed paths in both containment directionsdocs/claims/overlap-report.md
  • docs/claims/pointer-integrity.mdEvery repository-relative reference in the always-loaded file is proven to resolvedocs/claims/pointer-integrity.md
  • docs/claims/policy-parse.mdThe canonical policy is parsed and rejected if it contains an unknown keydocs/claims/policy-parse.md
  • docs/claims/product-features-discovered.mdA product feature is discovered, never registereddocs/claims/product-features-discovered.md
  • docs/claims/product-projection-public-safe.mdThe public dataset carries only fields somebody alloweddocs/claims/product-projection-public-safe.md
  • docs/claims/product-references-resolve.mdA reference that resolves to nothing is an error, not a broken linkdocs/claims/product-references-resolve.md
  • docs/claims/product-surfaces-derived.mdWhat a feature is on is derived; what it is for is writtendocs/claims/product-surfaces-derived.md
  • docs/claims/profile-axes.mdCapability class, reasoning effort, output verbosity, context and verification are five independent axesdocs/claims/profile-axes.md
  • docs/claims/profile-validate.mdEvery profile is parsed, its unknown keys rejected, and the default profile proven to existdocs/claims/profile-validate.md
  • docs/claims/project-schema.mdMilestones and issues are canonical repository files, and a key nobody reads is an errordocs/claims/project-schema.md
  • docs/claims/project-status-derived.mdIssue and milestone status is derived from recorded facts and is stored nowheredocs/claims/project-status-derived.md
  • docs/claims/projection-fingerprint.mdEvery generated instruction file carries its own stamp, and a hand edit is detecteddocs/claims/projection-fingerprint.md
  • docs/claims/projection-generation.mdProvider instruction files are generated from the one policy, deterministicallydocs/claims/projection-generation.md
  • docs/claims/prompt-asset.mdA prompt renders against a closed set of tokens, and an unknown token is an errordocs/claims/prompt-asset.md
  • docs/claims/prompt-assets.mdEvery prompt asset renders, and an unknown token is a failuredocs/claims/prompt-assets.md
  • docs/claims/prompt-capture.mdA provider hook captures the person's raw prompts below the model, as a record and a rendering, and doctor proves it by running itdocs/claims/prompt-capture.md
  • docs/claims/provider-projections-one-renderer.mdThe provider bootstraps are a target of `majordomus generate`, rendered by one renderer, and `generate --check` refuses a stale one in CIdocs/claims/provider-projections-one-renderer.md
  • docs/claims/record-resolution.mdThe right prior record is resolved by worktree and branch, and an unrelated one is never offereddocs/claims/record-resolution.md
  • docs/claims/record-retention.mdRotating the ledger archives the oldest lines and never deletes themdocs/claims/record-retention.md
  • docs/claims/record-search.mdDurable records are searchable literally, across kinds, without an indexdocs/claims/record-search.md
  • docs/claims/region-projection.mdA projection can own only the region between its markersdocs/claims/region-projection.md
  • docs/claims/release-archive-shape.mdA release archive carries every path once and carries nothing but files and directoriesdocs/claims/release-archive-shape.md
  • docs/claims/release-is-complete-or-absent.mdA release publishes an artifact for every supported target or it is not publisheddocs/claims/release-is-complete-or-absent.md
  • docs/claims/reproduce-command.mdEvery finding carries the command that reproduces itdocs/claims/reproduce-command.md
  • docs/claims/retention-caps.mdThe append-only ledger and handover store have retention caps that are checkeddocs/claims/retention-caps.md
  • docs/claims/roadmap-derived.mdThe roadmap is derived from milestone state, and no document may be a second authority for itdocs/claims/roadmap-derived.md
  • docs/claims/routing.mdRouting recommendations will be derived from measured cost and outcome datadocs/claims/routing.md
  • docs/claims/rule-resolution.mdThe effective rule set is resolved as a dependency graph in a deterministic order, and a set that does not resolve is applied by nothingdocs/claims/rule-resolution.md
  • docs/claims/runtime-adapters.mdOpt-in runtime adapters will clamp read size, output size and fan-out from profile-derived limitsdocs/claims/runtime-adapters.md
  • docs/claims/rust-binary-artifact.mdThe Rust executable the rust gate built is published as an artifact with its provenance, and every Rust case drives the executable MAJORDOMUS_BIN names instead of building onedocs/claims/rust-binary-artifact.md
  • docs/claims/rust-coverage-floor.mdLine coverage of the Rust crate is measured on every change that can affect the crate and on every push to master, and the build fails under the floor in scripts/rust-coverage-threshold, one integer read by CI, by scripts/rust-check and by just coveragedocs/claims/rust-coverage-floor.md
  • docs/claims/rust-evidence-gates.mdEvery gate the Rust executable must pass is one script, scripts/rust-check, and CI runs that script on every change that can reach the cratedocs/claims/rust-evidence-gates.md
  • docs/claims/rust-hot-path-benchmarks.mdThe paths of the Rust executable that scale with the repository carry criterion benchmarks that build on every push, and every executable capability declares its benchmark policy, required or waived for a typed reasondocs/claims/rust-hot-path-benchmarks.md
  • docs/claims/schema-driven-kinds.mdHow each declarative kind is read and which keys it may carry is data read at run time, and a repository adds a kind with its JSON Schema without a code changedocs/claims/schema-driven-kinds.md
  • docs/claims/scope-declared.mdWhat a worker reads of the repository is declared once in .ai/repo/scope.yaml, out wins over in, and the Rust executable discovers, indexes and serves nothing outside itdocs/claims/scope-declared.md
  • docs/claims/scope-enforcement.mdA touched file outside the claimed scope is a failure, not a warningdocs/claims/scope-enforcement.md
  • docs/claims/scoped-task.mdA task is started with a declared file scope and a profile, and only one task is active per checkoutdocs/claims/scoped-task.md
  • docs/claims/semantic-retrieval.mdRanked or semantic retrieval over durable records is deliberately not implementeddocs/claims/semantic-retrieval.md
  • docs/claims/session-lifecycle.mdA provider hook opens and closes the execution episode, and the context it was given at the open is frozen beside itdocs/claims/session-lifecycle.md
  • docs/claims/session-records.mdA closed execution episode is a shared object of the layer, written by the tool from git and the ledger, valid against a contract that admits no conversation and no absolute path, and discovered rather than registereddocs/claims/session-records.md
  • docs/claims/shared-policy.mdOne policy will be shared across repositories and workersdocs/claims/shared-policy.md
  • docs/claims/site-deploy-one-path.mdThe site is deployed by one script, from a terminal or from the Pages workflow, and the deploy names its sourcedocs/claims/site-deploy-one-path.md
  • docs/claims/site-deploys-from-verified-run.mdPublication is gated on everything that can make the published site wrong and waits for nothing else; the checks that decide whether a change may merge run beside it on the same commit, not in front of itdocs/claims/site-deploys-from-verified-run.md
  • docs/claims/site-registry-dataset.mdThe site's Registry page is rendered from a dataset `majordomus generate site` derives from the registry, and `generate --check` refuses a stale onedocs/claims/site-registry-dataset.md
  • docs/claims/skill-catalogue.mdA skill is one directory under the skills section, discovered by the source class both readers share, so that adding the file is the whole registrationdocs/claims/skill-catalogue.md
  • docs/claims/skill-check.mdEvery skill is validated against the allow-list generated from its schema, its directory, its sections and its references, and a repository with no skills is reported rather than passeddocs/claims/skill-check.md
  • docs/claims/skill-site-projection.mdThe website's skills section is rendered from the skills catalogue, one page per skill carrying its own body and examples, and a removed or renamed skill leaves nothing behinddocs/claims/skill-site-projection.md
  • docs/claims/suite-parallel.mdThe behavioural suite runs a bounded number of cases at a time with the serial runner's semantics, a case that writes into the checkout declares itself exclusive and runs alone, and the parallel phase fails naming the paths when the checkout changed under itdocs/claims/suite-parallel.md
  • docs/claims/task-commit-attribution.mdA task will know which commits it produced, rather than inferring them from a rangedocs/claims/task-commit-attribution.md
  • docs/claims/task-dependencies.mdA task record has no dependencies; sequencing between sessions is not representeddocs/claims/task-dependencies.md
  • docs/claims/telemetry.mdExecution telemetry will be recorded once a provider exposes it honestlydocs/claims/telemetry.md
  • docs/claims/tool-location-independent.mdThe tool runs read-only from any location, and two locations of one version agree about one repositorydocs/claims/tool-location-independent.md
  • docs/claims/typed-outcome.mdAn outcome is a value from a closed vocabulary, not free textdocs/claims/typed-outcome.md
  • docs/claims/use-case-coverage.mdEvery public command is named and run by an active use case, a guaranteed claim or an MCP tool without one is a named gap, and the policy says which gaps fail doctor, check and finishdocs/claims/use-case-coverage.md
  • docs/claims/use-case-evidence.mdA use case's scenario executes against the real tool in a disposable repository, every step's exit code and output are asserted, and the normalised evidence is what the site showsdocs/claims/use-case-evidence.md
  • docs/claims/use-case-impact.mdFrom the files a change touched, the tool names the commands, rules, use cases, scenarios and behavioural cases affected, and scaffolds a draft for a capability no use case coversdocs/claims/use-case-impact.md
  • docs/claims/vendored-rule-package.mdThe rule baseline is vendored into the repository with a manifest naming every file and its hash, and a hand edit is detected and refuseddocs/claims/vendored-rule-package.md
  • docs/claims/web-namespaces-reserved.md/docs serves this repository's documentation and /swagger serves the Swagger UI, and neither may take the other's mountdocs/claims/web-namespaces-reserved.md
  • docs/claims/web-surface-declared-once.mdEvery web surface is declared once at its producer and resolved into one topology, from which the router, the landing page and the machine-readable index are each projecteddocs/claims/web-surface-declared-once.md
  • docs/claims/why-catalogue-discovered.mdAn operational moment is discovered, never registereddocs/claims/why-catalogue-discovered.md
  • docs/claims/why-diagnosis-explainable.mdA diagnosis is counting, and it says what it counteddocs/claims/why-diagnosis-explainable.md
  • docs/claims/why-references-resolve.mdEvery reference a moment makes resolvesdocs/claims/why-references-resolve.md
  • docs/claims/wiring-reconciliation.mdEvery enforcement the policy declares is reconciled against what actually runsdocs/claims/wiring-reconciliation.md
  • docs/claims/worktree-migration-lossless.mdA misplaced worktree migrates with its work intact, and proves itdocs/claims/worktree-migration-lossless.md
  • docs/claims/worktree-ownership.mdA task record names its checkout, and another checkout is never held to its scopedocs/claims/worktree-ownership.md
  • docs/claims/worktree-topology-derived.mdA branch's worktree path is derived, never registereddocs/claims/worktree-topology-derived.md
feature 20
  • benchmarksEvery claim about speed is a recorded measurement.ai/repo/features/benchmarks.md
  • ciCI planned from one model, the site deployed from its verified run.ai/repo/features/ci.md
  • cockpitThe Cockpit: the registry rendered for a person.ai/repo/features/cockpit.md
  • contextEvery directory of the layer carries its contract, and a worker reads what applies.ai/repo/features/context.md
  • continuitySessions, prompts and handovers that outlive the conversation.ai/repo/features/continuity.md
  • coordinationSeveral agents on one repository, without stepping on each other.ai/repo/features/coordination.md
  • declare-onceDeclare once, derive every interface.ai/repo/features/declare-once.md
  • deploymentsA deployment is one canonical object, and every provider artifact is generated from it.ai/repo/features/deployments.md
  • doctrineRules a machine decides, wired, tested and CI-blocking.ai/repo/features/doctrine.md
  • finish-contractDone is a contract, evaluated line by line and refused when unmet.ai/repo/features/finish-contract.md
  • installOne command to install, one to initialise, nothing else to trust.ai/repo/features/install.md
  • interfacesOne registry over the command line, HTTP, OpenAPI, Swagger UI and MCP.ai/repo/features/interfaces.md
  • knowledgeDecisions and knowledge that compound instead of evaporating.ai/repo/features/knowledge.md
  • planningMilestones and issues as data; status derived, never stored.ai/repo/features/planning.md
  • policyOne policy, projected into every tool's instruction file.ai/repo/features/policy.md
  • provenanceEvery record names the commit, the branch and the episode that made it.ai/repo/features/provenance.md
  • skillsSkills are procedures as data, discovered and checked, never registered.ai/repo/features/skills.md
  • use-casesEvery use case is executed against the tool, not described.ai/repo/features/use-cases.md
  • whyThe failure modes it answers are objects, not marketing pages.ai/repo/features/why.md
  • worktreesOne branch, one worktree, at a path derived from git.ai/repo/features/worktrees.md
implementation 45
  • bin/majordomusbin/majordomus
  • bin/majordomus-clibin/majordomus-cli
  • bin/majordomus-envbin/majordomus-env
  • bin/majordomus-mcpbin/majordomus-mcp
  • lib/adr.shlib/adr.sh
  • lib/bench.shlib/bench.sh
  • lib/capture.shlib/capture.sh
  • lib/check.shlib/check.sh
  • lib/checkpoint.shlib/checkpoint.sh
  • lib/commands.shlib/commands.sh
  • lib/common.shlib/common.sh
  • lib/context.shlib/context.sh
  • lib/context_docs.shlib/context_docs.sh
  • lib/decision.shlib/decision.sh
  • lib/deployment.shlib/deployment.sh
  • lib/derive.shlib/derive.sh
  • lib/doctor.shlib/doctor.sh
  • lib/doctrine.shlib/doctrine.sh
  • lib/evidence.shlib/evidence.sh
  • lib/finish.shlib/finish.sh
  • lib/handover.shlib/handover.sh
  • lib/history.shlib/history.sh
  • lib/init.shlib/init.sh
  • lib/json_scan.awklib/json_scan.awk
  • lib/json_unesc.awklib/json_unesc.awk
  • lib/knowledge.awklib/knowledge.awk
  • lib/knowledge.shlib/knowledge.sh
  • lib/mermaid.awklib/mermaid.awk
  • lib/migrate.shlib/migrate.sh
  • lib/plan.shlib/plan.sh
  • lib/plan_json.awklib/plan_json.awk
  • lib/project.awklib/project.awk
  • lib/project.shlib/project.sh
  • lib/prompt.shlib/prompt.sh
  • lib/question.shlib/question.sh
  • lib/rules.shlib/rules.sh
  • lib/rust_bin.shlib/rust_bin.sh
  • lib/search.shlib/search.sh
  • lib/session.shlib/session.sh
  • lib/session_context.shlib/session_context.sh
  • lib/skills.shlib/skills.sh
  • lib/start.shlib/start.sh
  • lib/update.shlib/update.sh
  • lib/usecase.shlib/usecase.sh
  • lib/watch.shlib/watch.sh
issue 202
  • I0001Audit what actually plans work in this repository.ai/repo/project/issues/I0001.yaml
  • I0002Define the canonical milestone and issue schema.ai/repo/project/issues/I0002.yaml
  • I0003Implement the model loader and the status derivation engine.ai/repo/project/issues/I0003.yaml
  • I0004Implement DAG validation and execution waves.ai/repo/project/issues/I0004.yaml
  • I0005Implement the plan command surface.ai/repo/project/issues/I0005.yaml
  • I0006Generate the Mermaid DAG from the graph.ai/repo/project/issues/I0006.yaml
  • I0007Enforce the canonical model as doctrine.ai/repo/project/issues/I0007.yaml
  • I0008Project the model to GitHub milestones and issues.ai/repo/project/issues/I0008.yaml
  • I0009Project the model into the website.ai/repo/project/issues/I0009.yaml
  • I0010Behavioural tests for schema, status, graph and command.ai/repo/project/issues/I0010.yaml
  • I0011Cross-surface consistency and mutation tests.ai/repo/project/issues/I0011.yaml
  • I0012Make CI refuse an invalid model or a stale projection.ai/repo/project/issues/I0012.yaml
  • I0013Document the semantics and the dogfooding rule.ai/repo/project/issues/I0013.yaml
  • I0014Make the worker instructions require the model.ai/repo/project/issues/I0014.yaml
  • I0015Open the first real milestone and execute one issue through it.ai/repo/project/issues/I0015.yaml
  • I0101Reproduce the escaped blocker as an executable case.ai/repo/project/issues/I0101.yaml
  • I0102Decide whether a question transfers or the gate widens.ai/repo/project/issues/I0102.yaml
  • I0103Implement the decision and prove it holds.ai/repo/project/issues/I0103.yaml
  • I0104Move the claim from planned to guaranteed.ai/repo/project/issues/I0104.yaml
  • I0201Declare which profile axis may become which runtime limit.ai/repo/project/issues/I0201.yaml
  • I0202Resolve a task's effective limits and print them as data.ai/repo/project/issues/I0202.yaml
  • I0203Make enforcement opt-in, and prove a repository that declines is unaffected.ai/repo/project/issues/I0203.yaml
  • I0204Apply one derived limit for real and prove it changes what happens.ai/repo/project/issues/I0204.yaml
  • I0205Declare the clamp as a doctrine so the mapping and the adapter cannot drift.ai/repo/project/issues/I0205.yaml
  • I0206Publish the runtime-adapters claim with the test that proves it and the limits it does not cover.ai/repo/project/issues/I0206.yaml
  • I0301Define the execution record, including what an absence looks like.ai/repo/project/issues/I0301.yaml
  • I0302Record telemetry a provider reports, and refuse anything it did not.ai/repo/project/issues/I0302.yaml
  • I0303Prove a silent provider produces an explicit absence, never a guess.ai/repo/project/issues/I0303.yaml
  • I0304Read the measurements back through the history surface, under a bound.ai/repo/project/issues/I0304.yaml
  • I0305Publish the telemetry claim and record what remains unmeasured.ai/repo/project/issues/I0305.yaml
  • I0401Define an accepted outcome, and join it to its measurements without storing the join.ai/repo/project/issues/I0401.yaml
  • I0402Report cost only where measurement and acceptance both exist.ai/repo/project/issues/I0402.yaml
  • I0403Make a thin denominator say so rather than average it away.ai/repo/project/issues/I0403.yaml
  • I0404Publish the cost-per-outcome claim with its unit defined beside it.ai/repo/project/issues/I0404.yaml
  • I0501Group comparable work from what the records already carry.ai/repo/project/issues/I0501.yaml
  • I0502Recommend a profile from measured cost, naming the measurements.ai/repo/project/issues/I0502.yaml
  • I0503Return no recommendation where the data is too thin, and say why.ai/repo/project/issues/I0503.yaml
  • I0504Prove the recommendation is advisory and publish it as such.ai/repo/project/issues/I0504.yaml
  • I0601Let a policy name a shared source it does not copy.ai/repo/project/issues/I0601.yaml
  • I0602Make a local override explicit and prove it survives an update of the shared source.ai/repo/project/issues/I0602.yaml
  • I0603Report drift from the shared policy in one command.ai/repo/project/issues/I0603.yaml
  • I0604Prove the offline guarantee survives sharing.ai/repo/project/issues/I0604.yaml
  • I0605Publish the shared-policy claim and what sharing still cannot do.ai/repo/project/issues/I0605.yaml
  • I0701Reproduce the misattribution as an executable case.ai/repo/project/issues/I0701.yaml
  • I0702Decide how a record is attributed, between named alternatives.ai/repo/project/issues/I0702.yaml
  • I0703Implement the decision and prove it holds.ai/repo/project/issues/I0703.yaml
  • I0704Publish what attribution guarantees, and what it still cannot.ai/repo/project/issues/I0704.yaml
  • I0801Narrow the Clean Extraction Boundary and record what was adopted.ai/repo/project/issues/I0801.yaml
  • I0802Specify the session record before writing one.ai/repo/project/issues/I0802.yaml
  • I0803Open a session and report its status.ai/repo/project/issues/I0803.yaml
  • I0804Close a session into an envelope derived from the ledger.ai/repo/project/issues/I0804.yaml
  • I0805Read sessions back with a divergence label.ai/repo/project/issues/I0805.yaml
  • I0806Make the session rules doctrines, with retention and archiving.ai/repo/project/issues/I0806.yaml
  • I0807Discover knowledge sources from git, not from the filesystem.ai/repo/project/issues/I0807.yaml
  • I0808Extract nodes with identities that survive a rebuild.ai/repo/project/issues/I0808.yaml
  • I0809Record only edges that a file states, each with where it was observed.ai/repo/project/issues/I0809.yaml
  • I0810A content-hash manifest that makes a second sync cheap.ai/repo/project/issues/I0810.yaml
  • I0811Read-only knowledge lookup with an ordering that can be explained.ai/repo/project/issues/I0811.yaml
  • I0812Validate the graph, and let doctor and watch ask the same validator.ai/repo/project/issues/I0812.yaml
  • I0813A closed session becomes a node that points at its episode.ai/repo/project/issues/I0813.yaml
  • I0814Give the worker a bounded slice of knowledge, not the knowledge base.ai/repo/project/issues/I0814.yaml
  • I0815Say what is now true in the claims, the documentation and the worker instructions.ai/repo/project/issues/I0815.yaml
  • I0816Prove the loop on a real issue, without a transcript.ai/repo/project/issues/I0816.yaml
  • I0817Phase timing and work counters behind MJ_TIMING.ai/repo/project/issues/I0817.yaml
  • I0818The command registry is read in one pass.ai/repo/project/issues/I0818.yaml
  • I0819The project model is loaded with one flatten per file and no per-file lookups.ai/repo/project/issues/I0819.yaml
  • I0820Catalogue, DAG, context and command-surface validators read their inputs once.ai/repo/project/issues/I0820.yaml
  • I0821Flattened YAML is cached under .ai/local/cache by content hash.ai/repo/project/issues/I0821.yaml
  • I0822Every canonical file is flattened at most once per command.ai/repo/project/issues/I0822.yaml
  • I0823majordomus bench: targets derived from the command registry.ai/repo/project/issues/I0823.yaml
  • I0824Bench persists local runs and keeps a latest projection.ai/repo/project/issues/I0824.yaml
  • I0825An explicit committed baseline.ai/repo/project/issues/I0825.yaml
  • I0826bench --check refuses a regression by policy.ai/repo/project/issues/I0826.yaml
  • I0827The benchmark policy block.ai/repo/project/issues/I0827.yaml
  • I0828doctor under a declared budget, and the hook inherits it.ai/repo/project/issues/I0828.yaml
  • I0829Performance doctrine as project rules.ai/repo/project/issues/I0829.yaml
  • I0830docs/PERFORMANCE.md, README, CONTRIBUTING and CLI reference.ai/repo/project/issues/I0830.yaml
  • I0831Performance claims at their proven status.ai/repo/project/issues/I0831.yaml
  • I0832generate-site-data instrumented and its hot spots removed.ai/repo/project/issues/I0832.yaml
  • I0833knowledge nodes and edges read each source once.ai/repo/project/issues/I0833.yaml
  • I0834The test runner reports per-case time and the suite budget.ai/repo/project/issues/I0834.yaml
  • I0835CI runs the structural performance checks.ai/repo/project/issues/I0835.yaml
  • I0836A synthetic repository generator for scaling cases.ai/repo/project/issues/I0836.yaml
  • I0837Timing report as JSON.ai/repo/project/issues/I0837.yaml
  • I0838bench compare and the top regressions report.ai/repo/project/issues/I0838.yaml
  • I0839watch inherits every doctor fix and its own budget.ai/repo/project/issues/I0839.yaml
  • I0840context and its subcommands under a second.ai/repo/project/issues/I0840.yaml
  • I0841Cache equivalence proved by property-shaped cases.ai/repo/project/issues/I0841.yaml
  • I0842Before and after evidence for every optimisation.ai/repo/project/issues/I0842.yaml
  • I0843The performance workflow is discoverable and complete.ai/repo/project/issues/I0843.yaml
  • I0901The deployment description is a kind of the layer, not a provider file.ai/repo/project/issues/I0901.yaml
  • I0902The deployment object becomes typed Rust that refuses nonsense.ai/repo/project/issues/I0902.yaml
  • I0903Deployment reads are declared once and projected everywhere.ai/repo/project/issues/I0903.yaml
  • I0904The listen address is one fact with two projections.ai/repo/project/issues/I0904.yaml
  • I0905Liveness and readiness are registered capabilities, not router hacks.ai/repo/project/issues/I0905.yaml
  • I0906Termination is graceful and proved against the real container.ai/repo/project/issues/I0906.yaml
  • I0907The running process says what it is, from an allowlist.ai/repo/project/issues/I0907.yaml
  • I0908A hosted process has no repository, and says so instead of failing.ai/repo/project/issues/I0908.yaml
  • I0909The production image is a generated projection of the build specification.ai/repo/project/issues/I0909.yaml
  • I0910The release profile is chosen by measurement, not by folklore.ai/repo/project/issues/I0910.yaml
  • I0911A source change does not rebuild the world, and the context stays small.ai/repo/project/issues/I0911.yaml
  • I0912The image serves the site the canonical pipeline produced.ai/repo/project/issues/I0912.yaml
  • I0913The provider configuration is generated, and the cheap profile is declared.ai/repo/project/issues/I0913.yaml
  • I0914One deployment core, one command, and a dry run that mutates nothing.ai/repo/project/issues/I0914.yaml
  • I0915Deployment joins the diagnostics that already exist.ai/repo/project/issues/I0915.yaml
  • I0916The smoke suite is derived from the route registry, never written twice.ai/repo/project/issues/I0916.yaml
  • I0917A bad deployment can be undone deterministically.ai/repo/project/issues/I0917.yaml
  • I0918The bootstrap credential is used once and belongs to nothing.ai/repo/project/issues/I0918.yaml
  • I0919Nothing secret and nothing local leaves in the image.ai/repo/project/issues/I0919.yaml
  • I0920The image's dependencies are known and its advisories are policy.ai/repo/project/issues/I0920.yaml
  • I0921Size is measured first and budgeted second.ai/repo/project/issues/I0921.yaml
  • I0922The memory hypothesis is tested, not asserted.ai/repo/project/issues/I0922.yaml
  • I0923Cold start and endpoint cost are benchmark targets like everything else.ai/repo/project/issues/I0923.yaml
  • I0924The decision is recorded where architecture decisions are recorded.ai/repo/project/issues/I0924.yaml
  • I0925Every deployment rule is a check that runs.ai/repo/project/issues/I0925.yaml
  • I0926The deployment documentation is generated and reachable.ai/repo/project/issues/I0926.yaml
  • I0927The cockpit shows the deployment from the same data.ai/repo/project/issues/I0927.yaml
  • I0928A pull request cannot merge a deployment that would not work.ai/repo/project/issues/I0928.yaml
  • I0929Production deploys from CI with a token scoped to one application.ai/repo/project/issues/I0929.yaml
  • I0930The real image runs under the real limits before anything is deployed.ai/repo/project/issues/I0930.yaml
  • I0931The application exists, one machine runs it, and the URL answers.ai/repo/project/issues/I0931.yaml
  • I0932The milestone is accepted on its evidence.ai/repo/project/issues/I0932.yaml
  • I1001One typed graph composes the registries that already own their facts.ai/repo/project/issues/I1001.yaml
  • I1002Relations are typed, inferred from stable identities, and never dangle.ai/repo/project/issues/I1002.yaml
  • I1003Skills, rules, decisions, documents, use cases and benchmarks enter the graph as themselves.ai/repo/project/issues/I1003.yaml
  • I1004Availability and visibility are metadata, not conditions in a template.ai/repo/project/issues/I1004.yaml
  • I1005The graph is a generated artifact with a schema and no unsafe field.ai/repo/project/issues/I1005.yaml
  • I1006The runtime reads the graph through the registry, like every other read.ai/repo/project/issues/I1006.yaml
  • I1007The site renders the same graph, generated once.ai/repo/project/issues/I1007.yaml
  • I1008The two projections are proved to be the same model.ai/repo/project/issues/I1008.yaml
  • I1009Every menu in this repository comes from one derivation.ai/repo/project/issues/I1009.yaml
  • I1010The overview is what exists, counted rather than claimed.ai/repo/project/issues/I1010.yaml
  • I1011The coverage matrix reports evidence, and never a green cell without one.ai/repo/project/issues/I1011.yaml
  • I1012One detail view, assembled from what a node actually has.ai/repo/project/issues/I1012.yaml
  • I1013Search over the graph, generated, with nothing to run.ai/repo/project/issues/I1013.yaml
  • I1014The relation view reads the graph and holds no data of its own.ai/repo/project/issues/I1014.yaml
  • I1015A surface with no server behind it is not offered as if it had one.ai/repo/project/issues/I1015.yaml
  • I1016The Cockpit works on a phone and before JavaScript runs.ai/repo/project/issues/I1016.yaml
  • I1017Live state is an overlay that degrades to nothing.ai/repo/project/issues/I1017.yaml
  • I1018The surface rules exist as checks, proved by making them fail.ai/repo/project/issues/I1018.yaml
  • I1019One skill runs the whole loop, and is itself in the graph.ai/repo/project/issues/I1019.yaml
  • I1020The graph's health is answered by the doctor that already answers everything else.ai/repo/project/issues/I1020.yaml
  • I1021A browser proves the interface, at the widths people use.ai/repo/project/issues/I1021.yaml
  • I1022Drift in any derived surface fails the build.ai/repo/project/issues/I1022.yaml
  • I1023Nothing private reaches a published page.ai/repo/project/issues/I1023.yaml
  • I1024The interface has a weight, and it is measured.ai/repo/project/issues/I1024.yaml
  • I1025The federated model and its two projections are an architecture decision.ai/repo/project/issues/I1025.yaml
  • I1026The architecture explains itself, from inside itself.ai/repo/project/issues/I1026.yaml
  • I1027A synthetic capability proves the architecture instead of describing it.ai/repo/project/issues/I1027.yaml
  • I1028The inventories this replaces are removed, not left running beside it.ai/repo/project/issues/I1028.yaml
  • I1029The gate refuses what would silently break the interface.ai/repo/project/issues/I1029.yaml
  • I1030The milestone is accepted on its evidence.ai/repo/project/issues/I1030.yaml
  • I1031A served surface says which checkout it is serving.ai/repo/project/issues/I1031.yaml
  • I1101What this tool leaves behind, established by inspection rather than by memory.ai/repo/project/issues/I1101.yaml
  • I1102The two namespaces are a typed contract, not a habit.ai/repo/project/issues/I1102.yaml
  • I1103Whether a file is authored or derived is a field, not a naming convention.ai/repo/project/issues/I1103.yaml
  • I1104Both namespaces carry their contracts, all the way down.ai/repo/project/issues/I1104.yaml
  • I1105The repository is discovered once, into one model.ai/repo/project/issues/I1105.yaml
  • I1106The registries are views of the model, not separate discoveries.ai/repo/project/issues/I1106.yaml
  • I1107Discovery is deterministic, cached, and its cost is known.ai/repo/project/issues/I1107.yaml
  • I1108The desired integration is a value, and the plan is a diff.ai/repo/project/issues/I1108.yaml
  • I1109Everything placed outside the two namespaces is recorded, with what it was.ai/repo/project/issues/I1109.yaml
  • I1110The second run changes nothing, and a test says so.ai/repo/project/issues/I1110.yaml
  • I1111Uninstall gives back exactly what was taken.ai/repo/project/issues/I1111.yaml
  • I1112What touches the root is two small blocks, and they never change again.ai/repo/project/issues/I1112.yaml
  • I1113Entering a directory is local, bounded and silent about the network.ai/repo/project/issues/I1113.yaml
  • I1114A provider is an adapter over the model, and adding one is an implementation.ai/repo/project/issues/I1114.yaml
  • I1115Completion comes from the command model, not from a second list.ai/repo/project/issues/I1115.yaml
  • I1116This repository's own footprint moves, through the reconciler.ai/repo/project/issues/I1116.yaml
  • I1117The hand-maintained lists are removed, not left running beside the derivation.ai/repo/project/issues/I1117.yaml
  • I1118Every invariant of this milestone is a rule with a check that runs.ai/repo/project/issues/I1118.yaml
  • I1119The budgets are measured, and a regression fails rather than being noticed.ai/repo/project/issues/I1119.yaml
  • I1120A refusal says what to do about it.ai/repo/project/issues/I1120.yaml
  • I1121Every surface shows the integration from the one model.ai/repo/project/issues/I1121.yaml
  • I1122A foreign repository, adopted, upgraded and given back.ai/repo/project/issues/I1122.yaml
  • I1123The milestone is accepted on its evidence.ai/repo/project/issues/I1123.yaml
  • I1201An identity provider is a declarative object, and Google and Facebook are two of them.ai/repo/project/issues/I1201.yaml
  • I1202One typed provider model reads the objects, and no code names a provider.ai/repo/project/issues/I1202.yaml
  • I1203One flow serves every provider, and it refuses everything it did not start.ai/repo/project/issues/I1203.yaml
  • I1204The session is signed, short, and revocable from the server.ai/repo/project/issues/I1204.yaml
  • I1205Identity is resolved once, in the router, and every surface reads it from there.ai/repo/project/issues/I1205.yaml
  • I1206What an anonymous reader may do is derived from the effect classification, not from a list.ai/repo/project/issues/I1206.yaml
  • I1207No credential reaches any output, and hostile provider metadata renders safely.ai/repo/project/issues/I1207.yaml
  • I1208Adding a provider is one file, removing one is one deletion, and both are executed rather than described.ai/repo/project/issues/I1208.yaml
  • I1301A workspace is a declared object of the layer; only its content is local.ai/repo/project/issues/I1301.yaml
  • I1302Identity, provenance and support level are typed fields, not prose.ai/repo/project/issues/I1302.yaml
  • I1303The store is bounded, measured and invisible to every published projection.ai/repo/project/issues/I1303.yaml
  • I1304The browser transport is the one this repository already drives.ai/repo/project/issues/I1304.yaml
  • I1305An observed contract has a fingerprint, a compatibility state and a fixture.ai/repo/project/issues/I1305.yaml
  • I1306A sync resumes, repeats itself without harm, and says how fresh it is.ai/repo/project/issues/I1306.yaml
  • I1307The ChatGPT shape is mapped from evidence and never becomes the canonical model.ai/repo/project/issues/I1307.yaml
  • I1308The executable's share is one capability, shaped like continuity.ai/repo/project/issues/I1308.yaml
  • I1309The boundaries this milestone asserts are gates, not sentences.ai/repo/project/issues/I1309.yaml
  • I1310The subsystem is documented where a person looks, and the plan is closed against the repository.ai/repo/project/issues/I1310.yaml
  • I1401The identity of a projected record is what the record carries, not what its title says.ai/repo/project/issues/I1401.yaml
  • I1402A finding says which of six states it found, and the state that could hide a person's edit is no longer one of them.ai/repo/project/issues/I1402.yaml
  • I1403Backfill the projection once, deliberately, and record what it created.ai/repo/project/issues/I1403.yaml
  • I1404The drift check is a gate, so a projection that stops being applied cannot stay silent.ai/repo/project/issues/I1404.yaml
  • I1405A pull request names the issue it realises, and the edge is derived rather than remembered.ai/repo/project/issues/I1405.yaml
  • I1406The plan's derivations are capabilities, so every surface reads the readiness the terminal reads.ai/repo/project/issues/I1406.yaml
  • I1407One issue travels the whole path and back, as an executable case.ai/repo/project/issues/I1407.yaml
  • I1408The documents stop claiming a projection nobody runs.ai/repo/project/issues/I1408.yaml
knowledge 1
  • start-hereThe documents that explain this repository are read in a fixed order.ai/repo/knowledge/curated/start-here.md
milestone 17
  • M000Milestone and DAG driven development.ai/repo/project/milestones/M000.yaml
  • M001A blocking question survives a handover.ai/repo/project/milestones/M001.yaml
  • M002A durable record names the worker that wrote it.ai/repo/project/milestones/M002.yaml
  • M003A session is a durable envelope, and knowledge is compiled from what is already canonical.ai/repo/project/milestones/M003.yaml
  • M004Performance is executable evidence, and the hot path does no canonical work twice.ai/repo/project/milestones/M004.yaml
  • capability-graphOne capability graph, two projections, and no second inventory of what this repository can do.ai/repo/project/milestones/capability-graph.yaml
  • cost-per-accepted-outcomeCost per accepted outcome, only on measured data.ai/repo/project/milestones/cost-per-accepted-outcome.yaml
  • execution-telemetryExecution telemetry, only from providers that expose it honestly.ai/repo/project/milestones/execution-telemetry.yaml
  • external-workspacesAn external workspace is read the way this repository reads anything else, and its content never becomes public by accident.ai/repo/project/milestones/external-workspaces.yaml
  • fly-deploymentA deployment is a projection of the repository model, and a reachable URL is its evidence.ai/repo/project/milestones/fly-deployment.yaml
  • foundationA supervisory control layer that is real rather than described.ai/repo/project/milestones/foundation.yaml
  • routing-recommendationsRouting recommendations derived from measured cost.ai/repo/project/milestones/routing-recommendations.yaml
  • runtime-adaptersProfiles become runtime constraints rather than advice.ai/repo/project/milestones/runtime-adapters.yaml
  • shared-policyShared policy across repositories and workers.ai/repo/project/milestones/shared-policy.yaml
  • two-folder-integrationA repository that adopts Majordomus gains two directories and two lines, and can give them back.ai/repo/project/milestones/two-folder-integration.yaml
  • web-sign-inThe deployed surfaces know who is asking, and the identity providers are data.ai/repo/project/milestones/web-sign-in.yaml
  • work-graph-githubThe projection to GitHub is gated, identified and traversable, and a merged pull request leads back to the outcome it served.ai/repo/project/milestones/work-graph-github.yaml
moment 38
  • abandoned-worktreeA worktree nobody can decide to delete.ai/repo/why/moments/abandoned-worktree.md
  • api-changed-contract-did-notThe interface changed and its contract document did not.ai/repo/why/moments/api-changed-contract-did-not.md
  • code-without-an-issueA change that no plan ever asked for.ai/repo/why/moments/code-without-an-issue.md
  • context-budget-blownThe instruction file that grew into a rulebook.ai/repo/why/moments/context-budget-blown.md
  • contribution-that-could-not-have-knownA fluent contribution that could not have known the rules.ai/repo/why/moments/contribution-that-could-not-have-known.md
  • decision-only-in-a-transcriptThe decision exists, in a conversation nobody can find.ai/repo/why/moments/decision-only-in-a-transcript.md
  • discovery-never-becomes-knowledgeA hard-won discovery that never became knowledge.ai/repo/why/moments/discovery-never-becomes-knowledge.md
  • documented-command-no-longer-worksThe documented command that no longer works.ai/repo/why/moments/documented-command-no-longer-works.md
  • done-because-the-model-said-soAccepting "done" because the model said so.ai/repo/why/moments/done-because-the-model-said-so.md
  • enforcement-nothing-invokesA rule enforced by a hook that never runs.ai/repo/why/moments/enforcement-nothing-invokes.md
  • failure-disappears-between-sessionsA failure that was seen once and never again.ai/repo/why/moments/failure-disappears-between-sessions.md
  • feature-without-a-testA capability the documentation promises and nothing proves.ai/repo/why/moments/feature-without-a-test.md
  • first-hour-in-an-unfamiliar-repositoryThe first hour in a repository nobody can explain quickly.ai/repo/why/moments/first-hour-in-an-unfamiliar-repository.md
  • generated-artifacts-staleGreen tests over stale generated files.ai/repo/why/moments/generated-artifacts-stale.md
  • implementation-contradicts-the-decisionCode that quietly contradicts a written decision.ai/repo/why/moments/implementation-contradicts-the-decision.md
  • issue-says-done-tests-disagreeThe issue says done and the repository disagrees.ai/repo/why/moments/issue-says-done-tests-disagree.md
  • milestone-status-unreconstructableNobody can reconstruct where the milestone actually is.ai/repo/why/moments/milestone-status-unreconstructable.md
  • no-record-why-this-modelNobody can say why that worker was chosen.ai/repo/why/moments/no-record-why-this-model.md
  • one-agent-undoes-anotherOne worker undoing another worker's change.ai/repo/why/moments/one-agent-undoes-another.md
  • policy-changed-projection-staleThe policy changed and its four copies did not.ai/repo/why/moments/policy-changed-projection-stale.md
  • re-arguing-a-settled-decisionRe-arguing a decision that was settled last week.ai/repo/why/moments/re-arguing-a-settled-decision.md
  • re-explaining-contextRe-explaining the same context to a brand-new session.ai/repo/why/moments/re-explaining-context.md
  • result-cannot-be-reproducedA result nobody can reproduce, including its author.ai/repo/why/moments/result-cannot-be-reproduced.md
  • rule-in-a-readme-nobody-loadedThe rule for that directory, in a README no session ever loaded.ai/repo/why/moments/rule-in-a-readme-nobody-loaded.md
  • same-dead-end-explored-twiceThe same dead end, explored twice.ai/repo/why/moments/same-dead-end-explored-twice.md
  • second-session-same-checkoutTwo sessions in one checkout, standing on each other.ai/repo/why/moments/second-session-same-checkout.md
  • site-claims-nothing-provesA public page promising something nothing tests.ai/repo/why/moments/site-claims-nothing-proves.md
  • spend-not-tied-to-outcomesSpend that cannot be tied to anything accepted.ai/repo/why/moments/spend-not-tied-to-outcomes.md
  • strongest-model-renames-a-variableThe strongest model, at maximum effort, renaming a variable.ai/repo/why/moments/strongest-model-renames-a-variable.md
  • task-in-progress-for-three-weeksA task "in progress" that nobody has touched for three weeks.ai/repo/why/moments/task-in-progress-for-three-weeks.md
  • three-copies-of-one-explanationThree copies of one explanation, and no way to tell which is current.ai/repo/why/moments/three-copies-of-one-explanation.md
  • three-roadmaps-none-of-them-trueThree roadmaps, and none of them true.ai/repo/why/moments/three-roadmaps-none-of-them-true.md
  • two-agents-one-bugTwo agents fixing the same bug in two branches.ai/repo/why/moments/two-agents-one-bug.md
  • two-rulebooks-one-repositoryTwo different rulebooks for one repository.ai/repo/why/moments/two-rulebooks-one-repository.md
  • weak-model-on-architectureA cheap worker deciding something expensive.ai/repo/why/moments/weak-model-on-architecture.md
  • what-the-workers-did-last-nightAsking what the workers did last night, and getting a transcript.ai/repo/why/moments/what-the-workers-did-last-night.md
  • who-did-this-and-under-what-policyA change whose provenance cannot be reconstructed.ai/repo/why/moments/who-did-this-and-under-what-policy.md
  • worker-output-never-integratedFinished work that never reached the trunk.ai/repo/why/moments/worker-output-never-integrated.md
policy 1
  • .ai/repo/policy.yaml.ai/repo/policy.yaml
profile 4
  • debuggingdebugging.ai/repo/profiles/debugging.yaml
  • deep-workdeep-work.ai/repo/profiles/deep-work.yaml
  • implementationimplementation.ai/repo/profiles/implementation.yaml
  • routineroutine.ai/repo/profiles/routine.yaml
prompt 4
  • continuecontinue.ai/repo/prompts/continue.md
  • debugdebug.ai/repo/prompts/debug.md
  • handoverhandover.ai/repo/prompts/handover.md
  • reviewreview.ai/repo/prompts/review.md
release-record 1
  • v0.3.1v0.3.1.ai/repo/releases/v0.3.1.yaml
rule 109
  • majordomus.adr-integrity@1Architecture decision integrity.ai/repo/rules/vendor/majordomus/rules/adr-integrity.v1.md
  • majordomus.ai-layout-integrity@1AI layer integrity.ai/repo/rules/vendor/majordomus/rules/ai-layout-integrity.v1.md
  • majordomus.blocker-resolution@1Blocker resolution.ai/repo/rules/vendor/majordomus/rules/blocker-resolution.v1.md
  • majordomus.bootstrap-integrity@1Bootstrap integrity.ai/repo/rules/vendor/majordomus/rules/bootstrap-integrity.v1.md
  • majordomus.catalogue-integrity@1Catalogue integrity.ai/repo/rules/vendor/majordomus/rules/catalogue-integrity.v1.md
  • majordomus.checkpoint-freshness@1Checkpoint freshness.ai/repo/rules/vendor/majordomus/rules/checkpoint-freshness.v1.md
  • majordomus.command-coverage@1Every public command is exercised and refuted.ai/repo/rules/vendor/majordomus/rules/command-coverage.v1.md
  • majordomus.command-surface@1The command surface is declared and reconciled.ai/repo/rules/vendor/majordomus/rules/command-surface.v1.md
  • majordomus.context-budget@1Context budget.ai/repo/rules/vendor/majordomus/rules/context-budget.v1.md
  • majordomus.context-integrity@1Context integrity.ai/repo/rules/vendor/majordomus/rules/context-integrity.v1.md
  • majordomus.dag-integrity@1Dependency graph integrity.ai/repo/rules/vendor/majordomus/rules/dag-integrity.v1.md
  • majordomus.decision-records@1Decision records.ai/repo/rules/vendor/majordomus/rules/decision-records.v1.md
  • majordomus.decision-threshold@1The decision threshold.ai/repo/rules/vendor/majordomus/rules/decision-threshold.v1.md
  • majordomus.define-done-first@1Define done before executing.ai/repo/rules/vendor/majordomus/rules/principle-07-define-done-first.v1.md
  • majordomus.deployment-contract@1A deployment is described once, and every provider artifact is generated from it.ai/repo/rules/vendor/majordomus/rules/deployment-contract.v1.md
  • majordomus.depth-is-not-verbosity@1Execution depth is not output verbosity.ai/repo/rules/vendor/majordomus/rules/principle-06-depth-is-not-verbosity.v1.md
  • majordomus.doctrine-wiring-integrity@1Doctrine wiring integrity.ai/repo/rules/vendor/majordomus/rules/doctrine-wiring-integrity.v1.md
  • majordomus.enforcement-wiring@1Enforcement wiring.ai/repo/rules/vendor/majordomus/rules/enforcement-wiring.v1.md
  • majordomus.externalise-decisions@1Externalise decisions and durable state.ai/repo/rules/vendor/majordomus/rules/principle-03-externalise-decisions.v1.md
  • majordomus.handover-integrity@1Handover integrity.ai/repo/rules/vendor/majordomus/rules/handover-integrity.v1.md
  • majordomus.handovers-carry-state@1Handovers transfer state, not transcripts.ai/repo/rules/vendor/majordomus/rules/principle-10-handovers-carry-state.v1.md
  • majordomus.isolated-parallelism@1Parallel work requires isolation.ai/repo/rules/vendor/majordomus/rules/principle-09-isolated-parallelism.v1.md
  • majordomus.justified-escalation@1Escalate capability and effort only when justified.ai/repo/rules/vendor/majordomus/rules/principle-05-justified-escalation.v1.md
  • majordomus.layout-integrity@1Layout integrity.ai/repo/rules/vendor/majordomus/rules/layout-integrity.v1.md
  • majordomus.ledger-integrity@1Ledger integrity.ai/repo/rules/vendor/majordomus/rules/ledger-integrity.v1.md
  • majordomus.minimum-sufficient-context@1Load minimum sufficient context.ai/repo/rules/vendor/majordomus/rules/principle-02-minimum-sufficient-context.v1.md
  • majordomus.note-integrity@1Note integrity.ai/repo/rules/vendor/majordomus/rules/note-integrity.v1.md
  • majordomus.obligation-closure@1Obligation closure.ai/repo/rules/vendor/majordomus/rules/obligation-closure.v1.md
  • majordomus.one-worker-one-scope@1One worker, one clear scope.ai/repo/rules/vendor/majordomus/rules/principle-04-one-worker-one-scope.v1.md
  • majordomus.policy-completeness@1Policy completeness.ai/repo/rules/vendor/majordomus/rules/policy-completeness.v1.md
  • majordomus.policy-integrity@1Policy integrity.ai/repo/rules/vendor/majordomus/rules/policy-integrity.v1.md
  • majordomus.profile-requirements@1Profile requirements.ai/repo/rules/vendor/majordomus/rules/profile-requirements.v1.md
  • majordomus.project-integrity@1Project model integrity.ai/repo/rules/vendor/majordomus/rules/project-integrity.v1.md
  • majordomus.projection-integrity@1Projection integrity.ai/repo/rules/vendor/majordomus/rules/projection-integrity.v1.md
  • majordomus.prompt-capture@1Prompt capture is proven, or reported unavailable.ai/repo/rules/vendor/majordomus/rules/prompt-capture.v1.md
  • majordomus.prompt-integrity@1Prompt integrity.ai/repo/rules/vendor/majordomus/rules/prompt-integrity.v1.md
  • majordomus.questions-store-integrity@1Questions store integrity.ai/repo/rules/vendor/majordomus/rules/questions-store-integrity.v1.md
  • majordomus.retention-caps@1Retention caps.ai/repo/rules/vendor/majordomus/rules/retention-caps.v1.md
  • majordomus.roadmap-integrity@1The roadmap is a projection, never a document.ai/repo/rules/vendor/majordomus/rules/roadmap-integrity.v1.md
  • majordomus.rule-package-integrity@1Rule package integrity.ai/repo/rules/vendor/majordomus/rules/rule-package-integrity.v1.md
  • majordomus.schema-integrity@1Every object has a schema, and the rules resolve in one stated order.ai/repo/rules/vendor/majordomus/rules/schema-integrity.v1.md
  • majordomus.scope-integrity@1Scope integrity.ai/repo/rules/vendor/majordomus/rules/scope-integrity.v1.md
  • majordomus.session-lifecycle@1The episode boundary is drawn below the model, and its working context is local.ai/repo/rules/vendor/majordomus/rules/session-lifecycle.v1.md
  • majordomus.session-records@1Session records are shared objects with a closed field set.ai/repo/rules/vendor/majordomus/rules/session-records.v1.md
  • majordomus.sessions-are-workers@1Sessions are workers, not memory.ai/repo/rules/vendor/majordomus/rules/principle-01-sessions-are-workers.v1.md
  • majordomus.skill-integrity@1Skill integrity.ai/repo/rules/vendor/majordomus/rules/skill-integrity.v1.md
  • majordomus.state-consistency@1State consistency.ai/repo/rules/vendor/majordomus/rules/state-consistency.v1.md
  • majordomus.task-continuity@1Task continuity.ai/repo/rules/vendor/majordomus/rules/task-continuity.v1.md
  • majordomus.use-case-coverage@1Use-case coverage.ai/repo/rules/vendor/majordomus/rules/use-case-coverage.v1.md
  • majordomus.verification-integrity@1Verification integrity.ai/repo/rules/vendor/majordomus/rules/verification-integrity.v1.md
  • majordomus.verify-outcomes@1Verify outcomes, not activity.ai/repo/rules/vendor/majordomus/rules/principle-08-verify-outcomes.v1.md
  • project.benchmarkable-commands@1Every public command is benchmarkable from the registry.ai/repo/rules/project/benchmarkable-commands.v1.md
  • project.blocking-checks-cheap@1Blocking checks are deterministic and cheap.ai/repo/rules/project/blocking-checks-cheap.v1.md
  • project.cache-is-invisible@1A cache never changes what a command observes.ai/repo/rules/project/cache-is-invisible.v1.md
  • project.canonical-order@1A collection has one order, owned by one place, and it does not depend on who ran the command.ai/repo/rules/project/canonical-order.v1.md
  • project.clean-room@1Clean room.ai/repo/rules/project/clean-room.v1.md
  • project.commands-are-projections@1A command is declared once, and every surface that shows it is a projection.ai/repo/rules/project/commands-are-projections.v1.md
  • project.context-locality@1Context locality.ai/repo/rules/project/context-locality.v1.md
  • project.conventional-commits@1Conventional commits, committed and pushed incrementally.ai/repo/rules/project/conventional-commits.v1.md
  • project.derived-files-regenerated@1Derived files are regenerated, never edited.ai/repo/rules/project/derived-files-regenerated.v1.md
  • project.derived-once@1Derived state is computed once per state version.ai/repo/rules/project/derived-once.v1.md
  • project.design-tokens-declared-once@1A design value is chosen once and every stylesheet is a projection of it.ai/repo/rules/project/design-tokens-declared-once.v1.md
  • project.destructive-sweeps-fail-closed@1A sweep that deletes fails closed on what it could not read.ai/repo/rules/project/destructive-sweeps-fail-closed.v1.md
  • project.diagnostics-decide-the-exit@1A return code is not the diagnostic channel.ai/repo/rules/project/a-return-code-is-not-the-diagnostic-channel.v1.md
  • project.distribution-canonical@1Distribution has one canonical model.ai/repo/rules/project/distribution-canonical.v1.md
  • project.empty-is-not-failure@1An empty result and a failed command must not look alike.ai/repo/rules/project/empty-is-not-failure.v1.md
  • project.english-only@1English only.ai/repo/rules/project/english-only.v1.md
  • project.envrc-is-an-adapter@1The shell entry point is an adapter, and repository facts come from one typed source.ai/repo/rules/project/envrc-is-an-adapter.v1.md
  • project.execution-events-are-typed@1A long operation reports typed events, and a transport only renders them.ai/repo/rules/project/execution-events-are-typed.v1.md
  • project.executions-carry-no-secret@1A sensitive value never enters an execution.ai/repo/rules/project/executions-carry-no-secret.v1.md
  • project.finding-carries-reproduce@1Every finding carries a reproduce command.ai/repo/rules/project/finding-carries-reproduce.v1.md
  • project.generated-artifacts-are-typed@1A generated artifact declares its document, its encoding, its contract and its source.ai/repo/rules/project/generated-artifacts-are-typed.v1.md
  • project.github-projection-gated@1The GitHub projection is checked by a gate, not by somebody remembering to run it.ai/repo/rules/project/github-projection-gated.v1.md
  • project.hot-path-reads-once@1A command reads each canonical file at most once.ai/repo/rules/project/hot-path-reads-once.v1.md
  • project.interfaces-are-projections@1External interfaces are projections of one capability definition.ai/repo/rules/project/interfaces-are-projections.v1.md
  • project.land-and-publish@1Work lands often and small, and what is published is master and only master.ai/repo/rules/project/land-and-publish.v1.md
  • project.native-cli-documented@1A native command line command exists only with its documentation and its executable examples.ai/repo/rules/project/native-cli-documented.v1.md
  • project.never-author-identity@1Never author identity fields.ai/repo/rules/project/never-author-identity.v1.md
  • project.never-store-transcripts@1Never store or summarise transcripts.ai/repo/rules/project/never-store-transcripts.v1.md
  • project.no-claim-without-test@1No claim without a test.ai/repo/rules/project/no-claim-without-test.v1.md
  • project.no-counts-in-prose@1No counts in prose.ai/repo/rules/project/no-counts-in-prose.v1.md
  • project.no-machine-paths@1Nothing this repository commits names a path of the machine it was written on.ai/repo/rules/project/no-machine-paths.v1.md
  • project.no-network-no-eval@1No network, no telemetry, no eval, no silent overwrite, no recursive deletion.ai/repo/rules/project/no-network-no-eval.v1.md
  • project.no-new-nouns@1No new nouns.ai/repo/rules/project/no-new-nouns.v1.md
  • project.operation-transport-parity@1A command is the projection of a capability, or it says why it is not, and the reason is checked.ai/repo/rules/project/operation-transport-parity.v1.md
  • project.optional-complexity@1Complexity is optional, not ambient.ai/repo/rules/project/optional-complexity.v1.md
  • project.performance-evidence@1A performance claim carries its measurement.ai/repo/rules/project/performance-evidence.v1.md
  • project.portable-shell@1Portable shell.ai/repo/rules/project/portable-shell.v1.md
  • project.product-surface-derived@1What the product does is a catalogue object, and every public surface of it is derived.ai/repo/rules/project/product-surface-derived.v1.md
  • project.providers-are-data@1What the tool knows about a provider is declared once and projected everywhere.ai/repo/rules/project/providers-are-data.v1.md
  • project.release-is-a-projection@1The changelog is composed and the version has one writer.ai/repo/rules/project/release-is-a-projection.v1.md
  • project.rule-is-a-doctrine@1A new enforced rule is a doctrine, not an inline check.ai/repo/rules/project/rule-is-a-doctrine.v1.md
  • project.rust-benchmark-coverage@1No endpoint of the Rust executable without a benchmark, and no number without evidence.ai/repo/rules/project/rust-benchmark-coverage.v1.md
  • project.rust-canonical-declaration@1One canonical declaration; modules compose capabilities; the root composes modules.ai/repo/rules/project/rust-canonical-declaration.v1.md
  • project.rust-cli-evidence@1The Rust executable carries its evidence with it.ai/repo/rules/project/rust-cli-evidence.v1.md
  • project.rust-command-tested-in-file@1A command asserts in the file that declares it that it is what it claims, and is composed rather than registered.ai/repo/rules/project/rust-command-tested-in-file.v1.md
  • project.rust-hot-path@1A request never rebuilds canonical state, and a cache is never trusted without an equivalence test.ai/repo/rules/project/rust-hot-path.v1.md
  • project.rust-public-api-quality@1Every exported Rust item explains itself, shows itself running, and is exercised by something.ai/repo/rules/project/rust-public-api-quality.v1.md
  • project.scope-is-declared@1What a worker reads is declared once, and nothing outside it is read or served.ai/repo/rules/project/scope-is-declared.v1.md
  • project.shared-server-resilience@1Nothing a client leaves behind locks another client out.ai/repo/rules/project/shared-server-resilience.v1.md
  • project.tests-run-in-disposable-repos@1Tests run in disposable repositories.ai/repo/rules/project/tests-run-in-disposable-repos.v1.md
  • project.ui-conformance@1Every page of every web surface is audited, and the audit names no page.ai/repo/rules/project/ui-conformance.v1.md
  • project.unknown-keys-are-errors@1Unknown configuration keys are errors.ai/repo/rules/project/unknown-keys-are-errors.v1.md
  • project.use-case-evidence@1A use case is proved by execution, and a capability is covered by a use case.ai/repo/rules/project/use-case-evidence.v1.md
  • project.web-surface-declared-once@1A web surface is declared once and every web projection is derived from it.ai/repo/rules/project/web-surface-declared-once.v1.md
  • project.web-surface-topology@1A web surface is discovered from its producer, never registered twice.ai/repo/rules/project/web-surface-topology.v1.md
  • project.why-catalogue-is-canonical@1An operational failure mode is a catalogue object, never a page.ai/repo/rules/project/why-catalogue-is-canonical.v1.md
  • project.work-is-claimed-before-it-is-built@1What already claims a path is checked before that path is built.ai/repo/rules/project/work-is-claimed-before-it-is-built.v1.md
  • project.worktree-topology@1A branch's worktree is at <repo>-wt/<branch>, derived from git, never registered.ai/repo/rules/project/worktree-topology.v1.md
scope 1
  • .ai/repo/scope.yaml.ai/repo/scope.yaml
session 11
  • s-20260906035523-7b6cSession s-20260906035523-7b6c on feature/session-records.ai/repo/sessions/20260906T035524Z--s-20260906035523-7b6c--feature-session-records--4658856--95eae054a18c3e3e.md
  • s-20260906053339-ec22Session s-20260906053339-ec22 on feature/session-lifecycle.ai/repo/sessions/20260906T054911Z--s-20260906053339-ec22--feature-session-lifecycle--9389dc8--52c8bef0528b4ac0.md
  • s-20260906054911-cbb8Session s-20260906054911-cbb8 on feature/session-lifecycle.ai/repo/sessions/20260906T055116Z--s-20260906054911-cbb8--feature-session-lifecycle--9389dc8--a7177bd3b864df81.md
  • s-20260906055206-8eceSession s-20260906055206-8ece on feature/session-lifecycle.ai/repo/sessions/20260906T055252Z--s-20260906055206-8ece--feature-session-lifecycle--9389dc8--5c0542c2eace7947.md
  • s-20260906055253-ba53Session s-20260906055253-ba53 on feature/session-lifecycle.ai/repo/sessions/20260906T085153Z--s-20260906055253-ba53--feature-session-lifecycle--9770f3b--e0aa4600ed94e52f.md
  • s-20260906085201-3c11Session s-20260906085201-3c11 on feature/session-lifecycle.ai/repo/sessions/20260906T085505Z--s-20260906085201-3c11--feature-session-lifecycle--9770f3b--b23dce1fa13c9c25.md
  • s-20260906100402-1b4eSession s-20260906100402-1b4e on feature/ai-artifacts.ai/repo/sessions/20260906T104136Z--s-20260906100402-1b4e--feature-ai-artifacts--2b42014--217c31a51008928f.md
  • s-20260906104842-c7cfSession s-20260906104842-c7cf on feature/ai-artifacts.ai/repo/sessions/20260906T110558Z--s-20260906104842-c7cf--feature-ai-artifacts--2b42014--159467df2ddcde14.md
  • s-20260906214710-1a63Session s-20260906214710-1a63 on master.ai/repo/sessions/20260908T003655Z--s-20260906214710-1a63--master--d3a36fd--89c252efadb41a31.md
  • s-20260908003954-b327Session s-20260908003954-b327 on master.ai/repo/sessions/20260908T193329Z--s-20260908003954-b327--master--ebec65f--19701e4316a32b7b.md
  • s-20260908193341-cdf1Session s-20260908193341-cdf1 on master.ai/repo/sessions/20260909T150832Z--s-20260908193341-cdf1--master--867f3a9--38e50db8741a3b60.md
skill 3
  • deploy-siteDeploy the site by hand.ai/repo/skills/deploy-site/SKILL.md
  • implementImplement a change.ai/repo/skills/implement/SKILL.md
  • repo-reviewRepository review.ai/repo/skills/repo-review/SKILL.md
taxonomy 10
  • adoptionGetting started and adoption.ai/repo/use-cases/taxonomy.yaml
  • completionCompletion and quality gates.ai/repo/use-cases/taxonomy.yaml
  • continuitySessions and handover.ai/repo/use-cases/taxonomy.yaml
  • driftDrift and reconciliation.ai/repo/use-cases/taxonomy.yaml
  • extensionExtension.ai/repo/use-cases/taxonomy.yaml
  • knowledgeRepository knowledge.ai/repo/use-cases/taxonomy.yaml
  • mcpServing the layer to AI clients.ai/repo/use-cases/taxonomy.yaml
  • performancePerformance.ai/repo/use-cases/taxonomy.yaml
  • policyPolicy and enforcement.ai/repo/use-cases/taxonomy.yaml
  • workersParallel workers.ai/repo/use-cases/taxonomy.yaml
test 135
  • test/cases/00_yaml_flatten.shtest/cases/00_yaml_flatten.sh
  • test/cases/01_init.shtest/cases/01_init.sh
  • test/cases/02_doctor_basic.shtest/cases/02_doctor_basic.sh
  • test/cases/03_update.shtest/cases/03_update.sh
  • test/cases/04_start_check.shtest/cases/04_start_check.sh
  • test/cases/05_handover.shtest/cases/05_handover.sh
  • test/cases/06_finish.shtest/cases/06_finish.sh
  • test/cases/07_watch.shtest/cases/07_watch.sh
  • test/cases/08_no_forbidden_constructs.shtest/cases/08_no_forbidden_constructs.sh
  • test/cases/09_site_mobile_first.shtest/cases/09_site_mobile_first.sh
  • test/cases/100_environment.shtest/cases/100_environment.sh
  • test/cases/100_execution_plane.shtest/cases/100_execution_plane.sh
  • test/cases/101_command_graph.shtest/cases/101_command_graph.sh
  • test/cases/102_completion_shell.shtest/cases/102_completion_shell.sh
  • test/cases/103_obligations.shtest/cases/103_obligations.sh
  • test/cases/103_release_projection.shtest/cases/103_release_projection.sh
  • test/cases/104_published_site.shtest/cases/104_published_site.sh
  • test/cases/104_strict_derivation.shtest/cases/104_strict_derivation.sh
  • test/cases/106_context_peers.shtest/cases/106_context_peers.sh
  • test/cases/107_design_tokens.shtest/cases/107_design_tokens.sh
  • test/cases/107_runtime_staleness_is_loud.shtest/cases/107_runtime_staleness_is_loud.sh
  • test/cases/108_scope_after_trunk_merge.shtest/cases/108_scope_after_trunk_merge.sh
  • test/cases/10_site_data.shtest/cases/10_site_data.sh
  • test/cases/11_site_derivation.shtest/cases/11_site_derivation.sh
  • test/cases/12_site_build.shtest/cases/12_site_build.sh
  • test/cases/12b_site_data_transactional.shtest/cases/12b_site_data_transactional.sh
  • test/cases/12c_graph_data.shtest/cases/12c_graph_data.sh
  • test/cases/13_region_projection.shtest/cases/13_region_projection.sh
  • test/cases/14_wiring_dispatcher.shtest/cases/14_wiring_dispatcher.sh
  • test/cases/15_command_surface.shtest/cases/15_command_surface.sh
  • test/cases/16_profiles.shtest/cases/16_profiles.sh
  • test/cases/17_doctrine_enforcement.shtest/cases/17_doctrine_enforcement.sh
  • test/cases/18_doctrine_wiring.shtest/cases/18_doctrine_wiring.sh
  • test/cases/19_end_to_end.shtest/cases/19_end_to_end.sh
  • test/cases/20_checkpoint.shtest/cases/20_checkpoint.sh
  • test/cases/21_decision_question.shtest/cases/21_decision_question.sh
  • test/cases/22_history.shtest/cases/22_history.sh
  • test/cases/23_context.shtest/cases/23_context.sh
  • test/cases/24_prompt_search.shtest/cases/24_prompt_search.sh
  • test/cases/25_continuity_lifecycle.shtest/cases/25_continuity_lifecycle.sh
  • test/cases/26_ci_wiring.shtest/cases/26_ci_wiring.sh
  • test/cases/27_foreign_task.shtest/cases/27_foreign_task.sh
  • test/cases/28_catalogue.shtest/cases/28_catalogue.sh
  • test/cases/28_no_hardcoded_values.shtest/cases/28_no_hardcoded_values.sh
  • test/cases/29_prompt_capture.shtest/cases/29_prompt_capture.sh
  • test/cases/30_command_registry.shtest/cases/30_command_registry.sh
  • test/cases/31_command_coverage.shtest/cases/31_command_coverage.sh
  • test/cases/32_refusal_lifecycle.shtest/cases/32_refusal_lifecycle.sh
  • test/cases/32_schema_integrity.shtest/cases/32_schema_integrity.sh
  • test/cases/33_event_registry.shtest/cases/33_event_registry.sh
  • test/cases/33_stale_executable.shtest/cases/33_stale_executable.sh
  • test/cases/34_command_fixtures.shtest/cases/34_command_fixtures.sh
  • test/cases/35_future_command.shtest/cases/35_future_command.sh
  • test/cases/36_command_doctrines.shtest/cases/36_command_doctrines.sh
  • test/cases/37_responsibility_surface.shtest/cases/37_responsibility_surface.sh
  • test/cases/40_project_model.shtest/cases/40_project_model.sh
  • test/cases/41_project_status.shtest/cases/41_project_status.sh
  • test/cases/42_dag_waves.shtest/cases/42_dag_waves.sh
  • test/cases/43_plan_command.shtest/cases/43_plan_command.sh
  • test/cases/44_model_doctrine.shtest/cases/44_model_doctrine.sh
  • test/cases/45_github_projection.shtest/cases/45_github_projection.sh
  • test/cases/46_cross_surface.shtest/cases/46_cross_surface.sh
  • test/cases/47_mutation.shtest/cases/47_mutation.sh
  • test/cases/48_roadmap_graph.shtest/cases/48_roadmap_graph.sh
  • test/cases/49_roadmap_doctrine.shtest/cases/49_roadmap_doctrine.sh
  • test/cases/50_blocker_across_handover.shtest/cases/50_blocker_across_handover.sh
  • test/cases/51_derived_artifacts_committed.shtest/cases/51_derived_artifacts_committed.sh
  • test/cases/52_generated_artifact_typing.shtest/cases/52_generated_artifact_typing.sh
  • test/cases/53_status_vocabulary.shtest/cases/53_status_vocabulary.sh
  • test/cases/54_session_lifecycle_hooks.shtest/cases/54_session_lifecycle_hooks.sh
  • test/cases/55_session_context.shtest/cases/55_session_context.sh
  • test/cases/56_derived_current_gate.shtest/cases/56_derived_current_gate.sh
  • test/cases/57_derived_merge_driver.shtest/cases/57_derived_merge_driver.sh
  • test/cases/58_home_path_gate.shtest/cases/58_home_path_gate.sh
  • test/cases/59_reference_integrity.shtest/cases/59_reference_integrity.sh
  • test/cases/60_session_lifecycle.shtest/cases/60_session_lifecycle.sh
  • test/cases/61_session_envelope.shtest/cases/61_session_envelope.sh
  • test/cases/62_session_divergence.shtest/cases/62_session_divergence.sh
  • test/cases/63_session_records.shtest/cases/63_session_records.sh
  • test/cases/64_knowledge_discovery.shtest/cases/64_knowledge_discovery.sh
  • test/cases/65_tool_root_independence.shtest/cases/65_tool_root_independence.sh
  • test/cases/66_migrate_legacy.shtest/cases/66_migrate_legacy.sh
  • test/cases/67_rule_dag.shtest/cases/67_rule_dag.sh
  • test/cases/68_ai_discovery.shtest/cases/68_ai_discovery.sh
  • test/cases/69_context_documents.shtest/cases/69_context_documents.sh
  • test/cases/70_context_impact.shtest/cases/70_context_impact.sh
  • test/cases/71_context_sync.shtest/cases/71_context_sync.sh
  • test/cases/72_rust_mcp.shtest/cases/72_rust_mcp.sh
  • test/cases/73_knowledge_nodes.shtest/cases/73_knowledge_nodes.sh
  • test/cases/74_knowledge_edges.shtest/cases/74_knowledge_edges.sh
  • test/cases/75_knowledge_mutation.shtest/cases/75_knowledge_mutation.sh
  • test/cases/76_capabilities_projections.shtest/cases/76_capabilities_projections.sh
  • test/cases/77_rust_evidence.shtest/cases/77_rust_evidence.sh
  • test/cases/79_bench_command.shtest/cases/79_bench_command.sh
  • test/cases/80_bench_persistence.shtest/cases/80_bench_persistence.sh
  • test/cases/81_bench_baseline.shtest/cases/81_bench_baseline.sh
  • test/cases/82_bench_check.shtest/cases/82_bench_check.sh
  • test/cases/83_doctor_budget.shtest/cases/83_doctor_budget.sh
  • test/cases/84_deployment_contract.shtest/cases/84_deployment_contract.sh
  • test/cases/84_distribution_model.shtest/cases/84_distribution_model.sh
  • test/cases/84_web_surfaces.shtest/cases/84_web_surfaces.sh
  • test/cases/85_deployment_bind.shtest/cases/85_deployment_bind.sh
  • test/cases/85_installer.shtest/cases/85_installer.sh
  • test/cases/85_ui_conformance.shtest/cases/85_ui_conformance.sh
  • test/cases/86_deployment_projections.shtest/cases/86_deployment_projections.sh
  • test/cases/86_installer_platform.shtest/cases/86_installer_platform.sh
  • test/cases/87_release_pipeline.shtest/cases/87_release_pipeline.sh
  • test/cases/87b_release_archive_shape.shtest/cases/87b_release_archive_shape.sh
  • test/cases/88_rust_command_tested.shtest/cases/88_rust_command_tested.sh
  • test/cases/89_web_surface.shtest/cases/89_web_surface.sh
  • test/cases/90_mcp_shared_server.shtest/cases/90_mcp_shared_server.sh
  • test/cases/91_canonical_architecture.shtest/cases/91_canonical_architecture.sh
  • test/cases/92_openapi_reference.shtest/cases/92_openapi_reference.sh
  • test/cases/93_rust_provider_projections.shtest/cases/93_rust_provider_projections.sh
  • test/cases/93_schema_integrity.shtest/cases/93_schema_integrity.sh
  • test/cases/93_scope_policy.shtest/cases/93_scope_policy.sh
  • test/cases/93_workspace_kind.shtest/cases/93_workspace_kind.sh
  • test/cases/94_ci_plan.shtest/cases/94_ci_plan.sh
  • test/cases/94_use_cases.shtest/cases/94_use_cases.sh
  • test/cases/95_executable_reference.shtest/cases/95_executable_reference.sh
  • test/cases/95_skills.shtest/cases/95_skills.sh
  • test/cases/96_rust_public_api_quality.shtest/cases/96_rust_public_api_quality.sh
  • test/cases/96_site_deploy.shtest/cases/96_site_deploy.sh
  • test/cases/96_worktree_topology.shtest/cases/96_worktree_topology.sh
  • test/cases/97_github_gate.shtest/cases/97_github_gate.sh
  • test/cases/97_install_gate.shtest/cases/97_install_gate.sh
  • test/cases/97_pages_fast_path.shtest/cases/97_pages_fast_path.sh
  • test/cases/97_product_features.shtest/cases/97_product_features.sh
  • test/cases/98_cli_reference.shtest/cases/98_cli_reference.sh
  • test/cases/98_traceability.shtest/cases/98_traceability.sh
  • test/cases/98_why_catalogue.shtest/cases/98_why_catalogue.sh
  • test/cases/99_adr.shtest/cases/99_adr.sh
  • test/cases/99_canonical_order.shtest/cases/99_canonical_order.sh
  • test/cases/99_plan_capabilities.shtest/cases/99_plan_capabilities.sh
  • test/cases/99_work_graph_chain.shtest/cases/99_work_graph_chain.sh
use-case 42
  • accept-or-refuse-finished-workDecide whether finished work is actually finished.ai/repo/use-cases/accept-or-refuse-finished-work.md
  • add-a-use-case-and-prove-itAdd a use case and let the tool prove it.ai/repo/use-cases/add-a-use-case-and-prove-it.md
  • adopt-an-existing-repositoryAdopt a repository that already has its own rules.ai/repo/use-cases/adopt-an-existing-repository.md
  • block-acceptance-on-an-open-questionBlock acceptance on a question nobody has answered.ai/repo/use-cases/block-acceptance-on-an-open-question.md
  • capture-the-prompts-that-started-the-workKeep the prompts that started the work, below the model rather than around it.ai/repo/use-cases/capture-the-prompts-that-started-the-work.md
  • carry-a-blocker-across-a-handoverHand work over with a question still open, and keep it blocking.ai/repo/use-cases/carry-a-blocker-across-a-handover.md
  • checkpoint-long-workCheckpoint long work so a stop costs minutes, not the day.ai/repo/use-cases/checkpoint-long-work.md
  • classify-what-belongs-in-the-contextDecide what belongs in the AI context, as data.ai/repo/use-cases/classify-what-belongs-in-the-context.md
  • complete-an-issue-only-with-its-evidenceComplete an issue only when its evidence exists.ai/repo/use-cases/complete-an-issue-only-with-its-evidence.md
  • deliver-issues-in-wavesDeliver issues in waves the graph computes, and take the next one.ai/repo/use-cases/deliver-issues-in-waves.md
  • document-every-directory-of-the-layerRefuse a directory of the layer that documents nothing.ai/repo/use-cases/document-every-directory-of-the-layer.md
  • extend-what-the-executable-servesExtend what the executable serves by adding a file, never by rebuilding it.ai/repo/use-cases/extend-what-the-executable-serves.md
  • find-an-object-without-reading-everythingFind an object of the layer without reading everything.ai/repo/use-cases/find-an-object-without-reading-everything.md
  • find-out-what-driftedFind out what has drifted since anyone last looked.ai/repo/use-cases/find-out-what-drifted.md
  • follow-a-skill-the-repository-definesFollow a procedure the repository defines, and add another one.ai/repo/use-cases/follow-a-skill-the-repository-defines.md
  • gate-ci-on-the-tool-itselfGate CI on the tool itself, with an exit code that is a contract.ai/repo/use-cases/gate-ci-on-the-tool-itself.md
  • hand-work-between-sessionsHand unfinished work to the next session.ai/repo/use-cases/hand-work-between-sessions.md
  • install-the-tool-in-one-commandInstall the tool in one command, on a machine with no toolchain.ai/repo/use-cases/install-the-tool-in-one-command.md
  • keep-decisions-out-of-the-transcriptRecord a decision so the next worker can find it.ai/repo/use-cases/keep-decisions-out-of-the-transcript.md
  • keep-the-bootstrap-thin-and-within-budgetKeep every provider bootstrap thin, generated and within budget.ai/repo/use-cases/keep-the-bootstrap-thin-and-within-budget.md
  • know-which-tool-is-runningCheck the version before trusting a diagnosis.ai/repo/use-cases/know-which-tool-is-running.md
  • let-the-provider-draw-the-episode-boundaryHave the session opened and closed without anybody remembering to.ai/repo/use-cases/let-the-provider-draw-the-episode-boundary.md
  • migrate-from-the-old-layoutMove a repository from the pre-.ai layout to the layer.ai/repo/use-cases/migrate-from-the-old-layout.md
  • open-and-close-a-sessionRecord what one worker did in one sitting.ai/repo/use-cases/open-and-close-a-session.md
  • plan-the-work-as-dataKeep the plan as milestones and issues the tool can validate.ai/repo/use-cases/plan-the-work-as-data.md
  • prove-a-rule-is-enforcedProve a rule is actually enforced, not merely written down.ai/repo/use-cases/prove-a-rule-is-enforced.md
  • prove-performance-with-benchmarksProve the tool is fast, not assume it, and refuse a regression.ai/repo/use-cases/prove-performance-with-benchmarks.md
  • prove-what-a-task-owed-before-calling-it-doneProve what a task owed before calling it done.ai/repo/use-cases/prove-what-a-task-owed-before-calling-it-done.md
  • read-back-what-happenedRead back what happened, and keep the ledger within its cap.ai/repo/use-cases/read-back-what-happened.md
  • read-only-the-context-that-fitsRead only the context that fits the budget, and know what was dropped.ai/repo/use-cases/read-only-the-context-that-fits.md
  • read-the-rules-the-tool-appliesSee which rules apply here and what enforces them.ai/repo/use-cases/read-the-rules-the-tool-applies.md
  • record-a-decision-before-it-is-forgottenRecord a decision as data, and prove the tool cannot accept it for you.ai/repo/use-cases/record-a-decision-before-it-is-forgotten.md
  • resume-from-a-prompt-assetStart a session from a rendered framing, not a pasted transcript.ai/repo/use-cases/resume-from-a-prompt-asset.md
  • resume-in-the-right-worktreeResume in the right worktree, never against somebody else’s task.ai/repo/use-cases/resume-in-the-right-worktree.md
  • run-several-workers-at-onceRun several workers in one repository without them colliding.ai/repo/use-cases/run-several-workers-at-once.md
  • say-what-reached-the-remote-and-what-did-notSay what reached the remote and what did not.ai/repo/use-cases/say-what-reached-the-remote-and-what-did-not.md
  • say-what-the-tool-is-forSay what your work is for, once, and have every surface say it.ai/repo/use-cases/say-what-the-tool-is-for.md
  • see-what-the-repository-holds-without-reading-itSee what the repository holds, and run one of its capabilities, without reading a file.ai/repo/use-cases/see-what-the-repository-holds-without-reading-it.md
  • serve-the-layer-to-ai-clientsServe the repository's AI layer to every AI client through one shared server.ai/repo/use-cases/serve-the-layer-to-ai-clients.md
  • trace-a-change-to-the-context-it-affectsTrace a change to the context documents it affects.ai/repo/use-cases/trace-a-change-to-the-context-it-affects.md
  • trust-the-policy-before-reading-itTrust the policy and the profiles only after they are validated.ai/repo/use-cases/trust-the-policy-before-reading-it.md
  • work-on-a-branch-in-its-canonical-worktreeWork on a branch in the one worktree it belongs to.ai/repo/use-cases/work-on-a-branch-in-its-canonical-worktree.md
workspace 1
  • chatgpt-majordomusThe Majordomus project in ChatGPT.ai/repo/workspaces/chatgpt-majordomus.yaml