@v587d/capital-generation 2.7.12 → 2.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/README.md +3 -2
  3. package/chart-ui/package.json +1 -1
  4. package/config/package.json +1 -1
  5. package/lib/agents/bash-guard.d.ts +22 -17
  6. package/lib/agents/bash-guard.js +32 -28
  7. package/lib/agents/root-tool-policy.d.ts +29 -3
  8. package/lib/agents/root-tool-policy.js +100 -14
  9. package/lib/index.js +14 -8
  10. package/lib/web-retriever/local-fetch.d.ts +1 -1
  11. package/lib/web-retriever/local-fetch.js +1 -1
  12. package/lib/web-retriever/wind-client.d.ts +1 -1
  13. package/lib/web-retriever/wind-client.js +1 -1
  14. package/package.json +1 -1
  15. package/preset/capital-generation/README.md +22 -15
  16. package/preset/capital-generation/agent.patch.yml +14 -1
  17. package/selected-skills/InvestSkill/UPSTREAM.md +17 -0
  18. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/10k-digest/SKILL.md +10 -296
  19. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/10k-digest/references/10-retrieving-the-filing.md +130 -0
  20. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/10k-digest/references/11-key-metrics-table.md +129 -0
  21. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/10k-digest/references/12-language-mode.md +60 -0
  22. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/bear-case/SKILL.md +5 -3
  23. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/catalyst-calendar/SKILL.md +10 -284
  24. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/catalyst-calendar/references/10-persona.md +113 -0
  25. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/catalyst-calendar/references/11-section-c-company-specific.md +108 -0
  26. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/catalyst-calendar/references/12-section-f-90-day.md +85 -0
  27. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/competitor-analysis/SKILL.md +11 -433
  28. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/competitor-analysis/references/10-overview.md +82 -0
  29. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/competitor-analysis/references/11-porter-s-five-forces.md +137 -0
  30. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/competitor-analysis/references/12-innovation-disruption-assessment.md +112 -0
  31. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/competitor-analysis/references/13-input-formats.md +130 -0
  32. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/dividend-analysis/SKILL.md +12 -639
  33. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/dividend-analysis/references/10-analysis-framework.md +138 -0
  34. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/dividend-analysis/references/11-dividend-history-and-reliability.md +131 -0
  35. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/dividend-analysis/references/12-share-buyback-analysis.md +125 -0
  36. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/dividend-analysis/references/13-fcf-deployment-scorecard.md +133 -0
  37. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/dividend-analysis/references/14-output.md +149 -0
  38. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/earnings-call-analysis/SKILL.md +10 -411
  39. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/earnings-call-analysis/references/10-analysis-framework.md +194 -0
  40. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/earnings-call-analysis/references/11-data-sources.md +196 -0
  41. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/earnings-call-analysis/references/12-thesis-invalidation.md +43 -0
  42. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/earnings-preview/SKILL.md +11 -234
  43. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/earnings-preview/references/10-overview.md +86 -0
  44. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/earnings-preview/references/11-phase-4-the-implied.md +60 -0
  45. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/earnings-preview/references/12-output-format.md +83 -0
  46. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/earnings-preview/references/13-standard-signal-output.md +34 -0
  47. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/economics-analysis/SKILL.md +10 -304
  48. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/economics-analysis/references/10-key-economic-indicators.md +98 -0
  49. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/economics-analysis/references/11-credit-market-indicators.md +114 -0
  50. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/economics-analysis/references/12-recession-probability-scoring.md +114 -0
  51. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/etf-analysis/SKILL.md +11 -236
  52. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/etf-analysis/references/10-overview.md +83 -0
  53. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/etf-analysis/references/11-phase-5-overlap-with.md +69 -0
  54. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/etf-analysis/references/12-output-format.md +79 -0
  55. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/etf-analysis/references/13-standard-signal-output.md +34 -0
  56. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/fact-check/SKILL.md +11 -243
  57. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/fact-check/references/10-overview.md +61 -0
  58. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/fact-check/references/11-phase-2-source-hierarchy.md +54 -0
  59. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/fact-check/references/12-phase-5-consistency.md +90 -0
  60. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/fact-check/references/13-notes.md +68 -0
  61. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/financial-report-analyst/SKILL.md +11 -499
  62. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/financial-report-analyst/references/10-overview.md +143 -0
  63. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/financial-report-analyst/references/11-phase-3-financial-statement.md +167 -0
  64. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/financial-report-analyst/references/12-phase-6-management-tone.md +176 -0
  65. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/financial-report-analyst/references/13-thesis-invalidation.md +43 -0
  66. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/industry-map/SKILL.md +10 -291
  67. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/industry-map/references/10-overview.md +117 -0
  68. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/industry-map/references/11-step-3-position-locator.md +112 -0
  69. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/industry-map/references/12-visualization-support.md +84 -0
  70. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/insider-trading/SKILL.md +10 -457
  71. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/insider-trading/references/10-analysis-framework.md +185 -0
  72. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/insider-trading/references/11-pattern-recognition.md +175 -0
  73. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/insider-trading/references/12-interpretation-guidelines.md +120 -0
  74. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/institutional-ownership/SKILL.md +11 -503
  75. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/institutional-ownership/references/10-analysis-framework.md +132 -0
  76. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/institutional-ownership/references/11-ownership-concentration-analysis.md +166 -0
  77. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/institutional-ownership/references/12-red-flags-warning-signs.md +192 -0
  78. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/institutional-ownership/references/13-thesis-invalidation.md +43 -0
  79. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/learning-coach/SKILL.md +11 -264
  80. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/learning-coach/references/10-overview.md +63 -0
  81. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/learning-coach/references/11-phase-2-explanation-card.md +108 -0
  82. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/learning-coach/references/12-output-format.md +88 -0
  83. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/learning-coach/references/13-standard-signal-output.md +34 -0
  84. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/options-analysis/SKILL.md +11 -448
  85. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/options-analysis/references/10-analysis-framework.md +109 -0
  86. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/options-analysis/references/11-implied-volatility-iv-analysis.md +102 -0
  87. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/options-analysis/references/12-earnings-play-analysis.md +109 -0
  88. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/options-analysis/references/13-data-sources.md +159 -0
  89. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/portfolio-review/SKILL.md +11 -435
  90. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/portfolio-review/references/10-phase-1-portfolio-snapshot.md +124 -0
  91. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/portfolio-review/references/11-phase-6-correlation-diversification.md +124 -0
  92. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/portfolio-review/references/12-phase-9-rebalancing-decision.md +153 -0
  93. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/portfolio-review/references/13-data-verification.md +62 -0
  94. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/position-ladder/SKILL.md +11 -372
  95. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/position-ladder/references/10-overview.md +102 -0
  96. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/position-ladder/references/11-phase-3-the-trim.md +88 -0
  97. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/position-ladder/references/12-phase-6-the-thesis.md +105 -0
  98. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/position-ladder/references/13-input-formats.md +105 -0
  99. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/risk-stress-test/SKILL.md +10 -250
  100. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/risk-stress-test/references/10-overview.md +92 -0
  101. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/risk-stress-test/references/11-phase-4-correlation-spike.md +116 -0
  102. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/risk-stress-test/references/12-notes.md +65 -0
  103. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/sector-analysis/SKILL.md +11 -381
  104. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/sector-analysis/references/10-sector-overview.md +123 -0
  105. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/sector-analysis/references/11-sector-correlation-matrix.md +90 -0
  106. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/sector-analysis/references/12-peer-benchmarking-within-sector.md +92 -0
  107. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/sector-analysis/references/13-consumer-staples.md +105 -0
  108. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/short-interest/SKILL.md +10 -352
  109. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/short-interest/references/10-analysis-framework.md +110 -0
  110. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/short-interest/references/11-bearish-thesis-evaluation.md +118 -0
  111. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/short-interest/references/12-data-sources.md +148 -0
  112. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/stock-eval/SKILL.md +16 -603
  113. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/stock-eval/references/10-analysis-components.md +122 -0
  114. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/stock-eval/references/11-dupont-decomposition.md +121 -0
  115. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/stock-eval/references/12-quality-scoring-framework.md +115 -0
  116. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/stock-eval/references/13-dcf-framework.md +113 -0
  117. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/stock-eval/references/14-analyst-consensus-tracking.md +127 -0
  118. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/stock-eval/references/15-thesis-invalidation.md +43 -0
  119. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/stock-screener/SKILL.md +5 -3
  120. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/stock-valuation/SKILL.md +12 -595
  121. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/stock-valuation/references/10-overview.md +133 -0
  122. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/stock-valuation/references/11-method-2-comparable-company.md +127 -0
  123. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/stock-valuation/references/12-football-field-summary-valuation.md +140 -0
  124. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/stock-valuation/references/13-terminal-value-two-methods.md +121 -0
  125. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/stock-valuation/references/14-when-dcf-is.md +110 -0
  126. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/tax-lens/SKILL.md +12 -304
  127. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/tax-lens/references/10-overview.md +73 -0
  128. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/tax-lens/references/11-phase-3-dividends-qualified.md +67 -0
  129. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/tax-lens/references/12-framework-non-us-module.md +61 -0
  130. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/tax-lens/references/13-scoring-tax-efficiency-score.md +83 -0
  131. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/tax-lens/references/14-thesis-invalidation.md +55 -0
  132. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/technical-analysis/SKILL.md +16 -612
  133. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/technical-analysis/references/10-chart-pattern-analysis.md +172 -0
  134. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/technical-analysis/references/11-chart-visualization-support.md +181 -0
  135. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/technical-analysis/references/12-multi-timeframe-analysis-mtf.md +95 -0
  136. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/technical-analysis/references/13-advanced-indicators-ichimoku-cloud.md +61 -0
  137. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/technical-analysis/references/14-options-flow-integration.md +95 -0
  138. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/technical-analysis/references/15-thesis-invalidation.md +45 -0
  139. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/thesis-tracker/SKILL.md +10 -274
  140. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/thesis-tracker/references/10-overview.md +94 -0
  141. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/thesis-tracker/references/11-phase-5-the-pre.md +113 -0
  142. package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/thesis-tracker/references/12-example.md +90 -0
  143. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-catalyst-calendar/SKILL.md +5 -3
  144. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-idea-generation/SKILL.md +5 -3
  145. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-sector-overview/SKILL.md +5 -3
  146. package/selected-skills/investment-skills/skills/buffett-investment-framework/SKILL.md +1 -1
  147. package/selected-skills/peter-lynch-skill/skills/peter-lynch-skill/SKILL.md +5 -3
  148. package/watchlist/package.json +1 -1
