Add ADR corpus hygiene governance

This commit is contained in:
Shay 2026-06-30 12:42:09 -07:00
parent 63464144c5
commit cffcc11bc3
26 changed files with 604 additions and 1 deletions

View file

@ -0,0 +1,283 @@
# ADR Corpus Cohesion Dependency Map — 2026-06-30
Status: Phase 1 dependency map for ADR cohesion remediation.
Ground truth:
- Local repository root: `/Users/kaizenpro/Projects/core`
- Local branch / GitHub `main` SHA: `63464144c53f2499b1ea9e5bf3799e80c57a0b53`
- GitHub tree verification used `gh api repos/AssetOverflow/core/contents...` for `/`, `/core`, `/core_ingest`, `/core-rs`, and `/docs/decisions`.
- ADR-0200 exists as `docs/decisions/ADR-0200-expert-claim-reconciliation.md`.
- Baseline lane `make test-fast` is red on current `main`: `54 failed, 10884 passed, 23 skipped, 912 deselected`.
## Map
| ADR Cluster | Primary Surfaces | Additional Surfaces | Tests / Evidence Surfaces | Influence |
|---|---|---|---|---|
| ADR-00270029 Safety / Identity | `packs/safety/loader.py`, `packs/safety/check.py` | `core/proposal_review/safety.py`, `chat/pack_resolver.py` | `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` | Loads immutable safety boundaries, observes runtime safety verdicts, prevents proposal sink serving consumption, keeps pack surface resolution deterministic and non-mutating. |
| ADR-0001 Foundational / Versor | `vocab/manifold.py` | `core_ingest/manifold.py`, `core_ingest/pipeline.py`, `language_packs/en_seeder.py` | `tests/test_vocab_manifold_invariants.py`, `tests/test_engine_loop_proof.py`, `tests/test_determinism_proofs.py`, `core-rs/tests/test_versor.rs` | Enforces unit-versor insertion/update, exact `cga_inner` nearest lookup, and reconstruction-over-storage provenance indexing. |
| ADR-00550057 Teaching / Memory / Epistemic | `teaching/review.py`, `teaching/replay.py`, `teaching/proposals.py`, `teaching/promotion.py`, `teaching/supersede.py`, `teaching/contemplation.py`, `teaching/epistemic.py`, `teaching/discovery.py` | `core/proposal_review/*`, `core/learning_arena/*`, `vault/store.py`, `chat/teaching_grounding.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` | Keeps learning proposal-only until review, gates corpus append through replay-equivalence, defaults epistemic state to SPECULATIVE, and keeps practice/reporting separated from serving mutation. |
## Caller / Callee Relationships
```mermaid
flowchart TD
A27[ADR-0027 Identity packs] --> RT[chat/runtime.py]
A29[ADR-0029 Safety packs] --> SL[packs/safety/loader.py]
SL --> SP[SafetyPack]
SP --> SC[packs/safety/check.py SafetyCheck]
SC --> TV[Turn verdict telemetry]
PRS[core/proposal_review/safety.py dry_check] --> PSS[teaching/proposals/comprehension_failures]
PRS --> NoServe[serving path sink non-consumption check]
A1[ADR-0001 VocabManifold] --> VM[vocab/manifold.py]
VM --> Add[add/update assert unit versor]
VM --> Near[nearest via exact cga_inner]
CI[core_ingest/manifold.py SegmentManifold] --> Recon[semantic_key -> SourceSpan reconstruction]
A55[ADR-0055 discovery promotion] --> Disc[teaching/discovery.py]
Disc --> Cont[teaching/contemplation.py]
Cont --> Prop[teaching/proposals.py]
Prop --> Replay[teaching/replay.py]
Replay --> Accept[accept_proposal]
Accept --> Append[append_chain_to_corpus]
Sup[teaching/supersede.py] --> Append
Arena[core/learning_arena/engine.py] --> Ledger[core/reliability_gate ClassTally]
```
## Paste-First Excerpts
### Safety pack loader
`packs/safety/loader.py` defines the fail-closed loader and immutable boundary payload:
```python
class SafetyPackError(RuntimeError):
"""Raised when the safety pack is missing, malformed, or unverified.
Inherits from ``RuntimeError`` (not ``ValueError`` like
``IdentityPackError``) because a missing safety pack is a fail-closed
runtime condition, not a recoverable input-validation error.
"""
```
```python
def load_safety_pack(
pack_id: str = DEFAULT_SAFETY_PACK,
*,
search_paths: Iterable[Path | str] | None = None,
require_ratified: bool | None = None,
) -> SafetyPack:
"""Load the safety pack. Fails closed on any error.
```
### Safety check predicates
`packs/safety/check.py` wires `preserve_versor_closure`, no fabricated sources, no silent correction, no identity override, and no hot-path repair:
```python
_DEFAULT_PREDICATES: dict[str, SafetyPredicate] = {
"no_fabricated_source": _predicate_no_fabricated_source,
"no_hot_path_repair": _predicate_no_hot_path_repair,
"no_identity_override": _predicate_no_identity_override,
"no_silent_correction": _predicate_no_silent_correction,
"preserve_versor_closure": _predicate_versor_closure,
}
```
### Proposal sink dry-check
`core/proposal_review/safety.py` verifies that proposal artifacts are inert and unconsumed by serving paths:
```python
def dry_check(
proposals: list[PendingProposal],
malformed: list[MalformedArtifact],
*,
root: Path | None = None,
repo_root: Path | None = None,
) -> SafetyVerdict:
"""Verify every artifact is inert and the sink is serving-unconsumed. Returns a SafetyVerdict."""
```
### Pack resolver
`chat/pack_resolver.py` is deterministic, immutable, and reconstruction-over-storage aligned:
```python
def resolve_lemma(
lemma: str,
pack_ids: tuple[str, ...] = DEFAULT_RESOLVABLE_PACK_IDS,
) -> tuple[str, tuple[str, ...]] | None:
"""Return ``(pack_id, semantic_domains)`` for the first pack in
*pack_ids* whose lexicon contains *lemma*, else ``None``.
```
### Vocab manifold
`vocab/manifold.py` enforces the full unit-versor residual on insertion and replacement:
```python
def _assert_manifold_versor(word: str, versor: np.ndarray, *, replacement: bool = False) -> None:
residual, scalar, residue_norm = _versor_diagnostics(versor)
if residual > _MANIFOLD_RESIDUAL_TOLERANCE:
noun = "replacement versor" if replacement else "versor"
```
`nearest()` stays exact:
```python
def nearest(
self,
F: np.ndarray,
exclude_idx: int = -1,
exclude_indices: set[int] | frozenset[int] | None = None,
candidate_indices: np.ndarray | list[int] | tuple[int, ...] | None = None,
) -> tuple[str, int]:
"""
Find the word whose versor is closest to F by CGA inner product.
```
### Ingest reconstruction manifold
`core_ingest/manifold.py` stores provenance spans, not whole documents:
```python
class SegmentManifold:
"""
Append-only index: semantic_key -> list[ManifoldEntry].
```
```python
def spans_for(self, semantic_key: str) -> list[SourceSpan]:
"""
Return all SourceSpan records for a given semantic_key,
flattened across all ManifoldEntry records.
```
### Epistemic status
`teaching/epistemic.py` defaults unknown status to SPECULATIVE:
```python
def parse_status(value: str | None) -> EpistemicStatus:
"""Parse a serialised status string, defaulting to SPECULATIVE.
```
### Teaching review
`teaching/review.py` rejects identity override and keeps accepted examples SPECULATIVE by default:
```python
def review_correction(
candidate: CorrectionCandidate,
*,
identity_score: IdentityScore | None = None,
identity_manifold: IdentityManifold | None = None,
epistemic_status: EpistemicStatus = EpistemicStatus.SPECULATIVE,
) -> ReviewedTeachingExample:
```
### Proposal / replay / append path
`teaching/proposals.py` identifies `TeachingChainProposal` as the corpus extension path:
```python
"""ADR-0057 Phase C2 — TeachingChainProposal + append-only proposal log.
A ``TeachingChainProposal`` is the **only** path by which the
system extends its active teaching corpus.
```
The only write primitive is explicit and append-only:
```python
def append_chain_to_corpus(
chain: dict[str, Any],
*,
corpus_path: Path,
provenance: Provenance,
chain_id: str | None = None,
superseded_by: str | None = None,
) -> str:
```
`teaching/replay.py` verifies replay-equivalence without mutating the active corpus:
```python
def run_replay_equivalence(chain: dict[str, Any]) -> ReplayEvidence:
"""Run the gate. Active corpus bytes byte-identical pre/post.
```
### Discovery and contemplation
`teaching/discovery.py` emits proposal candidates only when the turn is boundary-clean and ungrounded:
```python
def extract_discovery_candidates(
turn_event: Any,
intent_tag: IntentTag | None,
intent_subject_lemma: str | None,
*,
grounding_source: str | None = None,
) -> tuple[DiscoveryCandidate, ...]:
```
`teaching/contemplation.py` enriches without mutation:
```python
def contemplate(
candidate: DiscoveryCandidate,
*,
max_depth: int = _DEFAULT_MAX_DEPTH,
vault_probe: _VaultProbe | None = None,
) -> DiscoveryCandidate:
"""Run the contemplation loop on a single candidate.
Returns an *enriched* candidate (same id, populated C1 fields).
Never mutates the corpus, the pack, or the input candidate
```
### Supersession and promotion
`teaching/supersede.py` composes around `append_chain_to_corpus`:
```python
"""ADR-0057 follow-up — operator-driven supersession of an active corpus chain.
Supersession is the **second** mutation surface on the reviewed
teaching corpus (alongside ``teaching.proposals.accept_proposal``).
```
`teaching/promotion.py` creates operator-visible review queues without synthesis:
```python
def promote_gaps(
gaps: Iterable[Gap],
*,
threshold: int = 3,
include_tainted: bool = False,
) -> tuple[GapPromotion, ...]:
```
### Learning arena
`core/learning_arena/engine.py` runs sealed practice and mutates nothing:
```python
def run_practice(
problems: Sequence[DomainProblem],
solver: DomainSolver,
tether: GoldTether,
*,
diagnose: Callable[[str], str] = _default_diagnose,
tier2_verifier: Tier2Verifier | None = None,
) -> PracticeReport:
```
## Primary vs. Additional Surfaces
- Primary surfaces own enforcement or construction boundaries: `packs/safety/loader.py`, `packs/safety/check.py`, `vocab/manifold.py`, and `teaching/*`.
- Additional surfaces observe, route, or report without becoming alternate authority: `core/proposal_review/*`, `chat/pack_resolver.py`, `core_ingest/manifold.py`, and `core/learning_arena/*`.
- No mapped surface authorizes approximate recall, stochastic fallback, hidden normalization, or unreviewed durable mutation.

