skills/portfolio-risk-manager/SKILL.md
Calculates vol-adjusted position size cap and correlation-aware multiplier for a new candidate ticker given current holdings. Use in investment protocol Phase 4 Step 2 to compute safe position size before entry. Reads positions.json and yfinance data; no API key.
npx skillsauth add kavi-lin/stock portfolio-risk-managerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Computes a safe position size cap for a new candidate ticker by:
python3 skills/portfolio-risk-manager/scripts/risk_manager.py NVDA
python3 skills/portfolio-risk-manager/scripts/risk_manager.py NVDA --vol-budget 0.8
python3 skills/portfolio-risk-manager/scripts/risk_manager.py CRWV --positions positions.json
Defaults: reads positions.json from repo root; if missing, runs standalone
(vol-scaling only, correlation multiplier = 1.0).
{
"ticker": "NVDA",
"generated_at": "ISO8601",
"inputs": {
"vol_budget_pct": 0.6,
"positions_loaded": 5,
"candidate_sector": "Technology",
"portfolio_size_usd": 100000
},
"ticker_stats": {
"daily_vol_pct": "float",
"ann_vol_pct": "float",
"avg_correlation_with_portfolio": "float -1 to 1"
},
"raw_vol_adjusted_cap_pct": "float — vol-only cap",
"correlation_multiplier": "float 0.5-1.0",
"sector_cap_triggered": "true | false",
"final_position_cap_pct": "float — apply this to base Kelly / Phase 4 size",
"reasoning": "string"
}
| Correlation avg | Multiplier | |---|---| | < 0.3 | 1.00 | | 0.3 – 0.6 | 0.85 | | 0.6 – 0.8 | 0.70 | | > 0.8 | 0.55 |
Sector concentration > 30% → sector_cap_triggered=true, final cap × 0.5 extra penalty.
development
# earnings-analyst — 個股財報深度分析 > **Trigger**: `財報 [TICKER]` > **Version**: V1.0 > **Data Source**: FMP HTTP REST(`$FMP_API_KEY`) ## 目的 針對單一個股產出**深度財報分析報告**(逐季趨勢、品質指標、估值、分析師共識),涵蓋 sector V1.4 與 `分析 [TICKER]` 既有 protocol **沒有**的「財報層級」深潛內容。 ## 與既有 skill 的差異 | Skill | 重點 | 觸發 | |---|---|---| | `us-stock-analysis` | 估值/技術/情緒 snapshot(yfinance + FMP partial) | Phase 2 fundamentals lane | | `earnings-valuation-forecaster` | 12M 目標價 3×3 敏感度 | ad-hoc / earnings 前 14 天 | | `earnings-trade-analyzer` |
testing
Daily Top N hot themes × Top M short-term movers per theme. Combines theme-detector heat scoring (medium-term) with short-term-target predictions (1d/5d/15d) into a "Tactical Opportunity Radar" recommendation log. Tags concentration WARNING when ≥2 picks share theme. Records FRED + market regime snapshot at recommendation time for future backtest cross-tabs. Standalone — not auto-wired into investment_protocol. Use for daily watchlist refresh / Dashboard推薦面板feed / batch screening across hot themes.
testing
Short-term (1d / 5d / 15d) directional projection for a US stock — "Tactical Opportunity Radar". Outputs target range + confidence breakdown + benchmark-relative alpha + trading meta (stop / position size hint / exit trigger). Each horizon uses independent weights from config/weights.yaml. Refuses to project when source data is stale (returns insufficient_data with reasons). Hard-clamped to prevent cold-start absurd predictions. Use when caller wants short-term directional bias on a specific ticker, NOT for long-term valuation (use earnings-valuation-forecaster for 12-month). Standalone — not auto-wired into investment_protocol.
tools
Shared Finnhub API client used by other skills. Provides rate-limited (60/min), cached, retry-aware access to 17 Finnhub endpoints covering quotes, OHLCV, fundamentals, earnings calendar, earnings surprises, insider transactions, recommendation history, price targets, upgrades/downgrades, dividends, splits, IPOs, and SEC filings. Also exports adapters that normalize Finnhub raw responses into FMP-compatible shapes so that downstream code can swap providers without changing call sites. Use when another skill needs Finnhub data or when building a unified provider layer.