Best for
- "list our active accruals" / "refresh the accruals register".
- "are any accruals stale" / "anything I should reverse".
- "what reversing journal entries are due this month".
gethouston/houston/store/agents/bookkeeping/.agents/skills/review-my-accruals/SKILL.md
Use when the user says 'list our active accruals' / 'refresh the accruals register' / 'are any accruals stale' / 'what reversing entries are due' - I recompute current balances for every active accrual (prepaid rent, prepaid SaaS, deferred revenue, PTO, accrued payroll, accrued interest), flag stale items, and surface reversing-entry candidates. Reads `accruals.json` + `journal-entries.json` + chart of accounts; rewrites `accruals/register.md` and upserts `accruals.json`.
Decision brief
Living register of every accrual books carry. Each run recomputes balances from underlying journal entries, classifies each row (active / reversed / stale / written-off), surfaces reversing-entry candidates for current period. Register live doc - rewritten in place, NOT indexed…
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/gethouston/houston --skill "store/agents/bookkeeping/.agents/skills/review-my-accruals"Inspect the Agent Skill "review-accruals" from https://github.com/gethouston/houston/blob/10d9551da3a639803421a9004117f9e5633ce3a1/store/agents/bookkeeping/.agents/skills/review-my-accruals/SKILL.md at commit 10d9551da3a639803421a9004117f9e5633ce3a1. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
"list our active accruals" / "refresh the accruals register".
I run external work through Composio. Before this skill runs I check that the categories below are linked. Missing → I name the category, ask you to connect it from the Integrations tab, stop.
I read your bookkeeping context first. For every required field that's missing I ask ONE plain-language question (best modality: connected app file drop URL paste) and wait.
1. Read context. Load context/bookkeeping-context.md, config/context-ledger.json, config/chart-of-accounts.json. Chart of accounts missing → stop, ask user run build-chart-of-accounts first. Note today's date + current accounting period (YYYY-MM).
accruals/register.md (living document - NOT indexed in outputs.json)
Permission review
The documentation asks the agent to read local files, directories, or repositories.
Read current file.Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 84/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 91 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Living register of every accrual books carry. Each run recomputes balances from underlying journal entries, classifies each row (active / reversed / stale / written-off), surfaces reversing-entry candidates for current period. Register live doc - rewritten in place, NOT indexed in outputs.json.
run-monthly-close after reconciliations, before prep-journal-entry dispatches reversing batch.I run external work through Composio. Before this skill runs I check that the categories below are linked. Missing → I name the category, ask you to connect it from the Integrations tab, stop.
This skill never blocks on a missing connection.
I read your bookkeeping context first. For every required field that's missing I ask ONE plain-language question (best modality: connected app > file drop > URL > paste) and wait.
Read context. Load context/bookkeeping-context.md, config/context-ledger.json, config/chart-of-accounts.json. Chart of accounts missing → stop, ask user run build-chart-of-accounts first. Note today's date + current accounting period (YYYY-MM).
Read current accruals index. Load accruals.json at agent root (empty array if absent). Row schema: {id, accrualName, glCode, currentBalance, reversing, lastActivity, status: "active" | "reversed" | "stale" | "written-off", notes, createdAt, updatedAt}. Keep in-memory list keyed by id.
Read supporting journal entries. Load journal-entries.json, filter to entries whose lines[].glCode matches any accrual's glCode, ordered by date ascending. Activity history used to recompute balances.
Recompute current balances. For each active accrual row:
glCode since row's createdAt.currentBalance. Update lastActivity to max journal entry date hitting this account code. No journal entries → leave lastActivity unchanged.Discover net-new accruals. Any glCode appearing in chart-of-accounts.json under statementSection containing "prepaid", "deferred", "accrued", or "pto" but no row in accruals.json → create new row. Infer accrualName from account name + first journal entry memo. status: "active". Default reversing: false unless source journal entry had reversing: true.
Classify status.
active - abs(currentBalance) > 0.00 AND lastActivity within last 90 days.stale - abs(currentBalance) > 0.00 AND lastActivity older than 90 days. Flag as write-off-or-reclass candidate. Note recommended action in notes ("consider reclass to {X}" or "candidate for write-off journal entry").reversed - abs(currentBalance) <= 0.01 AND reversing journal entry exists referencing original accrual.written-off - only user can set. Never transition automatically.Identify reversing-entry candidates for current period. Row is reversing candidate if:
reversing: true (original accrual booked as reversing), ANDactive, ANDid.Collect into reversing_candidates list with suggested reversal amount (negative of currentBalance) + originating journal entry id.
Rewrite accruals/register.md. Living doc - overwrite in place. Structure:
accrualName, glCode, currentBalance, lastActivity, reversing flag.prep-journal-entry type=accrual to draft each.Atomic write: accruals/register.md.tmp → rename.
Upsert accruals.json. Read-merge-write:
id matches → update mutable fields (currentBalance, lastActivity, status, notes, updatedAt). New id → append.createdAt - never touch.written-off only if user explicitly confirmed.accruals.json.tmp → rename.DO NOT append to outputs.json. Register is living doc. accruals.json flat-at-root index, not deliverable.
Summarize to user. One paragraph: how many actives / stale / reversing-candidates this period, total carrying balance, exact next move (e.g., "2 reversing journal entries due - run prep-journal-entry type=accrual on each"). Never propose posting; drafts only.
accruals/register.md (living document - NOT indexed in outputs.json)accruals.json (flat-at-root index - upserted, not overwritten)