core/docs/handoff
Shay 9b8f6bb991 feat(matcher-extension/ME-5): integration smoke + ME-1..ME-5 milestone
Final PR of the matcher-extension wave. Ships:

1. tests/test_me5_all_categories_integration.py — 4 new tests:
   - test_all_three_canaries_admit_through_full_pipeline: stages a
     pack with all three SAFE_COMPOSITION_CATEGORIES entries +
     ratifies, runs Maria/Sam/Tom canaries through matcher →
     inject_from_match, asserts admission for all three
   - test_partial_pack_only_admits_present_categories: refusal-
     preferring when only one category is ratified
   - test_all_safe_categories_have_extension_admission: pins that
     SAFE_COMPOSITION_CATEGORIES is exactly the three covered
     categories (breaks if future ADR widens without matcher)
   - test_falsifies_uniformly_suppresses_across_categories:
     polarity discipline holds across all three matchers

2. docs/handoff/ME1-ME5-MILESTONE.md — wave milestone doc:
   - architecture diagram (audit → ratify → compile → load →
     match → consult → admit)
   - SAFE_COMPOSITION_CATEGORIES coverage matrix
   - invariants preserved across the entire stack
   - scope boundary (what does NOT fire yet — RAT-1 follow-up)
   - recommended next dispatch

3. Test registration in core/cli.py packs suite.

Across the full ME-1..ME-5 stack:
- 5 stacked PRs (#400/#401/#402/#403/#404)
- 1 foundation PR (#398 — consumption wiring)
- 114 new tests, all green
- packs suite 127 passed
- core eval gsm8k_math --split public → 150/150, wrong=0
- All three SAFE_COMPOSITION_CATEGORIES have matcher extensions

Anti-regression invariants preserved across the entire stack:
- wrong == 0 on public split
- Case 0050 hazard pin (parametrized over all three categories)
- ADR-0166 — no new eval lanes
- ADR-0167 partition — no cognition imports
- ADR-0169 mutation boundary — registry is a gate, not arithmetic
- All matcher detection paths byte-identical
- engine_state/* never committed
- SAFE_COMPOSITION_CATEGORIES enforced at write AND load
- polarity falsifies honored uniformly

Live train_sample admission requires operator-seeded ratifications
(RAT-1 follow-up). Wiring is end-to-end correct, verified by ME-5
integration tests.

Memory: milestone-me1-me5-matcher-extensions-complete saved.

Stacks on PR #403 (base: feat/matcher-extension-subtractive).
2026-05-27 17:35:10 -07:00
..
ADR-0084-pack-content-brief.md feat(adr-0084): definitional layer — proposal + substrate (schema/loader/closure) (#64) 2026-05-20 15:25:25 -07:00
ADR-0085-content-style-pass-brief.md docs(adr-0085): content style pass brief for the cheaper dev agent (#71) 2026-05-20 15:58:44 -07:00
ADR-0085-content-style-pass-v2-brief.md docs(adr-0085): content style pass v2 brief — 3sg + plural agreement (#75) 2026-05-20 16:23:14 -07:00
ADR-0167-FOLLOWUPS.md chore: remove stub injector + superseded docs (cleanup-as-you-find) (#373) 2026-05-27 11:08:14 -07:00
ADR-0167-PARALLEL-WORK-PLAN.md docs(ADR-0167): audit-as-teaching-evidence (math reader → contemplation wire) (#349) 2026-05-27 06:21:43 -07:00
ADR-0167-W2C-cross-domain-audit.md feat(ADR-0167/W2-C): domain discriminator + cross-domain audit (#351) 2026-05-27 06:44:29 -07:00
ADR-0172-TIER1-BRIEF-PACK.md docs(ADR-0172): fix evidence-module path in Tier 1 brief pack (#381) 2026-05-27 12:18:19 -07:00
BRIEF-11-phase-2-reader-closure-and-capability-snapshot.md docs: Brief 11 EOD status footer + 2026-05-27 session narrative (#356) 2026-05-27 07:21:01 -07:00
CODEX-domain-pack-closure-cleanup-brief.md docs(handoff): two Codex briefs — domain-pack closure cleanup + grc/he content phase II (#98) 2026-05-20 23:12:15 -07:00
CODEX-greek-hebrew-content-phase-ii-brief.md docs(handoff): two Codex briefs — domain-pack closure cleanup + grc/he content phase II (#98) 2026-05-20 23:12:15 -07:00
COMPOSITION-FRAME-CONSUMPTION-WIRING-BRIEF.md docs(consumption-wiring): brief for closing Frame + Composition loop halves (#396) 2026-05-27 16:14:50 -07:00
COMPOSITIONCLAIM-BRIEF-PACK.md docs(compositionclaim): brief pack — ADR-0169 doctrine + handler + heuristic tightening (#390) 2026-05-27 14:46:24 -07:00
CONSUMPTION-WIRING-DISPATCH-PACK.md docs(consumption-wiring): operator dispatch pack (CW-1 + CW-2) (#397) 2026-05-27 16:16:41 -07:00
DCS-S1-FINDING.md docs(ADR-0170): injector contract widening + DCS-S1 schema-gap finding (#372) 2026-05-27 10:51:46 -07:00
discrete_count_statement-injector-spec.md docs(handoff): reconcile discrete_count_statement injector spec (#366) 2026-05-27 09:51:30 -07:00
MATCHER-EXTENSION-DISPATCH-PACK.md docs(matcher-extension): dispatch pack (ME-1) (#399) 2026-05-27 16:17:30 -07:00
ME1-ME5-MILESTONE.md feat(matcher-extension/ME-5): integration smoke + ME-1..ME-5 milestone 2026-05-27 17:35:10 -07:00
TIER2-AND-FRAMECLAIM-BRIEF-PACK.md docs(tier1.5+tier2): FrameClaim handler + Tier 2 W5 schema brief pack (#387) 2026-05-27 14:05:53 -07:00
WAVE-NEXT-REVISED.md chore: remove stub injector + superseded docs (cleanup-as-you-find) (#373) 2026-05-27 11:08:14 -07:00
WORKBENCH-UI-WAVE-BRIEF-PACK.md docs(workbench-ui): wave brief pack (W1..W4) (#395) 2026-05-27 15:35:05 -07:00
WORKBENCH-UI-WAVE-SCOPING.md docs(workbench-ui): scoping brief for UI wave (W0..W4) (#392) 2026-05-27 15:09:58 -07:00