View file

@ -130,3 +130,13 @@ STATE reconcile to the truth.**
- **Avoided hidden normalization / stochastic / approximate / unreviewed mutation:**
Yes — documentation + one deterministic regeneration; no engine change.
- **Trust boundary:** read-only inputs; writes are review-gated on a branch.
## Governance Cross-Reference (ADR-0225)
This late-corpus ADR is governed by [ADR-0225](./ADR-0225-adr-corpus-hygiene.md):
- Safety boundaries: changes must preserve ADR-0027/0028/0029 identity and safety-pack boundaries; no identity, safety, or policy mutation is implied unless explicitly reviewed.
- Versor closure: runtime field paths must preserve `versor_condition(F) < 1e-6`; this ADR does not authorize hidden normalization or hot-path drift repair.
- Reconstruction-over-storage: evidence must remain reconstructive and content-addressed rather than duplicating opaque state.
- Replay-equivalence: serving, teaching, promotion, or checkpoint changes require a named deterministic replay / byte-equivalence gate.
- Mutation standing: any durable corpus, pack, policy, or epistemic-status mutation remains reviewed, proposal-only until accepted, or proof-carrying as applicable.

View file

@ -124,3 +124,13 @@ canonicalizer fails equivalence. The suite is non-vacuous by construction.
hash-based node ids and reordering heuristics; CUDD is a C build/footprint cost;
and the canonical-string serialization would still need to be hand-controlled
for determinism, so the library does not save the load-bearing work.
## Governance Cross-Reference (ADR-0225)
This late-corpus ADR is governed by [ADR-0225](./ADR-0225-adr-corpus-hygiene.md):
- Safety boundaries: changes must preserve ADR-0027/0028/0029 identity and safety-pack boundaries; no identity, safety, or policy mutation is implied unless explicitly reviewed.
- Versor closure: runtime field paths must preserve `versor_condition(F) < 1e-6`; this ADR does not authorize hidden normalization or hot-path drift repair.
- Reconstruction-over-storage: evidence must remain reconstructive and content-addressed rather than duplicating opaque state.
- Replay-equivalence: serving, teaching, promotion, or checkpoint changes require a named deterministic replay / byte-equivalence gate.
- Mutation standing: any durable corpus, pack, policy, or epistemic-status mutation remains reviewed, proposal-only until accepted, or proof-carrying as applicable.

