ADR-0021 v1 schema land. epistemic_status is a position in the revision
graph, not a source-trust tier — coherence is the only admission signal.
Surfaces:
- teaching/epistemic.py: EpistemicStatus enum (COHERENT, CONTESTED,
SPECULATIVE, FALSIFIED); ADMISSIBLE_AS_EVIDENCE = {COHERENT}.
- PackMutationProposal.epistemic_status (default SPECULATIVE) + immutable
with_status() updater.
- ReviewedTeachingExample.epistemic_status (default SPECULATIVE);
orthogonal to acceptance per ADR §Schema impact.
- LexicalEntry.epistemic_status (default "coherent" for seed; absent in
JSONL is treated as the seed default — no retroactive tagging).
- compute_trace_hash + trace_hash_from_result + pipeline.py fold the
load-bearing proposal's epistemic_status into the trace hash so
replay detects different epistemic frames.
Non-hardening invariant (ADR-0021 §2): tests/test_epistemic_invariants.py
asserts no final/frozen/axiom/permanent flag on PackMutationProposal or
ReviewedTeachingExample, and EpistemicStatus contains no source-trust
tier names.
Docs: docs/runtime_contracts.md gains an Epistemic surface section.
Lanes green: smoke 27/27, teaching 10/10, packs 6/6, runtime 19/19,
cognition eval 100%.
31 lines
1.2 KiB
Python
31 lines
1.2 KiB
Python
"""teaching — correction capture, review, and proposal-only pack mutation.
|
|
|
|
The teaching loop allows CORE to learn from corrections in a controlled,
|
|
auditable way. Corrections flow through three stages:
|
|
|
|
1. Capture — extract a CorrectionCandidate from a correction intent
|
|
2. Review — validate the candidate (identity-safe, bounded, deterministic)
|
|
3. Store — persist reviewed examples; propose pack mutations without applying
|
|
|
|
Identity overrides are rejected at the review stage. Pack mutations are
|
|
emitted as proposals (PackMutationProposal) that require explicit external
|
|
approval before they touch the vocabulary manifold.
|
|
"""
|
|
|
|
from teaching.correction import CorrectionCandidate, extract_correction
|
|
from teaching.epistemic import ADMISSIBLE_AS_EVIDENCE, EpistemicStatus, parse_status
|
|
from teaching.review import ReviewedTeachingExample, ReviewOutcome, review_correction
|
|
from teaching.store import TeachingStore, PackMutationProposal
|
|
|
|
__all__ = [
|
|
"ADMISSIBLE_AS_EVIDENCE",
|
|
"CorrectionCandidate",
|
|
"EpistemicStatus",
|
|
"PackMutationProposal",
|
|
"ReviewedTeachingExample",
|
|
"ReviewOutcome",
|
|
"TeachingStore",
|
|
"extract_correction",
|
|
"parse_status",
|
|
"review_correction",
|
|
]
|