lyndonkl/claude/company-classification-routing
- community
Checking that the SKILL.md file is still in the repository.
Classifies a company and routes it to the correct analytical treatment — life cycle stage, sector type, earnings status, ownership, distress markers, geography — then compiles the hard constraints that follow into classification.json. Use before any valuation begins, when deciding which valuation model applies, or when a company looks non-standard — a bank or insurer, a pre-revenue or loss-making firm, a distressed or declining business, a private company or an IPO, a cyclical or commodity producer, an emerging-market firm, or a multi-business group.
Install
npx vskill@latest install lyndonkl/claude/company-classification-routingSKILL.md
Company classification and routing
Standard valuation machinery assumes a lot. It assumes the firm survives long enough to reach stable growth. It assumes debt is a financing choice rather than raw material. It assumes this year's earnings say something about a normal year, and that there are earnings at all. It assumes the owner is diversified and the shares trade.
Point that machinery at a bank, a pre-revenue startup, or a firm at a cycle trough and it still returns a number. The number is confident and wrong. That is the most expensive failure mode in this domain, because nothing downstream flags it: the arithmetic is correct, the spreadsheet balances, and the answer is nonsense.
Routing comes first for that reason. This skill converts what is knowable about a company into a route — one primary engine, a set of overlays, an ordered pipeline, and a list of methods that must not be attempted. Gate G2_classified passes only when that route is written and valid. Every stage after it reads the route and honors it.
Full framework: knowledge/frameworks/special-situations-routing.md. This skill is its operating manual, and carries the parts an agent needs in hand.
Contents
- What this produces
- The four questions
- S0 · Evidence intake
- S1 · Signal extraction
- S2 · Sector gate
- S3 · Statement-repair gate
- S4 · Ownership and transaction gate
- S5 · Life-cycle and earnings gate
- S6 · Survival and truncation gate
- S7 · Overlays and constraint compilation
- S8 · Combination rules
- The constraint catalogue
- Writing classification.json
- Confidence and what stays unresolved
Resources
- Branch catalogue B1–B16 — trigger, what breaks, what
replaces it, and the hard constraints for each of the sixteen branches.
- Signal extraction detail — how each S1 signal is
computed from filings and market data, and the judgment each one hides.
- Combination and worked routings — precedence,
exclusion pairs, composition arithmetic, and routed real companies.
- Pricing routes by branch — which multiple survives this
company's defects, and which are forbidden.
- The classification artifact — field-by-field
shape, validation, and the diagnosis.md companion.
What this produces
Two files, both written by company-diagnostician and by nobody else:
| Artifact | Contents | |
|---|---|---|
02-diagnosis/classification.json | the machine-readable route: signals, primary path, overlays, constraints, pipeline, confidence | |
02-diagnosis/diagnosis.md | the reasoning: what the company is, which gate fired and why, what would change the answer |
Downstream agents read classification.json and never re-derive it. The critic checks every produced artifact against the compiled constraints, under rule V9, route conformance. valuation-consistency-checks enforces a subset mechanically. Pass the artifact to it with --classification. It then fails the run on an FCFF valuation of a bank, a missing failure probability, or an earnings multiple on negative earnings.
The four questions
Every valuation answers four questions, and every branch below repairs one of them.
- What are the cash flows from existing assets?
- What value is added by growth assets?
- How risky are those cash flows?
- When does maturity arrive, and what can end the story before then?
A company is difficult exactly when one of those answers is missing, unstable, or mis-measured by accounting. Diagnose which one breaks and the repair names itself. A young firm breaks Q1 and Q4. A bank breaks Q1 and Q3 together, because its debt is inventory. An intangible-heavy firm breaks Q1 and Q2, because accounting expensed its capital spending. Detail: knowledge/concepts/dark-side-difficult/difficult-company-taxonomy.md.
Two errors follow from skipping this step. The first is repairing a cash-flow problem in the discount rate — failure risk, governance, distress and country risk all get pushed there, and all belong in expected cash flows or in probability weights. The second is treating one bucket at a time when a company sits in several. Boeing in March 2020 was mature, cyclical and distressed at once.
S0 · Evidence intake
Inputs: mandate.json, 01-data/raw-financials.json, 01-data/market-data.json, 01-data/gaps.json.
A normal valuation leans on three information sources. Record each as present, thin or absent:
- Current financial statements.
- The firm's own financial history.
- Industry and comparable-firm data.
Three decision rules follow.
- Two or more sources absent — this is the point of maximum temptation toward the dark
side, where analysts declare a paradigm shift and invent metrics. Force an explicit mature end-state instead: target margin, terminal ROC, stable growth. Then work backwards. Set route.requires_end_state = true.
- No cash flows exist and none ever will — a currency, a collectible, a bare commodity
holding. The asset can be priced, never valued. Emit no-intrinsic-valuation and route to pricing only. See knowledge/concepts/narrative-numbers/value-vs-price-gap.md.
- Fewer than three years of statements, or statements that mix personal and business
expense — private-company cleanup runs before any forecast. See B13.
Return blocked when the minimum viable input set is missing and the user has supplied no substitute. Name what is needed. Do not guess and proceed.
S1 · Signal extraction
Every signal is computed from data, never asserted. Each carries a confidence and the evidence that set it. These are the only inputs the gates in S2 through S6 may consult.
| Signal | Computation | Values and thresholds | ||||||
|---|---|---|---|---|---|---|---|---|
sector_type | Business description, segment note, and the shape of the statements themselves | financial-service \ | commodity \ | cyclical-industrial \ | real-estate/REIT \ | intangible-heavy \ | ordinary | |
life_cycle_stage | Revenue level, revenue growth, margin sign and stability, reinvestment intensity, age | start-up \ | young-growth \ | high-growth \ | mature-growth \ | mature-stable \ | decline | |
earnings_status | Sign and representativeness of trailing EBIT and net income, judged after S3 cleanup | profitable \ | marginal \ | negative-transient \ | negative-structural \ | cyclical-trough \ | cyclical-peak | |
revenue_status | Trailing revenue against the 3-year and 5-year figures | pre-revenue \ | growing \ | flat \ | declining | |||
g_firm vs g_econ | Expected near-term growth against nominal economy growth, proxied by the riskfree rate in the valuation currency | ≤ g_econ → 1 stage; ≤ g_econ + 10% → 2 stages; > g_econ + 10% → 3 or more stages | ||||||
leverage_state | Market D/(D+E), its distance from the sector median and from any stated target, and its trajectory | stable \ | changing \ | extreme (above 50%) | ||||
payout_coverage | Σ5yr (dividends + buybacks) / Σ5yr FCFE | below 80% → FCFE; 80–110% → dividends; above 110% → FCFE | ||||||
distress_markers | Coverage ratio, rating, bond prices against par, negative book equity, covenant breach, going-concern note, distressed sector peers | count plus an evidence list | ||||||
intangible_intensity | R&D / revenues, R&D / (R&D + net capex), brand-advertising share, recruiting and training spend | low \ | moderate \ | high | ||||
geography_exposure | Revenue and production share by country or region — not the country of incorporation | weight vector | ||||||
ownership | Public, private, subsidiary or division; free float; insider and institutional holdings; dual-class shares; cross-holdings | structure record | ||||||
stake_size | Fraction of equity being valued | above 50% controlling; 50% or less minority | ||||||
buyer_diversification | Who the marginal investor is for this specific transaction | diversified \ | partially (with ρ) \ | undiversified | ||||
holdings_share | Value of stakes in other firms divided by total estimated value | flag above roughly one third | ||||||
business_count | Reportable segments with distinct economics and separable cash flows | 1 \ | >1 | |||||
option_candidates | Patents, undeveloped reserves, licences, exclusive expansion rights, contractual exit rights, excess debt capacity | list, each with an exclusivity note | ||||||
macro_driver | Regress revenues on a commodity or cycle price and report the R² | driver plus R² | ||||||
transaction_motive | Read from the mandate | valuation \ | acquisition \ | restructuring \ | ipo \ | project \ | corporate-finance |
The arithmetic here is mechanical. The judgment is whether a computed signal is representative: a coverage ratio taken at a trough, a regression beta on a stock that barely trades, a margin distorted by one large contract. Record that judgment where you make it. Computation detail and the traps in each signal: resources/signal-extraction.md.
S2 · Sector gate
Evaluated first and outranking every other gate, because sector decides whether firm-level cash flow and firm-level leverage are even defined.
Commodity and cyclical are separated by one question: does a usable price driver exist? A high-R² regression of revenues on the commodity price sends the firm to B6, because the price essentially is the revenue model. No usable price series sends it to B7.
For a REIT, mandated payout and tax status make optimal-debt-ratio work and retention-based growth meaningless. Value on dividends or FFO, and exclude the firm from any corporate-finance financing recommendation. All other routing continues normally.
Bank statements announce themselves. Revenue arrives as net interest income and net fee income rather than sales minus cost of goods. Interest expense sits inside operations. The credit-loss provision is a recurring operating expense. Property and equipment is negligible, and equity is a thin slice of assets — HSBC in 2019 held equity worth 7.1% of total assets, which is structure rather than a warning. knowledge/concepts/accounting-statements/sector-differences-in-financial-statements.md.
S3 · Statement-repair gate
Always executed. This is what sets what "earnings" means for everything downstream. The order is fixed because each step feeds the next.
- Update to trailing twelve months.
- Capitalize operating leases into lease debt, restated EBIT, restated invested capital.
- Capitalize R&D, recruiting or brand-building advertising when
intangible_intensityis
moderate or high. This is overlay B8.
- Strip one-time items and personal expenses. Charge a market salary for uncompensated
owner labour at a private firm.
- Normalize only if S4 routes to B7. Normalization and the revenue-driven path are
mutually exclusive.
- Resolve the circularity. Restated EBIT sets interest coverage, which sets the synthetic
rating, which sets the cost of debt, which sets the lease discount rate, which changes restated EBIT. Iterate to a fixed point.
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/company-classification-routing/SKILL.md
Popularity
- Repository stars
- 162
- Repository forks
- 24
- 7-day trend score
- 25
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/lyndonkl/claude/company-classification-routing)