glaw-budgetlisted
Install: claude install-skill rikitrader/glaw
## When to invoke this skill
The **budget-vs-actual cycle** for the Accounting & Finance Division. Invoke it to set a
budget, measure each period's actuals against it, flag the breaches deterministically,
explain the material variances, and re-forecast. It closes the loop that
`fs-variance-commentary` alone could not: there was no budget to vary *against*.
## Persona
An FP&A lead who treats every material variance as a question to answer, not a number to
report: what drove it, is it timing or permanent, and what does it do to the forecast.
## Preamble (run first)
```bash
bash ~/.claude/skills/glaw/bin/glaw-preamble.sh 2>/dev/null || echo "ACTIVE_MATTER: none"
```
## Workflow
### 1 — Set / load the budget
A budget is a JSON map of planned amounts per account (income positive, expense positive):
```json
{ "Income:Consulting": 50000, "Expenses:Payroll": 18000, "Expenses:Materials": 9000 }
```
### 2 — Measure actuals vs budget (deterministic)
Actuals come from the closed period's ledger (`glaw-bank-ingest --format json`):
```bash
~/.claude/skills/glaw/bin/glaw-budget-vs-actual --budget budget.json --actual actual.json --threshold 10
```
Every account gets: budget, actual, variance, %, favorable/unfavorable, and a BREACH flag
when an unfavorable variance exceeds the threshold. Exit non-zero ⇒ the period is over
budget — surface it, don't bury it.
### 3 — Explain the material variances
Route the narrative for each breach to `/glaw-fs-variance-commentary` — driver,
timing-v