New: Earn 20% as an AgentAlley affiliate. Share your link and earn on every sale you refer. Join now New: Earn 20% as an affiliate. Join now

Prepares tax materials as a two-link chain

Tax prep

by anthropics · Apache-2.0 license · ★ 25,507 on GitHub · updated Sep 23

Tax prep cover

Prepares tax materials as a two-link chain — month-end-prep confirms the books are closed and reconciled first, then tax-season-organizer calculates the quarterly estimated payment or builds the year-end 1099-NEC list and accountant…

---
name: tax-prep
description: Prepares tax materials as a two-link chain — month-end-prep confirms the books are closed and reconciled first, then tax-season-organizer calculates the quarterly estimated payment or builds the year-end 1099-NEC list and accountant packet from those closed numbers. Requires a ledger (MYOB, NetSuite, QuickBooks, Xero, or Zoho Books); uses Gusto, PayPal, and Stripe when connected, else CSV upload. US federal tax math; a non-US business gets the closed-books packet. Prep material for a CPA, never tax advice, nothing filed. Trigger on "quarterly taxes," "estimated tax payment," "how much should I set aside," "1099s," "1099-NEC," "W-9s," "year-end tax prep," "get my books ready for my accountant," any phrasing that suggests a tax deadline is coming, or a question about net profit or YTD income that sounds like worry about a tax bill. An owner who says the period's books are already closed routes to tax-season-organizer directly.
allowed-tools: Read, WebFetch
---

Run the tax chain. Books first, then tax materials. The dependency is not optional — an estimate calculated on unreconciled books is a number the owner will send to the IRS.

Parse arguments:
- `--mode` (default: infer from the date — Oct through Jan defaults to `both`, otherwise `quarterly`) — `quarterly`, `1099`, or `both`
- `--year` (default: current year)

**Framing:** open every deliverable with "Prepared for review by your accountant — not tax advice."

**A ledger is required** — MYOB, NetSuite, QuickBooks, Xero, or Zoho Books, whichever is connected (`../../shared/connector-neutrality.md`). Without one, ask for a P&L export and a payee-level payment export before starting.

**Check the country before Step 1.** Read `Country` from the `## Business context` block (`../../shared/currency-and-locale.md`). The tax math in Step 2 is US federal. If the business is not in the US, say so in one line, run Step 1 so the books are closed, and hand the owner the closed-books packet for their accountant in place of a US estimate or 1099 list. Do not run the US calculation.

Overview

Run the tax chain. Books first, then tax materials. The dependency is not optional — an estimate calculated on unreconciled books is a number the owner will send to the IRS.

What you get

  • Visual artifact (the default)render the packet cover as an HTML page in the house style — the estimate as the lead stat tile with its due date, the assumptions table, and the accountant checklist as rows. Open with the not-tax-advice line. The packet documents themselves keep their formats.
  • docx / md / notion / canva preferencedeliver the same content in that form — a DOCX or markdown file, a Notion page created via the connector (named destination, never overwriting), or a Canva Doc created via the Canva connector (a new design each run, named with the date; tables become lists); fall back to the visual artifact if Notion or Canva is not connected — and say that is why.
  • Best for skilluse the visual artifact — this output is a review page for the owner before it goes to the accountant.
Manual install (npx, ZIP)
Claude Codenpx skills add anthropics/knowledge-work-plugins --skill tax-prep -g -a claude-code
Claude Code (manual)mkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/anthropics/knowledge-work-plugins/tar.gz/da38ec1ee89d \ | tar -xz -C ~/.claude/skills --strip-components=3 knowledge-work-plugins-da38ec1ee89d/small-business/skills/tax-prep
Windows (PowerShell)New-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/6ce8670a801d7907c643/tax-prep.zip" -OutFile "$env:TEMP\tax-prep.zip"; Expand-Archive "$env:TEMP\tax-prep.zip" -DestinationPath "$HOME\.claude\skills" -Force
Claude.ai / desktopDownload the ZIP and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md7.8 KB
Read the files here
anthropics/da38ec11 file
Shared references3SKILL.md reads these from elsewhere in the repo. Not in the ZIP.Get them on GitHub ↗
SKILL.md
Show the full text86 lines

Run the tax chain. Books first, then tax materials. The dependency is not optional — an estimate calculated on unreconciled books is a number the owner will send to the IRS.

