jaz-clio 5.4.18 → 5.4.22
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.
- package/README.md +1 -1
- package/assets/skills/api/SKILL.md +1 -1
- package/assets/skills/cli/SKILL.md +1 -1
- package/assets/skills/conversion/SKILL.md +1 -1
- package/assets/skills/jobs/SKILL.md +1 -1
- package/assets/skills/jobs/references/audit-prep.md +2 -2
- package/assets/skills/jobs/references/fa-review.md +3 -2
- package/assets/skills/jobs/references/month-end-close.md +4 -4
- package/assets/skills/jobs/references/quarter-end-close.md +2 -2
- package/assets/skills/jobs/references/year-end-close.md +2 -1
- package/assets/skills/practice/SKILL.md +7 -1
- package/assets/skills/transaction-recipes/SKILL.md +2 -2
- package/assets/skills/transaction-recipes/references/accrued-expenses.md +2 -1
- package/assets/skills/transaction-recipes/references/bad-debt-provision.md +1 -0
- package/assets/skills/transaction-recipes/references/bank-loan.md +2 -1
- package/assets/skills/transaction-recipes/references/building-blocks.md +21 -12
- package/assets/skills/transaction-recipes/references/declining-balance.md +1 -1
- package/assets/skills/transaction-recipes/references/deferred-revenue.md +2 -1
- package/assets/skills/transaction-recipes/references/dividend.md +1 -0
- package/assets/skills/transaction-recipes/references/employee-accruals.md +3 -1
- package/assets/skills/transaction-recipes/references/fixed-deposit.md +1 -1
- package/assets/skills/transaction-recipes/references/ifrs16-lease.md +2 -1
- package/assets/skills/transaction-recipes/references/prepaid-amortization.md +1 -0
- package/assets/skills/transaction-recipes/references/provisions.md +2 -1
- package/cli.mjs +203 -197
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -54,7 +54,7 @@ clio practice create-engagement acme-pte-ltd --type monthly-close --period 2026-
|
|
|
54
54
|
|
|
55
55
|
## MCP Server
|
|
56
56
|
|
|
57
|
-
|
|
57
|
+
275 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.
|
|
58
58
|
|
|
59
59
|
**Claude Code:**
|
|
60
60
|
```bash
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
- **`search_journals(filter: {status: {eq: 'DRAFT'}, valueDate: {between: [<FY-start>, <FY-end>]}})`** — step 12: must return zero rows before pack hand-off.
|
|
28
28
|
- **`search_invoices(filter: {status: {eq: 'DRAFT'}, valueDate: {between: [<FY-start>, <FY-end>]}})`** — step 12: same gate, sales side.
|
|
29
29
|
- **`search_bills(filter: {status: {eq: 'DRAFT'}, valueDate: {between: [<FY-start>, <FY-end>]}})`** — step 12: same gate, purchases side.
|
|
30
|
-
- **`
|
|
30
|
+
- **`bulk_update_journals(items: [{resourceId: <id>, saveAsDraft: false}, ...])`** — step 12 fallback: clear residual drafts before pack hand-off.
|
|
31
31
|
- **`update_account(resourceId: <CoA root>, lockDate: <FY-end>)`** — step 12 final: lock the period to prevent backdated entries during fieldwork.
|
|
32
32
|
|
|
33
33
|
### Calculators (cross-check schedules — no API key needed)
|
|
@@ -198,7 +198,7 @@ search_invoices(filter: {status: {eq: 'DRAFT'}, valueDate: {between: ['2025-01-0
|
|
|
198
198
|
search_bills(filter: {status: {eq: 'DRAFT'}, valueDate: {between: ['2025-01-01', '2025-12-31']}})
|
|
199
199
|
```
|
|
200
200
|
|
|
201
|
-
ALL three must return zero. If any return rows: collect `resourceId`s, classify (delete vs finalize) per practitioner judgment, and `
|
|
201
|
+
ALL three must return zero. If any return rows: collect `resourceId`s, classify (delete vs finalize) per practitioner judgment, and `bulk_update_journals(items: [{resourceId, saveAsDraft: false}, ...]) for journals; bulk_finalize_drafts(items: [{type, resourceId}, ...]) for invoices/bills/CN` for the keep-set.
|
|
202
202
|
|
|
203
203
|
Then lock the period:
|
|
204
204
|
```
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
- **`generate_general_ledger(accountResourceId: <FA category GL>, period_start, period_end)`** — step 4: per-FA-category GL movement vs FA register.
|
|
14
14
|
- **`update_fixed_asset(resourceId: <id>, status: 'DISPOSED' | 'WRITTEN_OFF', disposalDate, disposalProceeds)`** — step 5: status updates for disposals. Mirror endpoints `POST /api/v1/mark-as-sold/fixed-assets` (sale) / `POST /api/v1/discard-fixed-assets/{id}` (scrap).
|
|
15
15
|
- **`plan_recipe(recipe: 'asset-disposal', ...)` + `execute_recipe(...)`** — step 5: invoke per disposal identified during review (per `asset-disposal.md` recipe).
|
|
16
|
-
- **`
|
|
16
|
+
- **`bulk_update_journals(items: [{resourceId: <id>, saveAsDraft: false}, ...])`** — step 5 / 6: finalize disposal journals + any pending DDB / 150DB depreciation DRAFTs from `declining-balance.md` recipe.
|
|
17
17
|
|
|
18
18
|
### Calculators (cross-check, no API key needed)
|
|
19
19
|
- **`clio calc depreciation --cost --salvage --life --method --frequency annual --json`** — step 4 per-asset cross-check.
|
|
@@ -72,7 +72,7 @@ For each ACTIVE SL asset (Jaz auto-depreciates):
|
|
|
72
72
|
|
|
73
73
|
For each ACTIVE DDB / 150DB asset (recipe-managed, see `declining-balance.md`):
|
|
74
74
|
- Per capsule: `search_journals(filter: {capsuleResourceId: {eq: <dep capsule>}, valueDate: {between: [<year-start>, <year-end>]}, status: 'DRAFT'})`. Should be zero — all 12 months' DRAFT depreciation journals should already be FINALIZED via monthly-close.
|
|
75
|
-
- If non-zero: `
|
|
75
|
+
- If non-zero: `bulk_update_journals(items: [{resourceId: <id>, saveAsDraft: false}, ...])` for each remaining DRAFT.
|
|
76
76
|
|
|
77
77
|
Cross-check via `clio calc depreciation --frequency annual --json` per asset; auditor will sample-test.
|
|
78
78
|
|
|
@@ -82,6 +82,7 @@ For each disposal identified in step 2:
|
|
|
82
82
|
|
|
83
83
|
```
|
|
84
84
|
plan_recipe(
|
|
85
|
+
// Note: gl*, capsuleType, capsuleName, bankAccountResourceId, vendor, customer below are illustrative — auto-resolved at execute time from CoA / CLIENT.md, not real plan_recipe params.
|
|
85
86
|
recipe: 'asset-disposal',
|
|
86
87
|
cost, salvageValue, usefulLifeYears, acquisitionDate, disposalDate, proceeds, method,
|
|
87
88
|
...,
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
- **`generate_profit_and_loss(period_start, period_end)`** — step 15.
|
|
31
31
|
- **`generate_balance_sheet(period_end)`** — step 16.
|
|
32
32
|
- **`search_journals(filter: {status: 'DRAFT', valueDate: {between: [<period-start>, <period-end>]}})`** — step 17: gate on zero drafts.
|
|
33
|
-
- **`
|
|
33
|
+
- **`bulk_update_journals(items: [{resourceId: <id>, saveAsDraft: false}, ...])`** — step 17: clear residual drafts before lock.
|
|
34
34
|
- **`update_account(resourceId: <CoA root>, lockDate: <period-end>)`** — step 18: lock the period.
|
|
35
35
|
|
|
36
36
|
### Calculators (cross-check, no API key needed)
|
|
@@ -107,7 +107,7 @@ For each `CLIENT.recurring_accruals[]` where `last_posted < '2025-01-31'`:
|
|
|
107
107
|
4. Resolve `requiredAccounts` + `needsContact` (search/create as needed).
|
|
108
108
|
5. `execute_recipe(...)`. Engine emits dual-entry accrual + reversal scheduler.
|
|
109
109
|
6. `validate_journal_draft(resourceId: <id>)` for each draft journal.
|
|
110
|
-
7. After all accruals processed: `
|
|
110
|
+
7. After all accruals processed: `bulk_update_journals(items: [{resourceId: <id>, saveAsDraft: false}, ...])`.
|
|
111
111
|
|
|
112
112
|
Cross-check: `generate_trial_balance(period_end: '2025-01-31')`. Sum credit movements against accrual liability accounts. Verify `|sum - expected| ≤ CLIENT.materiality_threshold`.
|
|
113
113
|
|
|
@@ -117,7 +117,7 @@ For each existing `Prepaid Expenses` capsule (via `search_capsules(filter: {caps
|
|
|
117
117
|
|
|
118
118
|
1. `search_journals(filter: {capsuleResourceId: {eq: <capsule.id>}, valueDate: {between: ['2025-01-01', '2025-01-31']}, status: {eq: 'DRAFT'}})`. The recipe pre-emitted this period's recognition journal as DRAFT at recipe-execution time.
|
|
119
119
|
2. If empty: either the recipe was set up wrong (no journal for this period — investigate via `search_journals` without status filter to see if it's already ACTIVE, then skip), OR the practitioner went off-recipe. Surface to practitioner.
|
|
120
|
-
3. If found: collect resourceIds, then `
|
|
120
|
+
3. If found: collect resourceIds, then `bulk_update_journals(items: [{resourceId: <id>, saveAsDraft: false}, ...])`.
|
|
121
121
|
4. New prepaid setups during this period (a new prepaid started this month): invoke `plan_recipe(recipe: 'prepaid-expense', ...)` per `prepaid-amortization.md` — this creates the bill + N future-dated DRAFT journals; the current period's journal is then in the bulk_finalize_drafts queue above.
|
|
122
122
|
|
|
123
123
|
### Step 8 — Deferred revenue recognition
|
|
@@ -148,7 +148,7 @@ For each active loan capsule (via `search_capsules(filter: {capsuleType: {eq: 'L
|
|
|
148
148
|
|
|
149
149
|
1. `search_journals(filter: {capsuleResourceId: {eq: <loan-capsule-id>}, valueDate: {between: ['2025-01-01', '2025-01-31']}, status: {eq: 'DRAFT'}})`. The `loan` recipe pre-emitted all `termMonths` future-dated DRAFT journals at execution time — this period's repayment is one of them.
|
|
150
150
|
2. Should return exactly one DRAFT journal per active loan. Each is a 3-line entry (debit Loan Payable, debit Interest Expense, credit Cash) with the correct amortization split for the period.
|
|
151
|
-
3. Collect resourceIds, then `
|
|
151
|
+
3. Collect resourceIds, then `bulk_update_journals(items: [{resourceId: <id>, saveAsDraft: false}, ...])`.
|
|
152
152
|
4. Do NOT post manual loan-interest accruals — the recipe already emitted the journal with the correct split per `clio calc loan` schedule.
|
|
153
153
|
|
|
154
154
|
If a loan was newly disbursed this period: invoke `plan_recipe(recipe: 'loan', ...)` then `execute_recipe`; the disbursement (cash-in) and this period's repayment journal are both included in the engine output.
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
- **`search_journals(filter: {tag: 'bonus-accrual', valueDate: {between: [<Q-start>, <Q-end>]}})`** — Q3 bonus YTD pull.
|
|
16
16
|
- **`create_journal(...)`** — Q3 bonus true-up adjustment (manual one-off).
|
|
17
17
|
- **`search_capsules(filter: {capsuleType: {eq: 'Intercompany'}})`** — Q4 IC reconciliation per pair of entities (multi-org coordination — see `intercompany.md` recipe).
|
|
18
|
-
- **`search_capsules(filter: {capsuleType: {eq: 'Provisions'}})` + `
|
|
18
|
+
- **`search_capsules(filter: {capsuleType: {eq: 'Provisions'}})` + `bulk_update_journals(items: [{resourceId: <id>, saveAsDraft: false}, ...])`** — Q5 finalize each provision capsule's quarter-end DRAFT unwinding journals.
|
|
19
19
|
- **`generate_trial_balance(period_end: <Q-end>)`** — verification.
|
|
20
20
|
- **`update_account(resourceId: <CoA root>, lockDate: <Q-end>)`** — final lock.
|
|
21
21
|
|
|
@@ -121,7 +121,7 @@ Per capsule: this period's quarter-end unwinding DRAFT journals (3 monthly DRAFT
|
|
|
121
121
|
|
|
122
122
|
```
|
|
123
123
|
search_journals(filter: {capsuleResourceId: {eq: <provision capsule id>}, valueDate: {between: ['2025-01-01', '2025-03-31']}, status: {eq: 'DRAFT'}})
|
|
124
|
-
|
|
124
|
+
bulk_update_journals(items: [{resourceId: <id>, saveAsDraft: false}, ...])
|
|
125
125
|
```
|
|
126
126
|
|
|
127
127
|
If practitioner determines remeasurement is needed (cash-flow estimate changed, discount rate moved): see `provisions.md` step 6 — recompute, post adjustment, reverse remaining DRAFT unwinding journals, re-execute recipe with new inputs.
|
|
@@ -109,6 +109,7 @@ If `CLIENT.dividend_policy.declared_for_FY > 0`:
|
|
|
109
109
|
|
|
110
110
|
```
|
|
111
111
|
plan_recipe(
|
|
112
|
+
// Note: gl*, capsuleType, capsuleName, bankAccountResourceId, vendor, customer below are illustrative — auto-resolved at execute time from CoA / CLIENT.md, not real plan_recipe params.
|
|
112
113
|
recipe: 'dividend',
|
|
113
114
|
amount: <gross-dividend>,
|
|
114
115
|
withholdingRate: <CLIENT.dividend_policy.withholding_rate>,
|
|
@@ -194,7 +195,7 @@ search_invoices(filter: {status: {eq: 'DRAFT'}, valueDate: {between: ['2025-01-0
|
|
|
194
195
|
search_bills(filter: {status: {eq: 'DRAFT'}, valueDate: {between: ['2025-01-01', '2025-12-31']}})
|
|
195
196
|
```
|
|
196
197
|
|
|
197
|
-
ALL three must return zero. If any: `
|
|
198
|
+
ALL three must return zero. If any: `bulk_update_journals(items: [{resourceId, saveAsDraft: false}, ...]) for journals; bulk_finalize_drafts(items: [{type, resourceId}, ...]) for invoices/bills/CN` for the keep-set; `delete_*` for the discards.
|
|
198
199
|
|
|
199
200
|
### Y8 — Lock the year
|
|
200
201
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: jaz-practice
|
|
3
|
-
version: 5.4.
|
|
3
|
+
version: 5.4.22
|
|
4
4
|
description: >-
|
|
5
5
|
Use this skill whenever an accounting practitioner is doing client work in
|
|
6
6
|
Jaz — closing the books, filing GST, year-end statutory, onboarding a new
|
|
@@ -25,6 +25,12 @@ compatibility:
|
|
|
25
25
|
|
|
26
26
|
Practitioner-side scaffolding. The agent's entry point when an accountant is doing client work in Jaz.
|
|
27
27
|
|
|
28
|
+
## When to Use This Skill
|
|
29
|
+
|
|
30
|
+
Load `jaz-practice` when the user's intent is practitioner-shaped — closing the books, filing GST/VAT, year-end statutory, onboarding a new client, mid-quarter review for a specific client. The skill's job is to LOAD CONTEXT (CLIENT.md + ENGAGEMENT.md) before routing the actual accounting work to `jaz-jobs` (close playbooks), `jaz-recipes` (IFRS recipes), `jaz-conversion` (data migration), or `jaz-api` (raw endpoints).
|
|
31
|
+
|
|
32
|
+
Trigger phrases: "close the books for X", "file GST for Y", "onboard new client Z", "what's outstanding for Acme this month", "Acme — quarterly close", "year-end statutory for X". When in doubt: if the user names a client or an engagement-type ("monthly close", "GST", "year-end"), load this skill first.
|
|
33
|
+
|
|
28
34
|
## Mental model
|
|
29
35
|
|
|
30
36
|
| Engineer (cct-toolkit) | Practitioner (jaz-practice) |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: jaz-recipes
|
|
3
|
-
version: 5.4.
|
|
3
|
+
version: 5.4.22
|
|
4
4
|
description: >-
|
|
5
5
|
Use this skill when modeling complex multi-step accounting transactions —
|
|
6
6
|
anything that spans multiple periods, involves changing amounts, or requires
|
|
@@ -278,7 +278,7 @@ Both tools accept all 13 recipe types: loan, lease, depreciation, prepaid-expens
|
|
|
278
278
|
|
|
279
279
|
Scheduler creation tools are also available: `create_scheduled_journal`, `create_scheduled_invoice`, `create_scheduled_bill`.
|
|
280
280
|
|
|
281
|
-
##
|
|
281
|
+
## See Also
|
|
282
282
|
|
|
283
283
|
- **API field names and payloads**: Load the `jaz-api` skill — see `references/endpoints.md` and `references/field-map.md`
|
|
284
284
|
- **Capsule API**: `POST /capsules`, `POST /capsuleTypes` — see api skill's `references/full-api-surface.md`
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
- **`search_contacts(filter: {name: {eq: <vendor>}})`** — step 3: resolve vendor (per `CLIENT.recurring_accruals[i].vendor`).
|
|
18
18
|
- **`search_accounts(filter: {name: {in: ['<expense GL>', '<accrued liability GL>']}})`** — step 3: confirm both sides of the journal exist in CoA.
|
|
19
19
|
- **`search_journals(filter: {capsuleResourceId: {eq: <id>}, valueDate: {between: [<period-start>, <period-end>]}, status: 'DRAFT'})`** — step 5 monthly: find this period's pre-emitted DRAFT for finalization.
|
|
20
|
-
- **`
|
|
20
|
+
- **`bulk_update_journals(items: [{resourceId: <id>, saveAsDraft: false}, ...])`** — step 5: finalize this period's accrual + reversal pair.
|
|
21
21
|
- **`generate_trial_balance(period_end: <date>)`** — step 5 verification: confirm Accrued Expenses balance and net P&L impact.
|
|
22
22
|
|
|
23
23
|
### Cross-references
|
|
@@ -50,6 +50,7 @@ Returns `{ totalAccrued: 3000, schedule: [{accrualDate: '2025-01-31', reversalDa
|
|
|
50
50
|
|
|
51
51
|
```
|
|
52
52
|
plan_recipe(
|
|
53
|
+
// Note: gl*, capsuleType, capsuleName, bankAccountResourceId, vendor, customer below are illustrative — auto-resolved at execute time from CoA / CLIENT.md, not real plan_recipe params.
|
|
53
54
|
recipe: 'accrued-expense',
|
|
54
55
|
amount: 3000,
|
|
55
56
|
periods: 1,
|
|
@@ -77,6 +77,7 @@ If `topUpRequired` is below `CLIENT.materiality_threshold`: skip the recipe enti
|
|
|
77
77
|
|
|
78
78
|
```
|
|
79
79
|
plan_recipe(
|
|
80
|
+
// Note: gl*, capsuleType, capsuleName, bankAccountResourceId, vendor, customer below are illustrative — auto-resolved at execute time from CoA / CLIENT.md, not real plan_recipe params.
|
|
80
81
|
recipe: 'ecl',
|
|
81
82
|
receivables: [
|
|
82
83
|
{bucket: 'current', balance: 100000, lossRate: 0.005},
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
- **`search_accounts(filter: {name: {in: ['Loan Payable', 'Interest Expense']}})`** — used in step 3: confirm liability + expense GL accounts exist.
|
|
17
17
|
- **`search_capsules(filter: {capsuleType: {eq: 'Loan Repayment'}, name: {eq: <capsuleName>}})`** — used in step 0: detect duplicate setup before re-running. Loan capsules are unique per facility — duplicate creation is almost always an agent error.
|
|
18
18
|
- **`generate_trial_balance(period_end: <date>)`** — used in step 5: verify the loan liability balance matches the schedule's `closingBalance` column.
|
|
19
|
-
- **`update_journal(resourceId: <id>, saveAsDraft: false)`** — used in step 4 verification: lift draft journals to ACTIVE once practitioner confirms.
|
|
19
|
+
- **`update_journal(resourceId: <id>, saveAsDraft: false)`** — used in step 4 verification: lift draft journals to ACTIVE once practitioner confirms.
|
|
20
20
|
|
|
21
21
|
### Cross-references
|
|
22
22
|
- Within an engagement: invoked from `practice/references/onboarding.md` (when the prior firm's loan transfers in via the conversion clearing account, then forward-recognition starts here) and from `practice/references/monthly-close.md` step 4 (monthly accruals do NOT include loan interest — interest is auto-emitted by the loan scheduler).
|
|
@@ -47,6 +47,7 @@ Returns: `{ perPeriodAmount: 1933.28, totalInterest: 15996.80, schedule: [{perio
|
|
|
47
47
|
|
|
48
48
|
```
|
|
49
49
|
plan_recipe(
|
|
50
|
+
// Note: gl*, capsuleType, capsuleName, bankAccountResourceId, vendor, customer below are illustrative — auto-resolved at execute time from CoA / CLIENT.md, not real plan_recipe params.
|
|
50
51
|
recipe: 'loan',
|
|
51
52
|
principal: 100000,
|
|
52
53
|
annualRate: 6,
|
|
@@ -135,21 +135,30 @@ The recipe engine creates one capsule per `execute_recipe` call. The pattern:
|
|
|
135
135
|
- All bill / invoice / journal / cash entries the recipe creates get the new capsule's resourceId
|
|
136
136
|
- Manual journal recipes (intercompany, capital-wip) follow the same pattern but you create the capsule + assign journals manually
|
|
137
137
|
|
|
138
|
-
**Capsule Types** are labels that categorize capsules.
|
|
139
|
-
|
|
140
|
-
-
|
|
141
|
-
- Accrued Expenses
|
|
142
|
-
-
|
|
143
|
-
-
|
|
144
|
-
- Depreciation (
|
|
145
|
-
-
|
|
146
|
-
- ECL Provision
|
|
147
|
-
- Employee Benefits
|
|
148
|
-
-
|
|
149
|
-
-
|
|
138
|
+
**Capsule Types** are labels that categorize capsules. Pass these exact strings — the engine and `search_capsules` filter rely on character-for-character match.
|
|
139
|
+
|
|
140
|
+
Engine-emitted (canonical strings — match exactly):
|
|
141
|
+
- Accrued Expenses (accrued-expense recipe)
|
|
142
|
+
- Asset Disposal (asset-disposal recipe)
|
|
143
|
+
- Deferred Revenue (deferred-revenue recipe)
|
|
144
|
+
- Depreciation (depreciation recipe — covers SL, DDB, 150DB)
|
|
145
|
+
- Dividends (dividend recipe)
|
|
146
|
+
- ECL Provision (ecl recipe)
|
|
147
|
+
- Employee Benefits (leave-accrual recipe)
|
|
148
|
+
- Fixed Deposit (fixed-deposit recipe)
|
|
149
|
+
- FX Revaluation (fx-reval recipe — verification only, do not execute_recipe)
|
|
150
|
+
- Hire Purchase (lease recipe with `usefulLifeMonths > termMonths`)
|
|
151
|
+
- Lease Accounting (lease recipe — IFRS 16)
|
|
152
|
+
- Loan Repayment (loan recipe)
|
|
153
|
+
- Prepaid Expenses (prepaid-expense recipe)
|
|
154
|
+
- Provisions (provision recipe)
|
|
155
|
+
|
|
156
|
+
Practitioner-created (manual `create_capsule(capsuleType: 'X')` — no engine):
|
|
150
157
|
- Intercompany
|
|
151
158
|
- Capital Projects
|
|
152
159
|
|
|
160
|
+
> **Naming drift to watch for:** the file `accrued-expenses.md` (plural) covers the engine recipe `'accrued-expense'` (singular) which emits the capsule type `'Accrued Expenses'` (plural). Same content; the recipe name follows the engine convention while the file + capsule type follow the accounting convention. Pass capsule type strings exactly as listed above.
|
|
161
|
+
|
|
153
162
|
**Reporting:** Capsules are the **only enrichment that supports group-by** in the General Ledger. Grouping by capsule shows the complete lifecycle of a multi-step transaction in one view.
|
|
154
163
|
|
|
155
164
|
**API:** `POST /capsules`, `POST /capsuleTypes`, `POST /capsuleTypes/search`
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
- **`search_capsules(filter: {capsuleType: {eq: 'Depreciation'}, name: {eq: <capsule.name>}})`** — step 0 idempotency check. One depreciation capsule per asset; duplicate setup is almost always an error.
|
|
16
16
|
- **`search_accounts(filter: {name: {in: ['Vehicles', 'Accumulated Depreciation — Vehicles', 'Depreciation Expense']}})`** — step 3: confirm the asset, contra-asset, and expense GL accounts exist.
|
|
17
17
|
- **`generate_trial_balance(period_end: <date>)`** — step 5: verify NBV matches schedule.
|
|
18
|
-
- **`
|
|
18
|
+
- **`bulk_update_journals(items: [{resourceId: <id>, saveAsDraft: false}, ...])`** — step 5 monthly: finalize this period's pre-emitted DRAFT depreciation journal.
|
|
19
19
|
|
|
20
20
|
### Cross-references
|
|
21
21
|
- Within an engagement: invoked from `practice/references/monthly-close.md` step 9 (only when an asset uses non-SL method — Jaz native FA handles SL automatically). For SL: `create_fixed_asset` directly via `fixed-assets` tool family; do NOT use this recipe.
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
- **`generate_trial_balance(period_end: <date>)`** — step 5: verify Deferred Revenue balance unwinds correctly.
|
|
19
19
|
- **`search_capsules(filter: {capsuleType: {eq: 'Deferred Revenue'}, name: {eq: <capsule.name>}})`** — step 0 idempotency check.
|
|
20
20
|
- **`finalize_invoice(resourceId: <id>)`** — step 4 fallback: lift the upfront invoice from DRAFT to ACTIVE once practitioner confirms the engagement is genuinely starting.
|
|
21
|
-
- **`
|
|
21
|
+
- **`bulk_update_journals(items: [{resourceId: <id>, saveAsDraft: false}, ...])`** — step 5 monthly: finalize this period's pre-emitted DRAFT recognition journal.
|
|
22
22
|
|
|
23
23
|
### Cross-references
|
|
24
24
|
- Within an engagement: invoked from `practice/references/monthly-close.md` step 8 (finalize this period's pre-emitted journal for existing capsules; create a new capsule for any new deferred arrangement starting this period).
|
|
@@ -49,6 +49,7 @@ Returns: `{ perPeriodAmount: 2000, recognitionStartDate: '2025-01-31', recogniti
|
|
|
49
49
|
|
|
50
50
|
```
|
|
51
51
|
plan_recipe(
|
|
52
|
+
// Note: gl*, capsuleType, capsuleName, bankAccountResourceId, vendor, customer below are illustrative — auto-resolved at execute time from CoA / CLIENT.md, not real plan_recipe params.
|
|
52
53
|
recipe: 'deferred-revenue',
|
|
53
54
|
amount: 24000,
|
|
54
55
|
periods: 12,
|
|
@@ -54,6 +54,7 @@ clio calc dividend --amount 200000 --withholding-rate 10 --currency PHP --json
|
|
|
54
54
|
|
|
55
55
|
```
|
|
56
56
|
plan_recipe(
|
|
57
|
+
// Note: gl*, capsuleType, capsuleName, bankAccountResourceId, vendor, customer below are illustrative — auto-resolved at execute time from CoA / CLIENT.md, not real plan_recipe params.
|
|
57
58
|
recipe: 'dividend',
|
|
58
59
|
amount: 200000,
|
|
59
60
|
withholdingRate: 0,
|
|
@@ -28,7 +28,7 @@ The two patterns share the same `Employee Benefits` capsule type but use differe
|
|
|
28
28
|
- **`search_capsules(filter: {capsuleType: {eq: 'Employee Benefits'}})`** — step 0: discover existing leave + bonus capsules.
|
|
29
29
|
- **`search_accounts(filter: {name: {in: ['Leave Expense', 'Leave Liability', 'Bonus Expense', 'Bonus Payable']}})`** — step 3.
|
|
30
30
|
- **`search_journals(filter: {tag: 'leave-accrual', valueDate: {between: [<period-start>, <period-end>]}, status: 'DRAFT'})`** — step 5 monthly: pull this period's pre-emitted leave DRAFT.
|
|
31
|
-
- **`
|
|
31
|
+
- **`bulk_update_journals(items: [{resourceId: <id>, saveAsDraft: false}, ...])`** — monthly finalize.
|
|
32
32
|
- **`generate_trial_balance(period_end: <date>)`** — verification.
|
|
33
33
|
- For year-end true-up: see `year-end-close.md` Y2 — manual journal pattern with HR-supplied actuals.
|
|
34
34
|
|
|
@@ -61,6 +61,7 @@ Returns: `{ totalAnnualCost: 84000, perPeriodAmount: 7000, schedule: [{period: 1
|
|
|
61
61
|
|
|
62
62
|
```
|
|
63
63
|
plan_recipe(
|
|
64
|
+
// Note: gl*, capsuleType, capsuleName, bankAccountResourceId, vendor, customer below are illustrative — auto-resolved at execute time from CoA / CLIENT.md, not real plan_recipe params.
|
|
64
65
|
recipe: 'leave-accrual',
|
|
65
66
|
headcount: 20,
|
|
66
67
|
daysPerEmployee: 14,
|
|
@@ -118,6 +119,7 @@ clio calc accrued-expense --amount <est> --periods 1 --start-date 2025-03-31 --j
|
|
|
118
119
|
|
|
119
120
|
```
|
|
120
121
|
plan_recipe(
|
|
122
|
+
// Note: gl*, capsuleType, capsuleName, bankAccountResourceId, vendor, customer below are illustrative — auto-resolved at execute time from CoA / CLIENT.md, not real plan_recipe params.
|
|
121
123
|
recipe: 'accrued-expense',
|
|
122
124
|
amount: <est>,
|
|
123
125
|
periods: 1,
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
- **`search_accounts(filter: {name: {in: ['Fixed Deposit Receivable', 'Accrued Interest Receivable', 'Interest Income']}})`** — step 3.
|
|
17
17
|
- **`search_contacts(filter: {supplier: true, name: {eq: <bank>}})`** — step 3 optional: bank contact for narrative.
|
|
18
18
|
- **`generate_trial_balance(period_end: <date>)`** — step 5 verify accrued interest unwinds; FD principal stays at carrying amount until maturity.
|
|
19
|
-
- **`
|
|
19
|
+
- **`bulk_update_journals(items: [{resourceId: <id>, saveAsDraft: false}, ...])`** — step 5 monthly finalize.
|
|
20
20
|
|
|
21
21
|
### Cross-references
|
|
22
22
|
- Within an engagement: invoked from `practice/references/monthly-close.md` step 7 (existing FD capsules — finalize this month's accrual; new FD setups during the period — invoke recipe).
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
- **`search_contacts(filter: {supplier: true, name: {eq: <lessor>}})`** — step 3 (lease counterparty).
|
|
18
18
|
- **`create_fixed_asset(...)`** — step 4 manual: register the ROU asset in Jaz native FA. `cost` = PV from calculator, `usefulLifeMonths` = lease term, `depreciationMethod` = 'sl' (straight-line). Jaz auto-posts monthly depreciation thereafter.
|
|
19
19
|
- **`generate_trial_balance(period_end: <date>)`** — step 5 verify.
|
|
20
|
-
- **`
|
|
20
|
+
- **`bulk_update_journals(items: [{resourceId: <id>, saveAsDraft: false}, ...])`** — step 5 monthly: finalize this period's pre-emitted unwinding DRAFT.
|
|
21
21
|
- **`generate_fa_summary(period_end: <date>)`** — step 5 verify Jaz auto-posted ROU depreciation.
|
|
22
22
|
|
|
23
23
|
### Cross-references
|
|
@@ -49,6 +49,7 @@ Returns: `{ presentValue: 167287.43, totalInterest: 12712.57, schedule: [{period
|
|
|
49
49
|
|
|
50
50
|
```
|
|
51
51
|
plan_recipe(
|
|
52
|
+
// Note: gl*, capsuleType, capsuleName, bankAccountResourceId, vendor, customer below are illustrative — auto-resolved at execute time from CoA / CLIENT.md, not real plan_recipe params.
|
|
52
53
|
recipe: 'lease',
|
|
53
54
|
monthlyPayment: 5000,
|
|
54
55
|
termMonths: 36,
|
|
@@ -39,6 +39,7 @@ Returns: `{ perPeriodAmount, recognitionStartDate, recognitionEndDate, schedule[
|
|
|
39
39
|
|
|
40
40
|
```
|
|
41
41
|
plan_recipe(
|
|
42
|
+
// Note: gl*, capsuleType, capsuleName, bankAccountResourceId, vendor, customer below are illustrative — auto-resolved at execute time from CoA / CLIENT.md, not real plan_recipe params.
|
|
42
43
|
recipe: 'prepaid-expense',
|
|
43
44
|
amount: 12000,
|
|
44
45
|
periods: 12,
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
- **`search_capsules(filter: {capsuleType: {eq: 'Provisions'}, name: {eq: <capsule.name>}})`** — step 0 idempotency check.
|
|
16
16
|
- **`search_accounts(filter: {name: {in: ['Provision for Warranties', 'Finance Cost', 'Warranty Expense']}})`** — step 3.
|
|
17
17
|
- **`generate_trial_balance(period_end: <date>)`** — step 5 verify provision balance matches schedule's `closingProvision`.
|
|
18
|
-
- **`
|
|
18
|
+
- **`bulk_update_journals(items: [{resourceId: <id>, saveAsDraft: false}, ...])`** — step 5 monthly finalize.
|
|
19
19
|
|
|
20
20
|
### Cross-references
|
|
21
21
|
- Within an engagement: invoked from `practice/references/annual-statutory.md` step 4e (Y5 in `year-end-close.md`) for year-end provision remeasurement, and `practice/references/monthly-close.md` step 7 (verify scheduler, finalize this period's unwinding DRAFT).
|
|
@@ -48,6 +48,7 @@ Save schedule to `workpapers/<period>/provision-warranty-FY2025.json`.
|
|
|
48
48
|
|
|
49
49
|
```
|
|
50
50
|
plan_recipe(
|
|
51
|
+
// Note: gl*, capsuleType, capsuleName, bankAccountResourceId, vendor, customer below are illustrative — auto-resolved at execute time from CoA / CLIENT.md, not real plan_recipe params.
|
|
51
52
|
recipe: 'provision',
|
|
52
53
|
amount: 500000,
|
|
53
54
|
annualRate: 4,
|