Skip to content

Correct coverage-registry statements, worker prose and the B0.2 sentence - #598

Merged
MaxGhenis merged 3 commits into
masterfrom
ir/ce1-text-20261106
Nov 6, 2026
Merged

MaxGhenis merged 3 commits into
masterfrom
ir/ce1-text-20261106

Conversation

@MaxGhenis

@MaxGhenis MaxGhenis commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor

This PR corrects the coverage registry's statements on Pub. L. 98-21 section 321(f) and section 521 cooperatives, rewrites sixteen workers' prose in its invented fixture, and updates the design doc's B0.2 sentence. #583's Stated limits names the two registry topics. No case's conditions, consequence or rank changes, no threshold amount changes, and every worker decides as before. The PR adds no test.

What changes

  • Section 321(f). The scope gap and the residuals of federal_1968_1972, federal_1973_1983, federal_1984_1986 and federal_1987_2026 said Pub. L. 98-21 section 321(b)'s wording applied to agreements entered into after April 20, 1983. The capture lii_42_410.html continues: "except that at the election of any American employer such amendment shall also apply to any agreement entered into on or before Apr. 20, 1983". All five texts now name that election, and the scope gap's citation quote now prints it, with the capture's pointer to section 321(f).
  • Section 521. The small-remuneration test in 3121(a)(16) names 521 and the one in 409(a)(14) names only 501, and the 1978 row holds an open case on that difference.
    • The case nonprofit_1968_1977.cooperative_521_small_remuneration said the 1978 row reads 521 inside the test. Its description now says the 1978 row leaves that open, and its alternative inside_small_remuneration_test credits the inside reading to 3121(a)(16) from 1978. The description also now gives 409(a)(14) its original designation, 409(p).
    • The description of nonprofit_1978_1983 applied the test to 521 cooperatives without qualification. It now says that, below $100 a year, the row leaves open whether the test reaches a 401(a) trust or a 521 cooperative.
    • The residual of nonprofit_1978_1983 said a 521 cooperative's employee paid $100 or more in the year lands there. Worker 1469, counting from 0 in the fixture's workers list, decides exempt_organization_small_remuneration for that employee, and the residual now says so. Worker 1464 decides the residual for a 401(a) trust's employee paid that much, as the text still says.
    • The source of that row's threshold now names 3121(a)(16) and Public Law 95-216 section 356 beside 409(a)(14) and section 351.
  • Workers. Sixteen worker strings change:
    • Worker 391 quoted a residual sentence the registry no longer prints and called the residual wrong for a District clerk. It now quotes the residual and says the residual leaves that clerk to other families.
    • Workers 521 and 540 pointed to "case 1" though they decide waiver_nonconcurring_existing_employee. They now name that case and say it excludes the service.
    • Workers 522, 523 and 541 ended "M-6." and never named section_105b_departed_employee_request, the case they decide. Workers 522 and 523 described other outcomes, and worker 541 said the row has no historical_fica_treatment fact. They now name that case and say it covers the pay above the threshold. Worker 523 also names waiver_retroactive_period_hire_unlisted where it said "the open case".
    • Workers 567 and 574 said the case text "electing church" lacks the election's conditions. They now say the case text requires them, so the residual decides.
    • Workers 820, 839, 955, 987, 993, 1000, 1014 and 1123 drop review markers such as "(NOTE)" and "see NOTE N-HW-1".
  • B0.2. docs/design/income_and_resources.md said IR0 reuses B0.2's protocol and record format "if B0.2's is frozen", citing Track B B0.2: source, exposure, access and power records for B3 through J #554, which closed unmerged. It now cites B0.2's version 1, whose status line reads "FROZEN, 2026-10-27", and Track B B0.2: source, exposure, access and power records for B3 through J #584, which added the protocol.

assemble_registry.py rebuilds coverage_rules.json from the edited fragments.

Invariants

  • Eleven registry text fields change: four residual descriptions under section 321(f), the case description and alternative under section 521, the 1978 row's description, residual and threshold source, and the scope gap's text and citation quote. Every other leaf keeps its value.
  • Sixteen worker strings change in the fixture. Every rule_id, facts, expected and decides keeps its value, and so do the fixture's other sections.
  • coverage_rules.json equals assemble_registry.py's output byte for byte.

The builder compared every leaf of the four JSON files with 02897ede in a one-off walk to check the first two, and the reviewer's own walk in round 2 agrees. No standing test holds them. test_canonical_registry_matches_research_fragments checks the third.

Stated limits

The builder's pattern search finds 43 other workers with shorthand such as "case 3" or "text is false", and the second round's reviewer finds 56 more with markers such as "After fix D1". This PR doesn't audit them, and they decide as they did.

