srmech — Architecture Decision Records (ADR)¶
This directory holds the Architecture Decision Records for srmech (Stored-
Relationship Mechanism). Format follows the srmech-family ADR-NNNN convention:
one file per decision, small and scoped, never monolithic. Each ADR captures
one decision as Status / Context / Decision / Consequences; the discipline
ADRs forward-link the project-memory topic files they consolidate — the
breadcrumb-web discipline, so a decision survives even when the notes are not in
context.
Index¶
| ID | Title | Status | Date |
|---|---|---|---|
| ADR-0001 | The srmech profile pattern — domain-specific extension as configuration | ⏳ Draft | 2026-05-14 |
| ADR-0002 | Catalog-as-computation — primitive-class closure, plugins as optimization backends | ⏳ Draft | 2026-05-16 |
| ADR-0003 | C-host-standalone — never assume a Python environment (C↔Python parity) | ✅ Accepted | 2026-07-16 |
| ADR-0004 | Config-driven, domain-agnostic surface — classes, chains, catalogs, and names in TOML | ✅ Accepted | 2026-07-16 |
| ADR-0005 | No external mathematics library — srmech is its own math library | ✅ Accepted | 2026-07-17 |
| ADR-0006 | Carrier discipline — exactness, sign, format, and bounded memory | ✅ Accepted | 2026-07-17 |
| ADR-0007 | Release engineering — version SSOT, rc-first, the registry ripple, HAL/PAL, JPL | ✅ Accepted | 2026-07-17 |
| ADR-0008 | Operator-chain DSL — Phase 1 schema specification | 🔄 Proposed | 2026-05-16 |
| ADR-0009 | Multi-implementation parity — the capability is the invariant, each implementation is a coherency projection (amends 0003) | ✅ Accepted | 2026-07-19 |
Status legend: ✅ Accepted · 🔄 Proposed · ⏳ Draft · 🗑 Superseded.
Conventions¶
- Filename:
NNNN-kebab-title.md; the number is permanent (append-only). - Status lifecycle: ⏳ Draft / 🔄 Proposed → ✅ Accepted → 🗑 Superseded
(
Superseded-by: NNNN). An "Accepted — standing policy" ADR governs every rc, op, and review. - Amendment: an ADR may amend another without superseding it (
Amends: NNNNin the header; the amended ADR carries anAmended-bynote). Both stay Accepted and in force; the amending ADR states in its body exactly which clause it revises and why. ADR-0009 amends ADR-0003 §2.6 — the first use of this relation. - Sources footer: the discipline ADRs (0005–0007) link the project-memory topic files they consolidate, preserving the trail.
- Companion artifacts share an ADR's number with a distinct extension — they are
NOT separate ADRs.
0001-profile-pattern.schema.jsonis the machine-readablesrmech_profile.tomlv1 schema that ADR-0001 defines (not a second ADR-0001). - Numbering note: the only genuine number collision (two different ADRs both
named
0002) was resolved 2026-07-17 by renumbering the operator-chain schema to0008; older CHANGELOG / design-note references to0002-phase-1-operator-chain-schemaresolve to0008.
Scope note¶
These are algebra / eigenbasis / cyclic-group / spectral side decisions (the framework-research + library-engineering discipline). They do not cover CAD / fabrication / mechanical geometry — out of scope per the CAD-grade ban carried from the parent monorepo.
Related¶
docs/srmech/c/JPL_AUDIT.md— the Power-of-Ten audit referenced by ADR-0007.docs/srmech/notes/— design notes + spikes behind several ADRs (e.g. the Phase 1 operator-chain DSL design note behind ADR-0008).