Home / Projects / Orchestrata Ultimate / Decisions / ADR index
ADR index
An ADR is a one-way-door decision, recorded once and never edited once Accepted. This page is the register of all of them, and the rules below are what the ADRs themselves say.
Three homes. ADR-0046 requires every ADR to live in docs (docs/adr/NNNN-title.md, the append-only file of record), on the wiki's decisions page (the human register) and as an ArchitectureDecision node in the graph. check_adr_graph_sync.py is the standing three-way drift gate: a new ADR is not done until the gate is clean for it.
Two registers. ADR-0047 found that the factory series (4-digit ids, file of record in docs/adr) and the project series (up to 3 digits, file of record the decisions page) reused the same integers for different decisions. It ruled that ids are zero-padded strings: ADR-0001 and ADR-001 are different decisions, nothing is renumbered, and register is a property of the graph node. Only factory ADRs with a docs file get a page here; project ADRs and wiki-only factory entries link to their anchor on the decisions page.
Status flips. A body is immutable once Accepted; a change of mind is a new ADR that supersedes the old one, and the old status flips to Superseded (ADR-0087 over ADR-0079, ADR-0101 over ADR-0100). Proposed ADRs wait for Mohamed's ruling. Where the docs file and the wiki entry disagree, the docs file wins and the drift is listed below.
A publish step. ADR-0130 ruled that while a thread is still being understood, researched and agreed, rulings stay verbatim in scratch notes; at the end they are reviewed against the register and minted together in all three homes. That is why a batch of ADRs shares one date.
Reading the pages. The counts and the per-month chart orient you; the tables group every ADR by status. The relations graph draws only what the text states outright: supersedes, amends, addendum. A no in the on-master column means the record exists only on a branch so far; its page says which branch and commit. Each ADR page carries the full text, related ADRs, the rulings it cites and the specs it names.
Still undecided: every Proposed ADR is listed on open decisions.
Counts
| status | project (3-digit) | factory (4-digit) | total |
|---|---|---|---|
| Accepted | 25 | 104 | 129 |
| Proposed | 0 | 27 | 27 |
| Superseded | 0 | 2 | 2 |
| Rejected | 0 | 0 | 0 |
| Other | 0 | 0 | 0 |
| all | 25 | 133 | 158 |
Where each factory ADR was read from
| ref | branch | files at ref | used here | ref on GitLab master |
|---|---|---|---|---|
8a2cb42ad |
feat/maps-via-codetools | 94 | 94 | no |
8c7031c9a |
fix/ship-sanctioned-gate-pytest | 105 | 11 | no |
b3ea29a31 |
architecture/domain-model | 57 | 19 | no |
1061f2d0a |
architecture/domain-model | 58 | 1 | no |
030a4ff64 |
feat/session-ctx-inject | 62 | 1 | no |
099eb1773 |
feat/shared-ledger | 77 | 1 | no |
3f68a11a5 |
docs/adr-register-0080-0085 | 73 | 6 | no |
An ADR counts as on master when its ref is an ancestor of the master ref, or when the file is byte-identical to the one on master (so a branch that merely sits ahead of master does not hide ADRs master already holds). 133 factory ADRs have a page here (docs file of record). 0 factory ADRs exist only as wiki register entries (no docs/adr file at any ref); they, and the project-register ADRs, link to their entries on the decisions page.
Status drift between the docs file and the wiki entry
The docs file is the file of record. These ids carry a different status class on the wiki register:
- ADR-0076: docs Proposed, wiki Accepted
ADRs per month
5 ADRs carry no parseable date and are not charted.
Relations between ADRs
Only relations the text states explicitly are drawn: Supersedes / Superseded by, Amends / Amended by, and an addendum that names another ADR. Arrow: the newer record points at the one it changes. Fill shows the status: green accepted, yellow proposed, grey superseded.
12 relations: 5 supersedes, 5 amends, 2 addendum.
| from | relation | to |
|---|---|---|
| ADR-0027 | supersedes | ADR-0025 |
| ADR-0028 | amends | ADR-0015 |
| ADR-0030 | amends | ADR-0001 |
| ADR-0030 | amends | ADR-0017 |
| ADR-0032 | amends | ADR-0002 |
| ADR-0076 | supersedes | ADR-0074 |
| ADR-0087 | supersedes | ADR-0079 |
| ADR-0095 | supersedes | ADR-0091 |
| ADR-0101 | supersedes | ADR-0100 |
| ADR-0130 | addendum | ADR-0124 |
| ADR-0130 | addendum | ADR-0127 |
| ADR-0133 | amends | ADR-0099 |
Accepted (129)
| id | title | date | register | source ref | on master |
|---|---|---|---|---|---|
| ADR-001 | Memgraph as Semantic Graph Backend | 2026-07-07 | project | wiki register | n/a |
| ADR-002 | Repository Pattern Over Direct Bolt | 2026-07-07 | project | wiki register | n/a |
| ADR-003 | Single HA Controller Container (Interim) | 2026-07-07 | project | wiki register | n/a |
| ADR-004 | ASYNC Replication Default | 2026-07-07 | project | wiki register | n/a |
| ADR-005 | Monkeypatch Fully Forbidden Suite-Wide | 2026-07-08 | project | wiki register | n/a |
| ADR-006 | Governance Wired into PipelineRunner (P0.1) | 2026-07-08 | project | wiki register | n/a |
| ADR-007 | Prolog Atom Escaping (P0.2) | 2026-07-08 | project | wiki register | n/a |
| ADR-008 | get_neighbors With depth < 1 Returns Empty | 2026-07-08 | project | wiki register | n/a |
| ADR-009 | Fail-Closed Governance by Default (P0.3) | 2026-07-08 | project | wiki register | n/a |
| ADR-010 | All Persistence Through Core Factories (D12 P1) | 2026-07-08 | project | wiki register | n/a |
| ADR-011 | NO_AUTH Sentinel for Unauthenticated Bolt | 2026-07-08 | project | wiki register | n/a |
| ADR-012 | core.protocols Is the Canonical Interface Home (P2) | 2026-07-08 | project | wiki register | n/a |
| ADR-013 | Hybrid RRF Retrieval + TESTS Edges in the Semantic Graph | 2026-07-08 | project | wiki register | n/a |
| ADR-014 | review_edit Is a Deterministic Fail-Closed Floor | 2026-07-08 | project | wiki register | n/a |
| ADR-015 | No Docker Deployment Work — Incus Is the Runtime | 2026-07-08 | project | wiki register | n/a |
| ADR-016 | The Agent Runtime Kernel Is REQUIRED Infrastructure | 2026-07-10 | project | wiki register | n/a |
| ADR-017 | Free-Threaded janus-swi Is the Deployed Prolog Path (Fixed at the C Level) | 2026-07-10 | project | wiki register | n/a |
| ADR-018 | pytest-xdist Is Banned With a Single Source of Truth | 2026-07-10 | project | wiki register | n/a |
| ADR-019 | D13 — Raw Memgraph Coordinator Probe Lives in the Allowlisted HA Seam | 2026-07-10 | project | wiki register | n/a |
| ADR-020 | The Memgraph Adapter Retries Transient Storage-Access Contention | – | project | wiki register | n/a |
| ADR-021 | Org-Mode Is Rejected as a Project Format | – | project | wiki register | n/a |
| ADR-022 | Five Prolog Anti-Goals Are Settled Negatives | – | project | wiki register | n/a |
| ADR-023 | The 2026-07-21 Corrected Decision Set Is Ratified | – | project | wiki register | n/a |
| ADR-024 | One Factory Per Neo4j Database (Deployment Contract) | – | project | wiki register | n/a |
| ADR-025 | KG Zero-Orphan Invariant Enforced; D1(b) Executed; Session CLI Refuses Auto-Detected Roots Under Pytest | 2026-07-30 | project | wiki register | n/a |
| ADR-0001 | Enforcement boundary is committed worktree state, not tool interception | 2026-07-23 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0002 | Factory gates fail closed; interactive sessions stay fail-open | 2026-07-23 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0003 | Neo4j is the fact system of record; Memgraph deferred | 2026-07-23 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0004 | Facts are keyed by (worktree, commit); merge is fact promotion |
2026-07-23 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0005 | Prolog is a stateless reasoning view; the graph is the sole fact store | 2026-07-23 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0006 | Projection is rule-driven, with a completeness meta-check | 2026-07-23 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0007 | Traces are structurally validated, never model-declared | 2026-07-23 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0008 | The determinism boundary — gates check structure and transcription, not intent | 2026-07-23 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0009 | Asymmetric amendment — tightening needs quorum, loosening needs the human | 2026-07-23 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0010 | Constitutional invariants require stratified negation | 2026-07-23 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0011 | Detect incompleteness rather than prove completeness | 2026-07-23 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0012 | Semantic anchors are requirement-derived, not code-derived | 2026-07-23 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0013 | Anchors are constitution-tier and human-only; anchor edits are loosening | 2026-07-24 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0014 | Adjudications are promoted into the Project KB (detector memory) | 2026-07-24 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0015 | DoR is necessary-not-sufficient, with a human floor and forced-choice axes | 2026-07-24 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0016 | Anchor classes are ranked; differential oracles are mandatory for amendments | 2026-07-24 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0017 | Governed writers are (binary, config)-attested pure functions, re-executed trusted-side | 2026-07-24 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0018 | Three-uid execution model (agent / sandboxed executor / trusted gate) | 2026-07-24 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0019 | Gate reads require causal consistency — snapshot + watermark, not replicas | 2026-07-24 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0020 | Amendment direction — syntactic sufficient condition, else the human | 2026-07-24 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0021 | Edge accounting over the transitive closure; boundary changes are loosening | 2026-07-24 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0022 | Interpretation mutation must be adversarially separated; promote the model-free detector | 2026-07-24 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0023 | The fast path requires anchors satisfied and unchanged | 2026-07-24 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0024 | The assumption-matching arbiter and its independence guarantee | 2026-07-24 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0025 | The governance rulebase bans dynamic predicate construction | 2026-07-24 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0026 | A governance predicate may not return a truncated answer set | 2026-07-24 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0027 | Retain Prolog as the reasoning engine | 2026-07-24 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0028 | Completeness axes are delivered as a construction procedure, not a checklist | 2026-07-24 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0029 | The lexical incompleteness detector set is tiered by measured precision | 2026-07-24 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0030 | Provenance uses in-toto / SLSA attestations rather than a bespoke format | 2026-07-24 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0031 | Every gate decision carries its proof tree | 2026-07-24 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0032 | The gate adopts the admission-control contract | 2026-07-24 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0033 | No agent merges its own work; dispatch gates on duplication and staleness | 2026-07-24 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0037 | Idempotent KG event ids are SHA1 content digests | 2026-07-22 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0038 | The CXP envelope schema supersedes the pre-CXP Postman schema | 2026-07-06 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0039 | Ruleset design — one commit per design version (F12) | 2026-08-28 | factory | b3ea29a31 (architecture/domain-model) |
yes |
| ADR-0040 | Ruleset traceability contract + one-word approval UX (F13) | 2026-08-29 | factory | b3ea29a31 (architecture/domain-model) |
yes |
| ADR-0046 | Every ADR lives in three synchronized homes — docs, wiki, graph | 2026-08-29 | factory | b3ea29a31 (architecture/domain-model) |
yes |
| ADR-0047 | Two ADR registers, string-significant ids — namespace, renumber nothing | 2026-08-29 | factory | b3ea29a31 (architecture/domain-model) |
yes |
| ADR-0053 | Infrastructure is guilty until proven live — probe, never trust | 2026-08-30 | factory | b3ea29a31 (architecture/domain-model) |
yes |
| ADR-0054 | Misplaced infrastructure seams relocate to a new L1 infra package |
2026-09-21 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0055 | volk_registry lives in the agents layer; L0 protocols never name concretes |
2026-09-21 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0056 | Two-gate architecture measurement — runtime gate + static ratchet with a pinned baseline | 2026-09-21 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0057 | PEP 649/749 annotation convention — Any + named comment, never TYPE_CHECKING-only names in evaluable annotations |
2026-09-21 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0058 | HA controller tests run against a dedicated two-node orchgraph sandbox, never the shared test node | 2026-09-22 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0059 | REQ propagation in generated tests is uncapped — traceability is not sampled | 2026-09-22 | factory | b3ea29a31 (architecture/domain-model) |
yes |
| ADR-0063 | The Read tool is allowed on a module the session already read through the AST toolkit | 2026-09-23 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0064 | The deployed orchgraph package carries MAGE so the ratified pagerank SLO is measurable | 2026-09-23 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0065 | The production gateway's WS control plane binds loopback through the committed prod profile | 2026-09-24 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0066 | /opt/orchestrata secrets live in ~/.config/orchestrata/.env and the installer never defaults to the workspace template | 2026-09-24 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0067 | Developer daemons are deployed code; the checkout they serve is a runtime parameter | 2026-10-05 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0068 | SPEC-110 in-memory review checks run on the ctok lossless layer and CPython ast, not LibCST | 2026-10-06 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0069 | Every spec's Definition of Done includes @traces annotations, RTM regeneration, documentation, wiki update and ≥90% coverage | 2026-10-06 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0070 | Hooks live at the user level only and scope themselves to the project in cwd, so they apply to every project | 2026-10-06 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0072 | The conversation graph endpoint is the prod orchgraph cluster, database orchkg |
2026-10-06 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0073 | ERR-110-002 amended: the default-on review engine aborts a commit on findings the change introduced (delta baseline) | 2026-10-06 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0074 | The prod promote re-embeds only changed semantic chunks and probes the embedding provider before the tree moves | 2026-10-07 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0077 | Terraform owns every Incus environment; the live dev, test and prod fleets are imported, not rebuilt | 2026-10-08 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0080 | Every fleet container's address is pinned as nic ipv4.address | 2026-10-09 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0081 | Provisioners create topology only by generating Terraform | 2026-10-09 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0082 | The mcp-server-test-ssh profile's embedded key stays unrotated | 2026-10-09 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0083 | The retired rehearsal fleet stays parked, not deleted | 2026-10-09 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0084 | Governance predicate dispositions — wire 14, keep 8, hold 30 | 2026-10-09 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0085 | Every ruling is recoverable, logged, and fed back into design | 2026-10-09 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0087 | The prod gate is one correctness run of the promoted commit | 2026-10-11 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0088 | One shared green ledger per repo; a test reruns only when its own code or the code it tests changes | 2026-10-11 | factory | 099eb1773 (feat/shared-ledger) |
no |
| ADR-0089 | Bare toolchain names fail the gate in Prolog, and the C toolchain is one declared file | 2026-10-11 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0091 | The janus fork links the declared SWI-Prolog through a path guix gc keeps alive | 2026-10-11 | factory | 3f68a11a5 (docs/adr-register-0080-0085) |
no |
| ADR-0092 | The orchestrata plugin is self-contained, pinned by a tag, and installed by one verifying command | 2026-10-12 | factory | 3f68a11a5 (docs/adr-register-0080-0085) |
no |
| ADR-0093 | Promotion, test and gate work re-injects the process, test and gate memories, and compaction resets the injector | 2026-10-12 | factory | 3f68a11a5 (docs/adr-register-0080-0085) |
no |
| ADR-0094 | Graph queries run with the ontology structure memory injected first | 2026-10-12 | factory | 3f68a11a5 (docs/adr-register-0080-0085) |
no |
| ADR-0095 | SWI-Prolog is built from pinned source into a fixed project-owned prefix, and the runtime path leaves guix | 2026-10-12 | factory | 3f68a11a5 (docs/adr-register-0080-0085) |
no |
| ADR-0096 | ADR body-drift dispositions — the graph sync treats wiki pointer entries as pointers, the three-way check compares bodies, ADR-0073's graph body is re-baselined once to its docs body, and the post-acceptance edits of ADR-0004 and ADR-0019 are ratified as their accepted text | 2026-10-13 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0097 | The resident AST daemon publishes the snapshot file from its warm cache — the post-edit hooks stop re-serializing the tree on every write, and the duplicate home-directory refresh hook is retired | 2026-10-13 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0098 | First-docs-capture rule — a graph ADR node whose body was never captured from docs/adr/ (it holds a wiki summary or is empty) is baselined once from its docs body; immutability binds from that first docs capture onward |
2026-10-13 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0099 | The gateway's MCP transport is a WebSocket JSON-RPC client of the running gateway, over one declarative method table that both transports read, and every method is approval-gated unless marked read-only | 2026-10-13 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0101 | ADR-0100 rested on a wrong reading of the commit hook; the real hook's stages are measured first and placement is decided on the numbers; none of ADR-0100's rules execute | 2026-10-13 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0102 | Three graph ADR nodes overwritten by a mis-targeted codetools sync are re-baselined from docs, and the codetools register gets its own graph key before any further sync | 2026-10-13 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0103 | The byte-faithful LIFT is the parity oracle, not the deliverable; the clean target is the deliverable | 2026-10-15 | factory | b3ea29a31 (architecture/domain-model) |
yes |
| ADR-0104 | Git worktrees are not graph projects — orchkg holds one current, provenance-stamped copy per codebase | 2026-10-16 | factory | 1061f2d0a (architecture/domain-model) |
no |
| ADR-0105 | The components branch pushes only after the affected-test gate learns the packages/** layout — a 345-commit push is not shipped past the gate with --no-verify | 2026-10-18 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0106 | Ruling-gated lift increments are not claimed by their package's parity suite until their ruling lands — the affected gate certifies the landed surface, and the held REQs stay UNLINKED in the RTM | 2026-10-18 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0107 | The frozen tools family lands as its own component package orchestrata-tools, and volks consumes it as a declared dependency (N-V3) |
2026-10-18 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0108 | The AST toolkit stays host-side — the volks codedirector consumes it through a contracts protocol injection seam (N-V4) | 2026-10-18 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0109 | Semantic-graph bulk writes run in transactions of at most 500 rows; replication stays SYNC | 2026-10-19 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0110 | The idle Prolog containers are retired from every fleet, and SWI-Prolog runs only embedded in the kernel | 2026-10-19 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0111 | Test runs never create containers; container creation is exercised only by explicit rehearsals | 2026-10-19 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0112 | Tools reaches Redis and embeddings through contracts protocols, not kernel imports | 2026-10-19 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0113 | Integration L1 builds now, and the master push is recorded as backup-and-deploy, not cut-over | 2026-10-19 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0114 | orchkg sees the component packages, and Spec and Requirement nodes are in scope | 2026-10-19 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0115 | E-1 ruled: the component DAG gains integration → knowledge_graph, governance, tools (27 → 30 edges) | 2026-10-20 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0116 | Staged source .py files enter the T21 env-key review at commit time | 2026-10-20 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0117 | SPEC-109 rename engine moves to codetools, and orchestrata consumes the deployed CLI | 2026-10-20 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0118 | Tier-1 host-side scripts transfer to codetools in two batches; review and RTM lane merges wait for their own rulings | 2026-10-20 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0119 | dr-hannah connects only to the prod orchgraph memgraph cluster; data stranded in another memgraph moves to prod | 2026-10-20 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0120 | Test-spawned subprocesses import from the installed environment, never the source tree | 2026-10-20 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0121 | The deployed Hermes subagent keeps persistent curated memory across runs; the user profile stays off | 2026-10-20 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0122 | One coordinator per worktree at a time; the shared handoff board is the coordination channel | 2026-10-20 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0125 | The host Claude writes no orchestrata code; it perfects the briefs, checks and workflow and measures the worker models | 2026-10-22 | factory | 8c7031c9a (fix/ship-sanctioned-gate-pytest) |
no |
| ADR-0127 | The test runner stays a repo dev tool outside the integration release until codetools has an affected-set oracle | 2026-10-23 | factory | 8c7031c9a (fix/ship-sanctioned-gate-pytest) |
no |
| ADR-0128 | The tracked codebase maps are regenerated at commit, by per-file delta, through the codetools ast map verb | 2026-10-23 | factory | 8c7031c9a (fix/ship-sanctioned-gate-pytest) |
no |
| ADR-0129 | Installer tests that only read the install share one read-only install, an enforced exception to function-scoped fixtures | 2026-10-23 | factory | 8c7031c9a (fix/ship-sanctioned-gate-pytest) |
no |
| ADR-0130 | ADRs are a publish step — rulings live in the scratch notes while a thread is open and are minted together at its end | 2026-10-23 | factory | 8c7031c9a (fix/ship-sanctioned-gate-pytest) |
no |
| ADR-0131 | Deploys the classifier blocks run through approved user-level launchers that refuse unsafe states and verify or roll back | 2026-10-23 | factory | 8c7031c9a (fix/ship-sanctioned-gate-pytest) |
no |
Proposed (27)
| id | title | date | register | source ref | on master |
|---|---|---|---|---|---|
| ADR-0034 | Governed-action classification is property-derived, not name-enumerated | 2026-07-24 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0035 | Authorization is a scoped grant matched to the action instance, from two sources | 2026-07-24 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0036 | Classification facts are stamped at creation under the trusted boundary | 2026-07-24 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0041 | Ruleset engine — per-surface immutable versions, named compositions (F1) | 2026-08-29 | factory | b3ea29a31 (architecture/domain-model) |
yes |
| ADR-0042 | Wiring-gate supersession by the ruleset engine's §5 (F4) | 2026-08-29 | factory | b3ea29a31 (architecture/domain-model) |
yes |
| ADR-0043 | Rollback window N + process-cap arithmetic (F8-cap) | 2026-08-29 | factory | b3ea29a31 (architecture/domain-model) |
yes |
| ADR-0044 | Registry entries self-admit via the ratify chain (r12-decision-1) | 2026-08-29 | factory | b3ea29a31 (architecture/domain-model) |
yes |
| ADR-0045 | Per-lineage bearer token for submitter continuity (r12-decision-2, refined) | 2026-08-29 | factory | b3ea29a31 (architecture/domain-model) |
yes |
| ADR-0048 | A ratified ADR is sufficient design authority for bounded implementation | 2026-08-29 | factory | b3ea29a31 (architecture/domain-model) |
yes |
| ADR-0049 | Adversarial-review evidence is repo-committed and enriches wiki + graph | 2026-08-29 | factory | b3ea29a31 (architecture/domain-model) |
yes |
| ADR-0050 | Amend F13(D) — target semantics, not current-CLI claims; correct the payload | 2026-08-29 | factory | b3ea29a31 (architecture/domain-model) |
yes |
| ADR-0051 | F13(A) decomposition map made total — buckets for §0, §1, §10 | 2026-08-29 | factory | b3ea29a31 (architecture/domain-model) |
yes |
| ADR-0052 | F13(C) bindings — wire the five unbound gates (recommended) or amend the clause | 2026-08-29 | factory | b3ea29a31 (architecture/domain-model) |
yes |
| ADR-0060 | The RUL-032 content key covers every edge the selector routes on, not only imports | 2026-09-22 | factory | b3ea29a31 (architecture/domain-model) |
yes |
| ADR-0061 | The one ADR-body bypass also covers an empty factory body, not only a register-less node | 2026-09-22 | factory | b3ea29a31 (architecture/domain-model) |
yes |
| ADR-0062 | Production runs from a pinned-ref git checkout under /opt/orchestrata | 2026-09-23 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0071 | REQ-110-135 amended: codemod daemon lifecycle is delegated to systemd user units | 2026-10-06 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0075 | The promote's infra stage proves the ADR-0066 secrets file holds every required env key before the tree moves | 2026-10-07 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0076 | The semantic/RAG ingest leaves the prod promote; readers check freshness at runtime and trigger refresh on demand | 2026-10-07 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0078 | The deployed codemod daemon reviews with every phase; the tools venv carries the free-threaded janus-swi | 2026-10-08 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0086 | Claude sessions get a project-scoped SPEC-106 context pack at SessionStart | 2026-10-11 | factory | 030a4ff64 (feat/session-ctx-inject) |
no |
| ADR-0090 | The git sentinel fails a test for its own mutations, not for sibling-worktree activity | 2026-10-11 | factory | 3f68a11a5 (docs/adr-register-0080-0085) |
no |
| ADR-0123 | Every host service is registered in the runtime view with its purpose and architecture component, or it is retired | 2026-10-22 | factory | 8c7031c9a (fix/ship-sanctioned-gate-pytest) |
no |
| ADR-0124 | Orchestrata runs in a test container and a prod container built from one OpenMandriva image, over always-on memgraph and Redis | 2026-10-22 | factory | 8c7031c9a (fix/ship-sanctioned-gate-pytest) |
no |
| ADR-0126 | The kg is branch-aware: each synced branch is its own project, serialized from a clean commit and checked after every sync | 2026-10-22 | factory | 8c7031c9a (fix/ship-sanctioned-gate-pytest) |
no |
| ADR-0132 | One tree is edited and the deployment copy is built from it at a pinned version — which tree is edited at the cut-over | 2026-10-23 | factory | 8c7031c9a (fix/ship-sanctioned-gate-pytest) |
no |
| ADR-0133 | orchestrata-mcp mints its own short-lived gateway token from the deployed JWT secret, and an exported GATEWAY_TOKEN still wins | 2026-10-23 | factory | 8c7031c9a (fix/ship-sanctioned-gate-pytest) |
no |
Superseded (2)
| id | title | date | register | source ref | on master |
|---|---|---|---|---|---|
| ADR-0079 | The prod interlock requires a green test-env record of the commit being promoted | 2026-10-08 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
| ADR-0100 | Model review and the Prolog gate run once per slice at hand-back and once per batch, not on every commit; the deterministic gates stay per commit | 2026-10-13 | factory | 8a2cb42ad (feat/maps-via-codetools) |
yes |
Rejected (0)
None.
Other (0)
None.
Recorded on a branch, not yet on master
ADR-0086, ADR-0088, ADR-0090, ADR-0091, ADR-0092, ADR-0093, ADR-0094, ADR-0095, ADR-0104, ADR-0123, ADR-0124, ADR-0125, ADR-0126, ADR-0127, ADR-0128, ADR-0129, ADR-0130, ADR-0131, ADR-0132, ADR-0133
How to regenerate
scripts/gen-decision-pages.py # write pages and diagrams
scripts/gen-decision-pages.py --check # exit 1 if anything would change