View file

@ -110,3 +110,13 @@ assumed validated.
Phase-1 canonicalizer hardening only. Does **not** build `modus_ponens`,
binding-graph wiring, or any predicate/FOL support.
## Governance Cross-Reference (ADR-0225)
This late-corpus ADR is governed by [ADR-0225](./ADR-0225-adr-corpus-hygiene.md):
- Safety boundaries: changes must preserve ADR-0027/0028/0029 identity and safety-pack boundaries; no identity, safety, or policy mutation is implied unless explicitly reviewed.
- Versor closure: runtime field paths must preserve `versor_condition(F) < 1e-6`; this ADR does not authorize hidden normalization or hot-path drift repair.
- Reconstruction-over-storage: evidence must remain reconstructive and content-addressed rather than duplicating opaque state.
- Replay-equivalence: serving, teaching, promotion, or checkpoint changes require a named deterministic replay / byte-equivalence gate.
- Mutation standing: any durable corpus, pack, policy, or epistemic-status mutation remains reviewed, proposal-only until accepted, or proof-carrying as applicable.

View file

@ -211,3 +211,13 @@ canonical form. This document is authoritative for the atom layer and the honest
boundary. Any change to the formula grammar updates §1 of this doc in the **same
PR** as the code change. The proof corpus conforms to this doc; it does not extend
the grammar or the atom convention on its own.
## Governance Cross-Reference (ADR-0225)
This late-corpus ADR is governed by [ADR-0225](./ADR-0225-adr-corpus-hygiene.md):
- Safety boundaries: changes must preserve ADR-0027/0028/0029 identity and safety-pack boundaries; no identity, safety, or policy mutation is implied unless explicitly reviewed.
- Versor closure: runtime field paths must preserve `versor_condition(F) < 1e-6`; this ADR does not authorize hidden normalization or hot-path drift repair.
- Reconstruction-over-storage: evidence must remain reconstructive and content-addressed rather than duplicating opaque state.
- Replay-equivalence: serving, teaching, promotion, or checkpoint changes require a named deterministic replay / byte-equivalence gate.
- Mutation standing: any durable corpus, pack, policy, or epistemic-status mutation remains reviewed, proposal-only until accepted, or proof-carrying as applicable.

View file