Seven other workers still state something false in their prose, and this PR leaves them. Each still decides what its decides field says, and neither test_coverage_rules.py nor test_coverage_registry_conformance.py reads a worker string:

  • Workers 518, 520 and 539 say no case carries a rule that deemed_waiver_k5_request or exempt_organization_small_remuneration carries.
  • Worker 553 says the residual applies the $100 test, and employer_not_exempt_organization decides that worker.
  • Worker 724 gives the agreement case rank 2, and that case holds rank 3.
  • Worker 1132 says no family "in this group" reads 1401(c) for other self-employed people, and se_nonresident_alien_1983_2026 reads it for them.
  • Worker 1143 says every clause of the case text holds for that worker, and its last sentence says the opening clause doesn't.

The reviewer found these by scans and by reading many workers whole, and didn't check every law statement in the fixture, so more may remain.

Tests

At 4cc4d7e4, all 2,282 tests in test_coverage_rules.py and test_coverage_registry_conformance.py pass. pytest collects 83 unit and 2,199 artifact tests, the counts #583 records, and the PR's name list holds no tier file. CI's Tests run 42223247385 passed at that head, and its four pytest shards report 32,287 passed, 1,116 skipped and 1 xfailed.

Review

Round 1, at fd4c2f82, returned REVISE with one medium finding, on the 1978 row's description, and eight low ones. 4cbc9eb4 merges master at 4f99edfb with no conflict, and 4cc4d7e4 and this description carry the fixes. Round 2, at 4cc4d7e4, returned APPROVE with three low findings and nine notes. The lows changed this description and left the head alone: a wrong merge commit, an example none of the 43 holds, and the seven workers in Stated limits. The reviewer preferred to edit the seven here. The builder keeps them as a stated limit, because they change no decision and a new head would restart CI.

Status

CI passed at 4cc4d7e4, so the builder marked the PR ready. The coordinator merges it, and it needs no tier-count slot.

axiom: n/a: prose in the coverage-rule registry, a test fixture and a design doc; no PolicyEngine country-model or RuleSpec encoding changed

🤖 Generated with Claude Code

Round 8's review of #583 named two registry texts as wrong. The scope gap
and the four federal residuals left out section 321(f)'s election, and
the 1968-1977 cooperative case said the 1978 row reads 521 inside the
small-remuneration test, though that row holds an open case. Both now
follow the sources, and assemble_registry.py rebuilds coverage_rules.json.

Five workers' prose changes in the invented fixture; their facts,
expected and decides values stay. The design doc now cites B0.2's frozen
version 1 and #584 in place of "if B0.2's is frozen" and the closed #554.

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

vercel Bot commented Nov 6, 2026 •

Copy link
Copy Markdown

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

Project Deployment Actions Updated
social-security-model Ready Ready Preview Nov 6, 2026 1:10pm UTC

Request Review

MaxGhenis and others added 2 commits November 6, 2026 07:23
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The 1978 row's description now leaves open whether the small-remuneration
test reaches a 401(a) trust or a 521 cooperative below $100 a year, and its
residual sends a 521 cooperative's employee paid $100 or more to
exempt_organization_small_remuneration, as worker 1469 decides. The 1968
case's sentence names the test in each section and 409(p), the threshold's
source names 3121(a)(16) and section 356, and the scope gap's citation quote
prints the section 321(f) election.

Eleven more workers lose dead case numbers and review markers, and worker 523
names its open case. No case's conditions, consequence or rank changes, no
threshold amount changes, and every worker decides as before.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MaxGhenis MaxGhenis changed the title Correct two registry texts, worker prose and the B0.2 sentence Correct coverage-registry statements, worker prose and the B0.2 sentence Nov 6, 2026
@MaxGhenis
MaxGhenis marked this pull request as ready for review November 6, 2026 14:20
@MaxGhenis
MaxGhenis merged commit 7599ea7 into master Nov 6, 2026
12 checks passed
@MaxGhenis

Copy link
Copy Markdown
Contributor Author

I merged this PR at 4cc4d7e4b309c7a3bcb0b445ea88842253683518 with --merge --match-head-commit, as 7599ea732f8b78c9f125282da4e0ce49abb63e3d (14:27Z, 2026-11-06).

  • Review. An independent Opus 5.5 reviewer approved 4cc4d7e4, the head I merged, with no finding of medium or higher. The income-and-resources lane answered the reviewer's three low findings in this PR's description and pushed no commit. The reviewer preferred to edit the seven workers under Stated limits in this PR. I merged them as they stand, because the conformance test checks each worker's decides field and doesn't read its prose.
  • CI. gh pr checks 598 exited 0 at the head, where 11 checks passed and deploy skipped (Tests run 42223247385). GitHub reported the PR mergeable, and no review requested changes.
  • Merge result. The merge changes five paths from master 4ab97297, and each matches the head's blob.
  • Tier counts. This PR adds no test, so the counts stay at unit 26,654 and total 36,123.

@MaxGhenis
MaxGhenis deleted the ir/ce1-text-20261106 branch November 6, 2026 14:41

This branch was successfully deployed

1 active deployment
Preview — 4cc4d7e4 Deployed Nov 6, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant