Skip to content

Track B insured status: quarters of coverage; fully, currently and disability insured - #562

Merged
MaxGhenis merged 54 commits into
masterfrom
trackb-insured-status-20261023
Nov 6, 2026
Merged

MaxGhenis merged 54 commits into
masterfrom
trackb-insured-status-20261023

Conversation

@MaxGhenis

@MaxGhenis MaxGhenis commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

This PR adds Track B's insured-status rule: quarters of coverage, and fully, currently and disability insured status, decided per person-month (Act 213, 214, 216(i) and 223(c); 20 CFR 404 subpart B; POMS RS 00301). Max ruled d1802 that the rules lane builds it. B6a, the baseline claiming hazard on an insured, unclaimed person-month risk set, needs it, and the open-population lane's OP8(d) will call it for entrants. Nothing in the repository decided insured status before (docs/parity-ledger.md). The work checks statutory conformance on invented cases and published examples only, and makes no population claim.

This PR waits on CI at ecbee31e, then the coordinator's slot. An independent cloud reviewer approved d30e4426 with no finding of medium or higher (brief 6932, comment 6619466973), and all 135 of round 24's cloud mutations failed a named test there (brief 6931, comment 6620539979). c81036b6 records that run in the ledger and the design note, and changes no code. ecbee31e merges master 4f99edfb, which changes no Track B file. Sol audits the merged commit when the Codex lanes reopen. The tier files count 26,654 unit tests and 36,123 in all, and the coordinator checks them at its slot.

What it does

  • Quarters of coverage.
    • Quarterly wages before 1978, with the $50 rule and the self-employment and agricultural rules.
    • Gift QCs for maximum earnings.
    • Annual increments for 1978–2027: the RS 00301.250 chart, plus OACT's 2027 determination of $1,970.
    • Favourable assignment to quarters (RS 00301.230), and the exclusions (no QC after death, before a quarter begins, or inside a prior period of disability except its first and last quarters).
  • Fully insured. One QC per elapsed year, at least 6 and at most 40. The rule counts elapsed years after 1950, or after the year of attaining 21 if later, never from projection entry. This includes the pre-1913 male cohorts and the exclusion of disability years.
  • Currently insured. 6 QCs in the 13 quarters ending with the quarter of death, of DIB entitlement or of RIB entitlement.
  • Disability insured. 20 of 40 quarters with fully insured status, special status before 31, subsequent periods, statutory blindness, and the date last insured.
  • Per-year earnings provenance (for OP8(d) and its entrants).
    • Each year carries an observed amount, a convention fill (with a convention id) or UNKNOWN, and an undeclared year raises an input error.
    • The rule bounds unknown years at their lowest and highest QC counts and returns a status only when both bounds agree; otherwise it refuses by name (unknown_earnings_years_decide_status), and the row stays in the shared denominator.
    • Results report which convention-filled years and conventions they relied on.
  • OP8(d) and OP12 interface needs (Open population design: births, migration, alignment and the long horizon #557, §6.1):
    • QCs as a direct input: a count of 0–4 after 1977, quarter flags before 1978.
    • Evaluation at a stated month.
    • An optional totalization input, empty by default, which the rule refuses when non-empty until Track B builds totalization.
    • No pre-entry convention inside the rule.
    • A coverage-end month for emigrants, with the statutory clocks still running.
  • The shared Track B contract. Exact schemas, canonical enums, sealed results and refusals, one reason enum, the shared count_family_outcomes denominator, and validation once per call.
  • Named refusals. Each stays in denominators. They cover deemed fully insured status, transitional status, the SSPA 211 alien-worker rule, railroad and military credits, Medicare government employment, earned-basis wages, the pre-1956 alternative test, fiscal and short taxable years, simplified pre-1951 aggregates, raw 1937 earnings, separate pre-1955 agricultural wages, pre-1951 self-employment, increments after 2027, and queries before 1968. The design note has the full table.

Invariants

Tests execute each of these, through Hypothesis properties, exhaustive grids or worked examples:

  • QCs per year stay between 0 and 4 and never fall as earnings rise.
  • The indexed QC amount never falls as NAWI rises, and never drops below the prior year's.
  • Assignment returns one deterministic, order-independent, window-optimal answer.
  • Excluding a period of disability never adds a QC.
  • With fixed declared period boundaries, adding a QC never removes any status, and it never moves the date last insured earlier except where the tests label that intended: a QC that lets 404.130(b) begin a current period that 404.130(c) alone would otherwise begin takes 404.130(d) from the quarters after it (round 23).
  • Disability insured implies the fully insured prerequisite at its qualifying quarter. Fully insured status at a later query can still fail: a woman born 1970-02-02 with four QCs in each year from 1992 to 1996 and an onset on 1997-01-15, not established, is disability insured from 1997-01-01 in January 2015, while FULLY finds 20 of the 23 QCs it needs.
  • The windows span 13 and 40 quarters, and the fully insured requirement stays between 6 and 40.
  • Unknown-year bounds contain every concrete filling, or the rule refuses.
  • Convention-filled years equal to observed ones give identical status.
  • Input errors never become refusals, and every refusal keeps its row and weight in the shared denominator.
  • A long subsequent-special period computes exactly where both readings agree, and otherwise refuses by name.
  • Every period ending reaches the reported lower date on a filling with the reported start.
  • Under UNKNOWN priors or UNKNOWN establishment, a computed status or lower date holds on every annual placement with no period in force (round 19).
  • A computed result on a listed prior matches the best that prior allows, for each status, count and date (round 19).
  • A computed count and assignment rest on a filling whose own first start matches the reported start, and each period ending and the date last insured must hold at that start.
  • Two fixed fillings that agree through a start's year give that start, so no later year moves it (round 20).
  • A period's establishment counts no quarter of that period (round 20).
  • _prior_start_binds answers true wherever placement splits a listed prior on its basis, and a flagged prior every placement carries on its route, short of 20 of 40, binds nothing (rounds 20 and 21).
  • A computed status or date on a listed prior holds on each basis some placement allows, and otherwise the row refuses by name and keeps its weight (round 21).
  • Every filling that passes 404.130(b) or (d) at a prior's start passes past blindness, and a prior no placement supports refuses by name (rounds 21 and 22).
  • An unflagged listed prior, its holder not blind, rests on 404.130(b), or on 404.130(d) at 31 or later after a flagged prior, never on 404.130(c) alone; a flagged prior and the current period keep 404.130(c) (round 22).
  • A current period begun before 31 on 404.130(c) alone, its holder not blind, counts as a flagged prior for the quarters after it and gives the date that prior gives when listed. Where placement or an UNKNOWN year decides that basis and the dates differ, the date refuses by name (round 23).
  • Periods share no day, and a period may begin in the quarter a prior ended (round 23).
  • The exit month moves no result within its year, and neither a birth nor an exit bars an annual QC from a begun quarter of its own year (round 23).
  • DISABILITY reports the earliest first insured quarter a kept filling attains, and its range spans every basis a binding prior can rest on and, under UNKNOWN priors, reaches the onset quarter (round 23).
  • A living man born before January 2, 1913 counts elapsed years to 65 or 1975 from the year he reaches 62, and each 404.115 cohort gets its column (round 23).
  • A flagged prior stands only on a placement where a special route passes and 404.130(b) fails (round 23).
  • A listed prior no completion supports refuses by name before any input error or UNKNOWN-earnings refusal, and the row keeps its weight (round 23).
  • The note check lists only the tests folder and opens only the design note and the insured status modules (round 23).
  • On an established current period, the rule raises InvalidFamilyInput only where every completion of its UNKNOWN years would. Where some completion leaves a listed prior unsupported, it refuses by name and keeps the row's weight (round 24).
  • For an unflagged listed prior from 1956, support on lower credits implies support on every completion (round 24).
  • For a pre-1956 listed prior, support on upper credits for the years after its start year implies support on every completion of those years (round 24).
  • The rule raises an input error only where no completion can exceed 4,096 boundary assignments (round 24).

Worked examples and differentials

  • Worked examples. The registry (tests/data/track_b/insured_status_examples.yaml) inventories 48 cases:

    • 27 computed exactly, from RS 00301.120, .140, .147, .148, .150, .220, .230, .320, .325, .340 and .345, the CFR examples, and OACT's 2027 determination;
    • 3 table differentials (below);
    • 3 computed where a POMS example's printed figure diverges from the CFR (both pinned);
    • 1 source ambiguity, 12 named refusals and 2 administrative inventories.

    The source tests find each entry's quote in its pinned capture and check that each computed entry names an existing test, which asserts the rule's figures. No test reads the registry's expected or implemented fields.

  • Differentials.

    • The 213(d) formula, in exact rational arithmetic on the pinned NAWI, against every published increment from 1979 to 2026.
    • POMS RS 00301.250 against OACT for all 49 shared years.
    • The fully insured requirement against every row of the CFR 404.115 cohort chart.
    • The stress oracle's downward last_insured scan against a scan of every quarter (test_status_stress_last_insured_matches_a_full_scan).
    • The same requirement against all 38 rows of the RS 00301.800 exhibit, by birth cohort, by its January 1 footnote and by year of death. The exhibit's text comes from its PDF, and hashes pin the PDF and both GIF renderings. The PDF's footnote 2 gives age 65 to "men born before 1/2/31", but 20 CFR 404.110(b)(2)(iv) gives it only to men born before January 2, 1911. The rule follows the CFR, and a test pins both texts (test_rs00301_800_pdf_footnote_misdates_the_male_age_65_cohort).
  • Mutation checks. docs/design/track_b_insured_status_mutations.json holds the lane's first mutations and every later round's records, runners and replays. The exhibit differential also catches moving the 1975 cap and moving the 1913 male cutoff.

Source readings

The design note's source-conflict register lists nine readings. A marker at each decision line names its reading, and ~/reviews/us-hub/source-conflicts/RULINGS.md logs each one:

  • Two POMS examples conflict with 20 CFR 404.130(f): the favourable-disregard rule and the endpoint quarters. The rule follows the regulation, per principle P2 ("regulations are law") (us:oasdi-insured-prior-disability-favorable-disregard, us:oasdi-insured-disability-period-endpoint-quarters).
  • Six more take one reading where the sources allow more than one, or refuse by name where the readings differ: the pre-1951 seven elapsed years, the simplified method's disability scope, the pre-1956 alternate's scan, a historical end's recovery month, past blindness under UNKNOWN priors, and one filling for a period's first start.
  • The long subsequent-special period waits on Max: past 40 counted quarters, the Act's uncapped half and 404.130(d)(2)'s 20 of 40 differ. The rule computes on the cap and refuses by name where the uncapped count would insure, and it doesn't apply a third parse, at most 20 QCs anywhere in the period. The refusal and that parse stand until Max rules the pattern in d1920 (us:oasdi-insured-subsequent-special-long-period).

RS 00301.340's short-year allocation stays refused, with both readings pinned. They differ by $100 in allocated earnings and not at all in status. An exit year's annual amounts cover work through the exit month, an interface convention the design note documents, and the exit bars no quarter of its own year (RS 00301.230 B).

Effort

The coordinator estimated 5–10 engineer-days for a person. An automated lane wrote the first build, and 24 rounds of review and repair followed; none of that measures human effort. B6a still needs its empirical risk set, observed histories, claim timing and estimation; this PR supplies only the statutory predicate.

Round 24 (session, after the reviews of fc689ecb and f32d8812)

Round 24 adds 0c39ea4b, d30e4426 records brief 6870's round 23 mutation run in the ledger, and c81036b6 records brief 6931's round 24 run. ecbee31e merges master 4f99edfb, which changes no Track B file. Master and this branch both add lines to scripts/first_estimates_birth_evidence.py and tests/estimates/test_birth_evidence_artifact.py, and git keeps both sets. The cloud reviewer on brief 6641 asked for changes at fc689ecb on one medium, two lows and a nit (comment 6615437593). f32d8812 changed only the stress module, the tier files and the note, so the medium still held there. The reviewer on brief 6871 started before that report posted, and approved f32d8812 with two nits and a low (comment 6616118566).

  • An input error holds on every completion (medium). An input error drops the row, so the rule may raise one only where every completion of the UNKNOWN years would. On a completion that leaves a listed prior unsupported, the rule refuses by the prior's name and keeps the row. At fc689ecb, _prior_basis looked for support on upper credits and _flag_fits on any completion, so the rule raised InvalidFamilyInput on records that only some completions support. For example, a woman born 1950-02-02 has 16 QCs from 1981 to 1984, a prior from 1990 and an established 2005 period. She needs 18 QCs for fully insured status at 1990Q1, so two must come from 1989. With 1989 UNKNOWN, the rule at fc689ecb dropped her row, though with none or one 1989 QC it refuses by the prior's name. _refuse_undecided_priors now refuses by unknown_earnings_years_decide_status wherever some completion leaves a listed prior unsupported. Where four 1985 QCs support the prior on every completion, the rule still raises the input error. _refuse_undecided_priors picks the completions it reads by the prior's basis:
    • For an unflagged prior from 1956, it reads lower credits, since the law sets a minimum number of QCs for every basis such a prior can rest on. A differential property test compares that reading with a search of every completion.
    • A flagged prior needs a special route to pass and 404.130(b) to fail at its start. Too few QCs in a year open by then can leave the route unmet, and more can meet 404.130(b), so it reads every completion of those years. The reviewer's r6 mutation stops those years short of the prior's start year. It passed every module the reviewer ran (low), and now fails test_either_bound_of_a_start_year_can_unseat_a_flagged_prior.
    • An unflagged prior from July 1952 through 1955 can rest on RS 00301.480 B.1, a route a holder can lose by meeting 20 of 40 in a later quarter through September 1960. It reads every set of quarters in each open year through the prior's start year, and upper credits after that, since later QCs can only add to a later 20 of 40.
    • Past 4,096 completions, the rule refuses with a detail that names the cap.
  • A middle completion past the boundary cap. _boundary_variants refuses more than 4,096 assignments of the QCs in a listed prior's endpoint years. A year's assignments peak at a middle count: two QCs in four open quarters have six, while none or four have one. So a completion between the bounds can exceed the cap where neither bound does. For example, at f32d8812 the rule raised InvalidFamilyInput on an invented record with 1988 and 1989 UNKNOWN. The woman in it, born 1955-02-02, has priors from October 1980, 1984 and 1988, each running to the next March, and two QCs in each of 1980, 1981, 1984 and 1985. Two QCs in each of 1988 and 1989 give 46,656 assignments, and the rule refuses that completion. _refuse_boundary_completions now bounds every completion's assignments and refuses past the cap. The session's own checks found this gap.
  • A property over every completion. test_an_input_error_holds_on_every_completion draws invented records with listed priors, an established current period and one or two open years. Wherever the rule raises InvalidFamilyInput on one, the test runs each completion and checks that each raises one too. Two searches of 400 such records outside the suite ran 10,427 and 9,407 completions and found no violation; with _refuse_undecided_priors off, the first found 37.
  • The issue draft. The rulespec issue draft's example of a refusal now covers a prior that some completion leaves unsupported, where it covered only one that no completion supports.
  • The other lows and nits. Until Max rules on the pattern in d1920, the rule doesn't apply the third parse of 404.130(d)(2) (low). Where only that parse would insure a holder, the rule computes DISABILITY false and raises InvalidFamilyInput on an established period. The rule still accepts an RIB that begins in the month a holder born on the first attains 62 (low). Act 202(a) may require age 62 throughout the month, and a follow-up after this PR captures its text. The second RS 00301.340 short-year note in the registry gets back its dollar signs, and the Worked examples and Differentials bullets above now match the sources README (nits).
  • Mutations. Round 24's 28 mutations each undo one change. They skip or weaken _refuse_undecided_priors and _refuse_boundary_completions, read the wrong credits for one kind of prior, move the last open year, break _completions, or replay the reviewer's r6. Each fails a named round 24 test, and the audit hook logged no restricted open. A cloud session on brief 6931 then ran them at d30e4426 with round 23's 107, where precedence_possible now drops only the _refuse_unsupported_priors call. All 135 failed a named test through every insured status module, with no restricted open in any run's audit (comment 6620539979), and c81036b6 adds their records to round_24_mutations. The comment's base64 block miscopies one character, at offset 5037. With that character restored, the block passes gzip's CRC check and matches the comment's SHA-256 fa546be3…. In the same run, both mutations of the stress oracle's scan fail test_status_stress_last_insured_matches_a_full_scan. With f32d8812's insured_status.py in place, eight of round 24's 64 tests fail, in a local run and on brief 6931. Seven of the local eight fail on InvalidFamilyInput.
  • Tier files. Round 24's 64 unit tests bring the counts to 26,388 unit and 33,243 in all. The README's total now sums its rows; f32d8812 had left it at 33,178. ecbee31e takes master's counts plus the 2,735 unit tests this branch adds since 97003ac2: 26,654 unit and 36,123 in all.

The rule now refuses by name on rows it used to drop as input errors, and those rows keep their weight. Every status and date the rule computed before stays the same, and no payment moves, since this module computes none.

Locally, on invented data and at most four processes, black -l 79 and ruff check pass on round 24's two Python files. Under an audit hook that raises on any open of a barred path, the insured status modules pass all 1,997 of their tests, and no test opened a barred path. At c81036b6 and again at ecbee31e, the note and ledger tests and round 24's module pass all 348 of their tests under the same hook.

In brief 6931's Track B gate at d30e4426, 17,019 tests passed, 20 skipped and one failed: the [bun] test from master's B0.1 classifier (#534), which chip task_a2daf659 tracks. This PR touches no B0.1 file.

The reviewer on brief 6932 read the whole diff and approved d30e4426 with no finding of medium or higher (comment 6619466973). It rebuilt the record behind every earlier medium and found each resolved, ran the 46 modules the brief names (7,461 tests), and ran its own oracles over 1,700 records with no mismatch. Its completion checks over 1,050 records found no violation, and the 112 input errors among them held on every completion. Its one new finding, a low, says the refusal for a frozen exit on an ongoing period also covers DISABILITY, whose status the onset settles. The design note documents that refusal and the row keeps its weight, so a follow-up after this PR takes it. The lows it leaves open cover the third parse (d1920), FULLY's larger-margin diagnostics, the conservative deferred refusals and the uncaptured Act 202(a) month. The pre-screen's two surviving mutations still survive in its sandbox, as the design note's Mutations section accounts.

Round 23 (session, after the review of 7b5b126a)

Round 23 adds 8522452c, c25a32c8, aeef5c74, fc689ecb and f32d8812, and 2f5ee7a9 merges master 97003ac (D4, #574), which changes no Track B file. Cloud brief 6563 asked for changes on 7 medium, 17 low and 6 nit findings (comment 6596920658), and brief 6562 recorded 70 of 70 kills at 7b5b126a (comment 6596641719).

  • A current period begun on 404.130(c) alone (M1). 404.130(d)(1) and Act 223(c)(1)(B)(iii) reach a later onset after a period "for which you were only insured under paragraph (c)". 7b5b126a carried that fact only on listed priors, so a current period the rule began on 404.130(c) alone lost 404.130(d) for the quarters after it. On the review's invented record (born 1980-02-02, onset 2003-01-15, a period ending 2004-12-31, queried in January 2013), it reported an exact date last insured of 2006-06-30, where 404.130(d) gives 2012-12-31. _current_period_special now records the fact on the period the rule begins. Where placement or an UNKNOWN year decides that basis and the two bases give different dates, the rule refuses the date by name. One more QC can now bring the date earlier, by letting 404.130(b) begin the period, and the test labels that intended. A differential lists the period the rule begins as a prior with the flag 404.130(b) implies: over its 11,700 records the two agree on 11,599, and the other 101 refuse by the long-period register entry's name.
  • A period that begins in the quarter a prior ended (M2). 404.321(a) begins a period on the onset day, and in RS 00301.140's example 7 Jane's second period begins in the quarter her first ended. 7b5b126a raised InvalidFamilyInput on her established record and lost the row. Periods may now share a quarter but not a day. Round 23 removes the overlap search and retires I13, B15 and the register entry us:oasdi-insured-flag-first-insured-quarter, which read a recent-rule quarter inside a prior period.
  • A coverage exit bars only later years (M3 and low 13). RS 00301.230 B lets an annual QC take "any quarter in the calendar year", and 404.146 bars only a quarter not yet begun, one after the death quarter and a period's interior. With a February 2020 exit and $6,000 of 2020 wages, FULLY now finds 6 of 6 where 7b5b126a found 3. A birth bars no quarter of its year either.
  • The first insured quarter on every basis (M4 and M5). DISABILITY now reports the earliest first insured quarter a kept filling attains: 2007-01-01 on the review's record, where 7b5b126a reported 2010-07-01. Where a binding prior's two bases give different witnesses, each status reports the range they give, and the result lists prior_disability_period_basis among its unknown facts: 2008-04-01 with an upper qualifying quarter of 2008-01-01, and a count of 20 to 21 on a 1955 birth. Under UNKNOWN priors the range reaches the onset quarter: 2007-04-01 with an upper qualifying quarter of 2007-01-01.
  • A man's elapsed years (M6). 404.110(b)(2)(iv) ends a man's count at the year he reaches 65 if he reached 62 before 1973, and (iii) ends it at 1975 if he reached 62 in 1973 or 1974. 7b5b126a ended a living man's count at the query year, so it found a man born 1908-07-01 with 20 QCs from 1951 to 1970 fully insured in December 1971 at 20 of 20, where he needs 22. A test checks 404.115's table, read from the captured regulation, for every cohort.
  • A flagged prior needs one placement for both halves (M7). A flag records a prior "for which you were only insured under paragraph (c)", so one placement must pass a special route and fail 404.130(b) at the prior's start. 7b5b126a checked the two halves on different placements. _flag_fits now asks for one placement that does both, on every completion still open by the prior's start, and refuses by name where none does.
  • A listed prior's basis and its refusal (low 21 and the precedence). Past blindness begins a listed prior only from January 1973 (RS 00301.150 A). A listed prior from July 1952 through 1955 can rest on RS 00301.480 B.1, under the pre-1956 register entry. A listed prior that no completion supports now refuses by name before any input error or UNKNOWN-earnings refusal, so a 1940 record that raised InvalidFamilyInput at 7b5b126a now keeps its row.
  • The other lows and nits. Code and a test answer lows 12, 16, 19, 23 and 24 and nit 25: a declared end past the statutory FRA end, and a DIB month at or after FRA or an RIB month before 62, raise input errors; the pre-May-1983 refusal needs the age-31 quarter to begin before May 1983; fully_insured_requirement runs insured_status's checks; wages paid after a death count toward the year's total (Act 213(a)(2)(B)); and a quarterly bound names the birth. The note answers the other lows and nits in text, and this body now carries the ledger path, the current example counts and the qualified invariants (low 20, nit 30).
  • Renamed and retired tests. Round 23 renames 16 tests whose names described the overlap bar or a reading it corrects, and replaces the 14 that held the overlap bar with 15 on the shared quarter. The note lists each, and the earlier passages round 23 supersedes.
  • The note check reads only the insured status modules. Blind roles run these modules. At 8522452c, test_the_note_cites_only_tests_that_exist searched every folder under tests/ and read each module it found, including folders the cloud briefs bar. c25a32c8 limits it to the design note and the insured status modules, and test_the_note_check_reads_only_the_note_and_insured_modules checks each Path listing and open before it runs; six local mutations of the check fail that guard. Briefs 6636 and 6637 would have run the old check, so the session withdrew both before either launched. Their replacements at 2f5ee7a9, 6638 and 6639, gave way before launch to 6640 and 6641 at aeef5c74, and those in turn to 6640 and 6641 at fc689ecb.
  • Property tests that always bite. Two of round 23's property tests drew 25 random records, and 7b5b126a fails 568 of the M1 differential's 11,700 and 90 of the exit-month test's 300, so a run misses the first about 29% of the time and the second about once in 7,500 runs. A local run at 7b5b126a missed the first. Each now runs an explicit example that 7b5b126a fails: the review's record with four QCs in each of 1998 to 2000, and a February exit with four 2020 QCs. All three of round 23's property tests pass on every input of their strategies at fc689ecb.
  • Tier files. The README's total missed round 23's 80 unit tests. The master merge takes master's counts plus the 2,667 unit tests this branch adds since edba88f7: 26,320 unit and 33,175 in all. fc689ecb's three new tests make 26,323 and 33,178.
  • A pre-screen's lows and nits (fc689ecb). A pre-screen of 8522452c by an Opus 5.5 subagent of this session found one medium, the note check's reach, which c25a32c8 had already fixed, three lows and two nits. A listed prior's end past the statutory FRA end still capped silently while the current period's raised; both now raise InvalidFamilyInput, and round 3's two tests and the historical boundary lattice declare lawful ends. test_a_death_after_the_query_keeps_the_living_count, test_a_period_begun_in_the_age_31_quarter_rests_on_paragraph_d and test_an_open_flag_keeps_paragraph_b_where_every_placement_meets_it pin three branches that no test caught under mutation: the living test in _requirement, the age-31 bound in _current_period_special, and _with_current_period's reading of an open flag as unflagged. Of the pre-screen's twelve mutations, ten now fail named tests, and the design note's Mutations section accounts for the two that survive every insured module. special_ignores_blindness changes no answer across 1,500 generated blind records. Every change first_start_flag_true_only makes across 11,000 generated records turns a refusal into a result, and the stress oracle accepts the result on both cap readings for each of the ten records it can judge; the other 22 end with an exit month, which it doesn't model, or hold too many placements to enumerate. The current-period comment and the low 12 test cite 404.321(c)(1) for the FRA end, the RS 00301.340 example note gets back its dollar amounts, and the Joseph note no longer breaks mid-sentence. Of its three uncertain items, the new death test pins the first. The second, whether an RIB can begin in the month a first-of-month birth attains 62, waits on a capture of Act 202(a) in a follow-up. Code reading settles the third: _settle_current_basis reads the flag at the lower completions' start, which matches the upper completions' start, since the rule refuses wherever the two differ.
  • The issue draft's contracts. aeef5c74 aligns the rulespec-us issue draft with round 23: a declaration that contradicts itself fails before the rule runs, and otherwise an input error means every filling is invalid, so a listed prior that no completion supports refuses first. Its long-period bullet now names the third parse and what the Python rule does with each reading.
  • The stress oracle's scan (f32d8812). last_insured now scans down from the query and stops at the first insured quarter, the same quarter a full scan finds.

This adds no register id and retires one, so the register lists nine readings. The RULINGS.md rows record the retirement, the third long-period parse and the pre-1956 listed prior.

Round 23 changes only classifications, dates and row weights. No payment moves, since this module computes none.

A cloud session on brief 6870 ran 107 mutations through every insured status module at f32d8812: round 22's 70, 17 of them re-derived where round 23 rewrote their code, and round 23's 37. Each failed a named test, and the audit hook logged no restricted open (comment 6618201683). d30e4426 adds their records to round_23_mutations. Both mutations of the stress oracle's scan fail test_status_stress_last_insured_matches_a_full_scan, which passes at the head. With 7b5b126a's source in place, 44 of round 23's 70 tests fail, and 3 of the stress module's 52.

In brief 6870's Track B gate at f32d8812, 16,955 tests passed, 20 skipped and one failed. That test, tests/test_track_b_b0_1_review_root.py::test_every_engine_match_of_a_spelled_denied_name_is_flagged[bun], skips on machines without Bun, and the cloud VM has Bun. It finds a gap in master's B0.1 classifier (#534) that chip task_a2daf659 tracks, and this PR touches no B0.1 file.

Locally, on invented data and one process, black -l 79 and ruff check pass on the 22 Python files 8522452c changed and on round 23's module at c25a32c8. At 8522452c's source, every insured status module but the stress module passed (1,877 tests in 4 minutes), as did the three other modules that import the insured module or read its note (2,256 tests), and the stress module's 51 passed in 20 minutes; those runs had no audit hook and ran the old note check. At c25a32c8, under an audit hook that raises on any open of a barred path, round 23's module passes 67 of 67, the six modules that read the insured status notes pass 281 tests, as they do again at aeef5c74, and no test opened a barred path.

Round 22 (session, after the review of f37f7f79)

Round 22 adds 7b5b126a. Cloud brief 6123 asked for changes on one medium and one low (comment 6592883037), and brief 6122 recorded 62 of 62 kills at f37f7f79 (comment 6594394873).

  • An unflagged prior before 31 (the medium). special_insured records the 404.130(d)(1) fact of a prior "for which you were only insured under paragraph (c)", so 404.130(c) can't begin an unflagged prior alone, and round 21 let it. On the review's invented record (born 1968-02-02, a listed 1998-1999 prior before the quarter she attains 31), 404.130(c) holds the prior on every placement, while 404.130(b) needs the 1998 QC in 1998Q1, which gives a date last insured of 2007-12-31. f37f7f79 reported 2008-03-31. An unflagged prior now rests on 404.130(b), on 404.130(d) at 31 or later after a flagged prior, or on past blindness. That record now refuses by name for the date and for DISABILITY, with no onset, with an exit frozen after 2003, with an UNKNOWN 2005 and with a current period after the prior. Flagged, it still computes 2008-03-31.
  • A listed prior's onset (the low). The rule reads a listed prior's start as the favorable earliest insured quarter from an onset the record omits (RS 00301.230; 20 CFR 404.321(a)), so that onset adds no constraint on placement. The design note now says so. The review's probe found no wrong output under this reading, and no code changed for it.
  • Oracle. prior_holds and prior_can_begin drop 404.130(c) for unflagged priors, and flags lets one record mix flagged and unflagged priors. young_basis_declaration redraws the review's record around its edges, and mixed_flag_declaration adds an unflagged prior after a flagged one. Round 22's two properties compare _keeps_priors, _prior_basis and _prior_start_binds with every placement of those draws.
  • CI at f37f7f79. Round 19's test_placement_binds_a_prior_only_when_it_splits_them drew a flagged prior starting in 1991Q1, the quarter she attains 31, which the interface rejects. It now draws flagged starts through 1990Q4.

This applies the field's definition and reads an omitted onset favorably, so it adds no register id. The us:oasdi-insured-one-filling-first-start row in RULINGS.md and its register entry now name both.

Round 22 changes only classifications and row weights. No payment moves, since this module computes none.

A cloud session on brief 6562 ran 70 mutations (round 21's 62, with ordinary_keeps_special_route re-derived against the new condition, plus 8 of round 22's) through every insured status module at 7b5b126a. All 70 failed a named test with no restricted open (comment 6596641719), and round_22_mutations holds the records (9d2db199). A local first pass through rounds 19 to 22 killed 66. Round 15's module kills the three moving-start mutants left and round 2's kills date_tested_at_query, as at round 21, all with no restricted open. Against f37f7f79, 13 of round 22's 17 tests fail, as do test_status_stress_a_young_prior_on_either_basis and round 21's test_each_basis_matches_every_placement. Brief 6562's run of round 22's module and the stress module on that source found the same 14 failures, with 54 passing.

Brief 6122's gate at f37f7f79: 16,850 passed, 20 skipped and 2 failed. One failure comes from the round 19 draw above. The other, tests/test_track_b_b0_1_review_root.py::test_every_engine_match_of_a_spelled_denied_name_is_flagged[bun], runs only on a machine with bun, like the cloud VM, and skips elsewhere. It comes from master (#534), and this PR doesn't touch it.

Brief 6562's gate at 7b5b126a: 16,868 passed, 20 skipped and 3 failed. The [bun] test failed again. The other two, tests/test_track_b_input_schema.py::test_all_valid_public_argument_controls_still_compute and tests/test_track_b_gross_benefits_fix_round_10_api.py::test_public_api_has_no_unclassified_name_field_or_argument, come from master's G review round 13 (3e4196f7). Their tables expect CPython 3.14's name for add_note's parameter, note, and 3.13 calls it object. That VM had no Python 3.14, so the brief ran on 3.13.18; brief 6122 ran on 3.14.6, and CI runs the Track B shards on 3.14. This PR touches neither test, and a separate task makes both read the name from the running Python.

Locally, on invented data and one process, black -l 79 and ruff check pass on the changed Python files. At this head's source, every insured status module but the stress module, plus the four other tests that read the insured note or module, passed (4,074 tests in 4 minutes), and the stress module's 51 passed in 22 minutes, test_status_stress_an_unflagged_prior_after_a_flagged_one taking 163 seconds.

Round 21 (session, after the review of 38a573a8)

Round 21 adds e2507802, e2b9390c and the commits through f37f7f79. Cloud brief 807 asked for changes on one medium and one low (comment 6589002155), and brief 806 recorded 41 of 41 kills at 38a573a8 (comment 6589941045).

  • A prior's basis (the medium). A record doesn't say whether an unflagged listed prior rested on past blindness (404.130(e), fully insured alone) or on 404.130(b) or (c), which ask for that and more (round 22 keeps 404.130(c) to flagged priors). 38a573a8 held every prior to the first. On an invented 1955-born record with a 1998-1999 prior, it reported a date last insured of 2008-03-31 and DISABILITY true at a 2008 onset, where 404.130(b) pins the 1998 QC in 1998Q1 and gives 2007-12-31 and false. _prior_basis now picks the strictest basis some placement allows, one prior at a time. Every filling that passes it passes the weaker basis, and results take the best filling, so a result such a filling attains holds on both. Any other result refuses by name and keeps the row.
  • A prior no placement supports (the low). It now refuses by name, for every test and under UNKNOWN establishment, where 38a573a8 computed as if the prior set no limit. Six older invented records listed such a prior, and each gained the QCs it needs.
  • Oracle. basis_worlds replaces fillings_keeping_priors and requires each status and the date on every combination of bases. basis_prior_declaration and two_basis_declaration draw around the edge. test_each_basis_matches_every_placement compares _prior_passes, _prior_basis and _prior_start_binds with every placement on both bases.

This treats a missing fact and adds no reading of the law, so it adds no register id. The us:oasdi-insured-one-filling-first-start row in RULINGS.md and its register entry now name the basis.

Round 21 changes only classifications and row weights. No payment moves, since this module computes none.

A cloud session on brief 6122 ran 62 mutations (round 20's list, re-derived, less one branch the rule no longer has, plus 17 of round 21's and five of round 15's) through every insured status module at f37f7f79. All 62 failed a named test with no restricted open (comment 6594394873), and round_21_mutations holds the records. Against 38a573a8, 29 of the 207 tests in six changed modules fail (22 of round 21's 26, 3 in round 20 and 4 in round 19; round 15, the contract module and the base module fail none). The brief also ran the stress module on that source, where 10 of its 49 tests fail.

Locally, on invented data, black -l 79 and ruff check pass, 1,779 tests across every insured status module but the stress module passed at d1af0366, round 15's 48 tests, the readings test and the mutations test passed at fbfb08bb, and the stress module's 49 passed in 21 minutes on one process before its last seed change, after which the changed tests passed again. A wide search on the final generators (150 fresh seeds for each of eight checks, plus 150 draws each from declaration and subsequent_declaration) held on all 1,276 checks: 884 computed, 286 refused by name and 106 raised InvalidFamilyInput. A log of each _prior_basis refusal found two older tests passing on the new refusal for the wrong reason, test_the_date_last_insured_alone_can_refuse_a_moving_start and ten seeds of test_status_stress_refuses_a_start_no_filling_supports. Both now reach their own refusal and pin its detail. The Track B gate runs in the mutation brief. Brief 806's gate at 38a573a8 had one failure, tests/test_track_b_b0_1_review_root.py::test_every_engine_match_of_a_spelled_denied_name_is_flagged[bun], the B0.1 Bun classifier gap on chip task_a2daf659, and this diff touches no B0.1 file.

Round 20 (session, after the round 19 rerun)

Round 20 adds f9287518, 7d8cecbe and 38a573a8, with no master merge.

  • Later years can't move a start. A run of round 2's property test drew an invented record that 168bb3a8 refuses: birth 1970-02-02, four QCs in each of 1990 to 1999 and 2, 3, 2, 2 and 2 in 2016 to 2020, a listed prior from 2000-04-02 through 2003-09-30, an established period from an onset of 2004-01-15, December 2020 query. Round 17's start-keeping search asked for years through the latest possible start, here the query month, and counted 5,184 placements of 2016 to 2020, past its 4,096 cap. A period begins at the onset or in the first later quarter that insures its holder (404.321(a)), and each insured test counts QCs through its own quarter only, so no year after the start can move it. _fillings_keeping_start now passes the reported start, and the record computes fully insured status with 40 QCs against eight elapsed years. An @example on round 2's property and test_partial_years_after_the_start_stay_open pin it.
  • The four round 19 survivors. Cloud brief 176 reran round 19's 40 mutations at 168bb3a8 through every insured status module (comment 6584722299): 36 failed a named test and four passed every test. Nine new tests in tests/test_track_b_insured_status_fix_round_20.py kill them:
    • binding_reaches_open_period: under UNKNOWN establishment the universal proof settles a result a split listed prior can't move, so an UNKNOWN year leaves it computing.
    • disability_reads_the_completion: a period's establishment counts no quarter of its own period (26 QCs, where the mutant counts 27).
    • every_reads_listed_periods: the worst filling stays exact only with no period in force, because 404.130(f) and 404.146(d) keep a period's credited endpoint quarters.
    • flagged_refuses_every_placement: a flagged prior every placement carries on its route, short of 20 of 40, binds nothing.
  • Register. The design note gains a register of the module's ten source-conflict readings, each with the functions that hold its markers. Two markers that put their id on the next line now name it on the marker line, and tests/test_track_b_insured_status_readings.py holds the markers and the register to the same ids and functions.
  • Ledger. round_19_mutations records brief 176's run, decoded from the comment's gzip block, whose SHA-256 c92576cc… matches.

Round 20 changes only classifications and row weights. The rule now computes rows whose later years held more than 4,096 placements, where it refused them before. No payment moves.

Each of the four survivors and fix_reverted (the horizon restored) fails at least one of the nine new tests in its own local process, and the unmodified source passes all nine. Brief 806 reruns all 41 at 38a573a8 through every insured status module, and its records go to round_20_mutations in a docs-only commit. Against 168bb3a8, 6 of the 32 tests in the three changed modules fail: round 2's pinned record, test_partial_years_after_the_start_stay_open, and the four register tests.

Local checks (session processes, invented data, both data roots nonexistent): the round 20, round 2, readings, ledger, docs and sources modules pass (193 tests) on the tree that became 7d8cecbe, the readings, ledger and docs modules pass again at 38a573a8, and Black 26.5.1 and ruff pass on the new module. The tier files add nine unit tests (22,991 unit, 29,590 total); the coordinator's slot recount replaces them.

Round 19 (session, after the fourteenth review)

Round 19 adds bbed6be2, and 168bb3a8 merges master 89d064b (SSI0, #573), which touches no Track B file.

Sol's fourteenth review of 129d44bd asked for changes with one medium, and it reproduced. Sol's needs_max list keeps, resolves or adds to earlier readings, so it holds no new call for Max.

  • A period's own start limits the placements. A period begins in an insured quarter (404.320(b)(2), 404.321(a)), so a prior can force an annual QC into one quarter. Round 18's one filling with no period in force didn't speak for every history. Under UNKNOWN priors or UNKNOWN establishment a true status at its reported quarter, and the lower date, now have to pass on every annual placement with no period in force, and otherwise the row refuses by name and keeps its weight. A start some placement moves reports None and names current_disability_period_start.
  • The same defect on listed priors. The session found it. A listed prior that placement decides now joins the search: one filling of the years that can move its start keeps it and attains the result, or the row refuses by name, and an UNKNOWN year with such a prior refuses. DISABILITY's count joins that search, because it could rest on a placement the prior rules out.
  • UNKNOWN establishment. The session found the same defect with no prior at all, on the period no one has placed.
  • A correction inside the round. The first fix for listed priors refused whenever placement split a prior, and that refused the record of POMS example 8. The search replaced it, and the record computes with its 1988 QC in 1988Q1.

The new tests check these invented records:

  • Birth 1961-02-02, annual QCs 1991:2, four in each of 1992 to 1994, 1998:1, four in each of 1999 to 2002 and 2003:3, an established period from 2000-01-01 through 2000-12-31, UNKNOWN priors, January 2008 query. 129d44bd reported a lower date of 2008-03-31. A prior from 1998-01-01 through 1999-12-31 holds the 1998 QC in 1998Q1 and that history gives an exact date of 2007-12-31.
  • Birth 1965-02-02, annual QCs 1986:4, 1987:1, 1990:1, 1995:3, four in each of 1996 to 1999, 2000:1, 2001:4 and 2002:1, an established period from 2000-01-01 through 2002-12-31, UNKNOWN priors, April 2003 query. 129d44bd reported CURRENTLY true, and a prior from 1990-01-01 through 1999-12-31 denies it on all 64 placements that keep the prior and the start.

Round 19 changes classification and row weight on rows with UNKNOWN periods or a listed prior that placement decides, and moves no payment. On the second record with a second 2002 QC and the prior listed, the rule reports 20 QCs for DISABILITY in place of 21.

The first pass of the 40 listed mutations failed a named test on 38, and test_a_prior_reaches_a_year_the_start_cannot and test_a_listed_prior_holds_every_ending_to_the_date now kill the other two. Two stress tests gained @example pins while that pass ran, so a rerun at the final bytes writes the ledger entry in a later commit; it waits on a Fleet ops slot. Against 129d44bd, 44 of the 162 tests then in the five changed modules fail, and four of the five tests that arrived or changed later fail there. The fifth checks only arithmetic.

The new tests execute these invariants:

  • Every placement. Under UNKNOWN priors or UNKNOWN establishment, a computed status or lower date holds on every annual placement with no period in force.
  • Worst filling. With no period in force, the early-then-late filling answers for every placement at one quarter.
  • Listed priors. A computed result on a listed prior matches the best the prior allows, for each status, count and date. A result no kept filling attains refuses by name.
  • Flagged priors. A flagged prior keeps its special route and stays short of 404.130(b).

check_every_history now adds a January and a July prior in each partial year before the onset, and check_no_period exhausts records with no current period. Local checks at the tree that became bbed6be2: all 1,786 insured status tests pass in a session process, and Black and ruff pass. Fleet ops holds heavy local runs, so CI and a cloud run take the whole Track B suite. The wide search drew 250 invented declarations from fresh seeds and skipped 65 declared seeds with more than 96 placements. All 2,450 checks held: 1,034 computed, 1,164 refused by name and 252 raised InvalidFamilyInput.

Round 18 (session, after the thirteenth review)

Sol's thirteenth review of 88a0e7bc asked for changes with one medium and one low, and both reproduced. Sol's needs_max list keeps each earlier reading, so nothing here needs a new call from Max. No reading changes.

  • The lower date under UNKNOWN priors. A declaration with UNKNOWN priors lists no period and stands for every prior history. 404.130(f) and RS 00301.120 count all periods or disregard all of them. _settle_lower_date read the current period back into its search, so a filling could reach the date through the current freeze. Counting an added prior can take a credited quarter from that filling, and disregarding it drops the freeze too. _fillings_keeping_start now gives each filling the record with no period in force under UNKNOWN priors, and one such filling has to keep the start and reach the date. Otherwise the row refuses with disability_boundary_assignments_unsupported and keeps its weight. The lower date itself needed no change, because UNKNOWN priors already left it as the date with no period in force, as B9 says.
  • The same defect in the status search. The session's search found it. _settle_first_start read the same fillings, so a status could rest on the freeze, and the shared change covers it. An OBSERVED empty history keeps the freeze.
  • The Mary Brown capture. RS 00301.147 prints her onset result and no date last insured. This rule derives the 1983-03-31 date, so it can't support rejecting the third parse. The explicit 40-quarter denominator does, and the ruling stands. The round 17 section, its test comment and the logged row now say so.

The new tests check these invented records:

  • Birth 1960-02-02, annual QCs 1995:3, four in each of 1996 to 1999, 2000:1, four in each of 2001 to 2004 and 2005:3, an established period from 2000-01-01 through 2007-12-31, UNKNOWN priors, January 2010 query. 88a0e7bc reported a lower date of 2010-03-31. On a prior from 1999-04-01 through 1999-12-31, the 16 placements that keep the 2000Q1 start reach 2009-12-31 and no later. The row now refuses by name.
  • Birth 1970-02-02, annual QCs 1986:4, 1987:4, 1992:1, four in each of 1996 to 1999, 2000:1, 2001:4 and 2002:1, an established period from 2000-01-01 through 2002-12-31, UNKNOWN priors, April 2003 query. 88a0e7bc reported CURRENTLY true. On a prior from 1996-01-01 through 1999-12-31, no filling with the 2000Q1 start stays currently insured. The row now refuses by name.

All 11 mutations die at the final source and test bytes with no restricted open, and 13 of the 85 tests in the three changed modules fail against 88a0e7bc. test_status_stress_every_history passes at that head, so it stands only as a broad guard. The start-edge property's first generator also passed there, so the session rebuilt it around the two records above, and it now fails there.

The new tests execute these invariants:

  • Every prior history. Under UNKNOWN priors, a computed status or lower date holds on every lawful prior history with the reported start. One filling with that start attains it with no period in force, and otherwise the row refuses by name and keeps its weight.
  • Known histories. An OBSERVED history keeps the freeze.

check_every_history adds three lawful priors to each record and exhausts the placements with the reported start. Local checks at the tree that became 129d44bd: all 14,356 Track B tests pass and 7 skip in a session process. Black and ruff pass. The wide search drew 550 invented declarations from fresh seeds and ran each on both ending kinds and three requests. All 3,300 checks held: 1,454 computed, 1,498 refused by name, 318 raised InvalidFamilyInput, and 30 reported no start.

Round 17 (session, after the twelfth review)

Sol's twelfth review of e9f4140c asked for changes with two mediums, and both reproduced. One needed a reading, and the session logged it. Sol's needs_max list keeps each earlier reading.

  • The long subsequent-special period. Clause (iii) of Act 223(c)(1)(B) and 216(i)(3)(B) asks for half the quarters after age 21, with no cap. 404.130(d)(2) asks for half "up to a maximum of 20 QCs out of 40 calendar quarters". Through round 16 the rule took the capped reading without logging it. It now computes only where the readings agree, and refuses with subsequent_special_long_period_unsupported otherwise, with its row and weight. A FULLY request with no established period reads no disability test, so it still computes.
  • The lower date on an UNKNOWN ending. Round 16 held the upper date to a filling with the reported start, and left the lower date as each ending's favorable placement. _settle_lower_date now searches fillings that keep the reported start, and refuses by name unless each ending reaches the lower date. A frozen OP12 exit overstated its lower date the same way.

The reading (logged, us:oasdi-insured-subsequent-special-long-period). Two readings stay live past 40 counted quarters: half the whole period, as the Act says, and 20 of the last 40, as the regulation says, which adds nothing to 404.130(b). The session rejected a third parse, 20 QCs anywhere in the period. It drops "out of 40 calendar quarters", the denominator 404.130(d)(2) states, and every period in 404.130 ends with the tested quarter. RS 00301.147 prints Mary Brown's onset result and no date last insured, so it doesn't decide this parse. The conflict sets a statute against a regulation, the pattern in d1920, so the refusal stands until Max rules that pattern.

_unknown_prior_joint_shortfall proves impossibility, so its special_recent takes the Act's whole period, and its own 40-quarter test carries the capped reading. The last-40 form raised an input error on a record where the proof's clock holds 21 QCs in 42 quarters and only 19 in the last 40.

The new tests check these invented records:

  • Birth 1960-02-02, a special prior from 1983-01-15 through 1983-06-30, annual QCs 1981:3, 1982:3, four in each of 1984 to 1986 and 1987:2, onset 1991-10-15. The period holds 41 counted quarters and all 20 QCs, and its last 40 quarters hold 19. e9f4140c computed DISABILITY false with a date last insured of 1991-09-30, where the Act's reading insures this record through 1991-12-31. The row now refuses by name. With an established period the same record raised InvalidFamilyInput, even for an age-62 FULLY request.
  • Birth 1960-02-02, annual QCs 1995:3, four in each of 1996 to 1999, 2000:1, four in each of 2001 to 2004 and 2005:3, an established period from 2000-01-01 and an UNKNOWN ending. An ending of 2005-12-31 leaves a best date of 2009-12-31 on the fillings that keep the 2000Q1 start. e9f4140c reported a lower date of 2010-03-31, which needs a later start.

All 22 mutations die at the final source bytes, including the three that survived Sol's twelfth review, and 38 of the 261 tests in the three changed modules fail against e9f4140c. Two early mutations proved equivalent, so the clause they changed left the source.

The new tests execute these invariants:

  • Long period. It computes exactly where both readings agree, and otherwise refuses by name with its row and weight. No reading's conflict becomes an input error.
  • Lower date. Every period ending reaches the reported lower date on a filling with the reported start. Round 18 held UNKNOWN priors to one filling with no period in force, and round 19 holds them to every annual placement.

Both oracles now hold a computed result to both readings, and a new check_unknown_ending exhausts each ending's fillings on the reported start. Local checks at the tree that became 88a0e7bc: all 14,332 Track B tests pass and 7 skip in a session process, on round 17 before the master merge. Black and ruff pass. The wide search drew 5,100 invented declarations from fresh seeds, and every check held. A probe of 4,500 stress declarations with an UNKNOWN ending found one record that needs a different filling for each ending, now a public test, and no search reached an ending with no date.

Rounds 2 to 16

Rounds 2 to 16 answered the first eleven reviews and two gaps the session's own checks found. GitHub caps a PR body at 65,536 characters, so this body's edit history keeps their notes, and the design note keeps their reasoning.

axiom: TheAxiomFoundation/rulespec-us#2055 queued. Axiom (rulespec-us) encodes 42 U.S.C. 402, 415, 416(l) and 426 but not 413, 414 or 423(c), so no differential exists yet.

🤖 Generated with Claude Code

MaxGhenis and others added 3 commits October 23, 2026 10:17
… disability insured status

Max ruled d1802: the rules lane builds insured status for B6a's monthly
claiming hazard, and the open-population lane's OP8(d) will call it for
entrants. Nothing in the repository decided insured status before.

The new reference implements Act 213, 214, 216(i) and 223(c) as a sealed,
person-month API:
- Quarters of coverage: quarterly wages before 1978, the self-employment
  and agricultural rules, gift QCs for maximum earnings, annual increments
  1978-2027, favourable assignment, and exclusions.
- Fully insured (6 to 40 elapsed years, counted from birth, with the
  pre-1913 male cohorts), currently insured (6 of 13 quarters), and
  disability insured (20/40, special status before 31, subsequent
  periods, blindness), with the date last insured.
- Every earnings year declares its provenance: observed, convention-filled
  (with an id) or unknown. Unknown years are bounded at their lowest and
  highest QC counts. A status is returned only if both bounds agree;
  otherwise it is refused by name and stays in the shared denominator.
- Direct QC input (a 0-4 count after 1977, quarter flags before),
  evaluation at a stated month, an optional totalization input (refused
  until built), and a coverage-end month for emigrants.

Specialist paths (deemed status, the SSPA alien-worker rule, railroad
and military credits, Medicare government employment, fiscal and short
taxable years, simplified pre-1951 methods) are named refusals. The tests
reproduce the RS 00301 and CFR worked examples, compare the 213(d) formula
on the pinned NAWI with the published chart, compare POMS with OACT, and
compare the CFR 404.115 cohort chart. Hypothesis properties cover
monotonicity in QCs and the date last insured, the soundness of the
unknown-year bounds, and the shared input and seal contract.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The design note gives B6a and OP8(d) a citable interface: inputs, the
earnings-provenance enum, the decided-despite-unknowns flag, refusal
reasons and signatures. The rulespec issue draft covers 42 U.S.C. 413,
414 and 423(c)(1), which Axiom does not encode yet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@vercel

vercel Bot commented Oct 23, 2026 •

Copy link
Copy Markdown

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

Project Deployment Actions Updated
social-security-model Ready Ready Preview Nov 6, 2026 11:55am UTC

Request Review

MaxGhenis and others added 2 commits October 23, 2026 10:24
…lict lines

The exhibit linked from RS 00301.800 (a PDF and two GIF renderings of the
quarters-of-coverage table) was not captured, so its differential was
recorded as unavailable. Its text is now captured as pdf_text
(pdftotext, -layout), with the PDF and both GIFs pinned by hash. A test
checks all 38 rows against fully_insured_requirement: by birth cohort (men
before January 2, 1913 at age 65, women at 62), by footnote 1's January 1
rule, and by year of death. Moving the 1975 cap or the 1913 cutoff fails it.

The PDF's footnote misprints the male cohort as "born before 1/2/31"; the
GIF, the table itself and 20 CFR 404.132(b) say 1913. A test pins that.

The decision lines for the two readings taken from 20 CFR 404.130(f) over
inconsistent POMS examples are marked with their source-conflict ids:
us:oasdi-insured-prior-disability-favorable-disregard and
us:oasdi-insured-disability-period-endpoint-quarters.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Master added the holdout registry and an ARF change. Only the tier
files conflicted; they take master's version and are recounted
(unit 19,575; total 26,124).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis and others added 2 commits October 25, 2026 05:55
Round 1 of the independent review found that a declared disability
onset froze the fully insured elapsed-year count and anchored the
disability test to the onset quarter. A period of disability exists
only after an application and five months (42 U.S.C. 416(i)(2)(A)-(B);
20 CFR 404.320(b)), and it begins on the onset day only if the worker
is insured then, otherwise on the first day of the first later
qualifying quarter (416(i)(2)(C); 404.321(a)). So:

- Onset alone no longer removes elapsed years (404.110). The current
  period's establishment is declared, with provenance.
- The disability test scans the quarters from onset to the query and
  uses each candidate year's fully insured endpoint (404.131(a),
  404.132). A later qualifying quarter now counts.
- Currently insured excludes every established period intersecting
  the 13-quarter window, including the event's own (404.120(b),
  RS 00301.110). The old contract assertion pinned the misreading.
- Count bounds with a switching witness use a sound envelope.

It also takes the open-population lane's rev 10 needs. Prior
periods, the current period and section 214(c) applicability carry
OBSERVED / CONVENTION_FILLED / UNKNOWN provenance, with UNKNOWN as the
default. Unknown facts are bounded, or refused by name:
unknown_prior_disability_periods_decide_status,
unknown_current_disability_period_decides_status and
sspa211_applicability_unknown. The no-periods lower bound rests on
404.320(a) and 404.130(f).

Adds 20 CFR 404.315, 404.320 and 404.321 captures. Moves the mutation
report to docs/design/track_b_insured_status_mutations.json, next to
its design note.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Master added the P2 forward-earnings work. Only the tier files
conflicted; they take master's version and are recounted (unit
19,723; total 26,293).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis and others added 2 commits October 31, 2026 07:52
…ound 3)

The round-2 review of #562 found five medium issues. This commit fixes them
under 42 U.S.C. 413(c), 416(i)(2) and 416(l) and 20 CFR 404.320-.321:

- An ongoing period stays ongoing. The query no longer ends it, and an
  unknown end that decides a status refuses by name.
- Full retirement age bounds every established period's start and end.
- Supplied 1937-1950 wages now trigger the Act 213(c) alternative
  automatically, and the refused table says which specialist refusals
  the rule can observe from its inputs.
- A declaration that every concrete filling makes invalid raises
  InvalidFamilyInput and creates no denominator row.
- The design note gives Sam's fully insured prerequisite as seven.

Subfleet job 20261025-084543-trackb-fix-insured-3 (gpt-6.1-sol) wrote this
work and left it uncommitted; salvage ref 274d2d09 preserved its tree.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The round-3 review found three medium defects with one cause: each proof or
bound used an ordinary-path premise where the law has an "or". This commit
fixes the class:

- A single predicate now decides whether a declared current period could be
  valid. It checks the ordinary, automatically detected and flagged routes
  before any fact-pattern InvalidFamilyInput.
- An UNKNOWN administrative end now covers every quarter from the period's
  start through the query and FRA cap (416(i)(2)(D); 20 CFR 404.321(c)(3)).
  The FRA cap bounds the end and no longer removes the unknown fact.
- A prior period may last one month, because Act 216(i)(2)(A) allows DIB
  entitlement in place of five months and 404.315(a)(4)(ii) waives the
  waiting period for ALS.
- An ordinary failure no longer hides RS 00301.480's pre-1956 route.

The design note gains a premise table for every fact-pattern input error,
UNKNOWN collapse and bound. It also qualifies the Act 213(c) seven-year note,
and the code now carries the us:oasdi-insured-pre1951-seven-elapsed-years
marker. Tier counts add the 53 new unit tests to the three-way sum; the slot's
recount replaces them.

Subfleet job 20261031-082259-trackb-fix-insured-4 (gpt-6.1-sol) wrote this
work.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sol's round-4 review found two mediums and a low:

- A later upper-credit witness made every declaration look possible,
  even when each filling starts after a fixed declared end. The ordinary
  possibility check now bounds the insured start by the declared end,
  continuity date and death, and one filling must clear both that bound
  and any prior-period overlap (20 CFR 404.320(b)(2), 404.321(a),
  404.110(b)(1)). An enumeration property compares the predicate with
  every concrete filling in both directions.
- RS 00301.102 B.3.b's wrong-number SS-5 exemption raised a false
  conflict. An adjudicated exemption now overrides the date-derived
  presumption. A pre-2004 assignment that declares section 211
  applicable stays an input error, and so does an exemption declared by
  an alien worker born in 2004 or later.
- A caller could not say a period was still running. A dated,
  provenance-bearing continues-through fact now removes earlier endings
  without supplying one. The new fields follow every existing Person
  field, so positional arguments keep their meaning.

The audit behind this round also applied the same horizon to the
RS 00301.480 pre-1956 route. Above 4,096 overlap fillings the predicate
refuses by name.

Tier counts add this round's 92 unit tests to the three-way sum; the
coordinator's slot recount replaces them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… round 6)

Sol's fifth review found that a refusal over an unrelated year ran before
the impossibility proof, so an input error became a counted row. The four
early conversion refusals now wait for the proof, which uses bounded
credits for those rows. A possible declaration keeps its original refusal.

RS 00301.480 A's 20/40 precondition now limits the automatic pre-1956
route: a lower-filling witness before October 1960 removes it for every
completion, and an upper-only witness leaves it possible. Fixed quarter
overlap now raises an input error before any filling search.

Round 5's cost finding stays out of this round; a separate task takes it
after the merge.

The tier files start from the 20,594 unit tests CI collected at 2ae76db,
which my round-5 sum understated by nine, and add this round's 46. The
coordinator's slot recount replaces them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MaxGhenis

Copy link
Copy Markdown
Contributor Author

Ready for hub review
Independent cloud review (Opus 5.5) of 7b5b126: REQUEST_CHANGES

Earlier findings (Appendices A, C, D)

Finding Severity Resolved Evidence (short)
A-medium (Sol round 14, 129d44b) medium yes Both records and all ten variants refuse disability_boundary_assignments_unsupported, rows (1, 5/2) kept; past-blind prior gives DLI 2007-12-31, so refusing is right.
C-medium (cloud review of 38a573a) medium no Reported records now refuse by name, but DISABILITY's qualifying quarter and count still come from the 404.130(b) basis alone (finding 4: 2008-04-01 vs 2008-01-01 on past blindness).
C-low (cloud review of 38a573a) low yes A prior no placement supports refuses for every test and UNKNOWN establishment, rows kept.
D-medium (cloud review of f37f7f7) medium yes Unflagged prior before 31 no longer rests on 404.130(c): DLI, onset, frozen-exit and UNKNOWN-2005 variants refuse; flagged twin computes 2008-03-31.
D-low (cloud review of f37f7f7) low yes The note now states the favorable-earliest-start reading; probe computes 13/13 as that reading gives.

Findings at this head

  1. medium src/populace_dynamics/track_b/insured_status.py:1684: A current period begun on 404.130(c) alone is appended unflagged, so later quarters lose 404.130(d) / Act 223(c)(1)(B)(iii): exact DLI 2006-06-30 where the law gives 2012-12-31 (also frozen exits and UNKNOWN endings).
  2. medium src/populace_dynamics/track_b/insured_status.py:536: A new period that begins in the quarter a prior ended (RS 00301.140 ex. 7, Jane) raises InvalidFamilyInput and drops the row; I13 calls it impossible.
  3. medium src/populace_dynamics/track_b/_insured_status_qc.py:196: The exit-year cap on assignable quarters isn't in the law: February exit with $6,000 of 2020 wages gives FULLY false 3/6 (law 6/6), narrows UNKNOWN envelopes, rejects a lawful established period.
  4. medium src/populace_dynamics/track_b/insured_status.py:2156: DISABILITY qualifying quarter on the listed-prior path comes from whichever kept filling first ties the rank (2010-07-01 vs lawful 2007-01-01), and from the 404.130(b) basis alone (2008-04-01 vs 2008-01-01 on past blindness).
  5. medium src/populace_dynamics/track_b/insured_status.py:2246: Under UNKNOWN priors the DISABILITY qualifying quarter is reported as exact bounds from the no-prior world (2007-04-01; a lawful 1990s prior gives 2007-01-01).
  6. medium src/populace_dynamics/track_b/insured_status.py:616: Living men born before 1913 queried at 62-64: FULLY stops elapsed years at the query year, not age 65/1975 (born 1908, 20 QCs, Dec 1971: True 20 vs required 22).
  7. medium src/populace_dynamics/track_b/insured_status.py:1817: A flagged prior no placement supports ((c) never holds without (b)) computes as a supported row under UNKNOWN establishment; establishment True/False refuses.
  8. low src/populace_dynamics/track_b/insured_status.py:838: Pre-1951 qc_quarters add $0 to the 213(c) aggregate (disclosed interface reading; John Doe as flags computes false 27/37, as $5,700 refuses).
  9. low docs/design/track_b_insured_status.md:1487: Note, README, registry and docstrings misdescribe the age-65 cohort (1/2/1913) and 404.132(b); code and the operative rule are right.
  10. low src/populace_dynamics/track_b/insured_status.py:1374: FULLY's witness uses the disregard treatment whenever its margin is larger (64/23), though 404.320(a) considers the period here (62/22); disclosed witness convention, status unaffected.
  11. low src/populace_dynamics/track_b/insured_status.py:1548: DISABILITY can be insured at a post-FRA quarter while the same result caps the DLI before FRA (document or cap).
  12. low src/populace_dynamics/track_b/insured_status.py:451: A declared period end after the statutory FRA end is silently capped; the same continuity date is rejected.
  13. low src/populace_dynamics/track_b/insured_status.py:1186: Birth-year annual QCs capped at quarters from birth (not statutory; infant earners).
  14. low src/populace_dynamics/track_b/insured_status.py:1108: Loose deferred refusals (post-2027 earnings under $1,970, non-decisive 1937/pre-1951 rows) while UNKNOWN computes; rows kept.
  15. low src/populace_dynamics/track_b/insured_status.py:1557: A declared past DIB/RIB month replaces the query-month CURRENTLY event (True 8/6 becomes False 0).
  16. low src/populace_dynamics/track_b/insured_status.py:553: Impossible entitlement events (DIB after FRA, RIB at 24) are accepted and decide CURRENTLY.
  17. low tests/test_track_b_insured_status_sources.py:416: Registry/test overclaim: only quote substrings are checked; several published figures and 404.115 cols III-V are unasserted.
  18. low tests/data/track_b/insured_status_examples.yaml:177: Joseph/Frank 'erratum' labels overstate placement-dependent intermediate counts.
  19. low src/populace_dynamics/track_b/insured_status.py:800: Pre-May-1983 subsequent refusal also fires for under-31 Rule II onsets and is untested.
  20. low docs/design/track_b_insured_status.md:863: Note cites uncommitted scratch/ files; PR body stale (mutation ledger path, 47/26 counts, 'Four places', 'none needs a ruling').
  21. low src/populace_dynamics/track_b/insured_status.py:1830: Pre-1973 listed prior may rest on the 1973 blindness-only basis.
  22. low docs/design/track_b_insured_status.md:1709: Long-period register omits the third parse; note says 'as 404.130(d)(2) says' of the last-40 gloss.
  23. low src/populace_dynamics/track_b/insured_status.py:635: fully_insured_requirement skips insured_status's person validation (returns a number or a refusal for rejected inputs).
  24. low src/populace_dynamics/track_b/insured_status.py:772: Positive wages after the death quarter are rejected as input errors rather than excluded from QCs.
  25. nit src/populace_dynamics/track_b/insured_status.py:764: Nit: 'after coverage ends' message for pre-birth flags.
  26. nit src/populace_dynamics/track_b/_insured_status_qc.py:292: Nit: unreachable fiscal-year helper fills the 1971/72 bracket gap silently.
  27. nit tests/data/track_b/insured_status_examples.yaml:582: Nit: RS .340 ceiling cited to the gift rule; Mary Brown 'had 8' slip unlogged.
  28. nit docs/design/track_b_insured_status.md:3013: Nit: note arithmetic and wording slips (35 not 36 quarters, '10 QCs', register entry 1).
  29. nit src/populace_dynamics/track_b/insured_status.py:1834: Nit: refusal reason/detail misname a prior's missing basis.
  30. nit PR #562 body (Invariants list): Nit: PR body's 'Disability insured implies fully insured' needs the note's qualification.

Python: uv-managed CPython 3.14.6. Both data roots pointed to nonexistent paths on every run. Scripts are under scratch/review/ in the review worktree and were not committed. Findings 8 and later are lows and nits; the JSON below carries their counterexamples and fixes. To fit the 65,536-character limit, executed lists commands and results only, and evidence fields are condensed.

{
 "verdict": "REQUEST_CHANGES",
 "head": "7b5b126a8e946e3c91e3024de18d17cd1c5c279d",
 "reviewer": "cloud Opus 5.5, independent review",
 "summary": "I reviewed the whole diff against master (104 files) at 7b5b126 against the captured Act, CFR and POMS text. All 44 required gate modules pass (7,312 tests, none failed or skipped), with an audit hook that saw no barred path opened. black and ruff are clean on the 48 changed Python files, all 48 source captures match their manifest hashes, and no protected or stray file is in the diff. Twelve mutations of my own were all killed and reverted with git checkout, leaving both worktrees clean. Eight reviewers checked QC crediting, fully and currently insured status, disability insured status and the DLI, listed and UNKNOWN priors against a brute-force oracle, the Track B contract with Hypothesis properties, the worked examples, and the design notes and readings. I re-ran every medium myself, and a separate verifier then tried to refute each one on the captured law. QC crediting, the 213(d) index and all 50 increments, the elapsed-year count, currently insured status, and the 20/40, under-31, subsequent and blindness routes all match the law in tens of thousands of oracle records. Every published worked example the code adjudicates reproduces, apart from the three disclosed divergences. The counterexamples in Appendices A, C and D now refuse by name and keep their rows. Appendix C's one-basis computation survives, though, in DISABILITY's qualifying quarter and count. Seven mediums remain, each with an executed counterexample confirmed independently: (1) a current period the rule itself begins on 404.130(c) alone is appended unflagged, so later quarters lose 404.130(d) and the DLI comes back years early (2006-06-30 against 2012-12-31), including OP12 frozen exits; (2) a period that begins in the quarter a prior ended, POMS RS 00301.140 example 7, raises InvalidFamilyInput and drops its row; (3) the exit-year cap on annual QCs, which the note admits is not statutory, gives a wrong FULLY status for mid-year exits, narrows UNKNOWN envelopes and drops lawful established rows; (4) on the listed-prior search path the DISABILITY qualifying quarter comes from whichever filling first ties the witness rank, so it can be years late (2010-07-01 against 2007-01-01) and ignores the past-blindness basis; (5) under UNKNOWN priors that quarter is reported as exact bounds from the no-prior case; (6) for living men born before 1913, old-age FULLY at ages 62-64 stops the elapsed years at the query year, not at age 65 or 1975; (7) a flagged prior that 404.130(c) can't begin on any placement computes as a supported row under UNKNOWN establishment. Lows (findings 8-24) cover a disclosed pre-1951 flag convention, a misdescribed age-65 erratum, FULLY's witness treatment, loose refusals, validation gaps, test and registry overclaims, the long-period register's missing third parse, uncommitted references in the note and a stale PR body. No population claim was made, no network was used beyond package installs, and no tracked file changed.",
 "sol_findings": [
  {
   "severity": "medium",
   "location": "src/populace_dynamics/track_b/insured_status.py:2246 (_settle_every_history; was :1845)",
   "issue": "Under UNKNOWN priors or establishment an earlier period's start can force an annual QC into one quarter, so a CURRENTLY status or DLI lower bound on the no-period witness was unsafe.",
   "resolved": true,
   "evidence": "own/appendix_spot.py: the DLI record (born 1961, January 2008), its frozen exit and the CURRENTLY record (born 1965, April 2003) refuse disability_boundary_assignments_unsupported, rows (1, 5/2, 0, 1). Two reviewer runs refuse the same for UNKNOWN ending, UNKNOWN 2004, both, UNKNOWN establishment, all four UNKNOWN, onset day 15, frozen exits and later queries. A past-blind 1998-1999 prior pins the 1998 QC in Q1 (DLI 2007-12-31), so refusing is right. The qualifying quarter under UNKNOWN priors is still unwidened (finding 5).",
   "id": "A-medium (Sol round 14, 129d44bd)"
  },
  {
   "severity": "medium",
   "location": "src/populace_dynamics/track_b/insured_status.py:1799 (_prior_basis), :1945, :2156, :3334",
   "issue": "An unflagged listed prior was held only to fully insured status, so a TRUE status and DLI held only on the past-blindness completion.",
   "resolved": false,
   "evidence": "The reported records now refuse by name (own/appendix_spot.py; reviewers' c_medium.py with UNKNOWN 2005, frozen exit, 2004 current period; rows kept). But the one-basis computation remains in DISABILITY's qualifying quarter and count: the strict 404.130(b) witness replaces the favorable one when ranks tie, so the born-1968 record reports 2008-04-01 exact where past blindness gives 2008-01-01 (own/n1_n2.py, oracle_f5.py; finding 4). Round 21's invariant ('a computed status or date on a listed prior holds on each basis') fails for that date, so the finding moved rather than closed.",
   "id": "C-medium (cloud review of 38a573a8)"
  },
  {
   "severity": "low",
   "location": "src/populace_dynamics/track_b/insured_status.py:1834",
   "issue": "A listed prior no placement can insure was treated as unconstrained and computed.",
   "resolved": true,
   "evidence": "own/lows.py (born 1960, 1990 prior, QCs only 1995-2000): ALL, FULLY, CURRENTLY, DISABILITY and UNKNOWN establishment refuse disability_boundary_assignments_unsupported, rows (1, 5/2, 0, 1); documented in 'A prior no placement supports'. Residual: a flagged prior only 404.130(b) supports computes under UNKNOWN establishment (finding 7).",
   "id": "C-low (cloud review of 38a573a8)"
  },
  {
   "severity": "medium",
   "location": "src/populace_dynamics/track_b/insured_status.py:1747, :1794 (under31_route=period.special_insured)",
   "issue": "An unflagged prior before 31 was allowed to rest on 404.130(c) alone.",
   "resolved": true,
   "evidence": "own/appendix_spot.py (born 1968, unflagged 1998-1999 prior): DLI, 2008-onset and frozen-exit records refuse by name; the flagged twin computes DLI 2008-03-31 censored. Reviewer runs add UNKNOWN 2005, the 2004 current period and UNKNOWN establishment, all refused with rows kept. 404.130(b) pins the 1998 QC in 1998Q1 (DLI 2007-12-31) and past blindness gives 2008-03-31, so refusing is right. My mutation subsequent_route_before_31 failed test_a_young_prior_after_a_flagged_one_rests_on_paragraph_b.",
   "id": "D-medium (cloud review of f37f7f79)"
  },
  {
   "severity": "low",
   "location": "docs/design/track_b_insured_status.md:3058",
   "issue": "A listed prior's onset is unrecorded and the code relied unstated on the favorable earliest start.",
   "resolved": true,
   "evidence": "The note's 'A listed prior's onset' section and the register now state the reading; own/lows.py runs the probe (born 1970-07-15, 1995 prior): DISABILITY True 13/13 at 1998Q4, as the reading gives. Nit: for the unflagged prior the example has no completion leaving 1995Q1 uninsured.",
   "id": "D-low (cloud review of f37f7f79)"
  }
 ],
 "executed": [
  {
   "command": "git worktree add --detach ../pr 7b5b126a8e946e3c91e3024de18d17cd1c5c279d; git rev-parse HEAD; git diff --stat origin/master...HEAD | tail -1",
   "result": "7b5b126a8e946e3c91e3024de18d17cd1c5c279d; scratch/review ignored; 104 files changed, 57718 insertions(+), 13 deletions(-)."
  },
  {
   "command": "uv venv -p 3.14 /tmp/rvenv; uv pip install (the pinned list)",
   "result": "CPython 3.14.6; all pins installed; repository package not installed."
  },
  {
   "command": "pytest -p review_audit_plugin -p no:cacheprovider -n 3 -q <the 44 required modules> (both data roots nonexistent)",
   "result": "7312 passed, 0 failed, 0 skipped (EXIT=0, 1643 s): insured status modules 1848 (stress 51, qc 310, sources 159, classification oracle 200, rounds 2-22), input_schema 742, refusal_notes 21, round_13_audit 1168, round_15_arguments 346, round_15_receivers 3187. Audit hook in all 4 processes: 0 barred opens or listings; spawns only xdist workers and 'uname -p'."
  },
  {
   "command": "black -l 79 --check <48 changed .py>; ruff check --no-cache <48 changed .py>",
   "result": "black: 48 unchanged; ruff: all checks passed."
  },
  {
   "command": "sha256 and size of tests/data/track_b/insured_status_sources/* vs manifest.json",
   "result": "48/48 match; nothing unlisted."
  },
  {
   "command": "git diff --name-only origin/master...HEAD | grep protected/stray patterns",
   "result": "No gates.yaml, engine/loop.py, engine/steps.py, runs/*.json, scratch, report or bundle in the diff."
  },
  {
   "command": "mutate.py in a second detached worktree: apply, pytest -x on the insured status modules (stress excluded), git checkout -- <file>, git status",
   "result": "12/12 killed; every revert exit 0, status empty. elapsed_year_off_by_one -> :test_version_and_explicit_zero_history; odd_quarters_not_reduced -> :test_fred_brown_35_quarters_require_17_poms_140_example_1; credited_endpoint_dropped_from_window -> _classification_oracle:test_classification_oracle_hypothesis; flagged_prior_may_pass_paragraph_b -> _fix_round_22:test_a_flagged_prior_there_computes; unflagged_basis_prefers_blindness -> _fix_round_22:test_a_date_only_blindness_reaches_refuses[InsuredTest.DISABILITY]; unknown_history_skips_lower_date -> _fix_round_19:test_a_prior_can_undercut_the_date[known_end]; dli_scan_reaches_fra_quarter -> :test_dli_fra_cap_poms_148_november_2019; start_always_first_of_quarter -> _fix_round_10:test_recovery_month_onset_requires_smallest_two_month_gap[True]; recovery_cutoff_december_1980 -> _fix_round_10:test_january_1981_recovery_bound_stops_at_first_paragraph_c_end[False]; agricultural_100_rule_off -> _qc:test_agricultural_qcs_fill_quarters_not_already_credited[1]; qc_rounding_ties_down -> _qc:test_qc_amount_ties_round_up[delta1-260]; subsequent_route_before_31 -> _fix_round_22:test_a_young_prior_after_a_flagged_one_rests_on_paragraph_b"
  },
  {
   "command": "python scratch/review/own/test_own_properties.py (pytest)",
   "result": "4 passed x120 examples: determinism and year-order independence; rows/weights conserved; undeclared year never yields a row; one more QC never lowers a plain record's status or DLI."
  },
  {
   "command": "python scratch/review/own/appendix_spot.py; own/lows.py",
   "result": "Appendix A, C, D records refuse disability_boundary_assignments_unsupported with rows kept; D flagged twin DLI 2008-03-31; C-low refuses for every test; D-low probe 13/13."
  },
  {
   "command": "python scratch/review/lead1_current_flag.py, lead1_variants.py, own/f1_second.py; python -I own/oracle_lead1.py, oracle_lead1_endings.py, oracle_monotone.py",
   "result": "Finding 1: production 2006-06-30 (observed end, frozen exit), [2004-12-31, 2010-12-31] (UNKNOWN end); oracle 2012Q4 by (d); second record 2010-12-31 vs 2016Q1."
  },
  {
   "command": "python scratch/review/own/jane_d7.py",
   "result": "Finding 2: InvalidFamilyInput when established; DISABILITY true when not established; onset 1991-01-02 computes."
  },
  {
   "command": "python scratch/review/own/qc_checks.py, qc_unknown_exit.py",
   "result": "Finding 3: February exit False 3/6 vs December True 6/6; UNKNOWN exit year computed False; established 2021 period InvalidFamilyInput."
  },
  {
   "command": "python scratch/review/own/n1_n2.py, count_basis.py; python -I own/oracle_f5.py",
   "result": "Findings 4 and 5: qualifying 2008-04-01 vs 2008-01-01 (past blindness), count 20 vs 21; UNKNOWN priors 2007-04-01 vs 2007-01-01 with a lawful prior."
  },
  {
   "command": "python scratch/review/own/male_cohort.py, male_cohort2.py",
   "result": "Finding 6: born 1908, 20 QCs: True 20 at 1971-12, False 22 at 1973-12; born 1912, 23 QCs: True 23 at 1974-12."
  },
  {
   "command": "python scratch/review/own/pre1951_flags.py, probe_fra.py, end_after_fra.py, lows2.py, flag_unsupported.py, probe_exit_year.py",
   "result": "Lows 7, 9, 10, 13, 14 and 20 reproduced as stated."
  },
  {
   "command": "python scratch/review/own/contract_probe.py; own/weight_probe.py",
   "result": "Exact types enforced (bool count, float wages, datetime month, date subclass, dict subclass all rejected, the subclass read 0 times); results sealed (public construction, replace, copy, pickle rejected); bad key or negative weight rejected before compute runs; a military-credits refusal kept as one row (1, 5/2, 0, 1). Float weights are normalized exactly by the shared, unchanged gross_benefits check."
  },
  {
   "command": "Workflows: 8 reviewers (statute-disability, statute-qc, statute-fully-currently, oracle-priors, prior-findings x2, contract-properties, worked-examples, notes-readings) and 10 verifiers; scripts under scratch/review/wf*-*/",
   "result": "QC amounts 50/50 against RS .250, OACT and CFR; 220 random QC records match an independent oracle; 1,256 404.115 and 495 exhibit comparisons; 42,000 random fully/currently records match a plain oracle outside finding 6's window; 33 worked examples pass by hand; 85 of 87 quoted phrases verbatim; oracle-priors compared 4,725 records (2,509 computed), no disagreement in the round 14/21/22 areas. Verifiers upheld findings 1, 2, 3, 6 (one each) and 4, 5 (three each); 1-3 were also found by two to four reviewers; 7 was found by oracle-priors and reproduced by me; pre-1951 flags, the age-65 note and the third parse were set low. Contract reviewer: 154 schema checks, seals, receivers first, one snapshot per object, conserved batches, monotonicity and UNKNOWN bounds all hold."
  },
  {
   "command": "git -C ../pr status --porcelain; git -C ../pr-mut status --porcelain",
   "result": "Both empty."
  }
 ],
 "findings": [
  {
   "severity": "medium",
   "location": "src/populace_dynamics/track_b/insured_status.py:1684",
   "issue": "_complete_current_period (and _current_period_completions, :2332) appends the current period as DisabilityPeriod(start, end) with special_insured False even when the rule itself began it on 404.130(c) alone, so after it ends, quarters at 31 or later lose Act 223(c)(1)(B)(iii) / 404.130(d) and the DLI comes back years early (exact DLI, OP12 frozen exit, UNKNOWN-ending range; B10 then fails).",
   "counterexample": "Person(1980-02-02, FEMALE, onset 2003-01-15, established True OBSERVED, end 2004-12-31 OBSERVED, priors () OBSERVED, sspa211 False OBSERVED); years 1980-2013 OBSERVED, qc_count 2001:2, 2002:4, 2009-2011:4, 2012:1, else 0; month 2013-01-01; ALL or DISABILITY. Production: supported row (1, 5/2), DISABILITY true by under31_special 6/6, DLI [2006-06-30, 2006-06-30], not censored. Right: 2012-12-31. At 2003Q1 every placement has 6 QCs, so (b) fails and (c) holds: the period was 'only insured under paragraph (c)'. At 2012Q4 (age 32): 2001Q2-2012Q4 is 47 quarters less the period's 8 = 39, so 38 and 19 needed; 19 held; fully insured needs 8. At 2013Q1, 40 quarters need 20. The same record as a flagged listed prior gives production 2012-12-31. Frozen exit (years to 2012, coverage_end_month 2012-12-01, query 2027-01-01): production 2006-06-30, law 2012-12-31. UNKNOWN end (continues_through 2003-06-30): production [2004-12-31, 2010-12-31] not censored; the 2004-12-31 ending gives 2012-12-31 and the 2008-12-31 ending reaches the 2013Q1 query. Second record (born 1980-02-15, onset 2005-06-01, end 2013-12-31, QCs 2003-2004:4, 2014-2015:4, January 2016): production 2010-12-31, law 2016-03-31 censored. Oracle with no package import: scratch/review/own/oracle_lead1*.py. Found independently by three reviewers; verifier patched only the flag and production moved to the lawful values. The stress oracle shares the premise (special = any(flags(case))).",
   "fix": "Flag the appended period special_insured when it begins before the age-31 quarter and 404.130(b) fails at its start on the filling that gives the reported start (holder not blind); let it open 404.130(d) only for quarters after its end; refuse by name where placement decides the basis. Fix the stress oracle, B10 and the 'Subsequent disability' row, and restate the QC-monotonicity invariant: under the law one more QC can let 404.130(b) begin the period and remove 404.130(d) (19 pre-onset QCs give 2012-12-31; one more 1997 QC gives 2012-09-30).",
   "source_text": "Act 223(c)(1)(B)(iii): 'who, by reason of section 416(i)(3)(B)(ii) ..., had a prior period of disability that began during a period before the quarter in which he or she attained age 31'; 404.130(d)(1): 'for which you were only insured under paragraph (c)'; RS 00301.148 B.2.b: 'If 20/40 is not met and either the NH is under age 31 or special insured status previously applied, determine date NH last meets special insured status.'"
  },
  {
   "severity": "medium",
   "location": "src/populace_dynamics/track_b/insured_status.py:536",
   "issue": "Person rejects periods that share a calendar quarter and re-runs that check when _complete_current_period appends the current period, so an established current period beginning in the quarter a prior ended raises InvalidFamilyInput and loses its row, though 404.321(a) starts it on the onset day and RS 00301.140 example 7 (Jane) is that published case; design note I13 calls it impossible.",
   "counterexample": "Person(1967-03-16, FEMALE, prior (DisabilityPeriod(1988-03-29, 1990-10-31, special_insured=True),) OBSERVED, onset 1990-12-03, established True OBSERVED, sspa211 False); years 1967-1991, qc_count 3 in 1986 and 1987, else 0; month 1991-01-01; any test. Production: InvalidFamilyInput('Established current period has no possible insured disabled quarter'), no row. Right: one supported row, start 1990-12-03, DISABILITY true. The prior's quarters 1988Q1-1990Q4 hold no QC, so the 12 counted quarters ending 1990Q4 are 1985Q1-1987Q4 with 6 QCs. With establishment False production itself gives DISABILITY true, qualifying 1990-10-01; onset 1991-01-02 computes; listing both periods raises at Person(). scratch/review/own/jane_d7.py.",
   "fix": "Check period order by day and treat a shared quarter as an endpoint quarter of both periods (or refuse by name); correct I4/I13 and the round-6 fixture; add example 7 with establishment True.",
   "source_text": "RS 00301.140 ex. 7: 'They became disabled again 12/3/90 ... is insured for DIB as of the new onset date.' 404.321(a): 'Your period of disability begins on the day your disability begins if you are insured for disability on that day.'"
  },
  {
   "severity": "medium",
   "location": "src/populace_dynamics/track_b/_insured_status_qc.py:196",
   "issue": "_allowed_quarters drops quarters after coverage_end_month, so a mid-year exit caps the exit year's annual (and pre-1978 statutory) QCs at the quarters through the exit quarter even at a later query; no source has this limit (the note calls it 'an explicit interface convention, not a statutory emigration exclusion', with no register entry or result flag), and it gives wrong FULLY status, narrows UNKNOWN envelopes and drops lawful established rows.",
   "counterexample": "(a) Born 2000-06-15, qc_count 2019:2, 2020 wages $6,000, coverage_end_month 2020-02-01, month 2024-01-01, FULLY: production False 3/6 (2020 credited 1); December exit: True 6/6. Right: True; $6,000 // $1,410 = 4 QCs, all 2020 quarters begun by 2024. (b) Born 1955-06-15, qc_count 4 in each of 1996-2005, exit 2005-04-01, June 2016, FULLY: production False 38 of 39 (2005's declared 4 QCs credited 2); December exit True 40; Act 214(a)(2) makes 40 QCs fully insured by itself (oracle-priors reviewer; own/exit_40.py). (c) Born 2000-02-02, 2024:3, 2026 UNKNOWN, exit 2026-04-01, January 2027: computes False (3..5) where a December exit refuses; a $7,560 2026 filling gives 5/False against 7/True. (d) Born 1970-06-15, 4 QCs in 2001-2010 and 2016-2019, 2020 wages $6,000, onset 2021-01-15 established, exit 2020-02-01, June 2021: InvalidFamilyInput, though 2020's 4 QCs give 20/40. scratch/review/own/qc_checks.py, qc_unknown_exit.py. Found by two reviewers; verifier upheld.",
   "fix": "Credit the exit year's annual and statutory QCs to any begun quarter (the exit still bars later years); or get Max's ruling, register the convention and flag affected results, refusing by name where it decides a status.",
   "source_text": "RS 00301.230 B: 'We can assign a QC to any quarter in the calendar year, subject to the limitations in RS 00301.240.' RS 00301.240 bars only a counted quarter, quarters after death, a disability period and 'a quarter that has not yet commenced'."
  },
  {
   "severity": "medium",
   "location": "src/populace_dynamics/track_b/insured_status.py:2156",
   "issue": "When a listed prior binds, _settle_fillings returns the first kept filling whose witness rank ties, and _witness_rank (:1945) ignores the qualifying quarter, so :3334 reports DISABILITY's qualifying_quarter (and count) from that filling as exact: the first insured quarter (the 404.321(a) start) can be years later than on a lawful filling with the same basis, and where the record leaves the prior's basis open (404.130(b) or past blindness) it takes the strict basis only. This is the unresolved part of Appendix C's medium and breaks round 21's invariant that a computed date on a listed prior holds on each basis.",
   "counterexample": "(a) Same basis: Person(1959-02-28, FEMALE, prior (DisabilityPeriod(2000-04-01, 2005-03-31),) OBSERVED, onset 2007-01-01 established False); qc_count 1990:1, 1991:3, 1992:3, 1994:4, 1997:4, 1998:4, 2000:1, 2006:4, 2009:4, 2010:4; month 2011-09-01; ALL. Production: DISABILITY True 20/20, qualifying = upper_qualifying = 2010-07-01. The same facts declared established start 2007-01-01. Right: 2007-01-01: the filling 1990:Q3, 1991:Q1-Q3, 1992:Q2-Q4, 2000:Q1 begins the prior on 404.130(b) at 2000Q2 (20 of 40, fully 20 of 19) and holds 20 in the 40 counted quarters ending 2007Q1 (fully 24 of 20), and also attains FULLY, CURRENTLY and the DLI (oracle-priors reviewer; own/qual_same_basis.py). (b) Basis split: Person(1968-02-02, unflagged prior 1998-01-01..1999-12-31, onset 2008-01-01 established False); qc_count 1989-1992:4, 1993:3, 1998:1, 1999-2002:4, 2003:2, 2008:2; April 2008: production 2008-04-01 exact; on past blindness the 1998 QC may sit in Q2-Q4 and 2008Q1 holds 20, so 2008-01-01 (own/n1_n2.py, oracle_f5.py). Count: born 1955-02-02, same prior, 4 QCs in 1980-1984, 1989-1992, 1999-2003, 1993:3, 1998:1, January 2008: production 20/20, past blindness 21 (own/count_basis.py). Verifiers upheld; ranking by quarter alone isn't enough because the fallback compares only insured flags.",
   "fix": "Make the listed-prior search attain the favorable qualifying quarter (and count) on every basis before stopping, or report the range / refuse by name; add both records as tests.",
   "source_text": "404.321(a): the period begins 'on the first day of the first calendar quarter after your disability began in which you become insured'; 404.131(a); 404.130(e): '(1) You are disabled by blindness ... and (2) You are fully insured.'"
  },
  {
   "severity": "medium",
   "location": "src/populace_dynamics/track_b/insured_status.py:2246",
   "issue": "Under UNKNOWN priors (and UNKNOWN establishment) DISABILITY's qualifying_quarter and upper_qualifying_quarter are the no-prior world's first insured quarter: _settle_every_history proves the status at that quarter but not that no history is insured earlier, and :3223 widens only the counts, so UNKNOWN silently means 'no prior' for this date.",
   "counterexample": "Person(1961-02-02, FEMALE, onset 2007-01-01, established False OBSERVED, priors () UNKNOWN); qc_count 1985-1989:4, 2000-2005:3, 2007:4, 2008:4; month 2008-10-01; DISABILITY. Production: True, counts [0, 46], qualifying = upper_qualifying = 2007-04-01. A lawful prior 1990-01-01..1999-12-31 (insured at 1990Q1 under 404.130(b): 20 QCs in 1980Q2-1990Q1) makes 2007Q1 insured (30 of 40 with the period counted, fully insured 39 of 14); production with that prior listed returns 2007-01-01. With establishment True the same record reports start None yet the qualifying quarter 2007-04-01. scratch/review/own/n1_n2.py; oracle over 4,096 placements by the verifier.",
   "fix": "Under UNKNOWN priors or establishment, widen upper_qualifying_quarter to the onset quarter (or the optimistic-clock bound), or report None and name the field.",
   "source_text": "404.130(f): 'we do not count any quarter all or part of which is in a prior period of disability established for you, unless the quarter is the first or last quarter of this period and the quarter is a QC'."
  },
  {
   "severity": "medium",
   "location": "src/populace_dynamics/track_b/insured_status.py:616",
   "issue": "For men born before January 2, 1913, _requirement ends the retirement elapsed years at min(query year, age-65 year or 1975), so a living man queried at 62-64 (1968-1976) gets the 404.110(b)(3) death count instead of the 404.110(b)(2)(iii)/(iv) old-age count (404.115 Col. II 'living worker'), even with rib_entitlement_month declared; FULLY and fully_insured_requirement are too low by up to three QCs, and B6a uses FULLY for its RIB claiming risk set. Note line 573's 'subject to earlier query/death' has no source.",
   "counterexample": "Person(1908-07-01, MALE, priors () OBSERVED, sspa211 False OBSERVED); years 1937-1971 with qc_quarters (T,F,F,F) in 1951-1970, else False (20 QCs); month 1971-12-01; FULLY. Production: True 20/20 (also with rib_entitlement_month 1971-12-01); fully_insured_requirement 20; at 1973-12-01 False 22. Right: False, 22: he became 62 before 1973, so (b)(2)(iv) counts the years before 1973; 404.115 prints 22 for 'Jan. 2, 1908 to Jan. 1, 1909'. Born 1912-07-01 with 23 QCs: True 23 at 1974-12 against 24 (years before 1975). A woman born 1908 is right. scratch/review/own/male_cohort*.py; verifier upheld.",
   "fix": "For these men at or after the year they attain 62 (or with an RIB entitlement) and no death by the query year, end the elapsed years at (b)(2)(iii)/(iv); keep the query/death cap for death, DIB and under-62 queries; correct note line 573 and add Col. II rows queried at 62-64.",
   "source_text": "404.110(b)(2): fully insured 'for old-age insurance benefits ... before— (iii) The year 1975, if you are a man who became age 62 in 1973 or 1974; or (iv) The year you became age 65, if you are a man who became age 62 before 1973.' 404.115 note 1: 'living worker or worker who dies after reaching retirement age'."
  },
  {
   "severity": "medium",
   "location": "src/populace_dynamics/track_b/insured_status.py:1817",
   "issue": "_prior_basis's flagged branch tests '404.130(b) or (c) on some placement' and '404.130(b) fails on some placement' separately, but a flagged prior needs one placement where (c) holds and (b) fails; a flagged prior no placement supports is accepted, and under UNKNOWN establishment (binding forced empty at :3268) the row computes as supported, where the same record refuses by name with establishment True or False and round 21's note says such a prior 'refuses ... by name for every test, with or without an established current period'. Wrong classification; the values equal the flag-dropped record's.",
   "counterexample": "Person(1962-06-28, FEMALE, prior (DisabilityPeriod(1990-04-01, 1990-06-30, special_insured=True),) OBSERVED, onset 2010-02-10, establishment UNKNOWN); qc_count 1980:3, 1981:4, 1982:2, 1983:3, 1986:4, 1987:4, 1990:1, 2005-2007:4, 2010-2011:4; month 2011-10-01; ALL. Production: supported row (1, 5/2, 1, 0), DISABILITY True by subsequent_special, DLI 2011-12-31. Right: refused by name (or InvalidFamilyInput). Age 21 falls in 1983Q2, so 404.130(c) at 1990Q2 counts 28 quarters needing 14 and can reach only 2+4+4+1 = 11 on every one of the 384 placements, while 404.130(b) holds on 96: no placement has (c) without (b). Established True or False refuses (own/flag_unsupported.py; oracle-priors reviewer, probe_flag_unsupported2.py).",
   "fix": "Test (c)-and-not-(b) on one placement in _prior_basis (refusing when none exists), independent of current_unknown.",
   "source_text": "404.130(d)(1): 'for which you were only insured under paragraph (c) of this section'."
  },
  {
   "severity": "low",
   "location": "src/populace_dynamics/track_b/insured_status.py:838",
   "issue": "Pre-1951 years declared as qc_quarters add $0 to the Act 213(c) aggregate, so a FULLY status the aggregate could reverse computes, while raw wages or an UNKNOWN year refuse simplified_pre1951_unsupported. A disclosed interface reading (note line 731), so low; but round 15's 'refuses by name where the aggregate could decide' is broader than the code, and callers aren't told flags waive the route.",
   "counterexample": "RS 00301.315 C.1 John Doe (born 1926-09-08, MALE) with 1949 flags TTTT, 1951-1955 TTTT, 1956 TTTF, September 1991, FULLY: computed False 27/37; 1949 as $5,700 or UNKNOWN: refused (own/pre1951_flags.py).",
   "fix": "Say that flags waive the 213(c) route unless SIMPLIFIED_PRE1951, UNKNOWN or raw wages are declared, or bound flagged wages and refuse."
  },
  {
   "severity": "low",
   "location": "docs/design/track_b_insured_status.md:1487",
   "issue": "The note (1487, 1491-1492), sources README (66-68), registry (747) and test docstrings (sources:697-702, base:274) say the male age-65 cohort ends January 2, 1913 and that 404.132(b) and the GIF say so; the law puts age 65 only on men born before 1/2/1911 (404.110(b)(2)(iv); RS 00301.315 A, .101 C) and 1975 on 1911-1912 births, and 404.132(b) is the disability 1975 cap. The operative rule at line 573 and the code are right; the GIF text isn't captured.",
   "counterexample": "Man born 1912-07-01: production 24 (right); the stated rule would give 26.",
   "fix": "Restate the five places; don't assert an uncaptured GIF reading."
  },
  {
   "severity": "low",
   "location": "src/populace_dynamics/track_b/insured_status.py:1374",
   "issue": "_witness scores the considered and disregarded treatments by (insured, margin, count) and keeps the larger margin, so on a record with QCs inside a listed prior FULLY reports the disregard treatment's requirement and count even when the person is fully insured with the period considered; 404.320(a) disregards a period only when considering it would deny or reduce benefits, and the same result's qcs_by_year and the public fully_insured_requirement report the considered treatment. The note discloses that witnesses 'optimize ... for that particular test' and may differ in 'prior-period treatment' from qcs_by_year, so this is low: status is unaffected, but 'favorable' here means larger margin, not the 404.320(a) condition.",
   "counterexample": "Person(1960-02-02, FEMALE, prior (DisabilityPeriod(1995-01-01, 1995-12-31),) OBSERVED); 4 QCs in each of 1985-2000; month 2005-01-01; FULLY. Production: True, 64 of 23, assigned 1995Q1-Q4; in the same result qcs_by_year[1995] = (2, 2) and the years sum to 62; fully_insured_requirement 22. Right: 62 of 22 (elapsed 1982-2004 less 1995; interior 1995Q2-Q3 can't be QCs under 404.146(d) while the period is considered, and considering it denies nothing). Status unaffected (contract reviewer, probe_fir2.py; own/fully_treatment.py).",
   "fix": "Prefer the considered treatment unless disregarding changes the status (or report both), so FULLY's diagnostics agree with qcs_by_year and fully_insured_requirement.",
   "source_text": "404.320(a): 'If benefits payable on your earnings record would be denied or reduced because of a period of disability, the period of disability will not be taken into consideration.' 404.110(c): 'we do not count as an elapsed year any year which is wholly or partly in a period of disability we established for you'."
  },
  {
   "severity": "low",
   "location": "src/populace_dynamics/track_b/insured_status.py:1548",
   "issue": "With no established period the DISABILITY scan runs past FRA, so a result can be insured at a post-FRA quarter while its DLI is capped before the FRA quarter (Act 223(c)(1)'s test has no FRA limit, so this is documentation).",
   "counterexample": "Born 1950-02-02, 40 QCs 1975-1984, 3/yr 2010-2014, 4 in 2016-2017, onset 2015-01-15 not established, January 2018: DISABILITY True at 2017-01-01, DLI 1989-12-31 (own/probe_fra.py).",
   "fix": "Cap the scan before FRA or document it."
  },
  {
   "severity": "low",
   "location": "src/populace_dynamics/track_b/insured_status.py:451",
   "issue": "A declared period end after the statutory end (month before FRA) is silently capped, while the same continuity date is rejected; no lawful filling has such an end.",
   "counterexample": "Born 1950-06-15, onset 2010-01-15 established, end 2017-12-31: computes as if 2016-05-31; continues_through 2017-12-31 raises (own/end_after_fra.py).",
   "fix": "Reject it or document the cap."
  },
  {
   "severity": "low",
   "location": "src/populace_dynamics/track_b/insured_status.py:1186",
   "issue": "Annual QCs in the birth year are capped at quarters from the birth quarter on; 404.146 has no such limit (the note calls it an interface premise). Infant earners only.",
   "counterexample": "Born 2000-12-15, died 2003-03-10, 2000 wages $3,120, 2001:2: FULLY False 3/6 (2000 credited 1); 404.143(a) gives 4 and True (QC reviewer).",
   "fix": "Drop the cap for annual credits or log it."
  },
  {
   "severity": "low",
   "location": "src/populace_dynamics/track_b/insured_status.py:1108",
   "issue": "Deferred conversion refusals are loose: post-2027 earnings below $1,970, non-decisive 1937 / pre-1951 SE / pre-1955 agricultural rows, and 1937 wages of $3,000 refuse, while the same year declared UNKNOWN computes. Rows are kept.",
   "counterexample": "Born 1990-06-15, 4 QCs 2010-2027, July 2028, 2028 wages $1,969: qc_amount_year_unsupported; UNKNOWN 2028 computes (QC reviewer).",
   "fix": "Refuse a deferred row only when its bounds disagree."
  },
  {
   "severity": "low",
   "location": "src/populace_dynamics/track_b/insured_status.py:1557",
   "issue": "Any declared past DIB or RIB month replaces the query-month event for CURRENTLY, so a worker who has re-earned status reads not currently insured (documented, but at odds with 'query month is a hypothetical entitlement month').",
   "counterexample": "Born 1960-02-02, QCs 1983-1987:4 and 2008-2009:4, prior 1992-01-15..1994-12-31, January 2010: True 8/6; with dib_entitlement_month 1992-07-01: False 0 (own/lows2.py).",
   "fix": "Keep the query quarter while no death is declared, or flag it."
  },
  {
   "severity": "low",
   "location": "src/populace_dynamics/track_b/insured_status.py:553",
   "issue": "Impossible entitlement events are accepted and decide CURRENTLY: DIB entitlement after FRA, RIB entitlement at 24.",
   "counterexample": "Born 1940-02-02 (FRA August 2005), dib_entitlement_month 2010-01-01, QCs 2008:4, 2009:2, January 2012: CURRENTLY True 6 (own/lows2.py).",
   "fix": "Reject them or document that they're unchecked."
  },
  {
   "severity": "low",
   "location": "tests/test_track_b_insured_status_sources.py:416",
   "issue": "The README says the registry 'checks every published figure against its source', but only quote substrings are checked; expected/implemented values are read by no test, some quotes are too short ('6' x15), the Henry test feeds the published quarter to _assign_qcs, and the first-onset figures of RS 00301.140 ex. 6-9 and .147, the 12/93 used-freeze result and 404.115 columns III-V are asserted nowhere (all reproduce).",
   "counterexample": "Changing poms_140_ralph required_qcs 12 to 13 passes every test (worked-examples reviewer).",
   "fix": "Assert the registry values or narrow the claim; add the missing assertions."
  },
  {
   "severity": "low",
   "location": "tests/data/track_b/insured_status_examples.yaml:177",
   "issue": "The Joseph (RS 00301.140 ex. 6) and Frank (RS 00301.147 ex. 3) 'erratum' labels overstate: the printed figures are exact for the printed placement, and moving a post-1977 QC into the period endpoint is 'only if necessary' and changes no status.",
   "counterexample": "Joseph without the 1982 move gives 19 -> 18 / 9, the printed requirement (worked-examples reviewer).",
   "fix": "Call them placement-dependent intermediate counts."
  },
  {
   "severity": "low",
   "location": "src/populace_dynamics/track_b/insured_status.py:800",
   "issue": "The pre-May-1983 subsequent-period refusal fires for any flagged prior, including an under-31 Rule II onset pre-1983 law decided, and no test exercises it (rows kept).",
   "counterexample": "Born 1956-09-16, flagged prior 1978-10-02..1979-12-31, onset 1982-03-01, March 1982: refused though Rule II insures (worked-examples reviewer).",
   "fix": "Limit it to onsets at 31 or later and test it."
  },
  {
   "severity": "low",
   "location": "docs/design/track_b_insured_status.md:863",
   "issue": "The note cites uncommitted scratch/review files (lines 863, 1932, 2634, 2926, 3101). The PR body cites tests/data/track_b/insured_status_mutation_checks.json (moved to docs/design/track_b_insured_status_mutations.json; a test asserts the old path is gone), says 47 cases/26 computed (48/27), 'Four places ... none needs a ruling from Max' (ten register ids; the long-period refusal 'stands until Max rules'), and 'Each is a Hypothesis property'.",
   "counterexample": "git ls-files scratch prints nothing.",
   "fix": "Commit or drop the references; refresh the PR body."
  },
  {
   "severity": "low",
   "location": "src/populace_dynamics/track_b/insured_status.py:1830",
   "issue": "_prior_basis lets an unflagged prior of any date rest on the fully-insured-only blindness test, which RS 00301.150 A dates from benefits payable January 1973 (the module refuses current blindness before 1973).",
   "counterexample": "Born 1930-02-02, unflagged prior 1965-01-01..1966-12-31, QCs 1952-1955 all quarters, January 1980: computes (FULLY False 16/26) where round 21's standard refuses (notes reviewer).",
   "fix": "Offer that basis only from 1973 or refuse by name."
  },
  {
   "severity": "low",
   "location": "docs/design/track_b_insured_status.md:1709",
   "issue": "The long-period register entry lists two readings; the round 17 text names and rejects a third (requirement min(half, 20) over the whole period) on arguable grounds, and glosses '20 of the last 40 ... as 404.130(d)(2) says' though the text has no 'last'. Production follows the statute where only the third parse insures.",
   "counterexample": "Born 1960-02-02, flagged prior 1983-01-15..1983-06-30, QCs 1981:3, 1982:3, 1984-1986:4, 1987:1, 1993:1, onset 1993-10-15: Act 20/24, last-40 14/20, third parse 20/20; production false, and InvalidFamilyInput when established.",
   "fix": "Add the third parse to the register for Max (d1920)."
  },
  {
   "severity": "low",
   "location": "src/populace_dynamics/track_b/insured_status.py:635",
   "issue": "fully_insured_requirement skips _validate_history's person checks (SSPA211 consistency, entitlement after the query, priors after onset), so it returns a number, or with UNKNOWN priors the named refusal, for inputs insured_status rejects as InvalidFamilyInput.",
   "counterexample": "Born 1960-02-02, dib_entitlement_month 2006-01-01, query 2005-01-01: helper 23 (refusal with UNKNOWN priors); insured_status raises 'Entitlement follows query month' (contract reviewer, probe_fir_validation.py).",
   "fix": "Run the same person and month validation in the helper."
  },
  {
   "severity": "low",
   "location": "src/populace_dynamics/track_b/insured_status.py:772",
   "issue": "A positive quarterly wage after the death quarter is an input error, though Act 213 only bars such a quarter from being a QC and RS 00301.240 contemplates wages paid around death; the captures don't settle post-death payment (Act 209 isn't captured), so the rule should refuse or exclude rather than reject.",
   "counterexample": "Born 1930-02-02, died 1968-02-15, QC flags 1950-1967, 1968 quarterly_wages (7700, 100, 0, 0), January 1970, FULLY: InvalidFamilyInput; (7800, 0, 0, 0) computes with 1968 at (1, 1) (contract reviewer).",
   "fix": "Exclude post-death quarters from QCs but keep the wages in the annual total, or refuse by name."
  },
  {
   "severity": "nit",
   "location": "src/populace_dynamics/track_b/insured_status.py:764",
   "issue": "'declared after coverage ends' is also raised for flags before the birth quarter.",
   "counterexample": "Any pre-birth flag in the birth year.",
   "fix": "Name both bounds."
  },
  {
   "severity": "nit",
   "location": "src/populace_dynamics/track_b/_insured_status_qc.py:292",
   "issue": "Unreachable _pre1978_taxable_qcs fills the 1971/72 bracket gap of 213(a)(2)(B)(iii) silently.",
   "counterexample": "FY 1971-06..1972-05, SEI $7,800.",
   "fix": "Note it."
  },
  {
   "severity": "nit",
   "location": "tests/data/track_b/insured_status_examples.yaml:582",
   "issue": "The RS .340 short-year ceiling is cited to 213(a)(2)(B)(iii) (the gift rule) rather than the SEI cap RS .345 C.1 shows; RS .147 ex. 1's 'Mary had 8 QC's' (the record has 9) isn't logged.",
   "counterexample": "Mary Brown first onset: 16/8 with 9 available.",
   "fix": "Cite RS .345 C.1; log the slip."
  },
  {
   "severity": "nit",
   "location": "docs/design/track_b_insured_status.md:3013",
   "issue": "'The 36 quarters from 1989Q2 through 1997Q4' is 35 (through 1998Q1); 'by at least 10 QCs' is stronger than its test; register entry 1's 'tries counting every prior period' is ambiguous.",
   "counterexample": "1989Q2-Q4 plus 1990-1997 is 35.",
   "fix": "Correct the wording."
  },
  {
   "severity": "nit",
   "location": "src/populace_dynamics/track_b/insured_status.py:1834",
   "issue": "A prior no placement supports refuses as disability_boundary_assignments_unsupported, and a binding prior's basis split is reported as 'First insured start depends on annual placement'.",
   "counterexample": "Born 1968 unflagged 1998 prior with a 2004 current period: start detail though the start is fixed.",
   "fix": "Name the cause in the detail."
  },
  {
   "severity": "nit",
   "location": "PR #562 body (Invariants list)",
   "issue": "'Disability insured implies fully insured' holds for each decision's own prerequisite, not across fields: DISABILITY at onset can be True while FULLY at the query is False (the note qualifies this; the PR body doesn't).",
   "counterexample": "Born 1970-02-02, 4 QCs 1992-1996, onset 1997-01-15 not established, January 2015: DISABILITY True, FULLY False 20 of 23.",
   "fix": "Qualify the PR body."
  }
 ],
 "needs_max": [
  {
   "id": "us:oasdi-insured-subsequent-special-long-period (Appendix B row 1)",
   "assessment": "keep",
   "more_than_one_defensible_reading": true,
   "chosen_default_safer": true,
   "reason": "Act clause (iii) has no cap and 404.130(d)(2) / RS 00301.147 B.2.a cap the test; refusing where the whole-period half and the last-40 reading differ is safer than computing, and Mary Brown prints no DLI. A third parse, min(half, 20) over the whole period, is linguistically plausible (under last-40 the cap adds nothing for RS 00301.147 B.1.b's workers); the note rejects it on arguable grounds and the register omits it. Where only it insures, the statute also denies, so production follows the controlling text. Add it to the register for Max's d1920 ruling.",
   "source_text": [
    "Act 223(c)(1)(B)(iii): 'not less than one-half of the quarters beginning after such individual attained age 21 and ending with the quarter in which such...'",
    "404.130(d)(2): 'have QCs in at least one-half the calendar quarters in the period ... up to a maximum of 20 QCs out of 40 calendar quarters'"
   ],
   "money_or_status": "The note's 1960 record: Act DLI 1991-12-31, last-40 1991-09-30; it now refuses. Third-parse record: Act 20/24, last-40 14/20, third parse 20/20; production false."
  },
  {
   "id": "us:oasdi-insured-one-filling-first-start (Appendix B row 2)",
   "assessment": "keep",
   "more_than_one_defensible_reading": true,
   "chosen_default_safer": true,
   "reason": "Flexible per-determination assignment (RS 00301.230 B; 404.143(b)) and one consistent history (404.321(a), 404.320(b)(2)) are both defensible; the rule computes only results the unconstrained favorable search also gives and otherwise refuses, which is the safe default. The unflagged-prior bases follow 404.130(d)(1). Two applications are incomplete and are findings, not judgment: DISABILITY's qualifying quarter and count are held to the strict basis only (finding 4), and the completed current period loses its own 404.130(c)-only basis (finding 1). The favorable-earliest-start reading of an unrecorded prior onset gave no wrong output.",
   "source_text": [
    "RS 00301.230 B: 'Assignment of QCs is flexible. We can assign a QC to any quarter in the calendar year, subject to the limitations in RS 00301.240.'",
    "404.321(a): 'Your period of disability begins on the day your disability begins if you are insured for disability on that day.'"
   ],
   "money_or_status": "Round 22 record: 404.130(b) pins the 1998 QC in 1998Q1 (DLI 2007-12-31) against 2008-03-31 on past blindness; production refuses and the flagged twin computes 2008-03-31."
  },
  {
   "id": "us:oasdi-insured-prior-disability-favorable-disregard (Appendix B row 3)",
   "assessment": "resolve",
   "more_than_one_defensible_reading": false,
   "chosen_default_safer": true,
   "reason": "404.130(f), 404.320(a) and 404.146(d)(2), with RS 00301.120 B.1.b, settle it: a period whose consideration would deny benefits is not taken into consideration, and its interior quarters can then be QCs. Example 9 tried only Rule II with the period counted. No judgment is needed.",
   "source_text": [
    "404.130(f): 'However, we will count all the quarters in the prior period of disability established for you if by doing so you would be entitled to benefits'"
   ],
   "money_or_status": "Disregarding the period, 1983's two QCs move to Q3-Q4 and 1983Q3-1993Q2 holds 20 against 7 required: insured at 5/93. The $1,000-versus-$0 illustration is arithmetic only."
  },
  {
   "id": "us:oasdi-insured-pre1951-seven-elapsed-years",
   "assessment": "resolve",
   "more_than_one_defensible_reading": false,
   "chosen_default_safer": true,
   "reason": "The captures agree once dated: 404.110(d)(1)(i) keeps the seven-year test, (d)(1)(ii) and RS 00301.315 B.1.b drop it for June-1992-or-later applications without section 227 entitlement. What is missing is the filing fact, and the named refusal already treats it as a missing fact. Separately, pre-1951 qc_quarters rows bypass this refusal (finding 8).",
   "source_text": [
    "Act 213(c): 'one quarter of coverage for each $400 of his total wages prior to 1951'"
   ],
   "money_or_status": "1895 woman: six deemed QCs against one ordinary and a six-QC requirement; the seven-year route gives false and the 1990 route true, so the row refuses. Correct."
  },
  {
   "id": "us:oasdi-insured-simplified-pre1951-disability-scope",
   "assessment": "keep",
   "more_than_one_defensible_reading": true,
   "chosen_default_safer": true,
   "reason": "Act 223(c)(1)(A) and 404.132 reach the fully insured prerequisite through section 214; RS 00301.315 B.1 excludes disability claims. Refusing wherever the aggregate could decide keeps the row.",
   "source_text": [
    "Act 223(c)(1)(A): 'he would have been a fully insured individual (as defined in section 414 of this title)'",
    "404.132: 'we use the fully insured status requirements in § 404.110'"
   ],
   "money_or_status": "Round 15's 1926 record: $6,000 refuses (15 + 22 = 37 of 37); $5,997 computes false (36)."
  },
  {
   "id": "us:oasdi-insured-pre1956-alternate-any-quarter-scan",
   "assessment": "keep",
   "more_than_one_defensible_reading": true,
   "chosen_default_safer": true,
   "reason": "'Any quarter before 10/60' supports the literal scan; 'though under a disability ... for freeze or DIB' supports a period-limited scan. Refusing where they differ keeps the row.",
   "source_text": [
    "RS 00301.480 A: 'though under a disability, does not have 20/40 for freeze or DIB in any quarter before 10/60'"
   ],
   "money_or_status": "None."
  },
  {
   "id": "us:oasdi-insured-disability-period-endpoint-quarters",
   "assessment": "resolve",
   "more_than_one_defensible_reading": false,
   "chosen_default_safer": true,
   "reason": "Act 223(c)(1)'s last sentence, 404.130(f), 404.146(d)(1) and RS 00301.240 item 3 keep a credited first or last quarter; the POMS examples simply didn't place an annual QC there and their insured conclusions don't change. The registry's 'erratum' labels overstate this (low finding).",
   "source_text": [
    "404.130(f): 'unless the quarter is the first or last quarter of this period and the quarter is a QC'"
   ],
   "money_or_status": "Joseph 20/10/16 versus printed 18/9; Frank 34/17/9 versus 33/16/8; insured answers unchanged."
  },
  {
   "id": "us:oasdi-insured-historical-end-recovery-month",
   "assessment": "resolve",
   "more_than_one_defensible_reading": false,
   "chosen_default_safer": true,
   "reason": "404.321(b) fixes the two-month offset; paragraph (c) governs disabilities ending after November 1980, so the first (c) ending is February 1981. Arithmetic, not a conflict.",
   "source_text": [
    "404.321(b): 'the last day of the second month following the month in which your disability ended'"
   ],
   "money_or_status": "End 1981-01-31 implies November 1980 recovery; the code's thresholds match (mutation recovery_cutoff_december_1980 killed)."
  },
  {
   "id": "us:oasdi-insured-flag-first-insured-quarter",
   "assessment": "resolve",
   "more_than_one_defensible_reading": false,
   "chosen_default_safer": true,
   "reason": "A missing fact (when a flag's fully insured status began) inside a possibility proof; it can only keep rows.",
   "source_text": [
    "404.321(a): 'the first day of the first calendar quarter after your disability began in which you become insured for disability'"
   ],
   "money_or_status": "None."
  },
  {
   "id": "us:oasdi-insured-unknown-prior-historical-blindness",
   "assessment": "resolve",
   "more_than_one_defensible_reading": false,
   "chosen_default_safer": true,
   "reason": "A missing fact (past blindness) in an impossibility proof; letting the earliest UNKNOWN prior rest on fully insured status only weakens the proof. RS 00301.150 A dates the blindness-only test from 1973, which matters for listed priors (low finding), not for this proof.",
   "source_text": [
    "404.130(e): '(1) You are disabled by blindness ... and (2) You are fully insured.'"
   ],
   "money_or_status": "None."
  },
  {
   "id": "PR body: RS 00301.340 short taxable year ($10,900 versus $10,800)",
   "assessment": "resolve",
   "more_than_one_defensible_reading": false,
   "chosen_default_safer": true,
   "reason": "The printed $3,600 x 3 = $10,800 matches the 1973 SEI ceiling RS 00301.345 already shows, so '$10,900' is a label slip; both readings give 3 QCs and the public path refuses by name, which is loose but harmless.",
   "source_text": [
    "RS 00301.340 C.2: 'received $10,900 in SEI. Allocate $3,600 to each of the calendar quarters 03/1974, 12/1973 and 09/1973.'"
   ],
   "money_or_status": "$100 of allocated SEI, 3 QCs either way; no status changes."
  },
  {
   "id": "PR body / note: exit-year annual-count cap (coverage_end_month)",
   "assessment": "resolve",
   "more_than_one_defensible_reading": false,
   "chosen_default_safer": false,
   "reason": "The captures settle it against the cap: annual QCs are assignable to any begun quarter of the year and RS 00301.240 has no exit limit. The note calls it a non-statutory interface convention, but it changes counts, statuses and DLIs and drops lawful rows (finding 3). Max should either drop it or ratify it as an OP12 convention with a result flag.",
   "source_text": [
    "RS 00301.230 B: 'We can assign a QC to any quarter in the calendar year, subject to the limitations in RS 00301.240.'"
   ],
   "money_or_status": "Executed: FULLY false 3 of 6 versus true 6 of 6 (2020 wages $6,000, February exit, 2024 query); an established 2021 period raises InvalidFamilyInput versus lawful."
  },
  {
   "id": "ADD: a completed current period's 404.130(c)-only basis",
   "assessment": "add",
   "more_than_one_defensible_reading": false,
   "chosen_default_safer": false,
   "reason": "Missed application, settled by the sources: a period the rule itself begins on 404.130(c) alone opens Act 223(c)(1)(B)(iii) / 404.130(d) for later quarters at 31 or later (RS 00301.148 B.2.b). Where placement decides whether 404.130(b) also held at the start, the one-filling reading applies and the row should refuse by name (finding 1).",
   "source_text": [
    "RS 00301.148 B.2.b: 'If 20/40 is not met and either the NH is under age 31 or special insured status previously applied, determine date NH last meets...'"
   ],
   "money_or_status": "Executed: exact DLI 2006-06-30 versus 2012-12-31."
  },
  {
   "id": "ADD: pre-1951 qc_quarters rows and the Act 213(c) aggregate",
   "assessment": "add",
   "more_than_one_defensible_reading": true,
   "chosen_default_safer": false,
   "reason": "Flags declare credited quarters, not wages, so the aggregate is open on the record; the module reads a flag declaration as waiving the 213(c) route (note line 731) unless SIMPLIFIED_PRE1951, UNKNOWN or raw wages are declared. That is a defensible, disclosed interface reading, but RS 00301.315 B.1 applies the simplified method first and round 15's wording is broader than the code. Max should confirm it (and the note should tell callers) or require a refusal (finding 8).",
   "source_text": [
    "RS 00301.315 B.1.b: 'If we find the NH is not insured or deemed to have one QC before 1951 under the simplified method, examine their record for the...'"
   ],
   "money_or_status": "Executed: John Doe as flags computes false 27 of 37; as $5,700 it refuses."
  },
  {
   "id": "ADD: old-age requirement for men born before January 2, 1913 queried at 62-64",
   "assessment": "add",
   "more_than_one_defensible_reading": false,
   "chosen_default_safer": false,
   "reason": "404.110(b)(2)(iii)-(iv) and 404.115 Col. II (living worker) end the elapsed years at age 65 or 1975, not at the query year; the code's 'subject to earlier query' applies the (b)(3) death count to a living worker (finding 6).",
   "source_text": [
    "404.110(b)(2)(iv): 'The year you became age 65, if you are a man who became age 62 before 1973.'",
    "404.115 note 1: 'living worker or worker who dies after reaching retirement age'"
   ],
   "money_or_status": "Executed: born 1908, 20 QCs, December 1971: FULLY true 20 of 20 versus false, 22 required."
  },
  {
   "id": "ADD: pre-1973 listed priors on the blindness-only basis",
   "assessment": "add",
   "more_than_one_defensible_reading": true,
   "chosen_default_safer": false,
   "reason": "RS 00301.150 A dates the fully-insured-only blindness test from benefits payable January 1973; _prior_basis offers it to priors of any date while the module refuses current blindness before 1973. Low (classification only).",
   "source_text": [
    "RS 00301.150 A: 'For benefits payable January 1973 or later, a statutorily blind worker no longer needs to meet a 20/40 or special insured status test.'"
   ],
   "money_or_status": "Reviewer's 1965 prior record computes (FULLY false 16 of 26, DLI 1959-06-30) where the round 21 standard would refuse."
  },
  {
   "id": "Appendix A add: prior-start assignments under UNKNOWN history",
   "assessment": "resolve",
   "more_than_one_defensible_reading": false,
   "chosen_default_safer": true,
   "reason": "Round 19 implemented it: under UNKNOWN priors or establishment a true status or lower date must hold on every annual placement with no period in force, and the Appendix A records now refuse by name. The qualifying quarter is not covered (finding 5).",
   "source_text": [
    "404.321(a)"
   ],
   "money_or_status": "Executed: both Appendix A records refuse disability_boundary_assignments_unsupported, rows (1, 5/2) kept."
  }
 ]
}

Generated by Claude Code

An independent review of 7b5b126 asked for changes on seven mediums,
17 lows and six nits (PR comment 6596920658).

A current period the rule began before 31 on 404.130(c) alone now
carries the 404.130(d)(1) flag for the quarters after it, so the
review's record (born 1980-02-02) gets a date last insured of 2012-12-31
where 7b5b126 gave 2006-06-30. Where placement or an UNKNOWN year
decides that basis and the dates differ, the date refuses by name.
Periods may share a quarter but not a day (404.321(a); RS 00301.140
example 7), so the overlap search, I13, B15 and the
flag-first-insured-quarter register entry go. An exit or a birth bars no
quarter of its own year (RS 00301.230 B). DISABILITY reports the
earliest first insured quarter a kept filling attains; its range spans a
binding prior's bases, naming prior_disability_period_basis, and reaches
the onset quarter under UNKNOWN priors. A living man born before 1913
counts elapsed years to 65 or 1975 (404.110(b)(2)(iii)-(iv)). A flagged
prior needs one placement that passes a special route and fails
404.130(b). A listed prior no completion supports refuses before any
input error, past blindness begins a listed prior only from 1973, and a
listed pre-1956 prior can rest on RS 00301.480 B.1.

Lows 12, 16, 19, 23 and 24 and nit 25 change code, each with a test.
The design note answers the rest and records round 23, its renames and
retirements, and the 99 mutations with their local kills. The tier
counts add 80 unit tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis and others added 2 commits November 3, 2026 05:56
At 8522452, test_the_note_cites_only_tests_that_exist searched every
folder under tests/ and read each module it found, though blind roles
run these modules. It now lists only the tests folder and opens only the
design note and the insured status modules, and
test_the_note_check_reads_only_the_note_and_insured_modules checks each
Path listing and open before it runs. Six local mutations of the check
fail that guard, with no restricted open.

Two of round 23's property tests drew 25 random records, and 7b5b126
fails only 568 of the M1 differential's 11,700 and 90 of the exit-month
test's 300, so a run could miss the bite. Each now runs an explicit
example that 7b5b126 fails, and against 7b5b126 42 of round 23's 67
cases fail on every run. All three property tests pass on every input
of their strategies at this head.

The tier files add the guard (25,526 unit), and the README total, which
missed round 23's 80 tests, reads 32,125.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nch's tests

Master adds #574 (D4), which changes no Track B file. The tier files
take master's counts plus the 2,667 unit tests this branch adds since
edba88f: 26,320 unit and 33,175 in all.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The rulespec-us issue draft said malformed input must fail before any
coverage refusal, which round 23's precedence contradicts: a listed prior
that no completion supports now refuses by name before the rule calls a
later period impossible. The draft now states the contract the rule
keeps: a declaration that contradicts itself fails before the rule runs,
and otherwise an input error means every filling is invalid.

Its long-period bullet named two readings, and round 23 lists a third
parse for Max under d1920. It now names all three and says what the
Python rule does with each. The design note's scope line also gets back
the spaces in "pinned 413, 414 and 423(c)(1) rules".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis and others added 2 commits November 3, 2026 10:59
…d 23)

A pre-screen of 8522452 found three lows and two nits, and tried
twelve mutations of its own.

Person.__post_init__ still capped a listed prior's end at the month
before FRA, while round 23 made the same end on the current period an
input error. 404.321(c)(1), and 404.321(b) for a disability that ended
before December 1980, end every period by then, so a later declared end
has no lawful filling. Both now raise InvalidFamilyInput. Round 3's
tests and the historical boundary lattice declared such ends, so they
now check that the latest lawful end constructs and a later one raises,
and the lattice ends the 1890 cohort's prior by January 1955.

Three round 23 branches had no test that failed when they broke. A
death later in the query month now keeps the living count under
404.110(b)(2)(iv) (test_a_death_after_the_query_keeps_the_living_count).
A period that begins in the quarter its holder attains 31 rests on
404.130(d), not 404.130(c)
(test_a_period_begun_in_the_age_31_quarter_rests_on_paragraph_d). An
open flag never flags the current period, so where every placement
meets 404.130(b) in its first quarter, 404.130(d) doesn't reach the
quarters after it
(test_an_open_flag_keeps_paragraph_b_where_every_placement_meets_it).
Each fails when a mutation breaks its branch.

The current-period comment and the low 12 test cited 404.321(b) for the
FRA end; they now cite 404.321(c)(1). The RS 00301.340 note in the
examples gets back its dollar amounts, and the Joseph note no longer
breaks mid-sentence.

The unit tier rises by the three new tests (26,323 unit, 33,178 in
all). The design note records the changes, eight new mutations (107 in
all) and the counts against 7b5b126 (44 of round 23's 70 cases fail).
It also accounts for the pre-screen's twelve mutations. Ten fail named
tests. Two survive every insured status module. One changes no answer
across 1,500 generated blind records. Every change the other makes
across 11,000 generated records turns a refusal into a result, and the
stress oracle accepts each result it can judge on both cap readings.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
)

The stress oracle's `last_insured` tested every quarter from the first
credit through the query and kept the latest one that insures an onset.
It now scans down from the query and stops at the first insured quarter.
The stress module ran about an hour on CI, enough to push shard 4 past its
time limit. Locally its first 40 tests drop from 1,008 to 164 CPU seconds,
and all 52 pass in under six minutes.

`full_scan_last_insured` keeps the old scan, and
`test_status_stress_last_insured_matches_a_full_scan` checks that both
scans return the same quarter. The test draws records from the base,
entitlement-month, under-31 and subsequent-special generators. On two
credit placements of each, it compares the scans with and without the
declared periods, with and without the subsequent-special route, and under
both readings. An upward scan that keeps the first insured quarter fails
it, and so does a downward scan that skips the query quarter. The design
note names the test, and the unit tier rises to 26,324.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MaxGhenis

Copy link
Copy Markdown
Contributor Author

The head moves from fc689ec to f32d881. CI's shard 4 timed out at fc689ec because the status stress module ran about an hour, most of it in the oracle's last_insured. That function tested every quarter from the first credit through the query. It now scans down from the query and stops at the first insured quarter, and test_status_stress_last_insured_matches_a_full_scan checks it against the full scan. Locally the module's first 40 tests drop from 1,008 to 164 CPU seconds. The commit changes no file under src/, and the unit tier rises to 26,324.

Brief 6871 reviews f32d881, and brief 6870 runs the mutation list there along with two mutations of the new scan. They replace 6641 and 6640, which posted nothing on fc689ec.

@MaxGhenis

Copy link
Copy Markdown
Contributor Author

Ready for hub review
Independent cloud review (Opus 5.5) of fc689ec: REQUEST_CHANGES

One new medium blocks approval; every earlier medium is resolved at this head.

Earlier findings (Appendices A, C, D, E, F)

Source Severity Finding Resolved
A (Sol r14) medium Prior establishment can force an annual QC's quarter, so the no-period witness under UNKNOWN priors or establishment gave a wrong CURRENTLY status and DLI lower bounds. yes
C medium An unflagged listed prior was held only to the past-blindness basis, so a true status or DLI stood on the blind completion alone. yes
C low A listed prior no placement supports was treated as unconstrained and computed. yes
D medium An unflagged prior's nonblind basis admitted 404.130(c) alone, hiding the 404.130(b) placement constraint. yes
D low The note didn't say a listed prior's start reads as the favorable earliest insured quarter from an unrecorded onset. yes
E M1 medium A current period begun on 404.130(c) alone was appended unflagged, so later quarters lost 404.130(d) and the DLI came years early. yes
E M2 medium A current period beginning in the quarter a prior ended raised InvalidFamilyInput (RS 00301.140 example 7, Jane). yes
E M3 medium A mid-year exit capped the exit year's annual QCs at the exit quarter. yes
E M4 medium With a binding listed prior, DISABILITY's qualifying quarter came from the first tied filling and only the strict basis. yes
E M5 medium Under UNKNOWN priors DISABILITY's qualifying quarters were the no-prior world's. yes
E M6 medium A living man born before 1913 queried at 62-64 got the death count of elapsed years. yes
E M7 medium A flagged prior's two halves were tested on different placements, so UNKNOWN establishment computed a flag no placement supports. yes
E L8 low Pre-1951 years declared as QC flags add nothing to the 213(c) aggregate, undisclosed. yes
E L9 low Five places misdated the male age-65 cohort and asserted an uncaptured GIF reading. yes
E L10 low FULLY reports the disregard treatment's count and requirement by larger margin, beside a mapping and helper that consider the period. no
E L11 low With no established period the DISABILITY scan runs past FRA. yes
E L12 low A declared period end after the statutory end was capped silently. yes
E L13 low Annual QCs in the birth year were capped at quarters from the birth quarter. yes
E L14 low Deferred conversion refusals are looser than the same year declared UNKNOWN. no
E L15 low A declared past DIB or RIB month replaces the query event for CURRENTLY, at odds with the docstring. yes
E L16 low Impossible entitlement events were accepted. yes
E L17 low The README claimed every published figure is checked though only quotes are. yes
E L18 low The Joseph and Frank entries were labelled errata. yes
E L19 low The pre-May-1983 subsequent-period refusal fired for any flagged prior. yes
E L20 low The note cited scratch files and the PR body was stale. yes
E L21 low Past blindness could begin an unflagged prior of any date. yes
E L22 low The long-period register omitted a third parse that alone insures the review's record. yes
E L23 low fully_insured_requirement skipped insured_status's person checks. yes
E L24 low A wage paid after the death quarter was an input error. yes
E N25 nit The after-coverage message was raised for pre-birth flags. yes
E N26 nit The fiscal helper filled the 1971-72 gap silently. yes
E N27 nit The short-year ceiling cited the wrong clause and Mary's count slip wasn't logged. yes
E N28 nit A quarter count and two phrases were wrong. yes
E N29 nit Refusal details didn't name the listed prior. yes
E N30 nit 'Disability insured implies fully insured' was unqualified. yes
F M medium The note check read every tests/**/*.py, including barred folders. yes
F L1 low A listed prior's end past the FRA end was capped silently while the current period's raised. yes
F L2 low The living test and the age-31 bound had no failing test under mutation. yes
F N1 nit The RS 00301.340 note had lost its dollar amounts and the Joseph note broke mid-sentence. yes
F N2 nit Two comments cited 404.321(b) for the FRA end. yes
F uncertain a uncertain Which count applies to a man who dies within the query month. yes
F uncertain b uncertain Whether an RIB month can be the month a first-of-month birth attains 62. no
F uncertain c uncertain _settle_current_basis reads the flag only at the lower completions' start. yes
F survivor M1 survivor Reading an open flag as special survived. yes
F survivor M9 survivor Dropping blindness from _current_period_special survived. yes
F survivor M12 survivor Reading an open flag as closed in the first-start search survived. no

This review's findings

  • medium src/populace_dynamics/track_b/insured_status.py:1971: An established current period that no completion can insure raises InvalidFamilyInput, with no evaluator row, when a listed prior holds on some completion of an UNKNOWN year. A completion where no placement supports that prior is refused by name with its row kept (round 23: the record 'omits credits or facts that could insure the current period'), so not every concrete filling is invalid. _prior_basis looks for support on the upper credits, and _flag_fits on any completion, where an input error needs support on every completion.
  • low src/populace_dynamics/track_b/insured_status.py:2058-2060: My mutation r6 (open_years uses year < start, so the flagged prior's own start year is never completed) passed every insured-status module except the stress module, which I did not run with it. It flips the flagged record above from InvalidFamilyInput to a refusal, so no test pins the start-year completion search or the classification of that record.
  • low src/populace_dynamics/track_b/insured_status.py:1395-1407 and :1440-1449: Where only the register's third parse of 404.130(d)(2) insures, DISABILITY computes false and an established period raises InvalidFamilyInput, though the register leaves that parse open for Max (d1920). The rule refuses where the Act's uncapped half insures, where the third parse insures too, and answers where the open parse alone insures. Disclosed in the note, so low.
  • nit PR #562 body, 'Differentials' bullet: It still says the RS 00301.800 footnote misprints the male age-65 cohort and that 'the GIF, the table and 20 CFR 404.132(b) say 1913'. Low 9's correction elsewhere says the GIF text isn't captured, 404.132(b)'s January 2, 1913 date is the disability 1975 cap, and 404.110(b)(2)(iv) puts age 65 at births before January 2, 1911.

Verdict JSON

{
 "verdict": "REQUEST_CHANGES",
 "head": "fc689ecbd4474e505e9b62070039b6de4820b6e7",
 "reviewer": "cloud Opus 5.5, independent review",
 "summary": "I reviewed the whole diff (105 files) at fc689ecb, every finding in Appendices A, C, D, E and F, the captured statute, CFR and POMS text, and the published examples. All 45 required modules pass (7,396 tests) under an audit hook that blocked and logged zero barred-path reads; black and ruff are clean on the 49 changed Python files; the 48 captures match their manifest; no protected or stray file is in the diff, and git status stayed empty. Sol's round-14 medium and the medium findings of the three cloud reviews are fixed: every counterexample and nearby variant I rebuilt now gives the lawful value or a named refusal that keeps its row. Of the 46 earlier items, 42 are resolved; 4 lows remain (L10, L14, an open RIB-month question, and one surviving refusal-only mutation). An independent oracle written from the CFR agrees with 355 computed random records (known and UNKNOWN years, listed and flagged priors, established periods with known and unknown ends, blindness, both long-period readings), with no mismatch. Eleven of my twelve mutations fail a named test. One new medium: an established current period that no completion can insure raises InvalidFamilyInput, dropping the row, when an UNKNOWN year decides whether a listed prior has any supporting placement, though the completions that leave the prior unsupported refuse by name. No population claim, real data, network fetch of sources or tracked-file change.",
 "sol_findings": [
  {
   "source": "A (Sol r14)",
   "severity": "medium",
   "location": "src/populace_dynamics/track_b/insured_status.py:1845 at 129d44bd",
   "issue": "Prior establishment can force an annual QC's quarter, so the no-period witness under UNKNOWN priors or establishment gave a wrong CURRENTLY status and DLI lower bounds.",
   "resolved": true,
   "evidence": "PYTHONPATH=$PWD/scratch/review/audit_site:$PWD/src:$PWD POPULACE_DYNAMICS_EPUF_DIR=/nonexistent/review-data POPULACE_DYNAMICS_PSID_DIR=/nonexistent/review-data $PY scratch/review/prior/appA.py: all 13 variants (the DLI record with known and UNKNOWN ending, UNKNOWN 2004, both, UNKNOWN establishment, every UNKNOWN fact, onset day 15, the frozen 2027 exit, ALL; the CURRENTLY record, ALL, UNKNOWN end, frozen exit) now refuse by name (disability_boundary_assignments_unsupported 'Annual placement decides ... across the unknown periods', or unknown_prior_disability_periods_decide_status, or sspa211_applicability_unknown), each 1 row of weight 5/2. _settle_every_history (src/populace_dynamics/track_b/insured_status.py:2585) now asks every placement, with no period in force, to attain each true status and the lower date. Mutation r1 (skip its date check) fails test_a_prior_can_undercut_the_date[known_end]."
  },
  {
   "source": "C",
   "severity": "medium",
   "location": "src/populace_dynamics/track_b/insured_status.py:1721-1801 at 38a573a8",
   "issue": "An unflagged listed prior was held only to the past-blindness basis, so a true status or DLI stood on the blind completion alone.",
   "resolved": true,
   "evidence": "PYTHONPATH=$PWD/scratch/review/audit_site:$PWD/src:$PWD POPULACE_DYNAMICS_EPUF_DIR=/nonexistent/review-data POPULACE_DYNAMICS_PSID_DIR=/nonexistent/review-data $PY scratch/review/prior/appCDE.py: the 1955 record (DISABILITY, ALL), its 2008 onset, UNKNOWN 2005 and a 2004 current period each refuse disability_boundary_assignments_unsupported 'Annual placement decides a listed prior's first insured quarter', 1 row, weight 5/2."
  },
  {
   "source": "C",
   "severity": "low",
   "location": "src/populace_dynamics/track_b/insured_status.py:1761 at 38a573a8",
   "issue": "A listed prior no placement supports was treated as unconstrained and computed.",
   "resolved": true,
   "evidence": "appE2.py (E7) and appE_lows.py (L21) print 'No annual placement supports a listed prior's first insured quarter' refusals that keep the row (_prior_basis, insured_status.py:1965)."
  },
  {
   "source": "D",
   "severity": "medium",
   "location": "src/populace_dynamics/track_b/insured_status.py:1788-1841 at f37f7f79",
   "issue": "An unflagged prior's nonblind basis admitted 404.130(c) alone, hiding the 404.130(b) placement constraint.",
   "resolved": true,
   "evidence": "appCDE.py: the 1968 record for DISABILITY, ALL, a 2008 onset, UNKNOWN 2005, the frozen 2027 exit, a 2004 current period and UNKNOWN establishment all refuse by name, 1 row each; flagged, it computes subsequent_special 20/20 with DLI 2008-03-31, which the review called right. _witness keeps 404.130(c) to flagged priors (insured_status.py:1373-1377)."
  },
  {
   "source": "D",
   "severity": "low",
   "location": "docs/design/track_b_insured_status.md 'Listed priors' at f37f7f79",
   "issue": "The note didn't say a listed prior's start reads as the favorable earliest insured quarter from an unrecorded onset.",
   "resolved": true,
   "evidence": "The one-filling register entry says so (docs/design/track_b_insured_status.md:1757-1760)."
  },
  {
   "source": "E M1",
   "severity": "medium",
   "location": "src/populace_dynamics/track_b/insured_status.py:1684 at 7b5b126a",
   "issue": "A current period begun on 404.130(c) alone was appended unflagged, so later quarters lost 404.130(d) and the DLI came years early.",
   "resolved": true,
   "evidence": "appCDE.py: born 1980-02-02, onset 2003-01-15, end 2004-12-31, January 2013: DLI [2012-12-31, 2012-12-31]; frozen 2027 exit 2012-12-31; UNKNOWN end [2004-12-31, 2013-03-31] censored; the second record 2016-03-31 censored. Mutation r3 (return None for a (c)-only start) fails test_a_period_begun_on_paragraph_c_alone_opens_paragraph_d_after_it."
  },
  {
   "source": "E M2",
   "severity": "medium",
   "location": "src/populace_dynamics/track_b/insured_status.py:536 at 7b5b126a",
   "issue": "A current period beginning in the quarter a prior ended raised InvalidFamilyInput (RS 00301.140 example 7, Jane).",
   "resolved": true,
   "evidence": "appCDE.py: Jane established computes, start 1990-12-03, DISABILITY true 6/6; not established computes too; a shared day still raises (test_periods_still_may_not_share_a_day)."
  },
  {
   "source": "E M3",
   "severity": "medium",
   "location": "src/populace_dynamics/track_b/_insured_status_qc.py:196 at 7b5b126a",
   "issue": "A mid-year exit capped the exit year's annual QCs at the exit quarter.",
   "resolved": true,
   "evidence": "appE2.py: (a) February exit FULLY true 6/6, the December result; (b) April 2005 exit true 40/39; (c) April and December exits both refuse unknown_earnings_years_decide_status; (d) the established 2021 record no longer raises: with ALL it refuses ongoing_disability_period_dli_horizon_unsupported, row kept."
  },
  {
   "source": "E M4",
   "severity": "medium",
   "location": "src/populace_dynamics/track_b/insured_status.py:2156 at 7b5b126a",
   "issue": "With a binding listed prior, DISABILITY's qualifying quarter came from the first tied filling and only the strict basis.",
   "resolved": true,
   "evidence": "appE2.py: (a) qualifying 2007-01-01, and the established start 2007-01-01; (b) qualifying 2008-04-01 with upper 2008-01-01 and unknown_facts prior_disability_period_basis; the 1955 count 20..21."
  },
  {
   "source": "E M5",
   "severity": "medium",
   "location": "src/populace_dynamics/track_b/insured_status.py:2246 at 7b5b126a",
   "issue": "Under UNKNOWN priors DISABILITY's qualifying quarters were the no-prior world's.",
   "resolved": true,
   "evidence": "appE2.py E5: qualifying 2007-04-01, upper 2007-01-01 (the onset quarter); established, start None with current_disability_period_start listed unknown. Mutation r11 fails test_unknown_priors_reach_the_onset_quarter."
  },
  {
   "source": "E M6",
   "severity": "medium",
   "location": "src/populace_dynamics/track_b/insured_status.py:616 at 7b5b126a",
   "issue": "A living man born before 1913 queried at 62-64 got the death count of elapsed years.",
   "resolved": true,
   "evidence": "appE2.py: born 1908-07-01, Dec 1971 FULLY false 20/22 (also with an RIB month), Dec 1973 22; born 1912-07-01 Dec 1974 false 23/24; a woman true 20/19; fully_insured_requirement 22, 22, 24."
  },
  {
   "source": "E M7",
   "severity": "medium",
   "location": "src/populace_dynamics/track_b/insured_status.py:1817 at 7b5b126a",
   "issue": "A flagged prior's two halves were tested on different placements, so UNKNOWN establishment computed a flag no placement supports.",
   "resolved": true,
   "evidence": "appE2.py E7: UNKNOWN, true and false establishment each refuse 'No annual placement supports a listed prior's first insured quarter', 1 row, weight 5/2."
  },
  {
   "source": "E L8",
   "severity": "low",
   "location": "src/populace_dynamics/track_b/insured_status.py:838 at 7b5b126a",
   "issue": "Pre-1951 years declared as QC flags add nothing to the 213(c) aggregate, undisclosed.",
   "resolved": true,
   "evidence": "appE_lows.py: John Doe with 1949 flags computes FULLY false 27/37; $5,700 of 1949 wages or an UNKNOWN 1949 refuse simplified_pre1951_unsupported; the SIMPLIFIED_PRE1951 row (docs/design/track_b_insured_status.md:768) says flags waive the route."
  },
  {
   "source": "E L9",
   "severity": "low",
   "location": "docs/design/track_b_insured_status.md:1487 at 7b5b126a",
   "issue": "Five places misdated the male age-65 cohort and asserted an uncaptured GIF reading.",
   "resolved": true,
   "evidence": "docs/design/track_b_insured_status.md:1528-1540, the YAML (761-767), the sources README (69-76) and test_rs00301_800_pdf_footnote_misdates_the_male_age_65_cohort now follow 404.110(b)(2)(iii)-(iv) and claim no GIF reading. The PR body's Differentials bullet still says the GIF and 404.132(b) say 1913 (my nit 4)."
  },
  {
   "source": "E L10",
   "severity": "low",
   "location": "src/populace_dynamics/track_b/insured_status.py:1374 at 7b5b126a",
   "issue": "FULLY reports the disregard treatment's count and requirement by larger margin, beside a mapping and helper that consider the period.",
   "resolved": false,
   "evidence": "appE_lows.py L10: FULLY true 64 of 23 while qcs_by_year[1995] is (2, 2), the years sum to 62 and fully_insured_requirement is 22. Behaviour unchanged; docs/design/track_b_insured_status.md:487-496 now discloses it. Status unaffected."
  },
  {
   "source": "E L11",
   "severity": "low",
   "location": "src/populace_dynamics/track_b/insured_status.py:1548 at 7b5b126a",
   "issue": "With no established period the DISABILITY scan runs past FRA.",
   "resolved": true,
   "evidence": "appE_lows.py L11: DISABILITY true at 2017-01-01 beside DLI 1989-12-31; the DLI row (docs/design/track_b_insured_status.md:604) documents it, which the fix allowed."
  },
  {
   "source": "E L12",
   "severity": "low",
   "location": "src/populace_dynamics/track_b/insured_status.py:451 at 7b5b126a",
   "issue": "A declared period end after the statutory end was capped silently.",
   "resolved": true,
   "evidence": "appE_lows.py: a current end and a listed prior's end of 2017-12-31 (born 1950-06-15) raise InvalidFamilyInput; 2016-05-31 constructs."
  },
  {
   "source": "E L13",
   "severity": "low",
   "location": "src/populace_dynamics/track_b/insured_status.py:1186 at 7b5b126a",
   "issue": "Annual QCs in the birth year were capped at quarters from the birth quarter.",
   "resolved": true,
   "evidence": "appE_lows.py L13: born 2000-12-15, $3,120 of 2000 wages, March 2003: FULLY true 6/6."
  },
  {
   "source": "E L14",
   "severity": "low",
   "location": "src/populace_dynamics/track_b/insured_status.py:1108 at 7b5b126a",
   "issue": "Deferred conversion refusals are looser than the same year declared UNKNOWN.",
   "resolved": false,
   "evidence": "appE_lows.py L14: 2028 wages of $1,969 refuse qc_amount_year_unsupported while an UNKNOWN 2028 computes FULLY true 72..75/16. Behaviour unchanged; docs/design/track_b_insured_status.md:658-661 calls it conservative. Rows kept."
  },
  {
   "source": "E L15",
   "severity": "low",
   "location": "src/populace_dynamics/track_b/insured_status.py:1557 at 7b5b126a",
   "issue": "A declared past DIB or RIB month replaces the query event for CURRENTLY, at odds with the docstring.",
   "resolved": true,
   "evidence": "appE_lows.py L15: true 8/6 without the month, false 0/6 with DIB 1992-07; the module docstring (lines 58-62) now states the replacement, so text and behaviour agree."
  },
  {
   "source": "E L16",
   "severity": "low",
   "location": "src/populace_dynamics/track_b/insured_status.py:553 at 7b5b126a",
   "issue": "Impossible entitlement events were accepted.",
   "resolved": true,
   "evidence": "appE_lows.py L16: DIB after FRA and RIB at 24 raise InvalidFamilyInput."
  },
  {
   "source": "E L17",
   "severity": "low",
   "location": "tests/test_track_b_insured_status_sources.py:416 at 7b5b126a",
   "issue": "The README claimed every published figure is checked though only quotes are.",
   "resolved": true,
   "evidence": "README lines 14-18 now say the expected and implemented fields are for review and no test reads them, which the fix allowed."
  },
  {
   "source": "E L18",
   "severity": "low",
   "location": "tests/data/track_b/insured_status_examples.yaml:177 at 7b5b126a",
   "issue": "The Joseph and Frank entries were labelled errata.",
   "resolved": true,
   "evidence": "YAML 203-205 and 342-346 call them placement-dependent intermediate counts."
  },
  {
   "source": "E L19",
   "severity": "low",
   "location": "src/populace_dynamics/track_b/insured_status.py:800 at 7b5b126a",
   "issue": "The pre-May-1983 subsequent-period refusal fired for any flagged prior.",
   "resolved": true,
   "evidence": "prior/l19.py: an under-31 onset after a flagged 1978 prior computes Rule II, 9 QCs of 6, in March 1982; a holder 31 in 1982Q3 refuses subsequent_special_before_1983_unsupported."
  },
  {
   "source": "E L20",
   "severity": "low",
   "location": "docs/design/track_b_insured_status.md:863 at 7b5b126a",
   "issue": "The note cited scratch files and the PR body was stale.",
   "resolved": true,
   "evidence": "test_the_note_cites_only_tests_that_exist asserts no 'scratch/' and that every cited test exists (passed); the PR body cites docs/design/track_b_insured_status_mutations.json and 48 entries, 27 computed, which the YAML holds."
  },
  {
   "source": "E L21",
   "severity": "low",
   "location": "src/populace_dynamics/track_b/insured_status.py:1830 at 7b5b126a",
   "issue": "Past blindness could begin an unflagged prior of any date.",
   "resolved": true,
   "evidence": "appE_lows.py L21: a 1965 unflagged prior refuses 'No annual placement supports a listed prior's first insured quarter'."
  },
  {
   "source": "E L22",
   "severity": "low",
   "location": "docs/design/track_b_insured_status.md:1709 at 7b5b126a",
   "issue": "The long-period register omitted a third parse that alone insures the review's record.",
   "resolved": true,
   "evidence": "The entry now lists it for Max (docs/design/track_b_insured_status.md:1766-1775); appE_lows.py L22 reproduces DISABILITY false 14/20 and InvalidFamilyInput when established, as the entry says. I question the default in needs_max."
  },
  {
   "source": "E L23",
   "severity": "low",
   "location": "src/populace_dynamics/track_b/insured_status.py:635 at 7b5b126a",
   "issue": "fully_insured_requirement skipped insured_status's person checks.",
   "resolved": true,
   "evidence": "appE_lows.py L23: raises 'Entitlement follows query month'."
  },
  {
   "source": "E L24",
   "severity": "low",
   "location": "src/populace_dynamics/track_b/insured_status.py:772 at 7b5b126a",
   "issue": "A wage paid after the death quarter was an input error.",
   "resolved": true,
   "evidence": "appE_lows.py L24: (7700, 100, 0, 0) after a February 1968 death computes FULLY true 73/16, the same as (7800, 0, 0, 0)."
  },
  {
   "source": "E N25",
   "severity": "nit",
   "location": "src/populace_dynamics/track_b/insured_status.py:764 at 7b5b126a",
   "issue": "The after-coverage message was raised for pre-birth flags.",
   "resolved": true,
   "evidence": "appE_lows.py L25: 'Quarterly QCs declared before birth'."
  },
  {
   "source": "E N26",
   "severity": "nit",
   "location": "src/populace_dynamics/track_b/_insured_status_qc.py:292 at 7b5b126a",
   "issue": "The fiscal helper filled the 1971-72 gap silently.",
   "resolved": true,
   "evidence": "_insured_status_qc.py:291-294 names the gap."
  },
  {
   "source": "E N27",
   "severity": "nit",
   "location": "tests/data/track_b/insured_status_examples.yaml:582 at 7b5b126a",
   "issue": "The short-year ceiling cited the wrong clause and Mary's count slip wasn't logged.",
   "resolved": true,
   "evidence": "YAML 593-597 cites RS 00301.345 B.2.g; 295-297 logs 8 printed against 9 in the pattern."
  },
  {
   "source": "E N28",
   "severity": "nit",
   "location": "docs/design/track_b_insured_status.md:3013 at 7b5b126a",
   "issue": "A quarter count and two phrases were wrong.",
   "resolved": true,
   "evidence": "docs/design/track_b_insured_status.md:3081-3082 now says 36 quarters from 1989Q2 through 1998Q1, which is 36."
  },
  {
   "source": "E N29",
   "severity": "nit",
   "location": "src/populace_dynamics/track_b/insured_status.py:1834 at 7b5b126a",
   "issue": "Refusal details didn't name the listed prior.",
   "resolved": true,
   "evidence": "Details now read 'No annual placement supports a listed prior's first insured quarter' and 'Annual placement decides a listed prior's first insured quarter'."
  },
  {
   "source": "E N30",
   "severity": "nit",
   "location": "PR #562 body at 7b5b126a",
   "issue": "'Disability insured implies fully insured' was unqualified.",
   "resolved": true,
   "evidence": "The body now ties it to the qualifying quarter and gives the FULLY-at-later-query counterexample."
  },
  {
   "source": "F M",
   "severity": "medium",
   "location": "tests/test_track_b_insured_status_fix_round_23.py:1287 at 8522452c",
   "issue": "The note check read every tests/**/*.py, including barred folders.",
   "resolved": true,
   "evidence": "It globs only test_track_b_insured_status*.py (round_23.py:1393) behind a read guard (1402). My sitecustomize audit hook, which blocks and logs any open, listdir or scandir of a barred path in every process, logged 0 across all 45 gate modules, round 23's included."
  },
  {
   "source": "F L1",
   "severity": "low",
   "location": "src/populace_dynamics/track_b/insured_status.py:530 at 8522452c",
   "issue": "A listed prior's end past the FRA end was capped silently while the current period's raised.",
   "resolved": true,
   "evidence": "appE_lows.py L12: both raise InvalidFamilyInput."
  },
  {
   "source": "F L2",
   "severity": "low",
   "location": "src/populace_dynamics/track_b/insured_status.py:641 and :1666 at 8522452c",
   "issue": "The living test and the age-31 bound had no failing test under mutation.",
   "resolved": true,
   "evidence": "mut f_m4_living_ignores_death fails test_a_death_after_the_query_keeps_the_living_count; f_m8_age31_quarter_flags fails test_a_period_begun_in_the_age_31_quarter_rests_on_paragraph_d; tree clean after each revert."
  },
  {
   "source": "F N1",
   "severity": "nit",
   "location": "tests/data/track_b/insured_status_examples.yaml:593 at 8522452c",
   "issue": "The RS 00301.340 note had lost its dollar amounts and the Joseph note broke mid-sentence.",
   "resolved": true,
   "evidence": "Line 593 reads 'The capture labels $10,900 as SEI but prints $3,600 for each of three'; 203-205 wrap."
  },
  {
   "source": "F N2",
   "severity": "nit",
   "location": "src/populace_dynamics/track_b/insured_status.py:496 at 8522452c",
   "issue": "Two comments cited 404.321(b) for the FRA end.",
   "resolved": true,
   "evidence": "insured_status.py:496 and round_23.py:1235 cite 404.321(c)(1)."
  },
  {
   "source": "F uncertain a",
   "severity": "uncertain",
   "location": "src/populace_dynamics/track_b/insured_status.py:642",
   "issue": "Which count applies to a man who dies within the query month.",
   "resolved": true,
   "evidence": "Documented reading (docs/design/track_b_insured_status.md:3417-3423) pinned by test_a_death_after_the_query_keeps_the_living_count; no captured source decides it."
  },
  {
   "source": "F uncertain b",
   "severity": "uncertain",
   "location": "src/populace_dynamics/track_b/insured_status.py:581-586",
   "issue": "Whether an RIB month can be the month a first-of-month birth attains 62.",
   "resolved": false,
   "evidence": "Born 1940-03-01 with RIB 2002-02 still constructs; docs/design/track_b_insured_status.md:3501-3505 waits on a capture of Act 202(a). Open, low."
  },
  {
   "source": "F uncertain c",
   "severity": "uncertain",
   "location": "src/populace_dynamics/track_b/insured_status.py:2541",
   "issue": "_settle_current_basis reads the flag only at the lower completions' start.",
   "resolved": true,
   "evidence": "insured_status.py:3285 refuses unknown_earnings whenever the lower and upper starts differ, so they coincide; mutation r5 (drop the upper credits from the basis check) fails test_a_placement_or_year_that_decides_the_basis_refuses."
  },
  {
   "source": "F survivor M1",
   "severity": "survivor",
   "location": "src/populace_dynamics/track_b/insured_status.py:1719",
   "issue": "Reading an open flag as special survived.",
   "resolved": true,
   "evidence": "mut f_m1_open_flag_as_special fails test_an_open_flag_keeps_paragraph_b_where_every_placement_meets_it."
  },
  {
   "source": "F survivor M9",
   "severity": "survivor",
   "location": "src/populace_dynamics/track_b/insured_status.py:1667",
   "issue": "Dropping blindness from _current_period_special survived.",
   "resolved": true,
   "evidence": "Equivalent: a blind holder's DISABILITY witness takes blindness_fully_only alone (_witness, insured_status.py:1333-1352), so the period's flag is inert; the note (3668-3672) reports no changed answer over 1,500 blind records."
  },
  {
   "source": "F survivor M12",
   "severity": "survivor",
   "location": "src/populace_dynamics/track_b/insured_status.py:2329-2332",
   "issue": "Reading an open flag as closed in the first-start search survived.",
   "resolved": false,
   "evidence": "Still survives by the note's account (3673-3686); it only turns refusals into results the stress oracle accepts. No wrong output found; that refusal branch stays unpinned."
  }
 ],
 "executed": [
  {
   "command": "git worktree add --detach ../pr fc689ecb; git rev-parse HEAD; git check-ignore -q scratch/review/x; git diff --stat origin/master...HEAD | tail -1",
   "result": "fc689ecbd4474e505e9b62070039b6de4820b6e7; ignored; 105 files changed, 62067 insertions(+), 13 deletions(-)"
  },
  {
   "command": "uv venv -p 3.14 /tmp/rvenv; uv pip install pytest==9.1.1 hypothesis==6.168.3 pytest-xdist numpy==2.5.1 pandas==3.0.3 scipy==1.18.0 scikit-learn==1.9.0 pyyaml==6.0.3 openpyxl==3.1.5 black==26.5.1 ruff==0.15.20",
   "result": "CPython 3.14.6; package not installed"
  },
  {
   "command": "scratch/review/run_gates.sh (per module: PYTHONPATH=audit_site:src:. OMP_NUM_THREADS=1 POLARS_MAX_THREADS=1 OMP_WAIT_POLICY=PASSIVE, both data roots /nonexistent/review-data, python -m pytest -q -p no:cacheprovider -n 4 <module>)",
   "result": "45 modules, all exit 0, 7,396 passed: the 40 tests/test_track_b_insured_status*.py modules (round 23: 70, status_stress: 51, classification_oracle: 202, qc: 310, sources: 159, ...), input_schema 742, refusal_notes 21, gross_benefits round_13_audit 1168, round_15_arguments 346, round_15_receivers 3187. Audit hook (sitecustomize in every process, blocking open/listdir/scandir of barred paths): 0 blocked; only xdist spawns logged."
  },
  {
   "command": "black -l 79 --check and ruff check --no-cache on git diff --name-only origin/master...HEAD -- '*.py'",
   "result": "49 files unchanged; All checks passed"
  },
  {
   "command": "git diff --name-only origin/master...HEAD",
   "result": "No gates.yaml, engine/loop.py, engine/steps.py or runs/*.json; no scratch, report or bundle file"
  },
  {
   "command": "python -I (manifest check) in tests/data/track_b/insured_status_sources",
   "result": "48 captures: bytes and SHA-256 match, URL and retrieval time present, none unlisted"
  },
  {
   "command": "PYTHONPATH=$PWD/scratch/review/audit_site:$PWD/src:$PWD POPULACE_DYNAMICS_EPUF_DIR=/nonexistent/review-data POPULACE_DYNAMICS_PSID_DIR=/nonexistent/review-data $PY scratch/review/contract_probe.py",
   "result": "datetime month, OrderedDict and dict-subclass years, bool counts, float wages and str test raise InvalidFamilyInput; pickle, copy, deepcopy and direct construction of results raise; an input error raised in compute propagates; a foreign refusal class is rejected"
  },
  {
   "command": "PYTHONPATH=$PWD/scratch/review/audit_site:$PWD/src:$PWD POPULACE_DYNAMICS_EPUF_DIR=/nonexistent/review-data POPULACE_DYNAMICS_PSID_DIR=/nonexistent/review-data $PY scratch/review/prior/appA.py, appCDE.py, appE2.py, appE_lows.py, l19.py; scratch/review/appB_examples.py",
   "result": "As in sol_findings and needs_max"
  },
  {
   "command": "PYTHONPATH=$PWD/scratch/review/audit_site:$PWD/src:$PWD POPULACE_DYNAMICS_EPUF_DIR=/nonexistent/review-data POPULACE_DYNAMICS_PSID_DIR=/nonexistent/review-data $PY scratch/review/fuzz_oracle.py 2 400; fuzz2.py 13 60; fuzz2.py 14 60",
   "result": "Independent oracle (scratch/review/oracle.py, no production import): 304 + 25 + 26 computed records agree, 112 refused by name, 53 input errors the oracle also finds invalid, 0 mismatches, 0 input errors with a valid world. A partial seed-11 run flagged one record whose UNKNOWN-2001 completions refuse by the long-period name; case46b.py shows both readings' dates for every completion lie inside the computed [2000-12-31, 2010-12-31]."
  },
  {
   "command": "PYTHONPATH=$PWD/scratch/review/audit_site:$PWD/src:$PWD POPULACE_DYNAMICS_EPUF_DIR=/nonexistent/review-data POPULACE_DYNAMICS_PSID_DIR=/nonexistent/review-data $PY -m pytest -q -p no:cacheprovider -n 3 scratch/review/test_review_properties.py",
   "result": "3 passed: determinism and order independence (priors and years reversed), refused and computed rows keep their weight in count_family_outcomes, one more QC never removes a status without periods"
  },
  {
   "command": "scratch/review/mut/run_mutation.sh <name> (apply, fast modules -x -n 4, then round 23, classification oracle, status oracle, round 2; git checkout -- <file>; git status --porcelain)",
   "result": "r1 no_unknown_history_dli_check: test_a_prior_can_undercut_the_date[known_end] fails; r2 worst_filling_earliest_everywhere: round 18 and round 15 tests fail; r3 c_only_period_left_open: test_a_period_begun_on_paragraph_c_alone_opens_paragraph_d_after_it fails; r4 window_drops_endpoint_qcs: two round 14 tests fail; r5 basis_check_ignores_upper_credits: test_a_placement_or_year_that_decides_the_basis_refuses fails; r6 flag_fits_skips_start_year: SURVIVED (stress module not run); r7 start_is_quarter_even_in_onset_quarter: 4 fail; r8 fra_cohort_ignores_jan1_rule: 2 round-3 tests fail; r9 flag_binds_only_on_placement: test_a_special_prior_stays_short_of_the_ordinary_rule fails; r10 events_stop_before_fra_quarter: test_fra_ending_month_does_not_imply_recovery[True] fails; r11 unknown_qualifying_not_widened: test_unknown_priors_reach_the_onset_quarter fails; r12 settle_fillings_accepts_any_joint: 2 fail. Pre-screen branches f_m4, f_m8, f_m1 fail their named round-23 tests. git status empty after every revert."
  },
  {
   "command": "PYTHONPATH=$PWD/scratch/review/audit_site:$PWD/src:$PWD POPULACE_DYNAMICS_EPUF_DIR=/nonexistent/review-data POPULACE_DYNAMICS_PSID_DIR=/nonexistent/review-data $PY scratch/review/unsupported_completion.py; scratch/review/mut/r6_case.py (head, then under r6)",
   "result": "Medium finding: the UNKNOWN record raises InvalidFamilyInput while its unsupported-prior completions refuse by name; r6 flips the flagged record to a refusal"
  },
  {
   "command": "Hand re-derivations",
   "result": "RS 00301.147 Mary Brown 32/16/16 at 11/2/82 (and 33/16, 34/17 later: derived DLI 1983-03-31), John Jones 33/16 with 18, Frank Smith 34/17/9; RS 00301.140 example 9 Sam 20 of 1983Q3-1993Q2 on disregard; 2027 QC $250 x 72,800.33 / 9,226.48 = $1,972.59, rounding to $1,970. The tests assert these figures and the sources test checks each quote against its capture."
  }
 ],
 "findings": [
  {
   "severity": "medium",
   "location": "src/populace_dynamics/track_b/insured_status.py:1971 (_refuse_unsupported_priors), :1923-1929 and :2032-2080 (_prior_basis and _flag_fits test support on some completion), :3172-3185",
   "issue": "An established current period that no completion can insure raises InvalidFamilyInput, with no evaluator row, when a listed prior holds on some completion of an UNKNOWN year. A completion where no placement supports that prior is refused by name with its row kept (round 23: the record 'omits credits or facts that could insure the current period'), so not every concrete filling is invalid. _prior_basis looks for support on the upper credits, and _flag_fits on any completion, where an input error needs support on every completion.",
   "counterexample": {
    "command": "PYTHONPATH=$PWD/scratch/review/audit_site:$PWD/src:$PWD POPULACE_DYNAMICS_EPUF_DIR=/nonexistent/review-data POPULACE_DYNAMICS_PSID_DIR=/nonexistent/review-data $PY scratch/review/unsupported_completion.py",
    "inputs": "Person(1950-02-02, sex=FEMALE, prior_disability_periods=(DisabilityPeriod(1990-01-01, 1991-12-31),) OBSERVED, disability_onset=2005-01-15, current_disability_period_established=True OBSERVED, sspa211_applies=False OBSERVED); years 1950-2006 OBSERVED, pre-1978 flags all False, qc_count 4 in each of 1981-1984, 1989 UNKNOWN, every other year 0; month 2006-01-01; test ALL.",
    "actual": "InvalidFamilyInput('Established current period has no possible insured disabled quarter'); no row.",
    "completions": "1989 = 0 or 1: disability_boundary_assignments_unsupported 'No annual placement supports a listed prior's first insured quarter', rows=1, weight 5/2. 1989 = 2, 3 or 4: InvalidFamilyInput.",
    "arithmetic": "She attains 21 in 1971, so fully insured at 1990Q1 needs 18 (1972-1989). 16 QCs plus 1989's: 0 or 1 gives 17 or fewer, so no basis holds (past blindness needs fully insured too); 2 or 3 holds only past blindness (404.130(b) has at most 19 of 1980Q2-1990Q1); 4 holds 404.130(b). No QC after 1989 reaches the 40 quarters ending 2005Q1 through 2006Q1, so the 2005 period fails on every completion.",
    "expected": "A named refusal that keeps the row (the prior's refusal or unknown_earnings_years_decide_status), as the 1989 = 0 and 1 completions get.",
    "flagged_variant": "scratch/review/mut/r6_case.py: born 1965-06-15, flagged prior 1990-04-01..1990-12-31, qc_count 1983:4, 1984:4, 1985:2, 1987:4, 1988:4, 1990 UNKNOWN, onset 2005-01-15 established, January 2006: InvalidFamilyInput; the 1990 = 4 completion refuses 'No annual placement supports a listed prior's first insured quarter' (404.130(b) holds at 1990Q2 on every placement), and 0-3 raise.",
    "reach": "Classification and row weight only; no computed status, date or payment changes. Needs an UNKNOWN (or deferred) year that decides a listed prior's support and an impossible established current period."
   },
   "fix": "Before raising the input error, require each listed prior to be supported on every completion of the open years: for an unflagged prior on the lower credits (support is monotone there), for a flagged prior on each completion. Otherwise refuse by name and keep the row. Pin both records as tests."
  },
  {
   "severity": "low",
   "location": "src/populace_dynamics/track_b/insured_status.py:2058-2060 (_flag_fits)",
   "issue": "My mutation r6 (open_years uses year < start, so the flagged prior's own start year is never completed) passed every insured-status module except the stress module, which I did not run with it. It flips the flagged record above from InvalidFamilyInput to a refusal, so no test pins the start-year completion search or the classification of that record.",
   "counterexample": "scratch/review/mut/run_mutation.sh r6_flag_fits_skips_start_year: fast modules passed, then round 23, classification oracle, status oracle and round 2: 329 passed; mut/r6_case.py under the mutant: 'established, 1990 UNKNOWN : REFUSED ASSIGNMENT_COMPLEXITY ...', at the head InvalidFamilyInput.",
   "fix": "Add the medium's two records as tests; they kill r6 whichever classification the fix settles on."
  },
  {
   "severity": "low",
   "location": "src/populace_dynamics/track_b/insured_status.py:1395-1407 and :1440-1449 (_witness long period); docs/design/track_b_insured_status.md:1761-1775",
   "issue": "Where only the register's third parse of 404.130(d)(2) insures, DISABILITY computes false and an established period raises InvalidFamilyInput, though the register leaves that parse open for Max (d1920). The rule refuses where the Act's uncapped half insures, where the third parse insures too, and answers where the open parse alone insures. Disclosed in the note, so low.",
   "counterexample": "scratch/review/prior/appE_lows.py L22: born 1960-02-02, flagged prior 1983-01-15..1983-06-30, QCs 1981:3, 1982:3, four in 1984-1986, 1987:1, 1993:1, onset 1993-10-15: not established, DISABILITY false (14 of 20, subsequent_special); established, InvalidFamilyInput. Act needs 24 of 48 and finds 20, the last 40 counted quarters 14 of 20, the third parse 20 of 20.",
   "fix": "Until Max rules, refuse by subsequent_special_long_period_unsupported wherever the third parse alone insures, keeping the row."
  },
  {
   "severity": "nit",
   "location": "PR #562 body, 'Differentials' bullet",
   "issue": "It still says the RS 00301.800 footnote misprints the male age-65 cohort and that 'the GIF, the table and 20 CFR 404.132(b) say 1913'. Low 9's correction elsewhere says the GIF text isn't captured, 404.132(b)'s January 2, 1913 date is the disability 1975 cap, and 404.110(b)(2)(iv) puts age 65 at births before January 2, 1911.",
   "counterexample": "Compare the body with tests/data/track_b/insured_status_sources/README.md:69-76.",
   "fix": "Restate the bullet as the README does."
  }
 ],
 "needs_max": [
  {
   "id": "us:oasdi-insured-subsequent-special-long-period",
   "assessment": "keep",
   "more_than_one_defensible_reading": true,
   "chosen_default_safer": false,
   "reason": "Past 40 counted quarters the Act's uncapped half and 404.130(d)(2)'s cap differ. Since Rule III reaches only someone not insured under 404.130(b) (RS 00301.147 B.1.b), a cap read as 20 of the last 40 adds nothing, which supports the third parse (a ceiling of 20 QCs in the period) as the regulation's reading. Refusing where the Act insures is safe but unneeded, since the third parse insures there too; answering false and raising InvalidFamilyInput where only the third parse insures isn't the safer default. Status example verified (low finding 3). No payment is computed.",
   "source_text": [
    "Act 223(c)(1)(B)(iii): 'not less than one-half of the quarters beginning after such individual attained age 21'",
    "404.130(d)(2): 'up to a maximum of 20 QCs out of 40 calendar quarters'",
    "RS 00301.147 B.1.b: 'Do not currently meet 20/40 and fully insured status at onset.'"
   ]
  },
  {
   "id": "us:oasdi-insured-one-filling-first-start",
   "assessment": "keep",
   "more_than_one_defensible_reading": true,
   "chosen_default_safer": true,
   "reason": "Flexible assignment per determination and one start per period both have support; refusing where one filling can't carry the start and the result is safe. Its UNKNOWN-history extension (every placement with no period in force) is sound: disregarding every period is always open (404.130(f), 404.320(a), RS 00301.120), and Sol's records now refuse.",
   "source_text": [
    "RS 00301.230: 'Assignment of QCs is flexible.'",
    "404.321(a): 'Your period of disability begins on the day your disability begins if you are insured for disability on that day.'"
   ]
  },
  {
   "id": "us:oasdi-insured-prior-disability-favorable-disregard",
   "assessment": "resolve",
   "more_than_one_defensible_reading": false,
   "chosen_default_safer": true,
   "reason": "404.130(f) and RS 00301.120/.132 settle it. Example 9's printed denial also keeps 1983's two QCs in Q1-Q2, where RS 00301.140 example 5 moves a post-1977 QC; disregard with 1983's QCs in Q3-Q4 gives 20 of 1983Q3-1993Q2. Verified: Sam computes DISABILITY true 20/20 at 1993Q2.",
   "source_text": [
    "404.130(f): 'we will count all the quarters in the prior period of disability established for you if by doing so you would be entitled to benefits'",
    "RS 00301.140 D.5: 'a QC earned after 1977 can be assigned to any QTR in the year if insured status would be met'"
   ]
  },
  {
   "id": "us:oasdi-insured-disability-period-endpoint-quarters",
   "assessment": "resolve",
   "more_than_one_defensible_reading": false,
   "chosen_default_safer": true,
   "reason": "404.130(f), 404.146(d)(1) and Act 216(i)(3)'s last sentence keep a QC endpoint; the printed figures are placement-dependent and change no status (Joseph 20/10, Frank 34/17/9 not insured, both re-derived).",
   "source_text": [
    "404.130(f): 'unless the quarter is the first or last quarter of this period and the quarter is a QC'"
   ]
  },
  {
   "id": "us:oasdi-insured-pre1951-seven-elapsed-years",
   "assessment": "keep",
   "more_than_one_defensible_reading": false,
   "chosen_default_safer": true,
   "reason": "Missing filing and section 227 facts, not competing readings; the named refusal is safe. Verified: the 1895-born woman refuses by name; the same record for a man needs 9, which the aggregate can't reach, and computes false 1/9.",
   "source_text": [
    "404.110(d)(1)(i): 'if you have at least 7 elapsed years'",
    "RS 00301.315: 'The 1990 Amendments eliminated the seven EY test.'"
   ]
  },
  {
   "id": "us:oasdi-insured-simplified-pre1951-disability-scope",
   "assessment": "keep",
   "more_than_one_defensible_reading": true,
   "chosen_default_safer": true,
   "reason": "The Act and 404.132 reach the prerequisite and the POMS note excludes it; crediting no deemed quarter and refusing where decisive keeps the row.",
   "source_text": [
    "Act 213(c): 'For purposes of sections 414(a) and 415(d)'",
    "RS 00301.315: 'The simplified method does not apply to disability claims.'"
   ]
  },
  {
   "id": "us:oasdi-insured-pre1956-alternate-any-quarter-scan",
   "assessment": "keep",
   "more_than_one_defensible_reading": true,
   "chosen_default_safer": true,
   "reason": "'Any quarter' against the disability-covered context; refusing where the readings differ is safe.",
   "source_text": [
    "RS 00301.480 A: 'does not have 20/40 for freeze or DIB in any quarter before 10/60'"
   ]
  },
  {
   "id": "us:oasdi-insured-historical-end-recovery-month",
   "assessment": "resolve",
   "more_than_one_defensible_reading": false,
   "chosen_default_safer": true,
   "reason": "404.321(b)'s arithmetic fixes the recovery month for an end that isn't the age-65 or death end; February 1981 is the first paragraph (c) end.",
   "source_text": [
    "404.321(b): 'the last day of the second month following the month in which your disability ended'"
   ]
  },
  {
   "id": "us:oasdi-insured-unknown-prior-historical-blindness",
   "assessment": "resolve",
   "more_than_one_defensible_reading": false,
   "chosen_default_safer": true,
   "reason": "Current non-blindness says nothing about past blindness; a blind prior needs fully insured status only.",
   "source_text": [
    "404.130(e): '(1) You are disabled by blindness ... and (2) You are fully insured.'"
   ]
  },
  {
   "id": "add: an observed listed prior and an UNKNOWN year's completions",
   "assessment": "add",
   "more_than_one_defensible_reading": true,
   "chosen_default_safer": false,
   "reason": "The impossibility path reads a listed prior as ruling out the completions on which it has no support (InvalidFamilyInput), while the same credits declared concretely refuse by name as omitted credits or facts. The safer default is the named refusal (medium finding).",
   "source_text": [
    "Shared Track B contract as briefed: 'InvalidFamilyInput means every concrete filling of the input is invalid; where the rule can't show that, it refuses by name and keeps the row.'",
    "docs/design/track_b_insured_status.md:663-668: a listed prior no completion supports 'shows the record omits credits or facts that could insure the current period as well'"
   ]
  },
  {
   "id": "add: an RIB month in the month a first-of-month birth attains 62",
   "assessment": "add",
   "more_than_one_defensible_reading": true,
   "chosen_default_safer": true,
   "reason": "Open in the note pending a capture of Act 202(a); accepting the month only loosens input validation and moves CURRENTLY's event at most one month.",
   "source_text": [
    "404.102: 'You reach a particular age on the day before your birthday.'"
   ]
  }
 ]
}

Generated by Claude Code

@MaxGhenis

Copy link
Copy Markdown
Contributor Author

Ready for hub review
Independent cloud review (Opus 5.5) of f32d881: APPROVE

No finding is medium or higher. All 45 required gate modules pass (7397 tests), black and ruff are clean, all 48 capture hashes match, and 8 of 8 own mutations were killed. Four independent oracles found no wrong status or date in about 2,700 computed records.

Earlier findings (Appendices A, C, D, E, F)

# Severity Location Resolved
1 medium insured_status.py:1845 (Appendix A, Sol round 14) yes
2 medium insured_status.py:1721-1801 (Appendix C) yes
3 low insured_status.py:1761 (Appendix C) yes
4 medium insured_status.py:1788-1841 (Appendix D) yes
5 low insured_status.py:1788 docstring / note (Appendix D) yes
6 medium insured_status.py:1684 (Appendix E M1) yes
7 medium insured_status.py:536 (Appendix E M2) yes
8 medium _insured_status_qc.py:196 (Appendix E M3) yes
9 medium insured_status.py:2156 (Appendix E M4) yes
10 medium insured_status.py:2246 (Appendix E M5) yes
11 medium insured_status.py:616 (Appendix E M6) yes
12 medium insured_status.py:1817 (Appendix E M7) yes
13 low insured_status.py:838 (E low 8) yes
14 low track_b_insured_status.md:1487 (E low 9) yes
15 low insured_status.py:1374 (E low 10) yes
16 low insured_status.py:1548 (E low 11) yes
17 low insured_status.py:451 (E low 12) yes
18 low insured_status.py:1186 (E low 13) yes
19 low insured_status.py:1108 (E low 14) yes
20 low insured_status.py:1557 (E low 15) yes
21 low insured_status.py:553 (E low 16) yes
22 low tests/test_track_b_insured_status_sources.py:416 (E low 17) yes
23 low insured_status_examples.yaml:177 (E low 18) yes
24 low insured_status.py:800 (E low 19) yes
25 low track_b_insured_status.md:863 (E low 20) yes
26 low insured_status.py:1830 (E low 21) yes
27 low track_b_insured_status.md:1709 (E low 22) yes
28 low insured_status.py:635 (E low 23) yes
29 low insured_status.py:772 (E low 24) yes
30 nit insured_status.py:764 (E nit 25) yes
31 nit _insured_status_qc.py:292 (E nit 26) yes
32 nit insured_status_examples.yaml:582 (E nit 27) yes
33 nit track_b_insured_status.md:3013 (E nit 28) yes
34 nit insured_status.py:1834 (E nit 29) yes
35 nit PR #562 body (E nit 30) yes
36 medium tests/test_track_b_insured_status_fix_round_23.py:1287 (Appendix F) yes
37 low insured_status.py:530 (Appendix F) yes
38 low insured_status.py:641 and :1666 (Appendix F) yes
39 nit insured_status_examples.yaml:593 (Appendix F) no
40 nit insured_status.py:496 (Appendix F) yes
41 uncertain _requirement death month (Appendix F uncertain a) yes
42 uncertain RIB month at attainment of 62 (Appendix F uncertain b) no
43 uncertain _settle_current_basis (Appendix F uncertain c) yes
44 surviving-mutation insured_status.py _with_current_period (Appendix F M1 'special is not False') yes
45 surviving-mutation insured_status.py _current_period_special (Appendix F M9) yes
46 surviving-mutation insured_status.py _settle_first_start (Appendix F M12) yes

My findings

  • nit tests/data/track_b/insured_status_examples.yaml:914-915: The second RS 00301.340 short-year note (poms_340_possible_unstated_ceiling) still has lost dollar signs and spaces: 'RS00301.340:10800/3=3600, if printed10900 meant ...'. Round 23 restored only the copy at :593-596.
  • nit PR #562 body, 'Worked examples and differentials': The body still says the RS 00301.800 PDF 'misprints the male age-65 cohort as 1/2/31; the GIF, the table and 20 CFR 404.132(b) say 1913', the reading Appendix E low 9 corrected in the note, README and registry (age 65 only for men born before 1/2/1911; 404.132(b)'s 1913 is the disability cap). It also says each of the 48 registry figures is 'checked against its pinned capture', where the README (:14-18) now says only quotes are checked and no test reads expected/implemented.
  • low src/populace_dynamics/track_b/insured_status.py:581-586: Appendix F uncertain (b) remains open: an RIB entitlement month equal to the month a first-of-month birth attains 62 is accepted, though Act 202(a) (not captured) may require age 62 throughout the month. The note discloses this and defers it.

Verdict JSON

{
 "verdict": "APPROVE",
 "head": "f32d881207db59acb3ec13818f70ea63d258174b",
 "reviewer": "cloud Opus 5.5, independent review",
 "summary": "I reviewed the whole diff (105 files) at f32d8812. All 46 earlier findings (Appendices A, C, D, E, F) were replayed from their counterexamples plus nearby variants. Every medium is resolved: Sol's round-14 prior-start constraint and all its variants now refuse by name and keep the row; the listed-prior basis defects (C, D) refuse by name; and the seven Appendix E mediums compute the right statuses, dates and qualifying quarters or refuse by name. I wrote four independent oracles with no production import: no periods, deaths and frozen exits; one listed prior over both bases with exhaustive placement enumeration; UNKNOWN priors against each concrete lawful prior; and an established current period whose start and 404.130(c)-only flag vary by filling. Together they found no wrong status, count or date in about 2,700 computed records. Neither did they find an input error where a lawful filling exists, or a refusal where the readings agree. All 45 required gate modules pass (7397 tests), black and ruff are clean on the 49 changed Python files, and all 48 source captures match their manifest hashes; no protected or stray file changed. Eight mutations of round-23 code were all killed. The judgment readings check out against the captured text. Remaining items are one low (an RIB month at attainment of 62 waits on an uncaptured Act 202(a)) and two nits (a second garbled RS 00301.340 note; two stale sentences in the PR body). No finding is medium or higher. Python 3.14.6 via uv. No population claim was reviewed or made.",
 "sol_findings": [
  {
   "severity": "medium",
   "location": "insured_status.py:1845 (Appendix A, Sol round 14)",
   "issue": "No-period witness ignored that establishing a prior can pin an annual QC; wrong CURRENTLY and DLI lower bounds under UNKNOWN priors/establishment.",
   "resolved": true,
   "evidence": "python scratch/review/appA.py: Sol's DLI record (born 1961-02-02, UNKNOWN priors, onset 2000-01-01 established, end 2000-12-31, 2008-01 DISABILITY) -> REFUSED disability_boundary_assignments_unsupported ('Annual placement decides the lower date last insured across the unknown periods'); ALL -> REFUSED unknown_prior_disability_periods_decide_status. All 7 variants (UNKNOWN end, UNKNOWN 2004, UNKNOWN establishment, all-UNKNOWN, onset day 15, frozen exit 2003-12/2027-01) refuse. With the lawful 1998-1999 prior listed -> named refusal. Sol's CURRENTLY record (born 1965, 2003-04) -> REFUSED; evaluate keeps the row. Nearby: test_review_unknown.py 800 random cases, 638 computed under UNKNOWN priors all agree with both concrete-prior worlds and the no-prior world from an independent enumeration oracle."
  },
  {
   "severity": "medium",
   "location": "insured_status.py:1721-1801 (Appendix C)",
   "issue": "Unflagged listed prior held only to fully insured (past-blindness basis), so TRUE status and DLI kept only on the blind completion.",
   "resolved": true,
   "evidence": "python scratch/review/appCD.py: born 1955 record, 2008-01 DISABILITY -> REFUSED ('Annual placement decides a listed prior's first insured quarter'); onset 2008-01-01 variant, UNKNOWN 2005 and current 2004 period variants also refuse by name. test_review_prior.py (1500 random single-prior records, independent enumeration oracle over both bases): 1398 computed all match, 102 refused, 0 over-broad refusals."
  },
  {
   "severity": "low",
   "location": "insured_status.py:1761 (Appendix C)",
   "issue": "A listed prior no placement supports was treated as unconstrained and computed.",
   "resolved": true,
   "evidence": "appEl2.py L21 (1965 prior, 16 QCs 1952-55) and appE.py E7 -> REFUSED disability_boundary_assignments_unsupported 'No annual placement supports a listed prior's first insured quarter'; row kept by evaluate."
  },
  {
   "severity": "medium",
   "location": "insured_status.py:1788-1841 (Appendix D)",
   "issue": "Unflagged prior's nonblind basis allowed 404.130(c) alone, masking the Appendix C defect before age 31.",
   "resolved": true,
   "evidence": "appCD.py: born 1968 record -> REFUSED by the listed-prior name for DISABILITY, onset 2008-01-01 (evaluate REFUSED row), UNKNOWN 2005 and frozen exit 2003-12/2027-01; flagged variant computes DLI 2008-03-31, matching Appendix D's stated right answer for the flagged case."
  },
  {
   "severity": "low",
   "location": "insured_status.py:1788 docstring / note (Appendix D)",
   "issue": "Undocumented premise that a listed prior's start is the favorable earliest insured quarter from an unrecorded onset.",
   "resolved": true,
   "evidence": "docs/design/track_b_insured_status.md:1758-1760 and :3139-3142 now state it; appCD.py D2 probe computes DISABILITY true at 1998Q4 as before (consistent with the stated reading)."
  },
  {
   "severity": "medium",
   "location": "insured_status.py:1684 (Appendix E M1)",
   "issue": "Current period begun on 404.130(c) alone appended unflagged, losing 404.130(d) and returning DLI years early.",
   "resolved": true,
   "evidence": "appE.py: born 1980-02-02 record -> DISABILITY under31_special, DLI [2012-12-31,2012-12-31] (was 2006-06-30); frozen exit -> 2012-12-31; UNKNOWN end -> [2004-12-31, 2013-03-31] censored with current_disability_period_end unknown (covers 2012-12-31 and the 2013Q1 reach); second record -> 2016-03-31 censored. flag1.py: when placement decides 404.130(b) at the first quarter -> REFUSED 'decides whether the current period rested on 404.130(c) alone'. test_review_cur.py 500 cases vs independent per-filling oracle: 325 computed all match, 168 input errors all with no establishing filling."
  },
  {
   "severity": "medium",
   "location": "insured_status.py:536 (Appendix E M2)",
   "issue": "Period beginning in the quarter a prior ended (RS 00301.140 ex. 7, Jane) raised InvalidFamilyInput.",
   "resolved": true,
   "evidence": "appE.py E2: established record -> start 1990-12-03, DISABILITY true under31_special 6/6, row supported."
  },
  {
   "severity": "medium",
   "location": "_insured_status_qc.py:196 (Appendix E M3)",
   "issue": "Mid-year exit capped the exit year's annual QCs.",
   "resolved": true,
   "evidence": "appE.py: E3a FULLY True 6/6; E3b True 40/39; E3c REFUSED unknown_earnings_years_decide_status (same as a December exit); E3d with declared end 2021-06-30 computes DISABILITY true 20/20 start 2021-01-15 (ongoing end refuses ongoing_disability_period_dli_horizon_unsupported, no input error). Oracle property test_exit_dli_matches_oracle (300 cases) passes."
  },
  {
   "severity": "medium",
   "location": "insured_status.py:2156 (Appendix E M4)",
   "issue": "Binding prior reported a non-earliest qualifying quarter, and only the strict basis.",
   "resolved": true,
   "evidence": "appE.py: E4a qualifying 2007-01-01; established -> start 2007-01-01; E4b qualifying 2008-04-01 with upper 2008-01-01 and unknown fact prior_disability_period_basis; count variant 20..21 with the same fact."
  },
  {
   "severity": "medium",
   "location": "insured_status.py:2246 (Appendix E M5)",
   "issue": "Under UNKNOWN priors the qualifying quarter was the no-prior world's.",
   "resolved": true,
   "evidence": "appE.py E5: qualifying 2007-04-01, upper 2007-01-01, unknown_facts prior_disability_periods; established variant also lists current start and end."
  },
  {
   "severity": "medium",
   "location": "insured_status.py:616 (Appendix E M6)",
   "issue": "Living man born before 1913 queried at 62-64 got the death count.",
   "resolved": true,
   "evidence": "appE.py E6: born 1908-07-01, 20 QCs, 1971-12 FULLY -> False 20/22; requirement helper 22 at 1971-12 and 1973-12; born 1912-07-01 23 QCs 1974-12 -> False 23/24. Matches captured 404.110(b)(2)(iii)-(iv)."
  },
  {
   "severity": "medium",
   "location": "insured_status.py:1817 (Appendix E M7)",
   "issue": "Flagged prior tested (c) and not-(b) on different placements.",
   "resolved": true,
   "evidence": "appE.py E7: UNKNOWN establishment record -> REFUSED by the listed-prior name; evaluate keeps the row."
  },
  {
   "severity": "low",
   "location": "insured_status.py:838 (E low 8)",
   "issue": "Pre-1951 QC flags waive the 213(c) aggregate silently.",
   "resolved": true,
   "evidence": "appEl.py: John Doe with 1949 flags computes False 27/37; 1949 as $1,425 per quarter -> REFUSED simplified_pre1951_unsupported. Disclosed at note :2016 and :3531 (behaviour unchanged, now documented)."
  },
  {
   "severity": "low",
   "location": "track_b_insured_status.md:1487 (E low 9)",
   "issue": "Note/README/registry said the male age-65 cohort ends Jan 2, 1913.",
   "resolved": true,
   "evidence": "grep: note :597 'Before January 2, 1911 use age 65; January 2, 1911-January 1, 1913 use 1975'; README :69-73 and examples.yaml :761-764 corrected. The PR body's differentials bullet still repeats the old wording (my nit)."
  },
  {
   "severity": "low",
   "location": "insured_status.py:1374 (E low 10)",
   "issue": "FULLY witness reports the disregard treatment's larger margin.",
   "resolved": true,
   "evidence": "appEl2.py L10: still FULLY True 64 of 23 with qcs_by_year[1995]=(2,2) and helper 22; behaviour unchanged but now disclosed as a convention at note :487-496."
  },
  {
   "severity": "low",
   "location": "insured_status.py:1548 (E low 11)",
   "issue": "DISABILITY scan runs past FRA while DLI takes the cap.",
   "resolved": true,
   "evidence": "appEl2.py L11: DISABILITY True at 2017-01-01, DLI 1989-12-31 (same); documented at note :604 with this exact record."
  },
  {
   "severity": "low",
   "location": "insured_status.py:451 (E low 12)",
   "issue": "Declared current end after the statutory FRA end silently capped.",
   "resolved": true,
   "evidence": "appEl.py: current end 2017-12-31 for a 1950-06-15 birth raises 'Current period ends after its statutory FRA end'."
  },
  {
   "severity": "low",
   "location": "insured_status.py:1186 (E low 13)",
   "issue": "Birth-year annual QCs capped from the birth quarter.",
   "resolved": true,
   "evidence": "appEl.py L13: born 2000-12-15, $3,120 in 2000 -> FULLY True 6/6."
  },
  {
   "severity": "low",
   "location": "insured_status.py:1108 (E low 14)",
   "issue": "Deferred conversion refusals loose (refuse where UNKNOWN computes).",
   "resolved": true,
   "evidence": "appEl.py L14: 2028 wages $1,969 -> REFUSED qc_amount_year_unsupported; UNKNOWN 2028 -> computes. Behaviour unchanged; note :658 now calls these refusals conservative. Rows kept."
  },
  {
   "severity": "low",
   "location": "insured_status.py:1557 (E low 15)",
   "issue": "Declared past DIB/RIB month replaces the query event for CURRENTLY.",
   "resolved": true,
   "evidence": "appEl2.py L15: still CURRENTLY False 0; documented in module docstring and note :52."
  },
  {
   "severity": "low",
   "location": "insured_status.py:553 (E low 16)",
   "issue": "Impossible entitlement events accepted.",
   "resolved": true,
   "evidence": "appEl.py: DIB month after FRA -> 'DIB entitlement at or after FRA month'; RIB at 24 -> 'RIB entitlement before age 62'."
  },
  {
   "severity": "low",
   "location": "tests/test_track_b_insured_status_sources.py:416 (E low 17)",
   "issue": "Registry claimed to check every figure; only quotes checked.",
   "resolved": true,
   "evidence": "README narrowed per note :3538; not re-mutated by me."
  },
  {
   "severity": "low",
   "location": "insured_status_examples.yaml:177 (E low 18)",
   "issue": "Joseph/Frank labelled errata.",
   "resolved": true,
   "evidence": "examples.yaml :195-205 and the Frank entry now read 'placement-dependent intermediate counts, not an erratum'; test renamed ..._endpoint_placement."
  },
  {
   "severity": "low",
   "location": "insured_status.py:800 (E low 19)",
   "issue": "Pre-May-1983 subsequent refusal fired for an under-31 Rule II onset.",
   "resolved": true,
   "evidence": "appEl.py L19: born 1956-09-16, flagged 1978 prior, onset 1982-03-01 -> DISABILITY True under31_special 7/6."
  },
  {
   "severity": "low",
   "location": "track_b_insured_status.md:863 (E low 20)",
   "issue": "Note cited uncommitted scratch files; PR body stale counts.",
   "resolved": true,
   "evidence": "test_the_note_cites_only_tests_that_exist asserts 'scratch/' not in note (passes in round 23 module, 70 passed); PR body now gives 48 cases/27 computed and the mutations JSON path."
  },
  {
   "severity": "low",
   "location": "insured_status.py:1830 (E low 21)",
   "issue": "Past-blindness basis offered before 1973.",
   "resolved": true,
   "evidence": "appEl2.py L21: 1965 prior -> REFUSED by the listed-prior name (row kept)."
  },
  {
   "severity": "low",
   "location": "track_b_insured_status.md:1709 (E low 22)",
   "issue": "Long-period register omitted the third parse.",
   "resolved": true,
   "evidence": "appEl.py L22: production DISABILITY False 14/20 (Act's reading, unchanged); register and Appendix B row now list the third parse for Max."
  },
  {
   "severity": "low",
   "location": "insured_status.py:635 (E low 23)",
   "issue": "fully_insured_requirement skipped insured_status validation.",
   "resolved": true,
   "evidence": "appEl.py L23: dib_entitlement_month 2006-01 with query 2005-01 -> InvalidFamilyInput 'Entitlement follows query month'."
  },
  {
   "severity": "low",
   "location": "insured_status.py:772 (E low 24)",
   "issue": "Post-death quarterly wages were an input error.",
   "resolved": true,
   "evidence": "appEl3.py: died 1968-02-15, 1968 quarterly (7700,100,0,0) -> FULLY True 73/16, qcs_by_year[1968]=(1,1); same as (7800,0,0,0)."
  },
  {
   "severity": "nit",
   "location": "insured_status.py:764 (E nit 25)",
   "issue": "Pre-birth flag error named the wrong bound.",
   "resolved": true,
   "evidence": "appEl2.py N25: 'Quarterly QCs declared before birth'."
  },
  {
   "severity": "nit",
   "location": "_insured_status_qc.py:292 (E nit 26)",
   "issue": "1971/72 fiscal bracket gap unstated.",
   "resolved": true,
   "evidence": "git diff 7b5b126a..HEAD -- _insured_status_qc.py adds the comment at :291-294."
  },
  {
   "severity": "nit",
   "location": "insured_status_examples.yaml:582 (E nit 27)",
   "issue": "Short-year ceiling cited to the gift rule; Mary Brown count slip not logged.",
   "resolved": true,
   "evidence": "examples.yaml poms_147_mary note logs 9 vs 8; short-year entry cites RS 00301.345."
  },
  {
   "severity": "nit",
   "location": "track_b_insured_status.md:3013 (E nit 28)",
   "issue": "35 vs 36 quarters wording.",
   "resolved": true,
   "evidence": "Note reports the slips corrected (:3542-3543); spot read, not exhaustively re-verified."
  },
  {
   "severity": "nit",
   "location": "insured_status.py:1834 (E nit 29)",
   "issue": "Refusal detail misnamed the cause.",
   "resolved": true,
   "evidence": "appCD.py/appE.py details now read 'Annual placement decides a listed prior's first insured quarter' and 'No annual placement supports a listed prior's first insured quarter'."
  },
  {
   "severity": "nit",
   "location": "PR #562 body (E nit 30)",
   "issue": "Invariant 'disability insured implies fully insured' unqualified.",
   "resolved": true,
   "evidence": "PR body Invariants now qualifies it with the 1970 record; appEl2.py N30 reproduces DISABILITY True / FULLY False 20/23."
  },
  {
   "severity": "medium",
   "location": "tests/test_track_b_insured_status_fix_round_23.py:1287 (Appendix F)",
   "issue": "Note check read every tests/**/*.py including barred folders.",
   "resolved": true,
   "evidence": "Read :1386-1440: tests.glob('test_track_b_insured_status*.py') only, plus a guard test that monkeypatches Path.open/glob/iterdir/rglob/walk; both pass in the gate run (70 passed)."
  },
  {
   "severity": "low",
   "location": "insured_status.py:530 (Appendix F)",
   "issue": "Listed prior end past FRA silently capped.",
   "resolved": true,
   "evidence": "appEl.py: DisabilityPeriod(2010-01-01, 2017-12-31) for 1950-06-15 birth raises 'Prior period ends after its statutory FRA end'."
  },
  {
   "severity": "low",
   "location": "insured_status.py:641 and :1666 (Appendix F)",
   "issue": "No test killed the living-test and age-31-quarter mutations.",
   "resolved": true,
   "evidence": "My mutations M2 (living = death_date is None) -> round 23 module 1 failed; M3 (age-31 >= -> >) -> 1 failed across rounds 21-23. Both reverted, git status clean."
  },
  {
   "severity": "nit",
   "location": "insured_status_examples.yaml:593 (Appendix F)",
   "issue": "Garbled dollar amounts in the RS 00301.340 note.",
   "resolved": false,
   "evidence": "Line 593-596 restored, but a second copy at examples.yaml:914-915 still reads 'RS00301.340:10800/3=3600, if printed10900 meant ...'."
  },
  {
   "severity": "nit",
   "location": "insured_status.py:496 (Appendix F)",
   "issue": "Comment cited 404.321(b) for the FRA end.",
   "resolved": true,
   "evidence": "insured_status.py:496-499 now cites 404.321(c)(1) and explains (b)."
  },
  {
   "severity": "uncertain",
   "location": "_requirement death month (Appendix F uncertain a)",
   "issue": "Man dying in the query month read as living on the 1st.",
   "resolved": true,
   "evidence": "Now pinned by test_a_death_after_the_query_keeps_the_living_count and disclosed at note :3427-3433; my M2 mutation is killed by it. Not a finding."
  },
  {
   "severity": "uncertain",
   "location": "RIB month at attainment of 62 (Appendix F uncertain b)",
   "issue": "Whether RIB can begin in the month a 1st-of-month birth attains 62.",
   "resolved": false,
   "evidence": "Still accepted (note :3511-3515 says it waits on an Act 202(a) capture). Act 202(a) is not captured, so I cannot settle it; affects only CURRENTLY's event quarter in a corner. Left open, low."
  },
  {
   "severity": "uncertain",
   "location": "_settle_current_basis (Appendix F uncertain c)",
   "issue": "Flag tested only at the lower completion's start.",
   "resolved": true,
   "evidence": "Code reading in PR body; flag1.py placement-decided and UNKNOWN-prior variants refuse; test_review_cur.py found no mismatch in 325 computed records (declared ends only; UNKNOWN-year uppers not generated)."
  },
  {
   "severity": "surviving-mutation",
   "location": "insured_status.py _with_current_period (Appendix F M1 'special is not False')",
   "issue": "Survived; claimed equivalent outside UNKNOWN priors.",
   "resolved": true,
   "evidence": "flag1.py: with UNKNOWN priors and a placement-decided flag the row refuses before the flag matters ('Annual placement decides the lower date last insured across the unknown periods'), so I found no input that distinguishes it. Equivalence not proven; treated as accounted for by the note's Mutations section."
  },
  {
   "severity": "surviving-mutation",
   "location": "insured_status.py _current_period_special (Appendix F M9)",
   "issue": "Dropping the blindness guard survived.",
   "resolved": true,
   "evidence": "Note accounts for it (1,500 blind records, no change); 404.130(e) needs only fully insured, which the (d) route cannot beat. Agree it is equivalent in effect."
  },
  {
   "severity": "surviving-mutation",
   "location": "insured_status.py _settle_first_start (Appendix F M12)",
   "issue": "'is not False' -> 'is True' survived.",
   "resolved": true,
   "evidence": "Refusal-policy only: turns refusals into results that the stress oracle accepts on both cap readings (PR body). Not re-run by me."
  }
 ],
 "executed": [
  {
   "command": "git rev-parse HEAD; git diff --stat origin/master...HEAD | tail -1",
   "result": "f32d881207db59acb3ec13818f70ea63d258174b; 105 files changed, 62131 insertions(+), 13 deletions(-)"
  },
  {
   "command": "venv: uv venv -p 3.14 /tmp/rvenv + pinned packages from the brief",
   "result": "Python 3.14.6; repository package not installed"
  },
  {
   "command": "git diff --name-only origin/master...HEAD | grep -E '^(gates.yaml|runs/|src/populace_dynamics/engine/(loop|steps).py)'; grep for scratch/log/report/bundle",
   "result": "no protected or stray paths"
  },
  {
   "command": "black -l 79 --check and ruff check --no-cache on the 49 added/modified .py files",
   "result": "49 files would be left unchanged; All checks passed!"
  },
  {
   "command": "python: sha256 and byte size of every manifest entry in tests/data/track_b/insured_status_sources/",
   "result": "48 entries, 0 mismatches, no unlisted capture"
  },
  {
   "command": "PYTHONPATH=$PWD/src:$PWD OMP_NUM_THREADS=1 POLARS_MAX_THREADS=1 OMP_WAIT_POLICY=PASSIVE POPULACE_DYNAMICS_EPUF_DIR=/nonexistent/review-data POPULACE_DYNAMICS_PSID_DIR=/nonexistent/review-data python -m pytest -q -n 4 -p no:cacheprovider <module>, one run per module (scratch/review/run_gates.sh)",
   "result": "all 45 modules exit 0, 7397 passed, 0 failed",
   "modules": {
    "tests/test_track_b_insured_status.py": "49 passed in 3.45s",
    "tests/test_track_b_insured_status_classification_oracle.py": "202 passed in 26.96s",
    "tests/test_track_b_insured_status_contract.py": "26 passed in 1.81s",
    "tests/test_track_b_insured_status_fix_round_10.py": "43 passed in 2.38s",
    "tests/test_track_b_insured_status_fix_round_10_proof.py": "10 passed in 1.47s",
    "tests/test_track_b_insured_status_fix_round_11.py": "136 passed in 1.45s",
    "tests/test_track_b_insured_status_fix_round_12.py": "65 passed in 1.50s",
    "tests/test_track_b_insured_status_fix_round_13.py": "46 passed in 1.17s",
    "tests/test_track_b_insured_status_fix_round_14.py": "90 passed in 3.00s",
    "tests/test_track_b_insured_status_fix_round_15.py": "48 passed in 2.13s",
    "tests/test_track_b_insured_status_fix_round_16.py": "38 passed in 3.23s",
    "tests/test_track_b_insured_status_fix_round_17.py": "36 passed in 10.32s",
    "tests/test_track_b_insured_status_fix_round_18.py": "16 passed in 0.88s",
    "tests/test_track_b_insured_status_fix_round_19.py": "49 passed in 2.54s",
    "tests/test_track_b_insured_status_fix_round_2.py": "19 passed in 92.31s",
    "tests/test_track_b_insured_status_fix_round_20.py": "9 passed in 5.43s",
    "tests/test_track_b_insured_status_fix_round_21.py": "26 passed in 4.46s",
    "tests/test_track_b_insured_status_fix_round_22.py": "17 passed in 4.91s",
    "tests/test_track_b_insured_status_fix_round_23.py": "70 passed in 181.10s",
    "tests/test_track_b_insured_status_fix_round_3_coverage.py": "19 passed in 1.93s",
    "tests/test_track_b_insured_status_fix_round_3_periods.py": "69 passed in 2.00s",
    "tests/test_track_b_insured_status_fix_round_3_validation.py": "6 passed in 6.44s",
    "tests/test_track_b_insured_status_fix_round_4_docs.py": "1 passed in 0.83s",
    "tests/test_track_b_insured_status_fix_round_4_endings.py": "11 passed in 1.39s",
    "tests/test_track_b_insured_status_fix_round_4_routes.py": "41 passed in 1.76s",
    "tests/test_track_b_insured_status_fix_round_5_continuity.py": "17 passed in 1.39s",
    "tests/test_track_b_insured_status_fix_round_5_possibility.py": "77 passed in 3.34s",
    "tests/test_track_b_insured_status_fix_round_5_sspa.py": "25 passed in 1.40s",
    "tests/test_track_b_insured_status_fix_round_6_ordering.py": "30 passed in 1.67s",
    "tests/test_track_b_insured_status_fix_round_6_routes.py": "17 passed in 1.34s",
    "tests/test_track_b_insured_status_fix_round_7.py": "24 passed in 1.38s",
    "tests/test_track_b_insured_status_fix_round_8.py": "14 passed in 1.27s",
    "tests/test_track_b_insured_status_fix_round_9.py": "17 passed in 2.85s",
    "tests/test_track_b_insured_status_mutations.py": "1 passed in 0.88s",
    "tests/test_track_b_insured_status_period_declarations.py": "6 passed in 1.05s",
    "tests/test_track_b_insured_status_qc.py": "310 passed in 1.44s",
    "tests/test_track_b_insured_status_readings.py": "4 passed in 0.92s",
    "tests/test_track_b_insured_status_sources.py": "159 passed in 1.05s",
    "tests/test_track_b_insured_status_status_oracle.py": "38 passed in 60.36s",
    "tests/test_track_b_insured_status_status_stress.py": "52 passed in 182.08s",
    "tests/test_track_b_input_schema.py": "742 passed in 6.03s",
    "tests/test_track_b_refusal_notes.py": "21 passed in 2.97s",
    "tests/test_track_b_gross_benefits_fix_round_13_audit.py": "1168 passed in 5.66s",
    "tests/test_track_b_gross_benefits_fix_round_15_arguments.py": "346 passed in 1.91s",
    "tests/test_track_b_gross_benefits_fix_round_15_receivers.py": "3187 passed in 4.97s"
   }
  },
  {
   "command": "python scratch/review/appA.py, appCD.py, appE.py, appEl.py, appEl2.py, appEl3.py (counterexample replays; data roots nonexistent)",
   "result": "see sol_findings evidence"
  },
  {
   "command": "PYTHONPATH=$PWD/src:$PWD OMP_NUM_THREADS=1 POLARS_MAX_THREADS=1 OMP_WAIT_POLICY=PASSIVE POPULACE_DYNAMICS_EPUF_DIR=/nonexistent/review-data POPULACE_DYNAMICS_PSID_DIR=/nonexistent/review-data python -m pytest -q -p no:cacheprovider scratch/review/test_review_props.py",
   "result": "4 passed: no-period FULLY/CURRENTLY/DISABILITY/DLI (600) and frozen-exit DLI (300) vs an independent greedy oracle; QC monotonicity (300); determinism and year-order independence (150)"
  },
  {
   "command": "N=1500 ... pytest scratch/review/test_review_prior.py",
   "result": "1 passed: 1500 single unflagged listed-prior records vs an independent enumeration oracle over both bases and consider/disregard; 1398 computed all match, 102 named refusals, 0 refusals where the bases agree"
  },
  {
   "command": "N=800 ... pytest scratch/review/test_review_unknown.py",
   "result": "1 passed: 638 computed UNKNOWN-prior results hold on each concrete lawful prior and the no-prior world; 162 refused"
  },
  {
   "command": "N=500 ... pytest scratch/review/test_review_cur.py",
   "result": "1 passed: established current period with declared end; 325 computed match the per-filling oracle (start, FULLY, CURRENTLY, exact DLI, no improvement at later starts); 168 input errors all with no establishing filling; 7 named refusals"
  },
  {
   "command": "pytest scratch/review/test_review_death.py",
   "result": "1 passed (400 examples): FULLY and CURRENTLY with declared death vs oracle"
  },
  {
   "command": "python scratch/review/flag1.py",
   "result": "placement-decided 404.130(b) at a current period's first quarter -> named refusal under OBSERVED and UNKNOWN priors; forced (c)-only -> DLI 2012-12-31; forced (b) -> 2006-06-30"
  },
  {
   "command": "python scratch/review/contract.py",
   "result": "bool/datetime/date-subclass/float weight rejected as InvalidFamilyInput; evaluate re-raises input errors; a refusal keeps rows=1 weight 5/2 in count_family_outcomes; copy/construct/pickle of a result rejected. int for Fraction fields and list for tuples are accepted, as the shared schema does for G/R2/R3"
  },
  {
   "command": "python scratch/review/examples.py; hand derivations",
   "result": "RS 00301.148: 30 QCs, 20/40 last met 1990Q2 with the 1980 QCs moved to Q3-Q4, requirement 14 -> DLI 1990-06-30 reproduced; RS 00301.140 ex. 9 Sam: disregard gives 20 in 1983Q3-1993Q2, fully 7, matching the pinned test"
  },
  {
   "command": "scratch/review/mutate.sh <name> <file> <old> <new> <tests> (apply, pytest -n 4, git checkout -- <file>)",
   "result": "8 of 8 killed; git status --porcelain empty after each",
   "mutations": [
    "M1_men_62_strict :: 2 failed, 68 passed in 175.02s (0:02:55) :: status=[]",
    "M2_living_ignores_death :: 1 failed, 69 passed in 177.14s (0:02:57) :: status=[]",
    "M3_age31_quarter :: 1 failed, 112 passed in 180.04s (0:03:00) :: status=[]",
    "M4_shared_day_allowed :: 1 failed, 69 passed in 182.54s (0:03:02) :: status=[]",
    "M5_blind_basis_1972 :: 1 failed, 69 passed in 176.21s (0:02:56) :: status=[]",
    "M6_rank_ignores_quarter :: 2 failed, 68 passed in 174.16s (0:02:54) :: status=[]",
    "M7_exit_bars_own_year :: 3 failed, 377 passed in 176.98s (0:02:56) :: status=[]",
    "M8_prior_end_cap :: 1 failed, 69 passed in 172.31s (0:02:52) :: status=[]"
   ]
  }
 ],
 "findings": [
  {
   "severity": "nit",
   "location": "tests/data/track_b/insured_status_examples.yaml:914-915",
   "issue": "The second RS 00301.340 short-year note (poms_340_possible_unstated_ceiling) still has lost dollar signs and spaces: 'RS00301.340:10800/3=3600, if printed10900 meant ...'. Round 23 restored only the copy at :593-596.",
   "counterexample": "sed -n 912,916p tests/data/track_b/insured_status_examples.yaml at f32d8812 prints 'finding: This ceiling could explain the short-taxable-year example in RS00301.340:10800/3=3600, if printed10900 meant net earnings ...'. Text only; no status changes.",
   "fix": "Restore '$10,800 / 3 = $3,600' and 'the printed $10,900'."
  },
  {
   "severity": "nit",
   "location": "PR #562 body, 'Worked examples and differentials'",
   "issue": "The body still says the RS 00301.800 PDF 'misprints the male age-65 cohort as 1/2/31; the GIF, the table and 20 CFR 404.132(b) say 1913', the reading Appendix E low 9 corrected in the note, README and registry (age 65 only for men born before 1/2/1911; 404.132(b)'s 1913 is the disability cap). It also says each of the 48 registry figures is 'checked against its pinned capture', where the README (:14-18) now says only quotes are checked and no test reads expected/implemented.",
   "counterexample": "PR body vs docs/design/track_b_insured_status.md:597 and tests/data/track_b/insured_status_sources/README.md:14-18 and :69-73. Text only; production gives the right counts (E6/E6b reproduce 22 and 24).",
   "fix": "Align the body's two sentences with the note and README."
  },
  {
   "severity": "low",
   "location": "src/populace_dynamics/track_b/insured_status.py:581-586",
   "issue": "Appendix F uncertain (b) remains open: an RIB entitlement month equal to the month a first-of-month birth attains 62 is accepted, though Act 202(a) (not captured) may require age 62 throughout the month. The note discloses this and defers it.",
   "counterexample": "Person(1940-03-01, rib_entitlement_month=2002-02-01) constructs; whether it should is unsettled by the captured sources. It moves only the CURRENTLY event quarter in that corner.",
   "fix": "Capture Act 202(a) and decide, or refuse by name for that month."
  }
 ],
 "needs_max": [
  {
   "id": "us:oasdi-insured-subsequent-special-long-period",
   "assessment": "keep",
   "reason": "Two defensible readings past 40 counted quarters (Act's uncapped half vs 404.130(d)(2) 'up to a maximum of 20 QCs out of 40 calendar quarters', repeated in RS 00301.147 B.2.a). Refusing where they differ is the safer default; test_review_cur.py saw 6 such refusals and no computed case where the readings differed. The third parse is now listed for Max (d1920). Production on the Appendix E low-22 record returns DISABILITY false 14/20 (Act reading), which is right on both registered readings.",
   "source_text": [
    "Act 223(c)(1)(B)(iii) capture: 'not less than one-half of the quarters beginning after such individual attained age 21 and ending with the quarter in which such month occurs'",
    "404.130(d)(2): 'up to a maximum of 20 QCs out of 40 calendar quarters'",
    "RS 00301.147 B.2.a: 'up to a maximum of 20 QCs out of 40 calendar quarters'"
   ]
  },
  {
   "id": "us:oasdi-insured-one-filling-first-start",
   "assessment": "keep",
   "reason": "404.321(a) gives a period one start while RS 00301.230 makes assignment flexible. Requiring one filling that keeps the reported start (and each listed prior's start, on each basis the record leaves open) is safer. My independent oracles under this reading (listed prior: 1398 computed; current period: 325 computed; UNKNOWN priors: 638 computed) found no disagreement, which closes Sol's added item on prior-start assignments.",
   "source_text": [
    "404.321(a): 'Your period of disability begins on the day your disability begins if you are insured for disability on that day.'",
    "RS 00301.230 B: 'Assignment of QCs is flexible. We can assign a QC to any quarter in the calendar year'"
   ]
  },
  {
   "id": "us:oasdi-insured-prior-disability-favorable-disregard",
   "assessment": "resolve",
   "reason": "404.130(f)'s last sentence expressly allows counting all prior-period quarters where favorable; RS 00301.140 example 9's printed denial conflicts. Regulation governs. Hand check of Sam: 20 QCs in 1983Q3-1993Q2 with the period disregarded, fully insured 20 of 7.",
   "source_text": [
    "404.130(f): 'we will count all the quarters in the prior period of disability established for you if by doing so you would be entitled to benefits'",
    "RS 00301.140 ex. 9: 'Sam requires 8 QC's but has only 7 QC's'"
   ]
  },
  {
   "id": "us:oasdi-insured-disability-period-endpoint-quarters",
   "assessment": "resolve",
   "reason": "404.130(f) keeps a QC endpoint quarter; the printed POMS figures are placement-dependent and change no status. No remaining ambiguity.",
   "source_text": [
    "404.130(f): 'unless the quarter is the first or last quarter of this period and the quarter is a QC'"
   ]
  },
  {
   "id": "us:oasdi-insured-pre1951-seven-elapsed-years",
   "assessment": "keep",
   "reason": "Missing filing and section 227 facts justify the named refusal; 404.110(d)(1)(i)'s seven-year condition and (ii)'s June-1992 alternative are both in the capture. The flag-declared pre-1951 years waive the route, now disclosed.",
   "source_text": [
    "404.110(d)(1)(i): 'if you have at least 7 elapsed years'",
    "404.110(d)(1)(ii): 'If you file an application in June 1992 or later and you are not entitled to a benefit under section 227'"
   ]
  },
  {
   "id": "us:oasdi-insured-simplified-pre1951-disability-scope",
   "assessment": "keep",
   "reason": "404.132 applies 404.110 to disability's fully insured prerequisite; RS 00301.315 says the simplified method doesn't apply to disability claims. Preserving the route by named refusal is safer.",
   "source_text": [
    "404.132: 'we use the fully insured status requirements in § 404.110'",
    "RS 00301.315: 'The simplified method does not apply to disability claims.'"
   ]
  },
  {
   "id": "us:oasdi-insured-pre1956-alternate-any-quarter-scan",
   "assessment": "keep",
   "reason": "'any quarter before 10/60' vs 'though under a disability ... for freeze or DIB' support two scan scopes; refusal where they differ is safer. Round 23 extends it to a listed pre-1956 prior; I did not construct a counterexample there.",
   "source_text": [
    "RS 00301.480 A: 'though under a disability, does not have 20/40 for freeze or DIB in any quarter before 10/60'"
   ]
  },
  {
   "id": "us:oasdi-insured-historical-end-recovery-month",
   "assessment": "resolve",
   "reason": "404.321(b)'s 'second month following the month in which your disability ended' fixes the arithmetic for pre-1981 non-FRA, non-death endings. No competing reading.",
   "source_text": [
    "404.321(b): 'the last day of the second month following the month in which your disability ended'"
   ]
  },
  {
   "id": "us:oasdi-insured-unknown-prior-historical-blindness",
   "assessment": "resolve",
   "reason": "statutory_blindness declares current blindness only; 404.130(e) lets a blind prior rest on fully insured status alone, and RS 00301.150 dates that from January 1973 (now enforced, low 21).",
   "source_text": [
    "404.130(e): '(1) You are disabled by blindness ... and (2) You are fully insured.'",
    "RS 00301.150: 'For benefits payable January 1973 or later, a statutorily blind worker no longer needs to meet a 20/40 or special insured status test.'"
   ]
  },
  {
   "id": "retired: us:oasdi-insured-flag-first-insured-quarter",
   "assessment": "resolve",
   "reason": "Retired in round 23 because a start can now fall in a prior's end quarter. Agree: with shared quarters allowed (RS 00301.140 ex. 7, 404.321(a)) the reading has no remaining object."
  },
  {
   "id": "add: RIB entitlement in the month of attaining 62",
   "assessment": "add",
   "reason": "Appendix F uncertain (b) is still open and waits on an uncaptured Act 202(a). It affects only a CURRENTLY event quarter; low. Worth adding to the follow-up list, not blocking."
  }
 ]
}

Generated by Claude Code

@MaxGhenis

Copy link
Copy Markdown
Contributor Author

Ready for hub review

  1. Cloud run of the round 23 mutation list and the Track B gate at f32d881207db59acb3ec13818f70ea63d258174b. The trackb-insured-status-20261023 head on GitHub was f32d881207db59acb3ec13818f70ea63d258174b both at setup and just before posting, so it matched the brief. I ran everything at that SHA in a detached worktree.

  2. Environment: nproc = 4; Python 3.14.6 (uv venv); pytest 9.1.1, Hypothesis 6.168.3, numpy 2.5.1, pandas 3.0.3, scipy 1.18.0, scikit-learn 1.9.0 (pytest-xdist 3.8.0, pyyaml 6.0.3, openpyxl 3.1.5).

  3. Hashes: all 42 file hashes at the head matched. run_round23_named.py (aa5adab2…), round23_mutate.py (eea59b13…) and oracle_mutants.py (abf75a2d…) matched. The two 7b5b126 source files matched (875b3a73…, a34ad42f…).

  4. Mutations (Part A, 4 shards):

Mutation Exit First failing test Open audit (restricted/Popen/system)
basis_always_blind 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_prior_basis_split_widens_the_qualifying_quarters 0/0/0
basis_always_nonblind 1 tests/test_track_b_insured_status_fix_round_23.py::test_an_open_flag_keeps_paragraph_b_where_every_placement_meets_it 0/0/0
basis_only_on_disability 1 tests/test_track_b_insured_status_fix_round_23.py::test_only_a_middle_completion_fits_a_flag[None-InsuredTest.FULLY-InsuredUnsupportedReason.ASSIGNMENT_COMPLEXITY-Annual 0/0/0
basis_skipped_on_open_period 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_flagged_prior_needs_paragraph_c_without_paragraph_b 0/0/0
basis_split_always 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_binding_prior_keeps_the_earliest_qualifying_quarter 0/0/0
basis_split_unreported 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_prior_basis_split_widens_the_qualifying_quarters 0/0/0
binding_pair_drops_basis 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_prior_basis_split_widens_the_qualifying_quarters 0/0/0
binding_reaches_open_period 1 tests/test_track_b_insured_status_fix_round_20.py::test_an_unknown_year_leaves_a_proven_result_to_the_proof 0/0/0
binds_always_nonblind 1 tests/test_track_b_insured_status_fix_round_23.py::test_an_open_flag_keeps_paragraph_b_where_every_placement_meets_it 0/0/0
binds_flag_on_lower_credits 1 tests/test_track_b_insured_status_fix_round_21.py::test_an_unknown_year_can_carry_a_flagged_prior_past_the_ordinary_rule 0/0/0
binds_flag_reads_blindness 1 tests/test_track_b_insured_status_fix_round_20.py::test_an_unknown_year_leaves_a_special_prior_every_placement_carries 0/0/0
binds_ignores_basis 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_prior_basis_split_widens_the_qualifying_quarters 0/0/0
blind_basis_1972 1 tests/test_track_b_insured_status_fix_round_23.py::test_past_blindness_begins_a_prior_only_from_1973[start0-False] 0/0/0
bound_stops_at_reported_start 1 tests/test_track_b_insured_status_status_stress.py::test_status_stress_refuses_a_start_no_filling_supports[109307] 0/0/0
current_drops_paragraph_c 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_period_begun_on_paragraph_c_alone_opens_paragraph_d_after_it 0/0/0
date_search_drops_binding 1 tests/test_track_b_insured_status_fix_round_19.py::test_a_listed_prior_holds_every_ending_to_the_date 0/0/0
date_tested_at_query 1 tests/test_track_b_insured_status_fix_round_2.py::test_unknown_period_status_and_dli_bounds_contain_concrete_fillings 0/0/0
disability_left_out_of_search 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_prior_basis_split_widens_the_qualifying_quarters 0/0/0
disability_reads_the_completion 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_period_begun_in_the_age_31_quarter_rests_on_paragraph_d 0/0/0
drop_bound_refusal 1 tests/test_track_b_insured_status_status_stress.py::test_status_stress_refuses_a_start_no_filling_supports[109307] 0/0/0
drop_dli_comparison 1 tests/test_track_b_insured_status_fix_round_22.py::test_a_frozen_exit_refuses 0/0/0
every_drops_flagged_paragraph_c 1 tests/test_track_b_insured_status_fix_round_21.py::test_an_unknown_year_can_carry_a_flagged_prior_past_the_ordinary_rule 0/0/0
every_flagged_reads_blindness 1 tests/test_track_b_insured_status_fix_round_23.py::test_an_ended_current_period_counts_as_the_prior_it_becomes 0/0/0
every_on_upper_credits 1 tests/test_track_b_insured_status_fix_round_21.py::test_an_unknown_year_can_support_a_prior 0/0/0
every_reads_listed_periods 1 tests/test_track_b_insured_status_fix_round_20.py::test_a_later_prior_on_an_earlier_endpoint_binds 0/0/0
every_reads_paragraph_c 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_prior_basis_split_widens_the_qualifying_quarters 0/0/0
every_unflagged_reads_no_blindness 1 tests/test_track_b_insured_status_fix_round_23.py::test_an_open_flag_keeps_paragraph_b_where_every_placement_meets_it 0/0/0
first_onset_odd 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_period_begun_on_paragraph_c_alone_opens_paragraph_d_after_it 0/0/0
first_onset_short 1 tests/test_track_b_insured_status_fix_round_23.py::test_each_published_first_onset_reproduces[rs140-joseph-6] 0/0/0
first_search_drops_binding 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_split_start_names_the_listed_prior 0/0/0
fix_reverted 1 tests/test_track_b_insured_status_fix_round_20.py::test_partial_years_after_the_start_stay_open 0/0/0
flag_fits_always 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_flagged_prior_needs_paragraph_c_without_paragraph_b 0/0/0
flag_middle 1 tests/test_track_b_insured_status_fix_round_23.py::test_only_a_middle_completion_fits_a_flag[None-InsuredTest.FULLY-InsuredUnsupportedReason.ASSIGNMENT_COMPLEXITY-Annual 0/0/0
flagged_ignores_ordinary_rule 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_flag_every_completion_contradicts_refuses_by_that_name[6] 0/0/0
flagged_ignores_support 1 tests/test_track_b_insured_status_fix_round_23.py::test_only_a_middle_completion_fits_a_flag[0-InsuredTest.ALL-InsuredUnsupportedReason.ASSIGNMENT_COMPLEXITY-No 0/0/0
flagged_ordinary_on_upper_credits 1 tests/test_track_b_insured_status_fix_round_23.py::test_only_a_middle_completion_fits_a_flag[None-InsuredTest.FULLY-InsuredUnsupportedReason.ASSIGNMENT_COMPLEXITY-Annual 0/0/0
flagged_ordinary_reads_blindness 1 tests/test_track_b_insured_status_fix_round_23.py::test_an_ended_current_period_counts_as_the_prior_it_becomes 0/0/0
flagged_refuses_every_placement 1 tests/test_track_b_insured_status_fix_round_23.py::test_an_ended_current_period_counts_as_the_prior_it_becomes 0/0/0
flagged_support_on_lower_credits 1 tests/test_track_b_insured_status_fix_round_23.py::test_only_a_middle_completion_fits_a_flag[None-InsuredTest.FULLY-InsuredUnsupportedReason.ASSIGNMENT_COMPLEXITY-Annual 0/0/0
flagged_support_reads_blindness 1 tests/test_track_b_insured_status_fix_round_23.py::test_only_a_middle_completion_fits_a_flag[0-InsuredTest.ALL-InsuredUnsupportedReason.ASSIGNMENT_COMPLEXITY-No 0/0/0
keeps_always_nonblind 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_prior_basis_split_widens_the_qualifying_quarters 0/0/0
keeps_every_filling 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_prior_basis_split_widens_the_qualifying_quarters 0/0/0
keeps_flag_reads_blindness 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_period_begun_in_the_age_31_quarter_rests_on_paragraph_d 0/0/0
keeps_ignores_basis 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_prior_basis_split_widens_the_qualifying_quarters 0/0/0
keeps_ignores_the_flag 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_flagged_prior_needs_paragraph_c_without_paragraph_b 0/0/0
listed_search_ignores_priors 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_prior_basis_split_widens_the_qualifying_quarters 0/0/0
listed_search_skips_the_date 1 tests/test_track_b_insured_status_fix_round_23.py::test_periods_still_may_not_share_a_day 0/0/0
low12 1 tests/test_track_b_insured_status_fix_round_23.py::test_declared_dates_past_the_statutory_end_are_input_errors 0/0/0
low12_prior 1 tests/test_track_b_insured_status_fix_round_23.py::test_declared_dates_past_the_statutory_end_are_input_errors 0/0/0
low16_dib 1 tests/test_track_b_insured_status_fix_round_23.py::test_entitlement_months_must_be_possible[dib_entitlement_month-month1-at 0/0/0
low16_rib 1 tests/test_track_b_insured_status_fix_round_23.py::test_entitlement_months_must_be_possible[rib_entitlement_month-month4-before 0/0/0
low19 1 tests/test_track_b_insured_status_fix_round_23.py::test_the_pre_1983_refusal_needs_31_before_may_1983 0/0/0
low21 1 tests/test_track_b_insured_status_fix_round_23.py::test_an_unsupported_prior_refuses_before_unknown_earnings[None] 0/0/0
low23 1 tests/test_track_b_insured_status_fix_round_23.py::test_the_requirement_helper_checks_what_insured_status_checks 0/0/0
low24 1 tests/test_track_b_insured_status_fix_round_23.py::test_wages_paid_after_death_count_toward_the_year 0/0/0
m13_birth 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_birth_year_credits_quarters_before_the_birth 0/0/0
m1_flag 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_period_begun_on_paragraph_c_alone_opens_paragraph_d_after_it 0/0/0
m1_open_basis 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_placement_or_year_that_decides_the_basis_refuses 0/0/0
m1_settle 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_placement_or_year_that_decides_the_basis_refuses 0/0/0
m2_current 1 tests/test_track_b_insured_status_fix_round_23.py::test_rs00301_140_example_7_begins_on_the_onset_day 0/0/0
m2_listed 1 tests/test_track_b_insured_status_fix_round_23.py::test_rs00301_140_example_7_begins_on_the_onset_day 0/0/0
m3_exit 1 tests/test_track_b_insured_status_fix_round_23.py::test_an_open_flag_keeps_paragraph_b_where_every_placement_meets_it 0/0/0
m4_living 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_death_after_the_query_keeps_the_living_count 0/0/0
m4_rank 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_binding_prior_keeps_the_earliest_qualifying_quarter 0/0/0
m5_earliest 1 tests/test_track_b_insured_status_fix_round_23.py::test_unknown_priors_reach_the_onset_quarter 0/0/0
m6_men 1 tests/test_track_b_insured_status_fix_round_23.py::test_the_404_115_table_gives_each_cohort_its_count 0/0/0
m7_flagfits 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_flagged_prior_needs_paragraph_c_without_paragraph_b 0/0/0
m8_age31 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_period_begun_in_the_age_31_quarter_rests_on_paragraph_d 0/0/0
nit25 1 tests/test_track_b_insured_status_fix_round_23.py::test_quarterly_bounds_name_themselves[1960-declared0-QCs 0/0/0
nit29 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_split_start_names_the_listed_prior 0/0/0
no_earliest_widening 1 tests/test_track_b_insured_status_fix_round_23.py::test_unknown_priors_reach_the_onset_quarter 0/0/0
no_listed_prior_check 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_prior_basis_split_widens_the_qualifying_quarters 0/0/0
no_prior_years 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_prior_basis_split_widens_the_qualifying_quarters 0/0/0
no_support_stands 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_flagged_prior_needs_paragraph_c_without_paragraph_b 0/0/0
no_universal_proof 1 tests/test_track_b_insured_status_fix_round_19.py::test_a_prior_can_undercut_the_date[known_end] 0/0/0
open_flag_as_special 1 tests/test_track_b_insured_status_fix_round_23.py::test_an_open_flag_keeps_paragraph_b_where_every_placement_meets_it 0/0/0
ordinary_keeps_special_route 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_period_begun_on_paragraph_c_alone_opens_paragraph_d_after_it 0/0/0
pre1956_none 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_pre1956_listed_prior_rests_on_rs00301_480[later2-None-None] 0/0/0
pre1956_scan 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_pre1956_listed_prior_rests_on_rs00301_480[later1-InsuredUnsupportedReason.DISABILITY_BEFORE_1956-RS00301.480 0/0/0
precedence_possible 1 tests/test_track_b_insured_status_fix_round_23.py::test_an_unsupported_prior_refuses_before_unknown_earnings[0] 0/0/0
precedence_unknown 1 tests/test_track_b_insured_status_fix_round_23.py::test_an_unsupported_prior_refuses_before_unknown_earnings[None] 0/0/0
proof_keeps_listed_priors 1 tests/test_track_b_insured_status_fix_round_19.py::test_unknown_establishment_needs_the_disregard 0/0/0
proof_on_upper_credits 1 tests/test_track_b_insured_status_fix_round_19.py::test_a_prior_can_undercut_the_date[unknown_year] 0/0/0
proof_skips_open_period 1 tests/test_track_b_insured_status_fix_round_19.py::test_unknown_establishment_alone_refuses[InsuredTest.ALL] 0/0/0
proof_skips_statuses 1 tests/test_track_b_insured_status_fix_round_19.py::test_a_prior_can_undercut_the_status[first_day-InsuredTest.ALL] 0/0/0
proof_skips_the_date 1 tests/test_track_b_insured_status_fix_round_19.py::test_a_prior_can_undercut_the_date[known_end] 0/0/0
proof_skips_unknown_priors 1 tests/test_track_b_insured_status_fix_round_19.py::test_a_prior_can_undercut_the_date[known_end] 0/0/0
remove_first_start_check 1 tests/test_track_b_insured_status_status_stress.py::test_status_stress_refuses_a_start_no_filling_supports[109307] 0/0/0
route_drops_flagged_paragraph_c 1 tests/test_track_b_insured_status_fix_round_23.py::test_an_ended_current_period_counts_as_the_prior_it_becomes 0/0/0
route_flagged_reads_blindness 1 tests/test_track_b_insured_status_fix_round_23.py::test_an_ended_current_period_counts_as_the_prior_it_becomes 0/0/0
route_reads_paragraph_c 1 tests/test_track_b_insured_status_fix_round_23.py::test_an_open_flag_keeps_paragraph_b_where_every_placement_meets_it 0/0/0
route_unflagged_reads_no_blindness 1 tests/test_track_b_insured_status_fix_round_23.py::test_an_open_flag_keeps_paragraph_b_where_every_placement_meets_it 0/0/0
settle_accepts_open_flag 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_placement_or_year_that_decides_the_basis_refuses 0/0/0
some_drops_earlier_periods 1 tests/test_track_b_insured_status_fix_round_23.py::test_periods_still_may_not_share_a_day 0/0/0
some_on_lower_credits 1 tests/test_track_b_insured_status_fix_round_21.py::test_an_unknown_year_can_support_a_prior 0/0/0
start_fixed_ignores_priors 1 tests/test_track_b_insured_status_fix_round_22.py::test_a_current_period_after_that_prior_refuses 0/0/0
start_on_favorable_placement 1 tests/test_track_b_insured_status_fix_round_19.py::test_a_status_on_every_placement_computes 0/0/0
start_search_ignores_priors 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_split_start_names_the_listed_prior 0/0/0
start_search_skips_prior_years 1 tests/test_track_b_insured_status_fix_round_19.py::test_a_prior_reaches_a_year_the_start_cannot 0/0/0
status_tested_at_query 1 tests/test_track_b_insured_status_fix_round_19.py::test_a_status_stands_at_the_quarter_it_reports 0/0/0
unflagged_drops_paragraph_d 1 tests/test_track_b_insured_status_fix_round_22.py::test_a_prior_past_31_after_a_flagged_one_can_rest_on_paragraph_d 0/0/0
unflagged_reads_paragraph_c 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_prior_basis_split_widens_the_qualifying_quarters 0/0/0
unflagged_refuses_every_placement 1 tests/test_track_b_insured_status_fix_round_23.py::test_an_open_flag_keeps_paragraph_b_where_every_placement_meets_it 0/0/0
unknown_year_searches 1 tests/test_track_b_insured_status_fix_round_22.py::test_an_unknown_year_refuses 0/0/0
worst_always_early 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_prior_basis_split_widens_the_qualifying_quarters 0/0/0
worst_always_late 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_placement_or_year_that_decides_the_basis_refuses 0/0/0
young_takes_subsequent_route 1 tests/test_track_b_insured_status_fix_round_22.py::test_a_young_prior_after_a_flagged_one_rests_on_paragraph_b 0/0/0
  1. Totals: 107 of 107 exited 1. None survived (no exit 0) and none had another exit code. Every open-audit count was 0.

  2. Gate: env POPULACE_DYNAMICS_PSID_DIR=/nonexistent/trackb-round23 POPULACE_DYNAMICS_EPUF_DIR=/nonexistent/trackb-round23 OMP_NUM_THREADS=1 OMP_WAIT_POLICY=PASSIVE POLARS_MAX_THREADS=1 PYTHONDONTWRITEBYTECODE=1 PYTHONPATH=$PWD/src:$PWD HYPOTHESIS_STORAGE_DIRECTORY=scratch/review/hyp-gate $PY -m pytest -n 4 -q -p no:cacheprovider tests/test_track_b_*.py. Exit 1.

    • Last summary line: 1 failed, 16955 passed, 20 skipped in 1136.08s (0:18:56)
    • Failing node: tests/test_track_b_b0_1_review_root.py::test_every_engine_match_of_a_spelled_denied_name_is_flagged[bun], with tests/test_track_b_b0_1_review_root.py:1715: AssertionError: ['docs/**/deni{e..e}d{{.m}}d'] (assert ['docs/**/deni{e..e}d{{.m}}d'] == []). I did not rerun or diagnose it.
  3. Oracle mutations. oracle_mutants.py printed upward_first 52579cd563910f2116feaddfe9e7e8707b7922f5090179f8e0594293616d30cf and skip_query ff97134151d386052d2f0d5053957fa086ad77518d982e44fad6edb48fcd210b, both as expected.

    • upward_first: exit 1, FAILED scratch/review/test_stress_oracle_upward_first.py::test_status_stress_last_insured_matches_a_full_scan, then 1 failed, 51 deselected in 2.69s / OPEN_AUDIT {"os.system": 0, "restricted_opens": 0, "subprocess.Popen": 0}
    • skip_query: exit 1, FAILED scratch/review/test_stress_oracle_skip_query.py::test_status_stress_last_insured_matches_a_full_scan, then 1 failed, 51 deselected in 2.73s / OPEN_AUDIT {"os.system": 0, "restricted_opens": 0, "subprocess.Popen": 0}
    • head: exit 0, then 1 passed, 51 deselected in 3.02s / OPEN_AUDIT {"os.system": 0, "restricted_opens": 0, "subprocess.Popen": 0}
  4. Earlier source (7b5b126a8e946e3c91e3024de18d17cd1c5c279d, git -C ../w7b rev-parse HEAD matched):

    • SOURCE /home/user/w7b/src/populace_dynamics/track_b/insured_status.py
    • Exit 1
    • OPEN_AUDIT {"os.system": 0, "restricted_opens": 0, "subprocess.Popen": 0}
    • Last summary line: 47 failed, 75 passed in 695.25s (0:11:35)
    • FAILED nodes:
  • FAILED tests/test_track_b_insured_status_fix_round_23.py::test_a_period_begun_on_paragraph_c_alone_opens_paragraph_d_after_it
  • FAILED tests/test_track_b_insured_status_fix_round_23.py::test_the_flag_reaches_a_frozen_exit_and_a_later_record
  • FAILED tests/test_track_b_insured_status_fix_round_23.py::test_an_unknown_end_spans_the_flagged_period_lengths
  • FAILED tests/test_track_b_insured_status_fix_round_23.py::test_one_more_qc_can_bring_the_dli_earlier_intended
  • FAILED tests/test_track_b_insured_status_fix_round_23.py::test_a_placement_or_year_that_decides_the_basis_refuses
  • FAILED tests/test_track_b_insured_status_fix_round_23.py::test_an_ended_current_period_counts_as_the_prior_it_becomes
  • FAILED tests/test_track_b_insured_status_fix_round_23.py::test_an_open_flag_keeps_paragraph_b_where_every_placement_meets_it
  • FAILED tests/test_track_b_insured_status_fix_round_23.py::test_rs00301_140_example_7_begins_on_the_onset_day
  • FAILED tests/test_track_b_insured_status_fix_round_23.py::test_any_onset_after_the_prior_day_keeps_its_own_start
  • FAILED tests/test_track_b_insured_status_fix_round_23.py::test_periods_still_may_not_share_a_day
  • FAILED tests/test_track_b_insured_status_fix_round_23.py::test_an_exit_year_credits_any_begun_quarter
  • FAILED tests/test_track_b_insured_status_fix_round_23.py::test_forty_qcs_need_no_later_quarter
  • FAILED tests/test_track_b_insured_status_fix_round_23.py::test_an_unknown_exit_year_refuses_whatever_its_exit_month
  • FAILED tests/test_track_b_insured_status_fix_round_23.py::test_an_established_period_keeps_its_row_after_a_february_exit
  • FAILED tests/test_track_b_insured_status_fix_round_23.py::test_the_exit_month_moves_nothing_in_its_year
  • FAILED tests/test_track_b_insured_status_fix_round_23.py::test_a_birth_year_credits_quarters_before_the_birth
  • FAILED tests/test_track_b_insured_status_fix_round_23.py::test_a_binding_prior_keeps_the_earliest_qualifying_quarter
  • FAILED tests/test_track_b_insured_status_fix_round_23.py::test_a_prior_basis_split_widens_the_qualifying_quarters
  • FAILED tests/test_track_b_insured_status_fix_round_23.py::test_a_prior_basis_split_widens_the_count
  • FAILED tests/test_track_b_insured_status_fix_round_23.py::test_a_split_start_names_the_listed_prior
  • FAILED tests/test_track_b_insured_status_fix_round_23.py::test_unknown_priors_reach_the_onset_quarter
  • FAILED tests/test_track_b_insured_status_fix_round_23.py::test_unknown_priors_may_end_before_a_later_onset_in_its_quarter
  • FAILED tests/test_track_b_insured_status_fix_round_23.py::test_the_404_115_table_gives_each_cohort_its_count
  • FAILED tests/test_track_b_insured_status_fix_round_23.py::test_a_man_who_reached_62_before_1973_counts_to_65
  • FAILED tests/test_track_b_insured_status_fix_round_23.py::test_a_death_after_the_query_keeps_the_living_count
  • FAILED tests/test_track_b_insured_status_fix_round_23.py::test_a_flagged_prior_needs_paragraph_c_without_paragraph_b
  • FAILED tests/test_track_b_insured_status_fix_round_23.py::test_an_unsupported_prior_refuses_before_unknown_earnings[None]
  • FAILED tests/test_track_b_insured_status_fix_round_23.py::test_an_unsupported_prior_refuses_before_unknown_earnings[0]
  • FAILED tests/test_track_b_insured_status_fix_round_23.py::test_an_unsupported_prior_refuses_before_unknown_earnings[4]
  • FAILED tests/test_track_b_insured_status_fix_round_23.py::test_past_blindness_begins_a_prior_only_from_1973[start0-False]
  • FAILED tests/test_track_b_insured_status_fix_round_23.py::test_a_1965_prior_cannot_rest_on_past_blindness[InsuredTest.FULLY]
  • FAILED tests/test_track_b_insured_status_fix_round_23.py::test_a_1965_prior_cannot_rest_on_past_blindness[InsuredTest.ALL]
  • FAILED tests/test_track_b_insured_status_fix_round_23.py::test_a_pre1956_listed_prior_rests_on_rs00301_480[later0-InsuredUnsupportedReason.ASSIGNMENT_COMPLEXITY-No annual placement supports a listed prior's first insured quarter]
  • FAILED tests/test_track_b_insured_status_fix_round_23.py::test_a_pre1956_listed_prior_rests_on_rs00301_480[later1-InsuredUnsupportedReason.DISABILITY_BEFORE_1956-RS00301.480 may have begun a listed prior before 1956]
  • FAILED tests/test_track_b_insured_status_fix_round_23.py::test_a_listed_alternate_prior_lets_a_later_period_begin
  • FAILED tests/test_track_b_insured_status_fix_round_23.py::test_declared_dates_past_the_statutory_end_are_input_errors
  • FAILED tests/test_track_b_insured_status_fix_round_23.py::test_entitlement_months_must_be_possible[dib_entitlement_month-month1-at or after FRA]
  • FAILED tests/test_track_b_insured_status_fix_round_23.py::test_entitlement_months_must_be_possible[dib_entitlement_month-month2-at or after FRA]
  • FAILED tests/test_track_b_insured_status_fix_round_23.py::test_entitlement_months_must_be_possible[rib_entitlement_month-month4-before age 62]
  • FAILED tests/test_track_b_insured_status_fix_round_23.py::test_entitlement_months_must_be_possible[rib_entitlement_month-month5-before age 62]
  • FAILED tests/test_track_b_insured_status_fix_round_23.py::test_the_pre_1983_refusal_needs_31_before_may_1983
  • FAILED tests/test_track_b_insured_status_fix_round_23.py::test_the_requirement_helper_checks_what_insured_status_checks
  • FAILED tests/test_track_b_insured_status_fix_round_23.py::test_wages_paid_after_death_count_toward_the_year
  • FAILED tests/test_track_b_insured_status_fix_round_23.py::test_quarterly_bounds_name_themselves[1960-declared0-QCs declared before birth]
  • FAILED tests/test_track_b_insured_status_status_stress.py::test_status_stress_matches_the_favorable_filling
  • FAILED tests/test_track_b_insured_status_status_stress.py::test_status_stress_with_an_entitlement_month
  • FAILED tests/test_track_b_insured_status_status_stress.py::test_status_stress_under_31
  1. git status --porcelain printed nothing in ../w562 after the gate, after the oracle runs and after the earlier-source run. It also printed nothing in ../w7b.

  2. Merged results:

round23-mutations.json (gzip, base64)

SHA-256 of the uncompressed file: 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
  1. Judgment calls:
  • I ran the four shards one per core (nproc = 4), as the brief's loop does.
  • The earlier-source run hit my tool's 600 s foreground limit, and the tool moved it to the background automatically. It was the same single command, which ran once to completion. I started nothing else in the background besides the shards and the gate.
  • On the gate failure: bun is installed in this container at /root/.bun/bin/bun. I'm noting that only as an environment fact and made no diagnosis.
  • I also checked the branch head a second time, with git ls-remote, just before posting.

Generated by Claude Code

@MaxGhenis

Copy link
Copy Markdown
Contributor Author

Ready for hub review

Cloud run of the round 23 mutation list and the Track B gate at fc689ecbd4474e505e9b62070039b6de4820b6e7. Before the runs started (the shards launched at 19:21:40Z), #562's head on GitHub (trackb-insured-status-20261023) was fc689ecbd4474e505e9b62070039b6de4820b6e7, the SHA this brief gives. git fetch set FETCH_HEAD to it, and the PR API's head.sha matched. I checked again at 23:53Z, before posting, and the head had moved to f32d881207db59acb3ec13818f70ea63d258174b (the PR was updated at 23:32:39Z). As the brief says, every run below used fc689ecbd4474e505e9b62070039b6de4820b6e7 (git -C ../w562 rev-parse HEAD printed it). Nothing ran at f32d8812.

Environment. nproc: 4. Python 3.13.18 (CPython). Python 3.14 is not installed on this machine, so I used the newest installed 3.10–3.14 interpreter, as the brief says. pytest 9.1.1, Hypothesis 6.168.3, numpy 2.5.1, pandas 3.0.3, scipy 1.18.0 and scikit-learn 1.9.0, plus pyyaml 6.0.3, openpyxl 3.1.5 and pytest-xdist 3.8.0. The venv is /tmp/tbvenv, built with uv 0.11.32. The repository package was not installed; PYTHONPATH carried each worktree's src/.

Hashes. Every hash matched. All 42 files in the brief's table matched at fc689ecb (sha256sum -c: 42 OK). Both scripts matched: run_round23_named.py aa5adab2f280c12a1277341647c4e0c41c499c8cec357b973afe28e219fbbc0e and round23_mutate.py eea59b13ffaf4f806359e9d302eaf4a296ca62262a5ac595d520df17ba761ce1. At 7b5b126a, insured_status.py printed 875b3a73c3cfa76340a514ab5681b79379f7f2b23698a7cbd0e62f0b6d362880 and _insured_status_qc.py printed a34ad42f147fc92130db97c30b7bba00cc563823910a2b12b3f5bc4ca5519071, as the brief expects. Every mutation record's source_sha256 is efe8608c9c388e8bd011c8e3be57e8c3c4f462520a37f9bf9fa697161245afab.

Mutations (107, in the brief's list order; First failing test is each record's failing_test_nodes[0])

# Mutation Exit First failing test Open audit (restricted / Popen / os.system)
1 worst_always_early 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_prior_basis_split_widens_the_qualifying_quarters 0 / 0 / 0
2 worst_always_late 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_placement_or_year_that_decides_the_basis_refuses 0 / 0 / 0
3 start_on_favorable_placement 1 tests/test_track_b_insured_status_fix_round_19.py::test_a_status_on_every_placement_computes 0 / 0 / 0
4 no_universal_proof 1 tests/test_track_b_insured_status_fix_round_19.py::test_a_prior_can_undercut_the_date[known_end] 0 / 0 / 0
5 proof_skips_open_period 1 tests/test_track_b_insured_status_fix_round_19.py::test_unknown_establishment_alone_refuses[InsuredTest.ALL] 0 / 0 / 0
6 proof_skips_unknown_priors 1 tests/test_track_b_insured_status_fix_round_19.py::test_a_prior_can_undercut_the_date[known_end] 0 / 0 / 0
7 proof_on_upper_credits 1 tests/test_track_b_insured_status_fix_round_19.py::test_a_prior_can_undercut_the_date[unknown_year] 0 / 0 / 0
8 proof_skips_statuses 1 tests/test_track_b_insured_status_fix_round_19.py::test_a_prior_can_undercut_the_status[first_day-InsuredTest.ALL] 0 / 0 / 0
9 proof_skips_the_date 1 tests/test_track_b_insured_status_fix_round_19.py::test_a_prior_can_undercut_the_date[known_end] 0 / 0 / 0
10 status_tested_at_query 1 tests/test_track_b_insured_status_fix_round_19.py::test_a_status_stands_at_the_quarter_it_reports 0 / 0 / 0
11 date_tested_at_query 1 tests/test_track_b_insured_status_fix_round_2.py::test_unknown_period_status_and_dli_bounds_contain_concrete_fillings 0 / 0 / 0
12 proof_keeps_listed_priors 1 tests/test_track_b_insured_status_fix_round_19.py::test_unknown_establishment_needs_the_disregard 0 / 0 / 0
13 no_listed_prior_check 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_prior_basis_split_widens_the_qualifying_quarters 0 / 0 / 0
14 binding_reaches_open_period 1 tests/test_track_b_insured_status_fix_round_20.py::test_an_unknown_year_leaves_a_proven_result_to_the_proof 0 / 0 / 0
15 unknown_year_searches 1 tests/test_track_b_insured_status_fix_round_22.py::test_an_unknown_year_refuses 0 / 0 / 0
16 keeps_every_filling 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_prior_basis_split_widens_the_qualifying_quarters 0 / 0 / 0
17 keeps_ignores_the_flag 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_flagged_prior_needs_paragraph_c_without_paragraph_b 0 / 0 / 0
18 start_search_ignores_priors 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_split_start_names_the_listed_prior 0 / 0 / 0
19 listed_search_ignores_priors 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_prior_basis_split_widens_the_qualifying_quarters 0 / 0 / 0
20 no_prior_years 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_prior_basis_split_widens_the_qualifying_quarters 0 / 0 / 0
21 start_search_skips_prior_years 1 tests/test_track_b_insured_status_fix_round_19.py::test_a_prior_reaches_a_year_the_start_cannot 0 / 0 / 0
22 first_search_drops_binding 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_split_start_names_the_listed_prior 0 / 0 / 0
23 date_search_drops_binding 1 tests/test_track_b_insured_status_fix_round_19.py::test_a_listed_prior_holds_every_ending_to_the_date 0 / 0 / 0
24 disability_left_out_of_search 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_prior_basis_split_widens_the_qualifying_quarters 0 / 0 / 0
25 disability_reads_the_completion 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_period_begun_in_the_age_31_quarter_rests_on_paragraph_d 0 / 0 / 0
26 listed_search_skips_the_date 1 tests/test_track_b_insured_status_fix_round_23.py::test_periods_still_may_not_share_a_day 0 / 0 / 0
27 unflagged_refuses_every_placement 1 tests/test_track_b_insured_status_fix_round_23.py::test_an_open_flag_keeps_paragraph_b_where_every_placement_meets_it 0 / 0 / 0
28 flagged_ignores_support 1 tests/test_track_b_insured_status_fix_round_23.py::test_only_a_middle_completion_fits_a_flag[0-InsuredTest.ALL-InsuredUnsupportedReason.ASSIGNMENT_COMPLEXITY-No 0 / 0 / 0
29 flagged_ignores_ordinary_rule 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_flag_every_completion_contradicts_refuses_by_that_name[6] 0 / 0 / 0
30 flagged_refuses_every_placement 1 tests/test_track_b_insured_status_fix_round_20.py::test_an_unknown_year_leaves_a_special_prior_every_placement_carries 0 / 0 / 0
31 every_flagged_reads_blindness 1 tests/test_track_b_insured_status_fix_round_23.py::test_an_ended_current_period_counts_as_the_prior_it_becomes 0 / 0 / 0
32 every_unflagged_reads_no_blindness 1 tests/test_track_b_insured_status_fix_round_23.py::test_an_open_flag_keeps_paragraph_b_where_every_placement_meets_it 0 / 0 / 0
33 route_flagged_reads_blindness 1 tests/test_track_b_insured_status_fix_round_23.py::test_an_ended_current_period_counts_as_the_prior_it_becomes 0 / 0 / 0
34 route_unflagged_reads_no_blindness 1 tests/test_track_b_insured_status_fix_round_23.py::test_an_open_flag_keeps_paragraph_b_where_every_placement_meets_it 0 / 0 / 0
35 every_reads_listed_periods 1 tests/test_track_b_insured_status_fix_round_20.py::test_a_later_prior_on_an_earlier_endpoint_binds 0 / 0 / 0
36 some_drops_earlier_periods 1 tests/test_track_b_insured_status_fix_round_23.py::test_periods_still_may_not_share_a_day 0 / 0 / 0
37 every_on_upper_credits 1 tests/test_track_b_insured_status_fix_round_21.py::test_an_unknown_year_can_support_a_prior 0 / 0 / 0
38 some_on_lower_credits 1 tests/test_track_b_insured_status_fix_round_21.py::test_an_unknown_year_can_support_a_prior 0 / 0 / 0
39 ordinary_keeps_special_route 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_period_begun_on_paragraph_c_alone_opens_paragraph_d_after_it 0 / 0 / 0
40 fix_reverted 1 tests/test_track_b_insured_status_fix_round_20.py::test_partial_years_after_the_start_stay_open 0 / 0 / 0
41 basis_always_blind 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_prior_basis_split_widens_the_qualifying_quarters 0 / 0 / 0
42 basis_always_nonblind 1 tests/test_track_b_insured_status_fix_round_23.py::test_an_open_flag_keeps_paragraph_b_where_every_placement_meets_it 0 / 0 / 0
43 binds_ignores_basis 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_prior_basis_split_widens_the_qualifying_quarters 0 / 0 / 0
44 binds_always_nonblind 1 tests/test_track_b_insured_status_fix_round_23.py::test_an_open_flag_keeps_paragraph_b_where_every_placement_meets_it 0 / 0 / 0
45 keeps_ignores_basis 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_prior_basis_split_widens_the_qualifying_quarters 0 / 0 / 0
46 keeps_always_nonblind 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_prior_basis_split_widens_the_qualifying_quarters 0 / 0 / 0
47 no_support_stands 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_flagged_prior_needs_paragraph_c_without_paragraph_b 0 / 0 / 0
48 flagged_support_reads_blindness 1 tests/test_track_b_insured_status_fix_round_23.py::test_only_a_middle_completion_fits_a_flag[0-InsuredTest.ALL-InsuredUnsupportedReason.ASSIGNMENT_COMPLEXITY-No 0 / 0 / 0
49 flagged_ordinary_reads_blindness 1 tests/test_track_b_insured_status_fix_round_23.py::test_an_ended_current_period_counts_as_the_prior_it_becomes 0 / 0 / 0
50 flagged_support_on_lower_credits 1 tests/test_track_b_insured_status_fix_round_23.py::test_only_a_middle_completion_fits_a_flag[None-InsuredTest.FULLY-InsuredUnsupportedReason.ASSIGNMENT_COMPLEXITY-Annual 0 / 0 / 0
51 flagged_ordinary_on_upper_credits 1 tests/test_track_b_insured_status_fix_round_23.py::test_only_a_middle_completion_fits_a_flag[None-InsuredTest.FULLY-InsuredUnsupportedReason.ASSIGNMENT_COMPLEXITY-Annual 0 / 0 / 0
52 basis_skipped_on_open_period 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_flagged_prior_needs_paragraph_c_without_paragraph_b 0 / 0 / 0
53 binding_pair_drops_basis 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_prior_basis_split_widens_the_qualifying_quarters 0 / 0 / 0
54 basis_only_on_disability 1 tests/test_track_b_insured_status_fix_round_23.py::test_only_a_middle_completion_fits_a_flag[None-InsuredTest.FULLY-InsuredUnsupportedReason.ASSIGNMENT_COMPLEXITY-Annual 0 / 0 / 0
55 binds_flag_reads_blindness 1 tests/test_track_b_insured_status_fix_round_20.py::test_an_unknown_year_leaves_a_special_prior_every_placement_carries 0 / 0 / 0
56 binds_flag_on_lower_credits 1 tests/test_track_b_insured_status_fix_round_21.py::test_an_unknown_year_can_carry_a_flagged_prior_past_the_ordinary_rule 0 / 0 / 0
57 keeps_flag_reads_blindness 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_period_begun_in_the_age_31_quarter_rests_on_paragraph_d 0 / 0 / 0
58 remove_first_start_check 1 tests/test_track_b_insured_status_status_stress.py::test_status_stress_refuses_a_start_no_filling_supports[109307] 0 / 0 / 0
59 drop_bound_refusal 1 tests/test_track_b_insured_status_status_stress.py::test_status_stress_refuses_a_start_no_filling_supports[109307] 0 / 0 / 0
60 drop_dli_comparison 1 tests/test_track_b_insured_status_fix_round_22.py::test_a_frozen_exit_refuses 0 / 0 / 0
61 start_fixed_ignores_priors 1 tests/test_track_b_insured_status_fix_round_22.py::test_a_current_period_after_that_prior_refuses 0 / 0 / 0
62 bound_stops_at_reported_start 1 tests/test_track_b_insured_status_status_stress.py::test_status_stress_refuses_a_start_no_filling_supports[109307] 0 / 0 / 0
63 unflagged_reads_paragraph_c 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_prior_basis_split_widens_the_qualifying_quarters 0 / 0 / 0
64 young_takes_subsequent_route 1 tests/test_track_b_insured_status_fix_round_22.py::test_a_young_prior_after_a_flagged_one_rests_on_paragraph_b 0 / 0 / 0
65 unflagged_drops_paragraph_d 1 tests/test_track_b_insured_status_fix_round_22.py::test_a_prior_past_31_after_a_flagged_one_can_rest_on_paragraph_d 0 / 0 / 0
66 route_reads_paragraph_c 1 tests/test_track_b_insured_status_fix_round_23.py::test_an_open_flag_keeps_paragraph_b_where_every_placement_meets_it 0 / 0 / 0
67 every_reads_paragraph_c 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_prior_basis_split_widens_the_qualifying_quarters 0 / 0 / 0
68 route_drops_flagged_paragraph_c 1 tests/test_track_b_insured_status_fix_round_23.py::test_an_ended_current_period_counts_as_the_prior_it_becomes 0 / 0 / 0
69 every_drops_flagged_paragraph_c 1 tests/test_track_b_insured_status_fix_round_21.py::test_an_unknown_year_can_carry_a_flagged_prior_past_the_ordinary_rule 0 / 0 / 0
70 current_drops_paragraph_c 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_period_begun_on_paragraph_c_alone_opens_paragraph_d_after_it 0 / 0 / 0
71 m1_flag 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_period_begun_on_paragraph_c_alone_opens_paragraph_d_after_it 0 / 0 / 0
72 m2_listed 1 tests/test_track_b_insured_status_fix_round_23.py::test_rs00301_140_example_7_begins_on_the_onset_day 0 / 0 / 0
73 m2_current 1 tests/test_track_b_insured_status_fix_round_23.py::test_rs00301_140_example_7_begins_on_the_onset_day 0 / 0 / 0
74 m3_exit 1 tests/test_track_b_insured_status_fix_round_23.py::test_an_open_flag_keeps_paragraph_b_where_every_placement_meets_it 0 / 0 / 0
75 m13_birth 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_birth_year_credits_quarters_before_the_birth 0 / 0 / 0
76 m4_rank 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_binding_prior_keeps_the_earliest_qualifying_quarter 0 / 0 / 0
77 m5_earliest 1 tests/test_track_b_insured_status_fix_round_23.py::test_unknown_priors_reach_the_onset_quarter 0 / 0 / 0
78 m6_men 1 tests/test_track_b_insured_status_fix_round_23.py::test_the_404_115_table_gives_each_cohort_its_count 0 / 0 / 0
79 m7_flagfits 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_flagged_prior_needs_paragraph_c_without_paragraph_b 0 / 0 / 0
80 precedence_possible 1 tests/test_track_b_insured_status_fix_round_23.py::test_an_unsupported_prior_refuses_before_unknown_earnings[0] 0 / 0 / 0
81 precedence_unknown 1 tests/test_track_b_insured_status_fix_round_23.py::test_an_unsupported_prior_refuses_before_unknown_earnings[None] 0 / 0 / 0
82 flag_middle 1 tests/test_track_b_insured_status_fix_round_23.py::test_only_a_middle_completion_fits_a_flag[None-InsuredTest.FULLY-InsuredUnsupportedReason.ASSIGNMENT_COMPLEXITY-Annual 0 / 0 / 0
83 pre1956_scan 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_pre1956_listed_prior_rests_on_rs00301_480[later1-InsuredUnsupportedReason.DISABILITY_BEFORE_1956-RS00301.480 0 / 0 / 0
84 pre1956_none 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_pre1956_listed_prior_rests_on_rs00301_480[later2-None-None] 0 / 0 / 0
85 nit29 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_split_start_names_the_listed_prior 0 / 0 / 0
86 low12 1 tests/test_track_b_insured_status_fix_round_23.py::test_declared_dates_past_the_statutory_end_are_input_errors 0 / 0 / 0
87 low16_dib 1 tests/test_track_b_insured_status_fix_round_23.py::test_entitlement_months_must_be_possible[dib_entitlement_month-month1-at 0 / 0 / 0
88 low16_rib 1 tests/test_track_b_insured_status_fix_round_23.py::test_entitlement_months_must_be_possible[rib_entitlement_month-month4-before 0 / 0 / 0
89 low19 1 tests/test_track_b_insured_status_fix_round_23.py::test_the_pre_1983_refusal_needs_31_before_may_1983 0 / 0 / 0
90 low23 1 tests/test_track_b_insured_status_fix_round_23.py::test_the_requirement_helper_checks_what_insured_status_checks 0 / 0 / 0
91 low24 1 tests/test_track_b_insured_status_fix_round_23.py::test_wages_paid_after_death_count_toward_the_year 0 / 0 / 0
92 nit25 1 tests/test_track_b_insured_status_fix_round_23.py::test_quarterly_bounds_name_themselves[1960-declared0-QCs 0 / 0 / 0
93 low21 1 tests/test_track_b_insured_status_fix_round_23.py::test_an_unsupported_prior_refuses_before_unknown_earnings[None] 0 / 0 / 0
94 m1_settle 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_placement_or_year_that_decides_the_basis_refuses 0 / 0 / 0
95 m1_open_basis 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_placement_or_year_that_decides_the_basis_refuses 0 / 0 / 0
96 first_onset_short 1 tests/test_track_b_insured_status_fix_round_23.py::test_each_published_first_onset_reproduces[rs140-joseph-6] 0 / 0 / 0
97 first_onset_odd 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_period_begun_on_paragraph_c_alone_opens_paragraph_d_after_it 0 / 0 / 0
98 basis_split_unreported 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_prior_basis_split_widens_the_qualifying_quarters 0 / 0 / 0
99 basis_split_always 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_binding_prior_keeps_the_earliest_qualifying_quarter 0 / 0 / 0
100 m4_living 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_death_after_the_query_keeps_the_living_count 0 / 0 / 0
101 m8_age31 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_period_begun_in_the_age_31_quarter_rests_on_paragraph_d 0 / 0 / 0
102 low12_prior 1 tests/test_track_b_insured_status_fix_round_23.py::test_declared_dates_past_the_statutory_end_are_input_errors 0 / 0 / 0
103 open_flag_as_special 1 tests/test_track_b_insured_status_fix_round_23.py::test_an_open_flag_keeps_paragraph_b_where_every_placement_meets_it 0 / 0 / 0
104 settle_accepts_open_flag 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_placement_or_year_that_decides_the_basis_refuses 0 / 0 / 0
105 blind_basis_1972 1 tests/test_track_b_insured_status_fix_round_23.py::test_past_blindness_begins_a_prior_only_from_1973[start0-False] 0 / 0 / 0
106 no_earliest_widening 1 tests/test_track_b_insured_status_fix_round_23.py::test_unknown_priors_reach_the_onset_quarter 0 / 0 / 0
107 flag_fits_always 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_flagged_prior_needs_paragraph_c_without_paragraph_b 0 / 0 / 0

The table and the JSON give failing_test_nodes[0] as the script recorded it. For these 10 rows the script's ^FAILED (\S+) stopped at the first space in the parametrized ID. Here is each one's full FAILED node from its log:

  • 28 flagged_ignores_support: tests/test_track_b_insured_status_fix_round_23.py::test_only_a_middle_completion_fits_a_flag[0-InsuredTest.ALL-InsuredUnsupportedReason.ASSIGNMENT_COMPLEXITY-No annual placement supports a listed prior's first insured quarter]
  • 48 flagged_support_reads_blindness: tests/test_track_b_insured_status_fix_round_23.py::test_only_a_middle_completion_fits_a_flag[0-InsuredTest.ALL-InsuredUnsupportedReason.ASSIGNMENT_COMPLEXITY-No annual placement supports a listed prior's first insured quarter]
  • 50 flagged_support_on_lower_credits: tests/test_track_b_insured_status_fix_round_23.py::test_only_a_middle_completion_fits_a_flag[None-InsuredTest.FULLY-InsuredUnsupportedReason.ASSIGNMENT_COMPLEXITY-Annual placement decides a listed prior's first insured quarter]
  • 51 flagged_ordinary_on_upper_credits: tests/test_track_b_insured_status_fix_round_23.py::test_only_a_middle_completion_fits_a_flag[None-InsuredTest.FULLY-InsuredUnsupportedReason.ASSIGNMENT_COMPLEXITY-Annual placement decides a listed prior's first insured quarter]
  • 54 basis_only_on_disability: tests/test_track_b_insured_status_fix_round_23.py::test_only_a_middle_completion_fits_a_flag[None-InsuredTest.FULLY-InsuredUnsupportedReason.ASSIGNMENT_COMPLEXITY-Annual placement decides a listed prior's first insured quarter]
  • 82 flag_middle: tests/test_track_b_insured_status_fix_round_23.py::test_only_a_middle_completion_fits_a_flag[None-InsuredTest.FULLY-InsuredUnsupportedReason.ASSIGNMENT_COMPLEXITY-Annual placement decides a listed prior's first insured quarter]
  • 83 pre1956_scan: tests/test_track_b_insured_status_fix_round_23.py::test_a_pre1956_listed_prior_rests_on_rs00301_480[later1-InsuredUnsupportedReason.DISABILITY_BEFORE_1956-RS00301.480 may have begun a listed prior before 1956]
  • 87 low16_dib: tests/test_track_b_insured_status_fix_round_23.py::test_entitlement_months_must_be_possible[dib_entitlement_month-month1-at or after FRA]
  • 88 low16_rib: tests/test_track_b_insured_status_fix_round_23.py::test_entitlement_months_must_be_possible[rib_entitlement_month-month4-before age 62]
  • 92 nit25: tests/test_track_b_insured_status_fix_round_23.py::test_quarterly_bounds_name_themselves[1960-declared0-QCs declared before birth]

Totals

  • Exit 1 (a test caught the mutation): 107 of 107.
  • Exit 0 (survived): none.
  • Any other exit code: none.
  • Each of the 107 logs starts with a MUTATION line naming its mutation, names exactly one FAILED node, prints stopping after 1 failures and ends with an OPEN_AUDIT line. Every open-audit count is 0.

Gate. Run once at fc689ecb, after all four shards had finished, with nothing else running. It started at 22:09:22Z, using this command:

cd ../w562 && env POPULACE_DYNAMICS_PSID_DIR=/nonexistent/trackb-round23 POPULACE_DYNAMICS_EPUF_DIR=/nonexistent/trackb-round23 OMP_NUM_THREADS=1 OMP_WAIT_POLICY=PASSIVE POLARS_MAX_THREADS=1 PYTHONDONTWRITEBYTECODE=1 PYTHONPATH=$PWD/src:$PWD HYPOTHESIS_STORAGE_DIRECTORY=scratch/review/hyp-gate $PY -m pytest -n 4 -q -p no:cacheprovider tests/test_track_b_*.py > scratch/review/gate.log 2>&1

Here PY=/tmp/tbvenv/bin/python and PWD=/home/user/w562, and the command ran detached (judgment call 3). It exited 1. pytest's last summary line:

3 failed, 16952 passed, 20 skipped, 13 warnings in 3631.56s (1:00:31)

The failing test nodes, each with its one-line error from the FAILURES section of gate.log (the short summary printed the nodes without messages):

  • tests/test_track_b_input_schema.py::test_all_valid_public_argument_controls_still_compute: AssertionError: assert {'object'} == {'note'}, with Hypothesis Failing explicit example: test_all_valid_public_argument_controls_still_compute(pia=1) (tests/test_track_b_input_schema.py:1269)
  • tests/test_track_b_gross_benefits_fix_round_10_api.py::test_public_api_has_no_unclassified_name_field_or_argument: AssertionError: assert ('object',) == ('note',) (tests/test_track_b_gross_benefits_fix_round_10_api.py:339)
  • tests/test_track_b_b0_1_review_root.py::test_every_engine_match_of_a_spelled_denied_name_is_flagged[bun]: AssertionError: ['docs/**/deni{e..e}d{{.m}}d'], then assert ['docs/**/deni{e..e}d{{.m}}d'] == [] (tests/test_track_b_b0_1_review_root.py:1715)

None of the three is in an insured-status module. I did not rerun the gate or diagnose these failures. This run used Python 3.13.18, not 3.14 (see Environment).

Earlier source (7b5b126a): this session's time limit stopped the run before pytest finished, so it has no exit code, OPEN_AUDIT line, summary line or FAILED list.

  • SOURCE /home/user/w7b/src/populace_dynamics/track_b/insured_status.py, under ../w7b.
  • I ran the brief's command in the foreground, last and on its own, starting at 23:11:19Z. The session moved it to the background when its 10-minute foreground limit passed, and stopped it at the 30-minute background limit, about 23:51Z. No Python process was left afterwards.
  • Exit code: none, because the echo "exit $?" never ran. OPEN_AUDIT: not printed. pytest's last summary line: not printed. FAILED nodes: none printed. With --tb=no -rf, the node names come only in the end-of-run summary.
  • Progress: 91 results by 23:21:25Z, 10 minutes in, and 94 by 23:49:20Z, the log's last write. Of the 94, 47 are F and 47 are .. The first line of results ended at [ 59%] after 72.
  • I did not rerun it. The brief allows only the shards and the gate in the background, and says to stop on an unexpected failure. The command as the brief writes it can't run past 40 minutes in this session.

The exact command, as I ran it from the session's checkout (the two date -u +%T calls are mine):

cd /home/user/w562 && PY=/tmp/tbvenv/bin/python && OLDSRC=$(cd ../w7b && pwd)/src && date -u +%T && env POPULACE_DYNAMICS_PSID_DIR=/nonexistent/trackb-round23 POPULACE_DYNAMICS_EPUF_DIR=/nonexistent/trackb-round23 OMP_NUM_THREADS=1 OMP_WAIT_POLICY=PASSIVE POLARS_MAX_THREADS=1 PYTHONDONTWRITEBYTECODE=1 PYTHONPATH=$OLDSRC:$PWD HYPOTHESIS_STORAGE_DIRECTORY=scratch/review/hyp-old $PY scratch/review/run_round23_named.py -p no:xdist -p no:cacheprovider -q --tb=no -rf tests/test_track_b_insured_status_fix_round_23.py tests/test_track_b_insured_status_status_stress.py > scratch/review/old-stress.log 2>&1; echo "exit $?"; grep -E "^(OPEN_AUDIT|FAILED)" scratch/review/old-stress.log | cut -c1-160; tail -2 scratch/review/old-stress.log; date -u +%T

Its whole output. The [killed] marker is the session's:

23:11:19

[killed]

All of scratch/review/old-stress.log: two lines, the second without a final newline.

FFFFFF.F.FFFFFFFFFFFFFFFFFFF.........FFFF.FFFF.F.......F.FF.FFFFFF...... [ 59%]
................FFF...

git status --porcelain printed nothing each time: in ../w562 after the gate, and in ../w562 and ../w7b after the earlier-source run stopped. The session's own checkout was clean too.

round23-mutations.json (gzip, base64)

SHA-256 of the uncompressed file: 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

Judgment calls

  1. Python 3.13.18, not 3.14. Python 3.14 is not installed here. I didn't let uv fetch a managed 3.14 build (UV_PYTHON_DOWNLOADS=never, uv venv -p 3.13 /tmp/tbvenv), because I read "download nothing except Python packages" as ruling out an interpreter download. The package versions are the brief's exact pins.
  2. I launched the shards detached. I ran TRACKB_SHARD=$s/4 setsid nohup $PY scratch/review/round23_mutate.py > scratch/review/shard$s.out 2>&1 < /dev/null & for each shard, not nohup … & followed by wait. This session stops a background command after 2 hours, and the shards needed 2 h 47 min, from 19:21:40Z to 22:08:27Z. Shard 2 included date_tested_at_query, which ran 70 minutes before failing in fix_round_2. I waited by polling the shard PIDs. My first poller hit the 2-hour limit at about 21:27Z, and after that I used a monitor. The shard processes themselves ran uninterrupted. Then I ran the brief's cat scratch/review/shard*.out and the merge block exactly as given. The merge exited 0 and printed 107 records.
  3. I launched the gate detached. I ran the brief's exact env … $PY -m pytest -n 4 … command inside setsid nohup bash -c '…; echo "exit $?" > "$SP/gate_exit"', where $SP is my scratchpad. When it finished, I printed that exit line, tail -5 scratch/review/gate.log and git -C ../w562 status --porcelain.
  4. I ran the earlier-source command in the foreground, the way the brief writes it, because the brief allows only the shards and the gate in the background. The session stopped it as described above, and I did not rerun it.
  5. The gate's one-line errors are the E lines and the final file:line: AssertionError line of each failure in gate.log.
  6. The table follows the brief's mutation list: # is the position in M. The merge block's printout is alphabetical.
  7. Posting. I posted this with the GitHub MCP add_issue_comment tool, which uses the REST issue-comment endpoint, because gh in this session is limited to search.
  8. git ls-remote origin hung, so I stopped it. The head on GitHub came from the PR API and FETCH_HEAD.
  9. No branch or push. The session's default setup names a development branch to push to. Under the brief's run-only rule I made no branch, commit or push. This comment is my only GitHub write.

Generated by Claude Code

MaxGhenis and others added 2 commits November 3, 2026 19:12
…562 round 24)

On an established current period, the rule raises InvalidFamilyInput only
where every completion of its UNKNOWN years would. At fc689ec it raised one
on records that only some completions support, and dropped their rows (the
review's medium). _refuse_undecided_priors now checks each flagged listed
prior, and each from July 1952 through 1955, on every completion of the
years open by its start, and each other listed prior on lower credits. It
refuses with unknown_earnings_years_decide_status where a completion leaves
a prior unsupported. _refuse_boundary_completions refuses where some
completion could exceed 4,096 boundary assignments, since a middle count can
have more than either bound.

The new round 24 module adds 64 unit tests: worked records for each basis,
the guards' thresholds, a soundness property over every completion and a
differential property for the lower-credit shortcut. Each of round 24's 28
mutations fails a named test, and the note records the round. In the issue
draft, the encoding now refuses where some completion leaves a listed prior
unsupported. The examples file gives the second RS 00301.340 short-year note
back its dollar signs, and the tier README's total now sums its rows, where
f32d881 had left it at 33,178.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Cloud brief 6870 ran round 23's 107 mutations at f32d881 through every
insured status module (PR #562 comment 6618201683). All 107 failed a named
test, and every run's open audit counted no restricted open. The ledger takes
the records, the runner, the test hashes and the replay steps. The design note
gets one sentence for the run and two for the stress oracle, whose full-scan
test fails on both mutations of its scan.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MaxGhenis

Copy link
Copy Markdown
Contributor Author

The head moves from f32d8812 to d30e4426. Round 24's 0c39ea4b answers the cloud reviews of fc689ecb and f32d8812 (comments 6615437593 and 6616118566). Where some completion of the UNKNOWN years leaves a listed prior unsupported, the rule now refuses by the prior's name and keeps the row. At f32d8812 it raised InvalidFamilyInput on such a record and dropped its row. The rule also refuses where a completion between the bounds passes the 4,096 boundary assignment cap. d30e4426 adds brief 6870's round 23 mutation records to the ledger and changes no code.

I've queued two cloud briefs at d30e4426: a review (6932), and a run of 137 mutations from rounds 23 and 24 with the Track B gate (6931).

@MaxGhenis

Copy link
Copy Markdown
Contributor Author

Ready for hub review
Independent cloud review (Opus 5.5) of d30e442: APPROVE

No finding of medium or higher. All 46 required gate modules pass (7,461 tests), lint is clean, and every medium from Appendices A, C, D, E, F and G is rebuilt and resolved at this head.

Earlier findings

severity location resolved
medium A: insured_status.py:1845 (prior-start constraint under UNKNOWN priors yes
medium C: _prior_passes/_keeps_priors/_prior_start_binds yes
low C: _prior_start_binds (prior no placement supports) yes
medium D: _prior_basis nonblind basis (b)-or-(c) yes
low D: listed prior onset premise yes
medium E1: _complete_current_period special flag yes
medium E2: Person shared-quarter check (Jane, RS 00301.140 ex 7) yes
medium E3: _allowed_quarters mid-year exit yes
medium E4: _settle_fillings qualifying quarter yes
medium E5: UNKNOWN priors qualifying quarter yes
medium E6: _requirement pre-1913 men yes
medium E7: _prior_basis flagged branch yes
low E8: pre-1951 qc_quarters vs 213(c) aggregate yes
low E9: male age-65 cohort text yes
low E10: _witness FULLY treatment diagnostics no
low E11: DISABILITY scan past FRA yes
low E12: current end after FRA silently capped yes
low E13: birth-year cap on annual QCs yes
low E14: loose deferred conversion refusals no
low E15: declared DIB/RIB month replaces query event yes
low E16: impossible entitlement months accepted yes
low E17: registry values unread yes
low E18: Joseph/Frank erratum labels yes
low E19: pre-May-1983 refusal yes
low E20: note cites scratch files / PR body stale yes
low E21: past-blindness basis before 1973 yes
low E22 / G low: long-period third parse no
low E23: helper skips validation yes
low E24: post-death quarterly wages yes
nit E25-E29: bound names, fiscal gap, citations, wording, PR body invarian yes
medium F1: round 23 note test opened barred tests/ yes
low F2: listed prior end past FRA capped yes
low F3: M4/M8 unpinned branches yes
nit F4: RS 00301.340 garbled amounts yes
nit F5: 404.321(b) cited for FRA end yes
uncertain F uncertain (a): death-month count no
uncertain F uncertain (b): RIB in month of attaining 62 no
uncertain F uncertain (c): _settle_current_basis upper completions no
mutation F M1 (special is not False) yes
mutation F M9 (drop blindness in _current_period_special) no
mutation F M12 (first-start flag is True) no
medium G1: _refuse_unsupported_priors support on some completion yes
low G2: r6 mutation survived yes
low G3: third parse no
nit G4: PR body differentials bullet yes
nit H1: second RS 00301.340 note garbled yes
nit H2: PR body registry/cohort sentences yes
low H3: RIB month of attaining 62 no

My findings

  • low: insured_status.py:3419-3431: the frozen-exit ongoing-period refusal also covers test=DISABILITY, though the onset status is settled. It is documented and the row is kept.
{
 "verdict": "APPROVE",
 "head": "d30e44267cd25cbf804f8b4e9a07679f2c4a9939",
 "reviewer": "cloud Opus 5.5, independent review",
 "summary": "Reviewed the full diff (106 files) with focus on round 24 (_refuse_undecided_priors, _completions, _refuse_boundary_completions). All 46 required gate modules pass (7,461 tests); black and ruff are clean on the 50 changed Python files; no protected path is touched; all 48 insured-status captures match their manifest; QC amounts match POMS RS 00301.250 and OACT 2027. I rebuilt the counterexamples of every medium in Appendices A, C, D, E, F and G at this head; each now refuses by name with the row kept or returns the lawful value. Two independent oracles with no production helpers (no-period favorable placement: 1,150 records; one unflagged listed prior over both bases and every placement: 550 records) found 0 mismatches. Completion-consistency properties over 1,050 records found 0 violations, including 112 envelope input errors that held on every completion. Six worktree mutations all failed a test and were reverted with git checkout; F's M9 and M12 still survive but look equivalent. No finding of medium or higher. Open lows: the third parse of 404.130(d)(2) (awaiting Max), FULLY's larger-margin diagnostics, conservative deferred refusals, the uncaptured Act 202(a) month, and a documented DLI-horizon refusal that also covers test=DISABILITY. Python 3.14.6 via uv; packages as pinned; the repository package was not installed.",
 "sol_findings": [
  {
   "severity": "medium",
   "location": "A: insured_status.py:1845 (prior-start constraint under UNKNOWN priors)",
   "issue": "Establishing an earlier prior can force an annual QC, so the universal no-period witness gave wrong CURRENTLY and overstated DLI lower bounds.",
   "resolved": true,
   "evidence": "scratch/review/old.py: DLI record (known end, unknown end, frozen OP12 exit, UNKNOWN establishment, UNKNOWN 2004) -> REFUSED disability_boundary_assignments_unsupported 'Annual placement decides the lower date last insured across the unknown periods'; CURRENTLY record -> REFUSED 'Annual placement decides currently across the unknown periods'. Rows kept (weight 5/2)."
  },
  {
   "severity": "medium",
   "location": "C: _prior_passes/_keeps_priors/_prior_start_binds",
   "issue": "An unflagged listed prior held only to past-blindness constraints, so a TRUE status or DLI held only on the blind completion.",
   "resolved": true,
   "evidence": "scratch/review/old.py: born 1955-02-02, prior 1998-1999, 2008-01 DISABILITY and onset variant -> REFUSED 'Annual placement decides a listed prior's first insured quarter'. Independent oracle scratch/review/oracle_prior*.py (550 records, both bases, all placements): 0 mismatches."
  },
  {
   "severity": "low",
   "location": "C: _prior_start_binds (prior no placement supports)",
   "issue": "A prior no placement supports was treated as unconstrained.",
   "resolved": true,
   "evidence": "Round 23 refuses by name: G records 1989=0/1 -> REFUSED 'No annual placement supports a listed prior's first insured quarter'; oracle_prior REF in all 115 zero-basis records."
  },
  {
   "severity": "medium",
   "location": "D: _prior_basis nonblind basis (b)-or-(c)",
   "issue": "Unflagged prior's nonblind basis allowed (c) alone, masking the C defect before age 31.",
   "resolved": true,
   "evidence": "scratch/review/old.py: born 1968-02-02 DLI, onset and frozen exit -> all REFUSED 'Annual placement decides a listed prior's first insured quarter'."
  },
  {
   "severity": "low",
   "location": "D: listed prior onset premise",
   "issue": "Favorable earliest-quarter reading of a listed prior's start was undocumented.",
   "resolved": true,
   "evidence": "Appendix B one-filling row and the design note now state it (RS 00301.230)."
  },
  {
   "severity": "medium",
   "location": "E1: _complete_current_period special flag",
   "issue": "A current period begun on 404.130(c) alone lost 404.130(d) for later quarters, giving early DLI.",
   "resolved": true,
   "evidence": "scratch/review/old.py: born 1980-02-02 -> DLI [2012-12-31,2012-12-31]; frozen exit -> 2012-12-31 (lawful values)."
  },
  {
   "severity": "medium",
   "location": "E2: Person shared-quarter check (Jane, RS 00301.140 ex 7)",
   "issue": "Established current period beginning in the quarter a prior ended raised InvalidFamilyInput.",
   "resolved": true,
   "evidence": "scratch/review/old.py: Jane established -> supported row, start 1990-12-03, DISABILITY True."
  },
  {
   "severity": "medium",
   "location": "E3: _allowed_quarters mid-year exit",
   "issue": "Exit year's annual QCs were capped at quarters through the exit quarter.",
   "resolved": true,
   "evidence": "scratch/review/e3.py: (a) Feb exit FULLY True 6/6 (same as Dec exit); (b) True 40/39; (c) REFUSED unknown_earnings; (d) refusal with row kept (no InvalidFamilyInput)."
  },
  {
   "severity": "medium",
   "location": "E4: _settle_fillings qualifying quarter",
   "issue": "Listed-prior search reported a non-favorable qualifying quarter/count as exact.",
   "resolved": true,
   "evidence": "scratch/review/old.py: (a) qualifying 2007-01-01; (b) range 2008-04-01..2008-01-01; count 20..21."
  },
  {
   "severity": "medium",
   "location": "E5: UNKNOWN priors qualifying quarter",
   "issue": "UNKNOWN priors silently meant 'no prior' for qualifying quarter.",
   "resolved": true,
   "evidence": "scratch/review/old.py: qualifying 2007-04-01..2007-01-01, counts 0..46."
  },
  {
   "severity": "medium",
   "location": "E6: _requirement pre-1913 men",
   "issue": "Living man queried at 62-64 got the death count.",
   "resolved": true,
   "evidence": "scratch/review/old.py: born 1908-07-01 MALE, 1971-12 FULLY False 20/22; fully_insured_requirement 22."
  },
  {
   "severity": "medium",
   "location": "E7: _prior_basis flagged branch",
   "issue": "Flagged prior needed (c) and not (b) on one placement; UNKNOWN establishment computed.",
   "resolved": true,
   "evidence": "scratch/review/old.py: born 1962-06-28 UNKNOWN establishment -> REFUSED 'No annual placement supports a listed prior's first insured quarter'."
  },
  {
   "severity": "low",
   "location": "E8: pre-1951 qc_quarters vs 213(c) aggregate",
   "issue": "Flags waive the aggregate route silently.",
   "resolved": true,
   "evidence": "scratch/review/elows.py: John Doe flags -> FULLY False 27/37; note's SIMPLIFIED_PRE1951 row now says flags add nothing (the fix offered)."
  },
  {
   "severity": "low",
   "location": "E9: male age-65 cohort text",
   "issue": "Note/README/registry misdated the cohort.",
   "resolved": true,
   "evidence": "Note and README now cite 404.110(b)(2)(ii)-(iv); PR body bullet restated (read via GitHub API)."
  },
  {
   "severity": "low",
   "location": "E10: _witness FULLY treatment diagnostics",
   "issue": "FULLY reports disregard-treatment counts that disagree with qcs_by_year/requirement.",
   "resolved": false,
   "evidence": "scratch/review/elows.py: FULLY 64 of 23 while qcs_by_year[1995]=(2,2) and helper 22. Disclosed as a larger-margin convention; status unaffected. Still low."
  },
  {
   "severity": "low",
   "location": "E11: DISABILITY scan past FRA",
   "issue": "DISABILITY can be insured past FRA while DLI is capped.",
   "resolved": true,
   "evidence": "scratch/review/elows.py: DISABILITY True at 2017-01-01, DLI 1989-12-31; DLI row now documents it (fix allowed documenting)."
  },
  {
   "severity": "low",
   "location": "E12: current end after FRA silently capped",
   "issue": "Declared end past statutory end was capped.",
   "resolved": true,
   "evidence": "scratch/review/elows.py: raises 'Current period ends after its statutory FRA end'; listed prior raises too (scratch/review/old.py)."
  },
  {
   "severity": "low",
   "location": "E13: birth-year cap on annual QCs",
   "issue": "Annual QCs in birth year capped.",
   "resolved": true,
   "evidence": "scratch/review/elows.py: born 2000-12-15 -> FULLY True 6/6."
  },
  {
   "severity": "low",
   "location": "E14: loose deferred conversion refusals",
   "issue": "Deferred rows refuse even when bounds agree.",
   "resolved": false,
   "evidence": "scratch/review/elows.py: 2028 wages $1,969 -> REFUSED qc_amount_year 'No captured QC increment for 2028'; documented as conservative; row kept. Still low."
  },
  {
   "severity": "low",
   "location": "E15: declared DIB/RIB month replaces query event",
   "issue": "Past DIB month decides CURRENTLY.",
   "resolved": true,
   "evidence": "scratch/review/elows.py: CURRENTLY False 0/6; module docstring now documents it (fix allowed flagging/documenting)."
  },
  {
   "severity": "low",
   "location": "E16: impossible entitlement months accepted",
   "issue": "DIB after FRA accepted.",
   "resolved": true,
   "evidence": "scratch/review/elows.py: InvalidFamilyInput 'DIB entitlement at or after FRA month'."
  },
  {
   "severity": "low",
   "location": "E17: registry values unread",
   "issue": "README overclaimed figure checks.",
   "resolved": true,
   "evidence": "README:14-18 now says expected/implemented are for review and no test reads them; mutating poms_140_ralph required_qcs 12->13 still passes 208 tests, consistent with the narrowed claim."
  },
  {
   "severity": "low",
   "location": "E18: Joseph/Frank erratum labels",
   "issue": "Overstated erratum labels.",
   "resolved": true,
   "evidence": "examples.yaml:198-206 now calls them placement-dependent intermediate counts."
  },
  {
   "severity": "low",
   "location": "E19: pre-May-1983 refusal",
   "issue": "Fired for under-31 Rule II onsets.",
   "resolved": true,
   "evidence": "scratch/review/elows.py: born 1956-09-16 flagged prior, onset 1982-03 -> computes DISABILITY True under31_special."
  },
  {
   "severity": "low",
   "location": "E20: note cites scratch files / PR body stale",
   "issue": "Uncommitted references and stale counts.",
   "resolved": true,
   "evidence": "grep scratch/review in the note: none; test_the_note_cites_only_tests_that_exist passes."
  },
  {
   "severity": "low",
   "location": "E21: past-blindness basis before 1973",
   "issue": "Prior of any date could rest on blindness.",
   "resolved": true,
   "evidence": "scratch/review/elows.py: 1965 prior -> REFUSED 'No annual placement supports a listed prior's first insured quarter'."
  },
  {
   "severity": "low",
   "location": "E22 / G low: long-period third parse",
   "issue": "Third parse of 404.130(d)(2) left open but code answers false / InvalidFamilyInput where only it insures.",
   "resolved": false,
   "evidence": "scratch/review/old.py: L22 not established DISABILITY False 14/20; established InvalidFamilyInput. Register now lists the parse for Max (d1920); behavior unchanged by design. Still low."
  },
  {
   "severity": "low",
   "location": "E23: helper skips validation",
   "issue": "fully_insured_requirement skipped person checks.",
   "resolved": true,
   "evidence": "scratch/review/elows.py: helper raises 'Entitlement follows query month'."
  },
  {
   "severity": "low",
   "location": "E24: post-death quarterly wages",
   "issue": "Input error for wages after death.",
   "resolved": true,
   "evidence": "scratch/review/elows.py: (7700,100,0,0) -> FULLY True 73/16."
  },
  {
   "severity": "nit",
   "location": "E25-E29: bound names, fiscal gap, citations, wording, PR body invariant",
   "issue": "Wording nits.",
   "resolved": true,
   "evidence": "Note no longer has '36 quarters from 1989Q2' or 'by at least 10 QCs'; PR body invariant qualified; note round-23 list records each."
  },
  {
   "severity": "medium",
   "location": "F1: round 23 note test opened barred tests/",
   "issue": "test_the_note_cites_only_tests_that_exist globbed all tests/.",
   "resolved": true,
   "evidence": "Round-23 module passed in the gate run; c25a32c limits the scan to insured modules (diff read)."
  },
  {
   "severity": "low",
   "location": "F2: listed prior end past FRA capped",
   "issue": "Inconsistent with current-period error.",
   "resolved": true,
   "evidence": "scratch/review/old.py: Person with prior end 2017-12-31 raises 'Prior period ends after its statutory FRA end'."
  },
  {
   "severity": "low",
   "location": "F3: M4/M8 unpinned branches",
   "issue": "living and age-31 bound unpinned.",
   "resolved": true,
   "evidence": "Sandbox mutation F_M4_living: round 23 1 failed; F_M8_age31 killed in sandbox and in the worktree (1 failed, 70 passed)."
  },
  {
   "severity": "nit",
   "location": "F4: RS 00301.340 garbled amounts",
   "issue": "Lost $ and spaces.",
   "resolved": true,
   "evidence": "examples.yaml:593 and :914 restored."
  },
  {
   "severity": "nit",
   "location": "F5: 404.321(b) cited for FRA end",
   "issue": "Should be (c)(1).",
   "resolved": true,
   "evidence": "Note round-23 section says comments now cite 404.321(c)(1)."
  },
  {
   "severity": "uncertain",
   "location": "F uncertain (a): death-month count",
   "issue": "Living on the 1st of the death month.",
   "resolved": false,
   "evidence": "scratch/review/old.py: 1971-12 False 20/22, 1972-01 True 20/20; note says no captured source settles it. Open, disclosed."
  },
  {
   "severity": "uncertain",
   "location": "F uncertain (b): RIB in month of attaining 62",
   "issue": "Act 202(a) uncaptured.",
   "resolved": false,
   "evidence": "scratch/review/elows.py/scratch/review/old.py: Person(1940-03-01, RIB 2002-02) constructs; deferred in note. Open, disclosed (= H low)."
  },
  {
   "severity": "uncertain",
   "location": "F uncertain (c): _settle_current_basis upper completions",
   "issue": "Not demonstrated.",
   "resolved": false,
   "evidence": "No counterexample found: scratch/review/prop.py and prop_t*.py (1,050 records, 0 completion-consistency violations). Remains undemonstrated."
  },
  {
   "severity": "mutation",
   "location": "F M1 (special is not False)",
   "issue": "Survived at 8522452c.",
   "resolved": true,
   "evidence": "Sandbox: round 24+23 -> 1 failed, 71 passed (killed)."
  },
  {
   "severity": "mutation",
   "location": "F M9 (drop blindness in _current_period_special)",
   "issue": "Survived.",
   "resolved": false,
   "evidence": "Sandbox: 134 passed (still survives). Agree it is equivalent: a blind holder keeps 404.130(e), which dominates 404.130(d)."
  },
  {
   "severity": "mutation",
   "location": "F M12 (first-start flag is True)",
   "issue": "Survived.",
   "resolved": false,
   "evidence": "Sandbox: 134 passed (still survives). Refusal-policy only, as the pre-screen said."
  },
  {
   "severity": "medium",
   "location": "G1: _refuse_unsupported_priors support on some completion",
   "issue": "Impossible established period raised InvalidFamilyInput though a completion refuses by name.",
   "resolved": true,
   "evidence": "scratch/review/old.py: G unflagged 1989 UNKNOWN -> REFUSED unknown_earnings 'Unknown earnings decide a listed prior's support'; 0/1 -> named refusal; 2-4 -> InvalidFamilyInput. Flagged variant 1990 UNKNOWN -> REFUSED; 4 -> named refusal; 0/3 -> InvalidFamilyInput. Targeted property prop_t.py: 112 envelope input errors, every completion also raised."
  },
  {
   "severity": "low",
   "location": "G2: r6 mutation survived",
   "issue": "Start-year completion unpinned.",
   "resolved": true,
   "evidence": "Worktree mutation completions_skip_start_year: 1 failed, 10 passed."
  },
  {
   "severity": "low",
   "location": "G3: third parse",
   "issue": "Same as E22.",
   "resolved": false,
   "evidence": "See E22."
  },
  {
   "severity": "nit",
   "location": "G4: PR body differentials bullet",
   "issue": "Stale cohort claim.",
   "resolved": true,
   "evidence": "PR body now says the PDF footnote's 1/2/31 conflicts with 404.110(b)(2)(iv) and the rule follows the CFR."
  },
  {
   "severity": "nit",
   "location": "H1: second RS 00301.340 note garbled",
   "issue": "Lost $ signs.",
   "resolved": true,
   "evidence": "examples.yaml:914-917 restored."
  },
  {
   "severity": "nit",
   "location": "H2: PR body registry/cohort sentences",
   "issue": "Stale.",
   "resolved": true,
   "evidence": "PR body updated (read via GitHub API)."
  },
  {
   "severity": "low",
   "location": "H3: RIB month of attaining 62",
   "issue": "Open per Act 202(a).",
   "resolved": false,
   "evidence": "Unchanged; disclosed and deferred."
  }
 ],
 "executed": [
  {
   "command": "git rev-parse HEAD",
   "result": "d30e44267cd25cbf804f8b4e9a07679f2c4a9939"
  },
  {
   "command": "scratch/review/run_gates.sh (pytest -q -p no:cacheprovider -n 4 per module, both data roots /nonexistent/review-data)",
   "result": "46 modules, 7461 passed, 0 failed: all 41 tests/test_track_b_insured_status*.py (incl. stress 52, round_23 70, round_24 64, classification_oracle 202, qc 310, sources 159), input_schema 742, refusal_notes 21, gross_benefits round_13_audit 1168, round_15_arguments 346, round_15_receivers 3187."
  },
  {
   "command": "black -l 79 --check / ruff check --no-cache on the 50 changed .py files",
   "result": "50 unchanged; All checks passed"
  },
  {
   "command": "git diff --name-only origin/master...HEAD | grep protected paths",
   "result": "none; no scratch/report/bundle files committed; git status --porcelain empty"
  },
  {
   "command": "sha256/bytes of every capture vs manifest.json",
   "result": "insured_status_sources 48/48 match; all track_b manifests 196 entries, 0 mismatches"
  },
  {
   "command": "QC_AMOUNTS vs POMS RS 00301.250 and OACT capture",
   "result": "1978-2026 match the chart; 2027 = $1,970 per OACT"
  },
  {
   "command": "python scratch/review/old.py, e3.py, elows.py",
   "result": "Earlier counterexamples rebuilt; see sol_findings evidence"
  },
  {
   "command": "python scratch/review/oracle.py 1 150; 2 600; oracle2.py 3 400",
   "result": "Independent oracle (404.110/.120/.130(b),(c)/.131/.132, favorable placement, DLI and censoring), 1,150 records: 0 mismatches"
  },
  {
   "command": "python scratch/review/oracle_prior.py 1 200; oracle_prior2.py 5 350",
   "result": "Independent oracle for one unflagged listed prior (bases 404.130(b) and (e), every placement, use/disregard treatment), 550 records: 0 mismatches; reproduces Appendix C's hand figures (b 2007-12-31, e 2008-03-31)"
  },
  {
   "command": "python scratch/review/prop.py 1 60; 2 300; prop_t.py 7 250; prop_t2.py 11 300",
   "result": "Completion consistency (input error on envelope => every completion; computed statuses and DLI contain every computed completion), determinism, refusal weight 5/2: 0 violations; 112 envelope input errors with established period and listed prior all held on every completion"
  },
  {
   "command": "python scratch/review/end_probe.py",
   "result": "UNKNOWN year moving start past declared end -> REFUSED unknown_earnings; 0 fill -> InvalidFamilyInput; 1,2 -> computes"
  },
  {
   "command": "python scratch/review/ex140.py",
   "result": "RS 00301.140 Fred Brown 17/17 True (16 False), Mary Smith ex 3 True 6/6, ex 4 False 5/6, ex 5 True 6/6, as published"
  },
  {
   "command": "worktree mutations via scratch/review/mut.py /home/user/pr <m> round_24 round_23; git checkout -- src/populace_dynamics/track_b/insured_status.py",
   "result": "undecided_upper 1 failed; completions_skip_start_year 1 failed; boundary_low_only 1 failed; flag_never_carries 1 failed; pre1978_only_high 1 failed; F_M8_age31 1 failed. git status clean after each; file sha256 7d2d202b... equals HEAD"
  },
  {
   "command": "sandbox (/tmp/mut copy) mutations",
   "result": "completions_drop_high, pre1956_window_late, boundary_vacant_ignores_fixed, drop_undecided_call, drop_boundary_call, cap_ge, requirement_no_cap (base modules), F_M4, F_M1 killed; F_M9 and F_M12 survive (benign)"
  }
 ],
 "findings": [
  {
   "severity": "low",
   "location": "src/populace_dynamics/track_b/insured_status.py:3419-3431",
   "issue": "The frozen-exit ongoing-period refusal fires for test=DISABILITY too, though the onset status is settled; only the DLI horizon is unobserved. Documented (note:584, :702), rows kept, so loose rather than wrong.",
   "counterexample": "Person(1970-06-15, FEMALE, onset 2021-01-15 established OBSERVED, end UNKNOWN); 4 QCs 2001-2010 and 2016-2020; coverage_end_month 2020-02-01; month 2021-06-01; test DISABILITY -> REFUSED ongoing_disability_period_dli_horizon_unsupported; without the exit the same record computes DISABILITY True 20/20 at 2021-01-01.",
   "fix": "Optional: return the DISABILITY decision and leave only the DLI open, or keep as documented."
  }
 ],
 "needs_max": [
  {
   "id": "us:oasdi-insured-subsequent-special-long-period",
   "assessment": "keep",
   "source_text": "Act 223(c)(1)(B)(iii) 'not less than one-half of the quarters beginning after such individual attained age 21'; 404.130(d)(2) 'up to a maximum of 20 QCs out of 40 calendar quarters'",
   "note": "Two or three defensible parses; refusing where they differ is safe. The open low: where only the third parse insures, the rule computes false and an established period raises InvalidFamilyInput. Max should rule on the third parse (d1920)."
  },
  {
   "id": "us:oasdi-insured-one-filling-first-start",
   "assessment": "keep",
   "source_text": "404.321(a) 'Your period of disability begins on the day your disability begins if you are insured for disability on that day'; RS 00301.230 'Assignment of QCs is flexible.'",
   "note": "Flexible assignment against a single start is a real tension. One-filling plus named refusal is the safer default. Its prior-start extension (Sol's added item) is now implemented and refuses in Sol's records."
  },
  {
   "id": "us:oasdi-insured-prior-disability-favorable-disregard",
   "assessment": "resolve",
   "source_text": "404.130(f) 'we will count all the quarters in the prior period of disability established for you if by doing so you would be entitled'; RS 00301.140 ex 9 'does not meet insured status as of 5/93'",
   "note": "Regulation governs; implemented reading is right."
  },
  {
   "id": "us:oasdi-insured-disability-period-endpoint-quarters",
   "assessment": "resolve",
   "source_text": "404.130(f) 'unless the quarter is the first or last quarter of this period and the quarter is a QC'",
   "note": "No real conflict; placement-dependent figures."
  },
  {
   "id": "us:oasdi-insured-pre1951-seven-elapsed-years",
   "assessment": "keep",
   "source_text": "RS 00301.315 'The 1990 Amendments eliminated the seven EY test.'",
   "note": "Unmodeled filing facts justify the refusal."
  },
  {
   "id": "us:oasdi-insured-simplified-pre1951-disability-scope",
   "assessment": "keep",
   "source_text": "404.132 'we use the fully insured status requirements in \u00a7 404.110'; RS 00301.315 'The simplified method does not apply to disability claims.'",
   "note": "Statute and CFR outrank POMS; refusing where the aggregate could decide is safe."
  },
  {
   "id": "us:oasdi-insured-pre1956-alternate-any-quarter-scan",
   "assessment": "keep",
   "source_text": "RS 00301.480 A 'does not have 20/40 for freeze or DIB in any quarter before 10/60'",
   "note": "Two readings; refusal where they differ."
  },
  {
   "id": "us:oasdi-insured-historical-end-recovery-month",
   "assessment": "resolve",
   "source_text": "404.321(b) 'the last day of the second month following the month in which your disability ended'",
   "note": "Arithmetic settled."
  },
  {
   "id": "us:oasdi-insured-unknown-prior-historical-blindness",
   "assessment": "resolve",
   "source_text": "404.130(e) 'You are disabled by blindness ... and (2) You are fully insured.'",
   "note": "Current non-blindness doesn't exclude past blindness. My oracle_prior treats both bases and agrees with the code."
  },
  {
   "id": "death-month count for pre-1913 men (F uncertain a) and RIB in month attaining 62 (H low)",
   "assessment": "add (low)",
   "source_text": "404.110(b)(2)(iv) vs (b)(3); Act 202(a) not captured",
   "note": "Disclosed; capture Act 202(a) before relying on those months."
  }
 ]
}

Generated by Claude Code

@MaxGhenis

Copy link
Copy Markdown
Contributor Author

Ready for hub review

1. Run

Cloud run of the round 24 mutation list and the Track B gate at d30e44267cd25cbf804f8b4e9a07679f2c4a9939. After git fetch origin trackb-insured-status-20261023, the branch head on GitHub was d30e44267cd25cbf804f8b4e9a07679f2c4a9939 (the same SHA). Everything ran in a detached worktree at the SHA the brief gives.

2. Environment

  • nproc: 4
  • Python 3.14.6 (venv made with uv venv -p 3.14)
  • pytest 9.1.1, Hypothesis 6.168.3, numpy 2.5.1, pandas 3.0.3, scipy 1.18.0, scikit-learn 1.9.0 (and pytest-xdist 3.8.0, pyyaml 6.0.3, openpyxl 3.1.5)
  • POPULACE_DYNAMICS_PSID_DIR and POPULACE_DYNAMICS_EPUF_DIR were /nonexistent/trackb-round24 on every pytest command.

3. Hashes

Every hash matched: the 43 files in the brief's table (sha256sum -c), run_round24_named.py (c075ea2a…), round24_mutate.py (c7e9c45d…), oracle_mutants.py (abf75a2d…), both oracle mutant copies and insured_status_f32d8812.py (efe8608c…).

4. Mutations (135)

Mutation Exit First failing test Audit (restricted_opens/Popen/os.system)
basis_always_blind 1 tests/test_track_b_insured_status_fix_round_24.py::test_a_quarter_after_the_start_can_exclude_the_pre1956_route[None] 0/0/0
basis_always_nonblind 1 tests/test_track_b_insured_status_fix_round_24.py::test_a_year_that_can_leave_an_unflagged_prior_unsupported_refuses[2-None] 0/0/0
basis_only_on_disability 1 tests/test_track_b_insured_status_fix_round_23.py::test_only_a_middle_completion_fits_a_flag[None-InsuredTest.FULLY-InsuredUnsupportedReason.ASSIGNMENT_COMPLEXITY-Annual 0/0/0
basis_skipped_on_open_period 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_flagged_prior_needs_paragraph_c_without_paragraph_b 0/0/0
basis_split_always 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_binding_prior_keeps_the_earliest_qualifying_quarter 0/0/0
basis_split_unreported 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_prior_basis_split_widens_the_qualifying_quarters 0/0/0
binding_pair_drops_basis 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_prior_basis_split_widens_the_qualifying_quarters 0/0/0
binding_reaches_open_period 1 tests/test_track_b_insured_status_fix_round_20.py::test_an_unknown_year_leaves_a_proven_result_to_the_proof 0/0/0
binds_always_nonblind 1 tests/test_track_b_insured_status_fix_round_23.py::test_an_open_flag_keeps_paragraph_b_where_every_placement_meets_it 0/0/0
binds_flag_on_lower_credits 1 tests/test_track_b_insured_status_fix_round_21.py::test_an_unknown_year_can_carry_a_flagged_prior_past_the_ordinary_rule 0/0/0
binds_flag_reads_blindness 1 tests/test_track_b_insured_status_fix_round_20.py::test_an_unknown_year_leaves_a_special_prior_every_placement_carries 0/0/0
binds_ignores_basis 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_prior_basis_split_widens_the_qualifying_quarters 0/0/0
blind_basis_1972 1 tests/test_track_b_insured_status_fix_round_23.py::test_past_blindness_begins_a_prior_only_from_1973[start0-False] 0/0/0
bound_stops_at_reported_start 1 tests/test_track_b_insured_status_status_stress.py::test_status_stress_refuses_a_start_no_filling_supports[109307] 0/0/0
completions_cap_inclusive 1 tests/test_track_b_insured_status_fix_round_24.py::test_completions_refuse_past_4096[1960-3-False] 0/0/0
completions_counts_only 1 tests/test_track_b_insured_status_fix_round_24.py::test_a_quarter_after_the_start_can_exclude_the_pre1956_route[None] 0/0/0
completions_counts_short 1 tests/test_track_b_insured_status_fix_round_24.py::test_either_bound_of_a_start_year_can_unseat_a_flagged_prior[counts0-None-outcome0] 0/0/0
completions_drop_fixed 1 tests/test_track_b_insured_status_fix_round_24.py::test_completions_keep_a_deferred_year_s_fixed_quarters 0/0/0
completions_last_exclusive 1 tests/test_track_b_insured_status_fix_round_24.py::test_either_bound_of_a_start_year_can_unseat_a_flagged_prior[counts4-None-outcome4] 0/0/0
completions_rest_at_lower 1 tests/test_track_b_insured_status_fix_round_24.py::test_completions_list_quarter_sets_before_1978_and_counts_after 0/0/0
completions_sets_from_1979 1 tests/test_track_b_insured_status_fix_round_24.py::test_completions_list_quarter_sets_before_1978_and_counts_after 0/0/0
completions_sets_short 1 tests/test_track_b_insured_status_fix_round_24.py::test_completions_list_quarter_sets_before_1978_and_counts_after 0/0/0
current_drops_paragraph_c 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_period_begun_on_paragraph_c_alone_opens_paragraph_d_after_it 0/0/0
date_search_drops_binding 1 tests/test_track_b_insured_status_fix_round_19.py::test_a_listed_prior_holds_every_ending_to_the_date 0/0/0
date_tested_at_query 1 tests/test_track_b_insured_status_fix_round_2.py::test_unknown_period_status_and_dli_bounds_contain_concrete_fillings 0/0/0
disability_left_out_of_search 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_prior_basis_split_widens_the_qualifying_quarters 0/0/0
disability_reads_the_completion 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_period_begun_in_the_age_31_quarter_rests_on_paragraph_d 0/0/0
drop_bound_refusal 1 tests/test_track_b_insured_status_status_stress.py::test_status_stress_refuses_a_start_no_filling_supports[109307] 0/0/0
drop_dli_comparison 1 tests/test_track_b_insured_status_fix_round_22.py::test_a_frozen_exit_refuses 0/0/0
every_drops_flagged_paragraph_c 1 tests/test_track_b_insured_status_fix_round_21.py::test_an_unknown_year_can_carry_a_flagged_prior_past_the_ordinary_rule 0/0/0
every_flagged_reads_blindness 1 tests/test_track_b_insured_status_fix_round_24.py::test_either_bound_of_a_start_year_can_unseat_a_flagged_prior[counts0-None-outcome0] 0/0/0
every_on_upper_credits 1 tests/test_track_b_insured_status_fix_round_21.py::test_an_unknown_year_can_support_a_prior 0/0/0
every_reads_listed_periods 1 tests/test_track_b_insured_status_fix_round_20.py::test_a_later_prior_on_an_earlier_endpoint_binds 0/0/0
every_reads_paragraph_c 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_prior_basis_split_widens_the_qualifying_quarters 0/0/0
every_unflagged_reads_no_blindness 1 tests/test_track_b_insured_status_fix_round_23.py::test_an_open_flag_keeps_paragraph_b_where_every_placement_meets_it 0/0/0
first_onset_odd 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_period_begun_on_paragraph_c_alone_opens_paragraph_d_after_it 0/0/0
first_onset_short 1 tests/test_track_b_insured_status_fix_round_23.py::test_each_published_first_onset_reproduces[rs140-joseph-6] 0/0/0
first_search_drops_binding 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_split_start_names_the_listed_prior 0/0/0
fix_reverted 1 tests/test_track_b_insured_status_fix_round_20.py::test_partial_years_after_the_start_stay_open 0/0/0
flag_fits_always 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_flagged_prior_needs_paragraph_c_without_paragraph_b 0/0/0
flag_fits_before_start 1 tests/test_track_b_insured_status_fix_round_24.py::test_either_bound_of_a_start_year_can_unseat_a_flagged_prior[counts0-None-outcome0] 0/0/0
flag_middle 1 tests/test_track_b_insured_status_fix_round_23.py::test_only_a_middle_completion_fits_a_flag[None-InsuredTest.FULLY-InsuredUnsupportedReason.ASSIGNMENT_COMPLEXITY-Annual 0/0/0
flagged_ignores_ordinary_rule 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_flag_every_completion_contradicts_refuses_by_that_name[6] 0/0/0
flagged_ignores_support 1 tests/test_track_b_insured_status_fix_round_24.py::test_either_bound_of_a_start_year_can_unseat_a_flagged_prior[counts4-None-outcome4] 0/0/0
flagged_ordinary_on_upper_credits 1 tests/test_track_b_insured_status_fix_round_24.py::test_either_bound_of_a_start_year_can_unseat_a_flagged_prior[counts0-None-outcome0] 0/0/0
flagged_ordinary_reads_blindness 1 tests/test_track_b_insured_status_fix_round_24.py::test_either_bound_of_a_start_year_can_unseat_a_flagged_prior[counts0-None-outcome0] 0/0/0
flagged_refuses_every_placement 1 tests/test_track_b_insured_status_fix_round_23.py::test_an_ended_current_period_counts_as_the_prior_it_becomes 0/0/0
flagged_support_on_lower_credits 1 tests/test_track_b_insured_status_fix_round_24.py::test_either_bound_of_a_start_year_can_unseat_a_flagged_prior[counts4-None-outcome4] 0/0/0
flagged_support_reads_blindness 1 tests/test_track_b_insured_status_fix_round_24.py::test_either_bound_of_a_start_year_can_unseat_a_flagged_prior[counts4-None-outcome4] 0/0/0
guard_call_dropped 1 tests/test_track_b_insured_status_fix_round_24.py::test_a_middle_completion_past_the_boundary_cap_refuses 0/0/0
guard_counts_fixed_quarters 1 tests/test_track_b_insured_status_fix_round_24.py::test_the_boundary_guard_leaves_fixed_quarters_out 0/0/0
guard_ignores_death 1 tests/test_track_b_insured_status_fix_round_24.py::test_the_boundary_guard_counts_no_quarter_after_death 0/0/0
guard_inclusive 1 tests/test_track_b_insured_status_fix_round_24.py::test_the_boundary_guard_refuses_only_past_4096 0/0/0
guard_lower_count_only 1 tests/test_track_b_insured_status_fix_round_24.py::test_a_middle_completion_past_the_boundary_cap_refuses 0/0/0
guard_no_skip 1 tests/test_track_b_insured_status_fix_round_24.py::test_known_endpoint_years_leave_the_cap_to_the_record 0/0/0
guard_off 1 tests/test_track_b_insured_status_fix_round_24.py::test_a_middle_completion_past_the_boundary_cap_refuses 0/0/0
guard_upper_count_only 1 tests/test_track_b_insured_status_fix_round_24.py::test_a_middle_completion_past_the_boundary_cap_refuses 0/0/0
keeps_always_nonblind 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_prior_basis_split_widens_the_qualifying_quarters 0/0/0
keeps_every_filling 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_prior_basis_split_widens_the_qualifying_quarters 0/0/0
keeps_flag_reads_blindness 1 tests/test_track_b_insured_status_fix_round_24.py::test_either_bound_of_a_start_year_can_unseat_a_flagged_prior[counts0-None-outcome0] 0/0/0
keeps_ignores_basis 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_prior_basis_split_widens_the_qualifying_quarters 0/0/0
keeps_ignores_the_flag 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_flagged_prior_needs_paragraph_c_without_paragraph_b 0/0/0
listed_search_ignores_priors 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_prior_basis_split_widens_the_qualifying_quarters 0/0/0
listed_search_skips_the_date 1 tests/test_track_b_insured_status_fix_round_23.py::test_periods_still_may_not_share_a_day 0/0/0
low12 1 tests/test_track_b_insured_status_fix_round_23.py::test_declared_dates_past_the_statutory_end_are_input_errors 0/0/0
low12_prior 1 tests/test_track_b_insured_status_fix_round_23.py::test_declared_dates_past_the_statutory_end_are_input_errors 0/0/0
low16_dib 1 tests/test_track_b_insured_status_fix_round_23.py::test_entitlement_months_must_be_possible[dib_entitlement_month-month1-at 0/0/0
low16_rib 1 tests/test_track_b_insured_status_fix_round_23.py::test_entitlement_months_must_be_possible[rib_entitlement_month-month4-before 0/0/0
low19 1 tests/test_track_b_insured_status_fix_round_23.py::test_the_pre_1983_refusal_needs_31_before_may_1983 0/0/0
low21 1 tests/test_track_b_insured_status_fix_round_24.py::test_a_quarter_after_the_start_can_exclude_the_pre1956_route[None] 0/0/0
low23 1 tests/test_track_b_insured_status_fix_round_23.py::test_the_requirement_helper_checks_what_insured_status_checks 0/0/0
low24 1 tests/test_track_b_insured_status_fix_round_23.py::test_wages_paid_after_death_count_toward_the_year 0/0/0
m13_birth 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_birth_year_credits_quarters_before_the_birth 0/0/0
m1_flag 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_period_begun_on_paragraph_c_alone_opens_paragraph_d_after_it 0/0/0
m1_open_basis 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_placement_or_year_that_decides_the_basis_refuses 0/0/0
m1_settle 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_placement_or_year_that_decides_the_basis_refuses 0/0/0
m2_current 1 tests/test_track_b_insured_status_fix_round_23.py::test_rs00301_140_example_7_begins_on_the_onset_day 0/0/0
m2_listed 1 tests/test_track_b_insured_status_fix_round_23.py::test_rs00301_140_example_7_begins_on_the_onset_day 0/0/0
m3_exit 1 tests/test_track_b_insured_status_fix_round_23.py::test_an_open_flag_keeps_paragraph_b_where_every_placement_meets_it 0/0/0
m4_living 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_death_after_the_query_keeps_the_living_count 0/0/0
m4_rank 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_binding_prior_keeps_the_earliest_qualifying_quarter 0/0/0
m5_earliest 1 tests/test_track_b_insured_status_fix_round_23.py::test_unknown_priors_reach_the_onset_quarter 0/0/0
m6_men 1 tests/test_track_b_insured_status_fix_round_23.py::test_the_404_115_table_gives_each_cohort_its_count 0/0/0
m7_flagfits 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_flagged_prior_needs_paragraph_c_without_paragraph_b 0/0/0
m8_age31 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_period_begun_in_the_age_31_quarter_rests_on_paragraph_d 0/0/0
nit25 1 tests/test_track_b_insured_status_fix_round_23.py::test_quarterly_bounds_name_themselves[1960-declared0-QCs 0/0/0
nit29 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_split_start_names_the_listed_prior 0/0/0
no_earliest_widening 1 tests/test_track_b_insured_status_fix_round_23.py::test_unknown_priors_reach_the_onset_quarter 0/0/0
no_listed_prior_check 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_prior_basis_split_widens_the_qualifying_quarters 0/0/0
no_prior_years 1 tests/test_track_b_insured_status_fix_round_24.py::test_either_bound_of_a_start_year_can_unseat_a_flagged_prior[counts2-3-None] 0/0/0
no_support_stands 1 tests/test_track_b_insured_status_fix_round_24.py::test_a_year_that_can_leave_an_unflagged_prior_unsupported_refuses[None-outcome0] 0/0/0
no_universal_proof 1 tests/test_track_b_insured_status_fix_round_19.py::test_a_prior_can_undercut_the_date[known_end] 0/0/0
open_flag_as_special 1 tests/test_track_b_insured_status_fix_round_23.py::test_an_open_flag_keeps_paragraph_b_where_every_placement_meets_it 0/0/0
ordinary_keeps_special_route 1 tests/test_track_b_insured_status_fix_round_24.py::test_either_bound_of_a_start_year_can_unseat_a_flagged_prior[counts0-None-outcome0] 0/0/0
pre1956_none 1 tests/test_track_b_insured_status_fix_round_24.py::test_a_quarter_after_the_start_can_exclude_the_pre1956_route[flags1] 0/0/0
pre1956_scan 1 tests/test_track_b_insured_status_fix_round_24.py::test_a_quarter_after_the_start_can_exclude_the_pre1956_route[flags5] 0/0/0
precedence_possible 1 tests/test_track_b_insured_status_fix_round_24.py::test_a_year_that_can_leave_an_unflagged_prior_unsupported_refuses[0-outcome1] 0/0/0
precedence_unknown 1 tests/test_track_b_insured_status_fix_round_23.py::test_an_unsupported_prior_refuses_before_unknown_earnings[None] 0/0/0
prior_basis_inverted 1 tests/test_track_b_insured_status_fix_round_24.py::test_a_year_that_can_leave_an_unflagged_prior_unsupported_refuses[None-outcome0] 0/0/0
proof_keeps_listed_priors 1 tests/test_track_b_insured_status_fix_round_19.py::test_unknown_establishment_needs_the_disregard 0/0/0
proof_on_upper_credits 1 tests/test_track_b_insured_status_fix_round_19.py::test_a_prior_can_undercut_the_date[unknown_year] 0/0/0
proof_skips_open_period 1 tests/test_track_b_insured_status_fix_round_19.py::test_unknown_establishment_alone_refuses[InsuredTest.ALL] 0/0/0
proof_skips_statuses 1 tests/test_track_b_insured_status_fix_round_19.py::test_a_prior_can_undercut_the_status[first_day-InsuredTest.ALL] 0/0/0
proof_skips_the_date 1 tests/test_track_b_insured_status_fix_round_19.py::test_a_prior_can_undercut_the_date[known_end] 0/0/0
proof_skips_unknown_priors 1 tests/test_track_b_insured_status_fix_round_19.py::test_a_prior_can_undercut_the_date[known_end] 0/0/0
remove_first_start_check 1 tests/test_track_b_insured_status_status_stress.py::test_status_stress_refuses_a_start_no_filling_supports[109307] 0/0/0
rescue_dropped 1 tests/test_track_b_insured_status_fix_round_24.py::test_a_flag_that_carries_the_prior_keeps_the_input_error[None] 0/0/0
route_drops_flagged_paragraph_c 1 tests/test_track_b_insured_status_fix_round_24.py::test_either_bound_of_a_start_year_can_unseat_a_flagged_prior[counts0-None-outcome0] 0/0/0
route_flagged_reads_blindness 1 tests/test_track_b_insured_status_fix_round_24.py::test_either_bound_of_a_start_year_can_unseat_a_flagged_prior[counts0-None-outcome0] 0/0/0
route_reads_paragraph_c 1 tests/test_track_b_insured_status_fix_round_23.py::test_an_open_flag_keeps_paragraph_b_where_every_placement_meets_it 0/0/0
route_unflagged_reads_no_blindness 1 tests/test_track_b_insured_status_fix_round_24.py::test_a_year_that_can_leave_an_unflagged_prior_unsupported_refuses[2-None] 0/0/0
scan_before_start_year 1 tests/test_track_b_insured_status_fix_round_24.py::test_either_bound_of_a_start_year_can_unseat_a_flagged_prior[counts4-None-outcome4] 0/0/0
scan_every_prior 1 tests/test_track_b_insured_status_fix_round_24.py::test_a_prior_before_july_1952_rests_on_lower_credits 0/0/0
scan_flagged_on_lower 1 tests/test_track_b_insured_status_fix_round_24.py::test_either_bound_of_a_start_year_can_unseat_a_flagged_prior[counts0-None-outcome0] 0/0/0
scan_pre1956_on_lower 1 tests/test_track_b_insured_status_fix_round_24.py::test_a_quarter_after_the_start_can_exclude_the_pre1956_route[None] 0/0/0
scan_to_1960 1 tests/test_track_b_insured_status_fix_round_24.py::test_years_after_a_pre1956_start_count_at_their_upper_credits 0/0/0
scan_window_from_1937 1 tests/test_track_b_insured_status_fix_round_24.py::test_a_prior_before_july_1952_rests_on_lower_credits 0/0/0
settle_accepts_open_flag 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_placement_or_year_that_decides_the_basis_refuses 0/0/0
some_drops_earlier_periods 1 tests/test_track_b_insured_status_fix_round_23.py::test_periods_still_may_not_share_a_day 0/0/0
some_on_lower_credits 1 tests/test_track_b_insured_status_fix_round_24.py::test_a_year_that_can_leave_an_unflagged_prior_unsupported_refuses[None-outcome0] 0/0/0
start_fixed_ignores_priors 1 tests/test_track_b_insured_status_fix_round_22.py::test_a_current_period_after_that_prior_refuses 0/0/0
start_on_favorable_placement 1 tests/test_track_b_insured_status_fix_round_19.py::test_a_status_on_every_placement_computes 0/0/0
start_search_ignores_priors 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_split_start_names_the_listed_prior 0/0/0
start_search_skips_prior_years 1 tests/test_track_b_insured_status_fix_round_19.py::test_a_prior_reaches_a_year_the_start_cannot 0/0/0
status_tested_at_query 1 tests/test_track_b_insured_status_fix_round_19.py::test_a_status_stands_at_the_quarter_it_reports 0/0/0
undecided_call_dropped 1 tests/test_track_b_insured_status_fix_round_24.py::test_a_year_that_can_leave_an_unflagged_prior_unsupported_refuses[None-outcome0] 0/0/0
undecided_off 1 tests/test_track_b_insured_status_fix_round_24.py::test_a_year_that_can_leave_an_unflagged_prior_unsupported_refuses[None-outcome0] 0/0/0
unflagged_drops_paragraph_d 1 tests/test_track_b_insured_status_fix_round_22.py::test_a_prior_past_31_after_a_flagged_one_can_rest_on_paragraph_d 0/0/0
unflagged_on_upper 1 tests/test_track_b_insured_status_fix_round_24.py::test_a_year_that_can_leave_an_unflagged_prior_unsupported_refuses[None-outcome0] 0/0/0
unflagged_reads_paragraph_c 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_prior_basis_split_widens_the_qualifying_quarters 0/0/0
unflagged_refuses_every_placement 1 tests/test_track_b_insured_status_fix_round_23.py::test_an_open_flag_keeps_paragraph_b_where_every_placement_meets_it 0/0/0
unknown_year_searches 1 tests/test_track_b_insured_status_fix_round_22.py::test_an_unknown_year_refuses 0/0/0
worst_always_early 1 tests/test_track_b_insured_status_fix_round_24.py::test_either_bound_of_a_start_year_can_unseat_a_flagged_prior[counts2-3-None] 0/0/0
worst_always_late 1 tests/test_track_b_insured_status_fix_round_23.py::test_a_placement_or_year_that_decides_the_basis_refuses 0/0/0
young_takes_subsequent_route 1 tests/test_track_b_insured_status_fix_round_22.py::test_a_young_prior_after_a_flagged_one_rests_on_paragraph_b 0/0/0

5. Totals

  • Exit 1: 135 / 135
  • Survived (exit 0): none
  • Any other exit code: none
  • Every record's open_audit was {"os.system": 0, "restricted_opens": 0, "subprocess.Popen": 0}.
  • The shards ran from 00:19:53Z to 01:41:05Z (4 shards in parallel).

Some first-failing-test cells end mid-parameter (for example ...[None-InsuredTest.FULLY-InsuredUnsupportedReason.ASSIGNMENT_COMPLEXITY-Annual). That is how round24_mutate.py recorded them: its ^FAILED (\S+) regex stops at the first space inside a parametrize id.

6. Gate: 1 failed

cd ../w562 && env POPULACE_DYNAMICS_PSID_DIR=/nonexistent/trackb-round24 POPULACE_DYNAMICS_EPUF_DIR=/nonexistent/trackb-round24 OMP_NUM_THREADS=1 OMP_WAIT_POLICY=PASSIVE POLARS_MAX_THREADS=1 PYTHONDONTWRITEBYTECODE=1 PYTHONPATH=$PWD/src:$PWD HYPOTHESIS_STORAGE_DIRECTORY=scratch/review/hyp-gate $PY -m pytest -n 4 -q -p no:cacheprovider tests/test_track_b_*.py > scratch/review/gate.log 2>&1

Exit 1. Last summary line:

1 failed, 17019 passed, 20 skipped in 759.88s (0:12:39)

Failing node and its error:

  • tests/test_track_b_b0_1_review_root.py::test_every_engine_match_of_a_spelled_denied_name_is_flagged[bun]: AssertionError: ['docs/**/deni{e..e}d{{.m}}d'] (assert ['docs/**/deni{e..e}d{{.m}}d'] == [], at tests/test_track_b_b0_1_review_root.py:1715)

Per the brief, I did not rerun it. Context from the container: bun 1.4.4 is installed at /root/.bun/bin/bun, and node (/opt/node22/bin/node) and rg (/usr/bin/rg) are also present. pytest's summary lists no other failing node, so no insured_status test failed in the gate.

7. Oracle mutations

oracle_mutants.py printed:

upward_first 52579cd563910f2116feaddfe9e7e8707b7922f5090179f8e0594293616d30cf
skip_query ff97134151d386052d2f0d5053957fa086ad77518d982e44fad6edb48fcd210b
  • upward_first: exit 1
    • FAILED scratch/review/test_stress_oracle_upward_first.py::test_status_stress_last_insured_matches_a_full_scan
    • 1 failed, 51 deselected in 1.57s / OPEN_AUDIT {"os.system": 0, "restricted_opens": 0, "subprocess.Popen": 0}
  • skip_query: exit 1
    • FAILED scratch/review/test_stress_oracle_skip_query.py::test_status_stress_last_insured_matches_a_full_scan
    • 1 failed, 51 deselected in 1.72s / OPEN_AUDIT {"os.system": 0, "restricted_opens": 0, "subprocess.Popen": 0}
  • Head (tests/test_track_b_insured_status_status_stress.py): exit 0
    • 1 passed, 51 deselected in 1.66s / OPEN_AUDIT {"os.system": 0, "restricted_opens": 0, "subprocess.Popen": 0}

8. Round 24's module on the earlier source (f32d881207db59acb3ec13818f70ea63d258174b)

BASELINE efe8608c9c388e8bd011c8e3be57e8c3c4f462520a37f9bf9fa697161245afab

Exit 1. OPEN_AUDIT {"os.system": 0, "restricted_opens": 0, "subprocess.Popen": 0}. Last summary line: 8 failed, 56 passed in 4.82s

FAILED nodes:

  • tests/test_track_b_insured_status_fix_round_24.py::test_a_year_that_can_leave_an_unflagged_prior_unsupported_refuses[None-outcome0]
  • tests/test_track_b_insured_status_fix_round_24.py::test_either_bound_of_a_start_year_can_unseat_a_flagged_prior[counts0-None-outcome0]
  • tests/test_track_b_insured_status_fix_round_24.py::test_either_bound_of_a_start_year_can_unseat_a_flagged_prior[counts4-None-outcome4]
  • tests/test_track_b_insured_status_fix_round_24.py::test_a_quarter_after_the_start_can_exclude_the_pre1956_route[None]
  • tests/test_track_b_insured_status_fix_round_24.py::test_more_completions_than_the_cap_refuse_by_their_number
  • tests/test_track_b_insured_status_fix_round_24.py::test_a_prior_before_july_1952_rests_on_lower_credits
  • tests/test_track_b_insured_status_fix_round_24.py::test_a_middle_completion_past_the_boundary_cap_refuses
  • tests/test_track_b_insured_status_fix_round_24.py::test_an_input_error_holds_on_every_completion

9. Worktree

git status --porcelain printed nothing after the gate, after the oracle runs and after the earlier-source run.

10. Results file

round24-mutations.json (gzip, base64)

SHA-256 of the uncompressed file: fa546be3a8772982165a9bc40a0f212179735a27b10792c1cb02ce052e83fcae

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

11. Judgment calls

  • I posted this comment with the GitHub MCP add_issue_comment tool (the REST issue-comment endpoint), not gh api. This session's instructions limit gh to search. Because this tool takes the body as text rather than as a file, I copied the base64 block above from the generated file into the call. gzip's CRC check and the SHA-256 above will show whether it decodes intact.
  • Python 3.14 was not on PATH, so uv venv -p 3.14 fetched CPython 3.14.6 itself.
  • Section 6's tool context (which bun node rg and bun --version) came from two commands outside the brief's list. Neither is a test run, and the gate was not rerun.
  • My first session worker restarted after every run had finished and before this comment was posted. All logs under scratch/review/ were intact, and nothing was rerun.

Generated by Claude Code

MaxGhenis and others added 2 commits November 6, 2026 05:03
Cloud brief 6931 ran round 24's 135 mutations at d30e442 through every insured status module (PR #562 comment 6620539979). All 135 failed a named test, and every run's open audit counted no restricted open. The ledger takes the records, the runner, the test hashes and the replay steps, and the design note gets one sentence for the run.

The comment's base64 block miscopies one character, at offset 5037. With that character restored, the block passes gzip's CRC check and matches the SHA-256 the comment gives for the file. The ledger's note records the repair.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nch's tests

Master adds CE1 (#583) and D2 (#581), which change no Track B file.
Master and this branch both add lines to
scripts/first_estimates_birth_evidence.py and its test, and git keeps
both sets. The tier files take master's counts plus the 2,735 unit tests
this branch adds since 97003ac: 26,654 unit and 36,123 in all.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MaxGhenis

Copy link
Copy Markdown
Contributor Author

I merged this PR at ecbee31e61e14c54b76c5764923feab15574bd96 with --merge --match-head-commit, as 4ab972971326f7353a0e31005a8b14543ce2c3fa (13:29Z, 2026-11-06).

  • Review. An independent cloud Opus reviewer approved d30e4426 with no finding of medium or higher: Track B insured status: quarters of coverage; fully, currently and disability insured #562 (comment). Its table marks all 12 medium findings from earlier rounds resolved at that head.
  • After the review. Track B's session added round 24's mutation records in c81036b6, which changes two ledger files and no code, and merged master 4f99edfb in ecbee31e. No reviewer read those two commits, so I compared them with the reviewed head by script. Of the 508 paths they change, 502 match master's blobs and none of those names track_b. Of the other six, the two ledger files carry those records and the two tier files differ only in their counts. The two birth-evidence files differ from master by this PR's 7 lines, all present at the reviewed head.
  • CI. gh pr checks 562 exited 0 at the head, where 11 checks passed and deploy skipped (Tests run 42213677632). In that run, tests/test_tier_policy.py compared the committed counts with the collected suite and passed. GitHub reported the PR mergeable, and no review requested changes.
  • Tier counts. This PR raises the unit count from 23,919 to 26,654 and the total from 33,388 to 36,123. Before the next PR that changes the counts lands, its owner merges master 4ab97297, or later, into it and recounts the test tiers.
  • Still to come. Sol audits this merge once a lane can place it, and Track B's session fixes any medium finding in a follow-up PR. The reviewer's one new finding, a low on the reach of the frozen-exit refusal, also gets a follow-up. A cloud session's run of Track B's modules at the reviewed head failed one test, the [bun] test from Read log v7: read Glob/Grep patterns as the glob engines do, and deny every removed file #534's classifier. This PR shares only the two tier files with Read log v7: read Glob/Grep patterns as the glob engines do, and deny every removed file #534, and a separate task tracks that test. Track B's session also registers this PR's nine us:oasdi-insured-* readings in rulespec-us and files the matching issue from docs/design/track_b_insured_status_rulespec_issue.md.

@MaxGhenis

Copy link
Copy Markdown
Contributor Author

TheAxiomFoundation/rulespec-us#2055 asks for RuleSpec encodings of 42 USC 413, 414 and 423(c)(1), and TheAxiomFoundation/rulespec-us#2054 registers this PR's nine readings, pinned to the merge commit 4ab97297.

This branch was successfully deployed

1 active deployment
Preview — ecbee31e Deployed Nov 6, 2026 by vercel[bot]
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