When the user is working on a specific tax form, generates a line-by-line cheat sheet explaining what each line means, where values come from, which rules apply, and whether each line is relevant to their situation. Also helps organize business expenses for Schedule C. Triggers on: 'help me fill out [form name]', 'what goes on line X', 'cheat sheet for Schedule C', 'does this apply to me', 'explain this form', 'walk me through Form 1040', 'what is line 12a', 'help with Schedule A', 'how do I fill this out', or when user shares a screenshot of a form they're filling out.
Form-filling companion — generates line-by-line cheat sheets for any tax form the user is working on. Explains what each line means, where the value comes from (referencing the analysis/tax-doc-summary.csv produced by /tax-prep), which tax rules apply (citing reference/curated/ files), and whether each line is relevant to the user's situation. Also provides specialized help organizing business expenses for Schedule C.
Every conversation starts here:
analysis/tax-doc-summary.csv exists/tax-prep first to extract your document values, then come back here."Use this table to determine which curated reference files to read for each form, and which CSV document types contain the source values.
| Form / Schedule | Curated Reference File(s) | CSV Document Prefix |
|---|---|---|
| Form 1040 (Lines 1–8, Income) | 1040-line-by-line.md, investment-income.md | W-2, 1099-INT, 1099-DIV, 1099-B |
| Form 1040 (Lines 9–11, AGI) | 1040-line-by-line.md, student-loan-interest.md | All |
| Form 1040 (Lines 12–15, Deductions) | 1040-line-by-line.md, salt-deduction-2025.md, mortgage-interest.md, self-employment-qbi.md, schedule-1a-deductions.md | 1098, W-2 |
| Form 1040 (Lines 16–24, Tax/Credits/Other) | 1040-line-by-line.md, 2025-tax-numbers.md, additional-medicare-tax.md | All |
| Form 1040 (Lines 25–38, Payments/Refund) | 1040-line-by-line.md | W-2, 1099 |
| Schedule A (Itemized Deductions) | salt-deduction-2025.md, mortgage-interest.md | 1098, W-2 |
| Schedule B (Interest and Dividends) | investment-income.md | 1099-INT, 1099-DIV |
| Schedule C (Business Income) | schedule-c-guide.md | 1099-K, 1099-NEC |
| Schedule D / Form 8949 (Capital Gains) | investment-income.md | 1099-B, 1099-DIV |
| Schedule 1 (Additional Income/Adjustments) | 1040-line-by-line.md, schedule-c-guide.md, student-loan-interest.md | 1099-K, 1098-E |
| Schedule 1-A (OBBBA Deductions) | schedule-1a-deductions.md | W-2 |
| Schedule 2 (Additional Taxes) | additional-medicare-tax.md, niit-form-8960.md, 2025-tax-numbers.md | W-2, 1099-INT, 1099-DIV, 1099-B |
| Form 8959 (Additional Medicare Tax) | additional-medicare-tax.md, 2025-tax-numbers.md | W-2 |
| Form 8960 (NIIT) | niit-form-8960.md, 2025-tax-numbers.md | 1099-INT, 1099-DIV, 1099-B, Schedule C result |
| Form 8995 (QBI Deduction) | self-employment-qbi.md | Schedule C result |
| Illinois IL-1040 | illinois-il1040-guide.md, 2025-tax-numbers.md | W-2, all |
When the user asks about a form (by name, line number, or screenshot):
Identify the form and section. Parse the user's request to determine which form and which lines they need help with. If a screenshot is provided, read the image and identify the form name, page, and visible line numbers.
Load the CSV. Read analysis/tax-doc-summary.csv. Use form_line_lookup.py to pull relevant values.
Consult the reference files. Using the Supported Forms Table above, read the appropriate curated reference file(s) from reference/curated/.
Generate the cheat sheet table. For each line in the requested section, produce a row with these columns:
| Column | Content |
|---|---|
| Line | The line number (bold if user needs to fill it) |
| What It Means | Plain English explanation from the curated reference |
| Your Value | The value from the CSV, or a calculation result from a script. If not available, show [Not in CSV] |
| Source Document | Which CSV document and box provides this value (e.g., "W-2 Box 1") |
| Tax Rule | Citation to the curated reference: (Source: filename.md, section) |
| Applies? | Yes, No — Leave blank, or Maybe — [explanation] |
Flag cross-references. If a line pulls from another schedule or form (e.g., "from Schedule D, Line 16"), add a note below the table:
"Line X pulls from [Schedule Y]. Would you like a cheat sheet for that schedule?"
Run scripts for computed values. When a line requires calculation (not a direct CSV lookup), invoke the appropriate script and present the result. Never do arithmetic in natural language.
Present the cheat sheet using the output format below.
Save the cheat sheet. Write the cheat sheet to analysis/cheatsheet-{form-name}.md (e.g., analysis/cheatsheet-schedule-c.md, analysis/cheatsheet-form-1040.md). Use lowercase with hyphens. If the file already exists, overwrite it with the updated version. Tell the user: "Saved to analysis/cheatsheet-{form-name}.md."
Every cheat sheet follows this structure:
## Cheat Sheet: [Form Name] — [Section Name]
Based on your extracted data from `analysis/tax-doc-summary.csv` (N documents, M values).
| Line | What It Means | Your Value | Source Document | Tax Rule | Applies? |
|------|---------------|------------|-----------------|----------|----------|
| ... | ... | ... | ... | ... | ... |
### Cross-References
- Line X pulls from [Schedule Y]. Would you like a cheat sheet for that schedule?
### Notes
- [Any situation-specific observations, e.g., phase-outs that apply, elections to make]
---
*Disclaimer: This cheat sheet assists with tax return preparation. It does not constitute tax advice. Verify all numbers against source documents. Consult a qualified tax professional for your specific situation.*
When the user is working on Form 1040 Line 12a or Schedule A, automatically run the comparison:
Gather inputs from the CSV:
form_line_lookup.py with document_filter "W-2", box_filter "Box 17" (state) and "Box 19" (local), operation "sum"form_line_lookup.py with document_filter "1098", box_filter "Box 4"form_line_lookup.py with document_filter "1098", box_filter "Box 1"Run standard_vs_itemized.py with the gathered values.
Present the comparison:
| Path | Amount |
|---|---|
| Standard Deduction | $X |
| Itemized Deductions | $Y |
| Recommendation | [Standard/Itemized] by $Z |
Show the itemized breakdown (SALT components, mortgage interest, charitable, medical) so the user understands each piece.
When the user asks about Schedule C or business-related forms, use this specialized workflow:
form_line_lookup.py to pull gross receipts (1099-K Box 1a)schedule_c_calculator.py with the COGS inputsschedule_c_calculator.py with all inputs"Safe harbor: profit in 3 of 5 years. Keep documentation of profit intent." (Source: schedule-c-guide.md, Hobby Loss Rules)
"Home office deduction cannot increase a net loss. If Schedule C shows a loss, the deduction is limited to $0." (Source: schedule-c-guide.md, Home Office)
When the user asks whether a provision, credit, or deduction applies:
Identify the provision. Determine exactly which tax rule or line they're asking about.
Look up eligibility criteria in the relevant curated reference file.
Cross-reference the user's data. Use form_line_lookup.py to check income levels, document types present, and other relevant values from the CSV.
Provide a clear answer:
Cite the source: Always include (Source: filename.md, section).
When the user shares a screenshot of a form they're filling out:
Not all lines will have data available. Handle gracefully:
[Not in CSV] in the Your Value column and note: "Check if you have a document for this (e.g., Form 1099-R for retirement distributions)."[Ask user] and pose the specific question (e.g., "Did you purchase a vehicle in 2025?")[See Schedule X] and offer to generate that schedule's cheat sheet.Full rule definitions are in CLAUDE.md. Skill-specific subset below.
scripts/. Never perform arithmetic in natural language. Use the scripts for any addition, subtraction, multiplication, division, or comparison of dollar values.reference/curated/. Format: (Source: filename.md, section). If a curated reference file does not exist for a particular rule, say: "I cannot verify this from provided IRS materials — check IRS.gov before relying on this."output/ must leave SSN, bank routing, account number, and signature fields BLANK.Scripts live in .claude/skills/tax-cheatsheet/scripts/. Invoke via:
python .claude/skills/tax-cheatsheet/scripts/<script>.py '<json_input>'
Scripts accept a single CLI argument (JSON string) and print a JSON object to stdout. Parse that output — those are the authoritative results.
| Script | Purpose |
|---|---|
form_line_lookup.py | Look up and sum values from the tax-doc-summary CSV by document type and box |
standard_vs_itemized.py | Compare standard deduction vs. itemized, accounting for SALT cap and phase-out |
schedule_c_calculator.py | Compute Schedule C lines: COGS, expenses, net profit/loss, SE tax flag, QBI |
salt_cap_calculator.py | Compute effective SALT cap with MAGI phase-out |
/tax-prep — extract document values into CSV (run before this skill)/tax-audit — cross-check completed return against extracted source values (run after filling forms)/tax-advisor — next-year tax planning based on this year's data