Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

Back to skills

Build My Chart Of Accounts

ASecurity

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...

113 stars
0 votes
0 copies
0 views
Added 9/19/2026
businessgoawsgcpapi

Works with

api

Security Analysis

A100/100

Scanned 9/19/2026

Install to Claude Code

$npx -y skills add gethouston/houston --skill build-my-chart-of-accounts --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Build My Chart Of Accounts?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Build My Chart Of Accounts
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/gethouston-build-my-chart-of-accounts/badge)](https://www.skillsdirectory.com/skills/gethouston-build-my-chart-of-accounts)

More formats (shields.io, HTML) on the badges page.

Download Zip
Files
SKILL.md
---
name: build-my-chart-of-accounts
description: "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 your accountant mirror it in."
version: 1
category: Bookkeeping
featured: no
image: ledger
integrations: [hubspot, stripe, quickbooks, xero, notion, slack]
x_houston:
  created_by: houston
  skill_schema: 1
---


# Build My Chart of Accounts

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.

## When to use

- "draft our chart of accounts" / "we need one" / "we don't have
  one yet".
- "revise the chart of accounts to break out R&D" / "add a deferred-revenue line" /
  "split hosting out of cost of goods sold".
- Called implicitly by `import-my-prior-books` when prior export
  includes a chart of accounts and ours is missing.
- Called implicitly by `process-my-statements` Step 1 if chart of accounts absent  -
  but only after confirming inline.

## Connections I need

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.

- **QuickBooks Online or Xero** (accounting) — optional, lets me read your existing chart of accounts from your accounting system as a starting point.
- **Stripe** (billing) — optional, helps me confirm how revenue and processor fees flow if you bill through Stripe.

This skill works fully offline against what you tell me. No connection blocks the run; connections just make the first draft more accurate.

## Information I need

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.

- **Your entity type** — Required. Why: drives the equity section (C-corp gets common / preferred / APIC; LLC gets member capital). If missing I ask: "What's the entity type, C-corp, S-corp, LLC, or something else?"
- **Cash vs. accrual accounting** — Required. Why: shapes whether I include deferred revenue and accrued PTO lines by default. If missing I ask: "Are we keeping the books on cash or on accrual?"
- **Your bank accounts and cards** — Required. Why: I make one cash sub-line per bank account so reconciliations map cleanly. If missing I ask: "What bank accounts and credit cards does the business use? Connecting QuickBooks or your bank feed is the easiest way."
- **Your revenue model** — Required. Why: SaaS subscription, usage, services, or mix changes which revenue lines I include. If missing I ask: "How does the business make money, recurring subscriptions, usage-based, services, or a mix?"
- **Your stock-comp posture** — Optional. Why: ISO / NSO / RSU triggers a stock-based compensation expense line and APIC-SBC equity line. If missing I ask: "Do you grant equity to employees yet? If you don't have it I keep going without stock-comp lines and we add them later."

## Steps
<!-- houston-workflow:v1 -->

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 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.

2. **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.

3. **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)**
   - Cash  -  one sub-line per bank account from
     `domains.banks.accounts[]`, named `Cash  -  {bank} {last4}`. Account
     code format: `1{nnnn}`. Add `Cash  -  Stripe` line if Stripe
     connected as payment processor.
   - Accounts receivable.
   - Prepaid Rent, Prepaid SaaS, Prepaid Insurance (separate lines  -
     amortize on different schedules).
   - Fixed Assets (plus paired Accumulated Depreciation  -  negative
     asset, shown as contra line).

   **Liabilities (20000-29999)**
   - Accounts payable.
   - Accrued Payroll, Accrued PTO (separate from payroll  -  PTO hits
     expense line over time, not at cutover).
   - Accrued Expenses (generic).
   - Deferred Revenue  -  short-term (<12mo) + long-term (>12mo) as
     separate lines for balance sheet split.
   - SAFE Notes, Convertible Notes (separate lines  -  different
     accounting posture on conversion).
   - Income Tax Payable.

   **Equity (30000-39999)**
   - C-corp: Common Stock, Preferred Stock, APIC, APIC-SBC (if
     stock-comp posture ≠ none), Retained Earnings.
   - LLC: Member Capital, Member Draws, Retained Earnings.
   - S-corp: Common Stock, APIC, Distributions, Retained Earnings.

   **Revenue (40000-49999)**
   - Recurring Revenue (subscription monthly revenue / annual revenue).
   - One-Time Revenue.
   - Usage Revenue (only if `revenue.model ∈ {usage, mix}`).
   - Services Revenue (only if `revenue.model ∈ {services, mix}`).
   - Contra-revenue: Refunds & Credits (negative).

   **Cost of goods sold (50000-59999)**
   - Hosting / Infrastructure (AWS, GCP, Vercel).
   - Third-Party API Fees (usage-billed APIs part of cost of goods sold, not R&D
     tools).
   - Payment Processing (Stripe, card fees).
   - Customer Support (if team size ≥ 10 and support function
     exists).

   **Operating expenses (60000-79999)**  -  opinionated breakout makes chart of accounts
   startup-useful. Statement section prefixes keep P&L grouped:

   - **R&D** (60000-64999)  -  R&D Wages, R&D Contractors, R&D
     Software, R&D Cloud (dev/staging, separate from cost of goods sold hosting),
     R&D Other. `statementSection: "operating-expenses.rd"`.
   - **Sales & Marketing** (65000-69999)  -  Sales & Marketing Wages, Advertising, Events &
     Sponsorships, Sales & Marketing Tools (HubSpot, Apollo, etc.), Sales & Marketing Other.
     `statementSection: "operating-expenses.sm"`.
   - **General & Admin** (70000-79999)  -  General & Admin Wages, Legal, Accounting, Rent,
     Insurance, General & Admin SaaS (Slack, Notion, 1Password, etc.), Office
     Supplies, Travel & Meals, General & Admin Other.
     `statementSection: "operating-expenses.ga"`.

   **Other (80000-89999)**  -  below-the-line.
   - Interest Income, Interest Expense.
   - FX Gain / Loss.
   - Gain / Loss on Disposal of Fixed Assets.

   **Suspense (99999)**  -  `statementSection:
   "operating-expenses.ga"` so visible on P&L. Matches ledger's
   `universal.suspenseCode`.