@@ -0,0 +1,105 @@
1
+ # 7. Phase 6 — The Thesis-Break Gate
2
+
3
+ Part 3 of 4 for `position-ladder` — 7. Phase 6 — The Thesis-Break Gate; 8. Scenario Presets; 9. Worked Example
4
+ See `SKILL.md` for what to read and when; this part is procedure, not routing.
5
+
6
+ ## 7. Phase 6 — The Thesis-Break Gate
7
+
8
+ A ladder is only legitimate on a name still worth owning. Without this gate, disciplined averaging down is a machine for concentrating capital into deteriorating businesses.
9
+
10
+ **Hard stop — abandon the ladder and consider exiting, do not add — if any of these fire:**
11
+
12
+ - The original investment thesis has been **falsified**, not merely delayed: structural margin compression, permanent demand loss, a broken product cycle, or the moat breached.
13
+ - Accounting or governance red flags surface (run `bear-case`; a restatement, auditor change, or aggressive revenue recognition ends the ladder).
14
+ - Leverage deterioration: covenant risk, a distressed refinancing, or dilutive emergency financing.
15
+ - The decline is **fundamental, not technical** — consensus estimates are being cut as fast as the price is falling, so the stock is not getting cheaper.
16
+ - The position has already breached the portfolio concentration cap.
17
+
18
+ **Do-not-ladder list** — asset types where this framework should refuse to produce a plan and say why:
19
+
20
+ - **Leveraged and inverse ETFs** — daily rebalancing makes them path-dependent with structural decay; averaging down compounds the decay.
21
+ - **Binary-event names** — single-drug biotechs, litigation-outcome stocks, pending all-cash acquisitions. There is no mean to revert to; the distribution is bimodal.
22
+ - **Anything where the bear case is solvency**, not valuation.
23
+
24
+ **Regime fit check** — the strategy needs oscillation:
25
+
26
+ | Signal | Favorable (ladder works) | Unfavorable (ladder misfires) |
27
+ |--------|-------------------------|-------------------------------|
28
+ | ADX(14) | < 25 — no dominant trend | > 30 — strong trend; ladder underfills or catches a falling knife |
29
+ | Price vs. MA200 | Oscillating around it | Extended far above (underfill) or in confirmed breakdown below |
30
+ | ATR as % of price | 1.5–5% — enough movement to fill rungs | < 1% — rungs never fill; > 8% — spacing must widen materially |
31
+ | Recent behavior | Range-bound, repeated tests of support | One-directional, gap-driven |
32
+
33
+ **Ladder Suitability Score (0–10)** — the skill's headline number:
34
+
35
+ | Component | Points | What earns full marks |
36
+ |-----------|--------|----------------------|
37
+ | Thesis integrity | 0–3 | Would you buy this fresh today, at this price, knowing nothing of your entry? |
38
+ | Regime fit | 0–2 | Range-bound, mean-reverting, oscillating around a level |
39
+ | Volatility adequacy | 0–2 | ATR wide enough that rungs realistically fill inside the time budget |
40
+ | Position headroom | 0–2 | Full ceiling still fits inside the portfolio concentration cap |
41
+ | Account / tax fit | 0–1 | Tax-advantaged account, or trim levels sit in gain territory |
42
+
43
+ | Score | Reading |
44
+ |-------|---------|
45
+ | 8.0–10.0 | Ladder is appropriate — execute the plan as modeled |
46
+ | 6.0–7.9 | Workable with a reduced ceiling and wider rungs |
47
+ | 4.0–5.9 | Marginal — prefer a single sized entry over a ladder |
48
+ | 0.0–3.9 | Do not ladder — the thesis, regime, or concentration test failed |
49
+
50
+ ---
51
+
52
+ ## 8. Scenario Presets
53
+
54
+ Match the preset to the situation, state which was applied, and show the parameters used.
55
+
56
+ | Preset | Floor / Ceiling | Rung spacing | Sizing | Thesis gate | Notes |
57
+ |--------|----------------|--------------|--------|-------------|-------|
58
+ | **Core compounder** | 60% / 100% | 3–4% or 1× ATR | Equal dollars | Full fundamental gate | Trim only above average cost; long holds favor tax-efficient trims |
59
+ | **Broad-index ETF autopilot** | 50% / 100% | 4–5% or 1× ATR | Equal dollars | None — no company thesis to break | Cleanest use case; regime and cap checks still apply |
60
+ | **High-beta single stock** | 40% / 100% | 8–12% or 1.5× ATR | Pyramid | Strict + hard stop | Smaller ceiling %, wider rungs, mandatory `bear-case` |
61
+ | **Starter + ladder (anti-underfill)** | 40% at market, ladder the rest | 1× ATR | Equal dollars | Full gate | For names that rarely pull back |
62
+ | **Underwater rescue** | Current holding / hard cap | Support-based | Equal dollars | **Mandatory re-underwrite** | Only proceed if the fresh-money test passes; otherwise this is an exit plan, not a ladder |
63
+
64
+ ---
65
+
66
+ ## 9. Worked Example
67
+
68
+ Position: 20 shares bought at $128. Price now $122. Target band: floor 60 shares, ceiling 100. Equal shares, $3 rungs, taxable account, specific-lot ID.
69
+
70
+ **Ladder**
71
+
72
+ | Rung | Price | Shares | Cost | Status |
73
+ |------|-------|--------|------|--------|
74
+ | 1 | $128 | 20 | $2,560 | filled (the original entry) |
75
+ | 2 | $125 | 20 | $2,500 | fills now — above market |
76
+ | 3 | $122 | 20 | $2,440 | fills now — at market |
77
+ | 4 | $119 | 20 | $2,380 | pending |
78
+ | 5 | $116 | 20 | $2,320 | pending |
79
+
80
+ Full fill: 100 shares, **$12,200** capital, blended average **$122.00**. Drawdown to full fill is **−4.9%** from today's $122 (116 ÷ 122 − 1) — that is the further decline the plan is signing up to sit through, and $4,700 of the $12,200 (rungs 4–5) is still uncommitted. Equal-*dollar* sizing of the same $12,200 would instead yield ~100.1 shares at **$121.85** — mechanically lower, always.
81
+
82
+ **Trim to floor** — price recovers: sell the $128 lot at $125, then the $125 lot at $128.
83
+
84
+ - Cash back: (20 × $125) + (20 × $128) = **$5,060**
85
+ - Realized: −$60 on the first lot, +$60 on the second = **$0 net**
86
+ - Remaining: 60 shares at $122 / $119 / $116 → average **$119.00**
87
+ - ⚠️ The $125 sale realized a **$60 loss**. Any repurchase within 30 days is a **wash sale** — the loss is disallowed and added to the replacement shares' basis.
88
+
89
+ **Re-add to ceiling** — price falls back; buy 20 at $117 and 20 at $115.
90
+
91
+ - 100 shares, total cash out **$11,780**, average **$117.80** (down from $122.00)
92
+
93
+ **Reality check at three prices**
94
+
95
+ | Price path | Buy-and-hold 100 @ $122 | Ladder + cycle |
96
+ |-----------|------------------------|----------------|
97
+ | Back to $122 | $0 | **+$420** — same 100 shares, $4.20 lower basis |
98
+ | Rallies to $140 (trimmed, never re-added) | +$1,800 | **+$1,260** — $540 worse; 40 shares were sold into the rally |
99
+ | Stalls at $115 | −$700 | −$280 on 100 shares at $117.80 |
100
+
101
+ The middle row is the honest cost of the strategy: **the lower average cost was purchased with forgone upside.** The first row is the edge. Which row you get is decided by the tape, not by the discipline.
102
+
103
+ ---
104
+
105
+
@@ -0,0 +1,105 @@
1
+ # 10. Input Formats
2
+
3
+ Part 4 of 4 for `position-ladder` — 10. Input Formats; 11. Output Format; Notes; Signal Output; Thesis Invalidation
4
+ See `SKILL.md` for what to read and when; this part is procedure, not routing.
5
+
6
+ ## 10. Input Formats
7
+
8
+ ### Format 1: Manage an existing position
9
+ ```text
10
+ User: /position-ladder AVGO — I hold 20 shares at $128, now $122. Target 60–100 shares.
11
+
12
+ Claude builds the ladder, the trim/re-add cycle, and the total-return comparison.
13
+ ```
14
+
15
+ ### Format 2: Plan a new position from scratch
16
+ ```text
17
+ User: /position-ladder MSFT — new position, max 5% of a $200k portfolio, ETF-style autopilot.
18
+
19
+ Claude derives the ceiling from the concentration cap and lays out the rungs.
20
+ ```
21
+
22
+ ### Format 3: Pasted holdings, multiple positions
23
+ ```text
24
+ User: /position-ladder — here are my holdings: [paste]. Which of these should I be laddering?
25
+
26
+ Claude scores each position's Ladder Suitability and produces a plan only for those that pass the gate.
27
+ ```
28
+
29
+ ---
30
+
31
+ ## 11. Output Format
32
+
33
+ 1. **Assumptions Stated** — every input used, every default applied, and what was assumed because it was not supplied. First section, always.
34
+ 2. **Position Snapshot** — current shares, average cost, market price, unrealized P&L, weight in portfolio.
35
+ 3. **Position Bounds** — floor, ceiling, and which of the three caps was binding.
36
+ 4. **Entry Ladder Table** — rungs, sizes, capital at full fill, blended average, drawdown to full fill.
37
+ 5. **Trim / Re-Add Cycle Table** — one complete cycle with running average cost and realized P&L.
38
+ 6. **Lot Accounting & Tax Notes** — lot method assumed, wash-sale flags with dates, holding-period effects.
39
+ 7. **Reality Check** — total return vs. buy-and-hold across all three price paths, in dollars.
40
+ 8. **Thesis-Break Gate** — the gate checklist, regime table, and the conditions that end the plan.
41
+ 9. **Ladder Suitability Score** — 0–10 with the component breakdown.
42
+ 10. **Investment Signal Block**.
43
+
44
+ Round share counts to whole shares (or state that fractional shares are assumed) and round rung prices to levels that can actually be entered as resting orders.
45
+
46
+ ---
47
+
48
+ ## Notes
49
+
50
+ - **Complements, does not replace**: run `stock-eval` or `fundamental-analysis` first to establish the thesis, `technical-analysis` for the support levels that make the best rungs, `bear-case` for the gate in Phase 6, and `portfolio-review` for the concentration cap that sets the ceiling.
51
+ - **The strategy is regime-dependent, and the regime is not knowable in advance.** Present it as a bounded, rules-based way to build a position — not as an edge that works everywhere.
52
+ - **Do not raise the ceiling mid-drawdown.** If the analysis concludes the position should be bigger, that is a new decision requiring a fresh thesis, not a ladder adjustment.
53
+ - **Fractional-share brokers change the math** — equal-dollar sizing becomes exact. Say which assumption is in force.
54
+ - Tax treatment is modeled at a high level for **US taxable accounts only**. It is not tax advice; recommend a tax professional for anything material.
55
+
56
+ ## Signal Output
57
+
58
+ This skill measures **execution suitability, not price direction** — so state the mapping explicitly. The Ladder Suitability Score drives the block: a high score means staged accumulation inside the band is appropriate and the plan should be executed as modeled; a low score means the thesis, regime, or concentration test failed and the correct action is to stop adding. `Action: BUY` here means "continue laddering within the stated cap" — never "buy without limit." `Action: SELL` means the gate failed, not that a short is warranted. Read the direction of the underlying stock from `stock-eval` or `bear-case`, not from this block.
59
+
60
+ All analysis concludes with this standardized block:
61
+
62
+ ```
63
+ ## Thesis Invalidation
64
+
65
+ After delivering the analysis signal, specify what would reverse it:
66
+
67
+ **If signal is BULLISH — thesis breaks if:**
68
+ - Price closes below the bottom rung on above-average volume with fundamental deterioration
69
+ - Consensus estimates are cut faster than the price falls (the stock is not getting cheaper)
70
+ - The position reaches its ceiling and the thesis gate no longer passes
71
+
72
+ **If signal is BEARISH — thesis breaks if:**
73
+ - The falsified thesis element is restored: margins re-expand, demand returns, guidance is raised
74
+ - The regime turns range-bound again (ADX falls below 25) with fundamentals stabilized
75
+ - Valuation resets low enough that a fresh-money buyer would want the full position today
76
+
77
+ **Re-run this analysis when:**
78
+ - [ ] Next earnings release
79
+ - [ ] Price moves ±15% from current level
80
+ - [ ] Any rung fills or any trim executes
81
+ - [ ] 60 days have elapsed
82
+ - [ ] Material news event (acquisition, leadership change, regulatory decision)
83
+
84
+ ╔══════════════════════════════════════════════╗
85
+ ║ INVESTMENT SIGNAL ║
86
+ ╠══════════════════════════════════════════════╣
87
+ ║ Signal: BULLISH / NEUTRAL / BEARISH ║
88
+ ║ Confidence: HIGH / MEDIUM / LOW ║
89
+ ║ Horizon: SHORT / MEDIUM / LONG-TERM ║
90
+ ║ Score: X.X / 10 ║
91
+ ╠══════════════════════════════════════════════╣
92
+ ║ Action: BUY / HOLD / SELL ║
93
+ ║ Conviction: STRONG / MODERATE / WEAK ║
94
+ ╚══════════════════════════════════════════════╝
95
+ ```
96
+
97
+ Score Guide: 8.0–10.0 Strongly Bullish | 6.0–7.9 Moderately Bullish | 4.0–5.9 Neutral | 2.0–3.9 Moderately Bearish | 0.0–1.9 Strongly Bearish
98
+ Confidence: HIGH (strong data, clear signals) | MEDIUM (mixed signals) | LOW (limited data, conflicting signals)
99
+ Horizon: SHORT-TERM (1 week–3 months) | MEDIUM-TERM (3 months–1 year) | LONG-TERM (1+ years)
100
+
101
+ **Note:** The Score above is the Ladder Suitability Score, mapped onto the standard scale for cross-skill comparability. It rates *how appropriate staged accumulation is right now* — not how attractive the stock is. Pair it with `/stock-eval` for the directional view.
102
+
103
+ **Disclaimer:** Educational analysis only. Not financial advice. All price levels and share counts are scenario models under stated assumptions, not trade instructions.
104
+
105
+
@@ -38,256 +38,16 @@ Data & Sources
38
38
 
