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.
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.
- registry fingerprint
- 94055f5c02d96de4ffe4d549beb908a692df3e3aa2a71b6c29dec8b1a5b96c36
- index fingerprint
- aa43b4dfb5276404c4c567ed870ab68397c7483b0435d154229a63680ca2abab
- generator
- majordomus-cli 1.0.0-alpha.8 · 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.
3538 in the registry
219 builtin (composed in Rust), 3319 declarative (one resource per object of the layer), in 94 modules.
Read more → mcp205 tools · 3376 resources
Every tool is a capability with an mcp.tool exposure; every object of the layer is a resource at majordomus://<kind>/<identity>.
211 routes
The same capabilities as HTTP, and the OpenAPI 3.1 document under /openapi.json; 120 are also command-line subcommands.
181 required · 38 waived
Every executable capability is a benchmark target through every transport; a case is a compile-time obligation of its input type. 55 are cached by the executor.
Read more →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.
artifactsGenerated artifactsWhat `majordomus generate` writes: every document with the encodings it is committed in — JSON for a program, YAML beside it, Markdown for a reader — each with its schema, its source and its hash, reconciled with the working tree. The declaration is the generator's own manifest; nothing here keeps a list.1 capabilities · behaviorally_verifiedblackboardThe peer blackboardWho works on what in this repository, as one projection of the records that already know it: every checkout's board, the mesh journal's sessions, claims, reviews and handovers on every linked machine, and the monitor's newest signals, joined once so that no surface joins them again (ADR 0176). A board peer and a mesh session are one worker only when an explicit identifier joins them; a source that could not be read makes the answer incomplete and says why.1 capabilities · experimentalbriefThe session briefWhat surrounds one working session, in one line and in a few: its episode and task, the peers of every board, the mesh, the integration queue and the derive queue, each section asked of its owner once and saying whether it could be read. The answer a session reports on itself from without being asked, and the one a provider mod shows as its status line (ADR 0136). Writes nothing.1 capabilities · behaviorally_verifiedcapabilitiesCapabilitiesThe registry seen through itself: every capability with its kind, stability, provenance, exposures, benchmark and cache policy, and one capability in full.3 capabilities · behaviorally_verifiedcommandsCommand graphEvery command this repository offers, from whichever program offers it: the Rust executable, the shell tool that carries the task lifecycle, and the workflows the repository declares for a person to run. Composed from the three declarations that already exist — the clap tree, the shipped command registry and the workflow runner's own dump — never from a list. Each command carries what running it changes, what it needs, where its argument values come from, and every surface that carries it, with the reason when one does not.3 capabilities · implementedcommitCommitThe commit as a value: the scope vocabulary this repository's own history yields, what the working tree would commit and how it divides, and the verdict on one message against the repository's commit policy.4 capabilities · behaviorally_verifiedcontinuityContinuityWhat this checkout's lifecycle is holding: the open episode, the record the next worker would resume from with the label that says how far to trust it, the newest progress note, and what is blocking acceptance. Read from the local half of the layer, which this process serves to the worker in front of it and never publishes.8 capabilities · behaviorally_verifiedconvergenceConvergenceWhether every unit of work in this repository is somewhere another worker could find it. A holding is anything that can hold work — a work tree with uncommitted files, a branch with commits, a stash — and each carries a disposition read from git: integrated (the trunk reaches it), published (a remote-tracking ref reaches it), local_only (committed on this disk and nowhere else) or uncommitted. The last two are at risk: they are invisible to every other worker, and a worker that stops is not a rollback. Measured offline, from this checkout alone; whether a pull request exists for a branch is a question for the forge and is not asked here.1 capabilities · behaviorally_verifieddashboardDashboardsThe Dashboard Suite as a projection of the canonical state: every card is one fact read out of an existing capability's answer, carrying the capability it asked, the input, the JSON pointer its value was read from, the Cockpit page that holds the evidence and the command that acts on it. No dashboard stores, counts or judges anything of its own (ADR 0088).1 capabilities · behaviorally_verifieddeliveryDeliveryWhether each product feature exists, computed and never recorded: on the trunk, deployed, publicly verified, its required tests current, that evidence published and linked from the interface — each a verdict of pass, fail or unknown with the reason and the remediation, and unknown never a pass. A feature short of any of them is not delivered, and its development stage (implemented on a branch, on master, tested, deployed) is a different type from delivery.3 capabilities · experimentaldeployDeploymentThe deployments this repository declares, read from the canonical objects the index holds, and whether they would work — decided against the capability registry this process built and the workspace it sits in. Every operation over HTTP and MCP is a read; the one command, assembling the tree a provider receives, writes outside the checkout and is a command line only: a deployment is changed by the trusted command line and by CI, never over HTTP and never by an MCP client.5 capabilities · behaviorally_verifieddesignDesign systemThe one declaration of how every surface of this tool looks — the semantic roles, the status vocabulary, the type scale, the theme contract — as this executable carries it: its fingerprint, its tokens, what any one of them means, and whether the colours it pairs are readable on one another. The stylesheets the site and the Cockpit load, the tokens the executable's own pages compile in, and the dataset the site's templates read are all projections of it; a page compares its `--mj-design` with this fingerprint to know whether it is wearing the design this executable was built with.4 capabilities · behaviorally_verifieddevcontextDevelopment contextThe context a development session should be given, derived from the repository rather than composed by hand: given an issue, a milestone, an intent or a set of paths, the canonical objects that bear on the work, why each one is in the answer, what was left out and why, what collapsed into what, and the whole cost against a budget. The selection is structured — every entry keeps its identifier, its provenance, the selector that reached it and its confidence — because rendering a prompt is a projection of the selection and not the selection itself.3 capabilities · behaviorally_verifieddevtaskExecutable development scopesAn issue and a milestone read as work to be done rather than as metadata: what a person authored, where the plan graph puts it, what happened to it locally, where its external projection stands, and whether a worker may start it — with the origin of every value on the value. Nothing here is a second project model: the records are the canonical ones, the status and the graph are `plan`'s, the branches and commits are `trace`'s, the readiness vocabulary refines three canonical statuses without replacing any, and the projection onto GitHub stays `scripts/github-sync`'s. Nothing here writes anything, which is what makes a user-authored GitHub value safe from it.2 capabilities · behaviorally_verifieddirectoriesDirectory contractsThe layer's directories as a hierarchy: the contract each one declares, what it owes and which contract said so, and the chain that applies to it once inheritance is resolved.1 capabilities · behaviorally_verifieddistributionDistributionHow this project is packaged, published and installed: the platforms a release builds, the artifact names the one naming function derives, the installer's canonical command, the releases that were published, and what this build itself is. Every answer comes from share/distribution.yaml and the release records; no surface here states a fact of its own.5 capabilities · behaviorally_verifiedeconomicsToken economicsWhat a coding session consumes with Majordomus installed and without it, from recorded runs: matched control and treatment sessions judged by the same hidden acceptance tests, the provider's usage as it reported it, and every number labelled with its measurement class (observed, counted, derived, estimated, counterfactual). One calculator; every surface is a projection of it, and the verdict states only what the methodology's publication rule allows.5 capabilities · behaviorally_verifiededitorsEditor and agent projectionsThe files Zed and Google Antigravity read from this repository, derived from the skills and the tracked justfile: what each product supports and on what evidence, the state and content address of every projected file, and what to do about each finding.1 capabilities · behaviorally_verifiedentityEntitiesEvery object of the layer as an addressable, cross-linked node: its route, its outgoing references, the references that resolve to it, the surfaces that answer for it, and what can be said about its enforcement without running anything. Nothing here enumerates kinds, entities or routes — an object of the index has a route because it is an object.2 capabilities · implementedenvironmentRepository environmentWhat this checkout is right now: the project and its version, the repository and its layer, version control, the toolchains it declares, what the layer holds, the workflows a person can run, the provider projections and the local services — one typed snapshot, with a provenance entry for every value in it. The direnv banner, the Cockpit's overview and this route are renderings of the same value.3 capabilities · behaviorally_verifiedepisodesEpisodesThe execution episodes this shared server holds: one per client that asked for one, opened when the client attaches, kept alive by its own traffic, detached rather than closed when the connection goes, and closed on a deliberate detach, on shutdown, or by the reaper when nothing came back. The episode boundary for a client with no provider hooks of its own (ADR 0103).3 capabilities · behaviorally_verifiedevidenceEvidenceWhat actually ran, against which commit, and whether it still proves anything. The claims matrix binds a claim to a test by path; the ledger under .ai/repo/evidence records the latest execution of every test with the commit, the tree state, the digest of the test's own source, the time, the origin and the command that runs it again. Joining the two answers, per claim, whether the repository can honestly call it proven — and distinguishes a run recorded against this very commit from one whose inputs merely have not changed since, because collapsing those two is how a green badge stops meaning anything.5 capabilities · behaviorally_verifiedexecutionsExecutionsRunning a capability of this registry as work that can be watched: started, followed event by event over the live channel, read back afterwards, and asked to stop. One plane per checkout: `majordomus run` executes in its own process and reports the execution to the server already serving the checkout, so that server lists it beside its own; with no server it says that nothing else can see the run. In memory; an execution does not outlive the server that holds it.8 capabilities · behaviorally_verifiedgatesCompletion gatesCompletion as a state the repository decides rather than a claim a worker makes: the validation gates this repository declares in its CI model, which of them a task's own change set selects, what each one last reported, whether that verdict still describes the tree it was taken over, and therefore whether the task may be called finished. A gate that has never reported is `queued` and not `pass`, a run whose files have changed since is `stale` and refuses exactly as a failure does, and a gate the change cannot affect is `exempt` rather than unknown.4 capabilities · behaviorally_verifiedgraphGraphsThe graphs derived from the registry and the index: the executable's own capability registry, the shape of the layer, the rule dependencies, the decisions and what they put in force, and the use cases and what they exercise. Canonical nodes and edges; a rendering library is a consumer, never the shape.2 capabilities · behaviorally_verifiedguardEdit guardWhether a write to a file of this checkout is covered by a claim: the active task's scope, or a live mesh claim of the writing session. The judgement a provider's pre-tool hook asks before every edit (majordomus guard hook), switched by session.edits_require_claim.1 capabilities · experimentalhealthHealthWhether what this process serves is healthy, decided by the engines that already decide it: the index's diagnostics, the registry builder, the benchmark projection's coverage, the comparison `generate --check` makes and the lease reading `server.status` answers from. No check here has an opinion of its own.3 capabilities · behaviorally_verifiedintegrationPull-request integrationEvery open pull request classified against the current master — ready, needs refresh, waiting for checks, review or a dependency, draft, needs repair, conflicting, blocked, unsafe (auto-merge armed), redundant (its work is on master already), superseded (by a declared successor that landed, named in superseded_by), possibly redundant, other base or unknown — each with the master and head it was decided against, its reasons, its evidence, its risk and its overlaps, ranked deterministically; and the audit trail of the executor that merges the next provably safe one, one at a time. The relation to master is decided by git with this repository's own merge drivers, because the forge cannot run the derived-file driver. Read from the last recorded forge observation; the one exception is the dry-run proof, which observes the forge itself because the observation is part of what it proves moves nothing.7 capabilities · experimentalintent_realizationIntent realizationWhich work realises which intent: every task of this checkout's ledger with the episodes, providers and handovers that carried it, every closed session record and every claim on the peer board, joined through the plan to the intents they serve, each link marked declared, observed, derived or inferred; each intent's unmet criteria with the issues serving them; and the drift between closed work and current evidence. Derived on every read and stored nowhere, so an intent outlives every session and provider that worked on it.2 capabilities · behaviorally_verifiedintentsIntentWhat must become true above the milestones that realise it: each intent's statement, invariants and satisfaction criteria, its stage derived from the plan's milestone status, each criterion's state derived from the evidence ledger, and its verdict derived from those criteria alone. Nothing is stored and nothing transitions; an intent added under the project model is answered by all of these without a registration anywhere.7 capabilities · behaviorally_verifiedknowledge_baseKnowledge baseWhat the knowledge deriver left for review and whether it is still writing: the candidate records awaiting promotion with the branch of the episode each came from, one record by id with every reference it names resolved against the index, the ledger and git, and the derivation status of this checkout judged against the policy's freshness thresholds. Read from the index and the ledger; written by nothing here — the deriver is the shell tool's, and a person promotes.3 capabilities · behaviorally_verifiedlayoutLayer layoutThe boundary between the layer's tracked and local halves, checked against the layouts their contracts declare: what lives where, and what must never appear there (I1102).1 capabilities · behaviorally_verifiedlifecycleSession lifecycleThe episode lifecycle as an operator sees it: every open episode of this checkout's store rather than only the one the pointer follows, the episodes that can no longer close themselves, the commit this process is answering about against the commit the repository is on, what each provider's adapter declares it can do, and the tracked records a clone receives. Read from the local half of the layer and from the index; written by nothing here.5 capabilities · behaviorally_verifiedmcpMCP projectionThe MCP projection of this registry, described as one typed value: who answers `initialize` and with which protocol versions, the transports and how many sessions each holds, what of the protocol is served and what is not, every tool with the effect and the hints its annotations are derived from, the tools that write the repository, the resources, and where each declared client's configuration stands in this repository. Nothing in it is a list of its own: the tools are the registry's, the effect is the capability's classification, the clients are the distribution's providers.1 capabilities · experimentalmeshMeshThe mesh of this process: discovery — authenticated observations of other running Majordomus instances in one registry — and cooperation — authenticated links to trusted runtimes of the same repository, replicating sessions, claims, handovers and reviews through one journal every runtime folds into the same state. Discovery grants nothing; a link is admitted per peer, and nothing a peer sends executes anything here.29 capabilities · experimentalmodelsModelsThe model catalogue the distribution declares — vendors, canonical model references, typed capabilities, context windows, lifecycle — and the explainable routing over it: what a stated need selects, what stands behind it, and why every excluded model fell out. Declared data; nothing here calls a model or reads a credential's value.2 capabilities · experimentalmonitorThe monitorEverything that happens around this repository, followed in one stream: the mesh journal (sessions on every linked machine, this checkout's board among them, their claims, handovers and reviews), the executor's trail (merges, refreshes, repairs, closures, failures) and GitHub (pull requests opened, merged and closed, finished workflow runs), folded so that a session re-announcing itself unchanged and a step that decided nothing are counted rather than shown, with what is addressed to the reader marked (ADR 0133).1 capabilities · experimentalobjectsObjectsThe declarative objects of the repository's AI layer: rules, prompts, profiles, policy, documents, milestones, issues, claims, and whatever kinds the repository adds; listed, read by URI, and searched.4 capabilities · behaviorally_verifiedobligationsObligationsWhat a task owes before it may be called completed, and whether the evidence that discharged each obligation still describes this tree. The vocabulary is data the distribution ships and answers in any clone; the closure is read from the local half of the layer, which this process serves to the worker in front of it and never publishes. Read, never written: `majordomus evidence` records, and a second writer for one ledger would be a second account of the same events.2 capabilities · behaviorally_verifiedobservatoryObservatoryWhat the Observatory may carry to a place where no mesh runs: the mesh scenes this process has live, pseudonymized for publication, and the recording the repository carries, which the published Observatory replays and labels as a replay.3 capabilities · behaviorally_verifiedpackSource packThe tracked tree as a few token-bounded Markdown shards a language model's file search can index, with an index that orients the reader and a manifest that proves afterwards what left the machine: the git index's blobs only, never the working tree, and never a binary, a gitlink or worktree, a symbolic link, build output or a credential, whatever the index holds.2 capabilities · behaviorally_verifiedpeersPeersThe workers of this repository, named by their own initialize, and what each announced it is working on — gathered from the board of every checkout, because a server serves a checkout and a repository worked on through linked worktrees has one board per worktree. In memory; gone with the processes.2 capabilities · behaviorally_verifiedperfPerformanceThis process's work counters and phase timings: what happened once at startup and what happens per call, for the structural tests and the benchmark evidence.1 capabilities · behaviorally_verifiedplanThe plan and its derivationsThe milestone and issue model of this repository, and everything derived from it that nobody authored: the status of each record, the dependency graphs above and below the milestone boundary, the topological execution waves, the roadmap order, the milestone being executed and the one issue to take next. Status is never stored — a record says what happened to it and the status follows from that and from the state of its dependencies — so no file can contradict the graph. This capability reads; writing a lifecycle marker into a record is `plan.transition`, which declares that it writes the repository.12 capabilities · behaviorally_verifiedproductProductWhat this repository's product does for a person, as the features under the layer's features section declare it: each feature made of modules, commands, kinds, rules, documents, decisions, claims, use cases, Cockpit areas and web surfaces it names, with the interfaces it is exposed through, every count, the moments it answers and what is guaranteed derived from those references. The matrix of features against interfaces, the providers the tool has an adapter for, and the model's own validation. The homepage is a reader of this module and holds no inventory of its own.6 capabilities · behaviorally_verifiedqualityPublic API qualityWhat this executable's own public surface is held to, measured from its syntax tree: documentation that says more than the signature, an executable example on everything that carries behaviour, a module boundary something exercises, and every command of the command line accounted for against the capability registry. The rules are project.rust-public-api-quality and project.operation-transport-parity; this is the measurement of them.2 capabilities · behaviorally_verifiedreasoningReasoningProvider-independent reasoning (ADR 0098): which optional advisors can be asked and what they offer, what a material uncertainty calls for, the session's typed reasoning records — assessments, plans, consultations, disagreements, resolutions, conclusions, validations, attempts — and the state, timeline and provenance they derive. Nothing here talks to an advisor, and nothing here needs one: with none available, the plan is a structured local review and the session concludes on its own evidence.6 capabilities · experimentalrecoverRecovery of the record storesThe stray files a killed publish, an interrupted rename or an unfinished site build leave in the record stores, classified by reading the clock and the content, and swept exactly once. This is the capability that backs `majordomus recover` (ADR 0040): the command no longer decides what a stray is, it asks.1 capabilities · behaviorally_verifiedreleaseReleaseWhat this project has shipped and what it would ship next, derived rather than maintained: the changelog composes the layer's release records, the decisions dated inside each release's window and the conventional commits in its range; the version report reads the one place the version is authored and the projection the shell tool prints, and says what the public contract requires it to become — or that it cannot be measured, and so decides nothing — with what the commits since the last release imply beside it as evidence.5 capabilities · implementedrepositoryRepositoryThe repository this process serves: its layer, its git state, the state of the index built from it, and its scope: what a worker reads of it and what it never reads.3 capabilities · behaviorally_verifiedrulesRulesWhat this repository refuses, and what it can actually show for each refusal. A rule declares a class — blocking, where a gate refuses the work, or advisory, where a reader is expected to have read it — and an enforcement block naming either the validator the dispatcher calls or the behavioural cases that prove it. This module joins that declaration to the tree and to the ledger of recorded runs, and reports, per rule, whether what it names is there, whether a runner owns it, whether it was ever run, whether the run passed, and whether the run is older than what it is about. A blocking rule whose proof is missing, dangling or failing is a finding, because a rule nobody can prove is a rule nobody enforces.3 capabilities · behaviorally_verifiedservedServed deploymentsWhether a deployment serves the commit it was meant to: the build identity a site serves, read from outside the way a visitor reads it, judged by commit containment and recorded so that a later reader can re-judge it. Only `served` passes; a site that could not be reached, an identity that could not be read, a build from an uncommitted tree and a served commit this clone does not hold are each an unanswered question, never a yes. Observing reaches the network and is a command of the trusted command line; reading the recorded standing is a read on every surface.3 capabilities · behaviorally_verifiedserverServerThe shared server of this checkout and of every other checkout of the same git repository: what each lease says, whether the server it names answers, whether what answers is the code on disk at this executable's version, and how many peers each one holds.1 capabilities · behaviorally_verifiedsession_domainThe session domainThe typed session domain: the lifecycle state machine an episode moves through, declared once in the executable and projected here rather than redrawn per surface, and the identities this checkout records — the repository, the checkout, the episode and the provider's own session — each with the canonical value and each store's own spelling of it, because the stores spell six things as three words and nothing said so.2 capabilities · behaviorally_verifiedshellShell automationThe repository's shell automation measured against the tracked migration inventory: new shell is refused unless an exemption declares why it has to be shell and when it stops being, and an exemption whose file is gone is refused too, so the list only shrinks as units move into typed and scripted capabilities (ADR 0069).1 capabilities · behaviorally_verifiedskillsSkillsEvery skill the layer defines as a proven capability: whether a test names it and the evidence ledger holds a current passing run of that test, whether the site projects its page, whether a doctrine and a CI gate hold it, and whether a workflow, prompt, profile, provider template, recipe or CI workflow invokes it. All four are derived on every read and none is authored; an active skill no test names or nothing invokes is an orphan.3 capabilities · behaviorally_verifiedtraceTraceabilityWhich branches and commits realised an issue, and which issue and milestone a commit served — derived from git and from the canonical project model on every call, stored nowhere. A branch names an issue when one of its path components is an issue id; a commit belongs to the issue whose branches hold it; a commit no such branch holds is reported as unattributed rather than left out, because work with no execution contract is what a traceability report exists to make visible. Pull requests are a GitHub fact and this executable makes no network call: `scripts/traceability` reads them and joins them to this answer over the branch name.3 capabilities · behaviorally_verifiedwebWeb surfacesWhat this repository exposes over HTTP, resolved from the producers that make it rather than from a register anybody maintains: the routes the executable answers itself, the documentation build, and every generated report that declared its own mount. The same resolution serves the router, renders the home page and composes a publication.1 capabilities · behaviorally_verifiedwhyWhyThe operational failure modes this tool is a response to: the moments a reader recognises, the audiences that recognise them, the areas they fall under, and what a reader's own symptoms imply. Every entry is a file under the layer's why section; nothing here holds a list, and a moment added there is answered by all of these without a registration anywhere.6 capabilities · behaviorally_verifiedworktreeWorktree topologyWhere every linked git worktree of this repository belongs and where each one is. The container is the primary checkout's sibling named with `-wt`, the path under it is the branch name with its hierarchy kept, and both are derived from git's own identity — the common directory, the registered worktrees, the branches — never from a registry, a configuration or the current directory. A worktree somewhere else is a typed diagnostic with a remedy; the migration that repairs it is a command-line operation of the same service.6 capabilities · behaviorally_verified
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.
| id | kind | MCP tool | HTTP | CLI | stability | benchmark | cache |
|---|---|---|---|---|---|---|---|
| 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 |
| blackboard.snapshot Every worker of this repository — attached to a checkout's board or in an active mesh session on any linked machine — with the client it is, what it announced, its checkout, branch, machine and claims (advisory or exclusive); the claims that meet (potential, or confirmed when both are exclusive or the mesh marked one conflicted); the open reviews and untaken handovers; typed relations between workers, verified only when an explicit identifier joins them; the newest signals with the monitor's cursor a follower resumes from; each source with how it was read, and whether the answer is complete. Reads only. |
query | majordomus_blackboard | GET /api/v1/blackboard | majordomus blackboard | experimental | required | disabled |
| brief.session One line and a few: this session's episode and task (the one the given provider session owns, else the pointer's), the peers of every board with the boards that could not be read named, the mesh's links and what its journal addresses to this runtime, the integration queue as `majordomus prs brief` says it, and the machine's derive lock. Composed by the server holding this checkout's lease, which holds the board and the mesh: the command line asks it and composes the brief itself only when none answers, saying so; a superseded server says its own board is unreachable by the repository's gather. Carries the reporting interval the policy declares (`session.brief_interval_minutes`) and the keep-awake text a session is told at its start. Writes nothing. |
query | majordomus_brief | GET /api/v1/brief | majordomus brief | behaviorally_verified | required | disabled |
| 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 | process |
| 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 |
| commit.history Every commit in a git range against the commit policy, in one pass: how many were read, how many git composed and are exempt, how many carry an error, and every commit that has a finding with what it is. What the gate reads to refuse new debt, and what answers `is the history of this branch clean?` without a process per commit. |
query | majordomus_commit_history | GET /api/v1/commit/history | majordomus commit history | behaviorally_verified | required | disabled |
| commit.plan The working tree as git reports it — branch, upstream, divergence, every staged, unstaged and untracked path, and any merge or rebase in progress — divided into the commits the history's own scoping supports, each with the evidence for it, under a fingerprint of the repository, the worktree, HEAD and the exact change set, so that a plan acted on later can be refused rather than applied to a tree it was not made for. |
query | majordomus_commit_plan | GET /api/v1/commit/plan | majordomus commit plan | behaviorally_verified | required | disabled |
| commit.scopes Every scope this repository's commit history uses, how often, and the directories each one is written about — learned from the history rather than declared in a table, so that a subsystem committed today is in the vocabulary today and one nobody has touched falls to the bottom on its own. |
query | majordomus_commit_scopes | GET /api/v1/commit/scopes | majordomus commit scopes | behaviorally_verified | required | disabled |
| commit.validate One message against this repository's commit policy: the grammar, the subject width, whether the scope is one the history uses, whether every record the message names exists, whether a fix carries a test, and whether a breaking change explains itself — as typed findings with severities, or an exemption for a subject git composed. The same verdict the commit-msg hook refuses with and the gate reads the history through. |
query | majordomus_commit_validate | GET /api/v1/commit/validate | majordomus commit validate | behaviorally_verified | required | disabled |
| continuity.device The device a published handover names: the mesh node key (created when this device has none, in the user's state directory and never in a repository), its node id, its public key — what a trust list admits — and the label a person reads. With a label, renames the device; the key and every signature it made are unchanged. |
command | majordomus_continuity_device | POST /api/v1/continuity/device | majordomus continuity device | experimental | waived (destructive) | disabled |
| continuity.plan Writes nothing. Chooses the record (named, or the one other device's handover this checkout has not resumed, on this branch first) and decides: is its signer trusted, does it diverge from the record this checkout stands on, does the local source hold the commit and branch it was written against, was it written in a dirty tree whose uncommitted files never reached a commit, may the other device still be working. The verdict is ready, ready_with_warnings, requires_source_update, conflict, choose_record, nothing_to_resume or refused, with blockers, warnings, the commands that resolve them (recommended, never run), what a resume restores and what this checkout recomputes for itself. |
query | majordomus_continuity_plan | GET /api/v1/continuity/plan | majordomus continuity plan | experimental | required | disabled |
| continuity.publish Projects the newest handover record into a portable record — the handover body, the repository and device identity, the episode, the source state (branch, commit, and for a dirty tree the changed paths and a fingerprint, never their content), the task and its decisions, and the record it continues — refuses it when any value carries a credential, a secret environment value or a path of this machine's disk, signs it with the device's mesh key and adds it to refs/majordomus/continuity. Touches no branch, index or working tree, and no network: a sync publishes it. |
command | majordomus_continuity_publish | POST /api/v1/continuity/publish | majordomus continuity publish | experimental | waived (destructive) | disabled |
| continuity.records Every record of refs/majordomus/continuity that passed admission — schema, id, signature, repository identity, portability — by line, with each line's heads, and a diagnostic for every file refused and every lineage defect. |
query | majordomus_continuity_records | GET /api/v1/continuity/records | majordomus continuity records | experimental | required | disabled |
| continuity.resume Plans exactly as continuity.plan does and acts only on a ready or ready_with_warnings plan: writes the handover into this checkout's handovers (where handover --resolve and the session briefing find it), appends the task's decisions to the decision log once each, and records the record as the one this checkout continues, so that its next publication extends the same line. Runs nothing the record says; the start command for the task is returned as a recommendation. |
command | majordomus_continuity_resume | POST /api/v1/continuity/resume | majordomus continuity resume | experimental | waived (destructive) | 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 |
| continuity.status This device and repository identity, the record this checkout continues on its branch, how the local continuity store stands towards the remote's (from the refs alone, no network), every line of work with its heads, the handovers other devices published that this checkout could resume, and every refused record or broken lineage as a diagnostic. A diverged line — the same work continued twice — is reported; separate lines of work on separate devices are not a conflict. |
query | majordomus_continuity_status | GET /api/v1/continuity/status | majordomus continuity status | experimental | required | disabled |
| continuity.sync Fetches the remote's refs/majordomus/continuity, merges it into the local store as the union of both (records are content-addressed, so a name holding different bytes is reported and the local copy kept), and pushes the result, never forced. Reports each line as equal, remote_newer, local_newer, diverged, local_only or remote_only. An unreachable remote changes nothing and leaves what is pending pending. |
command | majordomus_continuity_sync | POST /api/v1/continuity/sync | majordomus continuity sync | experimental | waived (external_dependency) | disabled |
| convergence.report Every holding of this repository with its disposition, the evidence read for it and the command that would move it out of danger, the tallies per disposition, how many holdings exist on one disk only, and the one verdict over them. Read from git on every call: a commit, a push or an editor's save changes the answer between two calls. |
query | majordomus_convergence | GET /api/v1/convergence | majordomus convergence | behaviorally_verified | required | disabled |
| dashboard.overview Is it healthy, what changed, what is broken, what needs action — each answered by cards read out of `health.report`, `release.version`, `plan.status`, `worktree.status`, `plan.next`, `continuity.state` and `peers.list` (this checkout's board), asked once each through the executor. Every card carries its source capability, input and RFC 6901 pointer, so asking the source the same question yields the same value; a source that cannot answer makes its cards `unknown`, never `ok`. Nothing here rebuilds canonical state or asks anything beyond this process and its checkout. |
query | majordomus_dashboard_overview | GET /api/v1/dashboard/overview | majordomus dashboard overview | behaviorally_verified | required | disabled |
| delivery.feature One product feature against the delivery invariant: every dimension with its verdict, the sentence that decided it and what would change it, whether it exists, and — when it does not — how far development has carried it and which dimensions block it. An id the layer does not declare is not found rather than answered as not delivered. |
query | majordomus_delivery_feature | GET /api/v1/delivery/feature | majordomus delivery show | experimental | waived (external_dependency) | disabled |
| delivery.report Every product feature of the layer against the delivery invariant, ordered by id: the six dimensions with their verdicts, reasons and remediations; the development stage when it is not delivered; the paths it is implemented by and the revisions that last touched them at HEAD and on the trunk; and the publication — the public site's identity, read once, and whether scripts/pages verified it. Reads git and the network; the site address can be replaced with MAJORDOMUS_DELIVERY_SITE_URL. |
query | majordomus_delivery | GET /api/v1/delivery | majordomus delivery report | experimental | waived (external_dependency) | disabled |
| delivery.trends The series of CI runs the pages publication recorded in this checkout at site/data/trends.json, oldest first: for each run its wall time, the time its jobs waited for a runner, its jobs, and the coverage it measured (lines, functions and regions as covered over total with the percentage they give); and the median run and queue time of every job over the series, the slowest first. A read of one file: nothing is fetched, derived or written, and no committed file depends on it. A figure the file does not give is absent, never zero, and a run that measured no coverage has none. `recorded: false` with the reason when the file is absent, is not JSON, or is not the trends/v1 series. |
query | — | GET /api/v1/delivery/trends | — | experimental | required | disabled |
| 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 and the measured budgets. 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 |
| deploy.observed Every deployment the forge recorded, to every environment it has one in — GitHub Pages among them — with the commit, the ref, who created it, how it ended, where it is served and the run that did it; every environment described by its newest deployment; and every release the forge published. Read from the record `majordomus served forge` wrote when it last asked the forge: nothing here reaches the network, and a checkout that has never asked answers `observed: false` with what to run. |
query | majordomus_deployments_observed | GET /api/v1/deployments/observed | — | behaviorally_verified | required | disabled |
| deploy.slug Writes, into a directory outside the checkout that is absent or empty, the tree the deployment's provider receives (ADR 0219): the object's build inputs except the package the executable is compiled from, read from git at one commit (HEAD unless named); the provider's generated files of that commit at the slug's root, each held to what the object renders and the hooks made executable; the provider's buildpack line; the executable built at that commit; and a record naming the deployment, the commit, the executable's digest and the provider. Refuses an out directory inside the checkout or not empty, a deployment that names no provider, a build input the commit does not track, a provider file the object does not render, and two files that would land on one path. Changes nothing in the repository and reaches no network; pushing the slug is the provider workflow's. |
command | — | — | majordomus deploy slug | behaviorally_verified | waived (destructive) | disabled |
| design.contrast Every foreground the design puts on a ground, in both themes, measured against WCAG 2.1 AA: the pair, the palette entries behind it, the ratio and the threshold. The pairs are not a list — they are derived from the declaration, which files each status's text with its own ground, and from the primitives that consume it, where a rule that sets a colour and a background states a pair and a rule that sets only a colour states a foreground that lands on every ground a container sets. A pair below the threshold is a finding that names the role, the ground, the theme, the measured ratio and the required one. |
query | majordomus_design_contrast | GET /api/v1/design/contrast | — | behaviorally_verified | required | disabled |
| design.explain One token by name or by the custom property it becomes: what it is for, what it resolves to in each theme, which Flowbite names are synonyms of it, which state words it colours, and which generated files it reaches. |
query | majordomus_design_explain | GET /api/v1/design/explain | — | behaviorally_verified | required | disabled |
| design.system What the design is: the fingerprint every stylesheet carries, the identity, the type stacks, the theme contract with the pre-paint statement every surface runs, the audit widths, how many tokens of each kind, and every generated file the declaration is projected into. |
query | majordomus_design | GET /api/v1/design | — | behaviorally_verified | required | disabled |
| design.tokens Every token of the design, explained: roles with their light and dark values, statuses with their text, ground and border and the state words filed under them, the type scale, the layout values, the theme contract, the palette. Narrow it to one kind. |
query | majordomus_design_tokens | GET /api/v1/design/tokens | — | behaviorally_verified | required | disabled |
| devcontext.compile The objects a session working on this issue, milestone, intent or set of paths should be given: each with its canonical identifier, the index's own provenance, every discovery path that reached it with the reason and the confidence, its version, its tier and its cost in estimated tokens — followed by everything reached and not given with the reason for each, everything that collapsed into one entry, every pair that does not agree, and the per-tier spend against the budget. Deterministic for a given tree and request; the index fingerprint it was compiled from is in the answer. |
query | majordomus_devcontext | GET /api/v1/devcontext | majordomus devcontext compile | behaviorally_verified | required | process |
| devcontext.explain One canonical identifier judged under a request: whether it was selected, reached and excluded, folded into another identifier, held by the index and never reached, or unknown — with the entry, the exclusion or the collapse itself, and the budget the judgement was made under so that `excluded for budget` can be acted on without a second call. |
query | majordomus_devcontext_explain | GET /api/v1/devcontext/explain | majordomus devcontext explain | behaviorally_verified | required | process |
| devcontext.policy What the compiler decides and how: the tiers in the order the budget spends in with the kinds that land in each, every edge kind the composed graph declares with the relevance multiplier the compiler follows it by in each direction — or the reason it refuses to follow it at all — the selectors with which of them infer rather than read, and the defaults for the budget, the depth and the relevance floor. Read this rather than inferring the policy from an answer. |
query | majordomus_devcontext_policy | GET /api/v1/devcontext/policy | majordomus devcontext policy | behaviorally_verified | required | disabled |
| devtask.issue Identity, title, intent, status, milestone, acceptance criteria, dependencies, blockers, the commits its own evidence names and the commits git found, its branches, the sessions that worked on it, its readiness and everything wrong with its records — each field carrying whether a person authored it (`explicit`), a machine worked it out by a rule that cannot be wrong (`derived`), a machine worked it out by a rule that can (`inferred`, with the rule stated), or it is not available at all (`unknown`, with the reason). A key the record does not carry is `unknown`, never an empty string: `objective: ""` and a record with no objective are the same string and different facts. An id the model does not declare is answered, not refused. `git: false` answers from the records alone, which is what a comparison across machines wants. |
query | majordomus_devtask | GET /api/v1/devtask/issue | majordomus devtask issue | behaviorally_verified | required | disabled |
| devtask.milestone Every issue of the milestone as a node with its readiness, its wave and what waits on it; every dependency edge with at least one end inside, the crossing ones marked; the issues partitioned into ready, blocked, waiting, active, review, completion-blocked, complete and cancelled; the critical blockers ordered by how much unfinished work each holds back; the startable work partitioned into subsets that may genuinely run at the same time — same wave, each parallel-safe, no two sharing a scope path — with each serialisation naming the path that caused it; every dependency cycle as its strongly connected component; and every finding about the milestone or its issues. A pure function of the canonical records: no git, no clock, no network, every list in canonical order, so two runs on two machines produce the same bytes. A work surface reading this derives nothing itself. |
query | majordomus_devtask_milestone | GET /api/v1/devtask/milestone | majordomus devtask milestone | 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 | generation |
| 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 |
| economics.check Scan the repository's hand-written prose and claim sentences for a quantity (a percentage, 'N times fewer') stated next to the economics vocabulary, and check every claim the methodology binds to a metric: a bound claim may be guaranteed only while its metric's evidence meets the binding and is current. `ok: false` names every finding. |
query | majordomus_economics_check | GET /api/v1/economics/check | majordomus economics check | behaviorally_verified | required | disabled |
| economics.explain One metric and everything it rests on: its formula, its measurement class and what that class means, the pairs and runs behind it (including the invalid ones), excluded runs, the suites and revisions, and the commands that reproduce it. A repository that declares no methodology has no metric, and any id is answered with `present: false` and the statement why, not refused. |
query | majordomus_economics_explain | GET /api/v1/economics/explain | majordomus economics explain | behaviorally_verified | required | process |
| economics.runs The raw facts every economics metric is computed from: each recorded run with its task, variant, repetition, model, revision, success-gate verdicts and the totals derived from its provider usage, and the path of its record. |
query | majordomus_economics_runs | GET /api/v1/economics/runs | majordomus economics runs | behaviorally_verified | required | process |
| economics.summary Every metric of the economics benchmark with its value, measurement class, sample size, distribution and bootstrap interval; every pair of runs with its status (valid, control failed, treatment failed, incomparable, ...); results by segment; the state of each suite's evidence (current, stale, incompatible); and the one statement the publication rule allows. Context reduction and total-token reduction are separate metrics and are never merged. |
query | majordomus_economics | GET /api/v1/economics | majordomus economics summary | behaviorally_verified | required | process |
| economics.tasks One record per task, folded from the ledger of every checkout `git worktree list` reports and the archives a ledger rotation left: its issue and intent, checkout and branch, first start, last finish or refusal, wall seconds, refusal count, and the episodes that carried it with their spans. Interventions, CI reruns, spend and acceptance are present on every record as not_observed, each with the reason and the issue that will supply it. Lists every ledger read with its line and skipped-line counts and every checkout not read; an optional since/until window filters by each task's start. |
query | majordomus_economics_tasks | GET /api/v1/economics/tasks | majordomus economics tasks | behaviorally_verified | required | disabled |
| editors.status Every adapter (Zed, Antigravity) with each capability it supports, does not, or cannot be verified for, and the evidence; every projected file with the inputs it is derived from, its content address and its state here (current, stale, absent, or a conflict with a file this generator did not write); orphaned projections; and every finding with its remedy. Writes nothing: `majordomus generate editors` does. |
query | majordomus_editors | GET /api/v1/editors | — | behaviorally_verified | required | disabled |
| entity.kinds The kinds the layer holds, each with the route of its index and how many objects it carries, and every route collision there is. A collision is the only way an object of the index can fail to have an address of its own; the healthy answer is none. |
query | majordomus_kinds | GET /api/v1/entity/kinds | majordomus entity kinds | implemented | required | disabled |
| entity.show One object of the layer as an addressable node, by URI or by the address it is served at: identity and route, provenance, front matter and content, every reference it declares and every reference that resolves to it, the surfaces that answer for it, the state of the executable artefacts it names, and its public documentation page as the repository's site/data/publication.toml derives it (null when the repository declares none). |
query | majordomus_entity | GET /api/v1/entity | majordomus entity show | implemented | 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.preflight One verdict per claim about this checkout — git; the episode, its briefing, the task and the handover; the policy, the rule corpus and the ADRs; the shared server and the MCP, API and Cockpit surfaces it serves; the peer board; recorded test runs, rule enforcement, provider projections, generated documentation and the deployment — each `verified`, `active`, `fresh`, `stale`, `degraded`, `unavailable`, `failed`, `unknown` or `not_applicable`, with the evidence it rests on. A verdict that asserts something is in force cannot be produced without evidence. The same value the command line prints and the entry banner summarises. |
query | majordomus_preflight | GET /api/v1/environment/preflight | — | 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 | disabled |
| episodes.attach Open an execution episode for the calling client, or resume the one it already had. 'external_id' is the client's own durable name for the sitting — its conversation or thread id — and must survive a reconnect: a client that comes back under the same identity is given its own episode again, under whatever peer id it now has, rather than a second one. This server's peer id will not do; it is handed out per connection. After this the client's own traffic keeps the episode alive, losing the connection detaches rather than closes it, and it is closed by majordomus_session_detach, by the server stopping, or by the reaper once the reattach grace has passed. The repository's episode is opened by the same command a provider hook runs, and what it reported is in the answer. Needs an MCP session: over plain HTTP there is no connection to bind to. |
command | majordomus_session_attach | POST /api/v1/episodes/attach | — | behaviorally_verified | required | disabled |
| episodes.detach Close an execution episode deliberately: the work is done, not merely interrupted, and the repository's record says so. Without 'external_id' it is whichever episode the calling connection holds, which needs an MCP session: over plain HTTP there is no connection, so the call is refused and the episode must be named. A client that simply goes away does not need this — its episode detaches and the reaper closes it as interrupted — and the difference between those two records is the one thing about an ended episode that changes what somebody does next. |
command | majordomus_session_detach | POST /api/v1/episodes/detach | — | behaviorally_verified | required | disabled |
| episodes.list Every execution episode this shared server holds, open and detached, with the connection holding each, when its client last spoke, how many connections have carried it, and what the repository's own episode command reported. In-memory: what survives the process is the repository's session record. |
query | majordomus_episodes | GET /api/v1/episodes | — | behaviorally_verified | required | disabled |
| evidence.claim One claim with its proof state, the execution behind it — outcome, duration, commit, tree state, digest, time and origin — the command that reproduces it, and the other claims the same test proves. A claim the matrix does not declare is a not-found rather than an empty answer, because a typo that read as 'this claim has no evidence' is the one answer this capability must never give. |
query | majordomus_evidence_claim | GET /api/v1/evidence/claim | majordomus evidence claim | behaviorally_verified | required | checkout |
| evidence.record Reads what the runs already wrote — the suite's TSV report, cargo test's output, a coverage summary — carries into each result what that run measured about its own checkout (the commit and the tree, from the measurement `evidence stamp` wrote), with the digest of the test's own source, the time and the origin, and merges it into the ledger. It records; it decides nothing: a case that failed is a case the runner said failed, and a test no report named is left exactly as it was, so recording one case never erases the evidence for the rest. It refuses a tree with no commit, a measurement of another commit or of another report, a local measurement that names no report, and a CI report without a measurement; a local report recorded without one carries the tree unknown, which never reads proven. Every recording returns a run record (its commit, the tree each report's run measured, its totals and what was absent, dropped or unknown, and a coverage summary bound to its commit), and --ledger local writes only the ignored local ledger. A crate binary that ran no test, or only a filtered subset, is recorded as a skip, and what no claim can name yet (the crate's own unit tests, its doctests) is listed as dropped. |
command | — | — | majordomus evidence record | behaviorally_verified | waived (destructive) | disabled |
| evidence.report The whole claims matrix joined to the ledger and judged at the presented revision: the working tree by default, or the checked-out commit as committed, read from the ledger that commit holds. Per claim: the proof state, the sentence explaining how that state was derived, why when the state alone does not say, the execution behind it, the files that changed since it, and the command that produces it again. A run on a commit the presented revision does not contain is stale, a test that declined to run is not run, and a run the working ledger holds that the presented commit's does not can only withhold proven. The tallies count the whole matrix even when the answer is filtered, and the findings name every claim that declares a guarantee the evidence does not support. Kept per checkout state, never longer: the ledger is a file that changes outside this process, and an edit of it, of a test or of any tracked file, a new untracked file, a commit or a new ref is a new answer. |
query | majordomus_evidence | GET /api/v1/evidence | majordomus evidence show | behaviorally_verified | required | checkout |
| evidence.stamp The one measurement a runner takes at the end of its run, for evidence record --provenance: the commit; the tree, ignoring the evidence ledger and the run's own untracked outputs, never a tracked change; the producer; its toolchain; the recorder's version; the report's digest; the host; the CI run. It writes nothing. It is offered only on the command line because it reads a path its caller names. |
query | — | — | majordomus evidence stamp | behaviorally_verified | waived (external_dependency) | disabled |
| evidence.test One test — by identity or by the path a claim names it with — with its latest execution, whether its source still hashes to what that execution recorded, the command that runs it again, and every claim that names it. This is the reverse of evidence.claim and reads the same derivation, so the two directions cannot disagree. |
query | majordomus_evidence_test | GET /api/v1/evidence/test | majordomus evidence proves | behaviorally_verified | required | disabled |
| 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 ones it ran and the ones `majordomus run` in another process of the checkout reported to it, each with who started it. 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.report What `majordomus run` posts while it runs a capability in its own process and a server already serves the checkout: the execution's description and its events after the last sequence this server took. The server holds it as an execution started by the command line, with the pid, in the same store, listing, Cockpit pages and live channel as its own; applies each event once and in order, answering where the next report starts; tells the reporter when somebody asked it to stop; and fails it with `unavailable` once the reporter has been silent for 30 s. Nothing runs here. Changes this process's memory only. |
command | — | POST /api/v1/executions/report | — | behaviorally_verified | waived (transient_state) | 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. On the command line (`majordomus run`) it runs in that process and is reported to the server serving the checkout, when one is, through executions.report; a run never starts a server. |
command | majordomus_execution_start | POST /api/v1/executions/start | majordomus run | behaviorally_verified | required | disabled |
| gates.completion The active task's own change set — from the commit it started at to the working tree, uncommitted files included — put through the CI model: which gates it selects and why, what each one last reported and over which files, which verdicts have gone stale because the tree moved underneath them, which required gates have never reported at all, and which obligations the change implies whether or not the task declared them. `finishable` is false only when a required gate is known to be failing, stale or blocked by one that is; absence of a verdict is reported as unverified rather than silently accepted. The done invariant is the questions of share/completion.yaml, in its order, each answered from the source it names; `stage` is the stage of the work those answers fold to, and `complete` is true only when every question passes or is exempt — finishable and complete are two different words. |
query | majordomus_completion | GET /api/v1/gates/completion | — | behaviorally_verified | required | disabled |
| gates.model Every validation gate this repository declares — the job that runs it, the command it runs, what it proves, whether every plan selects it and whether its runner can be had on demand at all — with the path classes that decide which change selects which gate, and, derived from those classes, the pathspecs each gate's evidence is taken over. |
query | majordomus_gates | GET /api/v1/gates | — | behaviorally_verified | required | process |
| gates.policy The one definition of done: the stages of the work in order, every question a task must answer before it may be called finished, the stage each question belongs to and the source its answer is taken from — an obligation of share/obligations.yaml, a gate of the CI model, the change set, the repository's convergence or the closing readings. Read from share/completion.yaml, the file `gates.completion` takes its questions from. A token the policy names and the vocabulary lacks is reported as a problem, and a gate question this repository's CI model never answers is listed by name. |
query | majordomus_completion_policy | GET /api/v1/gates/policy | — | behaviorally_verified | required | process |
| gates.state Every gate the CI model declares with the standing of its last recorded run in this checkout, whichever task recorded it: `pass` or `fail` over the files as they stand now, `stale` when those files have changed since the run, `queued` when no run has ever reported — listed again under `never_reported`, because a missing verdict is the case an absent reader renders green — and `unknown` when a run exists and cannot be checked against this tree. Each run carries the commit it was taken at and whether that is the commit checked out now. Read offline from this checkout's own record; what it did not consult, the forge's CI runs, is named under `unreached` rather than left out. |
query | majordomus_gate_state | GET /api/v1/gates/state | — | 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 |
| guard.edit Whether the given session may write the given path now: allowed when the policy's session.edits_require_claim is off, the path is outside the checkout or its local state, the repository declares no enabled mesh, the active task's scope covers it, or a live mesh claim of the session covers it; refused as unclaimed otherwise, with the remedy. What cannot be read — the policy, the mesh — is let through and named, never refused. |
query | majordomus_guard_edit | GET /api/v1/guard/edit | — | experimental | 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, the shared server of this checkout 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 |
| integration.cleanup The cleanup plan, decided offline from the recorded observation: every open pull request cleanup would close — redundant (its work is on master already) or superseded (by a declared successor that landed) — and every one it leaves for a person — possibly redundant (weak evidence) or obsolete (a person marked it, owner decision D3) — each with its disposition and the reasons that decided it, in rank order; beside it, the branches merged pull requests left on origin as `majordomus prs cleanup` last read them, with when and how long ago. A read: it closes, deletes and asks the forge for nothing — `majordomus prs cleanup` reads the forge and `--apply` closes. `observed: false` with the reason when this checkout has recorded no observation. |
query | majordomus_pull_requests_cleanup | GET /api/v1/pull-requests/cleanup | — | experimental | required | disabled |
| integration.events Every action the repository's executors recorded, from any of its worktrees, oldest first: the lease taken and given back, observations, selections, stale decisions, each act's attempt before it and its outcome after — merges with the master before and after, refusals, refreshes, verification failures and closures — each with a typed action, its actor, the pull request, the head, the decision's reasons and, on an act, the evidence it was decided on. The trail is one file under the common git directory, so every worktree reads the same one. |
query | majordomus_integration_events | GET /api/v1/pull-requests/events | majordomus prs events | experimental | required | disabled |
| integration.explain One pull request's assessment — disposition, lane, reasons, every gate of the policy with whether it passed, next action, the master and head it was decided against and when the forge was observed, required checks, review, relation to master, dependencies, overlaps, risk with its factors, and every piece of evidence — with its rank in the queue. `found: false` with the reason when it is not open or nothing is observed. |
query | majordomus_pull_request_explain | GET /api/v1/pull-requests/explain | majordomus prs explain | experimental | required | disabled |
| integration.prove_dry_run Runs the executor's non-mutating cycle — refresh, plan, drain --dry-run and cleanup without --apply — between two snapshots of everything it could move if it were wrong: every ref origin serves, every open pull request's number, head, state and labels, the integration audit trail, the executor's lease, and every local ref outside the two namespaces the refresh mirrors. `ok` is true exactly when the snapshots are equal and refs/remotes/origin/<base> and every refs/majordomus/prs/<n> equal what origin serves. A read that reaches the network: the refresh asks the forge through the GitHub CLI and fetches the base and the pull-request heads, and like every read it rewrites the observation, relation and summary caches. It merges, closes and pushes nothing, and takes no input that could make it. |
query | majordomus_pull_requests_prove_dry_run | GET /api/v1/pull-requests/prove-dry-run | majordomus prs prove-dry-run | experimental | waived (external_dependency) | disabled |
| integration.queue The ranked queue: the repository, the base and the master commit every assessment was decided against, when the forge was observed, the policy in force (the branch protection's required checks and reviews, the label policy, the merge method: a merge commit, or none when the repository allows none), every open pull request's assessment in rank order — an actionable one with how long it has waited for the executor and how often another was chosen instead — the next merge, the pull requests that need master brought in, the starving ones, the tallies by disposition and lane, and the diagnostics, a stale observation first; beside it, who holds the base branch's integration lease and the last merge the executor recorded. `observed: false` with the reason when this checkout has recorded no observation. |
query | majordomus_pull_requests | GET /api/v1/pull-requests | majordomus prs status | experimental | required | disabled |
| integration.timings How long CI takes on the open pull requests, measured from the recorded forge observation: for every check, how many of its runs started and completed, how many passed and failed, and its median, 90th percentile (nearest rank) and longest duration in seconds, the slowest median first; for every open head with a measured check, the wall time from its first check's start to its last check's completion and the check that took longest, the longest wait first; and how many runs could not be measured (still running, queued, or recorded before starts were read), which are counted and never measured as zero. A read: it asks the forge for nothing; `majordomus prs refresh` records the observation. `observed: false` with the reason when this checkout has recorded none. |
query | majordomus_ci_timings | GET /api/v1/pull-requests/timings | — | experimental | required | disabled |
| integration.trains Every train of open pull requests — a group joined by confirmed dependencies: a base branch that is another open pull request's head, or a `Stacked on #N` / `Depends on #N` line in the body — in landing order. Per link: number, title, author, head and base branch, head commit, the forge's page and checks, disposition, lane, reasons, next action, required-check state and every check on the head, relation to master with how far behind it is and whether it carries master, the prepared head under refs/prep/<n> with whether it is the head the forge serves (pushed) or not yet (pending), its position and depth, whether its turn has come, what it stands on and what it carries, its queue rank and whether a cycle catches it. Per train: roots, tops, the next link the order allows, the edges (STACKED_ON or DEPENDS_ON, satisfied when the link below landed), and the pull requests beneath it that are no longer open. Beside them the prepared heads no train holds, the tallies and the queue's diagnostics. Read from the recorded observation, the queue `majordomus prs status` prints and the local refs: it fetches, pushes and moves nothing. `observed: false` with the reason when this checkout has recorded no observation. |
query | majordomus_pull_request_trains | GET /api/v1/pull-requests/trains | majordomus prs trains | experimental | required | disabled |
| intent_realization.explain One intent explained from the derivations alone: a sentence for its stage naming each milestone's derived status, a sentence per criterion naming its evidence state, the plan's coverage of it and the command that reproduces it, a sentence for the work and providers realising it, and each drift finding; beside them the derived intent, the coverage of its criteria, its realization and the work linked to it. |
query | majordomus_intent_explain | GET /api/v1/intents/explain | majordomus intent explain | behaviorally_verified | required | disabled |
| intent_realization.work Every unit of work this checkout can see — ledger tasks with their episodes, providers and handovers, closed session records, peer claims — with every intent it realises through issue, milestone and criterion, each link's provenance (declared: the work cites the issue; observed: its episode moved the issue; derived: its branch names the issue; inferred: only an open issue's scope overlaps) or the first missing link; every intent with its unmet criteria and the issues serving each, the work and providers realising it, and its drift: closed_work_contradicted when every milestone is DONE and a criterion's evidence is stale or failing, closed_work_unproven when it never existed, criterion_closed_unmet when every serving issue is DONE and the criterion is not met; and where the stage and the verdict disagree (ADR 0107), evidence_ahead_of_plan when the verdict is satisfied while the stage is planned or executing, closed_work_not_satisfied when every milestone is DONE and the verdict is unsatisfied or unknown. Live work serving no intent is a warning. |
query | majordomus_intent_realization | GET /api/v1/intents/realization | majordomus intent realization | behaviorally_verified | required | disabled |
| intents.binding What a task asks before it starts (ADR 0111): given the issue the work executes, the intent it serves, the paths it will touch, or an exemption class with its reason, one standing — `bound` when the work serves a criterion of a live intent through links the preflight accepts, `maintenance` when its issues sit under milestones no live intent names, `exempt` when the class is one the policy declares under `intent.exemptions` and a reason was given, `refused` otherwise, each refusal with a cause: the preflight's own seven, and nothing_named, unknown_intent, intent_retired, intent_has_no_open_work, issue_outside_intent, ambiguous_intent (paths alone reached more than one intent), unknown_exemption, exemption_without_reason, exemption_names_work. The answer carries what was named, the issues and intents resolved with what each intent asks of the worker, a note when the paths lie outside the named issue's scope, and two pins a later reader compares: `plan_revision`, which moves when the intent, a link or the critique is edited, and `evidence_standing`, which moves when a served criterion's evidence changes state. Nothing is stored. |
query | majordomus_intent_binding | GET /api/v1/intents/binding | majordomus intent binding | behaviorally_verified | required | disabled |
| intents.coverage The plan read against the intents (ADR 0073): every criterion of every live intent with the live issues that serve it, the milestones they belong to, and its strength — covered, weakly covered when no serving issue requires evidence, observed when the recorded gap saw it already true, or uncovered when nothing in the plan will make it true — and every issue with the reason it exists: the criteria it serves, maintenance under a milestone no intent names, or unexplained under one that realises an intent. |
query | majordomus_intent_coverage | GET /api/v1/intents/coverage | majordomus intent coverage | behaviorally_verified | required | disabled |
| intents.list Every intent the project model declares, each with the status the plan derives for its milestones, the state of the evidence behind each satisfaction criterion, the stage those two derive — declared, planned, executing, verifying or satisfied, or cancelled or superseded when the record says so — and the verdict the criteria alone derive (ADR 0107): satisfied when every criterion is met, unsatisfied when a test or claim criterion is not, unknown when only command or deployment criteria are unmet or none is declared, with the criteria holding it back. |
query | majordomus_intents | GET /api/v1/intents | majordomus intent list | behaviorally_verified | required | checkout |
| intents.preflight Given the issue a piece of work executes, or the paths it will touch, one verdict: `serves` when no issue is refused and at least one serves a criterion of a live intent through a link that holds, the plan of each such intent critiqued with no blocking finding open (issues judged maintenance beside it do not change the verdict); `maintenance` when the issues sit under milestones no live intent names and serve nothing, as `intent validate` allows; `refused` otherwise, each refusal with its issue, a cause — unknown_issue, no_issue_covers_paths, issue_serves_nothing, serves_another_intent, serves_unknown_criterion, intent_not_critiqued, open_blocking_finding — in path mode every issue judged and the worst verdict answered. The answer carries, for the intents reached and no others, the statement, the served criteria with the live state of their evidence, the invariants, non-goals and governance, the critique with its open blocking findings, and the recorded gap bounded to those criteria. |
query | majordomus_intent_preflight | GET /api/v1/intents/preflight | majordomus intent preflight | behaviorally_verified | required | disabled |
| intents.propose Write a new intent record under `.ai/repo/project/intents/` from a statement of what must become true, with an optional title (the statement's first line when absent) and id (the title's slug when absent). The record names no milestone, criterion or invariant: its stage derives as `declared`, `intent validate` reports the two absences as warnings rather than failures, and no work can serve it until it is planned (ADR 0144). Nothing about its standing is stored. An existing record is refused, never overwritten, and the file appears whole or not at all. The answer names the identity and the file; `intents.record` answers the derived stage once the index holds it. |
command | majordomus_intent_propose | POST /api/v1/intents/propose | majordomus intent propose | experimental | waived (destructive) | disabled |
| intents.record One intent in full: its statement and invariants as authored, each milestone with the status the plan derives, each satisfaction criterion with the state of its evidence and the command that reproduces it, the stage, and the verdict the criteria alone derive with the criteria holding it back. The record's own file stays at `majordomus://intent/<id>`. |
query | majordomus_intent_record | GET /api/v1/intents/record | majordomus intent show | behaviorally_verified | required | disabled |
| intents.validate Every finding over the intents: an intent naming no milestone or no criterion, a milestone that does not resolve, a criterion with no evidence reference or one that names nothing this repository holds, governance that does not resolve, a successor that is not an intent, a file name that disagrees with its id — each a failure — and a milestone no intent serves, a warning. |
query | majordomus_intent_validate | GET /api/v1/intents/validate | majordomus intent validate | behaviorally_verified | required | disabled |
| knowledge_base.candidates Every knowledge record with status candidate under the candidates source class: its class, its assertion, the episode it came from and that episode's branch, and how long it has waited — measured from the derivation that wrote it, then the commit that added it, then its own date — judged against session.freshness; against the policy's cap. A candidate whose episode this checkout does not know is reported with no branch rather than hidden. Ordered by id. |
query | majordomus_knowledge_candidates | GET /api/v1/knowledge/candidates | majordomus knowledge candidates | behaviorally_verified | required | disabled |
| knowledge_base.record One knowledge record by id — candidate or curated — with every reference it names resolved: a session against the tracked session records and the ledger, a task or decision against the ledger and the task store, a commit against git, a file or test against the index and the tree, a rule, an ADR, an issue or another record against the index. Which references dangle is the question a reviewer asks before promoting, and the one the integrity validator asks of every record. A `task:none` or `decision:none` reference is refused by name. |
query | majordomus_knowledge_record | GET /api/v1/knowledge/record | majordomus knowledge record | behaviorally_verified | required | disabled |
| knowledge_base.status The freshness half of the stopped-writer judgement (ADR 0052, applied to the knowledge deriver by ADR 0091): the newest knowledge.derived line, the newest session.closed line, how many closed episodes no derivation names, the candidate counts, and — once a derivation has run in this checkout and the switch is on — whether the newest closed episode went underived past session.freshness.stale_minutes. Episode ids are compared, never line order. Whether the close path still calls the deriver is read from the source by the shell validator, not here. |
query | majordomus_knowledge_status | GET /api/v1/knowledge/status | majordomus knowledge status | behaviorally_verified | required | process |
| layout.check Every path a declared layout excludes, named with the contract it violates: a tracked file under the tracked half that git's ignore rules match (state that does not travel, under a contract that excludes cache or runtime), and a file under the local half that is a byte copy of a tracked canonical file or declares the schema of a kind share/kinds.yaml calls canonical (under the manifest's `local.excludes: [canonical]`). Only what a contract declares is judged. Reads git and the local half's files; no build and no network. |
query | majordomus_layout_check | GET /api/v1/layout/check | majordomus layout check | behaviorally_verified | required | disabled |
| lifecycle.closed The tracked, durable projection of closed episodes: how many there are, how many closed on this branch, and the newest twenty. This is the only half of the subsystem that survives a clone; everything under .ai/local/ names this machine and travels nowhere. |
query | majordomus_lifecycle_closed | GET /api/v1/lifecycle/closed | — | behaviorally_verified | required | process |
| lifecycle.episodes Every open episode in this checkout's store, with the provider session that owns it, the worktree and branch it opened on, where it stands, and what the ledger last saw it do. `continuity.state` reports the one episode the pointer resolves to, which is right for a briefing and blind to every other window open on the same worktree. |
query | majordomus_lifecycle_episodes | GET /api/v1/lifecycle/episodes | — | behaviorally_verified | required | process |
| lifecycle.providers Per provider: the lifecycle events its adapter declares in the provider's own vocabulary, whether it can archive prompts, the official seams through which it reports what a session consumed (usage, with the citation), and which of this repository's enforcement entries name its hook. Declared in share/providers.yaml and in the policy; never inferred from whether a shim happens to be on disk. |
query | majordomus_lifecycle_providers | GET /api/v1/lifecycle/providers | — | behaviorally_verified | required | process |
| lifecycle.recovery Open records that can no longer close themselves, temporary files a killed close left in the tracked sessions section, whether the pointer has been migrated to the per-provider layout, and the arithmetic that says whether every episode the ledger has seen start is accounted for. Every finding carries the command that clears it. |
query | majordomus_lifecycle_recovery | GET /api/v1/lifecycle/recovery | — | behaviorally_verified | required | process |
| lifecycle.runtime The commit the served index was built at, against the commit the repository is on, read on this call. A server that froze its index at start-up answers every question about a commit from hours ago with nothing in the answer saying so; this is the reading that can tell. |
query | majordomus_lifecycle_runtime | GET /api/v1/lifecycle/runtime | — | behaviorally_verified | required | process |
| mcp.projection Who answers `initialize` and with which protocol versions; the transports and the sessions attached over each; the methods served, and that prompts and notifications are not; every tool (or only those with one effect) with its capability, effect and the hints its annotations are derived from; the tools that write the repository; the resources; and whether each client the distribution declares has a configuration here that starts this repository's server. Reads the registry and one file per declared client; writes nothing. |
query | majordomus_mcp | GET /api/v1/mcp | — | experimental | required | disabled |
| mesh.build_cache.ensure For one lockfile the repository tracks (npm node_modules, mix deps, or the cargo build directory), skip an install whose key is already in place; otherwise restore it from this machine's local archive level (~/.cache/majordomus/build-cache) and then from the store this node declares when its own probe finds it healthy and a credential file is present, each only after the archive's SHA-256 matches the digest recorded when it was saved and every entry is judged safe (no absolute name, no `..`, no link leaving the target). On a miss the command runs, and when it succeeds what it left is archived to the local level and the store. A failure of any level is a miss: the command runs exactly as without the cache. npm's command is not run on a hit; mix's is; a cargo build directory is restored only when cold, under cargo's own lock, without incremental state, and never saved above one PUT. A restore and a save respect the build's free-space floor (MAJORDOMUS_MIN_FREE_MB); the local level is held under the policy's build_cache.local_max_gib, oldest first. MAJORDOMUS_BUILD_CACHE=off bypasses every level. Offered on the command line only: it runs a command (ADR 0157, I3952). |
command | — | — | majordomus mesh build-cache ensure | experimental | waived (destructive) | disabled |
| mesh.build_cache.env What the process that starts the sccache server should have in its environment on this machine, derived and never typed: the local disk as the first level and the selected store as the second (SCCACHE_MULTILEVEL_CHAIN=disk,s3, the bucket, the endpoint, the region, whether TLS is used, a key prefix of rustc's host triple, the credential FILE path and its profile) only when sccache has the multi-level chain (measured on a throwaway server, not assumed), a credential file of mode 0600 holding the profile exists, and the store answered its readiness route now; otherwise no variable at all, with the one condition that did not hold. sccache fixes its chain at server start and fails the compile when a level is down then, so a store is added only to a server that is starting. No key is ever in the answer, only the credential file's path (ADR 0157, I2673). |
query | majordomus_mesh_build_cache_env | GET /api/v1/mesh/build-cache/env | majordomus mesh build-cache env | experimental | waived (external_dependency) | disabled |
| mesh.build_cache.key Every lockfile the repository tracks — Cargo.lock, mix.lock, package-lock.json — as the thing it makes cacheable (a cargo build directory, mix dependencies, npm node_modules), each with its key: a schema version, the platform (the toolchain's own host triple, or `any` for platform-independent source), the toolchain as its executables state it, and the digest of every input and environment variable that changes what the install leaves. Where the entry is restored to is a separate field, so two checkouts with one lockfile share one entry. A kind whose toolchain is absent says why and has no key (ADR 0157, I3950). |
query | majordomus_mesh_build_cache_key | GET /api/v1/mesh/build-cache/key | majordomus mesh build-cache key | experimental | waived (external_dependency) | disabled |
| mesh.build_cache.provision The host layer of a cache provider as one declared policy: a disk guard on a timer, services that restart always and are last for the OOM killer, a bounded journal and container log, a private bucket with expiry and a hard quota beside the CI cache's own bound, one least-privilege identity per node whose credential is generated on the host into a mode 0600 file outside any repository, and the rustc wrapper that makes the node's own builds use the cache. Without `apply` it plans only: every file, edit and command still owed, from what the host holds, with no secret named. With `apply` it writes what is missing or drifted and runs the commands, as root, refusing without it before touching anything; a second apply changes nothing. A `root` other than `/` is a staging directory: files only, no privilege, no command. Offered on the command line only: it installs services and writes credentials, which nothing reachable over HTTP or MCP may do. |
command | — | — | majordomus mesh build-cache provision | experimental | waived (destructive) | disabled |
| mesh.claim Claim repository paths for a session. An exclusive claim that meets a live exclusive claim of another session — on this runtime or any runtime this one has heard — is refused as `claim_conflict` with the claims it meets; an advisory claim is recorded and its overlaps reported. A claim lives while its session is open and its runtime beats: a crashed holder's claim expires everywhere on its own. Writes this runtime's journal only. |
command | majordomus_mesh_claim | POST /api/v1/mesh/claims | — | experimental | waived (transient_state) | disabled |
| mesh.cooperation Whether this runtime cooperates and why not when it does not: its runtime and stream, the repository identity links are matched on, the link protocol and features, the heartbeat and expiry, every linked peer with its link state, last exchange, round trip and failures, every refused candidate with the rule that refused it, and the counters of handshakes, syncs, reconnects, expiries, replicated and refused events. |
query | majordomus_mesh_cooperation | GET /api/v1/mesh/cooperation | — | experimental | required | disabled |
| mesh.doctor Every prerequisite proved on this machine alone — the declaration parses, the identity loads and, under an allowlist, is on it, the repository has a mesh identity, a UDP socket binds, the multicast group joins, broadcast enables, and the discovery and link protocols sign and verify end to end in memory — and then the server's own verdict: in a shared server, whether an enabled declaration actually activated the mesh and, when it did not, the server's reason, which fails the report. Each failed check names its impact and its remedy. Deterministic, no second node required. |
query | majordomus_mesh_doctor | GET /api/v1/mesh/doctor | majordomus mesh doctor | experimental | required | disabled |
| mesh.enrol Add this machine's public key to trust.allow of the repository's mesh declaration, under a comment naming the machine, creating the node identity first when there is none. Idempotent: a listed key changes nothing. The comments and every other line of the declaration stay as they were, and an edit that would not parse back as a declaration is refused before anything is written. Under deny_unknown a machine opens its mesh only once its key is listed, so this is the one step that joins a machine; commit the file and restart the server. |
command | majordomus_mesh_enrol | POST /api/v1/mesh/enrol | majordomus mesh enrol | experimental | waived (destructive) | disabled |
| mesh.events The journal's events a page at a time, in Lamport order: each with its stream, sequence, stamp, repository, signing key, kind and body. The answer's cursor is the next page's `cursor`, and a walk resumed from each one returns every event exactly once, a partitioned runtime's late event included; `after` still walks by Lamport stamp. |
query | majordomus_mesh_events | GET /api/v1/mesh/events | — | experimental | required | disabled |
| mesh.firewall What inbound traffic the declaration implies this machine must admit — the multicast group's port, the broadcast port when it is a permitted fallback, every declared hub port whose address is this machine's, and the server's own port when it listens beyond loopback — from the private networks the declaration names; which firewall front this host runs (ufw, nftables, the macOS application firewall); the commands that admit the plan there; what the firewall itself says about the plan now (present, missing, inactive, or unobservable without root); and what the kernel logged it dropping toward those ports in the last five minutes. Fails when a rule is observed missing or a drop was logged. Reads the host; changes nothing. |
query | majordomus_mesh_firewall | GET /api/v1/mesh/firewall | majordomus mesh firewall | experimental | waived (external_dependency) | disabled |
| mesh.firewall.apply Run the commands mesh.firewall renders, on this host, as root: one allow per rule and source network on ufw or nftables, the executable admitted on the macOS application firewall; nothing else is touched, and every rule written carries the comment `majordomus mesh` so it can be told from an operator's own. Refuses, running nothing, without root or without a backend; records every command with its exit and output; and asks the firewall again afterwards, so the verdict is the firewall's. Offered on the command line only: it runs a privileged host tool, which nothing reachable over HTTP or MCP may do. |
command | — | — | majordomus mesh firewall apply | experimental | waived (destructive) | disabled |
| mesh.handover.consume Take a handover another runtime published: record the consumption on the mesh, and write it into this checkout's handovers directory as a record `majordomus handover --resolve` finds on the same branch — once, however often it is consumed. |
command | majordomus_mesh_handover_consume | POST /api/v1/mesh/handovers/consume | — | experimental | waived (transient_state) | disabled |
| mesh.handover.publish Publish a handover record of this checkout — the newest, or the one named under .ai/local/state/handovers/ — to every linked runtime: its task, branch, head and time from its front matter, the issue and milestone given, and its Markdown body, bounded and identified by the body's digest. No path of this machine travels, and no file outside the handovers directory is ever read. |
command | majordomus_mesh_handover_publish | POST /api/v1/mesh/handovers | — | experimental | waived (transient_state) | disabled |
| mesh.identity The node identity kept under the user's state directory, public half only: node id, public key, display name. The signing key appears in no projection. Absent is an answer, not an error — the identity is created when a mesh first activates. |
query | majordomus_mesh_identity | GET /api/v1/mesh/identity | majordomus mesh identity | experimental | required | disabled |
| mesh.link.hello The link handshake another runtime posts: a signed hello carrying its runtime card, a fresh nonce and its protocol range. Refused, typed, when malformed, oversized, mis-signed, stale, replayed, of an unsupported protocol, of another repository, untrusted, or this runtime itself; otherwise answered with a signed welcome: this runtime's card, a link id, its marks and the echoed nonce. Changes this process's link table only. |
command | — | POST /api/v1/mesh/link/hello | — | experimental | required | disabled |
| mesh.link.sync The replication round a linked runtime posts every heartbeat, signed under its link id with a rising counter: its marks and the events this runtime lacks. Ingested — verified end to end, deduplicated, applied in stream order — and answered, signed, with this runtime's marks and the events the peer lacks. An unknown link or a restarted peer is told to say hello again. |
command | — | POST /api/v1/mesh/link/sync | — | experimental | required | disabled |
| mesh.nodes Every runtime this process has observed, one record per node and runtime slot, deduplicated across every discovery source, in node-id order: identity, trust, presence, endpoints, capabilities, repositories, provenance and versions. In memory, gone with the process. |
query | majordomus_mesh_nodes | GET /api/v1/mesh/nodes | — | experimental | required | disabled |
| mesh.peer One runtime by its key (`<node>-<runtime>`, or a node id for its first runtime): the machine it runs on, its liveness, its link from here, its sessions and claims, and any refusal recorded against it. Not found is an answer with the reason. |
query | majordomus_mesh_peer | GET /api/v1/mesh/peer | — | experimental | required | disabled |
| mesh.peers Machine → runtime → session → claim: every runtime this one is linked to or has heard through the journal, grouped by machine, local first; each runtime with its liveness, the milliseconds since its beat rose, its link and its newest live claim. The default `summary` view lists only the active sessions, each with its live claims counted and its intent cut; `view=full` lists every session with every claim. `session` and `runtime` narrow either. Remote and local runtimes share one shape, and the whole fold's digest closes the answer: equal digests, equal state. |
query | majordomus_mesh_peers | GET /api/v1/mesh/peers | — | experimental | required | disabled |
| mesh.register Present one signed envelope; it is verified exactly as a datagram — bounds, staleness, signature, trust policy — and recorded as a rendezvous observation when it holds. The answer carries this node's own envelope and the candidates its registry holds, each verifiable end to end on its own signature. Registration grants nothing: the caller becomes a record, never an authorization. Changes this process's memory only. |
command | majordomus_mesh_register | POST /api/v1/mesh/register | — | experimental | required | disabled |
| mesh.release Release a claim this runtime's current run holds, by its key. A claim written elsewhere is refused as `not_own`: only its holder releases it, and a dead holder's claim expires instead. Writes this runtime's journal only. |
command | majordomus_mesh_release | POST /api/v1/mesh/claims/release | — | experimental | waived (transient_state) | disabled |
| mesh.review.answer Answer a review request from any runtime with approved, changes_requested or commented, and a note. Replicated to every linked runtime. Writes this runtime's journal only. |
command | majordomus_mesh_review_answer | POST /api/v1/mesh/reviews/answer | — | experimental | waived (transient_state) | disabled |
| mesh.review.request Ask for a review of a branch, commit or pull request, optionally of one named runtime — which must be linked and carry the `reviews` feature, or the request is refused as `feature_unsupported`. Replicated to every linked runtime. Writes this runtime's journal only. |
command | majordomus_mesh_review_request | POST /api/v1/mesh/reviews | — | experimental | waived (transient_state) | disabled |
| mesh.review.withdraw End a review request this runtime asked for — done, void or superseded — with an optional result note the request then carries. Any session of the asking runtime may (a reconnected asker is another session of it); no other runtime may, and it is never counted as an answer. An unanswered request also reads expired while its runtime has stopped beating. Replicated to every linked runtime. Writes this runtime's journal only. |
command | majordomus_mesh_review_withdraw | POST /api/v1/mesh/reviews/withdraw | — | experimental | waived (transient_state) | disabled |
| mesh.session.close End a session of this runtime; every claim it holds ends with it, on every linked runtime. Writes this runtime's journal only. |
command | majordomus_mesh_session_close | POST /api/v1/mesh/sessions/close | — | experimental | waived (transient_state) | disabled |
| mesh.session.open Say what a session of this runtime is: its client, worker, intent, task, issue, milestone, branch, head, dirtiness and context revision. Replicated to every linked runtime; a later word replaces an earlier one. Writes this runtime's journal only. |
command | majordomus_mesh_session_open | POST /api/v1/mesh/sessions | — | experimental | waived (transient_state) | disabled |
| mesh.state The journal folded. The default `summary` view is bounded whatever the history: sessions and claims counted by standing, each runtime with its liveness, its counts and its newest live claim, the open review requests and the handovers nobody has taken, and the digest two runtimes compare. `view=full` is every session, every claim with its standing (held, released, expired, conflicted with its winner), the advisory overlaps, every handover with who consumed it, every review request with its answers, and every stream's liveness on this runtime's clock. `claims=live`, `after` (a Lamport stamp), `session` and `runtime` narrow either view; the digest is always the whole fold's. |
query | majordomus_mesh_state | GET /api/v1/mesh/state | — | experimental | required | disabled |
| mesh.status Whether the mesh runs in this process and why not when it does not; this node's public identity; every discovery provider with its state and counters; the registry's tallies; and the refused datagrams by reason. The one status every surface shows. |
query | majordomus_mesh | GET /api/v1/mesh | — | experimental | required | disabled |
| mesh.verify Run a live verification: cooperation is active, the repository identity resolves, the endpoints are reachable beyond loopback, the heartbeat beats, the journal holds no stuck gap; then one sync round with every peer this runtime dials, timed, and whether both sides now hold the same high-water marks. Each failed check names its impact and remedy. Changes nothing but the journal's replication. |
command | majordomus_mesh_verify | POST /api/v1/mesh/verify | — | experimental | waived (external_dependency) | disabled |
| models.list Every declared vendor and model, optionally narrowed by vendor, capability word, or one id or alias. Vendors carry whether their named credential variable is set — presence only, never a value. The order is the declaration's, which is also routing's preference order; the catalogue's own findings (a duplicate alias, an undeclared vendor) ride along. |
query | majordomus_models | GET /api/v1/models | majordomus models list | experimental | required | process |
| models.route Decide which declared model a stated need selects: the first in declaration order satisfying every requirement, the qualifying rest as the fallback chain, and every excluded model with the first check it failed. Pure over the catalogue and the input — the same question gets the same answer, and 'why' is in the answer itself. |
query | majordomus_models_route | GET /api/v1/models/route | majordomus models route | experimental | required | disabled |
| monitor.stream A page of signals after a cursor, oldest first, or without one the newest of the last `since` seconds: each with its time, source, kind, severity, machine, session, actor, pull request, branch, issue, paths, a one-line summary and whether it is for the reader. Re-projections and undecided steps are counted as `suppressed`; a source that cannot be read is listed with its reason, never answered as empty. The page's `cursor` is the next page's `after`, and nothing on this page comes back. Reads only. |
query | majordomus_monitor | GET /api/v1/monitor | — | experimental | required | disabled |
| 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 |
| observatory.capture The mesh scenes of the Observatory as this process has them live, fit for publication: machines, runtimes, sessions and events by ordinal, an event by its kind, logical clock and time only. Writes nothing; committing the answer to .ai/repo/observatory/recording.json is what publishes it. |
query | majordomus_observatory_capture | GET /api/v1/observatory/capture | — | behaviorally_verified | required | disabled |
| observatory.events The events of the mesh journal above a cursor, as the Observatory's activity scene draws them: identity, kind, node, logical clock and time, newest first, at most a page. The answer's cursor is the next request's `after`; a cursor this journal never reached is expired, and the reader takes a fresh projection. Without a cursor, the newest page. |
query | majordomus_observatory_events | GET /api/v1/observatory/events | — | behaviorally_verified | required | disabled |
| observatory.replay The recording of the mesh scenes the repository carries at .ai/repo/observatory/recording.json, which the Observatory draws, labelled as a replay, where no mesh runs. Absent is present: false; a file that cannot be read is an error. |
query | majordomus_observatory_replay | GET /api/v1/observatory/replay | — | behaviorally_verified | required | disabled |
| pack.plan What a profile of share/archive.yaml would pack: the files carried and their bytes and o200k_base tokens, every file left out by reason (worktree, link, artifact, binary, derived, excluded; derived counted, the rest listed), the shards it is cut into within the profile's token budget and file count, and every finding that refuses the build — a file over the budget, too many shards, a machine path or credential in a selected file, an empty selection, a profile without limits. Reads git's index and blobs only; writes nothing. |
query | majordomus_pack_plan | GET /api/v1/pack/plan | majordomus pack plan | behaviorally_verified | required | disabled |
| pack.verify Read a pack directory inside the repository against its pack.json: every file it names is present with its digest and nothing else is, every carried file's content has the digest its marker records, no carried path is a binary, an artifact, a link or a gitlink under the profile the manifest names, no file is over the profile's token budget or holds a NUL byte or a leak, and there are no more files than the profile allows. An unreadable manifest is unmeasured, never a pass. |
query | majordomus_pack_verify | GET /api/v1/pack/verify | majordomus pack verify | behaviorally_verified | required | disabled |
| peers.announce Tell the other peers of this shared server what the calling session is doing and which paths it expects to touch. A peer may hold several claims at once: name one with 'claim' and it stands beside the others, announce under that name again and it is updated, leave it out and this is the peer's one unnamed claim. Name your claims when one session is doing several things at once — subagents share their parent's session, so an unnamed announcement from each of them would replace the last rather than adding to it. 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 worker of this repository: id, the client's own name and version from its initialize, transport, when it attached, when it was last seen, what it announced, and which checkout it is attached to. A server serves one checkout, so the board of a repository worked on through linked worktrees is gathered: this checkout's board out of memory, every other checkout's from the server its lease names, asked for its own board alone. 'covered' says how many checkouts were covered, 'boards' lists each one with a server, a worker or a board that could not be read (the rest counted in 'omitted'; 'view: full' lists every one), and 'complete' whether every board could be read, so a short board is never mistaken for an empty repository. 'checkouts: this' reads one board and enumerates, probes and asks nothing else. In-memory on every server; gone with the processes. |
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.delivery For every issue (or one), the furthest delivery stage proved — none, branch, pr_open, merged, released, deployed — each with the object that proved it and when it was observed: the branch that names the issue (by id, the I1405 rule, or by its slug), the open pull request in the recorded forge observation, the newest commit in the trunk's history that names it (a merge by its pull-request title or branch, any other commit by its subject, never by its body), the first release record (`.ai/repo/releases/v*.yaml`) whose commit contains that merge, and the published `latest.json` that names that release or a later one. Beside it, the issue's declared status, so a contradiction between the stamps and the work is one comparison away. Live by default: the trunk this clone knows, every branch, the forge observation `majordomus prs refresh` recorded, the release records, and the `latest.json` of the commit the last Pages deployment published. With `at`, the merges of that commit's history and the tree's release records and nothing live — every branch, forge and deployment source is reported unread — so only merged and released can be proved and the answer is a function of the commit alone. A source that was not read is reported unread with its reason, never as none: an issue it could have moved further is not settled and names it. Inferred on every call and stored nowhere; it never writes a stamp. |
query | majordomus_plan_delivery | GET /api/v1/plan/delivery | majordomus plan delivery | experimental | required | disabled |
| plan.drift Every contradiction between an issue's declared status and its delivery (plan.delivery), each with the objects that prove it: `merged_not_recorded` — READY, BLOCKED or ACTIVE, with a merge on the trunk naming it (pull request, merge commit, release) and no open pull request naming it; `active_without_work` — ACTIVE since before the window, with no branch, pull request, merge or live mesh claim naming it; `done_without_trace` — DONE with no merge naming it, advisory because record-only issues exist. Each finding carries its age, whether it is past the window `.ai/repo/ci/plan.yaml` declares (`drift.window`, seconds), the sources that were not read and could have dissolved it, and the command that settles it (`majordomus plan verify|done <id>`). With `gate`, judged as a gate: on a `head` every merged_not_recorded is pending; on the `trunk` one merged longer than the window ago is refused and a younger one pending; the other classes never refuse; a missing or unreadable window refuses (exit 12); refusals fail the gate (exit 10) only under `drift.enforcement: blocking`, and are reported with exit 0 under `advisory`. Observed live, or `at` a commit as plan.delivery is. Inferred on every call; it never writes a stamp. |
query | majordomus_plan_drift | GET /api/v1/plan/drift | majordomus plan drift | experimental | required | disabled |
| plan.flight The milestones with work in flight, the one the graph allows next, and the latest release as the releases themselves say it, read live on every call (ADR 0166, decision 4). Now is every open milestone holding an open issue with an open pull request that names it (`plan.delivery`'s `pr_open`), a live mesh claim made for it, or a declared ACTIVE status, each with those issues, why they are in flight, their declared status beside their inferred stage, and the objects that prove it (branch, pull request, merge commit, release tag, published `latest.json`, claim), linked on the forge where the forge has them. Next is the first open milestone in the plan's order that is not now and whose unfinished prerequisites are all now. The latest release is the highest stable version among the release records, the `v*` tags of this clone and the `latest.json` the last successful Pages deployment published, so a release whose record merged after its tag is not shown older than it is; `executable_tagged` says whether the answering executable's own version is tagged. `milestone` adds that milestone with every one of its issues. A source that was not read (the forge, the publication, the mesh outside a server) is named with its reason, never treated as empty. |
query | majordomus_plan_flight | GET /api/v1/plan/flight | — | experimental | 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 | generation |
| 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 | generation |
| 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 | generation |
| 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 | generation |
| plan.transition Record that execution of an issue began (`start`), that implementation is complete with evidence outstanding (`verify`), or that it is finished (`done`). One field of the issue's own record is stamped, the seal of its event is written beside it, and the event is appended to the ledger; a stamp without that seal moves no status. The move is refused when the model says it is illegal — an issue that is not READY cannot start, one that was never ACTIVE cannot be verified, and one that was never started, whose dependencies are unfinished or whose required evidence is absent cannot be done — and the refusal names what is in the way. The status that comes back is derived from the record afterwards, not announced by the move: a `done` whose evidence is missing leaves the issue in VERIFY and says so. |
command | majordomus_plan_transition | POST /api/v1/plan/transition | — | behaviorally_verified | required_when | 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 lifecycle stamp its transition did not write (no seal of its plan_* event beside it), 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.domains The few things the product controls, each declared once under the layer's features section with its promise and the failure it answers, and each holding the stable features that name it: their interfaces, the distinct claims, use cases, rules and capabilities behind them, and the operational moments they answer, all derived. A domain lists no features; a feature names its domain. The default is the stable set; pass status=any for every domain. |
query | majordomus_product_domains | GET /api/v1/product/domains | majordomus product domains | behaviorally_verified | required | process |
| 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, domain, 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 |
| quality.rustdoc The crate's rustdoc tree — the rustdoc surface's artifact, as the web topology resolves it — judged against the crate's own inventory of exported items: every item that owns a page has it at the route rustdoc gives it, no item page is left without an item, the tree declares it was built from HEAD, the library's index is present and names the crate, its assets are present, every relative link resolves, and no file names the machine it was built on or carries a credential. Answers the verdict (clean, findings, or no_tree when there is nothing to judge), the counts it joined, every exported module with its page, and one typed finding per defect with the file and what to do. |
query | majordomus_quality_rustdoc | GET /api/v1/quality/rustdoc | majordomus quality rustdoc | behaviorally_verified | required | process |
| reasoning.advisors Every declared advisor — then every linked mesh peer carrying the review feature — with its status (available, unavailable, not_configured, disabled, temporarily_failed, rate_limited) and why, from presence alone (an executable on PATH, a credential variable set; never a value), the reasoning mode and the recorded outcomes of earlier consultations. Plus the capacity per advisory capability. No advisor is an ordinary answer: reasoning is operational either way. |
query | majordomus_reasoning_advisors | GET /api/v1/reasoning/advisors | majordomus reasoning advisors | experimental | required | disabled |
| reasoning.check The executable half of the rules advisors-are-optional and review-is-recorded-not-claimed: the advisor catalogue resolves against the provider table and the model catalogue; every adapter it names has its transport module; no provider-independent source names an advisor; no CI workflow or gate names a model credential; no document asserts a refused claim; every stored consultation names an advisor its plan selected, and every conclusion's review matches what it cites. The CI and claims checks judge what this repository's own workflows and documents say, so they apply only where the rule advisors-are-optional is declared; an adopter is held to what it adopted. |
query | majordomus_reasoning_check | GET /api/v1/reasoning/check | majordomus reasoning check | experimental | required | disabled |
| reasoning.explain One reasoning record with the whole chain of its assessment: the uncertainty and its evidence, the plan and who it selected or why nobody, each consultation, each disagreement and the experiment that settled it, the conclusion and its validation — the provenance of a decision without the conversation that produced it. |
query | majordomus_reasoning_explain | GET /api/v1/reasoning/explain | majordomus reasoning explain | experimental | waived (transient_state) | disabled |
| reasoning.plan Decide, without recording anything, whether a stated uncertainty warrants independent review, how much the mode allows, and which available advisors a capability-driven selection would ask — with every advisor left out and why. Trivial and low uncertainty is decided locally; material uncertainty with no suitable advisor gets the structured local review instead. Pure over the catalogue, the availability and the input. |
query | majordomus_reasoning_plan | GET /api/v1/reasoning/plan | majordomus reasoning plan | experimental | required | disabled |
| reasoning.record Write one typed reasoning record of the open task under .ai/local/state/reasoning/: an assessment (with its evidence), a plan (computed here from the availability of this moment, never supplied), a consultation (only of an advisor its plan selected), a disagreement, a resolution (evidence, never a count), a conclusion (its review count computed from the consultations it cites; refused while a disagreement on its assessment is unsettled), a validation or a failed attempt. Secret shapes are redacted before anything is written. |
command | majordomus_reasoning_record | POST /api/v1/reasoning/records | majordomus reasoning record | experimental | required | disabled |
| reasoning.status The reasoning state of the open task (or of a named one, or of all): assessments and where each stands, consultations and how each ended, disagreements and what settled them, conclusions with their computed review and validation, the timeline, token totals the adapters reported, and the Markdown report a handover carries. Derived from the records alone, deterministically. |
query | majordomus_reasoning | GET /api/v1/reasoning | majordomus reasoning status | experimental | required | disabled |
| recover.orphans Walk the publish temps of every record store, the rename temps under the layer's local half and the tracked sessions section, and the site generator's staging directories at the repository root; give each a verdict by reading its age and then its content; and, unless the call is a check, remove the ones the verdict says nothing is holding. Nothing is deleted for being unrecognised: a temp holding the only copy of a record is reported as `incomplete` and left for the caller to publish, content this version cannot classify is `foreign` and left exactly where it is, a candidate whose age this platform cannot read is `unmeasurable` and never a candidate, and no directory is ever removed. The threshold is required and has no default, because a sweep measuring against an absent threshold would find every file stale. |
command | majordomus_recover_orphans | POST /api/v1/recover/orphans | — | behaviorally_verified | required | disabled |
| release.analysis The public capability surface of this tree against the one the last release published, every movement of it named with the reason it counts for what it does, and the smallest version this tree may therefore declare. The compatibility level is measured from the contract rather than read off the commit subjects: a capability, route, MCP tool, command, or a required field of either schema that a caller could hold and cannot any more is breaking whatever the commit that removed it called itself. What the commits said about themselves is carried beside the verdict as evidence, and the answer says when the two disagree. |
query | majordomus_release_analysis | GET /api/v1/release/analysis | — | implemented | waived (published_history) | disabled |
| 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.currency How much landed work the trunk holds past the last release, since when, and at which version, measured when asked (I3070). The last release is the newer of the release the layer records and the newest version tag the trunk contains: a tag is pushed before its record lands. Landed work is every commit of the trunk past it except merges and release commits. A landing is a commit of the trunk's first-parent history, and the work has waited since the oldest landing that brought anything but release commits. The stance is current when nothing has landed past the release, owed when work has, and overdue once it has waited longer than six hours. The version the public contract requires is decided by the version selection release.version makes, but only from a recorded release and only in a checkout at the trunk; otherwise the answer says which it is not. Ask with next false to leave the version out, as the brief and doctor do. It reads git and the clock, so it is never committed into derived data. |
query | majordomus_release_currency | GET /api/v1/release/currency | — | implemented | waived (published_history) | disabled |
| release.next What the integration executor raises the trunk's version to when it lands a head (ADR 0134): the version the trunk declares, how far the head moves the public contract measured against the trunk's committed registry, what that movement requires under the version's mode, the repository's floor from `release.floor` in the policy, the exemption class that lowered the floor if every changed path falls in one, the larger of the requirement and the floor, and the trunk's version raised by it — with one sentence per step. Everything is read from git at the two refs, so the answer does not depend on which executable runs or on the branch's own version, which is why a retried landing cannot raise twice. It decides and writes nothing; an input that cannot be read is refused rather than guessed. |
query | majordomus_release_next | GET /api/v1/release/next | — | implemented | waived (published_history) | disabled |
| release.version The version the crate manifest declares — the one place it is authored — the version the shell tool prints from its projection `share/version.txt`, and whether that projection is current — the question `generate --check` refuses and `scripts/release-version --check` gates on. Then the next version, which is the public contract's answer: the version `release analyze` requires against the last release — the declared version when it already satisfies the contract, otherwise the smallest one it allows, and the smallest release above the last when the contract requires none over it — with `decided_by` naming who answered. It is the one release selection `release bump` also raises to when no target is named, so the report and the writer cannot disagree. When the contract cannot be measured — no published baseline, a version that is not three numbers, or any other error that makes the plan unsound, the plan `release bump` refuses to write from — the baseline is refused, not guessed: `next` is absent, `decided_by` is `undecided` and `contract_unreadable` carries every error, one per line. The bump the conventional commits since the last release imply, the version it would produce and the commits themselves are carried beside it as evidence, and never answer `next` in the contract's place. |
query | majordomus_release_version | GET /api/v1/release/version | — | implemented | required | checkout |
| 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 | generation |
| 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 |
| rules.proves One test — by identity or by the path a rule names it with — with every rule that names it and the rules that would be left with no proof at all if it were deleted. This is the reverse of rules.show and reads the same derivation, so the two directions cannot disagree. It is the question that could not be asked while the relation ran one way only: before deleting or renaming a case, what stops being enforced. |
query | majordomus_rule_proves | GET /api/v1/rules/proves | majordomus rules proves | behaviorally_verified | required | disabled |
| rules.report The whole rule corpus joined to the tree and the ledger: per rule, its class, its enforcement mode, the validator and the cases it names, whether each is in the tree, the execution behind each, the CI gates that run them, and the sentence explaining how the state was derived. The tallies count the whole corpus even when the answer is filtered, and the findings name every rule whose declared class the proof does not support. Kept per checkout state, never longer: the ledger is a file that changes outside this process, and an edit of it, of a validator or of any tracked file, a new untracked file, a commit or a new ref is a new answer. |
query | majordomus_rules | GET /api/v1/rules | majordomus rules report | behaviorally_verified | required | checkout |
| rules.show One rule with its full proof: the validator and the cases it names, the execution behind each, the gates that run them, the rules it depends on and the rules that depend on it — each with the state it is in, because a rule is proven only as far as its dependencies are — and, when it is not proven, the one sentence saying what would have to be true for it to be. A rule this repository does not declare is a not-found rather than an empty answer, because a typo that read as 'this rule has no proof' is the one answer this capability must never give. |
query | majordomus_rule | GET /api/v1/rules/rule | majordomus rules show | behaviorally_verified | required | checkout |
| served.forge Asks the forge, through its own command-line tool and with the caller's credential, for the newest deployments to every environment and the newest releases, in one query, and records the answer in the checkout-local state `deploy.observed` reads. Exit 0 when the forge answered and the answer was recorded, 12 when it could not be asked (no tool, no credential, no network, a repository the forge does not know): what was recorded before then stands, with its age. |
command | — | — | majordomus served forge | behaviorally_verified | waived (external_dependency) | disabled |
| served.observe Fetches the build identity a deployment serves (one bounded probe, no shell): for a `deployment` naming an object with a provider, its liveness route at the provider's URL; otherwise `build.json` under the configured base URL. It judges it against the expected commit (HEAD unless named) by containment and appends the observation to the checkout-local record. Exit 0 when the deployment serves a build containing the commit, 10 when it measurably does not (behind, or built dirty), 12 when the question could not be answered (unreachable, unreadable, or a served commit this clone lacks). |
command | — | — | majordomus served observe | behaviorally_verified | waived (external_dependency) | disabled |
| served.show The newest recorded observation of each deployment, re-judged against a commit (HEAD unless named), and for a deployment the layer declares as an object its status derived from that: `active` only while it serves the commit. A record keeps proving every commit its served build contains and stops proving the moment the commit asked about is not among them; a record that received nothing proves nothing. Asks no network and writes nothing. |
query | majordomus_served | GET /api/v1/served | majordomus served show | behaviorally_verified | required | disabled |
| server.status Where this checkout's server stands — absent, starting, ready, outdated or stale — measured against what this executable would serve; how far the tree it serves is from the remote trunk (`trunk`: current, lagging, stale, unjudged or unmeasured against the policy's `checkout.trunk_distance`, as of the last fetch); the lease this process holds when it is the server; and, unless `checkouts` narrows it to this one, every checkout git registers for the repository, the primary first, each with its lease, its standing and the reason, and the peers its server reports. `checkouts: this` reads one lease and probes one server and enumerates no other checkout, which is what a caller asking only about the checkout it is in should pay. Read from the lease files and the servers on every call; nothing is cached, because the leases are written by other processes. |
query | majordomus_server | GET /api/v1/server | majordomus serve status | behaviorally_verified | required | disabled |
| session_domain.identity The repository, the checkout, the open episode and the provider session, each with the canonical value this executable computes and each store's own spelling beside it. The stores record the repository sometimes as an absolute .git path and sometimes as a remote URL, the worktree as a path and as a digest, and the session as both an episode id and a provider UUID; this is the surface that says so, so that a reader never compares two spellings of different things and concludes they disagree. |
query | majordomus_session_identity | GET /api/v1/session/identity | — | behaviorally_verified | required | process |
| session_domain.machine Every state an episode can be in, whether it is terminal and what it may move to; every transition — open, resume, checkpoint, detach, close, recover — with the states it runs between and whether it moves the state at all. Derived from the types, so a diagram that disagrees with the code cannot exist. What the machine deliberately does not depend on is stated rather than left to be inferred: task state, which is ADR 0052. |
query | majordomus_session_machine | GET /api/v1/session/machine | — | behaviorally_verified | required | process |
| shell.check Every shell unit under bin/, lib/, scripts/, share/, apps/majordomus-cli/assets/, .githooks/ and .claude/hooks/ — by interpreter line or by a .sh name, as git would commit it, links not followed — against .ai/repo/automation/inventory.jsonl: an undeclared unit, a record whose unit is gone, an exemption missing its reason or its removal condition, a disposition outside A-F, a duplicate and a record out of canonical order are each a finding that names the file and the remedy. Reads the tree and git's index only; no build and no network. |
query | majordomus_shell_check | GET /api/v1/shell/check | majordomus shell check | behaviorally_verified | required | disabled |
| skills.explain One skill in full: its authored identity, status and provenance marker, each test that names it with the state of its latest recorded run and the command that reproduces it, its page, its doctrine and gates, every invocation by path and line, its standing and the findings about it. The file itself stays at `majordomus://skill/<id>`. |
query | majordomus_skill_explain | GET /api/v1/skills/explain | majordomus skills explain | behaviorally_verified | required | disabled |
| skills.status Every skill the index holds, each with the tests that name it and the evidence state of their latest runs, its page projection, the doctrine and gates that hold it, every invocation that references it, and the standing those derive: proven, partial, orphan, invalid, or not_required for a draft or deprecated skill. |
query | majordomus_skills | GET /api/v1/skills | majordomus skills status | behaviorally_verified | required | disabled |
| skills.verify Every finding over the skills: a file that breaks the skill contract, an active skill no test names or nothing invokes, a test whose latest run failed, a test or an invocation naming a skill that does not exist — each a failure — and evidence that is not current, a missing page or a missing gate, each a warning. |
query | majordomus_skills_verify | GET /api/v1/skills/verify | majordomus skills verify | 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 |
| worktree.trunk The checkout's `HEAD` and the local trunk branch, each counted against the remote-tracking trunk — commits behind and ahead, a merge in progress counting what it brings in — as of the last fetch, whose time is part of the answer; judged against the policy's `checkout.trunk_distance` as `current`, `lagging`, `stale`, `unjudged` (no threshold declared) or `unmeasured` (no remote trunk), with the commands that bring it current. What doctor renders and what `server.status` and the MCP instructions say about the tree a server serves (`project.a-checkout-serves-the-current-trunk`). Fetches nothing and writes nothing. |
query | majordomus_worktree_trunk | GET /api/v1/worktrees/trunk | majordomus worktree trunk | behaviorally_verified | required | disabled |
| worktree.uncommitted Every linked worktree whose index or working tree holds changes no commit carries: how many paths (staged, unstaged, untracked, conflicted), when the oldest change was made (the earliest modification time among the changed paths, the index file's standing in for a deleted one), and what holds the work — an active task record, an open episode that is not stranded, or a process whose working directory is inside. Work nothing holds and older than the threshold is `abandoned`, with the command that would put it on a remote `rescue/` ref; it is suggested, never run. The threshold is the policy's `session.stranded_after` unless `older_than` names another. Reads every worktree and writes none: every status runs without optional locks, so no index is refreshed. |
query | majordomus_worktree_uncommitted | GET /api/v1/worktrees/uncommitted | majordomus worktree uncommitted | 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.
| kind | format | front matter | schema | identity | objects |
|---|---|---|---|---|---|
| adr | markdown | required | majordomus.adr/v1.schema.json | id | 166 |
| application | markdown | required | majordomus.application/v1.schema.json | id | 5 |
| area | markdown | required | majordomus.area/v1.schema.json | id | 9 |
| audience | markdown | required | majordomus.audience/v1.schema.json | id | 8 |
| claim | yaml | none | majordomus.claim/v1.schema.json | id | 250 |
| command | yaml | none | majordomus.command/v1.schema.json | id | 31 |
| context | markdown | required | majordomus.context/v1.schema.json | id | 39 |
| critique | yaml | none | majordomus.critique/v1.schema.json | intent | 37 |
| deployment | yaml | none | majordomus.deployment/v1.schema.json | id | 1 |
| derive-offload | yaml | none | majordomus.derive-offload/v1.schema.json | id | 1 |
| distribution-model | yaml | none | majordomus.distribution/v1.schema.json | path | 1 |
| document | markdown | optional | majordomus.document/v1.schema.json | path | 353 |
| domain | markdown | required | majordomus.domain/v1.schema.json | id | 6 |
| feature | markdown | required | majordomus.feature/v1.schema.json | id | 29 |
| gap | yaml | none | majordomus.gap/v1.schema.json | intent | 5 |
| implementation | text | none | — | path | 52 |
| intent | yaml | none | majordomus.intent/v1.schema.json | id | 43 |
| issue | yaml | none | majordomus.issue/v1.schema.json | id | 1027 |
| knowledge | markdown | required | majordomus.knowledge/v1.schema.json | id | 58 |
| mesh-declaration | yaml | none | majordomus.mesh-declaration/v1.schema.json | id | 1 |
| milestone | yaml | none | majordomus.milestone/v1.schema.json | id | 111 |
| moment | markdown | required | majordomus.moment/v1.schema.json | id | 38 |
| policy | yaml | none | majordomus.policy/v1.schema.json | path | 1 |
| profile | yaml | none | majordomus.profile/v1.schema.json | name | 4 |
| project | yaml | none | majordomus.project/v1.schema.json | path | 0 |
| prompt | markdown | required | majordomus.prompt/v1.schema.json | name | 5 |
| release-record | yaml | none | majordomus.release/v1.schema.json | tag | 36 |
| rule | markdown | required | majordomus.rule/v1.schema.json | id@version | 190 |
| scope | yaml | none | majordomus.scope/v1.schema.json | path | 1 |
| session | markdown | required | majordomus.session-record/v1.schema.json | session_id | 91 |
| session-context | markdown | required | majordomus.session-context/v1.schema.json | session_id | 0 |
| skill | markdown | required | majordomus.skill/v1.schema.json | id | 8 |
| taxonomy | yaml | none | majordomus.taxonomy/v1.schema.json | id | 10 |
| telemetry | yaml | none | majordomus.telemetry/v1.schema.json | task_id | 0 |
| test | text | none | — | path | 652 |
| use-case | markdown | required | majordomus.use-case/v1.schema.json | id | 49 |
| workspace | yaml | none | majordomus.workspace/v1.schema.json | id | 1 |
Provider projections
The bootstraps the policy declares, rendered by majordomus generate providers and checked in CI. None of them is a source.
AGENTS.md← agents · file always loadedCLAUDE.md← claude-code · fileGEMINI.md← gemini · file.bb/AGENTS.md← bb · file
Objects of the layer
3319 objects, each an MCP resource. Grouped by kind; the path is where the object lives in the repository.
adr 166
adr-0001A Rust executable with a data-driven, read-only MCP surface over stdio.ai/repo/adrs/0001-rust-cli-and-stdio-mcp.mdadr-0002A canonical capability registry, with MCP, HTTP, OpenAPI, Swagger UI, the CLI and the reference as projections.ai/repo/adrs/0002-canonical-capability-registry.mdadr-0003One shared MCP server per repository, peers, and clients that start it themselves.ai/repo/adrs/0003-shared-mcp-server-peers-and-client-autostart.mdadr-0004One canonical declaration, composed modules, derived projections, and performance as evidence.ai/repo/adrs/0004-canonical-architecture-and-performance-truth.mdadr-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.mdadr-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.mdadr-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.mdadr-0008Use cases are executable canonical objects of the layer.ai/repo/adrs/0008-executable-use-cases.mdadr-0009Prompt capture happens below the model, or is reported as unavailable.ai/repo/adrs/0009-prompt-capture-happens-below-the-model.mdadr-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.mdadr-0011Every directory in the layer carries a contract.ai/repo/adrs/0011-every-directory-in-the-layer-carries-a-contract.mdadr-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.mdadr-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.mdadr-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.mdadr-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.mdadr-0016The scenario is a body section, not a header field.ai/repo/adrs/0016-the-scenario-is-a-body-section-not-a-header-field.mdadr-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.mdadr-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.mdadr-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.mdadr-0020The capability graph is composed, not centralised, and projected twice.ai/repo/adrs/0020-the-capability-graph-is-composed-not-centralised-and-projecte.mdadr-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.mdadr-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.mdadr-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.mdadr-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.mdadr-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.mdadr-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.mdadr-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.mdadr-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.mdadr-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.mdadr-0030A task owes obligations, and the evidence that discharges them goes stale.ai/repo/adrs/0030-a-task-owes-obligations-and-evidence-goes-stale.mdadr-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.mdadr-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.mdadr-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.mdadr-0035A checkout's server is one of the repository's, and its state is served like every other fact.ai/repo/adrs/0035-a-checkout-s-server-is-one-of-the-repository-s-and-its-state.mdadr-0036The design system is a typed declaration in the crate and every first-party surface consumes its projections.ai/repo/adrs/0036-the-design-system-is-a-typed-declaration-and-every-first-party-surface-consumes-its-projections.mdadr-0037A gate whose runner the repository cannot get on demand is planned on demand, so that the verdict arrives.ai/repo/adrs/0037-a-gate-whose-runner-is-scarce-is-planned-on-demand-so-that-the-verdict-arrives.mdadr-0038A scenario declares where it runs, and an obligation is a step.ai/repo/adrs/0038-a-scenario-declares-where-it-runs-and-an-obligation-is-a-ste.mdadr-0039Liveness is four rules, advisory until a scan can decide them.ai/repo/adrs/0039-liveness-is-four-rules-advisory-until-a-scan-can-decide-them.mdadr-0040Development semantics are capabilities of one runtime; every surface is a consumer.ai/repo/adrs/0040-development-semantics-are-capabilities-of-one-runtime.mdadr-0041Proof is a recorded execution, and inputs unchanged is not proven.ai/repo/adrs/0041-proof-is-a-recorded-execution-and-inputs-unchanged-is-not-proven.mdadr-0043Entering the repository brings its runtime up, through one bootstrap command the entry file calls.ai/repo/adrs/0043-entering-the-repository-brings-its-runtime-up.mdadr-0044Cooperation is repository-wide because the board is gathered, not because the server is shared.ai/repo/adrs/0044-cooperation-is-repository-wide-the-board-is-gathered-not-shared.mdadr-0046A working context is derived and a closed record is composed; neither is a document somebody must remember to write.ai/repo/adrs/0046-a-working-context-is-derived-and-a-closed-record-is-composed.mdadr-0047The session domain is typed, its identities are not interchangeable, and closing is exactly once.ai/repo/adrs/0047-the-session-domain-is-typed-and-its-identities-are-not-interchangeable.mdadr-0048A rule declares how it is enforced, and review is one of the three ways.ai/repo/adrs/0048-a-rule-declares-how-it-is-enforced-and-review-is-one-of-the-three.mdadr-0049The model catalogue is declarative data, and routing is an explainable projection of it.ai/repo/adrs/0049-the-model-catalogue-is-declarative-data-and-routing-is-an-ex.mdadr-0050Mesh peer discovery is provider-based observation with authenticated node identity.ai/repo/adrs/0050-mesh-peer-discovery-is-provider-based-observation-with-authe.mdadr-0051The minimum release version is measured from the public contract, and conventional commits are demoted to evidence.ai/repo/adrs/0051-the-minimum-release-version-is-measured-from-the-public-contract.mdadr-0052The session lifecycle is the episode's, not the task's.ai/repo/adrs/0052-the-session-lifecycle-is-the-episodes-not-the-tasks.mdadr-0053An identity is allocated above the high-water mark, and a collision is refused on the branch.ai/repo/adrs/0053-an-identity-is-allocated-above-the-high-water-mark-and-a-collision-is-refused-on-the-branch.mdadr-0054A commit message is a judged value, not a convention and not a prompt.ai/repo/adrs/0054-a-commit-message-is-a-judged-value-not-a-convention-and-not-a-prompt.mdadr-0055Disk is the fifth self-accumulating quantity — build output is reclaimed by predicate and a build is bounded before it starts.ai/repo/adrs/0055-disk-is-the-fifth-quantity-reclaimed-by-predicate-and-bounded-before-a-build.mdadr-0056Every object of the layer has a derived address, both directions of every relation, and a declared place of publication.ai/repo/adrs/0056-every-object-of-the-layer-has-a-derived-address-both-directi.mdadr-0059The mesh is on for this repository, and every session start holds it.ai/repo/adrs/0059-the-mesh-is-on-for-this-repository-and-every-session-start-h.mdadr-0061A gate's verdict is evidence, and a rule the repository enforces itself is proven by it.ai/repo/adrs/0061-a-gate-s-verdict-is-evidence-and-a-rule-the-repository-enfor.mdadr-0062A verification is proved against a commit, and two attempts that disagree are not proof.ai/repo/adrs/0062-a-verification-is-proved-against-a-commit-and-two-attempts-t.mdadr-0063A peer's uncommitted work is part of its claim, and a commit that carries it is refused.ai/repo/adrs/0063-a-peer-s-uncommitted-work-is-part-of-its-claim-and-a-commit-.mdadr-0064A declared tool has a version, and a mismatch is a finding.ai/repo/adrs/0064-a-declared-tool-has-a-version-and-a-mismatch-is-a-finding.mdadr-0066Entry reports a verdict per claim and the evidence behind it, from one preflight value.ai/repo/adrs/0066-entry-reports-a-verdict-per-claim-and-the-evidence-behind-it.mdadr-0067Mesh cooperation is authenticated links between runtimes and one replicated journal folded the same way everywhere.ai/repo/adrs/0067-mesh-cooperation-is-authenticated-links-and-one-replicated-journal.mdadr-0068CI evidence is kept where the run happened, and published with the commit it proves.ai/repo/adrs/0068-ci-evidence-is-kept-where-the-run-happened-and-published-with-the-commit-it-proves.mdadr-0069A capability may be scripted, and repository automation is scripted capabilities rather than shell.ai/repo/adrs/0069-a-capability-may-be-scripted.mdadr-0070An intent is a typed record, and its stage and satisfaction are derived from the plan and the evidence.ai/repo/adrs/0070-intent-is-a-typed-record-and-satisfaction-is-derived-from-evidence.mdadr-0071A feature exists only when its delivery is computed and every dimension passes.ai/repo/adrs/0071-a-feature-exists-only-when-delivery-is-computed-and-every-dimension-passes.mdadr-0073An issue names the intent criterion it serves, and the coverage of every criterion is derived from the plan.ai/repo/adrs/0073-an-issue-names-the-intent-criterion-it-serves-and-coverage-is-derived.mdadr-0075Which work realises an intent is a join over the records the lifecycle already keeps, and closed work does not outrank evidence.ai/repo/adrs/0075-intent-realization-is-a-join-and-closed-work-does-not-outrank-evidence.mdadr-0076A skill is a capability only when something proves it — tested, documented, enforced and used are derived, never authored.ai/repo/adrs/0076-a-skill-is-a-capability-only-when-something-proves-it.mdadr-0077Published content may be written in the reader's language; the repository's own artifacts may not.ai/repo/adrs/0077-published-content-may-be-written-in-the-readers-language.mdadr-0080A CI run reaches the tracked ledger through a recording branch, never through the run that produced it.ai/repo/adrs/0080-a-recorded-run-reaches-the-tracked-ledger-through-a-recording-branch.mdadr-0082Token economics are measured from matched runs and published only past a declared rule.ai/repo/adrs/0082-token-economics-are-measured-from-matched-runs-and-published-only-past-a-declared-rule.mdadr-0085The version is authored once, in the crate manifest, and shipped to the shell tool as a generated projection.ai/repo/adrs/0085-the-version-is-authored-once-and-shipped-as-a-projection.mdadr-0086The crate's rustdoc is a published web surface at /rustdoc, produced by the invocation its gate proves and verified at the public URL.ai/repo/adrs/0086-the-crates-rustdoc-is-a-published-surface-produced-by-its-gate-and-verified-live.mdadr-0087Evidence is indexed by subject and judged at the presented revision.ai/repo/adrs/0087-evidence-is-indexed-by-subject-and-judged-at-the-presented-revision.mdadr-0088A dashboard is a projection of capabilities, and every card names the answer it was read from.ai/repo/adrs/0088-a-dashboard-is-a-projection-of-capabilities-and-every-card-names-its-source.mdadr-0089An interface shows only what is derived, and unknown is never drawn as healthy.ai/repo/adrs/0089-an-interface-shows-only-what-is-derived-and-unknown-is-never-healthy.mdadr-0091Knowledge is derived at the episode boundary, from the ledger and git, and a person promotes it.ai/repo/adrs/0091-knowledge-is-derived-at-the-episode-boundary-and-a-person-promotes-it.mdadr-0097A plan stamp carries the seal of its event, because the ledger never leaves the checkout.ai/repo/adrs/0097-a-plan-stamp-carries-the-seal-of-its-event.mdadr-0098Reasoning is provider-independent, advisors are optional, and review is a recorded fact rather than a claim.ai/repo/adrs/0098-reasoning-is-provider-independent-advisors-are-optional-and-review-is-recorded.mdadr-0101Pull requests are integrated one at a time, each against a master observed a moment before.ai/repo/adrs/0101-pull-requests-are-integrated-one-at-a-time-against-the-current-master.mdadr-0103Every client gets an episode, and every provider capability cites its evidence.ai/repo/adrs/0103-every-client-gets-an-episode-and-every-provider-capability-cites-its-evidence.mdadr-0104The product is filed under a few domains, and a feature names its one.ai/repo/adrs/0104-the-product-is-filed-under-a-few-domains-and-a-feature-names-its-one.mdadr-0105A handover moves between machines as a signed record in a ref of its own, and is resumed only on a plan.ai/repo/adrs/0105-a-handover-moves-between-machines-as-a-signed-record-in-a-ref-of-its-own.mdadr-0107Completion discharges obligations and never decides whether an intent is satisfied.ai/repo/adrs/0107-completion-discharges-obligations-and-never-decides-whether-an-intent-is-satisfied.mdadr-0110MCP says nothing its capability does not.ai/repo/adrs/0110-mcp-says-nothing-its-capability-does-not.mdadr-0111A task names what it serves, and the binding is derived, pinned and never stored.ai/repo/adrs/0111-a-task-names-what-it-serves-and-the-binding-is-derived.mdadr-0118A session leaves what it observed, and the boundary keeps one routed candidate per defect.ai/repo/adrs/0118-a-session-leaves-what-it-observed-and-one-candidate-per-defect-is-routed.mdadr-0123The worker is asked for a handover before the context window fills, by a provider mod the policy switches.ai/repo/adrs/0123-the-worker-is-asked-for-a-handover-before-the-window-fills.mdadr-0124An uploaded prompt pack is a provenance-tracked input artifact, not a second intent model.ai/repo/adrs/0124-an-uploaded-prompt-pack-is-a-provenance-tracked-input-artifa.mdadr-0126A caller beyond loopback reads, and changes nothing it cannot authenticate.ai/repo/adrs/0126-a-caller-beyond-loopback-reads-and-changes-nothing-it-cannot-authenticate.mdadr-0129A train of stacked pull requests lands in one run of the required check, each link on the verdict its head already has.ai/repo/adrs/0129-a-train-of-pull-requests-lands-in-one-run-of-the-required-check.mdadr-0131A release publishes its metadata to the site before its record lands, and the site never goes back a release.ai/repo/adrs/0131-a-release-publishes-its-metadata-before-its-record-lands.mdadr-0133Everything that happens in the repository is followed in one stream, folded and addressed.ai/repo/adrs/0133-everything-is-followed-in-one-stream.mdadr-0134The next version is allocated at landing, by the integration executor, from the trunk's version and the change's measured impact under a typed policy floor.ai/repo/adrs/0134-the-version-is-allocated-at-landing.mdadr-0135`majordomus ui` is the primary surface, and the Cockpit is the technical layer beneath it.ai/repo/adrs/0135-majordomus-ui-is-the-primary-surface.mdadr-0136Every session briefs itself on an interval, from one capability a provider mod the policy switches keeps in front of it.ai/repo/adrs/0136-every-session-briefs-itself-on-an-interval.mdadr-0138A train of pull requests is a typed object that can be seen.ai/repo/adrs/0138-a-train-of-pull-requests-is-a-typed-object-that-can-be-seen.mdadr-0139Worktrees share what cargo compiles on the way, and keep their own finished artifacts.ai/repo/adrs/0139-worktrees-share-what-cargo-compiles-on-the-way-and-keep-thei.mdadr-0140Editors and agents read projections of the layer, and cargo embeds none of it.ai/repo/adrs/0140-editors-and-agents-read-projections-of-the-layer-and-cargo-e.mdadr-0141The UI is published as a snapshot read at one commit, and a publication never pretends to be a process.ai/repo/adrs/0141-the-ui-is-published-as-a-snapshot-read-at-one-commit.mdadr-0142No screen waits for a source: a page shows the latest reading with its age, and the reading catches up behind it.ai/repo/adrs/0142-no-screen-waits-for-a-source.mdadr-0144An intent is proposed by a capability, and its stage stays derived.ai/repo/adrs/0144-an-intent-is-proposed-by-a-capability-and-its-stage-stays-derived.mdadr-0145A personal layer changes nothing shared: it is covered by git's own exclude file, checked where it is claimed, and handed to the team by one command.ai/repo/adrs/0145-a-personal-layer-changes-nothing-shared.mdadr-0146A capability is invoked by name through a generated skill.ai/repo/adrs/0146-a-capability-is-invoked-by-name-through-a-generated-skill.mdadr-0147The Cockpit is published as a snapshot by the exporter that reads the UI, and two snapshots link only the pages each holds.ai/repo/adrs/0147-the-cockpit-is-published-as-a-snapshot-by-the-exporter-that-reads-the-ui.mdadr-0149A handbook edition is a declared locale tree, built from the tree it describes.ai/repo/adrs/0149-a-handbook-edition-is-a-declared-locale-tree-built-from-the-tree-it-describes.mdadr-0152A diagram and a chart on the site are one viewer each, over what the build derived: interactive, linkable, and linked by inference.ai/repo/adrs/0152-a-diagram-and-a-chart-on-the-site-are-one-viewer-each-over-w.mdadr-0155An expedited landing is the owner's word, judged on the merged tree, and never reaches a tag.ai/repo/adrs/0155-an-expedited-landing-is-the-owners-word.mdadr-0157A mesh node may offer a shared build cache, peers discover and select it, and compilation never depends on it.ai/repo/adrs/0157-the-mesh-offers-a-shared-build-cache.mdadr-0158The Observatory is one screen of the UI, and it draws only what was observed.ai/repo/adrs/0158-the-observatory-draws-only-what-was-observed.mdadr-0160The kiosk draws what the repository proves, from the sources that already answer it, and draws it with p5 only where the build has it.ai/repo/adrs/0160-the-kiosk-draws-what-the-repository-proves.mdadr-0161A mesh node follows the published release, through the one installer, forward only.ai/repo/adrs/0161-a-mesh-node-follows-the-published-release.mdadr-0163A server serves only a share of its own version, with the surfaces it offers.ai/repo/adrs/0163-a-server-serves-only-a-share-of-its-own-version.mdadr-0164A durable record names the session that wrote it, and relates a task only when the task is that session's.ai/repo/adrs/0164-a-record-names-the-session-that-wrote-it.mdadr-0165A skill is derived for every domain of the registry and shown wherever skills are.ai/repo/adrs/0165-a-skill-is-derived-for-every-domain-of-the-registry.mdadr-0166The plan's surfaces are inferred from delivery, and nothing the plan shows is typed beside it.ai/repo/adrs/0166-the-plan-surfaces-are-inferred-from-delivery.mdadr-0167Work moves through seats on the mesh, lands in combined tops, and every checkout is kept current.ai/repo/adrs/0167-work-moves-through-seats-on-the-mesh-and-lands-in-combined-tops.mdadr-0169What an adoption leaves behind is measured, not remembered.ai/repo/adrs/0169-what-an-adoption-leaves-behind-is-measured-not-remembered.mdadr-0170A browser computes with the portable core, and the server verifies by recomputing.ai/repo/adrs/0170-a-browser-computes-and-the-server-verifies-by-recomputing.mdadr-0172A client always gets a server, and a session that is opened starts by joining the cluster.ai/repo/adrs/0172-a-client-always-gets-a-server-and-a-session-starts-by-joining.mdadr-0175v1.0.0-alpha.1 declares what it can do and its limits, and every line of the declaration names its proof.ai/repo/adrs/0175-v1-0-0-alpha-1-declares-what-it-can-do-and-its-limits.mdadr-0176The peer blackboard is one projection of the board, the journal and the monitor, pushed over one socket.ai/repo/adrs/0176-the-blackboard-is-one-projection-pushed-over-one-socket.mdadr-0180A prompt pack is a campaign: kept as received, indexed as a kind, and cited by the records it drove.ai/repo/adrs/0180-a-prompt-pack-is-a-campaign-kept-as-received-indexed-as-a-kind-a.mdadr-0181An episode records the governance and the briefing it was handed, each by one digest.ai/repo/adrs/0181-an-episode-records-the-governance-and-the-briefing-it-was-handed.mdadr-0182A closed session record is judged by what it can attribute, not only by its schema.ai/repo/adrs/0182-a-closed-session-record-is-judged-by-what-it-can-attribute-not-o.mdadr-0183Evolution is scheduled at the episode boundary and carried out by a session; nothing promotes itself.ai/repo/adrs/0183-evolution-is-scheduled-at-the-episode-boundary-and-carried-out-b.mdadr-0184Every command name is implemented by exactly one executable, and the other only delegates.ai/repo/adrs/0184-every-command-name-is-implemented-by-exactly-one-executable-and.mdadr-0185A derivation is a typed graph of the generators the executable already plans, keyed by the content of what each node reads, and the full derive stays its oracle.ai/repo/adrs/0185-a-derivation-is-a-typed-graph-of-the-generators-the-executable-a.mdadr-0186A pull request's required verdict is the feedback lane, a gate whose inputs did not change is reused as inputs_unchanged, and the proof lane judges the combined top before it lands.ai/repo/adrs/0186-a-pull-request-s-required-verdict-is-the-feedback-lane-a-gate-wh.mdadr-0187Tests are selected by the impact of a change, derived from what each case declares it reads, and a change of unknown impact runs every case.ai/repo/adrs/0187-tests-are-selected-by-the-impact-of-a-change-derived-from-what-e.mdadr-0188A rule's proof of effect is a recorded refusal of its violation, not the presence of its wiring.ai/repo/adrs/0188-a-rule-s-proof-of-effect-is-a-recorded-refusal-of-its-violation.mdadr-0189JUnit and Cobertura are formats evidence is imported from and exported to; the tracked ledger stays the only store.ai/repo/adrs/0189-junit-and-cobertura-are-formats-evidence-is-imported-from-and-ex.mdadr-0190Mutation testing is scheduled evidence over declared critical predicates, never a gate on every change.ai/repo/adrs/0190-mutation-testing-is-scheduled-evidence-over-declared-critical-pr.mdadr-0191A plan drafted from an intent is a proposal, checked by the plan's own validators before any record is written.ai/repo/adrs/0191-a-plan-drafted-from-an-intent-is-a-proposal-checked-by-the-plan.mdadr-0192Replanning is bounded, idempotent and never weakens its intent.ai/repo/adrs/0192-replanning-is-bounded-idempotent-and-never-weakens-its-intent.mdadr-0193Conflicting evidence keeps the verdict vocabulary: the criterion reads unknown and cites both sides.ai/repo/adrs/0193-conflicting-evidence-keeps-the-verdict-vocabulary-the-criterion.mdadr-0194An ingested brief is an intake revision, and its requirements are reconciled into the existing plan.ai/repo/adrs/0194-an-ingested-brief-is-an-intake-revision-and-its-requirements-are.mdadr-0195What accepting an issue unblocks is answered by one counterfactual evaluator over the plan graph.ai/repo/adrs/0195-what-accepting-an-issue-unblocks-is-answered-by-one-counterfactu.mdadr-0196Delivery latency targets are budgets of benchmark policy, measured per phase, and never a correctness gate on runners the repository does not own.ai/repo/adrs/0196-delivery-latency-targets-are-budgets-of-benchmark-policy-measure.mdadr-0197The backlog is bounded by a declared bound that every session reads at start, and the bound reports rather than refuses.ai/repo/adrs/0197-the-backlog-is-bounded-by-a-declared-bound-that-every-session-re.mdadr-0198Delivery is judged by verified outcomes landed per day, with lead time p95 as its control, never by commits, pull requests or sessions.ai/repo/adrs/0198-delivery-is-judged-by-verified-outcomes-landed-per-day-with-lead.mdadr-0199A hub is a declared host service; a working checkout's server stays a client's child.ai/repo/adrs/0199-a-hub-is-a-declared-host-service-a-working-checkout-s-server-sta.mdadr-0200Supervision repairs only what is idempotent, owned and verified, and never restarts blindly.ai/repo/adrs/0200-supervision-repairs-only-what-is-idempotent-owned-and-verified-a.mdadr-0201The persistent runtime is the authority; every operator surface, Lumen included, is a client of it.ai/repo/adrs/0201-the-persistent-runtime-is-the-authority-every-operator-surface-l.mdadr-0202The mesh routes work to an identity, never an address, and selects among proven transports instead of implementing NAT traversal.ai/repo/adrs/0202-the-mesh-routes-work-to-an-identity-never-an-address-and-selects.mdadr-0203GitHub Pages is a signed bootstrap anchor for the mesh, never its signalling channel.ai/repo/adrs/0203-github-pages-is-a-signed-bootstrap-anchor-for-the-mesh-never-its.mdadr-0204The hub is reached privately over the tailnet first; a public ingress is a deployment target, never an application change.ai/repo/adrs/0204-the-hub-is-reached-privately-over-the-tailnet-first-a-public-ing.mdadr-0205What a runtime can do is a set of separately evidenced facts, and detection never authorises.ai/repo/adrs/0205-what-a-runtime-can-do-is-a-set-of-separately-evidenced-facts-and.mdadr-0206Public outreach begins only after a stranger has finished a first task unaided.ai/repo/adrs/0206-public-outreach-begins-only-after-a-stranger-has-finished-a-firs.mdadr-0207A new mechanism is admitted only with the measured problem it removes.ai/repo/adrs/0207-a-new-mechanism-is-admitted-only-with-the-measured-problem-it-re.mdadr-0208The product's value is stated as the false dones its finish caught, beside the friction it cost.ai/repo/adrs/0208-the-product-s-value-is-stated-as-the-false-dones-its-finish-caug.mdadr-0209Prismatic Lumen names the owner's mesh-wide view, and it owns no scheduler, event bus, store or API.ai/repo/adrs/0209-prismatic-lumen-names-the-owner-s-mesh-wide-view-and-it-owns-no.mdadr-0210The sentence that says what Majordomus is has one declaration, and every surface reads it.ai/repo/adrs/0210-the-sentence-that-says-what-majordomus-is-has-one-declaration-an.mdadr-0211A record promoted from a workspace cites the message it came from by a typed reference that validates in every checkout and resolves only where the store is held.ai/repo/adrs/0211-a-record-promoted-from-a-workspace-cites-the-message-it-came-fro.mdadr-0212A workspace is read in the operator's own signed-in browser or from the vendor's export, never through a launched automation profile or another tool's credential.ai/repo/adrs/0212-a-workspace-is-read-in-the-operator-s-own-signed-in-browser-or-f.mdadr-0213Usage is observed through each provider's official telemetry into one provider-neutral record, and reported, estimated and billed amounts are never merged.ai/repo/adrs/0213-usage-is-observed-through-each-provider-s-official-telemetry-int.mdadr-0214A provider's native extension points carry the contract as generated projections; Majordomus neither embeds nor patches the worker's runtime.ai/repo/adrs/0214-a-provider-s-native-extension-points-carry-the-contract-as-gener.mdadr-0215A phone is the baseline width of every first-party surface, and the primary flow is accepted there before a surface grows.ai/repo/adrs/0215-a-phone-is-the-baseline-width-of-every-first-party-surface-and-t.mdadr-0216Every live surface follows one channel with named follow streams, and nothing polls where a stream exists.ai/repo/adrs/0216-every-live-surface-follows-one-channel-with-named-follow-streams.mdadr-0217A change is reconciled by the modules that own its state: hooks only sense, reconciliation is derived on read and says how each join is known, a private read stays on its machine, and verified is answered only by proof.ai/repo/adrs/0217-a-change-is-reconciled-by-the-modules-that-own-its-state-hooks-o.mdadr-0218Every language of the site is derived from the English build and a translation memory.ai/repo/adrs/0218-every-language-of-the-site-is-derived-from-the-english-build-and-a-translation-memory.mdadr-0219A deployment names the provider that hosts it, and every provider file is derived from it.ai/repo/adrs/0219-a-deployment-names-its-provider-and-every-provider-file-is-derived.mdadr-0220A hosted server is a rendezvous only over TLS, with its key held as a secret and the mesh read only by those it trusts.ai/repo/adrs/0220-a-hosted-server-is-a-rendezvous-only-over-tls-with-its-key-held-as-a-secret.mdadr-0221Init declares the mesh, closed until a machine is enrolled.ai/repo/adrs/0221-init-declares-the-mesh-closed-until-a-machine-is-enrolled.mdadr-0223A deployment carries the site built at its own commit, and the hosted server serves it at /docs.ai/repo/adrs/0223-a-deployment-carries-the-site-built-at-its-own-commit.mdadr-0224No ordinary command builds; a missing or stale executable fails fast or answers through a release of the same generation, and only an explicit build builds.ai/repo/adrs/0224-no-ordinary-command-builds.mdadr-0226A session joins the cluster before it works — current, announced and useful — and the repository says when it has not.ai/repo/adrs/0226-a-session-joins-the-cluster-before-it-works.md
application 5
ci-gated-projectA project where CI decides what is acceptable.ai/repo/applications/ci-gated-project.mdlong-running-workWork that outlives the session doing it.ai/repo/applications/long-running-work.mdrepository-opened-in-ai-clientsA repository opened in AI clients, not only by people.ai/repo/applications/repository-opened-in-ai-clients.mdrepository-with-authored-governanceA repository whose rules were written by people.ai/repo/applications/repository-with-authored-governance.mdseveral-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.mdcoordinationCoordination and ownership.ai/repo/why/areas/coordination.mdcostModel, effort and cost.ai/repo/why/areas/cost.mddecisionsDecisions.ai/repo/why/areas/decisions.mddocumentationDocumentation and drift.ai/repo/why/areas/documentation.mdgovernanceRules and governance.ai/repo/why/areas/governance.mdobservabilityObservability.ai/repo/why/areas/observability.mdverificationVerification and evidence.ai/repo/why/areas/verification.mdwork-trackingWork and its state.ai/repo/why/areas/work-tracking.md
audience 8
agencyAgency or consultancy.ai/repo/why/audiences/agency.mdai-native-teamAI-native development team.ai/repo/why/audiences/ai-native-team.mdengineering-leadEngineering lead.ai/repo/why/audiences/engineering-lead.mdenterpriseEnterprise engineering.ai/repo/why/audiences/enterprise.mdopen-source-maintainerOpen-source maintainer.ai/repo/why/audiences/open-source-maintainer.mdplatform-teamPlatform and developer productivity team.ai/repo/why/audiences/platform-team.mdresearch-teamResearch and experimental engineering.ai/repo/why/audiences/research-team.mdsolo-builderSolo builder.ai/repo/why/audiences/solo-builder.md
claim 250
a-candidate-is-routed-by-what-it-is-aboutEvery candidate derived from an observation carries a route — platform, enforcement, generator, documentation or project — derived from its subject's structure and never from its wording, and in a repository that adopted the tool its own share/ routes projectdocs/CLAIMS.yamla-diagram-is-named-linked-and-addressableEvery Mermaid diagram of the built site gets an id (diagram-<name>), the list of its nodes, the viewer's controls and a link for each node that is the identity of an object the site has a page for, all derived at build; a link todocs/CLAIMS.yamla-finding-names-how-to-see-it-againEvery finding a command reports names the command that reproduces itdocs/CLAIMS.yamla-session-records-what-it-observedknowledge observe records one observation.recorded ledger line with its kind, subject, statement and typed evidence references, inside an open episode, inside a task or outside one, and refuses any other shape, or the absence of an episode, without writingdocs/CLAIMS.yamla-skipped-case-is-not-a-proofA test case that declines to run is reported as a skip and recorded as one, so the evidence ledger can never read a case that asserted nothing as the proof of the claim it namesdocs/CLAIMS.yamladr-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.yamladr-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.yamladr-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.yamladvertised-install-command-worksThe install command this project advertises is fetched and run from the published site every night and on request, and the run that asked for it is red while it does not install a working tooldocs/CLAIMS.yamladvice-is-weighed-not-countedAdvisors that disagree never decide by count: a conclusion is refused while a disagreement on its assessment is unsettled, a resolution needs evidence, and every answer received must be weigheddocs/CLAIMS.yamladvisor-failure-is-recorded-and-recoversAn advisor that times out, is rate limited, refuses its credential or answers malformed is recorded as exactly that, never blocks the work, opens a circuit that closes again after its cooldown, and never fails the sessiondocs/CLAIMS.yamladvisor-transports-share-one-contractEvery advisor transport is held to one contract — typed failures, deadlines, cancellation, normalised answers, reported usage, redacted secrets — proven against fakes with no network, model or credentialdocs/CLAIMS.yamladvisors-are-declared-onceAdvisors are declared once, in share/advisors.yaml, by reference to the provider table and the model catalogue; a new advisor reaches the command line, the policy, HTTP, OpenAPI, MCP and the Cockpit with no consumer editeddocs/CLAIMS.yamlai-layer-manifestThe repository's AI layer is one directory whose manifest names every section, readable without the tooldocs/CLAIMS.yamlan-observation-becomes-a-grouped-candidateEach observation an episode recorded becomes, at that episode's end and with no model, a candidate of its own that says what it is about, and knowledge candidates groups the records about one subject with the episodes behind them; an episode that observed nothing records that it found nothingdocs/CLAIMS.yamlarchive-fidelityAn archive that lost the file modes fails rather than travellingdocs/CLAIMS.yamlauthored-files-are-englishEvery authored file in this repository is spelled in English, and a proper noun, a test fixture or a published translation that is not carries its reason beside the checkdocs/CLAIMS.yamlbenchmark-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.yamlblocker-storeAn entry in the questions store that does not parse blocks acceptance exactly as an unresolved question doesdocs/CLAIMS.yamlblocker-survives-handoverA blocking question keeps blocking after the work is handed to a new taskdocs/CLAIMS.yamlbootstrap-chainProvider instruction files are thin bootstraps that point at the AI layer and carry no rule of their owndocs/CLAIMS.yamlbriefing-names-candidatesThe start briefing names the candidates awaiting review on this branch, count and ids, bounded and within the briefing budget, and prints their absence rather than omitting itdocs/CLAIMS.yamlcandidates-reviewed-not-accumulatedMore candidates than the policy cap, or a candidate older than the policy age, is an advisory doctor finding that names them; both numbers are declared once in the policydocs/CLAIMS.yamlcapability-classA profile names a capability class rather than a vendor modeldocs/CLAIMS.yamlcapability-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.yamlcapability-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.yamlcatalogue-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.yamlcheckpoint-intervalA profile sets how often a worker should checkpoint, and a stale task is reporteddocs/CLAIMS.yamlcheckpoint-recordA checkpoint is a capped progress record with computed identity, and a body over the cap is refused rather than truncateddocs/CLAIMS.yamlci-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.yamlci-verdictThe verdict status 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.yamlci-verdict-is-requiredNo pull request can be merged into the default branch while the verdict status is red, because a branch rule requires itdocs/CLAIMS.yamlcli-documentation-executableEvery command of the Rust executable's command line carries a summary, help on every argument and, where it runs, at least one example, the root carries a long description, and every example shown to a reader is executed against the built executabledocs/CLAIMS.yamlcockpit-is-a-projection-of-the-registryA capability added to the registry appears in the Cockpit's listing, navigation and search and on a page of its own with a form generated from its schema, without one line of the Cockpit being editeddocs/CLAIMS.yamlcommand-coverageEvery public command has a behavioural test and a negative test, computed rather than remembereddocs/CLAIMS.yamlcommand-surfaceThe public command surface is declared, and reconciled against the dispatcherdocs/CLAIMS.yamlcommit-message-is-judgedA commit message that does not satisfy the repository's declared commit policy is refused at the moment it is written, and the history's existing debt is recorded and may not growdocs/CLAIMS.yamlcommit-plan-is-refusableA commit plan carries a fingerprint of the repository, the worktree, HEAD and the exact change set it was derived from, so a plan acted on after the tree moved is refused with the reason rather than applieddocs/CLAIMS.yamlcommit-scopes-are-learnedThe scope vocabulary a commit is judged against is learned from this repository's own history rather than kept in a table, so a subsystem committed today is in the vocabulary today and a scope outside it is a warning rather than a refusaldocs/CLAIMS.yamlconnection-episodeA client with no provider hooks gets an execution episode from the MCP connection, resumes its own after a crash, and never has its prompt claimed to be captureddocs/CLAIMS.yamlconsistency-checkcheck reports whether state, scope, blockers and checkpoint age are consistent right nowdocs/CLAIMS.yamlcontext-assemblyThe context a worker is given is assembled from durable state in authority order, and what a profile excludes is excludeddocs/CLAIMS.yamlcontext-budgetThe always-loaded instruction file has a line budget with a failing checkdocs/CLAIMS.yamlcontext-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.yamlcontext-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.yamlcontext-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.yamlcontext-selection-budgetThe assembled context obeys a line budget, and every section it drops is named with its reasondocs/CLAIMS.yamlcontext-selection-countedWhat the context compiler selects, out of what it judged relevant, is counted in tokens of a named tokenizer and recorded, never estimateddocs/CLAIMS.yamlcontinuity-reachableEvery continuity store is proven reachable through its own command, not merely present on diskdocs/CLAIMS.yamlcost-per-outcomeCost per accepted outcome will be reported from measured data onlydocs/CLAIMS.yamldag-validationA cycle, a self-dependency and a dependency on an issue that does not exist are each refused by namedocs/CLAIMS.yamldecision-attributionA decision record without a task, a head and a reason is reported, and does not blockdocs/CLAIMS.yamldecision-recordA decision is recorded with its reason and its task, and is superseded by a later entry rather than editeddocs/CLAIMS.yamldeployment-contract-refuses-by-nameA deployment object that breaks its closed contract, whether by a key the contract does not have, another schema version, a missing field, an interface, port, machine count or health route that could not work, a provider the contract does not know or a provider address that is not https, a value that reads as a credential or an identity two files claim, is refused by doctor with the reason nameddocs/CLAIMS.yamlderivation-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.yamlderived-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.yamlderived-not-declaredWhat the tool knows about itself is written once and derived everywhere else, and a second copy is a test failuredocs/CLAIMS.yamldispatcher-wiringWiring is found in a hook or in any subhook of the directory that hook dispatches todocs/CLAIMS.yamldistribution-canonical-modelEvery platform, artifact name and installation URL is derived from one model, and a projection that disagrees with it is refuseddocs/CLAIMS.yamldivergence-labelState read back is labelled exact, advanced, diverged or different_context against gitdocs/CLAIMS.yamldoctrine-class-decidesA doctrine's class is what decides whether a violation stops the command, not a label beside itdocs/CLAIMS.yamldoctrine-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.yamldrift-watchwatch reports policy, projection, state, scope, handover, verification, staleness and retention driftdocs/CLAIMS.yamleconomics-claims-gatedA quantity about tokens, context or cost typed into hand-written prose is refused, and a claim bound to a metric cannot be guaranteed while its evidence does not standdocs/CLAIMS.yamleffort-escalationEscalating reasoning effort after repeated blocked attempts is recorded rather than assumeddocs/CLAIMS.yamlevent-vocabularyThe ledger's event vocabulary is closed, on the way in and on the way outdocs/CLAIMS.yamlevidence-a-crate-binary-that-ran-nothing-is-not-a-passA crate test binary that ran no test or only a filtered subset is recorded as a skip, one with a failed test as a failure and one that printed no result as an error, whatever colour codes its output carries, and what no claim can name yet is listed as droppeddocs/CLAIMS.yamlevidence-a-failure-outranks-an-absenceA rule with a failing test reads failing whatever its other tests say, so a blocking rule whose tests are one failing and one not run is still a findingdocs/CLAIMS.yamlevidence-a-recording-is-a-typed-runEvery recording yields a run record naming its commit, the tree each report's run measured, its totals and what was absent, dropped or unknown, and a coverage summary joins it only bound to the commit and tree it was measured ondocs/CLAIMS.yamlevidence-a-skip-is-not-runA test that declined to run reads not_run with a detail saying it declined, never proven and never failing, and a test that errored or timed out reads failingdocs/CLAIMS.yamlevidence-currency-is-not-collapsedA run recorded against this commit and a run whose inputs merely have not changed since are reported as different states, never as onedocs/CLAIMS.yamlevidence-gates-doneAn issue cannot be completed while a required piece of evidence is missingdocs/CLAIMS.yamlevidence-judged-at-the-presented-revisionA claim reads proven only when its passing run was recorded on a commit the presented revision contains, nothing but the evidence ledger changed between the two, and neither the recorded tree nor the presented tree was dirty; a run on a commit the presented revision does not contain reads stale; a named revision is judged by the ledger committed in it, and a clean failing run of the same test that the checkout holds uncommitted, recorded between the two, caps it at staledocs/CLAIMS.yamlevidence-local-recording-stays-localA recording made with --ledger local writes only the ignored local ledger, changes no tracked file and moves no verdictdocs/CLAIMS.yamlevidence-navigates-both-waysEvery claim names the test meant to settle it and every test names the claims it is meant to settle, from one derivationdocs/CLAIMS.yamlevidence-partial-run-preserves-the-restRecording one test's result never erases the evidence recorded for any other testdocs/CLAIMS.yamlevidence-proof-is-an-executionA claim's proof is an execution that was recorded with the commit it ran against, not a test path that resolvesdocs/CLAIMS.yamlevidence-recorded-in-ciCI records every test it ran with the commit and the run it happened in, and the site publishes the tracked ledger's verdict at that commit as current only when CI's run of the published commit measured clean trees and nothing was absent, refused or failed; otherwise as stale with its distance or its failures, as unknown with its reasons, or as unavailable with the reasondocs/CLAIMS.yamlevidence-subject-commands-agree-with-the-command-pagesThe behavioural and negative tests the subject index names for a command are exactly the ones its command page lists, both read from the first coverage and negative header of each casedocs/CLAIMS.yamlevidence-subjects-are-derivedEvery claim, rule, feature, command, capability, MCP tool and use case the repository declares is an evidence subject whose members and tests are derived from declarations that already exist, and a committed subject index that differs from that derivation is refuseddocs/CLAIMS.yamlevidence-tree-is-measured-by-the-runA recorded execution carries the commit and the tree that its run's own measurement stated, a measurement that names the report it belongs to and never hides a tracked change; a measurement of another commit or another report is refused, a local measurement that names no report is refused, a CI report without a measurement is refused, and a report recorded without one carries an unknown tree, which never reads provendocs/CLAIMS.yamlevidence-unsupported-guarantee-is-reportedA claim that declares a guarantee no recorded run supports is named by a gate rather than displayed as guaranteeddocs/CLAIMS.yamlexecutable-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.yamlexecution-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.yamlexecution-wavesExecution waves are computed from the graph, and issues in one wave that touch the same paths are reported as serialiseddocs/CLAIMS.yamlexit-code-contractExit codes are a contract, and no code means "warn and continue"docs/CLAIMS.yamlfinish-contractfinish evaluates the finish contract line by line and refuses when any line is unmetdocs/CLAIMS.yamlfinish-refusal-is-recordedevery refused finish appends a task.refused event naming the outcome claimed, the unmet count and the doctrines that refused, and finish --check writes nonedocs/CLAIMS.yamlgenerated-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.yamlgenerated-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.yamlgit-identityIdentity fields on every state record are computed from git and never authoreddocs/CLAIMS.yamlgithub-projectionGitHub milestones and issues are generated from the canonical model, and a hand-edited generated region is reported rather than overwrittendocs/CLAIMS.yamlgithub-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.yamlhandover-recordhandover writes an append-only record with computed front matter and required sectionsdocs/CLAIMS.yamlhistory-ledger-readThe ledger is readable back as operational history, filtered by task, event and timedocs/CLAIMS.yamlhot-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.yamlinit-refusesInstalling into a repository that already has an installation is refuseddocs/CLAIMS.yamlinstall-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.yamlinstaller-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.yamlintent-closes-github-milestonesA milestone will be closed on GitHub only once the intents it realises are satisfieddocs/CLAIMS.yamlintent-cockpit-pagesThe Cockpit shows every intent with its derived stage at /cockpit/intents, and one intent's criteria, evidence, serving issues and realising work at /cockpit/intents/<id>docs/CLAIMS.yamlintent-command-deployment-evidenceA criterion settled by a command or by a deployment will be met by recorded evidencedocs/CLAIMS.yamlintent-criteria-coveredOnce work exists under an intent, a criterion no issue serves, an issue under its milestones that serves nothing and a link to a criterion that does not exist are each refused by namedocs/CLAIMS.yamlintent-in-session-contextA task that names the issue or the intent it serves is briefed with what that intent asks of the work, and a handover tells the next worker when the intent moveddocs/CLAIMS.yamlintent-links-resolveAn intent whose criterion names evidence that resolves to nothing is refused by namedocs/CLAIMS.yamlintent-plan-reviewedA gap that leaves a criterion unanswered is refused, and an issue serving an intent that started without a critique or while a blocking finding is open fails intent validationdocs/CLAIMS.yamlintent-preflight-names-the-intentAsked before work on an issue, `intent preflight` names the intents the issue serves with the governance that applies, or refuses naming the causedocs/CLAIMS.yamlintent-realization-held-to-evidenceThe work realising an intent is joined across sessions, providers and handovers, and an intent whose milestones are all closed while a criterion's evidence fails is refused naming that criteriondocs/CLAIMS.yamlintent-refused-at-plan-startWhere the policy requires binding, starting an issue or a task that serves an intent with no critique, or with a blocking finding open, is refused when it is started rather than reported afterwardsdocs/CLAIMS.yamlintent-stage-derivedAn intent's stage is derived from the milestones that realise it and each criterion from the evidence ledger, and it is satisfied only while every criterion has a current passing rundocs/CLAIMS.yamlinterfaces-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.yamlknowledge-derivation-is-idempotentA second derivation over the same evidence writes nothing, says so, and leaves the working tree unchanged; the record id is derived from the episode and a digest of the evidence so the same fact always lands in the same filedocs/CLAIMS.yamlknowledge-derived-at-the-boundaryA provider's end event and its compaction event derive the knowledge the episode produced into candidate records under the tracked tree, from the ledger and git and never from a conversation, whether or not a task is active, and record that they did so in the ledgerdocs/CLAIMS.yamlknowledge-failure-is-recordedA policy switch that is off derives nothing and says so; a derivation that fails inside a provider hook is recorded as provider.event.failed and the hook still exits 0docs/CLAIMS.yamlknowledge-integrityEvery knowledge record is schema-valid with no unknown key, uniquely identified, evidenced when verified, resolves every reference it names, and carries no conversation; check, doctor and `majordomus knowledge check` refuse a record that is notdocs/CLAIMS.yamlknowledge-promotion-is-an-actverified is written only by promote with evidence on stdin or by a person editing the file, never by the deriver; promotion moves the record to curated/ and rejection supersedes it with a reason, each leaving a ledger linedocs/CLAIMS.yamlknowledge-served-on-every-surfaceThe candidates awaiting review, one record by id with its references resolved, and the derivation status of the checkout are one declaration each and answer with the same content over the command line, HTTP and MCPdocs/CLAIMS.yamlknowledge-writer-observedA repository in which episodes close and no knowledge derivation follows within the stale threshold is reported as a stopped writer by doctor and watch, and the finding clears when a derivation is writtendocs/CLAIMS.yamllanding-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 is refused by the pre-commit hook and by the rust gate before it can be mergeddocs/CLAIMS.yamlledger-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.yamllegacy-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.yamllive-scenario-evidence-is-localA live scenario is not selected by a bare usecase run, its evidence is written under the ignored local half, and it never raises a command to covered; an undischarged obligation is reported unmet, never faileddocs/CLAIMS.yamllive-scenario-is-read-onlyA live scenario may only run commands share/commands.yaml declares read-only, names no setup, and asserts an obligation only where something owes one; every other shape is refused by usecase validate with exit 10docs/CLAIMS.yamllocal-state-ignoredCheckout-local state lives under .ai/local/, is ignored by git, and is absent on a fresh clone or worktreedocs/CLAIMS.yamlmcp-client-always-servedA client that starts the MCP server from a checkout whose executable is missing or stale is served by the installed release when it is of this tree's generation and told so, and is otherwise refused with exit 12 naming the explicit build; nothing is builtdocs/CLAIMS.yamlmcp-client-autostartAn MCP client opened in the repository starts the server itself, through the client configurations at the root and bin/majordomus-mcp, without ever building the executabledocs/CLAIMS.yamlmcp-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.yamlmcp-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.yamlmcp-lease-lostA server whose lease was taken over says so on the endpoint every reader probes, refuses to take on a new client, and reports that what its health describes is another process; the sessions it already had continue and it ends with themdocs/CLAIMS.yamlmcp-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.yamlmcp-peersEvery client attached to a checkout's server is a peer named by its own initialize, and majordomus_peers lists every worker of the repository - its own board and the board of every other checkout, each peer stamped with the worktree it is working in - while majordomus_announce tells the others what it is working on and which paths it expects to touchdocs/CLAIMS.yamlmcp-shared-serverOne shared server serves a checkout: the first majordomus mcp binds loopback HTTP with Swagger UI and MCP over HTTP beside its stdio session and logs the URL, every later client of that checkout attaches to it, and it ends when the last client leavesdocs/CLAIMS.yamlmcp-stdio-surfaceThe Rust executable serves the repository's AI layer to an MCP client over stdio, with protocol frames alone on stdoutdocs/CLAIMS.yamlmcp-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.yamlmesh-claims-cross-runtimeAn exclusive claim made on one runtime excludes an overlapping claim on every linked runtime, and concurrent claims resolve to one named winner everywheredocs/CLAIMS.yamlmesh-compaction-keeps-what-is-liveCompacting the cooperation journal changes nothing live — a handover nobody has taken keeps its stream for a bounded retention, who took a handover and who answered a review stay with them, and a compacted runtime that beats again is fetched again wholedocs/CLAIMS.yamlmesh-cooperation-linksTwo runtimes of one repository link only through a signed, replay-protected handshake that checks protocol, repository identity and trust, and every refusal is typed and visibledocs/CLAIMS.yamlmesh-declared-is-heldAn enabled mesh declaration whose shared server did not activate the mesh is a failed `runtime` check of `mesh doctor` (exit 10) carrying the server's reason, and a `Mesh: DECLARED ENABLED BUT NOT ACTIVE` line in the session-start briefing — never a quiet off; and this repository's committed declaration is tracked, enabled, allowlists the fleet and names a hubdocs/CLAIMS.yamlmesh-firewall-is-derivedThe inbound admissions a mesh declaration implies on a machine — the multicast group's port, the declared hub ports whose address is the machine's, the server's port beyond loopback — are derived from the declaration by `majordomus mesh firewall`, which names the host's firewall backend, the commands that admit them and the firewall's own verdict, exits 10 when a rule is observed missing or the kernel logged a drop toward those ports, and whose `apply` runs the commands only as root and never over HTTP or MCP; `mesh doctor` carries the same verdict as its `firewall` checkdocs/CLAIMS.yamlmesh-liveness-expiryA runtime that stops beating — crashed, killed or partitioned — expires on its peers within the declared expiry, its claims stop excluding, and its restart reconnects as the same runtime without a duplicatedocs/CLAIMS.yamlmesh-network-acceptanceSeparate Linux nodes on a real network discover each other by multicast, link, share claims and handovers, and recover from a partition and a crash, in a lab CI runsdocs/CLAIMS.yamlmesh-observation-not-authorityA discovered node gains no execution and no authorization from being heard; only signed traffic from a linked node may change mesh state, and trust labels records under an explicit policy that defaults to deny_unknowndocs/CLAIMS.yamlmesh-off-by-defaultNo mesh discovery socket opens until the repository commits an enabled mesh declaration, and a disabled or absent declaration is reported as the reason, not an errordocs/CLAIMS.yamlmesh-one-registryEvery discovery observation converges into one bounded registry, deduplicated by node and runtime identity across sources, replay-protected per instance, and every surface projects that registry and holds no peers of its owndocs/CLAIMS.yamlmesh-repository-isolationRuntimes serving different repositories never form a cooperative link, even when they discover each otherdocs/CLAIMS.yamlmesh-three-runtime-convergenceRuntimes linked only through a relay converge on one state digest, each event held once, with no replication loopdocs/CLAIMS.yamlminimum-contextA profile declares which context a worker should load and no moredocs/CLAIMS.yamlmodels-no-secret-fieldsThe model catalogue reports whether a vendor's named credential variable is set and can carry no secret value — the schema has no field one could hide indocs/CLAIMS.yamlmodels-one-declarationVendors and models are declared once in share/models.yaml, and the CLI, HTTP, OpenAPI, MCP and Cockpit render that one declaration with no model name of their owndocs/CLAIMS.yamlmodels-routing-explains-itselfA routing decision names why the selected model was selected and, for every excluded model, the first check it failed — the same answer for the same question, with no hidden statedocs/CLAIMS.yamlnew-code-is-coveredEvery executable line, function and region a change adds or touches in the Rust crate must be covered by a test; a change that leaves new code uncovered is refused, and untouched legacy debt is left alonedocs/CLAIMS.yamlno-counts-in-contextA hardcoded count in the always-loaded file is a failuredocs/CLAIMS.yamlno-networkThe shell tool performs no network call, evaluates no generated text and deletes nothing recursively; its one declared request is the loopback peer probedocs/CLAIMS.yamlno-silent-overwriteA hand-edited instruction file is never silently overwrittendocs/CLAIMS.yamlno-transcriptsA handover is a state record, not a transcript - its required sections must be present and non-empty, a placeholder body is refused, and its identity is computed and refused when written into the body; a transcript pasted into a section is not detecteddocs/CLAIMS.yamlobligation-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.yamlobligation-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.yamlobservatory-draws-nothing-it-did-not-readThe Observatory at /ui/observatory and /ui/kiosk shows a scene only when the capabilities it requires answered with something to draw, or, for a scene of the mesh where no mesh runs, when the repository carries a recording of it, which it labels a replay; a scene without either carries no model and states the source's reason, on a server and in the published snapshot alikedocs/CLAIMS.yamlopen-question-gateAn unresolved question blocks acceptance, and an entry the gate cannot parse is a failure rather than a silent passdocs/CLAIMS.yamlopenapi-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.yamloverlap-reportOverlap between parallel workers is computed on claimed paths in both containment directionsdocs/CLAIMS.yamlpersonal-layer-changes-nothing-sharedA layer installed with --personal is one person's own in a shared repository: it changes no tracked file, no .gitignore line and nothing git status shows, and the command that makes the claim verifies itdocs/CLAIMS.yamlpointer-integrityEvery repository-relative reference in the always-loaded file is proven to resolvedocs/CLAIMS.yamlpolicy-parseThe canonical policy is parsed and rejected if it contains an unknown keydocs/CLAIMS.yamlproduct-domains-derivedThe product is filed under a few domains declared once as files of the layer; a feature names exactly one, and every domain's members, interfaces, guarantees and use cases are derived from the features that name it, so a stable feature cannot be left out of the product map without the model refusing itdocs/CLAIMS.yamlproduct-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.yamlproduct-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.yamlproduct-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.yamlproduct-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.yamlprofile-axesCapability class, reasoning effort, output verbosity, context and verification are five independent axesdocs/CLAIMS.yamlprofile-validateEvery profile is parsed, its unknown keys rejected, and the default profile proven to existdocs/CLAIMS.yamlproject-schemaMilestones and issues are canonical repository files, and a key nobody reads is an errordocs/CLAIMS.yamlproject-status-derivedIssue and milestone status is derived from recorded facts and is stored nowheredocs/CLAIMS.yamlprojected-record-edit-is-landableA pull request that edits a projected plan record is not refused because GitHub does not show the edit yet, and the trunk is refused for it once a declared window has passeddocs/CLAIMS.yamlprojection-fingerprintEvery generated instruction file carries its own stamp, and a hand edit is detecteddocs/CLAIMS.yamlprojection-generationProvider instruction files are generated from the one policy, deterministicallydocs/CLAIMS.yamlprompt-assetA repository-local prompt renders against a closed set of state tokens, and an unknown token is an errordocs/CLAIMS.yamlprompt-assetsEvery repository-local prompt asset renders, and an unknown token is a failuredocs/CLAIMS.yamlprompt-captureA declared provider hook captures the person's raw prompts below the model, and doctor proves it by running itdocs/CLAIMS.yamlprompt-continuityA captured prompt names the episode it belongs to or records that none could be resolved; the archive is private, bounded and free of credential materialdocs/CLAIMS.yamlprovider-capability-evidenceWhat each provider can do about the session lifecycle, prompt capture, driving a browser beside this server and reporting what a session consumed is one declaration with a citation per cell, every surface projects it, and no provider the declaration names goes unreporteddocs/CLAIMS.yamlprovider-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.yamlpublished-translation-is-declaredA page of the published site written in a reader's language is declared with that language and a reason, and is refused unless the page declares the same language itselfdocs/CLAIMS.yamlreasoning-survives-the-sessionA decision and its provenance survive the session: the next session finds them in its context and handover, reuses a standing conclusion instead of consulting again, and reopens it only on new evidencedocs/CLAIMS.yamlreasoning-works-with-no-advisorMajordomus reasons, decides, implements and validates with no advisor at all: absent advisors are reported as ordinary state, material uncertainty gets a structured local review, and the conclusion claims no independent reviewdocs/CLAIMS.yamlrecord-resolutionThe right prior record is resolved by worktree and branch, and an unrelated one is never offereddocs/CLAIMS.yamlrecord-retentionRotating the ledger archives the oldest lines and never deletes themdocs/CLAIMS.yamlrecord-searchDurable records are searchable literally, across kinds, without an indexdocs/CLAIMS.yamlregion-projectionA projection can own only the region between its markers, leaving the rest of the file untoucheddocs/CLAIMS.yamlrelease-archive-shapeA release archive carries every path once and carries nothing but files and directoriesdocs/CLAIMS.yamlrelease-is-complete-or-absentA release publishes an artifact for every supported target or it is not publisheddocs/CLAIMS.yamlrelease-prerelease-channelA tag with a pre-release part is published as a prerelease, recorded on the prerelease channel, and never resolved as the stable release, so an unpinned installer and a node that follows stable keep the highest stable versiondocs/CLAIMS.yamlreproduce-commandEvery finding carries the command that reproduces itdocs/CLAIMS.yamlretention-capsThe append-only ledger and handover store have retention caps that are checkeddocs/CLAIMS.yamlreview-is-never-fabricatedA session cannot claim review it did not get: a consultation must name an advisor its recorded plan selected, a conclusion's review is computed, and reasoning check and doctor refuse a forged record, provider coupling, a model credential in CI and a refused claim in a documentdocs/CLAIMS.yamlroadmap-derivedThe roadmap is derived from milestone state, and no document may be a second authority for itdocs/CLAIMS.yamlroutingRouting recommendations will be derived from measured cost and outcome datadocs/CLAIMS.yamlrule-exemption-carries-its-reasonA rule that no program can express says so in its own front matter, with the reason, and is counted apart from every rule that has a gatedocs/CLAIMS.yamlrule-proof-is-named-and-resolvesEvery rule names what proves it, and every path it names is in the treedocs/CLAIMS.yamlrule-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.yamlrule-state-is-derived-from-what-ranA rule's proof state is derived from the tree and the ledger together, and a mechanism that refuses violations is never reported as a run that passeddocs/CLAIMS.yamlruntime-adaptersOpt-in runtime adapters will clamp read size, output size and fan-out from profile-derived limitsdocs/CLAIMS.yamlrust-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.yamlrust-coverage-floorCoverage of the Rust crate is measured with test code out of the denominator, 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 or under the session/continuity domain's own floor in scripts/session-coverage-thresholddocs/CLAIMS.yamlrust-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.yamlrust-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.yamlrustdoc-completeEvery item the crate exports has its rustdoc page at the route derived from its path and kind, no item page exists without its item, and a module added to the crate becomes a required page with no list editeddocs/CLAIMS.yamlrustdoc-composed-from-the-topologyThe site build composes every published static surface into its output at that surface's mount, read from the committed topology with no surface named by hand, and refuses, naming the producer, when a published surface's artifact is absentdocs/CLAIMS.yamlrustdoc-discoverableThe crate's rustdoc is a web surface at /rustdoc declared by discovery from the crate, present in the topology, its committed projection and the home page whether or not its producer has run, and a running server answers /rustdoc/ from the tree its producer wrotedocs/CLAIMS.yamlrustdoc-publishedThe crate's rustdoc is published at /rustdoc with the site, built from the commit the site names, and is never committeddocs/CLAIMS.yamlrustdoc-referencedEvery builtin module's page on the site links the page the crate's reference documents that module on, from the one module-to-page mapping the rustdoc check holds the published tree to, and only in a build that composed the referencedocs/CLAIMS.yamlrustdoc-verified-liveA rustdoc tree built from another commit than the one it is checked or deployed as is refused, by the integrity check before publication and by the public verification after itdocs/CLAIMS.yamlschema-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.yamlscope-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.yamlscope-enforcementA touched file outside the claimed scope is a failure, not a warningdocs/CLAIMS.yamlscoped-taskA task is started with a declared file scope and a profile, and only one task is active per checkoutdocs/CLAIMS.yamlsemantic-retrievalRanked or semantic retrieval over durable records is deliberately not implementeddocs/CLAIMS.yamlsession-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.yamlsession-observabilityThe session subsystem has a reading of itself — every open episode of the store and not only the one the pointer follows, the episodes that can no longer close themselves, the commit the serving process is answering about, and what each provider's adapter declaresdocs/CLAIMS.yamlsession-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.yamlsession-start-promptA bare claude in a supervised repository starts with the repository's session-start prompt as its first message, and a run with an argument, outside such a repository, with the opt-out, or with a prompt that cannot be rendered is left exactly as it wasdocs/CLAIMS.yamlshared-policyOne policy will be shared across repositories and workersdocs/CLAIMS.yamlsite-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.yamlsite-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.yamlsite-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.yamlskill-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.yamlskill-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.yamlskill-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.yamlsuite-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.yamltask-commit-attributionA task will know which commits it produced, rather than inferring them from a rangedocs/CLAIMS.yamltask-dependenciesA task record has no dependencies; sequencing between sessions is not representeddocs/CLAIMS.yamltelemetryExecution telemetry will be recorded once a provider exposes it honestlydocs/CLAIMS.yamlthe-closing-question-is-measuredWhether a task added debt, left a branch or a worktree behind, or grew the backlog is answered by the done invariant from git, the debt baselines and the recorded forge observation, measured from where the task started; a reading that was not taken is unknown, never a passdocs/CLAIMS.yamltoken-savings-measuredMajordomus will state a total-token change only from matched, verified runs that meet the methodology's publication ruledocs/CLAIMS.yamltool-location-independentThe tool runs read-only from any location, and two locations of one version agree about one repositorydocs/CLAIMS.yamltyped-outcomeAn outcome is a value from a closed vocabulary, not free textdocs/CLAIMS.yamlui-dashboard-cites-its-sourcesThe UI's dashboard at /ui links every capability it read to that capability's page, serves under the Cockpit's security policy, and never waits for the pull-request queue, which is a page and a fragment of its owndocs/CLAIMS.yamluse-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.yamluse-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.yamluse-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.yamlvendored-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.yamlweb-namespaces-reserved/docs serves this repository's documentation and /swagger serves the Swagger UI, and neither may take the other's mountdocs/CLAIMS.yamlweb-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.yamlwhy-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.yamlwhy-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.yamlwhy-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.yamlwiring-reconciliationEvery enforcement the policy declares is reconciled against what actually runsdocs/CLAIMS.yamlworktree-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.yamlworktree-ownershipA task record names the checkout it belongs to, and another checkout is never held to its scopedocs/CLAIMS.yamlworktree-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 31
adradrshare/commands.yamlarchivearchiveshare/commands.yamlbenchbenchshare/commands.yamlcapturecaptureshare/commands.yamlcheckcheckshare/commands.yamlcheckpointcheckpointshare/commands.yamlcontextcontextshare/commands.yamldecisiondecisionshare/commands.yamldoctordoctorshare/commands.yamldoctrinedoctrineshare/commands.yamlevidenceevidenceshare/commands.yamlfinishfinishshare/commands.yamlhandoverhandovershare/commands.yamlhelphelpshare/commands.yamlhistoryhistoryshare/commands.yamlinitinitshare/commands.yamlknowledgeknowledgeshare/commands.yamlmigratemigrateshare/commands.yamlplanplanshare/commands.yamlpromptpromptshare/commands.yamlquestionquestionshare/commands.yamlrecoverrecovershare/commands.yamlrulesrulesshare/commands.yamlsearchsearchshare/commands.yamlsessionsessionshare/commands.yamlskillsskillsshare/commands.yamlstartstartshare/commands.yamlupdateupdateshare/commands.yamlusecaseusecaseshare/commands.yamlversionversionshare/commands.yamlwatchwatchshare/commands.yaml
context 39
ai.layerRepository AI context.ai/README.mdai.repoTracked repository context.ai/repo/README.mdai.repo.adrsArchitecture decisions.ai/repo/adrs/README.mdai.repo.applicationsApplications.ai/repo/applications/README.mdai.repo.automationAutomation inventory.ai/repo/automation/README.mdai.repo.benchmarksBenchmarks.ai/repo/benchmarks/README.mdai.repo.benchmarks.economicsToken economics benchmark.ai/repo/benchmarks/economics/README.mdai.repo.benchmarks.observatoryObservatory evidence.ai/repo/benchmarks/observatory/README.mdai.repo.benchmarks.pagesPublication baselines.ai/repo/benchmarks/pages/README.mdai.repo.benchmarks.rustExecutable baselines.ai/repo/benchmarks/rust/README.mdai.repo.ciContinuous integration.ai/repo/ci/README.mdai.repo.deploymentsDeployments.ai/repo/deployments/README.mdai.repo.evidenceEvidence.ai/repo/evidence/README.mdai.repo.featuresProduct features.ai/repo/features/README.mdai.repo.features.domainsProduct domains.ai/repo/features/domains/README.mdai.repo.knowledgeKnowledge.ai/repo/knowledge/README.mdai.repo.knowledge.candidatesCandidate records.ai/repo/knowledge/candidates/README.mdai.repo.knowledge.curatedCurated notes.ai/repo/knowledge/curated/README.mdai.repo.meshMesh.ai/repo/mesh/README.mdai.repo.observatoryObservatory recording.ai/repo/observatory/README.mdai.repo.offloadDerive offload.ai/repo/offload/README.mdai.repo.profilesProfiles.ai/repo/profiles/README.mdai.repo.projectProject model.ai/repo/project/README.mdai.repo.project.critiquesPlan critiques.ai/repo/project/critiques/README.mdai.repo.project.gapsGap analyses.ai/repo/project/gaps/README.mdai.repo.project.intentsIntents.ai/repo/project/intents/README.mdai.repo.project.issuesIssues.ai/repo/project/issues/README.mdai.repo.project.milestonesMilestones.ai/repo/project/milestones/README.mdai.repo.promptsPrompt assets.ai/repo/prompts/README.mdai.repo.providersProvider templates.ai/repo/providers/README.mdai.repo.releasesPublished releases.ai/repo/releases/README.mdai.repo.rulesRepository rules.ai/repo/rules/README.mdai.repo.rules.projectProject rules.ai/repo/rules/project/README.mdai.repo.sessionsSession records.ai/repo/sessions/README.mdai.repo.skillsSkills.ai/repo/skills/README.mdai.repo.use-casesUse cases.ai/repo/use-cases/README.mdai.repo.whyWhy this tool exists.ai/repo/why/README.mdai.repo.workflowsWorkflows.ai/repo/workflows/README.mdai.repo.workspacesExternal workspaces.ai/repo/workspaces/README.md
critique 37
a-brief-is-reconciled-into-the-plana-brief-is-reconciled-into-the-plan.ai/repo/project/critiques/a-brief-is-reconciled-into-the-plan.yamla-browser-computes-what-the-server-verifiesa-browser-computes-what-the-server-verifies.ai/repo/project/critiques/a-browser-computes-what-the-server-verifies.yamla-build-reuses-what-the-mesh-already-builta-build-reuses-what-the-mesh-already-built.ai/repo/project/critiques/a-build-reuses-what-the-mesh-already-built.yamla-change-is-judged-in-minutesa-change-is-judged-in-minutes.ai/repo/project/critiques/a-change-is-judged-in-minutes.yamla-change-reconciles-what-it-affectsa-change-reconciles-what-it-affects.ai/repo/project/critiques/a-change-reconciles-what-it-affects.yamla-claim-stands-only-on-its-evidencea-claim-stands-only-on-its-evidence.ai/repo/project/critiques/a-claim-stands-only-on-its-evidence.yamla-person-runs-majordomus-from-a-phonea-person-runs-majordomus-from-a-phone.ai/repo/project/critiques/a-person-runs-majordomus-from-a-phone.yamla-provider-carries-the-contract-nativelya-provider-carries-the-contract-natively.ai/repo/project/critiques/a-provider-carries-the-contract-natively.yamla-session-leaves-what-it-observeda-session-leaves-what-it-observed.ai/repo/project/critiques/a-session-leaves-what-it-observed.yamla-session-record-says-what-it-serveda-session-record-says-what-it-served.ai/repo/project/critiques/a-session-record-says-what-it-served.yamla-stranger-adopts-it-unaideda-stranger-adopts-it-unaided.ai/repo/project/critiques/a-stranger-adopts-it-unaided.yamla-version-follows-every-sessiona-version-follows-every-session.ai/repo/project/critiques/a-version-follows-every-session.yamla-visitor-understands-and-checks-majordomusa-visitor-understands-and-checks-majordomus.ai/repo/project/critiques/a-visitor-understands-and-checks-majordomus.yamlan-authorised-node-connects-from-anywherean-authorised-node-connects-from-anywhere.ai/repo/project/critiques/an-authorised-node-connects-from-anywhere.yamlcampaigns-are-provenance-the-plan-readscampaigns-are-provenance-the-plan-reads.ai/repo/project/critiques/campaigns-are-provenance-the-plan-reads.yamlentry-proves-what-it-handedentry-proves-what-it-handed.ai/repo/project/critiques/entry-proves-what-it-handed.yamlevery-capability-has-one-owner-and-the-cli-never-buildsevery-capability-has-one-owner-and-the-cli-never-builds.ai/repo/project/critiques/every-capability-has-one-owner-and-the-cli-never-builds.yamlevery-model-call-is-paid-from-a-declared-sourceevery-model-call-is-paid-from-a-declared-source.ai/repo/project/critiques/every-model-call-is-paid-from-a-declared-source.yamlevery-sessions-usage-is-observedevery-sessions-usage-is-observed.ai/repo/project/critiques/every-sessions-usage-is-observed.yamlevery-surface-follows-what-changedevery-surface-follows-what-changed.ai/repo/project/critiques/every-surface-follows-what-changed.yamlfinished-work-reaches-a-verified-releasefinished-work-reaches-a-verified-release.ai/repo/project/critiques/finished-work-reaches-a-verified-release.yamlintent-bound-workintent-bound-work.ai/repo/project/critiques/intent-bound-work.yamlintent-planningintent-planning.ai/repo/project/critiques/intent-planning.yamllanding-survives-any-sessionlanding-survives-any-session.ai/repo/project/critiques/landing-survives-any-session.yamlmerging-and-referencing-are-enforcedmerging-and-referencing-are-enforced.ai/repo/project/critiques/merging-and-referencing-are-enforced.yamlnothing-in-the-mesh-waits-on-something-deadnothing-in-the-mesh-waits-on-something-dead.ai/repo/project/critiques/nothing-in-the-mesh-waits-on-something-dead.yamloperation-convergenceoperation-convergence.ai/repo/project/critiques/operation-convergence.yamlrepository-automation-is-typedrepository-automation-is-typed.ai/repo/project/critiques/repository-automation-is-typed.yamlthe-layer-evolves-when-it-is-duethe-layer-evolves-when-it-is-due.ai/repo/project/critiques/the-layer-evolves-when-it-is-due.yamlthe-mesh-is-operated-from-any-devicethe-mesh-is-operated-from-any-device.ai/repo/project/critiques/the-mesh-is-operated-from-any-device.yamlthe-owner-directs-work-from-the-uithe-owner-directs-work-from-the-ui.ai/repo/project/critiques/the-owner-directs-work-from-the-ui.yamlthe-owner-oversees-the-mesh-from-one-pagethe-owner-oversees-the-mesh-from-one-page.ai/repo/project/critiques/the-owner-oversees-the-mesh-from-one-page.yamlthe-peer-blackboard-is-one-realitythe-peer-blackboard-is-one-reality.ai/repo/project/critiques/the-peer-blackboard-is-one-reality.yamlthe-product-proves-it-paysthe-product-proves-it-pays.ai/repo/project/critiques/the-product-proves-it-pays.yamlthe-product-shows-what-it-caughtthe-product-shows-what-it-caught.ai/repo/project/critiques/the-product-shows-what-it-caught.yamlthe-ui-runs-and-explains-the-workthe-ui-runs-and-explains-the-work.ai/repo/project/critiques/the-ui-runs-and-explains-the-work.yamlwhat-a-workspace-decides-reaches-the-repository-with-its-sourcewhat-a-workspace-decides-reaches-the-repository-with-its-source.ai/repo/project/critiques/what-a-workspace-decides-reaches-the-repository-with-its-source.yaml
deployment 1
majordomusThe Majordomus layer, served from its container image.ai/repo/deployments/majordomus.yaml
derive-offload 1
derive.ai/repo/offload/derive.yaml
distribution-model 1
share/distribution.yamlshare/distribution.yaml
document 353
.ai/repo/skills/assess-before-deleting/examples/remove-stale-worktrees.mdRemove worktrees that look finished.ai/repo/skills/assess-before-deleting/examples/remove-stale-worktrees.md.ai/repo/skills/evolve/examples/after-an-incident.mdAfter an incident.ai/repo/skills/evolve/examples/after-an-incident.md.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/pack-for-chatgpt/examples/upload-sources-to-a-project.mdUpload the sources to a ChatGPT project.ai/repo/skills/pack-for-chatgpt/examples/upload-sources-to-a-project.md.ai/repo/skills/pack-for-review/examples/second-opinion-from-another-model.mdA second opinion from a model without the checkout.ai/repo/skills/pack-for-review/examples/second-opinion-from-another-model.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/skills/report-verification-state/examples/final-report-of-a-task.mdFinal report of a task.ai/repo/skills/report-verification-state/examples/final-report-of-a-task.md.ai/repo/workflows/continuity.mdContinuity.ai/repo/workflows/continuity.md.ai/repo/workflows/foreign-repository-adoption.mdForeign repository adoption.ai/repo/workflows/foreign-repository-adoption.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.mdAGENTS.mdAGENTS.mdAGENTS.mdCLAUDE.mdCLAUDE.mdCLAUDE.mdCONTRIBUTING.mdContributingCONTRIBUTING.mdGEMINI.mdGEMINI.mdGEMINI.mdREADME.mdPrismatic MajordomusREADME.mdSECURITY.mdSecuritySECURITY.mddocs/ADOPTION.mdAdoptiondocs/ADOPTION.mddocs/ADOPTION_FIRST_RUN.mdFirst run in a foreign repository — forensic findingdocs/ADOPTION_FIRST_RUN.mddocs/ARCHIVE.mdArchiving the repositorydocs/ARCHIVE.mddocs/BACKLOG.mdBacklogdocs/BACKLOG.mddocs/BLACKBOARD.mdThe peer blackboarddocs/BLACKBOARD.mddocs/BRIEF.mdThe session brief — `majordomus brief`docs/BRIEF.mddocs/BUILD_CACHE.mdThe build cache, as a person sees itdocs/BUILD_CACHE.mddocs/CAPABILITIES.mdCapabilities — one definition, every interface deriveddocs/CAPABILITIES.mddocs/CATALOGUE.mdThe cataloguedocs/CATALOGUE.mddocs/CI.mdContinuous integrationdocs/CI.mddocs/CLI.mdCLI specification — `majordomus`docs/CLI.mddocs/COCKPIT.mdThe Cockpit — the registry, rendered for a persondocs/COCKPIT.mddocs/COCKPIT_IDE_AUDIT.mdThe Cockpit as a development surface: baseline, archaeology and gap matrixdocs/COCKPIT_IDE_AUDIT.mddocs/COMMANDS.mdThe command graphdocs/COMMANDS.mddocs/COMMIT.mdThe commitdocs/COMMIT.mddocs/CONCEPTS.mdConceptsdocs/CONCEPTS.mddocs/CONTEXT.mdScoped contextdocs/CONTEXT.mddocs/CONTINUITY.mdContinuity — how work survives the session that was doing itdocs/CONTINUITY.mddocs/COVERAGE.mdCoverage: one measurement, two questionsdocs/COVERAGE.mddocs/DELIVERY.mdDeliverydocs/DELIVERY.mddocs/DESIGN.mdPrismatic Majordomusdocs/DESIGN.mddocs/DESIGN_SYSTEM.mdThe design system — one declaration, every surfacedocs/DESIGN_SYSTEM.mddocs/DEVELOPMENT_RUNTIME.mdThe development runtimedocs/DEVELOPMENT_RUNTIME.mddocs/DIAGRAMS.mdDiagrams and chartsdocs/DIAGRAMS.mddocs/DISTRIBUTION.mdDistributiondocs/DISTRIBUTION.mddocs/DOCTRINE.mdDoctrinedocs/DOCTRINE.mddocs/DOGFOODING.mdDogfoodingdocs/DOGFOODING.mddocs/DYNAMICITY.mdCanonical ownership and derivationdocs/DYNAMICITY.mddocs/ECONOMICS.mdEconomicsdocs/ECONOMICS.mddocs/EDITORS.mdEditors and agentsdocs/EDITORS.mddocs/ENTRY.mdEntering the repositorydocs/ENTRY.mddocs/ENTRY_AUDIT.mdRepository entry: what is automatic, what is decorative, and where it breaksdocs/ENTRY_AUDIT.mddocs/ENVIRONMENT.mdThe repository environment — one snapshot, every surface a renderingdocs/ENVIRONMENT.mddocs/EVIDENCE.mdEvidence — what ran, against which commit, and whether it still proves anythingdocs/EVIDENCE.mddocs/EXECUTIONS.mdExecutions — watching a capability call happendocs/EXECUTIONS.mddocs/EXTRACTION_REPORT.mdExtraction Report — Prismatic Majordomus v0.1 design phasedocs/EXTRACTION_REPORT.mddocs/GITHUB_PAGES_ARCHITECTURE.mdGitHub Pages architecturedocs/GITHUB_PAGES_ARCHITECTURE.mddocs/GITHUB_PAGES_PERFORMANCE.mdGitHub Pages performancedocs/GITHUB_PAGES_PERFORMANCE.mddocs/GUIDE.mdGuide — what Majordomus does for a team, how each part works, and the tests that prove itdocs/GUIDE.mddocs/HANDBOOK.mdThe handbookdocs/HANDBOOK.mddocs/HOW_IT_WORKS.mdHow Majordomus works — one repository model, many projectionsdocs/HOW_IT_WORKS.mddocs/INSTALL.mdInstalling Majordomusdocs/INSTALL.mddocs/INTEGRATION.mdPull-request integrationdocs/INTEGRATION.mddocs/INTEGRATION_ROLLOUT.mdIntegration rollout recorddocs/INTEGRATION_ROLLOUT.mddocs/KNOWLEDGE.mdKnowledge — what an episode learned, derived at its boundary and promoted by a persondocs/KNOWLEDGE.mddocs/LAUNCH.mdLaunch kitdocs/LAUNCH.mddocs/MAJORDOMUS_UI.md`majordomus ui` — the productdocs/MAJORDOMUS_UI.mddocs/MCP.mdMCP surface — `majordomus mcp`docs/MCP.mddocs/MESH.mdMajordomus Meshdocs/MESH.mddocs/MODELS.mdThe model cataloguedocs/MODELS.mddocs/MONITOR.mdThe monitordocs/MONITOR.mddocs/OFFLOAD.mdThe derive offloaddocs/OFFLOAD.mddocs/PAGES_STATUS.mdGitHub Pages performance statusdocs/PAGES_STATUS.mddocs/PERFORMANCE.mdPerformance truthdocs/PERFORMANCE.mddocs/PERSONAL_MODE.mdPersonal mode: Majordomus as one person's instrumentdocs/PERSONAL_MODE.mddocs/PLANNING.mdPlanning — milestones, issues, and the graph between themdocs/PLANNING.mddocs/PLAN_STATUS.mdPlan statusdocs/PLAN_STATUS.mddocs/PREFLIGHT.mdThe preflight — what is in force here, and what proves itdocs/PREFLIGHT.mddocs/PRODUCT.mdProduct — the features, and the landing page as a projection of themdocs/PRODUCT.mddocs/QUALITY.mdPublic API qualitydocs/QUALITY.mddocs/README.mdDocumentation indexdocs/README.mddocs/REASONING.mdReasoningdocs/REASONING.mddocs/RELEASE.mdThe release — a changelog nobody writes, and one writer for the versiondocs/RELEASE.mddocs/ROADMAP.mdThe roadmap — milestones as a graphdocs/ROADMAP.mddocs/RUSTDOC.mdThe crate's reference — rustdoc, published at `/rustdoc`docs/RUSTDOC.mddocs/SCHEMAS.mdFile schemas — every file Majordomus reads or writesdocs/SCHEMAS.mddocs/SCOPE.mdThe repository scopedocs/SCOPE.mddocs/SHELL.mdShell automationdocs/SHELL.mddocs/SITE_CLAIMS.mdSite claimsdocs/SITE_CLAIMS.mddocs/SITE_REVIEW.mdSite review — route audit, ownership, validationdocs/SITE_REVIEW.mddocs/SURFACES.mdHow Majordomus derives its surfaces — one typed reality, many projectionsdocs/SURFACES.mddocs/TWO_FOLDER_CONSOLIDATION.mdTwo-folder consolidation — the adoption footprint, and the plan it justifiesdocs/TWO_FOLDER_CONSOLIDATION.mddocs/UI.mdUI conformance — `scripts/ui`docs/UI.mddocs/USE_CASES.mdExecutable use casesdocs/USE_CASES.mddocs/WEB.mdThe web surface — discovered from its producer, projected oncedocs/WEB.mddocs/WHY.mdWhy — the operational moments, as datadocs/WHY.mddocs/WORKTREES.mdWorktreesdocs/WORKTREES.mddocs/claims/a-candidate-is-routed-by-what-it-is-about.mdEvery observation candidate is routed by the structure of what it is aboutdocs/claims/a-candidate-is-routed-by-what-it-is-about.mddocs/claims/a-diagram-is-named-linked-and-addressable.mdEvery Mermaid diagram of the built site gets an id (diagram-<name>), the list of its nodes, the viewer's controls and a link for each node that is the identity of an object the site has a page for, all derived at build; a link to #diagram-<name>:<node> fails the build when the diagram does not declare the nodedocs/claims/a-diagram-is-named-linked-and-addressable.mddocs/claims/a-finding-names-how-to-see-it-again.mdEvery finding a command reports names the command that reproduces itdocs/claims/a-finding-names-how-to-see-it-again.mddocs/claims/a-session-records-what-it-observed.mdknowledge observe records one observation.recorded line of a fixed shape, and refuses any otherdocs/claims/a-session-records-what-it-observed.mddocs/claims/a-skipped-case-is-not-a-proof.mdA test case that declines to run is reported as a skip and recorded as one, so the evidence ledger can never read a case that asserted nothing as the proof of the claim it namesdocs/claims/a-skipped-case-is-not-a-proof.mddocs/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.mddocs/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.mddocs/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.mddocs/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.mddocs/claims/advice-is-weighed-not-counted.mdAdvisors that disagree never decide by count: a conclusion is refused while a disagreement on its assessment is unsettled, a resolution needs evidence, and every answer received must be weigheddocs/claims/advice-is-weighed-not-counted.mddocs/claims/advisor-failure-is-recorded-and-recovers.mdAn advisor that times out, is rate limited, refuses its credential or answers malformed is recorded as exactly that, never blocks the work, opens a circuit that closes again after its cooldown, and never fails the sessiondocs/claims/advisor-failure-is-recorded-and-recovers.mddocs/claims/advisor-transports-share-one-contract.mdEvery advisor transport is held to one contract — typed failures, deadlines, cancellation, normalised answers, reported usage, redacted secrets — proven against fakes with no network, model or credentialdocs/claims/advisor-transports-share-one-contract.mddocs/claims/advisors-are-declared-once.mdAdvisors are declared once, in share/advisors.yaml, by reference to the provider table and the model catalogue; a new advisor reaches the command line, the policy, HTTP, OpenAPI, MCP and the Cockpit with no consumer editeddocs/claims/advisors-are-declared-once.mddocs/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.mddocs/claims/an-observation-becomes-a-grouped-candidate.mdEach observation becomes a candidate of its own at its episode's end, and reading groups them by subjectdocs/claims/an-observation-becomes-a-grouped-candidate.mddocs/claims/archive-fidelity.mdAn archive that lost the file modes fails rather than travellingdocs/claims/archive-fidelity.mddocs/claims/authored-files-are-english.mdEvery authored file in this repository is spelled in Englishdocs/claims/authored-files-are-english.mddocs/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.mddocs/claims/blocker-store.mdAn unparseable question blocks acceptance exactly as an unresolved one doesdocs/claims/blocker-store.mddocs/claims/blocker-survives-handover.mdA blocking question keeps blocking after the work is handed to a new taskdocs/claims/blocker-survives-handover.mddocs/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.mddocs/claims/briefing-names-candidates.mdThe start briefing names the candidates awaiting review on this branch, count and ids, bounded and within the briefing budget, and prints their absence rather than omitting itdocs/claims/briefing-names-candidates.mddocs/claims/candidates-reviewed-not-accumulated.mdMore candidates than the policy cap, or a candidate older than the policy age, is an advisory doctor finding that names themdocs/claims/candidates-reviewed-not-accumulated.mddocs/claims/capability-class.mdA profile names a capability class rather than a vendor modeldocs/claims/capability-class.mddocs/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.mddocs/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.mddocs/claims/catalogue-resolves.mdA use case cannot name something the tool does not havedocs/claims/catalogue-resolves.mddocs/claims/checkpoint-interval.mdA profile sets how often a worker should checkpoint, and a stale task is reporteddocs/claims/checkpoint-interval.mddocs/claims/checkpoint-record.mdA checkpoint is a capped progress record, and a body over the cap is refuseddocs/claims/checkpoint-record.mddocs/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.mddocs/claims/ci-verdict-is-required.mdNo pull request can be merged into the default branch while the verdict status is red, because a branch rule requires itdocs/claims/ci-verdict-is-required.mddocs/claims/ci-verdict.mdThe verdict status 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.mddocs/claims/cli-documentation-executable.mdEvery command of the Rust executable's command line carries a summary, help on every argument and, where it runs, at least one example, the root carries a long description, and every example shown to a reader is executed against the built executabledocs/claims/cli-documentation-executable.mddocs/claims/cockpit-is-a-projection-of-the-registry.mdA capability added to the registry reaches every Cockpit surface without one line of the Cockpit being editeddocs/claims/cockpit-is-a-projection-of-the-registry.mddocs/claims/command-coverage.mdEvery public command has a behavioural test and a negative test, computed rather than remembereddocs/claims/command-coverage.mddocs/claims/command-surface.mdThe public command surface is declared, and reconciled against the dispatcherdocs/claims/command-surface.mddocs/claims/commit-message-is-judged.mdA commit message that does not satisfy the policy is refused while it is being writtendocs/claims/commit-message-is-judged.mddocs/claims/commit-plan-is-refusable.mdA commit plan carries what it was derived from, so a stale one is refused rather than applieddocs/claims/commit-plan-is-refusable.mddocs/claims/commit-scopes-are-learned.mdThe scope vocabulary is learned from the history, not kept in a tabledocs/claims/commit-scopes-are-learned.mddocs/claims/connection-episode.mdA client with no provider hooks gets an execution episode from the MCP connection, resumes its own after a crash, and never has its prompt claimed to be captureddocs/claims/connection-episode.mddocs/claims/consistency-check.mdcheck reports whether state, scope, blockers and checkpoint age are consistent right nowdocs/claims/consistency-check.mddocs/claims/context-assembly.mdThe context a worker is given is assembled from durable state in authority orderdocs/claims/context-assembly.mddocs/claims/context-budget.mdThe always-loaded instruction file has a line budget with a failing checkdocs/claims/context-budget.mddocs/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.mddocs/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.mddocs/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.mddocs/claims/context-selection-budget.mdThe assembled context obeys a line budget, and every section it drops is nameddocs/claims/context-selection-budget.mddocs/claims/context-selection-counted.mdWhat the context compiler selects is counted, not estimateddocs/claims/context-selection-counted.mddocs/claims/continuity-reachable.mdEvery continuity store is proven reachable through its own commanddocs/claims/continuity-reachable.mddocs/claims/cost-per-outcome.mdCost per accepted outcome will be reported from measured data onlydocs/claims/cost-per-outcome.mddocs/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.mddocs/claims/decision-attribution.mdA decision record without a task, a head and a reason is reporteddocs/claims/decision-attribution.mddocs/claims/decision-record.mdA decision is recorded with its reason, and superseded rather than editeddocs/claims/decision-record.mddocs/claims/deployment-contract-refuses-by-name.mdA deployment that breaks its closed contract is refused by doctor with the reason nameddocs/claims/deployment-contract-refuses-by-name.mddocs/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.mddocs/claims/derived-data-current.mdA commit whose derived data is behind its canonical inputs is refused before it existsdocs/claims/derived-data-current.mddocs/claims/derived-not-declared.mdWhat the tool knows about itself is written once and derived everywhere elsedocs/claims/derived-not-declared.mddocs/claims/dispatcher-wiring.mdWiring is found in a hook or in any subhook of the directory it dispatches todocs/claims/dispatcher-wiring.mddocs/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.mddocs/claims/divergence-label.mdState read back is labelled exact, advanced, diverged or different_context against gitdocs/claims/divergence-label.mddocs/claims/doctrine-class-decides.mdA doctrine's class decides whether a violation stops the commanddocs/claims/doctrine-class-decides.mddocs/claims/doctrine-registry.mdEvery enforced rule is declared once, and doctor proves it is reacheddocs/claims/doctrine-registry.mddocs/claims/drift-watch.mdwatch reports policy, projection, state, scope, handover, verification, staleness and retention driftdocs/claims/drift-watch.mddocs/claims/economics-claims-gated.mdAn unsupported savings claim is refuseddocs/claims/economics-claims-gated.mddocs/claims/effort-escalation.mdEscalating reasoning effort after repeated blocked attempts is recorded rather than assumeddocs/claims/effort-escalation.mddocs/claims/event-vocabulary.mdThe ledger's event vocabulary is closed, on the way in and on the way outdocs/claims/event-vocabulary.mddocs/claims/evidence-a-crate-binary-that-ran-nothing-is-not-a-pass.mdA crate test binary that ran no test or only a filtered subset is recorded as a skip, one with a failed test as a failure and one that printed no result as an error, whatever colour codes its output carries, and what no claim can name yet is listed as droppeddocs/claims/evidence-a-crate-binary-that-ran-nothing-is-not-a-pass.mddocs/claims/evidence-a-failure-outranks-an-absence.mdA rule with a failing test reads failing whatever its other tests saydocs/claims/evidence-a-failure-outranks-an-absence.mddocs/claims/evidence-a-recording-is-a-typed-run.mdEvery recording yields a run record naming its commit, the tree each report's run measured, its totals and what was absent, dropped or unknown, and a coverage summary joins it only bound to the commit and tree it was measured ondocs/claims/evidence-a-recording-is-a-typed-run.mddocs/claims/evidence-a-skip-is-not-run.mdA test that declined to run reads not run with a detail saying it declined, and a test that errored or timed out reads failingdocs/claims/evidence-a-skip-is-not-run.mddocs/claims/evidence-currency-is-not-collapsed.mdA run recorded against this commit and a run whose inputs merely have not changed since are reported as different states, never as onedocs/claims/evidence-currency-is-not-collapsed.mddocs/claims/evidence-gates-done.mdAn issue cannot be completed while a required piece of evidence is missingdocs/claims/evidence-gates-done.mddocs/claims/evidence-judged-at-the-presented-revision.mdA claim reads proven only when its run is contained in the presented revision, nothing but the ledger changed since, and both trees were their commitsdocs/claims/evidence-judged-at-the-presented-revision.mddocs/claims/evidence-local-recording-stays-local.mdA recording made with --ledger local writes only the ignored local ledger, changes no tracked file and moves no verdictdocs/claims/evidence-local-recording-stays-local.mddocs/claims/evidence-navigates-both-ways.mdEvery claim names the test meant to settle it and every test names the claims it is meant to settle, from one derivationdocs/claims/evidence-navigates-both-ways.mddocs/claims/evidence-partial-run-preserves-the-rest.mdRecording one test's result never erases the evidence recorded for any other testdocs/claims/evidence-partial-run-preserves-the-rest.mddocs/claims/evidence-proof-is-an-execution.mdA claim's proof is an execution that was recorded with the commit it ran against, not a test path that resolvesdocs/claims/evidence-proof-is-an-execution.mddocs/claims/evidence-recorded-in-ci.mdCI records what it ran, with the run it happened in, and the site publishes it with the commit it provesdocs/claims/evidence-recorded-in-ci.mddocs/claims/evidence-subject-commands-agree-with-the-command-pages.mdThe behavioural and negative tests the subject index names for a command are exactly the ones its command page lists, both read from the first coverage and negative header of each casedocs/claims/evidence-subject-commands-agree-with-the-command-pages.mddocs/claims/evidence-subjects-are-derived.mdEvery claim, rule, feature, command, capability, MCP tool and use case the repository declares is an evidence subject whose members and tests are derived from declarations that already exist, and a committed subject index that differs from that derivation is refuseddocs/claims/evidence-subjects-are-derived.mddocs/claims/evidence-tree-is-measured-by-the-run.mdA recorded execution carries the commit and the tree that its run's own measurement stated, a measurement that names the report it belongs to and never hides a tracked change; a measurement of another commit or another report is refused, a local measurement that names no report is refused, a CI report without a measurement is refused, and a report recorded without one carries an unknown tree, which never reads provendocs/claims/evidence-tree-is-measured-by-the-run.mddocs/claims/evidence-unsupported-guarantee-is-reported.mdA claim that declares a guarantee no recorded run supports is named by a gate rather than displayed as guaranteeddocs/claims/evidence-unsupported-guarantee-is-reported.mddocs/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.mddocs/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.mddocs/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.mddocs/claims/exit-code-contract.mdExit codes are a contract, and no code means "warn and continue"docs/claims/exit-code-contract.mddocs/claims/finish-contract.mdfinish evaluates the finish contract line by line and refuses when any line is unmetdocs/claims/finish-contract.mddocs/claims/finish-refusal-is-recorded.mdevery refused finish appends a task.refused event naming the outcome claimed, the unmet count and the doctrines that refused, and finish --check writes nonedocs/claims/finish-refusal-is-recorded.mddocs/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.mddocs/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.mddocs/claims/git-identity.mdIdentity fields on every state record are computed from git and never authoreddocs/claims/git-identity.mddocs/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.mddocs/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.mddocs/claims/handover-record.mdhandover writes an append-only record with computed front matter and required sectionsdocs/claims/handover-record.mddocs/claims/history-ledger-read.mdThe ledger is readable back as operational historydocs/claims/history-ledger-read.mddocs/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.mddocs/claims/init-refuses.mdInstalling into a repository that already has an installation is refuseddocs/claims/init-refuses.mddocs/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.mddocs/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.mddocs/claims/intent-closes-github-milestones.mdA milestone will be closed on GitHub only once the intents it realises are satisfieddocs/claims/intent-closes-github-milestones.mddocs/claims/intent-cockpit-pages.mdThe Cockpit shows every intent with its derived stage at /cockpit/intents, and one intent's criteria, evidence, serving issues and realising work at /cockpit/intents/<id>docs/claims/intent-cockpit-pages.mddocs/claims/intent-command-deployment-evidence.mdA criterion settled by a command or by a deployment will be met by recorded evidencedocs/claims/intent-command-deployment-evidence.mddocs/claims/intent-criteria-covered.mdOnce work exists under an intent, a criterion no issue serves, an issue under its milestones that serves nothing and a link to a criterion that does not exist are each refused by namedocs/claims/intent-criteria-covered.mddocs/claims/intent-in-session-context.mdA task that names the issue or the intent it serves is briefed with what that intent asks of the work, and a handover tells the next worker when the intent moveddocs/claims/intent-in-session-context.mddocs/claims/intent-links-resolve.mdAn intent whose criterion names evidence that resolves to nothing is refused by namedocs/claims/intent-links-resolve.mddocs/claims/intent-plan-reviewed.mdA gap that leaves a criterion unanswered is refused, and an issue serving an intent that started without a critique or while a blocking finding is open fails intent validationdocs/claims/intent-plan-reviewed.mddocs/claims/intent-preflight-names-the-intent.mdAsked before work on an issue, `intent preflight` names the intents the issue serves with the governance that applies, or refuses naming the causedocs/claims/intent-preflight-names-the-intent.mddocs/claims/intent-realization-held-to-evidence.mdThe work realising an intent is joined across sessions, providers and handovers, and an intent whose milestones are all closed while a criterion's evidence fails is refused naming that criteriondocs/claims/intent-realization-held-to-evidence.mddocs/claims/intent-refused-at-plan-start.mdWhere the policy requires binding, starting an issue or a task that serves an intent with no critique, or with a blocking finding open, is refused when it is started rather than reported afterwardsdocs/claims/intent-refused-at-plan-start.mddocs/claims/intent-stage-derived.mdAn intent's stage is derived from the milestones that realise it and each criterion from the evidence ledger, and it is satisfied only while every criterion has a current passing rundocs/claims/intent-stage-derived.mddocs/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.mddocs/claims/knowledge-derivation-is-idempotent.mdA second derivation over the same evidence writes nothing, says so, and leaves the working tree unchangeddocs/claims/knowledge-derivation-is-idempotent.mddocs/claims/knowledge-derived-at-the-boundary.mdA provider's end event and its compaction event derive the knowledge the episode produced into candidate records, from the ledger and git and never from a conversationdocs/claims/knowledge-derived-at-the-boundary.mddocs/claims/knowledge-failure-is-recorded.mdA policy switch that is off derives nothing and says so; a derivation that fails inside a provider hook is recorded as a failed event and the hook still exits 0docs/claims/knowledge-failure-is-recorded.mddocs/claims/knowledge-integrity.mdEvery knowledge record is schema-valid, uniquely identified, evidenced when verified, resolves every reference it names, and carries no conversationdocs/claims/knowledge-integrity.mddocs/claims/knowledge-promotion-is-an-act.mdverified is written only by promote with evidence on stdin or by a person editing the file, never by the deriverdocs/claims/knowledge-promotion-is-an-act.mddocs/claims/knowledge-served-on-every-surface.mdThe candidates awaiting review, one record by id with its references resolved, and the derivation status of the checkout answer with the same content over the command line, HTTP and MCPdocs/claims/knowledge-served-on-every-surface.mddocs/claims/knowledge-writer-observed.mdA repository in which episodes close and no knowledge derivation follows within the stale threshold is reported as a stopped writerdocs/claims/knowledge-writer-observed.mddocs/claims/landing-page-is-a-projection.mdThe homepage names nothing of its owndocs/claims/landing-page-is-a-projection.mddocs/claims/ledger-integrity.mdEvery line of the ledger is a well-formed eventdocs/claims/ledger-integrity.mddocs/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.mddocs/claims/live-scenario-evidence-is-local.mdA live scenario is not selected by a bare usecase run, its evidence is written under the ignored local half, and it never raises a command to covereddocs/claims/live-scenario-evidence-is-local.mddocs/claims/live-scenario-is-read-only.mdA live scenario may only run commands share/commands.yaml declares read-only, names no setup, and asserts an obligation only where something owes onedocs/claims/live-scenario-is-read-only.mddocs/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.mddocs/claims/mcp-client-always-served.mdA client that starts the MCP server from a checkout whose executable is missing or stale is served by the installed release when it is of this tree's generation and told so, and is otherwise refused with exit 12 naming the explicit build; nothing is builtdocs/claims/mcp-client-always-served.mddocs/claims/mcp-client-autostart.mdAn MCP client opened in the repository starts the server itself, through the client configurations at the root and bin/majordomus-mcp, without ever building the executabledocs/claims/mcp-client-autostart.mddocs/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.mddocs/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.mddocs/claims/mcp-lease-lost.mdA server whose lease was taken over says so on the endpoint every reader probes, refuses to take on a new client, and reports that what its health describes is another process; the sessions it already had continue and it ends with themdocs/claims/mcp-lease-lost.mddocs/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.mddocs/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.mddocs/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.mddocs/claims/mcp-stdio-surface.mdThe Rust executable serves the repository's AI layer to an MCP client over stdio, with protocol frames alone on stdoutdocs/claims/mcp-stdio-surface.mddocs/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.mddocs/claims/mesh-claims-cross-runtime.mdAn exclusive claim made on one runtime excludes an overlapping claim on every linked runtime, and concurrent claims resolve to one named winner everywheredocs/claims/mesh-claims-cross-runtime.mddocs/claims/mesh-compaction-keeps-what-is-live.mdCompacting the cooperation journal changes nothing live — a handover nobody has taken keeps its stream for a bounded retention, who took a handover and who answered a review stay with them, and a compacted runtime that beats again is fetched again wholedocs/claims/mesh-compaction-keeps-what-is-live.mddocs/claims/mesh-cooperation-links.mdTwo runtimes of one repository link only through a signed, replay-protected handshake that checks protocol, repository identity and trust, and every refusal is typed and visibledocs/claims/mesh-cooperation-links.mddocs/claims/mesh-declared-is-held.mdAn enabled mesh declaration whose shared server did not activate the mesh is a failed `runtime` check of `mesh doctor` (exit 10) carrying the server's reason, and a `Mesh: DECLARED ENABLED BUT NOT ACTIVE` line in the session-start briefing — never a quiet off; and this repository's committed declaration is tracked, enabled, allowlists the fleet and names a hubdocs/claims/mesh-declared-is-held.mddocs/claims/mesh-firewall-is-derived.mdThe inbound admissions a mesh declaration implies on a machine — the multicast group's port, the declared hub ports whose address is the machine's, the server's port beyond loopback — are derived from the declaration by `majordomus mesh firewall`, which names the host's firewall backend, the commands that admit them and the firewall's own verdict, exits 10 when a rule is observed missing or the kernel logged a drop toward those ports, and whose `apply` runs the commands only as root and never over HTTP or MCP; `mesh doctor` carries the same verdict as its `firewall` checkdocs/claims/mesh-firewall-is-derived.mddocs/claims/mesh-liveness-expiry.mdA runtime that stops beating — crashed, killed or partitioned — expires on its peers within the declared expiry, its claims stop excluding, and its restart reconnects as the same runtime without a duplicatedocs/claims/mesh-liveness-expiry.mddocs/claims/mesh-network-acceptance.mdSeparate Linux nodes on a real network discover each other by multicast, link, share claims and handovers, and recover from a partition and a crash, in a lab CI runsdocs/claims/mesh-network-acceptance.mddocs/claims/mesh-observation-not-authority.mdA discovered node gains no execution and no authorization from being heard; only signed traffic from a linked node may change mesh state, and trust labels records under an explicit policy that defaults to deny_unknowndocs/claims/mesh-observation-not-authority.mddocs/claims/mesh-off-by-default.mdNo mesh discovery socket opens until the repository commits an enabled mesh declaration, and a disabled or absent declaration is reported as the reason, not an errordocs/claims/mesh-off-by-default.mddocs/claims/mesh-one-registry.mdEvery discovery observation converges into one bounded registry, deduplicated by node and runtime identity across sources, replay-protected per instance, and every surface projects that registry and holds no peers of its owndocs/claims/mesh-one-registry.mddocs/claims/mesh-repository-isolation.mdRuntimes serving different repositories never form a cooperative link, even when they discover each otherdocs/claims/mesh-repository-isolation.mddocs/claims/mesh-three-runtime-convergence.mdRuntimes linked only through a relay converge on one state digest, each event held once, with no replication loopdocs/claims/mesh-three-runtime-convergence.mddocs/claims/minimum-context.mdA profile declares which context a worker should load and no moredocs/claims/minimum-context.mddocs/claims/models-no-secret-fields.mdThe model catalogue reports whether a vendor's named credential variable is set and can carry no secret value — the schema has no field one could hide indocs/claims/models-no-secret-fields.mddocs/claims/models-one-declaration.mdVendors and models are declared once in share/models.yaml, and the CLI, HTTP, OpenAPI, MCP and Cockpit render that one declaration with no model name of their owndocs/claims/models-one-declaration.mddocs/claims/models-routing-explains-itself.mdA routing decision names why the selected model was selected and, for every excluded model, the first check it failed — the same answer for the same question, with no hidden statedocs/claims/models-routing-explains-itself.mddocs/claims/new-code-is-covered.mdEvery executable line, function and region a change adds or touches in the Rust crate is covered by a test; new debt is refused and untouched legacy debt is left alonedocs/claims/new-code-is-covered.mddocs/claims/no-counts-in-context.mdA hardcoded count in the always-loaded file is a failuredocs/claims/no-counts-in-context.mddocs/claims/no-network.mdThe shell tool performs no network call, evaluates no generated text and deletes nothing recursively; its one declared request is the loopback peer probedocs/claims/no-network.mddocs/claims/no-silent-overwrite.mdA hand-edited instruction file is never silently overwrittendocs/claims/no-silent-overwrite.mddocs/claims/no-transcripts.mdA handover is a state record, not a transcriptdocs/claims/no-transcripts.mddocs/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.mddocs/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.mddocs/claims/observatory-draws-nothing-it-did-not-read.mdThe Observatory draws nothing it did not readdocs/claims/observatory-draws-nothing-it-did-not-read.mddocs/claims/open-question-gate.mdAn unresolved question blocks acceptance, and an unparseable entry is a failuredocs/claims/open-question-gate.mddocs/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.mddocs/claims/overlap-report.mdOverlap between parallel workers is computed on claimed paths in both containment directionsdocs/claims/overlap-report.mddocs/claims/personal-layer-changes-nothing-shared.mdA layer installed with --personal is one person's own in a shared repository: it changes no tracked file, no .gitignore line and nothing git status shows, and the command that makes the claim verifies itdocs/claims/personal-layer-changes-nothing-shared.mddocs/claims/pointer-integrity.mdEvery repository-relative reference in the always-loaded file is proven to resolvedocs/claims/pointer-integrity.mddocs/claims/policy-parse.mdThe canonical policy is parsed and rejected if it contains an unknown keydocs/claims/policy-parse.mddocs/claims/product-domains-derived.mdThe product is filed under domains, and the domain lists nothingdocs/claims/product-domains-derived.mddocs/claims/product-features-discovered.mdA product feature is discovered, never registereddocs/claims/product-features-discovered.mddocs/claims/product-projection-public-safe.mdThe public dataset carries only fields somebody alloweddocs/claims/product-projection-public-safe.mddocs/claims/product-references-resolve.mdA reference that resolves to nothing is an error, not a broken linkdocs/claims/product-references-resolve.mddocs/claims/product-surfaces-derived.mdWhat a feature is on is derived; what it is for is writtendocs/claims/product-surfaces-derived.mddocs/claims/profile-axes.mdCapability class, reasoning effort, output verbosity, context and verification are five independent axesdocs/claims/profile-axes.mddocs/claims/profile-validate.mdEvery profile is parsed, its unknown keys rejected, and the default profile proven to existdocs/claims/profile-validate.mddocs/claims/project-schema.mdMilestones and issues are canonical repository files, and a key nobody reads is an errordocs/claims/project-schema.mddocs/claims/project-status-derived.mdIssue and milestone status is derived from recorded facts and is stored nowheredocs/claims/project-status-derived.mddocs/claims/projected-record-edit-is-landable.mdA pull request that edits a projected plan record is not refused because GitHub does not show the edit yet, and the trunk is refused for it once a declared window has passeddocs/claims/projected-record-edit-is-landable.mddocs/claims/projection-fingerprint.mdEvery generated instruction file carries its own stamp, and a hand edit is detecteddocs/claims/projection-fingerprint.mddocs/claims/projection-generation.mdProvider instruction files are generated from the one policy, deterministicallydocs/claims/projection-generation.mddocs/claims/prompt-asset.mdA prompt renders against a closed set of tokens, and an unknown token is an errordocs/claims/prompt-asset.mddocs/claims/prompt-assets.mdEvery prompt asset renders, and an unknown token is a failuredocs/claims/prompt-assets.mddocs/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.mddocs/claims/prompt-continuity.mdA captured prompt names the episode it belongs to or records that none could be resolved; the archive is private, bounded and free of credential materialdocs/claims/prompt-continuity.mddocs/claims/provider-capability-evidence.mdWhat each provider can do about the session lifecycle and prompt capture is one declaration with a citation per cell, every surface projects it, and no provider the declaration names goes unreporteddocs/claims/provider-capability-evidence.mddocs/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.mddocs/claims/published-translation-is-declared.mdA published page in another language is declared, and declares itselfdocs/claims/published-translation-is-declared.mddocs/claims/reasoning-survives-the-session.mdA decision and its provenance survive the session: the next session finds them in its context and handover, reuses a standing conclusion instead of consulting again, and reopens it only on new evidencedocs/claims/reasoning-survives-the-session.mddocs/claims/reasoning-works-with-no-advisor.mdMajordomus reasons, decides, implements and validates with no advisor at all: absent advisors are reported as ordinary state, material uncertainty gets a structured local review, and the conclusion claims no independent reviewdocs/claims/reasoning-works-with-no-advisor.mddocs/claims/record-resolution.mdThe right prior record is resolved by worktree and branch, and an unrelated one is never offereddocs/claims/record-resolution.mddocs/claims/record-retention.mdRotating the ledger archives the oldest lines and never deletes themdocs/claims/record-retention.mddocs/claims/record-search.mdDurable records are searchable literally, across kinds, without an indexdocs/claims/record-search.mddocs/claims/region-projection.mdA projection can own only the region between its markersdocs/claims/region-projection.mddocs/claims/release-archive-shape.mdA release archive carries every path once and carries nothing but files and directoriesdocs/claims/release-archive-shape.mddocs/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.mddocs/claims/release-prerelease-channel.mdA tag with a pre-release part is published as a prerelease, recorded on the prerelease channel, and never resolved as the stable release, so an unpinned installer and a node that follows stable keep the highest stable versiondocs/claims/release-prerelease-channel.mddocs/claims/reproduce-command.mdEvery finding carries the command that reproduces itdocs/claims/reproduce-command.mddocs/claims/retention-caps.mdThe append-only ledger and handover store have retention caps that are checkeddocs/claims/retention-caps.mddocs/claims/review-is-never-fabricated.mdA session cannot claim review it did not get: a consultation must name an advisor its recorded plan selected, a conclusion's review is computed, and reasoning check and doctor refuse a forged record, provider coupling, a model credential in CI and a refused claim in a documentdocs/claims/review-is-never-fabricated.mddocs/claims/roadmap-derived.mdThe roadmap is derived from milestone state, and no document may be a second authority for itdocs/claims/roadmap-derived.mddocs/claims/routing.mdRouting recommendations will be derived from measured cost and outcome datadocs/claims/routing.mddocs/claims/rule-exemption-carries-its-reason.mdA rule that no program can express says so, with the reason, and is counted apartdocs/claims/rule-exemption-carries-its-reason.mddocs/claims/rule-proof-is-named-and-resolves.mdEvery rule names what proves it, and every path it names is in the treedocs/claims/rule-proof-is-named-and-resolves.mddocs/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.mddocs/claims/rule-state-is-derived-from-what-ran.mdA rule's proof state is derived from the tree and the ledger togetherdocs/claims/rule-state-is-derived-from-what-ran.mddocs/claims/runtime-adapters.mdOpt-in runtime adapters will clamp read size, output size and fan-out from profile-derived limitsdocs/claims/runtime-adapters.mddocs/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.mddocs/claims/rust-coverage-floor.mdCoverage of the Rust crate is measured with test code out of the denominator, 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 or under the session/continuity domain's own floor in scripts/session-coverage-thresholddocs/claims/rust-coverage-floor.mddocs/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.mddocs/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.mddocs/claims/rustdoc-complete.mdEvery exported item has its rustdoc page at its derived route, and no page is an orphandocs/claims/rustdoc-complete.mddocs/claims/rustdoc-composed-from-the-topology.mdThe site build composes every published static surface from the committed topology, and refuses one whose artifact is absentdocs/claims/rustdoc-composed-from-the-topology.mddocs/claims/rustdoc-discoverable.mdThe crate's rustdoc is a web surface at /rustdoc, declared from the crate and served from the tree its producer wrotedocs/claims/rustdoc-discoverable.mddocs/claims/rustdoc-published.mdThe crate's rustdoc is published at /rustdoc with the site, built from the commit the site namesdocs/claims/rustdoc-published.mddocs/claims/rustdoc-referenced.mdEvery builtin module's page links its page in the crate's referencedocs/claims/rustdoc-referenced.mddocs/claims/rustdoc-verified-live.mdA rustdoc tree built from another commit is refused, before publication and at the public URLdocs/claims/rustdoc-verified-live.mddocs/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.mddocs/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.mddocs/claims/scope-enforcement.mdA touched file outside the claimed scope is a failure, not a warningdocs/claims/scope-enforcement.mddocs/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.mddocs/claims/semantic-retrieval.mdRanked or semantic retrieval over durable records is deliberately not implementeddocs/claims/semantic-retrieval.mddocs/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.mddocs/claims/session-observability.mdThe session subsystem can be watched, not only used: every open episode, what cannot close itself, and which commit the process is answering aboutdocs/claims/session-observability.mddocs/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.mddocs/claims/session-start-prompt.mdA bare claude in a supervised repository starts with the repository's session-start prompt as its first message, and a run with an argument, outside such a repository, with the opt-out, or with a prompt that cannot be rendered is left exactly as it wasdocs/claims/session-start-prompt.mddocs/claims/shared-policy.mdOne policy will be shared across repositories and workersdocs/claims/shared-policy.mddocs/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.mddocs/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.mddocs/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.mddocs/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.mddocs/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.mddocs/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.mddocs/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.mddocs/claims/task-commit-attribution.mdA task will know which commits it produced, rather than inferring them from a rangedocs/claims/task-commit-attribution.mddocs/claims/task-dependencies.mdA task record has no dependencies; sequencing between sessions is not representeddocs/claims/task-dependencies.mddocs/claims/telemetry.mdExecution telemetry will be recorded once a provider exposes it honestlydocs/claims/telemetry.mddocs/claims/the-closing-question-is-measured.mdWhether a task added debt, left a branch or a worktree behind, or grew the backlog is answered by the done invariant from git, the debt baselines and the recorded forge observation, measured from where the task started; a reading that was not taken is unknown, never a passdocs/claims/the-closing-question-is-measured.mddocs/claims/token-savings-measured.mdA total-token change is stated only from verified, matched runsdocs/claims/token-savings-measured.mddocs/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.mddocs/claims/typed-outcome.mdAn outcome is a value from a closed vocabulary, not free textdocs/claims/typed-outcome.mddocs/claims/ui-dashboard-cites-its-sources.mdThe UI's dashboard names the capability behind every value it shows, and never waits for the queuedocs/claims/ui-dashboard-cites-its-sources.mddocs/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.mddocs/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.mddocs/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.mddocs/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.mddocs/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.mddocs/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.mddocs/claims/why-catalogue-discovered.mdAn operational moment is discovered, never registereddocs/claims/why-catalogue-discovered.mddocs/claims/why-diagnosis-explainable.mdA diagnosis is counting, and it says what it counteddocs/claims/why-diagnosis-explainable.mddocs/claims/why-references-resolve.mdEvery reference a moment makes resolvesdocs/claims/why-references-resolve.mddocs/claims/wiring-reconciliation.mdEvery enforcement the policy declares is reconciled against what actually runsdocs/claims/wiring-reconciliation.mddocs/claims/worktree-migration-lossless.mdA misplaced worktree migrates with its work intact, and proves itdocs/claims/worktree-migration-lossless.mddocs/claims/worktree-ownership.mdA task record names its checkout, and another checkout is never held to its scopedocs/claims/worktree-ownership.mddocs/claims/worktree-topology-derived.mdA branch's worktree path is derived, never registereddocs/claims/worktree-topology-derived.md
domain 6
completionCompletion.ai/repo/features/domains/completion.mdcontextContext.ai/repo/features/domains/context.mdcoordinationCoordination.ai/repo/features/domains/coordination.mdevidenceEvidence.ai/repo/features/domains/evidence.mdgovernanceGovernance.ai/repo/features/domains/governance.mdsurfacesSurfaces.ai/repo/features/domains/surfaces.md
feature 29
benchmarksEvery claim about speed is a recorded measurement.ai/repo/features/benchmarks.mdciCI planned from one model, the site deployed from its verified run.ai/repo/features/ci.mdcockpitThe Cockpit: the registry rendered for a person.ai/repo/features/cockpit.mdcommitA commit message is a value this repository judges, not a convention it hopes for.ai/repo/features/commit.mdcontextEvery directory of the layer carries its contract, and a worker reads what applies.ai/repo/features/context.mdcontinuitySessions, prompts and handovers that outlive the conversation.ai/repo/features/continuity.mdcoordinationSeveral agents on one repository, without stepping on each other.ai/repo/features/coordination.mdcoverageNew code is covered, measured once and asked two questions.ai/repo/features/coverage.mddeclare-onceDeclare once, derive every interface.ai/repo/features/declare-once.mddeploymentsA deployment is one canonical object, and every artifact built from it is generated from it.ai/repo/features/deployments.mddoctrineRules a machine decides, wired, tested and CI-blocking.ai/repo/features/doctrine.mdeconomicsToken economics, measured from matched runs and never typed.ai/repo/features/economics.mdevidenceA claim is proven by a run that happened, not by a file that exists.ai/repo/features/evidence.mdfinish-contractDone is a contract, evaluated line by line and refused when unmet.ai/repo/features/finish-contract.mdinstallOne command to install, one to initialise, nothing else to trust.ai/repo/features/install.mdinterfacesOne registry over the command line, HTTP, OpenAPI, Swagger UI and MCP.ai/repo/features/interfaces.mdknowledgeDecisions and knowledge that compound instead of evaporating.ai/repo/features/knowledge.mdmeshSessions on several machines work one repository without colliding.ai/repo/features/mesh.mdmodelsThe models the world offers, declared once and routed with reasons.ai/repo/features/models.mdobservatoryThe Observatory: the repository and its mesh, drawn for a wall.ai/repo/features/observatory.mdplanningMilestones and issues as data; status derived, never stored.ai/repo/features/planning.mdpolicyOne policy, projected into every tool's instruction file.ai/repo/features/policy.mdprovenanceEvery record names the commit, the branch and the episode that made it.ai/repo/features/provenance.mdreasoningReasoning that works with or without advisors, and review that is recorded rather than claimed.ai/repo/features/reasoning.mdskillsSkills are procedures as data, discovered and checked, never registered.ai/repo/features/skills.mduimajordomus ui: the delivery, for a person.ai/repo/features/ui.mduse-casesEvery use case is executed against the tool, not described.ai/repo/features/use-cases.mdwhyThe failure modes it answers are objects, not marketing pages.ai/repo/features/why.mdworktreesOne branch, one worktree, at a path derived from git.ai/repo/features/worktrees.md
gap 5
a-browser-computes-what-the-server-verifiesa-browser-computes-what-the-server-verifies.ai/repo/project/gaps/a-browser-computes-what-the-server-verifies.yamla-session-leaves-what-it-observeda-session-leaves-what-it-observed.ai/repo/project/gaps/a-session-leaves-what-it-observed.yamlintent-bound-workintent-bound-work.ai/repo/project/gaps/intent-bound-work.yamlintent-planningintent-planning.ai/repo/project/gaps/intent-planning.yamlthe-owner-directs-work-from-the-uithe-owner-directs-work-from-the-ui.ai/repo/project/gaps/the-owner-directs-work-from-the-ui.yaml
implementation 52
bin/majordomusbin/majordomusbin/majordomus-clibin/majordomus-clibin/majordomus-envbin/majordomus-envbin/majordomus-mcpbin/majordomus-mcplib/adr.shlib/adr.shlib/archive.shlib/archive.shlib/bench.shlib/bench.shlib/capture.shlib/capture.shlib/changed.shlib/changed.shlib/check.shlib/check.shlib/checkpoint.shlib/checkpoint.shlib/commands.shlib/commands.shlib/common.shlib/common.shlib/context.shlib/context.shlib/context_docs.shlib/context_docs.shlib/decision.shlib/decision.shlib/deployment.shlib/deployment.shlib/derive.shlib/derive.shlib/doctor.shlib/doctor.shlib/doctrine.shlib/doctrine.shlib/evidence.shlib/evidence.shlib/finish.shlib/finish.shlib/gates.shlib/gates.shlib/handover.shlib/handover.shlib/history.shlib/history.shlib/init.shlib/init.shlib/intent_binding.shlib/intent_binding.shlib/json_scan.awklib/json_scan.awklib/json_unesc.awklib/json_unesc.awklib/knowledge.awklib/knowledge.awklib/knowledge.shlib/knowledge.shlib/machine_lock.shlib/machine_lock.shlib/mermaid.awklib/mermaid.awklib/migrate.shlib/migrate.shlib/plan.shlib/plan.shlib/plan_json.awklib/plan_json.awklib/project.awklib/project.awklib/project.shlib/project.shlib/prompt.shlib/prompt.shlib/question.shlib/question.shlib/recover.shlib/recover.shlib/rules.shlib/rules.shlib/rust_bin.shlib/rust_bin.shlib/search.shlib/search.shlib/session.shlib/session.shlib/session_context.shlib/session_context.shlib/sha256.shlib/sha256.shlib/skills.shlib/skills.shlib/start.shlib/start.shlib/update.shlib/update.shlib/usecase.shlib/usecase.shlib/watch.shlib/watch.sh
intent 43
a-brief-is-reconciled-into-the-planAn external brief enters as a revision with provenance, and its requirements are reconciled into the one plan.ai/repo/project/intents/a-brief-is-reconciled-into-the-plan.yamla-browser-computes-what-the-server-verifiesA browser computes for a project with the same code the server runs, and nothing it returns is trusted until the server has recomputed it.ai/repo/project/intents/a-browser-computes-what-the-server-verifies.yamla-build-reuses-what-the-mesh-already-builtA build reuses what any node of its platform already built or fetched, and is exactly as correct when nothing can be reused.ai/repo/project/intents/a-build-reuses-what-the-mesh-already-built.yamla-change-is-judged-in-minutesA change is derived in under a second and judged in minutes, and nothing that could have changed is skipped.ai/repo/project/intents/a-change-is-judged-in-minutes.yamla-change-reconciles-what-it-affectsA prompt, a change or an inference is reconciled with the intents, issues, knowledge and evidence it affects, deterministically, under one identity on every surface.ai/repo/project/intents/a-change-reconciles-what-it-affects.yamla-claim-stands-only-on-its-evidenceA claim that something is enforced, tested or delivered stands only on recorded evidence that would have caught it being false.ai/repo/project/intents/a-claim-stands-only-on-its-evidence.yamla-person-runs-majordomus-from-a-phoneA person runs Majordomus from a phone with nothing missing that the desktop offers.ai/repo/project/intents/a-person-runs-majordomus-from-a-phone.yamla-provider-carries-the-contract-nativelyEach agent client enforces and observes the repository's contract through its own extension points, generated from the registry.ai/repo/project/intents/a-provider-carries-the-contract-natively.yamla-session-leaves-what-it-observedEvery managed session leaves what it observed, and the repository groups and routes it without being asked.ai/repo/project/intents/a-session-leaves-what-it-observed.yamla-session-proceeds-through-the-meshEvery supervised session realises intents by proceeding through the mesh, unasked, resumably and watched.ai/repo/project/intents/a-session-proceeds-through-the-mesh.yamla-session-record-says-what-it-servedA session's lifecycle has one writer, and its record says what it served and whether it is complete.ai/repo/project/intents/a-session-record-says-what-it-served.yamla-stranger-adopts-it-unaidedA developer who has never met the maintainer adopts Majordomus and is stopped from a false done within ten minutes.ai/repo/project/intents/a-stranger-adopts-it-unaided.yamla-version-follows-every-sessionEvery session's and every milestone's landed work reaches a measured, released version.ai/repo/project/intents/a-version-follows-every-session.yamla-visitor-understands-and-checks-majordomusA first-time visitor of majordomus.dev understands what Majordomus does and can check every claim it makes.ai/repo/project/intents/a-visitor-understands-and-checks-majordomus.yamlan-authorised-node-connects-from-anywhereAn authorised node reaches another across LAN, tailnet or NAT, and says how.ai/repo/project/intents/an-authorised-node-connects-from-anywhere.yamlcampaigns-are-provenance-the-plan-readsA prompt pack the owner hands over is a campaign every record it drove can cite.ai/repo/project/intents/campaigns-are-provenance-the-plan-reads.yamlentry-proves-what-it-handedEvery session knows the governance and context it started under, and is told when either moves.ai/repo/project/intents/entry-proves-what-it-handed.yamlevery-capability-has-one-owner-and-the-cli-never-buildsNo ordinary command does undeclared expensive work: no entry path builds implicitly, and every caller declares what a missing or stale executable means.ai/repo/project/intents/every-capability-has-one-owner-and-the-cli-never-builds.yamlevery-card-unfolds-into-what-it-summarisesEvery card of the site unfolds into what it summarises, recursively.ai/repo/project/intents/every-card-unfolds-into-what-it-summarises.yamlevery-model-call-is-paid-from-a-declared-sourceHow a model call Majordomus starts can be paid is declared by the vendor with evidence, and each call names the source it was declared to draw on.ai/repo/project/intents/every-model-call-is-paid-from-a-declared-source.yamlevery-sessions-usage-is-observedWhat every AI session consumed is observed from the provider, attributed to the work it served, and never estimated into a fact.ai/repo/project/intents/every-sessions-usage-is-observed.yamlevery-surface-follows-what-changedEvery surface follows what changed in the repository by push, and a surface that does not says so.ai/repo/project/intents/every-surface-follows-what-changed.yamlfinished-work-reaches-a-verified-releaseFinished work reaches a verified release at the pace it is finished.ai/repo/project/intents/finished-work-reaches-a-verified-release.yamlintent-bound-workWork starts bound to the intent it serves, and a worker resumes knowing whether that intent moved.ai/repo/project/intents/intent-bound-work.yamlintent-lifecycleEvery change can be traced to the intent it serves, and an intent reads satisfied only when evidence says so.ai/repo/project/intents/intent-lifecycle.yamlintent-planningThe plan of an intent is checked against it before execution, from a recorded gap and a recorded critique.ai/repo/project/intents/intent-planning.yamllanding-survives-any-sessionLanding green work survives any session, any restart and any machine.ai/repo/project/intents/landing-survives-any-session.yamlmerging-and-referencing-are-enforcedMerging and referencing are enforced: every pull request carries its metadata, every reference resolves, every number is taken once.ai/repo/project/intents/merging-and-referencing-are-enforced.yamlmission-global-skill-availability-and-autonomous-lifecycle# MISSION: Global Skill Availability and Autonomous Lifecycle Convergence.ai/repo/project/intents/mission-global-skill-availability-and-autonomous-lifecycle.yamlnothing-in-the-mesh-waits-on-something-deadNothing in the mesh waits on something dead, and nothing alive is killed.ai/repo/project/intents/nothing-in-the-mesh-waits-on-something-dead.yamlone-bar-and-one-language-on-every-surfaceOne bar, and the reader's language, on every surface of the product.ai/repo/project/intents/one-bar-and-one-language-on-every-surface.yamloperation-convergencev1.0.0-alpha.1 ships only what is proved on the commit it is cut from.ai/repo/project/intents/operation-convergence.yamlrepository-automation-is-typedRepository automation is typed capabilities that Rhai orchestrates, and domain-logic shell only shrinks.ai/repo/project/intents/repository-automation-is-typed.yamlthe-layer-evolves-when-it-is-dueThe repository decides when its layer should evolve, and a session carries it out.ai/repo/project/intents/the-layer-evolves-when-it-is-due.yamlthe-mesh-is-operated-from-any-deviceThe owner understands and operates the whole mesh from one page, on any device.ai/repo/project/intents/the-mesh-is-operated-from-any-device.yamlthe-owner-directs-work-from-the-uiThe owner directs the repository's development from the UI, from an intent to the move that starts its next issue.ai/repo/project/intents/the-owner-directs-work-from-the-ui.yamlthe-owner-oversees-the-mesh-from-one-pageThe owner oversees and moves the whole mesh from one page that reads the runtime and owns nothing.ai/repo/project/intents/the-owner-oversees-the-mesh-from-one-page.yamlthe-peer-blackboard-is-one-realityWho works on what, holding which claim and talking to whom, is one projection every surface follows live.ai/repo/project/intents/the-peer-blackboard-is-one-reality.yamlthe-product-proves-it-paysMajordomus proves, by measured runs, that it delivers accepted work with less cost, risk and human effort than the same agents without it.ai/repo/project/intents/the-product-proves-it-pays.yamlthe-product-shows-what-it-caughtMajordomus shows from its own records what it caught that would otherwise have passed, and what being caught cost.ai/repo/project/intents/the-product-shows-what-it-caught.yamlthe-site-is-always-fully-multilingualThe published site is always fully multilingual, every language derived from the English build.ai/repo/project/intents/the-site-is-always-fully-multilingual.yamlthe-ui-runs-and-explains-the-workFrom the UI the owner runs any capability, reads first what needs them, finds any entity, and sees whose version and where a page's time went.ai/repo/project/intents/the-ui-runs-and-explains-the-work.yamlwhat-a-workspace-decides-reaches-the-repository-with-its-sourceWhat the owner decides in a vendor workspace reaches the repository, and every promoted record opens the message it came from.ai/repo/project/intents/what-a-workspace-decides-reaches-the-repository-with-its-source.yaml
issue 1027
I0001Audit what actually plans work in this repository.ai/repo/project/issues/I0001.yamlI0002Define the canonical milestone and issue schema.ai/repo/project/issues/I0002.yamlI0003Implement the model loader and the status derivation engine.ai/repo/project/issues/I0003.yamlI0004Implement DAG validation and execution waves.ai/repo/project/issues/I0004.yamlI0005Implement the plan command surface.ai/repo/project/issues/I0005.yamlI0006Generate the Mermaid DAG from the graph.ai/repo/project/issues/I0006.yamlI0007Enforce the canonical model as doctrine.ai/repo/project/issues/I0007.yamlI0008Project the model to GitHub milestones and issues.ai/repo/project/issues/I0008.yamlI0009Project the model into the website.ai/repo/project/issues/I0009.yamlI0010Behavioural tests for schema, status, graph and command.ai/repo/project/issues/I0010.yamlI0011Cross-surface consistency and mutation tests.ai/repo/project/issues/I0011.yamlI0012Make CI refuse an invalid model or a stale projection.ai/repo/project/issues/I0012.yamlI0013Document the semantics and the dogfooding rule.ai/repo/project/issues/I0013.yamlI0014Make the worker instructions require the model.ai/repo/project/issues/I0014.yamlI0015Open the first real milestone and execute one issue through it.ai/repo/project/issues/I0015.yamlI0101Reproduce the escaped blocker as an executable case.ai/repo/project/issues/I0101.yamlI0102Decide whether a question transfers or the gate widens.ai/repo/project/issues/I0102.yamlI0103Implement the decision and prove it holds.ai/repo/project/issues/I0103.yamlI0104Move the claim from planned to guaranteed.ai/repo/project/issues/I0104.yamlI0201Declare which profile axis may become which runtime limit.ai/repo/project/issues/I0201.yamlI0202Resolve a task's effective limits and print them as data.ai/repo/project/issues/I0202.yamlI0203Make enforcement opt-in, and prove a repository that declines is unaffected.ai/repo/project/issues/I0203.yamlI0204Apply one derived limit for real and prove it changes what happens.ai/repo/project/issues/I0204.yamlI0205Declare the clamp as a doctrine so the mapping and the adapter cannot drift.ai/repo/project/issues/I0205.yamlI0206Publish the runtime-adapters claim with the test that proves it and the limits it does not cover.ai/repo/project/issues/I0206.yamlI0301Define the execution record, including what an absence looks like.ai/repo/project/issues/I0301.yamlI0302Record telemetry a provider reports, and refuse anything it did not.ai/repo/project/issues/I0302.yamlI0303Prove a silent provider produces an explicit absence, never a guess.ai/repo/project/issues/I0303.yamlI0304Read the measurements back through the history surface, under a bound.ai/repo/project/issues/I0304.yamlI0305Publish the telemetry claim and record what remains unmeasured.ai/repo/project/issues/I0305.yamlI0401Define an accepted outcome, and join it to its measurements without storing the join.ai/repo/project/issues/I0401.yamlI0402Report cost only where measurement and acceptance both exist.ai/repo/project/issues/I0402.yamlI0403Make a thin denominator say so rather than average it away.ai/repo/project/issues/I0403.yamlI0404Publish the cost-per-outcome claim with its unit defined beside it.ai/repo/project/issues/I0404.yamlI0501Group comparable work from what the records already carry.ai/repo/project/issues/I0501.yamlI0502Recommend a profile from measured cost, naming the measurements.ai/repo/project/issues/I0502.yamlI0503Return no recommendation where the data is too thin, and say why.ai/repo/project/issues/I0503.yamlI0504Prove the recommendation is advisory and publish it as such.ai/repo/project/issues/I0504.yamlI0601Let a policy name a shared source it does not copy.ai/repo/project/issues/I0601.yamlI0602Make a local override explicit and prove it survives an update of the shared source.ai/repo/project/issues/I0602.yamlI0603Report drift from the shared policy in one command.ai/repo/project/issues/I0603.yamlI0604Prove the offline guarantee survives sharing.ai/repo/project/issues/I0604.yamlI0605Publish the shared-policy claim and what sharing still cannot do.ai/repo/project/issues/I0605.yamlI0701Reproduce the misattribution as an executable case.ai/repo/project/issues/I0701.yamlI0702Decide how a record is attributed, between named alternatives.ai/repo/project/issues/I0702.yamlI0703Implement the decision and prove it holds.ai/repo/project/issues/I0703.yamlI0704Publish what attribution guarantees, and what it still cannot.ai/repo/project/issues/I0704.yamlI0801Narrow the Clean Extraction Boundary and record what was adopted.ai/repo/project/issues/I0801.yamlI0802Specify the session record before writing one.ai/repo/project/issues/I0802.yamlI0803Open a session and report its status.ai/repo/project/issues/I0803.yamlI0804Close a session into an envelope derived from the ledger.ai/repo/project/issues/I0804.yamlI0805Read sessions back with a divergence label.ai/repo/project/issues/I0805.yamlI0806Make the session rules doctrines, with retention and archiving.ai/repo/project/issues/I0806.yamlI0807Discover knowledge sources from git, not from the filesystem.ai/repo/project/issues/I0807.yamlI0808Extract nodes with identities that survive a rebuild.ai/repo/project/issues/I0808.yamlI0809Record only edges that a file states, each with where it was observed.ai/repo/project/issues/I0809.yamlI0810A content-hash manifest that makes a second sync cheap.ai/repo/project/issues/I0810.yamlI0811Read-only knowledge lookup with an ordering that can be explained.ai/repo/project/issues/I0811.yamlI0812Validate the graph, and let doctor and watch ask the same validator.ai/repo/project/issues/I0812.yamlI0813A closed session becomes a node that points at its episode.ai/repo/project/issues/I0813.yamlI0814Give the worker a bounded slice of knowledge, not the knowledge base.ai/repo/project/issues/I0814.yamlI0815Say what is now true in the claims, the documentation and the worker instructions.ai/repo/project/issues/I0815.yamlI0816Prove the loop on a real issue, without a transcript.ai/repo/project/issues/I0816.yamlI0817Phase timing and work counters behind MJ_TIMING.ai/repo/project/issues/I0817.yamlI0818The command registry is read in one pass.ai/repo/project/issues/I0818.yamlI0819The project model is loaded with one flatten per file and no per-file lookups.ai/repo/project/issues/I0819.yamlI0820Catalogue, DAG, context and command-surface validators read their inputs once.ai/repo/project/issues/I0820.yamlI0821Flattened YAML is cached under .ai/local/cache by content hash.ai/repo/project/issues/I0821.yamlI0822Every canonical file is flattened at most once per command.ai/repo/project/issues/I0822.yamlI0823majordomus bench: targets derived from the command registry.ai/repo/project/issues/I0823.yamlI0824Bench persists local runs and keeps a latest projection.ai/repo/project/issues/I0824.yamlI0825An explicit committed baseline.ai/repo/project/issues/I0825.yamlI0826bench --check refuses a regression by policy.ai/repo/project/issues/I0826.yamlI0827The benchmark policy block.ai/repo/project/issues/I0827.yamlI0828doctor under a declared budget, and the hook inherits it.ai/repo/project/issues/I0828.yamlI0829Performance doctrine as project rules.ai/repo/project/issues/I0829.yamlI0830docs/PERFORMANCE.md, README, CONTRIBUTING and CLI reference.ai/repo/project/issues/I0830.yamlI0831Performance claims at their proven status.ai/repo/project/issues/I0831.yamlI0832generate-site-data instrumented and its hot spots removed.ai/repo/project/issues/I0832.yamlI0833knowledge nodes and edges read each source once.ai/repo/project/issues/I0833.yamlI0834The test runner reports per-case time and the suite budget.ai/repo/project/issues/I0834.yamlI0835CI runs the structural performance checks.ai/repo/project/issues/I0835.yamlI0836A synthetic repository generator for scaling cases.ai/repo/project/issues/I0836.yamlI0837Timing report as JSON.ai/repo/project/issues/I0837.yamlI0838bench compare and the top regressions report.ai/repo/project/issues/I0838.yamlI0839watch inherits every doctor fix and its own budget.ai/repo/project/issues/I0839.yamlI0840context and its subcommands under a second.ai/repo/project/issues/I0840.yamlI0841Cache equivalence proved by property-shaped cases.ai/repo/project/issues/I0841.yamlI0842Before and after evidence for every optimisation.ai/repo/project/issues/I0842.yamlI0843The performance workflow is discoverable and complete.ai/repo/project/issues/I0843.yamlI0901The deployment description is a kind of the layer, not a provider file.ai/repo/project/issues/I0901.yamlI0902The deployment object becomes typed Rust that refuses nonsense.ai/repo/project/issues/I0902.yamlI0903Deployment reads are declared once and projected everywhere.ai/repo/project/issues/I0903.yamlI0904The listen address is one fact with two projections.ai/repo/project/issues/I0904.yamlI0905Liveness and readiness are registered capabilities, not router hacks.ai/repo/project/issues/I0905.yamlI0906Termination is graceful and proved against the real container.ai/repo/project/issues/I0906.yamlI0907The running process says what it is, from an allowlist.ai/repo/project/issues/I0907.yamlI0908A hosted process has no repository, and says so instead of failing.ai/repo/project/issues/I0908.yamlI0909The production image is a generated projection of the build specification.ai/repo/project/issues/I0909.yamlI0910The release profile is chosen by measurement, not by folklore.ai/repo/project/issues/I0910.yamlI0911A source change does not rebuild the world, and the context stays small.ai/repo/project/issues/I0911.yamlI0912The image serves the site the canonical pipeline produced.ai/repo/project/issues/I0912.yamlI0913The provider configuration is generated, and the cheap profile is declared.ai/repo/project/issues/I0913.yamlI0914One deployment core, one command, and a dry run that mutates nothing.ai/repo/project/issues/I0914.yamlI0915Deployment joins the diagnostics that already exist.ai/repo/project/issues/I0915.yamlI0916The smoke suite is derived from the route registry, never written twice.ai/repo/project/issues/I0916.yamlI0917A bad deployment can be undone deterministically.ai/repo/project/issues/I0917.yamlI0918The bootstrap credential is used once and belongs to nothing.ai/repo/project/issues/I0918.yamlI0919Nothing secret and nothing local leaves in the image.ai/repo/project/issues/I0919.yamlI0920The image's dependencies are known and its advisories are policy.ai/repo/project/issues/I0920.yamlI0921Size is measured first and budgeted second.ai/repo/project/issues/I0921.yamlI0922The memory hypothesis is tested, not asserted.ai/repo/project/issues/I0922.yamlI0923Cold start and endpoint cost are benchmark targets like everything else.ai/repo/project/issues/I0923.yamlI0924The decision is recorded where architecture decisions are recorded.ai/repo/project/issues/I0924.yamlI0925Every deployment rule is a check that runs.ai/repo/project/issues/I0925.yamlI0926The deployment documentation is generated and reachable.ai/repo/project/issues/I0926.yamlI0927The cockpit shows the deployment from the same data.ai/repo/project/issues/I0927.yamlI0928A pull request cannot merge a deployment that would not work.ai/repo/project/issues/I0928.yamlI0929Production deploys from CI with a token scoped to one application.ai/repo/project/issues/I0929.yamlI0930The real image runs under the real limits before anything is deployed.ai/repo/project/issues/I0930.yamlI0931The application exists, one machine runs it, and the URL answers.ai/repo/project/issues/I0931.yamlI0932The milestone is accepted on its evidence.ai/repo/project/issues/I0932.yamlI1001One typed graph composes the registries that already own their facts.ai/repo/project/issues/I1001.yamlI1002Relations are typed, inferred from stable identities, and never dangle.ai/repo/project/issues/I1002.yamlI1003Skills, rules, decisions, documents, use cases and benchmarks enter the graph as themselves.ai/repo/project/issues/I1003.yamlI1004Availability and visibility are metadata, not conditions in a template.ai/repo/project/issues/I1004.yamlI1005The graph is a generated artifact with a schema and no unsafe field.ai/repo/project/issues/I1005.yamlI1006The runtime reads the graph through the registry, like every other read.ai/repo/project/issues/I1006.yamlI1007The site renders the same graph, generated once.ai/repo/project/issues/I1007.yamlI1008The two projections are proved to be the same model.ai/repo/project/issues/I1008.yamlI1009Every menu in this repository comes from one derivation.ai/repo/project/issues/I1009.yamlI1010The overview is what exists, counted rather than claimed.ai/repo/project/issues/I1010.yamlI1011The coverage matrix reports evidence, and never a green cell without one.ai/repo/project/issues/I1011.yamlI1012One detail view, assembled from what a node actually has.ai/repo/project/issues/I1012.yamlI1013Search over the graph, generated, with nothing to run.ai/repo/project/issues/I1013.yamlI1014The relation view reads the graph and holds no data of its own.ai/repo/project/issues/I1014.yamlI1015A surface with no server behind it is not offered as if it had one.ai/repo/project/issues/I1015.yamlI1016The Cockpit works on a phone and before JavaScript runs.ai/repo/project/issues/I1016.yamlI1017Live state is an overlay that degrades to nothing.ai/repo/project/issues/I1017.yamlI1018The surface rules exist as checks, proved by making them fail.ai/repo/project/issues/I1018.yamlI1019One skill runs the whole loop, and is itself in the graph.ai/repo/project/issues/I1019.yamlI1020The graph's health is answered by the doctor that already answers everything else.ai/repo/project/issues/I1020.yamlI1021A browser proves the interface, at the widths people use.ai/repo/project/issues/I1021.yamlI1022Drift in any derived surface fails the build.ai/repo/project/issues/I1022.yamlI1023Nothing private reaches a published page.ai/repo/project/issues/I1023.yamlI1024The interface has a weight, and it is measured.ai/repo/project/issues/I1024.yamlI1025The federated model and its two projections are an architecture decision.ai/repo/project/issues/I1025.yamlI1026The architecture explains itself, from inside itself.ai/repo/project/issues/I1026.yamlI1027A synthetic capability proves the architecture instead of describing it.ai/repo/project/issues/I1027.yamlI1028The inventories this replaces are removed, not left running beside it.ai/repo/project/issues/I1028.yamlI1029The gate refuses what would silently break the interface.ai/repo/project/issues/I1029.yamlI1030The milestone is accepted on its evidence.ai/repo/project/issues/I1030.yamlI1031A served surface says which checkout it is serving.ai/repo/project/issues/I1031.yamlI1101What this tool leaves behind, established by inspection rather than by memory.ai/repo/project/issues/I1101.yamlI1102The two namespaces are a typed contract, not a habit.ai/repo/project/issues/I1102.yamlI1103Whether a file is authored or derived is a field, not a naming convention.ai/repo/project/issues/I1103.yamlI1104Both namespaces carry their contracts, all the way down.ai/repo/project/issues/I1104.yamlI1105The repository is discovered once, into one model.ai/repo/project/issues/I1105.yamlI1106The registries are views of the model, not separate discoveries.ai/repo/project/issues/I1106.yamlI1107Discovery is deterministic, cached, and its cost is known.ai/repo/project/issues/I1107.yamlI1108The desired integration is a value, and the plan is a diff.ai/repo/project/issues/I1108.yamlI1109Everything placed outside the two namespaces is recorded, with what it was.ai/repo/project/issues/I1109.yamlI1110The second run changes nothing, and a test says so.ai/repo/project/issues/I1110.yamlI1111Uninstall gives back exactly what was taken.ai/repo/project/issues/I1111.yamlI1112What touches the root is two small blocks, and they never change again.ai/repo/project/issues/I1112.yamlI1113Entering a directory is local, bounded and silent about the network.ai/repo/project/issues/I1113.yamlI1114A provider is an adapter over the model, and adding one is an implementation.ai/repo/project/issues/I1114.yamlI1115Completion comes from the command model, not from a second list.ai/repo/project/issues/I1115.yamlI1116This repository's own footprint moves, through the reconciler.ai/repo/project/issues/I1116.yamlI1117The hand-maintained lists are removed, not left running beside the derivation.ai/repo/project/issues/I1117.yamlI1118Every invariant of this milestone is a rule with a check that runs.ai/repo/project/issues/I1118.yamlI1119The budgets are measured, and a regression fails rather than being noticed.ai/repo/project/issues/I1119.yamlI1120A refusal says what to do about it.ai/repo/project/issues/I1120.yamlI1121Every surface shows the integration from the one model.ai/repo/project/issues/I1121.yamlI1122A foreign repository, adopted, upgraded and given back.ai/repo/project/issues/I1122.yamlI1123The milestone is accepted on its evidence.ai/repo/project/issues/I1123.yamlI1201An identity provider is a declarative object, and Google and Facebook are two of them.ai/repo/project/issues/I1201.yamlI1202One typed provider model reads the objects, and no code names a provider.ai/repo/project/issues/I1202.yamlI1203One flow serves every provider, and it refuses everything it did not start.ai/repo/project/issues/I1203.yamlI1204The session is signed, short, and revocable from the server.ai/repo/project/issues/I1204.yamlI1205Identity is resolved once, in the router, and every surface reads it from there.ai/repo/project/issues/I1205.yamlI1206What an anonymous reader may do is derived from the effect classification, not from a list.ai/repo/project/issues/I1206.yamlI1207No credential reaches any output, and hostile provider metadata renders safely.ai/repo/project/issues/I1207.yamlI1208Adding a provider is one file, removing one is one deletion, and both are executed rather than described.ai/repo/project/issues/I1208.yamlI1301A workspace is a declared object of the layer; only its content is local.ai/repo/project/issues/I1301.yamlI1302Identity, provenance and support level are typed fields, not prose.ai/repo/project/issues/I1302.yamlI1303The store is bounded, measured and invisible to every published projection.ai/repo/project/issues/I1303.yamlI1304The browser transport is the one this repository already drives.ai/repo/project/issues/I1304.yamlI1305An observed contract has a fingerprint, a compatibility state and a fixture.ai/repo/project/issues/I1305.yamlI1306A sync resumes, repeats itself without harm, and says how fresh it is.ai/repo/project/issues/I1306.yamlI1307The ChatGPT shape is mapped from evidence and never becomes the canonical model.ai/repo/project/issues/I1307.yamlI1308The executable's share is one capability, shaped like continuity.ai/repo/project/issues/I1308.yamlI1309The boundaries this milestone asserts are gates, not sentences.ai/repo/project/issues/I1309.yamlI1310The subsystem is documented where a person looks, and the plan is closed against the repository.ai/repo/project/issues/I1310.yamlI1401The identity of a projected record is what the record carries, not what its title says.ai/repo/project/issues/I1401.yamlI1402A 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.yamlI1403Backfill the projection once, deliberately, and record what it created.ai/repo/project/issues/I1403.yamlI1404The drift check is a gate, so a projection that stops being applied cannot stay silent.ai/repo/project/issues/I1404.yamlI1405A pull request names the issue it realises, and the edge is derived rather than remembered.ai/repo/project/issues/I1405.yamlI1406The plan's derivations are capabilities, so every surface reads the readiness the terminal reads.ai/repo/project/issues/I1406.yamlI1407One issue travels the whole path and back, as an executable case.ai/repo/project/issues/I1407.yamlI1408The documents stop claiming a projection nobody runs.ai/repo/project/issues/I1408.yamlI1409Derived data stops hashing inputs it cannot control.ai/repo/project/issues/I1409.yamlI1501An execution a person starts is an execution the server can see.ai/repo/project/issues/I1501.yamlI1502A server serving code that no longer exists stops calling itself ready.ai/repo/project/issues/I1502.yamlI1503A closed session is not closed a second time under the same identity.ai/repo/project/issues/I1503.yamlI1504One development transition is a capability, end to end.ai/repo/project/issues/I1504.yamlI1505A mutating capability leaves a durable event, and the ledger can be read back.ai/repo/project/issues/I1505.yamlI1506The lifecycle commands become non-interactive capabilities.ai/repo/project/issues/I1506.yamlI1507Issues, milestones, sessions and peers reach the Cockpit as projections.ai/repo/project/issues/I1507.yamlI1508The navigation is derived from the dispatcher, not kept beside it.ai/repo/project/issues/I1508.yamlI1509A detail page that pages nothing has outgrown the reason it pages nothing.ai/repo/project/issues/I1509.yamlI1510A gap the audit calls planned names a plan object that exists.ai/repo/project/issues/I1510.yamlI1511The documentation surface answers in a checkout that has not built the site.ai/repo/project/issues/I1511.yamlI1512Gate state is something the runtime can answer.ai/repo/project/issues/I1512.yamlI1516The adapter composes a projected body in one place.ai/repo/project/issues/I1516.yamlI1520A step that runs out of time says so itself.ai/repo/project/issues/I1520.yamlI1600The challenge is one recorded run, and every public surface replays it.ai/repo/project/issues/I1600.yamlI1800The sandboxed engine a scripted capability runs in.ai/repo/project/issues/I1800.yamlI1801A scripted capability is a kind, discovered and registered, runnable and projected like any capability.ai/repo/project/issues/I1801.yamlI1802Nothing runs Perl.ai/repo/project/issues/I1802.yamlI1803New shell is refused without a declared exemption, and the migration inventory is tracked.ai/repo/project/issues/I1803.yamlI1804The first shell scripts become scripted capabilities over typed Rust.ai/repo/project/issues/I1804.yamlI1900An intent is a typed record whose stage and satisfaction are derived.ai/repo/project/issues/I1900.yamlI1901An issue names the intent criterion it serves, and coverage is derived.ai/repo/project/issues/I1901.yamlI1902The gap and the critique of an intent are typed records the plan is held to.ai/repo/project/issues/I1902.yamlI1903The work realising an intent is joined across episodes, providers and handovers.ai/repo/project/issues/I1903.yamlI1945The test-evidence decision and its plan are recorded.ai/repo/project/issues/I1945.yamlI1946The verdict words are status words of the design system.ai/repo/project/issues/I1946.yamlI1947Every feature reaches a test, and every use case has a feature.ai/repo/project/issues/I1947.yamlI1948Evidence is judged at the presented revision, by one freshness function.ai/repo/project/issues/I1948.yamlI1949CI evidence is recorded clean, and its report is the tracked ledger's verdict.ai/repo/project/issues/I1949.yamlI1950Text a run printed is redacted by one rule set.ai/repo/project/issues/I1950.yamlI1951Evidence runs are typed, and a recording carries what its run measured.ai/repo/project/issues/I1951.yamlI1952Evidence subjects are derived once, in Rust.ai/repo/project/issues/I1952.yamlI1953Evidence answers by subject, on every surface.ai/repo/project/issues/I1953.yamlI1954Every runner reaches the ledger, through the recording branch.ai/repo/project/issues/I1954.yamlI1955The evidence publication is an allow-listed projection.ai/repo/project/issues/I1955.yamlI1956The Cockpit shows evidence by subject.ai/repo/project/issues/I1956.yamlI1957Every test line is read, and a local run stays local.ai/repo/project/issues/I1957.yamlI1958Evidence has one route per subject, and every panel is joined to its subject.ai/repo/project/issues/I1958.yamlI1959The evidence publication is typed, bound to its build, and kept on gh-pages.ai/repo/project/issues/I1959.yamlI1960Every widget names its proof.ai/repo/project/issues/I1960.yamlI1961A deploy verifies the evidence routes it publishes.ai/repo/project/issues/I1961.yamlI1962The evidence gates read subject findings and widgets.ai/repo/project/issues/I1962.yamlI1963Evidence is tested end to end.ai/repo/project/issues/I1963.yamlI1964The evidence reference is documented and held to the tree.ai/repo/project/issues/I1964.yamlI1965The entry preflight reads the one verdict.ai/repo/project/issues/I1965.yamlI1966The composed graph is whole or its generation refuses.ai/repo/project/issues/I1966.yamlI1967A reporter that sets a flag is a reporter.ai/repo/project/issues/I1967.yamlI1980A layer names the tool version it was written for, and doctor tells version skew from defects.ai/repo/project/issues/I1980.yamlI1981A command's effect class is declared per subcommand and flag, and live scenarios judge the whole argv.ai/repo/project/issues/I1981.yamlI1982Plan stamps written before seals existed are re-sealed by a command that keeps their original times.ai/repo/project/issues/I1982.yamlI1983Upgrading the vendored rules reports or applies the policy and source keys those rules depend on.ai/repo/project/issues/I1983.yamlI1984Knowledge candidates never leave untracked files on a trunk that only pull requests change.ai/repo/project/issues/I1984.yamlI1985A knowledge candidate relates to its own decision and commit, not to the whole episode.ai/repo/project/issues/I1985.yamlI1986The vendored rule package says nothing that is only true of this repository.ai/repo/project/issues/I1986.yamlI1987A knowledge record's file provenance survives the file's deletion.ai/repo/project/issues/I1987.yamlI1988A use case's setup scripts live where the adopter declares, and its scenarios may run the adopter's own commands.ai/repo/project/issues/I1988.yamlI1989init seeds a scope for the stack it finds, not for this repository's.ai/repo/project/issues/I1989.yamlI1990The pre-push check judges the refs being pushed, or says why the checkout's task binds them.ai/repo/project/issues/I1990.yamlI1991A comment-only edit of the policy regenerates no bootstrap.ai/repo/project/issues/I1991.yamlI1992A rebuild that fails consumes no change: the next request retries it.ai/repo/project/issues/I1992.yamlI1995Work a session left uncommitted in a worktree is named, not found by luck.ai/repo/project/issues/I1995.yamlI1996doctor does not fail an adopter on a check written for this repository.ai/repo/project/issues/I1996.yamlI1997The peer board can be read from the command line.ai/repo/project/issues/I1997.yamlI1998A health command in an unsupervised repository does not exit 0.ai/repo/project/issues/I1998.yamlI1999A tracked file a hook regenerates does not refuse a task that never touched it.ai/repo/project/issues/I1999.yamlI2000What a piece of work serves is one derivation, with a revision.ai/repo/project/issues/I2000.yamlI2001start asks what the task serves and refuses a refused binding where the policy requires it.ai/repo/project/issues/I2001.yamlI2002The context of a bound task says what the intent asks of this work.ai/repo/project/issues/I2002.yamlI2003A handover pins the binding it was written under, and resolving it reports drift.ai/repo/project/issues/I2003.yamlI2004plan start refuses an issue whose binding is refused, in both engines.ai/repo/project/issues/I2004.yamlI2054A tag does not turn every other pull request red until its record lands.ai/repo/project/issues/I2054.yamlI2059A rebuild never replaces the executable a live lease names.ai/repo/project/issues/I2059.yamlI2068A verdict that depends on the runner says so, and one cold sample is not a regression.ai/repo/project/issues/I2068.yamlI2073A worker records an observation in one command.ai/repo/project/issues/I2073.yamlI2074An observation becomes a candidate that says what it is about, and reading groups recurrence.ai/repo/project/issues/I2074.yamlI2075A candidate is routed by what it is about.ai/repo/project/issues/I2075.yamlI2114A task's scope admits what its derive writes.ai/repo/project/issues/I2114.yamlI2115The slowest case costs a fraction of its budget, and its budget is never raised to follow runner load again.ai/repo/project/issues/I2115.yamlI2123A caller beyond loopback reads, and changes nothing it cannot authenticate.ai/repo/project/issues/I2123.yamlI2124An event reloaded from disk meets the trust policy in force, and no stamp outruns the clock.ai/repo/project/issues/I2124.yamlI2126A server busy with tool calls is never taken over as if it were dead.ai/repo/project/issues/I2126.yamlI2127A server that lost its lease hands its sessions on and ends.ai/repo/project/issues/I2127.yamlI2128A lease is removed only by the process that holds it, and serve stop stops the server in order.ai/repo/project/issues/I2128.yamlI2129The lease timings the policy declares are the ones the mcp and serve elections use.ai/repo/project/issues/I2129.yamlI2131A server in use through the Cockpit or HTTP is not stopped as idle, and a checkout keeps one address.ai/repo/project/issues/I2131.yamlI2132A hello names the runtime it is meant for, and no other runtime accepts it.ai/repo/project/issues/I2132.yamlI2133Every mesh input and answer has a bound, and a refused registration learns nothing.ai/repo/project/issues/I2133.yamlI2134A key removed from the trust list loses its links without a restart, and a node key can be rotated.ai/repo/project/issues/I2134.yamlI2135The trust root is read from the default branch, not from whatever the checkout holds.ai/repo/project/issues/I2135.yamlI2137An accepted mesh event is on disk before it counts, and a damaged journal line is reported, never fused or dropped silently.ai/repo/project/issues/I2137.yamlI2139A sync message stays under the link bound whatever the marks weigh.ai/repo/project/issues/I2139.yamlI2140Paging mesh.events returns every event exactly once.ai/repo/project/issues/I2140.yamlI2145A tool call that may have run is never sent a second time.ai/repo/project/issues/I2145.yamlI2147The MCP transports bound what they read and follow the Streamable HTTP rules they claim.ai/repo/project/issues/I2147.yamlI2148Every provider's MCP launch configuration is a projection of one declaration, and a drifted one fails a gate.ai/repo/project/issues/I2148.yamlI2151A page served beside the write routes runs only script it shipped, and a rebinding host reads nothing.ai/repo/project/issues/I2151.yamlI2156A slow or silent HTTP client cannot hold a server worker.ai/repo/project/issues/I2156.yamlI2157Ready means ready: a lost lease, a degraded layer or a failing mesh is not reported ready.ai/repo/project/issues/I2157.yamlI2161No answer, log line or mesh frame carries a credential the redactor knows.ai/repo/project/issues/I2161.yamlI2162A released archive, installed, serves a foreign repository over the shared server in CI.ai/repo/project/issues/I2162.yamlI2163A client never attaches to a server of another version without saying so, and a newer client replaces an older server.ai/repo/project/issues/I2163.yamlI2165A released archive carries a provenance attestation the installer can check.ai/repo/project/issues/I2165.yamlI2282The record pull request's dispatched verdict does not satisfy branch protection.ai/repo/project/issues/I2282.yamlI2288A task is on the mesh while it works.ai/repo/project/issues/I2288.yamlI2289A task built off the mesh is refused.ai/repo/project/issues/I2289.yamlI2296The executor reopens a record pull request no run was started for.ai/repo/project/issues/I2296.yamlI2298A pull request stacked on one that landed merges on the verdict its head already has.ai/repo/project/issues/I2298.yamlI2300A head is judged against what it changes, not against GitHub's live state.ai/repo/project/issues/I2300.yamlI2301Whether the work is done is answered by measurement: the done invariant asks about debt, what was left behind and the backlog.ai/repo/project/issues/I2301.yamlI2303A release publishes its metadata to the site before its record lands, and the site never goes back a release.ai/repo/project/issues/I2303.yamlI2348A gate's result is reused only for the exact inputs it judged, and a skipped gate carries the proof that nothing it reads changed.ai/repo/project/issues/I2348.yamlI2350One gate model names what a local check, a pull request, an integration and a release must run, and no second inventory exists.ai/repo/project/issues/I2350.yamlI2396The CI critical path of 2026-10-10 is measured, recorded, and explained before anything is changed.ai/repo/project/issues/I2396.yamlI2398A derive offloaded to another machine waits its turn in a declared queue.ai/repo/project/issues/I2398.yamlI2399Every session briefs itself on an interval, without being asked.ai/repo/project/issues/I2399.yamlI2400A signal model and a fold join every source the server already records.ai/repo/project/issues/I2400.yamlI2401monitor is one read capability with three projections.ai/repo/project/issues/I2401.yamlI2402majordomus monitor follows the stream from a terminal and a script.ai/repo/project/issues/I2402.yamlI2403Pull requests, checks and deploys reach the stream when GitHub is reachable.ai/repo/project/issues/I2403.yamlI2404The Cockpit shows the stream live.ai/repo/project/issues/I2404.yamlI2405Every session is told what happened since its last look.ai/repo/project/issues/I2405.yamlI2406The stream is documented where a reader looks.ai/repo/project/issues/I2406.yamlI2407The monitor is released and deployed.ai/repo/project/issues/I2407.yamlI2410A trusted machine on the tailnet is found through Tailscale, with no address written by hand.ai/repo/project/issues/I2410.yamlI2411A server whose mesh is enabled is reachable on the tailnet and the LAN, and only by a trusted peer.ai/repo/project/issues/I2411.yamlI2412`majordomus init` declares the mesh and enrols this machine's key, so a fresh repository cooperates.ai/repo/project/issues/I2412.yamlI2413A linked worktree cooperates through its repository's running server, and a start that cannot ensure one says why.ai/repo/project/issues/I2413.yamlI2414mesh.state and mesh.peers answer a filtered summary that fits one tool answer.ai/repo/project/issues/I2414.yamlI2415A mesh review request carries a body, can be withdrawn, and expires.ai/repo/project/issues/I2415.yamlI2416The ci verdict asks every selected gate for a receipt, and a gate whose step never ran is red.ai/repo/project/issues/I2416.yamlI2417The landing page is a click-through story: an editorial hero and an evidence chain a visitor steps through.ai/repo/project/issues/I2417.yamlI2460The overview asks its sources at once, so it costs its slowest source and not their sum.ai/repo/project/issues/I2460.yamlI2461majordomus ui is served at /ui as its own product, with screens composed from capabilities.ai/repo/project/issues/I2461.yamlI2462The UI has every screen, and its mesh is a graph whose nodes open an inspector.ai/repo/project/issues/I2462.yamlI2463A train of stacked pull requests is a typed object, served everywhere and drawn as a graph.ai/repo/project/issues/I2463.yamlI2464A path that holds a space is one path to the scope doctrine.ai/repo/project/issues/I2464.yamlI2470The pull requests drain in the UI: a queue a reader narrows, inspects and follows to what each depends on.ai/repo/project/issues/I2470.yamlI2471The roadmap opens a milestone: what it holds, what can start, its critical path, and what it waits for.ai/repo/project/issues/I2471.yamlI2472How long CI takes is measured, from when each run started to when it completed, and the CI/CD screen draws it.ai/repo/project/issues/I2472.yamlI2473A pull request shows its trail: what the executor did to it, and the drain what the lane did lately.ai/repo/project/issues/I2473.yamlI2474The drain draws its merge throughput: each day's merges over the fortnight its trail ends on.ai/repo/project/issues/I2474.yamlI2475The issues are browsed: every issue of the plan by status, milestone, priority or text, each a link onward.ai/repo/project/issues/I2475.yamlI2476An intent opens what serves it: its statement, its criteria and their evidence, and the milestones and issues that serve it.ai/repo/project/issues/I2476.yamlI2477A claim opens its proof: what settles it, its last run, what changed since, how to see it again.ai/repo/project/issues/I2477.yamlI2478A rule opens its proof: what it states, the tests that prove it, what is missing, and the rules around it.ai/repo/project/issues/I2478.yamlI2481The UI links every entity it names, and says none where a source has no value.ai/repo/project/issues/I2481.yamlI2482Every screen of the UI has a case, and no link on the UI is dead.ai/repo/project/issues/I2482.yamlI2483The UI is published as a snapshot: read once at the published commit and carried by the site at /ui.ai/repo/project/issues/I2483.yamlI2484majordomus ui ensures the shared server and opens the UI's dashboard.ai/repo/project/issues/I2484.yamlI2485The bench measures the first request after the repository moved, and a budget bounds it.ai/repo/project/issues/I2485.yamlI2486No screen waits for a source: a page shows the latest reading with its age, read again behind the reader.ai/repo/project/issues/I2486.yamlI2487A screen is streamed, and one stream tells an open page which readings changed.ai/repo/project/issues/I2487.yamlI2488The HTTP stack is chosen by measurement: the same routes and several hundred open streams on tiny_http and on axum.ai/repo/project/issues/I2488.yamlI2489A screen over its budget fails the build: the UI's latency budgets are benchmark policy, and bench --check holds them.ai/repo/project/issues/I2489.yamlI2491A personal layer changes nothing shared: init --personal and install.sh --personal keep the layer one person's own, verify it, and --shared hands it to the team.ai/repo/project/issues/I2491.yamlI2495The Cockpit is published as a snapshot at /cockpit, and the UI's evidence links lead to it.ai/repo/project/issues/I2495.yamlI2521What a derive costs is measured per stage and per kind of change, and every file a stage reads is listed.ai/repo/project/issues/I2521.yamlI2522The derivation is a typed graph in the crate: every producer is a node with declared inputs and outputs, answered by one capability.ai/repo/project/issues/I2522.yamlI2523A node's key is computed from the bytes its producer reads, the index membership it enumerates and the generation of the executable.ai/repo/project/issues/I2523.yamlI2524majordomus derive plan and derive explain say, without writing, which nodes would run and which input moved each one.ai/repo/project/issues/I2524.yamlI2525An incremental derive runs only the nodes its plan marks, a no-op derive runs no generator, and the full derive stays as it is.ai/repo/project/issues/I2525.yamlI2526The site generator's sections are nodes with inputs of their own, and the use-case scenarios run only when what they exercise changed.ai/repo/project/issues/I2526.yamlI2527An incremental derive equals a full derive byte for byte, and an omitted dependency turns a gate red.ai/repo/project/issues/I2527.yamlI2528The UI shows the derivation graph and its last plan, and one documentation page explains the model.ai/repo/project/issues/I2528.yamlI2529A node's outputs are kept under its key and restored only after every digest is verified.ai/repo/project/issues/I2529.yamlI2530The derivation store is bounded and measured: its size and hit rate are read by a capability, and only an explicit command removes entries.ai/repo/project/issues/I2530.yamlI2531Two worktrees deriving the same key compute it once, and the machine lock covers the write into a tree, not the computation.ai/repo/project/issues/I2531.yamlI2532CI reuses derivation entries keyed by the graph, and still fails on a stale committed file whether or not the cache was restored.ai/repo/project/issues/I2532.yamlI2533The incremental derive becomes the default after a shadow period proves it equal, and one flag returns to the full derive.ai/repo/project/issues/I2533.yamlI2588A region projection's host document is not judged as a bootstrap.ai/repo/project/issues/I2588.yamlI2601majordomus evidence reaches record, stamp and show.ai/repo/project/issues/I2601.yamlI2652The UI shows what the knowledge base holds: the candidates awaiting review and whether the deriver still writes, read and never acted on.ai/repo/project/issues/I2652.yamlI2653Every diagram on the site is one interactive, linkable viewer whose node links are inferred, and a derived table can be drawn as a chart.ai/repo/project/issues/I2653.yamlI2654A chart is held to its table by a gate, and the tables that are measured series are drawn.ai/repo/project/issues/I2654.yamlI2655The homepage decides whether it carries a derived figure, within its declared story and budget.ai/repo/project/issues/I2655.yamlI2656The diagram viewer serves the Cockpit and majordomus ui, and a node that is a repository file links to its source.ai/repo/project/issues/I2656.yamlI2660The site is published as an artifact by the job that built it, so a ready site waits for no second workflow.ai/repo/project/issues/I2660.yamlI2661A publication that did not arrive is a finding the next reader meets, never a green step.ai/repo/project/issues/I2661.yamlI2662Validation leaves the deployment a runner: a branch's checks never hold the pool a publication or a release record needs.ai/repo/project/issues/I2662.yamlI2663The published UI is not read from nothing on every deployment.ai/repo/project/issues/I2663.yamlI2664A run that has already failed is cancelled by itself, and a red on the trunk is fixed before anything else is prepared.ai/repo/project/issues/I2664.yamlI2670A build-cache offer is a typed model and its selection is a pure, explained function.ai/repo/project/issues/I2670.yamlI2671A provider offers its cache as a signed, expiring mesh record, and a stopped provider goes stale.ai/repo/project/issues/I2671.yamlI2672The offers and the selection are one read, projected to CLI, MCP, HTTP and OpenAPI.ai/repo/project/issues/I2672.yamlI2673The sccache client configuration is derived from the selected offer, local disk first.ai/repo/project/issues/I2673.yamlI2674A node is provisioned as an S3 cache provider, idempotently, with no secret in the repository.ai/repo/project/issues/I2674.yamlI2675Build-cache health, headroom and hit statistics are visible where the mesh is.ai/repo/project/issues/I2675.yamlI2676The build cache is verified and validated: failure paths, security and a real second-node hit.ai/repo/project/issues/I2676.yamlI2677The build cache is documented, governed by a rule and described on the site and the Pages.ai/repo/project/issues/I2677.yamlI2678The public Observatory replays events that were recorded, and says it is a replay.ai/repo/project/issues/I2678.yamlI2679The Observatory follows a stream with a cursor instead of asking for its page again.ai/repo/project/issues/I2679.yamlI2680The Observatory's gates are closed with evidence: screenshots, measured frame rates, a soak, the recovery drills.ai/repo/project/issues/I2680.yamlI2690A session reads whether it is current, attached, announced and useful, from one capability.ai/repo/project/issues/I2690.yamlI2691start, check, finish and the commit and push hooks refuse a change from a session that has not joined.ai/repo/project/issues/I2691.yamlI2692The join state is projected to the briefing, the Cockpit, the UI, the handbook, the site and GitHub Pages.ai/repo/project/issues/I2692.yamlI2693A session whose MCP server did not connect says so on the board, and a worker with nothing to do takes an open ask.ai/repo/project/issues/I2693.yamlI2694A promoted note resolves in every checkout, not only where it was promoted.ai/repo/project/issues/I2694.yamlI2695The Observatory draws the proof, claim, surface, wave and release scenes from the capabilities that already answer them.ai/repo/project/issues/I2695.yamlI2696p5 is a built, optional asset of the UI and the page says where it is.ai/repo/project/issues/I2696.yamlI2697The public snapshot carries the p5 library, or says which scenes it cannot draw.ai/repo/project/issues/I2697.yamlI2698The new scenes have screenshot evidence at 1080p and 4K on a named revision.ai/repo/project/issues/I2698.yamlI2700A lease probe asks a cheap liveness route, and a server holding another lease token is not taken for the leaseholder.ai/repo/project/issues/I2700.yamlI2701The idle timeout is declared beside the other server timings, and serve --idle overrides the declaration.ai/repo/project/issues/I2701.yamlI2702A checkout keeps one address across restarts, because its server binds a port derived from the checkout.ai/repo/project/issues/I2702.yamlI2703The mesh cooperation rule lists the hello checks in the order the code runs them, and a test names that order.ai/repo/project/issues/I2703.yamlI2704A dialer reads no reply beyond the link bound and no more candidates than the bound, and a refusing peer is retried at a measured, jittered rate.ai/repo/project/issues/I2704.yamlI2705A node key can be rotated, peers follow the new key, and the old key is refused.ai/repo/project/issues/I2705.yamlI2706An own event whose append failed is never acknowledged as durable, and a journal reload is bounded in size.ai/repo/project/issues/I2706.yamlI2707majordomus doctor reports a stale server, or says plainly that it checks governance only.ai/repo/project/issues/I2707.yamlI2708A mesh event field nobody listed fails the mesh check, and no log field or review body carries a credential the redactor knows.ai/repo/project/issues/I2708.yamlI2709A red on the trunk has one named carrier, and nobody else may land until it is paid.ai/repo/project/issues/I2709.yamlI2710A release run never waits behind pull-request validates for a job slot.ai/repo/project/issues/I2710.yamlI2711The pages job judges production only after the deployment of its own commit has arrived.ai/repo/project/issues/I2711.yamlI2712release-check treats a tag whose release run is still going as pending, not as a missing record.ai/repo/project/issues/I2712.yamlI2713A build never lets idle incremental sessions fill the disk.ai/repo/project/issues/I2713.yamlI2714One build directory never serves two worktrees' jobs at once.ai/repo/project/issues/I2714.yamlI2715New public Rust code meets rust-quality before the structure job does.ai/repo/project/issues/I2715.yamlI2716A case derives its budgets and lists from what it tests, never pins them.ai/repo/project/issues/I2716.yamlI2717A release record pull request gets a verdict that can pass.ai/repo/project/issues/I2717.yamlI2718A linked worktree runs its own hooks, never the primary checkout's.ai/repo/project/issues/I2718.yamlI2720majordomus self update re-runs the published installer, and never reimplements it.ai/repo/project/issues/I2720.yamlI2721An enrolled mesh node follows the stable pointer by itself.ai/repo/project/issues/I2721.yamlI2722A hub activates a new version under its service manager, checks its health and rolls back by itself.ai/repo/project/issues/I2722.yamlI2723The mesh shows each node's version and how far a release has rolled out.ai/repo/project/issues/I2723.yamlI2724A node without a route to the site takes the archive from a peer and still verifies it itself.ai/repo/project/issues/I2724.yamlI2731Every failure class in the published failure table names its test or its stated limitation.ai/repo/project/issues/I2731.yamlI2732The MCP reference repeats no registry entry: no hand-written document lists tools.ai/repo/project/issues/I2732.yamlI2733A resumed mesh.events walk returns every event exactly once, across partitions.ai/repo/project/issues/I2733.yamlI2734A session joins the mesh at its start and leaves it at its end.ai/repo/project/issues/I2734.yamlI2735An edit no claim covers is refused.ai/repo/project/issues/I2735.yamlI2740An issue's delivery is inferred from branches, pull requests, merges, tags and the published site.ai/repo/project/issues/I2740.yamlI2741Merged work the plan has not recorded is drift, and on the trunk past a window it is red.ai/repo/project/issues/I2741.yamlI2742A milestone's version is inferred from the release that carried it, never typed.ai/repo/project/issues/I2742.yamlI2743The public roadmap draws every milestone in the graph's order, each issue with its inferred delivery.ai/repo/project/issues/I2743.yamlI2744The UI roadmap reads delivery and the releases themselves, and its now is where work is.ai/repo/project/issues/I2744.yamlI2745The landing page states no present it does not read.ai/repo/project/issues/I2745.yamlI2746Every published tree draws its diagrams, and every diagram is the interactive viewer.ai/repo/project/issues/I2746.yamlI2747Every code block on every surface is highlighted by one engine with one palette.ai/repo/project/issues/I2747.yamlI2748The drift already on the trunk is settled before the gate is made blocking.ai/repo/project/issues/I2748.yamlI2749A commit that only plans an issue is not its delivery.ai/repo/project/issues/I2749.yamlI2750The trunk's drift gate reads the forge before it judges.ai/repo/project/issues/I2750.yamlI2760A scope entry is one path, and a path context would refuse is refused at start.ai/repo/project/issues/I2760.yamlI2761A branch that renumbered its decision away claims nothing at the old number.ai/repo/project/issues/I2761.yamlI2770majordomus ui and the Cockpit wear the site's navbar: one renderer, the same styles and scripts, and a browser comparison that refuses a difference.ai/repo/project/issues/I2770.yamlI2780The UI has an intent workspace: an intent, its milestones, issues, waves and graph on one screen.ai/repo/project/issues/I2780.yamlI2781An issue is started, verified and finished from the intent workspace.ai/repo/project/issues/I2781.yamlI2783The intent workspace reads itself again when a move ends on its server.ai/repo/project/issues/I2783.yamlI2784One portable core runs on the host and as wasm32, and one executed fixture holds both.ai/repo/project/issues/I2784.yamlI2786The published UI reads the evidence CI recorded, and a publication that would show tests as not run is refused.ai/repo/project/issues/I2786.yamlI2787A build never lets the shared build directory's crate artifacts fill the disk.ai/repo/project/issues/I2787.yamlI2789The intent workspace shows why an intent stands where it stands and every move made on its issues.ai/repo/project/issues/I2789.yamlI2795The trunk's recorded run reaches the tracked evidence ledger, and the baseline is tightened to it.ai/repo/project/issues/I2795.yamlI2812The IDD loop is accepted end to end in a real browser on one commit.ai/repo/project/issues/I2812.yamlI2813A published page that answers 503, or does not answer, is asked again before it is called missing.ai/repo/project/issues/I2813.yamlI2825A claim released on one runtime is released on every runtime that holds it, and a link to a restarted peer recovers.ai/repo/project/issues/I2825.yamlI2826A GitHub release carries the tool's own changelog for its tag, never GitHub's generated notes.ai/repo/project/issues/I2826.yamlI2827A tool written a moment ago is run once its writer lets go.ai/repo/project/issues/I2827.yamlI2829An alpha is published as a pre-release end to end, and never becomes the latest release anywhere.ai/repo/project/issues/I2829.yamlI2840A cancelled MCP call stops, and the client is told it stopped.ai/repo/project/issues/I2840.yamlI2841The site's browser probe is split, so the site job runs well inside its timeout.ai/repo/project/issues/I2841.yamlI2842The live site is verified on a schedule, and its last verification is evidence.ai/repo/project/issues/I2842.yamlI2844plan validate refuses a milestone whose GitHub title would be over 255 characters.ai/repo/project/issues/I2844.yamlI2845a run cancelled midway is not the publication's evidence while a complete one is near.ai/repo/project/issues/I2845.yamlI2846A hand-pinned budget in a case is reported unless it states its margin.ai/repo/project/issues/I2846.yamlI2847every file the site generator reads by a literal path is one of its declared inputs.ai/repo/project/issues/I2847.yamlI2848A pre-push gate that runs the executable does not wait on another worktree's build.ai/repo/project/issues/I2848.yamlI2849release next raises from the trunk the repository names, never from a branch name written in the tool.ai/repo/project/issues/I2849.yamlI2850the published PR Drain carries its pull requests, and counts pull requests rather than plan issues.ai/repo/project/issues/I2850.yamlI2851the homepage's product view counts the delivery the history proves beside the statuses the records declare, each count a link.ai/repo/project/issues/I2851.yamlI2852every class a UI screen gives an element is one the UI's stylesheet defines.ai/repo/project/issues/I2852.yamlI2853a Pages deploy on a fresh master is not refused for claims newer than the ledger it reads.ai/repo/project/issues/I2853.yamlI2863A derive does not run while a merge is uncommitted.ai/repo/project/issues/I2863.yamlI2864The site generator reads no output of a later derive stage.ai/repo/project/issues/I2864.yamlI2865The eight kinds of derive are measured cold on a host of their own, each with its sample count.ai/repo/project/issues/I2865.yamlI2866Each node of a measured derive reports its fingerprint, cache status and times, and each run its critical path and peak memory.ai/repo/project/issues/I2866.yamlI2867A passing scenario's evidence is reused by every checkout of the repository whose tool is the same.ai/repo/project/issues/I2867.yamlI2870The layer's layout is declared as typed data: what each half holds, excludes, and the lifecycle of its contents.ai/repo/project/issues/I2870.yamlI2871A file in the half whose contract excludes it is refused, naming the path and the contract.ai/repo/project/issues/I2871.yamlI2872The skeleton a new repository receives is derived from the layout declaration.ai/repo/project/issues/I2872.yamlI2873The manifest schema is generated from typed sections.ai/repo/project/issues/I2873.yamlI2874A replicated mesh notice carries what a seat did, so a removal or a prune is seen on every machine.ai/repo/project/issues/I2874.yamlI2882A remote derive builds only inside its own run directory.ai/repo/project/issues/I2882.yamlI2900Every issue id on the intent workspace is a link, the shared-scope pairs are one folded line, and no missing library is asked for.ai/repo/project/issues/I2900.yamlI2901One grammar names an issue id, and every surface reads it.ai/repo/project/issues/I2901.yamlI2902A status names the moves it admits, and every surface reads that.ai/repo/project/issues/I2902.yamlI2903The workspace prefers stages by IntentStage, not by strings.ai/repo/project/issues/I2903.yamlI2904An intent whose criteria are met while its milestones hold open issues says so.ai/repo/project/issues/I2904.yamlI2906Every id and chip on the workspace leads to its record.ai/repo/project/issues/I2906.yamlI2907The workspace's headline numbers are the chosen intent's.ai/repo/project/issues/I2907.yamlI2908Stage and verdict wear the kit's one badge.ai/repo/project/issues/I2908.yamlI2909A panel with nothing to show is one sentence.ai/repo/project/issues/I2909.yamlI2910A move on the published workspace reads \"live only\".ai/repo/project/issues/I2910.yamlI2911The workspace is a list and its chosen intent side by side.ai/repo/project/issues/I2911.yamlI2912A screen's sources are one disclosure, not a footer per panel.ai/repo/project/issues/I2912.yamlI2913Each intent in the list shows its progress.ai/repo/project/issues/I2913.yamlI2914No /ui page shows an issue id that leads nowhere.ai/repo/project/issues/I2914.yamlI2915The workspace speaks in plain words.ai/repo/project/issues/I2915.yamlI2916The workspace reads in the order a person asks.ai/repo/project/issues/I2916.yamlI2917Each intent has one primary action.ai/repo/project/issues/I2917.yamlI2918The issue list filters by status.ai/repo/project/issues/I2918.yamlI2919The graph and the intent list respond to a hand and a keyboard.ai/repo/project/issues/I2919.yamlI2941A fresh init leaves doctor clean: a README that does not name AGENTS.md gains one paragraph that does.ai/repo/project/issues/I2941.yamlI2942An installer dry run changes nothing, and the install guide says only what is true.ai/repo/project/issues/I2942.yamlI2943A mesh this process is not on is said as not observed, never as zero or no.ai/repo/project/issues/I2943.yamlI2962What the served surfaces change is said as the registry says it.ai/repo/project/issues/I2962.yamlI2963The README's exit codes are the commands' contract.ai/repo/project/issues/I2963.yamlI2964Every step that reads a surface into the published snapshot can ask the forge.ai/repo/project/issues/I2964.yamlI2965The site says a test proves a guarantee only as far as recorded evidence supports it.ai/repo/project/issues/I2965.yamlI2966A forge setting that could not be read is unknown, never \"allows nothing\".ai/repo/project/issues/I2966.yamlI2967The site's own pages name the layout in force.ai/repo/project/issues/I2967.yamlI2980The blackboard is one projection answered on every interface.ai/repo/project/issues/I2980.yamlI2981A board or journal change is pushed over one WebSocket.ai/repo/project/issues/I2981.yamlI2982The monitor page is pushed over the live channel, and says when it polls.ai/repo/project/issues/I2982.yamlI2983/ui/peers shows the blackboard and is read again when it changes.ai/repo/project/issues/I2983.yamlI2984The published site shows a public-safe blackboard, labelled as the snapshot it is.ai/repo/project/issues/I2984.yamlI2985The Observatory's cooperation scene draws the blackboard, not a second join of the journal.ai/repo/project/issues/I2985.yamlI2987server.status and peers.list ask every checkout at once, a bounded number at a time.ai/repo/project/issues/I2987.yamlI2993doctor counts the work no remote holds in one walk, whatever the number of branches.ai/repo/project/issues/I2993.yamlI2995doctor does no work whose answer cannot change a finding: the roadmap lookups and the board's wide status.ai/repo/project/issues/I2995.yamlI2998/cockpit/peers renders the blackboard and follows it live.ai/repo/project/issues/I2998.yamlI2999From /ui/peers an operator answers a review, takes a handover or releases a claim, through its capability.ai/repo/project/issues/I2999.yamlI3000The workspace's record texts are drawn as prose.ai/repo/project/issues/I3000.yamlI3001The intent is the page's title, and panels ask questions.ai/repo/project/issues/I3001.yamlI3002A command to reproduce is a code block a reader can copy.ai/repo/project/issues/I3002.yamlI3003The workspace's prose is set for reading.ai/repo/project/issues/I3003.yamlI3004No raw markdown reaches a /ui page.ai/repo/project/issues/I3004.yamlI3005Code on the UI has one highlighter.ai/repo/project/issues/I3005.yamlI3007A commit that a record or the site's data names is a commit the history holds.ai/repo/project/issues/I3007.yamlI3008A homepage link with a fragment resolves to an element its page carries.ai/repo/project/issues/I3008.yamlI3009No record's prose and no board announcement holds a template delimiter.ai/repo/project/issues/I3009.yamlI3010The mesh manual says the edit guard is not wired, and how to wire it by hand.ai/repo/project/issues/I3010.yamlI3013The evidence job runs only when a planned lane ran tests, so a records-only pull request is not red.ai/repo/project/issues/I3013.yamlI3014The repository is found once per process, and a counter proves it.ai/repo/project/issues/I3014.yamlI3015serve and mcp discover the repository once, through the shared model.ai/repo/project/issues/I3015.yamlI3016A capability reads the repository from its context, never by opening it again.ai/repo/project/issues/I3016.yamlI3017Discovering the repository outside the model is refused.ai/repo/project/issues/I3017.yamlI3018The intent workspace borrows the plan instead of copying it on every request.ai/repo/project/issues/I3018.yamlI3020The Knowledge screen states nothing about the repository that its checkout could not observe.ai/repo/project/issues/I3020.yamlI3021The Knowledge screen shows each review command as code with what it does as a sentence.ai/repo/project/issues/I3021.yamlI3022An empty knowledge queue is one sentence that says how a record arrives, not two empty tables.ai/repo/project/issues/I3022.yamlI3023The Knowledge screen reads in review order, in plain labels, and leads to the knowledge manual.ai/repo/project/issues/I3023.yamlI3024The Knowledge screen's manual link names a page the site has, on the server and on Pages.ai/repo/project/issues/I3024.yamlI3025Every Knowledge tile reads whole at a phone's width.ai/repo/project/issues/I3025.yamlI3060A provider hook declares its timeout, and the session end closes its episode inside the budget.ai/repo/project/issues/I3060.yamlI3061A headless or nested provider session is not the worker: its end never hands over the task or writes a tracked record.ai/repo/project/issues/I3061.yamlI3070release.currency measures the landed work past the last release, and the brief and doctor say when it waits.ai/repo/project/issues/I3070.yamlI3071/ui/delivery shows how much landed work waits for a release, and since when.ai/repo/project/issues/I3071.yamlI3072A task holding the release seat does not finish completed while landed work has waited past the threshold.ai/repo/project/issues/I3072.yamlI3073The home page and the docs explain the peer blackboard: live on a runtime, a labelled snapshot on the published site.ai/repo/project/issues/I3073.yamlI3074Every article ends with the articles related to it, in its reader's language, and each answers it back.ai/repo/project/issues/I3074.yamlI3075An article explains the cooperation model in both languages: seats are claims, tops are judged once, stale work is brought current.ai/repo/project/issues/I3075.yamlI3076The landing clock's first source is measured, a fresh clone's wait is a labelled bound, and case 3470 shows a decided version.ai/repo/project/issues/I3076.yamlI3077An article explains the plan critique in both languages: a plan is attacked before it is built.ai/repo/project/issues/I3077.yamlI3078An article explains derivation in both languages: written once, derived everywhere.ai/repo/project/issues/I3078.yamlI3079The links of the Deployments table on /ui/delivery meet the target size at every audited width.ai/repo/project/issues/I3079.yamlI3080An article explains claiming in both languages: claimed before it is built.ai/repo/project/issues/I3080.yamlI3081An article explains continuity in both languages: a session ends, the work does not.ai/repo/project/issues/I3081.yamlI3082An article explains the worktree topology in both languages: one branch, one place.ai/repo/project/issues/I3082.yamlI3083Six records say something the code or another record no longer says.ai/repo/project/issues/I3083.yamlI3084An article explains the mesh in both languages: many machines, one journal.ai/repo/project/issues/I3084.yamlI3085An article explains how a doubt is settled in both languages: by an experiment, not a count.ai/repo/project/issues/I3085.yamlI3086An article explains in both languages why silence is not a verdict.ai/repo/project/issues/I3086.yamlI3087Seven statements about silence disagree with the record they cite, or name what does not exist.ai/repo/project/issues/I3087.yamlI3088An article explains in both languages why automation is a capability, not a shell script.ai/repo/project/issues/I3088.yamlI3089Five statements about the shell migration disagree with the code, the plan or the proof they name.ai/repo/project/issues/I3089.yamlI3090The UI audit warms every surface and gives an unreachable page a second load.ai/repo/project/issues/I3090.yamlI3091A translated bar keeps the headroom of its English bar, whatever fonts the machine has.ai/repo/project/issues/I3091.yamlI3092A translation-memory edit says which pages each changed key reaches, and refuses one that reaches none.ai/repo/project/issues/I3092.yamlI3094The Pages build and check hold a site built in every language.ai/repo/project/issues/I3094.yamlI3095A count inside a translated sentence is a slot, so a changed number never drops the translation.ai/repo/project/issues/I3095.yamlI3097An older executable never takes the shared-server lease from a newer one because the newer one's file was rebuilt.ai/repo/project/issues/I3097.yamlI3098Waiting derives take the machine's derive lock in the order they arrived.ai/repo/project/issues/I3098.yamlI3099The serve-lifecycle test tells a stopped server from another server answering its freed port.ai/repo/project/issues/I3099.yamlI3100What the ChatGPT project decided is promoted into the layer, each record naming the conversation and message it came from.ai/repo/project/issues/I3100.yamlI3110A blocking rule reads proven only when one of its cases shows its violation refused.ai/repo/project/issues/I3110.yamlI3111Every dispatched blocking validator is run against a declared violation, and one that accepts it fails the case.ai/repo/project/issues/I3111.yamlI3112rule-proof-check prints the blocking rules no recorded run proves, and that count only falls.ai/repo/project/issues/I3112.yamlI3113github-check refuses when master's protection no longer requires the verdict check gates.yaml names.ai/repo/project/issues/I3113.yamlI3114A merge past the required check is observed from the forge and matched to the owner's recorded authorisation.ai/repo/project/issues/I3114.yamlI3115A rule or guarantee that cites a proposed decision as its authority is listed, and the owner's acceptance queue is derived from it.ai/repo/project/issues/I3115.yamlI3116The debt every ratchet baseline holds is one derived table, with its rule and its trend.ai/repo/project/issues/I3116.yamlI3117The README and the launch page say only what master does about model invocation, doctrine dispatch and overrides.ai/repo/project/issues/I3117.yamlI3118The edit guard's contract names every case it lets through, and each row has a test.ai/repo/project/issues/I3118.yamlI3119The delivery report computes required_tests_current, test_evidence_published and ui_linked instead of citing a merged pull request.ai/repo/project/issues/I3119.yamlI3120A scheduled mutation run over the declared critical predicates records its survivors as evidence.ai/repo/project/issues/I3120.yamlI3121The release compatibility analyzer's invariants hold under property tests.ai/repo/project/issues/I3121.yamlI3122A coverage figure on every surface names its dimension, its commit and what it does not measure.ai/repo/project/issues/I3122.yamlI3123finish refuses a verify command the profile does not admit for the change, and keeps its output.ai/repo/project/issues/I3123.yamlI3124A JUnit XML report a repository already produces is imported into the evidence ledger, and nothing in that repository changes.ai/repo/project/issues/I3124.yamlI3125Coverage from LCOV or Cobertura is linked line by line to the source at the measured revision.ai/repo/project/issues/I3125.yamlI3126check and finish count the refusals later overridden and the completions later reverted, per rule and per release.ai/repo/project/issues/I3126.yamlI3127A clean installation reaches its first refused finish in a foreign repository, and the time and the manual steps are recorded.ai/repo/project/issues/I3127.yamlI3128init ends with what it found in the repository it adopted, each finding naming its file.ai/repo/project/issues/I3128.yamlI3129An outside developer's first run is recorded as it happened, and each friction it met becomes an issue with a failing case.ai/repo/project/issues/I3129.yamlI3130The ledger answers how many false dones finish caught, by doctrine, with the tasks it counted.ai/repo/project/issues/I3130.yamlI3131A refusal answered by no change to the tree is not counted as a caught false done.ai/repo/project/issues/I3131.yamlI3132/ui shows what finish caught beside what being caught cost, and says not observed where there is no ledger.ai/repo/project/issues/I3132.yamlI3133The economics benchmark measures acceptance: how many sessions declared done while the task's hidden tests fail, with and without the finish contract.ai/repo/project/issues/I3133.yamlI3134The product sentence is declared once, and the homepage, README, page titles, Open Graph and launch kit read it.ai/repo/project/issues/I3134.yamlI3135The launch kit is held by the same promise check as the homepage, and the tool publishes none of it.ai/repo/project/issues/I3135.yamlI3136The copy refuses hype words that no recorded comparison permits.ai/repo/project/issues/I3136.yamlI3137Lumen is a declared term of the vocabulary, defined by the capabilities it composes.ai/repo/project/issues/I3137.yamlI3138One page shows the whole mesh from the blackboard, peers and monitor with each figure's freshness, and recovers after a reconnect.ai/repo/project/issues/I3138.yamlI3139The mesh page offers one authorised action through an existing capability, and shows its result from the journal.ai/repo/project/issues/I3139.yamlI3140The mesh page's latency is measured against a recorded baseline before any target is claimed.ai/repo/project/issues/I3140.yamlI3141majordomus session close writes its record through the typed domain's closer, and the shell closer is deleted.ai/repo/project/issues/I3141.yamlI3142An episode opens through the typed domain and records the task and issue it began on.ai/repo/project/issues/I3142.yamlI3143Each provider lifecycle event leaves a typed receipt written by the domain before any guard can return early.ai/repo/project/issues/I3143.yamlI3144Checkpoints and handovers are recorded against the episode, and the shell only parses and renders them.ai/repo/project/issues/I3144.yamlI3145Continuity is resolved and judged fresh by one function, and the shell's copies are deleted.ai/repo/project/issues/I3145.yamlI3146A closed session record says whether it is complete, and one that changed the tree without saying what it served is not.ai/repo/project/issues/I3146.yamlI3147The effective governance has one digest, computed by one function and shown by the preflight.ai/repo/project/issues/I3147.yamlI3148An episode records the governance digest and the briefing digest it was handed at start.ai/repo/project/issues/I3148.yamlI3149A governance change during a session is told at the session's next brief or check.ai/repo/project/issues/I3149.yamlI3150A handover carries the governance digest it was written under, and resolving it says when governance moved.ai/repo/project/issues/I3150.yamlI3151Every entry surface reports the same governance digest for one checkout.ai/repo/project/issues/I3151.yamlI3152Every known route around the preflight and the edit guard is a case or a stated limit.ai/repo/project/issues/I3152.yamlI3153Task start says how far its base is behind the remote's master as last fetched, and stops only on a diverged local master, with the next step.ai/repo/project/issues/I3153.yamlI3154Every just recipe is generated from the command graph or names the exemption that keeps it hand-written.ai/repo/project/issues/I3154.yamlI3155The shell check reports shell by disposition, and the count of domain-logic shell never rises against the merge base.ai/repo/project/issues/I3155.yamlI3156Every command path is implemented by one executable, and the other only delegates.ai/repo/project/issues/I3156.yamlI3157A scripted capability declared in an adopting repository's layer reaches its surfaces with no change to the tool, and says where it came from and what it may do.ai/repo/project/issues/I3157.yamlI3159A shell unit is deleted only after a parity case shows its replacement gives the same verdict on the same fixture.ai/repo/project/issues/I3159.yamlI3160A behavioural case can be written as a Rust integration test over a disposable repository, and the continuity cases are the first ported.ai/repo/project/issues/I3160.yamlI3161The commit hook is one call of the executable that runs the commit subset of doctor, the worktree guard and pages current under a declared budget.ai/repo/project/issues/I3161.yamlI3162Which task.refused lines are friction is measured across every checkout, and then each repeated refused rule becomes one observation candidate.ai/repo/project/issues/I3162.yamlI3163Each episode boundary derives whether evolve is due — skip, defer or run — and the next session is told why.ai/repo/project/issues/I3163.yamlI3164A change an evolve run makes yields no candidate about itself, and a rejected subject is not proposed again without new evidence.ai/repo/project/issues/I3164.yamlI3165What evolution changed is measured: recurrence of a subject after its lesson landed, per window, with its denominator.ai/repo/project/issues/I3165.yamlI3166A curated note whose cited file changed since its last review is reported for review, not served as current.ai/repo/project/issues/I3166.yamlI3167A campaign is a kind of the index: every pack under campaigns/ is an object with its manifest digest, served read-only.ai/repo/project/issues/I3167.yamlI3168An intent, milestone or issue cites the campaign that drove it, and a campaign answers which records cite it.ai/repo/project/issues/I3168.yamlI3169A new pack enters campaigns/ through one command that checks the archive before writing a byte.ai/repo/project/issues/I3169.yamlI3170An execution of a record that cites a campaign pins the revision it ran, and a later revision changes nothing about it.ai/repo/project/issues/I3170.yamlI3171The compiled context names source ranges with their reason and confidence, not only whole objects of the layer.ai/repo/project/issues/I3171.yamlI3172The compiled context names the small set of capabilities the work needs.ai/repo/project/issues/I3172.yamlI3173A synced workspace conversation proposes candidate records that cite their conversation and message, and nothing becomes canonical without an act.ai/repo/project/issues/I3173.yamlI3174An exclusive claim carries a fencing epoch, and a holder returning under an old epoch is refused.ai/repo/project/issues/I3174.yamlI3175Two hosts presenting one node key are named as a duplicate, never folded into one flapping node.ai/repo/project/issues/I3175.yamlI3176The committed mesh declaration names its hubs by node, and no private address is tracked or published.ai/repo/project/issues/I3176.yamlI3177Two nodes one release apart keep linking, and what the older cannot answer is shown unavailable.ai/repo/project/issues/I3177.yamlI3178A self update killed at any stage leaves a usable installation.ai/repo/project/issues/I3178.yamlI3179The runtime reports one typed state, with how it got there, and every surface shows it.ai/repo/project/issues/I3179.yamlI3180Entering a checkout whose executable is missing or stale starts one background build and says building.ai/repo/project/issues/I3180.yamlI3181A change made on another node reaches every open page by push, and a gap is refetched.ai/repo/project/issues/I3181.yamlI3182One read says which work is progressing, waiting, stalled, failed or orphaned, and on what evidence.ai/repo/project/issues/I3182.yamlI3183A safe repair runs once per cause through ensure, recovery, leases and the reaper, and a repeated failure escalates.ai/repo/project/issues/I3183.yamlI3184One command lists every Majordomus runtime of this user on this host, with no checkout open.ai/repo/project/issues/I3184.yamlI3185A request on a host with two Majordomus versions reaches the one whose protocol satisfies it, or is refused with a reason.ai/repo/project/issues/I3185.yamlI3187A link names the endpoint candidates it tried, the one it chose and why.ai/repo/project/issues/I3187.yamlI3188A cold node finds the mesh from a signed manifest on Pages, and refuses a stale, rolled-back or unsigned one.ai/repo/project/issues/I3188.yamlI3189Two nodes with no direct path cooperate through a trusted hub that relays their authenticated frames.ai/repo/project/issues/I3189.yamlI3190The mesh lab proves links behind NAT, with the relay, a hub outage and an address change.ai/repo/project/issues/I3190.yamlI3191The UI reads any linked runtime the mesh names, and says which runtime every reading came from.ai/repo/project/issues/I3191.yamlI3192An operation started from /ui/mesh is authorised, executed, audited and its result streamed back.ai/repo/project/issues/I3192.yamlI3195The lundra hub is a declared deployment target served over its tailnet name, and a second device reaches it.ai/repo/project/issues/I3195.yamlI3196A deployment's external URL, trusted hosts and forwarded headers are one typed fact read by every surface.ai/repo/project/issues/I3196.yamlI3198A peer is offered an assignment by capability under a fenced lease, and accepts or refuses it with a reason.ai/repo/project/issues/I3198.yamlI3199An assignment names the execution profile it needs, and a peer whose envelope does not satisfy it is refused.ai/repo/project/issues/I3199.yamlI3200The trunk's protection is compared with the CI model, and a drift is a finding that names the change.ai/repo/project/issues/I3200.yamlI3201A publication never replaces the site with a build of an older commit than the one gh-pages serves.ai/repo/project/issues/I3201.yamlI3202CI timings measure the wait before a run starts beside the run, and count what cancelled runs spent.ai/repo/project/issues/I3202.yamlI3203Delivery lead time is measured per phase, from a pull request's opening to its verified publication.ai/repo/project/issues/I3203.yamlI3204The backlog's bound is declared once in policy, and every session brief says when the landable backlog is past it.ai/repo/project/issues/I3204.yamlI3205A pull request's change is split into canonical, derived and incidental paths, and the drain shows each.ai/repo/project/issues/I3205.yamlI3206The delivery phases have budgets in benchmark policy, and a phase over its budget is a finding with its trend.ai/repo/project/issues/I3206.yamlI3207A finished task names the pull request that carries its branch and that pull request's disposition.ai/repo/project/issues/I3207.yamlI3208Whether a commit may be released is one read that names each condition and the evidence that settles it.ai/repo/project/issues/I3208.yamlI3212Two open pull requests that realise the same issue are reported as duplicates, with the survivor named.ai/repo/project/issues/I3212.yamlI3213One case walks a fresh clone from init to published evidence on the release candidate.ai/repo/project/issues/I3213.yamlI3214The narrow-screen menu of /ui and /cockpit closes on Escape, on a choice and on its backdrop, and returns focus to its toggle.ai/repo/project/issues/I3214.yamlI3215The ui audit refuses a control a thumb cannot hit at the floor width.ai/repo/project/issues/I3215.yamlI3216The IDD loop is accepted at a phone's width as it is at a desktop's.ai/repo/project/issues/I3216.yamlI3217A wide table on a UI screen is a stacked list below the narrow width, from the same rows.ai/repo/project/issues/I3217.yamlI3218The execution ledger is a source of the monitor, so a run started anywhere is followed everywhere.ai/repo/project/issues/I3218.yamlI3219The Observatory is told what happened over the live channel, and asks only when it cannot be told.ai/repo/project/issues/I3219.yamlI3220An intent proposed or an issue moved by any client reaches an open intent workspace without a reload.ai/repo/project/issues/I3220.yamlI3221Every live surface says in ADR 0158's words whether it is live, reconnecting, stale, polling, a snapshot or a replay.ai/repo/project/issues/I3221.yamlI3222A follower whose frames are lost, delayed or reordered, or whose peer is partitioned, ends equal to a fresh snapshot.ai/repo/project/issues/I3222.yamlI3223The homepage hero lets a visitor switch between recorded scenarios, each ending in the refusal it proves.ai/repo/project/issues/I3223.yamlI3224Every problem and every step on the homepage leads to the feature and evidence behind it, with the maturity the product model derives.ai/repo/project/issues/I3224.yamlI3225A capability is run from /ui through the form its input schema generates, confirmed when its effect writes, and followed as an execution.ai/repo/project/issues/I3225.yamlI3226Every UI and Cockpit response says where its time went.ai/repo/project/issues/I3226.yamlI3227A UI link a reader is about to follow is fetched ahead when the route is cheap and the connection allows it.ai/repo/project/issues/I3227.yamlI3228The UI's search finds any entity the registry addresses and offers the moves its status admits.ai/repo/project/issues/I3228.yamlI3229Every version badge says whose version it is and how it stands to the latest release.ai/repo/project/issues/I3229.yamlI3230The Dashboard opens on what needs the owner: what runs, what is blocked and why, what was verified, and the next safe move.ai/repo/project/issues/I3230.yamlI3231The Observatory shows its own stream health: lag, dropped frames, resyncs and frame rate.ai/repo/project/issues/I3231.yamlI3232A kiosk left running for days shifts its marks against burn-in and recovers from a lost drawing context.ai/repo/project/issues/I3232.yamlI3233Stage C renders only the targets that read the index, and the manifest no longer renders every code-only artifact a second time.ai/repo/project/issues/I3233.yamlI3234A derive whose executable is current and whose inputs did not move answers before it waits for the machine's lock.ai/repo/project/issues/I3234.yamlI3235The site generator reads the use-case catalogue once per run.ai/repo/project/issues/I3235.yamlI3236Independent derive nodes run in bounded parallel against one snapshot, and the bytes do not depend on the order.ai/repo/project/issues/I3236.yamlI3237A derive publishes its whole output set at once after validating it, and a killed derive leaves the previous set.ai/repo/project/issues/I3237.yamlI3238A pull request runs the cases its change can affect, chosen from what each case declares it reads, and a change of unknown impact runs them all.ai/repo/project/issues/I3238.yamlI3239One job builds a run's executable and every other job of that run uses it.ai/repo/project/issues/I3239.yamlI3240A pull request's browser audit visits the pages its change can reach, and a shared-layout change sweeps them all.ai/repo/project/issues/I3240.yamlI3241Only a job that reads history fetches all of it.ai/repo/project/issues/I3241.yamlI3242The pull-request critical path has a committed GitHub baseline and a budget per required job, and a run's summary names its critical path and every cache state.ai/repo/project/issues/I3242.yamlI3244The generated Dockerfile copies every path crate cargo metadata names, so a new workspace crate needs no edit of the image.ai/repo/project/issues/I3244.yamlI3245The image build's cold and warm durations and its context size are read from docker-image runs, and the deployment records say what is built today.ai/repo/project/issues/I3245.yamlI3246The evidence half of a gap is drafted from the ledger, and a second draft at one commit is the same.ai/repo/project/issues/I3246.yamlI3247Work is drafted for each criterion nothing serves, under a key derived from the intent, the criterion and the gap, so a second draft drafts the same work.ai/repo/project/issues/I3247.yamlI3248A draft that drops or weakens a criterion of its intent is refused unless a recorded decision names the change.ai/repo/project/issues/I3248.yamlI3249A replan is bounded: past a declared budget of drafts without measurable progress it ends in a named state a person resolves.ai/repo/project/issues/I3249.yamlI3250Before drafting work the planner says whether a criterion is met, met but unproven, or unmet, and drafts proof-only work where only proof is missing.ai/repo/project/issues/I3250.yamlI3251A desired outcome is briefed with what the repository already holds about it.ai/repo/project/issues/I3251.yamlI3252A draft plan is judged as if it were written, and only a checked draft is written, through one capability.ai/repo/project/issues/I3252.yamlI3253A proposal lists the values it left unresolved, and a draft that carries an invented threshold is refused.ai/repo/project/issues/I3253.yamlI3254A proposal names the existing intents and issues it duplicates or overlaps, and is merged into one rather than added beside it.ai/repo/project/issues/I3254.yamlI3255A command criterion is met only by a recorded passing run of exactly that command at the presented revision.ai/repo/project/issues/I3255.yamlI3256A deployment criterion is met only by a recorded observation of that deployment serving a build that contains the criterion's newest change.ai/repo/project/issues/I3256.yamlI3257intent explain follows each served issue past its merge to the release and the observed deployment that carry it.ai/repo/project/issues/I3257.yamlI3258Evidence for and against one criterion is kept and named, and the criterion reads unknown until it is settled.ai/repo/project/issues/I3258.yamlI3259Where the policy says completed means complete, finish refuses completed while a criterion the task serves is unmet, and writes no intent state.ai/repo/project/issues/I3259.yamlI3260One intent is carried in a disposable repository from a sentence through a failing criterion to a satisfied verdict, across two providers and a handover.ai/repo/project/issues/I3260.yamlI3261Every bypass of the intent loop is tried by a test and is refused or exempted by policy, never passed.ai/repo/project/issues/I3261.yamlI3267One read-only evaluator says what accepting an issue would unblock, from plan.next's own readiness rules.ai/repo/project/issues/I3267.yamlI3268The published plan has an impact page whose graph and sortable table agree and name the commit they were read at.ai/repo/project/issues/I3268.yamlI3269Accepting several issues at once is previewed on the original graph, with shared unlocks counted once.ai/repo/project/issues/I3269.yamlI3270A blocked issue says which kind of block holds it: a dependency, contention, or a stale record.ai/repo/project/issues/I3270.yamlI3271plan.drift reports a source it could not observe as unknown, never as a drift finding.ai/repo/project/issues/I3271.yamlI3272A received brief is a campaign revision pinned by its manifest digest, and the same bytes again are the same revision.ai/repo/project/issues/I3272.yamlI3273Each requirement of a campaign revision has a content-derived identity and is reconciled into the existing intents and issues.ai/repo/project/issues/I3273.yamlI3274A new campaign revision reports only the criteria whose source requirement changed.ai/repo/project/issues/I3274.yamlI3275An intent's inspector shows the campaign segments it was derived from.ai/repo/project/issues/I3275.yamlI3276The time from an intent's proposal to its verified satisfaction is derived from the records, with the interventions on the way.ai/repo/project/issues/I3276.yamlI3278The 2026-10-18 import is the workspace store's first sync, not a scratchpad.ai/repo/project/issues/I3278.yamlI3279The vendor's own data export is a transport, and it carries the message identities an in-page read did not keep.ai/repo/project/issues/I3279.yamlI3280An intent, a milestone and an issue carry provenance the way an ADR and a knowledge record do.ai/repo/project/issues/I3280.yamlI3281A workspace message is a typed provenance reference that validates in every checkout without the store.ai/repo/project/issues/I3281.yamlI3282A workspace reference resolves to its message where the store holds it, and says 'not held here' where it does not.ai/repo/project/issues/I3282.yamlI3283The UI opens the message a record cites, and the published snapshot shows only the reference.ai/repo/project/issues/I3283.yamlI3284Every reference the 2026-10-18 import wrote is pinned to the upstream message it meant.ai/repo/project/issues/I3284.yamlI3285A vendor workspace reads the plan through the authenticated remote MCP surface, and a tunnel never makes it look local.ai/repo/project/issues/I3285.yamlI3286A proposal from a workspace arrives as intent.propose carrying the workspace reference it came from.ai/repo/project/issues/I3286.yamlI3287A provider declares how it reports usage, with the evidence, beside its lifecycle.ai/repo/project/issues/I3287.yamlI3288The shared server receives Claude Code's OpenTelemetry usage events over loopback and records them as reported.ai/repo/project/issues/I3288.yamlI3289Turning usage collection on is a dry-run plan the person consents to, never a committed repository setting.ai/repo/project/issues/I3289.yamlI3290Codex usage is read from app-server increments, and a cumulative total is never summed.ai/repo/project/issues/I3290.yamlI3291Gemini CLI usage events map onto the same record, thought tokens included.ai/repo/project/issues/I3291.yamlI3292Reported tokens, a price-list estimate and a billed amount are three fields, and the billing mode says which account paid.ai/repo/project/issues/I3292.yamlI3293Usage is attributed to the session, task and issue it was spent on, from records the repository already keeps.ai/repo/project/issues/I3293.yamlI3294/ui shows usage by provider, model, session, task and issue, and every figure opens its reported events.ai/repo/project/issues/I3294.yamlI3295A task declared over its token budget is told so, and refused only where policy says refuse.ai/repo/project/issues/I3295.yamlI3296Each compaction is measured: the context before and after, from the provider's report.ai/repo/project/issues/I3296.yamlI3297A waste finding names its evidence and confidence and is never presented as a saving.ai/repo/project/issues/I3297.yamlI3298The benchmark declares one arm per mechanism and per agent topology, and a short-task hypothesis beside the long-work one.ai/repo/project/issues/I3298.yamlI3299Majordomus's own overhead in an adopting repository is measured per operation against declared budgets.ai/repo/project/issues/I3299.yamlI3300Majordomus installs into Claude Code as one generated plugin carrying its skills, hooks, mods and MCP server.ai/repo/project/issues/I3300.yamlI3301A Claude Code session that stops with an active task is told what the task still owes.ai/repo/project/issues/I3301.yamlI3302An installed plugin or mod that differs from what the repository generated is a doctor finding.ai/repo/project/issues/I3302.yamlI3303Codex's hooks draw its episodes and refuse an edit no claim covers, as Claude Code's do.ai/repo/project/issues/I3303.yamlI3304A prompt reaches the model within a declared capture budget, and no captured record is lost.ai/repo/project/issues/I3304.yamlI3305A scripted capability installed from outside the repository registers like one inside it.ai/repo/project/issues/I3305.yamlI3306An external scripted capability runs under default-deny grants, bounded, and leaves an audit record.ai/repo/project/issues/I3306.yamlI3307The default MCP tools/list stays within a declared byte budget, and a full schema is fetched per tool.ai/repo/project/issues/I3307.yamlI3308Zed validates and completes .ai files against the repository's own schemas.ai/repo/project/issues/I3308.yamlI3309A fix finishes completed only with a named regression case that fails on the task's base and passes on its head.ai/repo/project/issues/I3309.yamlI3310majordomus start refuses a task, owner or reason that the task record cannot hold, and writes nothing.ai/repo/project/issues/I3310.yamlI3311Generated sequences of episode events never move an episode in a way its transition table forbids.ai/repo/project/issues/I3311.yamlI3312An ADR may name the paths it governs, and the compiled context for those paths includes it.ai/repo/project/issues/I3312.yamlI3313A failing verification in a closed session record says whether the ledger already held it failing at the task's base.ai/repo/project/issues/I3313.yamlI3314An object's read names the commit that last changed its file, and its page lists the commits that changed it.ai/repo/project/issues/I3314.yamlI3315The image smoke completes an MCP initialize on /mcp and a WebSocket upgrade on /events, not only a ready probe.ai/repo/project/issues/I3315.yamlI3316The rescue command a stranded worktree is offered is proved by a drill that restores its work byte-identical.ai/repo/project/issues/I3316.yamlI3317An execution records the commit it started at, and a writing execution the paths it changed.ai/repo/project/issues/I3317.yamlI3318Every decision and curated note is read on /ui, with the records it names and the records that name it.ai/repo/project/issues/I3318.yamlI3319No record names a repository a design was studied in.ai/repo/project/issues/I3319.yamlI3320A lifecycle command run against an absent or stale executable fails loudly and never falls back to a shell writer.ai/repo/project/issues/I3320.yamlI3321In a foreign repository, the wired pre-push hook of the claude-code projection refuses what finish would refuse, through the installed release.ai/repo/project/issues/I3321.yamlI3322capture install wires the edit guard into Claude Code's PreToolUse, first in an advisory mode, and doctor reports it unwired.ai/repo/project/issues/I3322.yamlI3323An unclaimed edit is refused in Claude Code once no live peer edits without a claim.ai/repo/project/issues/I3323.yamlI3324After every deploy the published homepage's hero choices are probed and found reachable.ai/repo/project/issues/I3324.yamlI3350The homepage copy may not use a word of delivered value until a claim permits it.ai/repo/project/issues/I3350.yamlI3351A proof plan is a validated record in which each protocol is frozen by its own digest, so registering one test never stales another's records.ai/repo/project/issues/I3351.yamlI3352The six proof tests are registered, each with the claim it settles and its instrument, and none carries a protocol yet.ai/repo/project/issues/I3352.yamlI3353A trial is a typed record that carries its protocol's digest, refuses what the protocol does not declare, and redacts what its publication basis does not permit.ai/repo/project/issues/I3353.yamlI3354A pure scorecard function computes each proof test's status, counted sample, effect and losses from committed records, and withholds a verdict until the registered sample is complete.ai/repo/project/issues/I3354.yamlI3355majordomus economics proof serves the scorecard on the command line, HTTP and MCP from one capability declaration.ai/repo/project/issues/I3355.yamlI3356The site's economics page publishes the scorecard from the generated summary, failed and inconclusive tests and every loss in the same rows as passed ones, each linking its records.ai/repo/project/issues/I3356.yamlI3357/ui/evidence shows the proof scorecard beside the claims it settles, read from economics.proof, with each row linking its records.ai/repo/project/issues/I3357.yamlI3358economics check refuses a guaranteed claim of value that no passed proof test backs, in the claims matrix only.ai/repo/project/issues/I3358.yamlI3359A workflow states which repository may be adopted as foreign, what each adoption records and publishes, and with whose consent.ai/repo/project/issues/I3359.yamlI3360The T1 protocol and its selection floors are registered before any candidate is measured, and a record without an admitted candidate is refused.ai/repo/project/issues/I3360.yamlI3361install-check's first-run stage runs against a clone of an existing repository named on the command line and writes a T1 trial record.ai/repo/project/issues/I3361.yamlI3362Candidate repositories are measured against the registered floors and admitted or refused before any of them is installed into.ai/repo/project/issues/I3362.yamlI3363One admitted foreign repository is adopted from the published installer to an accepted finish by a real coding agent, and its record is committed whatever its outcome.ai/repo/project/issues/I3363.yamlI3364The adoption-overhead bench takes a target repository, and Majordomus's overhead and footprint are measured in the adopted foreign repository.ai/repo/project/issues/I3364.yamlI3365Every intervention, undocumented command and refused step of a foreign adoption carries a friction id or a reason, and every friction id is cited by an issue or a cancellation.ai/repo/project/issues/I3365.yamlI3366The economics calculator decides a binary paired outcome by an exact task-level test, intervals a continuous paired difference by task-clustered bootstrap, and turns either into one verdict.ai/repo/project/issues/I3366.yamlI3367A suite can be registered: strata, outcomes, acceptance rule, analysis, MDE, a seeded interleaved run order and the stopping rule are declared data the load validates and the runner honours.ai/repo/project/issues/I3367.yamlI3368Six large tasks join the economics corpus, each failing on its start, passing on its reference and reviewed by someone other than its author.ai/repo/project/issues/I3368.yamlI3369Four medium and three small tasks join the economics corpus, each failing on its start, passing on its reference and reviewed by someone other than its author.ai/repo/project/issues/I3369.yamlI3370The corpus suite is registered and committed before its first run, and the T2 protocol names its registration digest.ai/repo/project/issues/I3370.yamlI3371Economics summary decides a registered suite's primary outcome by its registered test, reports secondary differences without a verdict word, and refuses typed figures about them.ai/repo/project/issues/I3371.yamlI3372The registered corpus is run in both arms, its records are committed, and its verdict is published with its losses and its origin.ai/repo/project/issues/I3372.yamlI3373The program's blocked dependencies are cut or re-scoped by recorded owner decisions, or recorded as refused with the criteria they leave outside the window.ai/repo/project/issues/I3373.yamlI3374Task difficulty is a proxy measured from each task's reference, and the stratum cut-offs are registered before any new task is written.ai/repo/project/issues/I3374.yamlI3375A registered suite pins its treatment to one released version, so landings on master during the runs leave them current.ai/repo/project/issues/I3375.yamlI3376One capability states each task's wall time and episodes from every checkout's ledger, and names every field it cannot yet fill as not observed.ai/repo/project/issues/I3376.yamlI3377A task's prompt records, restarts and manual changes are counted by type from the records that already hold them, each with the ids behind it.ai/repo/project/issues/I3377.yamlI3378A permission request the provider reports leaves a receipt with its own elapsed time, and economics.tasks counts it as an approval.ai/repo/project/issues/I3378.yamlI3379Each issue's CI reruns and rounds are counted from the Actions run record, attributed through plan.delivery.ai/repo/project/issues/I3379.yamlI3380A task's spend is the usage attributed to it, as reported tokens with their class, and money stays not observed until it is a separate field.ai/repo/project/issues/I3380.yamlI3381A task counts as accepted only by the written definition of an accepted outcome, with the issue's furthest delivery stage shown beside it.ai/repo/project/issues/I3381.yamlI3382Every recorded benchmark run answers the same delivery-economics shape as a task.ai/repo/project/issues/I3382.yamlI3383The T3 delivery window is registered before it opens: its period, the work it admits, the definition of accepted and a bound on each field's not-observed share.ai/repo/project/issues/I3383.yamlI3384The first delivery window is measured at its close and published with its denominators, the work not accepted and the checkouts it could not read.ai/repo/project/issues/I3384.yamlI3385A registered suite's primary verdict can be held to a non-inferiority guard, so a speed-up counts only when accepted share is not worse by more than a registered margin.ai/repo/project/issues/I3385.yamlI3386The economics runner runs one job as several concurrent workers in worktrees of one workspace sharing the treatment's server, and records the job's wall time to an integrated, accepted tree.ai/repo/project/issues/I3386.yamlI3387Batch tasks compose existing corpus tasks into sets of issues several workers can share, with their dependencies and the union of their hidden tests.ai/repo/project/issues/I3387.yamlI3388The mesh suite is registered before its first run, and the T4 protocol names its registration digest.ai/repo/project/issues/I3388.yamlI3389The mesh suite is run in both arms and its guarded verdict is published with its losses.ai/repo/project/issues/I3389.yamlI3390One conservation reading counts completions per issue, unreachable task commits, stranded claims and multiply-consumed handovers, each violation with its records.ai/repo/project/issues/I3390.yamlI3391The T5 protocol registers three fault kinds, the trials each needs and what a trial must show, before any fault is injected.ai/repo/project/issues/I3391.yamlI3392The mesh lab injects the three faults into work in progress, and its evidence holds the conservation reading of each scenario.ai/repo/project/issues/I3392.yamlI3393Each fault is injected into real coding-agent sessions on one host, and each trial's recovery and conservation reading are committed.ai/repo/project/issues/I3393.yamlI3394The mesh lab's work-fault evidence from CI is committed as T5 trials and the T5 verdict is published with every failed trial.ai/repo/project/issues/I3394.yamlI3395An intent criterion can cite a verification the repository's profile declares, and a recorded passing run of it at the current tree makes the criterion current.ai/repo/project/issues/I3395.yamlI3396A documented command adds a criterion to a proposed intent, and the getting-started page shows the path from a proposal to a satisfied verdict.ai/repo/project/issues/I3396.yamlI3397install-check's first-intent stage reaches a satisfied verdict in a named repository with only the getting-started commands, and counts the doctrine its output exposes.ai/repo/project/issues/I3397.yamlI3398The T6 protocol says who counts as a newcomer, what each trial records and how many must reach a satisfied verdict unaided, before any trial runs.ai/repo/project/issues/I3398.yamlI3399Newcomer trials are run as the protocol declares, recorded as they happened, and the T6 verdict is published with every trial.ai/repo/project/issues/I3399.yamlI3400The decompose-a-brief skill exists, is invoked by the plan workflow, and is named by both skill tests, so skills verify holds it as a capability.ai/repo/project/issues/I3400.yamlI3401intents.propose writes no record for a multi-paragraph, Markdown or over-length statement and answers invalid_input, naming the canonical digest and the skill that decomposes it.ai/repo/project/issues/I3401.yamlI3402The /intent alias follows the skill an unsuccessful answer names instead of stopping at it or retrying with altered text.ai/repo/project/issues/I3402.yamlI3403The Cockpit runner, the execution form and the intent workspace show an answer that names a skill as one link to that skill, proven in the existing browser case.ai/repo/project/issues/I3403.yamlI3404A decomposition of a synthetic brief in the skill's output shape is held valid by a test, its digest agrees with the refusal, and an unserved criterion in it is caught.ai/repo/project/issues/I3404.yamlI3405Every generated model-invocable domain skill follows the skill an unsuccessful answer names, so the MCP path does not end at a refused paste.ai/repo/project/issues/I3405.yamlI3406A prompt delivered again, concurrently, on the next day or after a resumed session is still one record, and capture status counts every identity that more than one record holds.ai/repo/project/issues/I3406.yamlI3407What a set of paths affects in the plan is derived from the index: the issues whose scope covers them, what those issues serve and their incoming edges, each with its relation, and nothing is rescanned.ai/repo/project/issues/I3407.yamlI3408A captured prompt is answered, on this machine only, with the existing intents and issues it matches or with no match, and the answer carries identities and never the prompt's text.ai/repo/project/issues/I3408.yamlI3409An episode answers, for each prompt it captured, the intent it matched, the task that recorded it, that task's outcome and the evidence of the criterion it serves, with the same identities on every surface and after any replay.ai/repo/project/issues/I3409.yamlI3410A Codex prompt is captured through Codex's own UserPromptSubmit hook, and capture status stops calling Codex prompts unadapted.ai/repo/project/issues/I3410.yamlI3411A task records the captured prompt it followed, so the join from prompt to task is a recorded fact rather than a time adjacency.ai/repo/project/issues/I3411.yamlI3412entity.affected also answers the rules, claims and knowledge records whose declared references name an affected path or issue, and takes a revision range.ai/repo/project/issues/I3412.yamlI3413A decision, resolved question or verified task fact already curated or pending from another episode of this checkout is not proposed again, and derive names the record it matched.ai/repo/project/issues/I3413.yamlI3414Every candidate group names the curated notes and the rule that already speak about its subject, read from entity.affected, so a possible duplicate or contradiction is in front of the reviewer with both sources.ai/repo/project/issues/I3414.yamlI3415knowledge promote refuses evidence that names no reference existing in this checkout, and knowledge.promoted records the references it stood on.ai/repo/project/issues/I3415.yamlI3416The episode boundary is proven to give one candidate for an observation recorded twice, none for a partial task, and one file per episode when two episodes close at once.ai/repo/project/issues/I3416.yamlI3417An observation can cite the mesh review that found what it records, and the reference stays in the candidate's body, never in its provenance.ai/repo/project/issues/I3417.yamlI3418Every advisor consultation records the model that answered, the source it came through and the session that asked.ai/repo/project/issues/I3418.yamlI3419A conclusion's independent review count counts distinct sources, defined as adapter plus recorded model, so two answers from one source are one review.ai/repo/project/issues/I3419.yamlI3420A mesh peer asked for critique receives the question and its evidence, and its answer is recorded with the session that gave it.ai/repo/project/issues/I3420.yamlI3421A reasoning plan over the task's declared token or time budget consults nobody and says that the budget decided.ai/repo/project/issues/I3421.yamlI3422Advisor consultations are economics usage with their measurement class, and a consultation over its plan's budget is a finding.ai/repo/project/issues/I3422.yamlI3423docs/REASONING.md maps the pack's routing levels onto the existing plan outcomes and modes, and a test fails when an outcome is missing from that mapping.ai/repo/project/issues/I3423.yamlI3424No inference transport is reachable from the shell closure of any declared hook command, and reasoning check refuses one that is.ai/repo/project/issues/I3424.yamlI3425A standing conclusion is reused only while the files it cites are unchanged since it was recorded.ai/repo/project/issues/I3425.yamlI3426An advisor answer carrying instructions or record-shaped fields is kept as bounded text and changes no record.ai/repo/project/issues/I3426.yamlI3427Every entity read names how its record says it is known, and never answers verified itself: proof stays the pointer it is.ai/repo/project/issues/I3427.yamlI3428An entity read carries the observation envelope repository.info already answers, plus the blob of its file, and a change to that file moves both.ai/repo/project/issues/I3428.yamlI3429One entity reads the same on the command line, REST, MCP and the Cockpit: identity, kind, class, evidence, observation envelope and edge order.ai/repo/project/issues/I3429.yamlI3430The IDD standing panel and the Cockpit intent page show, under each criterion, the knowledge that bears on it, each with how it is known.ai/repo/project/issues/I3430.yamlI3431A record a process outside the server writes (a knowledge record reaching the index, a ledger line or a captured prompt) reaches an open view within one heartbeat, without a reload.ai/repo/project/issues/I3431.yamlI3432The UI and Cockpit snapshots pass both privacy gates after they are placed and before anything is published, on CI and from a terminal.ai/repo/project/issues/I3432.yamlI3433A UI snapshot page renders only the readings its subject declares publishable, and a page that reads any other reading, or a capability that refuses remote callers, is withheld with a link to the live page.ai/repo/project/issues/I3433.yamlI3434A capability declared as reading checkout-private records answers only this machine: a caller beyond loopback is refused on HTTP and MCP, and the refusal logs no input value.ai/repo/project/issues/I3434.yamlI3435A Cockpit snapshot withholds every page that reads a capability refusing remote callers, not only the continuity page it names.ai/repo/project/issues/I3435.yamlI3436Every article reads in every language the site declares, and its counterparts are reciprocal.ai/repo/project/issues/I3436.yamlI3437An article names every language version in one translations table, and every member names the same group.ai/repo/project/issues/I3437.yamlI3438A translation records the digest of its source, and site-check refuses one its source has moved past.ai/repo/project/issues/I3438.yamlI3439Now and next are derived once, and every plan surface names the same two.ai/repo/project/issues/I3439.yamlI3440A milestone's meter counts the issues it requires, and a milestone with none says so.ai/repo/project/issues/I3440.yamlI3441The roadmap's tables show the order they are in, say none for nothing, and link every milestone.ai/repo/project/issues/I3441.yamlI3442Where the work is is cached by what it reads, and a warm roadmap does not walk the trunk.ai/repo/project/issues/I3442.yamlI3443Each roadmap milestone names the product features its issues deliver, derived from the feature declarations.ai/repo/project/issues/I3443.yamlI3444A claim released on a runtime that is not replicating reaches every linked runtime, or the release is refused.ai/repo/project/issues/I3444.yamlI3447No two published paths differ only in case, and a publication that holds two is refused before it is built.ai/repo/project/issues/I3447.yamlI3448A deploy of master keeps every pre-release's metadata the site already serves.ai/repo/project/issues/I3448.yamlI3449Every surface names its versions from one derived release model, says which version each one is, and a gate refuses a version that disagrees or is written by hand.ai/repo/project/issues/I3449.yamlI3602The interaction probe is split, so every control of every page is driven inside its bound.ai/repo/project/issues/I3602.yamlI3606Two live instances of one runtime slot keep their links, and the mesh names them instead of flapping.ai/repo/project/issues/I3606.yamlI3607mesh state answers in JSON on the command line, and its view is chosen the same way on every surface.ai/repo/project/issues/I3607.yamlI3608An open review says how old it is, and lapses when nobody can answer it any more.ai/repo/project/issues/I3608.yamlI3609A claim replayed after a re-attach keeps the time it was made, and an announce answers with the claim it made.ai/repo/project/issues/I3609.yamlI3660A vendor declares its funding sources in the model catalogue, each with dated, quoted vendor evidence.ai/repo/project/issues/I3660.yamlI3661Which funding sources the owner holds, and their caps, are the owner's local declaration and never projected.ai/repo/project/issues/I3661.yamlI3662models.route names the funding source a route would draw on, as an inference with its basis, in the declared source order.ai/repo/project/issues/I3662.yamlI3663An Anthropic API advisor is declared, so a held Anthropic credit grant can pay for review.ai/repo/project/issues/I3663.yamlI3664doctor and the brief tell the owner a held funding source no credential reaches, with the vendor's claim link.ai/repo/project/issues/I3664.yamlI3665A benchmark run and an advisor consultation carry the funding kind the owner declared for them, or unknown.ai/repo/project/issues/I3665.yamlI3666Spend against a funding source is observed from a named vendor seam or recorded absent, and no balance is derived from a price.ai/repo/project/issues/I3666.yamlI3667A run that would fall through to metered billing while a grant is held, or cross a declared cap, is told before it starts.ai/repo/project/issues/I3667.yamlI3750The milestone graph reads each edge in the direction it means, in its text and in its detail panel.ai/repo/project/issues/I3750.yamlI3751The roadmap says only what the plan holds, with a bar and a date on every milestone.ai/repo/project/issues/I3751.yamlI3752The UI is one of the product's surfaces, so every count of the interfaces agrees.ai/repo/project/issues/I3752.yamlI3753The Czech copy says what the English says, in one vocabulary, with no segment of the homepage or the roadmap left in English.ai/repo/project/issues/I3753.yamlI3754plan.next never names an issue whose delivery is merged or released, and plan.roadmap names that issue with its drift.ai/repo/project/issues/I3754.yamlI3755/roadmap/ opens with now, next and a status summary, shows each milestone's priority, and keeps its issue groups collapsed.ai/repo/project/issues/I3755.yamlI3756A published UI snapshot says once why it reads no mesh and no deployed commit, and shows no unread notice for either.ai/repo/project/issues/I3756.yamlI3757A BLOCKED milestone names what holds it: the milestones it waits on, or the issues outside it that hold every open issue inside it.ai/repo/project/issues/I3757.yamlI3758A number in a segment is a placeholder, so a changed count keeps its translation, and site-check reports each copy's untranslated share.ai/repo/project/issues/I3758.yamlI3759Every language's homepage is held to the declared weight budget, and the capability list is fetched rather than inlined.ai/repo/project/issues/I3759.yamlI3760Each evidence-chain node says its own thing, and every homepage figure links to a page that counts the same number.ai/repo/project/issues/I3760.yamlI3761The Pages run of a release head publishes with fresh evidence, or publishes the site with the evidence lag stated, and never fails on a missing snapshot artifact.ai/repo/project/issues/I3761.yamlI3762plan validate warns on an open issue that declares no parallel_safe.ai/repo/project/issues/I3762.yamlI3763A cancelled dependency that names its replacement is satisfied by that replacement, and one that names none is reported.ai/repo/project/issues/I3763.yamlI3764The homepage's plan card says what each status means, links each to its issues, draws progress, and invites the roadmap.ai/repo/project/issues/I3764.yamlI3765The homepage's provider figure says what it counts, and every provider it names is a name a visitor can recognise.ai/repo/project/issues/I3765.yamlI3766The install section links each page once, and the recorded refusals are grouped by the use case they prove.ai/repo/project/issues/I3766.yamlI3767The language switch of a UI or Cockpit page keeps the reader on that page, and says so when the surface has no copy in the language chosen.ai/repo/project/issues/I3767.yamlI3768Every plan surface answers 'when' from the records: a release's date beside its version, and the last delivery date of each open milestone.ai/repo/project/issues/I3768.yamlI3769A published page reads delivery at the commit it was built from, and names one commit.ai/repo/project/issues/I3769.yamlI3770A server that lost its checkout lease answers every mesh read by naming the server that holds it, never with an empty mesh.ai/repo/project/issues/I3770.yamlI3771A claim scope that is not a repository path is refused, or mapped to the record file it names, so a milestone claim excludes what it says.ai/repo/project/issues/I3771.yamlI3772Every mesh link counts its failed sync rounds, and a link whose rounds fail does not read plainly connected.ai/repo/project/issues/I3772.yamlI3773Every plan surface draws a milestone's progress as a bar of the issues it requires, a blocked milestone's bar says the gate is closed, and the roadmap no longer says a bar would be a lie.ai/repo/project/issues/I3773.yamlI3774Every completed step of a session is announced on the mesh by the step itself, and the board, the monitor and the UI show it.ai/repo/project/issues/I3774.yamlI3775A page written by hand is never resolved as derived: the merge=derived globs name only what a generator writes.ai/repo/project/issues/I3775.yamlI3777site-check refuses a translation-memory entry the build can no longer reach because it is keyed the old way.ai/repo/project/issues/I3777.yamlI3790The design book declares one mechanism, its tokens and its gate for code, charts, controls, embeds and shell blocks.ai/repo/project/issues/I3790.yamlI3791A code block on /ui and the Cockpit carries the one highlighter's classes, and the audit refuses one that does not.ai/repo/project/issues/I3791.yamlI3792Every chart on every surface is drawn from a table on its page.ai/repo/project/issues/I3792.yamlI3793One copy control and one tab control ship to every surface.ai/repo/project/issues/I3793.yamlI3794The interaction probe drives the controls of /ui and the Cockpit as it drives the site's.ai/repo/project/issues/I3794.yamlI3795A surface links to another surface and never embeds it.ai/repo/project/issues/I3795.yamlI3796Every command and its output is one shell block, on every surface.ai/repo/project/issues/I3796.yamlI3797A command shown outside the shell block is refused by the audit.ai/repo/project/issues/I3797.yamlI3798A session's mesh claims outlive a lease takeover of the server it made them on.ai/repo/project/issues/I3798.yamlI3799The Pages publication budgets are re-derived from the runs that publish the language copies.ai/repo/project/issues/I3799.yamlI3810A mesh session whose client process has ended is closed by the runtime that holds it.ai/repo/project/issues/I3810.yamlI3820A deployment names the provider that hosts it, and the provider's files are generated from it.ai/repo/project/issues/I3820.yamlI3821The tree a provider receives is assembled from the deployment object, and master publishes it after green ci.ai/repo/project/issues/I3821.yamlI3822A deployment that names a provider is observed at its own URL, and is active only while it serves master.ai/repo/project/issues/I3822.yamlI3823The mesh client reaches an https endpoint over TLS and refuses cleartext to a public address.ai/repo/project/issues/I3823.yamlI3824The cooperation rule says a worker lands its own green head, and every bootstrap says the same.ai/repo/project/issues/I3824.yamlI3825A build refuses to start beside five others or below 35 GiB free.ai/repo/project/issues/I3825.yamlI3826A hosted hub keeps one key from a secret, advertises its URL, and shows the mesh only to those it trusts.ai/repo/project/issues/I3826.yamlI3827The hosted hub is this repository's default rendezvous, and every node shows it as the path from anywhere.ai/repo/project/issues/I3827.yamlI3829A provider declares whether its client drives a browser beside the server, and preflight says when this machine's bridge is missing.ai/repo/project/issues/I3829.yamlI3830A local gate reports and CI decides: pre-commit and pre-push refuse only on integrity.ai/repo/project/issues/I3830.yamlI3831A hook never starts a cold cargo build: a stale executable is the installed release, or the check is skipped and says so.ai/repo/project/issues/I3831.yamlI3832majordomus worktree sweep removes merged, clean, idle worktrees, never with force, and announces each on the mesh.ai/repo/project/issues/I3832.yamlI3833majordomus disk prune reclaims by name what nobody is using: idle build directories under their cargo locks, and the container runtime's cache.ai/repo/project/issues/I3833.yamlI3834A case run removes its own scratch dir however it ends: passed, failed, timed out or interrupted.ai/repo/project/issues/I3834.yamlI3835A node the mesh lists as trusted and present but cannot link is said so, with why, on every surface that names it.ai/repo/project/issues/I3835.yamlI3836An offload derive observes the bundle's base commit, not its throwaway snapshot, so what it derives passes CI's check.ai/repo/project/issues/I3836.yamlI3837A case that enables the mesh declares its tailnet provider off, so it stays hermetic on a machine that runs Tailscale.ai/repo/project/issues/I3837.yamlI3838The plan page renders within the audit budget at every width, because a finding is counted rather than printed once per pair.ai/repo/project/issues/I3838.yamlI3839A build that cannot take its build directory's lock never falls back to a cold private directory below the free-disk bound: it waits, bounded, or refuses naming the bound and the holder.ai/repo/project/issues/I3839.yamlI3840The intent workspace answers within its 100 ms budget: its shared-scope fold holds the first pairs, not every pair.ai/repo/project/issues/I3840.yamlI3841The plan's graph is drawn by milestone, so /plan/dag/ answers the site probe within its budget however large the backlog grows.ai/repo/project/issues/I3841.yamlI3842A caller on another host never sees this process's executions, live or recorded.ai/repo/project/issues/I3842.yamlI3843The homepage title says the product sentence as declared, and in Czech on the Czech homepage.ai/repo/project/issues/I3843.yamlI3860An article explains in both languages why a saving is measured, not claimed.ai/repo/project/issues/I3860.yamlI3861The economics methodology names an interval the calculator does not compute, and ADR 0082 reads a finding it has no run for.ai/repo/project/issues/I3861.yamlI3862The shell floor is held by a case that reads what the rule forbids.ai/repo/project/issues/I3862.yamlI3902A hung Pages build is replaced by a declared bound, and the right tree is rebuilt, never redeployed.ai/repo/project/issues/I3902.yamlI3903A stuck or superseded CI run is found and stopped by a declared bound, by a typed capability on a schedule.ai/repo/project/issues/I3903.yamlI3910The integration executor fast-forwards master to every green head, a combined top included, and nothing else lands.ai/repo/project/issues/I3910.yamlI3911The executor reads its audit trail, its halt and its lease from origin, so any clone continues it and a stale holder is refused.ai/repo/project/issues/I3911.yamlI3912A seat whose holder stopped beating is reported vacant and offered to live sessions by capability.ai/repo/project/issues/I3912.yamlI3913The executor runs as a user service outside every agent session, restarted after a crash and never after a halt.ai/repo/project/issues/I3913.yamlI3914A standing approval is one owner-attributed record in the repository, each machine reports whether it carries it, and only the owner writes it.ai/repo/project/issues/I3914.yamlI3915A combined top is composed by a typed command from members declared in a tracked train manifest.ai/repo/project/issues/I3915.yamlI3916The homepage counts supported claims from the run the evidence page reads, and names the revision it was recorded at.ai/repo/project/issues/I3916.yamlI3917The plan's status counts leave the homepage hero and stay on the roadmap.ai/repo/project/issues/I3917.yamlI3918README, CONTRIBUTING and the homepage say truthfully how big the tool is and what its registry counts are.ai/repo/project/issues/I3918.yamlI3919The coverage gate finds the end of a test module across multi-line and raw string literals.ai/repo/project/issues/I3919.yamlI3920The GitHub projection reads every issue, and a listing shorter than the repository refuses rather than reads as missing.ai/repo/project/issues/I3920.yamlI3930The suite is dealt from the seconds it costs now, and the record that deals it says when it falls behind.ai/repo/project/issues/I3930.yamlI3931A stale UI bar is told in a minute, before the browser audit, and a branch does not spend the audit to learn it.ai/repo/project/issues/I3931.yamlI3932Coverage is exported as LCOV and Cobertura from its one measurement, and uploaded to Coveralls and Codecov when their secrets exist.ai/repo/project/issues/I3932.yamlI3933Every master run's coverage and CI cost join a derived series that the site and the Cockpit draw.ai/repo/project/issues/I3933.yamlI3934A CI run is emitted as an OpenTelemetry trace when an endpoint is configured, and nothing is sent when none is.ai/repo/project/issues/I3934.yamlI3935An agent session's telemetry reaches the same OpenTelemetry endpoint, configured once and projected to every provider.ai/repo/project/issues/I3935.yamlI3936The pages gate judges master's deploy after the run's heavy jobs, not on a clock that expires while the deploy queues behind them.ai/repo/project/issues/I3936.yamlI3937A gate whose cases the planned suite runs is not planned beside it.ai/repo/project/issues/I3937.yamlI3938The rustdoc composition case proves its composition on a small site, not on the whole one.ai/repo/project/issues/I3938.yamlI3939The executable and the rustdoc surface are built once per run and downloaded by the jobs that drive them.ai/repo/project/issues/I3939.yamlI3940The UI audit runs as four shards side by side, and the long pole of a full run is a quarter as long.ai/repo/project/issues/I3940.yamlI3941The UI draws the trends the pages publication records: coverage and CI time per run, and the slowest jobs.ai/repo/project/issues/I3941.yamlI3942Linux's per-argument cap is measured on every host, so an oversized jq argument fails where it is written.ai/repo/project/issues/I3942.yamlI3943A second list of gates outside the model is found when it is put back.ai/repo/project/issues/I3943.yamlI3944The two readers of the CI model give every gate, and the plan, the same reason in the same words.ai/repo/project/issues/I3944.yamlI3945The site generator's input list reaches jq through a file, not as one command-line argument.ai/repo/project/issues/I3945.yamlI3946Every gate of the CI model declares its lane, and both readers refuse a lane they cannot read.ai/repo/project/issues/I3946.yamlI3947A plan asked at a tier selects only the lanes that tier runs, and both readers of the CI model agree on it.ai/repo/project/issues/I3947.yamlI3949A printf piped into grep -q under pipefail is refused, and a here-string replaces it.ai/repo/project/issues/I3949.yamlI3950A cache key is a versioned triplet of platform, toolchain and inputs, derived from the host and the repository.ai/repo/project/issues/I3950.yamlI3951The mesh store is spoken natively: signed S3 requests, bounded in time, with the credential read from a private file and never answered.ai/repo/project/issues/I3951.yamlI3952A dependency install is restored before and saved after, verified by its digest, local level first and a trusted store second.ai/repo/project/issues/I3952.yamlI3953Every local build path of the repository goes through the cache, and a gate refuses a new bypass.ai/repo/project/issues/I3953.yamlI3955Whether an archived cargo build directory is reused on a second node is measured before anything restores one.ai/repo/project/issues/I3955.yamlI3956Every worker, and every process it starts on any machine, is traced to its session, and the board names the address that reaches it.ai/repo/project/issues/I3956.yamlI3957No entry path or gate builds: the launcher, the gates, the test harness and the just bridge call the tree's executable and fail fast or use a release of the same generation.ai/repo/project/issues/I3957.yamlI3959The shared build directory stays under its bound while builds run: between builds, under cargo's lock, its stale units are evicted oldest first until it is under the bound.ai/repo/project/issues/I3959.yamlI3960The initialize instructions tell the caller about itself before the board, and the board line is bounded.ai/repo/project/issues/I3960.yamlI3961peers.list answers a summary by default: checkouts that hold no board are counted, not listed.ai/repo/project/issues/I3961.yamlI3962The codex advisor's final message is held to the answer schema and read from its file alone.ai/repo/project/issues/I3962.yamlI3963A merge of master derives in one go: scripts/derive derives the staged merge with both parents as history.ai/repo/project/issues/I3963.yamlI3970Every pull request carries its metadata, projected from the trunk's records: labels, milestone, assignee and Refs links, never a closing keyword.ai/repo/project/issues/I3970.yamlI3971Work in an open pull request or under a live branch claim is reported taken and is never the next issue.ai/repo/project/issues/I3971.yamlI3972plan validate names every issue held only by its milestone gate, and an issue may declare it needs nothing from the milestone's dependencies.ai/repo/project/issues/I3972.yamlI3973A record is referenced only once it is on master: a pull request naming an unlanded id is refused, and convergence reports stranded records.ai/repo/project/issues/I3973.yamlI3974One allocator surveys every number (issue ids, ADR numbers, case numbers), and two branches adding one number under different names are refused.ai/repo/project/issues/I3974.yamlI3975GitHub issues are created only by github-sync: an agent's raw create is refused, an issue nobody projected is reported on GitHub, and an unmarked issue is never adopted.ai/repo/project/issues/I3975.yamlI3976Every commit names the issue it serves, outside narrow machine-verifiable exemptions, with the earlier history as a baseline.ai/repo/project/issues/I3976.yamlI3977Every page a deployment serves names only versions of the release model, checked after the deploy.ai/repo/project/issues/I3977.yamlI3978Each train member is judged on its merged tree, and a fix member joins only with a test and its changed-code coverage.ai/repo/project/issues/I3978.yamlI3979Every label, branch prefix and commit type is declared once, projected to GitHub, described in CONTRIBUTING and checked.ai/repo/project/issues/I3979.yamlI3995A task started before the first commit finishes: an unborn recorded head is an ancestor of every commit.ai/repo/project/issues/I3995.yamlI3999A fixture holds the skills the site generator reads.ai/repo/project/issues/I3999.yamlI4000A repeated executions.start with the same key answers one execution.ai/repo/project/issues/I4000.yamlI4001The execution state machine has Authorizing, Claimed, Verifying, Refused and UnknownOutcome.ai/repo/project/issues/I4001.yamlI4002Worktree.create is a typed writing capability.ai/repo/project/issues/I4002.yamlI4003Devtask.implement runs readiness, preflight, claim, worktree and one execution.ai/repo/project/issues/I4003.yamlI4004The executor takes the issue's mesh claim in the handler and releases it when the run ends.ai/repo/project/issues/I4004.yamlI4005Proceed.step answers one idempotent work order.ai/repo/project/issues/I4005.yamlI4006Machine.slot is a counting machine-wide slot for heavy work.ai/repo/project/issues/I4006.yamlI4007An idle serve exits by itself after a bound.ai/repo/project/issues/I4007.yamlI4008A push that only deletes refs runs no plan in the pre-push hook.ai/repo/project/issues/I4008.yamlI4009/watchdog reads liveness and runs wake, handover, reap.ai/repo/project/issues/I4009.yamlI4012A remote node's loopback runtimes are not dialed, so its hub is.ai/repo/project/issues/I4012.yamlI4013A server bound to every interface advertises the addresses it has now.ai/repo/project/issues/I4013.yamlI4154The follow backlog test waits on the follower's cursor, not on fifty milliseconds.ai/repo/project/issues/I4154.yamlI4155The follower's shared board and page caches are keyed by the repository they read.ai/repo/project/issues/I4155.yamlI4199A case that compiles the crate runs alone or caps cargo, so the cases beside it are never starved past their bounds.ai/repo/project/issues/I4199.yamlI4200A warm UI screen borrows what its sources answered and writes its page once, so a plan of any size is not copied per request.ai/repo/project/issues/I4200.yamlI4220A run that /trends/ draws is a link the site check decides by provenance.ai/repo/project/issues/I4220.yamlI4222A forge reply cut off on its way is asked again.ai/repo/project/issues/I4222.yamlI4223The pre-commit generation gate answers inside its bound, and a failed case's reason reaches an artifact.ai/repo/project/issues/I4223.yaml
knowledge 58
a-brief-is-reconciled-not-transcribedA brief or an audit becomes outcome-shaped records after discovery, never one issue per bullet.ai/repo/knowledge/curated/a-brief-is-reconciled-not-transcribed.mda-claim-is-not-a-lockMesh claims converge but are not strongly consistent, so no orchestrator may use them as a global lock.ai/repo/knowledge/curated/a-claim-is-not-a-lock.mda-commit-stood-behind-a-build-lockA commit stood fourteen minutes behind another worktree's build lock, in silence.ai/repo/knowledge/curated/a-commit-stood-behind-a-build-lock.mda-dashboard-is-cheap-continuity-is-notGenerating a dashboard is commoditised; consistency, continuity and evidence over a long-lived project are not.ai/repo/knowledge/curated/a-dashboard-is-cheap-continuity-is-not.mda-generator-that-can-list-everything-shows-everythingA system that can generate every list tends to put every list on its first screen.ai/repo/knowledge/curated/a-generator-that-can-list-everything-shows-everything.mda-merge-reached-production-an-hour-laterA merge reached production an hour later, and the workflow that published it was green.ai/repo/knowledge/curated/a-merge-reached-production-an-hour-later.mda-metadata-fingerprint-is-not-content-identityA fingerprint of mtime and size detects possible change; it is not content identity and does not prove outputs intact.ai/repo/knowledge/curated/a-metadata-fingerprint-is-not-content-identity.mda-partial-green-is-not-the-verdictA green light workflow, a green release workflow or a merge is not the trunk's verdict and not delivery.ai/repo/knowledge/curated/a-partial-green-is-not-the-verdict.mda-plan-on-an-unlanded-branch-is-planned-againA plan that lives only on an unlanded branch or a rescue ref is invisible to master-reading planners, and gets planned again.ai/repo/knowledge/curated/a-plan-on-an-unlanded-branch-is-planned-again.mda-prompt-pack-in-the-owners-wordA prompt pack is a ZIP with shared instructions and independent prompts that each rebuild the maximum context.ai/repo/knowledge/curated/a-prompt-pack-in-the-owners-word.mda-render-is-an-experience-target-not-dataA mockup or render is an experience target, never a specification of data.ai/repo/knowledge/curated/a-render-is-an-experience-target-not-data.mda-second-implementation-driftsTwo implementations of one verdict drift; delete one or test their parity.ai/repo/knowledge/curated/a-second-implementation-drifts.mda-speed-up-that-hides-a-check-is-not-oneA CI speed-up that removes, defers, hides or skips a required check without impact proof is not an optimisation.ai/repo/knowledge/curated/a-speed-up-that-hides-a-check-is-not-one.mda-system-that-measures-itself-looks-worse-firstA system that starts measuring itself looks worse before it looks better.ai/repo/knowledge/curated/a-system-that-measures-itself-looks-worse-first.mda-test-consistent-with-the-code-is-not-a-test-of-the-contractA test derived from current behaviour proves the code agrees with itself, not that it meets its contract.ai/repo/knowledge/curated/a-test-consistent-with-the-code-is-not-a-test-of-the-contract.mda-wiring-check-proves-a-string-not-an-effectA wiring verifier that greps for a dispatch string proves the string exists, not that the rule refuses anything.ai/repo/knowledge/curated/a-wiring-check-proves-a-string-not-an-effect.mda-worktree-is-not-a-security-boundaryA git worktree is not a security boundary, so permission bypass belongs only inside hard isolation.ai/repo/knowledge/curated/a-worktree-is-not-a-security-boundary.mdan-adopters-work-never-waits-for-majordomusWork in an adopting repository discovers what the installed Majordomus offers and never waits for a missing feature.ai/repo/knowledge/curated/an-adopters-work-never-waits-for-majordomus.mdan-expedited-landingHow a pull request is landed past the required check, and what that never reaches.ai/repo/knowledge/curated/an-expedited-landing.mdchatgpt-prompts-assumed-phoenixEarly ChatGPT prompts assumed an Elixir/Phoenix Cockpit; translate them to the Rust server.ai/repo/knowledge/curated/chatgpt-prompts-assumed-phoenix.mdclaude-code-mods-are-unsandboxed-hooks-in-pluginsA Claude Code mod is a TypeScript hook shipped inside a plugin, and it runs unsandboxed.ai/repo/knowledge/curated/claude-code-mods-are-unsandboxed-hooks-in-plugins.mdclaude-code-reports-usage-through-opentelemetryEach declared agent provider reports per-request usage through an official seam.ai/repo/knowledge/curated/claude-code-reports-usage-through-opentelemetry.mdcriteria-prove-the-declared-outcome-not-its-valueSatisfied criteria prove the declared outcome, not its business value.ai/repo/knowledge/curated/criteria-prove-the-declared-outcome-not-its-value.mddeclared-is-not-enforcedDeclaring, linking or repeatedly re-requesting an invariant does not enforce it; only a gate that refuses its violation does.ai/repo/knowledge/curated/declared-is-not-enforced.mdderive-lock-wait-exceeds-derive-workOn 2026-10-17 derives on the shared machine waited on the derive lock longer than they worked.ai/repo/knowledge/curated/derive-lock-wait-exceeds-derive-work.mddo-less-work-before-doing-it-fasterRunners, timeouts and shards hide a structural cost; removing repeated work is what has made this repository faster.ai/repo/knowledge/curated/do-less-work-before-doing-it-faster.mdenforcement-lands-before-the-repairEnforcement lands before the repair, because a peer running yesterday's instructions overwrites today's.ai/repo/knowledge/curated/enforcement-lands-before-the-repair.mdevidence-machinery-must-end-in-a-shipped-resultEvidence machinery not tied to a shipped, publicly verified result proves only that the proving machine exists.ai/repo/knowledge/curated/evidence-machinery-must-end-in-a-shipped-result.mdfeatures-are-category-hygieneRules, skills, memory, MCP, a cockpit and multi-agent runs are what the category converges on; only the combination is defensible.ai/repo/knowledge/curated/features-are-category-hygiene.mdintegration-capacity-bounds-the-backlogThe backlog grows whenever finished work arrives faster than it can be integrated, however fast it is written.ai/repo/knowledge/curated/integration-capacity-bounds-the-backlog.mdlay-audiences-and-the-target-userThe product is for engineers today; a non-technical listener is told in their own trade, with the target architecture marked as such.ai/repo/knowledge/curated/lay-audiences-and-the-target-user.mdliveness-differs-by-surfaceOn master 707a04c7 each surface is live by a different mechanism, and executions are not a monitor source.ai/repo/knowledge/curated/liveness-differs-by-surface.mdlundra-is-the-always-on-hublundra is the owner's always-on machine behind NAT, already a trusted mesh node and hub.ai/repo/knowledge/curated/lundra-is-the-always-on-hub.mdnaive-fan-out-burns-tokensFan-out without narrow briefs turns an optimisation into a token burner.ai/repo/knowledge/curated/naive-fan-out-burns-tokens.mdno-vendor-api-reads-a-chatgpt-projectNo vendor API reads a person's ChatGPT Project; only the person's own session and the vendor's export reach it.ai/repo/knowledge/curated/no-vendor-api-reads-a-chatgpt-project.mdnot-run-on-master-means-the-ledger-lacks-ci-runs\"Not run\" on master means the tracked ledger lacks CI's executions, not that the tests never ran.ai/repo/knowledge/curated/not-run-on-master-means-the-ledger-lacks-ci-runs.mdoverview-first-evidence-one-click-awayEvery surface leads with the overview, then relationships, then detail on demand, with evidence one click away.ai/repo/knowledge/curated/overview-first-evidence-one-click-away.mdpositioning-leads-with-the-outcomeMajordomus is explained by the outcome it decides, never by its architecture or as a coding agent.ai/repo/knowledge/curated/positioning-leads-with-the-outcome.mdpublic-writing-is-evidence-ledA public article about Majordomus takes every figure from the page that computes it, and each language edition is its own article.ai/repo/knowledge/curated/public-writing-is-evidence-led.mdread-the-ui-rules-before-proposing-a-uiA UI proposed before reading the repository's UI rules, tokens and gates violates blocking gates.ai/repo/knowledge/curated/read-the-ui-rules-before-proposing-a-ui.mdrhai-is-not-an-os-sandboxRhai is not an operating-system sandbox, and native Rust plugins have no stable ABI.ai/repo/knowledge/curated/rhai-is-not-an-os-sandbox.mdrhai-limits-are-not-a-clockRhai's operation limits are not a wall-clock timeout; the capability enforces deadlines.ai/repo/knowledge/curated/rhai-limits-are-not-a-clock.mds-20261019205653-344d-308c41e4af9athe glossary maps task to úloha and names no issue, while 1887 of 80743 memory entries say úkol, mostly for issue; and a stem test cannot decide adherence, because Czech declension (pravidla, pravidel) and verb senses (check, zkontrolovat) miss 10-30% of correct translations.ai/repo/knowledge/candidates/s-20261019205653-344d-308c41e4af9a.mds-20261019205653-344d-4964a30cf00crewording a refusal message of scripts/ci/english-only-check broke case 2984, which greps the old sentence, and nothing local ran it; a changed message owes a grep of test/cases for the old text before the push.ai/repo/knowledge/curated/s-20261019205653-344d-4964a30cf00c.mds-20261019205653-344d-8a56a0a79628a translated copy doubled the pages a browser sweep drives (2545 to 5090), and interaction-probe hit its 3300 s bound at page 2250 on run 39285861377; a copy shares its English page's template and controls, so it is driven only when its set of (spec, control signature) differs from every copy of its language driven before it (57 of 2136 copies).ai/repo/knowledge/candidates/s-20261019205653-344d-8a56a0a79628.mds-20261019205653-344d-cce510139fd8the site-languages gate was declared in .ai/repo/ci/gates.yaml with no step of validate.yml running it, so its browser probe never ran in CI until case 26_ci_wiring refused the alpha.1 top.ai/repo/knowledge/candidates/s-20261019205653-344d-cce510139fd8.mds-20261020233257-5779-25bfef781fceon 2026-10-20 a remote branch was deleted on the belief that a rescue ref held its commit; git rev-parse found no such ref locally or on the remote, so the only copy left was the local branch, which the collision gate later asked to remove; the reversible step was taken in words and never proved.ai/repo/knowledge/curated/s-20261020233257-5779-25bfef781fce.mds-20261020233257-5779-6b073d83896eon 2026-10-20T22:16Z the primary checkout was fast-forwarded under a running pre-push because the check listed pre-push processes through head -3 and the one in the primary was the fourth; the process that matters is the one whose cwd is the checkout (lsof -a -p PID -d cwd).ai/repo/knowledge/curated/s-20261020233257-5779-6b073d83896e.mds-20261020233257-5779-6f14ea6e5a51a derive started as nohup ... & from a non-interactive shell ignores SIGINT (bash sets it ignored for asynchronous children), so kill -INT left it and its cargo child running on 2026-10-20; SIGTERM ran its trap and took the tree down.ai/repo/knowledge/curated/s-20261020233257-5779-6f14ea6e5a51.mds-20261020233257-5779-e6add8c93c8aan older executable (0.30.2) took the shared-server lease from a newer one (1.0.0-alpha.1) at 2026-10-20T22:27:58Z because the file at the lease's executable path had been rebuilt: superseded() runs before the version verdict and never compares versions.ai/repo/knowledge/curated/s-20261020233257-5779-e6add8c93c8a.mdstart-hereThe documents that explain this repository are read in a fixed order.ai/repo/knowledge/curated/start-here.mdthe-chatgpt-project-was-promotedThe owner's ChatGPT project was read once in full on 2026-10-18, and every record it became names the messages it came from.ai/repo/knowledge/curated/the-chatgpt-project-was-promoted.mdthe-cognitive-fabric-reuse-mapEvery requirement of the Cognitive Fabric pack already has an owner in the repository; what is missing is reconciliation between owners, and the gaps are listed here.ai/repo/knowledge/curated/the-cognitive-fabric-reuse-map.mdthe-intent-loop-was-built-on-branches-that-never-landedMost of the intent loop's 2026-10-07..10-10 implementation and two owner-pack plans exist only on unmerged branches.ai/repo/knowledge/curated/the-intent-loop-was-built-on-branches-that-never-landed.mdthe-owners-shorthand-names-contractsThe owner's shorthand ('the MJ way', 'derived, inferred', 'proven done') names contracts of the layer.ai/repo/knowledge/curated/the-owners-shorthand-names-contracts.mdthe-supervision-primitivesSupervision primitives already exist: heartbeats, lease takeover, idle exit, reaper and recovery.ai/repo/knowledge/curated/the-supervision-primitives.mdwhat-idd-is-notIntent-driven development is not prompt engineering, issue generation, agent orchestration, a workflow engine or TDD with an LLM.ai/repo/knowledge/curated/what-idd-is-not.mdwho-when-how-are-separate-axesThe mesh decides who, the wave decides when, the profile decides how.ai/repo/knowledge/curated/who-when-how-are-separate-axes.md
mesh-declaration 1
majordomus.ai/repo/mesh/majordomus.yaml
milestone 111
M000Milestone and DAG driven development.ai/repo/project/milestones/M000.yamlM001A blocking question survives a handover.ai/repo/project/milestones/M001.yamlM002A durable record names the worker that wrote it.ai/repo/project/milestones/M002.yamlM003A session is a durable envelope, and knowledge is compiled from what is already canonical.ai/repo/project/milestones/M003.yamlM004Performance is executable evidence, and the hot path does no canonical work twice.ai/repo/project/milestones/M004.yamla-change-is-judged-in-minutesA change is derived in under a second and judged in minutes, and nothing that could have changed is skipped.ai/repo/project/milestones/a-change-is-judged-in-minutes.yamla-claim-stands-only-on-its-evidenceA claim that something is enforced, tested or delivered stands only on recorded evidence that would have caught it being false.ai/repo/project/milestones/a-claim-stands-only-on-its-evidence.yamla-derivation-computed-once-is-reusedA derivation computed once is reused by every worktree and by CI, and the incremental path becomes the default on evidence.ai/repo/project/milestones/a-derivation-computed-once-is-reused.yamla-derive-answers-within-a-secondAn ordinary derive answers in under a second, runs independent nodes in parallel, and a budget gate holds it.ai/repo/project/milestones/a-derive-answers-within-a-second.yamla-derive-does-only-the-work-its-inputs-changedA derive does only the work its inputs changed, and can say why.ai/repo/project/milestones/a-derive-does-only-the-work-its-inputs-changed.yamla-finish-reads-the-criteria-its-work-servesA finish reads what its work serves.ai/repo/project/milestones/a-finish-reads-the-criteria-its-work-serves.yamla-foreign-repository-is-adopted-and-measuredA repository not built around Majordomus is adopted from the published installer to an accepted finish, and its overhead and friction are recorded without exposing what its basis does not permit.ai/repo/project/milestones/a-foreign-repository-is-adopted-and-measured.yamla-newcomer-reaches-a-first-verified-intentA newcomer reaches an intent whose verdict is satisfied, in a repository of their own, using only what the getting-started page shows.ai/repo/project/milestones/a-newcomer-reaches-a-first-verified-intent.yamla-paste-is-decomposed-by-a-skillA pasted brief is decomposed into the plan by a skill, and never kept verbatim as an intent statement.ai/repo/project/milestones/a-paste-is-decomposed-by-a-skill.yamla-promoted-record-opens-its-messageEvery record promoted from a workspace cites the message it came from, and the UI opens it for the operator who holds it.ai/repo/project/milestones/a-promoted-record-opens-its-message.yamla-prompt-reaches-the-work-it-servesA captured prompt is matched to its existing intent and recorded on the task that follows, joined to its outcome and evidence, shown on /ui and the Cockpit, read only on its own machine and never published.ai/repo/project/milestones/a-prompt-reaches-the-work-it-serves.yamla-provider-carries-the-contract-nativelyEach agent client carries the contract through its own extension points, generated once and checked for drift.ai/repo/project/milestones/a-provider-carries-the-contract-natively.yamla-registered-corpus-judges-majordomusThe registered corpus judges the same agent with and without Majordomus, by an exact task-level test on accepted results, and the verdict is published with its losses.ai/repo/project/milestones/a-registered-corpus-judges-majordomus.yamla-release-is-proven-end-to-endWhether a commit may be released, and whether its release arrived, is proved by one read and one case.ai/repo/project/milestones/a-release-is-proven-end-to-end.yamla-second-adopter-is-servedA second adopter is served: what a foreign repository met on its first day is fixed in the tool.ai/repo/project/milestones/a-second-adopter-is-served.yamla-session-leaves-what-it-observedA session leaves what it observed, and the repository routes it.ai/repo/project/milestones/a-session-leaves-what-it-observed.yamla-session-proceeds-through-the-meshA session proceeds through the mesh: it finds the work, claims it once, runs it watched and stops when the intent is met.ai/repo/project/milestones/a-session-proceeds-through-the-mesh.yamla-stranger-adopts-it-unaidedA stranger installs Majordomus and is stopped from a false done in ten minutes, and every outside first run teaches the tool.ai/repo/project/milestones/a-stranger-adopts-it-unaided.yamla-test-fails-when-the-code-is-wrongThe suites that guard critical predicates are shown to fail when those predicates are wrong.ai/repo/project/milestones/a-test-fails-when-the-code-is-wrong.yamla-version-follows-the-workLanded work is released as a measured version, and how long it has waited is a finding.ai/repo/project/milestones/a-version-follows-the-work.yamla-visitor-understands-and-checks-majordomusA first-time visitor of majordomus.dev understands what Majordomus does and can check every claim it makes.ai/repo/project/milestones/a-visitor-understands-and-checks-majordomus.yamla-workspace-reaches-the-repositoryA vendor workspace reads the repository, and proposes to it only where the owner has decided it may.ai/repo/project/milestones/a-workspace-reaches-the-repository.yamladopter-upgradesAn adopting repository survives a Majordomus upgrade, and what the tool vendors into it is adopter-neutral.ai/repo/project/milestones/adopter-upgrades.yamlan-authorised-node-connects-from-anywhereAn authorised node reaches another across LAN, tailnet or NAT, and says how.ai/repo/project/milestones/an-authorised-node-connects-from-anywhere.yamlan-entity-says-how-it-is-known-and-what-it-affectsOne entity read names how its record says it is known and when it was observed, identically on every surface, and what a change affects is derived from the same index.ai/repo/project/milestones/an-entity-says-how-it-is-known-and-what-it-affects.yamlan-inference-names-its-source-and-budgetEvery inference a decision rests on names its model and source, stays inside a declared budget, counts independent sources rather than answers, and is never reached from a hook path.ai/repo/project/milestones/an-inference-names-its-source-and-budget.yamlan-outcome-becomes-a-reviewed-planA desired outcome becomes a draft plan that is checked before a record is written.ai/repo/project/milestones/an-outcome-becomes-a-reviewed-plan.yamlan-unmet-criterion-is-drafted-into-workAn unmet criterion is drafted into work from the evidence, and the draft is the same on every run.ai/repo/project/milestones/an-unmet-criterion-is-drafted-into-work.yamlarchitecture-is-enforcedA violated invariant fails a gate, and green means every required check ran.ai/repo/project/milestones/architecture-is-enforced.yamlautomationRepository automation is scripted capabilities over typed Rust, not shell.ai/repo/project/milestones/automation.yamlbrowser-computeA browser computes for the project with the server's own code, and the server verifies every result.ai/repo/project/milestones/browser-compute.yamlbuilds-reuse-the-mesh-cacheBuilds reuse the mesh cache: compiled Rust, the cargo build directory, mix deps and npm packages, keyed by platform, toolchain and inputs.ai/repo/project/milestones/builds-reuse-the-mesh-cache.yamlcampaigns-are-read-as-provenanceA prompt pack is a campaign the index serves and the plan cites.ai/repo/project/milestones/campaigns-are-read-as-provenance.yamlcapability-graphOne capability graph, two projections, and no second inventory of what this repository can do.ai/repo/project/milestones/capability-graph.yamlci-critical-pathThe critical path from a change to its verdict, and from a merge to its verified deploy, runs under a minute warm.ai/repo/project/milestones/ci-critical-path.yamlcommand-and-deployment-criteria-are-judgedA command or deployment criterion is met by a recorded run of exactly that command, or an observation of exactly that deployment, current at the presented revision.ai/repo/project/milestones/command-and-deployment-criteria-are-judged.yamlcost-per-accepted-outcomeCost per accepted outcome, only on measured data.ai/repo/project/milestones/cost-per-accepted-outcome.yamldelivery-economics-are-measured-over-declared-windowsDelivery economics are measured on corpus runs and on real work over a window registered before it opens, and published with their denominators and losses.ai/repo/project/milestones/delivery-economics-are-measured-over-declared-windows.yamldelivery-flow-is-measuredThe way from a pull request to a verified publication is measured per phase, and its bounds are read where work starts.ai/repo/project/milestones/delivery-flow-is-measured.yamlderived-data-integrityA committed derivation describes something it can be a projection of.ai/repo/project/milestones/derived-data-integrity.yamldevelopment-runtimeThe runtime has a development surface.ai/repo/project/milestones/development-runtime.yamlentry-proves-what-it-handedAn episode records the governance and briefing it was handed, and a change is told.ai/repo/project/milestones/entry-proves-what-it-handed.yamlevery-model-call-is-paid-from-a-declared-sourceHow a model call Majordomus starts can be paid is declared by the vendor with evidence, and each call names the source it was declared to draw on.ai/repo/project/milestones/every-model-call-is-paid-from-a-declared-source.yamlevery-session-joins-the-meshEvery LLM session joins the Majordomus mesh at start, told the mesh as work.ai/repo/project/milestones/every-session-joins-the-mesh.yamlevery-sessions-usage-is-observedWhat every AI session consumed is observed from the provider, attributed to the work it served, and never estimated into a fact.ai/repo/project/milestones/every-sessions-usage-is-observed.yamlevery-surface-follows-what-changedEvery surface follows what changed in the repository by push, and a surface that does not says so.ai/repo/project/milestones/every-surface-follows-what-changed.yamlevery-task-states-its-delivery-economicsEvery task states its delivery economics: wall time, typed human interventions, CI reruns, spend and acceptance, each from a named record or said not observed.ai/repo/project/milestones/every-task-states-its-delivery-economics.yamleverything-is-followed-in-one-streamEverything that happens in the repository is followed in one stream.ai/repo/project/milestones/everything-is-followed-in-one-stream.yamlexecution-telemetryExecution telemetry, only from providers that expose it honestly.ai/repo/project/milestones/execution-telemetry.yamlexternal-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.yamlfailure-is-visibleEvery failure the runtime can suffer is bounded, tested or stated, and changes the health it reports.ai/repo/project/milestones/failure-is-visible.yamlfinished-work-reaches-a-verified-releaseFinished work reaches a verified release at the pace it is finished.ai/repo/project/milestones/finished-work-reaches-a-verified-release.yamlfly-deploymentThe container image is a projection of the repository model, and its smoke is its evidence.ai/repo/project/milestones/fly-deployment.yamlfoundationA supervisory control layer that is real rather than described.ai/repo/project/milestones/foundation.yamlidd-reads-at-a-glanceThe intent workspace reads at a glance and leads everywhere it names.ai/repo/project/milestones/idd-reads-at-a-glance.yamlidd-workspaceThe UI is where the owner directs the work, from an intent to its next move.ai/repo/project/milestones/idd-workspace.yamlintent-bound-workA task is bound to the intent it serves.ai/repo/project/milestones/intent-bound-work.yamlintent-intakeA received brief is a campaign revision whose requirements are reconciled into the one plan.ai/repo/project/milestones/intent-intake.yamlintent-lifecycleWork is traceable to the intent it serves, and an intent is satisfied only by evidence.ai/repo/project/milestones/intent-lifecycle.yamlintent-planningThe plan of an intent is held to it before execution.ai/repo/project/milestones/intent-planning.yamlknowledge-acts-on-what-it-learnsThe repository decides when to evolve its layer, and a session carries it out.ai/repo/project/milestones/knowledge-acts-on-what-it-learns.yamlknowledge-is-reconciled-before-it-is-reviewedWhat a session proposes as knowledge is reconciled with what the repository already knows before a person reviews it, and a promotion stands on evidence that resolves.ai/repo/project/milestones/knowledge-is-reconciled-before-it-is-reviewed.yamllanding-survives-any-sessionLanding green work survives any session, any restart and any machine.ai/repo/project/milestones/landing-survives-any-session.yamlmcp-transports-are-reliableEvery MCP transport delivers each request at most once, bounds what it carries, and honours cancellation.ai/repo/project/milestones/mcp-transports-are-reliable.yamlmeasurements-are-tracked-over-timeCoverage and CI cost are kept, exported and drawn over time, from the one measurement each has.ai/repo/project/milestones/measurements-are-tracked-over-time.yamlmerging-and-referencing-are-enforcedMerging and referencing are enforced: every pull request carries its metadata, every reference resolves, every number is taken once.ai/repo/project/milestones/merging-and-referencing-are-enforced.yamlmesh-connectivityTrusted nodes connect across NAT through proven transports, and every surface says which path.ai/repo/project/milestones/mesh-connectivity.yamlmesh-journal-convergesThe cooperation journal is durable, converges under any delivery order, and never lets a stale claim win.ai/repo/project/milestones/mesh-journal-converges.yamlmesh-peers-execute-assigned-workWork is offered to a peer by capability under a fenced lease, and runs there as an execution.ai/repo/project/milestones/mesh-peers-execute-assigned-work.yamlone-kit-on-every-surfaceCode, charts, controls, embeds and shell blocks are one kit on every surface, declared in the design book and held there by a gate.ai/repo/project/milestones/one-kit-on-every-surface.yamloperation-convergenceAfter the alpha, the time from an intent to its verified satisfaction is measured from the records.ai/repo/project/milestones/operation-convergence.yamlordinary-commands-never-buildNo ordinary command builds: every entry path fails fast or answers through a release of the same generation.ai/repo/project/milestones/ordinary-commands-never-build.yamlpeer-blackboardThe peer blackboard is one projection, pushed live to every surface.ai/repo/project/milestones/peer-blackboard.yamlprismatic-lumenPrismatic Lumen: the owner oversees and moves the whole mesh from one page, which owns nothing.ai/repo/project/milestones/prismatic-lumen.yamlpublic-proofA visitor sees the product prove itself, and can check every claim it makes.ai/repo/project/milestones/public-proof.yamlrecovery-from-injected-faults-is-provenA killed worker, a cut connection and a conflict are injected on purpose, and recovery is proven without lost work or duplicate completion.ai/repo/project/milestones/recovery-from-injected-faults-is-proven.yamlrepository-automation-is-typedRepository automation is typed capabilities that Rhai orchestrates, and domain-logic shell only shrinks.ai/repo/project/milestones/repository-automation-is-typed.yamlrouting-recommendationsRouting recommendations derived from measured cost.ai/repo/project/milestones/routing-recommendations.yamlruntime-adaptersProfiles become runtime constraints rather than advice.ai/repo/project/milestones/runtime-adapters.yamlruntime-lifecycleOne usable server per checkout starts, attaches, stops and reports its state without races or hidden kills.ai/repo/project/milestones/runtime-lifecycle.yamlruntime-trustA runtime is safe to reach from another machine, and joining the mesh trusts nobody by accident.ai/repo/project/milestones/runtime-trust.yamlsafe-self-updateEvery mesh node follows the published release by itself, versions meet safely, and a release's provenance can be checked.ai/repo/project/milestones/safe-self-update.yamlshared-policyShared policy across repositories and workers.ai/repo/project/milestones/shared-policy.yamlsurfaces-never-disagreeEvery surface projects the same state, says when it was observed, and keeps no list of its own.ai/repo/project/milestones/surfaces-never-disagree.yamltest-evidenceEvery verifiable claim and widget resolves to revision-bound test evidence, on every surface.ai/repo/project/milestones/test-evidence.yamlthe-corpus-is-registered-before-it-runsA corpus of 20 tasks, stratified by a difficulty proxy measured and registered before the new tasks are written, is registered with its analysis, run order, stopping rule and a pinned release.ai/repo/project/milestones/the-corpus-is-registered-before-it-runs.yamlthe-host-knows-its-runtimesA host knows every Majordomus runtime it runs, with no project open.ai/repo/project/milestones/the-host-knows-its-runtimes.yamlthe-hub-is-reached-from-any-deviceThe hub is reached privately from any of the owner's devices, and a public ingress is configuration.ai/repo/project/milestones/the-hub-is-reached-from-any-device.yamlthe-intent-loop-is-proved-end-to-endThe intent loop is proved end to end, and the plan and the documents say what it does.ai/repo/project/milestones/the-intent-loop-is-proved-end-to-end.yamlthe-mesh-is-measured-against-one-agentCoordinated workers on the mesh are compared with a single agent on the same batch tasks, at quality held by a registered non-inferiority guard.ai/repo/project/milestones/the-mesh-is-measured-against-one-agent.yamlthe-mesh-is-operated-from-any-deviceThe owner understands and operates the whole mesh from one page, on any device.ai/repo/project/milestones/the-mesh-is-operated-from-any-device.yamlthe-mesh-is-operated-from-one-pageThe owner operates the mesh from one page: every runtime readable, one action authorised end to end.ai/repo/project/milestones/the-mesh-is-operated-from-one-page.yamlthe-mesh-works-out-of-the-boxThe mesh works out of the box: trusted machines find each other by every means and their sessions cooperate from the first turn.ai/repo/project/milestones/the-mesh-works-out-of-the-box.yamlthe-plan-says-what-a-fix-unblocksThe plan says what finishing an issue unblocks, and why each blocked issue is blocked.ai/repo/project/milestones/the-plan-says-what-a-fix-unblocks.yamlthe-product-shows-what-it-caughtWhat finish caught is counted from the ledger and compared on the benchmark, never asserted.ai/repo/project/milestones/the-product-shows-what-it-caught.yamlthe-proof-scorecard-is-publishedOne derived scorecard publishes every proof test's computed status, losses included, on every surface, and no value claim stands without a passed test.ai/repo/project/milestones/the-proof-scorecard-is-published.yamlthe-proof-tests-are-registered-before-they-runThe six proof tests are registered as validated protocols, each frozen by its own digest, and every trial is a typed record that publishes only what its basis permits.ai/repo/project/milestones/the-proof-tests-are-registered-before-they-run.yamlthe-runtime-supervises-itselfThe runtime says what is progressing, waiting or stalled, and repairs only what is safe.ai/repo/project/milestones/the-runtime-supervises-itself.yamlthe-session-domain-is-written-onceThe session lifecycle is written by the typed domain, and the shell only parses and renders.ai/repo/project/milestones/the-session-domain-is-written-once.yamlthe-ui-runs-and-explainsThe UI runs any capability and explains what needs the owner, whose version it shows and where its time went.ai/repo/project/milestones/the-ui-runs-and-explains.yamlthe-ui-works-on-a-phoneEvery first-party surface works on a phone, and the primary flow is accepted there.ai/repo/project/milestones/the-ui-works-on-a-phone.yamltruthful-plan-surfacesThe plan's surfaces are inferred from delivery, and nothing they show is typed beside the repository.ai/repo/project/milestones/truthful-plan-surfaces.yamltwo-folder-integrationA repository that adopts Majordomus gains two directories and two lines, and can give them back.ai/repo/project/milestones/two-folder-integration.yamlweb-sign-inThe deployed surfaces know who is asking, and the identity providers are data.ai/repo/project/milestones/web-sign-in.yamlwhat-a-workspace-decides-reaches-the-repository-with-its-sourceWhat the owner decides in a vendor workspace reaches the repository, and every promoted record opens the message it came from.ai/repo/project/milestones/what-a-workspace-decides-reaches-the-repository-with-its-source.yamlwork-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.mdapi-changed-contract-did-notThe interface changed and its contract document did not.ai/repo/why/moments/api-changed-contract-did-not.mdcode-without-an-issueA change that no plan ever asked for.ai/repo/why/moments/code-without-an-issue.mdcontext-budget-blownThe instruction file that grew into a rulebook.ai/repo/why/moments/context-budget-blown.mdcontribution-that-could-not-have-knownA fluent contribution that could not have known the rules.ai/repo/why/moments/contribution-that-could-not-have-known.mddecision-only-in-a-transcriptThe decision exists, in a conversation nobody can find.ai/repo/why/moments/decision-only-in-a-transcript.mddiscovery-never-becomes-knowledgeA hard-won discovery that never became knowledge.ai/repo/why/moments/discovery-never-becomes-knowledge.mddocumented-command-no-longer-worksThe documented command that no longer works.ai/repo/why/moments/documented-command-no-longer-works.mddone-because-the-model-said-soAccepting "done" because the model said so.ai/repo/why/moments/done-because-the-model-said-so.mdenforcement-nothing-invokesA rule enforced by a hook that never runs.ai/repo/why/moments/enforcement-nothing-invokes.mdfailure-disappears-between-sessionsA failure that was seen once and never again.ai/repo/why/moments/failure-disappears-between-sessions.mdfeature-without-a-testA capability the documentation promises and nothing proves.ai/repo/why/moments/feature-without-a-test.mdfirst-hour-in-an-unfamiliar-repositoryThe first hour in a repository nobody can explain quickly.ai/repo/why/moments/first-hour-in-an-unfamiliar-repository.mdgenerated-artifacts-staleGreen tests over stale generated files.ai/repo/why/moments/generated-artifacts-stale.mdimplementation-contradicts-the-decisionCode that quietly contradicts a written decision.ai/repo/why/moments/implementation-contradicts-the-decision.mdissue-says-done-tests-disagreeThe issue says done and the repository disagrees.ai/repo/why/moments/issue-says-done-tests-disagree.mdmilestone-status-unreconstructableNobody can reconstruct where the milestone actually is.ai/repo/why/moments/milestone-status-unreconstructable.mdno-record-why-this-modelNobody can say why that worker was chosen.ai/repo/why/moments/no-record-why-this-model.mdone-agent-undoes-anotherOne worker undoing another worker's change.ai/repo/why/moments/one-agent-undoes-another.mdpolicy-changed-projection-staleThe policy changed and its four copies did not.ai/repo/why/moments/policy-changed-projection-stale.mdre-arguing-a-settled-decisionRe-arguing a decision that was settled last week.ai/repo/why/moments/re-arguing-a-settled-decision.mdre-explaining-contextRe-explaining the same context to a brand-new session.ai/repo/why/moments/re-explaining-context.mdresult-cannot-be-reproducedA result nobody can reproduce, including its author.ai/repo/why/moments/result-cannot-be-reproduced.mdrule-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.mdsame-dead-end-explored-twiceThe same dead end, explored twice.ai/repo/why/moments/same-dead-end-explored-twice.mdsecond-session-same-checkoutTwo sessions in one checkout, standing on each other.ai/repo/why/moments/second-session-same-checkout.mdsite-claims-nothing-provesA public page promising something nothing tests.ai/repo/why/moments/site-claims-nothing-proves.mdspend-not-tied-to-outcomesSpend that cannot be tied to anything accepted.ai/repo/why/moments/spend-not-tied-to-outcomes.mdstrongest-model-renames-a-variableThe strongest model, at maximum effort, renaming a variable.ai/repo/why/moments/strongest-model-renames-a-variable.mdtask-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.mdthree-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.mdthree-roadmaps-none-of-them-trueThree roadmaps, and none of them true.ai/repo/why/moments/three-roadmaps-none-of-them-true.mdtwo-agents-one-bugTwo agents fixing the same bug in two branches.ai/repo/why/moments/two-agents-one-bug.mdtwo-rulebooks-one-repositoryTwo different rulebooks for one repository.ai/repo/why/moments/two-rulebooks-one-repository.mdweak-model-on-architectureA cheap worker deciding something expensive.ai/repo/why/moments/weak-model-on-architecture.mdwhat-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.mdwho-did-this-and-under-what-policyA change whose provenance cannot be reconstructed.ai/repo/why/moments/who-did-this-and-under-what-policy.mdworker-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.yamldeep-workdeep-work.ai/repo/profiles/deep-work.yamlimplementationimplementation.ai/repo/profiles/implementation.yamlroutineroutine.ai/repo/profiles/routine.yaml
prompt 5
continuecontinue.ai/repo/prompts/continue.mddebugdebug.ai/repo/prompts/debug.mdhandoverhandover.ai/repo/prompts/handover.mdreviewreview.ai/repo/prompts/review.mdsession-startsession-start.ai/repo/prompts/session-start.md
release-record 36
v0.10.0v0.10.0.ai/repo/releases/v0.10.0.yamlv0.11.0v0.11.0.ai/repo/releases/v0.11.0.yamlv0.12.0v0.12.0.ai/repo/releases/v0.12.0.yamlv0.13.0v0.13.0.ai/repo/releases/v0.13.0.yamlv0.13.1v0.13.1.ai/repo/releases/v0.13.1.yamlv0.13.2v0.13.2.ai/repo/releases/v0.13.2.yamlv0.14.0v0.14.0.ai/repo/releases/v0.14.0.yamlv0.15.0v0.15.0.ai/repo/releases/v0.15.0.yamlv0.16.0v0.16.0.ai/repo/releases/v0.16.0.yamlv0.17.0v0.17.0.ai/repo/releases/v0.17.0.yamlv0.18.0v0.18.0.ai/repo/releases/v0.18.0.yamlv0.19.0v0.19.0.ai/repo/releases/v0.19.0.yamlv0.19.1v0.19.1.ai/repo/releases/v0.19.1.yamlv0.20.0v0.20.0.ai/repo/releases/v0.20.0.yamlv0.21.0v0.21.0.ai/repo/releases/v0.21.0.yamlv0.22.0v0.22.0.ai/repo/releases/v0.22.0.yamlv0.23.0v0.23.0.ai/repo/releases/v0.23.0.yamlv0.24.1v0.24.1.ai/repo/releases/v0.24.1.yamlv0.25.0v0.25.0.ai/repo/releases/v0.25.0.yamlv0.26.0v0.26.0.ai/repo/releases/v0.26.0.yamlv0.27.0v0.27.0.ai/repo/releases/v0.27.0.yamlv0.28.0v0.28.0.ai/repo/releases/v0.28.0.yamlv0.29.0v0.29.0.ai/repo/releases/v0.29.0.yamlv0.3.1v0.3.1.ai/repo/releases/v0.3.1.yamlv0.30.0v0.30.0.ai/repo/releases/v0.30.0.yamlv0.30.1v0.30.1.ai/repo/releases/v0.30.1.yamlv0.30.2v0.30.2.ai/repo/releases/v0.30.2.yamlv0.5.0v0.5.0.ai/repo/releases/v0.5.0.yamlv0.6.0v0.6.0.ai/repo/releases/v0.6.0.yamlv0.7.0v0.7.0.ai/repo/releases/v0.7.0.yamlv0.8.0v0.8.0.ai/repo/releases/v0.8.0.yamlv0.9.0v0.9.0.ai/repo/releases/v0.9.0.yamlv1.0.0-alpha.1v1.0.0-alpha.1.ai/repo/releases/v1.0.0-alpha.1.yamlv1.0.0-alpha.2v1.0.0-alpha.2.ai/repo/releases/v1.0.0-alpha.2.yamlv1.0.0-alpha.4v1.0.0-alpha.4.ai/repo/releases/v1.0.0-alpha.4.yamlv1.0.0-alpha.5v1.0.0-alpha.5.ai/repo/releases/v1.0.0-alpha.5.yaml
rule 190
majordomus.adr-integrity@1Architecture decision integrity.ai/repo/rules/vendor/majordomus/rules/adr-integrity.v1.mdmajordomus.ai-layout-integrity@1AI layer integrity.ai/repo/rules/vendor/majordomus/rules/ai-layout-integrity.v1.mdmajordomus.blocker-resolution@1Blocker resolution.ai/repo/rules/vendor/majordomus/rules/blocker-resolution.v1.mdmajordomus.bootstrap-integrity@1Bootstrap integrity.ai/repo/rules/vendor/majordomus/rules/bootstrap-integrity.v1.mdmajordomus.candidates-reviewed@1Candidates are reviewed.ai/repo/rules/vendor/majordomus/rules/candidates-reviewed.v1.mdmajordomus.catalogue-integrity@1Catalogue integrity.ai/repo/rules/vendor/majordomus/rules/catalogue-integrity.v1.mdmajordomus.checkpoint-freshness@1Checkpoint freshness.ai/repo/rules/vendor/majordomus/rules/checkpoint-freshness.v1.mdmajordomus.command-coverage@1Every public command is exercised and refuted.ai/repo/rules/vendor/majordomus/rules/command-coverage.v1.mdmajordomus.command-surface@1The command surface is declared and reconciled.ai/repo/rules/vendor/majordomus/rules/command-surface.v1.mdmajordomus.completion-gates@1Completion is gated.ai/repo/rules/vendor/majordomus/rules/completion-gates.v1.mdmajordomus.context-budget@1Context budget.ai/repo/rules/vendor/majordomus/rules/context-budget.v1.mdmajordomus.context-integrity@1Context integrity.ai/repo/rules/vendor/majordomus/rules/context-integrity.v1.mdmajordomus.dag-integrity@1Dependency graph integrity.ai/repo/rules/vendor/majordomus/rules/dag-integrity.v1.mdmajordomus.decision-records@1Decision records.ai/repo/rules/vendor/majordomus/rules/decision-records.v1.mdmajordomus.decision-threshold@1The decision threshold.ai/repo/rules/vendor/majordomus/rules/decision-threshold.v1.mdmajordomus.define-done-first@1Define done before executing.ai/repo/rules/vendor/majordomus/rules/principle-07-define-done-first.v1.mdmajordomus.deployment-contract@2A deployment is described once, and every artifact built from it is generated from it.ai/repo/rules/vendor/majordomus/rules/deployment-contract.v2.mdmajordomus.depth-is-not-verbosity@1Execution depth is not output verbosity.ai/repo/rules/vendor/majordomus/rules/principle-06-depth-is-not-verbosity.v1.mdmajordomus.doctrine-wiring-integrity@1Doctrine wiring integrity.ai/repo/rules/vendor/majordomus/rules/doctrine-wiring-integrity.v1.mdmajordomus.enforcement-wiring@1Enforcement wiring.ai/repo/rules/vendor/majordomus/rules/enforcement-wiring.v1.mdmajordomus.externalise-decisions@1Externalise decisions and durable state.ai/repo/rules/vendor/majordomus/rules/principle-03-externalise-decisions.v1.mdmajordomus.handover-integrity@1Handover integrity.ai/repo/rules/vendor/majordomus/rules/handover-integrity.v1.mdmajordomus.handovers-carry-state@1Handovers transfer state, not transcripts.ai/repo/rules/vendor/majordomus/rules/principle-10-handovers-carry-state.v1.mdmajordomus.isolated-parallelism@1Parallel work requires isolation.ai/repo/rules/vendor/majordomus/rules/principle-09-isolated-parallelism.v1.mdmajordomus.justified-escalation@1Escalate capability and effort only when justified.ai/repo/rules/vendor/majordomus/rules/principle-05-justified-escalation.v1.mdmajordomus.knowledge-graph@1Knowledge graph integrity.ai/repo/rules/vendor/majordomus/rules/knowledge-graph.v1.mdmajordomus.knowledge-integrity@1Knowledge integrity.ai/repo/rules/vendor/majordomus/rules/knowledge-integrity.v1.mdmajordomus.knowledge-observed@1Knowledge observation.ai/repo/rules/vendor/majordomus/rules/knowledge-observed.v1.mdmajordomus.layout-integrity@1Layout integrity.ai/repo/rules/vendor/majordomus/rules/layout-integrity.v1.mdmajordomus.ledger-integrity@1Ledger integrity.ai/repo/rules/vendor/majordomus/rules/ledger-integrity.v1.mdmajordomus.lifecycle-observed@1Lifecycle observation.ai/repo/rules/vendor/majordomus/rules/lifecycle-observed.v1.mdmajordomus.minimum-sufficient-context@1Load minimum sufficient context.ai/repo/rules/vendor/majordomus/rules/principle-02-minimum-sufficient-context.v1.mdmajordomus.note-integrity@1Note integrity.ai/repo/rules/vendor/majordomus/rules/note-integrity.v1.mdmajordomus.obligation-closure@1Obligation closure.ai/repo/rules/vendor/majordomus/rules/obligation-closure.v1.mdmajordomus.one-worker-one-scope@1One worker, one clear scope.ai/repo/rules/vendor/majordomus/rules/principle-04-one-worker-one-scope.v1.mdmajordomus.policy-completeness@1Policy completeness.ai/repo/rules/vendor/majordomus/rules/policy-completeness.v1.mdmajordomus.policy-integrity@1Policy integrity.ai/repo/rules/vendor/majordomus/rules/policy-integrity.v1.mdmajordomus.profile-requirements@1Profile requirements.ai/repo/rules/vendor/majordomus/rules/profile-requirements.v1.mdmajordomus.project-integrity@1Project model integrity.ai/repo/rules/vendor/majordomus/rules/project-integrity.v1.mdmajordomus.projection-integrity@1Projection integrity.ai/repo/rules/vendor/majordomus/rules/projection-integrity.v1.mdmajordomus.prompt-capture@1Prompt capture is proven, or reported unavailable.ai/repo/rules/vendor/majordomus/rules/prompt-capture.v1.mdmajordomus.prompt-continuity@1A prompt record carries its own identity, is bounded, and is private.ai/repo/rules/vendor/majordomus/rules/prompt-continuity.v1.mdmajordomus.prompt-integrity@1Prompt integrity.ai/repo/rules/vendor/majordomus/rules/prompt-integrity.v1.mdmajordomus.publication-currency@1A session does not finish behind its own published site.ai/repo/rules/vendor/majordomus/rules/publication-currency.v1.mdmajordomus.questions-store-integrity@1Questions store integrity.ai/repo/rules/vendor/majordomus/rules/questions-store-integrity.v1.mdmajordomus.record-changed-files@1A record's changed_files names the work, not the tool's exhaust.ai/repo/rules/vendor/majordomus/rules/record-changed-files.v1.mdmajordomus.retention-caps@1Retention caps.ai/repo/rules/vendor/majordomus/rules/retention-caps.v1.mdmajordomus.roadmap-integrity@1The roadmap is a projection, never a document.ai/repo/rules/vendor/majordomus/rules/roadmap-integrity.v1.mdmajordomus.rule-package-integrity@1Rule package integrity.ai/repo/rules/vendor/majordomus/rules/rule-package-integrity.v1.mdmajordomus.schema-integrity@1Every object has a schema, and the rules resolve in one stated order.ai/repo/rules/vendor/majordomus/rules/schema-integrity.v1.mdmajordomus.scope-integrity@1Scope integrity.ai/repo/rules/vendor/majordomus/rules/scope-integrity.v1.mdmajordomus.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.mdmajordomus.session-records@1Session records are shared objects with a closed field set.ai/repo/rules/vendor/majordomus/rules/session-records.v1.mdmajordomus.sessions-are-workers@1Sessions are workers, not memory.ai/repo/rules/vendor/majordomus/rules/principle-01-sessions-are-workers.v1.mdmajordomus.skill-integrity@1Skill integrity.ai/repo/rules/vendor/majordomus/rules/skill-integrity.v1.mdmajordomus.state-consistency@1State consistency.ai/repo/rules/vendor/majordomus/rules/state-consistency.v1.mdmajordomus.task-continuity@1Task continuity.ai/repo/rules/vendor/majordomus/rules/task-continuity.v1.mdmajordomus.task-on-the-mesh@1A task on a repository whose mesh is enabled works on the mesh.ai/repo/rules/vendor/majordomus/rules/task-on-the-mesh.v1.mdmajordomus.use-case-coverage@1Use-case coverage.ai/repo/rules/vendor/majordomus/rules/use-case-coverage.v1.mdmajordomus.verification-integrity@1Verification integrity.ai/repo/rules/vendor/majordomus/rules/verification-integrity.v1.mdmajordomus.verify-outcomes@1Verify outcomes, not activity.ai/repo/rules/vendor/majordomus/rules/principle-08-verify-outcomes.v1.mdproject.a-brief-is-kept-as-received@1A campaign brief this repository keeps is the one it was handed.ai/repo/rules/project/a-brief-is-kept-as-received.v1.mdproject.a-build-never-waits-in-silence-on-anothers-lock@1A build never waits in silence behind another build's lock.ai/repo/rules/project/a-build-never-waits-in-silence-on-anothers-lock.v1.mdproject.a-checkout-serves-the-current-trunk@1A checkout serves the current trunk, and says how far it is from it.ai/repo/rules/project/a-checkout-serves-the-current-trunk.v1.mdproject.a-closing-question-is-answered-by-measurement@1Whether the work is done is answered by measurement, never by the worker's recollection.ai/repo/rules/project/a-closing-question-is-answered-by-measurement.v1.mdproject.a-derive-offload-waits-its-turn@1A derive offloaded to another machine goes through the declared hosts and waits its turn in their queue.ai/repo/rules/project/a-derive-offload-waits-its-turn.v1.mdproject.a-derive-sees-what-the-commit-will@1A derive sees what the commit will.ai/repo/rules/project/a-derive-sees-what-the-commit-will.v1.mdproject.a-diagram-is-drawn-not-typed@2An architectural relationship in a published document is drawn, never typed in box art.ai/repo/rules/project/a-diagram-is-drawn-not-typed.v2.mdproject.a-failed-read-is-not-an-empty-answer@1A source that did not answer is not a source with nothing in it.ai/repo/rules/project/a-failed-read-is-not-an-empty-answer.v1.mdproject.a-number-names-one-case@1A case number names one case.ai/repo/rules/project/a-number-names-one-case.v1.mdproject.a-personal-layer-changes-nothing-shared@1A personal layer changes nothing shared.ai/repo/rules/project/a-personal-layer-changes-nothing-shared.v1.mdproject.a-plan-carries-the-intent-it-serves@1A plan carries the intent it serves, and is reviewed before it is executed.ai/repo/rules/project/a-plan-carries-the-intent-it-serves.v1.mdproject.a-producer-declares-what-it-writes@1The program that writes into the checkout says what it wrote, and whoever measures the tree reads that.ai/repo/rules/project/a-producer-declares-what-it-writes.v1.mdproject.a-provider-capability-cites-its-evidence@3A provider capability is declared once, with the citation it was verified from.ai/repo/rules/project/a-provider-capability-cites-its-evidence.v3.mdproject.a-push-runs-what-ci-would-find-first@2A push runs what CI would find first, and CI decides.ai/repo/rules/project/a-push-runs-what-ci-would-find-first.v2.mdproject.a-session-joins-the-cluster-before-it-works@1A session is current, attached, announced and useful before it changes anything.ai/repo/rules/project/a-session-joins-the-cluster-before-it-works.v1.mdproject.a-standing-approval-is-written-where-permissions-are-read@1A standing approval is written where the permission layer reads it.ai/repo/rules/project/a-standing-approval-is-written-where-permissions-are-read.v1.mdproject.a-tool-that-cannot-match-the-tree-refuses@1A generator that cannot match the tree refuses rather than rewriting it.ai/repo/rules/project/a-tool-that-cannot-match-the-tree-refuses.v1.mdproject.a-verdict-states-its-subject@1A verdict states what it is a verdict about.ai/repo/rules/project/a-verdict-states-its-subject.v1.mdproject.a-worker-that-stops-leaves-its-work-behind@2A worker that stops leaves its work where somebody else can find it.ai/repo/rules/project/a-worker-that-stops-leaves-its-work-behind.v2.mdproject.accumulation-is-measured@2Everything that accumulates is measured, bounded and reaped by a committed command.ai/repo/rules/project/accumulation-is-measured.v2.mdproject.advisors-are-optional@1Advisors are optional; reasoning, governance and CI never depend on one.ai/repo/rules/project/advisors-are-optional.v1.mdproject.an-expedited-landing-is-the-owners-word@1An expedited landing is the owner's word, judged on the merged tree, and never reaches a tag.ai/repo/rules/project/an-expedited-landing-is-the-owners-word.v1.mdproject.an-intent-outlives-its-sessions@3An intent outlives the sessions and providers that realise it, and closed work does not outrank evidence.ai/repo/rules/project/an-intent-outlives-its-sessions.v3.mdproject.benchmarkable-commands@1Every public command is benchmarkable from the registry.ai/repo/rules/project/benchmarkable-commands.v1.mdproject.blocking-checks-cheap@1Blocking checks are deterministic and cheap.ai/repo/rules/project/blocking-checks-cheap.v1.mdproject.cache-is-invisible@2A cache never changes what a command observes.ai/repo/rules/project/cache-is-invisible.v2.mdproject.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.mdproject.clean-room@1Clean room.ai/repo/rules/project/clean-room.v1.mdproject.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.mdproject.commands-run-non-interactively@2A command runs with nobody at the keyboard.ai/repo/rules/project/commands-run-non-interactively.v2.mdproject.completion-never-decides-satisfaction@2Completion discharges obligations and never decides whether an intent is satisfied.ai/repo/rules/project/completion-never-decides-satisfaction.v2.mdproject.context-locality@1Context locality.ai/repo/rules/project/context-locality.v1.mdproject.conventional-commits@2A commit message is a value this repository judges, not a convention it hopes for.ai/repo/rules/project/conventional-commits.v2.mdproject.derived-files-regenerated@1Derived files are regenerated, never edited.ai/repo/rules/project/derived-files-regenerated.v1.mdproject.derived-once@1Derived state is computed once per state version.ai/repo/rules/project/derived-once.v1.mdproject.design-tokens-declared-once@2The design is one typed declaration and every first-party surface consumes its projections.ai/repo/rules/project/design-tokens-declared-once.v2.mdproject.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.mdproject.development-semantics-are-canonical@1Development semantics live in the canonical runtime; a surface only consumes them.ai/repo/rules/project/development-semantics-are-canonical.v1.mdproject.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.mdproject.distribution-canonical@1Distribution has one canonical model.ai/repo/rules/project/distribution-canonical.v1.mdproject.empty-is-not-failure@1An empty result and a failed command must not look alike.ai/repo/rules/project/empty-is-not-failure.v1.mdproject.english-only@4English only.ai/repo/rules/project/english-only.v4.mdproject.entities-are-routable@1Every object of the layer has an address of its own, and every kind says where it is published.ai/repo/rules/project/entities-are-routable.v1.mdproject.entry-converges@2Entering the repository converges on a server, by either door, without anything to remember.ai/repo/rules/project/entry-converges.v2.mdproject.entry-reports-only-evidence@1Entering the repository reports only what evidence proves.ai/repo/rules/project/entry-reports-only-evidence.v1.mdproject.envrc-is-an-adapter@2The shell entry point is an adapter, and it makes one call.ai/repo/rules/project/envrc-is-an-adapter.v2.mdproject.episode-record-carries-its-episode@1An episode record carries its episode.ai/repo/rules/project/an-episode-record-carries-its-episode.v1.mdproject.every-domain-is-a-skill@1Every domain of the registry is a skill, derived and shown wherever skills are.ai/repo/rules/project/every-domain-is-a-skill.v1.mdproject.every-link-and-control-is-tested@1Every link the site publishes resolves, and every control on it does what a spec says.ai/repo/rules/project/every-link-and-control-is-tested.v1.mdproject.every-wait-is-bounded@2Every wait is bounded.ai/repo/rules/project/every-wait-is-bounded.v2.mdproject.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.mdproject.execution-state-is-authoritative@1Execution state is authoritative and the terminal is not.ai/repo/rules/project/execution-state-is-authoritative.v1.mdproject.executions-carry-no-secret@1A sensitive value never enters an execution.ai/repo/rules/project/executions-carry-no-secret.v1.mdproject.finding-carries-reproduce@1Every finding carries a reproduce command.ai/repo/rules/project/finding-carries-reproduce.v1.mdproject.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.mdproject.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.mdproject.homepage-tells-a-declared-story@2The homepage tells the story its declaration names, in that order, and the site is indexed by one declared policy.ai/repo/rules/project/homepage-tells-a-declared-story.v2.mdproject.hot-path-reads-once@1A command reads each canonical file at most once.ai/repo/rules/project/hot-path-reads-once.v1.mdproject.independent-of-prismatic@1Independent of Prismatic.ai/repo/rules/project/independent-of-prismatic.v1.mdproject.integration-follows-the-current-master@3Pull requests are integrated one at a time, each decided against the current master, never around the branch protection.ai/repo/rules/project/integration-follows-the-current-master.v3.mdproject.interfaces-are-projections@1External interfaces are projections of one capability definition.ai/repo/rules/project/interfaces-are-projections.v1.mdproject.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.mdproject.mesh-cooperation-is-authenticated@1Mesh cooperation is admitted per link, replicated through one journal, and projected by every surface alike.ai/repo/rules/project/mesh-cooperation-is-authenticated.v1.mdproject.mesh-is-observation-not-authority@1The mesh observes nodes; it authorizes nothing and holds one registry.ai/repo/rules/project/mesh-is-observation-not-authority.v1.mdproject.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.mdproject.navigation-is-declared-once@1The site's navigation is declared once, and every projection derives from that declaration.ai/repo/rules/project/navigation-is-declared-once.v1.mdproject.never-author-identity@1Never author identity fields.ai/repo/rules/project/never-author-identity.v1.mdproject.never-reported-is-not-green@1A verdict that never arrived is not a verdict.ai/repo/rules/project/never-reported-is-not-green.v1.mdproject.never-store-transcripts@1Never store or summarise transcripts.ai/repo/rules/project/never-store-transcripts.v1.mdproject.new-code-is-covered@1New and changed executable code is covered by a test; legacy debt may only shrink.ai/repo/rules/project/new-code-is-covered.v1.mdproject.no-claim-without-test@1No claim without a test.ai/repo/rules/project/no-claim-without-test.v1.mdproject.no-counts-in-prose@1No counts in prose.ai/repo/rules/project/no-counts-in-prose.v1.mdproject.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.mdproject.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.mdproject.no-new-nouns@1No new nouns.ai/repo/rules/project/no-new-nouns.v1.mdproject.no-plan-stamp-without-its-event@1No plan stamp without its event.ai/repo/rules/project/no-plan-stamp-without-its-event.v1.mdproject.no-screen-waits-for-a-source@1A screen shows the latest reading of its sources at once, and never waits for a handler.ai/repo/rules/project/no-screen-waits-for-a-source.v1.mdproject.one-derive-at-a-time@1One derive at a time per machine, and a stopped derive leaves no orphans.ai/repo/rules/project/one-derive-at-a-time.v1.mdproject.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.mdproject.optional-complexity@1Complexity is optional, not ambient.ai/repo/rules/project/optional-complexity.v1.mdproject.packs-carry-only-sources@1A pack that leaves the machine carries only committed sources.ai/repo/rules/project/packs-carry-only-sources.v1.mdproject.performance-evidence@1A performance claim carries its measurement.ai/repo/rules/project/performance-evidence.v1.mdproject.portable-shell@1Portable shell.ai/repo/rules/project/portable-shell.v1.mdproject.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.mdproject.prose-states-no-version@1Prose describes the tool as it stands, without a version label.ai/repo/rules/project/prose-states-no-version.v1.mdproject.provider-support-is-declared@1What a provider's adapter can do is declared, never observed from the filesystem.ai/repo/rules/project/provider-support-is-declared.v1.mdproject.providers-are-data@1What the tool knows about a provider is declared once and projected everywhere.ai/repo/rules/project/providers-are-data.v1.mdproject.published-evidence-is-what-ci-recorded@1A published UI shows the evidence CI recorded, never "not run" for what CI ran.ai/repo/rules/project/published-evidence-is-what-ci-recorded.v1.mdproject.reclaim-only-what-you-own@1A worker reclaims only what it owns.ai/repo/rules/project/reclaim-only-what-you-own.v1.mdproject.recovery-is-idempotent@1Recovery looks before it repeats.ai/repo/rules/project/recovery-is-idempotent.v1.mdproject.release-is-a-projection@2The changelog is composed, and the version is authored once.ai/repo/rules/project/release-is-a-projection.v2.mdproject.review-is-recorded-not-claimed@1Independent review is a recorded fact, weighed by evidence, never claimed and never counted.ai/repo/rules/project/review-is-recorded-not-claimed.v1.mdproject.rule-is-a-doctrine@1A new enforced rule is a doctrine, not an inline check.ai/repo/rules/project/rule-is-a-doctrine.v1.mdproject.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.mdproject.rust-canonical-declaration@1One canonical declaration; modules compose capabilities; the root composes modules.ai/repo/rules/project/rust-canonical-declaration.v1.mdproject.rust-cli-evidence@1The Rust executable carries its evidence with it.ai/repo/rules/project/rust-cli-evidence.v1.mdproject.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.mdproject.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.mdproject.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.mdproject.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.mdproject.session-continuity-is-portable@1Session continuity is portable, and what is portable is checked.ai/repo/rules/project/session-continuity-is-portable.v1.mdproject.shared-server-resilience@1Nothing a client leaves behind locks another client out.ai/repo/rules/project/shared-server-resilience.v1.mdproject.skills-are-proven-capabilities@1A skill is a capability only when something proves it.ai/repo/rules/project/skills-are-proven-capabilities.v1.mdproject.ssh-key-access-is-preauthorized@1Owner-authorized SSH access persists across clients.ai/repo/rules/project/ssh-key-access-is-preauthorized.v1.mdproject.tests-run-in-disposable-repos@1Tests run in disposable repositories.ai/repo/rules/project/tests-run-in-disposable-repos.v1.mdproject.the-briefing-is-checked-against-git@1The briefing an episode opened with is compared against git before it is believed.ai/repo/rules/project/the-briefing-is-checked-against-git.v1.mdproject.the-cooperation-model-is-the-owners-word@2Work moves through seats held as mesh claims, a worker lands its own green head, and every checkout is kept current.ai/repo/rules/project/the-cooperation-model-is-the-owners-word.v2.mdproject.the-crate-reference-is-published@1Generated reference documentation is part of documentation closure, from its source to its public URL.ai/repo/rules/project/the-crate-reference-is-published.v1.mdproject.the-handbook-is-built-from-the-tree@1The handbook is built from the tree it describes, and a chapter names what it rests on.ai/repo/rules/project/the-handbook-is-built-from-the-tree.v1.mdproject.the-lease-is-read-once@1The shared server's lease has one reader.ai/repo/rules/project/the-lease-is-read-once.v1.mdproject.the-projection-is-applied-at-landing@2A landing that changes what GitHub shows applies the change itself.ai/repo/rules/project/the-projection-is-applied-at-landing.v2.mdproject.the-published-ui-is-the-trunks@1The UI the site publishes is the trunk's, and a UI that is missing, older or cut short without saying so is a failed publication.ai/repo/rules/project/the-published-ui-is-the-trunks.v1.mdproject.the-server-sees-the-current-tree@1A long-lived process serves the repository as it is, never as it was when it started.ai/repo/rules/project/the-server-sees-the-current-tree.v1.mdproject.the-session-context-is-derived@1A working context is derived, not stored.ai/repo/rules/project/the-session-context-is-derived.v1.mdproject.the-site-is-offered-in-every-language@1Every page of the site is offered in every declared language, derived from the English and held to it in a browser.ai/repo/rules/project/the-site-is-offered-in-every-language.v1.mdproject.the-site-offers-the-release-it-published@1The site offers the release that was published, on every surface at once.ai/repo/rules/project/the-site-offers-the-release-it-published.v1.mdproject.the-ui-wears-the-sites-navbar@1majordomus.dev is the reference for how the product looks, and every page of the UI and the Cockpit wears the site's own navbar.ai/repo/rules/project/the-ui-wears-the-sites-navbar.v1.mdproject.the-version-is-measured@2The version is measured against the public surface, not claimed.ai/repo/rules/project/the-version-is-measured.v2.mdproject.ui-conformance@1Every page of every web surface is audited, and the audit names no page.ai/repo/rules/project/ui-conformance.v1.mdproject.ui-derived-state@1An interface shows only what is derived, and unknown is never drawn as healthy.ai/repo/rules/project/ui-derived-state.v1.mdproject.unknown-keys-are-errors@1Unknown configuration keys are errors.ai/repo/rules/project/unknown-keys-are-errors.v1.mdproject.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.mdproject.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.mdproject.web-surface-topology@1A web surface is discovered from its producer, never registered twice.ai/repo/rules/project/web-surface-topology.v1.mdproject.why-catalogue-is-canonical@1An operational failure mode is a catalogue object, never a page.ai/repo/rules/project/why-catalogue-is-canonical.v1.mdproject.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.mdproject.work-serves-a-declared-intent@1Work serves a declared intent, and an intent is satisfied only by evidence.ai/repo/rules/project/work-serves-a-declared-intent.v1.mdproject.worktree-topology@1A branch's worktree is at <repo>-wt/<branch>, derived from git, never registered.ai/repo/rules/project/worktree-topology.v1.mdproject.worktrees-share-build-intermediates@1Worktrees share what cargo compiles on the way, and never the finished artifact.ai/repo/rules/project/worktrees-share-build-intermediates.v1.md
scope 1
.ai/repo/scope.yaml.ai/repo/scope.yaml
session 91
s-20260906035523-7b6cSession s-20260906035523-7b6c on feature/session-records.ai/repo/sessions/20260906T035524Z--s-20260906035523-7b6c--feature-session-records--4658856--95eae054a18c3e3e.mds-20260906053339-ec22Session s-20260906053339-ec22 on feature/session-lifecycle.ai/repo/sessions/20260906T054911Z--s-20260906053339-ec22--feature-session-lifecycle--9389dc8--52c8bef0528b4ac0.mds-20260906054911-cbb8Session s-20260906054911-cbb8 on feature/session-lifecycle.ai/repo/sessions/20260906T055116Z--s-20260906054911-cbb8--feature-session-lifecycle--9389dc8--a7177bd3b864df81.mds-20260906055206-8eceSession s-20260906055206-8ece on feature/session-lifecycle.ai/repo/sessions/20260906T055252Z--s-20260906055206-8ece--feature-session-lifecycle--9389dc8--5c0542c2eace7947.mds-20260906055253-ba53Session s-20260906055253-ba53 on feature/session-lifecycle.ai/repo/sessions/20260906T085153Z--s-20260906055253-ba53--feature-session-lifecycle--9770f3b--e0aa4600ed94e52f.mds-20260906085201-3c11Session s-20260906085201-3c11 on feature/session-lifecycle.ai/repo/sessions/20260906T085505Z--s-20260906085201-3c11--feature-session-lifecycle--9770f3b--b23dce1fa13c9c25.mds-20260906100402-1b4eSession s-20260906100402-1b4e on feature/ai-artifacts.ai/repo/sessions/20260906T104136Z--s-20260906100402-1b4e--feature-ai-artifacts--2b42014--217c31a51008928f.mds-20260906104842-c7cfSession s-20260906104842-c7cf on feature/ai-artifacts.ai/repo/sessions/20260906T110558Z--s-20260906104842-c7cf--feature-ai-artifacts--2b42014--159467df2ddcde14.mds-20260906214710-1a63Session s-20260906214710-1a63 on master.ai/repo/sessions/20260908T003655Z--s-20260906214710-1a63--master--d3a36fd--89c252efadb41a31.mds-20260908003954-b327Session s-20260908003954-b327 on master.ai/repo/sessions/20260908T193329Z--s-20260908003954-b327--master--ebec65f--19701e4316a32b7b.mds-20260908193341-cdf1Session s-20260908193341-cdf1 on master.ai/repo/sessions/20260909T150832Z--s-20260908193341-cdf1--master--867f3a9--38e50db8741a3b60.mds-20260909152316-024fSession s-20260909152316-024f on master.ai/repo/sessions/20260910T103933Z--s-20260909152316-024f--master--38f056b--5b5b1acf70e75670.mds-20260910194205-72eaRecovered episode s-20260910194205-72ea.ai/repo/sessions/20261007T132839Z--s-20260910194205-72ea--master--b4a781c--f07b958acf1de32e.mds-20260910200453-afbbRecovered episode s-20260910200453-afbb.ai/repo/sessions/20261007T132840Z--s-20260910200453-afbb--master--b4a781c--57c01150ce645c9c.mds-20260910205542-e2a6Session s-20260910205542-e2a6 on master.ai/repo/sessions/20260910T210426Z--s-20260910205542-e2a6--master--9f3a2a0--691dfe3d1cd1b3be.mds-20260910210510-8f20Session s-20260910210510-8f20 on master.ai/repo/sessions/20260910T211503Z--s-20260910210510-8f20--master--9f3a2a0--d3eff159759e1cfd.mds-20260910211505-3dbeSession s-20260910211505-3dbe on master.ai/repo/sessions/20260911T072724Z--s-20260910211505-3dbe--master--06fa258--60fd7c775ffd6e0b.mds-20260910211853-8a3eSession s-20260910211853-8a3e on master.ai/repo/sessions/20260911T072724Z--s-20260910211853-8a3e--master--06fa258--d44fd8943c9f6917.mds-20260910212104-f50dSession s-20260910212104-f50d on master.ai/repo/sessions/20260911T072724Z--s-20260910212104-f50d--master--06fa258--af6e403dc4126fd5.mds-20260910214152-71cbSession s-20260910214152-71cb on master.ai/repo/sessions/20260911T072724Z--s-20260910214152-71cb--master--06fa258--a9b5e2c526832ce2.mds-20260910214250-e597Session s-20260910214250-e597 on master.ai/repo/sessions/20260911T072719Z--s-20260910214250-e597--master--06fa258--4ecadd3cb116eca9.mds-20260910222723-14ceSession s-20260910222723-14ce on master.ai/repo/sessions/20260911T072719Z--s-20260910222723-14ce--master--06fa258--8783a5771fe49116.mds-20260911054710-3523Session s-20260911054710-3523 on master.ai/repo/sessions/20260911T063812Z--s-20260911054710-3523--master--06fa258--b2a73dd26a124107.mds-20260911060123-e0d4Session s-20260911060123-e0d4 on master.ai/repo/sessions/20260911T063531Z--s-20260911060123-e0d4--master--06fa258--42c1bfb3b397e4c9.mds-20260911063532-b41bRecovered episode s-20260911063532-b41b.ai/repo/sessions/20261007T132848Z--s-20260911063532-b41b--master--b4a781c--bfd61cce70f60944.mds-20260911071522-1779Recovered episode s-20260911071522-1779.ai/repo/sessions/20261007T132839Z--s-20260911071522-1779--master--b4a781c--21e02a467d68aa6d.mds-20260911080815-8fa4Recovered episode s-20260911080815-8fa4.ai/repo/sessions/20261007T132849Z--s-20260911080815-8fa4--master--b4a781c--4b601de4b12566c6.mds-20260911084942-cc41Recovered episode s-20260911084942-cc41.ai/repo/sessions/20261007T132841Z--s-20260911084942-cc41--master--b4a781c--8b0209e72612ee3d.mds-20260911091724-cb7cRecovered episode s-20260911091724-cb7c.ai/repo/sessions/20261007T132845Z--s-20260911091724-cb7c--master--b4a781c--624832469e19ece2.mds-20260911101024-420aSession s-20260911101024-420a on master.ai/repo/sessions/20261008T201707Z--s-20260911101024-420a--master--dba5422--7db7bd00ad419a31.mds-20260911111124-edd8Recovered episode s-20260911111124-edd8.ai/repo/sessions/20261007T132842Z--s-20260911111124-edd8--master--b4a781c--0e6fd12692c0f649.mds-20260911111626-a947Recovered episode s-20260911111626-a947.ai/repo/sessions/20261007T132841Z--s-20260911111626-a947--master--b4a781c--79ecf30c55bd73ef.mds-20260911120135-c46fRecovered episode s-20260911120135-c46f.ai/repo/sessions/20261007T132849Z--s-20260911120135-c46f--master--b4a781c--ba19f270623b4cd3.mds-20260911121108-4457Recovered episode s-20260911121108-4457.ai/repo/sessions/20261007T132839Z--s-20260911121108-4457--master--b4a781c--4f4d705f21505296.mds-20260911121531-e471Recovered episode s-20260911121531-e471.ai/repo/sessions/20261007T132842Z--s-20260911121531-e471--master--b4a781c--de707513544c4d89.mds-20260911122020-b01dRecovered episode s-20260911122020-b01d.ai/repo/sessions/20261007T132843Z--s-20260911122020-b01d--master--b4a781c--c8d2baddf2e17622.mds-20260911220934-09c7Recovered episode s-20260911220934-09c7.ai/repo/sessions/20261007T132844Z--s-20260911220934-09c7--master--b4a781c--7cd3659171baf297.mds-20260911222939-5814Recovered episode s-20260911222939-5814.ai/repo/sessions/20261007T132849Z--s-20260911222939-5814--master--b4a781c--efcaa1d1c93e6ca6.mds-20260912063801-209bRecovered episode s-20260912063801-209b.ai/repo/sessions/20261007T132848Z--s-20260912063801-209b--master--b4a781c--8b78a9e4196887d5.mds-20260912075636-c542Recovered episode s-20260912075636-c542.ai/repo/sessions/20261007T132843Z--s-20260912075636-c542--master--b4a781c--9902ce79a17edb93.mds-20260912100926-89ecRecovered episode s-20260912100926-89ec.ai/repo/sessions/20260914T044725Z--s-20260912100926-89ec--master--b3791fc--7ca5b976a3574fd5.mds-20260912110906-d10eRecovered episode s-20260912110906-d10e.ai/repo/sessions/20260914T044725Z--s-20260912110906-d10e--master--b3791fc--5ec09e977a4bd7f5.mds-20260912111802-54acRecovered episode s-20260912111802-54ac.ai/repo/sessions/20260914T044725Z--s-20260912111802-54ac--master--b3791fc--08fbf9c1c197ab11.mds-20260912184450-bec7Recovered episode s-20260912184450-bec7.ai/repo/sessions/20261007T132842Z--s-20260912184450-bec7--master--b4a781c--4035a989ad5159ae.mds-20260912185145-bc8cRecovered episode s-20260912185145-bc8c.ai/repo/sessions/20261007T132842Z--s-20260912185145-bc8c--master--b4a781c--1e0e2641cb2ff331.mds-20260913055646-d956Recovered episode s-20260913055646-d956.ai/repo/sessions/20261007T132846Z--s-20260913055646-d956--master--b4a781c--59ff3c059ff2cec8.mds-20260915152859-4c3dRecovered episode s-20260915152859-4c3d.ai/repo/sessions/20261007T132845Z--s-20260915152859-4c3d--master--b4a781c--4ac302b4f0a969fe.mds-20260915171454-b161Recovered episode s-20260915171454-b161.ai/repo/sessions/20261007T132843Z--s-20260915171454-b161--master--b4a781c--426166267290d2ac.mds-20260915175504-3486Recovered episode s-20260915175504-3486.ai/repo/sessions/20261007T132843Z--s-20260915175504-3486--master--b4a781c--65bf9a7d136dd8f4.mds-20260915180057-1a99Recovered episode s-20260915180057-1a99.ai/repo/sessions/20261007T132847Z--s-20260915180057-1a99--master--b4a781c--9fe18d4cabd77e12.mds-20260915191627-2136Recovered episode s-20260915191627-2136.ai/repo/sessions/20261007T132840Z--s-20260915191627-2136--master--b4a781c--79c5180095088f8f.mds-20260915200727-30d3Recovered episode s-20260915200727-30d3.ai/repo/sessions/20261007T132839Z--s-20260915200727-30d3--master--b4a781c--fa62e561a08dc612.mds-20260915202711-27f1Recovered episode s-20260915202711-27f1.ai/repo/sessions/20261007T132845Z--s-20260915202711-27f1--master--b4a781c--6a54dcbe1e6d9a7c.mds-20260915214421-d1adRecovered episode s-20260915214421-d1ad.ai/repo/sessions/20261007T132844Z--s-20260915214421-d1ad--master--b4a781c--024c0e659706c6ed.mds-20260916090000-6d58Recovered episode s-20260916090000-6d58.ai/repo/sessions/20261007T132840Z--s-20260916090000-6d58--master--b4a781c--6dd888f6da15ff43.mds-20260916195820-cee6Recovered episode s-20260916195820-cee6.ai/repo/sessions/20261007T132840Z--s-20260916195820-cee6--master--b4a781c--bd907581969122d3.mds-20260916200058-9170Recovered episode s-20260916200058-9170.ai/repo/sessions/20261007T132849Z--s-20260916200058-9170--master--b4a781c--6f87e8737fe98371.mds-20260916202947-fc7fRecovered episode s-20260916202947-fc7f.ai/repo/sessions/20261007T132847Z--s-20260916202947-fc7f--master--b4a781c--2323c6dc9403abe6.mds-20260916203829-9000Recovered episode s-20260916203829-9000.ai/repo/sessions/20261007T132843Z--s-20260916203829-9000--master--b4a781c--a3123b28212a4681.mds-20260916211754-94e5Recovered episode s-20260916211754-94e5.ai/repo/sessions/20261007T132848Z--s-20260916211754-94e5--master--b4a781c--6cd30e4030f4ed8a.mds-20260916221803-e4d0Recovered episode s-20260916221803-e4d0.ai/repo/sessions/20261007T132841Z--s-20260916221803-e4d0--master--b4a781c--a7b57f4728e95374.mds-20260916231308-07c9Recovered episode s-20260916231308-07c9.ai/repo/sessions/20261007T132848Z--s-20260916231308-07c9--master--b4a781c--37c003f3db3237cd.mds-20260916231308-892aRecovered episode s-20260916231308-892a.ai/repo/sessions/20261007T132850Z--s-20260916231308-892a--master--b4a781c--e0d5818c15fe3c47.mds-20260916231405-69f3Recovered episode s-20260916231405-69f3.ai/repo/sessions/20261007T132845Z--s-20260916231405-69f3--master--b4a781c--c96d916a3cb976b1.mds-20260916231448-3ff7Recovered episode s-20260916231448-3ff7.ai/repo/sessions/20261007T132846Z--s-20260916231448-3ff7--master--b4a781c--42e2c73a52b41c26.mds-20260916231519-1549Recovered episode s-20260916231519-1549.ai/repo/sessions/20261007T132847Z--s-20260916231519-1549--master--b4a781c--a88c8d8cb3691f09.mds-20260916231712-c4a4Recovered episode s-20260916231712-c4a4.ai/repo/sessions/20261007T132844Z--s-20260916231712-c4a4--master--b4a781c--4360c3b5fc1a053a.mds-20260916232208-856fRecovered episode s-20260916232208-856f.ai/repo/sessions/20261007T132842Z--s-20260916232208-856f--master--b4a781c--3e0bd7bd87be3efc.mds-20260916232227-ce9fRecovered episode s-20260916232227-ce9f.ai/repo/sessions/20261007T132839Z--s-20260916232227-ce9f--master--b4a781c--c8cfba456ad11b1f.mds-20260916232659-7ce6Recovered episode s-20260916232659-7ce6.ai/repo/sessions/20261007T132844Z--s-20260916232659-7ce6--master--b4a781c--ab3fcf49dc6063c1.mds-20260916233109-d69eRecovered episode s-20260916233109-d69e.ai/repo/sessions/20261007T132847Z--s-20260916233109-d69e--master--b4a781c--6669b608ed0b8c11.mds-20260916233157-4418Recovered episode s-20260916233157-4418.ai/repo/sessions/20261007T132846Z--s-20260916233157-4418--master--b4a781c--3f1633c8b2dc4784.mds-20260923083805-2e37Recovered episode s-20260923083805-2e37.ai/repo/sessions/20261007T132841Z--s-20260923083805-2e37--master--b4a781c--4286e2eadf670c48.mds-20260924102525-7640Recovered episode s-20260924102525-7640.ai/repo/sessions/20261007T132845Z--s-20260924102525-7640--master--b4a781c--658e75c00d35b731.mds-20260924131409-94a9Recovered episode s-20260924131409-94a9.ai/repo/sessions/20261007T132845Z--s-20260924131409-94a9--master--b4a781c--9184c764c5256a9a.mds-20260924172337-a434Recovered episode s-20260924172337-a434.ai/repo/sessions/20261007T132840Z--s-20260924172337-a434--master--b4a781c--b0a731b18978d7d5.mds-20260924174955-5df1Recovered episode s-20260924174955-5df1.ai/repo/sessions/20261007T132841Z--s-20260924174955-5df1--master--b4a781c--1e7bff10fc375f9c.mds-20260929175851-de4cRecovered episode s-20260929175851-de4c.ai/repo/sessions/20261007T132843Z--s-20260929175851-de4c--master--b4a781c--428ba02390e1ff30.mds-20260930135207-a642Recovered episode s-20260930135207-a642.ai/repo/sessions/20261007T132839Z--s-20260930135207-a642--master--b4a781c--840eb479b80269d3.mds-20260930220421-5917Recovered episode s-20260930220421-5917.ai/repo/sessions/20261007T132845Z--s-20260930220421-5917--master--b4a781c--8288566b814e5d03.mds-20260930225014-060cRecovered episode s-20260930225014-060c.ai/repo/sessions/20261007T132842Z--s-20260930225014-060c--master--b4a781c--0048a92d9455e9a1.mds-20260930225436-b03aRecovered episode s-20260930225436-b03a.ai/repo/sessions/20261007T132844Z--s-20260930225436-b03a--master--b4a781c--9bd0d8d62d816d68.mds-20261003114003-b2ecRecovered episode s-20261003114003-b2ec.ai/repo/sessions/20261007T132850Z--s-20261003114003-b2ec--master--b4a781c--79397f79d4eb7abe.mds-20261003194255-3541Recovered episode s-20261003194255-3541.ai/repo/sessions/20261007T132846Z--s-20261003194255-3541--master--b4a781c--089a8bcdd55df6a0.mds-20261003212917-9079Recovered episode s-20261003212917-9079.ai/repo/sessions/20261007T132841Z--s-20261003212917-9079--master--b4a781c--1e19dee417c6ea2a.mds-20261003222101-0ddcRecovered episode s-20261003222101-0ddc.ai/repo/sessions/20261007T132850Z--s-20261003222101-0ddc--master--b4a781c--54c0cf630e000bfe.mds-20261003234111-d01dRecovered episode s-20261003234111-d01d.ai/repo/sessions/20261007T132846Z--s-20261003234111-d01d--master--b4a781c--2ae7079b5a188cb7.mds-20261004104409-31efRecovered episode s-20261004104409-31ef.ai/repo/sessions/20261007T132840Z--s-20261004104409-31ef--master--b4a781c--645baec699097a57.mds-20261009091659-3ee5Session s-20261009091659-3ee5 on feature/the-worker-is-asked-before-compaction.ai/repo/sessions/20261009T091803Z--s-20261009091659-3ee5--feature-the-worker-is-asked-before-compaction--eb0609b--73ea739f7d4ff750.mds-20261014003330-fef4Session s-20261014003330-fef4 on master.ai/repo/sessions/20261014T003753Z--s-20261014003330-fef4--master--2ee40c5--0a336fbce0da4d62.mds-20261020233257-5779Session s-20261020233257-5779 on chore/the-merged-issues-of-open-milestones-are-recorded.ai/repo/sessions/20261020T234221Z--s-20261020233257-5779--chore-the-merged-issues-of-open-milestones-are-recorded--573df96--bffea4b5af7ff7b4.md
skill 8
assess-before-deletingAssess before deleting.ai/repo/skills/assess-before-deleting/SKILL.mddeploy-siteDeploy the site by hand.ai/repo/skills/deploy-site/SKILL.mdevolveEvolve the repository's know-how.ai/repo/skills/evolve/SKILL.mdimplementImplement a change.ai/repo/skills/implement/SKILL.mdpack-for-chatgptPack the sources for a ChatGPT project.ai/repo/skills/pack-for-chatgpt/SKILL.mdpack-for-reviewPack the repository for an outside reviewer.ai/repo/skills/pack-for-review/SKILL.mdrepo-reviewRepository review.ai/repo/skills/repo-review/SKILL.mdreport-verification-stateReport by verification state.ai/repo/skills/report-verification-state/SKILL.md
taxonomy 10
adoptionGetting started and adoption.ai/repo/use-cases/taxonomy.yamlcompletionCompletion and quality gates.ai/repo/use-cases/taxonomy.yamlcontinuitySessions and handover.ai/repo/use-cases/taxonomy.yamldriftDrift and reconciliation.ai/repo/use-cases/taxonomy.yamlextensionExtension.ai/repo/use-cases/taxonomy.yamlknowledgeRepository knowledge.ai/repo/use-cases/taxonomy.yamlmcpServing the layer to AI clients.ai/repo/use-cases/taxonomy.yamlperformancePerformance.ai/repo/use-cases/taxonomy.yamlpolicyPolicy and enforcement.ai/repo/use-cases/taxonomy.yamlworkersParallel workers.ai/repo/use-cases/taxonomy.yaml
test 652
test/cases/00_yaml_flatten.shtest/cases/00_yaml_flatten.shtest/cases/01_init.shtest/cases/01_init.shtest/cases/02_doctor_basic.shtest/cases/02_doctor_basic.shtest/cases/03_update.shtest/cases/03_update.shtest/cases/04_start_check.shtest/cases/04_start_check.shtest/cases/05_handover.shtest/cases/05_handover.shtest/cases/06_finish.shtest/cases/06_finish.shtest/cases/07_watch.shtest/cases/07_watch.shtest/cases/08_no_forbidden_constructs.shtest/cases/08_no_forbidden_constructs.shtest/cases/09_site_mobile_first.shtest/cases/09_site_mobile_first.shtest/cases/100_environment.shtest/cases/100_environment.shtest/cases/100_execution_plane.shtest/cases/100_execution_plane.shtest/cases/1015_one_malformed_rule_is_one_finding.shtest/cases/1015_one_malformed_rule_is_one_finding.shtest/cases/1016_the_worker_is_asked_before_compaction.shtest/cases/1016_the_worker_is_asked_before_compaction.shtest/cases/1018_one_derive_at_a_time_and_no_orphans.shtest/cases/1018_one_derive_at_a_time_and_no_orphans.shtest/cases/101_command_graph.shtest/cases/101_command_graph.shtest/cases/1020_a_derive_sees_what_the_commit_will.shtest/cases/1020_a_derive_sees_what_the_commit_will.shtest/cases/1021_a_push_runs_what_ci_would_find_first.shtest/cases/1021_a_push_runs_what_ci_would_find_first.shtest/cases/1022_worktrees_share_build_intermediates.shtest/cases/1022_worktrees_share_build_intermediates.shtest/cases/1023_a_branch_cannot_widen_the_mesh_trust.shtest/cases/1023_a_branch_cannot_widen_the_mesh_trust.shtest/cases/1024_an_installed_release_serves_a_foreign_repository.shtest/cases/1024_an_installed_release_serves_a_foreign_repository.shtest/cases/102_completion_shell.shtest/cases/102_completion_shell.shtest/cases/1030_a_derive_machine_has_the_pinned_toolchain.shtest/cases/1030_a_derive_machine_has_the_pinned_toolchain.shtest/cases/1036_the_executor_reopens_a_record_pull_request.shtest/cases/1036_the_executor_reopens_a_record_pull_request.shtest/cases/1037_the_closing_question_is_measured.shtest/cases/1037_the_closing_question_is_measured.shtest/cases/1038_a_head_is_judged_against_what_it_changes.shtest/cases/1038_a_head_is_judged_against_what_it_changes.shtest/cases/103_obligations.shtest/cases/103_obligations.shtest/cases/103_release_projection.shtest/cases/103_release_projection.shtest/cases/1040_a_stacked_head_lands_on_the_verdict_it_has.shtest/cases/1040_a_stacked_head_lands_on_the_verdict_it_has.shtest/cases/1041_a_release_publishes_its_metadata.shtest/cases/1041_a_release_publishes_its_metadata.shtest/cases/104_published_site.shtest/cases/104_published_site.shtest/cases/104_strict_derivation.shtest/cases/104_strict_derivation.shtest/cases/1050_the_monitor_folds_the_noise.shtest/cases/1050_the_monitor_folds_the_noise.shtest/cases/1051_a_followed_stream_can_be_waited_on.shtest/cases/1051_a_followed_stream_can_be_waited_on.shtest/cases/1052_an_absent_source_is_reported.shtest/cases/1052_an_absent_source_is_reported.shtest/cases/1053_the_cockpit_follows_the_stream.shtest/cases/1053_the_cockpit_follows_the_stream.shtest/cases/1054_every_session_is_told_the_stream.shtest/cases/1054_every_session_is_told_the_stream.shtest/cases/1060_the_version_is_allocated_at_landing.shtest/cases/1060_the_version_is_allocated_at_landing.shtest/cases/1061_the_executor_allocates_the_version_at_landing.shtest/cases/1061_the_executor_allocates_the_version_at_landing.shtest/cases/1065_a_session_briefs_itself.shtest/cases/1065_a_session_briefs_itself.shtest/cases/106_context_peers.shtest/cases/106_context_peers.shtest/cases/1070_a_number_in_prose_is_a_number_the_repository_states.shtest/cases/1070_a_number_in_prose_is_a_number_the_repository_states.shtest/cases/1071_the_site_searches_from_everywhere.shtest/cases/1071_the_site_searches_from_everywhere.shtest/cases/1072_the_train_is_seen.shtest/cases/1072_the_train_is_seen.shtest/cases/1073_a_path_with_a_space_is_one_path.shtest/cases/1073_a_path_with_a_space_is_one_path.shtest/cases/1074_a_script_that_sources_the_library_leaves_no_temp_files.shtest/cases/1074_a_script_that_sources_the_library_leaves_no_temp_files.shtest/cases/1075_the_pull_requests_drain_in_the_ui.shtest/cases/1075_the_pull_requests_drain_in_the_ui.shtest/cases/1076_the_roadmap_opens_a_milestone.shtest/cases/1076_the_roadmap_opens_a_milestone.shtest/cases/1077_ci_timings_are_measured.shtest/cases/1077_ci_timings_are_measured.shtest/cases/1078_a_pull_request_shows_its_trail.shtest/cases/1078_a_pull_request_shows_its_trail.shtest/cases/1079_the_drain_draws_its_throughput.shtest/cases/1079_the_drain_draws_its_throughput.shtest/cases/107_design_tokens.shtest/cases/107_design_tokens.shtest/cases/107_runtime_staleness_is_loud.shtest/cases/107_runtime_staleness_is_loud.shtest/cases/1080_the_issues_are_browsed.shtest/cases/1080_the_issues_are_browsed.shtest/cases/1081_an_intent_opens_what_serves_it.shtest/cases/1081_an_intent_opens_what_serves_it.shtest/cases/1082_a_claim_opens_its_proof.shtest/cases/1082_a_claim_opens_its_proof.shtest/cases/1083_a_rule_opens_its_proof.shtest/cases/1083_a_rule_opens_its_proof.shtest/cases/1086_a_remote_caller_cannot_write.shtest/cases/1086_a_remote_caller_cannot_write.shtest/cases/1087_the_site_offers_the_release_it_published.shtest/cases/1087_the_site_offers_the_release_it_published.shtest/cases/1088_the_command_and_capability_screens_answer.shtest/cases/1088_the_command_and_capability_screens_answer.shtest/cases/1089_the_work_and_mesh_screens_answer.shtest/cases/1089_the_work_and_mesh_screens_answer.shtest/cases/108_entry_converges_on_a_server.shtest/cases/108_entry_converges_on_a_server.shtest/cases/108_scope_after_trunk_merge.shtest/cases/108_scope_after_trunk_merge.shtest/cases/108b_scope_after_trunk_fast_forward.shtest/cases/108b_scope_after_trunk_fast_forward.shtest/cases/1090_the_deployments_and_docs_screens_answer.shtest/cases/1090_the_deployments_and_docs_screens_answer.shtest/cases/1091_no_link_on_the_ui_is_dead.shtest/cases/1091_no_link_on_the_ui_is_dead.shtest/cases/1092_the_ui_snapshot_holds_every_screen.shtest/cases/1092_the_ui_snapshot_holds_every_screen.shtest/cases/1093_the_ui_snapshot_links_nothing_absent.shtest/cases/1093_the_ui_snapshot_links_nothing_absent.shtest/cases/1096_no_screen_waits_for_a_source.shtest/cases/1096_no_screen_waits_for_a_source.shtest/cases/1097_the_projection_is_applied_at_landing.shtest/cases/1097_the_projection_is_applied_at_landing.shtest/cases/1099_a_screen_over_its_budget_fails.shtest/cases/1099_a_screen_over_its_budget_fails.shtest/cases/109_design_system.shtest/cases/109_design_system.shtest/cases/10_site_data.shtest/cases/10_site_data.shtest/cases/110_lease_reader.shtest/cases/110_lease_reader.shtest/cases/111_session_per_provider.shtest/cases/111_session_per_provider.shtest/cases/112_version_matches_surface.shtest/cases/112_version_matches_surface.shtest/cases/113_clean_owns_its_target.shtest/cases/113_clean_owns_its_target.shtest/cases/113_shared_server_survives_a_crash.shtest/cases/113_shared_server_survives_a_crash.shtest/cases/114_two_worktrees_one_repository.shtest/cases/114_two_worktrees_one_repository.shtest/cases/115_server_state_drift.shtest/cases/115_server_state_drift.shtest/cases/118_entry_converges_by_rule.shtest/cases/118_entry_converges_by_rule.shtest/cases/11_site_derivation.shtest/cases/11_site_derivation.shtest/cases/120_design_contrast.shtest/cases/120_design_contrast.shtest/cases/121_liveness_doctrine.shtest/cases/121_liveness_doctrine.shtest/cases/122_liveness_gate.shtest/cases/122_liveness_gate.shtest/cases/123_case_bound.shtest/cases/123_case_bound.shtest/cases/124_evidence.shtest/cases/124_evidence.shtest/cases/125_rule_proof.shtest/cases/125_rule_proof.shtest/cases/127_briefing_freshness.shtest/cases/127_briefing_freshness.shtest/cases/128_the_subset_is_a_subset.shtest/cases/128_the_subset_is_a_subset.shtest/cases/129_executable_issues.shtest/cases/129_executable_issues.shtest/cases/12_site_build.shtest/cases/12_site_build.shtest/cases/12b_site_data_transactional.shtest/cases/12b_site_data_transactional.shtest/cases/12c_graph_data.shtest/cases/12c_graph_data.shtest/cases/130_archive.shtest/cases/130_archive.shtest/cases/130_context_compiler.shtest/cases/130_context_compiler.shtest/cases/130_lifecycle_survives_a_stale_task.shtest/cases/130_lifecycle_survives_a_stale_task.shtest/cases/130_mesh.shtest/cases/130_mesh.shtest/cases/131_backlog_hygiene.shtest/cases/131_backlog_hygiene.shtest/cases/131_completion_gates.shtest/cases/131_completion_gates.shtest/cases/131_freshness_has_an_age.shtest/cases/131_freshness_has_an_age.shtest/cases/131_models.shtest/cases/131_models.shtest/cases/132_coverage_differential.shtest/cases/132_coverage_differential.shtest/cases/132_health_sees_a_stopped_writer.shtest/cases/132_health_sees_a_stopped_writer.shtest/cases/132b_a_new_branch_owes_no_records_yet.shtest/cases/132b_a_new_branch_owes_no_records_yet.shtest/cases/133_plan_transition.shtest/cases/133_plan_transition.shtest/cases/133_rule_graph.shtest/cases/133_rule_graph.shtest/cases/135_session_store_recovery.shtest/cases/135_session_store_recovery.shtest/cases/136_changed_files_classifier.shtest/cases/136_changed_files_classifier.shtest/cases/138_governance_gates.shtest/cases/138_governance_gates.shtest/cases/139_release_record_schema.shtest/cases/139_release_record_schema.shtest/cases/13_region_projection.shtest/cases/13_region_projection.shtest/cases/140_prompt_continuity.shtest/cases/140_prompt_continuity.shtest/cases/14_wiring_dispatcher.shtest/cases/14_wiring_dispatcher.shtest/cases/14c_wiring_from_a_linked_worktree.shtest/cases/14c_wiring_from_a_linked_worktree.shtest/cases/150_server_sees_the_current_tree.shtest/cases/150_server_sees_the_current_tree.shtest/cases/15_command_surface.shtest/cases/15_command_surface.shtest/cases/15b_an_installed_tool_runs_what_its_bootstrap_names.shtest/cases/15b_an_installed_tool_runs_what_its_bootstrap_names.shtest/cases/16_profiles.shtest/cases/16_profiles.shtest/cases/170_provider_lifecycle_declared.shtest/cases/170_provider_lifecycle_declared.shtest/cases/171_session_observability.shtest/cases/171_session_observability.shtest/cases/17_doctrine_enforcement.shtest/cases/17_doctrine_enforcement.shtest/cases/180_publication_is_observed.shtest/cases/180_publication_is_observed.shtest/cases/181_local_is_never_published.shtest/cases/181_local_is_never_published.shtest/cases/182_sessions_published_are_the_records.shtest/cases/182_sessions_published_are_the_records.shtest/cases/18_doctrine_wiring.shtest/cases/18_doctrine_wiring.shtest/cases/190_entry_is_automatic.shtest/cases/190_entry_is_automatic.shtest/cases/190_graph_drawing.shtest/cases/190_graph_drawing.shtest/cases/191_entry_races.shtest/cases/191_entry_races.shtest/cases/192_entry_across_checkouts_and_clients.shtest/cases/192_entry_across_checkouts_and_clients.shtest/cases/194_audit_rows_are_planned.shtest/cases/194_audit_rows_are_planned.shtest/cases/19_end_to_end.shtest/cases/19_end_to_end.shtest/cases/200_generic_mcp_episode.shtest/cases/200_generic_mcp_episode.shtest/cases/20_checkpoint.shtest/cases/20_checkpoint.shtest/cases/210_session_context_is_derived.shtest/cases/210_session_context_is_derived.shtest/cases/21_decision_question.shtest/cases/21_decision_question.shtest/cases/220_exactly_once_close.shtest/cases/220_exactly_once_close.shtest/cases/221_the_lifecycle_under_concurrency.shtest/cases/221_the_lifecycle_under_concurrency.shtest/cases/222_an_episode_nobody_ended.shtest/cases/222_an_episode_nobody_ended.shtest/cases/223_an_unsupported_schema_is_a_finding.shtest/cases/223_an_unsupported_schema_is_a_finding.shtest/cases/224_continuity_crosses_machines.shtest/cases/224_continuity_crosses_machines.shtest/cases/22_history.shtest/cases/22_history.shtest/cases/230_verdict_states_its_subject.shtest/cases/230_verdict_states_its_subject.shtest/cases/23_context.shtest/cases/23_context.shtest/cases/240_the_session_domain_is_typed.shtest/cases/240_the_session_domain_is_typed.shtest/cases/241_merge_policy_claims_only_generator_output.shtest/cases/241_merge_policy_claims_only_generator_output.shtest/cases/24_prompt_search.shtest/cases/24_prompt_search.shtest/cases/250_the_board_is_repository_wide.shtest/cases/250_the_board_is_repository_wide.shtest/cases/25_continuity_lifecycle.shtest/cases/25_continuity_lifecycle.shtest/cases/26_ci_wiring.shtest/cases/26_ci_wiring.shtest/cases/271_adr_allocation.shtest/cases/271_adr_allocation.shtest/cases/272_diagrams_are_drawn.shtest/cases/272_diagrams_are_drawn.shtest/cases/273_navigation_is_declared_once.shtest/cases/273_navigation_is_declared_once.shtest/cases/274_commit_policy.shtest/cases/274_commit_policy.shtest/cases/275_publication_is_current.shtest/cases/275_publication_is_current.shtest/cases/276_disk_is_bounded.shtest/cases/276_disk_is_bounded.shtest/cases/277_entities_are_routable.shtest/cases/277_entities_are_routable.shtest/cases/278_the_gate_runner_clears_the_share.shtest/cases/278_the_gate_runner_clears_the_share.shtest/cases/279_the_publication_age_is_the_oldest_debt.shtest/cases/279_the_publication_age_is_the_oldest_debt.shtest/cases/27_foreign_task.shtest/cases/27_foreign_task.shtest/cases/280_capture_status_states_its_denominator.shtest/cases/280_capture_status_states_its_denominator.shtest/cases/281_published_order_is_tracked.shtest/cases/281_published_order_is_tracked.shtest/cases/282_the_ledger_envelope_is_reserved.shtest/cases/282_the_ledger_envelope_is_reserved.shtest/cases/284_a_record_reads_the_whole_declaration.shtest/cases/284_a_record_reads_the_whole_declaration.shtest/cases/28_catalogue.shtest/cases/28_catalogue.shtest/cases/28_no_hardcoded_values.shtest/cases/28_no_hardcoded_values.shtest/cases/2978_an_intent_is_proposed_by_a_capability.shtest/cases/2978_an_intent_is_proposed_by_a_capability.shtest/cases/2979_a_personal_layer_changes_nothing_shared.shtest/cases/2979_a_personal_layer_changes_nothing_shared.shtest/cases/2980_a_capability_is_invoked_by_name_from_claude_code.shtest/cases/2980_a_capability_is_invoked_by_name_from_claude_code.shtest/cases/2981_the_cockpit_snapshot_holds_its_routes.shtest/cases/2981_the_cockpit_snapshot_holds_its_routes.shtest/cases/2982_two_snapshots_link_what_the_other_holds.shtest/cases/2982_two_snapshots_link_what_the_other_holds.shtest/cases/2983_the_published_ui_is_the_trunks.shtest/cases/2983_the_published_ui_is_the_trunks.shtest/cases/2984_a_handbook_edition_is_built_from_the_tree.shtest/cases/2984_a_handbook_edition_is_built_from_the_tree.shtest/cases/2985_session_records_are_capped_and_archived.shtest/cases/2985_session_records_are_capped_and_archived.shtest/cases/2988_a_scope_admits_what_its_derive_wrote.shtest/cases/2988_a_scope_admits_what_its_derive_wrote.shtest/cases/2998_evidence_reaches_the_subcommands_the_executable_owns.shtest/cases/2998_evidence_reaches_the_subcommands_the_executable_owns.shtest/cases/2999_delivery_is_expedited_only_where_the_rule_says.shtest/cases/2999_delivery_is_expedited_only_where_the_rule_says.shtest/cases/29_prompt_capture.shtest/cases/29_prompt_capture.shtest/cases/3002_a_build_never_waits_in_silence.shtest/cases/3002_a_build_never_waits_in_silence.shtest/cases/3003_the_knowledge_screen_answers.shtest/cases/3003_the_knowledge_screen_answers.shtest/cases/3004_evolve_is_a_procedure_of_existing_commands.shtest/cases/3004_evolve_is_a_procedure_of_existing_commands.shtest/cases/3006_diagrams_are_interactive_and_linkable.shtest/cases/3006_diagrams_are_interactive_and_linkable.shtest/cases/300_a_pipeline_cannot_hide_a_failure.shtest/cases/300_a_pipeline_cannot_hide_a_failure.shtest/cases/3011_the_observatory_draws_nothing_it_did_not_read.shtest/cases/3011_the_observatory_draws_nothing_it_did_not_read.shtest/cases/3014_the_kiosk_draws_what_the_repository_proves.shtest/cases/3014_the_kiosk_draws_what_the_repository_proves.shtest/cases/3015_an_unsupervised_repository_exits_12_from_both_tools.shtest/cases/3015_an_unsupervised_repository_exits_12_from_both_tools.shtest/cases/3016_init_seeds_the_scope_of_the_stack_it_finds.shtest/cases/3016_init_seeds_the_scope_of_the_stack_it_finds.shtest/cases/3017_doctor_holds_an_adopter_to_what_it_adopted.shtest/cases/3017_doctor_holds_an_adopter_to_what_it_adopted.shtest/cases/3018_a_comment_in_the_policy_moves_no_bootstrap.shtest/cases/3018_a_comment_in_the_policy_moves_no_bootstrap.shtest/cases/3019_a_failed_branch_run_cancels_itself.shtest/cases/3019_a_failed_branch_run_cancels_itself.shtest/cases/301_the_mesh_stays_one_subsystem.shtest/cases/301_the_mesh_stays_one_subsystem.shtest/cases/3020_an_active_skill_is_named_where_the_crate_test_demands.shtest/cases/3020_an_active_skill_is_named_where_the_crate_test_demands.shtest/cases/3021_a_tag_does_not_freeze_the_queue.shtest/cases/3021_a_tag_does_not_freeze_the_queue.shtest/cases/3022_the_rule_package_is_stamped_and_adopter_neutral.shtest/cases/3022_the_rule_package_is_stamped_and_adopter_neutral.shtest/cases/3023_a_knowledge_record_outlives_the_file_it_cites.shtest/cases/3023_a_knowledge_record_outlives_the_file_it_cites.shtest/cases/3024_a_run_is_seen_by_the_server.shtest/cases/3024_a_run_is_seen_by_the_server.shtest/cases/3025_abandoned_work_in_a_worktree_is_named.shtest/cases/3025_abandoned_work_in_a_worktree_is_named.shtest/cases/3027_the_release_path_goes_first.shtest/cases/3027_the_release_path_goes_first.shtest/cases/3028_the_pages_job_waits_for_its_deployment.shtest/cases/3028_the_pages_job_waits_for_its_deployment.shtest/cases/3029_a_tag_in_flight_is_pending.shtest/cases/3029_a_tag_in_flight_is_pending.shtest/cases/302_the_topology_rule_has_one_source.shtest/cases/302_the_topology_rule_has_one_source.shtest/cases/3030_a_kiosk_keeps_the_screen_awake.shtest/cases/3030_a_kiosk_keeps_the_screen_awake.shtest/cases/3032_the_quality_verdict_comes_first.shtest/cases/3032_the_quality_verdict_comes_first.shtest/cases/3033_a_release_record_case_is_listed_by_a_structure_gate.shtest/cases/3033_a_release_record_case_is_listed_by_a_structure_gate.shtest/cases/3035_a_release_names_its_archive_from_the_matrix.shtest/cases/3035_a_release_names_its_archive_from_the_matrix.shtest/cases/3036_a_worktree_runs_its_own_hooks.shtest/cases/3036_a_worktree_runs_its_own_hooks.shtest/cases/3037_a_knowledge_lookup_explains_its_order.shtest/cases/3037_a_knowledge_lookup_explains_its_order.shtest/cases/303_one_source_serves_two_mounts.shtest/cases/303_one_source_serves_two_mounts.shtest/cases/3042_the_observatory_asks_again_when_it_is_seen.shtest/cases/3042_the_observatory_asks_again_when_it_is_seen.shtest/cases/3043_site_json_cannot_close_its_script.shtest/cases/3043_site_json_cannot_close_its_script.shtest/cases/3047_a_leak_finding_names_where_it_is.shtest/cases/3047_a_leak_finding_names_where_it_is.shtest/cases/3048_a_derivation_survives_an_unrelated_merge.shtest/cases/3048_a_derivation_survives_an_unrelated_merge.shtest/cases/3049_a_second_workers_record_lands_on_the_first_workers_task.shtest/cases/3049_a_second_workers_record_lands_on_the_first_workers_task.shtest/cases/304_a_provider_is_declared_once.shtest/cases/304_a_provider_is_declared_once.shtest/cases/3050_doctor_says_it_checks_governance_only.shtest/cases/3050_doctor_says_it_checks_governance_only.shtest/cases/3051_an_unlisted_event_field_fails_the_mesh_check.shtest/cases/3051_an_unlisted_event_field_fails_the_mesh_check.shtest/cases/3052_a_lost_append_is_said_end_to_end.shtest/cases/3052_a_lost_append_is_said_end_to_end.shtest/cases/3053_a_repository_of_n_records_costs_n.shtest/cases/3053_a_repository_of_n_records_costs_n.shtest/cases/3055_a_derivation_needs_no_history.shtest/cases/3055_a_derivation_needs_no_history.shtest/cases/3056_every_failure_class_names_its_proof.shtest/cases/3056_every_failure_class_names_its_proof.shtest/cases/3057_unlinked_work_is_classed_end_to_end.shtest/cases/3057_unlinked_work_is_classed_end_to_end.shtest/cases/3059_gate_state_is_answerable.shtest/cases/3059_gate_state_is_answerable.shtest/cases/305_a_command_is_claimed_or_classified.shtest/cases/305_a_command_is_claimed_or_classified.shtest/cases/3060_trunk_stays_clean.shtest/cases/3060_trunk_stays_clean.shtest/cases/3061_a_rebuild_leaves_its_server_ready.shtest/cases/3061_a_rebuild_leaves_its_server_ready.shtest/cases/3062_the_mcp_reference_repeats_no_registry_entry.shtest/cases/3062_the_mcp_reference_repeats_no_registry_entry.shtest/cases/3063_a_branch_episode_drains_the_outbox.shtest/cases/3063_a_branch_episode_drains_the_outbox.shtest/cases/3066_a_session_joins_the_mesh_at_start.shtest/cases/3066_a_session_joins_the_mesh_at_start.shtest/cases/3067_a_task_is_claimed_on_the_mesh.shtest/cases/3067_a_task_is_claimed_on_the_mesh.shtest/cases/3068_a_task_off_the_mesh_is_refused.shtest/cases/3068_a_task_off_the_mesh_is_refused.shtest/cases/3069_an_edit_no_claim_covers_is_refused.shtest/cases/3069_an_edit_no_claim_covers_is_refused.shtest/cases/3073_context_knowledge_slice.shtest/cases/3073_context_knowledge_slice.shtest/cases/3075_knowledge_validate_judges_the_graph.shtest/cases/3075_knowledge_validate_judges_the_graph.shtest/cases/3080_idle_incremental_sessions_are_pruned.shtest/cases/3080_idle_incremental_sessions_are_pruned.shtest/cases/3084_a_case_near_its_budget_is_named.shtest/cases/3084_a_case_near_its_budget_is_named.shtest/cases/3090_a_flatten_is_cached_by_its_content.shtest/cases/3090_a_flatten_is_cached_by_its_content.shtest/cases/30_command_registry.shtest/cases/30_command_registry.shtest/cases/3100_an_issue_delivery_is_inferred.shtest/cases/3100_an_issue_delivery_is_inferred.shtest/cases/3101_merged_work_unrecorded_is_drift.shtest/cases/3101_merged_work_unrecorded_is_drift.shtest/cases/3102_a_milestone_version_is_inferred.shtest/cases/3102_a_milestone_version_is_inferred.shtest/cases/3103_the_roadmap_draws_every_milestone.shtest/cases/3103_the_roadmap_draws_every_milestone.shtest/cases/3104_the_ui_roadmap_reads_delivery.shtest/cases/3104_the_ui_roadmap_reads_delivery.shtest/cases/3105_the_homepage_states_no_present_it_does_not_read.shtest/cases/3105_the_homepage_states_no_present_it_does_not_read.shtest/cases/3106_every_published_tree_draws_its_diagrams.shtest/cases/3106_every_published_tree_draws_its_diagrams.shtest/cases/310_rustdoc_projection.shtest/cases/310_rustdoc_projection.shtest/cases/3110_a_served_surface_names_its_checkout.shtest/cases/3110_a_served_surface_names_its_checkout.shtest/cases/3112_a_publication_that_did_not_arrive_is_a_finding.shtest/cases/3112_a_publication_that_did_not_arrive_is_a_finding.shtest/cases/3113_the_adoption_footprint_is_inventoried.shtest/cases/3113_the_adoption_footprint_is_inventoried.shtest/cases/3125_the_reaper_asks_cargo_for_the_build_dir.shtest/cases/3125_the_reaper_asks_cargo_for_the_build_dir.shtest/cases/3131_a_new_worktree_starts_from_the_remote_trunk.shtest/cases/3131_a_new_worktree_starts_from_the_remote_trunk.shtest/cases/3150_the_cooperation_model_is_one_record.shtest/cases/3150_the_cooperation_model_is_one_record.shtest/cases/3151_a_task_is_claimed_when_it_starts.shtest/cases/3151_a_task_is_claimed_when_it_starts.shtest/cases/3160_a_scope_entry_is_one_path.shtest/cases/3160_a_scope_entry_is_one_path.shtest/cases/3176_a_checkout_serves_the_current_trunk.shtest/cases/3176_a_checkout_serves_the_current_trunk.shtest/cases/3177_a_client_always_gets_a_server.shtest/cases/3177_a_client_always_gets_a_server.shtest/cases/3178_the_published_ui_reads_the_evidence_ci_recorded.shtest/cases/3178_the_published_ui_reads_the_evidence_ci_recorded.shtest/cases/3179_a_prerelease_is_never_published_as_stable.shtest/cases/3179_a_prerelease_is_never_published_as_stable.shtest/cases/318_a_partial_sweep_says_so.shtest/cases/318_a_partial_sweep_says_so.shtest/cases/3190_a_scope_of_dot_is_the_repository.shtest/cases/3190_a_scope_of_dot_is_the_repository.shtest/cases/3196_stale_crate_artifacts_are_pruned_under_cargos_lock.shtest/cases/3196_stale_crate_artifacts_are_pruned_under_cargos_lock.shtest/cases/3197_idle_private_build_dirs_are_reclaimed.shtest/cases/3197_idle_private_build_dirs_are_reclaimed.shtest/cases/31_command_coverage.shtest/cases/31_command_coverage.shtest/cases/3210_a_candidate_cites_its_own_commit.shtest/cases/3210_a_candidate_cites_its_own_commit.shtest/cases/3212_a_prerelease_version_is_bumped_and_ordered.shtest/cases/3212_a_prerelease_version_is_bumped_and_ordered.shtest/cases/3220_the_idd_loop_is_walked_in_a_browser.shtest/cases/3220_the_idd_loop_is_walked_in_a_browser.shtest/cases/3221_a_bare_session_start_joins_the_cluster.shtest/cases/3221_a_bare_session_start_joins_the_cluster.shtest/cases/3222_an_alpha_publishes_beside_the_latest_release.shtest/cases/3222_an_alpha_publishes_beside_the_latest_release.shtest/cases/3223_the_release_smoke_installs_an_alpha_pinned.shtest/cases/3223_the_release_smoke_installs_an_alpha_pinned.shtest/cases/3224_a_published_alpha_owes_its_record.shtest/cases/3224_a_published_alpha_owes_its_record.shtest/cases/3225_the_installer_takes_an_alpha_only_by_name.shtest/cases/3225_the_installer_takes_an_alpha_only_by_name.shtest/cases/3226_a_pages_503_is_retried_before_a_page_is_called_missing.shtest/cases/3226_a_pages_503_is_retried_before_a_page_is_called_missing.shtest/cases/3240_the_published_screens_carry_their_slow_panels.shtest/cases/3240_the_published_screens_carry_their_slow_panels.shtest/cases/3242_a_claim_newer_than_the_ledger_is_not_yet_recorded.shtest/cases/3242_a_claim_newer_than_the_ledger_is_not_yet_recorded.shtest/cases/3244_a_milestone_title_fits_on_github.shtest/cases/3244_a_milestone_title_fits_on_github.shtest/cases/3245_an_incomplete_run_is_not_the_publications_evidence.shtest/cases/3245_an_incomplete_run_is_not_the_publications_evidence.shtest/cases/3246_every_file_the_site_generator_reads_is_an_input.shtest/cases/3246_every_file_the_site_generator_reads_is_an_input.shtest/cases/3247_a_derive_records_what_each_stage_cost.shtest/cases/3247_a_derive_records_what_each_stage_cost.shtest/cases/3248_a_pre_push_gate_does_not_wait_on_another_build.shtest/cases/3248_a_pre_push_gate_does_not_wait_on_another_build.shtest/cases/3287_a_provider_declares_its_usage_seam.shtest/cases/3287_a_provider_declares_its_usage_seam.shtest/cases/32_refusal_lifecycle.shtest/cases/32_refusal_lifecycle.shtest/cases/32_schema_integrity.shtest/cases/32_schema_integrity.shtest/cases/330_a_contract_is_the_kind_it_declares.shtest/cases/330_a_contract_is_the_kind_it_declares.shtest/cases/331_knowledge_nodes_is_gated.shtest/cases/331_knowledge_nodes_is_gated.shtest/cases/333_homepage_narrative.shtest/cases/333_homepage_narrative.shtest/cases/3340_a_fresh_init_leaves_doctor_clean.shtest/cases/3340_a_fresh_init_leaves_doctor_clean.shtest/cases/3342_a_dry_run_initialises_nothing.shtest/cases/3342_a_dry_run_initialises_nothing.shtest/cases/3343_an_unobserved_mesh_is_never_zero.shtest/cases/3343_an_unobserved_mesh_is_never_zero.shtest/cases/334_ui_audit_hears_uncaught_errors.shtest/cases/334_ui_audit_hears_uncaught_errors.shtest/cases/335_every_link_resolves.shtest/cases/335_every_link_resolves.shtest/cases/3362_every_snapshot_read_can_ask_the_forge.shtest/cases/3362_every_snapshot_read_can_ask_the_forge.shtest/cases/3363_what_mutates_is_said_as_it_is.shtest/cases/3363_what_mutates_is_said_as_it_is.shtest/cases/3364_a_page_names_the_layout_in_force.shtest/cases/3364_a_page_names_the_layout_in_force.shtest/cases/3365_the_readme_exit_codes_are_the_contracts.shtest/cases/3365_the_readme_exit_codes_are_the_contracts.shtest/cases/3366_a_proof_word_is_earned.shtest/cases/3366_a_proof_word_is_earned.shtest/cases/336_every_control_is_claimed.shtest/cases/336_every_control_is_claimed.shtest/cases/337_every_control_does_what_it_says.shtest/cases/337_every_control_does_what_it_says.shtest/cases/3380_the_blackboard_is_one_projection.shtest/cases/3380_the_blackboard_is_one_projection.shtest/cases/3381_the_blackboard_is_pushed.shtest/cases/3381_the_blackboard_is_pushed.shtest/cases/3382_the_monitor_is_pushed.shtest/cases/3382_the_monitor_is_pushed.shtest/cases/3383_the_peers_screen_follows_the_blackboard.shtest/cases/3383_the_peers_screen_follows_the_blackboard.shtest/cases/3384_doctor_reads_unpushed_in_one_pass.shtest/cases/3384_doctor_reads_unpushed_in_one_pass.shtest/cases/3385_doctor_fits_its_budget_in_the_commit_hook.shtest/cases/3385_doctor_fits_its_budget_in_the_commit_hook.shtest/cases/3386_the_cockpit_peers_page_follows_the_blackboard.shtest/cases/3386_the_cockpit_peers_page_follows_the_blackboard.shtest/cases/3387_the_home_page_explains_the_blackboard.shtest/cases/3387_the_home_page_explains_the_blackboard.shtest/cases/3388_the_peers_screen_is_live_in_a_browser.shtest/cases/3388_the_peers_screen_is_live_in_a_browser.shtest/cases/3389_related_articles_answer_each_other_in_every_language.shtest/cases/3389_related_articles_answer_each_other_in_every_language.shtest/cases/33_event_registry.shtest/cases/33_event_registry.shtest/cases/33_stale_executable.shtest/cases/33_stale_executable.shtest/cases/3400_a_recorded_commit_link_names_the_history.shtest/cases/3400_a_recorded_commit_link_names_the_history.shtest/cases/3401_a_hero_link_with_a_fragment_resolves_to_its_id.shtest/cases/3401_a_hero_link_with_a_fragment_resolves_to_its_id.shtest/cases/3402_a_records_only_plan_skips_the_evidence_job.shtest/cases/3402_a_records_only_plan_skips_the_evidence_job.shtest/cases/3405_a_misplaced_artifact_is_refused.shtest/cases/3405_a_misplaced_artifact_is_refused.shtest/cases/3407_a_snapshot_page_carries_no_machine_path.shtest/cases/3407_a_snapshot_page_carries_no_machine_path.shtest/cases/3408_a_reproduce_command_is_copied_exactly.shtest/cases/3408_a_reproduce_command_is_copied_exactly.shtest/cases/3409_the_cockpit_reconnects_within_a_bound.shtest/cases/3409_the_cockpit_reconnects_within_a_bound.shtest/cases/340_a_brief_is_kept_as_received.shtest/cases/340_a_brief_is_kept_as_received.shtest/cases/341_a_claim_shows_the_test_that_settles_it.shtest/cases/341_a_claim_shows_the_test_that_settles_it.shtest/cases/343_the_cockpit_shows_who_else_is_here.shtest/cases/343_the_cockpit_shows_who_else_is_here.shtest/cases/3460_a_session_end_hook_fits_its_budget.shtest/cases/3460_a_session_end_hook_fits_its_budget.shtest/cases/3470_the_release_follows_the_work.shtest/cases/3470_the_release_follows_the_work.shtest/cases/3471_the_delivery_screen_shows_what_waits_for_a_release.shtest/cases/3471_the_delivery_screen_shows_what_waits_for_a_release.shtest/cases/3480_the_shell_floor_is_bash_3_2_and_bsd_userland.shtest/cases/3480_the_shell_floor_is_bash_3_2_and_bsd_userland.shtest/cases/349_a_step_reports_its_own_time.shtest/cases/349_a_step_reports_its_own_time.shtest/cases/34_command_fixtures.shtest/cases/34_command_fixtures.shtest/cases/3502_every_article_reads_in_every_language.shtest/cases/3502_every_article_reads_in_every_language.shtest/cases/3503_a_translation_group_agrees_and_keeps_up_with_its_source.shtest/cases/3503_a_translation_group_agrees_and_keeps_up_with_its_source.shtest/cases/350_the_queue_measures_itself.shtest/cases/350_the_queue_measures_itself.shtest/cases/352_the_version_the_site_shows_is_one_you_can_get.shtest/cases/352_the_version_the_site_shows_is_one_you_can_get.shtest/cases/353_the_version_bump_has_an_actor.shtest/cases/353_the_version_bump_has_an_actor.shtest/cases/354_a_lease_contest_is_judged_by_a_declaration.shtest/cases/354_a_lease_contest_is_judged_by_a_declaration.shtest/cases/357_ci_records_evidence.shtest/cases/357_ci_records_evidence.shtest/cases/358_entry_reports_only_evidence.shtest/cases/358_entry_reports_only_evidence.shtest/cases/3590_the_site_is_derived_in_every_language.shtest/cases/3590_the_site_is_derived_in_every_language.shtest/cases/359_live_scenarios.shtest/cases/359_live_scenarios.shtest/cases/35_future_command.shtest/cases/35_future_command.shtest/cases/3602_every_route_is_probed_by_exactly_one_shard.shtest/cases/3602_every_route_is_probed_by_exactly_one_shard.shtest/cases/3603_every_page_is_exercised_by_exactly_one_shard.shtest/cases/3603_every_page_is_exercised_by_exactly_one_shard.shtest/cases/360_the_crate_boundary_is_measured.shtest/cases/360_the_crate_boundary_is_measured.shtest/cases/362_a_release_follows_the_ci_verdict.shtest/cases/362_a_release_follows_the_ci_verdict.shtest/cases/365_new_shell_is_refused.shtest/cases/365_new_shell_is_refused.shtest/cases/366_automation_inventory_agrees_with_the_tree.shtest/cases/366_automation_inventory_agrees_with_the_tree.shtest/cases/367_an_intent_is_satisfied_only_by_evidence.shtest/cases/367_an_intent_is_satisfied_only_by_evidence.shtest/cases/368_mesh_handover_resolves.shtest/cases/368_mesh_handover_resolves.shtest/cases/36_command_doctrines.shtest/cases/36_command_doctrines.shtest/cases/3720_no_two_published_paths_differ_only_in_case.shtest/cases/3720_no_two_published_paths_differ_only_in_case.shtest/cases/3723_the_graph_text_reads_each_edge_its_way.shtest/cases/3723_the_graph_text_reads_each_edge_its_way.shtest/cases/3724_the_roadmap_says_what_the_plan_holds.shtest/cases/3724_the_roadmap_says_what_the_plan_holds.shtest/cases/3726_a_record_holds_no_template_delimiter.shtest/cases/3726_a_record_holds_no_template_delimiter.shtest/cases/3727_the_pages_name_the_pre_release_beside_the_stable_one.shtest/cases/3727_the_pages_name_the_pre_release_beside_the_stable_one.shtest/cases/3728_an_unkeyed_memory_entry_is_refused.shtest/cases/3728_an_unkeyed_memory_entry_is_refused.shtest/cases/3731_a_number_in_a_segment_is_a_placeholder.shtest/cases/3731_a_number_in_a_segment_is_a_placeholder.shtest/cases/3732_every_languages_homepage_is_held_to_its_budget.shtest/cases/3732_every_languages_homepage_is_held_to_its_budget.shtest/cases/373_delivery_is_computed.shtest/cases/373_delivery_is_computed.shtest/cases/3747_a_gated_step_leaves_its_receipt.shtest/cases/3747_a_gated_step_leaves_its_receipt.shtest/cases/3748_a_pages_step_bound_follows_its_budget.shtest/cases/3748_a_pages_step_bound_follows_its_budget.shtest/cases/3749_a_full_history_checkout_is_bounded.shtest/cases/3749_a_full_history_checkout_is_bounded.shtest/cases/374_delivery_unknown_is_not_delivered.shtest/cases/374_delivery_unknown_is_not_delivered.shtest/cases/37_responsibility_surface.shtest/cases/37_responsibility_surface.shtest/cases/3820_a_deployment_renders_its_providers_files.shtest/cases/3820_a_deployment_renders_its_providers_files.shtest/cases/3821_a_providers_tree_is_assembled_from_the_object.shtest/cases/3821_a_providers_tree_is_assembled_from_the_object.shtest/cases/3822_a_provider_deployment_is_observed_at_its_url.shtest/cases/3822_a_provider_deployment_is_observed_at_its_url.shtest/cases/3823_the_mesh_client_speaks_tls.shtest/cases/3823_the_mesh_client_speaks_tls.shtest/cases/3824_the_bootstrap_says_what_the_cooperation_rule_says.shtest/cases/3824_the_bootstrap_says_what_the_cooperation_rule_says.shtest/cases/3826_a_hosted_hub_is_trusted_and_closed_to_strangers.shtest/cases/3826_a_hosted_hub_is_trusted_and_closed_to_strangers.shtest/cases/3829_a_provider_declares_its_browser_bridge.shtest/cases/3829_a_provider_declares_its_browser_bridge.shtest/cases/3831_a_hook_never_starts_a_cold_build.shtest/cases/3831_a_hook_never_starts_a_cold_build.shtest/cases/3834_a_case_run_removes_its_own_dir.shtest/cases/3834_a_case_run_removes_its_own_dir.shtest/cases/3836_a_repeated_scenario_is_read_from_its_cache.shtest/cases/3836_a_repeated_scenario_is_read_from_its_cache.shtest/cases/3837_a_derive_does_not_run_mid_merge.shtest/cases/3837_a_derive_does_not_run_mid_merge.shtest/cases/383_convergence_is_enforced.shtest/cases/383_convergence_is_enforced.shtest/cases/3846_an_offload_derive_observes_its_base_commit.shtest/cases/3846_an_offload_derive_observes_its_base_commit.shtest/cases/3847_a_case_that_enables_the_mesh_declares_its_tailnet_off.shtest/cases/3847_a_case_that_enables_the_mesh_declares_its_tailnet_off.shtest/cases/3848_the_plan_page_fits_the_audit_budget.shtest/cases/3848_the_plan_page_fits_the_audit_budget.shtest/cases/3849_a_locked_build_never_goes_private_below_the_disk_bound.shtest/cases/3849_a_locked_build_never_goes_private_below_the_disk_bound.shtest/cases/384_a_deployment_is_evidence.shtest/cases/384_a_deployment_is_evidence.shtest/cases/3860_the_plan_graph_is_drawn_by_milestone.shtest/cases/3860_the_plan_graph_is_drawn_by_milestone.shtest/cases/3861_a_remote_caller_never_sees_the_executions.shtest/cases/3861_a_remote_caller_never_sees_the_executions.shtest/cases/386_a_plan_is_held_to_its_intent.shtest/cases/386_a_plan_is_held_to_its_intent.shtest/cases/387_no_payload_is_passed_through_argv.shtest/cases/387_no_payload_is_passed_through_argv.shtest/cases/388_an_intent_is_realised_across_providers_and_held_to_reality.shtest/cases/388_an_intent_is_realised_across_providers_and_held_to_reality.shtest/cases/389_cockpit_projection.shtest/cases/389_cockpit_projection.shtest/cases/390_unresolved_relation_refuses_generation.shtest/cases/390_unresolved_relation_refuses_generation.shtest/cases/391_skills_are_proven_capabilities.shtest/cases/391_skills_are_proven_capabilities.shtest/cases/3932_the_coverage_export_is_its_one_measurement.shtest/cases/3932_the_coverage_export_is_its_one_measurement.shtest/cases/3933_the_trends_are_read_from_the_runs_themselves.shtest/cases/3933_the_trends_are_read_from_the_runs_themselves.shtest/cases/3939_the_executable_is_built_once_per_run.shtest/cases/3939_the_executable_is_built_once_per_run.shtest/cases/3940_every_ui_visit_is_driven_by_exactly_one_shard.shtest/cases/3940_every_ui_visit_is_driven_by_exactly_one_shard.shtest/cases/3943_a_second_gate_list_is_found.shtest/cases/3943_a_second_gate_list_is_found.shtest/cases/3946_every_gate_declares_its_lane.shtest/cases/3946_every_gate_declares_its_lane.shtest/cases/3947_a_tier_selects_its_lanes.shtest/cases/3947_a_tier_selects_its_lanes.shtest/cases/3948_a_local_gate_reports_and_ci_decides.shtest/cases/3948_a_local_gate_reports_and_ci_decides.shtest/cases/3950_a_cache_key_is_a_derived_triplet.shtest/cases/3950_a_cache_key_is_a_derived_triplet.shtest/cases/3952_a_dependency_install_is_restored_and_saved.shtest/cases/3952_a_dependency_install_is_restored_and_saved.shtest/cases/3953_every_build_path_goes_through_the_cache.shtest/cases/3953_every_build_path_goes_through_the_cache.shtest/cases/3954_a_store_is_offered_in_a_signed_record.shtest/cases/3954_a_store_is_offered_in_a_signed_record.shtest/cases/3955_the_sccache_client_is_derived_from_the_selected_store.shtest/cases/3955_the_sccache_client_is_derived_from_the_selected_store.shtest/cases/3956_a_node_is_provisioned_as_a_cache_provider.shtest/cases/3956_a_node_is_provisioned_as_a_cache_provider.shtest/cases/3957_every_process_is_traced_to_its_session.shtest/cases/3957_every_process_is_traced_to_its_session.shtest/cases/3958_no_entry_path_or_gate_builds.shtest/cases/3958_no_entry_path_or_gate_builds.shtest/cases/3959_the_shared_build_dir_stays_under_its_bound.shtest/cases/3959_the_shared_build_dir_stays_under_its_bound.shtest/cases/3963_a_merge_of_master_derives_in_one_go.shtest/cases/3963_a_merge_of_master_derives_in_one_go.shtest/cases/3970_a_pull_request_carries_its_metadata.shtest/cases/3970_a_pull_request_carries_its_metadata.shtest/cases/3995_a_task_started_before_the_first_commit_finishes.shtest/cases/3995_a_task_started_before_the_first_commit_finishes.shtest/cases/3999_a_fixture_holds_the_skills_the_generator_reads.shtest/cases/3999_a_fixture_holds_the_skills_the_generator_reads.shtest/cases/4007_an_idle_server_leaves_by_itself.shtest/cases/4007_an_idle_server_leaves_by_itself.shtest/cases/4008_a_push_that_only_deletes_plans_nothing.shtest/cases/4008_a_push_that_only_deletes_plans_nothing.shtest/cases/400_derivation_is_one_graph.shtest/cases/400_derivation_is_one_graph.shtest/cases/401_the_rust_artifact_carries_its_provenance.shtest/cases/401_the_rust_artifact_carries_its_provenance.shtest/cases/402_argv_limit.shtest/cases/402_argv_limit.shtest/cases/403_published_translation.shtest/cases/403_published_translation.shtest/cases/404_refused_files_are_named.shtest/cases/404_refused_files_are_named.shtest/cases/405_the_knowledge_reader_honours_the_schema.shtest/cases/405_the_knowledge_reader_honours_the_schema.shtest/cases/406_one_declaration_every_surface.shtest/cases/406_one_declaration_every_surface.shtest/cases/408_a_receipt_is_provider_neutral.shtest/cases/408_a_receipt_is_provider_neutral.shtest/cases/409_every_tile_names_its_proof.shtest/cases/409_every_tile_names_its_proof.shtest/cases/40_project_model.shtest/cases/40_project_model.shtest/cases/413_a_skipped_case_is_not_a_proof.shtest/cases/413_a_skipped_case_is_not_a_proof.shtest/cases/414_mesh_lab_evidence.shtest/cases/414_mesh_lab_evidence.shtest/cases/417_the_suite_finishes_inside_its_bound.shtest/cases/417_the_suite_finishes_inside_its_bound.shtest/cases/4199_a_case_that_compiles_never_starves_its_neighbours.shtest/cases/4199_a_case_that_compiles_never_starves_its_neighbours.shtest/cases/41_project_status.shtest/cases/41_project_status.shtest/cases/4223_a_failed_cases_reason_reaches_the_artifact.shtest/cases/4223_a_failed_cases_reason_reaches_the_artifact.shtest/cases/42_dag_waves.shtest/cases/42_dag_waves.shtest/cases/430_economics.shtest/cases/430_economics.shtest/cases/431_economics_claims_gated.shtest/cases/431_economics_claims_gated.shtest/cases/43_plan_command.shtest/cases/43_plan_command.shtest/cases/44_model_doctrine.shtest/cases/44_model_doctrine.shtest/cases/45_github_projection.shtest/cases/45_github_projection.shtest/cases/46_cross_surface.shtest/cases/46_cross_surface.shtest/cases/47_mutation.shtest/cases/47_mutation.shtest/cases/484_the_version_is_authored_once.shtest/cases/484_the_version_is_authored_once.shtest/cases/486_rustdoc_composition.shtest/cases/486_rustdoc_composition.shtest/cases/487_rustdoc_staleness.shtest/cases/487_rustdoc_staleness.shtest/cases/488_rustdoc_discoverable.shtest/cases/488_rustdoc_discoverable.shtest/cases/489_rustdoc_deploy.shtest/cases/489_rustdoc_deploy.shtest/cases/48_roadmap_graph.shtest/cases/48_roadmap_graph.shtest/cases/490_rustdoc_new_module.shtest/cases/490_rustdoc_new_module.shtest/cases/491_the_mesh_is_on_here.shtest/cases/491_the_mesh_is_on_here.shtest/cases/492_rustdoc_module_links.shtest/cases/492_rustdoc_module_links.shtest/cases/493_mesh_compaction_keeps_what_is_live.shtest/cases/493_mesh_compaction_keeps_what_is_live.shtest/cases/494_the_mesh_is_declared_and_held.shtest/cases/494_the_mesh_is_declared_and_held.shtest/cases/495_the_firewall_admits_the_mesh.shtest/cases/495_the_firewall_admits_the_mesh.shtest/cases/49_roadmap_doctrine.shtest/cases/49_roadmap_doctrine.shtest/cases/500_docs_index.shtest/cases/500_docs_index.shtest/cases/501_verdict_words_are_status_words.shtest/cases/501_verdict_words_are_status_words.shtest/cases/502_evidence_is_judged_at_the_presented_revision.shtest/cases/502_evidence_is_judged_at_the_presented_revision.shtest/cases/503_every_use_case_has_a_feature.shtest/cases/503_every_use_case_has_a_feature.shtest/cases/504_public_text_is_redacted_once.shtest/cases/504_public_text_is_redacted_once.shtest/cases/505_a_recording_carries_what_its_run_measured.shtest/cases/505_a_recording_carries_what_its_run_measured.shtest/cases/506_a_crate_binary_that_ran_nothing_is_not_a_pass.shtest/cases/506_a_crate_binary_that_ran_nothing_is_not_a_pass.shtest/cases/507_evidence_subjects_are_derived.shtest/cases/507_evidence_subjects_are_derived.shtest/cases/50_blocker_across_handover.shtest/cases/50_blocker_across_handover.shtest/cases/51_derived_artifacts_committed.shtest/cases/51_derived_artifacts_committed.shtest/cases/529_the_preflight_reads_the_one_verdict.shtest/cases/529_the_preflight_reads_the_one_verdict.shtest/cases/52_generated_artifact_typing.shtest/cases/52_generated_artifact_typing.shtest/cases/531_an_entity_names_its_public_page.shtest/cases/531_an_entity_names_its_public_page.shtest/cases/532_the_mcp_reference_links_its_capabilities.shtest/cases/532_the_mcp_reference_links_its_capabilities.shtest/cases/533_source_links_name_the_built_commit.shtest/cases/533_source_links_name_the_built_commit.shtest/cases/534_the_overview_answers_four_questions.shtest/cases/534_the_overview_answers_four_questions.shtest/cases/535_content_links_name_the_built_commit.shtest/cases/535_content_links_name_the_built_commit.shtest/cases/536_the_coverage_gate_names_the_failing_test.shtest/cases/536_the_coverage_gate_names_the_failing_test.shtest/cases/53_status_vocabulary.shtest/cases/53_status_vocabulary.shtest/cases/540_the_cockpit_says_only_what_it_knows.shtest/cases/540_the_cockpit_says_only_what_it_knows.shtest/cases/543_a_declared_guarantee_is_not_coloured_as_proven.shtest/cases/543_a_declared_guarantee_is_not_coloured_as_proven.shtest/cases/544_the_homepage_counts_declared_apart_from_supported.shtest/cases/544_the_homepage_counts_declared_apart_from_supported.shtest/cases/545_every_answer_says_when_it_was_observed.shtest/cases/545_every_answer_says_when_it_was_observed.shtest/cases/546_a_statistic_names_the_capability_it_asked.shtest/cases/546_a_statistic_names_the_capability_it_asked.shtest/cases/547_the_ui_says_only_what_is_derived.shtest/cases/547_the_ui_says_only_what_is_derived.shtest/cases/54_session_lifecycle_hooks.shtest/cases/54_session_lifecycle_hooks.shtest/cases/552_coverage_is_recorded_for_the_preflight.shtest/cases/552_coverage_is_recorded_for_the_preflight.shtest/cases/55_session_context.shtest/cases/55_session_context.shtest/cases/560_a_case_number_names_one_case.shtest/cases/560_a_case_number_names_one_case.shtest/cases/563_knowledge_is_derived_at_the_boundary.shtest/cases/563_knowledge_is_derived_at_the_boundary.shtest/cases/564_knowledge_derivation_is_idempotent.shtest/cases/564_knowledge_derivation_is_idempotent.shtest/cases/565_knowledge_switch_and_failure_leave_evidence.shtest/cases/565_knowledge_switch_and_failure_leave_evidence.shtest/cases/566_the_collision_guard_has_a_caller.shtest/cases/566_the_collision_guard_has_a_caller.shtest/cases/569_independent_of_prismatic.shtest/cases/569_independent_of_prismatic.shtest/cases/56_derived_current_gate.shtest/cases/56_derived_current_gate.shtest/cases/572_verification_records_the_tree_it_proved.shtest/cases/572_verification_records_the_tree_it_proved.shtest/cases/575_nothing_runs_perl.shtest/cases/575_nothing_runs_perl.shtest/cases/578_an_unknown_gate_refuses_completed.shtest/cases/578_an_unknown_gate_refuses_completed.shtest/cases/57_derived_merge_driver.shtest/cases/57_derived_merge_driver.shtest/cases/581_no_plan_stamp_without_its_event.shtest/cases/581_no_plan_stamp_without_its_event.shtest/cases/582_the_done_guard_holds_in_both_engines.shtest/cases/582_the_done_guard_holds_in_both_engines.shtest/cases/58_home_path_gate.shtest/cases/58_home_path_gate.shtest/cases/593_generation_states_its_subject.shtest/cases/593_generation_states_its_subject.shtest/cases/599_a_silent_check_is_not_a_pass.shtest/cases/599_a_silent_check_is_not_a_pass.shtest/cases/59_reference_integrity.shtest/cases/59_reference_integrity.shtest/cases/602_a_spliced_body_is_recognised_as_its_own.shtest/cases/602_a_spliced_body_is_recognised_as_its_own.shtest/cases/608_deletion_is_accounted_for.shtest/cases/608_deletion_is_accounted_for.shtest/cases/60_session_lifecycle.shtest/cases/60_session_lifecycle.shtest/cases/611_the_reclaim_refuses_what_it_cannot_prove.shtest/cases/611_the_reclaim_refuses_what_it_cannot_prove.shtest/cases/617_a_case_can_name_what_it_covers.shtest/cases/617_a_case_can_name_what_it_covers.shtest/cases/61_session_envelope.shtest/cases/61_session_envelope.shtest/cases/620_mcp_tools_are_invoked_and_answer.shtest/cases/620_mcp_tools_are_invoked_and_answer.shtest/cases/623_a_ref_verdict_needs_the_refs.shtest/cases/623_a_ref_verdict_needs_the_refs.shtest/cases/624_a_slow_publication_is_not_a_failed_one.shtest/cases/624_a_slow_publication_is_not_a_failed_one.shtest/cases/625_a_rebuild_is_asked_only_when_it_helps.shtest/cases/625_a_rebuild_is_asked_only_when_it_helps.shtest/cases/62_session_divergence.shtest/cases/62_session_divergence.shtest/cases/632_a_scenario_shows_the_worker_it_judges.shtest/cases/632_a_scenario_shows_the_worker_it_judges.shtest/cases/635_the_runtime_names_its_commit.shtest/cases/635_the_runtime_names_its_commit.shtest/cases/638_a_documented_command_is_run.shtest/cases/638_a_documented_command_is_run.shtest/cases/63_session_records.shtest/cases/63_session_records.shtest/cases/64_knowledge_discovery.shtest/cases/64_knowledge_discovery.shtest/cases/65_tool_root_independence.shtest/cases/65_tool_root_independence.shtest/cases/66_migrate_legacy.shtest/cases/66_migrate_legacy.shtest/cases/67_rule_dag.shtest/cases/67_rule_dag.shtest/cases/68_ai_discovery.shtest/cases/68_ai_discovery.shtest/cases/69_context_documents.shtest/cases/69_context_documents.shtest/cases/707_knowledge_check_refuses_malformed_records.shtest/cases/707_knowledge_check_refuses_malformed_records.shtest/cases/708_health_sees_a_stopped_knowledge_writer.shtest/cases/708_health_sees_a_stopped_knowledge_writer.shtest/cases/709_knowledge_promotion_is_an_act.shtest/cases/709_knowledge_promotion_is_an_act.shtest/cases/70_context_impact.shtest/cases/70_context_impact.shtest/cases/710_briefing_names_the_candidates.shtest/cases/710_briefing_names_the_candidates.shtest/cases/711_candidates_are_reviewed_not_accumulated.shtest/cases/711_candidates_are_reviewed_not_accumulated.shtest/cases/71_context_sync.shtest/cases/71_context_sync.shtest/cases/720_integration_follows_the_current_master.shtest/cases/720_integration_follows_the_current_master.shtest/cases/721_the_suite_shards_are_the_whole_suite.shtest/cases/721_the_suite_shards_are_the_whole_suite.shtest/cases/72_rust_mcp.shtest/cases/72_rust_mcp.shtest/cases/730_reasoning_works_with_no_advisor.shtest/cases/730_reasoning_works_with_no_advisor.shtest/cases/731_advisor_transport_contract.shtest/cases/731_advisor_transport_contract.shtest/cases/732_disagreement_is_settled_by_evidence.shtest/cases/732_disagreement_is_settled_by_evidence.shtest/cases/733_advisor_failure_and_recovery.shtest/cases/733_advisor_failure_and_recovery.shtest/cases/734_reasoning_survives_the_session.shtest/cases/734_reasoning_survives_the_session.shtest/cases/735_a_new_advisor_needs_no_consumer_edit.shtest/cases/735_a_new_advisor_needs_no_consumer_edit.shtest/cases/736_reasoning_check_refuses_drift.shtest/cases/736_reasoning_check_refuses_drift.shtest/cases/73_knowledge_nodes.shtest/cases/73_knowledge_nodes.shtest/cases/740_integration_is_visible_where_a_person_looks.shtest/cases/740_integration_is_visible_where_a_person_looks.shtest/cases/741_a_continuous_drain_stops_cleanly_and_alone.shtest/cases/741_a_continuous_drain_stops_cleanly_and_alone.shtest/cases/742_only_an_outage_is_asked_again.shtest/cases/742_only_an_outage_is_asked_again.shtest/cases/743_release_version_answers_with_the_contract.shtest/cases/743_release_version_answers_with_the_contract.shtest/cases/744_an_installed_tool_finds_its_own_executable.shtest/cases/744_an_installed_tool_finds_its_own_executable.shtest/cases/74_knowledge_edges.shtest/cases/74_knowledge_edges.shtest/cases/75_knowledge_mutation.shtest/cases/75_knowledge_mutation.shtest/cases/760_the_cockpit_route_table_is_what_it_serves.shtest/cases/760_the_cockpit_route_table_is_what_it_serves.shtest/cases/763_a_tag_older_than_the_record_practice_is_a_note.shtest/cases/763_a_tag_older_than_the_record_practice_is_a_note.shtest/cases/76_capabilities_projections.shtest/cases/76_capabilities_projections.shtest/cases/777_a_recorded_scenario_does_not_depend_on_the_recorder.shtest/cases/777_a_recorded_scenario_does_not_depend_on_the_recorder.shtest/cases/77_rust_evidence.shtest/cases/77_rust_evidence.shtest/cases/790_the_kit_is_one_vocabulary_and_its_page_renders_all_of_it.shtest/cases/790_the_kit_is_one_vocabulary_and_its_page_renders_all_of_it.shtest/cases/791_a_screen_is_composed_of_the_kit_and_of_real_data.shtest/cases/791_a_screen_is_composed_of_the_kit_and_of_real_data.shtest/cases/79_bench_command.shtest/cases/79_bench_command.shtest/cases/800_product_domains.shtest/cases/800_product_domains.shtest/cases/805_a_status_speaks_the_vocabulary_of_its_kind.shtest/cases/805_a_status_speaks_the_vocabulary_of_its_kind.shtest/cases/80_bench_persistence.shtest/cases/80_bench_persistence.shtest/cases/810_a_feature_is_explored_under_its_domain.shtest/cases/810_a_feature_is_explored_under_its_domain.shtest/cases/81_bench_baseline.shtest/cases/81_bench_baseline.shtest/cases/820_a_prose_heading_reads_as_a_heading.shtest/cases/820_a_prose_heading_reads_as_a_heading.shtest/cases/821_a_session_moves_between_machines.shtest/cases/821_a_session_moves_between_machines.shtest/cases/822_a_dirty_handover_restores_context_not_source.shtest/cases/822_a_dirty_handover_restores_context_not_source.shtest/cases/823_the_same_work_continued_twice_is_a_conflict.shtest/cases/823_the_same_work_continued_twice_is_a_conflict.shtest/cases/824_separate_work_on_two_machines_is_not_a_conflict.shtest/cases/824_separate_work_on_two_machines_is_not_a_conflict.shtest/cases/825_a_handover_published_offline_waits_for_its_remote.shtest/cases/825_a_handover_published_offline_waits_for_its_remote.shtest/cases/826_a_handover_carrying_a_secret_is_not_published.shtest/cases/826_a_handover_carrying_a_secret_is_not_published.shtest/cases/827_a_record_is_admitted_before_it_is_read.shtest/cases/827_a_record_is_admitted_before_it_is_read.shtest/cases/828_a_server_holding_its_lease_is_not_reaped.shtest/cases/828_a_server_holding_its_lease_is_not_reaped.shtest/cases/829_ci_fails_on_a_skip.shtest/cases/829_ci_fails_on_a_skip.shtest/cases/82_bench_check.shtest/cases/82_bench_check.shtest/cases/83_doctor_budget.shtest/cases/83_doctor_budget.shtest/cases/84_deployment_contract.shtest/cases/84_deployment_contract.shtest/cases/84_distribution_model.shtest/cases/84_distribution_model.shtest/cases/84_web_surfaces.shtest/cases/84_web_surfaces.shtest/cases/850_integration_drains_cycle_by_cycle.shtest/cases/850_integration_drains_cycle_by_cycle.shtest/cases/852_a_dry_run_moves_nothing.shtest/cases/852_a_dry_run_moves_nothing.shtest/cases/855_racing_executors_merge_once.shtest/cases/855_racing_executors_merge_once.shtest/cases/856_racing_worktrees_share_one_lease.shtest/cases/856_racing_worktrees_share_one_lease.shtest/cases/857_required_checks_are_authoritative.shtest/cases/857_required_checks_are_authoritative.shtest/cases/858_reviews_are_authoritative.shtest/cases/858_reviews_are_authoritative.shtest/cases/85_deployment_bind.shtest/cases/85_deployment_bind.shtest/cases/85_installer.shtest/cases/85_installer.shtest/cases/85_ui_conformance.shtest/cases/85_ui_conformance.shtest/cases/861_a_successor_that_landed_supersedes.shtest/cases/861_a_successor_that_landed_supersedes.shtest/cases/86_deployment_projections.shtest/cases/86_deployment_projections.shtest/cases/86_installer_platform.shtest/cases/86_installer_platform.shtest/cases/870_a_flag_setting_reporter_is_a_reporter.shtest/cases/870_a_flag_setting_reporter_is_a_reporter.shtest/cases/871_pack_for_chatgpt.shtest/cases/871_pack_for_chatgpt.shtest/cases/87_release_pipeline.shtest/cases/87_release_pipeline.shtest/cases/87b_release_archive_shape.shtest/cases/87b_release_archive_shape.shtest/cases/884_a_declared_kind_is_a_kind_the_graph_knows.shtest/cases/884_a_declared_kind_is_a_kind_the_graph_knows.shtest/cases/885_a_replaced_server_stops_calling_itself_ready.shtest/cases/885_a_replaced_server_stops_calling_itself_ready.shtest/cases/886_the_timing_report_is_json.shtest/cases/886_the_timing_report_is_json.shtest/cases/88_rust_command_tested.shtest/cases/88_rust_command_tested.shtest/cases/890_an_intent_criterion_is_met_only_by_current_evidence.shtest/cases/890_an_intent_criterion_is_met_only_by_current_evidence.shtest/cases/892_what_is_said_of_intents_is_what_the_claims_matrix_says.shtest/cases/892_what_is_said_of_intents_is_what_the_claims_matrix_says.shtest/cases/893_preflight_follows_what_an_issue_serves.shtest/cases/893_preflight_follows_what_an_issue_serves.shtest/cases/894_github_sync_applies_only_the_trunk.shtest/cases/894_github_sync_applies_only_the_trunk.shtest/cases/895_a_finished_task_does_not_satisfy_an_intent.shtest/cases/895_a_finished_task_does_not_satisfy_an_intent.shtest/cases/899_a_bootstrap_names_only_rules_in_force.shtest/cases/899_a_bootstrap_names_only_rules_in_force.shtest/cases/89_web_surface.shtest/cases/89_web_surface.shtest/cases/900_prose_states_no_version.shtest/cases/900_prose_states_no_version.shtest/cases/90_mcp_shared_server.shtest/cases/90_mcp_shared_server.shtest/cases/910_nothing_merges_around_the_integrator.shtest/cases/910_nothing_merges_around_the_integrator.shtest/cases/911_repair_decides_and_moves_nothing.shtest/cases/911_repair_decides_and_moves_nothing.shtest/cases/912_repair_acts_under_the_lease_and_the_trail.shtest/cases/912_repair_acts_under_the_lease_and_the_trail.shtest/cases/91_canonical_architecture.shtest/cases/91_canonical_architecture.shtest/cases/924_one_executor_across_machines.shtest/cases/924_one_executor_across_machines.shtest/cases/925_a_bound_check_is_only_its_apps_run.shtest/cases/925_a_bound_check_is_only_its_apps_run.shtest/cases/926_an_unread_writer_is_never_a_pass.shtest/cases/926_an_unread_writer_is_never_a_pass.shtest/cases/927_an_unbound_base_asks_for_no_writer.shtest/cases/927_an_unbound_base_asks_for_no_writer.shtest/cases/928_an_authorised_supersedes_holds_then_closes.shtest/cases/928_an_authorised_supersedes_holds_then_closes.shtest/cases/929_a_forks_declaration_decides_nothing.shtest/cases/929_a_forks_declaration_decides_nothing.shtest/cases/92_openapi_reference.shtest/cases/92_openapi_reference.shtest/cases/930_an_own_body_is_tested_on_its_author.shtest/cases/930_an_own_body_is_tested_on_its_author.shtest/cases/931_a_closed_successor_releases_the_hold.shtest/cases/931_a_closed_successor_releases_the_hold.shtest/cases/932_a_squashed_successor_lands_by_its_merge_commit.shtest/cases/932_a_squashed_successor_lands_by_its_merge_commit.shtest/cases/933_every_page_of_cross_references_is_read.shtest/cases/933_every_page_of_cross_references_is_read.shtest/cases/934_a_failed_declarations_read_decides_nothing.shtest/cases/934_a_failed_declarations_read_decides_nothing.shtest/cases/935_an_older_observation_is_refused.shtest/cases/935_an_older_observation_is_refused.shtest/cases/936_the_rule_names_every_closure_ground.shtest/cases/936_the_rule_names_every_closure_ground.shtest/cases/937_an_unauthorised_declaration_neither_holds_nor_closes.shtest/cases/937_an_unauthorised_declaration_neither_holds_nor_closes.shtest/cases/938_a_truncated_cross_reference_read_holds.shtest/cases/938_a_truncated_cross_reference_read_holds.shtest/cases/939_a_batch_landed_successor_supersedes.shtest/cases/939_a_batch_landed_successor_supersedes.shtest/cases/93_rust_provider_projections.shtest/cases/93_rust_provider_projections.shtest/cases/93_schema_integrity.shtest/cases/93_schema_integrity.shtest/cases/93_scope_policy.shtest/cases/93_scope_policy.shtest/cases/93_workspace_kind.shtest/cases/93_workspace_kind.shtest/cases/940_mcp_says_nothing_its_capability_does_not.shtest/cases/940_mcp_says_nothing_its_capability_does_not.shtest/cases/941_a_remote_url_is_published_without_its_credential.shtest/cases/941_a_remote_url_is_published_without_its_credential.shtest/cases/94_ci_plan.shtest/cases/94_ci_plan.shtest/cases/94_use_cases.shtest/cases/94_use_cases.shtest/cases/95_executable_reference.shtest/cases/95_executable_reference.shtest/cases/95_skills.shtest/cases/95_skills.shtest/cases/960_a_task_starts_bound_to_what_it_serves.shtest/cases/960_a_task_starts_bound_to_what_it_serves.shtest/cases/961_a_resumed_task_is_told_its_intent_moved.shtest/cases/961_a_resumed_task_is_told_its_intent_moved.shtest/cases/962_plan_start_asks_the_binding_in_both_engines.shtest/cases/962_plan_start_asks_the_binding_in_both_engines.shtest/cases/96_rust_public_api_quality.shtest/cases/96_rust_public_api_quality.shtest/cases/96_site_deploy.shtest/cases/96_site_deploy.shtest/cases/96_worktree_topology.shtest/cases/96_worktree_topology.shtest/cases/97_development_semantics_gate.shtest/cases/97_development_semantics_gate.shtest/cases/97_github_gate.shtest/cases/97_github_gate.shtest/cases/97_install_gate.shtest/cases/97_install_gate.shtest/cases/97_pages_fast_path.shtest/cases/97_pages_fast_path.shtest/cases/97_product_features.shtest/cases/97_product_features.shtest/cases/97_site_probe_attribution.shtest/cases/97_site_probe_attribution.shtest/cases/97_vendor_evidence.shtest/cases/97_vendor_evidence.shtest/cases/980_a_session_records_what_it_observed.shtest/cases/980_a_session_records_what_it_observed.shtest/cases/981_an_observation_becomes_a_grouped_candidate.shtest/cases/981_an_observation_becomes_a_grouped_candidate.shtest/cases/982_a_candidate_is_routed_by_what_it_is_about.shtest/cases/982_a_candidate_is_routed_by_what_it_is_about.shtest/cases/98_cli_reference.shtest/cases/98_cli_reference.shtest/cases/98_traceability.shtest/cases/98_traceability.shtest/cases/98_why_catalogue.shtest/cases/98_why_catalogue.shtest/cases/991_a_command_leaves_nothing_in_tmpdir.shtest/cases/991_a_command_leaves_nothing_in_tmpdir.shtest/cases/992_the_local_bind_is_the_machines_to_name.shtest/cases/992_the_local_bind_is_the_machines_to_name.shtest/cases/993_the_continuity_tools_answer_over_mcp.shtest/cases/993_the_continuity_tools_answer_over_mcp.shtest/cases/994_a_panel_that_did_not_appear_is_not_a_hidden_region.shtest/cases/994_a_panel_that_did_not_appear_is_not_a_hidden_region.shtest/cases/995_a_case_leaves_no_git_housekeeping_behind.shtest/cases/995_a_case_leaves_no_git_housekeeping_behind.shtest/cases/996_the_record_pull_request_gets_its_verdict.shtest/cases/996_the_record_pull_request_gets_its_verdict.shtest/cases/999_a_parser_that_cannot_run_is_not_a_verdict.shtest/cases/999_a_parser_that_cannot_run_is_not_a_verdict.shtest/cases/99_adr.shtest/cases/99_adr.shtest/cases/99_canonical_order.shtest/cases/99_canonical_order.shtest/cases/99_plan_capabilities.shtest/cases/99_plan_capabilities.shtest/cases/99_work_graph_chain.shtest/cases/99_work_graph_chain.sh
use-case 49
accept-or-refuse-finished-workDecide whether finished work is actually finished.ai/repo/use-cases/accept-or-refuse-finished-work.mdadd-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.mdadopt-an-existing-repositoryAdopt a repository that already has its own rules.ai/repo/use-cases/adopt-an-existing-repository.mdblock-acceptance-on-an-open-questionBlock acceptance on a question nobody has answered.ai/repo/use-cases/block-acceptance-on-an-open-question.mdcapture-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.mdcarry-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.mdcatch-an-agent-that-says-it-is-doneCatch an agent that says it is done when it is not.ai/repo/use-cases/catch-an-agent-that-says-it-is-done.mdcheckpoint-long-workCheckpoint long work so a stop costs minutes, not the day.ai/repo/use-cases/checkpoint-long-work.mdclassify-what-belongs-in-the-contextDecide what belongs in the AI context, as data.ai/repo/use-cases/classify-what-belongs-in-the-context.mdcomplete-an-issue-only-with-its-evidenceComplete an issue only when its evidence exists.ai/repo/use-cases/complete-an-issue-only-with-its-evidence.mddeliver-issues-in-wavesDeliver issues in waves the graph computes, and take the next one.ai/repo/use-cases/deliver-issues-in-waves.mddocument-every-directory-of-the-layerRefuse a directory of the layer that documents nothing.ai/repo/use-cases/document-every-directory-of-the-layer.mdextend-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.mdfind-an-object-without-reading-everythingFind an object of the layer without reading everything.ai/repo/use-cases/find-an-object-without-reading-everything.mdfind-out-what-driftedFind out what has drifted since anyone last looked.ai/repo/use-cases/find-out-what-drifted.mdfollow-a-skill-the-repository-definesFollow a procedure the repository defines, and add another one.ai/repo/use-cases/follow-a-skill-the-repository-defines.mdgate-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.mdhand-the-repository-to-a-readerHand the repository to someone who cannot clone it.ai/repo/use-cases/hand-the-repository-to-a-reader.mdhand-work-between-sessionsHand unfinished work to the next session.ai/repo/use-cases/hand-work-between-sessions.mdinstall-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.mdkeep-decisions-out-of-the-transcriptRecord a decision so the next worker can find it.ai/repo/use-cases/keep-decisions-out-of-the-transcript.mdkeep-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.mdkeep-what-an-episode-learnedKeep what an episode learned, without a model and without a conversation.ai/repo/use-cases/keep-what-an-episode-learned.mdknow-whether-this-work-is-finishedKnow whether the work in this checkout is finished.ai/repo/use-cases/know-whether-this-work-is-finished.mdknow-which-tool-is-runningCheck the version before trusting a diagnosis.ai/repo/use-cases/know-which-tool-is-running.mdlet-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.mdmigrate-from-the-old-layoutMove a repository from the pre-.ai layout to the layer.ai/repo/use-cases/migrate-from-the-old-layout.mdopen-and-close-a-sessionRecord what one worker did in one sitting.ai/repo/use-cases/open-and-close-a-session.mdplan-a-commit-and-judge-its-messageDivide a working tree into commits, and hold every message to a policy.ai/repo/use-cases/plan-a-commit-and-judge-its-message.mdplan-the-work-as-dataKeep the plan as milestones and issues the tool can validate.ai/repo/use-cases/plan-the-work-as-data.mdprove-a-rule-is-enforcedProve a rule is actually enforced, not merely written down.ai/repo/use-cases/prove-a-rule-is-enforced.mdprove-performance-with-benchmarksProve the tool is fast, not assume it, and refuse a regression.ai/repo/use-cases/prove-performance-with-benchmarks.mdprove-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.mdread-back-what-happenedRead back what happened, and keep the ledger within its cap.ai/repo/use-cases/read-back-what-happened.mdread-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.mdread-the-rules-the-tool-appliesSee which rules apply here and what enforces them.ai/repo/use-cases/read-the-rules-the-tool-applies.mdrecord-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.mdrecover-an-episode-nobody-closedClose an episode whose client never came back.ai/repo/use-cases/recover-an-episode-nobody-closed.mdresume-from-a-prompt-assetStart a session from a rendered framing, not a pasted transcript.ai/repo/use-cases/resume-from-a-prompt-asset.mdresume-in-the-right-worktreeResume in the right worktree, never against somebody else’s task.ai/repo/use-cases/resume-in-the-right-worktree.mdrun-several-workers-at-onceRun several workers in one repository without them colliding.ai/repo/use-cases/run-several-workers-at-once.mdsay-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.mdsay-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.mdsee-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.mdserve-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.mdtrace-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.mdtrust-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.mduse-the-tool-as-your-own-in-a-shared-repositoryUse the tool as your own in a shared repository, and propose it to the team when it has made its case.ai/repo/use-cases/use-the-tool-as-your-own-in-a-shared-repository.mdwork-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