4. **Schema.** Every row:

   ```ts
   {
     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
   }
   ```

5. **Validate before writing.**
   - Every `code` is string and unique across whole chart of accounts.
   - Codes sort numerically within each `type` (no 60500 between
     65000 and 65500  -  keep ranges clean).
   - Every `type` has at least one row (no empty sections).
   - Every `parent` (if set) resolves to row in chart of accounts.
   - Every `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`.

6. **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).

7. **Revision safeguard.** If revision:
   - Compare against prior chart of accounts. For any **removed** code, check
     `config/prior-categorizations.json` and warn if any vendor
     still maps to that code  -  user must remap vendors or keep
     code.
   - For any **renamed** code (same code, different name), update
     `name` in place  -  categorizations keyed on `code` safe.
   - For any **newly added** code, log in user-facing summary so
     founder knows it exists for next run.

8. **DO NOT append to `outputs.json`.** Chart of accounts is config, not
   deliverable.

9. **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").

## Outputs

- `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`.

Attribution

gethoustongethouston
View sourceMore from gethouston →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Solution Architect

Designs system architecture, component specifications, and technical integration strategy. Use when: designing solutions, system architecture, technology stack, or integration approaches.

192 votes

Akorchak:Venture Assessment

Generate a comprehensive VC investment assessment report for a company

72 votes

Stock Analysis

Analyze stocks and cryptocurrencies using Yahoo Finance data. Supports portfolio management (create, add, remove assets), crypto analysis (Top 20 by market cap), and periodic performance reports (daily/weekly/monthly/quarterly/yearly). 8 analysis dimensions for stocks, 3 for crypto. Use for stock analysis, portfolio tracking, earnings reactions, or crypto monitoring.

6511 votes

Just Fucking Cancel

Find and cancel unwanted subscriptions by analyzing bank transactions. Detects recurring charges, calculates annual waste, and helps you cancel with direct URLs and browser automation. Use when: 'cancel subscriptions', 'audit subscriptions', 'find recurring charges', 'what am I paying for', 'save money', 'subscription cleanup', 'stop wasting money'. Supports CSV import (Apple Card, Chase, Amex, Citi, Bank of America, Capital One, Mint, Copilot) OR Plaid API for automatic transaction pull. Out...

6511 votes

Telegram Compose

Compose rich, readable Telegram messages using HTML formatting via direct Telegram API. Use when: (1) Sending any Telegram message beyond a simple one-line reply, (2) Creating structured messages with sections, lists, or status updates, (3) Need formatting unavailable via Clawdbot's Markdown conversion (underline, spoilers, expandable blockquotes, user mentions by ID), (4) Sending alerts, reports, summaries, or notifications to Telegram, (5) Want professional, scannable message formatting wit...

6511 votes
View all in business →