39
39
  ---
40
40
 
41
- ## Overview
41
+ ## Read the Parts
42
42
 
43
- 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?**
43
+ Everything below the surface of this file lives in `references/`. **whole, with no line window** — quoting a rule or a template out of a slice of one is how a
44
+ file gets reported as read when it was only skimmed. The file names below are the only
45
+ addressing this entry has.
44
46
 
45
- `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.
47
+ - `references/10-overview.md` — Overview; 1. Inputs; 2. Framework
48
+ - `references/11-phase-4-correlation-spike.md` — (continued) 2. Framework; 3. Output Format; Example
49
+ - `references/12-notes.md` — Notes; Thesis Invalidation; Standard Signal Output
46
50
 
47
- **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.
48
-
49
- 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).
50
-
51
- ---
52
-
53
- ## 1. Inputs
54
-
55
- | Input | Required | Default if unstated |
56
- |-------|----------|---------------------|
57
- | Holdings with weights (or share counts + prices) | ✅ | — |
58
- | Per-holding beta (1Y vs. SPY), annualized σ, 30-day ADV | ✅ (paste, retrieve, or state the proxy) | sector-ETF beta / σ, flagged `proxy` |
59
- | Total portfolio value | ✅ (for dollar figures) | express everything in % |
60
- | Max-drawdown tolerance (the risk budget) | recommended | propose one from the investor profile: 15 % conservative · 25 % balanced · 40 % aggressive |
61
- | Horizon | optional | 1 day and 1 month |
62
- | Benchmark | optional | SPY |
63
- | Cash / bonds / hedges (puts, inverse ETFs) | optional | assumed zero — say so |
64
-
65
- 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)`.
66
-
67
- ---
68
-
69
- ## 2. Framework
70
-
71
- ### Phase 1 — Exposure map (what the book actually is)
72
-
73
- Weights first, then what they load onto:
74
-
75
- ```
76
- Weight_i = Value_i / Portfolio Value
77
- β_p (net beta) = Σ Weight_i × β_i
78
- $-beta to SPY = β_p × Portfolio Value (dollar move for a 1.00 % SPY move × 100)
79
- Sector weights = Σ Weight_i by GICS sector (flag any sector > 30 %)
80
- Top-3 weight = sum of the three largest positions
81
- ```
82
-
83
- | Position | Weight | β | σ (ann.) | Sector | Weight × β | ADV ($) |
84
- |----------|--------|---|----------|--------|------------|---------|
85
- | … | | | | | | |
86
- | **Portfolio** | 100 % | **β_p** | *(Phase 4)* | | | |
87
-
88
- Say plainly what the book is: "this is a 1.3-beta, 62 %-technology portfolio" is more useful than any statistic that follows.
89
-
90
- ### Phase 2 — Historical scenario replay
91
-
92
- Replay four regimes. **Measure every holding over the scenario's common date window** (the dates in the first column, index peak to index trough) — not each holding's own peak-to-trough, which would combine losses that never happened at the same time. Where a holding existed through the episode, use its actual return over that window; where it did not (or the data is not available), use **β_i × index move** or the sector ETF's return over the same window, and mark the row `proxy`. For the 2025 tariff shock, **write down the window you are using before computing** (the pre-announcement close to the trough) and confirm it with the user — it is recent enough that the dates are not yet a convention. Index magnitudes below are approximate figures for orientation — the user confirms any that drive the conclusion.
93
-
94
- | Scenario | Market move (approx.) | Portfolio est. move | Worst position | Note |
95
- |----------|-----------------------|---------------------|----------------|------|
96
- | **2008 GFC** (Oct-07 → Mar-09) | SPX ≈ −57 %, ~17 months; financials −80 %+, credit frozen | Σ Weight_i × replay_i | | Long duration of decline matters as much as depth |
97
- | **March 2020** (Feb-19 → Mar-23) | SPX ≈ −34 % in ~5 weeks; VIX > 80; everything sold at once | | | Speed: correlations went to ~1; liquidity vanished for a fortnight |
98
- | **2022 rate shock** (Jan → Oct) | SPX ≈ −25 %; Nasdaq-100 ≈ −35 %; long-duration growth −60–80 %; bonds fell *with* stocks | | | Growth / unprofitable tech and 60/40 diversification were the casualties |
99
- | **2025 tariff shock** (recent regime) | Sharp, policy-driven gap lower and partial recovery; magnitude and dates to be confirmed by the reader | | | Import-cost and China-revenue exposure, not beta, decided the losers |
100
-
101
- ```
102
- Portfolio scenario move = Σ Weight_i × Replay_i
103
- Replay_i = actual drawdown_i if the holding traded through the episode
104
- = β_i × Index move otherwise (mark "proxy")
105
- Dollar loss = Portfolio scenario move × Portfolio Value
106
- ```
107
-
108
- Report the **worst single scenario in dollars**, and whether it exceeds the risk budget. That comparison is the headline of the report.
109
-
110
- ### Phase 3 — Parametric VaR and CVaR
111
-
112
- ```
113
- σ_p = portfolio σ from Phase 4 (use the "normal-correlation" figure)
114
- VaR(α, t) = z_α × σ_p × √t × Portfolio Value z_95 = 1.645 z_99 = 2.326
115
- CVaR(α, t) = (φ(z_α) / (1 − α)) × σ_p × √t × Value CVaR_95 ≈ 2.063 σ√t · V CVaR_99 ≈ 2.665 σ√t · V
116
- t = 1/252 for 1 day · 21/252 for 1 month (σ_p is annualized)
117
- ```
118
-
119
- | Horizon | VaR 95 % | CVaR 95 % | VaR 99 % | CVaR 99 % |
120
- |---------|----------|-----------|----------|-----------|
121
- | 1 day | $ / % | | | |
122
- | 1 month | $ / % | | | |
123
-
124
- **Say what this is and is not.** Parametric VaR assumes normally distributed returns; equity tails are fatter, so realized 99 % losses come more often and run deeper than the table implies. Present VaR as the *floor* of what a bad day looks like, and the scenario replay in Phase 2 as the more honest picture of the tail. If the two disagree by more than 2×, say so and trust the scenario.
125
-
126
- ### Phase 4 — Correlation spike: the diversification you think you have
127
-
128
- Diversification is measured on calm days and disappears on the days it is needed. Compute portfolio σ twice:
129
-
130
- ```
131
- σ_p² = Σ_i Σ_j w_i w_j σ_i σ_j ρ_ij
132
-
133
- Normal case : ρ_ij = the pasted / retrieved pairwise correlations
134
- (if unavailable: 0.6 within sector · 0.35 across sectors · 0.0 vs. cash — mark "assumed")
135
- Crisis case : ρ_ij = 0.85 for every equity pair (0.95 within sector); bonds vs. equities 0.3
136
- (2022-style: not the −0.3 the 60/40 model assumes)
137
-
138
- Diversification benefit = 1 − σ_p / Σ w_i σ_i (report for both cases)
139
- ```
140
-
141
- | | Portfolio σ (ann.) | 1-month VaR 99 % | Diversification benefit |
142
- |---|---|---|---|
143
- | Normal correlations | | | |
144
- | Crisis correlations (ρ → 0.85) | | | |
145
-
146
- The gap between the two rows is the amount of "diversification" the portfolio will lose exactly when it is needed. A portfolio whose crisis σ is more than 1.4× its normal σ is diversified in name only.
147
-
148
- ### Phase 5 — Factor sensitivities
149
-
150
- Three exposures that historical beta hides. Score each **Low / Medium / High** with the weight of the portfolio that carries it and the direction of the hit:
151
-
152
- | Factor | Who gets hurt | Who benefits | Portfolio exposure | Direction of a +1 σ shock |
153
- |--------|---------------|--------------|--------------------|---------------------------|
154
- | **Rates ↑** (10Y +100 bp) | Long-duration growth (high P/S, distant cash flows), REITs, utilities, long bonds | Banks (NIM), insurers, cash | % of book in rate-sensitive names | est. % move |
155
- | **USD ↑** (DXY +5 %) | Multinationals with > 40 % non-US revenue, commodity producers, EM | Domestic small caps, importers | % of book with heavy foreign revenue | |
156
- | **Oil ↑** (WTI +25 %) | Airlines, chemicals, consumer discretionary, transports | Energy producers, oil services | % energy vs. % oil-consumers | |
157
-
158
- Use each company's segment / geographic disclosure (10-K) for revenue exposure; use the sector as a proxy only when stated.
159
-
160
- ### Phase 6 — Liquidity: can it actually be sold?
161
-
162
- ```
163
- Days to exit_i = Shares held_i / (0.20 × ADV_i in shares) (selling no more than 20 % of a day's volume)
164
- Illiquid weight = Σ Weight_i where Days to exit_i > 5
165
- Portfolio exit = the longest Days-to-exit among positions above 2 % weight
166
- ```
167
-
168
- | Position | Shares | ADV (shares) | Days to exit @ 20 % ADV | Flag |
169
- |----------|--------|--------------|-------------------------|------|
170
- | … | | | | > 5 days ⚠️ · > 20 days 🔴 |
171
-
172
- A position that takes more than a month to exit at 20 % of ADV is a private holding with a ticker. Its drawdown in Phase 2 should be widened by an illiquidity haircut (10–25 %) and said so.
173
-
174
- ### Phase 7 — Risk Budget Score (0–10)
175
-
176
- The headline number. It measures **how far inside the stated drawdown budget the portfolio sits** — not whether the holdings are attractive.
177
-
178
- | Component | Weight | 10 looks like | 0 looks like |
179
- |-----------|--------|---------------|--------------|
180
- | Worst historical scenario vs. budget | 35 % | Worst replay ≤ 60 % of the budget | Worst replay > 150 % of the budget |
181
- | 1-month CVaR 99 % vs. budget | 20 % | CVaR ≤ 40 % of the budget | CVaR > budget |
182
- | Correlation-spike resilience | 15 % | Crisis σ ≤ 1.2× normal σ | Crisis σ > 1.6× normal σ |
183
- | Concentration (top-3 weight, sector max) | 15 % | Top-3 < 25 %, no sector > 30 % | Top-3 > 50 % or one sector > 50 % |
184
- | Liquidity | 10 % | Every position exits in ≤ 2 days | > 10 % of the book needs > 20 days |
185
- | Factor tilt | 5 % | No High exposure on any factor | High on two or more factors, same direction |
186
-
187
- ```
188
- Risk Budget Score = Σ component score × weight (each component scored 0–10, linearly between the anchors)
189
- ```
190
-
191
- Map — the same bands as the standard Score Guide: **≥ 6.0 → risk within budget** (signal BULLISH; 8.0+ comfortably so) · **4.0–5.9 → at the edge** (NEUTRAL) · **< 4.0 → over budget** (BEARISH). If no budget was supplied, state the one you assumed and show how the score changes at the other two tolerance levels.
192
-
193
- ---
194
-
195
- ## 3. Output Format
196
-
197
- 1. **Data & Sources** header (above) — including the source of every β / σ / ADV and which are proxies
198
- 2. **Headline** — three lines: what the book is (β_p, largest tilts) · worst scenario in dollars vs. the budget · Risk Budget Score
199
- 3. **Exposure map** (Phase 1 table)
200
- 4. **Scenario replay** (Phase 2 table) with proxies marked
201
- 5. **VaR / CVaR** table (Phase 3) with the normal-distribution caveat stated
202
- 6. **Correlation spike** (Phase 4) — normal vs. crisis rows
203
- 7. **Factor sensitivities** (Phase 5)
204
- 8. **Liquidity** (Phase 6) with the longest exit named
205
- 9. **Risk Budget Score** table (Phase 7) and the sensitivity to the budget assumed
206
- 10. **What would bring it inside budget** — the two or three smallest changes (trim X to Y %, add Z % cash, replace A with a lower-β B) with the estimated effect on the worst scenario. Hand the *tax* cost of each to `tax-lens`; hand the *how* to `position-ladder`.
207
- 11. **Thesis Invalidation** and the **Investment Signal block**
208
-
209
- ---
210
-
211
- ## Example
212
-
213
- ```
214
- User: Stress-test this portfolio against 2008 and 2022. $400k total. NVDA 22%, AVGO 15%,
215
- MSFT 15%, TSLA 12%, AMZN 10%, XOM 8%, JPM 8%, cash 10%. I can stomach a 25% drawdown.
216
- [pastes 1Y betas, σ, and ADV for each]
217
-
218
- The assistant maps the book first: net β 1.28, 74% technology / consumer-tech, top-3 weight
219
- 52%, 10% cash. Scenario replay: 2008 ≈ −52% ($−208k, mostly proxy via β — none of the tech
220
- names' 2008 paths are representative of today's businesses, and it says so); March 2020
221
- ≈ −41% in five weeks; 2022 rate shock ≈ −38% ($−152k) with TSLA (−65%) and NVDA (−50%) as the
222
- worst positions; 2025 tariff shock flagged as the regime where AVGO / NVDA China exposure, not
223
- beta, sets the loss — magnitude left for the reader to confirm. Parametric 1-month VaR 99% is
224
- $−61k, CVaR 99% $−70k — a third of the 2022 replay, so the assistant tells the user to trust the
225
- replay, not the VaR. Crisis-correlation σ is 1.5× normal σ: the seven names diversify each
226
- other on quiet days only. Liquidity is fine (every position exits in under a day). Factor tilt:
227
- High on rates (long-duration growth), Medium on USD, oil roughly neutral (XOM vs. AMZN/TSLA).
228
- Risk Budget Score 3.4 / 10 — every historical scenario except a mild one breaches the 25%
229
- budget. Smallest fixes: trim TSLA 12 → 5% and NVDA 22 → 15% into cash (worst-scenario loss
230
- falls to ≈ −29%), or accept the tail and restate the budget at 40%. Tax cost of the trims →
231
- tax-lens; how to execute → position-ladder.
232
- ```
233
-
234
- ---
235
-
236
- ## Notes
237
-
238
- - **This is a report, not a trade list.** The Risk Budget Score says whether the risk fits the budget; deciding what to do about it belongs to `portfolio-review`, `position-ladder`, and the investor.
239
- - **Every number is only as good as the pasted inputs.** State proxies, assumed correlations, and index magnitudes as such. If more than a third of the risk inputs are proxies, the header's Confidence is LOW regardless of source quality.
240
- - **Scenario dates and magnitudes are approximate** orientation figures for major indices; the user confirms any that decide the verdict, especially the recent 2025 regime.
241
- - **Options and hedges**: if the user holds puts or inverse products, model them as a negative-β sleeve with a stated hedge ratio, and note that hedges decay and roll — a hedge's protection is for the period it covers, not forever.
242
- - **Rebalance the budget, not just the book.** A user who cannot stomach the worst historical scenario for their current book has two honest choices: less risk, or a bigger stated budget. Present both.
243
- - Run `economics-analysis` first when the question is *which* of the four regimes is nearest; run `thesis-tracker --update` after a drawdown to separate a broken thesis from ordinary volatility.
244
-
245
- ## Thesis Invalidation
246
-
247
- After delivering the analysis signal, specify what would reverse it:
248
-
249
- **If signal is BULLISH (risk within budget) — the verdict breaks if:**
250
- - Any position drifts above the concentration anchors in Phase 7 (top-3 > 50 % or one sector > 30 %) through price appreciation alone — the book re-rates itself without a trade
251
- - Realized 30-day correlations between the top holdings rise above 0.7 in calm markets — the crisis case is becoming the base case
252
- - `economics-analysis` flags a regime shift toward the scenario that produced this book's worst replay (late-cycle → recession, or a renewed rate-hiking path for a long-duration book)
253
- - ADV of any position above 5 % weight halves — the liquidity assumption no longer holds
254
-
255
- **If signal is BEARISH (over budget) — the verdict breaks if:**
256
- - The proposed trims / cash raise are executed and the worst-scenario replay falls inside the budget (re-run to confirm the number, not the intention)
257
- - The user restates the drawdown budget with a written reason (horizon, income, other assets) — the score is relative to the budget, so an honest larger budget changes it
258
- - A hedge sleeve is added with a stated ratio and roll plan that brings the crisis-correlation σ inside the anchor
259
-
260
- **Re-run this analysis when:**
261
- - [ ] Quarter-end, or any rebalance
262
- - [ ] Any single position moves ±25 % relative to the portfolio
263
- - [ ] VIX closes above 30, or the 10-year yield moves ±75 bp in a quarter
264
- - [ ] A contribution or withdrawal larger than 10 % of portfolio value
265
- - [ ] The investor's horizon, income needs, or stated drawdown budget change
266
-
267
- ## Standard Signal Output
268
-
269
- This skill measures **whether the portfolio's risk fits the investor's budget, not whether its holdings will rise**, so state the mapping: `Signal: BULLISH` means the measured risk is inside the stated drawdown budget with margin; `NEUTRAL` means it sits at the edge; `BEARISH` means the worst plausible scenario breaches it. `Action: BUY` here means "the current risk level is acceptable to hold" — never "buy more." `Action: SELL` means "reduce risk," not that any holding is a short. Read the direction of the individual holdings from `stock-eval` or `bear-case`, not from this block.
270
-
271
- All analysis concludes with this standardized block:
272
-
273
- ```
274
- ╔══════════════════════════════════════════════╗
275
- ║ INVESTMENT SIGNAL ║
276
- ╠══════════════════════════════════════════════╣
277
- ║ Signal: BULLISH / NEUTRAL / BEARISH ║
278
- ║ Confidence: HIGH / MEDIUM / LOW ║
279
- ║ Horizon: SHORT / MEDIUM / LONG-TERM ║
280
- ║ Score: X.X / 10 ║
281
- ╠══════════════════════════════════════════════╣
282
- ║ Action: BUY / HOLD / SELL ║
283
- ║ Conviction: STRONG / MODERATE / WEAK ║
284
- ╚══════════════════════════════════════════════╝
285
- ```
286
-
287
- Score Guide: 8.0–10.0 Strongly Bullish | 6.0–7.9 Moderately Bullish | 4.0–5.9 Neutral | 2.0–3.9 Moderately Bearish | 0.0–1.9 Strongly Bearish
288
- Confidence: HIGH (strong data, clear signals) | MEDIUM (mixed signals) | LOW (limited data, conflicting signals)
289
- Horizon: SHORT-TERM (1 week–3 months) | MEDIUM-TERM (3 months–1 year) | LONG-TERM (1+ years)
290
-
291
- **Note:** The Score above is the Risk Budget Score, mapped onto the standard scale for cross-skill comparability. It rates *how far inside the stated drawdown budget the portfolio sits* — not how attractive the holdings are. Confidence is LOW whenever more than a third of the β / σ / ADV inputs are proxies or assumed correlations were used.
292
-
293
- **Disclaimer:** Educational analysis only. Not financial advice. VaR, scenario replays, and drawdown estimates are models under stated assumptions; realized losses can and do exceed them.
51
+ Loading this file is not reading the skill: the steps, templates, and thresholds exist only
52
+ in the parts above. Say which parts you opened, name the ones you did not, and never report a
53
+ step or a template you have not read in this session.
@@ -0,0 +1,92 @@
1
+ # Overview
2
+
3
+ Part 1 of 3 for `risk-stress-test` — Overview; 1. Inputs; 2. Framework
4
+ See `SKILL.md` for what to read and when; this part is procedure, not routing.
5
+
6
+ ## Overview
7
+
8
+ 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?**
9
+
10
+ `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.
11
+
12
+ **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.
13
+
14
+ 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).
15
+
16
+ ---
17
+
18
+ ## 1. Inputs
19
+
20
+ | Input | Required | Default if unstated |
21
+ |-------|----------|---------------------|
22
+ | Holdings with weights (or share counts + prices) | ✅ | — |
23
+ | Per-holding beta (1Y vs. SPY), annualized σ, 30-day ADV | ✅ (paste, retrieve, or state the proxy) | sector-ETF beta / σ, flagged `proxy` |
24
+ | Total portfolio value | ✅ (for dollar figures) | express everything in % |
25
+ | Max-drawdown tolerance (the risk budget) | recommended | propose one from the investor profile: 15 % conservative · 25 % balanced · 40 % aggressive |
26
+ | Horizon | optional | 1 day and 1 month |
27
+ | Benchmark | optional | SPY |
28
+ | Cash / bonds / hedges (puts, inverse ETFs) | optional | assumed zero — say so |
29
+
30
+ 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)`.
31
+
32
+ ---
33
+
34
+ ## 2. Framework
35
+
36
+ ### Phase 1 — Exposure map (what the book actually is)
37
+
38
+ Weights first, then what they load onto:
39
+
40
+ ```
41
+ Weight_i = Value_i / Portfolio Value
42
+ β_p (net beta) = Σ Weight_i × β_i
43
+ $-beta to SPY = β_p × Portfolio Value (dollar move for a 1.00 % SPY move × 100)
44
+ Sector weights = Σ Weight_i by GICS sector (flag any sector > 30 %)
45
+ Top-3 weight = sum of the three largest positions
46
+ ```
47
+
48
+ | Position | Weight | β | σ (ann.) | Sector | Weight × β | ADV ($) |
49
+ |----------|--------|---|----------|--------|------------|---------|
50
+ | … | | | | | | |
51
+ | **Portfolio** | 100 % | **β_p** | *(Phase 4)* | | | |
52
+
53
+ Say plainly what the book is: "this is a 1.3-beta, 62 %-technology portfolio" is more useful than any statistic that follows.
54
+
55
+ ### Phase 2 — Historical scenario replay
56
+
57
+ Replay four regimes. **Measure every holding over the scenario's common date window** (the dates in the first column, index peak to index trough) — not each holding's own peak-to-trough, which would combine losses that never happened at the same time. Where a holding existed through the episode, use its actual return over that window; where it did not (or the data is not available), use **β_i × index move** or the sector ETF's return over the same window, and mark the row `proxy`. For the 2025 tariff shock, **write down the window you are using before computing** (the pre-announcement close to the trough) and confirm it with the user — it is recent enough that the dates are not yet a convention. Index magnitudes below are approximate figures for orientation — the user confirms any that drive the conclusion.
58
+
59
+ | Scenario | Market move (approx.) | Portfolio est. move | Worst position | Note |
60
+ |----------|-----------------------|---------------------|----------------|------|
61
+ | **2008 GFC** (Oct-07 → Mar-09) | SPX ≈ −57 %, ~17 months; financials −80 %+, credit frozen | Σ Weight_i × replay_i | | Long duration of decline matters as much as depth |
62
+ | **March 2020** (Feb-19 → Mar-23) | SPX ≈ −34 % in ~5 weeks; VIX > 80; everything sold at once | | | Speed: correlations went to ~1; liquidity vanished for a fortnight |
63
+ | **2022 rate shock** (Jan → Oct) | SPX ≈ −25 %; Nasdaq-100 ≈ −35 %; long-duration growth −60–80 %; bonds fell *with* stocks | | | Growth / unprofitable tech and 60/40 diversification were the casualties |
64
+ | **2025 tariff shock** (recent regime) | Sharp, policy-driven gap lower and partial recovery; magnitude and dates to be confirmed by the reader | | | Import-cost and China-revenue exposure, not beta, decided the losers |
65
+
66
+ ```
67
+ Portfolio scenario move = Σ Weight_i × Replay_i
68
+ Replay_i = actual drawdown_i if the holding traded through the episode
69
+ = β_i × Index move otherwise (mark "proxy")
70
+ Dollar loss = Portfolio scenario move × Portfolio Value
71
+ ```
72
+
73
+ Report the **worst single scenario in dollars**, and whether it exceeds the risk budget. That comparison is the headline of the report.
74
+
75
+ ### Phase 3 — Parametric VaR and CVaR
76
+
77
+ ```
78
+ σ_p = portfolio σ from Phase 4 (use the "normal-correlation" figure)
79
+ VaR(α, t) = z_α × σ_p × √t × Portfolio Value z_95 = 1.645 z_99 = 2.326
80
+ CVaR(α, t) = (φ(z_α) / (1 − α)) × σ_p × √t × Value CVaR_95 ≈ 2.063 σ√t · V CVaR_99 ≈ 2.665 σ√t · V
81
+ t = 1/252 for 1 day · 21/252 for 1 month (σ_p is annualized)
82
+ ```
83
+
84
+ | Horizon | VaR 95 % | CVaR 95 % | VaR 99 % | CVaR 99 % |
85
+ |---------|----------|-----------|----------|-----------|
86
+ | 1 day | $ / % | | | |
87
+ | 1 month | $ / % | | | |
88
+
89
+ **Say what this is and is not.** Parametric VaR assumes normally distributed returns; equity tails are fatter, so realized 99 % losses come more often and run deeper than the table implies. Present VaR as the *floor* of what a bad day looks like, and the scenario replay in Phase 2 as the more honest picture of the tail. If the two disagree by more than 2×, say so and trust the scenario.
90
+
91
+
92
+ This section is not finished here: `2. Framework` continues in `references/11-phase-4-correlation-spike.md`.