agentsclimarketplace

Stress test

Skill erhwenkuo/stock_skills/.claude/skills/stress-test

An undervalued stock screening system. Screens for undervalued stocks across 60+ regions using the Yahoo Finance API (yfinance). Runs as Claude Code Skills — just speak in natural language and the right function executes automatically.

Install
npx -y skills add erhwenkuo/stock_skills --skill stress-test

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.
  • 3 stars3 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.

What its author says it does

Copied from the file, not written here

Portfolio stress test. Receives a list of holdings and identifies portfolio weaknesses through shock sensitivity, scenario analysis, and causal chain analysis.

SKILL.md

5.8 KB, as published. Nobody here has run it

Portfolio Stress Test Skill

Parse $ARGUMENTS to determine the portfolio symbol list and scenario, then run the following command.

Execution Command

python3 /Users/kikuchihiroyuki/stock-skills/.claude/skills/stress-test/scripts/run_stress_test.py --portfolio <symbols> [--scenario <scenario>] [--weights <weights>]

Natural Language Routing

For natural language → skill selection, see .claude/rules/intent-routing.md.

Argument Parsing Rules

portfolio (symbol list — required)

Extract a comma-separated symbol list from user input. Convert space-separated input to comma-separated.

User Input Example--portfolio Value
7203.T,AAPL,D05.SI7203.T,AAPL,D05.SI
7203.T AAPL D05.SI7203.T,AAPL,D05.SI
Toyota AppleConvert to corresponding tickers first

weights (holding ratios — optional)

Comma-separated ratio list matching the number of symbols. Defaults to equal weights (1/N per symbol).

User Input Example--weights Value
0.5,0.3,0.20.5,0.3,0.2
50%,30%,20%0.5,0.3,0.2 (convert percentages to decimals)
omittedEqual weight 1/N per symbol

Scenario List

ScenarioDescription
triple-meltdownEquities, FX, and bonds fall simultaneously. Stress across all asset classes
usd-jpy-surgeSharp JPY depreciation. Rising import costs; overseas assets appreciate in JPY terms
us-recessionUS economic downturn. Global demand contraction, risk-off
boj-rate-hikeRising Japanese interest rates. Banks up, growth stocks and REITs down
us-china-conflictEscalating trade friction. Supply chain disruption; hit to semiconductors and manufacturing
inflation-resurgenceRising prices again. Real purchasing power declines; rate hike expectations
tech-crashNASDAQ -30%. AI expectations collapse; tech stocks hit hard, flight to quality
jpy-appreciationUSD/JPY -20 yen. Foreign asset JPY-denominated values fall; hit to exporters
customUser-specified scenario interpreted from natural language

Output Format (10-Step Pipeline)

Present results in the following structured steps.

Step 1: Portfolio Overview

  • Symbol list (symbol, name, sector, weight)
  • Total market cap (estimated)

Step 2: Concentration Analysis

  • Sector HHI / Region HHI / Currency HHI
  • Identify highest concentration axis
  • Risk level judgment (diversified / somewhat concentrated / dangerously concentrated)

Step 3: Shock Sensitivity Scores

  • Assessment of each stock's beta, financial health, and valuation resilience
  • Per-symbol shock sensitivity score (0–100)

Step 4: Scenario Definition

  • Applied scenario name and description
  • Macro variable changes (assumed movements in interest rates, FX, equities)

Step 5: Per-Symbol Impact Estimates

  • Estimated loss rate per symbol
  • Application of concentration multiplier
  • Portfolio-weighted impact

Step 6: Portfolio-Wide Impact

  • Estimated portfolio-wide loss rate
  • Largest loss contributor

Step 6b: Correlation Analysis (KIK-352)

  • Cross-symbol correlation matrix (Pearson correlation, 1-year daily returns)
  • High-correlation pairs detection (|r| >= 0.7)
  • Factor decomposition: regress each symbol against macro variables (USD/JPY, Nikkei 225, S&P 500, crude oil, US 10-year yield)
  • LLM interpretation: For residual correlations not explained by factor regression, use domain knowledge to infer causes (e.g., supply chain dependencies, shared customer base). Clearly separate "confirmed factors (statistical)" from "inferred factors (estimated)"

Step 6c: VaR (Historical Data-Based Risk Metrics) (KIK-352)

  • Calculate portfolio weighted returns from 1-year daily return history
  • 95% VaR / 99% VaR (daily and monthly)
  • Explain the difference from the scenario analysis (tail risk) in the stress test

Step 7: Causal Chain Analysis

  • Explanation of cascading effects when the scenario occurs
  • Cross-sector propagation paths

Step 8: Overall Assessment + Recommended Actions (KIK-352)

  • Specific risk mitigation proposals (rule-based auto-generated + Claude supplement)
  • Recommendations integrating concentration, correlation, VaR, and stress test results
  • Hedge candidates (symbols and sectors)
  • LLM supplement: In addition to rule-based recommendations, Claude should suggest sectors not in the portfolio and propose diversification targets informed by qualitative correlation causes

Execution Examples

# Basic stress test (scenario auto-detected)
python3 .../run_stress_test.py --portfolio 7203.T,AAPL,D05.SI

# Triple meltdown scenario
python3 .../run_stress_test.py --portfolio 7203.T,9984.T,6758.T --scenario triple-meltdown

# With weight specification
python3 .../run_stress_test.py --portfolio 7203.T,AAPL,D05.SI --weights 0.5,0.3,0.2

# Custom scenario
python3 .../run_stress_test.py --portfolio 7203.T,AAPL --scenario "semiconductor supply chain collapse"

Knowledge Integration Rules (KIK-466)

When get_context.py output contains the following, integrate with stress test results:

  • Previous stress test (StressTest): Compare with previous scenario and result. "Previous tech crash scenario: -18% → Current: -15% (improved: lower tech weighting)"
  • Concern notes: If a flagged symbol takes heavy damage in the stress test, "concern note matches → consider countermeasures"
  • Investment notes: Reference hedge strategy notes if available. "Previous lesson note: insufficient JPY hedge → still weak in USD surge scenario"

Keep looking

Skills are one crate of 328,083. 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.