longbridge-buffett-moat-analyzer
Prompt-only Buffett-style moat diagnostic. Given a single ticker, produces a five-dimension verdict — moat / financial health / management / valuation / long-term visibility — closed with a Buffett-voice narrative, an explicit holding-period expectation, and a mandatory data-source appendix whose final row is a one-line reconciliation summary.
Response language: detect the user's input language (Simplified Chinese / Traditional Chinese / English) and render the entire report — every section heading, label, dimension write-up, Buffett-voice narrative, user-education block, appendix row, reconciliation summary, and disclaimer — in that one language. Do not mix languages within a single output. The output template in references/output.md is shown in English for reference; translate it as a whole into the user's language using the label-translation lookup in that file. The error / data-source tables inside this SKILL.md remain 3-column because they document what the skill says under each language — that 3-column form is for the skill's reference docs, not for the user-facing report.
When to use
- "巴菲特会买茅台吗" / "巴菲特會買茅台嗎" / "would Buffett buy Moutai"
- "帮我用巴菲特的方法诊断 700.HK" / "幫我用巴菲特的方法診斷 700.HK" / "diagnose 700.HK Buffett-style"
- "AAPL 有护城河吗" / "AAPL 有護城河嗎" / "does AAPL have a moat"
- "这只股票是不是好生意" / "這隻股票是不是好生意" / "is this a good business"
- "NVDA 的护城河宽不宽" / "NVDA 的護城河寬不寬" / "how wide is NVDA's moat"
- "我持有比亚迪 6 个月了,长期值得拿吗" / "我持有比亞迪 6 個月了,長期值得拿嗎" / "I've held BYD 6 months, worth holding long-term"
For Graham-style net-net cigar-butt analysis, use longbridge-graham-stock-analysis. For pure DCF intrinsic value, use longbridge-dcf. For three-statement reading, use longbridge-financial-report. For comparable peers, use longbridge-peer-comparison.
Cognitive frame (do not skip)
Buffett strategy is long-term ownership of high-quality businesses, not market timing. Two things every output must surface alongside the score:
- Holding-period expectation — Buffett's reference is "ideally forever, at minimum 3 years." If the user has a < 3-year capital horizon, warn explicitly that this framework is not the right lens.
- Price vs business quality — "A great business at a fair price is far better than a fair business at a great price." The valuation dimension is a margin-of-safety check on a separately-scored quality verdict; never collapse quality and price into one number.
Two failure modes the user must be able to distinguish:
- "Great business, wait for price" → moat wide, financials clean, but valuation rich → 🟡 watchlist with a target-price band, not a buy.
- "Cheap but no moat" → low PE/PB but moat narrow or absent → ❌ not a Buffett candidate; redirect to Graham (
longbridge-graham-stock-analysis).
Workflow
- Resolve symbol to
<CODE>.<MARKET>(e.g.00700.HK,AAPL.US,600519.SH). - Sector triage:
- Bank / insurance / brokerage → moat framework still applies but tweak financial-health dimension (use ROA, NIM, NPL, capital adequacy in place of FCF/leverage). Note this in the report.
- Pre-revenue / heavy-loss / lifecycle-stage-zero biotech → halt: Buffett framework needs a track record; suggest the user use
longbridge-fundamentalfor an early-stage view instead. - ST / 退市风险 / listed < 3 years → emit report but tag earnings-stability and capital-allocation dimensions as "insufficient history" and pro-rate scores.
- Fetch raw data via Longbridge CLI first (parallel where possible). See [§CLI](#cli). If
longbridgeis missing, fall back to MCP (see [§MCP fallback](#mcp-fallback)). Use WebSearch only for items genuinely outside Longbridge (industry outlook, qualitative management signals, brand surveys, regulatory news). - Reconciliation gate (勾稽校验) — runs before any scoring. See [§Reconciliation](#reconciliation-勾稽校验). Two-state outcome:
- Pass (every check within tolerance) → proceed to scoring. A one-line summary of the result still appears at the end of the data-source appendix.
- Fail (any check exceeds tolerance) → halt scoring, emit a halt message naming the failing check and gap, still print the data-source appendix and reconciliation summary.
- Five-dimension scoring — each dimension gets a 1–5 star rating with concrete evidence. See
references/scoring.mdfor the rubric per dimension. - Holding-period mapping — derive expected minimum hold from moat width (★★★★★ → 5y+, ★★★★ → 3–5y, ★★★ → 1–3y, ★★ or below → not a Buffett candidate). See
references/scoring.md§Holding-period. - Output the report defined in
references/output.md— diagnostic card → 5-dimension detail → Buffett-voice narrative → user education block → Data Source Appendix (mandatory) ending with the reconciliation summary line. Close with the disclaimer variant matching the user's input language (single-language only — seereferences/output.md§Disclaimer variants).
CLI
Run longbridge <subcommand> --help to verify exact flags before each call — do not hard-code flag names without verification. Primary calls (run in parallel):
# Balance sheet — leverage, equity (PB / ROE denominator), debt
longbridge financial-report <SYMBOL> --kind BS --report af --format json # last 5 annual (10y ideal — fetch as many as available)
longbridge financial-report <SYMBOL> --kind BS --report qf --format json # last 4 quarterly
# Income statement — ROE, gross margin, earnings stability, EPS trend
longbridge financial-report <SYMBOL> --kind IS --report af --format json
longbridge financial-report <SYMBOL> --kind IS --report qf --format json
# Cash flow — FCF = OCF − Capex, capex intensity, buyback / dividend cash outflow
longbridge financial-report <SYMBOL> --kind CF --report af --format json
longbridge financial-report <SYMBOL> --kind CF --report qf --format json
# Snapshot: PE, PB, market cap, dividend yield, shares outstanding
longbridge calc-index <SYMBOL> --format json
longbridge quote <SYMBOL> --format json
# Long-window history for valuation-vs-history band
longbridge kline <SYMBOL> --period day --count 2500 --format json # ~10 years for PE/PB percentile
# Dividend & buyback history (capital allocation track record)
longbridge dividend <SYMBOL> --format json
longbridge corporate <SYMBOL> --format json # buyback / split / spin-off
# Ownership & insider activity (management alignment, capital allocation signals)
longbridge ownership <SYMBOL> --format json
longbridge insresearch <SYMBOL> --format json
# Company profile + industry classification (for moat-type hypothesis)
longbridge basicinfo <SYMBOL> --format json
longbridge company-profile <SYMBOL> --format json
# Peer set for moat / margin / ROE benchmarking
longbridge peer-comparison <SYMBOL> --format json
WebSearch fallback — only for items not available from Longbridge
| Missing data | WebSearch query pattern | |---|---| | Industry runway / disruption risk | "<industry> 2025 outlook", "<industry> disruption risk" | | Brand / pricing-power signals | "<company> price increase 2024 2025", "<brand> brand value ranking" | | Management qualitative track record | "<CEO name> capital allocation", "<CEO name> shareholder letter" | | Regulatory / policy overhangs | "<sector> regulation <region> 2025" | | Latest insider transactions if ownership is stale | "<ticker> insider selling 2025" |
Every WebSearch-sourced figure must be tagged [Source: WebSearch — <publisher>, <date>, <url>] in the appendix; never silently mix it with Longbridge data.
Reconciliation (勾稽校验)
Before any scoring, verify the fetched figures are internally consistent. Reconciliation is user-visible in this skill — a one-line summary always appears as the final row of the Data Source Appendix (per the design doc's transparency requirement). If a check fails, scoring