gate_w1 amendment 2 flip: demote family-A concept cells + C1 to report-only (ratified c50f8bb)#174
Conversation
…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>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Verdict: MERGE. Flip-fidelity round on 1. §7 → yaml path census (my own
|
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 viaretained_tolerances→ 0.922 / 0.9481 (= the FROZEN floor's own untouched OC). The floor JSON is byte-untouched and still lists all 53 asgate_eligible— the amendment rescopes the CONTRACT, not the floor, exactly as the disclosure note claims. - C1 untouched:
fingerprints.c1deep-equal (anchor_values,required_representative_order,swap_pair,mechanism,psid_frame_orderall identical);c2identical. - No sibling movement:
family_b,protocol.{statistic,pass_rule,estimator,floor bindings}(onlyper_draw_per_cell_rateschanged),governance,frame_pin,holdout_basisall 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_roundextended withfixes_2/re_verification— RATIFIED-AUTHORITY-CONSISTENT. The §8 template's three keys carry# filled at ceremonyplaceholders; the real ceremony ran five rounds. I verified all five live:4953763322AMEND →8e713ef/4953911698fixes →4954135376FURTHER-FIXES →dd913ac/4954294003fixes-2 →4954346300RATIFY 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 fromretained_tolerancesis 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-24⏎participation, 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 unmarkedpytest testscollects 2603 and pulls inintegration_psid/oracle_policyengineagainst 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 againstorigin/master=c50f8bb; itsset(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 c50f8bb→c50f8bc |
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 --transitionon the clean committed tree: no diff; rerun idempotent (no diff). Manifestcontract_revision=c43b2be= the flip commit'sgates.yamlblob sha; recordedsha256/n_bytesmatch the working blob (305709 bytes).- Fresh
gh pr view 174:mergeable: MERGEABLE,mergeStateStatus: CLEAN. Freshgh 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)
- M6 is caught by the byte guards, not a semantic binding. Any
gates.yamltamper tripstest_contract_identity+test_legacy_manifest_matches_working_tree(blob/sha256 vs HEAD/manifest). No live test asserts the a2historyentry's content (ratified sha, ceremony comment ids, cell names) the waytest_gate_w1_amendment1_flip_history_and_ceremony_recordbinds 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_recordtest would close the asymmetry. - 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.)
Applies the RATIFIED gate_w1 amendment 2 —
2026-07-12-w1-family-a-concept-cells, ratified by merge of PR #169 (squash c50f8bb) — togates.yaml, per the string-bound §7 flip text ofdocs/amendments/gate_w1_amendment_2_family_a_concept_cells.md.§7 → yaml application table
thresholds.family_aviews →report_only+report_reasons+retained_tolerancespopulation_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)family_a.faithful_candidate_ocprotocol.fresh_run_artifact_schema.per_draw_per_cell_ratesthresholds.family_c.gate_partition+ report-onlygate_eligible: [fingerprint.elimination_plus2pp], 1/1;report_reasons: fingerprint_reversal_not_realized; C1 ordering fields RETAINED underfingerprints.c1; disclosure note addedcandidate_procedure.pass_rulefamily_c.checkgate_w1.coverscertification_scope.certifiesgate_w1.historyreferee_roundextended withfixes_2/re_verificationkeys 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
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 viaretained_tolerances— the frozen artifact is untouched; schema [20,47,5]; family-C 1/1 + check/pass_rule bindings; covers/certification 48/84).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 fromretained_tolerances.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.--transitionlegacy-manifest regen: run on the clean committed tree, idempotent (second run = no diff).test_tier_policygreen under full collection; black + ruff clean.Record notes
Ceremony next step: flip-fidelity referee before merge. Do not merge until that round posts MERGE.
🤖 Generated with Claude Code