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

Closes the books and turns them

Close month

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

Close month cover

Closes the books and turns them into a decision as a three-link chain — month-end-prep reconciles the ledger against every connected payment processor and writes the P&L narrative, cash-flow-snapshot then refreshes the 30/60/90-day…

---
name: close-month
description: Closes the books and turns them into a decision as a three-link chain — month-end-prep reconciles the ledger against every connected payment processor and writes the P&L narrative, cash-flow-snapshot then refreshes the 30/60/90-day forecast off the newly closed numbers rather than raw ones, and report-builder publishes and distributes the close packet. Requires a ledger (MYOB, NetSuite, QuickBooks, Xero, or Zoho Books) and uses Gusto, PayPal, Ramp, Shopify, Square, and Stripe when connected, falling back to statement or CSV uploads. Trigger on "close the month," "month-end," "close the books," "reconcile," "send the close packet to my accountant," or when the owner asks why revenue or margin moved last month. An owner who wants only the reconciliation and its flags, with no forecast refresh and no packet distribution, routes to month-end-prep directly.
allowed-tools: Read, WebFetch
---

Run the month-end chain. Close, then forecast off the closed books, then publish. The ordering is the product.

Parse arguments:
- `--month` (default: previous calendar month) — `YYYY-MM`
- `--save-to` (default `files`) — `files` (Drive / OneDrive), `desktop`, or `both`

**A ledger is required** — MYOB, NetSuite, QuickBooks, Xero, or Zoho Books, whichever is connected; they are peers (`../../shared/connector-neutrality.md`). If none is reachable, stop and say so. Reconciliation without a ledger is not a close. Offer the CSV path from `month-end-prep` rather than producing a partial packet. If two ledgers are connected, ask which holds the books being closed and name it in the packet.

## Step 1 — Close and reconcile (month-end-prep)

Run `month-end-prep` for the target month, start to finish.

Overview

Run the month-end chain. Close, then forecast off the closed books, then publish. The ordering is the product.

Manual install (npx, ZIP)
Claude Codenpx skills add anthropics/knowledge-work-plugins --skill close-month -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/close-month
Windows (PowerShell)New-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/2f6bcbd9b504da526871/close-month.zip" -OutFile "$env:TEMP\close-month.zip"; Expand-Archive "$env:TEMP\close-month.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.md6.7 KB
Read the files here
anthropics/da38ec11 file
Shared references2SKILL.md reads these from elsewhere in the repo. Not in the ZIP.Get them on GitHub ↗
SKILL.md
Show the full text87 lines

Run the month-end chain. Close, then forecast off the closed books, then publish. The ordering is the product.

Parse arguments:

  • --month (default: previous calendar month) — YYYY-MM
  • --save-to (default files) — files (Drive / OneDrive), desktop, or both

A ledger is required — MYOB, NetSuite, QuickBooks, Xero, or Zoho Books, whichever is connected; they are peers (../../shared/connector-neutrality.md). If none is reachable, stop and say so. Reconciliation without a ledger is not a close. Offer the CSV path from month-end-prep rather than producing a partial packet. If two ledgers are connected, ask which holds the books being closed and name it in the packet.

Step 1 — Close and reconcile (month-end-prep)

Run month-end-prep for the target month, start to finish.

  • In: the target month.
  • Out: the reconciliation table, the flagged items (uncategorized, suspicious duplicates, missing receipts), the P&L narrative, and the close packet XLSX plus one-page PDF.
  • Gate: month-end-prep's own Step 6 sign-off holds. The owner triages every flagged item — or explicitly skips it — before anything downstream runs.

This step owns the numbers. Nothing later in the chain recategorizes a transaction or restates revenue.

The hard gate before Step 2

Do not start the forecast until the owner has signed off on the close. Say plainly what is waiting:

"Books are closed for April — USD 3,200 in variances resolved, two receipts still missing. Ready to refresh your cash forecast off these closed numbers?"

If flagged items are still open, name them and ask whether to forecast anyway. A forecast built on eleven uncategorized transactions is a forecast built on a guess, and the owner deserves to know which they are getting.

Step 2 — Forecast off the closed books (cash-flow-snapshot)

Run cash-flow-snapshot using the reconciled month as its historical base.

  • In: the closed-month figures from Step 1 — actual AR collection timing, actual fixed costs as coded, actual settlement lag.
  • Out: the 30/60/90-day forecast with confidence bands and named risks.
  • Gate: none. The forecast is read-only.

