Skip to main content

prep-my-1099s

Prep your 1099-NEC and 1099-MISC list for the tax year. I total year-to-date payments per vendor from your run history, flag eligible vendors (non-corporate, ≥ $600), split NEC from MISC, cross-reference W-9 status against the W-9s you have on file, and draft chase emails for missing W-9s as Gmail / Outlook drafts (or as plain `.md` files if no inbox is connected). I prep, you file via IRS FIRE, Track1099, or Tax1099. I never file and I never send.

Ir para a instalação

Informações da origem

Repositório
gethouston/houston
Última atividade na origem
16 de setembro de 2026 às 16:49
Idioma detectado do SKILL.md
inglês
Estrelas
112
Forks
66

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
prep-my-1099s
description
Prep your 1099-NEC and 1099-MISC list for the tax year. I total year-to-date payments per vendor from your run history, flag eligible vendors (non-corporate, ≥ $600), split NEC from MISC, cross-reference W-9 status against the W-9s you have on file, and draft chase emails for missing W-9s as Gmail / Outlook drafts (or as plain `.md` files if no inbox is connected). I prep, you file via IRS FIRE, Track1099, or Tax1099. I never file and I never send.
version
1
category
Bookkeeping
featured
no
image
ledger
integrations
["gmail","outlook"]
x_houston
{"created_by":"houston","skill_schema":1}
# Prep My 1099s 1099-NEC and 1099-MISC prep for the tax year. I total payments per vendor from your run transactions, flag who's eligible, split NEC from MISC, cross-reference W-9 status, and draft chase emails for the missing W-9s. The chase emails sit in your Gmail or Outlook drafts (never sent) so you can review and click send. I prep — you file with the IRS. ## When to use - "who are our 1099 vendors" / "prep the 1099 list for {year}". - "draft chase emails for missing W-9s". - Called by `hand-off-to-my-tax-preparer` as part of year-end package. - Called in January for prior tax year (IRS deadline: Jan 31 for NEC). ## 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. - **Gmail or Outlook** (inbox) — optional, lets me create draft chase emails directly to vendors with missing W-9s. I never send. If not connected I write the email text to a draft file you can copy. This skill works fully offline against your run history. No connection blocks the run; the inbox connection just makes chase emails easier. ## 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. - **The tax year** — Required. Why: defines the date range for year-to-date payment aggregation. If missing I ask: "Which tax year are we prepping the 1099 list for? In January I default to the year that just ended." - **Your company's legal name and EIN** — Required. Why: drops into the 1099 payer block on every form. If missing I ask: "What's the company's legal name and EIN as registered with the IRS?" - **A current run history covering the tax year** — Required. Why: I aggregate vendor payments from your processed runs. If missing I ask: "Have we processed statements for the tax year yet? If not, drop the bank and credit card statements so I can categorize them first." - **W-9s on file for your contractors** — Optional. Why: lets me mark each 1099 vendor as "have-w9" and skip the chase email. If you don't have them in one place I ask: "Do you have W-9s collected anywhere? If not, I'll flag every eligible vendor as missing and draft chase emails for each." - **A vendor email list** — Optional. Why: lets me address chase emails to each vendor directly. If you don't have it I leave the recipient blank in each draft and ask you to fill it in. ## Steps <!-- houston-workflow:v1 --> 1. **Read context.** Load `context/bookkeeping-context.md`, `config/context-ledger.json`, `config/chart-of-accounts.json`. Required ledger: `universal.company` (legal name + EIN for 1099 payer block), `domains.tax` (preparer name / email for cover note). 2. **Determine tax year.** User specified year → use it. Called in January no year → default to prior calendar year (`today.year - 1`) - that 1099 cycle. Called mid-year → use current year as running draft. 3. **Aggregate year-to-date payments per vendor.** Read every `runs/*/run.json` whose period overlaps tax year. Filter transactions to `amount < 0` (money out), group by `party` (canonical name). Sum absolute amounts per party within tax year date range. Cite every transaction by `(run period, date, amount)` - no invented payments. 4. **Exclude payments not 1099-reportable.** - Transfers (`gl_code == "9000"` / `source == "transfer"`). - Payments to corporations (S-corp / C-corp exempt except specific categories like attorney fees). Default-assume corporate if canonical party ends in `Inc`, `Corp`, `LLC` (W-9 confirms), `Corporation`, `Ltd`. Flag for user confirm - default exclude. - Payroll payments (go on W-2, not 1099). - Credit-card payments to vendor. Vendor paid exclusively via credit card → card issuer issues 1099-K - exclude from list. Flag any vendor paid only via credit card. - Reimbursements labeled pass-through. 5. **Apply 1099 eligibility thresholds.** - **1099-NEC** - contractors / services (account categories: professional services, contract labor, consulting, engineering contractors). Threshold: ≥ $600 year-to-date. - **1099-MISC** - rent, attorney fees (even if incorporated), prizes, medical payments, other. Threshold: ≥ $600 year-to-date. - Flag vendors straddling categories (e.g., law firm paid for both services and settlement) - user decides split. 6. **Cross-reference W-9 status.** Check `files/` (or user-provided vendor-W9 folder) for PDF matching each eligible vendor canonical name (fuzzy match, token-set-ratio ≥ 0.85). Record W-9 status per vendor: `have-w9` / `missing-w9` / `pending`. Vendor list with W-9 indicators provided at runtime → merge in. 7. **Draft chase emails for missing W-9s.** For every vendor flagged `missing-w9`: - Write `drafts/1099-chase-{vendor-slug}.md` - subject line, body, signature. Body references tax year, $ threshold, Form W-9 link (`https://www.irs.gov/pub/irs-pdf/fw9.pdf`), asks for return by specified date (default: Jan 15 for prior-year filing). - `composio search inbox` returns connected Gmail / Outlook slug → create inbox draft (never send) using vendor email if known from prior correspondence; include draft URL / id in `.md`. No connection → skip inbox step silently. - Cite canonical party, year-to-date paid, source run periods in draft body so user can verify before sending. 8. **Write `compliance/1099s/{year}.md`.** Atomic write. Structure: - **Payer block** - legal name, EIN, state. - **Summary** - NEC count, NEC $ total, MISC count, MISC $ total, missing-W-9 count. - **NEC recipients** - table: canonical party, year-to-date paid, account category breakdown, W-9 status, address (from W-9 if present; else `TBD`). - **MISC recipients** - same table shape. - **Excluded** - corporate exclusions, credit-card-only, payroll, transfers - one-line reason per row (so user can audit exclusions). - **Straddle cases** - vendors where NEC/MISC split needs judgment call, with options. - **Filing note** - "Prep only. File via IRS FIRE, Track1099, or Tax1099. Deadline: Jan 31 (NEC to recipient + IRS), Feb 28 paper / Mar 31 electronic (MISC to IRS)." 9. **Append to `outputs.json`.** Row: `{type: "vendor-1099-list", title: "1099 list {year}", summary, path: "compliance/1099s/{year}.md", status: "draft", domain: "compliance"}`. Read-merge-write. 10. **Summarize to user.** One paragraph: NEC count + $, MISC count + $, missing-W-9 count with chase-email paths, any straddle cases needing call, filing reminder ("I preplied - you file via FIRE / Track1099 / Tax1099"). Never file. Never send. ## Outputs - `compliance/1099s/{year}.md` (indexed in `outputs.json` as `vendor-1099-list`) - `drafts/1099-chase-{vendor-slug}.md` (one per missing W-9 - not indexed; drafts) - Optional inbox drafts in Gmail / Outlook via Composio (never sent)
Ver no GitHub