Skill catalogue
Twelve skills ship with HISAB. Each one is a YAML file + Python module. You can use them, modify them, or fork them as a starting point for your own.
Finance close
- bank-reconciliation — Match a bank statement against the bank book by amount + date tolerance. Outputs matched, unmatched-in-statement, unmatched-in-book.
- accrual-booking — From a list of invoices received without bills, draft accrual JEs and the reversing JEs for the following period.
- prepaid-amortisation — Spread prepaid balances over their service period, draft monthly amortisation JEs.
- depreciation-schedule — From an asset register, compute monthly depreciation (straight-line, declining balance, WDV).
AR / AP / cash
- ar-ageing — Bucket outstanding receivables by age (0-30, 31-60, 61-90, 90+). Aggregate by customer.
- ap-ageing — Same, for payables. With early-payment discount opportunities flagged.
- collection-emails — Draft customer-by-customer dunning emails based on ageing, tone configurable.
- cash-position — Roll up multi-bank, multi-currency cash position with FX conversion.
Analysis & reporting
- variance-analysis — Budget vs actual with driver decomposition (price × volume × mix). Generates narrative commentary.
- pnl-statement — Standard P&L from trial balance with period-over-period comparison.
Audit
- audit-sample — Sample selection (random, monetary unit, judgemental) for SOX testing. Documents the methodology.
- control-testing — Workpaper template for control testing, populated from the sample.
Calling a skill
From the chat:
/skill bank-reconciliation
statement_sheet: "Bank Statement"
book_sheet: "Bank Book"
tolerance: 5.00
Or just describe what you want in plain English — the AI picks the right skill automatically:
Reconcile the Bank Statement sheet with Bank Book. Tolerance of ₹5.
Skill internals
Each skill is a folder under %APPDATA%\HISAB\skills\<skill-id>\ containing:
skill.yaml— name, description, inputs (with types + validation), preconditions, outputsmain.py— the Python entry point. Receives inputs as kwargs, returns a dict of outputs.README.md— optional documentation rendered when the user clicks "How it works".
See Authoring skills for the full format and a walkthrough of building one.