Beyond Markets — Agents

Dataflow

The orchestrator runs agents in a strict phased pipeline. Each phase's output becomes input context for subsequent phases.

User Request
     │
     
┌─────────┐
│ Planner │  (Sonnet 4.6) — SKIPPED when the request matches a pre-baked
│         │  plan in requests.json (catalog / periodic requests supply their
│         │  own plan and run it directly). A fast regex pre-check and the
│         │  planner can both reject a request ("mode": "rejected").
│         │  Otherwise: decomposes request → JSON plan (mode, targets, tasks).
└────┬────┘
     │  plan.agents[*].activate / plan.agents[*].task
     
┌──────────────────────────────────────────────────────────────┐
│  Phase 1 — Parallel Data Gathering  (Haiku 4.5, up to 4 threads) │
│                                                              │
│  ┌──────┐  ┌─────────────┐  ┌───────┐  ┌──────────────────┐  │
│  │ News │  │ Market Data │  │ Macro │  │ Geopolitical     │  │
│  │      │  │             │  │       │  │ Risk             │  │
│  └──┬───┘  └──────┬──────┘  └───┬───┘  └────────┬─────────┘  │
│     │             │             │               │            │
└─────┼─────────────┼─────────────┼───────────────┼────────────┘
      │             │             │               │
                                               
   news_output + market_data_output + macro_output + geopolitical_output
      │
      │  All Phase 1 outputs are concatenated as context
      
┌──────────────────────────────────────────────────────────────┐
│  Phase 2 — Sequential Analysis  (each sees all prior output) │
│                                                              │
│  ┌────────────────┐                                          │
│  │ Equity Analyst │ ← Phase 1 outputs                        │
│  └───────┬────────┘                                          │
│                                                             │
│  ┌────────────────────────┐                                  │
│  │ Swing Trading Analyst  │ ← Phase 1 + equity_analyst       │
│  └───────┬────────────────┘                                  │
│                                                             │
│  ┌────────────────────────┐                                  │
│  │ Macro Liquidity        │ ← Phase 1 + prior analysts       │
│  │ Analyst                │                                  │
│  └───────┬────────────────┘                                  │
│                                                             │
│  ┌────────────────┐                                          │
│  │ Scenario Agent │ ← Phase 1 + all analyst outputs          │
│  └───────┬────────┘                                          │
└──────────┼───────────────────────────────────────────────────┘
           │
           │  All Phase 1 + Phase 2 outputs
           
┌──────────────────────────────────────────────────────────────┐
│  Phase 3 — Review                                            │
│                                                              │
│  ┌────────┐                                                  │
│  │ Critic │ ← all prior outputs                              │
│  └───┬────┘                                                  │
│      │  assumption challenges, gaps, bias check              │
└──────┼───────────────────────────────────────────────────────┘
       │
       │  All prior outputs + critic feedback
       
