Five new wiring-debt entries from L4 (recognition) and L5
(cognition pipeline) audits:
- W-010 — L4 recognition bypasses L3 vocabulary (operator decision:
intentional token-level or wire VocabManifold consumption).
- W-011 — Typed recognition refusals dropped at pipeline boundary
(mechanical fix, small; closes recognition audit-trail gap).
- W-012 — InnerLoopExhaustion not caught in ChatRuntime.chat()
(mechanical fix, small; sibling of W-011; closes ADR-0142 debt #3).
- W-013 — core/cognition/explain.py dormant (operator decision:
wire, relocate, or delete).
- W-014 — core/cognition/provenance.py partially live, evals-only
(operator decision: lighter version of W-013).
Reordered suggested next-ADR sequence to lead with mechanical quick
wins (W-011, W-012, W-004) before operator-decision items (W-006,
W-013/14, W-010), before second-order changes (W-005), before the
big L10 unit (W-008). Reasoning documented inline: early measurable
progress, no architectural risk, demonstrates audit-to-fix loop
closes.
Updated dependency graph to show the three independent groups
(mechanical, operator-decision, L10-gated chain).
L0-L5 audited; L6-L9 pending. Ratchet stays append-only; v2 marker
in title and "L0-L5 + L10 scope" in subtitle.
Verdict: PARTIAL.
Updates the substrate liveness registry with the L1 field substrate audit, including ADR enumeration, module/caller mapping, suite lane evidence, cross-layer contract findings, and downstream notes.
Cleanup: none; no unambiguously dead L1 code was found. Test-only helpers and pulse-only field operators are documented for review instead of deleted.
Verification: python3 -m core.cli test --suite smoke -q; python3 -m core.cli test --suite algebra -q; python3 -m core.cli test --suite pulse -q; python3 scripts/verify_lane_shas.py.
First per-layer audit of the substrate-liveness program. Establishes the
registry shape and standard of evidence for subsequent layers.
L0 (algebra primitives) is foundation; verdict CLOSED:
- 4 ADRs in scope (ADR-0001 versor invariant, ADR-0003 coordinate
dissolution, ADR-0004 rotor as operator, ADR-0009 compositional
physics).
- 6 modules (versor, rotor, cga, cl41, holonomy, backend); every
module has at least 2 live-import sites outside the package and
outside tests (38 distinct caller files overall).
- core test --suite algebra exercises every L0 module: 82 passed, 50
skipped (Rust-parity tests, Python-only env — not a closure gap).
- Cross-layer contract pass 1 (mechanical): every exposed symbol has
at least one downstream consumer.
- Cross-layer contract pass 2 (semantic): versor_condition < 1e-6
invariant is measured per turn (core/cognition/trace.py:34), folded
into deterministic trace payload, surfaced to operator via CLI, and
gated at the eval boundary (evals/cognition/runner.py:60). Matches
CLAUDE.md discipline of "measure and surface, don't weaken."
No cleanup performed — no dead code, no redundant modules, no
orphaned tests found at L0. Foundation is honest.
One scope-hypothesis correction: layering table cited "algebra/backend/"
(directory); reality is "algebra/backend.py" (file). Hypothesis drift,
recorded for amendment if it matters elsewhere.
Three forward-pointing notes left for downstream auditors:
- L1 should verify field propagation correctness is tested
independently of L5's downstream versor_condition measurement.
- L2 should verify vault honors exact-CGA-recall end-to-end, not just
at the algebra layer.
- ADR-0020 (Rust parity) is cross-cutting; audit when Rust integration
is live rather than at any single layer.
Format established for subsequent per-layer commits. Audit progress
table in registry root tracks pending layers; resume-after-interruption
is "look at the progress table, start with the first pending layer."