Skip to content

Flip ratified gate-2 amendment 2 live: explicit tranche structure (zero threshold movement) - #112

Merged
MaxGhenis merged 1 commit into
masterfrom
gate2-tranche-flip
Jul 10, 2026
Merged

Flip ratified gate-2 amendment 2 live: explicit tranche structure (zero threshold movement)#112
MaxGhenis merged 1 commit into
masterfrom
gate2-tranche-flip

Conversation

@MaxGhenis

Copy link
Copy Markdown
Contributor

Flip ratified gate-2 amendment 2 live: explicit tranche structure

Authorized follow-up flip for gate-2 amendment 2 (the tranche split), ratified by merge of #111 (merge commit 8a4a24018) after the full ceremony, and mirroring the prior flips (#69 gate-1 amendment 2, #81 gate-2 lock, #97 gate-2 amendment 1).

Ceremony: adversarial round AMEND BEFORE RATIFYING (comment 4930448912) → fixes 81ea41e (comment 4930615774) → verification RATIFY AS-IS (comment 4930753295) → ratified by merge of #111 under the maintainer's standing campaign directive of 2026-07-07.

Zero threshold movement. The locked gate_2.thresholds scored surface is byte-identical to origin/master — all 46 gated cells, every tolerance and derivation, the option-(a) protocol, the ln(1.5) power cap, report_only, and the 4-of-5 seed conjunction are unchanged (verified at full-subtree granularity). Candidate 16 stays PASS (4/5) and candidates 1–15 stay FAIL, now as tranche-2a verdicts.

The six locked-text edits (flip_on_ratification.flip_edits, applied exactly)

  • description — first clause re-scoped so tranche 2a claims only mh85_23 + cah85_23 (+ ind2023er deaths); the household-composition/MX23REL clause moves into the gate_2b declaration.
  • description_formula_clause — the benefit formulas earn per-rule "computes exactly" status statutory-formula oracle clause (Claiming-age module: SSA Statistical Supplement reference and reduction wiring #78/Survivor and spousal benefit plumbing: 402(b)/(c)/(e)/(f) with oracle cross-checks #80) RETAINED verbatim (fix C1).
  • holdout_basis[mh85_23, cah85_23, MX23REL][mh85_23, cah85_23]; MX23REL moves to gate_2b.holdout_basis.
  • scope_noteprovision_class_coverage prose gains explicit tranche ids (2a/2b/2c); the certification_scope map is promoted into the locked scope.
  • scope_note_draft_label — the stale This DRAFT tranche covers… heading relabeled to tranche 2a_marital_fertility covers… (fix C2).
  • scope_note_holdout_xref — the caregiver named in holdout_basis but not scored in this draft cross-reference re-pointed to the unlocked gate_2b (fix C2).

The five flip_additions

  • tranche_id: 2a_marital_fertility added inside gate_2.thresholds.
  • gate_2b (relationship_household) and gate_2c (marriage_earnings_joint) declared as UNLOCKED sibling tranches (locked: false, no floor, no scored run, each lock_ceremony.exists: false with a step list naming the verification round).
  • certification_scope map promoted into the locked gate_2.thresholds.scope (per-class requires_tranche + locked_coverage).
  • Standing governance rule description_claims_exactly_the_scored_surface promoted into gate_2.governance.amendment_rules, attributed to review External architecture review (Codex gpt-5.6-sol): 10 findings + pre-CPS refactor plan #106 finding 4 / PR Gate-2 amendment proposal 2: explicit tranche structure (review #106 finding 4) #111 finding 8, binding 2b/2c/gate_3.
  • gate_2.name ("family and benefit outputs") retained per its C3 disposition (the tranche container).

The two verification-round flip-time nits (comment 4930753295)

History entry

Adds gate_2.amendment_history[1] — id 2026-07-09-tranche-split, with all four ceremony pointers (review 4930448912 / fixes 81ea41e + 4930615774 / verification 4930753295 / ratifying merge 8a4a24018), flipped_live: this pull request, and zero-movement content citing #106 finding 4 and the candidate-16 pass (#109). Removes amendment_proposed (preserved in git history at the ratification merge).

Locked-hot test rewiring

The load-bearing guarantees rebind at their LIVE post-flip locations in a new "Gate-2 amendment 2 RATIFIED bindings" section: the re-scoped description/holdout_basis, the tranche_id, the promoted certification_scope map (per-class requires_tranche lists + locked_coverage tokens bound EXACTLY and cross-checked against the locked note, both nits asserted), the gate_2b/gate_2c stubs, the promoted standing rule, the second history entry with all four pointers, and a direct zero-movement compare vs origin/master. The proposal-object tests stay dormant-safe (guarded on proposal_number == 2, so they skip once amendment_proposed is gone); the D1 merge-safe guard test_gate2_amendment2_changes_no_locked_value naturally skips post-flip; the always-hot holdout_basis binding is updated to the new live value.

Full suite: 1319 passed, 68 skipped, 0 failed (-n 8). black -l 79 and ruff check clean.

🤖 Generated with Claude Code

…ro threshold movement)

