Decisions
Every architecture decision this repository has recorded, with what it supersedes, what it put in force, and what has since referred back to it. One page per decision, generated from the decision's own file.
Filtering runs in the browser. Without JavaScript every entry below is still listed, in the order the index resolves them.
-
adr-0001acceptedA Rust executable with a data-driven, read-only MCP surface over stdio
0 outgoing 0 incoming rustmcparchitecture -
adr-0002acceptedA canonical capability registry, with MCP, HTTP, OpenAPI, Swagger UI, the CLI and the reference as projections
0 outgoing 2 incoming registryprojectionsarchitecture -
adr-0003acceptedOne shared MCP server per repository, peers, and clients that start it themselves
0 outgoing 5 incoming mcpconcurrencyarchitecture -
adr-0004acceptedOne canonical declaration, composed modules, derived projections, and performance as evidence
0 outgoing 8 incoming registryperformancearchitecture -
adr-0005acceptedOne projection plan over the canonical inputs, named owners for every truth, and the site as a view of the registry
0 outgoing 1 incoming projectionssitearchitecture -
adr-0006acceptedCI planned from one model of what affects what, gates as repository-owned scripts, and the site deployed from the run that verified it
0 outgoing 1 incoming cideployment -
adr-0007acceptedSkills are data under the layer's skills section, and every surface that shows one is a projection
0 outgoing 0 incoming skillsprojections -
adr-0008acceptedUse cases are executable canonical objects of the layer
0 outgoing 0 incoming use-casesevidence -
adr-0009acceptedPrompt capture happens below the model, or is reported as unavailable
0 outgoing 0 incoming captureprovidersprivacy -
adr-0010proposedCurated knowledge is one kind with a class, not a second store
4 outgoing 0 incoming knowledge -
adr-0011proposedEvery directory in the layer carries a contract
5 outgoing 0 incoming contextgovernance -
adr-0012proposedThe Cockpit is a sixth projection of the registry, not an application over it
12 outgoing 7 incoming architecturecapabilitiesrustinterface -
adr-0013proposedEvery web surface is discovered from its producer, resolved once, and projected
2 outgoing 3 incoming architectureweb -
adr-0014proposedA closed session is a shared object of the layer, not a local note
2 outgoing 3 incoming architecturerecords -
adr-0015proposedThe episode boundary is drawn by the provider, not by the model
0 outgoing 1 incoming architectureprovider -
adr-0016acceptedThe scenario is a body section, not a header field
0 outgoing 0 incoming use-casesschemascontext -
adr-0017proposedAn episode that opens is handed what the last one left
0 outgoing 0 incoming architecturecontinuityprovider -
adr-0018acceptedOperational moments are objects of the layer, not pages of the site
5 outgoing 0 incoming whycatalogueprojections -
adr-0019proposedDistribution is one model, and every surface that ships the tool is a projection of it
0 outgoing 2 incoming distributionrelease -
adr-0020proposedThe capability graph is composed, not centralised, and projected twice
8 outgoing 0 incoming architecturecapabilitiesinterfaceweb -
adr-0021acceptedThe branch-to-worktree topology is derived from git identity and enforced everywhere
9 outgoing 1 incoming gitworktreefilesystemagentscoordination -
adr-0022acceptedThe UI standard is an audit over a discovered page set, and its failures are fixed at their shared source
11 outgoing 2 incoming uiaccessibilitywebprojections -
adr-0023acceptedProduct features are objects of the layer, and the landing page is a projection of them
10 outgoing 2 incoming productsiteprojectionsarchitecture -
adr-0024acceptedAn orchestrator is a provider only at the bootstrap level, and its worktrees are scratch checkouts
0 outgoing 3 incoming architectureproviderworktree -
adr-0025acceptedPresentation order is one total order owned by the crate, not a decision each surface makes
6 outgoing 0 incoming architecturepresentationdeterminismprojections -
adr-0026acceptedA capability module's area is derived from the features that name it, not declared beside it
7 outgoing 1 incoming architecturetaxonomyprojectionsproduct -
adr-0027proposedA command is declared once and every surface is a projection of the command graph
0 outgoing 1 incoming commandsprojectionscompletion -
adr-0028acceptedThe crate's public surface is measured by the crate, and absence from the API is a decision
12 outgoing 1 incoming rustdocumentationtestingcapabilitiesquality -
adr-0029proposedThe changelog is a projection of what the repository already records, and the version has one writer rather than one source
9 outgoing 1 incoming releasechangelogversioningprojections -
adr-0030proposedA task owes obligations, and the evidence that discharges them goes stale
0 outgoing 2 incoming completionevidencetasks -
adr-0031acceptedThe design is one declaration and every surface is a projection of it
10 outgoing 0 incoming designuiprojectionsderived -
adr-0032proposedAn external workspace is not a provider: the term, the dependency posture, and where synced content lives
0 outgoing 2 incoming architectureworkspace -
adr-0033acceptedAn execution is a watched capability call, not a second registry
16 outgoing 2 incoming architecturecapabilitiesrusthttpcockpitagents -
adr-0035proposedA checkout's server is one of the repository's, and its state is served like every other fact
0 outgoing 2 incoming mcparchitecturecoordination -
adr-0036acceptedThe design system is a typed declaration in the crate and every first-party surface consumes its projections
13 outgoing 0 incoming designuicockpitsiteprojectionsderived -
adr-0037acceptedA gate whose runner the repository cannot get on demand is planned on demand, so that the verdict arrives
8 outgoing 0 incoming ci -
adr-0038proposedA scenario declares where it runs, and an obligation is a step
10 outgoing 0 incoming architectureagentsgovernance -
adr-0039proposedLiveness is four rules, advisory until a scan can decide them
10 outgoing 0 incoming agentsgovernanceprocess -
adr-0040acceptedDevelopment semantics are capabilities of one runtime; every surface is a consumer
4 outgoing 2 incoming architecturecapabilitiescockpitruntimegovernance -
adr-0041proposedProof is a recorded execution, and inputs unchanged is not proven
19 outgoing 4 incoming evidenceclaimsverificationci -
adr-0043proposedEntering the repository brings its runtime up, through one bootstrap command the entry file calls
0 outgoing 0 incoming entrymcpenvironmentdoctrine -
adr-0044acceptedCooperation is repository-wide because the board is gathered, not because the server is shared
5 outgoing 4 incoming mcparchitecturecoordinationworktrees -
adr-0046proposedA working context is derived and a closed record is composed; neither is a document somebody must remember to write
6 outgoing 0 incoming sessionslifecyclecontinuitygovernance -
adr-0047proposedThe session domain is typed, its identities are not interchangeable, and closing is exactly once
7 outgoing 1 incoming sessionscontinuityarchitectureidentityrust -
adr-0048proposedA rule declares how it is enforced, and review is one of the three ways
24 outgoing 1 incoming rulesgovernanceverificationevidence -
adr-0049proposedThe model catalogue is declarative data, and routing is an explainable projection of it
4 outgoing 1 incoming modelscataloguerouting -
adr-0050proposedMesh peer discovery is provider-based observation with authenticated node identity
4 outgoing 2 incoming meshdiscoverysecurity -
adr-0051proposedThe minimum release version is measured from the public contract, and conventional commits are demoted to evidence
7 outgoing 2 incoming releaseversioningcompatibilityprojections -
adr-0052proposedThe session lifecycle is the episode's, not the task's
12 outgoing 3 incoming sessionscontinuitygovernancearchitecture -
adr-0053proposedAn identity is allocated above the high-water mark, and a collision is refused on the branch
5 outgoing 0 incoming coordinationgovernance -
adr-0054proposedA commit message is a judged value, not a convention and not a prompt
17 outgoing 0 incoming gitcommitgovernanceprojections -
adr-0055proposedDisk is the fifth self-accumulating quantity — build output is reclaimed by predicate and a build is bounded before it starts
7 outgoing 1 incoming operationssafetyworktreesci -
adr-0056proposedEvery object of the layer has a derived address, both directions of every relation, and a declared place of publication
0 outgoing 0 incoming governanceroutingweb -
adr-0059proposedThe mesh is on for this repository, and every session start holds it
10 outgoing 0 incoming meshcoordinationoperations -
adr-0061proposedA gate's verdict is evidence, and a rule the repository enforces itself is proven by it
0 outgoing 0 incoming governanceevidence -
adr-0062proposedA verification is proved against a commit, and two attempts that disagree are not proof
0 outgoing 0 incoming evidenceverification -
adr-0063proposedA peer's uncommitted work is part of its claim, and a commit that carries it is refused
0 outgoing 0 incoming coordination -
adr-0064proposedA declared tool has a version, and a mismatch is a finding
0 outgoing 0 incoming environment -
adr-0066proposedEntry reports a verdict per claim and the evidence behind it, from one preflight value
5 outgoing 0 incoming entryenvironmentevidenceverification -
adr-0067proposedMesh cooperation is authenticated links between runtimes and one replicated journal folded the same way everywhere
6 outgoing 6 incoming meshcooperationsecuritydistributed -
adr-0068proposedCI evidence is kept where the run happened, and published with the commit it proves
5 outgoing 0 incoming evidenceverificationcipages -
adr-0069proposedA capability may be scripted, and repository automation is scripted capabilities rather than shell
7 outgoing 0 incoming automationcapabilitiesarchitectureportabilitysecurity -
adr-0070proposedAn intent is a typed record, and its stage and satisfaction are derived from the plan and the evidence
9 outgoing 5 incoming intentprojectevidencegovernance -
adr-0071proposedA feature exists only when its delivery is computed and every dimension passes
11 outgoing 0 incoming deliveryfeaturesverificationpublication -
adr-0073proposedAn issue names the intent criterion it serves, and the coverage of every criterion is derived from the plan
5 outgoing 2 incoming intentprojectplanning -
adr-0075proposedWhich work realises an intent is a join over the records the lifecycle already keeps, and closed work does not outrank evidence
8 outgoing 1 incoming intentsessionhandoverevidence -
adr-0076proposedA skill is a capability only when something proves it — tested, documented, enforced and used are derived, never authored
6 outgoing 0 incoming skillsevidencederivation -
adr-0077proposedPublished content may be written in the reader's language; the repository's own artifacts may not
11 outgoing 1 incoming languagegovernancesitepublication -
adr-0080proposedA CI run reaches the tracked ledger through a recording branch, never through the run that produced it
11 outgoing 0 incoming evidenceclaimsciverification -
adr-0082proposedToken economics are measured from matched runs and published only past a declared rule
5 outgoing 0 incoming economicsevidenceclaims -
adr-0085proposedThe version is authored once, in the crate manifest, and shipped to the shell tool as a generated projection
11 outgoing 1 incoming releaseversioningprojectionsdistribution -
adr-0086proposedThe crate's rustdoc is a published web surface at /rustdoc, produced by the invocation its gate proves and verified at the public URL
29 outgoing 1 incoming rustdocumentationwebpublicationci -
adr-0087proposedEvidence is indexed by subject and judged at the presented revision
9 outgoing 1 incoming evidenceclaimsciverificationsite -
adr-0088proposedA dashboard is a projection of capabilities, and every card names the answer it was read from
8 outgoing 2 incoming architectureinterfacecapabilitiescockpit -
adr-0089proposedAn interface shows only what is derived, and unknown is never drawn as healthy
15 outgoing 0 incoming uicockpitsiteevidenceenforcement -
adr-0091proposedKnowledge is derived at the episode boundary, from the ledger and git, and a person promotes it
42 outgoing 1 incoming knowledgesessionscontinuitygovernance -
adr-0097proposedA plan stamp carries the seal of its event, because the ledger never leaves the checkout
6 outgoing 0 incoming planlifecycleeventsintegrity -
adr-0098proposedReasoning is provider-independent, advisors are optional, and review is a recorded fact rather than a claim
6 outgoing 0 incoming reasoningadvisorsproviderssessions -
adr-0101proposedPull requests are integrated one at a time, each against a master observed a moment before
21 outgoing 4 incoming integrationgitgithubgovernancesafety -
adr-0103proposedEvery client gets an episode, and every provider capability cites its evidence
9 outgoing 1 incoming architecturesessionprovidersmcpgovernance -
adr-0104proposedThe product is filed under a few domains, and a feature names its one
9 outgoing 0 incoming architecturetaxonomyprojectionsproduct -
adr-0105proposedA handover moves between machines as a signed record in a ref of its own, and is resumed only on a plan
9 outgoing 0 incoming architecturecontinuityhandoverdevicessecurity -
adr-0107proposedCompletion discharges obligations and never decides whether an intent is satisfied
7 outgoing 1 incoming intentcompletionevidencegovernance -
adr-0110proposedMCP says nothing its capability does not
10 outgoing 0 incoming architecturemcpprojectionscapabilitiessafety -
adr-0111proposedA task names what it serves, and the binding is derived, pinned and never stored
13 outgoing 0 incoming intentsessionhandovergovernance -
adr-0118proposedA session leaves what it observed, and the boundary keeps one routed candidate per defect
11 outgoing 0 incoming knowledgesessionsgovernance -
adr-0123proposedThe worker is asked for a handover before the context window fills, by a provider mod the policy switches
6 outgoing 1 incoming sessionhandoverprovider -
adr-0124proposedAn uploaded prompt pack is a provenance-tracked input artifact, not a second intent model
0 outgoing 0 incoming artifact-ingestionmesh-packprompt-pack -
adr-0126proposedA caller beyond loopback reads, and changes nothing it cannot authenticate
9 outgoing 1 incoming securitymeshmcphttp -
adr-0129proposedA train of stacked pull requests lands in one run of the required check, each link on the verdict its head already has
13 outgoing 1 incoming integrationgitgithubcithroughput -
adr-0131proposedA release publishes its metadata to the site before its record lands, and the site never goes back a release
6 outgoing 1 incoming releasedistributionpagesthroughput -
adr-0133proposedEverything that happens in the repository is followed in one stream, folded and addressed
5 outgoing 0 incoming monitormeshcooperationobservability -
adr-0134proposedThe 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
11 outgoing 0 incoming releaseversioningintegration -
adr-0135accepted`majordomus ui` is the primary surface, and the Cockpit is the technical layer beneath it
5 outgoing 6 incoming architectureinterfaceuicockpit -
adr-0136proposedEvery session briefs itself on an interval, from one capability a provider mod the policy switches keeps in front of it
7 outgoing 0 incoming sessionpeersprovider -
adr-0138proposedA train of pull requests is a typed object that can be seen
7 outgoing 0 incoming integrationcockpitpull-requests -
adr-0139proposedWorktrees share what cargo compiles on the way, and keep their own finished artifacts
0 outgoing 1 incoming operationsworktreesdisk -
adr-0140proposedEditors and agents read projections of the layer, and cargo embeds none of it
0 outgoing 2 incoming editorsprojectionsgeneratedbuild -
adr-0141proposedThe UI is published as a snapshot read at one commit, and a publication never pretends to be a process
11 outgoing 1 incoming architectureinterfaceuipages -
adr-0142proposedNo screen waits for a source: a page shows the latest reading with its age, and the reading catches up behind it
8 outgoing 2 incoming architectureinterfaceuiperformancecache -
adr-0144proposedAn intent is proposed by a capability, and its stage stays derived
6 outgoing 1 incoming intentprojectcapabilities -
adr-0145proposedA 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
12 outgoing 0 incoming architecturedistributionadoptiondiscoveryenforcement -
adr-0146acceptedA capability is invoked by name through a generated skill
7 outgoing 1 incoming capabilitiesproviderseditors -
adr-0147proposedThe Cockpit is published as a snapshot by the exporter that reads the UI, and two snapshots link only the pages each holds
10 outgoing 0 incoming architectureinterfacecockpituipages -
adr-0149proposedA handbook edition is a declared locale tree, built from the tree it describes
11 outgoing 0 incoming handbooklanguagegovernancederivation -
adr-0152proposedA diagram and a chart on the site are one viewer each, over what the build derived: interactive, linkable, and linked by inference
13 outgoing 1 incoming sitediagramschartsderivation -
adr-0155proposedAn expedited landing is the owner's word, judged on the merged tree, and never reaches a tag
10 outgoing 2 incoming integrationgovernancecirelease -
adr-0157proposedA mesh node may offer a shared build cache, peers discover and select it, and compilation never depends on it
5 outgoing 0 incoming meshbuildcachecapability -
adr-0158proposedThe Observatory is one screen of the UI, and it draws only what was observed
10 outgoing 2 incoming uiobservatoryevidencemesh -
adr-0160proposedThe kiosk draws what the repository proves, from the sources that already answer it, and draws it with p5 only where the build has it
8 outgoing 0 incoming uiobservatoryevidencep5 -
adr-0161proposedA mesh node follows the published release, through the one installer, forward only
8 outgoing 0 incoming distributionreleasemeshruntime -
adr-0163proposedA server serves only a share of its own version, with the surfaces it offers
15 outgoing 0 incoming serverdistributionuiresilience -
adr-0164proposedA durable record names the session that wrote it, and relates a task only when the task is that session's
11 outgoing 0 incoming sessionsattributionrecords -
adr-0165acceptedA skill is derived for every domain of the registry and shown wherever skills are
6 outgoing 0 incoming capabilitiesproviderseditorsskills -
adr-0166proposedThe plan's surfaces are inferred from delivery, and nothing the plan shows is typed beside it
9 outgoing 0 incoming plansiteuiderivationdiagrams -
adr-0167proposedWork moves through seats on the mesh, lands in combined tops, and every checkout is kept current
13 outgoing 0 incoming integrationgovernancemeshrelease -
adr-0169proposedWhat an adoption leaves behind is measured, not remembered
12 outgoing 0 incoming adoptiontwo-folderownershipfootprint
Where these come from
117 objects of kind adr, read from the repository's own layer. Nothing on this page is typed into the site: the source class that discovers the files is declared in the repository's knowledge sources, the executable indexes them, and this page, majordomus entity show adr/<slug>, the MCP resource majordomus://adr/<identity> and the Cockpit route /cockpit/objects/adr/<slug> are all projections of that one index.
The references and backlinks each page shows are edges of one graph. A reference is declared in the front matter of the object that makes it; the backlink is that same edge read from the other end, so nothing declares a relationship twice and nothing can declare half of one.