Architecture Decision Records

This directory holds the ADRs that govern LATTICE’s substrate architecture. An ADR is the authoritative record of a decision, its context, and its consequences. Layer READMEs describe what a layer is; ADRs describe why the layers are shaped, ordered, and bounded the way they are.

Convention

Index

ADR Title Status
A-01 Layer dependency order and import direction Accepted
A-12 Identity and derivation-authority model Accepted
A-13 Dataset, graph-role, and provenance model Accepted
A-14 Conformance-level framework Accepted
A-15 Realisation-strategy neutrality Accepted
A-16 Surface projection mechanism Accepted
A-17 Surface unified projection authoring model Accepted
A-18 Surface-to-MORK lowering boundary Accepted
A-19 Staged compiler architecture and backend fan-out Accepted
A-20 Projection subsystem semantics and law model Accepted
A-21 Signature-scope and conservativity composition in stacked surfaces Accepted
A-22 MORK governance and versioning with Foundation alignment Accepted
A-23 MORK compiler family completion policy Accepted
A-24 Eligibility executable semantics and backend strategy Accepted
A-25 LLM participation and deterministic production gate Accepted
A-26 Provenance chain completeness across Surface, MORK, and artefacts Accepted
A-27 Invalidation and minimal-scope regeneration policy Accepted
A-28 Parity and conformance gate for generated behaviours Accepted
A-29 Repository toolchain and environment boundary Accepted
A-30 Shared semantic platform and cross-runtime boundary Accepted
A-31 Release-stack-neutral integration contract Accepted
A-32 Surface revision lifecycle and immutable release candidates Accepted
A-33 Surface revision ledger and optimistic concurrency Accepted
A-34 Surface graph-family registry and immutable identity Accepted
A-35 Trusted Surface worker execution boundary Accepted
A-36 Surface worker idempotent delivery boundary Accepted
A-37 Surface worker durable processing and RabbitMQ acknowledgement Accepted
A-38 Surface output publication and Studio authoring boundary Accepted
A-39 Semantic release assembly and provenance ledger Accepted
A-40 OCI reference export, restore, and command adapters Accepted
A-41 Surface Projection to MORK staging boundary Accepted
A-42 MORK review snapshot and decision-learning boundary Accepted
A-43 MORK replayable queue and calibrated governance Accepted
A-44 MORK Teaching Pack generated-content boundary Accepted
A-03 Eligibility condition taxonomy Accepted
A-04 Interval containment and overlap law split Accepted
A-05 Compatibility operation vocabulary Accepted
A-06 Wildcard semantics and limits Accepted
A-07 Eligibility authoring direction and extraction contract Accepted
A-07b Minimal Instrument shape and versioning contract Accepted
A-08 Behaviour four-tier model Accepted
A-09 Behaviour selection policy Accepted
A-10 Behaviour activation policy Accepted
A-11 Effect payload and target binding contract Accepted
A-C1 Applied-layer theorem restatement policy Accepted
A-C2 Clean-room authoring procedure for substrate content Accepted
A-78 Persistence profile substrate and configurable aggregate boundaries Accepted
A-79 Persistence compiler toolchain and template-based SPARQL generation Accepted
A-80 Housekeeping component boundary Accepted
A-48 Transaction boundary catalogue (replaces CAP framing) Proposed
A-50 Role-profiled deployment Proposed
A-51 IRI and identity policy Superseded by A-82
A-54 Dataset topology and named-graph layout Proposed
A-57 Change feed via write-side emission and reconciliation Proposed
A-59 PartitionedWorkQueue abstraction Proposed
A-62 SPC namespace harmonisation and integration deferral Proposed
A-63 Project vs environment scoping Proposed
A-65 Provenance model (named-graph-per-batch) Proposed
A-66 Principal model extension Proposed
A-67 Bi-temporal model Proposed
A-68 PII and erasure Proposed
A-69 Pack trust model and safe SPARQL subset Proposed
A-71 Platform licence (MPL-2.0) and SPI seam Proposed
A-74 Graph-primary realm model Proposed
A-75 Three-tier store SPI (Core/Extended/Native) Proposed
A-81 Control Plane HTTP runtime Proposed
A-82 Framework-neutral identity pattern selection Proposed
A-84 Standalone minting libraries Proposed
A-85 Vocabulary scoped and temporal binding resolution Accepted
A-86 Semantic versioning for ontology documents Accepted
A-87 Eligibility concept inclusion and exclusion Accepted
A-88 Ontology import resolution for consumers Accepted
A-89 Eligibility IR for concept conditions and profile aggregation Accepted
A-90 Design-time OWL class backend for Eligibility Accepted
A-91 Eligibility candidate evidence binding Accepted
A-83 Test-only reasoning engine isolation Accepted
A-92 Foundation derived-artefact contract and PROV-O alignment Accepted
A-93 Quantification derived rate spaces Accepted
A-94 Quantification calendar binding Accepted
A-95 Quantification alternative bounds Accepted
A-96 Instrument provision attachment Accepted
A-97 MORK order relations in OWL 2 DL Accepted
A-98 Applied layout and insurance modules (with addendum) Accepted
A-99 Reference vocabularies and peril structure Accepted
A-100 Hierarchical match over schemes without a hierarchy Accepted
A-102 Liability direction from party roles Accepted
A-103 Eligibility set readings and negation Accepted

