Best for
- "draft our chart of accounts" / "we need one" / "we don't have
- "revise the chart of accounts to break out R&D" / "add a deferred-revenue line" /
- Called implicitly by import-my-prior-books when prior export
gethouston/houston/store/agents/bookkeeping/.agents/skills/build-my-chart-of-accounts/SKILL.md
Draft a startup-optimized chart of accounts shaped for your entity, accounting method, and revenue model — with R&D / Sales & Marketing / General & Admin operating expenses breakouts, deferred revenue and accrued PTO lines, SAFE-note and convertible equity lines, and one cash sub-line per registered bank account. Supports in-place revisions that preserve every unchanged code so historical categorizations don't silently reroute. I never push the chart of accounts to QuickBooks or Xero — you or yo
Decision brief
The chart of accounts is the shape of every financial statement I produce. I draft yours opinionated for early-stage startups: R&D visibility for the credit, Sales & Marketing / General & Admin split for gross-margin framing, accrual-ready liability lines even if you're on cash,…
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/build-my-chart-of-accounts"Inspect the Agent Skill "build-my-chart-of-accounts" from https://github.com/gethouston/houston/blob/10d9551da3a639803421a9004117f9e5633ce3a1/store/agents/bookkeeping/.agents/skills/build-my-chart-of-accounts/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
"draft our chart of accounts" / "we need one" / "we don't have
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 config. Load config/context-ledger.json. Required fields for good first-pass chart of accounts: - universal.company.entityType (drives equity section - c-corp gets common + preferred + APIC; LLC gets member capital). - universal.accountingMethod (cash-only can omit defer…
No entry in outputs.json.
Permission review
No configured static risk pattern was detected
This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.
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
The chart of accounts is the shape of every financial statement I produce. I draft yours opinionated for early-stage startups: R&D visibility for the credit, Sales & Marketing / General & Admin split for gross-margin framing, accrual-ready liability lines even if you're on cash, and one cash sub-line per registered bank account so reconciliations map cleanly. Revisions land here only and preserve every unchanged code.
I never push the chart of accounts to QuickBooks or Xero. You or your accountant mirror it into the accounting system.
import-my-prior-books when prior export
includes a chart of accounts and ours is missing.process-my-statements Step 1 if chart of accounts absent -
but only after confirming inline.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 works fully offline against what you tell me. No connection blocks the run; connections just make the first draft more accurate.
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 config. Load config/context-ledger.json. Required
fields for good first-pass chart of accounts:
universal.company.entityType (drives equity section - c-corp
gets common + preferred + APIC; LLC gets member capital).universal.accountingMethod (cash-only can omit deferred-rev,
accrued-PTO lines on request - default include so switch to
accrual frictionless).domains.banks.accounts[] (one Cash sub-line per bank account,
named with last4 so reconciliations map 1:1).domains.revenue.model (usage model gets Usage Revenue
sub-line; services gets Services Revenue separate from
recurring).domains.payroll.stockCompPosture (non-"none" posture gets
stock-based compensation expense + APIC-SBC equity lines).Any missing required field: ask ONE targeted question (modality hint: connected app > file > URL > paste), write atomically, continue.
Read existing chart of accounts if present. If
config/chart-of-accounts.json exists, load it. This run =
revision, not rewrite. Preserve every code unchanged.
Propose diffs (adds / renames / reparents) and confirm with user
before writing. Never reassign code from one name to different
concept - silently reroutes every historical transaction that
matched old code.
Assemble startup-optimized chart of accounts. Use structure below. Codes are strings; keep numeric ordering within each type so reports sort naturally.
Assets (10000-19999)
domains.banks.accounts[], named Cash - {bank} {last4}. Account
code format: 1{nnnn}. Add Cash - Stripe line if Stripe
connected as payment processor.Liabilities (20000-29999)
Equity (30000-39999)
Revenue (40000-49999)
revenue.model ∈ {usage, mix}).revenue.model ∈ {services, mix}).Cost of goods sold (50000-59999)
Operating expenses (60000-79999) - opinionated breakout makes chart of accounts startup-useful. Statement section prefixes keep P&L grouped:
statementSection: "operating-expenses.rd".statementSection: "operating-expenses.sm".statementSection: "operating-expenses.ga".Other (80000-89999) - below-the-line.
Suspense (99999) - statementSection: "operating-expenses.ga" so visible on P&L. Matches ledger's
universal.suspenseCode.
Schema. Every row:
{
code: string; // ALWAYS a string, never a number
name: string;
type: "asset" | "liability" | "equity" | "revenue" | "cogs" | "expense";
parent?: string; // code of the parent row for grouped display
statementSection: string; // e.g. "operating-expenses.rd", "assets.current"
description?: string; // one-line disambiguation for categorizers
}
Validate before writing.
code is string and unique across whole chart of accounts.type (no 60500 between
65000 and 65500 - keep ranges clean).type has at least one row (no empty sections).parent (if set) resolves to row in chart of accounts.statementSection one of allowed sections:
assets.current, assets.noncurrent, liabilities.current,
liabilities.noncurrent, equity, revenue,
contra-revenue, cogs, operating-expenses.rd,
operating-expenses.sm, operating-expenses.ga, other.Write atomically. Write config/chart-of-accounts.json.tmp,
then rename. Update
config/context-ledger.json → universal.coa with
{present: true, path: "config/chart-of-accounts.json", framework, lastUpdatedAt} (read-merge-write).
Revision safeguard. If revision:
config/prior-categorizations.json and warn if any vendor
still maps to that code - user must remap vendors or keep
code.name in place - categorizations keyed on code safe.DO NOT append to outputs.json. Chart of accounts is config, not
deliverable.
Summarize to user. Counts per type, any adds / renames /
warnings, next move ("drop statements into
statements/_inbox/ and I'll categorize against this chart of accounts").
config/chart-of-accounts.json - authoritative chart of accounts, schema per
Step 4.config/context-ledger.json - universal.coa refreshed
(read-merge-write).No entry in outputs.json.
Alternatives
coreyhaines31/marketingskills
When the user wants to figure out which marketing actually drives conversions and revenue, choose or interpret an attribution model, or reconcile conflicting numbers across tools. Also use when the user mentions "attribution," "attribution model," "first-touch vs last-touch," "multi-touch," "which channel drives revenue," "what's my real CAC," "my dashboards disagree," "Google/Meta says X but GA says Y," "media mix model," "MMM," "incrementality," "geo lift," "holdout test," "how did you hear ab
MoizIbnYousaf/marketing-cli
Backlink + distribution checklist that expands a site's KD ceiling beyond what on-page work alone can earn. Use when the user mentions 'backlinks', 'off-page SEO', 'directory submissions', 'guest posts', 'outreach targets', 'link building', 'submit to directories', 'get listed in listicles', 'Product Hunt launch backlinks', or asks 'how do I get more domain authority'. Generates a prioritized, researched target list across directories, listicles, and guest-post candidates — does NOT submit anyth
alirezarezvani/claude-skills
When the user wants to build a free tool for marketing — lead generation, SEO value, or brand awareness. Use when they mention 'engineering as marketing,' 'free tool,' 'calculator,' 'generator,' 'checker,' 'grader,' 'marketing tool,' 'lead gen tool,' 'build something for traffic,' 'interactive tool,' or 'free resource.' Covers idea evaluation, tool design, and launch strategy. For pure SEO content strategy (no tool), use seo-audit or content-strategy instead.
MoizIbnYousaf/marketing-cli
Plans free tools, calculators, generators, and interactive widgets that attract target audience through search and social sharing. Engineering as marketing — build something useful, capture leads. Use when someone wants to build a free tool for marketing, says 'free tool', 'calculator', 'generator', 'engineering as marketing', 'side project marketing', 'interactive widget', 'lead generation tool', 'SEO tool', 'growth hack', 'build something to attract users', or wants to attract users through ut