@ -105,3 +105,13 @@ named here so the boundary travels with the work, not just with the rule ADRs.
real proof path (ADR-0204).
- **2.3**`modus_ponens` + the disagreement rule (ADR-0205).
- **2.4** — atom→`EpistemicNode` carrier grounding (ADR-0206).
## Governance Cross-Reference (ADR-0225)
This late-corpus ADR is governed by [ADR-0225](./ADR-0225-adr-corpus-hygiene.md):
- Safety boundaries: changes must preserve ADR-0027/0028/0029 identity and safety-pack boundaries; no identity, safety, or policy mutation is implied unless explicitly reviewed.
- Versor closure: runtime field paths must preserve `versor_condition(F) < 1e-6`; this ADR does not authorize hidden normalization or hot-path drift repair.
- Reconstruction-over-storage: evidence must remain reconstructive and content-addressed rather than duplicating opaque state.
- Replay-equivalence: serving, teaching, promotion, or checkpoint changes require a named deterministic replay / byte-equivalence gate.
- Mutation standing: any durable corpus, pack, policy, or epistemic-status mutation remains reviewed, proposal-only until accepted, or proof-carrying as applicable.

View file

@ -115,3 +115,13 @@ admission).
bypass unit-resolution per §named constraint) + the disagreement/uniqueness rule
(the wrong=0 mechanism) — ADR-0205.
- **2.4** — atom→ADR-0144 `EpistemicNode` grounding — ADR-0206.
## Governance Cross-Reference (ADR-0225)
This late-corpus ADR is governed by [ADR-0225](./ADR-0225-adr-corpus-hygiene.md):
- Safety boundaries: changes must preserve ADR-0027/0028/0029 identity and safety-pack boundaries; no identity, safety, or policy mutation is implied unless explicitly reviewed.
- Versor closure: runtime field paths must preserve `versor_condition(F) < 1e-6`; this ADR does not authorize hidden normalization or hot-path drift repair.
- Reconstruction-over-storage: evidence must remain reconstructive and content-addressed rather than duplicating opaque state.
- Replay-equivalence: serving, teaching, promotion, or checkpoint changes require a named deterministic replay / byte-equivalence gate.
- Mutation standing: any durable corpus, pack, policy, or epistemic-status mutation remains reviewed, proposal-only until accepted, or proof-carrying as applicable.

View file

@ -114,3 +114,13 @@ strategies (a stronger, currently-false claim). This must never be read as
over declared atoms," never "reasons over input."
- Multi-step proof composition and a proof *search* (the disagreement rule here is
over a given premise set, single-step) — later, separately scoped.
## Governance Cross-Reference (ADR-0225)
This late-corpus ADR is governed by [ADR-0225](./ADR-0225-adr-corpus-hygiene.md):
- Safety boundaries: changes must preserve ADR-0027/0028/0029 identity and safety-pack boundaries; no identity, safety, or policy mutation is implied unless explicitly reviewed.
- Versor closure: runtime field paths must preserve `versor_condition(F) < 1e-6`; this ADR does not authorize hidden normalization or hot-path drift repair.
- Reconstruction-over-storage: evidence must remain reconstructive and content-addressed rather than duplicating opaque state.
- Replay-equivalence: serving, teaching, promotion, or checkpoint changes require a named deterministic replay / byte-equivalence gate.
- Mutation standing: any durable corpus, pack, policy, or epistemic-status mutation remains reviewed, proposal-only until accepted, or proof-carrying as applicable.

View file

@ -190,3 +190,13 @@ without scoping it fails the build.
identity, **live-wiring proof (cognition path)**, taxonomy partition.
- Full-surface suite green (doctrine: not smoke).
- `scripts/verify_lane_shas.py` green; `3/47/0` preserved.
## Governance Cross-Reference (ADR-0225)
This late-corpus ADR is governed by [ADR-0225](./ADR-0225-adr-corpus-hygiene.md):
- Safety boundaries: changes must preserve ADR-0027/0028/0029 identity and safety-pack boundaries; no identity, safety, or policy mutation is implied unless explicitly reviewed.
- Versor closure: runtime field paths must preserve `versor_condition(F) < 1e-6`; this ADR does not authorize hidden normalization or hot-path drift repair.
- Reconstruction-over-storage: evidence must remain reconstructive and content-addressed rather than duplicating opaque state.
- Replay-equivalence: serving, teaching, promotion, or checkpoint changes require a named deterministic replay / byte-equivalence gate.
- Mutation standing: any durable corpus, pack, policy, or epistemic-status mutation remains reviewed, proposal-only until accepted, or proof-carrying as applicable.

View file

@ -219,3 +219,13 @@ finish-to-instrument). This ADR removes all three at once — **ratify** (§3),
- **Evidence:** [composition-capability-scope](../analysis/composition-capability-scope.md),
[extraction-richness-audit-2026-06-03](../analysis/extraction-richness-audit-2026-06-03.md).
- **Thesis:** [[thesis-decoding-not-generating]].
## Governance Cross-Reference (ADR-0225)
This late-corpus ADR is governed by [ADR-0225](./ADR-0225-adr-corpus-hygiene.md):
- Safety boundaries: changes must preserve ADR-0027/0028/0029 identity and safety-pack boundaries; no identity, safety, or policy mutation is implied unless explicitly reviewed.
- Versor closure: runtime field paths must preserve `versor_condition(F) < 1e-6`; this ADR does not authorize hidden normalization or hot-path drift repair.
- Reconstruction-over-storage: evidence must remain reconstructive and content-addressed rather than duplicating opaque state.
- Replay-equivalence: serving, teaching, promotion, or checkpoint changes require a named deterministic replay / byte-equivalence gate.
- Mutation standing: any durable corpus, pack, policy, or epistemic-status mutation remains reviewed, proposal-only until accepted, or proof-carrying as applicable.

