jaz-clio 5.74.2 → 6.0.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.
- package/README.md +8 -8
- package/assets/skills/api/SKILL.md +3 -36
- package/assets/skills/cli/SKILL.md +18 -28
- package/assets/skills/cli/references/agent-gotchas.md +2 -2
- package/assets/skills/cli/references/command-catalog.md +15 -31
- package/assets/skills/cli/references/common-workflows.md +19 -28
- package/assets/skills/conversion/SKILL.md +1 -1
- package/assets/skills/jaz-kit/SKILL.md +1 -1
- package/assets/skills/jaz-kit/references/flows.md +2 -2
- package/assets/skills/jaz-pseudo-sql/SKILL.md +1 -1
- package/assets/skills/jobs/SKILL.md +42 -42
- package/assets/skills/jobs/references/audit-prep.md +8 -8
- package/assets/skills/jobs/references/bank-match.md +1 -1
- package/assets/skills/jobs/references/bank-recon.md +6 -6
- package/assets/skills/jobs/references/building-blocks.md +49 -30
- package/assets/skills/jobs/references/credit-control.md +13 -12
- package/assets/skills/jobs/references/document-collection.md +6 -6
- package/assets/skills/jobs/references/fa-review.md +28 -29
- package/assets/skills/jobs/references/gst-vat-filing.md +3 -3
- package/assets/skills/jobs/references/month-end-close.md +37 -33
- package/assets/skills/jobs/references/payment-run.md +3 -4
- package/assets/skills/jobs/references/quarter-end-close.md +20 -18
- package/assets/skills/jobs/references/supplier-recon.md +5 -5
- package/assets/skills/jobs/references/year-end-close.md +31 -21
- package/assets/skills/transaction-recipes/SKILL.md +54 -117
- package/assets/skills/transaction-recipes/references/accrued-expenses.md +86 -61
- package/assets/skills/transaction-recipes/references/asset-disposal.md +135 -93
- package/assets/skills/transaction-recipes/references/bad-debt-provision.md +87 -65
- package/assets/skills/transaction-recipes/references/bank-loan.md +104 -70
- package/assets/skills/transaction-recipes/references/building-blocks.md +168 -72
- package/assets/skills/transaction-recipes/references/capital-wip.md +9 -8
- package/assets/skills/transaction-recipes/references/declining-balance.md +91 -64
- package/assets/skills/transaction-recipes/references/deferred-revenue.md +105 -68
- package/assets/skills/transaction-recipes/references/dividend.md +100 -64
- package/assets/skills/transaction-recipes/references/employee-accruals.md +111 -73
- package/assets/skills/transaction-recipes/references/fixed-deposit.md +116 -63
- package/assets/skills/transaction-recipes/references/fx-revaluation.md +28 -19
- package/assets/skills/transaction-recipes/references/hire-purchase.md +45 -44
- package/assets/skills/transaction-recipes/references/ifrs16-lease.md +108 -73
- package/assets/skills/transaction-recipes/references/intercompany.md +8 -6
- package/assets/skills/transaction-recipes/references/prepaid-amortization.md +104 -65
- package/assets/skills/transaction-recipes/references/provisions.md +116 -64
- package/assets/templates/platform-rules/jaz-agent-rules.md +10 -9
- package/cli.mjs +529 -607
- package/package.json +1 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Year-End Close
|
|
2
2
|
|
|
3
|
-
> Annual close = quarter-end close × 4 + annual-only extras (FA reconciliation, true-ups, dividends, retained earnings rollover, statutory tax provision). Walk the phases below in order, calling the named platform tools directly.
|
|
3
|
+
> Annual close = quarter-end close × 4 + annual-only extras (FA reconciliation, true-ups, dividends, retained earnings rollover, statutory tax provision). Walk the phases below in order, calling the named platform tools directly. For most SMBs, annual extras add 2-5 days on top of the quarterly close cadence.
|
|
4
4
|
|
|
5
|
-
## Tools
|
|
5
|
+
## Tools and calculators this job uses
|
|
6
6
|
|
|
7
7
|
### Orchestration
|
|
8
8
|
- **`quarter-end-close.md`**: invoked four times in standalone mode (Q1, Q2, Q3, Q4) before annual extras run.
|
|
@@ -13,9 +13,9 @@
|
|
|
13
13
|
- **`search_fixed_assets(filter: {status: {in: ['ACTIVE', 'DISPOSED']}})`**: Y1 enumeration of FAs.
|
|
14
14
|
- **`mark_fixed_asset_sold(...)` for a sale or `discard_fixed_asset(...)` for a write-off (both are operations, not status mutations)**: Y1 fallback if any FA has incorrect status at FY-end.
|
|
15
15
|
- **`search_journals(filter: {tags: {eq: 'leave-accrual'}, valueDate: {between: [<FY-start>, <FY-end>]}})` / `search_journals(filter: {tags: {eq: 'bonus-accrual'}, ...})`**: Y2 true-up: pull all FY accrual journals to compare against actuals.
|
|
16
|
-
- **`create_journal(...)`**: Y2 true-up adjustment journals (manual one-off,
|
|
17
|
-
- **`
|
|
18
|
-
- **`
|
|
16
|
+
- **`create_journal(...)`**: Y2 true-up adjustment journals (manual one-off, no calculator).
|
|
17
|
+
- **`calculate(type: 'dividend', ...)`**, then `create_capsule` + `create_journal` (declaration) + `create_cash_out` (payment), each with `capsuleResourceId`: Y3 dividend declaration + payment.
|
|
18
|
+
- **`calculate(type: 'ecl', ...)`**, then `create_capsule` + `create_journal` with `capsuleResourceId`: Y4 IFRS 9 ECL year-end true-up against `generate_aged_ar`.
|
|
19
19
|
- **`update_account(resourceId: <CoA root>, lockDate: <FY-end>)`**: Y8 final lock.
|
|
20
20
|
|
|
21
21
|
### Platform tools: current/non-current reclassification (manual annual journals)
|
|
@@ -30,26 +30,26 @@
|
|
|
30
30
|
- **`clio calc depreciation --cost --salvage --life --method --frequency annual --json`**: Y1 per-asset cross-check.
|
|
31
31
|
- **`clio calc loan --principal --rate --term --json`**: Y6 reclassification: identify the next-12-months principal portion.
|
|
32
32
|
- **`clio calc lease --payment --term --rate --json`**: Y6 reclassification for IFRS 16.
|
|
33
|
-
- **`clio calc ecl --
|
|
34
|
-
- **`clio calc dividend --amount <total> --withholding-rate <%> --json`**: Y3 dividend computation.
|
|
33
|
+
- **`clio calc ecl --current --30d --60d --90d --120d --rates --json`**: Y4 ECL calculation.
|
|
34
|
+
- **`clio calc dividend --amount <total> --declaration-date <date> --payment-date <date> --withholding-rate <%> --json`**: Y3 dividend computation.
|
|
35
35
|
|
|
36
36
|
### Cross-references
|
|
37
37
|
- Org inputs this job needs (confirm with the user when not already on file): the FY-end, whether a statutory audit is required, the tax jurisdiction (`SG` | `PH`), the dividend policy, and headcount (for the leave true-up).
|
|
38
38
|
- Sibling jobs: `quarter-end-close.md` (must run for all 4 quarters before this job's annual extras), `audit-prep.md` (consumes year-end-close output), and the SG Form C-S statutory filing (consumes the audit-prep pack; see the SG Form C-S section in `SKILL.md`).
|
|
39
|
-
-
|
|
39
|
+
- Calculator types used: `dividend`, `ecl` (year-end bad-debt true-up), `accrued-expense` (employee true-ups, plus manual journals). See the transaction-recipes skill for the accounting pattern behind each.
|
|
40
40
|
|
|
41
41
|
---
|
|
42
42
|
|
|
43
43
|
## Standalone vs Incremental
|
|
44
44
|
|
|
45
|
-
- **Standalone
|
|
46
|
-
- **Incremental
|
|
45
|
+
- **Standalone:** all quarter-end-close steps for Q1-Q4, then annual extras. Use when quarters haven't been closed yet.
|
|
46
|
+
- **Incremental:** annual extras only. Use when all 4 quarters are already closed and locked.
|
|
47
47
|
|
|
48
48
|
Quarters MUST be closed in order: Q1 locked → Q2 close → ... Annual extras assume monthly + quarterly cadence is current.
|
|
49
49
|
|
|
50
50
|
## Phase sequence
|
|
51
51
|
|
|
52
|
-
Standalone: run all quarter-end-close steps for Q1-Q4 (Phase 1-7), then the annual extras + final lock + audit-prep handoff (Phase 8 onward). Incremental
|
|
52
|
+
Standalone: run all quarter-end-close steps for Q1-Q4 (Phase 1-7), then the annual extras + final lock + audit-prep handoff (Phase 8 onward). Incremental: annual extras only.
|
|
53
53
|
|
|
54
54
|
## Phase 1-7: Quarterly closes (×4), IF standalone mode
|
|
55
55
|
|
|
@@ -66,7 +66,7 @@ generate_fa_recon_summary(primarySnapshotStartDate: '2025-01-01', primarySnapsho
|
|
|
66
66
|
|
|
67
67
|
For Jaz native straight-line depreciation: should be automatic and correct. Verify the 12-month aggregate against `generate_general_ledger(accountResourceIds: [<Depreciation Expense>], startDate, endDate)`.
|
|
68
68
|
|
|
69
|
-
For non-SL assets (DDB, 150DB)
|
|
69
|
+
For non-SL assets (DDB, 150DB) depreciated from a `calculate(type: 'depreciation', method: 'ddb' | '150db')` schedule: the year's journals were posted into the asset's capsule (up front as future-dated DRAFTs, or one per monthly close). Confirm all are FINALIZED via `search_journals(filter: {status: {eq: 'DRAFT'}, valueDate: {between: [<FY-start>, <FY-end>]}})` (should be empty). If non-empty: route back to `month-end-close.md` step 9.
|
|
70
70
|
|
|
71
71
|
Reconcile `generate_fa_recon_summary` formula: `openingNbv + additions − disposals − depreciation == closingNbv == TB[Fixed Assets].balance`. Mismatch beyond the materiality threshold → investigate via `search_fixed_assets(filter: {status: {eq: 'ACTIVE'}})` cross-referenced against the depreciation capsule's journals (`search_journals(filter: {valueDate: {between: [<FY-start>, <FY-end>]}})`); typical cause is a disposal posted without `mark_fixed_asset_sold` / `discard_fixed_asset`.
|
|
72
72
|
|
|
@@ -78,7 +78,7 @@ Reconcile `generate_fa_recon_summary` formula: `openingNbv + additions − dispo
|
|
|
78
78
|
search_journals(filter: {tags: {eq: 'leave-accrual'}, valueDate: {between: ['2025-01-01', '2025-12-31']}})
|
|
79
79
|
```
|
|
80
80
|
|
|
81
|
-
Sum FY accruals (the
|
|
81
|
+
Sum FY accruals (the scheduled leave-accrual journals already finalized monthly). Compare against actual unused leave days × daily rate per employee at FY-end (HR data). Difference: post manual `create_journal`:
|
|
82
82
|
|
|
83
83
|
```
|
|
84
84
|
create_journal({
|
|
@@ -103,9 +103,8 @@ If accrued > actual: reverse the excess (Dr Leave Liability / Cr Leave Expense).
|
|
|
103
103
|
If the org declared a final dividend for the FY:
|
|
104
104
|
|
|
105
105
|
```
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
recipe: 'dividend',
|
|
106
|
+
calculate(
|
|
107
|
+
type: 'dividend',
|
|
109
108
|
amount: <gross-dividend>,
|
|
110
109
|
withholdingRate: <dividend withholding rate>,
|
|
111
110
|
declarationDate: '2025-12-31',
|
|
@@ -113,7 +112,18 @@ plan_recipe(
|
|
|
113
112
|
)
|
|
114
113
|
```
|
|
115
114
|
|
|
116
|
-
|
|
115
|
+
The calculator returns three dated steps: a declaration journal (Dr Retained Earnings / Cr Dividends Payable), a payment cash-out, and a withholding cash-out when `withholdingRate > 0`. It posts nothing. Then:
|
|
116
|
+
|
|
117
|
+
1. `list_capsule_types` + `create_capsule` (type `Dividends`).
|
|
118
|
+
2. Declaration: `create_journal(valueDate: '2025-12-31', autoReference: true, journalEntries: [<declaration lines>], capsuleResourceId: <capsule id>)`. Book this in the FY-end close.
|
|
119
|
+
3. Payment, no withholding: `create_cash_out(valueDate: '<paymentDate>', accountResourceId: <bank account>, lines: [{accountResourceId: <Dividends Payable>, amount: <gross dividend>}], capsuleResourceId: <capsule id>)`.
|
|
120
|
+
4. Payment, with withholding: the payment step has a credit to Withholding Tax Payable beside the bank line, and a cash-out debits every one of its lines, so it cannot carry that credit. Split it in two, both dated `<paymentDate>`:
|
|
121
|
+
- `create_cash_out(valueDate: '<paymentDate>', accountResourceId: <bank account>, lines: [{accountResourceId: <Dividends Payable>, amount: <NET dividend>}], capsuleResourceId: <capsule id>)`.
|
|
122
|
+
- `create_journal(valueDate: '<paymentDate>', autoReference: true, journalEntries: [<Dr Dividends Payable / Cr Withholding Tax Payable, for the withholding amount>], capsuleResourceId: <capsule id>)`.
|
|
123
|
+
Together they clear Dividends Payable (gross) and leave the withheld tax owing to the authority.
|
|
124
|
+
5. Withholding remittance, when the tax is actually remitted: `create_cash_out(valueDate: <remittance date>, accountResourceId: <bank account>, lines: [{accountResourceId: <Withholding Tax Payable>, amount: <withholding amount>}], capsuleResourceId: <capsule id>)`.
|
|
125
|
+
|
|
126
|
+
Cash-outs post ACTIVE immediately (cash entries have no draft state), so record them when the money leaves the account, not at FY-end when the dividend is only declared. Full walkthrough: `transaction-recipes/references/dividend.md` step 4.
|
|
117
127
|
|
|
118
128
|
For interim dividends declared during the year: those should already be posted in their respective monthly closes. Y3 covers FY-end final dividend only.
|
|
119
129
|
|
|
@@ -132,10 +142,10 @@ clio calc ecl --current <c> --30d <30> --60d <60> --90d <90> --120d <120> --rate
|
|
|
132
142
|
If top-up needed > the materiality threshold:
|
|
133
143
|
|
|
134
144
|
```
|
|
135
|
-
|
|
145
|
+
calculate(type: 'ecl', buckets: <[{name, balance, rate}]>, existingProvision: <Allowance for Doubtful Debts balance>, startDate: '2025-12-31')
|
|
136
146
|
```
|
|
137
147
|
|
|
138
|
-
Then `
|
|
148
|
+
Then `list_capsule_types` + `create_capsule` (type `ECL Provision`) and post the one journal the calculator returns with `create_journal` and `capsuleResourceId`: Dr Bad Debt Expense / Cr Allowance for Doubtful Debts for the top-up amount. ECL is one-shot per FY (no ongoing schedule).
|
|
139
149
|
|
|
140
150
|
For specific large customers requiring stage-3 provision (specific impairment vs collective ECL): use `create_journal` directly with explicit per-customer narrative.
|
|
141
151
|
|
|
@@ -147,7 +157,7 @@ For each existing IAS 37 provision capsule (warranty, legal, decommissioning):
|
|
|
147
157
|
search_capsules(filter: {status: {eq: 'ACTIVE'}})
|
|
148
158
|
```
|
|
149
159
|
|
|
150
|
-
Per capsule, recompute the present value at FY-end (`clio calc provision`). Top-up via
|
|
160
|
+
Per capsule, recompute the present value at FY-end (`clio calc provision`). Top-up via `create_journal` into the provision's capsule (amount from `calculate(type: 'provision', ...)`) if required, OR reverse via `create_journal` if the obligation reduced.
|
|
151
161
|
|
|
152
162
|
### Y6: Current/non-current reclassification (manual journals)
|
|
153
163
|
|
|
@@ -207,7 +217,7 @@ Invoke `audit-prep.md` job. Year-end-close output (TB final, all reports, all re
|
|
|
207
217
|
|--------|-------|----------|
|
|
208
218
|
| Phase 1-7 (standalone) | Quarters not all closed | One or more quarters incomplete. Route back to the missing `quarter-end-close.md`. Run annual extras only once all 4 quarters are locked. |
|
|
209
219
|
| Y1 FA recon | NBV doesn't tie | Investigate disposed assets posted without status update. `search_fixed_assets(filter: {status: {eq: 'ACTIVE'}})` then check each against current physical existence. |
|
|
210
|
-
| Y3
|
|
220
|
+
| Y3 dividend declaration journal | No `Dividends Payable` account to resolve the blueprint line to | Create `Dividends Payable` account (`Current Liability`) via `create_account` first. |
|
|
211
221
|
| Y4 ECL | top-up amount surprisingly large | Possibly the existing provision is stale (no monthly mental ECL check ran). Confirm `--existing-provision` matches `TB[Allowance for Doubtful Debts].balance`. If yes, real impairment event occurred; surface to practitioner. |
|
|
212
222
|
| Y6 reclassification | Existing reclassification entry from prior year still present | Reverse the prior-year reclassification first (it sits in opening balances). The reclassification entry is per-FY; should be reset at the start of each FY. |
|
|
213
223
|
| Y7 completeness gate | Drafts present at FY-end | Either clear (finalize) or document the residuals and surface to the user. NEVER hand the pack to the auditor with FY-period drafts. |
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: jaz-recipes
|
|
3
|
-
version:
|
|
3
|
+
version: 6.0.0
|
|
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
|
|
7
7
|
linked entries. Covers 16 IFRS-compliant recipes (prepaid amortization,
|
|
8
8
|
deferred revenue, loans, IFRS 16 leases, hire purchase, fixed deposits,
|
|
9
9
|
asset disposal, FX revaluation, ECL, IAS 37 provisions, dividends,
|
|
10
|
-
intercompany, capital WIP) and 13 financial calculators that
|
|
11
|
-
|
|
12
|
-
amortization, lease accounting, loan schedules, or any IFRS
|
|
10
|
+
intercompany, capital WIP) and 13 financial calculators that return the
|
|
11
|
+
schedule and the journal lines to post. Also use when the user mentions
|
|
12
|
+
depreciation, amortization, lease accounting, loan schedules, or any IFRS
|
|
13
|
+
calculation.
|
|
13
14
|
license: MIT
|
|
14
15
|
compatibility: Works with Claude Code, Claude Cowork, Claude.ai, and any agent that reads markdown. For API payloads, load the jaz-api skill alongside this one. For the operational close workflows these recipes plug into (month-end close, GST/VAT filing, year-end close), load the jaz-jobs skill.
|
|
15
16
|
---
|
|
@@ -18,7 +19,7 @@ compatibility: Works with Claude Code, Claude Cowork, Claude.ai, and any agent t
|
|
|
18
19
|
|
|
19
20
|
You are modeling **complex multi-step accounting scenarios** in Jaz: transactions that span multiple periods, involve changing amounts, or require several linked entries to complete a single business event.
|
|
20
21
|
|
|
21
|
-
> **Jaz-native, not generic.** Every recipe in this skill is designed around the Jaz
|
|
22
|
+
> **Jaz-native, not generic.** Every recipe in this skill is designed around the Jaz calculators (`calculate` / `clio calc`), Jaz capsule types, Jaz CoA classifications, and Jaz scheduler primitives. It is NOT an interchangeable IFRS reference; it is the operating manual for posting these transactions through the Jaz ledger. Never work the amounts by hand: run the calculator first and post the lines it returns. Nothing posts a recipe for you: the calculator posts nothing, and you create the capsule and each entry yourself (see "Posting a Recipe: Three Steps").
|
|
22
23
|
|
|
23
24
|
**This skill provides Jaz-contextual recipes with full accounting logic. For API field names and payloads, load the `jaz-api` skill alongside this one. For the operational close workflows that invoke these recipes (month-end close, GST/VAT filing, year-end close), load the `jaz-jobs` skill.**
|
|
24
25
|
|
|
@@ -31,7 +32,7 @@ You are modeling **complex multi-step accounting scenarios** in Jaz: transaction
|
|
|
31
32
|
- Recording depreciation using methods Jaz doesn't natively support (declining balance, 150DB)
|
|
32
33
|
- Managing fixed deposit placements with interest accrual schedules (IFRS 9)
|
|
33
34
|
- Disposing of fixed assets: sale, scrap, or write-off with gain/loss calculation (IAS 16)
|
|
34
|
-
-
|
|
35
|
+
- Verifying the period-end FX revaluation Jaz posts itself (IAS 21): the calculator checks the figure, and its result is not posted
|
|
35
36
|
- Calculating expected credit loss provisions on aged receivables (IFRS 9)
|
|
36
37
|
- Accruing employee leave and bonus obligations (IAS 19)
|
|
37
38
|
- Recognizing provisions at PV with discount unwinding (IAS 37)
|
|
@@ -47,8 +48,9 @@ Every recipe uses a combination of these Jaz features. See `references/building-
|
|
|
47
48
|
| Building Block | Role in Recipes |
|
|
48
49
|
|---|---|
|
|
49
50
|
| **Capsules** | Group all related entries into one workflow container |
|
|
51
|
+
| **Calculators** | Return the schedule and the journal lines for each step (offline, post nothing) |
|
|
50
52
|
| **Schedulers** | Automate fixed-amount recurring journals (prepaid, deferred, leave) |
|
|
51
|
-
| **Manual Journals** | Record variable-amount entries (loan interest, IFRS 16 unwinding,
|
|
53
|
+
| **Manual Journals** | Record variable-amount entries (loan interest, IFRS 16 unwinding, ECL) |
|
|
52
54
|
| **Fixed Assets** | Native straight-line depreciation for ROU assets and completed capital projects |
|
|
53
55
|
| **Invoices / Bills** | Trade documents for intercompany, supplier bills for capital WIP |
|
|
54
56
|
| **Tracking Tags** | Tag all entries in a scenario for report filtering |
|
|
@@ -59,9 +61,9 @@ Every recipe uses a combination of these Jaz features. See `references/building-
|
|
|
59
61
|
|
|
60
62
|
Jaz schedulers generate **fixed-amount** recurring entries. This determines which recipe pattern to use:
|
|
61
63
|
|
|
62
|
-
- **Fixed amounts each period** →
|
|
63
|
-
- **Variable amounts each period** → Use manual journals inside a capsule (
|
|
64
|
-
- **One-off or two-entry events** → Use manual journals (e.g., dividend declaration
|
|
64
|
+
- **Fixed amounts each period** → One scheduler can replace the N dated journals (it posts each occurrence itself)
|
|
65
|
+
- **Variable amounts each period** → Use manual journals inside a capsule (one per period, amounts from the calculator)
|
|
66
|
+
- **One-off or two-entry events** → Use manual journals (e.g., a dividend declaration; its payment is a cash-out)
|
|
65
67
|
|
|
66
68
|
If a scenario genuinely fits either pattern, record the pick once the entries post: `jot(kind: METHOD)` naming the pattern chosen and the deciding fact.
|
|
67
69
|
|
|
@@ -69,19 +71,19 @@ If a scenario genuinely fits either pattern, record the pick once the entries po
|
|
|
69
71
|
|---|---|---|
|
|
70
72
|
| Prepaid Amortization | Scheduler + capsule | Same amount each month |
|
|
71
73
|
| Deferred Revenue | Scheduler + capsule | Same amount each month |
|
|
72
|
-
| Accrued Expenses |
|
|
74
|
+
| Accrued Expenses | Manual journals + capsule | Accrual + reversal pair per period, re-estimated each time |
|
|
73
75
|
| Employee Leave Accrual | Scheduler + capsule | Fixed monthly accrual |
|
|
74
76
|
| Bank Loan | Manual journals + capsule | Interest changes as principal reduces |
|
|
75
77
|
| IFRS 16 Lease | Hybrid (native FA + manual journals) + capsule | ROU depreciation is fixed; liability unwinding changes |
|
|
76
78
|
| Declining Balance | Manual journals + capsule | Depreciation changes as book value reduces |
|
|
77
|
-
| FX Revaluation |
|
|
79
|
+
| FX Revaluation | Verification only: nothing posted, no capsule | Jaz revalues foreign-currency balances itself at period end; the calculator verifies that figure and its result is not posted |
|
|
78
80
|
| ECL Provision | Manual journals + capsule | Receivables and rates change each quarter |
|
|
79
81
|
| Fixed Deposit | Cash-out + manual journals + cash-in + capsule | Placement, monthly accruals, maturity |
|
|
80
82
|
| Hire Purchase | Manual journals + FA registration + capsule | Like IFRS 16 but depreciate over useful life |
|
|
81
83
|
| Asset Disposal | Manual journal + FA deregistration | One-off compound entry + FA update |
|
|
82
84
|
| Provisions (IAS 37) | Manual journals + cash-out + capsule | Unwinding amount changes each month |
|
|
83
85
|
| Bonus Accrual | Manual journals + capsule | Revenue/profit changes each quarter |
|
|
84
|
-
| Dividends | Manual
|
|
86
|
+
| Dividends | Manual journal + cash-out + capsule | One-off: declaration journal, then the payment as a cash-out (with withholding tax, a journal for the withheld amount too) |
|
|
85
87
|
| Intercompany | Invoices/bills + capsule | Mirrored entries in two entities |
|
|
86
88
|
| Capital WIP | Bills/journals + FA registration + capsule | Accumulate then transfer |
|
|
87
89
|
|
|
@@ -97,9 +99,9 @@ Each recipe includes: scenario description, accounts involved, journal entries,
|
|
|
97
99
|
|
|
98
100
|
### Tier 2: Manual Journal Recipes (Calculated)
|
|
99
101
|
|
|
100
|
-
3. **[Accrued Expenses](references/accrued-expenses.md)**: Month-end expense accrual and
|
|
102
|
+
3. **[Accrued Expenses](references/accrued-expenses.md)**: Month-end expense accrual and next-period reversal as a journal pair per period, plus the actual supplier bill. *Paired calculator: `clio calc accrued-expense`. Typical context: month-end close (accruals step inside the month-end close).*
|
|
101
103
|
|
|
102
|
-
4. **[Bank Loan](references/bank-loan.md)**: Loan disbursement, monthly installments splitting principal and interest, full amortization table with worked example. *Typical context: ad-hoc (one-off setup at loan drawdown, then month-end close
|
|
104
|
+
4. **[Bank Loan](references/bank-loan.md)**: Loan disbursement, monthly installments splitting principal and interest, full amortization table with worked example. *Paired calculator: `clio calc loan`. Typical context: ad-hoc (one-off setup at loan drawdown, then month-end close posts or finalizes each installment journal).*
|
|
103
105
|
|
|
104
106
|
5. **[IFRS 16 Lease](references/ifrs16-lease.md)**: Right-of-use asset recognition, lease liability unwinding with changing interest, native FA for ROU straight-line depreciation. *Typical context: month-end close (depreciation + liability unwinding booking each period inside the month-end close) and year-end (ROU register sign-off inside the fixed-asset review + the year-end close).*
|
|
105
107
|
|
|
@@ -113,7 +115,7 @@ Each recipe includes: scenario description, accounts involved, journal entries,
|
|
|
113
115
|
|
|
114
116
|
### Tier 3: Month-End Close Recipes
|
|
115
117
|
|
|
116
|
-
10. **[FX Revaluation (verification only)](references/fx-revaluation.md)**: Jaz auto-handles ALL period-end IAS 21.23 FX translation (AR, AP, cash, bank, intercompany, term deposits, FX provisions). The recipe and `clio calc fx-reval` are for VERIFICATION ONLY (independent cross-check vs what Jaz auto-posted). Do NOT
|
|
118
|
+
10. **[FX Revaluation (verification only)](references/fx-revaluation.md)**: Jaz auto-handles ALL period-end IAS 21.23 FX translation (AR, AP, cash, bank, intercompany, term deposits, FX provisions). The recipe and `clio calc fx-reval` / `calculate(type: 'fx-reval')` are for VERIFICATION ONLY (independent cross-check vs what Jaz auto-posted). Do NOT post the calculator's result (it would double-count). *Typical context: period-end / year-end FX verification flow.*
|
|
117
119
|
|
|
118
120
|
11. **[Bad Debt Provision / ECL](references/bad-debt-provision.md)**: IFRS 9 simplified approach provision matrix using aged receivables and historical loss rates. *Paired calculator: `clio calc ecl`. Typical context: GST/VAT filing cycle (ECL reviewed alongside the return prep since AR aging is already pulled) and year-end (ECL true-up inside the year-end close).*
|
|
119
121
|
|
|
@@ -123,26 +125,33 @@ Each recipe includes: scenario description, accounts involved, journal entries,
|
|
|
123
125
|
|
|
124
126
|
13. **[Provisions with PV Unwinding](references/provisions.md)**: IAS 37 provision recognized at PV, with monthly discount unwinding schedule. For warranties, legal claims, decommissioning, restructuring. *Paired calculator: `clio calc provision`. Typical context: month-end close (monthly discount-unwinding journal inside the month-end close); initial recognition triggered ad-hoc when the obligating event occurs.*
|
|
125
127
|
|
|
126
|
-
14. **[Dividend Declaration & Payment](references/dividend.md)**: Board-declared dividend:
|
|
128
|
+
14. **[Dividend Declaration & Payment](references/dividend.md)**: Board-declared dividend: a declaration journal reducing retained earnings, then the payment as a cash-out. Optional withholding tax adds a journal for the withheld amount and a cash-out for its remittance. *Paired calculator: `clio calc dividend`. Typical context: year-end (dividend declaration is part of the year-end close after profit is finalized) or ad-hoc (interim dividends).*
|
|
127
129
|
|
|
128
130
|
15. **[Intercompany Transactions](references/intercompany.md)**: Mirrored invoices/bills or journals across two Jaz entities with matching intercompany reference, quarterly settlement. *Typical context: month-end close (mirror entries booked each period inside the month-end close) and year-end (intercompany elimination + confirmation inside audit prep).*
|
|
129
131
|
|
|
130
132
|
16. **[Capital WIP to Fixed Asset](references/capital-wip.md)**: Cost accumulation in CIP account during construction/development, transfer to FA on completion, auto-depreciation via Jaz FA module. *Typical context: month-end close (cost accumulation each period) and year-end (transfer to FA + commissioning review inside the fixed-asset review).*
|
|
131
133
|
|
|
132
|
-
##
|
|
134
|
+
## Posting a Recipe: Three Steps
|
|
133
135
|
|
|
134
|
-
|
|
135
|
-
2. **Create the accounts** listed in the "Accounts Involved" table (if they don't already exist in the CoA).
|
|
136
|
-
3. **Create the capsule** with an appropriate capsule type.
|
|
137
|
-
4. **Run the calculator** (if available) to generate exact amounts: `clio calc <command> --json` gives you a complete blueprint. Where you picked the method yourself (e.g. `--method ddb` over `sl`), record the judgment after the entries post: `jot(kind: METHOD)` naming the method and why.
|
|
138
|
-
5. **Record the initial transaction** (bill, invoice, or journal); assign it to the capsule.
|
|
139
|
-
6. **For scheduler recipes**: Create the scheduler with the same capsule; it generates all subsequent entries automatically.
|
|
140
|
-
7. **For manual journal recipes**: Record each period's journal using the calculator output or worked example, always assigning to the same capsule.
|
|
141
|
-
8. **Verify** using the steps in each recipe (ledger grouping by capsule, trial balance checks).
|
|
136
|
+
No tool runs a recipe end to end. You perform three explicit steps (full detail, the action-to-tool mapping and the draft / reference rules are in `references/building-blocks.md`):
|
|
142
137
|
|
|
143
|
-
|
|
138
|
+
1. **Calculate.** `calculate(type, ...)` (MCP) or `clio calc <type> ... --json` (CLI). Offline, read-only, no account needed. It returns the schedule and, when a start date is given, a `blueprint` with dated steps and the journal lines for each step. It posts nothing.
|
|
139
|
+
2. **Create the capsule.** `list_capsule_types` (create the type with `create_capsule_type` if it is missing), then `create_capsule`.
|
|
140
|
+
3. **Post each blueprint step** with the real transaction tools, each carrying `capsuleResourceId`: `create_journal`, `create_bill`, `create_invoice`, `create_cash_in`, `create_cash_out`. Where the same amount repeats every period, one `create_scheduled_journal` can replace the N dated journals. Fixed assets go through the fixed-asset tools (`create_fixed_asset`, `mark_fixed_asset_sold`, `discard_fixed_asset`).
|
|
144
141
|
|
|
145
|
-
|
|
142
|
+
Around those three steps:
|
|
143
|
+
|
|
144
|
+
- **Read the recipe** for your scenario first: the accounts, the journal entries, the capsule structure and the worked example.
|
|
145
|
+
- **Resolve every account yourself.** Blueprint lines carry labels (`Cash / Bank Account`, `Loan Payable`), not accounts. Map each with `search_accounts` / `list_accounts` (bank accounts via `list_bank_accounts`); create a missing account only after the practitioner confirms its classification.
|
|
146
|
+
- **Record judgment.** Where you picked the method yourself (e.g. `method: 'ddb'` over `'sl'`), record it after the entries post: `jot(kind: METHOD)` naming the method and why.
|
|
147
|
+
- **Verify** using the steps in each recipe (general ledger grouped by capsule, trial balance checks).
|
|
148
|
+
- **`fx-reval` is VERIFICATION ONLY.** Jaz revalues foreign-currency balances at period end (IAS 21.23); posting the calculator's result double-counts.
|
|
149
|
+
|
|
150
|
+
## Financial Calculators
|
|
151
|
+
|
|
152
|
+
13 IFRS-compliant financial calculators, reachable two ways with the same result: the MCP tool `calculate(type: <type>, ...)` and the CLI `clio calc <type>`. Each produces a schedule + per-period journal entries + human-readable workings. On the CLI use `--json` for structured output with the **blueprint**: capsule type/name, tags, custom fields, workings (capsuleDescription), and every step with action type, date, accounts, and amounts.
|
|
153
|
+
|
|
154
|
+
The MCP param names differ from the CLI flags: `annualRate` (`--rate`), `termMonths` (`--term`), `monthlyPayment` (`--payment`), `usefulLifeMonths` (`--useful-life`), `salvageValue` (`--salvage`), `usefulLifeYears` (`--life`), `acquisitionDate` / `disposalDate` (`--acquired` / `--disposed`), `compounding` (`--compound`), `daysPerYear` (`--days`), and `buckets: [{ name, balance, rate }]` for ECL (`--current`, `--30d` ... `--rates`).
|
|
146
155
|
|
|
147
156
|
All calculators support `--currency <code>` and `--json`.
|
|
148
157
|
|
|
@@ -187,8 +196,8 @@ clio calc asset-disposal --cost 50000 --salvage 5000 --life 5 --acquired 2022-01
|
|
|
187
196
|
|
|
188
197
|
# ── Tier 3 Calculators ──────────────────────────────────────────
|
|
189
198
|
|
|
190
|
-
# FX revaluation:
|
|
191
|
-
# Typical context: month-end close
|
|
199
|
+
# FX revaluation (IAS 21): VERIFICATION ONLY. Checks the revaluation Jaz posts itself; never post this result.
|
|
200
|
+
# Typical context: month-end close + year-end (cross-check the platform's period-end revaluation)
|
|
192
201
|
# --rate-direction is REQUIRED: these rates read foreign-first (1 USD = 1.35 SGD).
|
|
193
202
|
# A list_currency_rates value would be FUNCTIONAL_TO_SOURCE instead.
|
|
194
203
|
clio calc fx-reval --amount 50000 --book-rate 1.35 --closing-rate 1.38 --rate-direction SOURCE_TO_FUNCTIONAL [--position ASSET|LIABILITY] [--currency USD] [--base-currency SGD] [--json]
|
|
@@ -226,7 +235,7 @@ clio jobs bank-recon match --input bank-data.json [--tolerance 0.01] [--date-win
|
|
|
226
235
|
|
|
227
236
|
### Blueprint Output (`--json`)
|
|
228
237
|
|
|
229
|
-
|
|
238
|
+
The result includes a `blueprint` object: the capsule to create and the steps to post, in order. The dated calculators (loan, lease, prepaid, deferred revenue, provision, fixed deposit, accrued expense, leave accrual) return `blueprint: null` when no start date is given.
|
|
230
239
|
|
|
231
240
|
```json
|
|
232
241
|
{
|
|
@@ -254,17 +263,19 @@ Every calculator's `--json` output includes a `blueprint` object, a complete exe
|
|
|
254
263
|
}
|
|
255
264
|
```
|
|
256
265
|
|
|
257
|
-
**Blueprint action types** (each step tells you
|
|
266
|
+
**Blueprint action types** (each step tells you which tool posts it):
|
|
258
267
|
|
|
259
|
-
| Action | When used |
|
|
268
|
+
| Action | When used | Tool |
|
|
260
269
|
|---|---|---|
|
|
261
|
-
| `bill` | Supplier document (prepaid expense) |
|
|
262
|
-
| `invoice` | Customer document (deferred revenue) |
|
|
263
|
-
| `cash-in` | Cash arrives in bank (loan disbursement, FD maturity) |
|
|
264
|
-
| `cash-out` | Cash leaves bank (FD placement, provision settlement) |
|
|
265
|
-
| `journal` |
|
|
266
|
-
| `fixed-asset` |
|
|
267
|
-
| `note` | Instruction
|
|
270
|
+
| `bill` | Supplier document (prepaid expense) | `create_bill` |
|
|
271
|
+
| `invoice` | Customer document (deferred revenue) | `create_invoice` |
|
|
272
|
+
| `cash-in` | Cash arrives in bank (loan disbursement, FD maturity) | `create_cash_in` |
|
|
273
|
+
| `cash-out` | Cash leaves bank (FD placement, provision settlement) | `create_cash_out` |
|
|
274
|
+
| `journal` | Accrual, depreciation, unwinding, installment split | `create_journal` |
|
|
275
|
+
| `fixed-asset` | Instruction: register the asset (ROU asset) | `create_fixed_asset` |
|
|
276
|
+
| `note` | Instruction: update the FA register on disposal | `mark_fixed_asset_sold` / `discard_fixed_asset` |
|
|
277
|
+
|
|
278
|
+
Account names in `lines` are labels to map to real accounts, and cash entries post ACTIVE immediately (no draft state): post a future-dated cash step when the money moves. A cash step can only carry lines on the side opposite the bank: if a cash-in or cash-out step has another line on the bank's side (for example withholding tax), post the net cash entry and a separate journal for that line.
|
|
268
279
|
|
|
269
280
|
**Math guarantees:**
|
|
270
281
|
- `financial` npm package (TypeScript port of numpy-financial) for PV, PMT, no hand-rolled TVM
|
|
@@ -273,87 +284,13 @@ Every calculator's `--json` output includes a `blueprint` object, a complete exe
|
|
|
273
284
|
- DDB→SL switch when straight-line >= declining balance or when DDB would breach salvage floor
|
|
274
285
|
- All journal entries balanced (debits = credits in every step)
|
|
275
286
|
|
|
276
|
-
## Agent Tools (Daemon)
|
|
277
|
-
|
|
278
|
-
When running as a daemon agent (`clio serve`), recipes are available via two dedicated tools:
|
|
279
|
-
|
|
280
|
-
- **`plan_recipe`** (read-only): Run a calculator and see what accounts, contacts, and bank accounts are needed, no API calls. Use this first to verify requirements.
|
|
281
|
-
- **`execute_recipe`** (write): Full end-to-end recipe execution (run calculator, auto-resolve accounts from chart of accounts, create capsule, post all entries). **1 tool call replaces ~20 manual tool calls.**
|
|
282
|
-
|
|
283
|
-
Both tools accept all 13 recipe types: loan, lease, depreciation, prepaid-expense, deferred-revenue, fx-reval, ecl, provision, fixed-deposit, asset-disposal, accrued-expense, leave-accrual, dividend.
|
|
284
|
-
|
|
285
|
-
Scheduler creation tools are also available: `create_scheduled_journal`, `create_scheduled_invoice`, `create_scheduled_bill`.
|
|
286
|
-
|
|
287
|
-
## Server-side recipe execution (Jaz API)
|
|
288
|
-
|
|
289
|
-
A second path: 5 IFRS recipes (Loan Amortization, Accrual Reversal, Prepaid Amortization, Deferred Revenue, IFRS 16 Lease) also have a SERVER-SIDE lifecycle via Jaz REST. This produces real capsule entities + scheduler atoms (recurring journal postings), distinct from the offline `plan_recipe` / `execute_recipe` path which is client-side compute.
|
|
290
|
-
|
|
291
|
-
**Two distinct execution paths:**
|
|
292
|
-
|
|
293
|
-
| Path | When to use | Tools |
|
|
294
|
-
|---|---|---|
|
|
295
|
-
| **Offline calculator** | Plan first, post manually. Agent has CoA picked. No need for a server-side capsule entity. Works without an API key. | `plan_recipe` → `execute_recipe` |
|
|
296
|
-
| **Server-side trigger** | "Create the bill AND the prepaid amortization schedule in one shot." Capsule entity needed for FE/reporting. Requires API key. | Trigger via `capsuleRecipe` payload on `create_bill` / `create_invoice` / `create_journal` / `create_cash_in` / `create_cash_out` (and their `update_*` variants), OR standalone `preview_capsule_recipe` first. |
|
|
297
|
-
|
|
298
|
-
**Server-side tools** (group: `capsule_recipes`):
|
|
299
|
-
|
|
300
|
-
- `list_capsule_recipes` (read-only): list registered IFRS recipes + per-version JSON Schemas. SOURCE OF TRUTH for `recipeName` values; don't hard-code.
|
|
301
|
-
- `get_capsule_recipe(name)` (read-only): one descriptor by enum name with `versions[].inputSchema`.
|
|
302
|
-
- `preview_capsule_recipe({recipeName, recipeVersion?, inputs, baseTransactionResourceId?, baseTransactionType?, organizationResourceId?})` (read-only): pure compute, no side effects. Returns `{legs[], expectedOutput[], previewMarkdown}`. Use BEFORE triggering via `capsuleRecipe` payload to validate inputs.
|
|
303
|
-
- `resume_capsule_recipe(capsuleResourceId)` (write, NOT idempotent): retry a FAILED recipe job from its failed leg. ≤3 same-leg attempts then terminal `BLOCKED_AFTER_3_RESUME_ATTEMPTS`.
|
|
304
|
-
- `rollback_capsule_recipe(capsuleResourceId, dryRun?: boolean)` (write; dryRun IS idempotent): delete every scheduler atom created by the recipe. Preview with `dryRun=true` before committing.
|
|
305
|
-
|
|
306
|
-
**Trigger-mutation payload**: to create a base-trx AND fire a recipe in one shot, pass `capsuleRecipe: {recipeName, recipeVersion?, inputs}` to the create/update mutation. Mutually exclusive with `capsuleResourceId` (the "attach to existing capsule" path).
|
|
307
|
-
|
|
308
|
-
### Three pre-flight gates BEFORE sending `capsuleRecipe` (else the response silently nulls)
|
|
309
|
-
|
|
310
|
-
The trigger mutation is **best-effort post-commit**: if the recipe publish fails inside customer-service, the base-trx still commits, the response still returns its normal success status (201 on create, 200 on update), but `capsuleRecipeJob` is null and **no error reason is surfaced on the response body**. Three causes of silent null; gate every one of them before sending:
|
|
311
|
-
|
|
312
|
-
| Gate | Constraint | Pre-flight check |
|
|
313
|
-
|---|---|---|
|
|
314
|
-
| **Base trx type** | `recipeName` must match a trigger mutation in the recipe's `allowedBaseTransactionTypes`. PREPAID_AMORTIZATION→PURCHASE, DEFERRED_REVENUE→SALE, ACCRUAL_REVERSAL→JOURNAL_MANUAL, IFRS16_LEASE→JOURNAL_MANUAL, LOAN_AMORTIZATION→JOURNAL_DIRECT_CASH_IN \| JOURNAL_MANUAL | `get_capsule_recipe(name).allowedBaseTransactionTypes` ↔ trigger mutation |
|
|
315
|
-
| **Currency** | Recipe `currency`, every `*AccountResourceId` account's `currencyCode`, and base trx `currencyCode` ALL must match (v1 recipes are single-currency) | `currencyCode` of every input account, via `search_accounts(filter: {resourceId: {in: [<ids>]}})` |
|
|
316
|
-
| **Account class** | Each `*AccountResourceId` slot has an `x-accountClass` constraint in the recipe inputSchema (Asset/Liability/Expense/Revenue) | `get_capsule_recipe(name).versions[0].inputSchema.properties.<field>['x-accountClass']` vs each account's `accountClass` from the same `search_accounts` read |
|
|
317
|
-
|
|
318
|
-
**The canonical pre-flight is one call**: `preview_capsule_recipe(recipeName, inputs)`. Pure-compute (no side effects). Surfaces every input/class/currency violation as a clean 422 with a concrete `error_type`. The trigger mutation does NOT surface these; it just returns its normal success status with no `capsuleRecipeJob`. Always preview first if you can't trust the inputs.
|
|
319
|
-
|
|
320
|
-
See `jaz-api` Rule 143 (silent-null failure mode + diagnosis sequence), Rule 144 (closed enum on `recipeName`), Rule 150 (RECIPE_INVALID_BASE_TRANSACTION_TYPE, preview-only, NOT trigger), Rule 156 (ERR_RECIPE_ACCOUNT_CURRENCY_MISMATCH), Rule 157 (x-accountClass slot constraint).
|
|
321
|
-
|
|
322
|
-
**Recovery flow** (when `capsuleRecipeJob` is null on the response):
|
|
323
|
-
|
|
324
|
-
1. **Re-run `preview_capsule_recipe`** with the same `recipeName` + `inputs`. The 422 you get back is the exact reason the trigger mutation silently nulled. Fix the input and retry.
|
|
325
|
-
2. **Poll `search_background_jobs --filter '{"baseTransactionResourceId":{"eq":"<id>"}}'`**: if a `FAILED` job exists, `errorDetails` has the publish failure. If no job exists, the publish never queued (validation rejected pre-queue).
|
|
326
|
-
3. **Job status `FAILED`** → `resume_capsule_recipe` (≤3 attempts) OR `rollback_capsule_recipe(dryRun=true)` first, then `rollback_capsule_recipe(dryRun=false)`. Record the judgment: `jot(kind: RECOVERY)` naming resume or rollback and the basis.
|
|
327
|
-
4. **Capsule wasn't created via the recipe engine** → rollback returns 422 `RECIPE_ROLLBACK_JOB_NOT_FOUND`; use `delete_capsule` for legacy capsules.
|
|
328
|
-
|
|
329
|
-
**DO NOT** use server-side execution for `fx-reval`: Jaz auto-handles ALL period-end IAS 21.23 FX translation; double-posting risk identical to the offline `execute_recipe(recipe: 'fx-reval')` warning.
|
|
330
|
-
|
|
331
|
-
### Template Customization (optional): `templateOverrides`
|
|
332
|
-
|
|
333
|
-
A recipe generates text for the capsule title/description, each scheduled posting's label/description, the journal-line memos, and the schedule reference. To customize any of those, pass `templateOverrides` alongside `inputs` on `preview_capsule_recipe` and on the `capsuleRecipe` trigger payload:
|
|
334
|
-
|
|
335
|
-
```
|
|
336
|
-
capsuleRecipe: {
|
|
337
|
-
recipeName: "LOAN_AMORTIZATION",
|
|
338
|
-
inputs: { ... },
|
|
339
|
-
templateOverrides: [
|
|
340
|
-
{ slotKey: "capsule.title", template: "Loan {{loanReference}}" },
|
|
341
|
-
{ slotKey: "leg.description.payment", template: "" } // empty string clears a nullable slot
|
|
342
|
-
]
|
|
343
|
-
}
|
|
344
|
-
```
|
|
345
|
-
|
|
346
|
-
Discovery + rules:
|
|
347
|
-
- **Discover the slots first**: `get_capsule_recipe(name).data.versions[].templateSlots[]` lists each `slotKey`, its `uiLabel`, `defaultTemplate`, `supportedVariables`, and `nullable`. Send only the slots you change.
|
|
348
|
-
- Each `slotKey` MUST be one the recipe publishes; every `{{var}}` in `template` MUST be in that slot's `supportedVariables`; `template` ≤2000 chars; an empty `template` clears a `nullable` slot (omit the entry to keep the default; a non-nullable slot rejects a blank).
|
|
349
|
-
- **Preview is the gate.** `preview_capsule_recipe` surfaces override mistakes as clean 422 `ERR_RECIPE_OVERRIDE_*` codes. On the trigger path, an invalid override falls under the same best-effort silent-null behavior as everything else in the payload (see the three gates above), so preview before you trigger.
|
|
350
|
-
- CLI: `clio capsule-recipes get <name>` prints the slots; `clio capsule-recipes preview --recipe <name> --inputs '{...}' --template-override capsule.title='Loan {{loanReference}}'` (repeatable).
|
|
351
|
-
|
|
352
287
|
## See Also
|
|
353
288
|
|
|
354
289
|
- **API field names and payloads**: Load the `jaz-api` skill (see `references/endpoints.md` and `references/field-map.md`)
|
|
290
|
+
- **Three-step flow, action-to-tool mapping, capsule rules**: `references/building-blocks.md`
|
|
355
291
|
- **Capsule API**: `POST /capsules`, `POST /capsuleTypes` (see api skill's `references/full-api-surface.md`)
|
|
356
292
|
- **Scheduler API**: `POST /scheduled/journals`, `POST /scheduled/invoices`, `POST /scheduled/bills`
|
|
357
293
|
- **Fixed Assets API**: `POST /fixed-assets` (see api skill's `references/feature-glossary.md`)
|
|
358
294
|
- **Enrichments overview**: See `references/building-blocks.md` or api skill's `references/feature-glossary.md`
|
|
359
|
-
- **
|
|
295
|
+
- **Scheduler tools**: `create_scheduled_journal`, `create_scheduled_invoice`, `create_scheduled_bill`
|
|
296
|
+
- **Operational close workflows (jaz-jobs)**: For the close playbooks that drive these recipes, load the `jaz-jobs` skill: month-end close (period-end recognition + accruals + a check of the platform's FX revaluation), GST/VAT filing (ECL review during return prep), and year-end close (year-end true-ups, dividends, intercompany elimination).
|