┌──────────────────────────────────────────────────────────────┐
│  Phase 4 — Report                                            │
│                                                              │
│  ┌───────────────┐                                           │
│  │ Report Writer │ ← everything (ONE of 6 writer variants,   │
│  │               │   chosen by which report_writer_* the     │
│  └───────┬───────┘   plan activated; default report_writer)  │
│          │                                                   │
│                                                             │
│     reports/{tenant_id}/*.md                                 │
│     reports/{tenant_id}/*.meta.json                          │
│     reports/{tenant_id}/*.log                                │
└──────────────────────────────────────────────────────────────┘

Runtime models

The model: field in each skill's frontmatter is informational only. The authoritative per-agent model is AGENT_MODEL in agents/orchestrator.py (falling back to the orchestrator default for anything unlisted). Current assignments:

Phase / agent Model
Phase 0 — planner Sonnet 4.6
Phase 1 — news, market_data, macro, geopolitical_risk Haiku 4.5
Phase 2 — equity_analyst, swing_trading_analyst, macro_liquidity_analyst, scenario Sonnet 4.6
Phase 3 — critic Opus 4.7
Phase 4 — report_writer and all report_writer_* variants Sonnet 4.6 (16k max tokens)

(So the Phase-1 skill files say claude-sonnet-4-6 in frontmatter, but they actually run on Haiku 4.5 at runtime.)

Agent activation by mode

Not every agent runs in every mode. For free-form requests the planner emits one of the modes below and sets activate per agent. Phase agents run only when their activate flag is set.

Agent equity_deep_dive swing_trade market_brief macro_outlook news_digest data_pull
news Yes Yes Yes Yes *
market_data Yes Yes Yes *
macro Yes Yes Yes Yes *
geopolitical_risk Yes Yes *
equity_analyst Yes
swing_trading_analyst Yes Yes
macro_liquidity_analyst Yes Yes Yes
scenario Yes
critic Yes Yes Yes Yes Yes No
report_writer Yes Yes Yes Yes Yes *

* = depends on the specific plan. data_pull is a lightweight mode that skips the critic; agent activation is set by the plan rather than fixed.

Specialized (pre-baked) modes. Catalog / periodic requests in requests.json ship a full plan (planner skipped) and can use custom modes — vip_market_report, tech_theme, ai_investment, whale-activity and watchlist reports — each of which activates a specialized Phase-4 writer (see Report writer selection below).

Data sources per agent

Authoritative mapping lives in AGENT_TOOLS in agents/orchestrator.py. An entry is either "module" (all of that module's tools) or "module:tool1,tool2" (a named subset). Current wiring:

Agent Tool modules (subset shown after :)
news newsapi_ai, newsdata, gdelt:search_gdelt_news, articles, fmp:get_news,get_company_profile, finviz:news, web_search, alpaca_mktdata:get_alpaca_news
market_data fmp, sec, openfigi, finviz:screener,latest_filings,quote_history,group_performance, 13f, uw, alpaca_mktdata:get_market_movers,get_most_active,get_stock_snapshots
macro fred, imf, articles, alphavantage, newsapi_ai:search_news,get_macro_news
geopolitical_risk newsapi_ai, newsdata, gdelt:search_gdelt_news,get_gdelt_geo_news, articles, web_search
equity_analyst fmp, fred, sec, openfigi, newsapi_ai:search_news,get_company_news, uw
swing_trading_analyst fmp, fred, newsapi_ai, newsdata:search_newsdata, alphavantage:get_commodity_prices,get_forex_daily, uw:ext_get_options_flow,ext_get_oi_changes,ext_get_options_screener
macro_liquidity_analyst macro_liquidity, fred:get_interest_rates,get_credit_conditions,get_money_supply,get_macro_snapshot
planner, scenario, critic, all report_writer_* none (pure reasoning / writing)

Tool module registry

Short names resolve to modules via TOOL_MODULES in agents/runner.py:

fmp  fred  imf  newsapi  newsapi_ai  gdelt  newsdata  articles  sec
alphavantage  openfigi  macro_liquidity  finviz  13f  unusualwhales  uw
alpaca_mktdata

Skill Definitions

Each agent is driven by a markdown skill file (agents/skills/*.md) loaded as the system prompt by AgentRunner. Below is a condensed summary of each agent's role, tools, workflow, and output format. Full skill files are in agents/skills/. Phase 4 has six writer variants (report_writer plus five specialized writers); the rest of the pipeline has one skill per agent.

All agents include a <summary> block at the end of their output (1000–2000 chars) that is passed as compressed context to downstream agents.

The model: in each skill block below is reproduced from the skill file's frontmatter and is informational — the runtime model comes from AGENT_MODEL (see Runtime models above). Notably the Phase-1 agents run on Haiku 4.5 despite their frontmatter saying Sonnet.


critic


name: critic description: Stress-tests the analysis — challenges assumptions, identifies gaps, flags data quality issues. model: claude-opus-4-7


Critic Agent

Devil's advocate and quality controller. Finds weaknesses in the analysis to make it stronger.

Tools: None (pure reasoning from prior agent context).

Inputs: All prior agent outputs (news, market data, macro, geopolitical risk, equity thesis, scenarios).

Output: Assumption Challenges table (assumption, challenge, severity), Data Quality Concerns (stale, missing, contradictions, sample bias), Analytical Gaps, Counter-Arguments, Bias Check (anchoring, recency, confirmation, narrative, consensus), Confidence Assessment table (data quality, analytical rigour, valuation range, scenario completeness → overall), Recommendations for Improvement.

Guidelines: Constructive not destructive. Challenge strongest claims hardest. Check logical consistency and that recommendation follows from analysis.


equity_analyst


name: equity_analyst description: Synthesises market data, news, and macro context into an investment thesis with valuation and recommendation. model: claude-sonnet-4-6


Equity Analyst Agent

Senior equity research analyst. Synthesises all prior agent output into a rigorous investment thesis with valuation and recommendation.

Tools: FMP (quote, profile, financials, metrics, ratios, analyst data, DCF, earnings transcripts, research bundle), FRED (yield curve, credit conditions, real rates, any series), SEC EDGAR (get_sec_company_facts, get_sec_submissions, get_sec_concept, search_sec_filings), OpenFIGI (map_identifiers, search_figi).

Inputs: News briefing, market data, macro assessment, geopolitical risk register.

Workflow: Review all context → fetch missing data → build thesis → cross-check conclusions against data. Emphasise Earnings Analysis for recent earnings tasks; emphasise Comparable Company Analysis for comparison tasks.

Output sections: - Business Quality Assessment (moat, revenue quality, capital allocation, management) - Competitive Position (market share, advantages, threats, industry structure) - Financial Analysis (growth, margins, balance sheet, FCF, capital returns) - Earnings Analysis (beat/miss, guidance update, estimate revision impact — when recent quarter reported) - Comparable Company Analysis (4–6 peers: mkt cap, rev growth, EBITDA margin, P/E, EV/EBITDA, EV/Revenue; premium/discount vs. median) - Valuation Assessment (DCF + relative methods → blended fair value + historical range) - Investment Thesis (recommendation, fair value range, conviction) - Key Catalysts, Risk Factors - Summary block (<summary>, 1000–2000 chars for downstream agents)

Guidelines: Peer selection must justify by business model, end-market, and scale similarity. For earnings: lead with beat/miss, quantify variance, explain WHY.


geopolitical_risk


name: geopolitical_risk description: Scans news and articles for geopolitical risks, assesses probability and market impact. model: claude-sonnet-4-6


Geopolitical Risk Agent

Geopolitical risk analyst — assesses how political events and international tensions affect financial markets.

Tools: NewsAPI* (get_geopolitical_news, get_central_bank_news, search_news, get_finance_news_snapshot), GDELT (search_gdelt_news, get_gdelt_sentiment, get_gdelt_coverage_volume, get_gdelt_geo_news), NewsData.io (search_newsdata, get_newsdata_market), Articles archive (search_articles, get_article_summaries, get_article — max 2 full reads).

* NewsAPI disabled by default; GDELT + NewsData.io serve as replacements.

Performance budget: ≤ 8 tool calls total.

Workflow: Geopolitical headlines → central bank news → targeted topic searches → GDELT/NewsData for international/regional perspectives → article summaries (prefer over full text).

Output: Geopolitical Risk Register (probability × impact × timeframe × affected assets table), Risk Detail (description, trigger signals, transmission mechanism, affected sectors, historical analogue, hedging implications), Geopolitical Sentiment (risk level, direction, key uncertainty), Central Bank Watch, Summary block (<summary>, 1000–2000 chars).


macro


name: macro description: Pulls macroeconomic data from FRED, IMF, ECB, BIS, and Alpha Vantage to assess the macro regime and outlook. model: claude-sonnet-4-6


Macro Agent

Macroeconomist — assesses the current macroeconomic regime and outlook from FRED, IMF, ECB, BIS, and Alpha Vantage data.

Tools: FRED (14 tools — get_macro_snapshot, get_yield_curve, get_inflation_dashboard, get_labor_market, get_housing_market, get_credit_conditions, get_consumer_health, get_manufacturing_trade, get_monetary_aggregates, get_financial_stress, get_real_rates, get_leading_indicators, get_fred_series, list_available_series), IMF (9 tools — global outlook, GDP, inflation, current account, unemployment, debt, fiscal balance, indicator, country listing), ECB (6 tools — rates, HICP, money supply, FX, bond yields, snapshot), BIS (7 tools — credit/GDP, debt service, property prices, total credit, policy rates, effective exchange rates, snapshot), Alpha Vantage (get_forex_daily, get_commodity_prices, get_crypto_daily, get_economic_data), Articles archive.

Performance budget: ≤ 12 tool calls. Use composite tools (get_macro_snapshot, get_ecb_snapshot, get_bis_snapshot, get_imf_global_outlook) instead of individual series calls.

Workflow: get_macro_snapshot (US) → get_imf_global_outlook (global) → get_ecb_snapshot + get_bis_snapshot (Europe/global finance) → drill into specific areas per task → get_forex_daily / get_commodity_prices for FX and commodities → search articles for qualitative commentary.

Output: Macro Regime Assessment (Growth / Inflation / Policy / Credit classifications), Key Indicators table with trends, Regional Outlook (US, Euro Area, China, EM), Risks & Watchpoints, Data Quality Notes, Summary block (<summary>, 1000–2000 chars).


macro_liquidity_analyst


name: macro_liquidity_analyst description: Macro liquidity regime analyst. Scores liquidity conditions from FRED data and explains implications for asset classes. model: claude-sonnet-4-6


Macro Liquidity Analyst

Macro-liquidity regime analyst — scores liquidity conditions from FRED data, classifies the regime, and explains asset-class implications.

Tools: Macro Liquidity (get_macro_liquidity_score, get_liquidity_regime, explain_liquidity_for_asset, generate_macro_liquidity_report), FRED supplementary (get_interest_rates, get_credit_conditions, get_money_supply, get_macro_snapshot).

Performance budget: ≤ 6 tool calls total.

Workflow (strict 5-step process): 1. Liquidity Score — composite score (-3 to +3) with 4-pillar breakdown (real rates, central bank balance sheet, credit impulse, funding stress) 2. Context — yield curve shape, credit spread direction, rate stance 3. Asset Implications — per asset class (equities, bonds, commodities, crypto) 4. Regime Change Signals — components near thresholds, leading indicators 5. Summary block

Output: Ends with a clean regime card + <summary> block (1000–2000 chars):

LIQUIDITY REGIME: ___
COMPOSITE SCORE: ___ (-3 to +3)
DIRECTION: Improving / Stable / Deteriorating
ASSET POSITIONING: Equities / Bonds / Commodities / Crypto
REGIME CHANGE RISK: Low / Medium / High

market_data


name: market_data description: Fetches equity market data from FMP, SEC EDGAR, and OpenFIGI — quotes, financials, metrics, analyst consensus, technicals, and screening. model: claude-sonnet-4-6


Market Data Agent

Market data specialist — fetches and organises equity data from FMP, SEC EDGAR, and OpenFIGI for downstream analysis.

Tools: FMP — quotes & prices (get_stock_quote, get_batch_quotes, get_price_history, get_intraday_prices), company data (get_company_profile, get_financial_statements, get_key_metrics, get_financial_ratios), analyst & valuation (get_analyst_data, get_dcf_valuation, get_esg), insider & ownership (get_insider_trades, get_congressional_trades), filings & transcripts (get_sec_filings, get_earnings_transcript), technicals (get_technical_indicator), market-wide (get_news, get_market_movers, get_sector_performance, get_economic_indicator, get_treasury_rates, screen_stocks), bundle (get_company_research_bundle — 24 concurrent calls). SEC EDGAR (get_sec_company_facts, get_sec_submissions, get_sec_concept, search_sec_filings). OpenFIGI (map_identifiers, search_figi).

Performance budget: ≤ 15 tool calls. Prefer batch tools (get_batch_quotes, get_company_research_bundle) over individual calls.

Workflow: Single-company → get_company_research_bundle; multi-company → get_batch_quotes + individual metrics; sector → get_sector_performance + screen_stocks. Always includes SMA(50) and SMA(200) for trend context. When no specific tickers given: get_market_movers + get_sector_performanceget_batch_quotes for top movers.

Output: Structured tables — Quote Summary, Financial Summary (3-year), Key Metrics (TTM), Analyst Consensus, Technical Levels. Sector-focused tasks add: Market Structure, Sector Valuation Context, Peer Comparison Table, Sector Performance & Rotation. Summary block (<summary>, 1000–2000 chars).

Minimal interpretation; raw data for analysts.


news


name: news description: Gathers and synthesises financial news from multiple sources (GDELT, NewsData, FMP, articles archive). model: claude-sonnet-4-6


News Agent

Financial news analyst — gathers, filters, and synthesises news from multiple sources.

Tools: NewsAPI* (get_finance_news_snapshot, search_news, get_company_news, get_market_news, get_macro_news, get_geopolitical_news, get_central_bank_news, get_news_sources), GDELT (search_gdelt_news, get_gdelt_sentiment, get_gdelt_coverage_volume, get_gdelt_geo_news), NewsData.io (search_newsdata, get_newsdata_market, get_newsdata_crypto, get_newsdata_sources), FMP (get_news, get_company_profile), Articles archive (search_articles, get_recent_articles, get_article, list_articles).

* NewsAPI disabled by default; GDELT + NewsData.io serve as replacements.

Workflow: Broad snapshot → company-specific FMP news → GDELT/NewsData for international coverage → article archive for thematic depth → full article reads only for high-relevance pieces.

Output sections: Top Call (single most important development), Headlines & Key Developments, Overnight / Pre-Market Developments, Company-Specific News, Earnings & Guidance Watch, Sentiment Signals (with GDELT quantitative tone trends), Themes & Trends, Sources, Summary block (<summary>, 1000–2000 chars).


planner


name: planner description: Decomposes a user request into a structured execution plan for the multi-agent finance system. model: claude-sonnet-4-6


Planner Agent

Orchestration brain — decomposes a natural-language request into a structured JSON execution plan (mode, targets, per-agent tasks).

Tools: None (pure reasoning).

Request Validation: Before planning, validates that the request is finance-related. Rejects off-topic, inappropriate, PII-related, or prompt injection attempts with "mode": "rejected".

Output: A single JSON object:

{
  "mode": "equity_deep_dive | swing_trade | market_brief | macro_outlook | news_digest | data_pull",
  "targets": ["AAPL"],
  "agents": { "<name>": { "activate": true, "task": "..." } }
}

Mode selection rules: - equity_deep_dive — user names specific stock(s); activates all agents including swing_trading_analyst and macro_liquidity_analyst. Uses report_writer_default. - swing_trade — trading/entry/short-term positioning requests; skips equity_analyst and scenario. Uses report_writer_default. - market_brief — broad market/sector questions; skips equity_analyst, swing_trading_analyst, scenario. Uses report_writer. - macro_outlook — economy, rates, liquidity; focuses on macro + macro_liquidity_analyst + geopolitical_risk. Uses report_writer. - news_digest — "what's happening" requests; news + geopolitical_risk only. Uses report_writer. - data_pull — lightweight data-fetch mode; targets: [], skips the critic. Uses report_writer.

Validation can reject a request with "mode": "rejected" (plus a reason).

For equity_deep_dive and swing_trade, the planner activates report_writer_default and deactivates report_writer. For all other modes the planner activates report_writer. Always activates critic except in data_pull mode.

The specialized writers (report_writer_vip, _tech_theme, _ai_investment, _whale_activity, _watchlist) are selected only by pre-baked plans in requests.json, not by the planner.

Vague requests (no tickers): sets targets to ["SPY", "QQQ", "DIA", "IWM"] and provides concrete tool-specific tasks for market_data, news, macro, and equity_analyst.


report_writer


name: report_writer description: Produces the final polished markdown report, synthesising all agent outputs into a coherent document. model: claude-sonnet-4-6


Report Writer Agent

Financial report writer — synthesises all agent outputs into a single, polished, reader-friendly markdown report. This is the default Phase-4 writer; five specialized variants follow.

Report writer selection: Phase 4 runs exactly one writer. The orchestrator picks the first activated key from this priority list (agents/orchestrator.py), falling back to report_writer: report_writer_vipreport_writer_defaultreport_writer_watchlistreport_writer_tech_themereport_writer_whale_activityreport_writer_ai_investmentreport_writer. The chosen writer receives the plan's mode and targets in its task. If the writer is not activated at all, the orchestrator falls back to concatenating the raw agent outputs.

Tools: None (pure writing from prior agent context + critic feedback).

Writing style: ADHD-friendly, non-technical. Lead with the bottom line, short paragraphs (2–3 sentences), plain English, liberal bullet points, bold key takeaways, analogies for context, small tables with emoji trend/signal indicators (🟢🔴🟡⬆️⬇️➡️⚠️✅❌📊). End each section with a "So what?" line.

Visual indicators in tables: Trend (🟢 up, 🔴 down, 🟡 flat), Sentiment (🟢 bullish, 🟡 neutral, 🔴 bearish), Direction arrows (⬆️⬇️➡️), Scenarios (🟢 bull, 🔵 base, 🔴 bear), Flags (⚠️ risk, ✅ confirmed, ❌ missed, 📊 data).

Templates by mode: - equity_deep_dive (1500–2500 words) — The Big Picture, What the Stock Is Doing, The Business, The Numbers That Matter, What's It Worth, What Could Go Right/Wrong, Risks to Watch, The Bigger Picture, What People Are Saying, Fine Print. - market_brief (500–1000 words) — The One-Minute Version, Markets at a Glance, Winners & Losers, The Economy Right Now, What Could Shake Things Up. - macro_outlook (1000–1800 words) — Bottom Line, Growth, Inflation & Interest Rates, Around the World, Political & Geopolitical Risks, What This Means for Investing. - news_digest (400–800 words) — The Headlines That Matter, What's Moving Prices, Worth Watching.

Incorporates critic feedback in the fine print. Report stands alone without needing raw agent outputs. Ends with a disclaimer: "This report is for informational purposes only and does not constitute investment advice."


report_writer_vip

Specialized Phase-4 writer (Sonnet 4.6, 16k max tokens). Used exclusively by "Market Briefing (for Aarti)" (mode: vip_market_report).

Produces a polished, ADHD-friendly VIP market report in a fixed 4-section structure: - Section A — Snapshot: numbered quick-reference list of 11 items (major news, geopolitics, oil, bond yields, interest rates, inflation, economic growth, liquidity, fiscal policy, market narratives, capital flows). 1–3 sentences each; percentage changes stated directly — no raw numbers requiring calculation. - Section B — Market Outlook: 5–10 bullets on overall bullish/bearish sentiment; which sectors benefit or suffer. - Section C — Trade Ideas: 5 US stock/ETF trade ideas with Why / Entry / Target / Stop loss / Invalidation / Risk. Each anchored with <a id="trade-TICKER"></a>. - Section D — Full Analysis: detailed expansion of Section A items 1–11, numbered 12–22.

Has a strict plain-language style with a Jargon Ban table (finance terms → plain English), a No compressed regime labels rule, and a No tables rule — all data expressed as plain sentences with percentage changes. Tools: none.


report_writer_default

The standard writer for equity deep-dives (Sonnet 4.6, 16k max tokens). Used by equity_deep_dive and swing_trade mode plans, and by reports triggered from the Analysis view and Watchlist view.

Produces a 10-section institutional decision-making report: 1. Market Regime — risk-on/off classification, indices, breadth, rates, credit, VIX 2. Sector & Relative Strength — sector ETF RS over 4–12 weeks 3. Technical Trend & Structure — both long and short setups with exact levels 4. Liquidity & Microstructure — ADV, bid-ask, dark pool, tape tells 5. Options Overlay — OI walls, IV rank, skew, gamma dynamics 6. Events & Calendar — earnings, FOMC, macro releases 7. News & Headline Sensitivity — stock-specific, sector, macro, market plumbing 8. Fundamentals (Sanity Check) — revenue trend, margins, balance sheet, revisions 9. Risk Management & Trade Plan — both long and short: entry, stop, target, size 10. Go/No-Go — binary decision with chosen side

ADHD-friendly style with jargon ban. Tools: none.


report_writer_tech_theme

Specialized writer (Sonnet 4.6) for mode: tech_theme deep-dives (Quantum Computing, Cybersecurity, AI Investment Briefing). Covers theme potential, government support, geopolitics, sentiment, momentum, outlook, and ~10 stock picks each with an investment argument. Tools: none. Same plain-language jargon rules as the VIP writer.


report_writer_ai_investment

Specialized writer (Sonnet 4.6) for the AI Investment Briefing. Structures the report around NVIDIA's "5-layer AI cake" (Energy, Chips, Infrastructure, Models, Applications): per layer it maps technology sublayers → positioned companies, gives concrete per-company advice (role / entry / stop / risk / horizon / conviction), and a "how to invest / how NOT to invest" pair, ending with a model allocation table. Tools: none.


report_writer_whale_activity

Specialized writer (Sonnet 4.6) for the daily whale-activity report. Decodes large-money positioning from dark-pool prints, options flow, and OI changes (via the uw/ CSV snapshots), enriched with recent news and price momentum per highlighted symbol. Fixed 7-section structure (whale summary, index macro positioning, top bullish/bearish bets, divergence signals, macro hedges, what it means). Tools: none.


report_writer_watchlist

Specialized writer (Sonnet 4.6) for watchlist/portfolio reports. Produces a concise ADHD-friendly comparison across all symbols in a user's watchlist: snapshot table, standout movers, macro backdrop, risk/correlation, news digest, and a watchlist verdict. Tools: none.


scenario


name: scenario description: Builds probability-weighted bull/base/bear scenarios with target prices, assumptions, and signposts. model: claude-sonnet-4-6


Scenario Agent

Scenario analyst — constructs probability-weighted bull/base/bear scenarios grounded in valuation frameworks.

Tools: None (pure reasoning from prior agent context).

Inputs: Equity analyst thesis + all Phase 1 data.

Output: Scenario Summary table (probability, target price, return, key driver), detailed Bull/Base/Bear cases (thesis, key assumptions for revenue/margins/multiples, triggers, signposts), Risk/Reward Assessment (EV vs. price, skew, tail risk, optionality), Investment Thesis Scorecard (pillars, expectations, current status, trend, conviction level, upgrade/downgrade triggers), Catalyst Calendar (near/medium/longer-term events with impact and affected scenarios), Summary block (<summary>, 1000–2000 chars).

Constraints: Probabilities sum to 100%. Base case is most probable (40–60%). Scenarios are internally consistent. Target prices grounded in DCF / multiples. Signposts must be observable and testable.


swing_trading_analyst


name: swing_trading_analyst description: Institutional-level swing trading analyst. Top-down analysis from macro to execution with concrete entry/stop/target. model: claude-sonnet-4-6


Swing Trading Analyst

Institutional-level swing trading analyst — top-down analysis for 1–3 day trades in US equities/ETFs with concrete entry/stop/target.

Tools: FMP (quotes, price history, technicals, sector performance, market movers, profiles, metrics, ratios), FRED (macro snapshot, financial stress, yield curve, real rates, leading indicators), NewsAPI* (search_news, get_market_news), GDELT (search_gdelt_news), NewsData.io (search_newsdata), Alpha Vantage (get_commodity_prices, get_forex_daily).

* NewsAPI disabled by default; GDELT + NewsData.io serve as replacements.

Performance budget: ≤ 8 tool calls total.

Workflow (strict 9-step process): 1. Market Context — index trend, VIX, rates → Risk ON/OFF/CHOP 2. Geopolitics + News — wars, macro events, earnings 3. Sector & Industry Rotation — relative strength 4. Sentiment / Positioning — crowd positioning 5. Technical Analysis — structure, key levels, indicators, patterns 6. Trade Decision — LONG or SHORT (no hedging) 7. Execution — exact entry, stop, target, risk %, R:R 8. Invalidation — price/condition that cancels trade 9. Final Trade Summary block

Output: Ends with a clean trade card + <summary> block (1000–2000 chars):

TRADE: LONG / SHORT
TICKER: ___
ENTRY / STOP / TARGET: $___
R:R = ___
PROBABILITY: _/5