fix(numeric): catalog count drift 77->83 + WP-18 conformance-integrity gate - #1078
Merged
Conversation
Contributor
|
📓 NotebookLM Notebook linked to this PR
This notebook contains session context, decisions, and artifacts for this work. |
Contributor
Contributor
|
📓 NotebookLM Notebook linked to this PR
This notebook contains session context, decisions, and artifacts for this work. |
Contributor
PR DashboardGenerated at: 2026-06-14 12:50:46 UTC
Summary
|
This was referenced Jun 14, 2026
gHashTag
force-pushed
the
fix/catalog-count-drift-77-to-83
branch
from
June 14, 2026 12:55
1c19184 to
400186a
Compare
Contributor
|
📓 NotebookLM Notebook linked to this PR
This notebook contains session context, decisions, and artifacts for this work. |
Contributor
PR DashboardGenerated at: 2026-06-14 12:55:19 UTC
Summary
|
This was referenced Jun 14, 2026
gHashTag
force-pushed
the
fix/catalog-count-drift-77-to-83
branch
from
June 14, 2026 13:09
400186a to
c91ac82
Compare
This was referenced Jun 14, 2026
gHashTag
force-pushed
the
fix/catalog-count-drift-77-to-83
branch
from
June 14, 2026 13:14
c91ac82 to
cd77602
Compare
Contributor
|
📓 NotebookLM Notebook linked to this PR
This notebook contains session context, decisions, and artifacts for this work. |
Contributor
PR DashboardGenerated at: 2026-06-14 13:14:58 UTC
Summary
|
… + errata + P3109 docs Follow-up to #1064. Adds CI guards and docs without touching gen/ (L2 GENERATION: gen/ is derived, never hand-committed). The count-gate regenerates fresh against the SSOT and enforces SSOT == fresh codegen == 83. Paper-declared 84 -> non-fatal WARN pointing at the errata. - tools/check_catalog_count.py + .github/workflows/catalog-count-gate.yml - ERRATA_2026-06-14.md: arXiv:2606.09686 declares 84; canonical live = 83 - docs/: P3109 4-param cross-walk (arXiv:2606.04028), kappa FP8 E4M3, positioning Closes #1079
gHashTag
force-pushed
the
fix/catalog-count-drift-77-to-83
branch
from
June 14, 2026 13:20
cd77602 to
8f59cf7
Compare
Contributor
PR DashboardGenerated at: 2026-06-14 13:20:14 UTC
Summary
|
Contributor
|
📓 NotebookLM Notebook linked to this PR
This notebook contains session context, decisions, and artifacts for this work. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #1079
Summary
Two related fixes to the numeric-format conformance surface. Both are self-contained, stdlib-only, and CI-gated; the live gate verdict is CLEAN after this PR.
1. Catalog count drift 77 -> 83 + CI count-gate
The committed
gen/numeric/*was stale at 77 (pre-#1051 snapshot). The SSOTspecs/numeric/formats_catalog.t27carries 83// CATALOG:lines at HEAD16042f4. This regenerates all 16 tracked codegen targets so that SSOT == codegen == committed gen == 83.tools/check_catalog_count.py+.github/workflows/catalog-count-gate.yml: CI invariantSSOT line-count == codegen count == committed JSON count.ERRATA_2026-06-14.md: arXiv:2606.09686 declares 84; canonical live count is 83 (erratum noted).docs/: P3109 4-param cross-walk, kappa FP8 E4M3 note, conformance-layer positioning.2. WP-18 conformance-corpus integrity gate + F-1 fix
A second CI gate that locks the conformance corpus itself against silent drift and undisclosed error. Six independent checks (pack-set == SSOT, INDEX recount, per-pack SHA freshness, finite-row abs_error re-derivation, special-value same-class round-trip, honesty allow-list). A 15/15 self-test proves every check is FAIL-reachable before the gate is trusted.
F-1 correction (the reason this matters): the re-derivation oracle exposed 6 gf16 rows storing
abs_error: 0.0while decoding off the gf16 grid (phi, inv_phi, phi_squared, inv_phi_sq, e, pi). The round-trip was correct; only the per-row error label was wrong. Eachabs_erroris corrected to the measured value and allow-listed asnot_on_grid. The anchor identityphi^2 + 1/phi^2 = 3remains exact in f64. Verdict: CLEAN.Verification
python3 tools/check_catalog_count.py-> OK (83 == 83 == 83)cd tools && python3 wp18_selftest_gate.py-> 15/15 assertions passedScope notes