W1 transport gate: floors evidence base#154
Conversation
Step 1 of the gate-W1 lock ceremony (design #151; #113 M5; #100 W1) -- the #79/#118/#124 role, one milestone up. Certifies the TRANSPORT of the PSID-estimated generators onto the certified populace frame, across three target families: - A (CPS-observable joints): 100-seed household-disjoint half-split floor on the certified frame's own weighted earnings x age x sex / marital / household moments (53 gated, 52 report-only). k=4, T_max=ln(1.5), plus a heavy-tail guard for the sparse-refit weights so the faithful copy passes. - B (SSA admin anchors): claim-age 6.B5.1 + DI ASR T19 as point values with machine-derivable vintage/measurement tolerances (24 gated, benefit LEVELS report-only pending the transported AIME). - C (compression fingerprints): the two committed before/after orderings (PPI<->NRA, elimination<->+2pp) as a binary reversal check, no floor. K=20 estimator from the start; machine-recorded gated/report-only reasons; a WARTS section pre-empting the 2b/2c referee classes. gates.yaml UNTOUCHED -- the gate_w1 stub is proposed in #151, not inserted here. Reads no gate, changes no gate; the ceremony (referee -> fixes -> verification -> ratifying flip) follows. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Verdict: AMEND BEFORE LOCK. Round-1 adversarial review of the gate-W1 floors evidence base (8e1512c). Reproduction anchor: (i) a full rerun of 1. BLOCKER — family B's claim-age cells are circular under the committed v1 candidate; nothing discloses it. The design (#151, #113 hard-part-4) pins the v1 candidate as "mechanical (claiming from the calibrated distribution)". The calibrated distribution is the anchor: 2. BLOCKER — family B has no candidate protocol, and the unpinned reference period is worth up to 1.9× tolerance on the disclosed trends alone. Family A gets a full protocol block (population, splits, K=20 stream, statistic, pass rule, fresh-run schema). Family B gets none: no statement of the simulated object (claim-age is a 2022-entitlement-year award flow; DI T19 is a December-2023 stock — a 2024 cross-sectional frame naturally yields neither), no population rule (full frame vs per-seed holdouts), no draw/estimator rule, no pass rule (conjunction? k-of-24?), and no rule barring the candidate from reading the frame's own 3. MAJOR — family A's certification content rests on an unpinned regenerated-surface convention; under the natural anchored-transport reading its score is identically zero. Unlike 2a/2b/2c — whose candidates simulate outcomes the holdout withholds — the W1 candidate receives the very columns family A scores (the holdout households' 4. MAJOR — the sparse-frame guard does not cover the earnings concept it certifies. Wart 8 and the PR define family-A earnings as employment + self-employment before LSR, and 5. Adjudication of the frame choice (question 1): right frame, with named scope — verified, two repairs. The sparse-57k file is the production default the release bundle serves; certifying transport on the dense parent would certify a frame nothing deploys on. Measured on the pinned artifact: only 6. Adjudication of family A's construct (question 2): the wart is honest, the division of labor is coherent, but the certificate's outer face needs one disclosure. Family A is internal transport-consistency and says so (wart 3). What a pass certifies beyond the identity — given fix B — is that stochastic regeneration through the deployed generators does not distort the cross-section beyond CPS sampling noise: a real, falsifiable, useful property (my checks: a global sex-swapped candidate is caught decisively on 7 gated pairs; age-band swaps are caught by the steep gradients; per-pair sensitivity is bounded by tol = 8–48% relative, and 15 of 22 gated m/f pairs would individually pass a within-pair swap — a floor, not a microscope, which is what it claims to be). The gap is upstream: "the frame's fidelity to admin margins is populace's calibration certification" is true for the calibrated totals (earnings/OASI/DI land on national aggregates — I verified), but the marital×age×sex and household-size joints family A certifies against are not plausibly in the calibration loss — they are CPS joints as reweighted by an L0 refit with Kish n_eff ≈ 14.3k of 166k nominal. Nothing in either institute's ceremony cross-checks those joints against a published table. Before the flip, the artifact should state which family-A cell families are covered by populace's calibration targets and which ride uncertified, and SHOULD (2b fix-F pattern) bundle a report-only published-value comparison (CPS/ACS marital status by age×sex; household size) so the transport target's own quality is visible. Required fix D (disclosure required; A′ report block recommended). 7. Adjudication of the heavy-tail guard (question 3): principled in form, conservative in direction, fragile at its boundary — disclose, don't redesign. The guard is stated generally (tolerance must cover the committed floor's own 100-seed max), machine-derived from the floor alone before any candidate exists (no run's verdict changes; 8. Adjudication of family C (questions 5): sound, with a binding gap and one protocol residual. The binding is to the anchor orderings, verified independently against the committed Mermin/Smith values (see reproduction anchor iv), the before-orders match the committed F4/F2 results, the single-adjacent-swap property is tested, and "records, not runs" is honestly worded (wart 6; the gate_partition commits the two cells forward without claiming a current pass). Two repairs: (a) the builder↔artifact binding covers only c1.required and c2.psid — mutating the builder's C2 9. MINOR — protocol/text drift against the locked K=20 contract. The W1 10. MINOR — record accuracy and bindings (perturbation results). (i) Required fixes (executable without interpretation):
Perturbation / mutation table (always-runnable tier = the three W1 test files in the repo gate venv, certified repro auto-skipped = CI conditions; baseline 57 passed, 1 skipped):
All scratch mutations were reverted (worktree clean; committed artifact byte-restored, sha |
Family A untouched (53/52, OC 0.922/0.9481, copy 0.8089x). All moving numbers are family B, family C bindings, and the records. A. Family B de-circularized: 14 non-conversion claim-age cells report-only (v1 claiming samples them from 6.B5.1); 2 disability_conversion cells stay gated (M4-simulated). Reference-period tolerance prices the trend: round(2*resid_sd + |trend|*Delta + 0.05, 2), Delta pinned (claim 2, DI 1). Full family_b candidate_protocol (object/population/K=20 stream 9200/ no-frame-DI-column/pass rule). Partition 24/1 -> 10/15. B. Family-A regenerated surface pinned in the protocol; identity candidate added to the degenerate table (score 0, across-draw sd 0, non-conformant). C. self_employment_income_before_lsr required (floor 0.03); silent .get zero-default removed; guard column set + floors pinned. D. calibration_coverage statement + report-only family_a_prime (HH-4 / AD-3 published values, sha256-pinned). E. max_per_draw_abs_ln_per_cell restored; family_c candidate_procedure pinned. F. family_c orders derived from committed Mermin/Smith anchors + bound (closes M10). G. heavy_tail_boundary_bootstrap re-derived (B=5000) + seed-count note. H. parent-sha convention; age_top_code 85; holdout sha256 recompute always-runnable from committed universe (closes A6) + data-bound; uprating knob stripped; coverage facts (marital 13/50, dispersion 1/8). Closes CI-invisible mutations M10, M14, A6 (+ M7). Tier refresh: unit 188, artifact 685, total 2321. Always-runnable tiers green (828 passed). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
# Conflicts: # tests/tier_counts.json
|
W1 gate fixes round — referee findings 1–10 (comment 4950451145) addressed. (fixes commit Rebuilt from the regenerator ( Per-fix statusA (findings 1–2) — family B de-circularized + full candidate protocol + reference-period rule. The 7 cells the referee showed exceed the detrended tolerance are all resolved: the 5 claim-age ones ( B (finding 3) — family-A regenerated surface pinned + identity candidate caught. C (findings 4–5) — zeroed-column guard covers the earnings concept it certifies. D (finding 6) — coverage statement + report-only A′ family. E (findings 8b–9) — dispersion max restored + C procedure pinned. F (finding 8a) — family-C orders derived from committed anchors + bound. G (finding 7) — heavy-tail boundary disclosed. New H (findings 5/10) — records. New family-B partition / OC
Updated degenerate table
Mutation table — CI-invisible rows closed
SuiteAlways-runnable tiers green in CI (pytest 3.11 + 3.13, build, lint all pass at |
|
Verdict: AMEND BEFORE LOCK — one text-only amendment (the PR description), everything else verified lock-ready. Round-2 verification of the fixes round (comment 4950611796; design cross-post 4950611844 on #151; fixes commit Reproduction anchor. (i) A full rerun of Per-fix verification (all recomputed independently — my own parsers and rule implementations, not the builder's)
OC + partitions (independent). From the committed floor values alone — my own tolerances Mutation close-out (always-runnable W1 files,
|
| mutation | round-1 status | now |
|---|---|---|
M7 builder SPLIT_FRACTION 0.5→0.55 |
invisible in CI | CAUGHT — 1 failed (test_builder_constants_are_pinned) |
M10a builder _rank_desc ranks ascending |
invisible everywhere | CAUGHT — 3 failed (family-C recompute + derivation + perturbation) |
| M10b artifact c2 required order swapped | invisible everywhere | CAUGHT — 5 failed (recompute, anchor derivation, direction, orderings, single-swap) |
| M14 module employment floor 0.30→0.01 | invisible everywhere | CAUGHT — 1 failed (test_required_source_columns_and_floors_are_pinned) |
| A6 holdout seed-0 sha256 1 hex char | invisible everywhere incl. certified repro | CAUGHT always-runnable, no h5 — 1 failed (universe recompute) |
V1 (new) artifact di_prevalence.60-fra tolerance 2.14→2.24 |
— | CAUGHT — 3 failed (staged-file recompute + trend-pricing + rule recompute) |
V2 (new) builder ANCHOR_FRAME_YEAR 2024→2025 |
— | CAUGHT — 3 failed (constant pin + both anchor recomputes) |
| V3 (new) artifact A′ published_share +0.01 | — | CAUGHT — 1 failed (census-source match) |
V4 (new) artifact no-DI-column rule stripped of social_security_disability |
— | CAUGHT — 1 failed (protocol-specified test) |
| V5 (new) artifact promotes a circular claim-age cell to gated | — | CAUGHT — 3 failed (circularity + rule recompute + staged-file) |
| V6 (new) artifact dispersion fields drop the max | — | CAUGHT — 1 failed |
| V7 (new) artifact bootstrap re-entry 0.761→0.9 | — | CAUGHT — 1 failed (bootstrap recompute) |
V8 (new) builder FAMILY_B_DRAW_STREAM_BASE 9200→9300 |
— | CAUGHT — 1 failed (constant pin) |
V9 (probe) artifact A′ file_sha256 1 hex char |
— | passes all 78 — the sha's value binds at rebuild only (bit-compare, which I performed); the load-bearing content (the published values themselves) is bound always-runnable via V3. Same class as prose fields; note, not a defect. |
Hygiene + the env-split adjudication. Tier manifest verified by live collection (199/712/2,367, absorbing gate-2c #155/#156/#157 through the merge); only the claimed files change; CI green and MERGEABLE at 088caca; draft preserved. The env split the lane flagged — always-runnable tiers in .venv-gate (which lacks tables/huggingface_hub by design), the data-bound pins in the pe.py .venv — is adjudicated acceptable as documented: certified_repro_env_note now records exactly this split, it matches the split this verification itself used, and the A6 closure means the previously-invisible commitment class no longer depends on the data-bound tier at all. Shortcut inventory on the frame (for the record): social_security_disability (4.71%), plus adjacent proxies SS_VAL (15.3%), SS_YN (77.6%), social_security_retirement (15.4%), social_security_dependents, social_security_survivors — no claim-age or conversion column exists.
The amendment (blocking, text-only)
Refresh the PR description to the fixed surface. It currently states: family-B row "24 / 1" with round(2·detrended_residual_sd + 0.05, 2) and "Claim-age (16 cells) and DI prevalence (8 cells) gate"; wart 4 "the tolerance prices the year-to-year noise, not the trend" (finding 2's falsified sentence); tier counts "unit 178→187, artifact 574→623"; and no coverage sentence — the fixes comment's "named here and in the PR text" is false for the description, and round-1 fix H required it there. Update: (i) family-B row to 10 / 15 + the reference-period rule round(2·resid_sd + |trend|·Δ + 0.05, 2), Δ pinned {2, 1}; (ii) wart 4's sentence to the priced-trend wording (and add the circularity + age-top-code warts or point at the artifact's 10); (iii) the family-A coverage sentence (marital 13/50, lower-tail dispersion 1/8); (iv) the tier line to 199/712/2,367. No other change of any kind is required.
Flip-time notes (for the ratifying flip, once amended)
- The gate_w1 stub comes from W1 transport gate: design #151 (proposed block,
floor_run: runs/gate_w1_floors_v1.json) — this PR deliberately writes no gates.yaml content (verified byte-identical to master), so the flip is the first and only edit. - Anchor bundle conventions to carry into the lock: family-B anchors at their own vintages with Δ pinned {claim/conversion 2, DI 1} against
anchor_frame_year2024; family-C required orders derive fromreplication_cost_ordering_v1.json+m2_pseudo_projection_v1.json(a revision to either re-derives the orders — treat them as locked inputs); A′ census files sha-pinned; candidate streams 9100 (A) / 9200 (B), distinct from the split seeds; the family-B candidate registration must satisfy the conditioning-column enumeration + populated-support rule, under which any indirect DI inference via the frame's SS proxy columns (SS_VAL,SS_YN,social_security_*) must surface at registration — the no-DI-column rule names the direct shortcut; the enumeration covers the laundered ones. - Manifest transition:
tier_counts.json(2,367) is enforced at full-suite collection and already absorbs Gate-2c candidate 1: couple formation from certified components (registration 4950250151) #155/W2 interim seam: caregiver-credit full tax-benefit incidence (registration 4950247511) #156/Gate-2c candidate 2: earnings-conditioned first-marriage timing (registration 4950370498) #157; any master movement before the flip forces a fresh merge + manifest refresh, and the flip PR's own additions will move it again — refresh deliberately, per README-tiers. The A′ marital×age×sex published comparison remains a recommended (non-blocking) enrichment before or at the flip. - Binding scope, for the record: the protocol/procedure prose (family-B protocol, C candidate procedure) binds artifact-side at the always-runnable tier and builder-side at rebuild only — the lock freezes the artifact, so the artifact-side binding is the operative one; and per V9, provenance sha values inside report-only blocks bind at rebuild.
Everything in this verification is executable from the committed tree: the full rebuild is ~7 s in the recorded env, the mutation harness ~0.5 s per run, the independent family-B re-derivation reads only the staged files. Nothing here touches locked gate-1/2a/2b/2c content. The scratch worktree was discarded after byte-restoration checks; the PR branch was never modified. One text edit stands between this evidence base and a lock-ready state; the artifact itself is already there.
|
Verification amendment executed: PR body rewritten from the committed artifact (10/15 family-B surface, reference-period-priced tolerance rule, coverage facts, the falsified wart-4 sentence replaced) — the description now claims exactly the scored surface. Per the verification verdict (comment 4950670492: evidence base clean on every fix; amendment text-only), ratifying by merge under the standing delegation; the flip PR follows from the #151 stub with the enumerated flip-time notes (anchor-bundle Δ pins, SS-proxy conditioning rule, tier transition, binding-scope record). |
…on undercounted in .venv-gate) (#158) The W1 floors merge (#154) carried a manifest recounted in .venv-gate, which lacks openpyxl and under-collects 10 conditionally-collected unit tests; CI's collection is authoritative. Master's tier-policy check is red until this lands. Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
W1 transport gate — floors + anchor evidence base (ceremony step 1)
Status: fixes round complete and verified (round-1 AMEND comment 4950451145 → fixes A–H comment 4950611796 → verification AMEND-text-only comment 4950670492). This body reflects the FIXED gate; every earlier description of the v1 surface is superseded.
DRAFT — the ceremony controls this PR; gates.yaml UNTOUCHED. The gate_w1 stub lives in design issue #151; the flip reads the committed artifact's machine-derivable thresholds, not this prose.
What W1 certifies
Generators ESTIMATED on PSID, DEPLOYED on the certified populace frame (bundle us-4.18.8, populace_us_2024 sparse-l0-refit-57k, sha-pinned), produce distributions matching targets observable without panel data. W1 certifies the TRANSPORT; the dynamics stay certified by gates 1/2a/2b/2c; frame choice verified right-with-named-scope in round 1 (break-even holds on-frame; s_corp_income the sole all-zero gated-adjacent column; self_employment_income_before_lsr guarded at a 0.03 populated-fraction floor — measured 6.30%, $419.6B).
Gate surface (65 gated / 67 report-only + 2 binary)
circular_under_v1_claiming_candidate(the deployed claiming module is calibrated FROM 6.B5.1 — scoring it against its own source passes by construction). Gated content = the 2 disability-conversion shares + 8 DI prevalence age-bands, both genuine transport margins REQUIRING M4-simulated dynamics: the frame'ssocial_security_disabilitycolumn is forbidden by the candidate protocol and the prohibition is binding-caught. Tolerances price the reference-period drift INSIDE the rule — round(2·resid_sd + |trend|·Δ + 0.05, 2) with Δ pinned (claim 2y, DI 1y) — so a faithful 2024-simulating candidate passes (di_prevalence.60-fra 2.14; 45-49 0.49; conversions 1.91/1.89). Full candidate protocol pinned (objects, population = full frame, K=20 stream 9200, pass rule).Protocol
K=20 mean-over-draws estimator from the start (family-A/B stream conventions pinned; fresh_run_artifact_schema with per-draw rates, undefined-draw invalidation, and per-cell max-per-draw |ln| dispersion disclosure). OC: faithful p_seed 0.922 / p_gate(≥4/5) 0.9481; training copy 0.8089×. Holdout-universe sha binding is ALWAYS-RUNNABLE (recomputes from the committed household-id universe without PSID or the frame staged).
Warts (fixed-round state)
Family A is internal consistency against the frame plus the A′ published-value report-only family — the calibration-coverage statement in the artifact says exactly which cell families populace's own calibration covers. Family B anchors are non-stationary (drift priced, not excluded). Heavy-tail demotes are boundary-fragile (bootstrap committed). Age top-code 85 named. Benefit-level cells await the transported AIME (report-only).
Evidence: full rebuild bit-identical (mod elapsed + sha pins); 14/14 substantive mutations caught; verification re-derived every tolerance, partition reason, OC, and the A′/bootstrap blocks independently.