Skip to content

gate_w1 amendment 2 flip: demote family-A concept cells + C1 to report-only (ratified c50f8bb)#174

Merged
MaxGhenis merged 1 commit into
masterfrom
w1-amendment2-flip
Jul 13, 2026
Merged

gate_w1 amendment 2 flip: demote family-A concept cells + C1 to report-only (ratified c50f8bb)#174
MaxGhenis merged 1 commit into
masterfrom
w1-amendment2-flip

Conversation

@MaxGhenis

Copy link
Copy Markdown
Contributor

Applies the RATIFIED gate_w1 amendment 2 — 2026-07-12-w1-family-a-concept-cells, ratified by merge of PR #169 (squash c50f8bb) — to gates.yaml, per the string-bound §7 flip text of docs/amendments/gate_w1_amendment_2_family_a_concept_cells.md.

§7 → yaml application table

§7 item Path Applied
1 thresholds.family_a views → report_only + report_reasons + retained_tolerances 6 cells moved; per-cell machine reasons (2× population_concept_delta_head_spouse_universe, 3× cohort_vintage_hazard_frame_mismatch, 1× scored_duplicate_of_demoted_married_quantity); tolerances retained verbatim (0.211/0.221/0.163/0.084/0.168/0.094)
1 family_a.faithful_candidate_oc 53→47 cells, p_seed 0.922→0.9344, p_gate 0.9481→0.9623
2 protocol.fresh_run_artifact_schema.per_draw_per_cell_rates shape [20, 53, 5]→[20, 47, 5]; the in-block rule prose "all 53 gated cells"→"all 47" (item-2 scope judgment: the count inside the same spec whose shape changes — flagged for the fidelity referee)
3 thresholds.family_c.gate_partition + report-only C1 demoted: gate_eligible: [fingerprint.elimination_plus2pp], 1/1; report_reasons: fingerprint_reversal_not_realized; C1 ordering fields RETAINED under fingerprints.c1; disclosure note added
3 candidate_procedure.pass_rule annotated: family C now GATES the C2 fingerprint only
4 family_c.check "BOTH fingerprints reverse"→"the C2 fingerprint reverses (C1 demoted…)"; trailing sentence cured "both reverse"→"C2 reverses… C1's non-reversal is structural" (a §7-item-4 consequential cure — the old sentence became false under the ratified amendment; flagged for the fidelity referee)
5 gate_w1.covers family A "47 gated / 58 report-only"; family C "1 gated / 1 report-only (C1 demoted by amendment 2)"; roll-up "48 gated / 84 report-only"
6 certification_scope.certifies 48-cell text + report-only pending bridges + "reverses the C2 fingerprint" (grammar cure: "orderings"→"ordering")
7 gate_w1.history amendment-2 entry appended; §8 content verbatim; referee_round extended with fixes_2/re_verification keys to record the real five-round ceremony (template had three — flagged)

Zero threshold movement (retained values byte-equal to the frozen floor); thresholds.family_b, protocol statistic/pass_rule/estimator, governance, frame_pin, holdout_basis untouched.

Tests

  • Partition bindings polarity-flipped: test_gate_w1_derivations.py (47/58 partition + two-reason ledger + retained tolerances; OC 0.9344/0.9623 recomputed from live tolerances + frozen sigmas, AND the 53-cell pre-amendment OC still recomputed via retained_tolerances — the frozen artifact is untouched; schema [20,47,5]; family-C 1/1 + check/pass_rule bindings; covers/certification 48/84).
  • Proposal-era guards flipped: test_gate_w1_amendment2_proposal.py — the untouched-guard is now the §7 subset master-compare (no sibling gate moves; stable pre- and post-merge); partition/OC tests bind live gates.yaml to the ledger's "after" state, reconstructing the 53-cell "before" basis from retained_tolerances.
  • Amendment-1-era bindings updated with attribution: the a1 OC-invariance test reconstructs its 53-cell basis via retained_tolerances; the a1 flip's family-A/C byte-identity-to-master claim is restated as the always-true invariant (no gated-or-retained VALUE moves; fingerprint anchors/orders unchanged) since a2 legitimately rescopes those families.
  • --transition legacy-manifest regen: run on the clean committed tree, idempotent (second run = no diff).
  • Full always-runnable suite: 1089 passed / 41 skipped / 0 failed (disposable in-worktree env); tier counts unchanged (renames only); test_tier_policy green under full collection; black + ruff clean.

