feat(trackb): S1–S4 symbolic SME, selector, pure-S1 coverage gain (Inc2) #86

Merged
core-labs merged 2 commits from feat/trackb-symbolic-sme-s2s4 into main 2026-07-20 03:12:52 +00:00
Owner

Summary

Track B Increment 2 for ADR-0252: prove the structure-mapping path earns its keep (generalization ratio > 1, coverage gain, selector), without serving cutover.

Extends Increment 1 (generate/structure_mapping/) with:

  • Canonicals S1–S4 (pure-family gates; refuse supersets)
  • Overlapping-waves selector (rank, refuse ties/empty, structure-only ranking)
  • Generalized 3-gate wrong=0 solve corridor
  • SM-owned pure-S1 text extract (off-serving fallback when the live reader refuses) — recovers four real holdout cases: 0148, 0228, 0234, 0441

Bar results (command-backed)

Bar Result
Generalization ratio > 1 S1 = 9.0 (9 real holdout IDs / 1 template)
Coverage gain or organ retirement +4 holdout solves (organ 5 → trackb 9), wrong=0; no organ retirement
Selector S1/S2/S3 route correctly; empty refuses; transfer ≠ S1

Full tables + raw command output: docs/research/trackb-inc2-generalization-2026-07-20.md

Honest frontiers

  • S2–S4 holdout ratio = 0 — parser frontier: organ graphs on only 5/500 holdout cases (all S1). S2 proven on real public transfer graphs (engineering evidence, not holdout ratio).
  • S3/S4 emit blocked by multi-register scope (apply_rate / compare_additive out of Tier-2a) — map OK, refuse at cert (gates not weakened).
  • Serving reader unchanged; no organ retirement; sealed test untouched.

Test plan

  • uv run pytest tests/test_trackb_s1_structure_mapping.py tests/test_trackb_inc2_structure_mapping.py -q → 35 passed
  • uv run python scripts/measure_trackb_inc2.py --mode all → ratio 9.0, +4 coverage, selector green, wrong=0
  • uv run core test --suite smoke -q → 176 passed (~132s)

[Verification]: Smoke suite passed locally (~132s, 176 passed); trackb unit tests 35 passed; measure_trackb_inc2 all modes green.

STOP

Reviewer verifies against code (blindness, pure-family gates, real holdout IDs for ratio, three-gate wrong=0) before any serving cutover or next family expansion.

## Summary Track B **Increment 2** for ADR-0252: prove the structure-mapping path *earns its keep* (generalization ratio > 1, coverage gain, selector), without serving cutover. Extends Increment 1 (`generate/structure_mapping/`) with: - Canonicals **S1–S4** (pure-family gates; refuse supersets) - Overlapping-waves **selector** (rank, refuse ties/empty, structure-only ranking) - Generalized **3-gate wrong=0** solve corridor - **SM-owned pure-S1 text extract** (off-serving fallback when the live reader refuses) — recovers four real holdout cases: **0148, 0228, 0234, 0441** ## Bar results (command-backed) | Bar | Result | | --- | --- | | Generalization ratio > 1 | **S1 = 9.0** (9 real holdout IDs / 1 template) | | Coverage gain or organ retirement | **+4** holdout solves (organ 5 → trackb 9), `wrong=0`; no organ retirement | | Selector | S1/S2/S3 route correctly; empty refuses; transfer ≠ S1 | Full tables + raw command output: `docs/research/trackb-inc2-generalization-2026-07-20.md` ## Honest frontiers - **S2–S4 holdout ratio = 0** — parser frontier: organ graphs on only 5/500 holdout cases (all S1). S2 proven on real public transfer graphs (engineering evidence, not holdout ratio). - **S3/S4 emit** blocked by multi-register scope (`apply_rate` / `compare_additive` out of Tier-2a) — map OK, refuse at cert (gates not weakened). - **Serving reader unchanged**; no organ retirement; sealed test untouched. ## Test plan - [x] `uv run pytest tests/test_trackb_s1_structure_mapping.py tests/test_trackb_inc2_structure_mapping.py -q` → 35 passed - [x] `uv run python scripts/measure_trackb_inc2.py --mode all` → ratio 9.0, +4 coverage, selector green, wrong=0 - [x] `uv run core test --suite smoke -q` → 176 passed (~132s) `[Verification]: Smoke suite passed locally (~132s, 176 passed); trackb unit tests 35 passed; measure_trackb_inc2 all modes green.` ## STOP Reviewer verifies against code (blindness, pure-family gates, real holdout IDs for ratio, three-gate wrong=0) before any serving cutover or next family expansion.
core-labs added 1 commit 2026-07-20 02:49:36 +00:00
Increment 2 for ADR-0252 Track B. Extends Increment 1's structure-mapping
slice with pure-family canonicals S2–S4, overlapping-waves selector, and a
structure-mapping-owned pure-S1 text extract that recovers four real
holdout cases the serving reader misses (0148, 0228, 0234, 0441).

Bar results (command-backed via scripts/measure_trackb_inc2.py):
- generalization ratio S1 = 9.0 (9 holdout cases / 1 template)
- coverage gain organ 5 → trackb 9, wrong=0
- selector routes S1/S2/S3; refuses empty; surface≠structure

Off-serving: no organ retirement, serving reader untouched. S2–S4 holdout
ratios are 0 (parser frontier). S3/S4 emit refuses at multi-register scope
without weakening the three-gate wrong=0 path.

[Verification]: Smoke suite passed locally (~132s, 176 passed);
trackb unit tests 35 passed; measure_trackb_inc2 all modes green.
core-labs added 1 commit 2026-07-20 03:04:39 +00:00
The inverted-seed P2 regex treated optional "times" as optional, so
additive "8 more" on multi-entity zoo case 0361 extracted as pure S1 and
the three-gate corridor emitted 1.125 vs gold 114.0 (wrong≠0).

- Require explicit multiplicative surface (times as many / twice the …)
- Fail-closed purity gate: multi-clause markers, multi-numeric, multi-mult
- Regression tests for 0361 and bare "N more"
- measure --mode full-holdout-wrong0 over all 500 holdout cases

[Verification]: full-holdout emit_ok=9 wrong=0 refused=491; unit 37 passed
core-labs merged commit d8d62b8ea3 into main 2026-07-20 03:12:52 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: core-labs/core#86
No description provided.