Codex adapter note
This skill is generated from
skills/investment-checklist.md
so Claude Code and Codex users share one canonical workflow.
- Treat as the user's request in the current Codex thread.
- When the source mentions Claude-only surfaces such as Task, Agent, WebSearch, Bash, Read, or Write, use the closest Codex capability available in this session: subagents when available, web search when needed, shell commands for local tools, and normal file edits for workspace files.
- Use shared project tools from in this repository. Prefer running commands from the repository root with paths like
python3 tools/financial_rigor.py ...
; if the current thread starts outside the repo, locate the actual checkout path first instead of assuming a fixed home-directory path.
- Before starting research, run the command to confirm today's date; treat it as the baseline for "latest" data and state the data cutoff date in the report header. Never assume the current date from training data.
- Preserve the research quality rules from : cross-check financial data, use exact arithmetic tools for valuation/math, and clearly label uncertainty and source gaps.
Buffett Value Investment Pre-Purchase Checklist
Perform Buffett Value Investment Pre-Purchase Checklist analysis on $ARGUMENTS.
Supported Input Format: Single or multiple companies, separated by commas/slashes/spaces. Example:
or
Execution Process
Step 1: Parse Input and Identify All Companies to Analyze
Parse all company names/codes from $ARGUMENTS. For each company, confirm:
- Full company name, stock code, listing exchange
- If the company is unlisted, mark it as "Unlisted" and provide a brief explanation (whether there are indirect investment channels), then skip the complete Checklist
Step 1.5: AI Research Bias Warning
Conduct a quick "information richness" rating (A/B/C) for each company and mark it in the report:
| Rating | Judgment Criteria | Impact on Checklist |
|---|
| Grade A | Listed for many years, abundant data | Execute normally, but be alert to the "consensus trap"—clear indicators don't necessarily mean certainty |
| Grade B | Limited data requiring estimation | Mark confidence level for each estimated indicator, weight data reliability when judging "good business" |
| Grade C | Extremely scarce information | Don't force filling the six-check table, honestly mark "insufficient data to judge", focus on verifiable core issues |
Core Principle: The goal of the Checklist is to eliminate bad choices. For Grade C companies, "insufficient data" does not mean "failed" nor "passed"—it should be honestly marked as "gray area, needs first-hand information supplement" instead of rejecting just because AI cannot fill the table.
Duan Yongping said: "There are two types of 'can't understand'—one is that the business is too complex to understand, the other is that you haven't spent time to learn it. The limitation of AI research is that it easily confuses 'lack of information' with 'can't understand'."
Step 2: Parallel Data Collection
Use the Task tool to launch independent background Agents for each company to collect data in parallel (all companies start simultaneously). Each Agent is responsible for collecting:
- Profitability: ROE (5-10 year trend), gross profit margin, net profit margin, free cash flow
- Valuation Data: Current stock price, market capitalization, PE(TTM), forward PE, PB, dividend yield
- Growth Trend: Revenue/profit growth rate in the past 3 years
- Financial Health: Debt level, capital expenditure requirements, cash reserves, net cash/net debt
- Competitive Landscape: Market share, main competitors, share change trend
- Moat Evidence: Specific evidence of brand/switching cost/network effect/scale effect/technical barrier
- Management Track Record: CEO resume, key decisions, shareholding, capital allocation record
- Latest Developments: Major events in the past 6 months (performance, mergers and acquisitions, regulation, management changes, etc.)
Step 3: Execute Six-Check Checklist for Each Company
For each listed company, go through the six checks in order:
Check 1: Can I Understand This Business? (Circle of Competence)
Must answer:
Scoring Criteria (★1-5):
- ★★★★★: Extremely simple and clear business model, high certainty in 10 years (e.g., Moutai: brewing and selling liquor)
- ★★★★☆: Clear model but with technical thresholds, requiring certain professional knowledge to understand
- ★★★☆☆: Understandable model but low certainty in 10 years, fast-changing industry
- ★★☆☆☆: Complex business lines or industry in upheaval, difficult to predict the future
- ★☆☆☆☆: Completely outside the circle of competence
Hard Rejection: If you can't even explain how it makes money, directly mark it as "Outside circle of competence, no analysis conducted".
Check 2: Is This a Good Business? (Economic Characteristics)
Use data to speak, key indicators must be accurately calculated via tools:
bash
python3 tools/financial_rigor.py verify-valuation \
--price {stock price} --eps {EPS} --bvps {book value per share} --fcf-per-share {FCF per share} --dividend {dividend per share}
| Indicator | Company's Value | Reference Standard | Judgment |
|---|
| ROE (5-year average) | | >15% excellent, >20% outstanding | |
| Gross Profit Margin | | >40% implies pricing power | |
| Free Cash Flow | | Sustained positive, ≈ net profit | |
| Capital Expenditure Intensity | | Light asset is better than heavy asset | |
| Debt Level | | Interest-bearing debt/net profit < 3 years | |
Scoring Criteria (★1-5):
- ★★★★★: ROE>25%, high gross profit margin, strong FCF, light asset, low debt (all criteria met)
- ★★★★☆: 4 criteria met
- ★★★☆☆: 3 criteria met
- ★★☆☆☆: 2 criteria met or deteriorating trend
- ★☆☆☆☆: Most criteria not met or sustained negative FCF
Check 3: Is the Moat Deep Enough? (Competitive Advantage)
Check item by item:
| Moat Type | Does It Have? | Specific Evidence | Widening or Narrowing? |
|---|
| Brand/Pricing Power | | | |
| Switching Cost | | | |
| Network Effect | | | |
| Cost/Scale Advantage | | | |
| Technical/Patent Barrier | | | |
Additional Test: If a competitor is given 10 billion yuan, can they replicate this business?
Scoring Criteria (★1-5):
- ★★★★★: Multiple moats overlapping and widening
- ★★★★☆: At least one strong moat and stable
- ★★★☆☆: Has moat but not deep enough, or unclear trend
- ★★☆☆☆: Moat is being eroded
- ★☆☆☆☆: No obvious moat
Check 4: Is Management Trustworthy? (Human Factor)
| Item | Evaluation |
|---|
| Honesty (Commitment vs Delivery) | |
| Capital Allocation Ability (Share repurchase/Dividend/M&A record) | |
| Shareholder-Oriented (Shareholding, Compensation) | |
| Owner Mentality (Founder vs Professional Manager) | |
| Corporate Governance (Related Transactions, Goodwill, Audit) | |
| Can the company operate normally after CEO leaves? | |
Scoring Criteria (★1-5):
- ★★★★★: Founder-led, excellent capital allocation, fully aligned interests
- ★★★★☆: Excellent management with minor flaws
- ★★★☆☆: Qualified management with governance risks
- ★★☆☆☆: Integrity or governance issues
- ★☆☆☆☆: Severe integrity issues (→ Hard Rejection)
Check 5: Is the Price Cheap Enough? (Margin of Safety)
| Indicator | Value | Historical Percentile | Judgment |
|---|
| PE (TTM) | | | |
| Forward PE | | | |
| PB | | | |
| Dividend Yield | | | |
| FCF Yield | | | |
Additional Test (Must be accurately calculated via tools, no mental calculation allowed):
bash
python3 tools/financial_rigor.py three-scenario \
--price {stock price} --eps {EPS} --shares {shares in billions} \
--growth {optimistic} {neutral} {pessimistic} --pe {optimistic PE} {neutral PE} {pessimistic PE} --currency {currency}
- Valuation range under three scenarios (take tool output results)
- If judgment is wrong, what's the maximum loss if buying at current price?
- Would you dare to add positions if the stock price is halved?
Scoring Criteria (★1-5):
- ★★★★★: More than 50% discount to intrinsic value, extreme margin of safety
- ★★★★☆: 30% discount, good margin of safety
- ★★★☆☆: Reasonable valuation, average margin of safety
- ★★☆☆☆: Relatively expensive, insufficient margin of safety
- ★☆☆☆☆: Severely overvalued
Check 6: Position and Decision Discipline (Prevent Emotional Out-of-Control)
Check the following emotional signals:
- Do you want to buy because of FOMO?
- Do you want to buy only because of others' recommendations?
- Can you accept a 5-year trading suspension?
- Can you write down the buying rationale in less than 200 words?
Step 4: Mirror Test
Write a mirror test statement for each company:
"I buy ___ company at ___ yuan, because:
- The essence of this business is ___, and I understand it;
- Its moat is ___, and it is widening/narrowing;
- The management is ___, trustworthy/untrustworthy;
- The current price is ___ discount to intrinsic value, with/without sufficient margin of safety;
- Even if I'm wrong, the downside risk is controllable/uncontrollable, because ___."
If you can't complete the 5 sentences = Don't buy. Clearly mark "Pass" or "Fail".
Step 5: Quick Rejection Checklist
Check each item for every company, directly mark as "Rejected" if any item is triggered:
Step 6: Output Overview Comparison Table (Mandatory for Multiple Companies)
When analyzing multiple companies, must generate an overview comparison table:
| Company | Passed Checklist? | Circle of Competence | Good Business | Moat | Management | Margin of Safety | Core Conclusion |
|---|
| | ★☆☆☆☆ | ★☆☆☆☆ | ★☆☆☆☆ | ★☆☆☆☆ | ★☆☆☆☆ | |
Step 7: Final Conclusion and Write to File
Give a clear conclusion for each company (no evasion):
- ✅ Passed Checklist (X/6 checks) — Can enter in-depth research stage
- ❌ Failed Checklist — Explain which red line was triggered
- ❓ Gray Area — Explain key controversial points, what investors need to judge on their own
- N/A — Unlisted/Unavailable for purchase
Write the complete report to
~/Buffett-Checklist-[Company Name or "Multi-Company Comparison"].md
Output Format Requirements
- Each company has an independent chapter, including: six-check score table + core data table + key risks (3-5 items) + mirror test + clear conclusion
- Attach the overview comparison table at the end when analyzing multiple companies
- All scores must use ★ symbols (★1-5), no half stars
- Data must be marked with source time, estimated values must be noted as "Estimated"
- Attach a conclusion at the end, echoing Buffett's famous quote: "The first rule of investment is not to lose money"
- Language style: Direct, sharp, no nonsense. Insert comments from Buffett/Munger/Duan Yongping
Key Principles
- Better to miss than to make a mistake: The goal of the Checklist is to eliminate bad choices, not to find the best one
- Be honest about your circle of competence: Admit if you don't understand, don't force analysis
- Margin of safety is the lifeline: Even a good company can lose money if bought at an expensive price
- Mirror test cannot be skipped: Don't buy if you can't explain the reason, no exceptions