First end-to-end curriculum unit through the production
propose / review --accept / supersede operator surfaces against the
active teaching corpus. Replay-equivalence gate passed for every
proposal; public split byte-identical; holdout term_capture lifted
exactly as predicted.
- Supersede `verification_wisdom_grounds_judgment` →
`verification_wisdom_requires_knowledge`. Fixes the only corpus-
fixable holdout miss: `verification_wisdom_036`
("Is wisdom the same as knowledge?") now grounds with both
expected terms. Provenance carries
`:supersede(verification_wisdom_grounds_judgment)`.
- Propose + accept four new chains closing epistemology subgraph
cells:
cause_understanding_requires_knowledge
cause_judgment_requires_wisdom
verification_evidence_grounds_knowledge
cause_inference_requires_evidence
Each chain is pack-consistent, uses canonical predicates, and opens
a previously-empty (subject, intent) cell. Replay gate confirmed
no metric regression on the public split before each accept.
Lift (cognition eval):
public : intent 100% / surface 100% / term 91.7% / versor 100% (unchanged)
holdout : intent 100% / surface 94.7% / term 70.8%→75.0% / versor 100%
The remaining four holdout misses (correction_truth_040,
procedure_define_010, unknown_spirit_041, unknown_word_018) are
architectural — surface-composition gaps in the correction-
acknowledgment template, procedure-intent routing, and unknown-
intent surface — and out of scope for corpus surgery.
- teaching/cognition_chains/cognition_chains_v1.jsonl — 10 → 15 lines
(4 appends + 1 supersession marker; 1 retired chain still on disk
per the audit doctrine of append-only at the file level).
- teaching/proposals/proposals.jsonl — new append-only proposal log
with `created` / `replay` / `transition` / `accepted_corpus_append`
events for every accepted proposal.
- docs/curriculum/epistemology_v1.md — full curriculum log:
rationale per chain, prediction-vs-result on the holdout lift,
reproducibility commands, architectural-gap analysis.
Lanes (regression check):
core test --suite smoke 67 passed
core test --suite cognition 121 passed
core test --suite teaching 17 passed
tests/test_eval_holdout_split 10 passed
The first curriculum unit that *measurably moves a cognition-lane
metric* through the operator surfaces, with full provenance from
operator note back to corpus append.
7.1 KiB
Curriculum Unit — Epistemology v1
Date: 2026-05-18
Author: Shay
Lift: cognition holdout term_capture_rate 70.8% → 75.0% (+4.2pp); public split unchanged.
Active corpus after this unit: 14 chains (15 lines on disk, 1 retired).
Premise
CORE's reviewed teaching corpus is the inter-session memory surface (ADR-0055). The operator-driven path to extend it is the propose → replay-equivalence gate → operator accept loop (ADR-0057), plus the supersede surface for retiring chains in favour of replacements.
This unit is the first end-to-end use of those surfaces against the production corpus to measurably lift a cognition-lane metric.
What this unit teaches
Five reviewed chains closing epistemology-subgraph cells:
| Action | Old chain (if any) | New chain |
|---|---|---|
| Supersede | verification_wisdom_grounds_judgment |
verification_wisdom_requires_knowledge |
| Propose + Accept | — | cause_understanding_requires_knowledge |
| Propose + Accept | — | cause_judgment_requires_wisdom |
| Propose + Accept | — | verification_evidence_grounds_knowledge |
| Propose + Accept | — | cause_inference_requires_evidence |
All five claims are pack-consistent (subject + object both in
en_core_cognition_v1) and follow the canonical predicate set.
Why these chains (and not others)
The supersede
verification_wisdom_036 ("Is wisdom the same as knowledge?") was
the only holdout case whose term-capture miss was addressable by
corpus surgery. The case expects both wisdom and knowledge in
the surface; the prior chain (wisdom grounds judgment) emitted
only wisdom and judgment. Replacing the chain's object from
judgment to knowledge and the connective from grounds to
requires produces a defensible claim (wisdom presupposes
knowledge) and emits both expected terms.
No holdout case depended on the prior wisdom→grounds→judgment
doctrine, so the supersede is net-positive. Provenance on the new
entry: adr-0057:hand_authored:2026-05-18:supersede(verification_wisdom_grounds_judgment).
The four proposals
Each opens a previously-empty (subject, intent) cell in the
teaching index:
(understanding, cause)— understanding requires knowledge: the classical claim that understanding is structured-over-knowledge.(judgment, cause)— judgment requires wisdom: pairs with the pre-existingwisdom orders judgment, asserting the inverse dependency direction (wisdom orders judgment, judgment depends on wisdom to be sound).(evidence, verification)— evidence grounds knowledge: cognate totruth grounds knowledgebut admitting evidence as the warranting relation.(inference, cause)— inference requires evidence: pairs withknowledge requires evidence, locating inference downstream of evidence rather than alongside knowledge.
Each is defensible philosophically and passes the eligibility predicate (polarity=affirms, corpus-evidence-pointer, claim_domain=factual, boundary_clean, complete chain).
Why the holdout lift is exactly +4.2pp
Holdout has 19 cases × 1.27 terms-per-case ≈ 24 expected terms
total. Pre-unit term-capture was 70.8% = 17/24 ≈ 17 captured.
Post-unit captures one additional term (knowledge in
verification_wisdom_036), so 18/24 = 75.0%. The +4.2pp matches
the single-term fix exactly.
The remaining four holdout misses are architectural, not corpus-fixable:
| Case | Category | Gap |
|---|---|---|
correction_truth_040 |
correction | Correction-acknowledgment template doesn't mention the corrected subject lemma. |
procedure_define_010 |
procedure | procedure intent has no teaching-grounded surface path; pack-grounded path doesn't fire on this intent. |
unknown_spirit_041 |
unknown | UNKNOWN intent → disclosure; no clear (subject, intent) to teach. |
unknown_word_018 |
unknown | Same. |
Closing those four requires changes to runtime surface composition, not to the teaching corpus. They're correctly scoped out of this unit.
Public split: no regression
The replay-equivalence gate ran the full public cognition split twice
per proposal (active corpus vs. transient-with-append) and reported
replay_equivalent=True and regressed_metrics=[] for every one
of the four proposals. After all four accepts plus the supersede,
public split metrics are byte-identical to pre-unit:
intent_accuracy 100.0% (unchanged)
term_capture_rate 91.7% (unchanged)
surface_groundedness 100.0% (unchanged)
versor_closure_rate 100.0% (unchanged)
The supersede was operator-direct (no replay gate by design — operator explicitly accepts the change). It also did not regress any public metric.
Reproducibility
Every action is replayable from the proposal log + corpus file alone:
# Inspect the trail
core teaching audit # 15 lines on disk, 14 active, 1 dropped
core teaching supersessions # wisdom→grounds→judgment retired by →requires→knowledge
core teaching proposals --state accepted # the four new chains' proposal_ids
# Confirm the lift
core eval cognition # public unchanged
core eval cognition --split holdout # holdout term_capture 75.0%
The proposal-log JSONL is append-only at teaching/proposals/proposals.jsonl.
Every state transition (created → replay → transition →
accepted_corpus_append) is one line; replaying the log reconstructs
the active view deterministically.
What this unit demonstrates
- The propose/review/accept loop works end-to-end on the production corpus — not just in the demo trilogy.
- The supersede surface produces a clean retirement trail —
core teaching supersessionsshows the retired chain paired with its replacement and the supersession provenance string. - A four-chain batch + one supersession costs ~10 seconds of operator wall-time — propose is ~2s each (replay gate runs the cognition lane), accept is sub-second.
- The replay-equivalence gate's no-regression guarantee held for every proposal — public split metrics did not move.
- Curriculum work can target specific measurable misses
(the
verification_wisdom_036case) and the lift matches the prediction exactly.
Cross-References
- ADR-0055 — the inter-session-memory architecture this unit consumes.
- ADR-0056 — DiscoveryCandidate contemplation; the candidate JSONL in this unit was operator-authored (hand-augmented with corpus-evidence pointers) rather than emitted by the runtime, but the structure is the same.
- ADR-0057 — the proposal + replay gate + accept surface this unit uses; the supersede CLI is the follow-up at
8d2c84a. - teaching_order.md — the prerequisite-topological doctrine that scoped this unit's chain selection.