View file

@ -64,3 +64,13 @@ proposal/review path, not runtime truth.
- Efferent action records fail if passed as observation units.
- Sensorimotor feedback can enter as afferent evidence without enabling motor
emission.
## Governance Cross-Reference (ADR-0225)
This late-corpus ADR is governed by [ADR-0225](./ADR-0225-adr-corpus-hygiene.md):
- Safety boundaries: changes must preserve ADR-0027/0028/0029 identity and safety-pack boundaries; no identity, safety, or policy mutation is implied unless explicitly reviewed.
- Versor closure: runtime field paths must preserve `versor_condition(F) < 1e-6`; this ADR does not authorize hidden normalization or hot-path drift repair.
- Reconstruction-over-storage: evidence must remain reconstructive and content-addressed rather than duplicating opaque state.
- Replay-equivalence: serving, teaching, promotion, or checkpoint changes require a named deterministic replay / byte-equivalence gate.
- Mutation standing: any durable corpus, pack, policy, or epistemic-status mutation remains reviewed, proposal-only until accepted, or proof-carrying as applicable.

View file

@ -69,3 +69,13 @@ environment orchestration, but the two halves remain type-separated:
- Sensorimotor deltas merge idempotently.
- Sensorimotor compiler exposes no decode path.
- Trace records contain no command or trajectory payload.
## Governance Cross-Reference (ADR-0225)
This late-corpus ADR is governed by [ADR-0225](./ADR-0225-adr-corpus-hygiene.md):
- Safety boundaries: changes must preserve ADR-0027/0028/0029 identity and safety-pack boundaries; no identity, safety, or policy mutation is implied unless explicitly reviewed.
- Versor closure: runtime field paths must preserve `versor_condition(F) < 1e-6`; this ADR does not authorize hidden normalization or hot-path drift repair.
- Reconstruction-over-storage: evidence must remain reconstructive and content-addressed rather than duplicating opaque state.
- Replay-equivalence: serving, teaching, promotion, or checkpoint changes require a named deterministic replay / byte-equivalence gate.
- Mutation standing: any durable corpus, pack, policy, or epistemic-status mutation remains reviewed, proposal-only until accepted, or proof-carrying as applicable.

View file

@ -123,3 +123,13 @@ To be completed in the Claude lane or local CI after review:
- No loader mutation.
- No new dependency.
- No empirical claim that the fixtures pass before they are run.
## Governance Cross-Reference (ADR-0225)
This late-corpus ADR is governed by [ADR-0225](./ADR-0225-adr-corpus-hygiene.md):
- Safety boundaries: changes must preserve ADR-0027/0028/0029 identity and safety-pack boundaries; no identity, safety, or policy mutation is implied unless explicitly reviewed.
- Versor closure: runtime field paths must preserve `versor_condition(F) < 1e-6`; this ADR does not authorize hidden normalization or hot-path drift repair.
- Reconstruction-over-storage: evidence must remain reconstructive and content-addressed rather than duplicating opaque state.
- Replay-equivalence: serving, teaching, promotion, or checkpoint changes require a named deterministic replay / byte-equivalence gate.
- Mutation standing: any durable corpus, pack, policy, or epistemic-status mutation remains reviewed, proposal-only until accepted, or proof-carrying as applicable.

View file

@ -69,3 +69,13 @@ consume this contract rather than bypass it.
- The bench does not import `generate`, mutate Vault, or call
`ModalityRegistry.decode`.
- `core eval environment-falsification --json` is hash-pinned.
## Governance Cross-Reference (ADR-0225)
This late-corpus ADR is governed by [ADR-0225](./ADR-0225-adr-corpus-hygiene.md):
- Safety boundaries: changes must preserve ADR-0027/0028/0029 identity and safety-pack boundaries; no identity, safety, or policy mutation is implied unless explicitly reviewed.
- Versor closure: runtime field paths must preserve `versor_condition(F) < 1e-6`; this ADR does not authorize hidden normalization or hot-path drift repair.
- Reconstruction-over-storage: evidence must remain reconstructive and content-addressed rather than duplicating opaque state.
- Replay-equivalence: serving, teaching, promotion, or checkpoint changes require a named deterministic replay / byte-equivalence gate.
- Mutation standing: any durable corpus, pack, policy, or epistemic-status mutation remains reviewed, proposal-only until accepted, or proof-carrying as applicable.

View file

