src/skills/practice/SKILL.md
Use this skill whenever an accounting practitioner is doing client work in Jaz — closing the books, filing GST, year-end statutory, onboarding a new client. Covers the practitioner workspace at ~/Documents/Jaz Practice (clients/<slug>/CLIENT.md and engagements/<slug>/ENGAGEMENT.md), engagement routing (monthly-close | quarterly-gst | annual-statutory | onboarding | adhoc), and how the agent loads client context before invoking jaz-jobs blueprints, jaz-recipes recipes, and jaz-api tools. Triggers on intent like "close the books for X", "file GST for Y", "onboard new client Z", "what's outstanding for Acme this month". Pair with jaz-jobs (workflow blueprints), jaz-recipes (IFRS recipes + calculators), jaz-api (REST gotchas), and jaz-conversion (data migration during onboarding).
npx skillsauth add teamtinvio/jaz-ai jaz-practiceInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Practitioner-side scaffolding. The agent's entry point when an accountant is doing client work in Jaz.
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).
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.
| Engineer (cct-toolkit) | Practitioner (jaz-practice) | |-------------------------|------------------------------| | Workspace = a feature being built | Workspace = a client being served | | Sub-folder = task category | Sub-folder = engagement type (recurring/special) | | FEATURE.md hub | CLIENT.md (master) + ENGAGEMENT.md (per-engagement) | | Decisions = architecture | Decisions = accounting treatment (estimate, classification, scope) | | Done = PR merged | Done = engagement signed-off, period locked, deliverable filed |
The persistent unit is the client, not the project. Engineering features come and go; clients accumulate over years. The folder structure must support: historical immutability (last year's audit file is sacred), recurring rhythm (monthly close, quarterly GST), ad-hoc work (M&A, restructuring), and cross-engagement context (the same client's tax position informs their audit risk).
~/Documents/Jaz Practice/ ← override with PRACTICE_HOME env or --root
PRACTICE.md ← firm-level config (one-time)
templates/ ← practitioner-overridable copies of engagement templates
clients/<client-slug>/
CLIENT.md ← master file: legal entity, FY, GST, COA, banks, recurring accruals, materiality
engagements/<engagement-slug>/
ENGAGEMENT.md ← per-engagement: type, period, status, scope, queries, decisions, journal
inputs/ ← raw client docs (statements, invoices, receipts)
workpapers/ ← TBs, analyses, sample selections
deliverables/ ← signed reports, filed returns, board packs
recurring/{monthly,quarterly,annual}/<period>/ ← close packages, GST returns, statutory
correspondence/ ← IRAS letters, ACRA notices
_archive/ ← closed engagements, prior periods
See references/client-md-schema.md and references/engagement-md-schema.md for the full field-by-field schema.
When the practitioner expresses intent, route to the right engagement type and load the matching deep reference:
| Practitioner says... | Engagement type | Deep reference | Driver tools |
|----------------------|-----------------|----------------|---------------|
| "Close the books for <client> <month>" | monthly-close | references/monthly-close.md | generate_month_end_blueprint + accrual / depreciation / fx-reval recipes |
| "File GST/F5 for <client> <quarter>" | quarterly-gst | references/quarterly-gst.md | generate_gst_vat_blueprint + generate_vat_ledger |
| "Year-end / annual / statutory for <client>" | annual-statutory | references/annual-statutory.md | generate_year_end_blueprint + generate_audit_prep_blueprint + generate_statutory_filing_blueprint |
| "Onboard <new client>" / "Take over from <prior firm>" | onboarding | references/onboarding.md | practice_onboard_client + jaz-conversion if migrating |
| Anything else | adhoc | (no reference) | Whatever the practitioner names |
~/Documents/Jaz Practice/ exists (or PRACTICE_HOME is set), call practice_list_clients first to surface the available client slugs. If the practitioner's intent names a client, slug it and call practice_load_client.JAZ_API_KEY per Claude session (set once in connector / settings / env). The CLIENT.md.jaz_api_key_override field is reserved for v5.3 multi-org runtime selection — not yet wired. Don't prompt the practitioner to re-enter a key per client. For multi-org agencies today: use one Jaz org per Claude session and switch sessions when switching orgs.practice_load_client's response) or create one with practice_create_engagement(clientSlug, type, period). The engagement folder gets the type-specific template.references/<type>.md for the canonical playbook — it names every tool / recipe / calculator and every CLIENT.md / ENGAGEMENT.md field.workpapers/<task>.md.signed-off / filed / archived while items remain unticked.The 6 practice_* MCP tools and the CLI command group are filesystem scaffolding only. They never call the Jaz API. All real accounting work goes through:
If you find yourself wanting a new "do this accounting work" tool inside jaz-practice, stop — extend the existing skill instead, and add a cross-reference here.
This skill is intentionally focused on accounting workflows. Out of scope:
jaz-jobs/SKILL.md — 12 workflow blueprints (cross-referenced from each engagement-type playbook)jaz-recipes/SKILL.md — 16 IFRS recipes + 13 calculatorsjaz-api/SKILL.md — REST API gotchasjaz-conversion/SKILL.md — Xero/QB/Sage/MYOB migration playbookjaz-cli/SKILL.md — terminal automation referencereferences/monthly-close.md — canonical monthly-close playbookreferences/quarterly-gst.md — canonical GST/F5 playbookreferences/annual-statutory.md — canonical year-end playbookreferences/onboarding.md — canonical new-client playbookreferences/client-md-schema.md — every CLIENT.md fieldreferences/engagement-md-schema.md — every ENGAGEMENT.md fieldreferences/troubleshooting.md — common error classes + recovery actionstools
Use this skill when answering ad-hoc data questions that aren't covered by download_export (canonical reports — anomaly, audit, aging, P&L, BS, GL, statement of account) or search_* tools (entity listings with structured filters). Pseudo-SQL is a read-only DSL against Jaz's curated reporting schema — single SELECT statement, ≤100 row sync preview or full async CSV export. Tools: get_pseudo_sql_schema (call FIRST — returns live catalog + downloadable jaz-pseudo-sql.md skill body), preview_pseudo_sql, export_pseudo_sql, get_pseudo_sql_export, run_pseudo_sql_and_download.
tools
Use this skill when answering ad-hoc data questions that aren't covered by download_export (canonical reports — anomaly, audit, aging, P&L, BS, GL, statement of account) or search_* tools (entity listings with structured filters). Pseudo-SQL is a read-only DSL against Jaz's curated reporting schema — single SELECT statement, ≤100 row sync preview or full async CSV export. Tools: get_pseudo_sql_schema (call FIRST — returns live catalog + downloadable jaz-pseudo-sql.md skill body), preview_pseudo_sql, export_pseudo_sql, get_pseudo_sql_export, run_pseudo_sql_and_download.
tools
Use this skill whenever an accounting practitioner is doing client work in Jaz — closing the books, filing GST, year-end statutory, onboarding a new client. Covers the practitioner workspace at ~/Documents/Jaz Practice (clients/<slug>/CLIENT.md and engagements/<slug>/ENGAGEMENT.md), engagement routing (monthly-close | quarterly-gst | annual-statutory | onboarding | adhoc), and how the agent loads client context before invoking jaz-jobs blueprints, jaz-recipes recipes, and jaz-api tools. Triggers on intent like "close the books for X", "file GST for Y", "onboard new client Z", "what's outstanding for Acme this month". Pair with jaz-jobs (workflow blueprints), jaz-recipes (IFRS recipes + calculators), jaz-api (REST gotchas), and jaz-conversion (data migration during onboarding).
development
Use this skill when modeling complex multi-step accounting transactions — anything that spans multiple periods, involves changing amounts, or requires linked entries. Covers 16 IFRS-compliant recipes (prepaid amortization, deferred revenue, loans, IFRS 16 leases, hire purchase, fixed deposits, asset disposal, FX revaluation, ECL, IAS 37 provisions, dividends, intercompany, capital WIP) and 13 financial calculators that produce execution-ready blueprints. Also use when the user mentions depreciation, amortization, lease accounting, loan schedules, or any IFRS calculation.