executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
pt-irs-runbookPortuguese personal income tax (IRS / Código do IRS) and Modelo 3 filing — determining tax residency (Art. 16), classifying income by category (rental/Anexo F, capital gains/Anexo G, employment/Anexo A, self-employment/Anexo B, pensions, foreign income/Anexo J), choosing the right annexes, applying current Art. 72 autonomous rates, and meeting Portal das Fi…
Independent GitHub snapshot · Automated classification · Original documentation governs
A diagnostic runbook for Portuguese personal income tax (IRS). Each symptom is a filing situation; each decision tree routes from the situation to the correct annex, autonomous rate, and deadline, then terminates in a concrete filing action or a clear "escalate to a contabilista certificado for {reason}".
Not tax advice. This skill encodes the CIRS and Portal das Finanças rules as verified on the cited dates. Tax rates and thresholds change with each Orçamento do Estado. Always confirm figures against the live Art. 68/72 text and the official Modelo 3 / IRS automático screens before submitting, and involve a contabilista certificado for anything non-routine. Default income year is 2025 (return filed 1 Apr – 30 Jun 2026) unless stated otherwise.
This skill is Portugal-specific. For UK/other-country filing it is out of scope (though it covers the PT side of a cross-border situation, e.g. PT rental income that also appears on a UK SA106).
| # | Symptom / Question | Entry tree | Priority |
|---|---|---|---|
| 1 | "Am I resident or non-resident — and what changes?" | residency-tree | P1 (gateway) |
| 2 | "Do I have to file? Can I accept IRS automático? Which annexes?" | filing-obligation-tree | P1 (router) |
| 3 | "I receive rent from a PT property" (Categoria F) | rental-income-tree | P1 |
| 4 | "I sold a property or shares" (Categoria G / mais-valias) | capital-gains-tree | P1 |
| 5 | "I have salary or a pension" (Categoria A / H) | employment-pension-tree | P2 |
| 6 | "I'm self-employed / recibos verdes" (Categoria B) | self-employment-tree | P2 |
| 7 | "I have foreign income / risk of double taxation" (Anexo J) | foreign-income-tree | P2 |
| Wrong default | Reality | Where |
|---|---|---|
| "Rental income is taxed at the progressive scale" | Cat F has its own autonomous rate (25% base, lower for long leases); englobamento is optional | rental-income-tree |
| "A 2-year lease gets a reduced rental rate" | The Art. 72 reductions start at 5-year permanent-housing contracts; under 5 years = 25% | rates-and-deductions.md |
| "Non-residents pay 28% on the whole property gain" | Since 2023 non-residents get the 50% inclusion + progressive rates, like residents | capital-gains-tree |
| "Just sign up for NHR" | NHR is closed to new arrivals; the current regime is IFICI with much narrower eligibility | foreign-income-tree |
| "A non-resident must appoint a fiscal representative" | Optional if you adhere to electronic notifications; always optional for EU/EEA residents | filing-obligation-tree |
On first use, populate config.json with the taxpayer's situation (residence country, fiscal representative status, applicable tax treaty, NIF). If a required field is empty, ask the user, then save it. Never store passwords — login to Portal das Finanças is interactive.
Diagnostic dead-ends and portal quirks accumulate in gotchas.md. Read it before a non-trivial filing.