Skip to content

Coverage-rule registry (CE1) - #583

Merged
MaxGhenis merged 108 commits into
masterfrom
ir/ce1-20261024
Nov 6, 2026
Merged

MaxGhenis merged 108 commits into
masterfrom
ir/ce1-20261024

Conversation

@MaxGhenis

@MaxGhenis MaxGhenis commented Oct 24, 2026 •

Copy link
Copy Markdown
Contributor

Round 8 approved the head, a9aae687, with no high or medium finding, and CI passes there. CE1 of the covered-earnings v2 design (docs/design/covered_earnings_v2.md §2.1): a versioned, cited registry of OASDI coverage rules for income years 1968–2026, so that CE3 can classify a component-year from its facts. Every case decides at least one invented worker, and when a covered case's listed condition fails, the worker reaches the exclusion or residual its source gives. Each family uses one date axis, and where a boundary's clauses mix axes, the later row pins the one that governs. The registry's first-match rule resolves 13 of the 17 published examples, and the two section 218 re-entry and two gross-concept examples compute from parameters.

What it adds

  • src/populace_dynamics/income_resources/coverage_rules.py holds the row, case and citation types, schema validation (coverage_rules.ce1.v3), the capture-hash check and the lookup by family and income year.

    • The lookup refuses with a typed error in a gap, and the loader refuses an overlap between rules.
    • A row may carry cases, each with a case_id, a precedence, trigger-fact conditions and a consequence. Precedence runs 1..n and the first matching case decides; the row's residual default applies only when no case matches (CoverageRule.resolve).
    • A deferred consequence names, in defers_to, the families that decide instead. The loader refuses a deferral with no target, to an unknown family, to the row's own family, or around a cycle.
    • An open case (an unsettled legal sub-question or a missing fact) names its readings, and resolve refuses it with OpenRuleError.
    • The module raises separate error types: RegistryValidationError for bad registry data, UnknownIdentifierError for a name the caller got wrong, and the legal refusals for gaps and open questions.
    • The registry and its captures load from separate roots.
  • data/external/income_resources_ce1/ holds the generator assemble_registry.py, the fragment files it reads and the registry coverage_rules.json it writes. It lives outside the snapshot tree, which .gitattributes marks binary, so review diffs show it.

  • data/external/snapshots/income_resources_ce1_v1/ holds the pinned public captures: statutes, page-range extracts of Statutes at Large, the Federal Register and IRS publications and forms, past U.S. Code section editions, the CFR, POMS, and an Internet Archive copy of SSA's coverage-threshold table. Each has its URL, retrieval time, size and SHA-256 in a manifest, and every file in the folder has a manifest entry.

  • The registry holds 119 rules in 58 families, 21 threshold series, 5 table definitions and 17 published worked examples. 90 rules carry 364 cases, 34 of which defer to another family. 38 cases leave a legal sub-question open, with 76 named readings, and the 8 open rows name 16 more (92 in all). One case in each clergy row refuses a worker whose facts don't establish an exemption status.

  • Every rule carries identification_class: awaiting_ce2. Each rare exclusion carries both readings of design question 1: strict, and negligible_candidate, which holds null wherever no search found a published bound. No search found one, so every rare exclusion still reads strict: unresolved with a null candidate, and each row keeps its search records. CE1 chooses neither reading.

  • 8 open legal rows refuse unsettled historical questions. Each names its readings, has a null consequence and no chosen reading, and the registry's open_questions lists the 8. Where the law leaves only a sub-question unsettled, the row returns the verified rule and an open case carries the sub-question.

  • Of 3,422 family-years, 155 refuse (343 before the round-2 fix, 197 before the round-3 fix).

  • No family reads 410(a)'s base definition. scope_gaps names the three clauses of 410(a) that reach service abroad and records the service abroad that none of them reaches:

    • (A)(ii): service on or in connection with an American vessel or aircraft, irrespective of citizenship or residence;
    • (B): a citizen's or resident's service for an American employer, or under (B)(ii) for a foreign affiliate while a 3121(l) agreement is in effect;
    • (C): service a section 433 agreement designates, in taxable years beginning on or after 1983-04-20.

    The four federal residuals name the same clauses.

  • The earnings-test concept accessor refuses every year with unverified dependencies.

  • The birth-evidence seal lists coverage_rules.py as an exclusion, beside master's exclusion of the package's __init__.py, and a reachability check confirms that the birth-evidence reducer reaches neither module.

Two rows follow their captured sources against an earlier review:

  • Passive income uses payment dates. The captured 42 U.S.C. 411 notes make both boundary amendments effective on calendar dates and state no taxable-year rule.
  • Vocational nonresident aliens have closed rows for 1968–1986. Pub. L. 100-647 sections 1001(d)(2)(E) and 1019(a), with the Tax Reform Act of 1986 section 151(d), make both readings agree before 1987. From 1987 to 1988-11-09, only authorized M-1 service for the admission purpose stays open.

