Buy-side discipline system. For each holding, maintain a written investment thesis — core thesis in 5 sentences, falsifiable assumptions, red lines, valuation anchors — and re-check it each quarter against new earnings/events. Scores thesis health 1-10 from assumption breakage and red-line triggers, and recommends hold / add / trim / exit. Use it right after buying a stock (to write the thesis) and every earnings season (to check it). Bridges the research→buy→monitor gap that most investors s...
Scanned 9/4/2026
Install to Claude Code
npx -y skills add gabrielmoreira/agent-skills-mirror --skill thesis-tracker --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Thesis Tracker?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/gabrielmoreira-thesis-tracker)More formats (shields.io, HTML) on the badges page.
---
name: thesis-tracker
category: strategy
description: "Buy-side discipline system. For each holding, maintain a written investment thesis — core thesis in 5 sentences, falsifiable assumptions, red lines, valuation anchors — and re-check it each quarter against new earnings/events. Scores thesis health 1-10 from assumption breakage and red-line triggers, and recommends hold / add / trim / exit. Use it right after buying a stock (to write the thesis) and every earnings season (to check it). Bridges the research→buy→monitor gap that most investors skip."
---
# Investment Thesis Tracker: Post-Buy Discipline
Track an investment thesis for a holding. First use on a company → build the thesis; later uses → quarterly check.
**Supported input**: company name (auto-decide build vs track); `company build` (force rebuild); `company quarterly check` (against latest earnings).
> "Buying is only the beginning. The real work is continuous tracking through the holding period." — Li Lu
>
> "When the facts change, I change my mind. What do you do, sir?" — Keynes
## Design Philosophy
Most investors' process is: research → buy → pray. Without systematic post-buy tracking, they: refuse to sell when they should ("wait, it'll come back"); panic-sell when they shouldn't ("down 20%, was I wrong?"); forget why they bought ("why did I buy this again?").
Buffett and Li Lu write down sell conditions **before** buying, then check the thesis each quarter.
## Step 1: Decide the Mode
Check whether a thesis file already exists (use `read_file` on `reports/{company}-thesis.md`): not found → **Build** (Mode A); found → **Track** (Mode B).
---
## Mode A: Build the Investment Thesis
### A0: Data Collection
Use `web_search` to get the current price, valuation (PE/PB/dividend yield), and latest financials. If a research report exists, `read_file` it first. Use `financial_rigor` (`command=verify_valuation`) to verify valuation, `financial_rigor` (`command=verify_market_cap`) to sanity-check market cap.
### A1: Core Thesis (must be writable in ≤200 words)
The thesis must answer 5 questions, one sentence each:
```
I bought {Company} at {price} because:
1. The essence of this business is ___, and I understand how it makes money.
2. Its moat is ___, and it's widening / stable.
3. Management is ___, trustworthy because ___.
4. The current price is a {discount}% to intrinsic value; the margin of safety comes from ___.
5. Even if I'm wrong, downside is contained because ___.
```
**If you can't fill 5 sentences, the thesis itself is flawed — the buy decision isn't clear enough.**
### A2: Core Assumptions List
Break the thesis into verifiable assumptions (3-7 typically; too few = shallow thinking, too many = unfocused):
| # | Core Assumption | How to verify | Frequency | Status |
|---|-----------------|---------------|-----------|--------|
| 1 | e.g. revenue growth stays >15% | Quarterly revenue growth | Quarterly | 🟢 Holding |
| 2 | e.g. gross margin stable >60% | Quarterly gross margin | Quarterly | 🟢 Holding |
### A3: Red Lines (triggering any one = must re-evaluate)
| # | Red-line condition | Severity | Action on trigger |
|---|--------------------|----------|-------------------|
| 1 | Management integrity problem (fraud, related-party) | Fatal | Exit immediately |
| 2 | Core business revenue down 2 consecutive quarters | Severe | Trim 50%, re-evaluate |
| 3 | Moat explicitly breached (competitor reaches parity) | Severe | Deep research, consider exit |
| 4 | Regulatory change fundamentally alters the business model | Severe | Re-value intrinsic value |
| 5 | Management large unplanned disposal | Warning | Investigate |
| 6 | **Macro trend reversal for this name's end-market** — e.g. demographic clock (population decline) for consumer/property/education names; consumption downgrade (居民边际消费下降); generational shift away from the category | Severe | Re-evaluate the long-term demand base; for consumer-dependent names, this is often a slow-moving but fatal headwind — assess whether the thesis still holds at a structurally lower growth path |
> The red line on macro trends (demographic clock / consumption / generational) is deliberately explicit: a value-investing thesis that picks a consumer name without weighing population decline and consumption-trend headwinds is incomplete. For non-consumer names (e.g. pure B2B industrial), this red line may be loose; for consumer/retail/education/property names, weight it heavily.
> Duan Yongping: "There are only three reasons to sell: 1. you got the buy wrong; 2. the fundamentals changed; 3. you found something better."
### A4: Valuation Anchors
| Metric | At buy | Optimistic target | Neutral target | Pessimistic |
|--------|--------|-------------------|-----------------|-------------|
| Price | | | | |
| PE (TTM) | | | | |
| Market cap | | | | |
| Intrinsic value estimate | | | | |
| Margin of safety | | | | |
### A5: Save the Thesis
Use `write_file` to write `reports/{company}-thesis.md`, including: build date, buy price and position, core thesis (5 sentences), assumptions list, red lines, valuation anchors, tracking table (empty initially).
---
## Mode B: Tracking Check
### B1: Read the Existing Thesis
Use `read_file` to load core thesis, assumptions, red lines, last check record.
### B2: Gather Latest Data
Use `web_search` / `get_stock_news` / `get_financial_statements`: ① latest earnings (if new quarter/year); ② recent material events (management, regulation, competition); ③ current price and valuation; ④ insider transactions (major shareholder changes).
### B3: Check Each Assumption
| # | Core Assumption | Last status | Latest evidence | Current status | Change |
|---|-----------------|-------------|-----------------|----------------|--------|
| 1 | Revenue growth >15% | 🟢 Holding | Q4 revenue growth 12% | 🟡 Weakening | ⚠️ |
Status definitions:
- 🟢 **Holding** — latest data supports
- 🟡 **Weakening** — still acceptable, but trend is unfavorable
- 🔴 **Impaired** — data clearly does not support
- ⚫ **Broken** — assumption has been overturned
### B4: Red-Line Check
Check each red line; any triggered → flag prominently in the report + clear action recommendation.
### B5: Valuation Update
Use `financial_rigor` (`command=verify_valuation`) to recompute PE/PB/ROE; compare against buy-time and last check:
| Metric | At buy | Last check | Current | Change |
|--------|--------|------------|---------|--------|
| Price | | | | |
| PE (TTM) | | | | |
| Intrinsic value estimate | | | | |
| Margin of safety | | | | |
### B6: Output the Tracking Report
Structure: ① Thesis health score (out of 10); ② Assumption check table; ③ Red-line check table; ④ Key changes this period (≤500 words); ⑤ Valuation update; ⑥ Conclusion and action; ⑦ Focus for next check.
**Health formula**: `10 - (⚫broken × 3) - (🔴impaired × 2) - (🟡weakening × 1) - (red-lines triggered × 5)`, min 1, max 10.
| Score | Meaning | Action |
|:-----:|---------|--------|
| 9-10 | All assumptions hold, thesis stronger than at buy | Consider adding |
| 7-8 | Core assumptions hold, some weakening | Continue holding |
| 5-6 | 1-2 assumptions impaired, core logic intact | Hold but raise alertness |
| 3-4 | Multiple assumptions impaired, foundation shaken | Consider trimming |
| 1-2 | Red line triggered or core assumption broken | Strongly consider exit |
**The conclusion must clearly answer**: ① Is the thesis still intact? (intact / weakening / impaired / broken); ② What to do? (add / hold / trim / exit); ③ Next check timing (next earnings / a specific event).
### B7: Update the Thesis File
Use `write_file` to append this check to the tracking table in `reports/{company}-thesis.md`:
| Check date | Health | Key change | Action |
|------------|:------:|------------|--------|
| 2026-04-09 | 7/10 | Revenue growth slowed to 12%, but margins improved | Hold |
---
## Key Principles
- **Write sell conditions before buying** — decisions made calmly beat decisions made in panic.
- **Assumptions must be verifiable** — "a great company" is not a thesis; "ROE>25% and stable" is.
- **Act when a red line triggers** — "let's wait and see" is how big losses happen.
- **Thesis breaking ≠ stock falling** — a 30% price drop doesn't force a sell; a broken thesis does.
- **Be honest about mistakes** — if the thesis was wrong, admit it; don't defend it to save face.
- **Weigh macro headwinds for consumer names** — demographic decline and consumption downgrade are slow but can be fatal for consumer/property/education theses; bake them into red lines, not just quarterly checks.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!