Plan of record for the generalization arc lands here
(docs/plans/generalization-arc-2026-07-24.md) with the risk-tiered
handoff pack (docs/handoff/generalization-2026-07/); Phase 0.1 executed.
Root-caused the three stale lane pins (docs/research/lane-drift-
investigation-2026-07-24.md):
- miner/curriculum: 5c69b741 (ADR-0244 §2.7) widened content digests
16→64 hex; intentional, pins were simply never updated. Re-pinned
surgically; SHAs triple-run deterministic.
- demo_composition: a REAL serving regression. #76's canonical-first
base precedence in resolve_surface, activated when #96 routed pipeline
turns through the resolver, served the pre-R6 canonical — the register
axis (ADR-0077 R6 substantive + ADR-0071 R4 decoration) was silently
stripped from every pipeline-served turn. T13's back-stamp then made
telemetry mirror the stripped bytes; register-tour claims went red and
the e2e tests pinning the axis (outside smoke) were failing on main.
Fix: response-first base precedence (served bytes = post-guard, post-R6,
post-R4) + new SurfaceResolution.hash_surface carrying the truth-path
canonical-precedence bytes through substrate overrides, folds, hedge,
logos-morph, and the speculative marker. compute_trace_hash folds
hash_surface, so the register axis varies the served surface ONLY and
trace_hash stays register-invariant (ADR-0069 inv C). _prior_surface
(correction binding) stays on the truth path. Dead FailureClass import
and _assessment_residual removed.
Also: generate_claims.py had raised on every run since the
deduction_serve_v1 pin landed without a _LANE_ADR entry — mapping added
(ADR-0256), CLAIMS.md regenerated, --check green.
[Verification]: register tour 6/6 claims (substantive-differs restored,
all_trace_hashes_identical held); 88 tests green in-worktree
(test_surface_resolution incl. 2 new fallback tests,
test_register_substantive_consumption incl. previously-red e2e tests,
test_grounded_open_hedge_arm, test_cognitive_turn_pipeline,
test_warmed_session_lane 10/10 T13 consistency); miner/curriculum lane
SHAs byte-identical across three runs; deduction_serve + deductive_logic
lane reports byte-identical to their unchanged pins; smoke suite via
pre-push gate.
238 lines
12 KiB
Markdown
238 lines
12 KiB
Markdown
# Generalization Arc — GSM8K-Level Capability Across Core Subjects
|
||
|
||
**Date:** 2026-07-24 · **Status:** ACTIVE · **Base:** main @ `5224b5e0` (post ADR-0259 / Band v4-CM)
|
||
|
||
This is the ratified plan of record for the arc that takes CORE from "one
|
||
fully-closed cognitive lifecycle (deduction-serve)" to "the same lifecycle
|
||
running across core subjects at GSM8K-exam level" — articulated answers,
|
||
problem solving, comprehension, all under wrong=0 discipline.
|
||
|
||
Execution is **risk-tiered across three operators** (§6): Fable 5 does the
|
||
high-risk design + build, Opus 5 the medium tier, Sonnet 5 the low tier.
|
||
Handoff briefs live in `docs/handoff/generalization-2026-07/`.
|
||
|
||
---
|
||
|
||
## 1. Ground truth at arc start
|
||
|
||
- Exactly one lifecycle is closed end-to-end: **deduction-serve**
|
||
(comprehend → 5 band readers → ROBDD decide → sealed practice arena,
|
||
17 bands × 720, θ_SERVE=0.99 → SHA-verified ratified ledger → license
|
||
gate → render → register chain). Dark behind
|
||
`deduction_serving_enabled=False`, awaiting ratification.
|
||
- Cross-subject substrate exists but is idle: 16 unmounted domain seed
|
||
packs, 5 domain chain corpora, 6 OOD fluency lanes, five-layer
|
||
teaching-order doctrine (`docs/teaching_order.md`), capability index.
|
||
- Learning-loop organs exist but are write-only or dark: 19 default-off
|
||
flags; proposal/contemplation/promotion paths emit into review sinks
|
||
with no runtime consumer. Three real ratified-artifact consumers exist
|
||
(deduction ledger, estimation license, recognizer registry) — the
|
||
pattern to generalize.
|
||
- Math is reader-gated, not solver-gated: compiler holds 50/50 wrong=0 on
|
||
dev-1 but the reader parses ~1% of real GSM8K; the ~30-band bet was
|
||
falsified; standing ruling #77 selects **seeding-sentence injection**
|
||
as the next math move.
|
||
- ADR-0246 §3.7 identity calibration is explicitly OFF this critical
|
||
path (blocked on §11 research evidence; doctrine order:
|
||
capability → practice → calibration → serve).
|
||
|
||
## 2. Phases
|
||
|
||
### Phase 0 — Truth-substrate hygiene + first live serve *(Small)*
|
||
- **0.1** Root-cause the 3-lane pin drift (`miner_loop_closure`,
|
||
`curriculum_loop_closure`, `demo_composition`). Classify: determinism
|
||
bug (stop-the-line) vs stale pins vs local/CI byte divergence.
|
||
Re-pin surgically only after root-cause. Findings doc in
|
||
`docs/research/`.
|
||
- **0.2** Ratification packet for `deduction_serving_enabled` (evidence
|
||
collation only; the flip is Shay's decision).
|
||
|
||
**Done when:** drift explained + resolved; packet delivered.
|
||
|
||
### Phase 1 — Reading generalization: verb predicates + existentials *(Large)*
|
||
The band cascade reads only copula sentences; every other subject states
|
||
facts as verb sentences. Ordered by leverage:
|
||
|
||
- **1.1 Band v5-VP — verb predicates**: predicate atoms keyed by
|
||
(verb lemma, argument tuple); intransitive + transitive with
|
||
named/classed arguments ONLY; closed morphology; typed refusal for
|
||
everything else (voice, tense shifts, ditransitives, PP-arguments).
|
||
This band gates Phase 2.
|
||
- **1.2 Band v6-EX — existential (`some`) witnesses**: completes the
|
||
all/no/some square; witness-based lowering.
|
||
- Deferred (unchanged from ADR-0259 §5): universal-nested-in-connective
|
||
(bound-variable tracking), identity/co-reference, tense.
|
||
|
||
Recipe per band (proven 3×): reader module → shape bands → arena
|
||
templates (≥720/band) → hand-authored lane split (content-disjoint from
|
||
practice lexicon) → ledger reseal → tests → ADR → research doc.
|
||
|
||
**Done when:** verb-predicate and existential arguments decided at SERVE
|
||
wrong=0; ledger resealed; promotion sweep of previously-declined cases
|
||
done honestly (promotion = *decided correctly*, not *decided favorably*).
|
||
|
||
### Phase 2 — Port the lifecycle to two non-math subjects *(Medium-Large)*
|
||
Physics and biology first (OOD lanes, seed packs, and domain chains
|
||
already exist). Implemented strictly to the **curriculum-entailment gold
|
||
contract** (§4 — the load-bearing design of this arc):
|
||
|
||
- Mount subject packs; wire domain chains through the teaching corridor
|
||
per the five-layer order.
|
||
- Exam-shaped serve lanes: question → read (v5-VP reading) → decide
|
||
**from ratified curriculum premises only** → licensed articulated
|
||
answer.
|
||
- Per-subject band ledgers via the same arena; capability-index
|
||
coverage entries; 3-domain anti-overfit panel discipline
|
||
(independence must be in the READING).
|
||
|
||
**Done when:** two subjects serve wrong=0 on hand-authored exam-shaped
|
||
lanes with earned licenses, zero subject-specific engine code.
|
||
|
||
### Phase 3 — Close the discovery→learning loop *(Medium)*
|
||
- **3.1** Vocab-expansion trigger as code (the COMPREHENSION-READER-AUDIT
|
||
§measurable-test, made a standing instrument: refusal histogram split
|
||
mechanism-vs-coverage; admissions-per-lexicon-batch).
|
||
- **3.2** HITL proposal-queue surface (review CLI over the existing
|
||
sinks).
|
||
- **3.3** Generic consumption bridge: extract the seal → ratify →
|
||
SHA-verified license → serve-gate pattern (deduction ledger is the
|
||
model; estimation license the second instance) into the ADR-0175
|
||
Phase-5 bridge so each subject arena plugs in without bespoke wiring.
|
||
- **3.4** Feed discovery-yield with real traffic (post 0.2 flip).
|
||
|
||
**Done when:** a serve-time gap flows discovery → proposal →
|
||
ratification → runtime consumption with no manual file surgery.
|
||
|
||
### Phase 4 — Math problem-solving reader *(Medium-Large, parallel lane)*
|
||
Independent of Phases 1–3 (no shared files; production-line pattern):
|
||
|
||
- **4.1** Seeding-sentence injection (ruling #77; the 75% "no injection"
|
||
wall).
|
||
- **4.2** Compare unblock (summation-question reader + inverse compare),
|
||
queued behind 4.1 per the same ruling.
|
||
- **4.3** q:complex decomposition study (increment-1 band plan §9; 101
|
||
cases behind one label).
|
||
- Guardrails pinned: `docs/research/reader-arc-overfit-inventory-2026-07-19.md`,
|
||
ADR-0251 recalibration (no bespoke-per-case regex growth),
|
||
ADR-0252.
|
||
|
||
**Done when:** real-GSM8K parse floor materially above ~1% with wrong=0
|
||
held on the full 500; ceiling revised with evidence.
|
||
|
||
### Phase 5 — Articulation depth (`generate/` "core_logos") *(trigger-gated)*
|
||
Not queued by order. Trigger: Phases 1–2 produce multi-step decided
|
||
content (proof chains, multi-fact answers) — the evidence of where
|
||
articulation quality binds that the intelligence-loop plan's Phase 6
|
||
deferral was waiting for. Scope the arc from that evidence.
|
||
|
||
## 3. Dependencies
|
||
|
||
- Phase 1.1 gates Phase 2. Phase 0 first.
|
||
- Phase 3.3 lands before the *second* subject arena (avoid copy-paste
|
||
wiring). 3.1/3.2 interleave freely.
|
||
- Phase 4 fully parallel. Phase 5 trigger-gated on 1–2.
|
||
- §3.7 identity calibration stays downstream of the whole arc (its
|
||
calibration data comes *from* this arc's practice volume).
|
||
|
||
## 4. Curriculum-entailment gold contract (Phase-2 design, decided here)
|
||
|
||
This section is the HIGH-risk design, fixed now so the medium tier can
|
||
implement without re-litigating epistemology.
|
||
|
||
1. **Verdict domain** — every exam item resolves to
|
||
{entailed, refuted, unknown, declined}, identical to deduction-serve.
|
||
UNKNOWN is the honest verdict for untaught facts. No open-world
|
||
recall, ever.
|
||
2. **Two question shapes** — (a) self-contained arguments (premises in
|
||
the text): already owned by bands v2–v6; (b) **curriculum-grounded
|
||
questions** (the new Phase-2 shape): question text supplies only the
|
||
query; the premise set is compiled from the RATIFIED domain chain
|
||
corpus for that subject. Gold is a function of (curriculum, question)
|
||
— never of case-local hidden text. This is the decoding-not-generating
|
||
line in mechanical form.
|
||
3. **Premise provenance** — each lane case pins the chain IDs it draws
|
||
on; the runner reconstructs premises from the ratified corpus and
|
||
MUST fail the case if a pinned chain is absent or unratified.
|
||
4. **Independent oracle** — per subject, a closed-world reachability
|
||
oracle over the chain corpus (sharing no code with the serving path)
|
||
validates every gold verdict; the lane asserts corpus soundness
|
||
before any case runs (the `assert_corpus_sound()` pattern).
|
||
5. **License granularity** — bands keyed by (subject × relation family ×
|
||
chain depth), earned in the ADR-0199 arena: θ_SERVE=0.99, n≥720,
|
||
wrong=0, sealed + SHA-verified ledger per subject.
|
||
6. **Typed refusals, lifecycle-mapped** — `untaught_vocabulary`,
|
||
`unratified_chain`, `out_of_curriculum`, `ambiguous_reading`; the
|
||
OOV refusal feeds the Phase-3 proposal queue (refusals become
|
||
discovery, not dead ends).
|
||
7. **Anti-recall probes (mandatory per lane)** — cases whose answer is
|
||
true in the world but absent from the curriculum; gold = UNKNOWN.
|
||
A lane without these probes cannot prove the system decodes rather
|
||
than recalls, and MUST NOT ship.
|
||
|
||
## 5. Risks
|
||
|
||
- **HIGH — subject-gold epistemology drift**: mitigated by §4 (contract
|
||
fixed before implementation; anti-recall probes mandatory).
|
||
- **HIGH — v5-VP scope creep**: argument structure/voice/agreement are a
|
||
real jump from copula. Mitigation: two argument shapes only, closed
|
||
morphology, typed refusal for the rest — the same discipline that made
|
||
v2–v4 land clean.
|
||
- **MEDIUM — arena scale**: 720/band × growing band count on local
|
||
hardware; linear sealing time; watch, don't block.
|
||
- **MEDIUM — synthetic-overfit trap**: practice templates and lane cases
|
||
stay content-disjoint per subject (standing doctrine).
|
||
- **MEDIUM — q:complex may not decompose**: nothing gates on Phase 4.
|
||
- **LOW — drift root-cause escalates**: if Phase 0.1 finds a determinism
|
||
bug, the arc pauses until it is fixed (stop-the-line).
|
||
|
||
## 6. Risk-tiered operator assignment
|
||
|
||
Constraint set for every tier: wrong=0; flags stay default-off (flips
|
||
are Shay's ratification only); Forgejo-primary, no GitHub/`gh`; local
|
||
smoke + warmed_session gate before every push (pre-push hook); `uv`
|
||
always; branch + worktree per unit; no merge automation; one PR per
|
||
coherent solution; attribution disabled.
|
||
|
||
### Tier F — Fable 5 (HIGH risk; this session)
|
||
- F1: Phase 0.1 drift root-cause (+ surgical re-pin if benign).
|
||
- F2: this plan doc + handoff briefs.
|
||
- F3: §4 gold contract (done — it is this document).
|
||
- F4: Band v5-VP (Phase 1.1), full recipe, PR.
|
||
|
||
**Checkpoint F→O:** F1/F2/F4 PRs pushed with compare URLs; memory
|
||
updated; briefs current. Opus starts at O1 with no open design
|
||
questions.
|
||
|
||
### Tier O — Opus 5 (MEDIUM risk)
|
||
- O1: Band v6-EX existentials (Phase 1.2) — recipe + ADR-0257/0258/0259
|
||
as references.
|
||
- O2: Phase 2 physics + biology serve lanes per §4 (mount packs, wire
|
||
chains, arena, ledgers, lanes). Physics first; biology second only
|
||
after the generic bridge (O3) lands.
|
||
- O3: Phase 3.3 generic consumption bridge.
|
||
- O4: Phase 4.1 seeding-sentence injection, then 4.2; 4.3 as analysis.
|
||
Guardrail docs pinned in §2/Phase 4.
|
||
|
||
**Checkpoint O→S:** v6-EX merged; ≥1 subject lane serving wrong=0 with
|
||
earned licenses; bridge merged; math increment measured + documented
|
||
(whatever its outcome — a null result is a valid checkpoint).
|
||
|
||
### Tier S — Sonnet 5 (LOW risk)
|
||
- S1: Phase 0.2 ratification packet (evidence collation).
|
||
- S2: Post-fix lane re-pins; public_demo flake documentation.
|
||
- S3: Phase 3.1 vocab-trigger instrument (spec is pinned in
|
||
`docs/handoffs/COMPREHENSION-READER-AUDIT.md` §measurable-test).
|
||
- S4: Phase 3.2 HITL proposal-queue CLI surface.
|
||
- S5: Promotion sweeps, capability-index entries, docs/memory
|
||
housekeeping.
|
||
|
||
**Arc close:** all three tiers merged; Phase 5 trigger evaluated with
|
||
evidence in hand; next arc scoped from it.
|
||
|
||
## 7. Non-goals (this arc)
|
||
|
||
- ADR-0246 §3.7 / identity-gate calibration (evidence-blocked).
|
||
- `core/ports/` Ring-2/3 consumption (own future flag-gated units).
|
||
- Universal-nested-in-connective, co-reference, tense bands.
|
||
- Any serving-flag flip without explicit ratification.
|
||
- Zig substrate work.
|