Repository navigation
Remove the UK QRF tail-concentration gate (#1276) - #1281
Conversation
|
Fine to merge. The removal is justified, but it leaves the SPI imputed columns with no release-blocking check, so #1276 needs to be owned as real work, not a nice-to-have. @juaristi22, review of 8915469 against main 121fd4d. Is the removal justified?Yes, on the evidence in the PR and in #1276.
What it leaves uncovered (the PR body says this; I checked the extent):
So the #1256 incapacity-benefit drop described in #1276 would now go unseen. That is acceptable for a short gap, but the acceptance cases in #1276 (the #462 replay must fail, the #1256 drop must fail, clone arithmetic must pass) should be what the replacement is held to. Findings
Clean removalChecked at the head commit:
What I checked
🤖 Generated with Claude Code |
On the UK surface the gate's top-100 share could only bite on a column with fewer than 100 independent draws whose CGT-clone copies took it past the 104-row floor, so its verdict measured how little mass those copies carry rather than whether an imputation broadcast a donor tail. At the armed 0.99947 threshold the #462 incident it was built for (89% of a column's mass in 100 records) would have passed. Drop the spec entry, its national release-cut scope membership, the binding, policy and gate wrapper, the reviewed-exclusion register and its package listing, and the data contract's pins, detail schema and validation for it. Re-pin the release-cut certification part and the full battery digests; the spine and calibration-seam part digests are unchanged. Keep uk_qrf_tail_concentration_columns and the weighted-integrity baselines tool as the measurement surface for the source-fidelity check Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Rebased onto main 71b9b8b (#1271): the release-cut part and full-battery digests move again; the spine and calibration-seam digests are unchanged. From the review: the #1124 changelog fragment no longer sends readers to #1277 for exclusions this change deletes, and the national release runbook gains an interim check, until #1276's replacement lands, that compares the SPI stage-1 columns' weighted totals and carrier counts with the promoted cut using the kept baselines tool. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
8915469 to
df9d13a
Compare
|
Thanks @vahid-ahmadi. Rebased onto main
On your unchecked item: After the rebase, #1271 moved the spec, so the release-cut part and full-battery digests are re-pinned again; the spine and calibration-seam digests are still unchanged. Touched surface (every changed test file, plus every test importing a touched module or tool, or loading the UK spec): 86 files and 2,475 tests. All pass except the environment-only 🤖 Generated with Claude Code |
Removes the UK QRF tail-concentration gate (
uk_qrf_tail_concentration) from the national release-cut battery. #1276 asks for a replacement that measures what the gate was meant to.Closes #1277, which asked to re-arm this gate; its independent-draw point now lives in #1276's replacement request.
Why
On the UK surface the gate's top-100 share could only bite on a column with fewer than 100 independent draws whose CGT-clone copies took it past the 104-row floor. So its verdict measured how little mass those copies carry, not whether an imputation broadcast a donor tail. At the armed 0.99947 threshold, the #462 incident it was built for (89% of a column in 100 records) would have passed. The module docstring already noted that no single threshold was both incumbent-compatible and incident-catching.
On 14 October the gate blocked certification of the national candidate twice, neither time for a data-quality reason: once on clone-copy arithmetic, and once on an exclusion that #1256's new draws made stale. The evidence and the request for a replacement are on #1276.
Changes
Spec and runtime:
uk/gates.jsonand fromUK_NATIONAL_GATE_SCOPE;UKQRFTailConcentrationPolicy,uk_qrf_tail_concentration_gate, the reviewed-exclusion loader and constants;qrf_tail_reviewed_exclusions.jsonand itscountry_package.jsonlisting.Data contract:
The spine and calibration-seam part digests are unchanged, so existing spine and seam reports stay valid.
Kept:
uk_qrf_tail_concentration_columnsandtools/measure_uk_weighted_integrity_baselines.pystay as the measurement surface for the replacement. The sharedtail_concentration_gateand the US QRF tail register are untouched.Tests and docs: the gate's tests go; tests that used it as an example of a generic exclusion behaviour now use the input-mass or degenerate-surface gates. One doc table row and the doc's count of re-minted names are updated, and there is a
removedchangelog fragment.Left as history:
national_staging_build_record.json,spine_swap_signed_differences.json,experiments/and older changelog fragments still mention the gate.Verification
At
df9d13a09, rebased onto main71b9b8b52(#1271):test_engine_is_reported_unavailable_without_the_uk_extra, which fails only because the local environment has the UK extra installed; it fails the same way on main there.python3 tools/ci_test_plan.py verify: ok.ruff checkpasses on every changed file.121fd4dd6, attemptuk-frs-calibration-attempt-20261014T214443Z-d12ff9b3) with this branch's certifier. It wasshippable: true: spine 37/37, calibration seam 7/7, release cut 18/18, rule 1 passed. Local assembly validated it against the branch's contract, and nothing was published. Since the rebase moved the release-cut pins and UK: policyengine-uk 2.130.1 and the fourth batch of #1095 ports, with the release's weight year, identifiers and birth months fixed #1271 locked policyengine-uk 2.130.1, a cut for publication should be rebuilt and certified on main after this merges.Notes
validate_release_dirruns only when a release is assembled, preflighted or published, never when one is loaded. So the new pins don't affect releases that are already published.🤖 Generated with Claude Code