Triggers when user asks to run weekly equity analysis, run backtest, or research a specific ticker. Reads MASTER_PLAN.md to load strategy, calls tools/screen.py to produce ranked top-50 candidates, then for each candidate runs ReAct loop using tools/research.py (max 10 iterations) gathering news, fundamentals, insider data, peer comparison. After thesis is built, runs Devil's Advocate attack on the thesis surfacing the strongest reason it could be wrong. Then runs Critic verdict assigning a confidence score 0.0-1.0; only theses with confidence >=0.85 become PICK. Outputs full reasoning trace plus final picks to runs/YYYY-MM-DD.md.
Resources
14Install
npx skillscat add abhillashjadhav/equity-resaerch-agentic-workflow Install via the SkillsCat registry.
Equity Research Agentic Workflow
This skill runs a three-agent ReAct flow over a screened tech equity universe to produce 0–5 high-conviction picks per week. Claude Code itself is the agent — there is no external orchestration. The three roles below are personas Claude assumes in sequence, not separate processes.
Three-Agent ReAct Flow
1. Analyst (ReAct loop, max 10 iterations per ticker)
For each candidate from tools/screen.py, the Analyst enters a Thought → Action → Observation loop using tools/research.py to gather:
- Recent news (last 90 days) and identifiable catalysts.
- Fundamentals (income statement, balance sheet, cash flow, key ratios).
- Insider transactions (last 180 days).
- Peer comparison (3–5 closest peers on multiples and growth).
- Short interest trend, analyst revisions, ownership changes.
The Analyst's job is to either build a thesis that satisfies all 5 criteria below, or terminate with insufficient_evidence.
The 5 thesis criteria (all must be satisfied):
- Catalyst identified — a specific, time-bound event within the next 90 days (60 days in defensive regime) that is the proximate reason the market is expected to re-price.
- Fundamentals intact — quality sleeve still strong; no degradation in margins, FCF conversion, or working capital trend that would undermine the thesis.
- Governance clean — all 12 governance gates pass (re-verified at thesis time, not just at screen time).
- Mispricing confirmed — explicit articulation of why the market is wrong right now (overreaction, neglected, misclassified, structurally underfollowed).
- Peer-relative cheap — trades at a discount to the peer set on at least one of EV/EBIT, P/FCF, or PEG, after adjusting for quality.
2. Devil's Advocate (single pass)
Once the Analyst has a complete 5-criterion thesis, Claude switches persona to Devil's Advocate and writes the strongest possible argument that the thesis is wrong. This is not balance for balance's sake — the goal is to surface the single most damaging counter that a smart short-seller would raise. Common attack vectors: catalyst is already priced in, governance gate was passed on stale data, peer comp is mismatched, mispricing is rational (the market knows something the model doesn't), TAM/growth assumption is structurally broken.
3. Critic (verdict)
Claude then switches to Critic persona and renders a verdict in strict JSON:
{
"ticker": "XYZ",
"verdict": "PICK | PASS | insufficient_evidence",
"confidence": 0.0,
"composite_score": 0,
"catalyst": "...",
"catalyst_date": "YYYY-MM-DD",
"thesis_summary": "...",
"strongest_counter": "...",
"why_counter_does_not_break_thesis": "..."
}Only confidence >= 0.85 AND composite_score >= 80 AND catalyst within window AND not within 14 days of earnings = PICK. Everything else is PASS or insufficient_evidence.
Exit Conditions for the Analyst Loop
The Analyst exits when any one of these is true:
- All 5 thesis criteria are satisfied (proceed to Devil's Advocate).
- 10 ReAct iterations have been used without satisfying all 5 criteria.
- Evidence gathered so far makes one of the 5 criteria provably false (e.g., a governance flag surfaces) — emit
insufficient_evidenceimmediately.
On exits 2 or 3, the Critic outputs:
{"verdict":"insufficient_evidence","confidence":0.0}and the ticker is logged to the run trace but not promoted.
Output Location
The full reasoning trace for the run — including every Thought/Action/Observation, every Devil's Advocate pass, every Critic verdict, and the final 0–5 picks — is written to runs/YYYY-MM-DD.md.