docs(reader-arc): increment-2 CASE-FIRST plan — 0148/0001 first-conversion cluster (for ruling) #80

Closed
core-labs wants to merge 6 commits from feat/reader-inc2-caseband into main

6 commits

Author SHA1 Message Date
Shay
e3da148d99 docs: add session break summary for 2026-07-19 2026-07-19 13:11:10 -07:00
Shay
46f3281f97 fix(reader): tighten _token_in multi-word grounding to require contiguous substring
Tightens the ADR-0250 increment 2 multi-word phrase grounding relaxation to verify that the matched words appear as a contiguous substring in the original source, preserving the strict wrong=0 gate while admitting the 0148 conversion. Includes graph dump as proof of conversion.
2026-07-19 12:23:28 -07:00
Shay
471d6721e2 feat(reader): integrate mass-noun comparative logic for case 0148
Commits the WIP parser integration and recognizer logic left by previous session. Updates graph logic, refusal taxonomy filters, roundtrip token matching, and recognizer_match patterns to formally support mass-noun comparatives.
Passes exact holdout_dev/v1 261-case measurement and full smoke validation.
2026-07-19 11:40:37 -07:00
Shay
8a88939790 feat(reader): fix mass-noun multiplier extraction for 0148
Updates has_numeric_token to preserve comparative sentences containing only multiplier anchors like 'twice' by adding _COMPARE_MULT_ANCHOR_TOKENS_RE.
Updates _COMPARE_MASSNOUN_RE to allow an optional prepositional prefix before the subject.
2026-07-19 11:40:26 -07:00
Shay
4fbc992a77 feat(reader-arc): mass-noun compare frame (0148 core piece) — WIP, verified extraction + fail-closed
Increment 2, target 0148. _COMPARE_MASSNOUN_RE + wiring in
_compare_multiplicative_candidates: 'the [total] number of <unit> counted on
<A> was twice the total number counted on <B>' -> A = factor x B. Verified:
extracts 0148's statement correctly (actor='the first day', ref='the second
day', factor=2.0, forward); fail-closed (additive 'N more than' -> 0 cands;
off-shape -> 0 cands; possessive frame unaffected). Regression-safe: 76
comparative/compare/q-diff tests pass, tune wrong=0 PARSED=3.

NOT yet converting 0148: discovered parse_and_solve parses these day-entity
sentences via a DIFFERENT reader path (produces title-case 'First Day'/'Second
Day' entities) — both extract_operation_candidates + extract_initial_candidates
return [] for the possessive compare + seed, yet the full reader solves rung-1.
Next: locate that path, wire the mass-noun frame into it with matching entity
canonicalization; then passive-seed + prepositional-lead; then the 3-part proof.
2026-07-18 22:24:38 -07:00
Shay
92c811ec39 docs(reader-arc): increment-2 CASE-FIRST plan — 0148/0001 cluster (for ruling)
First-conversion increment, case-first per the fragmentation finding. Target
0148+0001; defer 0000. GROUNDED: canonical rewrites prove the spine
(forward-compare + statement-seed + summation) already solves both (1500, 480)
today, so the gap is isolated to two surfaces: conditional-seed-in-question +
complex compare reference forms (mass-noun / 'than' / aggregate+each). wrong=0
drivers (conditional-seed binding, aggregate peer-sum, 'each' distribution,
'than' gate) all positively-determined + fail-closed. Done-when = band-solve>=1
wrong=0 with correct-for-the-right-reason 3-part proof per conversion. Single
measure + haircut factor. q:difference stays deferred+locked.
2026-07-18 22:02:28 -07:00