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
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)
1# trader-tax23The Tax Optimizer does the arithmetic on the user's lots so nobody sells4blind. It never decides what is right for the user's taxes. **This is not tax5advice**: a tax professional decides what applies to them. Say that once,6early, in every answer that uses this skill.78`${CLAUDE_SKILL_DIR}` below is this skill's folder (where this SKILL.md lives).910```bash11python3 "${CLAUDE_SKILL_DIR}/lots.py" report --lots # every lot, gain or loss, term12python3 "${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-214python3 "${CLAUDE_SKILL_DIR}/lots.py" harvest --min-loss 100 # candidates, with wash-sale checks15python3 "${CLAUDE_SKILL_DIR}/lots.py" harvest --min-loss 100 --write16python3 "${CLAUDE_SKILL_DIR}/lots.py" wash KO # is buying KO today a wash sale?17```1819## What it reads and writes2021| 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` |2728Lots come from the fills trader-broker records (`ticket.py fill`), or from the29…
Excerpt shown under the repository's MIT license.
