Skip to content

feat(ty2026): PDF export for Forms 8962, 5329, 8582, 4562, 1116; Form 6251 and 8880 checks use the return year - #166

Merged
a7ul merged 49 commits into
mainfrom
ag45-ty26-pdf-last
Oct 19, 2026
Merged

a7ul merged 49 commits into
mainfrom
ag45-ty26-pdf-last

Conversation

@a7ul

@a7ul a7ul commented Oct 19, 2026

Copy link
Copy Markdown
Collaborator

This PR adds TY2026 PDF export for the five forms that #165 still refused. It also fixes the checks #165 reported as still using 2025 values.

Year fixes

These checks now use the return's year:

  • Form 6251 line 2k (Form 8949 holding period).
  • The Form 6251 mining charitable, circulation and prior-ISO-sale checks.
  • The Form 8880 ABLE self-employment check, which now reads ssWageBase from CONFIG_BY_YEAR.

Each has a new TY2026 test. TY2025 values are unchanged.

Forms now exporting

All five are filled on the pinned 2026 drafts.

Form 2025 → 2026 change
8962 New line 6 "401%?" is ticked from the engine's poverty percentage. Line 27 carries the uncapped excess APTC. Lines 28–29 are reserved, and the PDF refuses if the engine produces a repayment cap. The MeF replay uses the return year.
5329 Parts I–II shift two field numbers. The new Trump-account Parts X–XI are not modelled, so nothing feeds them.
8582 Field names change only. The MeF replay uses the return year.
4562 The special allowance prints on line 14a. Section B rows shift three field numbers. The MeF replay uses the return year.
1116 Part I shifts two field numbers. Part II moves to page 2 and splits into foreign-currency and US-dollar tables; the PTEP columns are left empty. Parts III–IV shift. The tax-paid dates use the return year.

Forms 4562, 8582 and 1116 refuse by name if they would add a continuation statement that is still titled 2025.

Still refused for TY2026

  • Form 1116 Schedule B, whose carryover rows are tied to 2025.
  • Forms 4835 and 8834.
  • The Form 3800 path.

Verification

  • check:structure, check:sandbox, check:cases, test:unit, test:forms, check:cli, check:irs and check:oracle pass.
  • check:mef: 373/374. check:ty2026: 231/374.
  • The release smoke passes.
  • bench f1040 2025: 22/109.

Not verified

  • These parts have no fixture, so only the test that every mapped field exists covers them:
    • Form 4562 Section B rows
    • Form 1116 rows B/C and the foreign-currency columns
    • Form 8962 monthly rows and Parts IV–V
    • Form 5329 Part VII
  • The Form 8962 "401% Yes" path has no fixture.
  • Form 1116 country names still come from the 2025 list.
  • The PDFs were checked with pdftotext only, not visually.
  • The final commit only removes a ? from one parameter. check:mef, check:ty2026, check:cli, check:oracle and the smoke last ran one commit earlier; CI covers the final commit.

Generated by Claude Code

claude added 30 commits October 19, 2026 09:24
…urn's context

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Sm4GSdgHFQ4sJqLdRaK6pQ
… context

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Sm4GSdgHFQ4sJqLdRaK6pQ
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Sm4GSdgHFQ4sJqLdRaK6pQ
…rn's year

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Sm4GSdgHFQ4sJqLdRaK6pQ
…return's year

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Sm4GSdgHFQ4sJqLdRaK6pQ
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Sm4GSdgHFQ4sJqLdRaK6pQ
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Sm4GSdgHFQ4sJqLdRaK6pQ
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Sm4GSdgHFQ4sJqLdRaK6pQ
…the return year

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Sm4GSdgHFQ4sJqLdRaK6pQ
…9, 8995 on IRS 2026 drafts

The 2025 projections behind them now take the tax year, and the PDF
builder's source checks use the return's year instead of 2025.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Sm4GSdgHFQ4sJqLdRaK6pQ
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Sm4GSdgHFQ4sJqLdRaK6pQ
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Sm4GSdgHFQ4sJqLdRaK6pQ
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Sm4GSdgHFQ4sJqLdRaK6pQ
… the IRS 2026 draft

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Sm4GSdgHFQ4sJqLdRaK6pQ
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Sm4GSdgHFQ4sJqLdRaK6pQ
claude added 19 commits October 19, 2026 12:16
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Sm4GSdgHFQ4sJqLdRaK6pQ
…s; Schedule A line 18 Yes test

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Sm4GSdgHFQ4sJqLdRaK6pQ
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Sm4GSdgHFQ4sJqLdRaK6pQ
…0 source replay takes the return's year

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Sm4GSdgHFQ4sJqLdRaK6pQ
…O and Form 8880 ABLE SE checks use the return's year

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Sm4GSdgHFQ4sJqLdRaK6pQ
Line 6 prints the graph's 401% answer; line 27 carries the uncapped
excess APTC and lines 28-29 stay blank as reserved.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Sm4GSdgHFQ4sJqLdRaK6pQ
…sheet replay takes the return's year

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Sm4GSdgHFQ4sJqLdRaK6pQ
…ce replay takes the return's year

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Sm4GSdgHFQ4sJqLdRaK6pQ
…date checks take the return's year

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Sm4GSdgHFQ4sJqLdRaK6pQ
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Sm4GSdgHFQ4sJqLdRaK6pQ
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Sm4GSdgHFQ4sJqLdRaK6pQ
…ss and year arguments

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Sm4GSdgHFQ4sJqLdRaK6pQ
@a7ul
a7ul merged commit f3e4e8a into main Oct 19, 2026
1 check passed
@a7ul
a7ul deleted the ag45-ty26-pdf-last branch October 19, 2026 15:18
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.

2 participants