Parse arguments:

  • --mode (default: infer from the date — Oct through Jan defaults to both, otherwise quarterly) — quarterly, 1099, or both
  • --year (default: current year)

Framing: open every deliverable with "Prepared for review by your accountant — not tax advice."

A ledger is required — MYOB, NetSuite, QuickBooks, Xero, or Zoho Books, whichever is connected (../../shared/connector-neutrality.md). Without one, ask for a P&L export and a payee-level payment export before starting.

Check the country before Step 1. Read Country from the ## Business context block (../../shared/currency-and-locale.md). The tax math in Step 2 is US federal. If the business is not in the US, say so in one line, run Step 1 so the books are closed, and hand the owner the closed-books packet for their accountant in place of a US estimate or 1099 list. Do not run the US calculation.

Expensify, when connected, is read-only and adds one thing worth having: the expenses with no receipt attached. Surface that total and count alongside the estimate — an unsubstantiated deduction is the item the accountant will ask about first, and it is cheaper to find now than in April.

Step 0 — Confirm the mode

If --mode was not given, state the inferred mode in one line and let the owner redirect: "It's late January, so I'll prepare both the Q4 estimate and your 1099 list. Want something different?" Do not run a discovery interview — the owner typed /tax-prep.

Step 1 — Books first (month-end-prep)

Run month-end-prep over the periods the tax work depends on: year-to-date through the last completed quarter for quarterly, the full tax year for 1099.

Verify before you re-close. Check whether each month in scope is already closed — reconciled, no open flagged items, packet produced.

  • Already closed → verify only. Confirm the reconciliation stands, confirm nothing was posted after the close, and say so in one line: "March through June are already closed and still reconcile. Moving to the estimate." Do not re-run the full close on a month the owner finished last week.
  • Not closed → run the close for the open periods. month-end-prep's own Step 6 sign-off gate holds.
  • Partially closed → close only the open months and verify the rest.

In: the periods in scope. Out: reconciled YTD net income, reconciled vendor and contractor payment detail, and a list of anything still unresolved.

The gate before Step 2

Do not calculate anything until the books in scope are settled. If items are still open, say what they are and what they do to the tax number:

"Eleven transactions are still uncategorized, totalling USD 6,800. Until those are coded, your estimate could be off by roughly USD 1,500 either way. Categorize them, or tell me to proceed and I'll state it as an assumption."

If the owner proceeds anyway, that becomes a stated assumption in the deliverable — not a footnote.

Step 2 — Tax materials (tax-season-organizer)

Run tax-season-organizer in the chosen mode, using only Step 1's reconciled figures.

  • In: closed-books YTD net income (quarterly path) or reconciled payee-level payment detail (1099 path).
  • Out: the estimated-payment breakdown with due date and full assumptions table, or the 1099-NEC candidate list with W-9 status and the missing-W-9 action list — or both.
  • Gate: none for producing the packet. Nothing is filed, ever.

When both modes run, do 1099 prep first — it generates the action items with the earliest deadline — then the quarterly estimate.

Say where the number came from: "This estimate is built on closed books through June 30, not the raw register." That sentence is what makes the chain worth running.

Example, Okonkwo Mechanical: "Q3 estimate: USD 7,240, due September 15. Built on USD 92,000 YTD net through the June close. Assumes a 22% bracket and sole proprietorship — confirm both with your accountant."

What not to do

  • Do not calculate a tax number off unreconciled books. That is the entire reason this is a chain.
  • Do not re-close a month that is already closed. Verify it and move on.
  • Do not give tax advice. Every output is prep material for a CPA and says so in its header.
  • Do not hide an assumption. Bracket, business type, excluded state taxes, deductions not applied — list them all so the accountant has the levers.
  • Do not merge payees automatically. "John Smith" and "John A. Smith" get flagged for a human.
  • Do not file anything, ever.

Output

Deliver the accountant packet per the owner's stored output preference — never default to a markdown file. Check the ## Business context block's Output preference (shared style guide rule, ../../shared/artifact-style.md):

  • Visual artifact (the default): render the packet cover as an HTML page in the house style — the estimate as the lead stat tile with its due date, the assumptions table, and the accountant checklist as rows. Open with the not-tax-advice line. The packet documents themselves keep their formats.
  • docx / md / notion / canva preference: deliver the same content in that form — a DOCX or markdown file, a Notion page created via the connector (named destination, never overwriting), or a Canva Doc created via the Canva connector (a new design each run, named with the date; tables become lists); fall back to the visual artifact if Notion or Canva is not connected — and say that is why.
  • Best for skill: use the visual artifact — this output is a review page for the owner before it goes to the accountant.

