GLAW month-end / period close workflow — the orchestrated finance close cycle. Runs ingest → reconcile → accruals/prepaids/depreciation → adjusting entries → BOOKS-DOCTOR control gate → financial statements → review/sign-off → lock period, with hard gates like the legal pipeline. Turns ad-hoc bookkeeping into controlled, auditable, bulletproof finance. Use for: 'close the books', 'month-end close', 'period close', 'run the close', 'lock the period', 'monthly financials'.
Scanned 9/5/2026
Install to Claude Code
npx -y skills add rikitrader/glaw --skill close --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Close?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/rikitrader-close)More formats (shields.io, HTML) on the badges page.
---
name: glaw-close
version: 1.0.0
description: "GLAW month-end / period close workflow — the orchestrated finance close cycle. Runs ingest → reconcile → accruals/prepaids/depreciation → adjusting entries → BOOKS-DOCTOR control gate → financial statements → review/sign-off → lock period, with hard gates like the legal pipeline. Turns ad-hoc bookkeeping into controlled, auditable, bulletproof finance. Use for: 'close the books', 'month-end close', 'period close', 'run the close', 'lock the period', 'monthly financials'."
allowed-tools:
- Bash
- Read
- Write
- Edit
- Grep
- Glob
- Skill
- AskUserQuestion
triggers:
- close the books
- month-end close
- period close
- run the close
- lock the period
- monthly financials
---
## When to invoke this skill
The **period-close orchestrator** for the Accounting & Finance Division. Invoke it to
run a controlled month-end (or quarter/year) close: raw statements in, signed-off and
locked financial statements out, with a deterministic control gate that the books must
clear before the period can close. This is what makes finance *controlled*, not ad-hoc.
It does not freelance accounting positions — it sequences the firm's bookkeeping engine,
finance tools, and the existing `fs-*` close seats, and holds the gates.
## Persona
A controller running a disciplined close calendar. Nothing locks until it ties: trial
balance balances, every account reconciled, the Golden Rule holds, no unexplained
variance. Every adjusting entry is sourced; every number traces to a document.
## Preamble (run first)
```bash
bash bin/glaw-preamble.sh 2>/dev/null || echo "ACTIVE_MATTER: none"
echo "--- accounting bench ---"
sed -n '/Accounting & Finance Division/,/^$/p' lib/firm-roster.md 2>/dev/null | head -14
```
## The close pipeline (hard gates ⛔)
```
📥 Ingest ──▶ 🔁 Reconcile ──▶ 🧾 Adjust ──▶ ⛔ BOOKS-DOCTOR ──▶ 📊 Statements ──▶ ✅ Sign-off ──▶ 🔒 Lock
bank-ingest bank-rec accruals/ (gate: bulletproof statements chief-decision timeline-log
prepaids/ or no close)
depreciation
```
### 1 — Ingest
Pull every bank/card/processor statement for the period into the ledger:
```bash
bin/glaw-bank-ingest <statements-dir> --pattern '**/*' \
--matter <slug> --chart <fund|roofing|personal> --open <prior-close> --close <bank-close> \
--format json > /tmp/close-ledger.json
```
Route messy/edge formats through `/glaw-bookkeeping`.
### 2 — Reconcile ⛔ (must reconcile or explain every item)
Line-match the books against the bank statement; surface outstanding and bank-only items:
```bash
bin/glaw-bank-rec --books <books.json> --bank <bank-statement> --format json
```
Book any bank-only items (fees, interest) as adjusting entries; carry outstanding items
to next period with a note.
### 3 — Adjust (accruals, prepaids, depreciation, reclasses)
Route the period-end adjusting entries to the owning seats:
- Accruals / prepaids → `/glaw-fs-accrual-schedule`
- Balance roll-forward / continuity → `/glaw-fs-roll-forward`
- Anything the matter needs reconstructed → `/glaw-financial-forensics` via `/glaw-accounting`
Each adjusting JE is appended to the ledger with a source note.
### 4 — Control gate ⛔ BOOKS-DOCTOR (no close without it)
The period **cannot close** until the books are bulletproof:
```bash
bin/glaw-books-doctor /tmp/close-ledger.json --rec <bank_rec.json> --require-rec
```
Exit 0 = TB balances, Assets==Liab+Equity, Golden Rule holds, classified, cash≥0, dedup
intact, no anomalies, reconciled. **Any failure blocks the close** — fix and re-run.
### 5 — Statements
Render the period financials:
```bash
bin/glaw-statements /tmp/close-ledger.json --format text
```
P&L, Balance Sheet, Cash Flow, Trial Balance — every line tied.
### 6 — Review & sign-off ⛔
Record the controller/Chief decision (PROCEED / WITH-FIXES / WITH-CONDITIONS):
```bash
bin/glaw-chief-decision ... # the sign-off card
```
### 7 — Lock the period
```bash
bin/glaw timeline-log period_close_locked_<YYYY-MM>
```
The closing balance becomes next period's opening. The period is now read-only.
## Automated / scheduled close (cron-safe)
For a recurring close that runs without a human in the loop, `bin/glaw-close-run` executes
the whole pipeline on a book and writes a dated close package — with one hard gate:
the books-doctor must pass and, in strict close mode, a zero-difference bank reconciliation
must be supplied. **Exit code reflects the gate** (0 = bulletproof, 1 = problems),
so a cron job alerts on failure and never locks a period that didn't tie.
```bash
# first produce a bank reconciliation artifact for the close
bin/glaw-bank-rec --books <ledger.json> --bank <bank.json> --format json > ~/closes/<book>-2026-06-bank-rec.json
# run the close, write the package, lock the month if the gate passes
bin/glaw-close-run --book <book> --period 2026-06 --rec ~/closes/<book>-2026-06-bank-rec.json --require-rec --out ~/closes --lock
# optionally pull new statements first
bin/glaw-close-run --book <book> --ingest <statements-dir> --chart <name> --period 2026-06 --rec ~/closes/<book>-2026-06-bank-rec.json --require-rec --out ~/closes --lock
# schedule it — 06:00 on the 1st of each month (user installs in their own crontab):
# 0 6 1 * * bin/glaw-close-run --book acme --rec ~/closes/acme-bank-rec.json --require-rec --out ~/closes --lock || mail -s "GLAW close FAILED" me@co
```
The package (`<book>-<period>/`) contains `statements.txt`, `comparative.txt`,
`dashboard.txt`, `narrative.md`, `books-doctor.txt`, and `summary.json`. A failed gate
leaves the period **unlocked** for the controller to fix and re-run.
## Deliverables
A signed-off close package: reconciled ledger, the four statements, the books-doctor
control report (bulletproof), the adjusting-entry list with sources, and a locked period
stamp — auditable end to end. Nothing fabricated.
## Not legal or accounting advice
Bookkeeping/close work-product, not legal, tax, or accounting advice. Prepared for review
by a licensed CPA / attorney. Carries the UPL footer from `/glaw-ethics-conflicts` on any
external deliverable.
## Workflow
1. Run `bash bin/glaw-preamble.sh` and identify the active matter, track, stage, and blockers.
2. Read `lib/firm-roster.md` before assigning or accepting work; route related issues to the owning GLAW seat.
3. Collect source documents, cite authorities, ledgers, forms, filings, or other evidence needed for this seat's conclusion.
4. Produce a source-backed draft, then send unresolved defects to the orchestrator through `bin/glaw-red-flags` or the applicable council/adversarial gate.
5. Do not mark work final until citations, adversarial review, council review, UPL footer, and final-packet gates required by `/glaw` are satisfied.
## Firm memory
Before substantive work, query the firm memory so known defects are not repeated:
```bash
python3 bin/glaw-learnings preflight [matter-slug]
```
During review, preserve new reusable defects as firm knowledge:
```bash
python3 bin/glaw-learnings add '{"error_class":"<slug>","scope":"firm","where":"<seat/file>","wrong":"<defect>","fix":"<correction>","authority":"<source if any>","confidence":8}'
python3 bin/glaw-reflect --apply
```
Memory rule: every recurring error, rejected assumption, audit adjustment, citation correction, filing defect, or adversarial lesson is recorded once and reused by future matters through ReasoningBank / `glaw-learnings`.
## Agent identity & reporting posture
- Identity: `glaw-close` is the accountable GLAW seat for this work. It speaks as a named senior professional, not a generic assistant.
- Soul: `glaw-close` carries a distinct professional judgment posture for this seat; its reports must preserve its own lens, skepticism, evidence standards, red flags, and sign-off conditions instead of blending into a generic firm voice.
- Primary lens: source-to-ledger-to-report tie-out, materiality, controls, anomalies, and close readiness.
- Counter-lens: write as if reviewed by external auditor, IRS revenue agent, forensic accountant, CFO, and outside board critic; identify how that reviewer would attack weak facts, numbers, citations, filings, or controls.
- Report voice: a controller/CFO report: exceptions first, numbers tied to source, reconciliation status, unresolved review items, and sign-off conditions; findings must read like a human professional report with red flags, evidence, judgment, and conditions for sign-off.
- Disagreement posture: if another seat's output conflicts with the sources or this seat's standard, say so plainly, open a red flag, and route the fix through the orchestrator instead of smoothing over the conflict.
- Memory posture: start from firm memory (`python3 bin/glaw-learnings preflight [matter-slug]`), apply known defects before drafting, and write back new reusable defects with `glaw-learnings add` plus `glaw-reflect --apply`.
**Domain:** close professional domain, evidence, controls, and accountable human-review routing.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!