core/docs/curriculum/epistemology_v1.md
Shay 2acf71f024 curriculum(epistemology-v1): five reviewed chains; holdout term_capture +4.2pp
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.
2026-05-18 14:02:37 -07:00

7.1 KiB
Raw Blame History

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-existing wisdom orders judgment, asserting the inverse dependency direction (wisdom orders judgment, judgment depends on wisdom to be sound).
  • (evidence, verification)evidence grounds knowledge: cognate to truth grounds knowledge but admitting evidence as the warranting relation.
  • (inference, cause)inference requires evidence: pairs with knowledge 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 (createdreplaytransitionaccepted_corpus_append) is one line; replaying the log reconstructs the active view deterministically.


What this unit demonstrates

  1. The propose/review/accept loop works end-to-end on the production corpus — not just in the demo trilogy.
  2. The supersede surface produces a clean retirement trailcore teaching supersessions shows the retired chain paired with its replacement and the supersession provenance string.
  3. 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.
  4. The replay-equivalence gate's no-regression guarantee held for every proposal — public split metrics did not move.
  5. Curriculum work can target specific measurable misses (the verification_wisdom_036 case) 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.