jaz-clio 5.14.4 → 5.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/README.md +5 -8
  2. package/assets/skills/api/SKILL.md +5 -6
  3. package/assets/skills/cli/SKILL.md +3 -5
  4. package/assets/skills/conversion/SKILL.md +3 -8
  5. package/assets/skills/jaz-pseudo-sql/SKILL.md +1 -1
  6. package/assets/skills/jobs/SKILL.md +41 -33
  7. package/assets/skills/jobs/references/audit-prep.md +28 -31
  8. package/assets/skills/jobs/references/bank-recon.md +18 -20
  9. package/assets/skills/jobs/references/building-blocks.md +23 -24
  10. package/assets/skills/jobs/references/credit-control.md +17 -20
  11. package/assets/skills/jobs/references/document-collection.md +16 -19
  12. package/assets/skills/jobs/references/fa-review.md +28 -31
  13. package/assets/skills/jobs/references/gst-vat-filing.md +13 -17
  14. package/assets/skills/jobs/references/month-end-close.md +38 -44
  15. package/assets/skills/jobs/references/payment-run.md +14 -18
  16. package/assets/skills/jobs/references/quarter-end-close.md +29 -35
  17. package/assets/skills/jobs/references/supplier-recon.md +16 -19
  18. package/assets/skills/jobs/references/year-end-close.md +26 -32
  19. package/assets/skills/transaction-recipes/SKILL.md +36 -36
  20. package/assets/skills/transaction-recipes/references/accrued-expenses.md +15 -15
  21. package/assets/skills/transaction-recipes/references/asset-disposal.md +11 -11
  22. package/assets/skills/transaction-recipes/references/bad-debt-provision.md +12 -12
  23. package/assets/skills/transaction-recipes/references/bank-loan.md +16 -16
  24. package/assets/skills/transaction-recipes/references/capital-wip.md +7 -7
  25. package/assets/skills/transaction-recipes/references/declining-balance.md +9 -9
  26. package/assets/skills/transaction-recipes/references/deferred-revenue.md +9 -9
  27. package/assets/skills/transaction-recipes/references/dividend.md +11 -11
  28. package/assets/skills/transaction-recipes/references/employee-accruals.md +12 -12
  29. package/assets/skills/transaction-recipes/references/fixed-deposit.md +8 -8
  30. package/assets/skills/transaction-recipes/references/fx-revaluation.md +8 -8
  31. package/assets/skills/transaction-recipes/references/hire-purchase.md +3 -3
  32. package/assets/skills/transaction-recipes/references/ifrs16-lease.md +12 -12
  33. package/assets/skills/transaction-recipes/references/intercompany.md +17 -18
  34. package/assets/skills/transaction-recipes/references/prepaid-amortization.md +10 -10
  35. package/assets/skills/transaction-recipes/references/provisions.md +9 -9
  36. package/assets/templates/platform-rules/jaz-agent-rules.md +2 -10
  37. package/cli.mjs +529 -535
  38. package/package.json +1 -1
  39. package/assets/skills/practice/SKILL.md +0 -120
  40. package/assets/skills/practice/references/annual-statutory.md +0 -265
  41. package/assets/skills/practice/references/client-md-schema.md +0 -68
  42. package/assets/skills/practice/references/engagement-md-schema.md +0 -69
  43. package/assets/skills/practice/references/monthly-close.md +0 -189
  44. package/assets/skills/practice/references/onboarding.md +0 -207
  45. package/assets/skills/practice/references/quarterly-gst.md +0 -191
  46. package/assets/skills/practice/references/troubleshooting.md +0 -70
  47. package/assets/templates/CLIENT.md +0 -73
  48. package/assets/templates/ENGAGEMENT.md +0 -40
  49. package/assets/templates/PRACTICE.md +0 -22
  50. package/assets/templates/engagement-types/annual-statutory.md +0 -92
  51. package/assets/templates/engagement-types/monthly-close.md +0 -59
  52. package/assets/templates/engagement-types/onboarding.md +0 -101
  53. package/assets/templates/engagement-types/quarterly-gst.md +0 -59
package/README.md CHANGED
@@ -3,11 +3,11 @@
3
3
  <p align="center">
4
4
  <a href="https://www.npmjs.com/package/jaz-clio"><img src="https://img.shields.io/npm/v/jaz-clio?style=for-the-badge&logo=npm" alt="npm"></a>
5
5
  <a href="https://www.npmjs.com/package/jaz-clio"><img src="https://img.shields.io/npm/dm/jaz-clio?style=for-the-badge&label=downloads" alt="npm downloads"></a>
6
- <img src="https://img.shields.io/badge/tools-301-blue?style=for-the-badge" alt="301 Tools">
6
+ <img src="https://img.shields.io/badge/tools-283-blue?style=for-the-badge" alt="283 Tools">
7
7
  <a href="https://github.com/teamtinvio/jaz-ai/blob/main/LICENSE"><img src="https://img.shields.io/github/license/teamtinvio/jaz-ai?style=for-the-badge&color=green" alt="License"></a>
8
8
  </p>
9
9
 
10
- 301 tools. 13 financial calculators. 12 job playbooks. 130 API rules. 16 IFRS recipes.
10
+ 283 tools. 13 financial calculators. 12 job playbooks. 130 API rules. 16 IFRS recipes.
11
11
 
12
12
  ```bash
13
13
  npm install -g jaz-clio
@@ -19,7 +19,7 @@ Requires **Node.js 18+** ([nodejs.org](https://nodejs.org)). Also fully compatib
19
19
 
20
20
  - [Three Ways In](#three-ways-in) — CLI, MCP, Skills
21
21
  - [CLI](#cli) — 55 command groups
22
- - [MCP Server](#mcp-server) — 301 tools for AI agents
22
+ - [MCP Server](#mcp-server) — 283 tools for AI agents
23
23
  - [Skills](#skills) — Teach any AI the Jaz API
24
24
  - [Setup](#setup) — Auth, multi-org, automation
25
25
  - [Semantic help-center search](#help-center-semantic-search-optional) — Optional OpenAI-backed retrieval
@@ -45,18 +45,15 @@ clio jobs month-end --period 2026-03 # Step-by-step close playbook
45
45
  clio magic create --file receipt.pdf # AI extracts → draft transaction
46
46
  clio invoices search --query 'status:unpaid AND $500+' # Structured per-entity search
47
47
  clio invoices search --query 'status:unpaid' --view lean # Compact summary rows (id + key fields), then drill in with get
48
- clio practice init --firm-name "My Firm" # Set up a client workspace at ~/Documents/Jaz Practice
49
- clio practice onboard --name "Acme Pte Ltd" --fy-end 12-31 --gst quarterly
50
- clio practice create-engagement acme-pte-ltd --type monthly-close --period 2026-03
51
48
  ```
52
49
 
53
- 55 command groups. 16 report types. 13 calculators. 12 job playbooks. New in v5.2.0: practitioner workspace (`clio practice`). Every command supports `--json`. Run `clio --help` for the full list.
50
+ 55 command groups. 16 report types. 13 calculators. 12 job playbooks. Every command supports `--json`. Run `clio --help` for the full list.
54
51
 
55
52
  ---
56
53
 
57
54
  ## MCP Server
58
55
 
59
- 301 CLI tools, available to any AI agent that speaks MCP. Runs locally — no cloud, no ports. Includes the v5.2.0 `practice_*` tools (init, onboard_client, list_clients, load_client, create_engagement, load_engagement) so an agent in Claude Desktop or Claude Code can scaffold and load client workspaces conversationally.
56
+ 283 CLI tools, available to any AI agent that speaks MCP. Runs locally — no cloud, no ports.
60
57
 
61
58
  **Claude Code:**
