core/evals/constraint_oracle
Shay 4ddaef4d00 feat(constraint): two-category reader — prose to ConstraintProblem (R2 C5-C9)
generate/constraint_comprehension/reader.py: read_constraint_problem comprehends two-category constraint prose into a typed ConstraintProblem via five recognizers — C5 category-pair (from coefficient clauses; >2 -> too_many_categories), C6 coefficient (Each <cat> holds/has/costs/is-worth <N> <unit>; shared measured unit), C7 total-count (collective-unit sentence -> x+y=N; absent -> missing_total_count), C8 weighted-total (measured-unit sentence -> ax+by=T; absent -> missing_weighted_total), C9 query-target (How many <cat> -> the asked unknown). Refuses, never mis-assembles.

Reconciles the sketch's 'no equal coefficients' note: equal coefficients are a SOLVER refusal (indistinguishable_weights), not a reader one — the reader reads r2-010 setup_correct and the solver refuses it. run_reader lane + 'reader' CLI subcommand. R2 reader: setup_correct 10 / setup_wrong 0 / refused_correct 3; R1 7/0/3 and 15-case 15/0/0 unchanged. Off-serving. 8 reader tests incl. full read->solve->verify chain + meaningful-fail guards.
2026-06-07 07:34:55 -07:00
..
__init__.py feat(constraint): R2 setup oracle + gold + ADR-0211 — the ruler (R2 C2) 2026-06-07 07:19:29 -07:00
__main__.py feat(constraint): two-category reader — prose to ConstraintProblem (R2 C5-C9) 2026-06-07 07:34:55 -07:00
r2_gold.jsonl feat(constraint): R2 setup oracle + gold + ADR-0211 — the ruler (R2 C2) 2026-06-07 07:19:29 -07:00
runner.py feat(constraint): two-category reader — prose to ConstraintProblem (R2 C5-C9) 2026-06-07 07:34:55 -07:00
signature.py feat(constraint): R2 setup oracle + gold + ADR-0211 — the ruler (R2 C2) 2026-06-07 07:19:29 -07:00