agentsclimarketplace

Portfolio audit

Skill ssurmic/claude-investment-skills/portfolio-audit

Comprehensive portfolio risk audit. Computes single-name concentration, factor cluster exposure, leverage ETF decay risk, options Greeks aggregation, stress test scenarios (-10% SPX, yen carry, single-name miss), hedge effectiveness. Outputs explicit trim list with $ amounts and reasons + cash target. Triggers in English ("review my portfolio", "audit my book", "am I too concentrated", "what should I trim", "portfolio risk check") or Chinese ("审一下我的组合", "我组合风险大吗", "该减什么仓", "组合审计", "我哪里太集中").From its SKILL.md

Install
npx -y skills add ssurmic/claude-investment-skills --skill portfolio-audit

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

10.0 KB, ~2.8k tokens by cl100k_base, as published. Nobody here has run it

Portfolio Audit — Full Risk Review

Goal

A fund-manager-level audit of the user's entire book. Answer 6 questions definitively:

  1. Where is concentration risk? (single-name + factor cluster)
  2. What blows up in -10% SPX day? (correlation unwind paths)
  3. What's the true equity beta? (incl. leverage ETFs and options delta)
  4. Where am I over-earning? (positions that have run too far)
  5. What hedges should I add? (gap protection)
  6. What trims should I execute today? (with $ amounts + tax considerations)

The 7-Step Workflow

Step 1 — Inventory the book

Get from user (or screenshot via review-investment-screenshot):

Stocks: ticker, qty, avg cost, current price, market value Options: ticker, strike, expiry, qty, cost, market value Cash + short-term: $ amount

Compute:

  • Total equity value
  • Cash %
  • Stock %
  • Options notional %
  • Total leveraged exposure

Step 2 — Single-name concentration check

For each position, compute % of portfolio:

% of bookStatusAction
< 3%OKNone
3-7%WatchingReview thesis
7-10%LimitDon't add
10-15%HighTrim to ≤10%
> 15%EXTREMEForce trim to 10% (unless explicit conviction & long-term)

Exception: User-defined "core hold" with locked thesis (e.g., NOK 19% with 1Y target $20+) — note but don't force trim.

Step 3 — Factor cluster analysis

Group positions into factor clusters:

Standard clusters for 2026:

  • AI Semis (NVDA, AMD, AVGO, MU, AMUU, MSFU等杠杆 ETF)
  • AI Compute / Cloud (ORCL, CRWV, NBIS, IREN, APLD)
  • AI Network (TEL, ANET, CIEN, FN, HPE, NOK)
  • AI Power (CEG, VST, EQT, AEP, ETR, LEU)
  • AI Materials (HBM, FCX, APD, MP)
  • Crypto-adjacent (COIN, HOOD, MSTR)
  • Speculative growth (AFRM, SOFI, U)
  • Mega-tech (GOOGL, MSFT, META, AAPL, AMZN)
  • China (BABA, JD, PDD, BIDU)
  • Defense/Aerospace (LMT, CSTM)

Aggregation rule:

  • Same factor cluster > 25% = one bet regardless of how many tickers
  • Recommend trim or cross-cluster diversification

Step 4 — Leverage / volatility decay check

Flag any:

  • Daily-reset 2x/3x ETFs (MSFU, AMUU, GDXU, SOXL, TQQQ, NVDL等)
  • Held >2 weeks (vol decay accumulates)
  • Up >20% (rotate to LEAPS for cleaner exposure)

Action: Most leverage ETFs should be closed and rotated to LEAPS on the underlying.

Step 5 — Options aggregation (Greeks-aware)

For each option position:

  • Delta (estimate): ATM = 0.5, OTM 10% = 0.35, OTM 20% = 0.25, deep ITM = 0.85
  • Notional exposure: contracts × 100 × strike (full notional)
  • Delta-weighted exposure: notional × delta (true equity equivalence)
  • Theta risk: short-dated (< 30 days) = high decay
  • IV exposure: post-earnings IV crush risk

Aggregate by underlying: if user has 6 NVDA LEAPS + 350 stock + AMD LEAPS, what's the combined NVDA+AMD delta?

Step 6 — Stress test scenarios

For each scenario, compute estimated portfolio impact:

ScenarioWhat happensImpact estimate
SPX -5%Mild correctionUse beta × -5%
SPX -10%Standard pullbackBeta × -10% + leverage ETF decay
NDX -15% (tech rotation)Mag7/AI sells offHeavy if cluster >30% AI
Yen carry unwind (USD/JPY <153)-8 to -22% on AI semisCompute by sector exposure
Single name -30% (e.g., NVDA earnings miss)If concentratedShow $ loss
VIX > 30 (volatility regime change)Options IV crush + delta lossCompute by options exposure
OPEC + 1973 重演Energy spike + risk-offShow defensive vs growth

Output: "In a -10% SPX day, your book loses ~$X (X% of total)."

Step 7 — Generate trim list + hedge recommendations

Trim list (specific orders):

TickerQty$ proceedsRule firedTax impact

Hedge recommendations:

HedgeCostCoverageWhy
SPY 6/18 $XXX Put × N$X,XXXIndex gapMacro red signal
Underlying-specific putsIf single name 10%+

Cash target:

  • Risk-on regime → 5-15% cash
  • Late-cycle / yellow → 20-30%
  • Yellow + binary events → 30-40%
  • Red regime / crisis → 40-60%

Output format

# Portfolio Audit — [Date]

