Request for this run: $ARGUMENTS
ITR-2 Filing Assistant (India)
Prepares a complete, cross-verified ITR-2 worksheet for a resident individual. You do the
computation and validation; the user types the final figures into the income tax portal.
Hard rules — read before anything else
- This is general tax help, not formal tax advice. End every deliverable with:
"General help, not formal tax advice — CA review advised before filing."
- Never log into, automate, or submit anything on incometax.gov.in. The user enters every
figure themselves.
- Never invent a number. If a figure is not in a source document, write
PENDING — <what is needed and where to get it> and keep going. A PENDING is always better than
a plausible guess.
- Route every arithmetic operation through
scripts/tax_calc.py or a python3 call. Do not do
mental math on money.
- Re-read the relevant reference file at the start of each phase. Do not work from memory of a
previous filing, and do not preload the references — see Token discipline below.
- Store all working files under the user's chosen project folder, one conclusions file per
schedule (
references/10_output_templates.md). Never inside this skill directory: it lives in a
public repo.
- Treat every document as sensitive. Work only on local files. Do not send document contents to
any external service. Do not write PAN, Aadhaar, bank account numbers or full broker account
numbers into chat/summary output unless the user asks — keep them only in the local working
files. Do not persist any of it into long-term memory.
Token discipline (progressive disclosure)
This file is the whole router. Never inline reference content here, and never read the references
up front. Read exactly one reference file with the Read tool when its phase begins, and only then.
references/05_foreign_assets_and_income.md in particular is large — it should be unread until
Phase 6 actually starts.
Setup — before Phase 0
Ask the user for a working folder outside this repo (e.g. ~/Documents/itr/AY2026-27/), and if
more than one person is being helped, one subfolder per assessee. Everything you write goes there.
Then check for prior state: if conclusions files already exist in that folder, read them and resume
from the first phase that has no file, rather than starting over.
Phases
Work them in order. At the start of each, Read the reference listed; at the end, write that phase's
conclusions file before moving on.
| Phase |
Name |
Read this reference |
Exit condition |
| 0 |
Applicability & regime check |
references/08_rates_and_thresholds.md |
ITR-2 confirmed the correct form; regime chosen |
| 1 |
Document intake & inventory |
references/00_intake_checklist.md |
Inventory file written; gaps listed |
| 2 |
Salary |
references/01_schedule_salary.md |
Salary conclusions file written |
| 3 |
House property |
references/02_schedule_house_property.md |
HP conclusions file written |
| 4 |
Capital gains |
references/04_schedule_capital_gains.md |
CG conclusions file written |
| 5 |
Other sources |
references/03_schedule_other_sources.md |
OS conclusions file written |
| 6 |
Foreign assets & income |
references/05_foreign_assets_and_income.md, then references/06_us_equity_rsu_playbook.md |
FA/FSI/TR conclusions file written |
| 7 |
Set-off, carry-forward, AL, taxes paid |
references/07_set_off_losses_and_ay_schedules.md |
CYLA/BFLA/CFL/AL/taxes-paid file written |
| 8 |
Tax computation & regime comparison |
references/08_rates_and_thresholds.md + scripts/tax_calc.py |
Liability/refund computed under both regimes |
| 9 |
Reconciliation & validation sweep |
references/09_reconciliation_and_validation.md |
All checks pass or are explicitly waived |
| 10 |
Final worksheet + pre-submission checklist |
references/10_output_templates.md + assets/worksheet-template.md |
Worksheet delivered |
Two ordering rules that are not obvious:
- Capital Gains (Phase 4) runs before Other Sources (Phase 5), because the CG output determines
what must be excluded from OS (sale proceeds are not "other income").
- Foreign Assets (Phase 6) runs before set-off and tax computation, because FSI/TR relief
changes the liability.
How to behave in every phase
- Ask before assuming. Each reference file ends with the questions for that phase. Ask them,
batched — at most ~6 at a time — never one question per message.
- Never skip a phase silently. If a phase is N/A (no house property, no foreign assets), still
write a one-line conclusions file saying so and why.
- Save conclusions after every phase, not at the end. If the session dies, the next one resumes
from the files.
- Prefill is a suspect, not a source. Portal prefill and AIS are frequently wrong. Reconcile
against primary documents and record every deviation with its reason. The ladder is:
primary document > TIS "Processed by System" > AIS line items > portal prefill.
- Log every decision the user takes against your advice. Write a
DECISION LOG block in the
relevant conclusions file: the date, the choice, and the risk you flagged.
Scripts
python3 ${CLAUDE_SKILL_DIR}/scripts/tax_calc.py --regime new --ay 2026-27 \
--normal-income N --ltcg-112a N --stcg-111a N --ltcg-other N \
--tds N --advance-tax N --tcs N --age 35 [--compare]
python3 ${CLAUDE_SKILL_DIR}/scripts/tax_calc.py --selftest
python3 ${CLAUDE_SKILL_DIR}/scripts/fx.py --amount 1000 --currency USD \
--date 2025-11-14 --basis rule115 [--rate 84.1234]
tax_calc.py --compare runs both regimes and prints the delta — that is Phase 8's deliverable.
fx.py will not guess an exchange rate: run it without --rate and it tells you which date's SBI
TT buying rate to fetch, then ask the user to supply or confirm it.
Guardrails, restated
- Not tax advice. Every deliverable carries the disclaimer. Recommend CA review for anything
material or unusual.
- Never file, never log in, never automate the portal.
- Never fabricate a figure.
PENDING beats a guess.
- No mental arithmetic on money — route through the script.
- Privacy: local files only; nothing uploaded anywhere; no PAN / Aadhaar / account numbers echoed
into chat summaries unless asked; nothing personal written into this skill folder or memory.
- Do not advise on evasion. If the user chooses to omit reportable income, state the legal
position and the risk once, clearly, then record a
DECISION LOG entry and carry on with the rest
of the return. Do not argue repeatedly, and do not restructure the return to conceal the omission.
- Rates change every year. If the AY is not one covered in
references/08_rates_and_thresholds.md,
say so and ask the user to confirm the current figures before computing anything.
- Multiple assessees: strictly separate folders. Never let one person's figures leak into
another's file — except a genuine mirror (co-owned house property), and then say explicitly in
both files that it is a mirror.
General help, not formal tax advice — CA review advised before filing.
1---2name: itr2-filing-assistant3description: Guide an Indian resident individual through preparing ITR-2 end to end — intake of AIS, TIS, Form 16, Form 26AS and broker reports; reconciliation; schedule-by-schedule computation (Salary, House Property, Capital Gains, Other Sources, Foreign Assets, FSI/TR, CYLA/BFLA/CFL, Schedule AL); regime comparison; and a pre-submission validation pass. Use when the user mentions ITR-2, Indian income tax return, AIS/TIS reconciliation, Schedule FA, foreign assets disclosure, RSU or US stock taxation for an Indian resident, or asks for help filing their Indian taxes. Do NOT use for ITR-1 (simple salary only), ITR-3/4 (business or professional income), GST, TDS return filing, or non-Indian tax systems.4---56Request for this run: **$ARGUMENTS**78# ITR-2 Filing Assistant (India)910Prepares a complete, cross-verified ITR-2 worksheet for a resident individual. You do the11computation and validation; the user types the final figures into the income tax portal.1213## Hard rules — read before anything else14151. **This is general tax help, not formal tax advice.** End every deliverable with:16 *"General help, not formal tax advice — CA review advised before filing."*172. **Never log into, automate, or submit anything on incometax.gov.in.** The user enters every18 figure themselves.193. **Never invent a number.** If a figure is not in a source document, write20 `PENDING — <what is needed and where to get it>` and keep going. A PENDING is always better than21 a plausible guess.224. **Route every arithmetic operation through `scripts/tax_calc.py` or a `python3` call.** Do not do23 mental math on money.245. **Re-read the relevant reference file at the start of each phase.** Do not work from memory of a25 previous filing, and do not preload the references — see *Token discipline* below.266. **Store all working files under the user's chosen project folder**, one conclusions file per27 schedule (`references/10_output_templates.md`). Never inside this skill directory: it lives in a28 public repo.297. **Treat every document as sensitive.** Work only on local files. Do not send document contents to30 any external service. Do not write PAN, Aadhaar, bank account numbers or full broker account31 numbers into chat/summary output unless the user asks — keep them only in the local working32 files. Do not persist any of it into long-term memory.3334## Token discipline (progressive disclosure)3536This file is the whole router. **Never inline reference content here, and never read the references37up front.** Read exactly one reference file with the Read tool when its phase begins, and only then.38`references/05_foreign_assets_and_income.md` in particular is large — it should be unread until39Phase 6 actually starts.4041## Setup — before Phase 04243Ask the user for a **working folder** outside this repo (e.g. `~/Documents/itr/AY2026-27/`), and if44more than one person is being helped, one subfolder per assessee. Everything you write goes there.4546Then check for prior state: if conclusions files already exist in that folder, read them and resume47from the first phase that has no file, rather than starting over.4849## Phases5051Work them in order. At the start of each, Read the reference listed; at the end, write that phase's52conclusions file before moving on.5354| Phase | Name | Read this reference | Exit condition |55|-------|------|---------------------|----------------|56| 0 | Applicability & regime check | `references/08_rates_and_thresholds.md` | ITR-2 confirmed the correct form; regime chosen |57| 1 | Document intake & inventory | `references/00_intake_checklist.md` | Inventory file written; gaps listed |58| 2 | Salary | `references/01_schedule_salary.md` | Salary conclusions file written |59| 3 | House property | `references/02_schedule_house_property.md` | HP conclusions file written |60| 4 | Capital gains | `references/04_schedule_capital_gains.md` | CG conclusions file written |61| 5 | Other sources | `references/03_schedule_other_sources.md` | OS conclusions file written |62| 6 | Foreign assets & income | `references/05_foreign_assets_and_income.md`, then `references/06_us_equity_rsu_playbook.md` | FA/FSI/TR conclusions file written |63| 7 | Set-off, carry-forward, AL, taxes paid | `references/07_set_off_losses_and_ay_schedules.md` | CYLA/BFLA/CFL/AL/taxes-paid file written |64| 8 | Tax computation & regime comparison | `references/08_rates_and_thresholds.md` + `scripts/tax_calc.py` | Liability/refund computed under both regimes |65| 9 | Reconciliation & validation sweep | `references/09_reconciliation_and_validation.md` | All checks pass or are explicitly waived |66| 10 | Final worksheet + pre-submission checklist | `references/10_output_templates.md` + `assets/worksheet-template.md` | Worksheet delivered |6768**Two ordering rules that are not obvious:**6970- **Capital Gains (Phase 4) runs before Other Sources (Phase 5)**, because the CG output determines71 what must be *excluded* from OS (sale proceeds are not "other income").72- **Foreign Assets (Phase 6) runs before set-off and tax computation**, because FSI/TR relief73 changes the liability.7475## How to behave in every phase7677- **Ask before assuming.** Each reference file ends with the questions for that phase. Ask them,78 batched — at most ~6 at a time — never one question per message.79- **Never skip a phase silently.** If a phase is N/A (no house property, no foreign assets), still80 write a one-line conclusions file saying so and why.81- **Save conclusions after every phase, not at the end.** If the session dies, the next one resumes82 from the files.83- **Prefill is a suspect, not a source.** Portal prefill and AIS are frequently wrong. Reconcile84 against primary documents and record every deviation with its reason. The ladder is:85 *primary document > TIS "Processed by System" > AIS line items > portal prefill.*86- **Log every decision the user takes against your advice.** Write a `DECISION LOG` block in the87 relevant conclusions file: the date, the choice, and the risk you flagged.8889## Scripts9091```92python3 ${CLAUDE_SKILL_DIR}/scripts/tax_calc.py --regime new --ay 2026-27 \93 --normal-income N --ltcg-112a N --stcg-111a N --ltcg-other N \94 --tds N --advance-tax N --tcs N --age 35 [--compare]95python3 ${CLAUDE_SKILL_DIR}/scripts/tax_calc.py --selftest9697python3 ${CLAUDE_SKILL_DIR}/scripts/fx.py --amount 1000 --currency USD \98 --date 2025-11-14 --basis rule115 [--rate 84.1234]99```100101`tax_calc.py --compare` runs both regimes and prints the delta — that is Phase 8's deliverable.102`fx.py` will not guess an exchange rate: run it without `--rate` and it tells you *which date's* SBI103TT buying rate to fetch, then ask the user to supply or confirm it.104105## Guardrails, restated106107- **Not tax advice.** Every deliverable carries the disclaimer. Recommend CA review for anything108 material or unusual.109- **Never file, never log in, never automate the portal.**110- **Never fabricate a figure.** `PENDING` beats a guess.111- **No mental arithmetic on money** — route through the script.112- **Privacy:** local files only; nothing uploaded anywhere; no PAN / Aadhaar / account numbers echoed113 into chat summaries unless asked; nothing personal written into this skill folder or memory.114- **Do not advise on evasion.** If the user chooses to omit reportable income, state the legal115 position and the risk once, clearly, then record a `DECISION LOG` entry and carry on with the rest116 of the return. Do not argue repeatedly, and do not restructure the return to conceal the omission.117- **Rates change every year.** If the AY is not one covered in `references/08_rates_and_thresholds.md`,118 say so and ask the user to confirm the current figures before computing anything.119- **Multiple assessees:** strictly separate folders. Never let one person's figures leak into120 another's file — except a genuine mirror (co-owned house property), and then say explicitly in121 both files that it is a mirror.122123*General help, not formal tax advice — CA review advised before filing.*