Best for
- "close the year for the tax preparer" / "prep the tax tie-out" /
- Run once per fiscal year, after final month's
gethouston/houston/store/agents/bookkeeping/.agents/skills/hand-off-to-my-tax-preparer/SKILL.md
Assemble the year-end package for your tax preparer. I gate on a clean audit (`audit-my-books` runs first; open items block the handoff), then put together the trial balance, per-account reconciliations, fixed-asset and depreciation schedules, 1099 list, R&D classification (if eligible), M-1 adjustment candidates (meals 50% / 100% disallowance, stock-based compensation book vs. tax timing, accrual-to-cash deltas, federal income tax, deferred revenue, non-deductibles), and a judgment-call audit t
Decision brief
Year-end tax handoff package. Gated by audit-my-books — books must be clean first. Once clean, I assemble the full tax tie-out under handoffs/tax-{year}/, optionally mirror it to Google Drive, and draft the email to your preparer with the folder link. Never filed, never sent.
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/hand-off-to-my-tax-preparer"Inspect the Agent Skill "hand-off-to-my-tax-preparer" from https://github.com/gethouston/houston/blob/10d9551da3a639803421a9004117f9e5633ce3a1/store/agents/bookkeeping/.agents/skills/hand-off-to-my-tax-preparer/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
"close the year for the tax preparer" / "prep the tax tie-out" /
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. Required ledger: universal.company (legal name, EIN, entity type, fiscal year), universal.accountingMethod, domains.tax.preparerName, domains.tax.preparerEmail, domai…
handoffs/tax-{year}/cover-memo.md (indexed as tax-handoff)
Permission review
The documentation asks the agent to create, modify, or delete local files.
**Gmail or Outlook** (inbox) — optional, lets me create a draft email to your tax preparer with the package link. I never send. If not connected I write the email text to a draft file instead.The documentation asks the agent to create, modify, or delete local files.
returns connected Drive slug: create folder `Tax HandoffEvidence 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
Year-end tax handoff package. Gated by audit-my-books — books must
be clean first. Once clean, I assemble the full tax tie-out under
handoffs/tax-{year}/, optionally mirror it to Google Drive, and
draft the email to your preparer with the folder link. Never filed,
never sent.
close-my-month completes.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.
If you want both the Drive mirror and the email draft and neither is connected, I name both categories and ask you to link the one you'd rather have.
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.
Required ledger: universal.company (legal name, EIN, entity
type, fiscal year), universal.accountingMethod,
domains.tax.preparerName, domains.tax.preparerEmail,
domains.tax.rdCreditEligible. Ask for missing preparer
contact (file > paste) and cache.
Determine tax year. If specified, use it; else default to
most recently completed fiscal year per
universal.company.fiscalYearEnd.
Gate - run audit-my-books first. Invoke audit-my-books
skill for period ending fiscal-year-end. If findings remain
(suspense, recon breaks > $100 age > 30 days, stale accruals,
stuck draft journal entries, cutoff candidates, opening-balance gaps,
high-priority vendor merges), STOP. Surface blocker list with
audit path; ask user to close each (or explicitly confirm each
immaterial). Do not proceed until user clears gate.
Trial balance. Invoke prepare-my-financials with
statement=trial-balance and as-of = fiscal year-end. Write
to handoffs/tax-{year}/trial-balance.md. Must balance within
1 cent.
Reconciliation summaries. For each account in
domains.banks.accounts[], copy final monthly recon from
reconciliations/{account_last4}/{YYYY-MM}.md into handoff
folder, plus one roll-up per account at
handoffs/tax-{year}/reconciliations/{account_last4}.md
(opening → monthly activity → ending → unmatched items -
should be empty or documented from audit gate).
Fixed-asset schedule. Read config/fixed-assets.json
(absent → ask user if any capitalized assets exist; if none,
skip). Include per asset: in-service date, acquisition cost,
method (SL / MACRS class), useful life, accumulated
depreciation to year-end, net book value. Write to
handoffs/tax-{year}/fixed-asset-schedule.md.
Depreciation schedule. Compute full-year straight-line
from fixed-asset schedule (half-year convention default; note
at top). Write to
handoffs/tax-{year}/depreciation-schedule.md. Book
depreciation only - tax depreciation (MACRS, §179, bonus) is
preparer's computation.
1099 list. Invoke prep-my-1099s for tax year (skip
email-drafting step if already run). Copy
compliance/1099s/{year}.md → handoffs/tax-{year}/1099- list.md.
R&D classification (if eligible). If
domains.tax.rdCreditEligible == "yes", invoke
tag-my-rd-spend for year and copy
compliance/rd-credit/{year}.md →
handoffs/tax-{year}/rd-classification.md. Else skip with
one-liner in cover memo.
M-1 adjustment candidates. Write
handoffs/tax-{year}/m1-adjustments.md listing common
book/tax differences with amounts from books:
TBD otherwise.Judgment-call notes. Walk outputs.json for fiscal year
and collect every "judgment-call" callout (from
schedule-my-revenue, tag-my-rd-spend,
draft-a-journal-entry type=stock-comp, etc.). Write to
handoffs/tax-{year}/judgment-calls.md with per-item
entries: what decided, by whom, when, alternatives
considered. Preparer's audit trail.
Cover memo. handoffs/tax-{year}/cover-memo.md - one
page. Company block (legal name, EIN, entity type, state,
fiscal year-end); accounting posture; package contents
(bulleted with links); book net income; top 3–5 items for
preparer's attention; open TBDs; signoff line.
Optional Google Drive mirror. If composio search files
returns connected Drive slug: create folder Tax Handoff {YYYY} - {Legal Name}, upload every file from
handoffs/tax-{year}/ preserving subfolders, share with
domains.tax.preparerEmail as commenter (never editor).
Capture URL in cover memo header. Skip silently if Drive not
connected.
Draft preparer email. If composio search inbox returns
connected Gmail / Outlook slug, create inbox draft (never
send) to domains.tax.preparerEmail, subject "{Legal Name} {YYYY} tax handoff package", body referencing cover memo +
Drive URL (or local folder path) with short summary of
package and major items. Save draft id/URL in cover memo
under "Draft email to preparer". If no inbox connection,
write email text to drafts/tax-preparer-handoff-{year}.md.
Append to outputs.json. Row:
{type: "tax-handoff", title: "Tax handoff {year}", summary, path: "handoffs/tax-{year}/cover-memo.md", status: "draft", domain: "compliance"}. Read-merge-write. Flip to ready
when user confirms review; posted only when they confirm
sent to preparer.
Summarize to user. One paragraph: package at
handoffs/tax-{year}/, components included, book net income,
remaining TBDs, Drive URL (if mirrored), email draft id /
path, reminder I never send - they review and send.
handoffs/tax-{year}/cover-memo.md (indexed as tax-handoff)handoffs/tax-{year}/trial-balance.mdhandoffs/tax-{year}/reconciliations/{account_last4}.md (one
per account)handoffs/tax-{year}/fixed-asset-schedule.mdhandoffs/tax-{year}/depreciation-schedule.mdhandoffs/tax-{year}/1099-list.mdhandoffs/tax-{year}/rd-classification.md (if eligible)handoffs/tax-{year}/m1-adjustments.mdhandoffs/tax-{year}/judgment-calls.md