anthropics/knowledge-work-plugins9 files

Month End Prep

>

Specification
Skill ID
anthropics/knowledge-work-plugins/month-end-prep
Publisher
anthropics
Repository
knowledge-work-plugins
Installs
0
Files
9
Synced
Sep 23, 2026
How to use it

Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.

anthropics/knowledge-work-plugins/month-end-prepInstalls these files
  • SKILL.md
  • reference/close-packet-format.md
  • reference/examples/pl-narrative.md
  • reference/gotchas.md
  • reference/paypal-settlements.md
  • reference/quickbooks-reconcile.md
  • reference/v2_sources.md
  • reference/xero-reconcile.md
  • reference/zoho-books-reconcile.md

What this skill tells the agent

Month End Prep

Quick start

Connect your bookkeeping ledger and at least one payment processor, then say "let's close the month." Claude walks you through each step of the checklist, pausing for your input at each gate before moving forward.

Any connected ledger runs the close. Each has a reference file for its reads and its "needs attention" signal: reference/quickbooks-reconcile.md, reference/xero-reconcile.md, reference/zoho-books-reconcile.md; NetSuite and MYOB are in reference/v2_sources.md. Ledgers are peers (../../shared/connector-neutrality.md): if two are connected, ask which holds the books being closed, read the other only for what it uniquely holds, and never sum a figure across both.

Every amount is in the business's currency (../../shared/currency-and-locale.md). The thresholds below (0.50, 0.01, 25) are in that currency.

If a connector is missing, Claude falls back to asking for a CSV export — it won't silently skip a step.

Workflow

Work through these steps in order. Each step has a completion state; don't advance until the current step is settled.

Step 1 — Agree on the target month

Ask the user which month to close. Default to the prior calendar month if they don't specify. Confirm before pulling any data.

Step 2 — Pull the ledger's P&L and register

Fetch:

  • Profit & Loss report for the target month (revenue, COGS, gross margin, operating expenses, net income)
  • The register, as the ledger's reference file defines it. QuickBooks: the transaction list, every income and expense line. Xero: bills, invoices, and the bank-transaction queue, with that scope stated in the packet. Zoho Books: invoices, expenses, and purchase orders, with the P&L itself coming from an export because the connector has no report endpoint.

Flag immediately, using the ledger's own "needs attention" signal:

  • QuickBooks — uncategorized lines ("Uncategorized," blank, "Ask My Accountant") and its Needs Review flag
  • Xero — bank lines still unreconciled at month end
  • Zoho Books — the uncategorized_transactions count on each bank account

Present the count ("14 transactions need attention") and list them for the user to resolve in the ledger before proceeding. Don't advance with open items unless the user explicitly says "skip for now."

See reference/quickbooks-reconcile.md, reference/xero-reconcile.md, and reference/zoho-books-reconcile.md for field mappings and API notes.

Step 3 — Pull payment processor settlements

Fetch settlement reports from PayPal, Square, Stripe, or Shopify — whichever are connected — for the same calendar month.

Check the bank feed first. When a processor pays out through a bank feed, the payout is already a ledger line and the question is whether it has been matched. Find unreconciled bank lines naming a processor and list them per processor as the action items before doing any CSV match. This applies to any ledger that carries a bank feed with a reconciled state — the usual case in Xero, and QuickBooks bank-feed lines when the connector exposes them. MYOB holds no bank side, and Zoho Books exposes balances but no bank-transaction list, so a MYOB or Zoho Books close goes straight to the CSV match below.

Compare net to net, or every line looks broken. The ledger records the net bank deposit; the processor's report shows the gross sale. Match those directly and every row shows a discrepancy the exact size of the fee. Use the processor's net payout (gross minus fees) — see reference/gotchas.md.

Match each settlement deposit against the ledger's bank deposit line:

  • Match — amount and date agree within 2 days → mark as reconciled
  • Difference < 0.50 — rounding/fee; note but don't flag
  • Difference ≥ 0.50 — flag with the delta amount
  • Settlement exists, no ledger deposit — flag as "missing in the ledger"
  • Ledger deposit exists, no settlement — flag as "deposit not in processor data"

See reference/paypal-settlements.md for settlement report field mappings (PayPal, Square, Stripe) and reference/v2_sources.md for Shopify.

Step 4 — Detect suspicious duplicates

Scan the register for likely duplicate charges or deposits. Flag a transaction as a suspicious duplicate when all three match:

  • Same amount (within 0.01)
  • Same vendor or customer name
  • Posted within 5 calendar days of each other

Scan what the ledger actually holds. In QuickBooks that is the transaction list, with split rows grouped by transaction id first. In Xero a bill keyed twice makes two unpaid documents and no bank line, so scan bills and invoices (same contact, same total, within 5 days, both unpaid or one paid inside the window) rather than bank lines — the mapping is in reference/xero-reconcile.md. Zoho Books is the same shape: scan invoices and expenses as documents (reference/zoho-books-reconcile.md).

Present flagged pairs to the user. They decide whether each is legitimate (e.g., a recurring weekly subscription) or a real duplicate to void.

The 5-day window is a filter, not a guarantee. It catches the same charge keyed twice without drowning the owner in recurring weekly bills, but a real double payment three weeks apart slips through. Say what was scanned ("repeats within 5 days"), and widen the window for a vendor they're suspicious about rather than calling it clean.

See reference/gotchas.md for common false-positive patterns and how to distinguish them.

Step 5 — Receipts check

Check the ledger first: an attachment on the transaction counts as a receipt on file (AttachmentCount in QuickBooks; has_attachments in Xero, returned only with include_line_items=true; has_attachment on Zoho Books invoices and expenses). Then, if the Desktop connector is available, scan the receipts folder (ask the user for the path; default ~/Documents/Receipts) for the target month.

For each expense transaction above 25 with no attached document:

  • Check for a matching receipt file (match by amount ± 0.50 and date within 3 days)
  • Matched → note as "receipt on file"
  • Not matched → flag as "missing receipt"

List missing receipts. The user can supply the file or mark as "receipt not required" (e.g., a recurring auto-pay with no receipt).

If Desktop connector is not available, ask the user to confirm which expenses they have receipts for — don't silently skip this step.

Step 5a — Payroll cross-check

Runs only when a payroll connector is connected (Gusto or QuickBooks Payroll — peers, whichever is connected). Otherwise skip it and say the packet carries no payroll column.

Pull what was actually paid in the month, totals only:

  • Gusto — list_payrolls with include=totals, keeping the payrolls whose check_date falls in the target month. From each totals: gross_pay, employer_taxes, employee_taxes, net_pay. Then list_contractor_payments for the same date range with group_by_date=true, taking total.wages and total.reimbursements. Contractor totals cover US contractors only — say so in the packet footnote.
  • QuickBooks Payroll — qbo_payroll_get_company_last_payroll_run for the most recent run; earlier runs in the month come from the payroll summary export. (Confirm before the first close.)

Cross-check against the ledger: net pay plus employer taxes plus contractor wages should appear as the month's payroll expense lines. A difference above 0.50 is a reconciliation item — usually a run posted to the wrong month, or a payroll journal not yet posted.

Use this skill in a project

Open any RiverX project, search the Skills panel for anthropics/knowledge-work-plugins/month-end-prep, and install it in one click.

Use this skill