Tooluck logoTooluck
SKILL.md

trader-tax

Agent skill fromJakeschincariol/trader-skill

Tax Optimizer. Tracks cost-basis lots for every position (FIFO, highest cost first, or specific lots), shows unrealized gains and losses by lot with short or long term, works out what a sale would realize before you sell, finds tax-loss harvesting candidates over a loss threshold, checks the wash sale rule (30 days before and after, GOOG and GOOGL as one family), and writes harvest sells only as proposals. Not tax advice. Use when the user says "what are my gains", "cost basis", "tax lots", "tax-loss harvest", "what would selling cost me in tax", "short or long term", "wash sale", or before selling anything.

How to install trader-tax

install trader-tax
# install the trader-skill pack with the skills CLI
npx skills add Jakeschincariol/trader-skill

# or add only this skill to Claude Code: copy the folder

trader-tax/

# into

~/.claude/skills/trader-tax/ (all projects)

.claude/skills/trader-tax/ (one project)

trader-tax/SKILL.md

MITFull file
1# trader-tax
2
3The Tax Optimizer does the arithmetic on the user's lots so nobody sells
4blind. It never decides what is right for the user's taxes. **This is not tax
5advice**: a tax professional decides what applies to them. Say that once,
6early, in every answer that uses this skill.
7
8`${CLAUDE_SKILL_DIR}` below is this skill's folder (where this SKILL.md lives).
9
10```bash
11python3 "${CLAUDE_SKILL_DIR}/lots.py" report --lots # every lot, gain or loss, term
12python3 "${CLAUDE_SKILL_DIR}/lots.py" sell KO 2 --price 90.11 # what a sale would realize (FIFO)
13python3 "${CLAUDE_SKILL_DIR}/lots.py" sell KO 2 --method specific --lots KO-2
14python3 "${CLAUDE_SKILL_DIR}/lots.py" harvest --min-loss 100 # candidates, with wash-sale checks
15python3 "${CLAUDE_SKILL_DIR}/lots.py" harvest --min-loss 100 --write
16python3 "${CLAUDE_SKILL_DIR}/lots.py" wash KO # is buying KO today a wash sale?
17```
18
19## What it reads and writes
20
21| file | what |
22| --- | --- |
23| `trader/portfolio.json` | positions with lots: `{"id", "date", "shares", "cost"}` (cost = total basis); shape: `portfolio.example.json` here |
24| `trader/prices.json` | current prices (trader-alerts: `alerts.py quote --holdings --write`) |
25| `trader/orders.json` | planned buys count for wash sales; `harvest --write` replaces it with sell proposals |
26| `trader/state/tax.json` | the realized sales it logs with `sell --record` |
27
28Lots come from the fills trader-broker records (`ticket.py fill`), or from the
29…

Excerpt shown under the repository's MIT license.

More skills in trader-skill

Newsletter

Join the Community

Subscribe to our newsletter for the latest news and updates