Say why this ordering matters, in the output. A forecast run on raw books inherits every miscoded expense and every unmatched settlement. Running it after the close means the payment-timing history is real and the fixed-cost floor is right. One line is enough:

"This forecast is built on April's closed books, so the collection timing and cost floor reflect reconciled numbers — not the raw register."

If the close surfaced something that moves the forecast — a duplicate vendor charge removed, a settlement finally matched — call out the delta against last month's forecast.

Step 3 — Publish and distribute (report-builder)

Run report-builder to package and deliver the close.

  • In: the P&L narrative and packet from Step 1, the forecast from Step 2.
  • Out: the merged close packet — chat summary first, then the workbook. Save the definition so next month's close publishes the same pack without being described again.
  • Gate: saving to the owner's own drive is automatic. Sending to an accountant or anyone else is not — draft the message, show it, and wait.

Merge, do not staple. The packet reads: what the month was, what the books say, what the next 90 days look like off those books, and what is still open.

Example, Okonkwo Mechanical: "April closed at USD 84,200, up 6% on March. Margin held at 38%. Two receipts outstanding. The 30-day forecast is USD 11,400 net at the midpoint — Rosewood's USD 12,400 is the swing."

What not to do

  • Do not forecast before the close is signed off. The ordering is the entire reason this is a chain.
  • Do not auto-fix a flagged item. Show the gap, recommend the action, wait.
  • Do not delete a suspected duplicate without explicit confirmation. Show both records side by side.
  • Do not restate a number downstream. Step 1 owns the books; later steps cite them.
  • Do not send the packet to an accountant without approval.
  • Do not proceed without a ledger. Say what is missing, by category, and offer the CSV path.

Output

End with a one-paragraph recap: revenue and margin, gaps still open, the 30-day forecast midpoint and its top risk, and the file paths. If anything was skipped rather than resolved, list it so the owner can come back to it.

Also render the merged close as one HTML artifact using the house artifact style (../../shared/artifact-style.md) — additive to the chat recap and the packet files, never instead of them. Revenue, margin percent, and the 30-day forecast midpoint are stat tiles with their comparison as context lines; the reconciliation and flagged items are a table with tabular-nums amounts and a status pill per row (good reconciled, warn skipped, critical unresolved); the 30/60/90 forecast gets its own panel; the open-items checklist closes the page.

After the run

One line: the month is closed, forecast refreshed, packet published. Then the single most relevant next step, with at most two others nearby:

  • If the forecast flagged a payroll risk: "can I make payroll" runs /plan-payroll.
  • "Who owes me money?" runs invoice-chase on the AR the close just confirmed.
  • "The weekly pack, on schedule" runs /report-pack so these numbers recur.

