# ADR-0225 — ADR Corpus Hygiene, Numbering Policy, and Cross-Reference Governance

**Status:** Accepted (2026-06-30)

**Context:** ADR-0201 is already occupied by `ADR-0201-proposition-canonicalizer.md`; therefore this governance decision uses the next available top-level ADR number after ADR-0224.

## Decision

CORE will treat the ADR corpus as a governed graph, not a loose directory of historical notes.

Every future ADR that touches runtime state, packs, teaching, memory, replay, or invariants must explicitly cite these standing anchors:

1. **Safety boundaries:** ADR-0027, ADR-0028, ADR-0029, and the safety-pack / identity-pack trust boundary.
2. **Versor closure:** `versor_condition(F) < 1e-6`, equivalently `||F * reverse(F) - 1||_F < 1e-6` for runtime field states.
3. **Reconstruction-over-storage:** store enough structured state to reconstruct the needed evidence; do not duplicate opaque state as a substitute for provenance.
4. **Replay-equivalence gates:** reviewed mutation and serving changes must name the deterministic replay or byte-equivalence gate that proves no hidden drift.

## Numbering Discipline

- Prefer sequential top-level numbering.
- Use sub-numbering only for clearly phased work inside one decision family, for example `ADR-0073a`–`ADR-0073d` or `ADR-0119.1`–`ADR-0119.8`.
- Gaps are permitted only when accompanied by explicit superseding, reservation, or reconciliation notes.
- Duplicate top-level numbers are forbidden except where already historical; future remediation must add reconciliation notes rather than silently renaming historical files.
- Governance ADRs must not occupy an already-used number. This ADR uses `ADR-0225` because `ADR-0201` is already live.

## Mandatory Cross-Reference Rule

Every new or amended ADR in the scoped areas must include a short `Governance citations` or equivalent section naming:

- safety / identity boundary impact;
- versor closure impact;
- reconstruction-over-storage impact;
- replay-equivalence / deterministic validation impact;
- mutation standing: no mutation, SPECULATIVE/proposal-only, reviewed durable mutation, or proof-carrying promotion.

If an item is not applicable, the ADR must say why. Absence is not acceptable.

## Index Maintenance

`docs/adr/README.md` is the living reference matrix for ADR navigation. Every new ADR must update it in the same change set with:

- ADR number, title, and status;
- cluster / chain membership when applicable;
- supersedes / superseded-by note when applicable;
- governance anchors when the ADR falls under this policy.

## Consequences and Affected Corpus

This policy affects all future ADRs and all amendments to existing ADRs.

This remediation batch specifically updates or audits:

- ADRs: `ADR-0001`, `ADR-0027`, `ADR-0028`, `ADR-0029`, `ADR-0055`, `ADR-0056`, `ADR-0057`, `ADR-0200` through `ADR-0224`, and this `ADR-0225`.
- Index / map artifacts: `docs/adr/README.md`, `docs/analysis/adr-corpus-cohesion-dependency-map-2026-06-30.md`.
- Safety / identity code surfaces: `packs/safety/loader.py`, `packs/safety/check.py`, `core/proposal_review/safety.py`, `chat/pack_resolver.py`.
- Foundational / versor code surfaces: `vocab/manifold.py`, `core_ingest/manifold.py`.
- Teaching / memory / epistemic code surfaces: `teaching/review.py`, `teaching/replay.py`, `teaching/proposals.py`, `teaching/promotion.py`, `teaching/supersede.py`, `teaching/contemplation.py`, `teaching/epistemic.py`, `teaching/discovery.py`.
- Additional learning / review surfaces: `core/proposal_review/`, `core/learning_arena/`.
- Test surfaces identified during mapping: `tests/test_safety_pack.py`, `tests/test_ethics_refusal_opt_in.py`, `tests/test_epistemic_phase3_state_tagging.py`, `tests/test_identity_continuity_proof.py`, `tests/test_vocab_manifold_invariants.py`, `tests/test_engine_loop_proof.py`, `tests/test_determinism_proofs.py`, `tests/test_learning_loop_demo.py`, `tests/test_teaching_loop_bench.py`, `tests/test_phase_d_replay_evidence.py`, `tests/test_discovery_candidates.py`, `tests/test_mutation_proposal_type.py`, `tests/test_proof_carrying_promotion_demo.py`, and `core-rs/tests/test_versor.rs`.

## Validation

- The Phase 1 dependency map is `docs/analysis/adr-corpus-cohesion-dependency-map-2026-06-30.md`.
- Baseline on current `main` is not green: `make test-fast` reports `54 failed, 10884 passed, 23 skipped, 912 deselected`.
- This ADR is documentation-governance only. It adds no field operator, no recall path, no pack mutation, and no runtime serving path.

## Governance Citations

- Safety boundaries: ADR-0027, ADR-0028, ADR-0029; no safety behavior is changed here.
- Versor closure: `versor_condition(F) < 1e-6`; no field state construction or propagation is changed here.
- Reconstruction-over-storage: this ADR requires index maintenance and traceable map artifacts instead of inferred claims.
- Replay-equivalence: future scoped ADRs must name their deterministic validation gate; this ADR records the current red baseline rather than claiming green.
- Mutation standing: documentation-only; no pack, teaching corpus, vault, or runtime mutation path is added.