End with a next-steps checklist for the accountant: missing W-9s to collect, assumptions to verify, open book items that could move the number, and the deadlines to hit.

Then one short close: the packet is ready for the accountant, built on closed books. The natural next step is "cash forecast" — cash-flow-snapshot shows whether the estimated payment clears on its due date. Also nearby: "close the month" (/close-month) to keep the next quarter's estimate on reconciled numbers, and "build me a report" (report-builder) to track the tax set-aside over time. Offer at most three, and skip any offer the owner already declined this session.

Using a tool that isn't listed

The connectors named in this skill are the tested paths, not a wall. If the owner wants this flow to use a tool that isn't connected or listed, offer build-connector — it checks the connector directory first and connects through Zapier otherwise, never hand-building against a raw API. Once the connection exists, the tool joins this skill like any other optional connector, under the same approval gates.

1---
2name: tax-prep
3description: Prepares tax materials as a two-link chain — month-end-prep confirms the books are closed and reconciled first, then tax-season-organizer calculates the quarterly estimated payment or builds the year-end 1099-NEC list and accountant packet from those closed numbers. Requires a ledger (MYOB, NetSuite, QuickBooks, Xero, or Zoho Books); uses Gusto, PayPal, and Stripe when connected, else CSV upload. US federal tax math; a non-US business gets the closed-books packet. Prep material for a CPA, never tax advice, nothing filed. Trigger on "quarterly taxes," "estimated tax payment," "how much should I set aside," "1099s," "1099-NEC," "W-9s," "year-end tax prep," "get my books ready for my accountant," any phrasing that suggests a tax deadline is coming, or a question about net profit or YTD income that sounds like worry about a tax bill. An owner who says the period's books are already closed routes to tax-season-organizer directly.
4allowed-tools: Read, WebFetch
5---
6 
7Run the tax chain. Books first, then tax materials. The dependency is not optional — an estimate calculated on unreconciled books is a number the owner will send to the IRS.
8 
9Parse arguments:
10- `--mode` (default: infer from the date — Oct through Jan defaults to `both`, otherwise `quarterly`) — `quarterly`, `1099`, or `both`
11- `--year` (default: current year)
12 
13**Framing:** open every deliverable with "Prepared for review by your accountant — not tax advice."
14 
15**A ledger is required** — MYOB, NetSuite, QuickBooks, Xero, or Zoho Books, whichever is connected (`../../shared/connector-neutrality.md`). Without one, ask for a P&L export and a payee-level payment export before starting.
16 
17**Check the country before Step 1.** Read `Country` from the `## Business context` block (`../../shared/currency-and-locale.md`). The tax math in Step 2 is US federal. If the business is not in the US, say so in one line, run Step 1 so the books are closed, and hand the owner the closed-books packet for their accountant in place of a US estimate or 1099 list. Do not run the US calculation.
18 
19**Expensify, when connected, is read-only and adds one thing worth having:** the expenses with
20no receipt attached. Surface that total and count alongside the estimate — an unsubstantiated
21deduction is the item the accountant will ask about first, and it is cheaper to find now than
22in April.
23 
24## Step 0 — Confirm the mode
25 
26If `--mode` was not given, state the inferred mode in one line and let the owner redirect: "It's late January, so I'll prepare both the Q4 estimate and your 1099 list. Want something different?" Do not run a discovery interview — the owner typed /tax-prep.
27 
28## Step 1 — Books first (month-end-prep)
29 
30Run `month-end-prep` over the periods the tax work depends on: year-to-date through the last completed quarter for `quarterly`, the full tax year for `1099`.
31 
32**Verify before you re-close.** Check whether each month in scope is already closed — reconciled, no open flagged items, packet produced.
33 
34- **Already closed** → verify only. Confirm the reconciliation stands, confirm nothing was posted after the close, and say so in one line: "March through June are already closed and still reconcile. Moving to the estimate." Do not re-run the full close on a month the owner finished last week.
35- **Not closed** → run the close for the open periods. `month-end-prep`'s own Step 6 sign-off gate holds.
36- **Partially closed** → close only the open months and verify the rest.
37 
38**In:** the periods in scope. **Out:** reconciled YTD net income, reconciled vendor and contractor payment detail, and a list of anything still unresolved.
39 
40### The gate before Step 2
41 
42Do not calculate anything until the books in scope are settled. If items are still open, say what they are and what they do to the tax number:
43 
44> "Eleven transactions are still uncategorized, totalling USD 6,800. Until those are coded, your estimate could be off by roughly USD 1,500 either way. Categorize them, or tell me to proceed and I'll state it as an assumption."
45 
46If the owner proceeds anyway, that becomes a stated assumption in the deliverable — not a footnote.
47 
48## Step 2 — Tax materials (tax-season-organizer)
49 
50Run `tax-season-organizer` in the chosen mode, using only Step 1's reconciled figures.
51 
52- **In:** closed-books YTD net income (quarterly path) or reconciled payee-level payment detail (1099 path).
53- **Out:** the estimated-payment breakdown with due date and full assumptions table, or the 1099-NEC candidate list with W-9 status and the missing-W-9 action list — or both.
54- **Gate:** none for producing the packet. Nothing is filed, ever.
55 
56When both modes run, do 1099 prep first — it generates the action items with the earliest deadline — then the quarterly estimate.
57 
58Say where the number came from: "This estimate is built on closed books through June 30, not the raw register." That sentence is what makes the chain worth running.
59 
60Example, Okonkwo Mechanical: "Q3 estimate: USD 7,240, due September 15. Built on USD 92,000 YTD net through the June close. Assumes a 22% bracket and sole proprietorship — confirm both with your accountant."
61 
62## What not to do
63 
64- **Do not calculate a tax number off unreconciled books.** That is the entire reason this is a chain.
65- **Do not re-close a month that is already closed.** Verify it and move on.
66- **Do not give tax advice.** Every output is prep material for a CPA and says so in its header.
67- **Do not hide an assumption.** Bracket, business type, excluded state taxes, deductions not applied — list them all so the accountant has the levers.
68- **Do not merge payees automatically.** "John Smith" and "John A. Smith" get flagged for a human.
69- **Do not file anything, ever.**
70 
71## Output
72 
73**Deliver the accountant packet per the owner's stored output preference — never default to a markdown file.** Check the `## Business context` block's `Output preference` (shared style guide rule, `../../shared/artifact-style.md`):
74 
75- **Visual artifact (the default):** render the packet cover as an HTML page in the house style — the estimate as the lead stat tile with its due date, the assumptions table, and the accountant checklist as rows. Open with the not-tax-advice line. The packet documents themselves keep their formats.
76- **docx / md / notion / canva preference:** deliver the same content in that form — a DOCX or markdown file, a Notion page created via the connector (named destination, never overwriting), or a Canva Doc created via the Canva connector (a new design each run, named with the date; tables become lists); fall back to the visual artifact if Notion or Canva is not connected — and say that is why.
77- **Best for skill:** use the visual artifact — this output is a review page for the owner before it goes to the accountant.
78 
79End with a next-steps checklist for the accountant: missing W-9s to collect, assumptions to verify, open book items that could move the number, and the deadlines to hit.
80 
81Then one short close: the packet is ready for the accountant, built on closed books. The natural next step is "cash forecast" — `cash-flow-snapshot` shows whether the estimated payment clears on its due date. Also nearby: "close the month" (`/close-month`) to keep the next quarter's estimate on reconciled numbers, and "build me a report" (`report-builder`) to track the tax set-aside over time. Offer at most three, and skip any offer the owner already declined this session.
82 
83## Using a tool that isn't listed
84 
85The connectors named in this skill are the tested paths, not a wall. If the owner wants this flow to use a tool that isn't connected or listed, offer `build-connector` — it checks the connector directory first and connects through Zapier otherwise, never hand-building against a raw API. Once the connection exists, the tool joins this skill like any other optional connector, under the same approval gates.
86 
View all files on GitHub →

