generate/rate_comprehension/reader.py: read_rate_problem comprehends explicit single-rate prose into a RateProblem via structural recognizers — rate value (<N> <plural> per <singular>), duration (for/in <N> <unit>), standalone quantity (outside those spans), query (how many <unit> by unit-match, or speed in <X> per <Y> -> rate). The compound-unit-consistency check is the wrong=0 gate: a duration whose unit isn't the rate denominator (miles/hour for 30 minutes) REFUSES rate_unit_mismatch, never converts. Refuses combined_rates (>=2 rate clauses), temporal_state (clock markers), missing_rate/time/quantity (underdetermined). run_reader lane + 'reader' CLI. R3 reader: setup_correct 8 / setup_wrong 0 / refused_correct 4 -> answers 6 correct / 0 wrong / 6 refused (the 6/0/6 target). Reuses R2 verify_answer_choice end-to-end. Off-serving. 6 reader tests + constructed unit-mismatch guard. |
||
|---|---|---|
| .. | ||
| answer_choices | ||
| binding_graph | ||
| comprehension | ||
| constraint_comprehension | ||
| contemplation | ||
| cue_precision | ||
| derivation | ||
| determine | ||
| meaning_graph | ||
| proof_chain | ||
| rate_comprehension | ||
| 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 | ||
| 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 | ||