@ -45,3 +45,13 @@ verdict coverage, or any refusal.
- No decoded command payload, trajectory, ndarray, or bytes object enters traces.
- Physical action remains disabled until a later motor decoder ADR and lab
safety contract.
## Governance Cross-Reference (ADR-0225)
This late-corpus ADR is governed by [ADR-0225](./ADR-0225-adr-corpus-hygiene.md):
- Safety boundaries: changes must preserve ADR-0027/0028/0029 identity and safety-pack boundaries; no identity, safety, or policy mutation is implied unless explicitly reviewed.
- Versor closure: runtime field paths must preserve `versor_condition(F) < 1e-6`; this ADR does not authorize hidden normalization or hot-path drift repair.
- Reconstruction-over-storage: evidence must remain reconstructive and content-addressed rather than duplicating opaque state.
- Replay-equivalence: serving, teaching, promotion, or checkpoint changes require a named deterministic replay / byte-equivalence gate.
- Mutation standing: any durable corpus, pack, policy, or epistemic-status mutation remains reviewed, proposal-only until accepted, or proof-carrying as applicable.

View file

@ -173,3 +173,13 @@ Build R2 v1 as the off-serving finite-integer constraint setup compiler on the C
The contract is pinned by the gold and this ADR; capability grows only where the gold +
oracle + refusal tests already license it. No guessed math, no silent correction, no answer
without a proven setup.
## Governance Cross-Reference (ADR-0225)
This late-corpus ADR is governed by [ADR-0225](./ADR-0225-adr-corpus-hygiene.md):
- Safety boundaries: changes must preserve ADR-0027/0028/0029 identity and safety-pack boundaries; no identity, safety, or policy mutation is implied unless explicitly reviewed.
- Versor closure: runtime field paths must preserve `versor_condition(F) < 1e-6`; this ADR does not authorize hidden normalization or hot-path drift repair.
- Reconstruction-over-storage: evidence must remain reconstructive and content-addressed rather than duplicating opaque state.
- Replay-equivalence: serving, teaching, promotion, or checkpoint changes require a named deterministic replay / byte-equivalence gate.
- Mutation standing: any durable corpus, pack, policy, or epistemic-status mutation remains reviewed, proposal-only until accepted, or proof-carrying as applicable.

View file

@ -248,3 +248,13 @@ explicit hazard surface and refuses on any gap.
- [x] INV-29 ACCEPTED as the permanent transition-site boundary; allowlist
stays `{vault/store.py}` (shipped passing in the proposing PR;
ratification confirms it).
## Governance Cross-Reference (ADR-0225)
This late-corpus ADR is governed by [ADR-0225](./ADR-0225-adr-corpus-hygiene.md):
- Safety boundaries: changes must preserve ADR-0027/0028/0029 identity and safety-pack boundaries; no identity, safety, or policy mutation is implied unless explicitly reviewed.
- Versor closure: runtime field paths must preserve `versor_condition(F) < 1e-6`; this ADR does not authorize hidden normalization or hot-path drift repair.
- Reconstruction-over-storage: evidence must remain reconstructive and content-addressed rather than duplicating opaque state.
- Replay-equivalence: serving, teaching, promotion, or checkpoint changes require a named deterministic replay / byte-equivalence gate.
- Mutation standing: any durable corpus, pack, policy, or epistemic-status mutation remains reviewed, proposal-only until accepted, or proof-carrying as applicable.

View file

