jakeschincariol/trader-skill

trader-tax

Tax Optimizer.

소스 보기

사용 방법

  1. 설치 명령을 복사하고 자신의 에이전트 환경에 설치하기 전에 소스 패키지를 확인하세요.
  2. 필요한 도구, 인증 정보, 지원 환경은 원본 문서에서 확인하세요.
  3. 입력과 원하는 산출물을 설명하고 출처와 결과를 대조하세요.
npx skills add https://github.com/jakeschincariol/trader-skill --skill trader-tax

시작 전 확인

  • 설치에는 모델 구독, API 한도, 파일 접근 권한이 포함되지 않습니다.
  • 별점 수와 설치 수는 활동 지표이며 독립적인 품질·보안 검증이 아닙니다.
원본 Skill 문서

원본 저장소의 제목, 예시, 코드, 표, 링크, 이미지를 유지해 표시합니다.

trader-tax

The Tax Optimizer does the arithmetic on the user's lots so nobody sells blind. It never decides what is right for the user's taxes. This is not tax advice: a tax professional decides what applies to them. Say that once, early, in every answer that uses this skill.

${CLAUDE_SKILL_DIR} below is this skill's folder (where this SKILL.md lives).

bash
python3 "${CLAUDE_SKILL_DIR}/lots.py" report --lots              # every lot, gain or loss, term
python3 "${CLAUDE_SKILL_DIR}/lots.py" sell KO 2 --price 90.11    # what a sale would realize (FIFO)
python3 "${CLAUDE_SKILL_DIR}/lots.py" sell KO 2 --method specific --lots KO-2
python3 "${CLAUDE_SKILL_DIR}/lots.py" harvest --min-loss 100     # candidates, with wash-sale checks
python3 "${CLAUDE_SKILL_DIR}/lots.py" harvest --min-loss 100 --write
python3 "${CLAUDE_SKILL_DIR}/lots.py" wash KO                    # is buying KO today a wash sale?

What it reads and writes

filewhat
trader/portfolio.jsonpositions with lots: {"id", "date", "shares", "cost"} (cost = total basis); shape: portfolio.example.json here
trader/prices.jsoncurrent prices (trader-alerts: alerts.py quote --holdings --write)
trader/orders.jsonplanned buys count for wash sales; harvest --write replaces it with sell proposals
trader/state/tax.jsonthe realized sales it logs with sell --record

Lots come from the fills trader-broker records (ticket.py fill), or from the user's broker statement. If a position has shares but no lots, ask for the purchase dates and costs. Never invent a cost basis.

The rules it applies (US federal, arithmetic only)

  • Term: long term if sold more than one year after the purchase date,

otherwise short term. report --lots shows the date each lot turns long term.

  • Lot methods: fifo (oldest first, what most brokers do by default),

hifo (highest cost first) and specific (named lots). The order sent to the broker does not carry lot ids: to sell specific lots the user must choose them in the broker's own tax-lot setting, or the broker uses its default method.

  • Wash sale: a loss is disallowed to the extent the same or a

substantially identical stock is bought within 30 days before or after the sale. The tool checks the other lots still held, planned buys in trader/orders.json and the loss sales it has logged. It cannot see an IRA, a spouse's account or another broker, and those count too. Say so.

Steps

  1. Refresh prices, then lots.py report --lots. Show gains and losses by

stock, and which lots are short or long term.

  1. Before any sell (rebalance, a stop, a change of mind), run lots.py sell

with the planned shares and method and show what it would realize.

  1. For harvesting: lots.py harvest --min-loss 100 (and --min-pct if the

user wants a percent threshold). For each candidate show the estimated loss, short and long term split, any wash-sale conflict, and the first day they could buy it back. Candidates with a conflict are not proposed.

  1. Only if the user wants proposals: harvest --write, then /trader-risk,

then /trader-broker, one yes per order.

  1. After a sale fills, lots.py sell ... --record updates the lots and logs

the realized result for the year.

Example: the reel's portfolio

The copy portfolio bought on 2026-10-13 (AAPL $1,250, AXP $1,119, GOOGL $823, KO $708, BAC $600) has one lot per stock, all short term until 2027-10-14. If BAC later trades below its $600 basis, harvest --min-loss 25 lists the BAC-1 lot with its loss and "do not buy BAC again before" a date 31 days after the sale. If the user also has a BAC buy planned in trader/orders.json, it flags a wash sale instead of proposing the sell.

What it never does

It never files anything, never gives a tax rate or a tax bill, never tells the user what they owe, never places an order, and never proposes a harvest that it can see would be a wash sale.

Safety

  • Not tax advice, and education and tooling, not financial advice. Check with a tax professional.
  • Paper trading by default ("paper": true). Going live is the user's own decision, in their own config.
  • Nothing in this pack places an order except trader-broker, and only when all three hold: trader-risk

passed that exact order today, the user typed an explicit yes for that one order in the chat, and the user clicked Allow once on Claude's own card because the order tool is set to "Needs approval" (Customize > Connectors > tool permissions). Never set an order tool to "Always allow".

  • No options, margin, short selling or leverage unless the config allows it and the user confirms.
  • Broker keys live in environment variables or the Claude Desktop config, never in the chat.

관련 작업

같은 저장소의 Skills

더 많은 Skills

모든 Skills
jakeschincariol
커뮤니티

trader-alerts

Price Alerts. Rings when a price target, a stop or the opening bell hits: above / below / stop rules, percent moves from the previous close, and the NYSE opening bell, each ringing once so you are not spammed. Knows NYSE hours with the 2026 and 2027 holidays and 1:00 p.m. early closes, fetches free delayed quotes (Yahoo chart JSON, Stooq CSV) one ticker at a time, and writes trader/prices.json for the other skills. Use when the user says "alert me when", "tell me if AAPL hits", "set a stop", "pr

설치 수
2
GitHub Stars
228
업데이트
10월 14일
jakeschincariol
커뮤니티

trader-analyst

The Earnings Analyst. Reads a company's reported numbers straight from SEC EDGAR (XBRL company facts from its 10-Qs and 10-Ks, plus the latest earnings 8-K and its press release) and sums up what changed: revenue, gross, operating and net margins, net income and diluted EPS, quarter by quarter, each against the same quarter a year earlier, with the trailing twelve months. Writes a metrics file the screener reads. Use when the user says "how did Apple's earnings look", "analyze the earnings", "wh

설치 수
2
GitHub Stars
228
업데이트
10월 14일
jakeschincariol
커뮤니티

trader-rebalance

Rebalancer. Brings the portfolio back to its target weights when it drifts: values every holding at current prices, works out each stock's drift from its target in percentage points, trades only the stocks outside a band (default 5 points), keeps the cash buffer and the per-stock cap, skips tiny trades, lists sells before buys, and writes the trades to trader/orders.json as proposals. Use when the user says "rebalance", "my portfolio drifted", "bring it back to the targets", "I added money", "th

설치 수
2
GitHub Stars
228
업데이트
10월 14일
jakeschincariol
커뮤니티

trader-budget

Budget Manager. Sizes every position to your budget before anything is bought: keeps a cash buffer, caps any one stock (the excess is shared out to the others), drops slices under your minimum order, rounds so every dollar is used, supports fractional or whole shares, and writes the proposed buy orders to trader/orders.json in the exact shape of Alpaca's placestockorder (notional as a string). Nothing is placed. Use when the user says "I have $5,000", "size my trades", "how much of each should I

설치 수
1
GitHub Stars
69
업데이트
10월 14일