Repository navigation
Mark nine source conflicts now in the shared register - #10441
Conversation
Vendor known-source-conflicts.yaml at rulespec-us 3fefe74b (the merge of rulespec-us#1871), which registers twelve new conflicts. Nine of them name a PolicyEngine-US file as the implementation, so each of those files now carries `# Source conflict <id>` on its own comment line just above the line that makes the choice. The other three, the claim-of-right entries, name PolicyEngine-US code only as proposed, so they get no marker yet. All twelve were backlog candidates, so they leave candidates.yaml, as the guard requires. section_199a_net_capital_gain.py leaves KNOWN_UNMARKED, since a marked file is exempt from the ratchet. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Hand-off to the US hub, at head 0116ad2.
|
#10315 pointed the us-mn:msa-guardian-fee-cap candidate at its code and baselined mn_msa_guardian_fee.py in KNOWN_UNMARKED. The candidate is registered now, so its block stays deleted, and the file's marker exempts it from the ratchet, so its baseline entry comes out. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Updated hand-off to the US hub, at head c3e7f9b. This replaces the hand-off above, which named 0116ad2.
|
|
US + core hub merge audit, us#10441 at
|
Pin the register to TheAxiomFoundation/rulespec-us@ad03b32, which merges rulespec-us#1907 and #1908. - #1908 repins the nine PolicyEngine-US implementations marked in #10441 to eeaf809 and sets cites_entry: true on each. The guard's test_registered_implementations_carry_their_marker now requires those nine markers. Removing the niit_magi.py marker makes it fail. - #1907 adds two Social Security entries, oasdi-dual-entitlement-zero-after-age-reduction and oasdi-parent-entitlement-count-interval, and gives oasdi-family-maximum-saving-clause an implementation, four tests and a money case. All three are implemented only in microcosm-dynamics, so no PolicyEngine-US marker or candidate changes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Pin the register to TheAxiomFoundation/rulespec-us@ad03b32, the merge commit of rulespec-us#1908, which also includes #1907. - #1908 repins the nine PolicyEngine-US implementations marked in #10441 to eeaf809 and sets cites_entry: true on each. The guard's test_registered_implementations_carry_their_marker now requires those nine markers. Removing the niit_magi.py marker makes it fail. - #1907 adds two Social Security entries, oasdi-dual-entitlement-zero-after-age-reduction and oasdi-parent-entitlement-count-interval, and gives oasdi-family-maximum-saving-clause an implementation, four tests and a money case. All three are implemented only in microcosm-dynamics, so no PolicyEngine-US marker or candidate changes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
PolicyEngine/policyengine-us#10441 (merge eeaf8096) put a `# Source conflict <id>` marker in each of the nine PolicyEngine-US files this register lists as an implementation. Pin those implementations to eeaf8096 and set cites_entry: true, so verify checks that each file still names its entry. The pinned tests keep their own commits. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Pin the register to TheAxiomFoundation/rulespec-us@ad03b32, the merge commit of rulespec-us#1908, which also includes #1907. - #1908 repins the nine PolicyEngine-US implementations marked in #10441 to eeaf809 and sets cites_entry: true on each. The guard's test_registered_implementations_carry_their_marker now requires those nine markers. Removing the niit_magi.py marker makes it fail. - #1907 adds two Social Security entries, oasdi-dual-entitlement-zero-after-age-reduction and oasdi-parent-entitlement-count-interval, and gives oasdi-family-maximum-saving-clause an implementation, four tests and a money case. All three are implemented only in microcosm-dynamics, so no PolicyEngine-US marker or candidate changes. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Main now has #10301 squashed (81056c4) at #10301's final head cc1af12, which this branch already contains. Five files conflicted: - ca_premium_subsidy.yaml, ca_premium_subsidy_applicable_percentage.yaml, test_ca_premium_subsidy_applicable_percentage.py and ca_premium_subsidy_applicable_percentage.py: main's versions equal cc1af12's exactly, so this branch's side already includes them; took this branch's side. - source_conflicts/candidates.yaml: one hunk, this branch's new us-ca:premium-subsidy-200-fpl-limit candidate against nothing on main; kept it. Main's other candidate edits (#10315's Minnesota entry, #10350-#10352, #10441, #10444) auto-merged unchanged. Against main, the merged tree differs only in this PR's files. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This vendors the register PolicyEngine-US shares with Axiom (
known-source-conflicts.yaml) at rulespec-us 3fefe74b, the merge of TheAxiomFoundation/rulespec-us#1871. Nine conflicts in the register at that commit name a PolicyEngine-US file as the implementation, and this marks each of them in that file. It also takes the newly registered conflicts out of the backlog. It changes no formula, parameter value or policy-test expectation: in the model, every change is a comment line. The guard's ownKNOWN_UNMARKEDbaseline also loses two entries, as explained below.What changes
The vendored register moves from rulespec-us 5796861e to 3fefe74b, the merge commit of Register seven PolicyEngine-US rulings and Colorado's OAP implementation TheAxiomFoundation/rulespec-us#1871.
scripts/update_source_conflicts.pywrote bothsource_conflicts/known-source-conflicts.yamlandpin.yaml. The copy is byte-identical to the file at 3fefe74b. The register goes from 8 entries to 20, and all 12 new ones are US entries.Nine markers. Nine of the new entries list a PolicyEngine-US file as the implementation. Each of those files now has
# Source conflict <id>on its own comment line, just above the comment block or statement that makes the choice:us-co:oap-interest-and-dividendsparameters/gov/states/co/ssa/oap/income/sources/unearned.yamlus-md:poverty-credit-earned-income-lossesvariables/gov/states/md/tax/income/credits/poverty_line/md_poverty_line_credit_potential.pyeitc_earned_incomeus:niit-magi-trust-code-h-adjustmentvariables/gov/irs/tax/federal_income/niit_magi.pyestate_magi_adjustment = ...us:qbid-net-capital-gain-investment-electionvariables/gov/irs/income/taxable_income/deductions/qualified_business_income_deduction/section_199a_net_capital_gain.pyus:dependent-care-exclusion-separate-filer-incomevariables/gov/irs/credits/cdcc/min_head_spouse_earned.pyreturn where(is_joint, joint_earnings, head_earnings)us-hi:care-credit-claimable-unclaimed-filervariables/gov/states/hi/tax/income/credits/cdcc/hi_cdcc_eligible.pyus-ny:dependent-standard-deduction-filing-statusvariables/gov/states/ny/tax/income/taxable_income/deductions/ny_standard_deduction.pyreturn where(single & dependent_elsewhere, ...)us-wv:senior-disability-modification-income-basevariables/gov/states/wv/tax/income/subtractions/senior_citizen_disability/wv_senior_citizen_disability_deduction_person.pyus-mn:msa-guardian-fee-capvariables/gov/states/mn/dhs/msa/payment/mn_msa_guardian_fee.pyEight of the nine files are unchanged since the PolicyEngine-US commit the register pins them to: 7bb70aa, or 79249f0 for the Maryland file. The ninth,
mn_msa_guardian_fee.py, changed after its pin when Exclude county agency staff from Minnesota MSA guardian fees #10315 merged. Exclude county agency staff from Minnesota MSA guardian fees #10315 added a county-staff exclusion and a note on Minnesota's stated practice. It kept the statute's 5% cap with a $100 maximum, which is the register's reading. The marker sits above that statute comment block, and Exclude county agency staff from Minnesota MSA guardian fees #10315's note follows it.No marker for the three claim-of-right entries (
us-ar:claim-of-right-deduction-floor,us-hi:claim-of-right-deduction-floor,us-oh:claim-of-right-federal-claim-condition). The register lists their PolicyEngine-US code only asproposed, not as an implementation, so the guard would reject a marker for them.candidates.yaml: all 12 new entries were backlog candidates. The guard rejects a candidate whose id is in the register, so they come out here, as the file's header asks. That leaves 218 of 230. A YAML parse confirms that only those 12 left and nothing else changed.KNOWN_UNMARKED: a file with a valid marker is exempt from the ratchet, so two entries come out.section_199a_net_capital_gain.pyhad a count of 2.mn_msa_guardian_fee.pyhad a count of 1, which Exclude county agency staff from Minnesota MSA guardian fees #10315 added for its practice note. None of the other seven files was listed.Overlap with #10315, #10350, #10351 and #10352
#10315 merged after this PR opened. Its changes conflicted only in
candidates.yaml, where it pointedus-mn:msa-guardian-fee-capat its code. Main is merged in (c3e7f9b). The registered candidate stays deleted, andcandidates.yamlequals main's file minus exactly the twelve registered candidates.#10350, #10351 and #10352 refresh
candidates.yamlto point at code onmain.Overlapping candidates. Comparing parsed YAML, Point the federal and AK-HI source-conflict candidates at their code on main #10350 edits five of the twelve candidates this PR deletes:
us-co:oap-interest-and-dividendsus-hi:care-credit-claimable-unclaimed-filerus:dependent-care-exclusion-separate-filer-incomeus:niit-magi-trust-code-h-adjustmentus:qbid-net-capital-gain-investment-electionPoint the NM-WY source-conflict candidates at their code on main #10352 edits two more,
us-ny:dependent-standard-deduction-filing-statusandus-wv:senior-disability-modification-income-base. Point the IN-MT source-conflict candidates at their code on main #10351 edits none of them.Merge order. Whichever merges second resolves the conflict by deleting those blocks. Deleting is right in either order, because they are registered now.
The malformed note. The
us:filing-claimable-spouse-unearned-income-additionsnote says "separate 2026 issues" twice, once at the end of one clause and again in the next. Point the federal and AK-HI source-conflict candidates at their code on main #10350 rewrites that whole note, so this PR leaves it alone.Invariants
These hold on every run of
policyengine_us/tests/code_health/test_source_conflicts.py:cites_entry: truecarries its marker;This PR also meets the next step's condition. The register still records
cites_entry: falsefor these nine, because its pinned commit predates the markers. Even so, every PolicyEngine-US implementation in the vendored register already carries its marker. So once rulespec-us repins them to this PR's merge withcites_entry: true, the "carry their marker" check passes unchanged.Verification
test_source_conflicts.py: 103 passed, run without the package conftest, since the guard reads files only. It found exactly 9 markers and no malformed ones. A direct check confirmed that each of the nine (entry, file) pairs in the vendored register has its marker.ruff format --checkandruff check(0.15.5, the locked version) pass on the nine changed Python files.known-source-conflicts.yamlat rulespec-us 3fefe74b.After this merges
cites_entry: true, soverifychecks the markers.cites_entry: true. The bump also brings in rulespec-us#1907 (merged as 31f5643c), which adds two OASDI entries and updates another, none naming PolicyEngine-US code, so it needs no marker.axiom: n/a: comments, the vendored register and the conflict backlog only; no policy change.
🤖 Generated with Claude Code