Record notes

  • The amendment squash subject on master retains "(draft — ceremony pending)" from an unrefreshed PR title; the ceremony completed before the merge (adversarial 4953763322 → fixes 4953911698 → verification 4954135376 → fixes-2 4954294003 → re-verification RATIFY AS-IS 4954346300). Standing correction adopted: refresh PR titles with bodies before ratification merges.
  • Flip authored partly by the orchestrator directly (session-limit churn killed the flip lane repeatedly mid-edit); every edit is §7-derived and the fidelity referee reviews the result, not the authorship path.

Ceremony next step: flip-fidelity referee before merge. Do not merge until that round posts MERGE.

🤖 Generated with Claude Code

…t-only (ratified c50f8bb)

Applies the ratified section-7 flip text 1:1 to gates.gate_w1: the six
family-A cells move from view tolerances to report_only with per-cell
machine reasons and retained_tolerances (zero threshold movement); the
faithful-candidate OC updates to the 47-cell surface (0.9344/0.9623);
the fresh-run cube shape narrows to [20, 47, 5]; family C demotes the
C1 (ppi_nra) fingerprint to report-only (fingerprint_reversal_not_realized)
and gates C2 alone; covers/certification_scope roll-ups move to
48 gated / 84 report-only; the amendment-2 history entry is appended
with the full five-round ceremony record. Partition-binding tests
polarity-flip to the amended surface; the proposal's untouched-guard
becomes the section-7 subset master-compare (no sibling gate moves).

Ceremony: adversarial 4953763322 (AMEND) -> fixes 4953911698 ->
verification 4954135376 (FURTHER FIXES) -> fixes-2 4954294003 ->
re-verification 4954346300 (RATIFY AS-IS); ratified by merge of
PR #169 (squash c50f8bb).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@vercel

vercel Bot commented Jul 13, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
social-security-model Ready Ready Preview, Comment Jul 13, 2026 12:52pm

Request Review

@MaxGhenis

Copy link
Copy Markdown
Contributor Author

Verdict: MERGE.

