Skip to content

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: NNNN in the header; the amended ADR carries an Amended-by note). 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.json is the machine-readable srmech_profile.toml v1 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 to 0008; older CHANGELOG / design-note references to 0002-phase-1-operator-chain-schema resolve to 0008.

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.

  • 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).