Invariants

  • For every family and income year 1968–2026, the lookup returns the rules in force or refuses with a typed error.
  • Ranges and axes:
    • Within a family, effective ranges partition the years the family covers, and the loader refuses an overlap.
    • Every row of a family uses one date axis: service_date, taxable_year_start or payment_date. Any axis but the default quotes its effective-date clause from a capture the row cites.
    • At each internal boundary, the effective-date clauses that the two rows' captures print for that date all use the family's axis. Where they mix axes, the later row pins the governing clause, a clause on another axis carries an axis_exception, and the earlier row's cases carry the off-axis date; no code reads the exception.
  • Cases:
    • A row's case precedences run 1..n, the first matching case decides, and the residual applies only when none matches.
    • A case ranks above every case it overrides and gives a different consequence.
    • The fixture states each INVENTED sweep worker as the exact condition texts true of that worker, and every case of every row decides at least one of them. So rewording or narrowing a case, re-ranking it below another case its worker also meets, or giving it another consequence fails the worker it decides, and a deferred worker pins its target. Broadening a case fails a test only where some worker just misses the case on the dropped condition. 120 listed conditions each have one, and for 29 of them that worker states the missed fact with a text no case of the row reads. 169 of the 511 conditions of multi-condition cases have none, and a test fails if that count rises. When one of the 25 listed covered statutory conditions fails, the worker reaches the exclusion or residual its source gives by a named path. A case reaches only the people its source reaches by level of government. Some case reads each trigger fact a row lists, or the row names its reason. condition_cases ties each parameter that states a condition with a word the guard lists (WORDED_CONDITION's words, "only" or "limited") to the cases, thresholds or reason that account for it. On every closed row, condition_cases ties each parameter that names a condition or a scope to the cases that carry it, to thresholds, or to a reason it sets no coverage condition.
    • The fact-pattern tests match a condition only when a text the fixture states for the worker equals it.
    • A case-free closed row that names a condition carries case_free_basis: an explanation and a citation quoting a capture the row cites. No parameter record holds a when or if key.
  • State and local reach: in the section 218 and election families, every case that excludes, sets a threshold or defers names the level its law reaches: a State (the 50 States, Puerto Rico and the Virgin Islands under 410(h)) or a political subdivision or wholly owned instrumentality, other than the District of Columbia, Guam and American Samoa. The mandatory cases rest on 410(a)(7)(F), agreements on 418(b)(1), and the general exclusion on 410(h) with the family's scope. Each such election case names election work, and a private worker, a District of Columbia employee or other State or local work reaches the residual.
  • Federal reach: every federal case that excludes or stays open names service for the United States (410(a)(5)-(6)).
  • Deferrals: every deferral reaches a family with a rule in each deferring year. Where that family's rule stays open, the deferral refuses, and the deferring row records the target, years and reason in deferral_exceptions.
  • Open questions:
    • An open legal row or open case names two or more readings, carries no chosen reading, and refuses.
    • A closed row's named options, at any depth, say which one governs.
  • Bad registry data, a caller's unknown name and a legal refusal raise disjoint error types.
  • Citations and captures:
    • Every rule cites a pinned capture, every cited hash matches its file, and every citation resolves inside the capture root.
    • Every supporting passage holds nonempty text, and published amounts sit in their cited passages.
  • FIELD_PURPOSES or a listed CE1 extension names every trigger fact.
  • awaiting_ce2 never reads as identified.
  • A negligible_candidate exists only with a cited source, bound and population.
  • Thresholds:
    • Thresholds that the law makes monotone never fall.
    • Quarterly and monthly thresholds aggregate within one employer-employee relationship.
    • Source amounts keep their units and comparisons.
    • CoverageRegistry.threshold checks every supplied index input even when a published value decides.
    • A threshold_id_by_case entry names a case of its row, a known threshold by a string threshold_id, and a first and last income year. Both years fall in 1968–2026 as integers, and the first never follows the last. For every year from the first to the last, the threshold has a published value or an indexing range that covers the year. The loader refuses anything else with a RegistryValidationError.
  • The earnings-test accessor refuses unverified years.
  • Published examples: CoverageRule.resolve computes 13 of 17; the other four compute from the row's parameters. Each outcome equals the published one and conforms to the lookup that cites its passage.
  • Determinism: loading and lookup give the same result on every run and for any row order, and round-trip through JSON. The committed registry equals assemble_registry.build()'s output byte for byte.
  • Capture folder:
    • Every file in the folder has a manifest entry whose size and SHA-256 match.
    • Each recorded capture sits in the folder, or its record says why not.
    • Each page extract records its original's file, size, SHA-256, page count and kept pages. It keeps its cover unless a kept page's pinned text states the edition, and a recorded chain of qpdf steps leads from the original to its bytes.

The general checks have Hypothesis properties on invented rows, and the real registry and capture folder get conformance checks over every row; pytest collects each published example as its own test.

Stated limits

Guard gaps (round 7's low 1):

  • D3, a reason's pointer word: the reason-pointer guard accepts any pointer word, even "whatever".
  • D4 and D5, unread-fact reasons and condition_cases ties: the tests pin only 24 of 365 reasons and 15 ties, so emptying an unpinned reason or retying a parameter to a reason passes.
  • D6b's family, parameter texts: the worded-condition guard reads a fixed word list, now with "only" and "limited", and another synonym passes.
  • D7, registry prose: the scratch-note guard matches case-sensitively.
  • D8, case-threshold years: nothing checks that a threshold_id_by_case entry's income_years match the case's reach.
  • D10, threshold indexing: no test reaches an indexed threshold's year bounds.
  • D2, federal covered cases' level text: the federal covered-case guard passes any text naming "United States" or "Federal"; other tests catch the mutant.

Guard and fixture gaps (round 8; the reviewer ran the pinned inputs, and none of these changes a row or a published outcome):

  • Import-time parses: import_time_registry_parses matches only the spelling json.loads(REGISTRY_ARTIFACT.read_text()), so a second module-level parse written read_text(encoding="utf-8") passes.
  • Worded-parameter guard: no test exercises the re.IGNORECASE on PARAMETER_CONDITION_WORDS.
  • Threshold ids: removing the loader's isinstance(threshold_id, str) check fails no test. A list or integer id still meets the unknown-threshold refusal, and only a dict id reaches the TypeError the check prevents.
  • income_years length: no test gives three income_years, so a loader that accepts three passes.
  • Run-together sentences: FUSED_SENTENCE misses a capital before the period, as in "IRS.Publication"; a wider scan of the committed prose finds no such text.
  • Scope-gap clauses: SCOPE_GAP_CLAUSES checks substrings, so a scope gap that keeps the clause names and reverses its conclusion passes.
  • Just-miss lists: just_miss_required and just_miss_own_text have no count pin, so dropping an entry passes. The 169 bound catches a dropped required condition only once it loses its last just-miss worker, and a dropped own-text entry falls back to the loose test, which accepts an omitted fact.
  • overrides: no test checks that a case lists every case it displaces, and resolve never reads the field. se_nonresident_alien_1968_1983 holds the overrides its description claims, with no test to keep them.

Other limits:

  • Registry prose: no test reads descriptions or parameter prose, so the prose-only row mutants for dc674bc0, c55ebd95 and 25b02a6a survive.
  • Two registry texts (round 8's L-1 and L-4): both sit in prose, and no worker, example or refusal changes. A text-only follow-up corrects them.
    • nonprofit_1968_1977.cooperative_521_small_remuneration says the 1978 row reads former 410(a)(10)'s small-remuneration test as reaching an organization exempt "under 521". Since 4774f453 that row leaves the question open, because 409(a)(14) names only section 501 and 3121(a)(16) names 521 too.
    • The scope gap and the four federal residuals say Pub. L. 98-21 section 321(b) reaches agreements entered into after April 20, 1983. They leave out section 321(f), under which an American employer can elect the same amendment for an earlier agreement.
  • Broadened cases: 169 of 511 conditions of multi-condition cases have no just-miss worker, so dropping one fails no test. 38 of them sit in the 66 cases round 7 changed.
  • Seven drop-free conditions can't take a sensible just-miss worker (SSR 95-3P's overlapping facts; three rank-implied conditions), and the fixture's just_miss_stated_limits gives each reason.
  • clergy_1982_2026.exemption_status_unknown: no just-miss worker states its fact with another text. It ranks last, above an open residual, and round 7 changed only its rank.
  • Order rows (round 7's low 9, second half): a vowed member with no election fact reaches the covered residual, because a case matches only facts the worker states.
  • FEPCA reemployed annuitants (round 7's low 11): the open case still reaches service after the waiver law's effective date, where both readings give covered, because no capture dates the law.
  • Open rows refuse some workers their captures settle: community income 1980–2004, sect 1986–89, 911, health insurance, fishing 1968 and the territories.
  • Base definition: no family reads 410(a)'s base definition; scope_gaps records the service abroad that (A)(ii), (B) and (C) don't reach.
  • Election rows: the consumer supplies the agreement amount and its period.
  • Sibling cases: no guard compares a fact one case reads and its sibling lacks.
  • Army corps: the closing rests on the undated 2024 POMS RS 01901.340 C.5.
  • Test fixtures: the in-code fixtures stay in code.

Captures

This PR adds the capture folder to master. It holds 30.0 MB in 249 files, and the largest, the 97 Stat. 65 extract, takes 3.4 MB.

Seven whole-act or whole-issue PDFs became page-range extracts. qpdf --deterministic-id --empty --pages made each from its hashed original:

Source Original Extract
Pub. L. 92-603, 86 Stat. 1329 31.3 MB, 165 pages 1.90 MB, 10 pages
Pub. L. 90-248, 81 Stat. 821 21.0 MB, 115 pages 0.98 MB, 5 pages
Pub. L. 98-21, 97 Stat. 65 19.0 MB, 108 pages 3.45 MB, 20 pages
Pub. L. 89-97, 79 Stat. 286 24.8 MB, 138 pages 0.76 MB, 4 pages
Federal Register, 10 July 1975 29.4 MB, 172 pages 0.63 MB, 3 pages
Pub. L. 100-203, 101 Stat. 1330 76.4 MB, 473 pages 0.97 MB, 6 pages
Pub. L. 100-647, 102 Stat. 3342 75.7 MB, 471 pages 1.12 MB, 7 pages

The round-2 fix captured the last two from govinfo, and the folder keeps them only as extracts.

Rows cite 38 IRS publications and forms for one value or page, and the folder keeps those as extracts too: 36 editions of Publications 15 and 926 (45.8 MB), the 1985 Form 1040 instructions (4.3 MB) and Publication 51 for 2023 (1.3 MB) became 38 extracts of 3.7 MB in all. The 28 that carried one shared 873,242-byte cover image (Publication 926 for 2008–2025, Publication 15 for 2017–2025 and Publication 51 for 2023) drop it, because a kept page's footer states the edition; the other ten keep their cover.

  • What each extract keeps. Each act keeps:

    • its first page;
    • every page of each cited section, from the section's heading to the next section's heading;
    • the page with its approval date.

    The Federal Register keeps its cover and the two pages that hold FR Doc. 75-17887, from its heading to its filing line. Each IRS extract keeps the pages that state the cited value, and its cover unless a kept page states the edition.

  • Checks on the extracts. Every kept page's pdftotext output equals the same page of the original, and the text derivatives regenerate byte for byte from the extracts. The scanned 1984 and 1985 Schedule SE pages keep their OCR texts, since pdftotext returns nothing for them.

  • The originals. The inventory and manifests record each original's file, size, SHA-256 and page count. Citations that named an original PDF page now give the extract page as well.

The branch also removed these, because nothing cites them:

  • IRS Publication 17 for 1999–2007 (20.4 MB). Their inventory rows keep the URL, size and SHA-256, with status not_retained.
  • 34 text renderings that no manifest listed, including whole-act text of the three 1968–1983 acts.
  • In the round-1 fix, 29 more captures that no rule cites, under one retention rule for every capture: the folder keeps a capture only if a rule cites it or a cited derivative depends on it.
  • In the round-2 fix, the 2025 Publication 517 PDF, a duplicate of a cited capture.

This branch's history holds the originals, so this PR must land by squash, and master then never holds them.

Review

  • Round 1 (Opus 5.5, at 39b52208): REVISE, with two high, twelve medium and 28 low findings. The two highs found that tribal-council service defaulted to covered and that the registry covered pre-2008 conservation reserve payments with no source.

  • Fix (28becb82): the schema's cases and residual defaults and the open rows' named alternatives (M7, M12); the tribal and conservation reserve rows; each row the review checked against its source (M1–M6); employer-employee threshold scopes (M8); outcome, path-escape and byte-equality tests (M9–M11); and the low findings and notes. The commit message lists each.

  • Corrections to earlier messages (round 1 Low 28): 1be4b753 added 13 worked examples (5 to 18), not nine; the manifest listed the nine Publication 17 PDFs at 1be4b753, and a later commit removed them as redundant and uncited; and the two PDFs 1be4b753 called needed whole kept 3 and 4 pages in the next commit, one of them an act rather than an issue.

  • Round 2 (delta, at 28becb82): REVISE, with two high, two medium and 14 low findings and two notes. The two highs found that conditional exclusions with no cases applied the exclusion whatever the facts, and that the registry covered pre-1995-08-07 cash-equivalent farm transfers against the cited POMS. The two mediums found that nothing defined case precedence and that three families refused rules their captures verify.

  • Fix (nine commits, 94219ede to df1dc160):

    • 94219ede ranks cases, first match wins (MED-1);
    • 8476dcf7 makes every exclusion condition a case, with deferrals and case_free_basis (HIGH-1);
    • a6fa1f07 makes pre-ruling cash-equivalent farm transfers noncovered (HIGH-2);
    • c0ea2b24 returns verified rules and keeps only unsettled sub-questions open, with evidence-only boundaries recorded as such (MED-2);
    • 5bac444f tests every loader guard and separates data, caller and legal errors (lows 1–4, 14);
    • 01e1e857 names open readings once and settles the vocational years (lows 8–11, 14);
    • 2dad26e6 keeps IRS page extracts and the OCR text of scanned pages (lows 5–7, 13);
    • 38cd1968 states the capture-folder invariants;
    • df1dc160 turns the low 8, 9 and 14 checks into checker functions with Hypothesis properties.
  • Correction (round 2 Low 12): 28becb82's message says it removed unsupported monotone flags from 13 constant series; it removed them from 14.

  • Merge (ea599b92): master 172f690f. Git auto-merged the two birth-evidence files, which both sides changed; against each parent the merged files only add lines.

  • Round 3 (delta, at ea599b92): REVISE, with two high, six medium and ten low findings and four notes. The two highs found that an unlisted existing employee under a nonprofit waiver fell to a covered residual and that the public-office exclusion could never match.

  • Fix (nine commits, a645009c to 2472668e):

    • a645009c excludes unlisted existing employees under an actual waiver; a deemed waiver covers everyone (H1).
    • 35713143 conditions the public-office exclusion on a public-office fact (H2).
    • 819efef9 puts every statutory condition in a case's when on the review's rows, ties the condition parameters of 32 rows with cases to their cases, and extends the detector to those rows (M1).
    • f042289b gives the community-income and 1984–1985 units rows cases, makes case_free_basis a quoted record, and refuses when records in parameters (M2).
    • 598b2462 moves five families to payment dates and eleven to taxable years, and adds a boundary-clause check (M3).
    • 9eb28f89 answers both CRP windows with one open case, narrows the vocational dispute to M-1 admission-purpose service before November 10, 1988, and adds section 931 to the clergy gross concept through the 1987 amendment (M4–M6).
    • 46f3af78 takes lows 1–5 and 10.
    • 45ef91d3 drops the unused alternative mechanism (note 3) and takes lows 7 and 9.
    • 2472668e makes Pub 51 (2023) a page extract (low 8) and records one retrieval of 97 Stat. 65 (note 2).
  • Where the fix follows the sources over the review:

    • Nonprofit: deemed waivers cover every employee (RS 01901.540 D.7), so only an actual certificate leaves an unlisted employee excluded.
    • Clergy abroad: the case keys on nonresident-alien status (411(b), Publication 517), not citizenship.
  • Refusals: 155 of 3,422 family-years refuse, down from 197; CRP's 40 and the vocational 2 now return rules with open cases.

  • Corrections to earlier claims:

    • "Every deferral reaches a family that decides" overstated the registry: three deferrals reach refusing families, and the deferring rows now record each one in deferral_exceptions.
    • "Every mutant … fails a named test" overstated the tests for the review's o1, o3, o4 and o15, which the new tests and guards now target.
  • Round 3, rest of the fix (three commits, fc1d7e04 to 195be7b8):

    • fc1d7e04 takes low 6's eleven narrow omissions:
      • a limited partner's 707(c) payment not for services stays excluded;
      • the registry excludes section 7873(c)(2)'s de minimis amount;
      • 410(a)(4)'s clause (A) tests the employment, as POMS RS 01901.170 B reads it;
      • the federal rows carry Pub. L. 98-369 section 2601(c), (d)(3) and (e);
      • the registry also covers a nonmember election worker under a lower agreement amount at the statutory annual amount;
      • the foreign-agricultural row cites Publication 51 (2023) section 3;
      • the 1968 tribal row no longer lists the posting fact;
      • five rows' case wording, locators or fact keys now follow their sources.
    • 16b208fa drops the shared cover from 28 IRS extracts whose kept pages state their editions (note 1). The capture folder falls from 59.5 MB to 29.7 MB.
    • 195be7b8 corrects two of fc1d7e04's descriptions: the 1989 redesignation of 409(j), and what the 1954 note on 410(a)(4) says.
    • The review's mutants o1, o3 and o4 now fail the tests that round 3's low 1 added.
  • Where the fix follows the sources over the review:

    • Foreign agricultural workers: 410(a)(1) and POMS key on the worker's admission, while Publication 51 (2023) names only agricultural labor in connection with the visa. An open case with both readings takes the worker's other service.
    • Tribal councils: POMS RS 01901.700 C.1 says council service is not employment, and its posting note sets a crediting rule. So round 3's tie stands, and the row no longer lists the posting fact.
    • Federal, from 1987: a section 2601(d)(3) delay ends before 1987 unless Federal employment elsewhere continued after July 18, 1984; the 1987 row records that narrow case without a case.
  • Correction: fc1d7e04's message counts eight outcome and record tests; it adds seven, besides the Hypothesis property.

  • Round 3, sibling rows (seven commits, f2409b26 to fd5b7b2a):

    • f2409b26 splits election_work_1995's lower-amount case by membership, as the 1991 row's: POMS SL 30001.357's NOTE states no end date.
    • 07cc9cfc places the 1978 home-worker cash test in former 409(j) until the 1989 redesignation, and words the case with 410(j)(3)'s contract and transportation-facility clauses.
    • 45f22320 drops the posting fact from tribal_council_service_2018_0920; the posting rule reaches tax years through 2005 only.
    • c9885558 and fd5b7b2a add former 410(a)(1)(A), the title V contract-worker clause, to foreign_agricultural_service_1968 for service before July 18, 1984. The row records that no capture says whether any title V contract remained in force after 1967.
    • e51e708b applies POMS RS 01901.720 C.2–C.3 (TN 62 (08-24)) to student service from 2024-08-15, keyed to the service date, with the determination-date reading recorded.
    • 6e33faed has both federal rows quote Pub. L. 100-647 section 8015(c)(3) as the 2024 Code note under 26 U.S.C. 3121 sets it out, beside LII's paraphrase.
  • Where the fix follows the source over the brief: the captured POMS edition starts the student criteria on 2024-08-15, so service earlier in 2024 keeps the statutory test.

  • Round 4 (delta, at fd5b7b2a): REVISE, with three high and five medium findings, ten lows and three notes. All three highs share one shape: an exclusion no real fact value selects, so the worker fell to a covered residual. They concern the nonprofit waiver period, the 3121(r)(3)(A) member condition and the 2018 tribal row's federal recognition.

  • Fix (nineteen commits, 00df716a to 210a5c85):

    • 00df716a holds nonprofit waivers to the certificate's period and makes the last exclusion reach every 501(c)(3) employer with no certificate in effect (H-A). It splits the actual-certificate cases by hire date and opens the retroactive-period hire on which RS 01901.540 C.4 and NL 00902.500 NPO505/NPO506 disagree (M-2).
    • da09aab8 gives a member who fails 3121(r)(3)(A) a noncovered path (H-B).
    • 64255e0e requires federal recognition for the 2018 tribal exclusion (418a(b)(2); POMS RS 01901.700 F) (H-C).
    • 8f4ab88f words both fishing rows' crew test as "normally made up of fewer than 10 individuals" for each boat, with the average as the deeming rule, and the pre-1996 bar as cash only (M-3).
    • 8ec7f152 puts 411(b)'s nonresident-alien exclusion in the family self_employment_nonresident_alien. Its territorial and section 433 exceptions each run from their date, and the clergy rows agree (M-4).
    • 8bc0bab9 makes the axis checker require a pin wherever the printed clauses mix axes, pins all 17 such boundaries with four exceptions, gives domestic 1995's under-18 case its service date (M-1), and corrects 18 axis attributions (low 8).
    • a431176b refuses parameter records keyed if (M-5) and fixes a stale docstring (low 1).
    • ff7ceef3 tests that failing each covered required condition reaches its exclusion, for 22 entries (M-5).
    • a9fccaee, d8a44dc6, 1b2f58b5 and 92d2f409 fix 33 defects the exclusion sweep found across 107 rows (item 9; table in the lane's exclusion-sweep.md).
    • 200f24d4 ties all 149 scope parameters in 80 rows and adds the seasonal hand-harvest exclusion (M-5).
    • a0e2e23f takes lows 2–7 and five low-10 items; 8968b124 restates one fixture phrase.
    • 94a9af84 holds 20 State and local cases to State and local service: state_local_1991_2026's three mandatory-rule cases, the election family's 16 threshold and noncovered cases, and the Pub. L. 90-248 section 122(c)(2) election. Each now names the level 410(a)(7)(F), 418(b)(1) or 411(c)(1) prints, and each election row ties it to a new scope parameter, so a private worker or a District of Columbia employee reaches the residual.
    • 7d6f7a72 holds the 16 election cases to "election official or election worker" (418(c)(8)(A); 410(a)(7)(F)(iv)), so other State or local work no longer meets the election threshold.
    • e54479dd opens a qualifying insurance termination payment before 1998 (low 10). 411(j)'s heading calls it a "Codification of treatment" and its text construes 411(a), but the 411 notes date it "applicable to payments after Dec. 31, 1997", and no capture records the earlier treatment. The open case names an effective-date reading and a codification reading.
    • 210a5c85 adds a Hypothesis property: for each of the 22 cases, a worker with the case's own conditions meets it only at the State or local level.
  • The sweep: 543 exclusions across 102 swept rows, plus the five H rows. 46 defects: the fixes resolve 44, 1 becomes an open case and 1 stands on an axis exception. 94a9af84 fixes the tie drafts' late finding, the government level that state_local_1991_2026's mandatory-rule cases and the election family's cases lacked.

  • Mutants: the follow-up's tests kill all 15 of its mutants, among them one that drops the level from mandatory_rule_exclusions and one from each row's outside_agreement_member.

  • Where the fix follows the sources over the review:

    • Axis count: 17 mixed-axis boundaries, not 18; vocational 1987 already had its pin.
    • Overlap rows: an open case carries M-2's overlap, not a ruling, because no capture holds former 410(a)(8)(B)'s text.
    • Election work: the election cases lacked an election-work condition as well as the level; 7d6f7a72 adds it from 418(c)(8)(A) and 410(a)(7)(F)(iv).
    • Low 10: the heading becomes an open case, not a ruling, because no capture records how 411(a) treated a qualifying payment before 1998.
  • Corrections to earlier messages:

    • The capture folder held 29,667,828 bytes at 16b208fa, not the 29,665,513 its message gives.
    • The checker of 598b2462's time flagged 24 boundaries, not the 21 its message gives.
    • 45ef91d3's "passes both … cases" matches one case.
    • 200f24d4's ties split 68, 18 and 63, not 69, 18 and 62.
  • Round 5 (delta, at 210a5c85): REVISE.

    • Highs (7): the clergy deferral left out inactive vowed members (H-1); the nonprofit rows missed supplemental lists, group joiners and 3121(k)(4)(C) (H-2 to H-4); the base definition missed guaranteed payments (H-5); federal cases lacked the federal level (H-6); and the 2601(d)(3) delay stopped at 1986 (H-7).
    • Mediums (7): the pins route nothing; the test oracle (5 of 13 mutants survived); CNMI; agreements outside the clergy rows; Army Corps aides; 105(b); the Invariants.
    • Also: ten lows and three notes.
  • Fix (eight commits, ad404489 to 486453fc):

    • ad404489 excludes every vowed member's order duties and keeps 3121(r)(2) only in the election's covered case (H-1).
    • c85029d6 holds supplemental lists to their filing quarter, covers group joiners and opens 3121(k)(4)(C)'s window with a covered 312(c) request case (H-2 to H-4).
    • 623c7d5e keeps 707(c) guaranteed payments and former 411(a)(5) income in the base definition (H-5).
    • a01f60c2 holds 32 federal cases to service for the United States (H-6), and the sweep brings that to 36.
    • 6787b329 carries the 2601(d)(3) delay past 1986, and moves the three off-axis pins' dates into cases (H-7, M-1).
    • 4435b801 makes the oracle exact and every fixture name its deciding case (M-2).
    • 6392e710 adds two guards (unread trigger facts; parameters that state conditions) and a coverage test. It sweeps all 119 rows in both directions with 1,331 INVENTED workers and fixes the 40 defects that sweep found, with M-3 to M-6, lows 1, 2, 4, 5, 7–9 and note 3.
    • 486453fc takes lows 3 and 10.
  • Where the fix follows the sources over the review:

    • H-4 stays an open case, because no capture holds (k)(4)(C)'s terms.
    • H-7's staffer served in Federal employ on July 18, 1984, so 2601(d)(1) governs that service, not (d)(2), and the February 1987 service stays covered. The fix still carries the clause, which excludes a (d)(2) staffer through the delay.
    • M-4 sits in the nonresident-alien family with no start date, because no capture gives one.
    • Stands: the rule on aliens working abroad before 1984 comes from 410(a)'s preamble and reaches every employer, so it falls outside the federal family; no capture dates an agreement before 1982, so the earlier clergy rows carry no agreement exclusion (low 6); and the 1973 gross-concept row cites 2025 guidance.
  • Corrections to earlier messages:

    • 200f24d4's message says the 1984 axis_exception "routes" fiscal-year church service. No code reads it; since 6787b329 the earlier rows' cases carry the date.
    • a01f60c2's 58 government_level cases, 93 tied rows and 32 federal limited cases, and 6787b329's 59 and 94, held when written. The final figures read 67, 100 and 36.
  • Mutants: at 486453fc, from the host, the tests kill all 37 mutants in the lane's set, among them the review's five survivors, its District and uniformed mutants, a mutant restoring substring matching and one restoring all 64 changed rows.

  • Round 6 (delta, at 486453fc): REVISE.

    • Highs (3): H-1, a section 306 certificate excluded a minister's United States ministry; H-2, the "employing" membership text made a statewide-system member a nonmember (both from round 5's sweep); H-3, the Communist-organization row applied the post-1977 year test from 1968.
    • Mediums (14): the oracle could not see a broadened case (nine of ten mutants survived); open cases refused workers on whom their readings agree; the units person test; the order control-abroad case; 410(a)'s base definition; the unreachable casual 1977 case; the worded-condition guard and the chaplain limit; silent nonprofit choices; the undated agreement exclusion; two federal readings; closed and over-wide readings; the election agreement amount; "another individual"; the Invariants.
    • Also: thirteen lows and three notes.
  • Fix (seventeen commits, 740138a7 to f926fe30):

    • 740138a7 holds the section 306 certificate to its Canadian service (H-1).
    • ba1b4a13 counts a statewide system that covers the position as membership (H-2).
    • 16fb9b75 tests the quarter before 1978 (H-3).
    • 15c09d93 narrows or settles the open cases (M-2).
    • 56c40b2f gives the units church cases the service test, drops the control-abroad case and records 410(a)'s base definition (M-3 to M-5, low 3).
    • 0b3deb74 keys the 1977 casual cash test on the payment date and checks case thresholds in the loader (M-6).
    • 4a545434 adds just-miss workers and their guards, pins deferrals, reasons and ties, and deletes the vacuous level properties (M-1).
    • 80cc8e2c carries the government-chaplain limit and widens the worded-condition guard (M-7).
    • 60200c1e opens or limits the silent nonprofit, agreement and farm-arrangement choices (M-8 to M-10, M-12, M-13).
    • edef65df and a174270c remove scratch-note citations and tidy the module (low 2, code quality).
    • 4a4f0579, fbfc0672, c3c0b4e2, 852da875 and 132efcef open the sect, gross-concept, 401(a)-trust, pre-1983 agreement and minor direct-seller readings, and carry (G)'s definition of "subject to" (M-8 to M-11).
    • f926fe30 corrects the State and local residuals' wording (low 5).
  • Where the fix follows the sources over the review: drop_order_control_election has no case to drop after M-4, so its successor drops the abroad case's place condition.

  • Left for round 7: the over-wide refusals of the open rows (stated limits) and lows 1, 4 and 6 to 13.

  • Corrections to earlier messages:

    • 6392e710 says a case "reworded, narrowed or broadened" fails a worker; broadening fails one only where a just-miss worker exists (M-1).
    • 6787b329 and the round-5 fix report say the review's $80 units worker reaches church_combined_below_100; it reaches the residual, whose $400 floor gives the same outcome (low 3).
    • The round-5 fix report's "Choices for review" 6 (the units person test) and 7 ("employing") did not hold (M-3, H-2), and round 6 closed its H-4 open case (M-2).
    • Round 6's messages carry interim counts that held at their own commits. Round 6's final figures read 39 open cases, 94 readings, 360 cases, 106 tied rows, 369 unread facts and 1,432 workers.
    • edef65df left one test failing; a174270c fixes it.
  • Mutants: at f926fe30, from the host, the tests kill all 29 mutants in the lane's set, among them the review's nine survivors and one restoring every row this job changed, and 36 of round 5's 37. The other, r5_units_church_cases_dropped_1968, no longer fails the one test the set names for it, because low 3's fix took that outcome off the row; it fails 6 sweep tests.

  • Round 7 (delta, at f926fe30): REVISE. Worker numbers in this entry hold at f926fe30; at a9aae687 each falls by one, because 43deeb60 removed worker 248.

    • Highs (2):
      • H-1: round 6's membership text made a member of their employer's qualified system a nonmember for a second, excluded position. Round 6 regressed here, and two of the review's repros came out covered.
      • H-2: scope_gaps and the four federal residuals misstated 410(a)'s preamble against their own capture.
    • Mediums (10):
      • the section 306 certificate read contributions per service;
      • the registry closed the agreement exemption from 1983-04-20 with no capture;
      • the pre-1983 agreement open cases refused workers whom both readings exclude;
      • the registry left open a 1973–1987 church TSA question that the captures settle;
      • electing-church pay from an employer paying under $100 fell to the units residual;
      • the casual rows closed §351(d) with false support;
      • the minor direct-seller case had no newspaper limit;
      • four open cases refused workers whom both readings decide alike, and 521 cooperatives followed 3121(a)(16) silently;
      • the (k)(4)(C) window missed an employer that resumed paying;
      • round 6's test docstring, 4a545434 and an Invariant overstated what the tests check.
    • Also: eleven lows and five notes.
  • Fix (25 commits, e83ac7cd to 22edbd38):

    • e83ac7cd and 1986c1b6 capture 26 C.F.R. 31.3121(b)(7)-2 and decide membership entity by entity (H-1).
    • fb0fd700 names 410(a)'s (A)(ii), (B)(ii) condition and (C) in the scope gap and residuals (H-2, low 9).
    • 764b730a reads section 306(a)(3) as who may file (M-1).
    • f07e2bee captures 1401 and 433 and closes the pre-1983 agreement cases (M-2, M-3).
    • 1f5d0ef2 closes the church TSA question (M-4).
    • 239ef16f keeps under-$100 church pay out of the units rows (M-5, low 7).
    • 95cfe0a2 records the §351(d) payment-date reading as CE1's choice (M-6).
    • f57f380a limits the minor direct-seller cases to 410(a)(14) work (M-7).
    • 4774f453 limits four open cases and opens 521 (M-8).
    • e5129c32 rereads the (k)(4)(C) window (M-9).
    • 95fa4faa adds government-level just-miss workers, narrows the docstring and widens the parameter guard (M-10).
    • 43deeb60 dates the army-corps case from 10 U.S.C. 2360 (lows 5, 6).
    • 0fe75bde limits the FEPCA case to 410(a)(5)(A) service (low 11).
    • dc674bc0, c55ebd95, 25b02a6a and 8fc6cf34 fix labels, quotes, the agreement amount's period and stale text, and add the run-together-sentence guard (lows 2, 3, 4, 8).
    • 3b884119, 0b93343f and 6d7cf040 fix the threshold-year check, the fixture-mutating test and the import-time parses (low 10).
    • c9b32a42 fixes the rest of low 5's fixture defects.
    • 423b050a and 22edbd38 add just-miss workers for the two units $400 church cases and the gross concept's pension case. a36f0734 gives eight just-miss workers a text of their own for the fact they miss.
  • Where the fix follows the sources over the review or brief:

    • The captured regulation settles worker 1348 as covered (Example 2; (e)(2)(v)); the review found no capture that settles it.
    • The 1401 capture closes M-3's open cases instead of conditioning them.
    • se_nonresident_alien_1968_1983 gains the overrides its description claimed.
    • The conformance module parsed the registry four times at import, where the review counted two.
    • Worker 1388 and the 7873 case text both carried the defect.
  • Open questions the rows name:

    • 10 U.S.C. 2360: the registry reads the army-corps case as reaching only a student whom the federal government otherwise employs. One reading of POMS RS 01901.340 C.5 excludes all 2360 aide service, and the federal family can't express that reading. No published example depends on the difference.
    • FEPCA waivers: no capture dates the waiver law, so the open case still reaches later service.
    • Section 351(d): CE1 chooses the payment date for the casual cash test and names the conjunctive reading, the one nonprofit_1968_1977 applies to 409(p).
    • Pub. L. 99-514 section 1882(a): no capture dates it, so the sect case stays open.
    • (G)'s window: its end, 1988-11-09, and worker 1421's new date rest on the review; no capture checks them.
    • Requalified staffers (workers 333, 334 and 336): the after-official override treats them consistently, but no capture settles their treatment.
  • Corrections to earlier messages:

    • 4a545434 claims just-miss workers for "the level … conditions of this round's changed cases". fers_or_fsps_election, after_official_service_from_1988_11_10 and the army-corps cases had none until 95fa4faa (M-10(b)).
    • The PR's Invariant "ties every parameter that states a condition in words" overstated a guard that reads a fixed word list (M-10(c)).
    • 56c40b2f, round 6's low-3 docstring and round 6's PR-body line say the review's $80 units worker reaches the residual and its $400 floor. Former 411(a)(13)(C) keeps that pay out, and church_employer_below_100 now decides it (M-5).
    • f926fe30's message and residual text call 410(a)(7)(C)–(E) the District clauses. Only (D) names the District of Columbia (low 2).
    • The PR's scope line said service abroad counts as employment "only under 410(a)(B)". (A)(ii) and (C) also reach it, and (B)(ii) needs a 3121(l) agreement in effect (H-2).
    • Round 6's test docstring claimed a just-miss worker for every condition of a changed case; 95fa4faa narrows it (M-10(a)).
    • e83ac7cd says "seven workers' prose now cites the rule". Six cite it; the seventh, worker 1387, only rewords.
    • e83ac7cd says the two CFR editions "differ only in (d)(2)(i)'s cash-out amount and apostrophes". Their edition headers and source notes differ too: the 2025 edition adds T.D. 8794 (63 FR 70338, Dec. 21, 1998) and T.D. 8891 (65 FR 44682, July 19, 2000).
    • 43deeb60 says "Captures 246 -> 247 files". The folder went from 248 to 249.
    • 3b884119's message leaves the four import-time parses as stated limits; 6d7cf040 cuts them to one.
    • An automatic commit step created 95fa4faa with the subject "fixup! CE1: date the army-corps case …", no body and no trailer. It holds M-10's government-level just-miss workers and test edits.
    • e83ac7cd through 95cfe0a2 left test_every_covered_required_condition_names_its_failure failing; 1986c1b6 fixes it.
    • The other interim figures in round 7's messages match their own commits.
  • Left open: round 6's lows 1, 4, 6, 7 and 9–13.

  • Merge turn (4b484f91, a9aae687): 4b484f91 merges master 97003ac2, and with it Federal SSI interface and source-to-input contract (SSI0) #573 (SSI0) and Aggregate-table captures and readers, part 1 (D4) #574 (D4). Each added a block to the birth-evidence exclusions, their expected tuple and the reachability test, the three places where CE1 adds its own. The merge keeps master's blocks and puts CE1's after them in all three places. Both sides add src/populace_dynamics/income_resources/__init__.py as the same blob, and D4's block already lists it, so CE1's exclusion blocks keep only coverage_rules.py. a9aae687 recounts the tiers on master's files: CE1 adds 83 unit and 2,199 artifact tests. From 22edbd38 to a9aae687, 311 paths changed: the two tier files, the two birth-evidence files that combine both sides, and 307 paths that now match master's blobs. None of CE1's other paths moved.

  • Mutants: at a9aae687, from the host, the tests or the loader kill 39 of r7_mutants.py's 51, among them the review's D1 and D6b and one that restores every row round 7 changed. Nine survive as stated limits: D3, D4, D5, D7, D8, D10 and the three prose-only row mutants. Two more survive their named tests. Undoing 95cfe0a2's row changes fails test_closed_rows_name_their_operative_reading when the whole conformance module runs, though the mutant's named tests leave that test out. Dropping Mae, the (k)(4)(C) just-miss worker that e5129c32 added, passes the whole conformance module, because 25 other INVENTED workers just miss the (k)(4)(C) case on nonprofit_coverage_waiver. r7_unseen_limit_lowered expects a limit of 171, and 423b050a lowered it to 169, so the mutant stops at its precondition; at 169, the same mutant fails test_unseen_conditions_are_a_stated_limit. Of round 6's 29, the tests or the loader kill 27. r6_membership_employing_restored and r6_unseen_limit_raised stop at their preconditions, because round 7 rewrote the membership text and lowered the limit.

  • Round 8 (delta, at a9aae687): approved, with no high or medium finding and no regression against the parent; four low findings, eight stated limits and seven notes. The reviewer read all 31 changed rows against their captures and found all 115 new quotes in them. The reviewer also decided 42 sampled workers blind: the registry and fixture agree on all 42, and each of the reviewer's seven substantive differences settles for the registry.

    • L-1: nonprofit_1968_1977's 521 case still credits the 1978 row with a reading that 4774f453 opened.
    • L-2: the Invariant on overrides stated the loader's rule backwards.
    • L-3: the Invariant on re-ranking claimed more than the tests check. Moving se_units_1984_1985.church_employer_below_100 to last passes every test, because no worker can tell the ranks apart.
    • L-4: the scope gap and the four federal residuals describe section 321(b)'s amendment without section 321(f)'s election.
    • Mutants: of the reviewer's 14, 3 fail a test and 11 survive. The eight stated limits cover nine survivors, L-3 covers one, and the last raises UNSEEN_CONDITION_LIMIT, an upper bound by design.
    • Notes: the round-7 entry numbers workers as f926fe30 did. At a9aae687, workers 820, 839 and 1123 carry a bare "(NOTE)", worker 391 quotes a text the residual no longer prints, and worker 523's prose ends "The registry refuses. M-6." though it decides section_105b_departed_employee_request. A test comment keeps round 6's 24 of 374 as history. Section 351(d) stays a disclosed choice.
  • Body update (no commit; the head stays a9aae687): this body corrects L-2 and L-3, adds the round-7 entry's numbering clause, and states L-1, L-4 and the eight gaps under Stated limits.

Plan

  1. The coordinator merges this PR in the tier-count slot, by squash. If another PR lands first, this branch merges master and recounts the tiers.
  2. A text-only follow-up corrects the two registry texts that Stated limits names.

Tests

  • The two CE1 modules: 2,282 tests, 83 unit and 2,199 artifact: the same unit count and 2,096 artifact more than at ea599b92.
  • With the birth-evidence seal tests: 2,294 passed at 4b484f91, from the host, and a9aae687 changes only the two tier files. The one failure, the reachability test's Track U assertion, needs modules this sparse clone leaves out; the CE1 block before it passes, and CI runs the whole test.
  • Mutants: each guard that round 3 added fails its tests when a mutant removes its clause, and each new data test fails on ea599b92's registry. 37 runs, 37 killed. At 210a5c85, from the host, the tests kill the follow-up's 15 mutants and 12 of round 4's 13, among them the review's three gap probes and one mutant per new guard and data test. The thirteenth, r4_old_rows, fails 30 tests across six of its seven expected tests; the seventh passes because none of its covered entries changes outcome on those rows. Round 5: at 486453fc, from the host, the tests kill all 37 mutants in the lane's set, among them the review's five survivors, its District and uniformed mutants, a mutant restoring substring matching and one restoring all 64 changed rows. Round 6: at f926fe30, from the host, 65 of the 66 mutants in the two sets fail their named tests, and the sixty-sixth fails the sweep tests (see the Review section). Round 7: at a9aae687, from the host, the tests or the loader kill 39 of the 51 round-7 mutants and 27 of round 6's 29. Nine survive as stated limits, and the Review section accounts for the other five.
  • Rebuild: the registry rebuilds byte for byte from its fragments, and each cover-less IRS extract has the same bytes as qpdf's selection of the same pages from its original.
  • tests/track_u2/: CI runs it; this sparse clone leaves out files its protected-bytes test hashes.
  • Lint: black -l 79 and ruff check pass CE1's four Python files and the two merged birth-evidence files.
  • Tier policy: a9aae687 recounts the tiers on master 97003ac2's files: unit 23,736, artifact 6,726 and 32,790 in all. CI's tier policy test checks that count on the full collection.
  • CI: at a9aae687, CI passes, the tier policy test included: run 41640791929's four pytest shards report 31,689 passed, 1,116 skipped and 1 xfailed.

axiom: n/a: a cited coverage-rule registry for the microsim's covered-earnings classifier; no PolicyEngine country-model or RuleSpec encoding changed

🤖 Generated with Claude Code

MaxGhenis and others added 3 commits October 24, 2026 18:07
Add the row and citation types, schema validation, the capture-hash check
for every cited source, and the lookup by family and income year or date.
The lookup refuses with a typed error in a gap, and an overlap must be a
named alternative. Invented-row tests cover the schema and the refusals,
with Hypothesis properties and a differential rounding oracle.

Built by a Subfleet build lane; committed by the orchestrating session.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Pin 135 public captures (statutes, Statutes at Large, CFR, POMS and IRS
publications) with their URLs, retrieval times, sizes and SHA-256, and
assemble 90 coverage rules across 49 families and 20 threshold series.
Fourteen rows refuse unsettled historical questions, and every rare
exclusion carries both readings with no negligible candidate chosen.
Conformance tests check the cited hashes and passages, every family and
year coordinate, and five published worked examples.

This is partial: the open questions in the registry list what remains.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The coverage rules are opt-in, and nothing in the historical projection
imports them. List the two new source files as post-review exclusions in
the birth-evidence script and its expected tuple, and assert that neither
module is reachable from the birth-evidence reducer.

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

vercel Bot commented Oct 24, 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 3, 2026 1:03pm UTC

Request Review

A Codex build lane did this work in a workspace that cannot commit.
Its eight steps edit the same fragment files, so they land together.

1. Move the registry out of the pinned-bytes path. The registry, its
   fragment files and assemble_registry.py move to
   data/external/income_resources_ce1/, where review diffs show them
   (.gitattributes marks data/external/snapshots/** binary). Captures
   and manifests stay put. The loader and tests take separate registry
   and capture roots, with an invented-capture test of that.
2. Remove the duplicate capture of 97 Stat. 65. statute_97_pg65.pdf
   and govinfo_statute97_pg65.pdf were byte-identical; the first goes,
   and every citation, manifest and inventory entry points to the
   second, keeping both retrieval events.
3. Pin SSA's coverage-threshold table from the Internet Archive's copy
   (snapshot 20261013081352), since SSA refused the direct request.
   Its domestic-employee and election-worker values for 1994-2026
   agree with the registry's IRS-derived values. Its pre-1994 footnote,
   $50 per quarter for domestic employees, agrees with the registry's
   1968-1993 threshold and the statute. The original SOURCE_BLOCKED
   record is kept, with its archived resolution.
4. Extend the prevalence search records for rare exclusions and for
   26 U.S.C. 1402(e) exemptions. No search found a cited, pinned bound
   for a whole target population, so every strict reading stays
   unresolved, every negligible_candidate stays null, and neither
   reading is chosen.
5. Settle historical coverage questions where a primary source does.
   Ten of the fourteen open questions close, and four stay open with
   their searches. Conflicting guidance stays as named options.
6. Add self-employment modifiers and earnings-test history: 18 rules
   in nine families (rentals, specified passive income, Puerto Rico,
   territorial residency, sections 911 and 931, treaty fishing, health
   insurance, partner death), the original pre-1978 subparagraph (D)
   and the section 416(l) retirement-age schedule. The earnings-test
   concept accessor still refuses every year whose dependencies are
   unverified.
7. Pin past editions of the Code sections the histories rely on, as
   official section granules where they exist, and label what each
   edition establishes. Editions that could not be found are recorded,
   not inferred.
8. Add nine published worked examples, from IRS Publications 15, 51,
   517 and 926, POMS and the State and Local Coverage Handbook, each a
   separately collected conformance test against the lookup that cites
   its passage.

The registry now holds 114 rules in 58 families, 21 threshold series,
5 table definitions, 18 published examples and 9 open questions. Every
rule is still awaiting_ce2.

Invariants: those of the original CE1 assignment, each with its
Hypothesis property, now sampling the larger registry. New properties
cover the archived table's values, the 1968-1993 quarterly threshold,
the 1985-2026 fishing per-trip bound, the earnings-test accessor's
refusal of unverified years, and a stale generated registry against
its fragments.

Captures: the snapshot folder grows from 171.0 MB to 219.0 MB. New
captures are section HTML or XML where one exists. Two whole-issue
PDFs were needed for text no smaller official form held: the 1975
Federal Register issue (29.4 MB) and the 1965 act (24.8 MB).

Verification: the four prescribed test files pass (83 tests), and
black, ruff and git diff --check pass. I checked that the duplicate
PDF and the archived table match their recorded hashes. The build
lane reports that all 336 manifest records verify and that the
registry was byte-identical after the step 1 move.

Co-Authored-By: Codex <noreply@openai.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The capture folder held five whole-act or whole-issue PDFs, 125.6 MB in
all, for a few cited pages each. Each is now a page-range extract made
with qpdf --deterministic-id --empty --pages from the hashed original:

- Pub. L. 92-603 (86 Stat. 1329): 31.3 MB, 165 pages -> 1.90 MB, 10 pages
- Pub. L. 90-248 (81 Stat. 821): 21.0 MB, 115 pages -> 0.98 MB, 5 pages
- Pub. L. 98-21 (97 Stat. 65): 19.0 MB, 108 pages -> 3.45 MB, 20 pages
- Pub. L. 89-97 (79 Stat. 286): 24.8 MB, 138 pages -> 0.76 MB, 4 pages
- Federal Register, 10 July 1975: 29.4 MB, 172 pages -> 0.63 MB, 3 pages

Each act keeps its first page, every page of each cited section from
its heading to the next section's heading, and the page with its
approval date. The Federal Register keeps its cover and the two pages
holding FR Doc. 75-17887 from its heading to its filing line. Every
kept page's pdftotext output equals the same page of the original, and
the two pinned text derivatives regenerate byte for byte from the
extracts. The inventory and manifests record each original's file,
size, SHA-256, page count and the commit that holds it; citations that
named an original PDF page now name the extract page too.

Also removed, because nothing cites them and no manifest lists them:
IRS Publication 17 for 1999-2007 (20.4 MB; their inventory rows keep
URL, size and SHA-256 with status not_retained), the three whole-act
text renderings of the originals, and 31 other unlisted text
renderings.

The capture folder goes from 219.0 MB and 261 files to 78.1 MB and 218.
Two new conformance tests: every capture file has a manifest entry
whose size and SHA-256 match, and every entry names a file; each
extract records its original, and each derivative of an extract names
the extract's current hash. Corrupting an extract, adding an unlisted
file, restoring an original or changing a derivative's source hash
makes them fail.

The originals stay in this branch's history, so this PR should land by
squash.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Both branches extend the birth-evidence check's post-review exclusions and
its reachability test. The resolution keeps master's SM1 and D1a lines,
then CE1's coverage-rule lines and reachability block.

The CE1 modules' tests and the birth-evidence tests give 80 passed. One
fails in this sparse clone only:
test_post_review_exclusions_are_unreachable_from_birth_evidence's Track U
assertion needs two files the clone leaves out. CI runs it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The round-1 review (an Opus 5.5 reviewer, at 39b5220) asked for
revision. A GPT-6.1 Sol build lane made these changes; the lane could not
write the git index, so this commit records its working tree.

High:
- H1: tribal-council service now defaults to noncovered, with coverage
  under a section 418a agreement as a case (42 U.S.C. 410(a)(22)). The
  Act's pinpoint runs through 132 Stat. 2896.
- H2: conservation reserve payments before 2008 are an open row that
  refuses, and defers to the base definition and rental rules.

Schema (M7, M12): coverage_rules.ce1.v2. A case has trigger facts and a
consequence from the enum, and each row states its residual default,
which equals its top-level consequence. Lookup returns a row's cases for
CE3 to evaluate. An open legal row names its alternatives, has a null
consequence and no chosen reading, and refuses lookup; overlapping named
alternatives need an explicit selection. The 17 case-bearing rows and
the nine open rows were migrated across the four rule fragments.

Rows against sources:
- M1: the community-income procedure is open through 2004-03-01; the
  verified successor starts 2004-03-02.
- M2: agricultural pay separates commodities from cash equivalents from
  1995-08-07 (POMS RS 01402.020, pinned; SSR 95-3P refused the request).
- M3: both federal regimes carry the legislative-branch case (P.L. 98-21
  section 101(a)(1), 97 Stat. 68).
- M4: the early fishing row holds no later-law parameters or chosen
  reading. P.L. 104-188 section 1116(a)(3) applies the amendments to
  1985-1994 unless the payor treated the pay as FICA-taxable when paid;
  the row follows the Act.
- M5: the irrevocable 1968 fee-office election is a noncovered case
  (P.L. 90-248 section 122(c)(2)).
- M6: unsupported attributable-deduction parameters are gone; those
  passive-income periods are open, with named alternatives.

Thresholds (M8): the four quarterly scopes and the monthly tips scope
aggregate within one employer-employee relationship, the module documents
each scope, and the test's wrong scope assertion is replaced.

Tests (M9-M11): assemble_registry.build() is exposed and the tests
compare its whole output byte for byte, open_questions included. The
published-example tests compute each example's outcome from its inputs,
the path test uses real escapes, and the strict-reading and quarter
nondecrease guards are each tested.

Low findings 1-27 and the notes: taxable-year starts on the options and
passive boundaries, with lookup_date for fiscal years; corrected
pinpoints, page ranges and labels for later-edition evidence; repaired
fused prose; full citations required wherever a capture is named,
table definitions included; unsupported monotone flags removed from 13
constant series; the government fact-extension fragment removed and
government RET history required; pdftotext flags corrected, with both
derivatives regenerated byte for byte; one retention rule for every
capture, which removes the 29 uncited captures; signature notices on the
five extracts; year bases on the five reconstructed examples; caller
errors as TypeError or ValueError; scripts and styles stripped from
source text. New captures: 26 U.S.C. 761, the 1996 CFR 404.1082 and
5 U.S.C. 8331's effective-date notes, each in the round-1 manifests.

Low 28, corrections to earlier messages, without rewriting history:
1be4b75 added 13 worked examples (5 to 18); the nine Pub 17 PDFs were in
the manifest, and were removed as redundant and uncited.

The registry now has 115 rows in 58 families, 21 threshold series, 22
rows with cases, 14 open legal rows, four rows whose residual is open
with three cases each (clergy and material participation), 17 worked
examples and 14 open questions.

Checks:
- The three CE1 test modules through the wrapper: 110 passed. The one
  failure is the birth-evidence reachability test's track-U assertion,
  which needs modules this sparse clone leaves out; CI runs it.
- Tiers over the two CE1 modules: unit 56 (+27), artifact 42 (+3).
- The build lane reports that removing each guarded clause fails a test
  (the employer FICA exclusion, the path-escape guard, open_questions in
  generation, the strict reading and quarter nondecrease); the round-2
  review reruns these.
- black -l 79, ruff and git diff --check are clean.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Cases now carry a row-unique case_id and an integer precedence that runs
exactly 1..n; the matching case with the smallest value decides and the
residual applies only when none matches. CoverageRule.resolve applies the
rule, and an optional overrides list names the cases a case displaces by
statute (the loader checks each ranks below it and changes the
consequence). Ranking was chosen over mutual exclusion because the
statutes are exclusions with exceptions and exceptions to those
exceptions; exclusive free-text cases would repeat every negation in text
no loader can check. Schema moves to coverage_rules.ce1.v3.

The federal 1984-1986 and 1987-2026 rows follow 42 U.S.C. 410(a)(5)-(6):
the 409(h) retired-judge payment exclusion and the (a)(6) exclusions
first, then the (C)-(F) official-position exceptions, the 1988 carry-
forward (Pub. L. 100-647 section 8015(c)(3)) and the (H) FERS/FSPS
election, an open FEPCA waiver case, the Pub. L. 98-369 section 2601(d)
requalification, the (G)(i)-(iii) legislative-branch exceptions, and only
then the (B)(i) grandfather and (B)(ii) annuitant exclusions. The prose
overrides fers_election, legislative_branch, persistent_exclusions and
retired_federal_judges are now cases. A Member of Congress serving since
1983 resolves to covered, as does a grandfathered FERS elector.

Hypothesis properties cover first-match resolution under any input
order, the 1..n ranks, override ordering, caller errors from resolve and
the federal statutory order on the real registry.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis and others added 9 commits October 26, 2026 00:10
A closed row's residual is now what the law gives when none of its cases
holds. For a family's exclusion that is "covered" at family level: this
paragraph does not exclude, so the other families apply. Each statutory
condition on an exclusion becomes a noncovered case, with the statute's
exceptions ranked above it through overrides.

Where a family's own law gives no consequence for the matched facts, the
case or residual is "deferred" and names the deciding families in
defers_to. The loader refuses a deferral without targets, a defers_to on
any other outcome, duplicate or blank targets, self-deferral, an unknown
target family and any family-level deferral cycle.

parameters.case_free_basis records why a condition named in a case-free
row changes no consequence; the loader allows it only on closed,
case-free rows that neither exclude nor defer. Consequence strings stored
in parameters move into the cases that already carried them.

The federal_home_loan_bank transition now reads service after December
31, 1966 (Pub. L. 92-603 section 125(a)(2)), not 1965.

Tests: a conformance check that every closed row whose description or
parameters name a condition carries cases (fails on the 94219ed rows:
51 flagged, 13 stored consequences), 14 repros of failed conditions,
an exhaustive deferral-target check, and Hypothesis properties for the
deferral schema, the acyclic graph (against graphlib) and
case_free_basis. 14 of 14 step-2 mutants fail a named test.

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

POMS RS 01402.020 A says SSA excluded noncash transfers from wages
before SSA Ruling 95-3P, published August 7, 1995, and that certain
noncash transfers are wages from that date. agricultural_service_1988
now carries a noncovered case for a cash-equivalent transfer without
dominion and control before 1995-08-07, ranked between the genuine
noncash case and the from-1995-08-07 case, so the date condition
decides instead of falling through to the residual.

POMS A names no date axis for the ruling's effective date; the row
records the service-date reading it uses and names the payment-date and
determination-date alternatives (parameters.ruling_effective_date_axis).

The agricultural_commodity oracle now evaluates each case's date text
("before" or "on or after") on the service date and resolves through
first-match precedence. A Hypothesis property over 1988-2026 service
dates, pinned at the review's invented 1990 transfer and at 1995-08-06
and 1995-08-07, fails on the 8476dcf rows.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…iew r2 MED-2)

Review r2 MED-2 found rows that refused every year although a capture
verifies the rule. Family-years refusing in the review's probe fall from
343 of 3,422 to 216.

- Passive income: 411(a)(2)'s exclusion of the dividends and interest is
  returned in every year 1968-2026 (59 refusing years to 0). Only the
  deductions attributable to the excluded receipts, and from 2008 the
  title 42 "benefits" wording for obligations not in registered form,
  stay open, as case-level sub-questions with named readings.
- Possessions: Pub. L. 100-203 section 9023(b) states no effective date,
  so the successor 411(a)(8) applies from enactment on 1987-12-22. Only
  1968 to 1987-12-21 stays open. Adds a page extract of the act
  (101 Stat. 1330) and its text derivative, with the original's URL,
  size, SHA-256 and page count.
- Rental: 411(a)(1)'s real-estate exclusion is returned for 1968 through
  1996-03-31 (29 refusing years to 0). Only the regulatory detail on
  occupant services, parking and storage space, and dealer holdings
  stays open.
- The 1996-04-01 split is a CFR edition date, recorded on both rows as
  parameters.evidence_only_boundaries, which the loader validates and
  pairs across adjacent rows.
- federal_1987_2026's FEPCA waiver case now names its legal question
  (FEPCA_WAIVER_LAW_UNCAPTURED) and two readings, so resolve refuses
  instead of returning a bare "open" that reads like missing facts.

Loader: a case with open_reason and two or more named open_alternatives
is a legal sub-question; its consequence must be open, and resolve raises
OpenRuleError when it decides. An open case without one still means
missing facts and is returned.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rs (review r2 lows 1-4, 14)

Low 1. Each v2 guard now has a failing test: two or more alternatives on
an open row, none on a closed row, an open reason for a null consequence,
cases outside parameters, the case-condition type, unique alternative
names, no expected_parameters on an example, and recorded searches for a
null prevalence bound. The table-quote test is a Hypothesis property over
quoted flags whose fixture passes every earlier check, so the quote rule
alone decides it.

Low 2. Example income years, RET verified_income_years and threshold
years are registry data: a bad value raises RegistryValidationError.

Low 3. An unknown family, case, threshold, table or alternative raises
UnknownIdentifierError (a LookupError). CoverageRegistryError derives from
Exception, so `except ValueError` no longer catches a legal refusal.

Low 4. parameters.effective_basis is an enum: service_date (default),
taxable_year_start or payment_date. A non-default axis needs an
effective_basis_description that quotes its effective-date clause, and a
conformance test finds each quoted span in a capture the row cites. A
family keeps one axis. Directors use taxable-year starts (Pub. L. 100-203
section 9022(c); Pub. L. 101-508 section 5123(b)); CRP and public-office
fees use payment dates (Pub. L. 110-246 section 15301(c); Pub. L. 90-248
section 122(c)(1)); options dealers keep taxable-year starts (Pub. L.
98-369 section 102(c)(2)).

Passive income moves to payment dates, against review r1 low 1. The
captured 42 U.S.C. 411 notes make both boundary amendments "effective"
on calendar dates (Oct. 4, 1976, section 703(r) of Pub. L. 95-600; Oct.
1, 2008, section 4407 of Pub. L. 110-246) and state no taxable-year rule,
so a 1976 or 2008 year lookup now returns both wordings. Family-year
refusals stay at 216 of 3,422.

Low 14. threshold() checks every index input even when a published value
decides; an alternative must name a closed row's alternative, and a
reading of an open question raises UnknownIdentifierError instead of being
ignored; no line exceeds 79 characters; both casual-labor thresholds carry
a description and the loader rejects an empty one. The fishing record
follows in the next commit.

Mutants: 29 of 29 killed (24 code, 5 data), logged under the round's
ce1-r2-fix/logs/step5a-mutants/.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ows 8-11, 14)

Low 8. se_conservation_reserve_1968_2007 drops parameters.named_alternatives,
which repeated its two open readings under other names. open_alternatives
is now the only list. test_open_readings_are_named_once_and_described_in_prose
checks that every open reading is named once per row and described in prose
(36 descriptions, none a JSON dump).

Low 9. nonresident_alien_vocational_service now has three rows.
- Pub. L. 100-647 section 1001(d) is headed "AMENDMENTS RELATED TO SECTION
  123 OF THE REFORM ACT". Its (2)(E) adds the M class to 42 U.S.C.
  410(a)(19).
- Section 1019(a) makes the title's amendments take effect as if included
  in the Reform Act provision they relate to.
- Tax Reform Act of 1986 section 151(d) applies section 123 to taxable
  years beginning after 1986-12-31.
The two legal readings, as_if_included_in_tra1986_section_123 and
from_enactment_1988_11_10, therefore agree before 1987. A closed
1968-1986 row (M-1 service covered; F and J excluded) replaces that part of
the refusal. The open row now spans 1987-01-01..1988-12-31 and records
section 151(d)'s grant-date limit as its unverified dependency. The 1989
row's before_this_window names both earlier rows. The "retained locator"
alternative is gone.

Review r1 accepted a refusal for all of 1968-1988. The sources settle
1968-1986, so the rows follow the sources. The Act was captured by plain
request to govinfo (2026-10-26T13:18:26Z) and kept as a page extract:
- the original: 75,705,438 B, sha256 e8a5ee6e..., 471 pages;
- the extract: original PDF pages 1, 8-11, 252 and 471, 1,115,690 B;
- a pdftotext -f 2 -l 6 -layout derivative of the extract.
The cited quotes are checked against the derivative.
test_vocational_readings_agree_before_1987_and_refuse_between pins the
three windows and the cited heading.

Low 10. 18 fused tokens are separated, each replacement with an exact
expected count, among them section_1882a, 86 Stat. 1329 (1972), 81 Stat. 821,
pp. 841-842, "within, and not with," and section 933 of the Internal Revenue
Code. "IRS 2004-10" is only spaced; its document type was not identified.
The GAO numbers follow GAO's report-number form; they were not re-fetched.
test_published_prose_has_no_fused_tokens scans prose, identifiers and keys
outside verbatim fields.

Low 11. Each worked example's source_passage now quotes the whole
published example. Where a capture's columns interleave (the 2022
Gavrielle/Dan wages), supporting_passages adds the other lines. The loader
requires supporting_passages to be nonempty text
(test_supporting_passages_are_nonempty_text, a Hypothesis property).
test_published_amounts_sit_in_their_cited_passages checks that every
dollar amount and week count an example states appears in its cited
passages.

Low 14. fishing_crew_share_service_1989 records its operative reading,
conditional_1996_clarification, with its basis in Pub. L. 104-188 section
1116(a)(3)(A). The two communist-organization rows and
newspaper_service_1996 now record {basis, operative_current_text}
resolutions instead of prose. test_closed_rows_name_their_operative_reading
checks that each of the 8 closed rows with named options selects exactly
one of them, with exactly one operational status per group in the list
form.

Registry: 117 rules (was 116). Refusals over 1968-2026 family-years: 216
before this commit, 197 after. Tests: the three CE1 files run 188 tests;
187 pass, and the known failure
test_post_review_exclusions_are_unreachable_from_birth_evidence remains. The
14 step-5b mutants (2 code, 12 data) are all killed. Fragments rebuild byte
for byte from the step-5 scripts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… r2 lows 5-7, 13)

Low 5. capture_manifest_ce1c_government.txt and
capture_manifest_ce1c_modifiers.txt now record `pdftotext -f 2 -l 3 -raw`
and `pdftotext -f 2 -l 2 -layout`. pdftotext 26.09.0 exits 99 on the
fused `-f2` forms and 0 on these, and each command regenerates its
derivative byte for byte. test_recorded_pdftotext_commands_parse parses
every pdftotext call recorded in the capture metadata and the registry
against pdftotext 26.09.0's options, and checks each derivative's -f/-l
range against its pdf_pages. A Hypothesis property tests the parser.

Low 6. sources_government.json now marks poms_rm_04907001.html
removed_uncited_no_derivative_dependency, as source_inventory.json does.
test_recorded_captures_are_present_or_say_why checks every metadata row
that records a file and a SHA-256. The file must be present with those
bytes, or the row must say why it is not:
- status not_retained with a reason;
- removed_uncited_no_derivative_dependency;
- removed_duplicate_of_cited_capture, with duplicate_of naming a present
  capture.
All rows for one file must agree. A Hypothesis property tests the checker.

Low 7. pdftotext finds no text on the scanned pages se_units_1984_1985
cites (one form feed each), so their OCR text is kept and cited:
- irs_schedule_se_1984.pdf.txt and irs_schedule_se_1985.pdf.txt are
  restored from 08b898e, the parent of 28becb8;
- the 1985 Form 1040 instructions' text is now
  irs_form1040_instructions_1985_extract.pdf.txt, from extract page 2
  (original PDF page 31).
`pdftoppm -r 140 -f N -l N -png <pdf> | tesseract stdin stdout`
(tesseract 5.5.3, leptonica 1.87.0, poppler 26.09.0) reproduces each one
byte for byte; the Form 1040 text comes out the same from the extract page
and from the original page. The row now cites each OCR text with a quote
beside its scanned source. test_scanned_pages_keep_cited_ocr_text checks
this, and a Hypothesis property tests its checker.

Low 13. Page extracts replace the whole PDFs, made as the statute
extracts were (qpdf --deterministic-id --empty --pages; the cover page,
then the cited table or section from its heading to the cited entry):
- 18 Publication 926 editions (2008-2025) and 18 Publication 15 editions
  (1999-2007, 2017-2025), 45,846,568 B of originals;
- the 1985 Form 1040 instructions, 4,293,993 B, kept as pages 1 and 31.
Each row records its original (file, bytes, SHA-256, page count, and
commit c0ea2b2 of PR 583) and says to re-fetch it from the recorded URL.
pdftotext gives the same text for every kept page as for that page of the
original. No IRS original carries a signature (no /ByteRange, no /Sig
field), so these rows say original_unsigned. Each Publication 926 and 15
extract has a pdftotext derivative of its cited page: -layout for Table 1
and the 1999-2007 Special Rules table, -raw for the 2017-2025 What's New
paragraph. Each threshold citation is now followed by a citation of that
text quoting the edition's value.
- test_irs_extracts_quote_each_published_threshold checks the 36 quotes
  against published_values and the lookup, and their page locations
  against the inventory. A Hypothesis property tests its checker.
- test_page_extracts_record_their_originals now covers the 37 new
  extracts, ties signature_status to /ByteRange in the extract, and checks
  the recorded qpdf page list.

Publication 517. irs_p517_2025.pdf duplicates irs_p517_2025.html, so it is
not retained, and its three registry citations now cite the HTML. Check:
4,706 of the 4,835 six-word sequences in pdftotext -raw of printed pages
4-7 occur in the HTML's text after normalizing quotes, dashes, bullets,
spacing and list markers; the rest straddle footers, headings, list
markers or the HTML's doubled periods.

Low 10, rest. "IRS Publication 517(2025)" and "IRS Publication 15(2026)"
(twice) are spaced. test_published_prose_has_no_fused_tokens now also
flags a word or number run into a parenthesized year, and a Hypothesis
property tests the detector.

Capture folder: 204 files and 78,471,290 B before, 242 files and
59,935,115 B after. 38 files are removed (37 originals and the
Publication 517 PDF) and 76 added (37 extracts, 37 extract texts and 2
restored OCR texts). The Publication 926 extracts take 21,372,986 B of
that. Each of their cover pages, like each 2017-2025 Publication 15
cover, carries the same 873,242-byte image.

Registry: 117 rules; refusals over 1968-2026 family-years stay at 197.
Tests: the three CE1 files run 197 tests; 196 pass, and the known failure
test_post_review_exclusions_are_unreachable_from_birth_evidence remains.
The 16 step-5c mutants (10 metadata, 6 data) are all killed. Captures and
fragments rebuild byte for byte from the step-5 scripts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The conformance module's docstring now lists the capture-folder
invariants its tests check: manifests and retention reasons, page-extract
provenance and signature status, recorded pdftotext calls, OCR text for
scanned pages, IRS threshold quotes and fused tokens. It also names the
checkers that Hypothesis properties test. No test changes; the three CE1
files still run 197 tests, 196 pass, and the known failure remains.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…lows 8, 9, 14)

The step-5b checks for lows 8, 9 and 14 are now checker functions over
the registry's rows, open_reading_problems and operative_reading_problems,
and each has a Hypothesis property on invented rows:
- a reading described by a serialized record or a locator, or a second
  name for an open row's readings, is flagged, at row and case level;
- a closed row's listed options need exactly one operational entry per
  group and a known status; keyed options need a resolution naming an
  option or parameter, with a basis.
The real-registry assertions are unchanged (36 described readings, 8
closed rows with named options). The four step-5b mutants that target
these tests are still killed. The three CE1 files run 199 tests; 198
pass, and the known failure remains.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Master brings #566, #589, #590 and #580. Git auto-merged
scripts/first_estimates_birth_evidence.py and
tests/estimates/test_birth_evidence_artifact.py, which both branches
changed: against each parent the merged files only add lines, so the
merge keeps master's OP1 exclusions and CE1's exclusions and removes no
line from either side. No CE1 path changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis and others added 3 commits October 31, 2026 08:07
Git merged every file without a conflict, and each file master changed
stands as master has it. No CE1 file changes.

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

nonprofit_1968_1977 and nonprofit_1978_1983 fell to their covered residual
for an existing 501(c)(3) employee who did not sign the Form SS-15a, so
the residual's "not a 501(c)(3) organization" was false for that worker.

Each row now has four ranked cases:
1. an actual waiver certificate with an employee on the SS-15a list, as
   filed or amended, or hired after the certificate's effective date:
   covered above the threshold (NL 00902.500 NPO503, NPO505; RS 01901.540
   C.1, C.4, C.6);
2. a certificate deemed filed under the 1976 amendments: covered above
   the threshold for all employees (RS 01901.540 D.7: "deemed to have
   filed a valid waiver covering all employees");
3. an actual certificate and an employee on its filing date who is not on
   the SS-15a: noncovered (NPO505: "persons employed at the time of the
   request could be eligible only if they had signed the Form SS-15a");
4. no effective waiver: noncovered, as before.

The review asked for a noncovered case for any effective waiver. The
captured POMS limits the concurrence list to actual certificates, so the
deemed waiver gets its own covered case instead. The residual now says
what reaching it means: the employer is not a 501(c)(3) organization.
Both rows cite the NPO505 and D.7 passages with quotes.

test_failed_conditions_no_longer_exclude gains the two repros, and a new
test checks six invented workers per row.

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

se_public_office_1968_2026's case 3 put "performance of the functions of
a public office" in government_level, which elsewhere holds a level of
government, so no real fact value could select it. A salaried State
officer, or a fee officer in a position a section 218 agreement covers,
failed case 2 and fell to the covered residual, against 411(c)(1).

- CE1_FIELD_PURPOSES gains public_office_functions, whether the income
  is for performing the functions of a public office.
- Case 3 (noncovered) conditions on that fact alone.
- Case 2, the fee-only State or local exception, also requires it and
  now names case 3 in overrides: 411(c)(1) excludes public-office
  functions "other than" that position.
- The residual says what reaching it means.

New tests: six invented officers (salaried State officer, section
218-covered fee officer, federal officer, uncovered fee officer, 1968
election, no public office), and a registry-wide check that every
government_level condition names a level of government.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis and others added 20 commits November 3, 2026 05:24
Item 1 (review r7 H-1) pinned the entity-by-entity membership text in ten
cases through REQUIRED_CONDITIONS, three of them covered
(state_local_1991_2026.mandatory_nonmember_coverage and both election
rows' outside_agreement_nonmember), but gave them no
REQUIRED_CONDITION_FAILURES entry, so
test_every_covered_required_condition_names_its_failure failed from
e83ac7c on; that commit's test subsets did not select it.

Each new entry sends a member of a qualified system the employing entity
maintains to the member case's exclusion
(qualified_system_member_without_agreement, outside_agreement_member;
noncovered). The covered-entry count goes 22 -> 25.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review r7 M-7 (case 3). newspaper_service_1968's open case had no
newspaper limit, so a minor door-to-door cosmetics seller met it and the
newspaper family refused her; its direct_seller_contract text said
"consumer products, newspapers or magazines included", the answer its
first reading denies; and #937 (a minor fixed-price vendor under a written
contract in 1990) landed on fixed_price_vendor_minor while #1428 refused.

- One open case per 410(a)(14) arrangement the row reads:
  minor_carrier_direct_seller_after_1982_open ((A) delivery, rank 1) and
  minor_vendor_direct_seller_after_1982_open ((B) fixed-price sale,
  rank 2). Each reaches only an employee under 18 after 1982, so a minor
  who is not an employee, an adult and a seller of other goods miss it.
- The contract fact now states only 3508(b)(2)'s place of sale, pay and
  written-contract conditions; whether newspapers or magazines are
  consumer products under clauses (i)-(ii) before 1996 sits in the
  readings and the open reason, which quotes clause (iii) and its 1996
  effective date (Pub. L. 104-188 section 1118(b)) from the 3508 capture.
- #937 now carries the contract and date its prose states and refuses on
  the vendor case, as #1428 does; #937's prose drops its builder note.
- Seven INVENTED workers: a carrier who reaches the new case and one who
  just misses each of its five conditions, and a self-employed vendor;
  #1429-#1431 name the case they just miss (#1431 now carries the full
  vendor facts at 18 or older).

Cases 362 -> 363; open cases 35 -> 36; readings 86 -> 88; workers
1,456 -> 1,463.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review r7 M-8 (case 3). Each case refused workers both its readings decide
alike.

- (a) nonprofit_1968_1977.cooperative_521_small_remuneration reads former
  410(a)(10)'s amount: remuneration below $50 for a calendar quarter's
  service. At $50 or more both readings cover the pay.
- (b) section_401a_trust_small_remuneration (1978 and 1984 rows) reads the
  $100 amount 409(a)(14) and 3121(a)(16) share.
- (c) domestic_service_1994.domestic_farm_service_before_1995: on the 409
  notes' reading the row decides 1994 farm domestic pay
  (benefit_credit_transition_1994 for $50-$999); on POMS's reading
  agricultural_service_1988 does ($150 from the employer or $2,500 of
  employer expenditure, 409(a)(7)(B), now quoted). They differ only for
  $50-$149 from an employer spending under $2,500 and for under $50 from
  one spending $2,500 or more; the case reads those two cells. #786
  ($600) now takes the transition case, covered on both readings.
- (d) se_rental_income_1996_2026.farm_arrangement_with_non_individual reads
  material participation under an arrangement that provides for it;
  without either, the participation family gives noncovered, as
  real_estate_rentals does. The row lists
  rental_arrangement_requires_material_participation as a trigger fact.
- (e) 3121(a)(16) names an organization exempt "under section 521";
  409(a)(14) (and 409(a)(14)(A) in the 1994 edition) names only one exempt
  "under section 501". New open case cooperative_521_small_remuneration
  in nonprofit_1978_1983 (ranked above the 3121(a)(16) class) and
  nonprofit_1984_2026, with the $100 amount; both rows quote 409(a)(14),
  the 1994 text and 3121(a)(16).
- 19 INVENTED workers reach or just miss each changed condition; four
  existing workers carry the new amount or participation facts.
- Unread-fact reasons 369 -> 365: the three nonprofit rows' amount and
  the rental row's material participation are now read by a case.

Cases 363 -> 365; open cases 36 -> 38; readings 88 -> 92; workers
1,463 -> 1,482.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review r7 M-9 (case 3). Both deemed-certificate cases of
nonprofit_1968_1977 read the window as "after the last calendar quarter
for which the organization paid the taxes". POMS RS 01901.540 D.8
describes the 1977 Amendments as "forgiving the tax liability of
organizations through 6/30/77 when the employer stopped paying taxes
before 10/19/76"; a quarter whose taxes were paid leaves no liability to
forgive. A college that paid until 1975 Q2, stopped and resumed in 1977
Q1 had paid for a later quarter, so its 1976 Q2 clerk fell to
deemed_waiver_all_employees (covered_above_threshold).

- The window now reads each calendar quarter, after the organization
  stopped paying the taxes, for which it paid no taxes, in
  deemed_waiver_section_312c_request and deemed_waiver_k4c_period; the
  latter's description says why.
- The review's repro is a new worker and decides deemed_waiver_k4c_period
  (noncovered); a colleague in 1977 Q1, the quarter the college resumed
  paying, just misses it and stays covered above the threshold.
- The three workers with the old text and the test's NONPROFIT_K4C_GAP
  carry the new text.

Workers 1,482 -> 1,484.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review r7 lows 5 (#248, #251) and 6 (case 3 for the 1968 row; the
fixtures are invented inputs).

Capture 10 U.S.C. 2360 from the 1994 United States Code on govinfo
(2,929 B, c4ba5b5c...): "(Added Pub. L. 97–86, title VI, §603(a), Dec. 1,
1981, 95 Stat. 1110.)". The case's condition names a 2360 contract, so it
reaches no service before December 1, 1981.

- federal_1968_1972 no longer carries army_corps_2360_student_aide, its
  two ties or its POMS C.5 citation; its scope parameter drops the
  sentence about the case. #248 (a 1970 student under a 2360 contract,
  which could not exist) is removed; #249 (an ordinary 1970 appointment)
  stays on the residual.
- #251 moves from 1979 to 1982, after the contracts began.
- The three remaining cases quote POMS RS 01901.340 C.5 and say the
  closing rests on that 2024 edition alone, which states no date from
  which it applies (low 6), and cite 2360's source credit and 2360(a).
- Tests: FEDERAL_CASE_FACTS drops the 1968 entry; level-named cases
  67 -> 66, federal exclusions 36 -> 35, cases 365 -> 364.

Captures 246 -> 247 files. Workers 1,484 -> 1,483.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review r7 low 11 (round-6 low 8): fepca_waiver_reemployed_annuitant
refused workers on whom both readings give covered. The reading
overridden_cases_until_waiver_law lets defra_2601d_requalification,
grandfathered_continuous_service and federal_annuitant decide, and each
of them reaches only service 410(a)(5)(A) describes (captured
lii_42_410.html). The case now also requires that service, in
federal_annuitant's text. It still reaches service after the waiver
law's effective date, where the readings also agree, because that date
is not captured; the description says so.

Fixture: one just-miss worker on federal_service (Ira, first hired after
1983, whom first_hired_after_1983 decides as covered); workers 1,488 ->
1,489. The two workers that reach the case already state the (A) text.
Unseen conditions stay at 171, now of 511.

Tests: FEDERAL_CASE_FACTS gives the case its new fact. Conformance: 703
passed (not swept_rows) and 1,489 passed (swept_rows).

Review r7 M-10's level workers and test edits landed in 95fa4fa, an
automatic commit whose fixup! subject names 43deeb6.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review r7 low 2: the three State and local residuals called 410(a)(7)(C)-(E)
"clauses for the District of Columbia". In the 1994 edition
(uscode_1994_42_410.html) and the current text (lii_42_410.html), (C) is
Guam and American Samoa, (D) the District of Columbia and (E) Guam's
temporary or intermittent employees; the residuals now say so. Their
consequence and every case are unchanged.

Tests: conformance, not swept_rows: 703 passed. The edit changes only
residual descriptions, which no swept worker reads.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review r7 low 3: the legislative_not_retirement_covered_1983 descriptions
in federal_1984_1986 and federal_1987_2026 paraphrased 410(a)(5)(G)'s
closing definition of "subject to". They now quote it from
lii_42_410.html, (a) and (b) in full, with "(other than for members of the
uniformed services)". The quote matches the capture once the curly
apostrophe and the link spacing before ")" are normalized. No case or
consequence changes.

Tests: conformance, not swept_rows: 703 passed. The edit changes only two
case descriptions, which no swept worker reads.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review r7 low 4: agreement_amount_input, in the four election rows, named
no period. It now quotes POMS SL 30001.357 C (poms_sl_30001357.html):
"Some State agreements specify a lower threshold amount for election
workers, e.g., $50 a calendar quarter or $100 a calendar year", and asks
a consumer for the amount and its period, a calendar quarter or a
calendar year as the agreement says. No case, threshold or consequence
changes.

Tests: conformance, not swept_rows: 703 passed. The edit changes only a
parameter text, which no swept worker reads.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review r7 low 8, the items still open:
- nonprofit_1968_1977's exempt_organization_small_remuneration said a 521
  cooperative's employee "takes the residual"; since M-8 opened
  cooperative_521_small_remuneration, pay below $50 for a calendar
  quarter reaches that open case and other pay the residual.
- nonprofit_1984_2026's employer_not_exempt_organization left the 401(a)
  trust and the 521 cooperative "to the residual" and called itself
  "Ranked last"; pay below $100 in the year now reaches their two open
  cases, ranked after it, and the case reaches no worker they reach.
- se_religious_sect_1968_1985's two readings cited nothing. Each now
  names its source in lii_26_1402.html: 1402(g)(1)'s "an exemption from
  the tax imposed by this chapter", and 1402(g)(5) as Pub. L. 99-514
  section 1882(a) added it, with the 1988 and 1989 notes (Pub. L.
  101-239 "substituted" "shall apply" for "shall not apply"). Neither
  note dates subsection (a); the case stays open.
- Three sentences ran together, two rows each: "duties.Noncovered",
  "(review r7 low 9).Noncovered" (this job's low 9 edit) and
  "(3121(r)(1)(B)).POMS". The review's "applies.Noncovered" became
  "duties.Noncovered" in fb0fd70.

New guard: the fused-token detector also flags a sentence run into the
next ([a-z)] then "." then a capital; "section 4.B" passes). Its
Hypothesis test checks both forms.

Tests: conformance, not swept_rows: 703 passed. Only descriptions change,
which no swept worker reads.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review r7 low 10, two of its four code items:
- _check_case_thresholds compared income_years[0] <= income_years[1]
  before reading them as data years, so [1978, "x"] raised TypeError
  (checked on the parent: TypeError) where _data_year's contract is
  "bad data, never a caller error". It now reads both years through
  _data_year, then compares them, and requires a string threshold_id
  before looking it up; [1978, "x"] now raises RegistryValidationError.
  The unit test's entries add a text last year, a text first year, a
  one-year list and a list threshold_id.
- test_just_miss_checker_needs_an_own_text_below_the_case appended its
  INVENTED worker to the module's INVENTED_SWEEP_WORKERS and removed it
  in a finally block. just_miss_workers now takes a workers argument
  (default: the fixture), and the test passes its worker instead.

Left as stated limits: the conformance module parses the registry JSON
four times at import, and the in-code fixtures stay in code.

Tests: unit -k "case_threshold or threshold": 4 passed; conformance, not
swept_rows: 703 passed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review r7 low 10 follow-up: the module docstring's threshold_id_by_case
invariant now says the loader also refuses years that are not two integer
income years in 1968-2026 with first no later than last, and that every
such refusal is a RegistryValidationError, as 3b88411 made it.
Docstring only; no code changes.

Tests: unit -k "registry or threshold or load or invented": 10 passed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review r7 low 5 (the brief's item 8: fix every fixture defect it lists).
M-1, M-6 and low 6 fixed #1334, #1339, #1345, #850-#853 and #248/#251;
this commit fixes the rest. Numbers are the review's (f926fe3); the
head index follows in brackets.

- se_treaty_fishing_1968_2026.section_7873_exempt_income read its income
  condition as "exempt under 7873(a)", the conclusion the case draws, so
  #1388 [1387], who just misses on membership, had to state an exemption
  he cannot have. 7873(a)(1) exempts income derived "by a member of an
  Indian tribe directly or through a qualified Indian entity" or by a
  qualified Indian entity "from a fishing rights-related activity of such
  tribe" (uscode_2024_26_7873.html); the condition now reads "income from
  a fishing rights-related activity of the tribe (7873(b)(1))", and three
  workers carry the new text. No worker's outcome changes.
- #1388 [1387] is now a non-Indian fish buyer who sells members' treaty
  catch on his own account through no entity, so the entity text holds
  and only membership fails (covered, residual).
- #1383 [1382]: the civic league filed Form SS-15 (the form a 501(c)(3)
  organization used, RS 01901.540 C.6.b) in 1980, after it became a
  501(c)(3) organization, effective 1979-01-01 under C.3.b's 20-quarter
  rule; its 1979 service was a civic league's.
- #1384 [1383]: the certificate took effect after the 1980 service
  (filed 1981 Q2, effective with that quarter), not "terminated before
  the service", so the request facts (pay before the filing quarter) hold.
- #1405 [1404]: the qualified-system membership comes from a county job;
  the hospital service is the private employer's.
- #1406 [1405] and its copies in clergy_1973_1981 and clergy_1982_2026
  [1407, 1409] no longer state "qualifying ministry": POMS RS 01901.600
  B.3.c says the chaplaincy is not ministry. They still decide
  government_chaplain_service.
- #1421 [1420] moves from 1990 to 1987, inside the 1987 to 1988-11-09
  window the review names for (G)'s definition; this job did not check
  the window's end date against a capture. Facts carry no date, so the
  outcome is unchanged.
- The seven workers that cited builder notes (NOTE N3, N4, N6, N8) now
  name the source or drop the note.

Workers 1,489 (unchanged); cases 364; check_workers 0 mismatches;
unseen conditions 171 of 511. Tests: conformance 703 passed (not
swept_rows) and 1,489 passed (swept_rows).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review r7 low 10, its third item, which the brief asks for and 3b88411
had left as a stated limit: the conformance module parsed
coverage_rules.json four times at import (PUBLISHED_CASES,
REQUIRED_CONDITION_ROWS_ALL, REQUIRED_CONDITION_ROWS and
LEVEL_LIMITED_CASES). One module-level parse, REGISTRY_RAW, now feeds
all four. None of them changes it: the required-condition checker copies
a case's when before it edits one. Tests that read the registry inside
their body keep their own parse, so a test that edits a row never shares
the import-time one.

New test: test_registry_is_parsed_once_at_import counts, through ast, the
json.loads(REGISTRY_ARTIFACT.read_text()) calls that run at import (in
module-level statements and decorators, not in function bodies): one.
It also checks the counter on three INVENTED additions (a second
module-level parse and a decorator parse count; a parse in a test body
does not).

The in-code fixtures stay in code, as the brief allows.

Tests: conformance 704 passed (not swept_rows; 703 plus the new test)
and 1,489 passed (swept_rows).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The brief's "why this round differs": every case this round adds or
changes needs a worker who reaches it and one who just misses it. A check
over the 66 cases this job added or whose when, consequence or
precedence changed (f926fe3 to 6d7cf04) found two without a just-miss
worker: church_at_least_400_without_ordinary_loss in se_units_1968_1983
and se_units_1984_1985, whose church text 239ef16 reworded (low 7).

Each row gains an INVENTED cashier in an electing church's unrelated
trade or business (section 513(a)), paid $500 in wages, with $450 of
Schedule C profit and no loss. He states the case's amount (and, in the
fiscal-1983 row, its service date) exactly and the unrelated-business
church text #1307 and #1322 already state, which no church case reads,
so the residual's $400 test decides his $450 (covered above the
threshold). Both conditions join just_miss_required, and the unseen
ratchet falls from 171 to 169 (of 511).

Workers 1,489 -> 1,491; check_workers 0 mismatches. Tests: conformance
706 passed (not swept_rows) and 1,491 passed (swept_rows).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The brief's "why this round differs" asks, for every case this round adds
or changes, for a worker who just misses it with a deciding fact of its
own. Of the 66 cases this job added or whose when, consequence or
precedence changed, seven conditions had just-miss workers only by
leaving the missed fact unstated:

- se_nonresident_alien_1983_2026.foreign_agreement_sole_coverage, whose
  agreement text f07e2be reworded (its only condition);
- newspaper_service_1968.minor_vendor_direct_seller_after_1982_open's
  arrangement condition (the case f57f380 added);
- the election-work and level conditions of both election rows'
  outside_agreement_nonmember, and the level condition of
  state_local_1991_2026.mandatory_nonmember_coverage, whose membership
  text e83ac7c reworded.

The eight INVENTED workers that just miss them now state the fact with a
text of their own, taken from their prose, which no case of their row
reads: Uma (no agreement makes her subject only to a foreign country's
laws), the cosmetics seller, the two American Samoa poll workers, the
two county custodians, the District of Columbia employee and the tribal
housing authority employee. No outcome changes; check_workers finds 0
mismatches. The seven conditions join just_miss_own_text (21 -> 28), so
the just-miss test now requires the own text. The registry is unchanged.

Workers 1,491 (unchanged). Tests: conformance 706 passed (not
swept_rows) and 1,491 passed (swept_rows).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
past_ministerial_service_pension_open in se_clergy_gross_concept_1973_1987
moved from rank 4 to 5 when f07e2be ranked the agreement deferral above
it, and its one condition had no worker who just misses it by stating the
fact. The new INVENTED pastor (1980, no 1402(e) exemption, still serving)
states retirement_payment as "no pension or retirement allowance
received", a text no case of the row reads, with his current salary, so
the covered residual decides him, as it counts nonexempt ministry
earnings.

The condition joins just_miss_required (119 -> 120) and
just_miss_own_text (28 -> 29). The registry is unchanged; check_workers
finds 0 mismatches on 1,492 workers.

Of the 66 cases this job added or whose when, consequence or precedence
changed, one still has no just-miss worker who states the missed fact:
clergy_1982_2026.exemption_status_unknown, which moved from rank 11 to 10
and ranks last, above the row's open residual.

Workers 1,491 -> 1,492. Tests: conformance 707 passed (not swept_rows)
and 1,492 passed (swept_rows).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Master's #573 (SSI0) and #574 (D4) each added a block to the
birth-evidence exclusions, their expected tuple and the reachability
test, where CE1 adds its own. Keep master's blocks and put CE1's after
them in all three places. D4's block already lists
src/populace_dynamics/income_resources/__init__.py, which both sides add
as the same blob, so CE1's exclusion blocks keep only coverage_rules.py.
The merge takes master's tier files, and the next commit recounts them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Master at 97003ac holds unit 23,653, artifact 4,527, integration_psid
1,471, reproduction_legacy 520, oracle_policyengine 337, total 30,508.
CE1 adds 83 unit and 2,199 artifact tests, so the files now read unit
23,736, artifact 6,726, total 32,790. CI's tier policy test checks the
count on the full collection.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MaxGhenis
MaxGhenis marked this pull request as ready for review November 6, 2026 09:50
@MaxGhenis
MaxGhenis merged commit 02897ed into master Nov 6, 2026
12 checks passed
@MaxGhenis

Copy link
Copy Markdown
Contributor Author

The Microcosm Dynamics coordinator merged this PR at a9aae687a15bfd4df82304fa63fec161400b901f with --squash --match-head-commit, as 02897edecda1ab3c377cd5aaaa994fe4efb75444 (10:25Z, 2026-11-06). The squash commit's tree matches the head's.

  • Review. The reviewer in Subfleet job 20261103-083456-ce1-review-r8 approved a9aae687, leaving no finding of medium or higher severity open. Of its four low findings, the income-and-resources lane corrected one and narrowed another in this PR's description. The other two concern registry texts that the description names under "Two registry texts", and the lane's text-only follow-up PR fixes them.
  • After the review. The lane pushed no commit and changed only this PR's description.
  • The squash. Earlier commits on this branch hold original source PDFs that the head no longer carries, so the coordinator squashed the PR and kept them out of master's history.
  • CI. gh pr checks 583 exited 0 at the head, where 11 checks passed and deploy skipped (Tests run 41640791929). In that run, tests/test_tier_policy.py compared the committed counts with the collected suite and passed. GitHub reported the PR mergeable.
  • Tier counts. Before the next PR that changes the counts lands, its owner merges master 02897ede, or later, into it and recounts the test tiers.

MaxGhenis added a commit that referenced this pull request Nov 6, 2026
Master's #583 (CE1) added a block to the birth-evidence exclusions,
their expected tuple and the reachability test, where D2 adds its own.
Keep master's blocks and put D2's after them in all three places. The
merge takes master's tier files, and the next commit recounts them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis added a commit that referenced this pull request Nov 6, 2026
…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
MaxGhenis deleted the ir/ce1-20261024 branch November 6, 2026 14:41

This branch was successfully deployed

1 active deployment
Preview — a9aae687 Deployed Nov 3, 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