Moves gate-2's ratified amendment 2 (the tranche split) from the
amendment_proposed object into the locked block. STRUCTURAL, zero threshold
movement: the locked gate_2.thresholds scored surface is byte-identical to
origin/master -- all 46 gated cells, every tolerance and derivation, the
option-(a) protocol, the ln(1.5) power cap, and the 4-of-5 seed conjunction
unchanged (verified at full-subtree granularity). Only naming, scope prose,
the certification map, the unlocked sibling stubs, one governance rule, and
the history changed.

Ceremony (mirrors flips #69, #81, #97): adversarial round AMEND BEFORE
RATIFYING (PR 111 comment 4930448912) -> fixes 81ea41e (comment 4930615774)
-> verification RATIFY AS-IS (comment 4930753295) -> ratified by merge of PR
111 (merge commit 8a4a240) under the maintainer's standing campaign
directive of 2026-07-07, full ceremony.

The six locked-text edits (flip_on_ratification.flip_edits, applied exactly):
- description: first clause re-scoped so tranche 2a claims only mh85_23 +
  cah85_23 (+ ind2023er deaths); household-composition/MX23REL -> gate_2b.
- description_formula_clause: the "computes exactly" statutory-formula oracle
  clause (#78/#80) RETAINED verbatim (fix C1).
- holdout_basis: [mh85_23, cah85_23, MX23REL] -> [mh85_23, cah85_23]; MX23REL
  -> gate_2b.holdout_basis.
- scope_note: provision_class_coverage prose gains explicit tranche ids
  (2a/2b/2c); the certification_scope map is promoted into the locked scope.
- scope_note_draft_label: "This DRAFT tranche covers..." relabeled to
  "tranche 2a_marital_fertility covers...".
- scope_note_holdout_xref: the caregiver "named in holdout_basis but not
  scored in this draft" cross-reference re-pointed to the unlocked gate_2b.

The five flip_additions: tranche_id 2a_marital_fertility inside thresholds;
gate_2b (relationship_household) and gate_2c (marriage_earnings_joint)
UNLOCKED sibling tranches (locked: false, no floor, no scored run, each with
its own future lock ceremony naming the verification round); the
certification_scope map promoted into the locked scope; and the standing
governance rule description_claims_exactly_the_scored_surface promoted into
gate_2.governance.amendment_rules (attributed to review #106 finding 4 / PR
#111 finding 8), binding 2b/2c/gate_3. gate_2.name ("family and benefit
outputs") retained per its C3 disposition (the tranche container).

Also applies the two verification-round flip-time nits (comment 4930753295):
the 2b bullet-3 legend quote spacing normalized to "poverty/household" to
match the derivation_basis quote; and COLA qualified in the A2 own-record
example list (its levels ride the Phase-B claiming/mortality components -- #74
marks CA, M, DI; #78 covers CA, M/DI uncertified -- so it is not a pure
gate-1 + oracle surface, though still outside the 2a/2b/2c tranches).

Adds gate_2's second amendment_history entry (id 2026-07-09-tranche-split;
all four ceremony pointers; content: ZERO THRESHOLD MOVEMENT, verdicts v1-v15
FAIL and v16 PASS stand as tranche-2a verdicts, citing #106 finding 4 and the
candidate-16 pass #109), and removes amendment_proposed (preserved in git
history at the ratification merge 8a4a240).

PROSPECTIVE / STRUCTURAL ONLY (no_self_rescue): a naming + certification-scope
amendment has no verdict to rescue and re-scores nothing; candidate 16 stays
PASS (4/5), candidates 1-15 stay FAIL, as tranche-2a verdicts.

Tests rewired locked-hot: the re-scoped description/holdout_basis, tranche_id,
the promoted certification_scope map (per-class requires_tranche + coverage
tokens bound EXACTLY, both nits asserted), the gate_2b/gate_2c stubs, the
promoted standing rule, and the second history entry with all four pointers
rebind at their LIVE post-flip locations in a new "Gate-2 amendment 2
RATIFIED bindings" section. The proposal-object tests stay dormant-safe
(guarded on proposal_number == 2, so they skip once amendment_proposed is
gone), and the D1 merge-safe guard naturally skips post-flip. Full suite:
1319 passed, 68 skipped, 0 failed (-n 8); black -l 79 + ruff clean.

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

vercel Bot commented Jul 10, 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 10, 2026 12:56am

Request Review

@MaxGhenis
MaxGhenis merged commit e86ec0c into master Jul 10, 2026
7 checks passed
MaxGhenis added a commit that referenced this pull request Jul 10, 2026
…eal couples (#114)

REPORTED, NOT GATED. REAL DATA ONLY. Closes the Phase-A named delta: the
Phase-A PI/PPI replication (replication_ppi_mermin) could only rank retired
workers by their OWN career-average earnings, an individual analogue of
Mermin (2005)'s SHARED-lifetime-earnings quintiles. With marriage histories
validated, this reports Mermin's own-record price-indexing and
progressive-price-indexing benefit cuts by SHARED quintile -- the paper's
exact quintile concept -- on real PSID couples.

Design: the benefit reform is the Phase-A encoding VERBATIM on own AIME (PPI
bend at the 30th percentile of own AIME); the shared lifetime earnings
(couple mean 0.5*(own+spouse) in marriage years, own when single; the R7
couple-join machinery verbatim; cap-after-averaging per Mermin p.3 fn.9
"wage-indexed like AIME") is Mermin's ranking variable only. So individual
and shared share the identical per-person ratio and differ ONLY in the
reporting quintile -- exactly as Mermin reports own-record benefits by
shared-lifetime-income quintile. The three-way table isolates that:
individual (own quintile) / shared (shared quintile) / anchor (Mermin).

Population: Phase-A career frame (coverage_selected_persons, n=4835)
intersected with marriage-history joinable (both-spouse covered) -> 3131
study persons; 45.8% reshuffle between the own and shared rankings.

Result (PPI % of scheduled): the shared ranking moves Q1 from the
individual 100.0 to 99.49 (within 0.79pp of Mermin's 98.7) and Q2 from
99.23 to 97.12, closer to the anchor at Q1-Q2; monotone; the upper
quintiles stay compressed by the named truncated-window support
restriction. All pre-registered expectations held.

REAL DATA ONLY: the ratified gate-2 tranche map (#112) declares the
marriage x earnings joint the separate UNLOCKED tranche 2c; a
generated-couples version would require it, so this runs on real couples
only (own-record benefit levels are outside tranches 2a/2b/2c, already
certified).

Frozen spec: issue #42 comment 4931009783. Artifact
runs/replication_ppi_shared_v1.json (reported_not_gated: true, per-seed
recomputable). Tests: internal-consistency + skipif-PSID seed-0 pin.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
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