§ 01

The three commands.

/finance              # auto-router — classifies intent, dispatches to the right tool
/finance-analyst      # equity-research lens — Sharpe-first, ticker-as-coverage
/finance-pm           # portfolio-manager lens — drawdown-first, ticker-as-position

Each command loads a SKILL.md prompt that frames the conversation. The skill defines the intent classifier, the lens, and the constraints (which numbers to lead with, which to suppress, what next-step suggestion to write). The MCP tools below it do not change. Three skills, one tool layer.

§ 02

/finance — the auto-router.

The default. Classifies the user's request into one of seven intents, then dispatches:

IntentTrigger phrasesAction
environment-check"validate environment", "is everything installed"validate_environment
health-check"ping", "are you running"ping
stock-analysis"price chart", "show me [TICKER]"analyze_stock
market-metrics"Sharpe", "drawdown", "beta", "vol"get_returns / get_volatility / get_risk_metrics
multi-ticker"compare A vs B", "correlation"compare_tickers / correlation_map
ml-liquidity"liquidity model", "predict liquidity"liquidity_predictor
ml-investor"investor classifier", "segment investors"investor_classifier

If the intent is ambiguous, the skill instruction is to ask one clarifying question and wait. No code generation before clarification. This single rule prevents the most common failure mode of LLM tool-calling — confidently dispatching the wrong tool because the prompt was under-specified.

§ 03

/finance-analyst — equity research lens.

Frames every ticker as a security under research coverage. Optimized for buy-side and sell-side note consumers. The lens decides what gets the headline:

Lead

Sharpe ratio

Risk-adjusted return is the universal coverage metric. Compare it to sector peers and to the index.

Beta means stock-level market sensitivity
Next step: compare to sector peers
Suppress

Portfolio context

The reader does not own the book. Drawdowns are noted but not led; correlation maps are not the deliverable.

Tone: note-style, single-name focus
Audience: research consumer, IC member
❯ /finance-analyst initiate coverage on NVDA
§ 04

/finance-pm — portfolio manager lens.

Frames every ticker as a holding in the book. Optimized for risk committee and LP reporting. The lens reorders the same numbers:

Lead

Max drawdown

Worst-case loss already realized in the window — the number a risk committee actually asks about.

Beta means systematic exposure of the book
Next step: check correlation against other holdings
Suppress

Single-name color

The reader owns the book. Sharpe is reported but not led; sector commentary lives in the analyst lens, not here.

Tone: risk-committee memo
Audience: PM, CRO, LP
❯ /finance-pm review risk on my holdings: AAPL, NVDA, JPM
§ 05

Why three, not thirty.

The temptation, on a stack like this, is to ship a persona for every job title — analyst, PM, IB, FP&A, accounting, retail, advisor, family office, treasury. The temptation is wrong. Each persona is a maintenance surface; each new persona is a confusion vector for the user (which one do I pick?); and beyond two or three, the lenses stop being meaningfully different.

"Two professional lenses cover most of the value. The third — the auto-router — exists because users don't always know which lens they need."

The walkthroughs on the index page (Equity Research, Hedge Fund PM, Investment Banking, FP&A, Accounting) cover role-specific workflows on top of these two lenses. Workflows multiply. Lenses don't.

§ 06

What this page is not.