Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion data/external/track_u2/u1_identity.json
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@
"draft_3_commit": "f7412e00cdcdba6ee1156b74fa93039f5329cb8f",
"draft_3_git_blob": "e07ee0d589d20f3b6d100e5d4ce173f9a653f5e9",
"version": "u2-draft-4",
"sha256": "22f66d0269958c330b5ff7a7239c10345577092bccf1d70c06512bd2c27b06a0",
"sha256": "77f30781d241fbc75c6ff056e0632632a8770b047c320db587dcda9a3af79d78",
"cited_lines_sha256": {
"74": "7b299c9e4473fd51d04bdfec51af83268e517181ab734d3e76ccd1c744f6daa9",
"75": "44454cc04e6a50863035d69ccb53edec175b4ad70a19d8877437901d2deb8428",
Expand Down
24 changes: 16 additions & 8 deletions docs/design/boomers2004_1946_55_comparison.md
Original file line number Diff line number Diff line change
Expand Up @@ -1651,19 +1651,19 @@ Both rules are fixed by this ruling, before any count, and each is vacuous if no

The adversarial review of `u2-draft-1` returned **RATIFIABLE AFTER EDITS**. Rev1 (`u2-draft-2`) applied those edits. Its round-diff check returned **REVISE**, identifying R1–R8. Round 2 (`u2-draft-3`) applied every exact edit and retained the earlier resolutions.

Milestone 1 then built the documentary source registries (`data/external/track_u2/`, master record `docs/design/u2_m1_source_adjudication.md`). The independent adjudication of that work (`EV/phase2-20260927/out/u2-adjudicate.md`) returned **ERRORS FOUND**: 18 wrong citations, now corrected; 16 items resolvable from documents, now resolved; 8 routes refused, now encoded as explicit refusals; and 24 items that need conventions, still open. Milestone 1b researched the three documentary blockers from official PSID documentation and wrote `u2-draft-4` (§16a). Max ruled on §16a on 2026-09-30, and §16b records the rulings. PSID answered the three documentary questions on 2026-10-07, Max ruled on blockers B1 and B2 on 2026-10-10, and §16c records that ruling. This document claims no new referee verdict and no completed implementation.
Milestone 1 then built the documentary source registries (`data/external/track_u2/`, master record `docs/design/u2_m1_source_adjudication.md`). The independent adjudication of that work (`EV/phase2-20260927/out/u2-adjudicate.md`) returned **ERRORS FOUND**: 18 wrong citations, now corrected; 16 items resolvable from documents, now resolved; 8 routes refused, now encoded as explicit refusals; and 24 items that need conventions, still open. Milestone 1b researched the three documentary blockers from official PSID documentation and wrote `u2-draft-4` (§16a). Max ruled on §16a on 2026-09-30, and §16b records the rulings. PSID answered the three documentary questions on 2026-10-07, Max ruled on blockers B1 and B2 on 2026-10-10, and §16c records that ruling. This document claims no new referee verdict on the specification; §20 steps 2 and 3 record the completed implementation and the reviews of every later change.

What remains before ratification:

1. Max rules on amendments 1–6 in §16a, choosing one option each for blocker B1 (2015 male code 20; Part B PARTIAL), B2 (codes 90 and 92 in 2019–2023; Part B PARTIAL) and B3 (construction of the revised 2017 weight; Part B PARTIAL). An option that lets registration proceed before documents resolve B1 or B2 takes effect only if Max also ratifies the amendment to draft-3 lines 152–160 or 1391 that the option names; otherwise that blocker's hold governs. B3's option 1 likewise takes effect only if Max ratifies its amendment to draft-3 line 134. **Ruled 2026-09-30 (d637; §16b):** B1 and B2 take option 3, the hold, with no amendment ratified; B3 takes option 1, with its amendment to draft-3 line 134 ratified; amendments 2–5 are ratified as written, and amendment 1's parts 1a–1c are read as ratified pending Max's confirmation (d745). **Ruled 2026-10-10 (d1090; §16c), after PSID answered:** B1 takes option 2, with its amendment to draft-3 line 160 ratified, and B2 takes option 1, with its amendment to draft-3 lines 152, 154 and 158 ratified for 2019–2023. **Confirmed 2026-10-12 (d745; §16b):** amendment 1's parts 1a–1c are ratified as written. This item is closed.
2. Each ruling is applied to the registries in its own reviewed commit. The d1090 commit (2026-10-10) replaced the eight B1 and B2 refusals with §16c's exclusions and released their dependents. The d637 commits, one per ratified amendment, have so far resolved amendment 2's ten later spouse age and sex records as slot metadata and amendment 3's six spouse-retirement crosswalks as non-executable metadata, recorded amendment 4's ruling on the nine corrected wealth accuracy flags, resolved the 2015 P62ACKPT checkpoint under 5b, released the 2017–2023 P64/P65 records under 5a and resolved the 2017 weight ER34651 under amendment 6's option 1; the §15 fragment itself is materialized under item 9. Max confirmed 1a–1c on 2026-10-12 (d745), and the 1a, 1b and 1c commits recorded the ruling on the documented 2015 code-90 and 2017 code-90 and code-92 routes and on 2013's inherited code-90 meaning, and resolved the six code-88 records under the first-year cohabitor convention. No TO VERIFY record remains, and the loader's source preflight passes; the structural pass still needs Max's authorization (item 8; §20 step 4).
3. The recommendations asked Max to send PSID the questions in `docs/design/u2_m1b_psid_research.md` §§1–3 now. He ruled to send all three as a held draft for him (d637), and they were sent on 2026-09-30 (§16b). PSID answered all three on 2026-10-07 (research record §§1–3), and Max ruled on B1 and B2 on 2026-10-10 (d1090; §16c).
4. Verify identification support, observation plans and refreshed design domains; weight documentation follows the amendment 6 ruling (option 1, ratified 2026-09-30; §16b).
5. Pin the SSI parameter file in §15. The capture exists and the adjudication reconfirmed all 106 source hashes.
6. Complete historical-isolation and cross-cohort refusal tests (milestone 2).
7. Produce U2 invented dry-run and exact U1 differential evidence (milestone 2).
4. Verify identification support, observation plans and refreshed design domains; weight documentation follows the amendment 6 ruling (option 1, ratified 2026-09-30; §16b). **Done on the documents and invented data (2026-10-16):** milestone 2 (#487) holds the observation plans to the milestone-1 support registry (`tests/track_u2/test_u2_plans.py::test_plan_equals_the_milestone_1_support_registry`, `::test_u0_has_five_exact_age_pairs`, `::test_u1_has_fifteen_pairs_over_ten_births_summing_to_one`), seeds identification from the earliest positive-weight presence in the support waves (`::test_seed_is_the_earliest_positive_weight_presence`), and holds the refreshed design domains to the design registry, refresher strata 88–94 included, with support-only waves kept out of U0's observations and design frame (`test_u2_design_floor.py::test_design_domains_equal_the_design_registry`, `::test_refresher_strata_88_to_94_are_valid`, `test_u2_plans.py::test_support_waves_never_enter_u0_observations_or_design`). The d637 registry commits (#540) applied amendment 6's 2017 weight with its registration disclosure (`test_adjudication_applied.py::test_d637_amendment_6_uses_er34651_as_released`). Their counts on real records come from the structural pass (item 8), which resolves any failure it finds (§20 step 4).
5. Pin the SSI parameter file in §15. The capture exists and the adjudication reconfirmed all 106 source hashes. **Code pin checked (2026-10-16); §15's pin is open:** the code pins the capture by its SHA-256, `a58d55c160b48cd3e21f730d45265374bd3c8a9eb7eae947469a5a5dc0b23762` (`parameters.SSI_SHA256`; `diagnostics.SSI_SHA256` equals it). Its loader takes no caller-supplied hash, both readers refuse any other bytes (`test_u2_parameters.py::test_loaders_take_no_caller_supplied_hash`, `::test_a_changed_ssi_capture_refuses`), and a registered check refuses another recorded hash (`::test_registered_check_needs_every_u2_pin`). §15's `ssi.parameters.sha256` still reads `TO_VERIFY`: §15 precedes §16a, so no revision of this draft edits it, and §20 step 5 writes the pin when it materializes the final parameter block (item 9).
6. Complete historical-isolation and cross-cohort refusal tests (milestone 2). **Done (milestone 2, #487; kept through #525):** every U2 module is an exact historical-source exclusion, unreachable from the birth evidence (`test_u2_isolation.py::test_every_u2_module_is_an_exact_historical_exclusion`; `tests/estimates/test_birth_evidence_artifact.py`), and §14's cross-cohort refusals hold both ways (`test_u2_parameters.py::test_u1_runner_refuses_the_track_m_and_u2_captures`, `::test_u1_captures_are_refused_as_u2_sources`, `test_u2_identity.py::test_u1_guards_refuse_u2_seed_and_rows`). `docs/design/u2_m2_report.md`'s §13 and §14 audit lists each test.
7. Produce U2 invented dry-run and exact U1 differential evidence (milestone 2). **Done (2026-10-16):** the invented dry run (`scripts/track_u2_dry_run.py`; `test_u2_scripts.py::test_dry_run_records_every_branch_and_refusal`) and the exact U1 differential at `f7a84d0b` against `9cee2423`, equal in every check, the dry run included (`docs/design/u2_m2_u1_differential_f7a84d0.json`). This is evidence at `f7a84d0b`; the differential runs again at the merge that ratifies the specification (§20 step 6).
8. Complete the pre-registration structural, reconciliation and F17 component pass, including only the counts that the ratified B1 and B2 options name (under the 2026-10-10 ruling, the counts specified by §16a options 1d-2 and 1e-1, each disclosed and deciding nothing; §16c).
9. Check the specification, literal named deltas, parameter block (with the amendment 5 fragment, ratified 2026-09-30), manifests and ten-row implementation for equality.
9. Check the specification, literal named deltas, parameter block (with the amendment 5 fragment, ratified 2026-09-30), manifests and ten-row implementation for equality. **Partly checked (2026-10-16):** the named deltas equal §12 literally and the rows equal the §15 block (`test_u2_identity.py::test_named_deltas_equal_section_12_literally`, `::test_rows_equal_the_section_15_block`). The equality checks of the specification, the manifests and the final parameter block wait for §20 step 5, which materializes the block and empties §15's `blocked_by`.
10. Obtain ratification, then a fresh forecast and an independent forecast check.

Required fields remain **TO VERIFY** until source adjudication is complete. Neither empty empirical categories nor observed outputs may substitute for documentary resolution.
Expand Down Expand Up @@ -1876,13 +1876,21 @@ Revision verification comprised the two touched test files and `tests/track_u2/t
- After the merged-head review of #540 (an Opus 5.5 review with a shell, gating while the Codex lanes were held; APPROVE with two notes): a frozen load whose cited setup file is the same file at another hash now refuses under test, where a comparison of the files' names alone would have passed; the exposure log names the tier files each commit rewrote. Tests and records only.
- No count, statistic or outcome was computed, no model or estimator was run on real data, and no file on the restricted list was opened for reading. Reading and exposure are appended to `docs/design/u2_m1b_exposure.md`.

**`u2-draft-4`, §17 items 4–7 and 9 and §20 steps 2 and 3 recorded (2026-10-16):**

- §17 items 4, 6 and 7 and §20 steps 2 and 3 are marked done, item 9 partly checked and item 5's code pin checked, each citing its evidence: milestone 2 (#487), the d1090 and d637 registry commits (#524, #540), the round-3 closeout of milestone 2 (#525) and the U1 differential at `f7a84d0b` (`docs/design/u2_m2_u1_differential_f7a84d0.json`). §17's review paragraph no longer says the implementation is incomplete.
- The same revision (#544) closes the last implementation item before step 4. The pre-registration evidence record (schema v2) freezes the pandas version and string inference setting under which its frame digest was taken, and a frozen load or registered run refuses under any other.
- A new test refuses changed bytes of the SSI capture. §15's field waits for §20 step 5, as §15 precedes §16a.
- The d1090 record test's follower lines for §17 item 9 and §20 step 2 move with their text.
- No count, statistic or outcome was computed, no model or estimator was run on real data, and no file on the restricted list was opened for reading; the U1 differential ran on invented data and its loader guard recorded no access. The revision's reading is recorded with the round-3 closeout lane in `docs/design/u2_m2_exposure.md`.

## 20. Ratification and execution record

**Pending.**

1. Resolve the proposed decisions and source-verification blockers. **Decisions: done (Max, d514, 2026-09-28, adopting every §16 default).** Source-verification blockers remain for steps 2–5. **`u2-draft-4` amendments 1–6 (§16a): ruled by Max on 2026-09-30 (d637; §16b).** B3 is resolved by option 1. B1 and B2 were held until PSID answered; **Max ruled on them on 2026-10-10 (d1090; §16c)**: B1 by option 2 and B2 by option 1, each an exclusion under a named disposition. Max confirmed the reading of amendment 1's parts 1a–1c in §16b on 2026-10-12 (d745), so this step is done.
2. Complete implementation, manifests and parameter capture.
3. Complete independent mapping review, invented tests, historical-isolation checks and exact U1 differential evidence.
2. Complete implementation, manifests and parameter capture. **Done (2026-10-16).** Implementation: milestone 2 (#487) and its three review rounds, the last landing as #525 (`f7a84d0b`); and #544, which records with the frame digest the pandas version and string inference setting it was taken under and refuses a frozen load or registered run under any other (`test_u2_loader.py::test_any_other_frame_environment_refuses_the_registered_check`, `::test_a_frozen_load_refuses_another_frame_environment`). Manifests: the documentary source records, 1,766 registry entries and 26 SSI and Census records, are all RESOLVED, none REFUSED or TO VERIFY (`test_adjudication_applied.py::test_status_counts_after_independent_adjudication`), and the loader's source preflight passes (`test_u2_mappings.py::test_source_preflight_passes_at_the_committed_registries`; #524, #540). A RESOLVED record is a documentary finding; reconciliation on real records is step 4's. Parameter capture: the U2 SSI capture, the Track M threshold capture and U1's inherited life tables, each pinned by hash in the code (§17 item 5; `test_u2_parameters.py::test_threshold_capture_is_the_pinned_track_m_file`; `parameters._LIFE_TABLE_PINS`). The final parameter block is step 5's.
3. Complete independent mapping review, invented tests, historical-isolation checks and exact U1 differential evidence. **Done (2026-10-16).** Independent mapping review: the independent adjudication of milestone 1's registries (ERRORS FOUND); milestone 1b applied its corrections in #486, whose independent review requested changes on 11 findings and whose blind verifier then returned U2-M1B: VERIFIED (`test_adjudication_applied.py::test_dispositions_match_the_adjudication`; §17). Every later registry change had an independent review before it merged: the d1090 rounds (§19), ending in APPROVE at round 4 (`e7a558f`) and at #524's merged head (`742590b`; #524's merge audit); the d637 and d745 commit reviews, the last a delta review, APPROVE (§19); and #540's gating review, an Opus 5.5 review with a shell, APPROVE (#540's merge audit). Invented tests and historical isolation: the milestone-2 report's §13 and §14 audit (#487, #525), closed by three review rounds and a fourth-pass mutation run in which a test kills every mutant; §13's optional structure-only U1 load needs Max's approval and is not run. Exact U1 differential evidence: §17 item 7.
4. Complete the authorized pre-registration structural, reconciliation and F17 component pass; resolve mapping failures. The pass reads real PSID records, so it needs Max's authorization, recorded as a chief-of-staff decision. `scripts/track_u2_structure.py` and `scripts/track_u2_component_diagnostics.py` refuse to run without `--authorized-by <decision id>`, exiting non-zero before any PSID path is resolved or opened, and the loader refuses an unfrozen load without the same record. The flag records the decision id, the git head and the UTC time in the pass's output; it only records the authorization and does not grant it.
5. Materialize the final parameter block and U2 rulings record; require exact code/specification agreement.
6. Ratify the specification by merge.
Expand Down
3 changes: 2 additions & 1 deletion docs/design/u2_m2_exposure.json
Original file line number Diff line number Diff line change
Expand Up @@ -1113,6 +1113,7 @@
],
"guard_logs": "empty for mut-a, mut-c, b2, d2, both reviews and this lane; mut-b's and mut-d's were truncated unread by this lane when it reset those clones, and their stream logs show no refusal and no tool input naming a restricted directory",
"psid_documentation_opened_by_tests": "none: test_psid_research_sources.py's 244 documentation tests skipped because the PSID root was an empty directory; its other 147 tests open no PSID file",
"values_printed": "invented offsets, invented cells, invented-run counts and dispositions, hashes and timings; no 1946-55 value or direction"
"values_printed": "invented offsets, invented cells, invented-run counts and dispositions, hashes and timings; no 1946-55 value or direction",
"section_20_follow_up": "PR #544, cut from master f7a84d0b: the section 17, 19 and 20 record, the SSI changed-bytes test and the frame environment in the pre-registration evidence (schema v2); read only the specification ranges listed under 'specification' and the merged PR records #481, #486, #487, #500, #524, #525 and #540; ran the U1 differential at f7a84d0b and the U2 files under the hook (nothing refused); its reviews 20261016-140335-pr544-review and 20261016-152540-pr544-review-r2 (Claude Opus 5.5, standalone clone with the hook) read the specification and nothing else restricted; the second read its header, section headings, section 15's decisions and blocked_by, the section 17, 19 and 20 changes and section 20, and saw one grep line of the first appendix, which holds no value"
}
}
2 changes: 2 additions & 0 deletions docs/design/u2_m2_exposure.md
Original file line number Diff line number Diff line change
Expand Up @@ -348,4 +348,6 @@ The hook refused nothing at any of these runs. Its only refusals were the self-t

Every lane read `EV/RESTRICTED-FILES.md`'s rules from its brief, not the file. No lane's stream log shows a refusal by the hook or a tool input that names a restricted directory; the only matches are listings of the hook's own source. The hook logs of mut-a, mut-c, b2, d2, both reviews and this lane are empty. This lane truncated the hook logs of mut-b and mut-d without reading them when it reset those clones for the finishing lanes; their stream logs are the record for those two.

**The §20 follow-up (#544).** The same lane then cut #544 from master `f7a84d0b`: the §17, §19 and §20 record; the SSI changed-bytes test; and, after its review asked for it, the frame environment in the pre-registration evidence record. It read only the specification ranges listed above and the merged PR records (#481, #486, #487, #500, #524, #525, #540). It ran the U1 differential at `f7a84d0b` and the U2 files under the same hook, which refused nothing. Its independent reviews (`20261016-140335-pr544-review` and `20261016-152540-pr544-review-r2`, Claude Opus 5.5, in the standalone review clone with the hook) read the specification too, and nothing else restricted; the second read its header, section headings, §15's `decisions` and `blocked_by`, the §17, §19 and §20 changes and §20, and saw one grep line of the first appendix, which holds no value.

**Values:** this lane and its lanes stated and inferred no 1946–55 value or direction. Every number they printed is invented (offsets, invented cells, invented-run counts and dispositions), a count, a hash, a timing or a public parameter from the committed captures.
Loading
Loading