core/teaching
Shay 0a78545e3d feat(teaching): core proposal-queue reseal — the ledger_reseal stage (Phase D)
`RatificationReceipt.pending_stages` has named `ledger_reseal` since the
ratification ceremony was written and nothing performed it, so a sealed ledger
went stale the moment curriculum changed. This is that stage, plus the CLI
verb a human runs, and it is deliberately NOT reachable from `ratify_chain`
(doctrine forbids ratification automation, and a per-row reseal would churn
the ledger's content_sha256).

The load-bearing property is not "the ledger can be rewritten" — it is that
rewriting it cannot grant a serving license by accident. Reliability is
commitment precision, so a curriculum band clears theta_SERVE on correct
NON-COMMITMENTS alone (Phase C, PR #121). A plain regenerate verb would flip
four bands from disclosed to authoritative as a side effect of housekeeping,
on evidence that is ~99% non-entailed, which ADR-0262 §5.1 rules
unacceptable. So:

- `plan_reseal` computes the license DELTA before writing anything, reading
  the current ledger through `load_capability_ledger` — the production entry
  point — so a tampered ledger refuses here instead of being overwritten and
  losing the evidence, and the stage inherits the capability's DECLARED
  absence policy rather than choosing its own (bridge rule 5).
- `apply_reseal` REFUSES by default when any band would become newly
  licensed, naming the bands and their `entailed` counts. `--allow-new-
  licenses` is the ratification. Revocations are never gated: losing a
  license is the gate becoming more conservative and needs no authorization.
- `deduction_serve` is deliberately absent from `_RESEALABLE`. Its ledger is
  SHA-sealed, ratified, and gating a live flag, and 21 of its 25 bands do not
  clear theta_SERVE on distinct evidence. A verb that regenerated it would
  erase a measured exposure as housekeeping.
- `ratify`'s output now names the command that performs its pending stage.
  Naming a stage without naming its command is how this one stayed unperformed.

Exit codes: 0 dry-run/applied, 1 refused, 2 unknown capability.

[Verification]: in-worktree on canonical CPython 3.12.13 with `uv sync
--locked`: smoke 571 (unchanged), deductive 327 (310 + 17).
`chat/data/curriculum_serve_ledger.json` still absent after the full suite —
no test writes it. Caught and fixed one real gate failure:
`test_no_production_adapter_passes_missing_ok` correctly rejected an explicit
`missing_ok=True`; the fix routes through the manifest instead.
2026-07-26 10:20:56 -07:00
..
admissibility_exemplars Fix admissibility exemplars data and test script for geometric engine updates 2026-07-04 15:25:45 -07:00
cognition_chains feat(gsm8k): Gate A1 multiplicative comparative recognizer injection (#805) 2026-06-17 14:05:06 -07:00
cross_pack_chains feat(adr-0067): cross-pack teaching chains — Plan Phase 4 closed 2026-05-18 17:22:43 -07:00
domain_chains Add chain-first capability ledger and domain seeds (#97) 2026-05-20 21:33:24 -07:00
math_corpora feat(ADR-0131.2.B): B2 teaching-corpus enrichment — load-bearing gate (#177) 2026-05-23 11:29:48 -07:00
math_proposals feat(ADR-0172/W3): core eval math-contemplation CLI lane (#384) 2026-05-27 12:58:31 -07:00
proposals feat(evals): Author 200-case GSM8K math evaluation corpus and verification script 2026-07-04 16:03:51 -07:00
relations_chains content(en_core_relations_v1): +14 kinship/social lemmas + +14 chains, cognition eval byte-identical, ratify-idempotent (#211) 2026-05-23 22:47:53 -07:00
relations_chains_v2 feat(packs): en_core_relations_v2 — pronouns + role-fillers (Phase 2.4) 2026-05-18 16:42:02 -07:00
__init__.py chore(teaching): MetricSet dataclass (ADR-0142 debt #3) (#231) 2026-05-24 15:15:02 -07:00
audit.py feat(adr-0057): operator supersession history view — closes the supersede loop 2026-05-18 10:40:38 -07:00
contemplation.py feat: 3lang depth PropGraph unification - phase refinements, wiring, tests + session pickup cleanups/governance 2026-07-08 07:07:11 -07:00
correction.py
coverage.py feat(adr-0174-phase5a): retire inert GSM8K scoring-path reader 2026-05-28 13:38:44 -07:00
cross_pack_supersede.py feat(phase5+bench): cross-pack supersede + articulation benchmark suite 2026-05-18 17:44:59 -07:00
curriculum_premises.py feat(curriculum): query-scoped premise compilation (ADR-0264 R5-R7) 2026-07-25 17:02:36 -07:00
discovery.py feat(third-door): wire high surprise to DiscoveryCandidate (#20 follow-up) 2026-07-13 17:25:17 -07:00
discovery_sink.py
discovery_yield.py feat(telemetry): discovery-yield-per-served-turn baseline (ADR-0255) 2026-07-23 07:27:00 -07:00
epistemic.py feat(teaching): ADR-0218 P3 — proof-carrying coherence promotion 2026-06-11 17:02:45 -07:00
exemplar_ingest.py feat(derivation): Gate A2a unit partition injection (#809) 2026-06-17 18:14:24 -07:00
from_curriculum.py feat(teaching): ADR-0104 — curriculum-sourced teaching proposals (#107) 2026-05-22 10:05:14 -07:00
from_miner.py feat(teaching): implement ADR-0095 — Miner-Sourced Teaching Proposals 2026-05-21 18:18:51 -07:00
gaps.py feat(teaching): discovery gaps aggregator + auto-promotion queue (Phase 1.1+1.2) 2026-05-18 16:04:39 -07:00
ledger_reseal.py feat(teaching): core proposal-queue reseal — the ledger_reseal stage (Phase D) 2026-07-26 10:20:56 -07:00
math_claim_signature.py feat(ADR-0167/W2-B): lexical claim signature + dedup (#353) 2026-05-27 06:56:36 -07:00
math_composition_proposal.py feat(ADR-0169/CC-2+CC-3): CompositionClaim ratification handler + decomposer heuristic tightening (#393) 2026-05-27 15:15:11 -07:00
math_composition_ratification.py Lane 4: Registry Consolidation (language_packs to packs) 2026-07-04 15:11:28 -07:00
math_contemplation.py feat(brief-B): enrich composition_reclassification payload to be directly ratifiable 2026-05-27 20:46:10 -07:00
math_contemplation_proposal.py feat(ADR-0169/CC-2+CC-3): CompositionClaim ratification handler + decomposer heuristic tightening (#393) 2026-05-27 15:15:11 -07:00
math_evidence.py feat(ADR-0167/W1-A): MathReaderRefusalEvidence schema + canonical-bytes (#350) 2026-05-27 06:30:21 -07:00
math_frame_proposal.py feat(ADR-0168/F1): FrameClaim ratification handler (Tier 1.5) (#389) 2026-05-27 14:10:43 -07:00
math_frame_ratification.py Lane 4: Registry Consolidation (language_packs to packs) 2026-07-04 15:11:28 -07:00
math_inference_proposal.py feat(ADR-0172/W5): MathReaderInferenceProposal schema (Tier 2) (#388) 2026-05-27 14:01:50 -07:00
math_lexical_ratification.py Lane 4: Registry Consolidation (language_packs to packs) 2026-07-04 15:11:28 -07:00
math_reasoning_trace.py feat(teaching/W0): ReasoningTrace substrate for ADR-0172 Tier 1 (#379) 2026-05-27 12:21:59 -07:00
metric_set.py chore(teaching): MetricSet dataclass (ADR-0142 debt #3) (#231) 2026-05-24 15:15:02 -07:00
migrate_proposals_source_field.py feat(teaching): implement ADR-0094 — Proposal Source Provenance 2026-05-21 18:11:09 -07:00
oov_gaps.py feat(teaching): OOV signal flywheel — sink, aggregator, auto-promotion (Phase 2.3) 2026-05-18 16:42:26 -07:00
oov_promotion.py feat(teaching): OOV signal flywheel — sink, aggregator, auto-promotion (Phase 2.3) 2026-05-18 16:42:26 -07:00
oov_sink.py feat(teaching): OOV signal flywheel — sink, aggregator, auto-promotion (Phase 2.3) 2026-05-18 16:42:26 -07:00
promotion.py feat(teaching): discovery gaps aggregator + auto-promotion queue (Phase 1.1+1.2) 2026-05-18 16:04:39 -07:00
proof_promotion.py feat(teaching): ADR-0218 P3 — proof-carrying coherence promotion 2026-06-11 17:02:45 -07:00
proposals.py fix(ADR-0167): route contemplation and proposal replay by candidate domain (#363) 2026-05-27 09:43:16 -07:00
provenance.py
queue.py feat(ADR-0161.2): HITL queue backpressure — pending-count cap + queue_full reports (#311) 2026-05-26 16:16:08 -07:00
ratification.py feat(provenance,teaching): close the lateral gaps the assessment actually found 2026-07-25 04:51:15 +00:00
recognizer_synthesis.py feat(derivation): Gate A2a unit partition injection (#809) 2026-06-17 18:14:24 -07:00
relation_parse.py Lane 4: Registry Consolidation (language_packs to packs) 2026-07-04 15:11:28 -07:00
replay.py feat(ADR-0163.C): contemplation ingests admissibility exemplars and emits DerivedRecognizer proposals through the HITL corridor (#301) 2026-05-26 12:26:56 -07:00
review.py
source.py feat(ADR-0163.C): contemplation ingests admissibility exemplars and emits DerivedRecognizer proposals through the HITL corridor (#301) 2026-05-26 12:26:56 -07:00
store.py feat(logos): bulk live morph authority on turn + teaching seams 2026-07-20 16:35:04 -07:00
supersede.py feat(adr-0057): operator supersede CLI — retire active chain by appended replacement 2026-05-18 10:35:49 -07:00