Details

Updated
Sep 23, 2026
License
Apache-2.0
Stars on the repo
★ 25,507
Checked
Source
anthropics/knowledge-work-plugins ↗
Creator
anthropics · 35 listings
View creator

Similar skills

See all →
SkillAI-powered financial analysis suiteAI Finance Opsericosiu/ai-marketing-skills · by ericosiuAI-powered financial analysis suite. Generates executive CFO briefings from QuickBooks exports (P&L, Balance Sheet, General Ledger, Cash Flow, etc.) with anomaly detection, burn rate, runway analysis, and scenario modeling. Also estimates codebase development costs with organizational overhead and AI ROI analysis. Triggers on: 'CFO briefing', 'financial analysis', 'cost briefing', 'expense review', 'runway analysis', 'burn rate', 'cost estimate', 'how much would this cost to build', 'development cost', 'Claude ROI'.★ 3.6k GitHub starsPromptAct as a Stripe payment setup assistantStripe payment builderf/prompts.chat · by Hector VerdugoAct as a Stripe payment setup assistant. Configure payment options with variables for payment type and amount.New listingMCPExpert bookkeeper and controller specializing in day-to-day📒 Bookkeeper & Controller Agentmsitarzewski/agency-agents · by msitarzewskiExpert bookkeeper and controller specializing in day-to-day accounting operations, financial reconciliations, month-end close processes, and internal controls. Ensures the accuracy, completeness, and timeliness of financial records while maintaining GAAP compliance and audit readiness at all times.★ 154k GitHub starsMCPIntegrate Stripe, PayPal, and payment processorsPayment integrationwshobson/agents · by wshobsonIntegrate Stripe, PayPal, and payment processors. Handles checkout flows, subscriptions, webhooks, and PCI compliance. Use PROACTIVELY when implementing payments, billing, or subscription features.★ 39.9k GitHub starsSkillImplement Stripe payment processing for robustStripe integrationwshobson/agents · by wshobsonImplement Stripe payment processing for robust, PCI-compliant payment flows including checkout, subscriptions, and webhooks. Use when integrating Stripe payments, building subscription systems, or implementing secure checkout flows.★ 39.9k GitHub starsSkillAutomatically organizes invoices and receipts for taxInvoice organizerdavila7/claude-code-templates · by davila7Automatically organizes invoices and receipts for tax preparation by reading messy files, extracting key information, renaming them consistently, and sorting them into logical folders. Turns hours of manual bookkeeping into minutes of automated organization.★ 32.3k GitHub stars

