Decisions are load-bearing, so they get their own section adjacent to the architecture prose rather than buried inside it (that choice is itself ADR 0005 — Diataxis docs with ADR meta sections). Each record states the context that forced a choice, the decision taken, and the rationale with its trade-offs. Read them when you want to know why the code is shaped the way it is — the theory section tells you how the methods work; these tell you why the package made the calls it did.
The published copies here are the canonical record. The maintainer may capture draft
decisions in the gitignored .adr/ working directory, but a decision becomes part of
jaxstro only when it is promoted here, added to this index and docs/myst.yml, and
passes pytest tests/unit/test_adr_workflow.py -q. Never commit .adr/.state or its
session logs.
Table 1:Architecture decision records
ID | Title | Status |
|---|---|---|
Thin foundation posture | accepted | |
Adopt equinox as core dependency | accepted | |
Standalone uv project with hatchling | accepted | |
Apache-2.0 license | accepted | |
Diataxis docs with ADR meta sections | accepted | |
Build own Quantity, not unxt/quax | accepted | |
CGS as default unit system | accepted | |
Reject IFT from core | accepted | |
jaxstro.params: selective inference (Equinox-only, not Zodiax) | accepted | |
Ecosystem config architecture (layered; hydra at jaxstro-lab) | accepted | |
Apache-2.0 license standardization | accepted | |
Ecosystem multi-package maintenance | accepted | |
Distribute as siblings; defer namespace consolidation | accepted | |
Hoist provenance-card infrastructure into jaxstro | accepted |
The narrative “why” — the software’s shape rather than its atomic decisions — lives next door in Architecture.