core/generate
Shay e473f5b55f feat(teaching): ADR-0218 P3 — proof-carrying coherence promotion
The ratified capability, through the existing mutation owner only:

- teaching/proof_promotion.py — pure decider. Fresh-reads every premise AND
  the claim from the store (claim_entry_index; forms never proposer-supplied),
  strict status compares (no parse-defaulting), reading_certified must be the
  boolean True, engine certification via the pinned deductive engine,
  proposer_payload accepted and provably never read (del before use; poisoned-
  mapping test), certificate digest emitted for D4 trace-hash folding. Zero
  mutation; zero vault.store calls; zero status writes (proven with the
  INV-21/INV-29 detectors themselves).
- vault/store.py::apply_certified_promotion — the single transition site.
  Independently re-verifies: byte-for-byte replay under DEDUCTIVE_ENGINE_PIN,
  promotion_positive, live claim form/reading/status cross-checks, live
  premise form/reading/status cross-checks (staleness refuses). Fabricated or
  tampered certificates flip nothing; authority is live store state plus
  recomputation, never the artifact.
- generate/proof_chain/engine_pin.py — DEDUCTIVE_ENGINE_PIN mirrors the
  deductive_logic_v1 lane SHA; sync pinned by AST test against
  scripts/verify_lane_shas.py.
- Consistency fix found in lookback: both promotion sites now stamp
  epistemic_state alongside epistemic_status (the ADR-0148 site left the
  stored state tag stale; recall recomputed it, but the stored key lied).

Obligations: all six strict-xfail markers retired and live (O1/O2
strengthened to prove the transition through the vault owner); the
module-existence pin deleted per its own docstring; the two remaining
honesty pins kept. INV-21 allowlist unchanged; INV-29 allowlist unchanged
({vault/store.py}); INV-29's 29c visibility floor raised 2 -> 3 to cover the
new site.

No runtime turn path calls promotion; the deterministic demo is PR D.

Validation: new suite 49 passed; obligations 8 passed (0 xfail remaining);
invariants 66 passed; certificate 27 passed; 0148 6 passed; epistemic 20
passed; smoke files green; lane SHAs verified.
2026-06-11 17:02:45 -07:00
..
answer_choices feat(answer-choices): multiple-choice verifier with contradiction flag (R2 C4) 2026-06-07 07:26:00 -07:00
binding_graph
combined_rate_comprehension docs(cmb): lookback review + fix single-agent-attribution hygiene hazard (H3) 2026-06-08 13:27:17 -07:00
comprehension
constraint_comprehension docs(comprehension): whole-system organ capability ledger + fix ADR-0211 number collision 2026-06-08 06:15:51 -07:00
contemplation feat(ask): split question artifact path from proposal path 2026-06-09 11:28:52 -07:00
cue_precision
derivation test(derivation): add ADR-0184 semantic replay equivalence harness 2026-06-10 14:35:22 -07:00
determine
meaning_graph
proof_chain feat(teaching): ADR-0218 P3 — proof-carrying coherence promotion 2026-06-11 17:02:45 -07:00
rate_comprehension feat(rate): exact time-unit conversion for single-rate (R3.2b-e) 2026-06-08 05:43:51 -07:00
realize
__init__.py
admissibility.py
articulation.py
articulation_legality.py
attention.py
bridge_trace.py
dialogue.py
discourse_planner.py
exhaustion.py
graph_constraint.py
graph_planner.py
grounding_accessors.py
intent.py
intent_bridge.py
intent_ratifier.py
logic_canonical.py
logic_equivalence.py
math_candidate_graph.py
math_candidate_parser.py
math_completeness.py
math_parser.py
math_problem_graph.py
math_realizer.py
math_roundtrip.py
math_solver.py
math_symbolic_equivalence.py
math_symbolic_normalizer.py
math_verifier.py
morphology.py
ood_surface_generator.py
operators.py
perturbation_suite.py
proposition.py
quantitative_comprehension.py feat(comprehension): inverse reader frame — base of a more/fewer-than (PR-7b / R2 C0) 2026-06-07 07:06:26 -07:00
quantitative_expr.py
realizer.py
realizer_guard.py
recognizer_anchor_inject.py
recognizer_match.py
recognizer_registry.py
relational_field_reader.py
relational_symbolic_reader.py
result.py
rotor_admissibility.py
salience.py
semantic_templates.py
stream.py
surface.py
templates.py