Max three offers. Never repeat an offer the owner 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: close-month
3description: Closes the books and turns them into a decision as a three-link chain — month-end-prep reconciles the ledger against every connected payment processor and writes the P&L narrative, cash-flow-snapshot then refreshes the 30/60/90-day forecast off the newly closed numbers rather than raw ones, and report-builder publishes and distributes the close packet. Requires a ledger (MYOB, NetSuite, QuickBooks, Xero, or Zoho Books) and uses Gusto, PayPal, Ramp, Shopify, Square, and Stripe when connected, falling back to statement or CSV uploads. Trigger on "close the month," "month-end," "close the books," "reconcile," "send the close packet to my accountant," or when the owner asks why revenue or margin moved last month. An owner who wants only the reconciliation and its flags, with no forecast refresh and no packet distribution, routes to month-end-prep directly.
4allowed-tools: Read, WebFetch
5---
6 
7Run the month-end chain. Close, then forecast off the closed books, then publish. The ordering is the product.
8 
9Parse arguments:
10- `--month` (default: previous calendar month) — `YYYY-MM`
11- `--save-to` (default `files`) — `files` (Drive / OneDrive), `desktop`, or `both`
12 
13**A ledger is required** — MYOB, NetSuite, QuickBooks, Xero, or Zoho Books, whichever is connected; they are peers (`../../shared/connector-neutrality.md`). If none is reachable, stop and say so. Reconciliation without a ledger is not a close. Offer the CSV path from `month-end-prep` rather than producing a partial packet. If two ledgers are connected, ask which holds the books being closed and name it in the packet.
14 
15## Step 1 — Close and reconcile (month-end-prep)
16 
17Run `month-end-prep` for the target month, start to finish.
18 
19- **In:** the target month.
20- **Out:** the reconciliation table, the flagged items (uncategorized, suspicious duplicates, missing receipts), the P&L narrative, and the close packet XLSX plus one-page PDF.
21- **Gate:** `month-end-prep`'s own Step 6 sign-off holds. The owner triages every flagged item — or explicitly skips it — before anything downstream runs.
22 
23**This step owns the numbers.** Nothing later in the chain recategorizes a transaction or restates revenue.
24 
25### The hard gate before Step 2
26 
27Do not start the forecast until the owner has signed off on the close. Say plainly what is waiting:
28 
29> "Books are closed for April — USD 3,200 in variances resolved, two receipts still missing. Ready to refresh your cash forecast off these closed numbers?"
30 
31If flagged items are still open, name them and ask whether to forecast anyway. A forecast built on eleven uncategorized transactions is a forecast built on a guess, and the owner deserves to know which they are getting.
32 
33## Step 2 — Forecast off the closed books (cash-flow-snapshot)
34 
35Run `cash-flow-snapshot` using the reconciled month as its historical base.
36 
37- **In:** the closed-month figures from Step 1 — actual AR collection timing, actual fixed costs as coded, actual settlement lag.
38- **Out:** the 30/60/90-day forecast with confidence bands and named risks.
39- **Gate:** none. The forecast is read-only.
40 
41**Say why this ordering matters, in the output.** A forecast run on raw books inherits every miscoded expense and every unmatched settlement. Running it after the close means the payment-timing history is real and the fixed-cost floor is right. One line is enough:
42 
43> "This forecast is built on April's closed books, so the collection timing and cost floor reflect reconciled numbers — not the raw register."
44 
45If the close surfaced something that moves the forecast — a duplicate vendor charge removed, a settlement finally matched — call out the delta against last month's forecast.
46 
47## Step 3 — Publish and distribute (report-builder)
48 
49Run `report-builder` to package and deliver the close.
50 
51- **In:** the P&L narrative and packet from Step 1, the forecast from Step 2.
52- **Out:** the merged close packet — chat summary first, then the workbook. Save the definition so next month's close publishes the same pack without being described again.
53- **Gate:** saving to the owner's own drive is automatic. **Sending to an accountant or anyone else is not** — draft the message, show it, and wait.
54 
55Merge, do not staple. The packet reads: what the month was, what the books say, what the next 90 days look like off those books, and what is still open.
56 
57Example, Okonkwo Mechanical: "April closed at USD 84,200, up 6% on March. Margin held at 38%. Two receipts outstanding. The 30-day forecast is USD 11,400 net at the midpoint — Rosewood's USD 12,400 is the swing."
58 
59## What not to do
60 
61- **Do not forecast before the close is signed off.** The ordering is the entire reason this is a chain.
62- **Do not auto-fix a flagged item.** Show the gap, recommend the action, wait.
63- **Do not delete a suspected duplicate without explicit confirmation.** Show both records side by side.
64- **Do not restate a number downstream.** Step 1 owns the books; later steps cite them.
65- **Do not send the packet to an accountant without approval.**
66- **Do not proceed without a ledger.** Say what is missing, by category, and offer the CSV path.
67 
68## Output
69 
70End with a one-paragraph recap: revenue and margin, gaps still open, the 30-day forecast midpoint and its top risk, and the file paths. If anything was skipped rather than resolved, list it so the owner can come back to it.
71 
72Also render the merged close as one HTML artifact using the house artifact style (`../../shared/artifact-style.md`) — additive to the chat recap and the packet files, never instead of them. Revenue, margin percent, and the 30-day forecast midpoint are stat tiles with their comparison as context lines; the reconciliation and flagged items are a table with tabular-nums amounts and a status pill per row (good reconciled, warn skipped, critical unresolved); the 30/60/90 forecast gets its own panel; the open-items checklist closes the page.
73 
74## After the run
75 
76One line: the month is closed, forecast refreshed, packet published. Then the single most relevant next step, with at most two others nearby:
77 
78- If the forecast flagged a payroll risk: "can I make payroll" runs `/plan-payroll`.
79- "Who owes me money?" runs `invoice-chase` on the AR the close just confirmed.
80- "The weekly pack, on schedule" runs `/report-pack` so these numbers recur.
81 
82Max three offers. Never repeat an offer the owner declined this session.
83 
84## Using a tool that isn't listed
85 
86The 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.
87 
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