Tax and books
Know what tax you owe at every moment, for your companies and your personal return. Every obligation becomes a dated task, receipts land in one ledger, the month closes for your accountant, and the estimate is planned before the penalty, not after.
Tax punishes forgetting. A company that starts trading can owe an estimate within months, a revision window closes quietly, a payment to an overseas supplier carries its own filing. The tax skill keeps all of it in one place for every entity you file for: your companies and yourself. Ask in plain words ("what's due?", "here's a receipt", "my accountant sent this") or run it as /agent-kevin:tax in Claude Code or $tax in Codex.
Your agent prepares, tracks, and drafts. You and your tax agent file, pay, and sign. It never submits a return, moves money, or sends an email.
What you owe right now
Tax is the quiet claim on money that looks available. The skill prices it continuously: for each entity, what you would owe if the year ended today, from the ledger and the country's published rates, minus what is already paid (instalments, tax withheld from salary). Beside it sits the monthly set-aside, the share of every month's income that is really tax at the current pace, which is the number a budget or a savings plan should subtract first.
you > how much tax do I owe right now?
you > /agent-kevin:tax positionYour own return works differently when tax comes out of your salary before it reaches you: most of it is already paid. So the personal view leads with what filing will bring instead: the top-up you'll pay or the refund you'll get, at this pace. Next to it are the tax your consulting or other untaxed income adds, which is the part to set aside, and every relief you haven't used yet, each priced at what claiming it would save. A relief that depends on a fact about your household (a spouse, children) is shown as a question until you confirm it, never claimed.
It never guesses. An entity whose books don't reach this year shows a dash and what would price it (a closed month, your accountant's year-to-date figure, salary and invoices recorded), not a comforting zero. A foreign amount without its home-currency value is left out and flagged rather than converted at an invented rate, and every figure is labelled a planning estimate: your tax agent's computation is the one that's filed.
Deadlines are tasks
Each entity has a profile listing its obligations, set up with you from your country's rules: the tax estimate and its revisions, the annual return, employer returns, service tax, the company registry's filings. The skill turns each one into a task with a due date when it enters its lead window (three weeks ahead by default), so tax deadlines surface where your other deadlines do: the task board, the morning briefing, sync, and the dashboard. A deadline that is filed and archived, or one you decided to skip, is never created again.
you > what's due for Acme this quarter?
you > /agent-kevin:tax calendarThe tax project also gets its own page, projects/tax/dashboard.html, which shows up among the dashboard's surfaces. The Overview leads with the tax you owe right now, split business and personal, and the monthly set-aside, then a card per entity, the next 60 days, and twelve months of deadlines coloured by their task's state. A Books strip shows every company's last twelve months at a glance, with the top items still to collect. Each entity has its own tab: the month-by-month books and their checklist, how the number is built, month-by-month income and expenses, its deadlines, the estimate on file against the projection and its penalty exposure, and the monthly close. The tabs work without scripts, so it opens anywhere, including in a notes app.
Books
Bookkeeping is the layer everything else stands on: the tax owed, the estimate, and every return are only as good as the books under them. Even with a bookkeeper, the documents are yours to supply. So each company's books are tracked month by month, from the last month your accountant has booked:
| Month state | Means |
|---|---|
| Booked | Your accountant's books are current through it |
| With your accountant | Closed and sent, waiting on them |
| Ready to send | Reconciled, just not sent yet |
| Gaps to explain | Payments without a receipt or an answer to "what was this for?" |
| Collecting | Some documents in, not reconciled |
| Not started | Ended with nothing recorded |
Next to the months is a checklist of what is left to collect. Missing statements are grouped by account ("Main current account statements, Apr–Aug"). Each unexplained payment gets a line with its amount and date. Then comes whatever is open with your accountant. Their questions about single bank lines land on that month's gap list rather than as a pile of separate tasks.
you > what do I need to collect for the accountant?
you > the accountant says the books are done through June| Ask | What happens |
|---|---|
"Here's a receipt", a PDF or photo, or a file dropped in projects/tax/inbox/ | Read, filed under the entity and month, logged as a ledger row. A payment to a foreign supplier is flagged for withholding tax and imported-service tax, with its deadline as a task |
| "September salary 28,000, tax withheld 4,200" | Logged as figures you stated, no document needed. Income, salary, tax payments, and zakat all feed the owed-now figure |
| "Books for the kids, 640", a gym receipt | Logged against the matching personal relief, capped at its limit, so the unused-relief list shrinks as you go |
"Close last month", tax close | Bank statements reconciled against the ledger, gaps listed, the month packaged for your accountant with the message drafted in your voice |
| "My accountant sent this" | Every request becomes a task with a due date, durable facts update the entity profile, and the reply is drafted |
Sync nudges a monthly close when last month hasn't been closed, and never runs it for you: a close needs your statements.
Planning
| Ask | What happens |
|---|---|
| "How much tax should Acme estimate?" | A worksheet from actuals plus your forecast, the underestimation penalty if nothing changes, the estimate that removes it, and the instalments it creates |
| "How can I pay less?" | Legitimate levers for each entity, each labelled confirmed, strong, or guess with its source, and the questions to put to your tax agent |
| "The year just closed" | The annual cycle as dated tasks, in order: final accounts, audit, tax computation, returns, registry filings |
Optimizations are always questions for your tax agent, never advice to act on. Religious payments such as zakat are described by their tax effect only.
Countries
Rules, dates, penalties, and levers live in one reference file per country, each rule tied to its statute or official page. Malaysia ships first: companies (Sdn Bhd) and resident individuals. Adding a country is one file; the deadline engine and the playbooks stay the same.
Where it lives
projects/tax/
├── entities/<slug>.md facts, obligations and accounts per entity
├── receipts/<slug>/<YYYY-MM>/ filed documents
├── ledger/<slug>/<YYYY>.csv one row per document
├── closes/<slug>/<YYYY-MM>.md monthly close records and their open gaps
├── estimates/<slug>/<YA>.md estimate worksheets
├── dashboard.html generated, don't edit
└── tasks/ deadlines and one-off workEverything stays in your home. Tax ids, amounts, and documents never go into a report shared outside it.