Repository navigation
U2 §20 steps 4–6: record the step-4 pass, materialize the final parameter block and rulings record, ratify by merge - #556
Conversation
§20 step 4 now records both step-4 passes in value-free terms: the d1649 pass stopped on 2026-10-19 at 640adcc without output (§16d), and the d1724 pass ran once on 2026-10-21 at 1e739d3 after master's Tests run 39502262845 passed there. The d1597 U1 pin check passed, both scripts completed with no refusal, failure or mapping failure, every income and WEALTH1 identity reconciles in all six support waves, and rows U0 and U1 carry §16d's disclosure keys. The record cites the outputs' MANIFEST.md by SHA-256 (acf5d8a4...e6d) and states no count, value or other statistic from either pass. §19 gains the matching changelog entry, the exposure record gains this lane's reading, and u1_identity.json repins the specification's hash. No line before §16a, no registry and no code changes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
§15 now holds the final block, u2-ratified-1 (status ratified_frozen): - the three TO_VERIFY keys are resolved: the SSI capture's SHA-256 is pinned (a58d55c1...3762, as parameters.SSI_SHA256), the employer-DC reader names the U2 adapter (uniform_cut_track_u2/sources.py), and later_wave_mapping_status records the RESOLVED pension registry; - previous_routes is amendment 5's ratified fragment, laid out so the registry-cited lines 1173 and 1185 keep their draft-3 number and text; - blocked_by is empty, with each blocker's resolution in §20 step 5; - decisions holds U2's rulings record: d514's eleven entries unchanged, plus d637 (1a-1c confirmed by d745; 2, 3, 4, 5a, 5b, 6; the PSID questions), d1090 (B1, B2, 5c), d1242, d1597, d1649 and d1724. Code: rows.U2_RULINGS builds its registry-applied entries from the registry module's ratified scopes; rows.expected_specification_block() states the whole block from the code; check_block_against_code and check_rulings_against_code refuse any difference, and the registered run's preflight and the dry run apply both. Tests: test_u2_specification_block.py holds the committed block equal to the code and refuses a change to every leaf, every added or dropped key and every JSON type change; a Hypothesis property checks that the check passes exactly the canonical block; the rulings record is held to every decision and the registries; the new TO VERIFY appendix is held complete and its cited tests to existence. Eleven mutants of the checks and the appendix are each killed. The employer-DC, identity, registered-script and specification-revision tests now expect the materialized block; §16 is checked byte-equal to draft 3 at its new position. No registry changes, so the step-4 evidence's registries_sha256 still equals sources.REGISTRY_SHA256. No PSID file was read; tests ran with an empty POPULACE_DYNAMICS_PSID_DIR. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
At the coordinating session's request, the pre-registration evidence record the d1724 step-4 pass wrote is pinned by the SHA-256 its MANIFEST.md records, 7bc5c3c2...b845: - loader.PREREGISTRATION_EVIDENCE_SHA256 holds it, and read_preregistration_evidence, which the registered preflight and every frozen load call, refuses any file whose bytes differ before parsing it (a well-formed invented record included); - §15 gains preregistration_evidence (file, sha256, schema, writer, authorizing decision and where the pin comes from), which rows.expected_specification_block states from the loader's constants, so check_block_against_code holds the two equal. The record itself is restricted and is neither opened nor committed here; a separate lane copies it to docs/design/ before §20 step 8. Also: export rows.RULING_DECISIONS and rename two comprehension variables that shadowed `entry`. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review of 690a127 (Opus 5.5, Subfleet 20261021-105010-u2-step5- review-r1b, REQUEST CHANGES): 1 (blocking): the d1597 rulings entry recorded one use of the structure- only U1 load; it ran before each step-4 pass (2026-10-19 at 640adcc and 2026-10-21 at 1e739d3), each matching the pin, as d1724's decision record states. The entry records both, every authorization's uses are now a list, and §20 steps 4 and 5 say so. 2: specification_block refuses a JSON key repeated at any level. 3: employer-DC persons and previous plans come from the reader (sources.DC_PERSONS/DC_PLANS, made public), the overlap_2012 values from the parameter loaders, and named scripts must exist. 4: the reader's path resolves through a symlinked checkout. 5, 7: tests for the preflight's rulings check, the dry run's specification checks (now one helper, specification_checks), d1242's person count, unresolved registry entries and -0.0. 8: the appendix names the 2013/2015 code-92 entries; its test checks every registry entry and income_concept path it cites. 9: the exposure record names the coordinating session's messages and the review lane's disclosures. 10: §15 says what decisions.ruled_on dates; §20's status line names the steps done and pending (the d1090 checks pin it as STATUS_20). Mutation recheck: 14 mutants; 12 killed, 2 equivalent (the type check the canonical-JSON leaf check covers, and one of d1242's two independent clauses; removing the whole d1242 check is killed). Tests: 1,718 passed, 254 skipped (empty PSID root). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
scripts/u2_u1_differential.py ran at 1742efb (this revision's last code change) against 9cee242, on invented data with the PSID root pointed at an empty directory: equal in every check, the dry run included, with no loader file access. The report is docs/design/u2_m2_u1_differential_1742efb.json; §17 item 7, §20 step 6 and §19 cite it. This commit changes no code. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review of 9f79818 (GPT-6.1 Sol, Subfleet 20261021-214735-u2-step5- review-r2, REQUEST CHANGES; every round-1 finding resolved): 1 (blocking): §20 step 6 no longer dates the merge; the merge commit and the step-8 registration record it. 2: the exposure record names this lane's session, scratchpad and every U1 differential run with both checkouts, records the venv's move after the scratchpad was wiped (pandas pinned to the evidence's 3.0.6), and reads d1649's ruling correctly. 3, 5: tests make each half of the d1242 guard fire alone and cover amendment 6's option. 4: a missing d1090 exclusion entry refuses with a message (next(..., None) instead of a bare StopIteration). 7: §15 and §20 step 5 say exactly what the preflight checks of the registration (an issue #42 comment URL and an equal binding). 8: a test holds u1_identity.json's version equal to the code's. 6 is left for later: its test would read U1's committed artifact, which waits for the coordinating session's PSID hold of 2026-10-23. Mutants N, N2, O and the missing-exclusion refusal are each killed. Tests (empty PSID root; no committed runs/*.json read under the hold): 775 U2 unit-tier and 161 specification tests pass. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
scripts/u2_u1_differential.py ran at 14d9576, now this revision's last code change, against 9cee242, on invented data with an empty PSID root: equal in every check, the dry run included, with no loader file access. Report: docs/design/u2_m2_u1_differential_14d9576.json, cited by §17 item 7, §19 and §20 step 6; the earlier rerun at 1742efb stays recorded. This commit changes no code. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Now that the coordinating session's protective PSID hold of 2026-10-23 is lifted (d1899), test_u2_identity.py holds rows._U1_INPUT_FRAMES_SHA256 equal to the input_frames_sha256 U1's committed artifact records, comparing only that hash. §19 and the exposure record say so. Test-only; no code changes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review of a2e2d68 (GPT-6.1 Sol, Subfleet 20261023-063829-u2-step5- review-r3b): APPROVE, every round-2 finding resolved, one nit. The exposure record said the round-2 findings were "all answered in the next commit"; finding 6's test came in a later one, so it now reads "the following commits". The exposure record and §19 also record both round-3 jobs (the first cancelled before launch). No code or test changes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review of ac808d4 (GPT-6.1 Sol, Subfleet 20261023-073938-u2-step5- review-r4): APPROVE, one nit. The §19 entry for round 3 had been inserted inside round 2's list (before findings 7, 8 and the code-change note); it now follows that list, and §19 and the exposure record record round 4. The exposure record's extra blank line at EOF is removed. Docs only. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Tiers by collection at the merge of origin/master 6967142: unit 18,125 (+37), artifact 4,261 (+8); integration_psid 1,450, reproduction_legacy 520 and oracle_policyengine 308 unchanged; total 24,664. The tier policy test passes against the full collection. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Spec §19, round 2's finding 6 now says it landed in a later commit, on 2026-10-23. In docs/design/u2_m2_exposure.md the block, rulings and appendix line and round 3b's runs line are reworded. The exposure record also adds review r5, the cancelled r5b job, the in-session r5b review, the 2026-10-24 post-merge checks and the coordinating session's later messages, and §19 records r5 and r5b. u1_identity.json repins the specification's SHA-256. Docs and one pin only; no code or test changes. Tests (empty PSID root): tests/track_u2 and tests/track_u, 1,607 passed and 254 skipped; the tier check collects 24,664, unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Merge audit (§20 step 6: this merge ratifies the U2 specification). Merge commit: Gates at the head
r6's nits, recorded here so the frozen records need no edit
At merge
No PSID counts appear in this PR or in this comment. |
…known gaps - Tracking and next-step cells for the twelve rows the mortality, groups and financing (#558), income-and-resources (#559) and open-population (#557) designs cover, citing their merged files. - The poverty row records U2's completed second structural pass and its ratification by #556's merge; next are the evidence file, a fresh forecast and the #42 registration. - Known gaps keeps only what no issue, PR or approved design plans. - Rulings d1922, d1923 and d1925; link refs for #556, #566–#568, #570. - Scorecard: the wealth row names the approved design; progress page regenerated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
U2 specification §20 steps 4–6 for the 1946–55 blind test (
docs/design/boomers2004_1946_55_comparison.md), assigned by the dynamics coordinator session. Merging this PR is §20 step 6: it ratifies the specification (u2-ratified-1) under d514.What it does
§20 step 4: the step-4 record. Value-free facts only:
640adccf.1e739d32, after master Tests run 39502262845.MANIFEST.mdSHA-256acf5d8a4…e6d.§20 step 5: the final parameter block (version
u2-ratified-1, statusratified_frozen).TO_VERIFYkey is resolved:a58d55c1…);employer_dc.reader=uniform_cut_track_u2/sources.py;later_wave_mapping_statusrecords the RESOLVED pension registry.previous_routesfragment is applied. Registry-cited lines 1173 and 1185 keep their draft-3 number and text.blocked_byis empty, with each blocker's resolution stated.7bc5c3c2…b845, from its MANIFEST). The loader refuses any other bytes before parsing; the restricted file itself is untouched.decisions) covers d514 (every §16 ruling), d637 (1a–1c with d745's confirmation; 2, 3, 4, 5a, 5b, 6; the PSID questions), d1090 (B1, B2, 5c), d1242, d1597 (both uses), d1649 and d1724.Code:
rows.expected_specification_block()states the whole block from code, registry and loader constants.rows.check_block_against_codeandrows.check_rulings_against_coderefuse any difference.No registry byte changes, so the step-4 evidence's
registries_sha256still equalssources.REGISTRY_SHA256.Invariants (tested)
The committed §15 block equals
expected_specification_block()under==and as canonical JSON.check_block_against_codepasses a block iff it is canonically equal to the code's. It names the path of every:true/1,1/1.0,-0.0);A Hypothesis property covers arbitrary scalars.
The rulings record names exactly the eight U2 decisions. Every registry entry it names is RESOLVED and records that decision (and option). The d637 entries equal the registry module's ratified scopes, and the d1090 exclusions equal the role entries that carry them.
Every prose TO VERIFY line before §15 has an appendix row, and every cited test, registry entry and block path exists.
Lines before §15 equal draft 3 except the version and status lines. §15 through line 1185 changes only at the materialized lines. §16 equals draft 3 at its new position.
Mutation checks: across rounds, every reviewer-surviving mutant is now killed. Two of my own mutants survive, and both are equivalent: a redundant type check, and one of two independent clauses.
Verification
Tests (empty
POPULACE_DYNAMICS_PSID_DIR; no PSID record read). Ata9ff290e,tests/track_u2andtests/track_ugive 1,607 passed and 254 skipped. Earlier, atfb7d92b9, the Boomers spec and replication tests and the birth-evidence artifact test also passed: 1,721 passed and 254 skipped in all. The later commits change tests and records only.Tier counts, recounted at the tier slot after Track B G v2: close #495, compute five refused configurations, one contract across G, R2 and R3 #530: unit 18,125, artifact 4,261, integration_psid 1,450, reproduction_legacy 520 and oracle_policyengine 308, for 24,664 in total. The full-suite tier check passes at
7fc7ab21anda9ff290e, and also on a local merge of7fc7ab21with master4fc2b9f4. CI's run ata9ff290etested its merge with master2195258c.U1 differential (§17 item 7) at
14d9576a, the last code change, against9cee2423: equal in every check. Report:docs/design/u2_m2_u1_differential_14d9576.json.Independent reviews (records in
EV/rulings-records-20261021-u2-step5/):ac808d4a7fc7ab21, with no defects found; it withheld approval only for two checks its read boundaries blocked7fc7ab21, after running those two checksa9ff290e, a delta review of the record wordingReading and exposure
Recorded in
docs/design/u2_m2_exposure.md(§20 steps 4–6 section). No file on the restricted list was opened, no PSID record was read and no statistic was computed. The lane may later forecast U2, so everything it read is listed there.🤖 Generated with Claude Code