62
59
  ```bash
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: jaz-api
3
- version: 5.14.4
3
+ version: 5.16.0
4
4
  description: >-
5
5
  Use this skill whenever you call, debug, or review code that touches the Jaz
6
6
  REST API. Covers field names, response shapes, 141 production gotchas, error
@@ -10,7 +10,7 @@ description: >-
10
10
  schedulers, subscriptions, attachments, and Jaz Magic extraction. Also use
11
11
  when building API clients, seeding test data, or adding new endpoint support.
12
12
  license: MIT
13
- compatibility: Requires Jaz API key (x-jk-api-key header). Works with Claude Code, Google Antigravity, OpenAI Codex, GitHub Copilot, Cursor, and any agent that reads markdown. For end-to-end practitioner flows that combine these API gotchas with client + engagement context, load the jaz-practice skill (engagement-type playbooks at `jaz-practice/references/{monthly-close,quarterly-gst,annual-statutory,onboarding}.md` invoke these endpoints with concrete CLIENT.md-driven inputs).
13
+ compatibility: Requires Jaz API key (x-jk-api-key header). Works with Claude Code, Google Antigravity, OpenAI Codex, GitHub Copilot, Cursor, and any agent that reads markdown.
14
14
  ---
15
15
 
16
16
  # Jaz API Skill
@@ -27,11 +27,11 @@ Before touching this skill's HTTP details, check what's actually available:
27
27
 
28
28
  The rest of this skill — field names, gotchas, error catalog, dependency order, search filter syntax — applies regardless of invocation path. Read it for *context*, not for HTTP-call construction unless you're in the third bucket.
29
29
 
30
- ## Reading Order — Practitioner vs Integrator
30
+ ## Reading Order
31
31
 
32
- **Practitioner (Claude Desktop / `jaz-practice`)** — priority + engagement type typically hit during (rule numbering preserved; this is a curation overlay): (1) Identifiers & Dates 1–3 — every engagement; (2) Names & Fields 9–13 — monthly-close review; (3) Transaction Creation 14–16 — onboarding opening entries + monthly-close draft finalization; (4) Chart of Accounts 17–22 — onboarding COA setup + monthly-close classification; (5) Payments / Cross-Currency 4–8 — monthly-close payment-run + quarterly-gst AR/AP recon; (6) Journals & Cash 23–26 — monthly-close accruals + annual-statutory year-end true-ups; (7) Credit Notes & Refunds 27–28 — monthly-close AR review + ad-hoc credit issuance; (8) Reports 36–37 — every engagement, TB/BS at start of monthly-close, quarterly-gst, annual-statutory; (9) Tax Profile Scoping 100 — quarterly-gst F5 box mapping; (10) Transaction References 104 — monthly-close period-end + onboarding ref reuse; (11) Draft Finalization Pipeline 81–88 — monthly-close draft queues + onboarding draft promotion; (12) Jaz Magic / PDF-JPG 57–63 — onboarding doc capture + monthly-close document-collection; (13) Currency Rates 39, 49, 105 — monthly-close FX reval + annual-statutory year-end revaluation; (14) Withholding Tax 45, 98 — quarterly-gst + annual-statutory tax computation.
32
+ **Core fundamentals (read first, every integration):** Identifiers & Dates 1–3; Names & Fields 9–13; Transaction Creation 14–16; Chart of Accounts 17–22; Payments / Cross-Currency 4–8; Journals & Cash 23–26; Credit Notes & Refunds 27–28; Reports 36–37; Tax Profile Scoping 100; Transaction References 104; Draft Finalization Pipeline 81–88; Jaz Magic / PDF-JPG 57–63; Currency Rates 39, 49, 105; Withholding Tax 45, 98.
33
33
 
34
- **Integrator (API clients, pipelines, batch jobs, MCP/CLI)** — after the practitioner list: Bulk Upsert (Items/Contacts/Rates); Background Jobs (filter `resourceId` not `jobId`); Export Records; Pagination (38); Search & Filter (50–56); Response Shape Gotchas (66–73); Cash Entry Response Shape (74–77); Entity Resolution (78–80); Bank Rules (89–90c); Fixed Assets (91–92c); Subscriptions & Scheduled (93–94); niche endpoints (95–102); Journals balance (103); Quick Fix (107, 111); TTB (108 — onboarding-relevant); Dynamic Strings (109–110); Sub-Resource Shapes (112); Nano-Classifier (113); Scheduler Asymmetry (114); Payment Record CRUD (115–117); Bulk Upserts transactions (118–122); Reconciliation write-side (123–127); Drafts lifecycle (128–135); Orders — Sale Quotes / Sale Orders / Purchase Requests / Purchase Orders (`references/orders.md`).
34
+ **Integration depth (API clients, pipelines, batch jobs, MCP/CLI):** Bulk Upsert (Items/Contacts/Rates); Background Jobs (filter `resourceId` not `jobId`); Export Records; Pagination (38); Search & Filter (50–56); Response Shape Gotchas (66–73); Cash Entry Response Shape (74–77); Entity Resolution (78–80); Bank Rules (89–90c); Fixed Assets (91–92c); Subscriptions & Scheduled (93–94); niche endpoints (95–102); Journals balance (103); Quick Fix (107, 111); TTB (108); Dynamic Strings (109–110); Sub-Resource Shapes (112); Nano-Classifier (113); Scheduler Asymmetry (114); Payment Record CRUD (115–117); Bulk Upserts transactions (118–122); Reconciliation write-side (123–127); Drafts lifecycle (128–135); Orders — Sale Quotes / Sale Orders / Purchase Requests / Purchase Orders (`references/orders.md`).
35
35
 
36
36
  ## When to Use This Skill
37
37
 
@@ -546,4 +546,3 @@ Supports `--json` for structured output. 186 articles across 20 sections. Automa
546
546
  - **jaz-jobs** — 12 accounting job playbooks (month-end close, bank recon, GST/VAT filing, etc.)
547
547
  - **jaz-conversion** — Data migration workflows from Xero, QuickBooks, Sage, MYOB, and Excel
548
548
  - **jaz-cli** — CLI command reference, auth, output formats, pagination, and workflow patterns
549
- - **jaz-practice** — Practitioner workspace + engagement-type wrapper (CLIENT.md, ENGAGEMENT.md, monthly-close / quarterly-gst / annual-statutory / onboarding playbooks); loads the gotchas above with concrete CLIENT.md-driven inputs (COA, materiality, JAZ_API_KEY override).
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: jaz-cli
3
- version: 5.14.4
3
+ version: 5.16.0
4
4
  description: >-
5
5
  Use this skill when running Clio CLI commands, building shell scripts with
6
6
  Clio, debugging auth issues, understanding --json output, paginating results,
@@ -15,7 +15,7 @@ compatibility: Requires Node.js >= 18.0.0. Install via npm install -g jaz-clio.
15
15
 
16
16
  # Clio CLI Skill
17
17
 
18
- > **Audience note:** for power users and CI/automation. Most practitioners using Claude Desktop or `jaz-practice` workflows can ignore this skill — the practice MCP tools (`practice_*`) cover the day-to-day flows. Load this skill only when you're scripting from a terminal, building shell pipelines, or debugging from `clio --json` output.
18
+ > **Audience note:** for power users and CI/automation. Load this skill only when you're scripting from a terminal, building shell pipelines, or debugging from `clio --json` output. For day-to-day accounting inside Claude Desktop / Cowork, the MCP tools cover the common flows without dropping to the CLI.
19
19
 
20
20
  You are working with **Clio** (`jaz-clio`) — the CLI for the Jaz accounting platform. 55 command groups, 13 calculators, 12 job blueprints, 274 agent tools. Also fully compatible with Juan Accounting (same API, same endpoints).
21
21
 
@@ -38,9 +38,8 @@ You are working with **Clio** (`jaz-clio`) — the CLI for the Jaz accounting pl
38
38
  | IFRS transaction recipes (depreciation, leases, loans) | **jaz-recipes** |
39
39
  | Month-end close, bank recon, GST filing workflows | **jaz-jobs** |
40
40
  | Migration from Xero/QuickBooks/Sage | **jaz-conversion** |
41
- | Client + engagement workspace (CLIENT.md, ENGAGEMENT.md, engagement types) | **jaz-practice** |
42
41
 
43
- Use **jaz-cli** when running commands. Use **jaz-api** when debugging API errors or understanding field mappings. Practice scaffolding tools (`practice_init`, `practice_onboard_client`, `practice_list_clients`, `practice_load_client`, `practice_create_engagement`, `practice_load_engagement`) live in the MCP server, not the CLI — they are invoked from inside Claude Desktop / Cowork rather than from the terminal.
42
+ Use **jaz-cli** when running commands. Use **jaz-api** when debugging API errors or understanding field mappings.
44
43
 
45
44
  ## Auth Precedence
46
45
 
@@ -368,4 +367,3 @@ See [references/agent-gotchas.md](./references/agent-gotchas.md) for the full li
368
367
  - **jaz-recipes** — 16 IFRS-compliant transaction recipes with calculators and capsules
369
368
  - **jaz-jobs** — 12 accounting job playbooks (month-end close, bank recon, GST/VAT filing, etc.)
370
369
  - **jaz-conversion** — Data migration workflows from Xero, QuickBooks, Sage, MYOB, and Excel
371
- - **jaz-practice** — Practitioner workspace + engagement-type wrapper (CLIENT.md, ENGAGEMENT.md, onboarding / monthly-close / quarterly-gst / annual-statutory). Practice tools (`practice_init`, `practice_onboard_client`, etc.) live in the MCP surface, not the CLI.
@@ -1,16 +1,14 @@
1
1
  ---
2
2
  name: jaz-conversion
3
- version: 5.14.4
3
+ version: 5.16.0
4
4
  description: >-
5
5
  Use this skill when migrating accounting data into Jaz — importing from Xero,
6
6
  QuickBooks, Sage, MYOB, or Excel exports. Covers the full conversion pipeline:
7
7
  analyzing source files, mapping Chart of Accounts, contacts, tax profiles, and
8
8
  items, creating clearing accounts, running TTB (trial transaction balance),
9
9
  and verifying TB. Also use when the user mentions data migration, conversion,
10
- import, or switching accounting software. Triggered during the jaz-practice
11
- onboarding flow whenever a new client's prior firm uses Xero, QuickBooks,
12
- Sage, or MYOB — see `jaz-practice/references/onboarding.md` for the
13
- client-folder-aware wrapper that invokes this skill.
10
+ import, or switching accounting software whenever a customer's prior system
11
+ is Xero, QuickBooks, Sage, MYOB, or an Excel-based ledger.
14
12
  ---
15
13
 
16
14
  # Jaz Conversion Skill
@@ -21,8 +19,6 @@ You are performing an **accounting data conversion** — migrating a customer's
21
19
 
22
20
  **This skill provides Jaz-contextual conversion domain knowledge. For API details (field names, endpoints, gotchas), load the `jaz-api` skill alongside this one.**
23
21
 
24
- **Engagement context:** when this skill is invoked from inside a `jaz-practice` client folder, the onboarding flow (`practice_onboard_client`) loads CLIENT.md to capture FY-end, GST scheme, banking, and the prior firm's name — then routes to this skill for the actual data move. After conversion completes (Step 7 verification), the practitioner closes the onboarding engagement and the recurring engagement cadence (monthly-close / quarterly-gst / annual-statutory) takes over. See `jaz-practice/references/onboarding.md` for the complete sequence.
25
-
26
22
  ## Guided in-app data transfer
27
23
 
28
24
  Jaz also has a guided **Data Transfer** flow available in Settings (Xero, QuickBooks, Sage, MYOB).
@@ -164,4 +160,3 @@ If TB doesn't match, identify the discrepancy:
164
160
  - **jaz-api** — Field names, endpoints, error codes, and gotchas (load alongside this skill)
165
161
  - **jaz-recipes** — Transaction recipes for complex IFRS scenarios encountered during conversion
166
162
  - **jaz-jobs** — Post-conversion operational workflows (month-end close, bank recon, etc.)
167
- - **jaz-practice** — Client-folder + engagement wrapper. The onboarding flow (`practice_onboard_client` + `jaz-practice/references/onboarding.md`) is the typical entry point for invoking this skill: it captures CLIENT.md basics, scaffolds the client folder, and routes to this skill for the data move. After verification passes, the recurring engagement cadence (monthly-close / quarterly-gst / annual-statutory) begins.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: jaz-pseudo-sql
3
- version: 5.14.4
3
+ version: 5.16.0
4
4
  description: >-
5
5
  Use this skill when answering ad-hoc data questions that aren't covered by
6
6
  download_export (canonical reports — anomaly, audit, aging, P&L, BS, GL,
@@ -1,24 +1,31 @@
1
1
  ---
2
2
  name: jaz-jobs
3
- version: 5.14.4
3
+ version: 5.16.0
4
4
  description: >-
5
5
  Use this skill for recurring accounting workflows — month/quarter/year-end
6
6
  close, bank reconciliation, GST/VAT filing, payment runs, credit control,
7
7
  supplier recon, audit prep, fixed asset review, and Singapore Form C-S tax
8
- computation. 12 job playbooks with CLI blueprints and paired tools. Also use
9
- when the user mentions closing the books, period-end, tax filing, or any
10
- operational accounting task.
8
+ computation. 12 job playbooks that sequence real platform tools into complete
9
+ business processes. Also use when the user mentions closing the books,
10
+ period-end, tax filing, or any operational accounting task.
11
11
  license: MIT
12
- compatibility: Works with Claude Code, Claude Cowork, Claude.ai, and any agent that reads markdown. For API payloads, load the jaz-api skill. For individual transaction patterns, load the jaz-recipes skill. For the engagement-type wrapper that invokes these blueprints inside a client workspace, load the jaz-practice skill (see `jaz-practice/references/<engagement-type>.md` for canonical engagement-type definitions).
12
+ compatibility: Works with Claude Code, Claude Cowork, Claude.ai, and any agent that reads markdown. For API payloads, load the jaz-api skill. For individual transaction patterns, load the jaz-recipes skill.
13
13
  ---
14
14
 
15
15
  # Jobs Skill
16
16
 
17
17
  You are helping an **SMB accountant or bookkeeper** complete recurring accounting tasks in Jaz — period-end closes, bank reconciliation, tax filing, payment processing, and operational reviews. These are the real jobs that keep the books accurate and the business compliant.
18
18
 
19
- > **Jaz-native, not generic.** Every job in this skill names specific Jaz MCP tools (`search_invoices`, `quick_reconcile`, `bulk_finalize_drafts`, `generate_*_blueprint`, `download_export`), Jaz reconciliation modes, and Jaz capsule patterns. It is NOT an interchangeable accounting workflow reference; it is the operating manual for running these processes through the Jaz API surface. When the playbook says "match bank entries", it means call `clio jobs bank-recon match` (the 5-phase cascade matcher built into the CLI), not "use any matching algorithm".
19
+ > **Jaz-native, not generic.** Every job in this skill names specific Jaz tools (`search_invoices`, `quick_reconcile`, `bulk_finalize_drafts`, `reconcile_with_payments`, report tools like `generate_trial_balance`, `download_export`), Jaz reconciliation modes, and Jaz capsule patterns. It is NOT an interchangeable accounting workflow reference; it is the operating manual for running these processes through the Jaz platform tools. When the playbook says "match bank entries", it means call the 5-phase cascade matcher (`clio jobs bank-recon match` for a local CLI run, or follow the cascade logic in `references/bank-match.md` and drive the `reconcile_*` tools directly), not "use any matching algorithm".
20
20
 
21
- **Jobs combine recipes, calculators, and API calls into complete business processes.** If recipes are ingredients, jobs are the meal. Within a practitioner engagement (`jaz-practice` skill), the engagement-type playbook (`practice/references/<type>.md`) is the canonical end-to-end orchestration the references in this skill describe the building-block jobs the engagement playbook invokes.
21
+ **Jobs combine recipes, calculators, and platform tools into complete business processes.** If recipes are ingredients, jobs are the meal. Each per-job reference is the canonical end-to-end orchestration: it lists the phases, and for each step names the exact report tool, recipe, or API call to run.
22
+
23
+ ## How to run a job
24
+
25
+ You orchestrate the **real platform tools directly**, following the phase sequence in the per-job reference:
26
+
27
+ - **Hosted / MCP agent (no shell):** the per-job reference is your checklist. Walk its phases in order and call the named platform tools — `plan_recipe` / `execute_recipe`, `search_invoices` / `search_bills` / `search_bank_records`, the `generate-reports/*` report tools (`generate_trial_balance`, `generate_aged_ar`, `generate_vat_ledger`, …), `reconcile_*`, `create_journal`, `bulk_finalize_drafts`, `update_account` lockDate, and so on. There is no separate "blueprint tool" to call — the reference IS the plan.
28
+ - **Local CLI convenience:** if you're running `clio` in a terminal (e.g. Claude Code), `clio jobs <type> --json` prints the same phased checklist for the period so a human or script can follow it. This is a convenience, not the main path for a hosted agent — the platform tools above are the path that actually does the work.
22
29
 
23
30
  ## When to Use This Skill
24
31
 
@@ -38,41 +45,43 @@ You are helping an **SMB accountant or bookkeeper** complete recurring accountin
38
45
 
39
46
  Period-close jobs build on each other. Quarter = month + extras. Year = quarter + extras. Each level runs **standalone by default** (includes all steps from lower levels). Use `--incremental` to generate only the extras.
40
47
 
41
- | Job | CLI Command | Description |
42
- |-----|-------------|-------------|
43
- | **Month-End Close** (`generate_month_end_blueprint`) | `clio jobs month-end --period YYYY-MM` | 5 phases: pre-close prep, accruals, valuations, verification, lock. The foundation. *Used in: monthly-close engagement (see `jaz-practice/references/monthly-close.md`).* |
44
- | **Quarter-End Close** (`generate_quarter_end_blueprint`) | `clio jobs quarter-end --period YYYY-QN` | Month-end for each month + GST/VAT, ECL review, bonus accruals, intercompany, provisions. *Used in: monthly-close engagement (3-month roll-up at quarter boundary; see `jaz-practice/references/monthly-close.md`).* |
45
- | **Year-End Close** (`generate_year_end_blueprint`) | `clio jobs year-end --period YYYY` | Quarter-end for each quarter + true-ups, dividends, CYE rollover, audit prep, final lock. *Used in: annual-statutory engagement (see `jaz-practice/references/annual-statutory.md`).* |
48
+ | Job | CLI (local convenience) | Description |
49
+ |-----|-------------------------|-------------|
50
+ | **Month-End Close** | `clio jobs month-end --period YYYY-MM` | 5 phases: pre-close prep, accruals, valuations, verification, lock. The foundation. |
51
+ | **Quarter-End Close** | `clio jobs quarter-end --period YYYY-QN` | Month-end for each month + GST/VAT, ECL review, bonus accruals, intercompany, provision unwinding. |
52
+ | **Year-End Close** | `clio jobs year-end --period YYYY` | Quarter-end for each quarter + true-ups, dividends, retained-earnings rollover, audit prep, final lock. |
46
53
 
47
54
  ### Ad-Hoc Jobs
48
55
 
49
- | Job | CLI Command | Description |
50
- |-----|-------------|-------------|
51
- | **Bank Recon** (`generate_bank_recon_blueprint`) | `clio jobs bank-recon` | Clear unreconciled items: match, categorize, resolve. **Match to EXISTING open bills/invoices/payments (`reconcile_with_payments`) is the primary path — create-new only when nothing matches.** Drive end-to-end via the `view_auto_reconciliation` decision gate (auto-commit high-confidence, checkpoint the rest — see `references/bank-recon.md` Step 4a). Paired tool: `clio jobs bank-recon match`. *Used in: monthly-close engagement (run as part of every period close; see `jaz-practice/references/monthly-close.md`).* |
52
- | **Document Collection** (`generate_document_collection_blueprint`) | `clio jobs document-collection` | Scan and classify client documents from local directories and cloud links (Dropbox, Drive, OneDrive). Outputs file paths for agent upload. Paired tool: `clio jobs document-collection ingest`. *Used in: onboarding flow (initial client doc capture; see `jaz-practice/references/onboarding.md`) and the open phase of every engagement (monthly-close, quarterly-gst, annual-statutory).* |
53
- | **GST/VAT Filing** (`generate_gst_vat_blueprint`) | `clio jobs gst-vat --period YYYY-QN` | Tax ledger review, discrepancy check, filing summary. *Used in: quarterly-gst engagement (see `jaz-practice/references/quarterly-gst.md`).* |
54
- | **Payment Run** (`generate_payment_run_blueprint`) | `clio jobs payment-run` | Select outstanding bills by due date, process payments. *Used in: monthly-close engagement (AP cycle inside the period close; see `jaz-practice/references/monthly-close.md`).* |
55
- | **Credit Control** (`generate_credit_control_blueprint`) | `clio jobs credit-control` | AR aging review, overdue chase list, bad debt assessment. *Used in: ad-hoc engagement (run on-demand when AR aging deteriorates; not tied to a recurring engagement type).* |
56
- | **Supplier Recon** (`generate_supplier_recon_blueprint`) | `clio jobs supplier-recon` | AP vs supplier statement, identify mismatches. *Used in: annual-statutory engagement (audit AP confirmations; see `jaz-practice/references/annual-statutory.md`) and ad-hoc engagement (when statement mismatches surface mid-period).* |
57
- | **Audit Preparation** (`generate_audit_prep_blueprint`) | `clio jobs audit-prep --period YYYY` | Compile reports, schedules, reconciliations for auditor/tax. *Used in: annual-statutory engagement (see `jaz-practice/references/annual-statutory.md`).* |
58
- | **FA Review** (`generate_fa_review_blueprint`) | `clio jobs fa-review` | Fixed asset register review, disposal/write-off processing. *Used in: annual-statutory engagement (asset register sign-off as part of year-end; see `jaz-practice/references/annual-statutory.md`).* |
59
- | **Statutory Filing** (`generate_statutory_filing_blueprint`) | `clio jobs statutory-filing` | Corporate income tax computation and filing. Paired tools: `clio jobs statutory-filing sg-cs`, `clio jobs statutory-filing sg-ca`. *Used in: annual-statutory engagement (see `jaz-practice/references/annual-statutory.md`).* |
56
+ | Job | CLI (local convenience) | Description |
57
+ |-----|-------------------------|-------------|
58
+ | **Bank Recon** | `clio jobs bank-recon` | Clear unreconciled items: match, categorize, resolve. **Match to EXISTING open bills/invoices/payments (`reconcile_with_payments`) is the primary path — create-new only when nothing matches.** Drive end-to-end via the `view_auto_reconciliation` decision gate (auto-commit high-confidence, checkpoint the rest — see `references/bank-recon.md` Step 4a). Cascade matcher: `clio jobs bank-recon match`. |
59
+ | **Document Collection** | `clio jobs document-collection` | Scan and classify client documents from local directories and cloud links (Dropbox, Drive, OneDrive). Outputs file paths for upload via Jaz Magic. Ingest helper: `clio jobs document-collection ingest`. |
60
+ | **GST/VAT Filing** | `clio jobs gst-vat --period YYYY-QN` | Tax ledger review, discrepancy check, filing summary. |
61
+ | **Payment Run** | `clio jobs payment-run` | Select outstanding bills by due date, process payments. |
62
+ | **Credit Control** | `clio jobs credit-control` | AR aging review, overdue chase list, bad debt assessment. Run on-demand when AR aging deteriorates. |
63
+ | **Supplier Recon** | `clio jobs supplier-recon` | AP vs supplier statement, identify mismatches. Run for major suppliers and at year-end for audit AP confirmations. |
64
+ | **Audit Preparation** | `clio jobs audit-prep --period YYYY` | Compile reports, schedules, reconciliations for auditor/tax. |
65
+ | **FA Review** | `clio jobs fa-review` | Fixed asset register review, disposal/write-off processing. Run as part of year-end. |
66
+ | **Statutory Filing** | `clio jobs statutory-filing` | Corporate income tax computation. CLI engines: `clio jobs statutory-filing sg-cs` (Form C-S computation), `clio jobs statutory-filing sg-ca` (capital allowance schedule). See the SG Form C-S section below. |
60
67
 
61
68
  ## How Jobs Work
62
69
 
63
- Each job produces a **blueprint** — a phased checklist of steps, each annotated with:
70
+ Each per-job reference is a **phased checklist** of steps. Each step names:
64
71
 
65
- - **API call** — the exact endpoint + request body to execute the step
72
+ - **API call** — the exact platform tool + request body to execute the step
66
73
  - **Recipe reference** — link to the transaction-recipes skill for complex accounting patterns
67
- - **Calculator command** — `clio calc` command for financial calculations
74
+ - **Calculator command** — `clio calc` command for independent financial cross-checks
68
75
  - **Verification check** — how to confirm the step was completed correctly
69
76
  - **Conditional flag** — steps that only apply in certain situations (e.g., "only if multi-currency org")
70
77
 
71
- **For AI agents:** Read the blueprint and execute each step using the jaz-api skill for payloads.
72
- **For developers:** Use `--json` output to build automation pipelines.
73
- **For accountants:** Use the formatted checklist to work through the close systematically.
78
+ **For AI agents (hosted or CLI):** walk the phases in the per-job reference and call the named platform tools directly. Use the jaz-api skill for payload shapes.
79
+ **For developers / scripts:** `clio jobs <type> --json` prints the phased checklist as JSON to drive automation pipelines.
80
+ **For accountants:** use the formatted checklist (`clio jobs <type>`) to work through the close systematically.
81
+
82
+ ## CLI Usage (local convenience)
74
83
 
75
- ## CLI Usage
84
+ These commands print the phased checklist for a period. They are a terminal convenience — a hosted agent drives the platform tools named in each reference directly.
76
85
 
77
86
  ```bash
78
87
  # Period-close (standalone = full plan, --incremental = extras only)
@@ -96,10 +105,9 @@ clio jobs fa-review [--json]
96
105
  |-------|------|
97
106
  | **jaz-api** | Provides the exact API payloads for each step (field names, gotchas, error handling) |
98
107
  | **jaz-recipes** | Provides the accounting patterns for complex steps (accruals, FX reval, ECL, etc.) |
99
- | **jaz-jobs** (this skill) | Combines recipes + API into sequenced, verifiable business processes |
100
- | **jaz-practice** | Wraps these blueprints inside the practitioner's client + engagement context. The 12 blueprints map to engagement types: month-end / quarter-end / bank-recon / payment-run → monthly-close; gst-vat → quarterly-gst; year-end / audit-prep / fa-review / supplier-recon / statutory-filing → annual-statutory; document-collection → onboarding flow + every engagement open phase; credit-control → ad-hoc. |
108
+ | **jaz-jobs** (this skill) | Combines recipes + platform tools into sequenced, verifiable business processes |
101
109
 
102
- **Load all three skills together** for the complete picture. Jobs reference recipes by name — an AI agent should read the referenced recipe for implementation details. When invoked from inside a client folder, jaz-practice supplies the CLIENT.md context (COA, materiality, JAZ_API_KEY override) that these blueprints consume.
110
+ **Load all three skills together** for the complete picture. Jobs reference recipes by name — read the referenced recipe for implementation details.
103
111
 
104
112
  ## Supporting Files
105
113
 
@@ -1,11 +1,10 @@
1
1
  # Audit Preparation
2
2
 
3
- > Compile the report pack + supporting schedules + reconciliations an auditor or tax agent needs to issue an opinion or file a return. Driver tool: `generate_audit_prep_blueprint`.
3
+ > Compile the report pack + supporting schedules + reconciliations an auditor or tax agent needs to issue an opinion or file a return. Walk the steps below in order, calling the named platform tools directly. (Local CLI convenience: `clio jobs audit-prep --period <YYYY>` prints this same phased deliverables checklist.)
4
4
 
5
5
  ## Tools, recipes, calculators this job uses
6
6
 
7
- ### MCP tools — financial statements
8
- - **`generate_audit_prep_blueprint`** — used in step 1: emit the phased deliverables list for the period.
7
+ ### Platform tools — financial statements
9
8
  - **`generate_trial_balance(period_end: <FY-end>)`** — step 2: master reconciliation. Every other report ties back to this.
10
9
  - **`generate_balance_sheet(period_end: <FY-end>)`** — step 3.
11
10
  - **`generate_profit_and_loss(period_start: <FY-start>, period_end: <FY-end>)`** — step 3.
@@ -13,17 +12,17 @@
13
12
  - **`generate_equity_movement(period_start, period_end)`** — step 4.
14
13
  - **`generate_general_ledger(period_start, period_end, groupBy: 'ACCOUNT')`** — step 5: the auditor's primary working document.
15
14
 
16
- ### MCP tools — supporting schedules
15
+ ### Platform tools — supporting schedules
17
16
  - **`generate_aged_ar(period_end)` / `generate_aged_ap(period_end)`** — step 6.
18
17
  - **`generate_bank_recon_summary(period_end)` / `generate_bank_recon_details(period_end)`** — step 7. NON-NEGOTIABLE deliverable.
19
18
  - **`generate_bank_balance_summary(period_end)`** — step 7. Cross-reference to bank confirmation letters.
20
19
  - **`generate_fa_summary(period_end)` / `generate_fa_recon_summary(period_start, period_end)`** — step 8.
21
20
  - **`generate_vat_ledger(period_start, period_end)`** — step 9. Annual total ties to sum of quarterly F5 returns.
22
21
 
23
- ### MCP tools — XLSX deliverables
22
+ ### Platform tools — XLSX deliverables
24
23
  - **`download_export(exportType: '<type>', startDate, endDate)`** — step 10: pre-signed XLSX URL (~5 min expiry). Per `jaz-api/SKILL.md` rule (data-exports), supported types include `trial-balance`, `profit-and-loss`, `balance-sheet`, `general-ledger`, `ar-report`, `ap-report`, `cashflow`, `analysis-anomalous-bills`, `analysis-anomalous-invoices`, `analysis-cashflow-anomalies`, `analysis-gl-journal-audit`, `analysis-exchange-rate-audit`, `analysis-receivables-customer-risk`, `analysis-cash-expense-health`. The audit-analyses are essential pre-emptive flags for the auditor.
25
24
 
26
- ### MCP tools — completeness gates
25
+ ### Platform tools — completeness gates
27
26
  - **`search_journals(filter: {status: {eq: 'DRAFT'}, valueDate: {between: [<FY-start>, <FY-end>]}})`** — step 12: must return zero rows before pack hand-off.
28
27
  - **`search_invoices(filter: {status: {eq: 'DRAFT'}, valueDate: {between: [<FY-start>, <FY-end>]}})`** — step 12: same gate, sales side.
29
28
  - **`search_bills(filter: {status: {eq: 'DRAFT'}, valueDate: {between: [<FY-start>, <FY-end>]}})`** — step 12: same gate, purchases side.
@@ -38,8 +37,9 @@
38
37
  - **`clio calc depreciation --cost --salvage --life --method --json`** — step 8: per-asset depreciation cross-check vs FA register.
39
38
 
40
39
  ### Cross-references
41
- - Within an engagement: invoked from `practice/references/annual-statutory.md` step 5 (audit-prep is the bridge between year-end close and statutory filing). Practice playbook reads `CLIENT.statutory_audit_required`, `CLIENT.tax_jurisdiction` (`SG` | `PH`), and `CLIENT.fy_end` to scope the deliverables.
42
- - Sibling jobs: `year-end-close.md` (must complete BEFORE this job audit-prep assumes books are closed), `statutory-filing.md` (the SG Form C-S / PH ITR step that consumes the pack this job produces see audit step 13 cross-reference).
40
+ - Runs after year-end-close; it's the bridge between year-end close and statutory filing.
41
+ - Org inputs this job needs (confirm with the user when not already on file): whether a statutory audit is required, the tax jurisdiction (`SG` | `PH`), and the FY-endthese scope the deliverables.
42
+ - Sibling jobs: `year-end-close.md` (must complete BEFORE this job — audit-prep assumes books are closed), plus the SG Form C-S / PH ITR statutory filing that consumes the pack this job produces (see step 13).
43
43
  - API rules: `jaz-api/SKILL.md` rule 36 (`endDate` not `startDate` for AR/AP point-in-time reports), rule 38 (pagination for `general-ledger`), rule 52 (response dates are epoch ms).
44
44
 
45
45
  ---
@@ -54,21 +54,17 @@
54
54
 
55
55
  Even small exempt SG companies need this pack for the external accountant who prepares the financial statements + Form C-S.
56
56
 
57
- ## Step 1 — Emit blueprint
57
+ ## Step 1 — Scope the deliverables
58
58
 
59
- ```
60
- generate_audit_prep_blueprint(period_start: '2025-01-01', period_end: '2025-12-31', currency: <CLIENT.base_currency>, jurisdiction: <CLIENT.tax_jurisdiction>)
61
- ```
62
-
63
- Save to `recurring/annual/<period>/audit-prep/blueprint.json`. Blueprint emits jurisdiction-specific deliverable list (SG: TB / BS / P&L / CF / EM / AR aging / AP aging / bank recon / FA register / GST F5 yearly / supporting schedules. PH: same + ITR-specific schedules).
59
+ The jurisdiction-specific deliverable list. SG: TB / BS / P&L / CF / EM / AR aging / AP aging / bank recon / FA register / GST F5 yearly / supporting schedules. PH: same + ITR-specific schedules. (Local CLI: `clio jobs audit-prep --period 2025` prints this deliverables checklist.)
64
60
 
65
61
  ## Step 2 — Trial balance (the master)
66
62
 
67
63
  ```
68
- generate_trial_balance(period_end: '2025-12-31', currency: <CLIENT.base_currency>)
64
+ generate_trial_balance(period_end: '2025-12-31', currency: <base currency>)
69
65
  ```
70
66
 
71
- Save to `recurring/annual/<period>/audit-prep/tb.json`. Verify: every report from step 3 onwards must tie back to a TB line.
67
+ Save the FY trial balance. Verify: every report from step 3 onwards must tie back to a TB line.
72
68
 
73
69
  ## Step 3 — Primary financial statements
74
70
 
@@ -100,7 +96,7 @@ Cashflow classifies into Operating / Investing / Financing per IAS 7. Equity Mov
100
96
  generate_general_ledger(period_start: '2025-01-01', period_end: '2025-12-31', groupBy: 'ACCOUNT')
101
97
  ```
102
98
 
103
- Per `jaz-api/SKILL.md` rule 38, paginate via `offset` if `totalElements > <page-size>`. Save full GL to `recurring/annual/<period>/audit-prep/gl.json`. Auditor will sample-test from this.
99
+ Per `jaz-api/SKILL.md` rule 38, paginate via `offset` if `totalElements > <page-size>`. Keep the full GL for the pack — the auditor will sample-test from this.
104
100
 
105
101
  ## Step 6 — AR / AP aging
106
102
 
@@ -127,7 +123,7 @@ generate_bank_recon_details(period_end: '2025-12-31')
127
123
  generate_bank_balance_summary(period_end: '2025-12-31')
128
124
  ```
129
125
 
130
- For each bank account: `unreconciledCount` MUST be 0 OR every unreconciled item has a documented timing-difference explanation in `ENGAGEMENT.risk_areas`. The auditor will request bank confirmation letters DIRECTLY from your banks — `generate_bank_balance_summary` total must reconcile to those letters within tolerance.
126
+ For each bank account: `unreconciledCount` MUST be 0 OR every unreconciled item has a documented timing-difference explanation. The auditor will request bank confirmation letters DIRECTLY from your banks — `generate_bank_balance_summary` total must reconcile to those letters within tolerance.
131
127
 
132
128
  If `unreconciledCount > 0`: halt audit-prep and route back to `bank-recon.md` job. Do NOT hand the pack to the auditor with unreconciled items.
133
129
 
@@ -144,7 +140,7 @@ For non-FA-register schedules (loan, lease, ECL, fixed-deposit, prepaid, interco
144
140
  ```
145
141
  search_capsules(filter: {capsuleType: {in: ['Loan Repayment', 'Lease', 'Fixed Deposit', 'Prepaid Expenses', 'Provision']}})
146
142
  ```
147
- For each capsule, run the matching `clio calc <type>` to produce the independent schedule. Save to `recurring/annual/<period>/audit-prep/schedules/<capsule-name>.json`. Auditor uses these to test the IFRS 9 / IFRS 16 / IAS 37 measurements.
143
+ For each capsule, run the matching `clio calc <type>` to produce the independent schedule. Keep one schedule per capsule the auditor uses these to test the IFRS 9 / IFRS 16 / IAS 37 measurements.
148
144
 
149
145
  ## Step 9 — Tax ledger
150
146
 
@@ -152,17 +148,17 @@ For each capsule, run the matching `clio calc <type>` to produce the independent
152
148
  generate_vat_ledger(period_start: '2025-01-01', period_end: '2025-12-31')
153
149
  ```
154
150
 
155
- For SG: annual total ties to sum of 4 quarterly GST F5 returns. For PH: annual total ties to monthly VAT returns + quarterly summary. Cross-reference: `practice/references/quarterly-gst.md` keeps the per-quarter F5/VAT submissions; the annual reconciliation should already be clean if quarterly-gst engagements ran each period.
151
+ For SG: annual total ties to sum of 4 quarterly GST F5 returns. For PH: annual total ties to monthly VAT returns + quarterly summary. The annual reconciliation should already be clean if the `gst-vat-filing.md` job ran each period.
156
152
 
157
153
  ## Step 10 — XLSX deliverables (pre-empt auditor requests)
158
154
 
159
155
  For each report the auditor needs in their workpapers:
160
156
 
161
157
  ```
162
- download_export(exportType: 'trial-balance', startDate: '2025-01-01', endDate: '2025-12-31', currencyCode: <CLIENT.base_currency>)
158
+ download_export(exportType: 'trial-balance', startDate: '2025-01-01', endDate: '2025-12-31', currencyCode: <base currency>)
163
159
  ```
164
160
 
165
- Returns `{ fileName, fileUrl }` (pre-signed, ~5 min). Download immediately to `recurring/annual/<period>/audit-prep/xlsx/`. Repeat for: `profit-and-loss`, `balance-sheet`, `general-ledger`, `ar-report`, `ap-report`, `cashflow`.
161
+ Returns `{ fileName, fileUrl }` (pre-signed, ~5 min). Download immediately (URL expires fast). Repeat for: `profit-and-loss`, `balance-sheet`, `general-ledger`, `ar-report`, `ap-report`, `cashflow`.
166
162
 
167
163
  **Pre-emptive audit analyses** (run BEFORE handing over the pack — fix what they'd find):
168
164
  - `download_export(exportType: 'analysis-anomalous-bills', startDate, endDate)` — flag bills with unusual amounts vs supplier history
@@ -171,7 +167,7 @@ Returns `{ fileName, fileUrl }` (pre-signed, ~5 min). Download immediately to `r
171
167
  - `download_export(exportType: 'analysis-exchange-rate-audit', startDate, endDate)` — FX rates outside expected band
172
168
  - `download_export(exportType: 'analysis-cash-expense-health', startDate, endDate)` — cash-only expense patterns auditors flag
173
169
 
174
- If any analysis surfaces issues, fix BEFORE auditor sees them. Document the corrections in `ENGAGEMENT.md`.
170
+ If any analysis surfaces issues, fix BEFORE the auditor sees them. Document the corrections.
175
171
 
176
172
  ## Step 11 — Reconciliation checklist
177
173
 
@@ -188,7 +184,7 @@ Before pack hand-off, assert each row:
188
184
  | Revenue | step 3 P&L | step 9 VAT ledger Box 1+2+3 totals |
189
185
  | GST Receivable / Payable | step 9 VAT ledger | TB GST Control account |
190
186
 
191
- Any mismatch beyond `CLIENT.materiality_threshold` halts the pack and routes back to the originating job.
187
+ Any mismatch beyond the materiality threshold halts the pack and routes back to the originating job.
192
188
 
193
189
  ## Step 12 — Completeness gates (final)
194
190
 
@@ -209,13 +205,13 @@ This prevents backdated entries during fieldwork. If the auditor needs to post A
209
205
 
210
206
  ## Step 13 — Hand-off to statutory filing
211
207
 
212
- The pack is now ready. Cross-reference to `practice/references/annual-statutory.md` step 6-7 (statutory filing) which consumes:
208
+ The pack is now ready. The SG Form C-S statutory filing (see the SG Form C-S section in `SKILL.md`) consumes:
213
209
  - TB + P&L + BS for Form C-S Lite eligibility check (revenue ≤ S$200K)
214
210
  - Audit-analyses for management-letter content
215
211
  - Loan / lease / FA schedules for tax computation add-backs
216
212
  - VAT ledger annual reconciliation for IRAS Box 1-7 cross-tie
217
213
 
218
- The SG Form C-S wizard (`practice/references/annual-statutory.md` step 7) walks the practitioner field-by-field through the C-S form, prefilling from the audit-prep pack.
214
+ The SG Form C-S wizard walks the user field-by-field through the C-S form, prefilling from the audit-prep pack and running the computation via `clio jobs statutory-filing sg-cs`.
219
215
 
220
216
  ---
221
217
 
@@ -230,7 +226,7 @@ The SG Form C-S wizard (`practice/references/annual-statutory.md` step 7) walks
230
226
  | `update_account` | 422 `lock_date_in_future` | The CoA `lockDate` must be ≤ `period_end`. Use today if unsure. |
231
227
  | Reconciliation | TB AR ≠ AR aging | Likely a mid-period credit-note application missed. `search_customer_credit_notes(filter: {valueDate: {between: ...}})` and verify each was applied via `apply_credit_to_invoice`. |
232
228
  | Reconciliation | TB Cash ≠ bank balance summary | Unposted bank journal or unreconciled item. Re-run step 7. |
233
- | Step 12 gate | Drafts present at year-end | Either clear (finalize) or document in `ENGAGEMENT.risk_areas`. NEVER hand pack with drafts in the audit period. |
229
+ | Step 12 gate | Drafts present at year-end | Either clear (finalize) or document the residuals and surface to the user. NEVER hand the pack over with drafts in the audit period. |
234
230
 
235
231
  ---
236
232
 
@@ -244,8 +240,9 @@ The SG Form C-S wizard (`practice/references/annual-statutory.md` step 7) walks
244
240
 
245
241
  ---
246
242
 
247
- ## Cross-references back to engagements
243
+ ## Cross-references
248
244
 
249
- - `practice/references/annual-statutory.md` step 5 — audit-prep is the bridge between `year-end-close` and `statutory-filing` engagement steps. Practice playbook orchestrates audit-prep deliverables into the Form C-S wizard.
250
- - `practice/references/quarterly-gst.md` — keeps per-quarter F5 reconciliations clean; audit-prep step 9 trusts those.
251
- - `practice/references/onboarding.md` — only relevant when conversion happened mid-FY (rare). Then the audit pack must include a "conversion period" note explaining the mid-FY data load.
245
+ - `year-end-close.md` must complete first; audit-prep assumes the books are closed.
246
+ - SG Form C-S statutory filing (see the SG Form C-S section in `SKILL.md`)audit-prep is the bridge into it; the deliverables prefill the Form C-S wizard.
247
+ - `gst-vat-filing.md` — keeps per-quarter F5 reconciliations clean; audit-prep step 9 trusts those.
248
+ - `jaz-conversion` skill — when a conversion happened mid-FY (rare), the audit pack must include a "conversion period" note explaining the mid-FY data load.
@@ -1,11 +1,10 @@
1
1
  # Bank Reconciliation
2
2
 
3
- > Clear unreconciled bank statement entries by matching, creating, or flagging. Highest-leverage book-accuracy job in Jaz — clean cash means everything else has a fighting chance. Driver tool: `generate_bank_recon_blueprint`.
3
+ > Clear unreconciled bank statement entries by matching, creating, or flagging. Highest-leverage book-accuracy job in Jaz — clean cash means everything else has a fighting chance. Walk the steps below in order, calling the named platform tools directly. (Local CLI convenience: `clio jobs bank-recon` prints this same phased checklist.)
4
4
 
5
5
  ## Tools, recipes, calculators this job uses
6
6
 
7
- ### MCP tools — discovery + auto-match
8
- - **`generate_bank_recon_blueprint(period: <YYYY-MM>, currency: <base>)`** — step 0: emit phased recon checklist.
7
+ ### Platform tools — discovery + auto-match
9
8
  - **`list_bank_accounts()`** — step 1: pull all bank-type CoA accounts (per `jaz-api/SKILL.md` rule 18: GET `/bank-accounts` returns flat array `[{...}]`, NOT the standard paginated `{ data, totalElements, totalPages }` shape — normalize before consuming).
10
9
  - **`search_accounts(filter: {accountType: {eq: 'Bank Accounts'}})`** — step 1 alternative: same data via standard CoA-search envelope if downstream wants pagination.
11
10
  - **`search_bank_records(accountResourceId: <id>, status: 'UNRECONCILED', valueDateRange: {from, to}, limit: 200, sort: 'valueDate:asc')`** — step 2: per-account work queue.
@@ -13,7 +12,7 @@
13
12
  - **`view_auto_reconciliation(bankAccountResourceId: <id>, recommendationType: 'MAGIC_MATCH' | 'MAGIC_RECONCILE_WITH_CASH_TRANSFER' | 'MAGIC_RECONCILE_WITH_BANK_RULE' | 'MAGIC_QUICK_RECONCILE' | 'MAGIC_RECONCILE_WITH_CASH_IN_OUT', autoCommitMaxAmount?: <number>)`** — step 4: READ-ONLY auto-match suggestions. Returns **execution-ready `suggestions[]`** — each carries `recommendedTool`, `execute` (ready-to-pass args), `confidenceTier`, and `autoCommitEligible`. This is the entry point for the auto-match decision gate (step 4a). `MAGIC_RECONCILE_WITH_CASH_IN_OUT` returns Learned-Predictions. Does NOT write. NOTE: 500 quirk on high-volume accounts → degrades to `{degraded:true}`; scope by period or fall back to the cascade matcher (see error table).
14
13
  - **`search_cashflow_transactions(filter: {organizationAccountResourceId: <bank-id>, totalAmount: {eq: <amt>}, valueDate: {between: [<-3d>, <+3d>]}})`** — step 5 manual match: search book-side transactions for the same amount within ±3 day window.
15
14
 
16
- ### MCP tools — execute reconciliation (NOT idempotent — see error table)
15
+ ### Platform tools — execute reconciliation (NOT idempotent — see error table)
17
16
  **Match to EXISTING (preferred — no duplicates):**
18
17
  - **`reconcile_with_payments(bankStatementEntryResourceId, businessTransactionPayments: [{cashflowTransactionResourceId, transactionAmount}], matchedPayments?, matchedBatchPayments?, adjustment?)`** — **the primary match path.** Match a bank entry to an EXISTING open bill/invoice/payment; creates the payment AND reconciles in one call (no `pay_bill`/`pay_invoice` first). FX auto-resolved server-side — pass no rate. Sync.
19
18
  - **`reconcile_magic_match(bankAccountResourceId, entries: [{workflowType:'MAGIC_MATCH', bankStatementEntryResourceId, matchedBusinessTransactions}])`** — bulk-accept MAGIC_MATCH suggestions (max 500). Returns `{reconciled[], failed[]}` — a non-empty `failed[]` is a partial success; loop on it.
@@ -29,12 +28,12 @@
29
28
  - **`reconcile_manual_journal(...)`** — bank entry to a manual journal.
30
29
  - **`reconcile_cash_transfer(...)`** — inter-account transfer.
31
30
 
32
- ### MCP tools — create missing transactions
31
+ ### Platform tools — create missing transactions
33
32
  - **`mcp magic create --file <pdf>` / `create_business_transaction_from_attachment(...)`** — step 6 path B: OCR + autofill bill or invoice from receipt PDF/JPG.
34
33
  - **`create_cash_in_entry(...)` / `create_cash_out_entry(...)`** — step 6 path C: bank fees, interest, FX charges that have no source document.
35
34
  - **`create_bank_rule(...)`** — preventive: build a rule for any recurring pattern you handled this run (subscription, rent, utility) so it auto-applies next time.
36
35
 
37
- ### MCP tools — verification
36
+ ### Platform tools — verification
38
37
  - **`generate_bank_recon_summary(period_end, accountResourceId)`** — step 7: per-account formal recon statement.
39
38
  - **`generate_bank_recon_details(period_end, accountResourceId)`** — step 7: line-level recon detail for audit pack.
40
39
  - **`generate_bank_balance_summary(period_end)`** — step 8: book balance vs bank statement balance per account.
@@ -43,17 +42,15 @@
43
42
  - **`clio jobs bank-recon match --input <records.json> --tolerance 0.01 --date-window 14 --max-group 5 --json`** — the 5-phase cascade matcher (Phase 1 exact 1:1 hash join, Phase 2 fuzzy 1:1 greedy with weighted scoring, Phase 3 N:1, Phase 4 1:N, Phase 5 N:M). Returns matches sorted by confidence — feed each into the appropriate `reconcile_*` tool. See `bank-match.md` for the full algorithm.
44
43
 
45
44
  ### Cross-references
46
- - Within an engagement: invoked from `practice/references/monthly-close.md` step 3 (mandatory pre-close gate). Practice playbook reads `CLIENT.bank_accounts[]` for the per-account loop.
47
- - Sibling job: `bank-match.md` (the cascade matcher algorithm + scoring weights). Practitioner-facing recon step always invokes `bank-match` for any account with > ~10 unreconciled items.
45
+ - Invoked by `month-end-close.md` step 3 (mandatory pre-close gate) loop over each of the org's bank accounts.
46
+ - Sibling job: `bank-match.md` (the cascade matcher algorithm + scoring weights). Always run the cascade matcher for any account with > ~10 unreconciled items.
48
47
  - API rules: `jaz-api/SKILL.md` rules 18 (bank-accounts envelope), 26 (cash entries `accountResourceId` shape), 50a (search query DSL), 124 (recon NOT idempotent).
49
48
 
50
49
  ---
51
50
 
52
- ## Step 0 — Emit blueprint
51
+ ## Steps
53
52
 
54
- ```
55
- generate_bank_recon_blueprint(period: '2025-01', currency: <CLIENT.base_currency>)
56
- ```
53
+ Walk steps 1-8 below. (Local CLI: `clio jobs bank-recon --period 2025-01` prints the same phased checklist.)
57
54
 
58
55
  ## Step 1 — Discover bank accounts
59
56
 
@@ -93,7 +90,7 @@ For accounts with > ~10 unreconciled rows, use the cascade matcher first:
93
90
 
94
91
  ```
95
92
  clio jobs bank-recon match \
96
- --input recurring/monthly/<period>/bank-records-<account-name>.json \
93
+ --input <bank-records-for-account>.json \
97
94
  --tolerance 0.01 \
98
95
  --date-window 14 \
99
96
  --max-group 5 \
@@ -199,7 +196,7 @@ create_bank_rule(
199
196
  ```
200
197
  Next month's same charge auto-reconciles via `apply_bank_rule`.
201
198
 
202
- **Path D — flag for investigation:** if no match and no source document, surface to practitioner with the `extContactName + description` and the `netAmount`. Common: personal transactions, refunds, intercompany unrecorded, bank-feed errors. Document in `ENGAGEMENT.risk_areas`.
199
+ **Path D — flag for investigation:** if no match and no source document, surface to the user with the `extContactName + description` and the `netAmount`. Common: personal transactions, refunds, intercompany unrecorded, bank-feed errors. Record the unresolved item so it carries forward.
203
200
 
204
201
  ## Step 7 — Verify per account
205
202
 
@@ -214,7 +211,7 @@ generate_bank_recon_summary(period_end: '2025-01-31', accountResourceId: B.resou
214
211
  generate_bank_recon_details(period_end: '2025-01-31', accountResourceId: B.resourceId)
215
212
  ```
216
213
 
217
- Save both to `recurring/monthly/<period>/bank-recon-<account-name>.{json,details.json}`. Audit-prep step 7 will require these files.
214
+ Keep both the summary and the line-level detail per account — audit-prep step 7 will require them.
218
215
 
219
216
  ## Step 8 — Cross-account verify
220
217
 
@@ -243,7 +240,7 @@ Per account: `bookBalance == bankStatementBalance ± documentedTimingDifference`
243
240
  | `reconcile_invoice_receipt` | 422 `amount_mismatch` | Bank amount ≠ invoice balance. Either partial payment (post via `create_invoice_payment` with partial amount, then reconcile), or wrong match (revisit step 4/5). |
244
241
  | `apply_bank_rule` | 422 `rule_action_unsupported` | Rule's configured action doesn't match the bank entry shape (e.g., rule expects positive amount, entry is negative). Edit the rule via `update_bank_rule`. |
245
242
  | `create_cash_out_entry` | 422 `lock_date_violated` | `valueDate` in locked period. Lift lock via `update_account` lockDate, post, re-lock. |
246
- | Step 7 `unreconciledCount > 0` after step 6 | (residual misses) | Surface to practitioner with categorized residual ("3 bank charges to expense via path C, 1 unidentified deposit pending client query"). Document in `ENGAGEMENT.risk_areas`. Do NOT progress to monthly-close step 4 with open items. |
243
+ | Step 7 `unreconciledCount > 0` after step 6 | (residual misses) | Surface to the user with categorized residual ("3 bank charges to expense via path C, 1 unidentified deposit pending client query"). Record the residuals. Do NOT progress the month-end close with open items. |
247
244
 
248
245
  ---
249
246
 
@@ -256,8 +253,9 @@ Per account: `bookBalance == bankStatementBalance ± documentedTimingDifference`
256
253
 
257
254
  ---
258
255
 
259
- ## Cross-references back to engagements
256
+ ## Cross-references
260
257
 
261
- - `practice/references/monthly-close.md` step 3 — invoked for every bank account in `CLIENT.bank_accounts[]`. Practice playbook owns the per-account orchestration.
262
- - `practice/references/quarterly-gst.md` step 3 — same recon job, scoped to the quarter; F5 Box-1 cash receipts must reconcile against bank cash-in totals.
263
- - `practice/references/annual-statutory.md` step 3 — final pre-FYE recon. Output feeds into `audit-prep.md` step 7 (NON-NEGOTIABLE deliverable: `unreconciledCount == 0` per account).
258
+ - `month-end-close.md` step 3 — invoked for every bank account as a mandatory pre-close gate.
259
+ - `quarter-end-close.md` — same recon job scoped to the quarter; F5 Box-1 cash receipts must reconcile against bank cash-in totals.
260
+ - `audit-prep.md` step 7the final pre-FYE recon output feeds the audit pack (NON-NEGOTIABLE deliverable: `unreconciledCount == 0` per account).
261
+ - `bank-match.md` — the cascade matcher algorithm.