## TL;DR
- Total: $X.XX M (stocks + options + cash)
- Cash %: X% (target Y% based on macro)
- Top 3 risks: [concrete sentences]
- **Action today**: [trim X / hedge Y / hold Z]

## Position Table (top 25 by % of book)
| Ticker | Qty | Mkt Val | % of book | P&L $ | P&L % | Status | Action |

## Cluster Concentration
| Cluster | % of book | Status | Top names |
| AI Semis | XX% | 🔴 Over (>25%) | NVDA, AMD, AVGO |
| AI Power | XX% | 🟢 OK | EQT, CEG, AEP |

## Concentration Flags
- 🔴 Single-name > 15%: [list]
- 🔴 Cluster > 25%: [list]
- 🔴 Leverage ETF > 5%: [list]

## Greeks Aggregation
| Underlying | Stock notional | Options delta-weighted | Total | $ Risk |

## Stress Tests
| Scenario | Impact $ | Impact % |
| -10% SPX | -$XX,XXX | -X.X% |
| Yen carry unwind | -$XX,XXX | -X.X% |

## Trim List (orders to place today)
| Ticker | Qty | ~$ proceeds | Rule | Tax |

## Hedge Recommendations
| Hedge | Cost | Why |

## What's NOT to trim (core holds)
- [List positions to leave alone]

## Tax Considerations
- Proceeds from suggested trims: $X
- Estimated tax (LTCG/STCG mix): $X
- Net to bank: $X
- Better: hedge with puts on [list] to defer tax

## Recommended Cash Target
- Current: X%
- Target (based on macro): Y%
- Action: raise/lower by trimming/buying [list]

Hard rules (the trim ladder)

Run every position through this in order. Call the FIRST rule that fires:

#ConditionAction
1Daily-reset leveraged ETF held >2 weeks AND up >20%Trim 50%+, rotate to LEAPS
2Position up >100% unrealizedSell at least 1/3 to recover cost basis
3Position up >50% AND single-name >10% of bookTrim to ≤10%
4Single factor cluster >25% of bookReduce to ≤20% by trimming most-extended in cluster
5At 1-year high AND earnings within 7 daysTrim 25-50% before print
6Up >30% AND >40% above 200DMA (parabolic)Trim 25% OR set hard stop at MA20
7Portfolio total unrealized >20% AND macro = late-cycle euphoriaReduce gross 10-15% via index hedge
8Up >20% but thesis broken (below MA50 in downtrend OR narrative shift)Exit 50%+ immediately
9Underwater >15% AND bear case confirmed by priceCut. Don't average
10None of aboveHold. State trailing stop level

Macro contextual overlays

Adjust trim aggressiveness based on macro signals (run macro-risk-check first):

  • Yen carry risk active (USD/JPY < 153): Reduce semi-cluster to <20%
  • Pre-major central bank meeting: Cash target 30%+
  • Pre-major geopolitical summit: Hold core thesis names for upside optionality
  • Energy/oil supply shock active: Defensive + reduce growth allocation

Common pitfalls

PitfallExampleLesson
Counting tickers as diversification6 AI semis = "diversified"One bet
Ignoring options notional$50K LEAPS = $200K deltaUse Greeks
Trim winners, hold losersSell NVDA +20%, hold INTC -50%Reverse — trim losers, ride winners (with stops)
Over-trim during stressSell 50% on -3% dayWait for trigger or hedge instead
No tax planSell 1000 NOK STCG vs LTCGLose 12-15% to tax
Hedge after the moveBuy puts after -10% dropShould be pre-event, not reactive

Tool cheat-sheet

NeedTool
Live prices for all positionsmcp__yfmcp__yfinance_get_ticker_info (batch) OR quote_pull.py
Sector classificationmcp__yfmcp__yfinance_get_ticker_infosector field
Options GreeksEstimate from strike/spot/days. Use mcp__yfmcp__yfinance_get_option_chain for IV
Insider check on top positionsinsider_ratio.py "TICKER1,TICKER2,..." --window 90 (openinsider primary; only Form 4 code "P" counts as buy)
Macro overlayRun macro-risk-check skill first
Tax mathRun tax-optimize skill on each trim candidate
Trim execution rulesThis SKILL.md, the 10-rule ladder

When to invoke

  • User asks: "Review my portfolio"
  • User asks: "Am I too concentrated"
  • User asks: "What should I trim"
  • User asks: "Should I hedge"
  • After macro-risk-check shows YELLOW or worse
  • Monthly (recommended)
  • Pre-major event (Fed, BOJ, Trump-Xi, earnings cluster)
  • After any position becomes >15% of book (auto-trigger)

Companion skills

This skill orchestrates these others:

  • macro-risk-check → regime context (run first)
  • analyze-stock → deep dive on questionable positions
  • tax-optimize → calculate trim taxes
  • earnings-prep → for any position with earnings <30 days
  • option-wall-analysis → set strike levels for hedges
  • leaps-screen → for ETF→LEAPS rotation (Rule #1)
  • review-investment-screenshot → if user provides screenshot input

Integration with existing review-investment-screenshot skill

portfolio-audit is the deeper sibling of review-investment-screenshot. Differences:

review-investment-screenshotportfolio-audit
InputScreenshotManual list or screenshot
Depth7-point check7 steps + Greeks + clusters + tax
OutputSell listSell list + hedges + cash target + stress tests
WhenQuick reviewMonthly deep dive
AudienceSingle reviewFull periodic audit

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 326,852. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.