Repository navigation
Coverage-rule registry (CE1) - #583
Merged
Merged
Conversation
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>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
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>
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>
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>
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>
Contributor
Author
|
The Microcosm Dynamics coordinator merged this PR at
|
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>
This was referenced Nov 6, 2026
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>
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.pyholds the row, case and citation types, schema validation (coverage_rules.ce1.v3), the capture-hash check and the lookup by family and income year.case_id, aprecedence, 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).deferredconsequence names, indefers_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.resolverefuses it withOpenRuleError.RegistryValidationErrorfor bad registry data,UnknownIdentifierErrorfor a name the caller got wrong, and the legal refusals for gaps and open questions.data/external/income_resources_ce1/holds the generatorassemble_registry.py, the fragment files it reads and the registrycoverage_rules.jsonit writes. It lives outside the snapshot tree, which.gitattributesmarks 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, andnegligible_candidate, which holds null wherever no search found a published bound. No search found one, so every rare exclusion still readsstrict: unresolvedwith 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_questionslists 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_gapsnames the three clauses of 410(a) that reach service abroad and records the service abroad that none of them reaches: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.pyas 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:
Invariants
service_date,taxable_year_startorpayment_date. Any axis but the default quotes its effective-date clause from a capture the row cites.axis_exception, and the earlier row's cases carry the off-axis date; no code reads the exception.condition_casesties 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_casesties 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.case_free_basis: an explanation and a citation quoting a capture the row cites. No parameter record holds awhenorifkey.deferral_exceptions.FIELD_PURPOSESor a listed CE1 extension names every trigger fact.awaiting_ce2never reads as identified.negligible_candidateexists only with a cited source, bound and population.CoverageRegistry.thresholdchecks every supplied index input even when a published value decides.threshold_id_by_caseentry names a case of its row, a known threshold by a stringthreshold_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 aRegistryValidationError.CoverageRule.resolvecomputes 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.assemble_registry.build()'s output byte for byte.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):
condition_casesties: the tests pin only 24 of 365 reasons and 15 ties, so emptying an unpinned reason or retying a parameter to a reason passes.threshold_id_by_caseentry'sincome_yearsmatch the case's reach.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_registry_parsesmatches only the spellingjson.loads(REGISTRY_ARTIFACT.read_text()), so a second module-level parse writtenread_text(encoding="utf-8")passes.re.IGNORECASEonPARAMETER_CONDITION_WORDS.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 theTypeErrorthe check prevents.income_yearslength: no test gives threeincome_years, so a loader that accepts three passes.FUSED_SENTENCEmisses a capital before the period, as in "IRS.Publication"; a wider scan of the committed prose finds no such text.SCOPE_GAP_CLAUSESchecks substrings, so a scope gap that keeps the clause names and reverses its conclusion passes.just_miss_requiredandjust_miss_own_texthave 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, andresolvenever reads the field.se_nonresident_alien_1968_1983holds the overrides its description claims, with no test to keep them.Other limits:
dc674bc0,c55ebd95and25b02a6asurvive.nonprofit_1968_1977.cooperative_521_small_remunerationsays the 1978 row reads former 410(a)(10)'s small-remuneration test as reaching an organization exempt "under 521". Since4774f453that row leaves the question open, because 409(a)(14) names only section 501 and 3121(a)(16) names 521 too.just_miss_stated_limitsgives 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.scope_gapsrecords the service abroad that (A)(ii), (B) and (C) don't reach.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 --pagesmade each from its hashed original: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:
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
pdftotextoutput 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, sincepdftotextreturns 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:
not_retained.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):
1be4b753added 13 worked examples (5 to 18), not nine; the manifest listed the nine Publication 17 PDFs at1be4b753, and a later commit removed them as redundant and uncited; and the two PDFs1be4b753called 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,
94219edetodf1dc160):94219ederanks cases, first match wins (MED-1);8476dcf7makes every exclusion condition a case, with deferrals andcase_free_basis(HIGH-1);a6fa1f07makes pre-ruling cash-equivalent farm transfers noncovered (HIGH-2);c0ea2b24returns verified rules and keeps only unsettled sub-questions open, with evidence-only boundaries recorded as such (MED-2);5bac444ftests every loader guard and separates data, caller and legal errors (lows 1–4, 14);01e1e857names open readings once and settles the vocational years (lows 8–11, 14);2dad26e6keeps IRS page extracts and the OCR text of scanned pages (lows 5–7, 13);38cd1968states the capture-folder invariants;df1dc160turns 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): master172f690f. 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,
a645009cto2472668e):a645009cexcludes unlisted existing employees under an actual waiver; a deemed waiver covers everyone (H1).35713143conditions the public-office exclusion on a public-office fact (H2).819efef9puts every statutory condition in a case'swhenon the review's rows, ties the condition parameters of 32 rows with cases to their cases, and extends the detector to those rows (M1).f042289bgives the community-income and 1984–1985 units rows cases, makescase_free_basisa quoted record, and refuseswhenrecords in parameters (M2).598b2462moves five families to payment dates and eleven to taxable years, and adds a boundary-clause check (M3).9eb28f89answers 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).46f3af78takes lows 1–5 and 10.45ef91d3drops the unusedalternativemechanism (note 3) and takes lows 7 and 9.2472668emakes 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:
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:
deferral_exceptions.Round 3, rest of the fix (three commits,
fc1d7e04to195be7b8):fc1d7e04takes low 6's eleven narrow omissions:16b208fadrops 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.195be7b8corrects two offc1d7e04's descriptions: the 1989 redesignation of 409(j), and what the 1954 note on 410(a)(4) says.Where the fix follows the sources over the review:
Correction:
fc1d7e04's message counts eight outcome and record tests; it adds seven, besides the Hypothesis property.Round 3, sibling rows (seven commits,
f2409b26tofd5b7b2a):f2409b26splitselection_work_1995's lower-amount case by membership, as the 1991 row's: POMS SL 30001.357's NOTE states no end date.07cc9cfcplaces 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.45f22320drops the posting fact fromtribal_council_service_2018_0920; the posting rule reaches tax years through 2005 only.c9885558andfd5b7b2aadd former 410(a)(1)(A), the title V contract-worker clause, toforeign_agricultural_service_1968for service before July 18, 1984. The row records that no capture says whether any title V contract remained in force after 1967.e51e708bapplies 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.6e33faedhas 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,
00df716ato210a5c85):00df716aholds 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).da09aab8gives a member who fails 3121(r)(3)(A) a noncovered path (H-B).64255e0erequires federal recognition for the 2018 tribal exclusion (418a(b)(2); POMS RS 01901.700 F) (H-C).8f4ab88fwords 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).8ec7f152puts 411(b)'s nonresident-alien exclusion in the familyself_employment_nonresident_alien. Its territorial and section 433 exceptions each run from their date, and the clergy rows agree (M-4).8bc0bab9makes 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).a431176brefuses parameter records keyedif(M-5) and fixes a stale docstring (low 1).ff7ceef3tests that failing each covered required condition reaches its exclusion, for 22 entries (M-5).a9fccaee,d8a44dc6,1b2f58b5and92d2f409fix 33 defects the exclusion sweep found across 107 rows (item 9; table in the lane'sexclusion-sweep.md).200f24d4ties all 149 scope parameters in 80 rows and adds the seasonal hand-harvest exclusion (M-5).a0e2e23ftakes lows 2–7 and five low-10 items;8968b124restates one fixture phrase.94a9af84holds 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.7d6f7a72holds 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.e54479ddopens 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.210a5c85adds 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.
94a9af84fixes the tie drafts' late finding, the government level thatstate_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_exclusionsand one from each row'soutside_agreement_member.Where the fix follows the sources over the review:
7d6f7a72adds it from 418(c)(8)(A) and 410(a)(7)(F)(iv).Corrections to earlier messages:
16b208fa, not the 29,665,513 its message gives.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.Fix (eight commits,
ad404489to486453fc):ad404489excludes every vowed member's order duties and keeps 3121(r)(2) only in the election's covered case (H-1).c85029d6holds 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).623c7d5ekeeps 707(c) guaranteed payments and former 411(a)(5) income in the base definition (H-5).a01f60c2holds 32 federal cases to service for the United States (H-6), and the sweep brings that to 36.6787b329carries the 2601(d)(3) delay past 1986, and moves the three off-axis pins' dates into cases (H-7, M-1).4435b801makes the oracle exact and every fixture name its deciding case (M-2).6392e710adds 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.486453fctakes lows 3 and 10.Where the fix follows the sources over the review:
Corrections to earlier messages:
200f24d4's message says the 1984axis_exception"routes" fiscal-year church service. No code reads it; since6787b329the earlier rows' cases carry the date.a01f60c2's 58government_levelcases, 93 tied rows and 32 federal limited cases, and6787b329'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.Fix (seventeen commits,
740138a7tof926fe30):740138a7holds the section 306 certificate to its Canadian service (H-1).ba1b4a13counts a statewide system that covers the position as membership (H-2).16fb9b75tests the quarter before 1978 (H-3).15c09d93narrows or settles the open cases (M-2).56c40b2fgives 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).0b3deb74keys the 1977 casual cash test on the payment date and checks case thresholds in the loader (M-6).4a545434adds just-miss workers and their guards, pins deferrals, reasons and ties, and deletes the vacuous level properties (M-1).80cc8e2ccarries the government-chaplain limit and widens the worded-condition guard (M-7).60200c1eopens or limits the silent nonprofit, agreement and farm-arrangement choices (M-8 to M-10, M-12, M-13).edef65dfanda174270cremove scratch-note citations and tidy the module (low 2, code quality).4a4f0579,fbfc0672,c3c0b4e2,852da875and132efcefopen 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).f926fe30corrects the State and local residuals' wording (low 5).Where the fix follows the sources over the review:
drop_order_control_electionhas 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:
6392e710says a case "reworded, narrowed or broadened" fails a worker; broadening fails one only where a just-miss worker exists (M-1).6787b329and the round-5 fix report say the review's $80 units worker reacheschurch_combined_below_100; it reaches the residual, whose $400 floor gives the same outcome (low 3).edef65dfleft one test failing;a174270cfixes 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 atf926fe30; ata9aae687each falls by one, because43deeb60removed worker 248.scope_gapsand the four federal residuals misstated 410(a)'s preamble against their own capture.4a545434and an Invariant overstated what the tests check.Fix (25 commits,
e83ac7cdto22edbd38):e83ac7cdand1986c1b6capture 26 C.F.R. 31.3121(b)(7)-2 and decide membership entity by entity (H-1).fb0fd700names 410(a)'s (A)(ii), (B)(ii) condition and (C) in the scope gap and residuals (H-2, low 9).764b730areads section 306(a)(3) as who may file (M-1).f07e2beecaptures 1401 and 433 and closes the pre-1983 agreement cases (M-2, M-3).1f5d0ef2closes the church TSA question (M-4).239ef16fkeeps under-$100 church pay out of the units rows (M-5, low 7).95cfe0a2records the §351(d) payment-date reading as CE1's choice (M-6).f57f380alimits the minor direct-seller cases to 410(a)(14) work (M-7).4774f453limits four open cases and opens 521 (M-8).e5129c32rereads the (k)(4)(C) window (M-9).95fa4faaadds government-level just-miss workers, narrows the docstring and widens the parameter guard (M-10).43deeb60dates the army-corps case from 10 U.S.C. 2360 (lows 5, 6).0fe75bdelimits the FEPCA case to 410(a)(5)(A) service (low 11).dc674bc0,c55ebd95,25b02a6aand8fc6cf34fix labels, quotes, the agreement amount's period and stale text, and add the run-together-sentence guard (lows 2, 3, 4, 8).3b884119,0b93343fand6d7cf040fix the threshold-year check, the fixture-mutating test and the import-time parses (low 10).c9b32a42fixes the rest of low 5's fixture defects.423b050aand22edbd38add just-miss workers for the two units $400 church cases and the gross concept's pension case.a36f0734gives 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:
se_nonresident_alien_1968_1983gains the overrides its description claimed.Open questions the rows name:
nonprofit_1968_1977applies to 409(p).Corrections to earlier messages:
4a545434claims just-miss workers for "the level … conditions of this round's changed cases".fers_or_fsps_election,after_official_service_from_1988_11_10and the army-corps cases had none until95fa4faa(M-10(b)).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, andchurch_employer_below_100now 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).95fa4faanarrows it (M-10(a)).e83ac7cdsays "seven workers' prose now cites the rule". Six cite it; the seventh, worker 1387, only rewords.e83ac7cdsays 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).43deeb60says "Captures 246 -> 247 files". The folder went from 248 to 249.3b884119's message leaves the four import-time parses as stated limits;6d7cf040cuts them to one.95fa4faawith 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.e83ac7cdthrough95cfe0a2lefttest_every_covered_required_condition_names_its_failurefailing;1986c1b6fixes it.Left open: round 6's lows 1, 4, 6, 7 and 9–13.
Merge turn (
4b484f91,a9aae687):4b484f91merges master97003ac2, 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 addsrc/populace_dynamics/income_resources/__init__.pyas the same blob, and D4's block already lists it, so CE1's exclusion blocks keep onlycoverage_rules.py.a9aae687recounts the tiers on master's files: CE1 adds 83 unit and 2,199 artifact tests. From22edbd38toa9aae687, 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 ofr7_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. Undoing95cfe0a2's row changes failstest_closed_rows_name_their_operative_readingwhen the whole conformance module runs, though the mutant's named tests leave that test out. Dropping Mae, the (k)(4)(C) just-miss worker thate5129c32added, passes the whole conformance module, because 25 other INVENTED workers just miss the (k)(4)(C) case onnonprofit_coverage_waiver.r7_unseen_limit_loweredexpects a limit of 171, and423b050alowered it to 169, so the mutant stops at its precondition; at 169, the same mutant failstest_unseen_conditions_are_a_stated_limit. Of round 6's 29, the tests or the loader kill 27.r6_membership_employing_restoredandr6_unseen_limit_raisedstop 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.nonprofit_1968_1977's 521 case still credits the 1978 row with a reading that4774f453opened.se_units_1984_1985.church_employer_below_100to last passes every test, because no worker can tell the ranks apart.UNSEEN_CONDITION_LIMIT, an upper bound by design.f926fe30did. Ata9aae687, 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 decidessection_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
Tests
ea599b92.4b484f91, from the host, anda9aae687changes 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.ea599b92's registry. 37 runs, 37 killed. At210a5c85, 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: at486453fc, 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: atf926fe30, 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: ata9aae687, 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.tests/track_u2/: CI runs it; this sparse clone leaves out files its protected-bytes test hashes.black -l 79andruff checkpass CE1's four Python files and the two merged birth-evidence files.a9aae687recounts the tiers on master97003ac2'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.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