core/generate/derivation
Shay 94d8137ad1 feat(r4): goal-residual production — ADR-0207 §5 step 2 (sealed lane)
First composition lift-target built end-to-end: cv-0005 (train_sample 0037)
now resolves in the sealed pool as goal - Σprogress = 10 - 3 - 4 = 3.

- generate/derivation/goal_residual.py: new R4 production. Reads a GOAL anchor
  (goal-intent lexeme) + a residual question, subtracts each same-referent
  progress quantity (progress reduces the residual regardless of world-polarity).
  Gated by the unchanged self-verification gate.
- wrong=0 firewall (test_reads_goal_not_possession): on a gain goal the
  goal-residual (20-5-6=9) DIVERGES from possession-accumulation (20+5+6=31);
  the production gives 9 and is all-subtract -> it reads the goal, not the
  possession. This is the coincidental-correctness trap cv-0005 alone hides
  (10-3-4 == 10-(3+4)).
- pool.py: goal_residual added to pooled_candidates (sealed). Verified: fires on
  exactly one train_sample case (0037, correct), zero new pool wrong-commits
  (the 8 are pre-existing, gated off serving by product_bridge).

Does NOT move the serving metric: train_sample stays 6/44/0 byte-identical
(serving = candidate-graph; product_bridge promotes only pure products, never a
subtract chain). The serving promotion gate for goal-residual is the next,
separately-gated step (needs the sealed 1,319 verdict). Smoke 73, math 4,
derivation/pool/practice 196, corpus, completeness-guard all green.
2026-06-03 21:50:59 -07:00
..
state feat(adr-0184): extract semantic-state helper seam S1 (#490) 2026-05-30 08:36:02 -07:00
__init__.py feat(adr-0182): prior-state question guard — temporal-scope confuser refuses (confuser wrong 2->1, pair-tells ->0) (#480) 2026-05-29 14:22:28 -07:00
accumulate.py feat(adr-0184): extract semantic-state helper seam S1 (#490) 2026-05-30 08:36:02 -07:00
clauses.py feat(adr-0178-gb1): clause segmentation + clause-local sub-derivation 2026-05-28 17:19:50 -07:00
comparatives.py feat(adr-0176-ms2): multi-step chain model — text + comparative operands 2026-05-28 16:35:41 -07:00
compose.py feat(adr-0178-gb3a): clause-scoped referent guard — refuse cross-clause aggregation (#456) 2026-05-29 09:15:52 -07:00
extract.py feat(adr-0163-f2): EX-6 hyphen-bonded unit extraction — pseudo-accumulation confusers refuse (wrong 7->5) (#473) 2026-05-29 12:23:26 -07:00
goal_residual.py feat(r4): goal-residual production — ADR-0207 §5 step 2 (sealed lane) 2026-06-03 21:50:59 -07:00
model.py feat(adr-0176-ms2): multi-step chain model — text + comparative operands 2026-05-28 16:35:41 -07:00
multistep.py feat(adr-0177-cp2a): cue-precision ledger training + measurement (+ unit hygiene) (#461) 2026-05-29 10:21:58 -07:00
pool.py feat(r4): goal-residual production — ADR-0207 §5 step 2 (sealed lane) 2026-06-03 21:50:59 -07:00
product_bridge.py feat(adr-0195): GSM8K product promotion bridge — serving 4/46/0 → 6/44/0, wrong=0 (#500) 2026-05-30 17:33:56 -07:00
search.py feat(adr-0182): cross-composer disagreement pooling — distractor 0014 + disguised-polarity refuse (confuser wrong 5->2) (#476) 2026-05-29 13:22:19 -07:00
target.py feat(adr-0182): prior-state question guard — temporal-scope confuser refuses (confuser wrong 2->1, pair-tells ->0) (#480) 2026-05-29 14:22:28 -07:00
verify.py feat(adr-0184): distinct-unit product rule — sealed reader wrong 13→8 (#486) 2026-05-30 08:35:35 -07:00