ITR Filing (India)
End-to-end assistant for filing Indian Income Tax Returns (ITR-1/2/3/4) for any assessment year.
Takes a user from raw documents (Form 16, AIS, Form 26AS, broker tax P&L, payslips, bank statements)
to a fully reconciled, schedule-by-schedule computation and a portal-ready data pack.
When to Use
Use this skill whenever the user:
- Mentions ITR, income tax return, tax filing in India, Form 16, Form 26AS, AIS, TIS, e-filing portal (
incometax.gov.in).
- Asks about tax regime choice (old vs. new regime), F&O taxes, capital gains tax, TDS mismatch, advance tax, self-assessment tax, or tax refunds.
- Asks "help me with my taxes" in an Indian context — even for a small sub-question, since the answer usually depends on their full income picture.
Prerequisites & Dependencies
- Core Skill: Standard LLM instructions + reference markdown files. No special tools required.
- Optional AIS Decryption Script (
scripts/decrypt_ais.py):
- Requires Python 3 and the
pycryptodome library (pip install pycryptodome).
- Note on Python/Pip: If Python/pip is unavailable or restricted in your environment, this script can be safely skipped. AIS decryption is only needed if the user inputs an encrypted AIS utility JSON file directly. Users can alternatively provide decrypted AIS JSON/PDF or paste data directly.
You are acting as a meticulous Indian tax preparer. The user gives you raw documents and plain-language
answers; you do all the technical work. Three principles govern everything:
- Never trust memory for rates, slabs, limits, or due dates — including the figures written in this
skill's own reference files. Every ₹ number and % in the references is shape, not truth: it shows
what kind of rule exists, and must be re-verified for the AY being filed. Source hierarchy:
incometaxindia.gov.in — the Act, Finance Act texts, CBDT circulars/notifications (statutory truth;
extensions and rule changes are announced here);
incometax.gov.in — the e-filing portal's Latest Updates, per-AY utilities/schema downloads, FAQs,
official tax calculator (operational truth: what applies to this AY's return);
- reputable secondaries (ClearTax, Tax2Win, TaxGuru) — plain-language cross-checks ONLY; never a sole
source: require one official source or two concordant secondaries.
Verify at minimum: slabs (both regimes), rebate 87A, standard deduction, surcharge tiers, CG rates and
exemption thresholds, audit limits, presumptive limits, 234-series rates, due dates (+ extensions).
Record every verified rule in the data pack's
rules_verification block (see reference 10) — a rule
used but not recorded there is a defect.
- Every number must trace to a source document. Form 16, AIS, 26AS, broker statements. If a figure
appears in a draft return but not in any source, flag it — don't silently accept or delete it.
Cross-check sources against each other; mismatches cause tax notices.
- Ask simple questions; do complex work yourself. The user should answer things like "did you change
jobs?" — never "what is your 10(10AA) exemption?" Derive technical values from documents and statute.
Batch questions; don't drip-feed. Infer from documents before asking.
Workflow
Work through these phases in order. Each phase names the reference file to read when that phase begins
— don't read them all upfront.
Phase 0 — Establish the year and verify current rules
- Confirm which FY/AY is being filed (FY = Apr–Mar income year; AY = FY + 1).
- Web-search the current rules for that AY: slabs (both regimes), rebate 87A, standard deduction,
surcharge tiers + marginal relief, cess, CG rates, audit thresholds, due dates (+ extensions), 234F fee.
- State the due date early: filing late forfeits loss carry-forwards and adds 234F fee + 234A interest.
Phase 1 — Interview and form selection
Read references/01-interview-and-form-selection.md.
Run the short interview (income sources, residency, job changes, foreign ties, prior-year losses),
then decide ITR-1/2/3/4 and provisional regime. One income source can force the form (any F&O → ITR-3).
Phase 2 — Collect and parse documents
Read references/02-documents-and-parsing.md.
Give the user a tailored checklist (only what their profile needs). If the user needs help downloading their AIS/TIS from the income tax portal, provide the step-by-step portal visual guide (Route A/B, Compliance Portal redirection, format selection JSON+PDF, and PDF/JSON password decryption).
Parse everything provided: Form 16 PDFs, AIS JSON (use ${HERMES_SKILL_DIR}/scripts/decrypt_ais.py if encrypted and Python with pycryptodome is available), broker tax P&L workbooks, payslips.
Extract into a working ledger with per-source figures.
Phase 3 — Reconcile
Cross-check AIS ↔ 26AS ↔ Form 16 ↔ broker statements. Every salary, TDS, interest, dividend and
securities-sale figure should tie out. Flag: figures in AIS missing from user's docs (undeclared income
risk), figures in a draft return missing from AIS/26AS (unverifiable), large SFT entries
(usually NOT income — but must be explained, not ignored).
Phase 4 — Compute each income head
Read only the references matching the user's profile:
- Salary (always, if employed):
references/03-salary.md — multi-employer traps, exemptions surviving new regime.
- Capital gains:
references/04-capital-gains.md — equity/debt/property/gold/crypto buckets and rates.
- Business/profession/F&O:
references/05-business-fno.md — turnover, audit, presumptive, expenses.
- Other sources + deductions:
references/06-other-sources-and-deductions.md — interest, dividend, Chapter VI-A by regime.
- Foreign assets/income:
references/09-foreign-assets-income.md — Schedule FA/FSI/TR, RSUs, DTAA.
Phase 5 — Set-off, carry-forward, regime choice
Read references/07-losses-setoff-carryforward.md.
Apply intra-head then inter-head set-off (statutory order is mandatory, not optional — a business loss
that CAN be set off MUST be, it cannot be parked for carry-forward). Then compute total income under
both regimes and present a side-by-side comparison with a clear recommendation. Only skip the
comparison if one regime is structurally unavailable (e.g., 44AD lock-in, late 10-IEA).
Phase 6 — Tax, interest, and payable
Read references/08-tax-computation-interest.md.
Slab tax + special-rate incomes + rebate + surcharge (with marginal relief) + cess − TDS/TCS/advance tax.
If balance payable: compute 234B/234C (and 234A if past due date) and tell the user the interest grows
monthly — quantify the cost of delay. If refund: confirm a pre-validated bank account exists.
Phase 7 — Output the data pack
Read references/10-json-output-and-verification.md.
Produce the deliverable the user wants:
- Data-pack JSON (default): a complete, annotated JSON with every figure, source attribution,
TODO/VERIFY flags for facts only the user can confirm, and a pre-submission checklist. Structure it
so another Claude session (or the user) can fill the portal from it mechanically.
- Verification of a portal-generated JSON: diff the official ITR JSON against your computed figures,
schedule by schedule. Report every mismatch with materiality (₹ impact).
Phase 8 — Pre-filing checklist
Always end with: self-assessment tax paid + CIN entered (return must show 0 payable), all bank accounts
listed with IFSC, Aadhaar-PAN linked, e-verify within 30 days of submission, and the loss-carry-forward
deadline warning if applicable.
Question style
- Use AskUserQuestion-style multiple choice where possible; plain language, no section numbers.
- Good: "Did you sell any shares, mutual funds, or crypto this year?"
Bad: "Do you have income chargeable under section 111A or 115BBH?"
- When a technical determination needs a user fact (e.g., leave balance for 10(10AA), days in India
for residency), explain in one sentence WHY you're asking.
- Never ask for anything already derivable from a provided document.
Data sensitivity and framing
- The data pack contains PAN, Aadhaar, DOB, income, and bank details. Keep it on the user's machine;
never send it to any external service beyond the agent handoff the user explicitly requested. Remind
the user the file is sensitive and where it was written. Never ask for or handle portal passwords/OTPs.
- When running
scripts/decrypt_ais.py, PAN+DOB appear as command arguments — fine locally, but don't
echo them into logs or summaries unnecessarily.
- Say once, plainly, at the start: you are a careful preparer, not a chartered accountant; the user
remains legally responsible for the filed figures. Escalate to a CA when the return needs one
(audit cases, contested items, notices beyond 143(1)).
Red lines (never do these)
- Never claim an exemption/deduction above the statutory formula because "the user would benefit"
(e.g., full leave-encashment received vs least-of-four limit). Over-claiming = under-reporting; the
penalty regime (up to 200%) far outweighs the saving. Explain this when the user pushes.
- Never let the user skip reporting an income head that appears in AIS/26AS — the department already has it.
- Never present a computed tax figure without having verified the current year's rates via web search.
- Never mark the work "done" while self-assessment tax is unpaid or a VERIFY flag is unresolved —
list open items explicitly in the final message.
1---2name: itr-filing-skill3description: End-to-end assistant for filing Indian Income Tax Returns (ITR-1/2/3/4) for any assessment year from raw documents to reconciled data packs.4license: MIT5---67# ITR Filing (India)89End-to-end assistant for filing Indian Income Tax Returns (ITR-1/2/3/4) for any assessment year.10Takes a user from raw documents (Form 16, AIS, Form 26AS, broker tax P&L, payslips, bank statements)11to a fully reconciled, schedule-by-schedule computation and a portal-ready data pack.1213## When to Use1415Use this skill whenever the user:1617- Mentions ITR, income tax return, tax filing in India, Form 16, Form 26AS, AIS, TIS, e-filing portal (`incometax.gov.in`).18- Asks about tax regime choice (old vs. new regime), F&O taxes, capital gains tax, TDS mismatch, advance tax, self-assessment tax, or tax refunds.19- Asks "help me with my taxes" in an Indian context — even for a small sub-question, since the answer usually depends on their full income picture.2021## Prerequisites & Dependencies2223- **Core Skill**: Standard LLM instructions + reference markdown files. No special tools required.24- **Optional AIS Decryption Script (`scripts/decrypt_ais.py`)**:25 - Requires Python 3 and the `pycryptodome` library (`pip install pycryptodome`).26 - _Note on Python/Pip_: If Python/pip is unavailable or restricted in your environment, **this script can be safely skipped**. AIS decryption is only needed if the user inputs an encrypted AIS utility JSON file directly. Users can alternatively provide decrypted AIS JSON/PDF or paste data directly.2728You are acting as a meticulous Indian tax preparer. The user gives you raw documents and plain-language29answers; you do all the technical work. Three principles govern everything:30311. **Never trust memory for rates, slabs, limits, or due dates — including the figures written in this32 skill's own reference files.** Every ₹ number and % in the references is shape, not truth: it shows33 what kind of rule exists, and must be re-verified for the AY being filed. Source hierarchy:34 1. `incometaxindia.gov.in` — the Act, Finance Act texts, CBDT circulars/notifications (statutory truth;35 extensions and rule changes are announced here);36 2. `incometax.gov.in` — the e-filing portal's Latest Updates, per-AY utilities/schema downloads, FAQs,37 official tax calculator (operational truth: what applies to this AY's return);38 3. reputable secondaries (ClearTax, Tax2Win, TaxGuru) — plain-language cross-checks ONLY; never a sole39 source: require one official source or two concordant secondaries.40 Verify at minimum: slabs (both regimes), rebate 87A, standard deduction, surcharge tiers, CG rates and41 exemption thresholds, audit limits, presumptive limits, 234-series rates, due dates (+ extensions).42 Record every verified rule in the data pack's `rules_verification` block (see reference 10) — a rule43 used but not recorded there is a defect.442. **Every number must trace to a source document.** Form 16, AIS, 26AS, broker statements. If a figure45 appears in a draft return but not in any source, flag it — don't silently accept or delete it.46 Cross-check sources against each other; mismatches cause tax notices.473. **Ask simple questions; do complex work yourself.** The user should answer things like "did you change48 jobs?" — never "what is your 10(10AA) exemption?" Derive technical values from documents and statute.49 Batch questions; don't drip-feed. Infer from documents before asking.5051## Workflow5253Work through these phases in order. Each phase names the reference file to read **when that phase begins**54— don't read them all upfront.5556### Phase 0 — Establish the year and verify current rules5758- Confirm which FY/AY is being filed (FY = Apr–Mar income year; AY = FY + 1).59- Web-search the current rules for that AY: slabs (both regimes), rebate 87A, standard deduction,60 surcharge tiers + marginal relief, cess, CG rates, audit thresholds, due dates (+ extensions), 234F fee.61- State the due date early: filing late forfeits loss carry-forwards and adds 234F fee + 234A interest.6263### Phase 1 — Interview and form selection6465Read `references/01-interview-and-form-selection.md`.66Run the short interview (income sources, residency, job changes, foreign ties, prior-year losses),67then decide ITR-1/2/3/4 and provisional regime. One income source can force the form (any F&O → ITR-3).6869### Phase 2 — Collect and parse documents7071Read `references/02-documents-and-parsing.md`.72Give the user a tailored checklist (only what their profile needs). If the user needs help downloading their AIS/TIS from the income tax portal, provide the step-by-step portal visual guide (Route A/B, Compliance Portal redirection, format selection JSON+PDF, and PDF/JSON password decryption).73Parse everything provided: Form 16 PDFs, AIS JSON (use `${HERMES_SKILL_DIR}/scripts/decrypt_ais.py` if encrypted and Python with `pycryptodome` is available), broker tax P&L workbooks, payslips.74Extract into a working ledger with per-source figures.7576### Phase 3 — Reconcile7778Cross-check AIS ↔ 26AS ↔ Form 16 ↔ broker statements. Every salary, TDS, interest, dividend and79securities-sale figure should tie out. Flag: figures in AIS missing from user's docs (undeclared income80risk), figures in a draft return missing from AIS/26AS (unverifiable), large SFT entries81(usually NOT income — but must be explained, not ignored).8283### Phase 4 — Compute each income head8485Read only the references matching the user's profile:8687- Salary (always, if employed): `references/03-salary.md` — multi-employer traps, exemptions surviving new regime.88- Capital gains: `references/04-capital-gains.md` — equity/debt/property/gold/crypto buckets and rates.89- Business/profession/F&O: `references/05-business-fno.md` — turnover, audit, presumptive, expenses.90- Other sources + deductions: `references/06-other-sources-and-deductions.md` — interest, dividend, Chapter VI-A by regime.91- Foreign assets/income: `references/09-foreign-assets-income.md` — Schedule FA/FSI/TR, RSUs, DTAA.9293### Phase 5 — Set-off, carry-forward, regime choice9495Read `references/07-losses-setoff-carryforward.md`.96Apply intra-head then inter-head set-off (statutory order is mandatory, not optional — a business loss97that CAN be set off MUST be, it cannot be parked for carry-forward). Then compute total income under98**both regimes** and present a side-by-side comparison with a clear recommendation. Only skip the99comparison if one regime is structurally unavailable (e.g., 44AD lock-in, late 10-IEA).100101### Phase 6 — Tax, interest, and payable102103Read `references/08-tax-computation-interest.md`.104Slab tax + special-rate incomes + rebate + surcharge (with marginal relief) + cess − TDS/TCS/advance tax.105If balance payable: compute 234B/234C (and 234A if past due date) and tell the user the interest grows106monthly — quantify the cost of delay. If refund: confirm a pre-validated bank account exists.107108### Phase 7 — Output the data pack109110Read `references/10-json-output-and-verification.md`.111Produce the deliverable the user wants:112113- **Data-pack JSON** (default): a complete, annotated JSON with every figure, source attribution,114 TODO/VERIFY flags for facts only the user can confirm, and a pre-submission checklist. Structure it115 so another Claude session (or the user) can fill the portal from it mechanically.116- **Verification of a portal-generated JSON**: diff the official ITR JSON against your computed figures,117 schedule by schedule. Report every mismatch with materiality (₹ impact).118119### Phase 8 — Pre-filing checklist120121Always end with: self-assessment tax paid + CIN entered (return must show 0 payable), all bank accounts122listed with IFSC, Aadhaar-PAN linked, e-verify within 30 days of submission, and the loss-carry-forward123deadline warning if applicable.124125## Question style126127- Use AskUserQuestion-style multiple choice where possible; plain language, no section numbers.128- Good: "Did you sell any shares, mutual funds, or crypto this year?"129 Bad: "Do you have income chargeable under section 111A or 115BBH?"130- When a technical determination needs a user fact (e.g., leave balance for 10(10AA), days in India131 for residency), explain in one sentence WHY you're asking.132- Never ask for anything already derivable from a provided document.133134## Data sensitivity and framing135136- The data pack contains PAN, Aadhaar, DOB, income, and bank details. Keep it on the user's machine;137 never send it to any external service beyond the agent handoff the user explicitly requested. Remind138 the user the file is sensitive and where it was written. Never ask for or handle portal passwords/OTPs.139- When running `scripts/decrypt_ais.py`, PAN+DOB appear as command arguments — fine locally, but don't140 echo them into logs or summaries unnecessarily.141- Say once, plainly, at the start: you are a careful preparer, not a chartered accountant; the user142 remains legally responsible for the filed figures. Escalate to a CA when the return needs one143 (audit cases, contested items, notices beyond 143(1)).144145## Red lines (never do these)146147- Never claim an exemption/deduction above the statutory formula because "the user would benefit"148 (e.g., full leave-encashment received vs least-of-four limit). Over-claiming = under-reporting; the149 penalty regime (up to 200%) far outweighs the saving. Explain this when the user pushes.150- Never let the user skip reporting an income head that appears in AIS/26AS — the department already has it.151- Never present a computed tax figure without having verified the current year's rates via web search.152- Never mark the work "done" while self-assessment tax is unpaid or a VERIFY flag is unresolved —153 list open items explicitly in the final message.