Flip-fidelity round on w1-amendment2-flip head d90fcac (single commit on c50f8bb), under the amendment-1 flip-fidelity bar (#165 comment 4952245964: §7 verbatim yaml-paths 1:1, zero threshold movement, retained values byte-equal, mutation-fragile, --transition idempotent). Everything below I recomputed myself in a detached worktree against the ratified source of truth (c50f8bb:docs/amendments/gate_w1_amendment_2_family_a_concept_cells.md §7+§8), the frozen floor runs/gate_w1_floors_v1.json, a disposable in-worktree env, and the live GitHub ceremony record. The flip applies the ratified §7 exactly, moves zero thresholds to machine identity, the §8 history entry is token-verbatim, the surface is genuinely mutation-fragile, --transition is idempotent, and CI is fresh-green. No blocker; two non-blocking coverage notes at the end.


1. §7 → yaml path census (my own git diff c50f8bb..d90fcac -- gates.yaml)

15 textual hunks, 33 changed leaf paths on a full-doc deep compare — every one inside gates.gate_w1; ZERO outside; ZERO unmapped. Sibling gates gate_1 / gate_2 / gate_3 / gate_m4 and every non-gates top-level key are deep-equal to c50f8bb.

diff hunk (@@ -line) changed paths §7 item
-3707 covers roll-up 53/52→47/58, 2 gated→1/1, 55/77→48/84 5
-3891 family_a.views.earnings_participation.tolerances −2 (18-24 f/m) 1
-3907 …earnings_participation.derivations.rules −2 1
-4017 …marital_share.tolerances −2 (married.65+ f/m) 1
-4041 …marital_share.derivations.rules −2 1
-4085 …coresident_spouse.tolerances −2 (65+ f/m) 1
-4105 …coresident_spouse.derivations.rules −2 1
-4132 family_a.report_only +6, +report_reasons, +retained_tolerances, +demoted_disclosure_note 1
-4268 family_a.faithful_candidate_oc n 53→47, p_seed 0.922→0.9344, p_gate 0.9481→0.9623, basis_note 1
-4522 family_c.check BOTH→C2-only (+ trailing cure) 4
-4557 family_c.candidate_procedure.pass_rule annotated C2-only 3
-4608 family_c.gate_partition 2/0→1/1, +report_only, +report_reasons, +demoted_disclosure_note 3
-4684 protocol…per_draw_per_cell_rates.shape [20,53,5]→[20,47,5] + .rule prose 2
-4757 certification_scope.certifies 55→48, C2-only, +report-only-pending 6
-4953 gate_w1.history append a2 entry 7 / §8

The two demoted_disclosure_note additions map to §7-1 ("retained… under the report-only disclosure") and §7-3 ("retained under report-only"); the note schema is the ratified amendment-1 precedent (family_b.demoted_disclosure_note already exists at c50f8bb). No hunk is unmapped.

2. Zero threshold movement (machine-exact, recomputed independently)

  • Six retained tolerances byte-equal to the pre-flip gated values and to the frozen floor's derived round(mean + 4·sd, 3): 0.211 / 0.221 (18-24 f/m), 0.163 / 0.084 (married.65+ f/m), 0.168 / 0.094 (coresident.65+ f/m). All 53 (47 live + 6 retained) reproduce the floor derivation exactly.
  • OC recompute on the draw-noise-free half-normal basis (2·Φ(tol/σ)−1, p⁵+5p⁴(1−p)), σ from the frozen floor: 47-cell → p_seed 0.9344 / p_gate 0.9623 (= contract); 53-cell reconstructed via retained_tolerances → 0.922 / 0.9481 (= the FROZEN floor's own untouched OC). The floor JSON is byte-untouched and still lists all 53 as gate_eligible — the amendment rescopes the CONTRACT, not the floor, exactly as the disclosure note claims.
  • C1 untouched: fingerprints.c1 deep-equal (anchor_values, required_representative_order, swap_pair, mechanism, psid_frame_order all identical); c2 identical.
  • No sibling movement: family_b, protocol.{statistic,pass_rule,estimator,floor bindings} (only per_draw_per_cell_rates changed), governance, frame_pin, holdout_basis all deep-equal. Roll-up checks out: 47 A + 1 C = 48 gated; 58 A + 25 B + 1 C = 84 report-only.

3. The six flagged judgment calls

  • (a) item-2 rule prose "all 53"→"all 47"RATIFIED-AUTHORITY-CONSISTENT. The prose is a child of the exact block §7-2 mutates (per_draw_per_cell_rates); it restates the very count the shape encodes. Leaving it 53 would make the block internally false. Faithful propagation within the named path, not new scope.
  • (b) item-4 trailing-sentence cure ("If transport is real C2 reverses… C1's non-reversal is structural") — RATIFIED-AUTHORITY-CONSISTENT. Same field (family_c.check) §7-4 rewrites; the old "both reverse; if cosmetic they do not" became false under the amendment. The cure matches §9's own "C1's non-reversal is structural" framing.
  • (c) item-6 grammar cure "orderings"→"ordering"RATIFIED-AUTHORITY-CONSISTENT. Forced number agreement: §7-6 singularizes "reverses BOTH fingerprints"→"the C2 fingerprint", so "anchor orderings"→"anchor ordering" is mechanical.
  • (d) §8 referee_round extended with fixes_2/re_verificationRATIFIED-AUTHORITY-CONSISTENT. The §8 template's three keys carry # filled at ceremony placeholders; the real ceremony ran five rounds. I verified all five live: 4953763322 AMEND → 8e713ef/4953911698 fixes → 4954135376 FURTHER-FIXES → dd913ac/4954294003 fixes-2 → 4954346300 RATIFY AS-IS. Cramming five into three would lose ceremony record; extending faithfully records it (a1 precedent).
  • (e) a1-era test updates (OC basis reconstruction via retained_tolerances; byte-identity restated as value-level zero-movement invariant) — RATIFIED-AUTHORITY-CONSISTENT. a2 legitimately changes family A/C, so a1's "byte-identical to master" is no longer the right invariant; the durable invariant both amendments guarantee is "no gated-or-retained VALUE moves + fingerprint anchors/orders unchanged." The restatement does not weaken the guard — mutations M2 (drop retained tol) and M8 (move retained value) are both caught by exactly these reconstructed-basis assertions. Reconstruction from retained_tolerances is valid precisely because I verified those values byte-equal.
  • (f) orchestrator-authored flip (lane churn)RATIFIED-AUTHORITY-CONSISTENT (no drift). Authorship is irrelevant and I found none of its risks realized: every hunk maps to §7 or a consistent cure, every number recomputes, §8 is token-verbatim, zero value movement, no editorializing, no scope creep, no unmapped hunk. The edits are exactly what a mechanical §7 application yields.

All six: RATIFIED-AUTHORITY-CONSISTENT. None is an overreach.

4. History entry (§8)

gate_w1.history gains exactly one entry 2026-07-12-w1-family-a-concept-cells (lock + a1-di-bands entries unchanged). Token-level compare of the applied content vs the ratified §8 draft: identical except one mid-token line-wrap — the doc split marital_share.married.65+| / female across a line boundary (doc line 644); the flip correctly rejoined it. All six demoted cell names verified intact, zero pipe-space-sex corruption. (The brief anticipated two wrap repairs; the other candidate wraps — ~0.577 F /, 18-24participation, 0.922 / — all fold to correct text needing no repair, so I count one genuine token repair.) Ceremony fields all correct and live-verified: shas 8e713ef/dd913ac exist with the right subjects; ratified c50f8bb = PR #169's merge commit; RATIFY-AS-IS 4954346300; the stale-squash-title note is present and accurate (PR #169's title does carry "(draft — ceremony pending)").

5. Test polarity & mutations

  • Always-runnable suite (-m "unit or artifact", disposable env): 1089 passed / 41 skipped / 0 failed — matches the target exactly. (The unmarked pytest tests collects 2603 and pulls in integration_psid/oracle_policyengine against local data; those are excluded from always-runnable, as on CI.)
  • a2-proposal subset master-compare (test_gates_yaml_flipped_per_section7_and_moves_no_sibling): passes now against origin/master=c50f8bb; its set(live)==set(master) + per-sibling equality is invariant pre- and post-merge (gate_w1 excluded from the loop; siblings never move). Also green: test_gate_w1_flip_leaves_locked_siblings_byte_identical, test_flip_demotes_all_ten_family_b_cells_vs_master.
  • Mutation battery — 8/8 CAUGHT (each applied to live gates.yaml, tree restored after):
# mutation result representative failing test
M1 re-add earnings_participation.18-24|female to a gated view CAUGHT (6) test_gate_w1_family_a_power_cap_and_partition_47_58
M2 drop retained tolerance married.65+|male CAUGHT (5) test_family_a_oc_recomputes_before_and_after…
M3 p_gate_pass_4_of_5 0.9623→0.9624 CAUGHT (2) test_gate_w1_family_a_oc_recomputes_from_tolerances_and_sigmas
M4 restore C1 to gate_eligible (n=2) CAUGHT (3) test_gate_w1_family_c_orderings_derive_from_committed_anchors
M5 covers roll-up 48→49 gated CAUGHT (1) test_gate_w1_covers_and_certification_scope
M6 history entry ratified sha c50f8bbc50f8bc CAUGHT (21) test_legacy_manifest_matches_working_tree + test_contract_identity…
M7 revert cube shape [20,47,5]→[20,53,5] CAUGHT (1) test_gate_w1_protocol_is_the_ratified_k20_estimator_stream_9100
M8 move retained value coresident.65+|female 0.168→0.167 CAUGHT (6) test_family_a_oc_recomputes_before_and_after…

6. --transition + CI

  • scripts/build_legacy_manifest.py --transition on the clean committed tree: no diff; rerun idempotent (no diff). Manifest contract_revision = c43b2be = the flip commit's gates.yaml blob sha; recorded sha256/n_bytes match the working blob (305709 bytes).
  • Fresh gh pr view 174: mergeable: MERGEABLE, mergeStateStatus: CLEAN. Fresh gh pr checks 174: exit 0 — pytest 3.11 + 3.13 pass, build + lint pass, Vercel pass, deploy skipping.

Non-blocking coverage notes (not AMENDs — the flip is faithful; these are for a follow-up)

  1. M6 is caught by the byte guards, not a semantic binding. Any gates.yaml tamper trips test_contract_identity + test_legacy_manifest_matches_working_tree (blob/sha256 vs HEAD/manifest). No live test asserts the a2 history entry's content (ratified sha, ceremony comment ids, cell names) the way test_gate_w1_amendment1_flip_history_and_ceremony_record binds a1's. The a2 content is verbatim-correct (§4 above, verified independently), and the byte guards satisfy the brief's "must fail a test." A dedicated …amendment2_flip_history_and_ceremony_record test would close the asymmetry.
  2. Two accepted string-binding limits already noted at ratification (re-verification 4954346300) live in the doc, not the contract, and don't affect the flip.

Recomputed numbers, path census, mutations, ceremony record, --transition, and fresh CI all hold. MERGE. (Merge is the orchestrator's act — no ready/merge from me.)

@MaxGhenis MaxGhenis marked this pull request as ready for review July 13, 2026 14:15
@MaxGhenis MaxGhenis merged commit d250d4b into master Jul 13, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant