# Architecture Decision Records
**How to work against this pack** (engineering/build-with-quality agents start here):
The ADR pack for this crate family is **its living governing document in
`docs/` plus the ledger records below that amend it**. The living doc is
normative — its *Invariants* section is the compliance surface and its *Change
process* section says how to amend it:
| Auth (NIP-98), OIDC/DPoP, access control, provenance, multitenancy | [`../BASELINE-solid-pod-rs.md`](../BASELINE-solid-pod-rs.md) |
**Lookup order:** governing doc → its `file:line` citations into code → the
ledger records below → `docs/archive/adr/` **only for rationale and history —
never as authority** (the archive is the pre-2026-08-31 ADR-057…061 corpus,
frozen precisely because it drifted from the code; see
[`../archive/adr/README.md`](../archive/adr/README.md) for the legacy-record
redirect table).
**Making a decision:** copy [`TEMPLATE.md`](TEMPLATE.md) to `ADR-NNNN-slug.md`
(next free number), fill the three-axis status honestly, update the baseline
**in the same change**, and regenerate this index
(`node scripts/adr-index-gen.js crates/solid-pod-rs/docs/adr` — it fails CI on
invalid frontmatter).
_10 record(s). Regenerate with_ `node scripts/adr-index-gen.js crates/solid-pod-rs/docs/adr`.
| [ADR-2001](ADR-2001-corpus-consolidation.md) | Consolidate the ADR corpus into a code-grounded baseline | 2026-08-31 | accepted | complete | live | — | — | solid-pod-rs maintainers | solid-pod-rs |
| [ADR-2002](ADR-2002-wac-access-model.md) | Ground access control on Web Access Control, not ACP | 2026-08-31 | accepted | complete | live | — | — | jjohare | solid-pod-rs |
| [ADR-2003](ADR-2003-solid-oidc-01-defer-lws10.md) | Hold the OIDC wire at Solid-OIDC 0.1 and defer the LWS10 delta | 2026-08-31 | accepted | complete | live | — | — | jjohare | solid-pod-rs |
| [ADR-2004](ADR-2004-provenance-off-by-default.md) | Keep git-mark provenance opt-in behind the git feature | 2026-08-31 | accepted | complete | live | — | — | jjohare | solid-pod-rs |
| [ADR-2005](ADR-2005-fail-closed-untrusted-parsing.md) | Parse untrusted access-control input fail-closed and bounded | 2026-08-31 | accepted | complete | live | — | — | jjohare | solid-pod-rs |
| [ADR-2006](ADR-2006-nip98-replaystore-seam.md) | Single-source NIP-98 and expose a ReplayStore seam, not a cross-tier store | 2026-08-31 | accepted | complete | staged | — | — | jjohare | solid-pod-rs |
| [ADR-2007](ADR-2007-mempool-single-url-no-fallback.md) | Anchor against one configured explorer URL, public default, no silent fallback | 2026-08-31 | accepted | complete | live | — | — | jjohare | solid-pod-rs |
| [ADR-2008](ADR-2008-port-bitcoin-tx-to-rust-bitcoin-and-make-the-web-ledger-a-chain-view.md) | Port bitcoin_tx.rs and mrc20.rs to rust-bitcoin, make WebLedger a derived view over the sidestr chain, remove credit/debit from the public API and delete the TXO stand-in deposit | 2026-09-21 | proposed | partial | staged | — | — | jjohare | solid-pod-rs |
| [ADR-2009](ADR-2009-forge-plugins-comparator-and-default-off-mirror.md) | Track the JSS plugins forge as a bounded second parity comparator, read repo-held git-mark trails, and ship the kind-30618 mirror default-off | 2026-10-19 | accepted | partial | inactive | — | — | jjohare | solid-pod-rs |
| [ADR-2010](ADR-2010-forge-and-mirror-are-on-in-shipped-builds.md) | The forge and the kind-30618 mirror are on in shipped builds; anchoring, open edit and the mainnet stay opt-in | 2026-10-20 | accepted | partial | inactive | — | — | jjohare | solid-pod-rs |