@ -138,3 +138,13 @@ All of the following must hold (proven by `tests/test_adr_0219_generation_checkp
- ADR-0157 — revision-mismatch warning on load (unaffected)
- ADR-0158 — reboot event audit (unaffected)
- L10 continuity hardening brief pack: `docs/handoff/l10-continuity-hardening-briefs-2026-06-15.md`
## Governance Cross-Reference (ADR-0225)
This late-corpus ADR is governed by [ADR-0225](./ADR-0225-adr-corpus-hygiene.md):
- Safety boundaries: changes must preserve ADR-0027/0028/0029 identity and safety-pack boundaries; no identity, safety, or policy mutation is implied unless explicitly reviewed.
- Versor closure: runtime field paths must preserve `versor_condition(F) < 1e-6`; this ADR does not authorize hidden normalization or hot-path drift repair.
- Reconstruction-over-storage: evidence must remain reconstructive and content-addressed rather than duplicating opaque state.
- Replay-equivalence: serving, teaching, promotion, or checkpoint changes require a named deterministic replay / byte-equivalence gate.
- Mutation standing: any durable corpus, pack, policy, or epistemic-status mutation remains reviewed, proposal-only until accepted, or proof-carrying as applicable.

View file

@ -291,3 +291,13 @@ git diff --stat c6d0e2a92004 f5c6914d0083 -- packs/{identity,safety,ethics,regis
get_git_revision() ──▶ code_revision (hashed into engine_identity) engine_identity.py:99 → strict raise
└─▶ written_at_revision (provenance, unhashed) __init__.py:350 → ADR-0157 warn
```
## Governance Cross-Reference (ADR-0225)
This late-corpus ADR is governed by [ADR-0225](./ADR-0225-adr-corpus-hygiene.md):
- Safety boundaries: changes must preserve ADR-0027/0028/0029 identity and safety-pack boundaries; no identity, safety, or policy mutation is implied unless explicitly reviewed.
- Versor closure: runtime field paths must preserve `versor_condition(F) < 1e-6`; this ADR does not authorize hidden normalization or hot-path drift repair.
- Reconstruction-over-storage: evidence must remain reconstructive and content-addressed rather than duplicating opaque state.
- Replay-equivalence: serving, teaching, promotion, or checkpoint changes require a named deterministic replay / byte-equivalence gate.
- Mutation standing: any durable corpus, pack, policy, or epistemic-status mutation remains reviewed, proposal-only until accepted, or proof-carrying as applicable.

View file

@ -111,3 +111,13 @@ through the now-working normal path — its own clean merge is the proof.
- If collaborators are added later and merges should be restricted to specific
accounts, enable **"Restrict who can push"** (the `restrictions` list) — that is
the correct lever, **not** required reviews.
## Governance Cross-Reference (ADR-0225)
This late-corpus ADR is governed by [ADR-0225](./ADR-0225-adr-corpus-hygiene.md):
- Safety boundaries: changes must preserve ADR-0027/0028/0029 identity and safety-pack boundaries; no identity, safety, or policy mutation is implied unless explicitly reviewed.
- Versor closure: runtime field paths must preserve `versor_condition(F) < 1e-6`; this ADR does not authorize hidden normalization or hot-path drift repair.
- Reconstruction-over-storage: evidence must remain reconstructive and content-addressed rather than duplicating opaque state.
- Replay-equivalence: serving, teaching, promotion, or checkpoint changes require a named deterministic replay / byte-equivalence gate.
- Mutation standing: any durable corpus, pack, policy, or epistemic-status mutation remains reviewed, proposal-only until accepted, or proof-carrying as applicable.

View file

@ -688,3 +688,13 @@ regression.
- [ ] The PR sequence (§10) and the "INV-31 ships with the type" rule are authorized.
- [ ] The new invariant number **INV-31** is free / correctly assigned (review confirmed
no existing `INV-31` reference).
## Governance Cross-Reference (ADR-0225)
This late-corpus ADR is governed by [ADR-0225](./ADR-0225-adr-corpus-hygiene.md):
- Safety boundaries: changes must preserve ADR-0027/0028/0029 identity and safety-pack boundaries; no identity, safety, or policy mutation is implied unless explicitly reviewed.
- Versor closure: runtime field paths must preserve `versor_condition(F) < 1e-6`; this ADR does not authorize hidden normalization or hot-path drift repair.
- Reconstruction-over-storage: evidence must remain reconstructive and content-addressed rather than duplicating opaque state.
- Replay-equivalence: serving, teaching, promotion, or checkpoint changes require a named deterministic replay / byte-equivalence gate.
- Mutation standing: any durable corpus, pack, policy, or epistemic-status mutation remains reviewed, proposal-only until accepted, or proof-carrying as applicable.

View file

@ -351,3 +351,13 @@ Exact span bindings ground.
Organ-specific contracts determine.
Unsupported or ambiguous cases refuse.
```
## Governance Cross-Reference (ADR-0225)
This late-corpus ADR is governed by [ADR-0225](./ADR-0225-adr-corpus-hygiene.md):
- Safety boundaries: changes must preserve ADR-0027/0028/0029 identity and safety-pack boundaries; no identity, safety, or policy mutation is implied unless explicitly reviewed.
- Versor closure: runtime field paths must preserve `versor_condition(F) < 1e-6`; this ADR does not authorize hidden normalization or hot-path drift repair.
- Reconstruction-over-storage: evidence must remain reconstructive and content-addressed rather than duplicating opaque state.
- Replay-equivalence: serving, teaching, promotion, or checkpoint changes require a named deterministic replay / byte-equivalence gate.
- Mutation standing: any durable corpus, pack, policy, or epistemic-status mutation remains reviewed, proposal-only until accepted, or proof-carrying as applicable.

View file

@ -165,3 +165,13 @@ ADR-0224 is ratified when the following are accepted:
4. Ensure every family spec produced after ratification includes the required template fields and at least two non-math domain examples with cross-domain evidence.
This ADR provides the constitutional map layer that was missing. It keeps the architecture bounded, executable, and aligned with the doctrine already established in ADR-0223 while preventing the next treadmill of unbounded family addition. Ratification of the structure and gate first allows controlled, evidenced expansion.
## Governance Cross-Reference (ADR-0225)
This late-corpus ADR is governed by [ADR-0225](./ADR-0225-adr-corpus-hygiene.md):
- Safety boundaries: changes must preserve ADR-0027/0028/0029 identity and safety-pack boundaries; no identity, safety, or policy mutation is implied unless explicitly reviewed.
- Versor closure: runtime field paths must preserve `versor_condition(F) < 1e-6`; this ADR does not authorize hidden normalization or hot-path drift repair.
- Reconstruction-over-storage: evidence must remain reconstructive and content-addressed rather than duplicating opaque state.
- Replay-equivalence: serving, teaching, promotion, or checkpoint changes require a named deterministic replay / byte-equivalence gate.
- Mutation standing: any durable corpus, pack, policy, or epistemic-status mutation remains reviewed, proposal-only until accepted, or proof-carrying as applicable.

View file

@ -0,0 +1,73 @@
# 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/decisions/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/decisions/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.

View file

@ -252,6 +252,29 @@ ADRs record significant architectural decisions: what was decided, why, what alt
| [ADR-0197](ADR-0197-vision-compiler-delta-crdt.md) | CORE-native Vision Compiler over the Delta-CRDT Substrate | Proposed |
| [ADR-0198](ADR-0198-motor-efferent-decoder-spike.md) | Motor as Efferent Modality — Protocol Gap & Governance (Design Spike) | Proposed (design spike — no implementation) |
| [ADR-0199](ADR-0199-cross-domain-learning-arena-contract.md) | Cross-Domain Learning Arena Contract | Proposed |
| [ADR-0200](ADR-0200-expert-claim-reconciliation.md) | Expert-Claim Reconciliation: Record the Fail-Closed Revert as Designed Behavior | Accepted |
| [ADR-0201](ADR-0201-proposition-canonicalizer.md) | Propositional Canonicalizer (`proof_chain`) | Accepted |
| [ADR-0201.1](ADR-0201.1-out-of-regime-detector.md) | Principled Out-of-Regime Detector | Accepted |
| [ADR-0202](ADR-0202-proposition-representation-contract.md) | Proposition Representation Contract (`proof_chain`) | Accepted |
| [ADR-0203](ADR-0203-binding-graph-acyclicity-invariant.md) | Binding-Graph Acyclicity Invariant | Accepted |
| [ADR-0204](ADR-0204-proof-graph-builder.md) | Proof-Graph Builder | Accepted |
| [ADR-0205](ADR-0205-modus-ponens-disagreement-rule.md) | Modus Ponens + Disagreement Rule | Accepted |
| [ADR-0206](ADR-0206-response-governance-bridge.md) | Response Governance Bridge | Accepted |
| [ADR-0207](ADR-0207-gsm8k-substrate-ratification.md) | GSM8K Comprehension/Composition Substrate Ratification | Accepted |
| [ADR-0208](ADR-0208-environmental-sensorium-loop.md) | Environmental Sensorium Loop | Accepted |
| [ADR-0209](ADR-0209-sensorimotor-feedback-contract.md) | Sensorimotor Feedback Is Afferent | Accepted |
| [ADR-0210](ADR-0210-l10-grounding-pack.md) | L10 Finite Grounding Pack and Adversarial Wrong=0 Fixtures | Accepted |
| [ADR-0211](ADR-0211-conformal-falsification-bench.md) | Conformal Falsification Bench | Accepted |
| [ADR-0216](ADR-0216-motor-verdict-lowering.md) | Motor Verdict Lowering Prerequisite | Accepted |
| [ADR-0217](ADR-0217-r2-finite-integer-constraint-compiler.md) | R2 Finite-Integer Constraint Compiler | Accepted |
| [ADR-0218](ADR-0218-proof-carrying-coherence-promotion.md) | Proof-Carrying Coherence Promotion | Accepted |
| [ADR-0219](ADR-0219-generation-checkpoint-atomicity.md) | Generation-dir Atomic Checkpoint | Accepted |
| [ADR-0220](ADR-0220-engine-identity-vs-build-provenance.md) | Engine Identity vs. Build Provenance | Accepted |
| [ADR-0221](ADR-0221-codeowners-review-topology.md) | Codeowners Review Topology | Accepted |
| [ADR-0222](ADR-0222-frame-verdict-closed-world.md) | FrameVerdict — Frame-General Closed-World Verdict | Accepted |
| [ADR-0223](ADR-0223-semantic-substrate-affordance-audit.md) | Semantic Substrate Affordance Audit and Foundation Alignment | Accepted |
| [ADR-0224](ADR-0224-foundational-substrate-readiness-map.md) | Foundational Subject Substrate Readiness and Cross-Domain Affordance Map | Accepted |
| [ADR-0225](ADR-0225-adr-corpus-hygiene.md) | ADR Corpus Hygiene, Numbering Policy, and Cross-Reference Governance | Accepted (2026-06-30) |
| [ADR-0200](ADR-0200-expert-claim-reconciliation.md) | Expert-Claim Reconciliation: record the math fail-closed revert as designed behavior | Proposed |
---
@ -457,6 +480,10 @@ Establishes calibrated attempt-and-eliminate learning under a strict two-regime
Shifts the engine toward concurrent multi-modal pipelines. Decouples physical lock contention on vision/audio from the logical manifold using Delta-CRDT sharding in Rust (ADR-0180), implements `audio_core_v1` as a deterministic acoustic compiler (ADR-0181), and stubs ASR serving boundaries to prevent learned Whisper models from contaminating production serving paths (ADR-0183).
### ADR Corpus Governance — ADR-0225 (2026-06-30)
ADR-0225 makes this README the living ADR reference matrix and requires future ADRs touching runtime state, packs, teaching, memory, replay, or invariants to cite safety boundaries, versor closure (`versor_condition(F) < 1e-6`), reconstruction-over-storage, replay-equivalence gates, and mutation standing. The verified Phase 1 dependency map is `docs/analysis/adr-corpus-cohesion-dependency-map-2026-06-30.md`.
---
## Session Logs

View file

@ -14,9 +14,9 @@ from generate.problem_frame_builder import (
recognized_process_frame_names,
recognized_scalar_surfaces,
recognized_unit_surfaces,
surface_in_text,
)
from generate.problem_frame_contracts import assess_contracts, recommended_migration_target as contract_target
from generate.problem_frame_extractors import surface_in_text
from generate.process_frames import frame_by_name, lookup_frame
from language_packs.loader import lookup_container
from language_packs.scalar_equivalence import list_unsupported_surfaces