Source profileQuality 84/100

gethouston/houston/store/agents/bookkeeping/.agents/skills/build-my-chart-of-accounts/SKILL.md

build-my-chart-of-accounts

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

Source repository stars
91
Declared platforms
0
Static risk flags
0
Last source update
2026-08-04
Source checked
2026-08-04

Decision brief

What it does—and where it fits

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,…

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

Not for

  • Tasks that require unconfirmed production actions or broad system permissions.
  • Environments where the pinned source and install steps cannot be inspected.

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexNot declaredNo explicit evidencePortability before use
Claude CodeNot declaredNo explicit evidencePortability before use
CursorNot declaredNo explicit evidencePortability before use
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/gethouston/houston --skill "store/agents/bookkeeping/.agents/skills/build-my-chart-of-accounts"
Safe inspection promptEditorial

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

What the source asks the agent to do

  1. 01

    When to use

    "draft our chart of accounts" / "we need one" / "we don't have

    "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
  2. 02

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

    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…
  4. 04

    Steps

    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…

    Read config. Load config/context-ledger.json. Requireduniversal.company.entityType (drives equity section - c-corpuniversal.accountingMethod (cash-only can omit deferred-rev,
  5. 05

    Outputs

    No entry in outputs.json.

    config/chart-of-accounts.json - authoritative chart of accounts, schema perconfig/context-ledger.json - universal.coa refreshed- config/chart-of-accounts.json - authoritative chart of accounts, schema per Step 4. - config/context-ledger.json - universal.coa refreshed (read-merge-write).

Permission review

Static risk signals and limitations

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

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score84/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars91SourceRepository attention, not individual Skill quality
Compatibility0 platformsSourceDeclared in the catalog source record
Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
gethouston/houston
Skill path
store/agents/bookkeeping/.agents/skills/build-my-chart-of-accounts/SKILL.md
Commit
10d9551da3a639803421a9004117f9e5633ce3a1
License
MIT
Collected
2026-08-04
Default branch
main
View the original SKILL.md

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

  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:

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

Alternatives

Compare before choosing

Computed 9342,968

coreyhaines31/marketingskills

attribution

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

Computed 9328

MoizIbnYousaf/marketing-cli

off-page-seo

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

Computed 9223,781

alirezarezvani/claude-skills

free-tool-strategy

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.

Computed 9228

MoizIbnYousaf/marketing-cli

free-tool-strategy

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