core/docs/handoff
Shay a105eb5f20
docs(consumption-wiring): brief for closing Frame + Composition loop halves (#396)
Names the structural gap discovered in the first end-to-end
CompositionClaim ratification (2026-05-27 post-#393):
ratification handler writes JSONL artifacts cleanly, but no runtime
code reads compositions/*.jsonl or frames/*.jsonl. Two of three
sub-types ship the ratification half of the loop without the
consumption half.

State:
  lexicon/      writer ✓  reader ✓  (LexicalClaim — closed)
  frames/       writer ✓  reader ✗  (FrameClaim   — half-open)
  compositions/ writer ✓  reader ✗  (CompositionClaim — half-open)

Proposes one bundled PR (CW-1 + CW-2) mirroring the proven
generate/comprehension/lexicon.py::load_lexicon pattern:

  CW-1 — Frame consumption: pack-compile frames/*.jsonl into a
         runtime-loadable artifact; new load_frame_registry()
         loader; reader wire.
  CW-2 — Composition consumption: pack-compile compositions/*.jsonl;
         new load_composition_registry(); injector wire in
         generate/recognizer_anchor_inject.py.

Hard requirements: SAFE_COMPOSITION_CATEGORIES allowlist enforced
at both write and load (defense in depth); polarity "falsifies"
honored; manifest checksum extended per CLAUDE.md "Semantic Pack
Discipline"; empty-registry runtime byte-identical to today.

Truth-test pinned: success is the EVAL DELTA, not the artifact
append. PR is "done" when case 0019 (the canary I ratified) admits
under train_sample, train_sample moves from 3 correct / 47 refused
to ≥4 correct / 46 refused, case 0050 stays refused, wrong==0 holds.

This brief is orthogonal to the workbench UI wave (W1..W4); both
can ship in parallel. Recommended operator: Opus (load-bearing
wrong=0 surface; same rigor as CC-2).
2026-05-27 16:14:50 -07:00
..
ADR-0084-pack-content-brief.md
ADR-0085-content-style-pass-brief.md
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
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
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