Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save peterhartree/e1ca56c75235b4d8efe54258d4204343 to your computer and use it in GitHub Desktop.

Select an option

Save peterhartree/e1ca56c75235b4d8efe54258d4204343 to your computer and use it in GitHub Desktop.
Claude Code's plan for preparing HartreeWorks Ltd annual accounts in Xero

HartreeWorks Limited — 2025/26 accounts preparation

Context

HartreeWorks Limited (company 10570654) has a financial year ending 31 January 2026. The accounts are due at Companies House by 31 October 2026. The accountant firm, [REDACTED], has already sent a 37-question Accounts Checklist via Xero on 4 February 2026 that needs to be completed. The company is not VAT-registered, turnover is in the [REDACTED] band, and the bank feed (Wise) is connected to Xero.

Goal: Prepare the accounts in Xero so the accountant can file statutory accounts and corporation tax return, then notify them we're done.

Key contacts

Person Role Email
[REDACTED] Chartered Accountant, [REDACTED] [REDACTED]
[REDACTED] Trainee Accountant, [REDACTED] [REDACTED]
[REDACTED] [REDACTED] (sent checklist via Xero) (via Xero)
[REDACTED] Director/co-director [REDACTED]

Plan

1. Review the Xero Accounts Checklist (37 questions)

How: Open the Xero Accounts Checklist via Chrome browser (this is a Xero Practice Manager feature—no direct API). Read all 37 questions and categorise them:

  • Questions we can answer directly (e.g. factual company info)
  • Questions requiring Xero data (e.g. reconciliation status)
  • Questions requiring Peter's input (e.g. director decisions, dividends)

This is the single most important step — the checklist defines exactly what the accountant needs.

2. Xero bank reconciliation (API + Chrome fallback)

How: Use the Xero API via existing scripts to:

  • Pull bank transactions for 1 Feb 2025 – 31 Jan 2026
  • List unreconciled items
  • Match transactions to invoices programmatically where possible
  • Fall back to Chrome browser for manual reconciliation of ambiguous items

Existing tools: /Users/ph/.agents/skills/xero-invoice/ — uses xero-node SDK with OAuth tokens at .xero-tokens.json. The auth-helper.js handles token refresh.

3. Sales invoice reconciliation (API)

How: Use the Xero API to:

  • Pull all sales invoices for the period
  • Cross-reference with bank transactions
  • Identify any missing invoices or unmatched payments
  • Use get-outstanding-invoices.js from the xero-invoice skill

Clients: [REDACTED].

4. Expense categorisation review (API + Chrome)

How: Pull the Trial Balance or P&L via Xero Reports API. Review categories for sensibility. Use Chrome only if manual reclassification is needed.

5. Answer the 37 checklist questions (Chrome)

How: Work through each question in the Xero checklist interface. For each:

  • Answer directly if possible (using Xero API data, Companies House info, email records)
  • Ask Peter only for questions requiring personal/director decisions
  • Submit answers via the Xero checklist (Chrome — no API for this)

6. Contact the accountant (email)

How: Email [REDACTED] to confirm everything is ready. Use the send-email skill or Gmail MCP.

Verification

  • All bank transactions for 1 Feb 2025 – 31 Jan 2026 reconciled in Xero
  • All sales invoices raised and matched to payments
  • All 37 checklist questions answered in Xero
  • P&L and Balance Sheet reports look sensible
  • Accountant notified that accounts are ready

Key files and tools

  • Xero invoice skill: /Users/ph/.agents/skills/xero-invoice/
  • Auth helper: /Users/ph/.agents/skills/xero-invoice/auth-helper.js
  • Token file: /Users/ph/.agents/skills/xero-invoice/.xero-tokens.json
  • Client config: /Users/ph/.agents/skills/xero-invoice/client-config.json
  • Create invoice: /Users/ph/.agents/skills/xero-invoice/create-invoice.js
  • Get outstanding: /Users/ph/.agents/skills/xero-invoice/get-outstanding-invoices.js
  • Mark paid: /Users/ph/.agents/skills/xero-invoice/mark-invoice-paid.js
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment