Measurement lives in Rust. Judgment lives in Haskell. One versioned wire connects them. This is the boundary set by ADR-002 and kept load-bearing by ADR-008: parsing, extraction and indexing stop before policy; score, ratchet and authorization stay in the core.
GHC 9.14.1NDJSON · proto 2.27.0 · SemVer negotiationcli/, core/, gui/, plugin/,
contracts/, or the release workflows.On every push, ci.yml runs six product legs over this repository: scan, dedup ratchet, check at floor 950, deadcode, docdup and erase.
ADR-006 freezes per-file ceilings and discrete violation sets in ce-baseline.json. Growth needs a named re-establish; ordinary cleanup tightens the bank.
docs_gate.rs generates CLI and configuration references from the binary. Citation, navigation and constant tests check the methodology. Benchmark surfaces are byte-gated from one JSON contract.
classifier: 0/600 flagged (gate <= 1%); write probe: 0/630 false positives. Every other class stays observe. Each promotion is recorded in the CHANGELOG ledger.
erase/gather.rs assembles facts; CE.Erase authorizes only rows that satisfy the safety predicate. Apply verifies every target hash first, then re-runs the source families — a surviving verdict fails loudly. No LLM writes a replacement.
release.yml hashes draft assets, then committed pins bind those bytes. The tag job downloads the same assets, checks CI and every pin, and publishes without rebuilding.
The twelve-booklet methodology links every formula to its implementing file:line. docs_citations.rs checks the ledger; docs_nav.rs checks the booklet set and navigation.
The core alone computes score and ratchet verdicts, authorizes erase rows, and decides cycle-axis membership. Property batteries perturb those decisions and compare small cases with reference implementations.
Trace the boundary in ADR-002 and ADR-008, the wire in contracts/VERSIONING.md, and the verdict formulas in the methodology index.