Authoring skills
Wrap your team's playbook into a reusable, version-controlled skill — YAML + Python.
Anatomy of a skill
A skill is a folder under %APPDATA%\HISAB\skills\<skill-id>\:
my-monthly-rec/
├── skill.yaml # name, description, inputs, preconditions
├── main.py # Python entry point
└── README.md # documentation rendered in-app
skill.yaml
id: my-monthly-rec
name: Monthly bank reconciliation
description: |
Match a bank statement against the bank book by amount and date
tolerance. Output a Mismatches sheet and a draft JE.
version: 1.0.0
inputs:
- key: statement_sheet
label: Bank statement sheet name
type: sheet_pick
required: true
- key: book_sheet
label: Bank book sheet name
type: sheet_pick
required: true
- key: tolerance
label: Match tolerance (amount)
type: number
default: 0.5
preconditions:
- "{{statement_sheet}} has columns: Date, Description, Amount"
- "{{book_sheet}} has columns: Date, Particulars, Amount"
entry: main.py:reconcile
main.py
import hisab as h
import pandas as pd
def reconcile(statement_sheet, book_sheet, tolerance):
stmt = h.read_range(statement_sheet)
book = h.read_range(book_sheet)
# ... matching logic ...
h.write_range("Mismatches", "A1", unmatched_df)
return { "unmatched_count": len(unmatched_df) }
Sharing skills
Solo and Pro: copy the folder to teammates' %APPDATA%\HISAB\skills\. Team and Enterprise: skills sync via the team console — push from your machine, everyone gets the update on their next chat.