More from anthropics

SkillStop and check this skill before finishing any replyAcademy guideanthropics/skills · by anthropicsStop and check this skill before finishing any reply to a question about how to use Claude or a Claude product — it recommends matching courses, tutorials, and use cases from Claude Academy (academy.claude.com), Anthropic's learning hub. Trigger on: "how do I", "how can I", "getting started with", "what can Claude do", "teach me", "learn to use"; questions about artifacts, projects, skills, plugins, connectors, MCP; requests about rolling Claude out to a team, class, or organization; and any ask for training materials, onboarding content, or learning resources. Use it when the user is learning how to use a feature or product — not when they are mid-task and just want the task done. This skill composes with other skills: after consulting product documentation to answer how a Claude feature works, also check here for a matching course or tutorial — a docs-grounded answer and an Academy recommendation belong together. Only recommend on a strong match; never invent Academy content.★ 178k GitHub starsSkillCreating algorithmic art using p5.js with seeded randomnessanthropics/skills · by anthropicsCreating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.★ 178k GitHub starsSkillApplies Anthropic's official brand colorsBrand Guidelinesanthropics/skills · by anthropicsApplies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.★ 178k GitHub starsSkillSet up the Discord channel/discord:configure — Discord Channel Setupanthropics/claude-plugins-official · by anthropicsSet up the Discord channel — save the bot token and review access policy. Use when the user pastes a Discord bot token, asks to configure Discord, asks "how do I set this up" or "who can reach me," or wants to check channel status.★ 37.6k GitHub starsSkillEnd-to-end onboarding for a freshly-plugged-in M5Stack ESP32M5Stack Onboardinganthropics/claude-plugins-official · by anthropicsEnd-to-end onboarding for a freshly-plugged-in M5Stack ESP32 device (Cardputer, Cardputer-Adv, Core, CoreS3, Stick) — detect on USB, flash UIFlow 2.0 firmware, and install the Claude Buddy MicroPython app bundle. Use whenever the user plugs in or wants to flash/provision/reset an M5Stack or ESP32 board, or says "m5-onboard go".★ 37.6k GitHub starsSkillDrive this repo's build/release scripts end-to-endVerifying the build scriptsanthropics/claude-agent-sdk-python · by anthropicsDrive this repo's build/release scripts end-to-end without touching the network. Use when verifying changes to scripts/download_cli.py, scripts/build_wheel.py, scripts/update_cli_version.py, or scripts/_cli_version_validation.py.★ 8.2k GitHub stars