docs(reader-arc): recalibration ADR-0251 + preserved knowledge + overfit inventory #81

Merged
core-labs merged 1 commit from docs/reader-arc-recalibration into main 2026-07-19 20:46:43 +00:00
Owner

Docs-only deliverable for the reader-arc recalibration. No implementation. Design-first gate — stops here, awaiting ruling on ADR-0251 §5.

What this is

feat/reader-inc2-caseband (PR #80) pursued case 0148's first real conversion via bespoke per-case
regexes and, per its own review thread, introduced debt: a fail-open loosening of the shared _token_in
grounding guard, an empty committed "proof" artifact, and bundled provenance. Per the recalibration
ruling on that PR, the branch is abandoned (not merged) and bespoke-per-case regex work on this reader is
halted. This PR is the documentation trail for that decision — four new files, zero code changes.

Contents

  • docs/adr/ADR-0251-...md — the recalibration ADR. §§1-4 record the halt/reset/eradication decision
    as executed and verified by command (local main == origin/main == forgejo/main @ 854ce023;
    the branch's specific debt is grep-confirmed absent from main; the #77/#78 foundations are
    grep-confirmed present and untouched; smoke 176 passed; holdout_dev/v1 correct=5 wrong=0 refused=495 (n=500) matches the pre-branch baseline exactly). §5 proposes (does not build) a geometric
    surface→canonical normalization spike using existing off-serving primitives (conformal_procrustes,
    VocabManifold, the cognition pipeline's Phase C anti-unification telemetry), with an explicit
    wrong=0-gated generalization-ratio measurement contract and explicit disclaimers (no Smith-chart
    algebra per ADR-0246 §6, no Fibonacci "dimensional cascade"). Marked Proposed — awaiting ruling.
  • docs/research/reader-arc-recalibration-preserved-knowledge-2026-07-19.md — the two genuinely-
    general facts pulled from the abandoned branch before it's set aside: the has_numeric_token
    multiplier-blindness bug (root cause traced to classify_sentence()'s closed word-number set; a
    synthetic repro plus 23 real holdout_dev/v1 corpus cases matching the failure shape; confirmed not
    a wrong=0 hazard because the independent ADR-0191 completeness guard already catches it via
    lookup_multiplier; a minimal fix idea documented but deliberately not landed), and case 0148's
    correct-for-the-right-reason decomposition. Also documents where the branch's own narrative overstated
    what it had actually verified (the claimed-committed graph dump was 0 bytes).
  • docs/research/0148-first-conversion-proof.md — the real, non-empty 0148 graph dump (the abandoned
    branch committed this file empty). Generated fresh from the branch's code in a throwaway worktree
    (since removed) and cross-checked against main's current refusal behavior for the same case.
  • docs/research/reader-arc-overfit-inventory-2026-07-19.md — 31 file:line-cited bespoke/single-case
    surface patterns in the reader on main, as candidates for what a future normalizer would need to
    subsume. Inventory only — nothing is removed or modified; the existing regex reader keeps serving
    unchanged.

What this PR does NOT do

No code changes. Does not touch generate/*.py, does not re-land any part of feat/reader-inc2- caseband, does not start the ADR-0251 §5 spike, does not touch the sealed test.

Test plan

  • git status/SHA verification: local main == origin/main == forgejo/main @ 854ce023 (see
    ADR-0251 §2 for the exact commands/output)
  • grep confirms the abandoned branch's debt (_COMPARE_MASSNOUN_RE, the loosened _token_in
    signature, any empty *proof*.md) is absent from main
  • grep confirms compare_multiplicative (#77) and NEUTRAL_COUNT_VERBS (#78) remain present and
    unmodified
  • uv run core test --suite smoke -q → 176 passed, 0 failed
  • uv run python -m evals.gsm8k_math.holdout_dev.v1.runnercorrect=5 wrong=0 refused=495 (n=500),
    matching the committed report.json baseline exactly
  • PR #80 commented (knowledge-capture-complete + close-not-merge request) — closing the PR itself
    needs manual action; no close/update-state tool is exposed on the Forgejo MCP connector used here

🤖 Generated with Claude Code

**Docs-only deliverable for the reader-arc recalibration. No implementation. Design-first gate — stops here, awaiting ruling on ADR-0251 §5.** ## What this is `feat/reader-inc2-caseband` (PR #80) pursued case 0148's first real conversion via bespoke per-case regexes and, per its own review thread, introduced debt: a fail-open loosening of the shared `_token_in` grounding guard, an empty committed "proof" artifact, and bundled provenance. Per the recalibration ruling on that PR, the branch is abandoned (not merged) and bespoke-per-case regex work on this reader is halted. This PR is the documentation trail for that decision — four new files, zero code changes. ## Contents - **`docs/adr/ADR-0251-...md`** — the recalibration ADR. §§1-4 record the halt/reset/eradication decision as **executed and verified by command** (local `main` == `origin/main` == `forgejo/main` @ `854ce023`; the branch's specific debt is grep-confirmed absent from `main`; the `#77`/`#78` foundations are grep-confirmed present and untouched; smoke 176 passed; `holdout_dev/v1` `correct=5 wrong=0 refused=495 (n=500)` matches the pre-branch baseline exactly). §5 **proposes** (does not build) a geometric surface→canonical normalization spike using existing off-serving primitives (`conformal_procrustes`, `VocabManifold`, the cognition pipeline's Phase C anti-unification telemetry), with an explicit `wrong=0`-gated generalization-ratio measurement contract and explicit disclaimers (no Smith-chart algebra per ADR-0246 §6, no Fibonacci "dimensional cascade"). Marked **Proposed — awaiting ruling**. - **`docs/research/reader-arc-recalibration-preserved-knowledge-2026-07-19.md`** — the two genuinely- general facts pulled from the abandoned branch before it's set aside: the `has_numeric_token` multiplier-blindness bug (root cause traced to `classify_sentence()`'s closed word-number set; a synthetic repro plus 23 real `holdout_dev/v1` corpus cases matching the failure shape; confirmed **not** a `wrong=0` hazard because the independent ADR-0191 completeness guard already catches it via `lookup_multiplier`; a minimal fix idea documented but deliberately **not landed**), and case 0148's correct-for-the-right-reason decomposition. Also documents where the branch's own narrative overstated what it had actually verified (the claimed-committed graph dump was 0 bytes). - **`docs/research/0148-first-conversion-proof.md`** — the real, non-empty 0148 graph dump (the abandoned branch committed this file empty). Generated fresh from the branch's code in a throwaway worktree (since removed) and cross-checked against `main`'s current refusal behavior for the same case. - **`docs/research/reader-arc-overfit-inventory-2026-07-19.md`** — 31 file:line-cited bespoke/single-case surface patterns in the reader on `main`, as candidates for what a future normalizer would need to subsume. **Inventory only** — nothing is removed or modified; the existing regex reader keeps serving unchanged. ## What this PR does NOT do No code changes. Does not touch `generate/*.py`, does not re-land any part of `feat/reader-inc2- caseband`, does not start the ADR-0251 §5 spike, does not touch the sealed test. ## Test plan - [x] `git status`/SHA verification: local `main` == `origin/main` == `forgejo/main` @ `854ce023` (see ADR-0251 §2 for the exact commands/output) - [x] `grep` confirms the abandoned branch's debt (`_COMPARE_MASSNOUN_RE`, the loosened `_token_in` signature, any empty `*proof*.md`) is absent from `main` - [x] `grep` confirms `compare_multiplicative` (#77) and `NEUTRAL_COUNT_VERBS` (#78) remain present and unmodified - [x] `uv run core test --suite smoke -q` → 176 passed, 0 failed - [x] `uv run python -m evals.gsm8k_math.holdout_dev.v1.runner` → `correct=5 wrong=0 refused=495 (n=500)`, matching the committed `report.json` baseline exactly - [x] PR #80 commented (knowledge-capture-complete + close-not-merge request) — closing the PR itself needs manual action; no close/update-state tool is exposed on the Forgejo MCP connector used here 🤖 Generated with [Claude Code](https://claude.com/claude-code)
core-labs added 1 commit 2026-07-19 20:43:27 +00:00
Records the reader-arc recalibration: halt bespoke-per-case regex work,
verified clean-base reset to main@854ce023, and eradication of
feat/reader-inc2-caseband's (PR #80) debt (loosened _token_in, empty
proof file, bundled provenance) without merging that branch.

Preserves the genuinely-general knowledge before the branch is retired:
the has_numeric_token multiplier-blindness bug (root cause + minimal fix
idea, deliberately not landed) and case 0148's correct-for-the-right-reason
decomposition, both independently re-verified against source rather than
copied from the branch's own claims (which included a stale narrative
about a graph-dump proof file that was actually committed empty).

Adds a file:line-cited overfit inventory (31 bespoke/single-case surface
patterns) as inventory only -- nothing removed, the existing regex reader
keeps serving unmodified.

ADR-0251 proposes (not builds) a geometric surface->canonical
normalization spike using existing off-serving primitives
(conformal_procrustes, VocabManifold, the cognition pipeline's Phase C
anti-unification telemetry), wrong=0-gated against holdout_dev/v1, with
Smith-chart algebra and any Fibonacci "dimensional cascade" explicitly
disclaimed. Awaiting ruling -- no implementation started.
core-labs merged commit 1de6dbc945 into main 2026-07-19 20:46:43 +00:00
core-labs deleted branch docs/reader-arc-recalibration 2026-07-19 20:46:45 +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#81
No description provided.