core/generate
Shay 6816e6220c fix(realize): lookback hardening — defensive admissibility re-assertion + coverage
From the mandated lookback audit of the composed R0→R1→R1c→OOV surface:

- wrong=0 HAZARD (medium): realize_quantitative trusted equation admissibility it
  never checked. `comprehend_quantitative` runs real check_admissibility, but the
  type does not enforce it, so a future non-reader constructor could slip a
  dimensionally-incoherent 'pending'/'refused' equation into the held self (then
  surfaced as-told by DETERMINE). Now RE-ASSERTS admitted-status defensively ->
  NotRealized("unadmitted_equation"); docstring corrected to match (no longer claims
  the type guarantees it). Bite test via a hand-built pending-equation graph.
- Defensive: wrap binding_graph hashing -> NotRealized("unhashable_structure") so a
  future numeric field is a clean refusal, not an uncaught TypeError mid-write.
- Coverage (the obligations now bite, not decoration): unadmitted_equation,
  not_a_quant_comprehension, no_bound_fact, grounding_failed (monkeypatched probe),
  cross-substrate coexistence (meaning_graph + binding_graph in one vault — recall
  isolates, structure_keys differ), and the negated_relation refusal (hand-built,
  since the reader encodes declarative negation in the PREDICATE not rel.negated).
- Drift: R0 idempotency test now names the actual dedup key (structure_key, not
  content_hash); scope doc notes #591 made OOV placement injective (the §0/§1
  non-injectivity finding describes the pre-#591 substrate).

Note: the lookback flagged negated_relation as a high reachable-untested hazard, but
verification showed the reader never sets rel.negated=True for declaratives (it
refuses "X is not a Y" or uses some_not/disjoint predicates) — so it is a defensive
branch, tested via a hand-built graph. Green: 35 realize + ruff clean.
2026-06-06 06:31:54 -07:00
..
binding_graph feat: Phase 1 — canonize binding-graph interlingua + INV-26 neutrality 2026-06-04 16:20:12 -07:00
comprehension
cue_precision
derivation feat: add gsm8k r1 reconstruction 2026-06-04 13:25:11 -07:00
meaning_graph feat(comprehend): propositional-logic comprehension (4th domain, flagship oracle) 2026-06-05 23:24:54 -07:00
proof_chain feat: add deductive proof evidence gates 2026-06-04 08:37:51 -07:00
realize fix(realize): lookback hardening — defensive admissibility re-assertion + coverage 2026-06-06 06:31:54 -07:00
__init__.py
admissibility.py
articulation.py
articulation_legality.py
attention.py
bridge_trace.py
dialogue.py feat(persistence): Shape B+ Phase C — SessionContext.snapshot/restore (full lived state) 2026-06-05 12:13:46 -07:00
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 feat: add gsm8k r1 reconstruction 2026-06-04 13:25:11 -07:00
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 feat(persistence): Shape B+ Phase C — SessionContext.snapshot/restore (full lived state) 2026-06-05 12:13:46 -07:00
quantitative_comprehension.py feat(comprehend): arithmetic word-problems via binding_graph (5th domain, real admissibility) 2026-06-06 00:43:16 -07:00
realizer.py
realizer_guard.py
recognizer_anchor_inject.py Harden no-reference n-times comparative guard 2026-06-03 15:22:42 -07:00
recognizer_match.py
recognizer_registry.py
relational_field_reader.py feat(field-wedge): geometric field reader — relational-metric lane wrong=0 (Phase W.1) 2026-06-04 19:34:43 -07:00
relational_symbolic_reader.py feat(field-wedge): ablation verdict — field is decoration on additive (C3) (Phase W.2) 2026-06-04 19:44:22 -07:00
result.py
rotor_admissibility.py
salience.py
semantic_templates.py
stream.py refactor(generate): remove redundant forbidden-site _close_final_state; rename "Drift fix 2" 2026-06-05 08:17:17 -07:00
surface.py
templates.py