skills/short-contrarian-analyst/SKILL.md
Burry-style valuation anchor and contrarian veto check for a single ticker. Computes Burry Score (0-100) from FCF yield, EV/EBIT, debt/equity, and price vs 52-week high. Use in investment protocol Phase 2 as the 5th agent — triggers T4 veto when Burry Score < 20 (extremely overvalued) on an otherwise bullish thesis.
npx skillsauth add kavi-lin/stock short-contrarian-analystInstall 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.
Independent valuation anchor for investment protocol Phase 2. Unlike Bull/Bear/Sentiment/ Technical agents (which are weighted), this agent has veto power on T4 (overvaluation veto) when Burry Score < 20 — forces the protocol into HOLD regardless of other bullish signals.
python3 skills/short-contrarian-analyst/scripts/burry_score.py NVDA
python3 skills/short-contrarian-analyst/scripts/burry_score.py KO --json-only
| Metric | Weight | Scoring | |---|---|---| | FCF yield (FCF / EV) | 35% | < 2% → 10, 5% → 50, 10% → 90 | | EV / EBIT | 25% | > 30 → 10, 15 → 50, < 8 → 90 | | Debt / Equity | 15% | > 2 → 10, 1 → 50, < 0.3 → 90 | | Price vs 52w high | 15% | at high → 20, -20% → 60, -40% → 90 | | Insider activity | 10% | net buy → 80, neutral → 50, net sell → 20 |
Components missing → drop from weighted average (weights renormalize).
< 20 → T4 veto active → HOLD regardless of other agents< 35 → warning flag → Phase 4 position multiplier × 0.7>= 60 → deep value bonus → Phase 4 multiplier × 1.15{
"ticker": "NVDA",
"generated_at": "ISO8601",
"burry_score": "float 0-100",
"verdict": "T4_VETO | WARNING | NEUTRAL | VALUE_BONUS",
"components": {
"fcf_yield_pct": "float or null",
"ev_ebit": "float or null",
"debt_to_equity": "float or null",
"pct_below_52w_high": "float",
"insider_net": "BUY | SELL | NEUTRAL | UNKNOWN"
},
"component_scores": {"fcf_yield": 50, "ev_ebit": 30, ...},
"reasoning": "string"
}
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.