@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
@@ -38,280 +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 answers a question *today*: is it cheap, is the moat real, is the chart constructive, what does the bear say. None of them remembers the answer. Three months later the investor is left with a position, a vague feeling, and no record of what they expected to happen — which is exactly the state in which people average down on a broken story or sell a working one on a bad week.
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
- **This skill turns an analysis into a contract with your future self.** It produces a single saved file per ticker that states, in falsifiable terms, *why* the position exists, *which numbers* have to keep being true, *what* would prove the idea wrong, and *when* the next check is due. Then, on `--update`, it re-reads that file against current data and hands back one word — **INTACT**, **WEAKENED**, or **BROKEN** (or **INSUFFICIENT EVIDENCE** when the data to decide is not there) — together with the specific line that changed.
47
+ - `references/10-overview.md` — Overview; 1. Modes; 2. Inputs; 3. Framework
48
+ - `references/11-phase-5-the-pre.md` — (continued) 3. Framework; 4. The Saved File — Contract; Thesis; KPIs; Triggers; Catalysts; Pre-mortem; Next check; Decision log; 5. Output Format
49
+ - `references/12-example.md` — Example; Notes; Thesis Invalidation; Standard Signal Output
46
50
 
47
- It fills the gap between Playbook steps 1 (write the thesis), 9 (monitor), and 10 (know when to sell) in the Learning track, which today have no skill behind them.
48
-
49
- **What it is not.** It is not a valuation, a screen, or a timing tool. It imports its KPIs and triggers *from* the other skills (`stock-eval` for quality metrics, `stock-valuation` for the fair-value range, `bear-case` for the thesis-killers, `catalyst-calendar` for dates, `position-ladder` for the share-count ceiling) and holds them to account. Run the analysis skills first; run this one to write down what they concluded.
50
-
51
- ---
52
-
53
- ## 1. Modes
54
-
55
- | Mode | Invocation | What it does |
56
- |------|------------|--------------|
57
- | **Open** | `thesis-tracker NVDA` (+ pasted analyses, or none) | Interview the user, draft the thesis file, save it to `output/thesis/NVDA.md` |
58
- | **Update** | `thesis-tracker NVDA --update` (+ current data or a fresh analysis) | Re-read the saved file, refresh every KPI, re-test every trigger, return INTACT / WEAKENED / BROKEN (or INSUFFICIENT EVIDENCE), append to the decision log |
59
- | **Review** | `thesis-tracker --review` (no ticker) | Read every file in `output/thesis/`, list status and next-check date per ticker, flag anything overdue or sitting at INSUFFICIENT EVIDENCE |
60
- | **Close** | `thesis-tracker NVDA --close "sold — trigger 2 fired"` | Mark the thesis closed with the exit reason and final P&L; keep the file for `trade-postmortem` |
61
-
62
- If the environment cannot write files, output the complete thesis file as a fenced block and tell the user to save it at the stated path — the *contract* matters, not the storage.
63
-
64
- ---
65
-
66
- ## 2. Inputs
67
-
68
- | Input | Required | Default if unstated |
69
- |-------|----------|---------------------|
70
- | Ticker | ✅ for Open, Update, Close · not used by Review (it reads every file) | — |
71
- | The thesis in the user's own words | ✅ for Open | ask — never invent a thesis for the user |
72
- | Entry price and date, position size | recommended | record as "not stated" |
73
- | Prior analyses (`stock-eval`, `bear-case`, `stock-valuation`, …) | optional | derive KPIs from the thesis text |
74
- | Horizon | optional | 12 months |
75
- | Existing thesis file | ✅ for Update / Close | — |
76
-
77
- **The user writes the thesis; the skill sharpens it.** If the stated thesis is not falsifiable ("great company, will go up"), push back with the three questions in Phase 1 until it is. A thesis that cannot be wrong cannot be tracked.
78
-
79
- ---
80
-
81
- ## 3. Framework
82
-
83
- ### Phase 1 — Sharpen the thesis (Open)
84
-
85
- Reduce the thesis to **one paragraph** that answers, in order:
86
-
87
- 1. **What has to happen** to the business for this to work (the mechanism — not "the stock goes up")
88
- 2. **Why the market is wrong** today — what is mispriced, and why the user sees it and the marginal buyer does not
89
- 3. **Why now** — the catalyst, the regime, or the price that makes this a decision today instead of in a year
90
-
91
- Reject any paragraph that only restates the company description. Test: *could a reasonable bear read this and know exactly what to disagree with?*
92
-
93
- ### Phase 2 — Pick the KPIs (3–5, no more)
94
-
95
- Each KPI is a number the thesis *depends on*, with a **threshold** below or above which the thesis is in trouble, and a **source** that can be checked next quarter.
96
-
97
- | KPI | Threshold | Why it matters to *this* thesis | Source | Current | Date |
98
- |-----|-----------|--------------------------------|--------|---------|------|
99
- | e.g. Data-center revenue growth (YoY) | ≥ 40% | The multiple assumes hyperscaler capex keeps compounding | 10-Q segment table | 112% | 2026-05-28 |
100
- | e.g. Gross margin | ≥ 70% | Pricing power is the moat claim; margin is its footprint | 10-Q | 75.5% | 2026-05-28 |
101
- | e.g. Net cash | > $0 | Rules out balance-sheet stress in a downturn | 10-Q | +$38B | 2026-05-28 |
102
-
103
- Rules:
104
- - Prefer KPIs from the **financial statements** over sentiment or price-based ones. Price is the output, not an input to the thesis.
105
- - **One valuation KPI is allowed** (e.g. forward P/E ≤ 35 or price within `stock-valuation`'s fair-value range) so that "the thesis is right but fully priced" is a detectable state.
106
- - If a KPI has no threshold, it is a curiosity, not a KPI. Remove it.
107
- - Import thresholds from the analyses that produced them when available (`stock-eval` quality gates, `dividend-analysis` payout ceiling, `short-interest` squeeze levels).
108
-
109
- ### Phase 3 — Write the invalidation triggers
110
-
111
- Triggers are **events**, not feelings. Each one names the observation and the action it obliges:
112
-
113
- ```
114
- Triggers | if <observable event or KPI breach> → <action: review / trim / exit>
115
- ```
116
-
117
- Draw them from three places, in this order of authority:
118
- 1. **The Thesis Invalidation sections** of every analysis skill already run on the ticker — copy them in verbatim, they were written for exactly this
119
- 2. **The `bear-case` Thesis-Killers** — the bear's best arguments become the bull's triggers
120
- 3. **The user's own "I would sell if…"** — written down while calm
121
-
122
- A KPI breach is a *review* trigger by default; two simultaneous breaches, or any breach of the thesis's core mechanism (Phase 1, item 1), is an *exit* trigger. Price alone is never an exit trigger unless the user is explicitly running a stop-loss discipline — write that down too, so it is a rule and not a reaction.
123
-
124
- ### Phase 4 — Catalysts and the next check
125
-
126
- List the dated events that will *produce new evidence* for or against the thesis (earnings, product cycles, regulatory decisions, lock-up expiries, FOMC when the thesis is rate-sensitive). Import from `catalyst-calendar` when available. The **next-check date** is the earliest of: the next catalyst, the next earnings release, or 90 days.
127
-
128
- ### Phase 5 — The pre-mortem
129
-
130
- One paragraph, written in the past tense, dated twelve months out:
131
-
132
- > *"It is <date + 12 months>. The position lost 40%. Looking back, the reason was…"*
133
-
134
- This forces the most probable failure path into the open while it can still be wired into a trigger. If the pre-mortem names a cause that no trigger would catch, add the trigger.
135
-
136
- ### Phase 6 — Update: re-test everything (`--update`)
137
-
138
- On every update:
139
-
140
- 1. Refresh the **Current / Date** columns of every KPI from the newest data the user supplies or the assistant can retrieve. Never carry a stale value forward silently — mark it `stale` with its date.
141
- 2. Re-test every **trigger**: fired / not fired / cannot assess (say why).
142
- 3. Re-read the **thesis paragraph** against what actually happened. Did the mechanism play out, stall, or go the other way?
143
- 4. Return exactly one **status**. Apply the rules top-down; the first that matches wins:
144
-
145
- | Status | Rule |
146
- |--------|------|
147
- | **BROKEN** | Two or more KPIs breached on *current* data, *or* any exit-trigger fired, *or* the core mechanism has been falsified (the thing that had to happen did not, and the reason is structural) |
148
- | **WEAKENED** | One KPI breached *or* one review-trigger fired *or* the mechanism is behind schedule — the thesis is still possible but the evidence has moved against it |
149
- | **INSUFFICIENT EVIDENCE** | Fewer than half the KPIs could be refreshed with data dated after the last check, and no trigger could be assessed. Nothing is known to have broken — but nothing has been confirmed either. Name the KPIs that need data, and do **not** carry the previous status forward |
150
- | **INTACT** | Every KPI is within threshold **on data dated after the last check**; no trigger fired; mechanism on track. A stale KPI cannot support INTACT — at best it leaves the status at INSUFFICIENT EVIDENCE |
151
-
152
- An INSUFFICIENT EVIDENCE status does not change the file's last confirmed status line; it is recorded in the decision log (`checked — insufficient evidence — <KPIs missing>`) and the next-check date is moved to when the data will exist (usually the next filing).
153
-
154
- 5. Name **the specific line that changed** — the KPI, its old value, its new value, and the threshold. A status without a line is an opinion.
155
- 6. Append a **decision log** row. The log records what the user *did* and *why*, priced and dated, and names the skill that informed it. It is the raw material for `trade-postmortem`.
156
-
157
- **Status is not a signal.** WEAKENED does not mean sell; it means the next check moves up and the position should not be added to. BROKEN means the reason for owning it is gone — what to do about that is a `position-ladder` / tax question, but *adding* is off the table. INSUFFICIENT EVIDENCE means the honest answer is "I don't know yet" — treat it like WEAKENED for position management (no adding) until the data arrives.
158
-
159
- ### Phase 7 — Thesis Health Score (0–10)
160
-
161
- The headline number, used for the signal block. It measures **how well the thesis is holding up against its own tests**, not how attractive the stock is.
162
-
163
- | Component | Weight | 10 looks like | 0 looks like |
164
- |-----------|--------|---------------|--------------|
165
- | KPI adherence | 40% | All KPIs inside threshold with margin | Majority breached |
166
- | Trigger status | 30% | None fired | Exit trigger fired |
167
- | Mechanism progress | 20% | Phase 1 "what has to happen" is visibly happening | Falsified |
168
- | Evidence freshness | 10% | Every KPI dated within the last quarter | KPIs stale or unverifiable |
169
-
170
- Map — the same bands as the standard Score Guide: **≥ 6.0 → INTACT · 4.0–5.9 → WEAKENED · < 4.0 → BROKEN.** INSUFFICIENT EVIDENCE is not scored from the table above — report the score as `n/a` in the file and use **5.0** in the signal block (NEUTRAL, Confidence LOW) so it stays comparable across skills. If the rule table in Phase 6 and the score disagree, the *rule table wins* and the score is adjusted to match — the score summarizes the rules, it does not override them.
171
-
172
- ---
173
-
174
- ## 4. The Saved File — Contract
175
-
176
- `output/thesis/<TICKER>.md`. Keep the section order and the pipe tables exactly; `--update` and `--review` parse them.
177
-
178
- ```
179
- # Thesis · <TICKER> · opened YYYY-MM-DD · status INTACT | WEAKENED | BROKEN | INSUFFICIENT EVIDENCE | CLOSED
180
- Data & Sources · as of YYYY-MM-DD · <sources> · <retrieval> · <confidence>
181
-
182
- ## Thesis
183
- <one paragraph: what has to happen · why the market is wrong · why now>
184
- Horizon: <n> months Entry: $<price> on YYYY-MM-DD Size: <shares or % of portfolio> Ceiling: <from position-ladder, if any>
185
-
186
- ## KPIs
187
- | KPI | Threshold | Source | Current | Date | Status |
188
- |-----|-----------|--------|---------|------|--------|
189
- | … | … | … | … | … | ✓ / ✗ / stale |
190
-
191
- ## Triggers
192
- | If | Then | Source | Status |
193
- |----|------|--------|--------|
194
- | … | review / trim / exit | bear-case · stock-eval · user | not fired / FIRED YYYY-MM-DD |
195
-
196
- ## Catalysts
197
- | Date | Event | Expected impact | Evidence for / against |
198
- |------|-------|-----------------|------------------------|
199
-
200
- ## Pre-mortem
201
- "It is YYYY-MM-DD. This lost 40% because …"
202
-
203
- ## Next check
204
- YYYY-MM-DD — <reason: earnings / catalyst / 90-day>
205
-
206
- ## Decision log
207
- | Date | Action | Price | Reason | Informed by |
208
- |------|--------|-------|--------|-------------|
209
- | YYYY-MM-DD | opened | $… | … | stock-eval, bear-case |
210
- ```
211
-
212
- ---
213
-
214
- ## 5. Output Format
215
-
216
- **Open mode**
217
- 1. `Data & Sources` header
218
- 2. The sharpened thesis paragraph, with a one-line note on what was changed from the user's draft and why
219
- 3. The KPI table, the trigger table, the catalyst list, the pre-mortem, the next-check date
220
- 4. The complete saved file in a fenced block (and confirmation of the path it was written to)
221
- 5. Thesis Invalidation and the Investment Signal block
222
-
223
- **Update mode**
224
- 1. `Data & Sources` header
225
- 2. **Status line first**: `NVDA · WEAKENED · 2026-08-29 — Gross margin 68.1% (was 75.5%) breached the ≥ 70% threshold`
226
- 3. KPI table with old → new values and ✓/✗; trigger table with fired/not fired
227
- 4. What the change means for the Phase 1 mechanism, in three sentences
228
- 5. The updated file (fenced) with the new decision-log row
229
- 6. Thesis Invalidation and the Investment Signal block
230
-
231
- **Review mode** — one table: ticker · status · score · next check · overdue? · last decision.
232
-
233
- ---
234
-
235
- ## Example
236
-
237
- ```
238
- User: thesis-tracker NVDA — I bought at $118 on 2026-05-30. Thesis: data-center demand
239
- compounds for at least two more years and the market is still pricing a one-off cycle.
240
- Here are my stock-eval and bear-case outputs. [pasted]
241
-
242
- The assistant sharpens the paragraph (adds "why now": hyperscaler FY27 capex guides due in
243
- the next two prints), sets four KPIs (DC revenue growth ≥ 40%, gross margin ≥ 70%, net cash > 0,
244
- forward P/E ≤ 35), imports three triggers from the bear-case Thesis-Killers (a top-3 customer
245
- announcing in-house silicon at scale; export-control expansion to a second major market;
246
- inventory days > 120), lists the next two earnings dates and one export-policy decision as
247
- catalysts, writes the pre-mortem ("…because the 2027 capex guides came in flat and the
248
- multiple compressed before revenue did"), and saves output/thesis/NVDA.md with status INTACT
249
- and a next check on the August print.
250
-
251
- User: thesis-tracker NVDA --update [pastes the August 10-Q highlights]
252
-
253
- The assistant returns: NVDA · WEAKENED · 2026-08-29 — Gross margin 68.1% (was 75.5%) breached
254
- the ≥ 70% threshold; the other three KPIs hold; no trigger fired. Notes that the pricing-power
255
- leg of the thesis is the one under pressure, moves the next check to the October analyst day,
256
- and appends the log row "2026-08-29 · hold, no add · $131 · margin breach under review".
257
- ```
258
-
259
- ---
260
-
261
- ## Notes
262
-
263
- - **Run the analysis skills first.** This skill is a notebook with rules; it is only as good as the analyses it summarizes. Open with at least `stock-eval` and `bear-case` in hand.
264
- - **Never write the thesis for the user.** Sharpen, question, and structure — but the conviction has to be theirs or the file will not be believed when it says BROKEN.
265
- - **Hold the KPI count at five.** More KPIs means more noise and a guaranteed breach every quarter; the thesis becomes permanently WEAKENED and the status stops carrying information.
266
- - **A WEAKENED status blocks adding, not holding.** Pair with `position-ladder`, whose thesis-break gate is meant to read this status.
267
- - **Closed files are inputs to `trade-postmortem`.** Do not delete them.
268
- - File paths and the `output/` convention follow `full-report`. Where the environment cannot write, print the file.
269
-
270
- ## Thesis Invalidation
271
-
272
- After delivering the analysis signal, specify what would reverse it:
273
-
274
- **If signal is BULLISH (thesis INTACT) — it turns WEAKENED or BROKEN if:**
275
- - Any KPI in the file crosses its threshold at the next check (name the KPI closest to its threshold today and by how much)
276
- - Any trigger in the file fires — the trigger table *is* the invalidation list for this thesis
277
- - The core mechanism stalls for two consecutive checks even with KPIs technically inside threshold (the numbers hold but the story does not)
278
-
279
- **If signal is BEARISH (thesis BROKEN) — the verdict is wrong if:**
280
- - The breached KPI was a one-off (a charge, a reclassification, a timing shift) and reverts within one quarter — say what evidence would show that
281
- - The fired trigger was mis-specified (it caught a symptom that turned out not to matter to the mechanism) — rewrite the trigger rather than ignore it
282
- - The user's original thesis was narrower than the one written down — re-open with the honest, narrower version
283
-
284
- **Re-run this analysis when:**
285
- - [ ] The next-check date in the file arrives
286
- - [ ] Any catalyst in the file occurs
287
- - [ ] Price moves ±20% from the entry or the last check (a check, not a reaction)
288
- - [ ] A new `bear-case` or `stock-eval` run produces triggers the file lacks
289
- - [ ] 90 days have elapsed since the last update
290
-
291
- ## Standard Signal Output
292
-
293
- This skill measures **thesis health, not stock direction**, so state the mapping: `Signal: BULLISH` means the thesis is INTACT (the reason for owning it holds); `NEUTRAL` means WEAKENED (hold, do not add, check sooner) — or INSUFFICIENT EVIDENCE, in which case `Confidence: LOW` and `Action: HOLD` are mandatory; `BEARISH` means BROKEN (the reason for owning it is gone). `Action: BUY` here means "the thesis supports continuing to hold or ladder within the stated ceiling" — never "buy without limit." Read the direction of the stock from `stock-eval` or `bear-case`, not from this block.
294
-
295
- All analysis concludes with this standardized block:
296
-
297
- ```
298
- ╔══════════════════════════════════════════════╗
299
- ║ INVESTMENT SIGNAL ║
300
- ╠══════════════════════════════════════════════╣
301
- ║ Signal: BULLISH / NEUTRAL / BEARISH ║
302
- ║ Confidence: HIGH / MEDIUM / LOW ║
303
- ║ Horizon: SHORT / MEDIUM / LONG-TERM ║
304
- ║ Score: X.X / 10 ║
305
- ╠══════════════════════════════════════════════╣
306
- ║ Action: BUY / HOLD / SELL ║
307
- ║ Conviction: STRONG / MODERATE / WEAK ║
308
- ╚══════════════════════════════════════════════╝
309
- ```
310
-
311
- 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
312
- Confidence: HIGH (strong data, clear signals) | MEDIUM (mixed signals) | LOW (limited data, conflicting signals)
313
- Horizon: SHORT-TERM (1 week–3 months) | MEDIUM-TERM (3 months–1 year) | LONG-TERM (1+ years)
314
-
315
- **Note:** The Score above is the Thesis Health Score, mapped onto the standard scale for cross-skill comparability. It rates *how well the written thesis is surviving its own tests* — not how attractive the stock is.
316
-
317
- **Disclaimer:** Educational analysis only. Not financial advice. A thesis file is a record of the user's reasoning, not a recommendation to hold, add to, or sell any position.
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,94 @@
1
+ # Overview
2
+
3
+ Part 1 of 3 for `thesis-tracker` — Overview; 1. Modes; 2. Inputs; 3. 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 answers a question *today*: is it cheap, is the moat real, is the chart constructive, what does the bear say. None of them remembers the answer. Three months later the investor is left with a position, a vague feeling, and no record of what they expected to happen — which is exactly the state in which people average down on a broken story or sell a working one on a bad week.
9
+
10
+ **This skill turns an analysis into a contract with your future self.** It produces a single saved file per ticker that states, in falsifiable terms, *why* the position exists, *which numbers* have to keep being true, *what* would prove the idea wrong, and *when* the next check is due. Then, on `--update`, it re-reads that file against current data and hands back one word — **INTACT**, **WEAKENED**, or **BROKEN** (or **INSUFFICIENT EVIDENCE** when the data to decide is not there) — together with the specific line that changed.
11
+
12
+ It fills the gap between Playbook steps 1 (write the thesis), 9 (monitor), and 10 (know when to sell) in the Learning track, which today have no skill behind them.
13
+
14
+ **What it is not.** It is not a valuation, a screen, or a timing tool. It imports its KPIs and triggers *from* the other skills (`stock-eval` for quality metrics, `stock-valuation` for the fair-value range, `bear-case` for the thesis-killers, `catalyst-calendar` for dates, `position-ladder` for the share-count ceiling) and holds them to account. Run the analysis skills first; run this one to write down what they concluded.
15
+
16
+ ---
17
+
18
+ ## 1. Modes
19
+
20
+ | Mode | Invocation | What it does |
21
+ |------|------------|--------------|
22
+ | **Open** | `thesis-tracker NVDA` (+ pasted analyses, or none) | Interview the user, draft the thesis file, save it to `output/thesis/NVDA.md` |
23
+ | **Update** | `thesis-tracker NVDA --update` (+ current data or a fresh analysis) | Re-read the saved file, refresh every KPI, re-test every trigger, return INTACT / WEAKENED / BROKEN (or INSUFFICIENT EVIDENCE), append to the decision log |
24
+ | **Review** | `thesis-tracker --review` (no ticker) | Read every file in `output/thesis/`, list status and next-check date per ticker, flag anything overdue or sitting at INSUFFICIENT EVIDENCE |
25
+ | **Close** | `thesis-tracker NVDA --close "sold — trigger 2 fired"` | Mark the thesis closed with the exit reason and final P&L; keep the file for `trade-postmortem` |
26
+
27
+ If the environment cannot write files, output the complete thesis file as a fenced block and tell the user to save it at the stated path — the *contract* matters, not the storage.
28
+
29
+ ---
30
+
31
+ ## 2. Inputs
32
+
33
+ | Input | Required | Default if unstated |
34
+ |-------|----------|---------------------|
35
+ | Ticker | ✅ for Open, Update, Close · not used by Review (it reads every file) | — |
36
+ | The thesis in the user's own words | ✅ for Open | ask — never invent a thesis for the user |
37
+ | Entry price and date, position size | recommended | record as "not stated" |
38
+ | Prior analyses (`stock-eval`, `bear-case`, `stock-valuation`, …) | optional | derive KPIs from the thesis text |
39
+ | Horizon | optional | 12 months |
40
+ | Existing thesis file | ✅ for Update / Close | — |
41
+
42
+ **The user writes the thesis; the skill sharpens it.** If the stated thesis is not falsifiable ("great company, will go up"), push back with the three questions in Phase 1 until it is. A thesis that cannot be wrong cannot be tracked.
43
+
44
+ ---
45
+
46
+ ## 3. Framework
47
+
48
+ ### Phase 1 — Sharpen the thesis (Open)
49
+
50
+ Reduce the thesis to **one paragraph** that answers, in order:
51
+
52
+ 1. **What has to happen** to the business for this to work (the mechanism — not "the stock goes up")
53
+ 2. **Why the market is wrong** today — what is mispriced, and why the user sees it and the marginal buyer does not
54
+ 3. **Why now** — the catalyst, the regime, or the price that makes this a decision today instead of in a year
55
+
56
+ Reject any paragraph that only restates the company description. Test: *could a reasonable bear read this and know exactly what to disagree with?*
57
+
58
+ ### Phase 2 — Pick the KPIs (3–5, no more)
59
+
60
+ Each KPI is a number the thesis *depends on*, with a **threshold** below or above which the thesis is in trouble, and a **source** that can be checked next quarter.
61
+
62
+ | KPI | Threshold | Why it matters to *this* thesis | Source | Current | Date |
63
+ |-----|-----------|--------------------------------|--------|---------|------|
64
+ | e.g. Data-center revenue growth (YoY) | ≥ 40% | The multiple assumes hyperscaler capex keeps compounding | 10-Q segment table | 112% | 2026-05-28 |
65
+ | e.g. Gross margin | ≥ 70% | Pricing power is the moat claim; margin is its footprint | 10-Q | 75.5% | 2026-05-28 |
66
+ | e.g. Net cash | > $0 | Rules out balance-sheet stress in a downturn | 10-Q | +$38B | 2026-05-28 |
67
+
68
+ Rules:
69
+ - Prefer KPIs from the **financial statements** over sentiment or price-based ones. Price is the output, not an input to the thesis.
70
+ - **One valuation KPI is allowed** (e.g. forward P/E ≤ 35 or price within `stock-valuation`'s fair-value range) so that "the thesis is right but fully priced" is a detectable state.
71
+ - If a KPI has no threshold, it is a curiosity, not a KPI. Remove it.
72
+ - Import thresholds from the analyses that produced them when available (`stock-eval` quality gates, `dividend-analysis` payout ceiling, `short-interest` squeeze levels).
73
+
74
+ ### Phase 3 — Write the invalidation triggers
75
+
76
+ Triggers are **events**, not feelings. Each one names the observation and the action it obliges:
77
+
78
+ ```
79
+ Triggers | if <observable event or KPI breach> → <action: review / trim / exit>
80
+ ```
81
+
82
+ Draw them from three places, in this order of authority:
83
+ 1. **The Thesis Invalidation sections** of every analysis skill already run on the ticker — copy them in verbatim, they were written for exactly this
84
+ 2. **The `bear-case` Thesis-Killers** — the bear's best arguments become the bull's triggers
85
+ 3. **The user's own "I would sell if…"** — written down while calm
86
+
87
+ A KPI breach is a *review* trigger by default; two simultaneous breaches, or any breach of the thesis's core mechanism (Phase 1, item 1), is an *exit* trigger. Price alone is never an exit trigger unless the user is explicitly running a stop-loss discipline — write that down too, so it is a rule and not a reaction.
88
+
89
+ ### Phase 4 — Catalysts and the next check
90
+
91
+ List the dated events that will *produce new evidence* for or against the thesis (earnings, product cycles, regulatory decisions, lock-up expiries, FOMC when the thesis is rate-sensitive). Import from `catalyst-calendar` when available. The **next-check date** is the earliest of: the next catalyst, the next earnings release, or 90 days.
92
+
93
+
94
+ This section is not finished here: `3. Framework` continues in `references/11-phase-5-the-pre.md`.
@@ -0,0 +1,113 @@
1
+ # 3. Framework(continued)
2
+
3
+ Part 2 of 3 for `thesis-tracker` — 3. Framework; 4. The Saved File — Contract; Thesis; KPIs; Triggers; Catalysts; Pre-mortem; Next check; Decision log; 5. Output Format
4
+ See `SKILL.md` for what to read and when; this part is procedure, not routing.
5
+
6
+ ### Phase 5 — The pre-mortem
7
+
8
+ One paragraph, written in the past tense, dated twelve months out:
9
+
10
+ > *"It is <date + 12 months>. The position lost 40%. Looking back, the reason was…"*
11
+
12
+ This forces the most probable failure path into the open while it can still be wired into a trigger. If the pre-mortem names a cause that no trigger would catch, add the trigger.
13
+
14
+ ### Phase 6 — Update: re-test everything (`--update`)
15
+
16
+ On every update:
17
+
18
+ 1. Refresh the **Current / Date** columns of every KPI from the newest data the user supplies or the assistant can retrieve. Never carry a stale value forward silently — mark it `stale` with its date.
19
+ 2. Re-test every **trigger**: fired / not fired / cannot assess (say why).
20
+ 3. Re-read the **thesis paragraph** against what actually happened. Did the mechanism play out, stall, or go the other way?
21
+ 4. Return exactly one **status**. Apply the rules top-down; the first that matches wins:
22
+
23
+ | Status | Rule |
24
+ |--------|------|
25
+ | **BROKEN** | Two or more KPIs breached on *current* data, *or* any exit-trigger fired, *or* the core mechanism has been falsified (the thing that had to happen did not, and the reason is structural) |
26
+ | **WEAKENED** | One KPI breached *or* one review-trigger fired *or* the mechanism is behind schedule — the thesis is still possible but the evidence has moved against it |
27
+ | **INSUFFICIENT EVIDENCE** | Fewer than half the KPIs could be refreshed with data dated after the last check, and no trigger could be assessed. Nothing is known to have broken — but nothing has been confirmed either. Name the KPIs that need data, and do **not** carry the previous status forward |
28
+ | **INTACT** | Every KPI is within threshold **on data dated after the last check**; no trigger fired; mechanism on track. A stale KPI cannot support INTACT — at best it leaves the status at INSUFFICIENT EVIDENCE |
29
+
30
+ An INSUFFICIENT EVIDENCE status does not change the file's last confirmed status line; it is recorded in the decision log (`checked — insufficient evidence — <KPIs missing>`) and the next-check date is moved to when the data will exist (usually the next filing).
31
+
32
+ 5. Name **the specific line that changed** — the KPI, its old value, its new value, and the threshold. A status without a line is an opinion.
33
+ 6. Append a **decision log** row. The log records what the user *did* and *why*, priced and dated, and names the skill that informed it. It is the raw material for `trade-postmortem`.
34
+
35
+ **Status is not a signal.** WEAKENED does not mean sell; it means the next check moves up and the position should not be added to. BROKEN means the reason for owning it is gone — what to do about that is a `position-ladder` / tax question, but *adding* is off the table. INSUFFICIENT EVIDENCE means the honest answer is "I don't know yet" — treat it like WEAKENED for position management (no adding) until the data arrives.
36
+
37
+ ### Phase 7 — Thesis Health Score (0–10)
38
+
39
+ The headline number, used for the signal block. It measures **how well the thesis is holding up against its own tests**, not how attractive the stock is.
40
+
41
+ | Component | Weight | 10 looks like | 0 looks like |
42
+ |-----------|--------|---------------|--------------|
43
+ | KPI adherence | 40% | All KPIs inside threshold with margin | Majority breached |
44
+ | Trigger status | 30% | None fired | Exit trigger fired |
45
+ | Mechanism progress | 20% | Phase 1 "what has to happen" is visibly happening | Falsified |
46
+ | Evidence freshness | 10% | Every KPI dated within the last quarter | KPIs stale or unverifiable |
47
+
48
+ Map — the same bands as the standard Score Guide: **≥ 6.0 → INTACT · 4.0–5.9 → WEAKENED · < 4.0 → BROKEN.** INSUFFICIENT EVIDENCE is not scored from the table above — report the score as `n/a` in the file and use **5.0** in the signal block (NEUTRAL, Confidence LOW) so it stays comparable across skills. If the rule table in Phase 6 and the score disagree, the *rule table wins* and the score is adjusted to match — the score summarizes the rules, it does not override them.
49
+
50
+ ---
51
+
52
+ ## 4. The Saved File — Contract
53
+
54
+ `output/thesis/<TICKER>.md`. Keep the section order and the pipe tables exactly; `--update` and `--review` parse them.
55
+
56
+ ```
57
+ # Thesis · <TICKER> · opened YYYY-MM-DD · status INTACT | WEAKENED | BROKEN | INSUFFICIENT EVIDENCE | CLOSED
58
+ Data & Sources · as of YYYY-MM-DD · <sources> · <retrieval> · <confidence>
59
+
60
+ ## Thesis
61
+ <one paragraph: what has to happen · why the market is wrong · why now>
62
+ Horizon: <n> months Entry: $<price> on YYYY-MM-DD Size: <shares or % of portfolio> Ceiling: <from position-ladder, if any>
63
+
64
+ ## KPIs
65
+ | KPI | Threshold | Source | Current | Date | Status |
66
+ |-----|-----------|--------|---------|------|--------|
67
+ | … | … | … | … | … | ✓ / ✗ / stale |
68
+
69
+ ## Triggers
70
+ | If | Then | Source | Status |
71
+ |----|------|--------|--------|
72
+ | … | review / trim / exit | bear-case · stock-eval · user | not fired / FIRED YYYY-MM-DD |
73
+
74
+ ## Catalysts
75
+ | Date | Event | Expected impact | Evidence for / against |
76
+ |------|-------|-----------------|------------------------|
77
+
78
+ ## Pre-mortem
79
+ "It is YYYY-MM-DD. This lost 40% because …"
80
+
81
+ ## Next check
82
+ YYYY-MM-DD — <reason: earnings / catalyst / 90-day>
83
+
84
+ ## Decision log
85
+ | Date | Action | Price | Reason | Informed by |
86
+ |------|--------|-------|--------|-------------|
87
+ | YYYY-MM-DD | opened | $… | … | stock-eval, bear-case |
88
+ ```
89
+
90
+ ---
91
+
92
+ ## 5. Output Format
93
+
94
+ **Open mode**
95
+ 1. `Data & Sources` header
96
+ 2. The sharpened thesis paragraph, with a one-line note on what was changed from the user's draft and why
97
+ 3. The KPI table, the trigger table, the catalyst list, the pre-mortem, the next-check date
98
+ 4. The complete saved file in a fenced block (and confirmation of the path it was written to)
99
+ 5. Thesis Invalidation and the Investment Signal block
100
+
101
+ **Update mode**
102
+ 1. `Data & Sources` header
103
+ 2. **Status line first**: `NVDA · WEAKENED · 2026-08-29 — Gross margin 68.1% (was 75.5%) breached the ≥ 70% threshold`
104
+ 3. KPI table with old → new values and ✓/✗; trigger table with fired/not fired
105
+ 4. What the change means for the Phase 1 mechanism, in three sentences
106
+ 5. The updated file (fenced) with the new decision-log row
107
+ 6. Thesis Invalidation and the Investment Signal block
108
+
109
+ **Review mode** — one table: ticker · status · score · next check · overdue? · last decision.
110
+
111
+ ---
112
+
113
+
@@ -0,0 +1,90 @@
1
+ # Example
2
+
3
+ Part 3 of 3 for `thesis-tracker` — Example; Notes; Thesis Invalidation; Standard Signal Output
4
+ See `SKILL.md` for what to read and when; this part is procedure, not routing.
5
+
6
+ ## Example
7
+
8
+ ```
9
+ User: thesis-tracker NVDA — I bought at $118 on 2026-05-30. Thesis: data-center demand
10
+ compounds for at least two more years and the market is still pricing a one-off cycle.
11
+ Here are my stock-eval and bear-case outputs. [pasted]
12
+
13
+ The assistant sharpens the paragraph (adds "why now": hyperscaler FY27 capex guides due in
14
+ the next two prints), sets four KPIs (DC revenue growth ≥ 40%, gross margin ≥ 70%, net cash > 0,
15
+ forward P/E ≤ 35), imports three triggers from the bear-case Thesis-Killers (a top-3 customer
16
+ announcing in-house silicon at scale; export-control expansion to a second major market;
17
+ inventory days > 120), lists the next two earnings dates and one export-policy decision as
18
+ catalysts, writes the pre-mortem ("…because the 2027 capex guides came in flat and the
19
+ multiple compressed before revenue did"), and saves output/thesis/NVDA.md with status INTACT
20
+ and a next check on the August print.
21
+
22
+ User: thesis-tracker NVDA --update [pastes the August 10-Q highlights]
23
+
24
+ The assistant returns: NVDA · WEAKENED · 2026-08-29 — Gross margin 68.1% (was 75.5%) breached
25
+ the ≥ 70% threshold; the other three KPIs hold; no trigger fired. Notes that the pricing-power
26
+ leg of the thesis is the one under pressure, moves the next check to the October analyst day,
27
+ and appends the log row "2026-08-29 · hold, no add · $131 · margin breach under review".
28
+ ```
29
+
30
+ ---
31
+
32
+ ## Notes
33
+
34
+ - **Run the analysis skills first.** This skill is a notebook with rules; it is only as good as the analyses it summarizes. Open with at least `stock-eval` and `bear-case` in hand.
35
+ - **Never write the thesis for the user.** Sharpen, question, and structure — but the conviction has to be theirs or the file will not be believed when it says BROKEN.
36
+ - **Hold the KPI count at five.** More KPIs means more noise and a guaranteed breach every quarter; the thesis becomes permanently WEAKENED and the status stops carrying information.
37
+ - **A WEAKENED status blocks adding, not holding.** Pair with `position-ladder`, whose thesis-break gate is meant to read this status.
38
+ - **Closed files are inputs to `trade-postmortem`.** Do not delete them.
39
+ - File paths and the `output/` convention follow `full-report`. Where the environment cannot write, print the file.
40
+
41
+ ## Thesis Invalidation
42
+
43
+ After delivering the analysis signal, specify what would reverse it:
44
+
45
+ **If signal is BULLISH (thesis INTACT) — it turns WEAKENED or BROKEN if:**
46
+ - Any KPI in the file crosses its threshold at the next check (name the KPI closest to its threshold today and by how much)
47
+ - Any trigger in the file fires — the trigger table *is* the invalidation list for this thesis
48
+ - The core mechanism stalls for two consecutive checks even with KPIs technically inside threshold (the numbers hold but the story does not)
49
+
50
+ **If signal is BEARISH (thesis BROKEN) — the verdict is wrong if:**
51
+ - The breached KPI was a one-off (a charge, a reclassification, a timing shift) and reverts within one quarter — say what evidence would show that
52
+ - The fired trigger was mis-specified (it caught a symptom that turned out not to matter to the mechanism) — rewrite the trigger rather than ignore it
53
+ - The user's original thesis was narrower than the one written down — re-open with the honest, narrower version
54
+
55
+ **Re-run this analysis when:**
56
+ - [ ] The next-check date in the file arrives
57
+ - [ ] Any catalyst in the file occurs
58
+ - [ ] Price moves ±20% from the entry or the last check (a check, not a reaction)
59
+ - [ ] A new `bear-case` or `stock-eval` run produces triggers the file lacks
60
+ - [ ] 90 days have elapsed since the last update
61
+
62
+ ## Standard Signal Output
63
+
64
+ This skill measures **thesis health, not stock direction**, so state the mapping: `Signal: BULLISH` means the thesis is INTACT (the reason for owning it holds); `NEUTRAL` means WEAKENED (hold, do not add, check sooner) — or INSUFFICIENT EVIDENCE, in which case `Confidence: LOW` and `Action: HOLD` are mandatory; `BEARISH` means BROKEN (the reason for owning it is gone). `Action: BUY` here means "the thesis supports continuing to hold or ladder within the stated ceiling" — never "buy without limit." Read the direction of the stock from `stock-eval` or `bear-case`, not from this block.
65
+
66
+ All analysis concludes with this standardized block:
67
+
68
+ ```
69
+ ╔══════════════════════════════════════════════╗
70
+ ║ INVESTMENT SIGNAL ║
71
+ ╠══════════════════════════════════════════════╣
72
+ ║ Signal: BULLISH / NEUTRAL / BEARISH ║
73
+ ║ Confidence: HIGH / MEDIUM / LOW ║
74
+ ║ Horizon: SHORT / MEDIUM / LONG-TERM ║
75
+ ║ Score: X.X / 10 ║
76
+ ╠══════════════════════════════════════════════╣
77
+ ║ Action: BUY / HOLD / SELL ║
78
+ ║ Conviction: STRONG / MODERATE / WEAK ║
79
+ ╚══════════════════════════════════════════════╝
80
+ ```
81
+
82
+ 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
83
+ Confidence: HIGH (strong data, clear signals) | MEDIUM (mixed signals) | LOW (limited data, conflicting signals)
84
+ Horizon: SHORT-TERM (1 week–3 months) | MEDIUM-TERM (3 months–1 year) | LONG-TERM (1+ years)
85
+
86
+ **Note:** The Score above is the Thesis Health Score, mapped onto the standard scale for cross-skill comparability. It rates *how well the written thesis is surviving its own tests* — not how attractive the stock is.
87
+
88
+ **Disclaimer:** Educational analysis only. Not financial advice. A thesis file is a record of the user's reasoning, not a recommendation to hold, add to, or sell any position.
89
+
90
+
@@ -77,9 +77,11 @@ Before delivering:
77
77
  ## Read the Parts
78
78
 
79
79
  Everything below the surface of this file lives in `references/`. Open a part with `read`,
80
- resolved against this skill's base directory; each part is sized to arrive complete in one
81
- `read`. If a receipt shows `[... tool result middle pruned ...]`, re-read it with `offset`
82
- before concluding anything is missing.
80
+ resolved against this skill's base directory, and open it **whole — with no line window**:
81
+ reporting a rule or a template out of a slice of a part is how a file gets described as read
82
+ when it was only skimmed. Each part is sized to arrive complete in one `read`. If a receipt
83
+ shows `[... tool result middle pruned ...]`, re-read it with `offset` before concluding
84
+ anything is missing.
83
85
 
84
86
  - `references/10-catalyst-types.md` — Catalyst Types (A-share Specific)
85
87
  - `references/11-workflow-and-calendar.md` — Workflow; Calendar Format; Integration with Other Skills
@@ -88,9 +88,11 @@ Before delivering ideas list:
88
88
  ## Read the Parts
89
89
 
90
90
  Everything below the surface of this file lives in `references/`. Open a part with `read`,
91
- resolved against this skill's base directory; each part is sized to arrive complete in one
92
- `read`. If a receipt shows `[... tool result middle pruned ...]`, re-read it with `offset`
93
- before concluding anything is missing.
91
+ resolved against this skill's base directory, and open it **whole — with no line window**:
92
+ reporting a rule or a template out of a slice of a part is how a file gets described as read
93
+ when it was only skimmed. Each part is sized to arrive complete in one `read`. If a receipt
94
+ shows `[... tool result middle pruned ...]`, re-read it with `offset` before concluding
95
+ anything is missing.
94
96
 
95
97
  - `references/10-workflow.md` — Workflow
96
98