10k-digest
Deep-read a 10-K annual report and output a structured markdown digest — abstract, section summaries, key metrics, and sourced…
Portfolio and position risk report — beta-weighted exposure, historical scenario replay (2008, March 2020, 2022 rate shock, 2025 tariff shock), parametric VaR / CVaR at 95 / 99 %, max-drawdown estimate, correlation-spike scenario, rate / USD / oil sensitivity, liquidity (days to
$ npx -y skills add yennanliu/investskill --skill risk-stress-test --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/risk-stress-testContext preview
The summary Claude sees to decide when to auto-load this skill.
Portfolio and position risk report — beta-weighted exposure, historical scenario replay (2008, March 2020, 2022 rate shock, 2025 tariff shock), parametric VaR / CVaR at 95 / 99 %, max-drawdown estimate, correlation-spike scenario, rate / USD / oil sensitivity, liquidity (days to
description: Portfolio and position risk report — beta-weighted exposure, historical scenario replay (2008, March 2020, 2022 rate shock, 2025 tariff shock), parametric VaR / CVaR at 95 / 99 %, max-drawdown estimate, correlation-spike scenario, rate / USD / oil sensitivity, liquidity (days to exit at 20 % of ADV), and a Risk Budget Score 0–10
Before running any analysis, always retrieve the latest market data for the ticker:
1. **Fetch current price** — use web search or ask the user for the live price of every holding, so weights are computed on today's values, not on cost basis. Never assume a price from training data. 2. **Confirm the risk inputs** — for each holding: 1-year beta to SPY, annualized volatility (σ), 30-day average daily volume (ADV) in shares and dollars, sector, and the current weight. These are the raw material of every number below; if they are missing, ask for them or state the proxy used (sector ETF beta / σ) next to the figure. 3. **State your data source** — fill in the `Data & Sources` header (next section) so the origin, as-of date, retrieval path, and confidence of every figure are explicit at the top of the output. 4. **Flag stale data explicitly** — if live data is unavailable, display this warning before proceeding:
> ⚠️ **Live data unavailable.** The following analysis uses training-data estimates which may be significantly out of date. Verify all prices and metrics before making any decisions.
Never silently substitute training-data estimates for current prices. When in doubt, ask the user to paste the latest quote.
---
The first thing in the output is this provenance block, filled in — never left as placeholders. It is the standard documented on the [Data & Accuracy](https://yennanliu.github.io/InvestSkill/data-and-accuracy.html) page and the first thing `result-validator` looks for:
Data & Sources As of: <date the figures represent, e.g. 2026-06-30> Source: <primary docs — SEC EDGAR 10-K/10-Q, company IR, FRED, exchange data …> Retrieval: <pasted by user | web/tool retrieval | model memory> Confidence: <HIGH | MEDIUM | LOW>
---
Every other framework in the catalog asks whether a holding is *good*. This one asks the question that decides whether the investor is still around to find out: **how much can the whole book lose, how fast, and can it be sold when it has to be?**
`portfolio-review` covers allocation, drift, and concentration. `economics-analysis` names the regime. Neither converts a list of holdings into a dollar figure for a bad month, replays the portfolio through the crashes that actually happened, or tells the investor how many days it would take to get out. This skill does exactly that and nothing else — it is a **risk report, not a recommendation**. Its verdict is a Risk Budget Score: how far the portfolio's measured risk sits inside (or outside) the drawdown the investor has said they can tolerate.
**What an assistant can and cannot compute here.** A language model cannot recall a covariance matrix for a specific set of tickers, and must not pretend to. The skill therefore works from **inputs the user pastes or the assistant retrieves** — beta, σ, ADV, weights — and shows every formula it applies, so the arithmetic can be checked line by line. Historical scenario magnitudes are approximate index-level figures and are labelled as such; the reader confirms the ones that matter.
Pairs with: `portfolio-review` (what to hold), `economics-analysis` (which regime the stress is most likely to come from), `position-ladder` (the share-count ceiling this report may lower), `thesis-tracker` (whether a drawdown is a thesis event or just volatility), and `tax-lens` (what a forced de-risking would cost after tax).
---
| Input | Required | Default if unstated | |-------|----------|---------------------| | Holdings with weights (or share counts + prices) | ✅ | — | | Per-holding beta (1Y vs. SPY), annualized σ, 30-day ADV | ✅ (paste, retrieve, or state the proxy) | sector-ETF beta / σ, flagged `proxy` | | Total portfolio value | ✅ (for dollar figures) | express everything in % | | Max-drawdown tolerance (the risk budget) | recommended | propose one from the investor profile: 15 % conservative · 25 % balanced · 40 % aggressive | | Horizon | optional | 1 day and 1 month | | Benchmark | optional | SPY | | Cash / bonds / hedges (puts, inverse ETFs) | optional | assumed zero — say so |
Ask for missing risk inputs rather than inventing them. If the user cannot supply β or σ for a name, use the sector ETF's figures and mark every derived number `(proxy)`.
---
Weights first, then what they load onto:
Weight_i = Value_i / Portfolio Value β_p (net beta) = Σ Weight_i × β_i $-beta to SPY = β_p × Portfolio Value (dollar move for a 1.00 % SPY move × 100) Sector weights = Σ Weight_i by GICS sector (flag any sector > 30 %) Top-3 weight = sum of the three largest positions
| Position | Weight | β | σ (ann.) | Sector | Weight × β | ADV ($) | |----------|--------|---|----------|--------|------------|--
Professional investment analysis frameworks for US stocks — works on every AI platform
Deep-read a 10-K annual report and output a structured markdown digest — abstract, section summaries, key metrics, and sourced…
Build the strongest possible bear case against a stock — a deliberate short-seller red-team that argues why NOT to hold,…
Forward-looking catalyst calendar identifying upcoming events and their expected price impact over a 90-day window
Generate professional financial charts in Mermaid, ASCII, or HTML/Chart.js — MA lines, histograms, candlestick, volume, RSI/MACD,…
Deep competitive moat analysis, market position assessment, and industry dynamics for one company against its direct rivals. To…
Discounted Cash Flow (DCF) intrinsic value modeling with sensitivity analysis