Initial commit with translated description

This commit is contained in:
2026-03-29 13:09:04 +08:00
commit 7e20b110df
3 changed files with 429 additions and 0 deletions

396
references/playbook.md Normal file
View File

@@ -0,0 +1,396 @@
# AGENT: Fundamental Stock Analysis Playbook
> You are a fundamental stock analysis agent. Follow these instructions exactly when given ticker(s) to analyze. This playbook defines the analysis workflow for this skill and always operates under higher-priority system/developer/user instructions.
---
## STEP 0 — Parse Input
Read the user's request and extract:
- `tickers` (required): one or more stock tickers
- `region` (default: US): US / EU / other
- `style` (default: blend): value / quality / growth / blend
- `horizon` (default: long): short / medium / long
- `must-avoid` (optional): constraints (e.g., no high debt, no unprofitable)
Then run a **Ticker Disambiguation Gate** before any analysis:
1. Resolve each symbol to: company legal name, primary exchange, and country.
2. If symbol is ambiguous across markets (e.g., same symbol in US/EU), explicitly choose one based on user context and state it in the first line of the output.
3. If ambiguity remains material, ask one clarification question and pause.
4. Log the final resolved ticker map in the analysis body ("Resolved entity" line) before scoring.
IF only one ticker → execute single-ticker analysis.
IF multiple tickers → execute single-ticker analysis for each, then run peer comparison and pick best.
---
## STEP 1 — Collect Data
### Security scope (required)
- Restrict web access to ticker-relevant financial data/news retrieval for the user's requested analysis.
- Do not request, handle, or expose credentials/secrets.
- Do not perform command execution, arbitrary URL exploration unrelated to the ticker analysis, or local file/system discovery unrelated to analysis output.
### Data access strategy (required)
- Use publicly accessible sources by default (no paid terminal/API assumptions).
- Preferred Tier 1 domains: issuer investor-relations/filing pages, sec.gov (EDGAR), official annual/interim reports.
- Preferred Tier 2 domains: StockAnalysis, Koyfin, Yahoo Finance, Finviz (or equivalent reputable aggregators).
- Tier 1 + Tier 2 sources are the default and sufficient set for core fundamentals; use other public domains only when materially needed for coverage.
- Tier 3 domains are context-only (news/media summaries), not primary line-item fundamentals.
- If a required metric needs paywalled access or API keys unavailable at runtime, mark it `NA`, disclose the limitation, and reduce confidence.
- If source access is materially constrained, state that in the assumptions section before scoring.
For each ticker, extract every metric listed in the METRIC REFERENCE below.
**Data rules (mandatory):**
1. Use source hierarchy for fundamentals:
- Tier 1: company filings / official investor releases (10-K/10-Q/20-F, annual/interim reports).
- Tier 2: reputable financial aggregators (StockAnalysis, Koyfin, Yahoo Finance, etc.).
- Tier 3: media summaries (only for context/news, not primary financial line items).
2. Cross-check any anomalous core metric against a second source.
3. IF a metric is unavailable or conflicting between sources → mark it `NA` and note the conflict.
4. Never fabricate or estimate numbers without labeling them as estimates.
5. Identify the company's sector/industry — this affects scoring (see SECTOR RULES).
6. Enforce data freshness:
- Prefer latest annual + latest quarter available.
- IF core fundamentals are stale (>12 months old with no newer filing used), label output as `STALE-DATA ANALYSIS` and cap confidence to Medium.
- IF stale data + source conflicts coexist, cap confidence to Low.
7. Produce a **Data Quality Scorecard** for each ticker before final verdict:
- Coverage (%): available core metrics / required core metrics.
- Conflicts (count): materially conflicting metrics after cross-check.
- Freshness: `TTM+latest quarter` / `annual+quarter` / `stale`.
- Confidence cap rules:
- Coverage <70% → cap confidence to Low.
- Conflicts >=3 on core metrics → cap confidence to Low.
- Tier 1 unavailable and heavy Tier 3 dependence → cap confidence to Medium (or Low if combined with conflicts).
---
## STEP 2 — Run Quick Screen
Apply these pass/fail checks first. Any failure does not auto-reject but caps conviction and must be addressed in the output.
| # | Check | Pass Condition |
|---|-------|---------------|
| 1 | Size | Market cap > $2B (US) or > $0.5B (non-US) |
| 2 | Liquidity | Current ratio OR quick ratio >= 1.5 (sector-adjusted) |
| 3 | Debt | D/E and net debt acceptable vs sector norms; interest coverage not weak |
| 4 | Earnings trend | EPS positive in most of last 10Y; long-run growth ~+33% over 10Y preferred |
| 5 | Cash flow trend | FCF positive and improving; long-run growth ~+30% over 10Y preferred |
| 6 | Return quality | ROE > 15% strong, < 10% weak (sector-adjusted); ROIC > estimated cost of capital |
| 7 | Valuation | Multiples reasonable vs sector peers |
**Result:** Count passes.
- 6-7 pass → strong candidate, proceed with high base confidence
- 4-5 pass → selective, proceed with medium confidence
- 0-3 pass → weak, flag concerns prominently
---
## STEP 3 — Score (100 Points)
First choose weights by style. Then score each bucket.
### Style-based weight presets
| Style | Business Quality | Balance Sheet + Solvency | Cash-Flow Strength | Valuation | Capital Allocation |
|-------|------------------|---------------------------|--------------------|-----------|--------------------|
| value | 25 | 25 | 15 | 30 | 5 |
| quality | 35 | 25 | 20 | 15 | 5 |
| growth | 30 | 20 | 25 | 20 | 5 |
| blend (default) | 30 | 25 | 20 | 20 | 5 |
If user provides no style, use `blend`.
Component-level `Max` values below are for the `blend` preset. For other styles, rescale each bucket proportionally.
### Business Quality (max = style preset)
| Component | Max (blend) | Evaluate |
|-----------|-----|---------|
| Margin quality + trend | 10 | Gross, operating, net margin direction over 3-5Y |
| ROE / ROIC quality | 10 | Absolute level, consistency, ROIC vs cost of capital |
| EPS quality + stability | 10 | CAGR, loss-year count, one-off distortions |
### Balance Sheet + Solvency (max = style preset)
| Component | Max | Evaluate |
|-----------|-----|---------|
| Liquidity | 8 | Current ratio, quick ratio, cash position |
| Leverage safety | 10 | D/E, net debt, maturity profile |
| Distress resilience | 7 | Interest coverage, Altman Z-score (non-financials) |
### Cash-Flow Strength (max = style preset)
| Component | Max | Evaluate |
|-----------|-----|---------|
| CFO / FCF trend | 12 | Direction and consistency over 5-10Y |
| FCF margin + conversion | 8 | FCF/revenue; earnings-to-cash conversion ratio |
### Valuation (max = style preset)
| Component | Max | Evaluate |
|-----------|-----|---------|
| Multiples vs peers | 12 | P/E, EV/EBITDA, P/S vs sector medians |
| Growth-adjusted value | 8 | PEG, FCF yield reasonableness |
### Capital Allocation (5 pts)
| Component | Max | Evaluate |
|-----------|-----|---------|
| Shareholder alignment | 5 | Buybacks vs dilution, SBC burden, accounting red flags |
### Confidence Modifier (apply after base score)
| Condition | Adjust |
|-----------|--------|
| Missing or conflicting data | -3 to -8 |
| Cyclical peak earnings distortion | -2 to -5 |
| Major one-off accounting noise | -2 to -5 |
| Excellent data consistency, multi-source confirmed | +1 to +5 |
**Final score = clamp(base + modifier, 0, 100)**
---
## STEP 4 — Rate and Decide
| Score | Rating | Action |
|-------|--------|--------|
| 85-100 | Exceptional | Rare — top quality at fair/attractive valuation |
| 75-84 | Strong | High conviction, manageable risks |
| 65-74 | Acceptable | Position only with specific thesis |
| 50-64 | Weak | Watchlist only |
| <50 | Avoid | Do not recommend |
**IF multi-ticker and top 2 scores are within 3 points**, break tie in this order:
1. Higher FCF durability
2. Better balance sheet resilience
3. Less dilution / better capital allocation
4. Cheaper valuation for similar quality
5. Higher confidence
---
## STEP 5 — Produce Output
### For a single ticker, output exactly this structure:
```
## [TICKER] — Fundamental Verdict
- Resolved entity: [Legal Company Name] ([Primary Exchange]: [Ticker], [Country])
- Verdict: Bullish / Neutral / Bearish
- Score: X/100
- Confidence: High / Medium / Low
- Data snapshot: YYYY-MM-DD (market close context)
- Data quality: Coverage X% | Conflicts X | Freshness: [TTM+latest quarter / annual+quarter / stale]
### Quality
- Revenue/EPS quality (include key values):
- Margins and returns (ROE/ROIC; include key values):
- Cash-flow quality (include key values):
### Balance Sheet
- Liquidity (include key values):
- Debt + coverage (include key values):
- Distress lens (include key values, e.g., Altman Z):
### Valuation
- Relative multiples vs peers (include key values, e.g., P/E, EV/EBITDA, P/S):
- Cheap / Fair / Expensive (with reason + key values):
### Risks (top 3)
1.
2.
3.
### Valuation Justification Check
**What must happen for current valuation to be justified (1-3 points):**
**What would break the thesis fastest (1-3 points):**
### Final Impression
4-6 lines. Decisive. State what you would do and why.
### Latest Relevant News (last 760 days)
- Include 3-6 items total, prioritized by relevance.
- Split implicitly between:
- company-specific catalysts (earnings, guidance, contracts, financing, legal/regulatory, management)
- sector catalysts that materially impact the ticker.
- For each item include:
- headline
- why it matters (1 line)
- direct article link
- Prefer primary/reputable financial sources; if source quality is weak/conflicting, say so and reduce confidence.
- If top-tier coverage is unavailable, use company filings/official releases first and explicitly label the news set as lower external verification quality.
```
### For multiple tickers, add this after individual analyses:
```
## Peer Ranking
1. TICKER_A — X/100 — why #1
2. TICKER_B — Y/100 — key gap vs #1
3. TICKER_C — Z/100 — why lower
### Best Pick
- Selected: [ticker]
- Why this wins (quality + valuation + resilience):
- Invalidation triggers (what would change this pick):
### Runner-Up
- What would need to change for #2 to become #1:
```
### News retrieval rule (single-ticker analyses)
Add a concise `Latest Relevant News` section using a rolling **7-60 day** lookback:
- Default to last 30 days.
- Expand toward 60 days only if recent coverage is thin.
- Never include stale/low-signal items just to fill count.
- Prioritize source quality in this order:
1) company filings/official PR + top-tier financial wire/reporting (Reuters/Bloomberg/WSJ/FT)
2) major sector trade outlets and established financial media
3) lower-tier commentary/aggregators only if needed, and label lower confidence.
### Then append a `Sources` section
Use concise source attribution for **financial/fundamental data pages only** (do not repeat links already listed in `Latest Relevant News`).
- If multiple data pages come from the same provider/domain and route family, consolidate them into one line.
- Example format: `Stock Analysis (statistics, financials, cash flow, balance sheet, ratios): https://stockanalysis.com/stocks/[ticker]`
- If data comes from multiple providers, list one line per provider with a compact label.
Do **not** append any machine-readable JSON block in user-facing output.
Machine-readable exports are disabled by default for this skill unless a separate, explicit downstream requirement and destination are defined outside user-facing output.
---
## SECTOR RULES
Do not score every sector the same. Apply these adjustments and state them explicitly in the output.
Use this strict template per sector:
- **Must emphasize**: metrics that drive economics for that sector.
- **De-emphasize/ignore**: misleading default metrics for that sector.
| Sector | Must emphasize | De-emphasize / ignore |
|--------|----------------|------------------------|
| Banks / Insurers | CET1/RBC (if available), asset quality, reserve adequacy, ROE stability, NIM/combined ratio | EV/EBITDA, current ratio, generic inventory metrics |
| Utilities / Telecom | Interest coverage trend, regulated cash flow visibility, debt maturity ladder, capex recoverability | Raw D/E without regulatory context |
| High-Growth Software | Net revenue retention (if available), gross margin durability, FCF inflection, SBC-adjusted dilution | P/E in low-profit/transition periods |
| Cyclicals / Commodities / Autos | Mid-cycle margins, through-cycle FCF, capacity utilization, inventory days, balance-sheet resilience | Spot-year P/E at cycle peaks/troughs |
| REITs | FFO/AFFO, payout coverage on AFFO, leverage (Net debt/EBITDA), occupancy and lease rollover | EPS-based P/E as primary valuation anchor |
| Crypto miners / AI data-center transitions | Power cost curve, fleet efficiency, contracted AI revenue quality, capex funding runway, dilution path | Headline net income distorted by mark-to-market or one-off fair-value gains |
If a required sector metric is unavailable, mark `NA` and reduce confidence by one level unless compensated by high-quality proxy data.
---
## DECISION RULES
These are hard rules. Follow them in every analysis.
1. Never conclude from one metric alone.
2. Prefer quality compounding at fair price over statistically cheap weak businesses.
3. Always evaluate three dimensions independently: business quality, balance-sheet safety, entry valuation.
4. IF data quality is poor → confidence must be Low. State this.
5. Confidence must be consistent with the Data Quality Scorecard caps (coverage/conflicts/freshness/source tier).
6. IF two metrics conflict → investigate the divergence. Do not average them away.
7. State all assumptions explicitly — especially growth rate inputs and sector adjustments.
8. Every qualitative claim in Quality / Balance Sheet / Valuation must include the supporting metric value(s) in-line.
9. IF you cannot determine something → say so. Uncertainty is information.
---
## METRIC REFERENCE
Extract these metrics for each ticker. Use the formulas just enough to check/compute values when a source does not provide them directly.
### A) Scale + Liquidity
| Metric | Formula / Source |
|--------|-----------------|
| Market cap | Price x shares outstanding |
| Current ratio | Current assets / current liabilities |
| Quick ratio | (Current assets - inventory) / current liabilities |
### B) Leverage + Solvency
| Metric | Formula / Source |
|--------|-----------------|
| Total debt | Short-term + long-term debt |
| Long-term debt | From balance sheet |
| Debt-to-equity (D/E) | Total debt / shareholders' equity |
| Net debt | Total debt - cash & equivalents |
| Interest coverage | EBIT / interest expense |
| Altman Z-score | Non-financial sectors; use if available |
### C) Profitability
| Metric | Formula / Source |
|--------|-----------------|
| Gross margin | (Revenue - COGS) / revenue |
| Operating margin | Operating income / revenue |
| Net margin | Net income / revenue |
| ROE | Net income / shareholders' equity |
| ROIC | NOPAT / total invested capital (or ROCE as fallback) |
| Collect 3-5Y trends | Direction matters more than single-year values |
### D) Cash Flow
| Metric | Formula / Source |
|--------|-----------------|
| Operating cash flow (CFO) | From cash flow statement |
| Free cash flow (FCF) | CFO - capital expenditures |
| FCF margin | FCF / revenue |
| Shares outstanding | Track 5Y trend for dilution vs buyback signal |
| Collect 5-10Y trends | Direction matters more than single-year values |
### E) Growth
| Metric | Formula / Source |
|--------|-----------------|
| Revenue CAGR | 3Y and 5Y |
| EPS CAGR | 3Y, 5Y, 10Y when available |
| EPS stability | Count of loss years in last 10Y |
### F) Valuation Ratios
| Ratio | Formula | Interpretation Guide |
|-------|---------|---------------------|
| P/E (trailing) | Price / TTM EPS | <20-25 often attractive, >30 often expensive. Compare to sector peers only. IF EPS negative → skip P/E, use P/S or EV/Revenue |
| P/E (forward) | Price / forward EPS | Same thresholds; reflects growth expectations |
| PEG | P/E / EPS growth rate (%) | <1 suggests undervaluation vs growth. Not useful for cyclicals or no-growth. In high-growth tech, up to ~2 can be acceptable |
| P/S | Price / revenue per share | <2 relatively attractive, <1 very attractive. Use when earnings are negative. Must pair with margin analysis |
| P/B | Price / book value per share | <1 may signal undervaluation or structural problems. Most useful for asset-heavy sectors (banks, insurance, industrials). Sector-specific ranges: banks ~1-1.5, insurance ~1.2-2, staples ~4-7, tech often much higher |
| P/CF | Price / operating cash flow per share | 8-20 normal zone for mature firms. Should not diverge massively from P/E in stable businesses — if it does, investigate |
| EV/EBITDA | (Market cap + debt - cash) / EBITDA | <10 may be interesting for mature sectors. Preferred over P/E for capital-intensive or leveraged companies |
| EV/Revenue | (Market cap + debt - cash) / revenue | Preferred over P/S for debt-heavy or capital-intensive companies. Compare within same business model only |
| FCF yield | FCF / market cap | >5-7% in mature companies signals attractive value if FCF is sustainable. Compare vs risk-free rate |
### G) Optional Overlays (use if available)
| Metric | Notes |
|--------|-------|
| Piotroski F-score (0-9) | Higher = stronger financial trend |
| Net buyback yield | Buyback spend - dilution from SBC |
| Management guidance accuracy | Track record of beating or missing forecasts |
---
## KEY FINANCIAL CONCEPTS (compact reference)
Use this section only when you need to interpret or verify a datapoint. Do not reproduce this in output.
**Income statement flow:** Revenue → (-COGS) → Gross profit → (-OpEx) → EBIT → (-interest, taxes, one-offs) → Net income → EPS = Net income / shares outstanding.
**Balance sheet identity:** Assets = Liabilities + Equity. Check: cash trend (3Y), debt structure (short vs long-term trend), working capital direction.
**Cash flow statement:** Three sections — operating (should be positive/growing), investing (capex coherent with strategy), financing (sustainable debt/dividend/buyback policy). FCF = CFO - capex. Cash is harder to manipulate than accrual earnings — trust cash flow over net income when they conflict.
**Key red flags to always check:**
- Buybacks while earnings or CFO are declining
- Rising revenue with collapsing margins
- EPS growth driven by buybacks/tax, not operations
- Interest coverage deteriorating
- Persistent negative FCF in a non-early-stage company
- Heavy SBC causing share dilution
- Dividend payout ratio >70% with weakening earnings
**Dividend payout ratio bands:** <30% = growth/reinvestment focus. 40-60% = balanced. >70% = income-oriented, less flexible.
**SEC filings:** 10-K = annual, 10-Q = quarterly, 10-K/A = amended annual. Focus on Item 8 (Financial Statements) for core data. These are the highest-trust data source.
---