ADR numbering deliberately skips A-02. Eligibility (A-03–A-07 and A-07b) and Behaviour (A-08–A-11) are now assigned to the decisions authored in Gates 2 and 3. A-02 remains reserved for the document-hierarchy question folded into ../../GOVERNANCE.md instead of a standalone ADR. A-17–A-28 are the Surface-MORK unified projection wave, numbered continuously from A-16 per the ADR bundle outline; accepted following maintainer sign-off on the delivery plan Phase 0 architecture lock. A-45 through A-76 were reserved by forward reference from solution-design-specification.md and Architecture Review.md; A-48, A-50, A-51, A-54, A-57, A-59, A-62, A-63, A-65 through A-69, A-71, and A-74/A-75 are now filed as Proposed, drafted autonomously against that reserved block during Phase 0’s P0.1 decision slices and pending human ratification (see phase-0-status.md). A-76 (Maven vs Gradle) remains reserved, deferred to build-skeleton slice P0.2.1. A-78 through A-80 are assigned outside that reserved block, to avoid pre-empting a number a referring document already names for a different topic. The epic’s own forward reference to “ADR-A44 amended” collides with the existing, unrelated, accepted A-44 (MORK Teaching Pack); that content is filed instead as new ADR-A81, the next free number after A-80. A-82 is framework-neutral identity-pattern selection. A-83 is the test-only reasoning-engine isolation ADR proposed by the eligibility-compiler plan (renumbered from A-81, which that plan had claimed in collision), drafted on 2026-09-25 for the applied-ontology-readiness unit’s OWL backend. A-84 is the standalone identity-minting libraries, proposed by the identity-minting unit. A-85 is Vocabulary scoped and temporal binding resolution, accepted 2026-09-25 with the vocabulary-temporal-binding unit’s closure; follow-on consumer hardening continues under temporal-binding-consumer-hardening. A-86 is semantic versioning for ontology documents, from the ontology-semantic-versioning unit. A-87 through A-92 were proposed by the applied-ontology-readiness unit and accepted on 2026-09-25. A-87 records the concept inclusion and exclusion change made to Eligibility in 9a12da4. A-93 to A-96 are that unit’s Phase C decisions, accepted on 2026-09-25. A-97 makes MORK’s order relations OWL 2 DL, accepted on 2026-09-25. A-98 to A-100 and A-102 are the applied-insurance-reference epic’s Phase 0 decisions. A-98, A-99 and A-102 were accepted on 2026-09-26. A-100 was rewritten the same day, first to move it out of the applied layer, then to reduce it to Eligibility and its compilers, and A-98 gained an addendum removing the applied module it had named. A-103, set readings for evidence bindings and condition negation, was accepted alongside it for the epic’s Phase 3. A-101 is reserved for that epic’s term parameters decision, drafted when its deferred contract phase starts. This index is updated as each is added.