Monthly close checklist and reconciliation prep
70+ curated agent skills for Claude Cowork and Claude.ai — ready-to-use tools for non-technical users: project management, productivity, and AI workflow automation
npx -y skills add KirKruglov/claude-skills-kit --skill monthly-close-checklist-and-reconciliation-prepAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 14 stars14 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Turns a pasted bank export or transaction list into a monthly-close checklist, categorization draft with disputed flags, and an accountant/investor summary — no SaaS needed. Triggers: 'monthly close checklist', 'reconcile transactions', 'чек-лист месячного закрытия', 'сверь транзакции'.
SKILL.md
9.3 KB, as published. Nobody here has run it
Monthly Close Checklist and Reconciliation Prep
This skill turns a pasted transaction list or bank export (CSV rows or markdown table) plus a brief business context into three ready-to-use artifacts: a monthly-close checklist, a categorization draft with disputed flags, and an accountant/investor-ready summary — no accounting SaaS or integrations required.
Input:
- Transaction list: CSV rows or markdown table (minimum columns: date, counterparty/description, amount)
- Business context: entity type (ИП / ООО / sole-prop), primary currency, brief description of revenue model
Output:
- Artifact 1 — Monthly-Close Checklist (locale-adapted)
- Artifact 2 — Categorization Draft with Disputed Flags
- Artifact 3 — Accountant Snapshot + Investor Narrative
Language Detection
Detect the user's language from their message:
- If Russian (or contains Cyrillic): respond in Russian
- If English (or other Latin-script language): respond in English
- If ambiguous: respond in the language of the trigger phrase used
Instructions
Step 1: Validate Input
-
Check that a transaction list is present in the user's message (CSV rows, markdown table, or plain list with date + counterparty + amount)
- If no transaction list detected: stop. Return bilingual prompt:
"Для работы нужен список транзакций — вставьте CSV-строки или таблицу в формате Markdown. / I need a transaction list — paste CSV rows or a Markdown table."
- If no transaction list detected: stop. Return bilingual prompt:
-
Check that at least one parseable data row exists (not just headers or empty rows)
- If zero data rows found: stop. Return in user's language:
"Список не содержит транзакций. Убедитесь, что данные включают хотя бы одну строку с датой, контрагентом и суммой. / The list contains no transactions. Include at least one row with date, counterparty, and amount."
- If zero data rows found: stop. Return in user's language:
-
Note any missing business context (entity type, currency, revenue model)
- If absent: proceed with generic international defaults; note assumptions in the output preamble
Step 2: Map Transaction Columns
- Identify the date column (date-like values or headers: "date", "дата", "datum")
- Identify the counterparty/description column (free text, merchant names, or descriptions)
- Identify the amount column (numeric; note whether debit/credit are separate or a single signed column)
- Identify the direction column (income/expense) if present; otherwise infer from amount sign
Edge Case — Non-standard column names:
- Attempt heuristic detection; list the detected column mapping in the output preamble
- Then ask the user to confirm the mapping before proceeding: "Пожалуйста, подтвердите, что колонки определены верно / Please confirm the detected column mapping is correct: [mapping table]. Reply 'yes' to continue or correct any column names."
- Do not generate the three artifacts until the user confirms or corrects the mapping
Edge Case — Mixed currencies:
- Process each currency separately
- Flag multi-currency rows in the Disputed section; add note: "FX conversion is out of scope"
Step 3: Generate Categorization Draft and Flag Disputed Transactions
- Scan counterparty names and descriptions to group transactions by pattern (recurring SaaS subscriptions, salary payouts, tax transfers, client payments)
- Propose a draft category label for each group:
- Income: Revenue/Consulting, Revenue/Product, Other Income
- Expense: OPEX/Software, OPEX/Payroll, OPEX/Office, Tax, Transfer, Other
- Mark a transaction as
⚠ DISPUTEDwhen:- Counterparty is ambiguous or matches no clear pattern
- Amount is unusually large relative to others in the same group
- Transaction direction cannot be determined from the data
- Build the categorization table (see Output Format)
Step 4: Generate Monthly-Close Checklist
-
Start with standard items for all entity types:
- Verify bank balance matches internal records
- Confirm all transactions are categorized (zero uncategorized rows)
- Review and approve all
⚠ DISPUTEDitems - Check outstanding receivables (unpaid invoices this month)
- Check outstanding payables (bills due)
- Confirm payroll is reflected in records
- Verify tax payments and withholdings are current
-
Add locale-specific items based on entity type:
- ИП (Russia/CIS, УСН):
- Обновить КУДиР записями за месяц (колонка «Доходы» для УСН 6%)
- Сверить остатки по банку с данными из личного кабинета
- Проверить акт сверки с ключевыми контрагентами при наличии дебиторки
- Уточнить срок авансового платежа (Q1: 28 апр, Q2: 28 июл, Q3: 28 окт)
- ООО (Russia/CIS):
- Проверить подотчётные суммы (авансовые отчёты сотрудников)
- Подтвердить корректность записей по НДС (для плательщиков НДС)
- Sole-prop / EN default:
- Review mileage log or home-office deduction documentation
- Confirm quarterly estimated tax payment is scheduled
- ИП (Russia/CIS, УСН):
-
Append 1–3 custom items derived from the most critical
⚠ DISPUTEDrows in Step 3 (e.g., "Clarify [date] [counterparty] [amount] before handoff")
Step 5: Generate Accountant Snapshot
- Compute totals from the categorized table:
- Total income by category; total expenses by category; net cash flow (income − expenses)
- List all
⚠ DISPUTEDitems (date, counterparty, amount, reason for flag) - List open questions for ambiguous categorization (formulate as clear yes/no or clarification questions)
Step 6: Generate Investor Narrative
- Write a 3–5 sentence plain-language narrative covering:
- Revenue for the month (and MoM trend if prior context was provided)
- Cash position after expenses
- 1–2 key risks or open items (e.g., large disputed transaction, delayed receivable)
- Keep language accessible to a non-accountant reader — no formulas, no accounting jargon
- One paragraph only
Negative Cases
- No transaction list provided: Stop. Return bilingual prompt (Step 1).
- Zero parseable rows: Stop. Return bilingual message (Step 1).
- User requests SaaS integration (1С, QuickBooks, Xero, etc.): Decline. State: "Этот скил работает только с вставленными данными и не подключается к внешним системам. / This skill works only with pasted data and does not connect to external systems."
- List >200 rows: Process all rows for categorization; produce aggregate totals in investor narrative; note total row count in preamble.
Output Format
Single markdown response with three artifact sections plus an optional preamble:
> **Assumptions / Допущения:** [column mapping notes, missing-context defaults, currency split if applicable]
---
## Чек-лист месячного закрытия / Monthly-Close Checklist
**Период / Period:** [Month YYYY]
**Тип субъекта / Entity type:** [ИП / ООО / Sole-prop / Unknown]
- [ ] Item 1
- [ ] Item 2
---
## Правила категоризации / Categorization Draft
| Дата / Date | Контрагент / Counterparty | Сумма / Amount | Категория / Category | Статус / Status |
|---|---|---|---|---|
| YYYY-MM-DD | Name | +/- amount [CCY] | Category/Subcategory | ✅ / ⚠ DISPUTED |
> Спорных транзакций / Disputed: [N]. Отметьте их перед передачей бухгалтеру / Review before handoff.
---
## Резюме для бухгалтера / Accountant Snapshot
**Период / Period:** [Month YYYY]
**Доходы / Income:** [total] | **Расходы / Expenses:** [total] | **Нетто / Net:** [net]
**По категориям / By category:**
| Категория / Category | Сумма / Amount |
|---|---|
| Revenue/Consulting | + |
**Спорные позиции / Disputed items:**
- YYYY-MM-DD | [Counterparty] | [Amount] — [reason]
**Открытые вопросы / Open questions:**
1. [Question for accountant]
---
## Резюме для инвестора / Investor Narrative
[3–5 sentence plain-language paragraph: revenue, cash position, 1–2 key risks]
Formatting rules:
- All four section headers are bilingual (RU / EN) regardless of detected language
- Body text (list items, table cells, narrative) is in the detected user language
⚠ DISPUTEDtag is always in English as a universal visual signal- Net cash flow = total income − total expenses derived from the categorized table