mcpField
U
us-stock-researcher

us-stock-researcher

github.com/skindhuOther60140 installsUpdated 35w ago
Repository

About us-stock-researcher

A research skill for producing investment reports from US companies’ SEC filings. It offers Gemini and Claude workflows, combining filing analysis with web research.

Key features

  1. 01SEC 10-K and 10-Q analysis
  2. 02Gemini and Claude research modes
  3. 03Industry-specific analysis frameworks
  4. 04Local and web research phases
  5. 05Formatted investment reports

Use cases

  1. 01Review a company’s latest SEC filing
  2. 02Research financial and competitive risks
  3. 03Create a structured investment report

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/skindhu/skind-skills --skill us-stock-researcher

After installing, type/us-stock-researcherin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

financial-analysis-framework.md
industry-analysis-modules.md
markdown-formatter-rules.md
README.md
prompts/
claude-deep-research-protocol.md
got-research-templates.md
phase1-filesearch-template.md
phase1-inline-template.md
phase2-web-research-template.md
report-merge-prompt.md
scripts/
clean_sec_filing.py
download_sec_filings.py
gemini_deep_research.py
requirements.txt

Details

From the project README

US Stock Researcher

Institutional-grade deep analysis of US stock SEC filings, outputting professional investment reports.

Research Mode Selection

ModeWhen to UseRequirements
Gemini ModeDefault when GEMINI_API_KEY is configuredGEMINI_API_KEY environment variable
Claude Native ModeWhen no Gemini API or user requestsWebSearch tool access

Quick Start Workflow

Path Variables

Before starting, determine these two paths:

  • <project_root>: The user's current working directory (where the agent session started). All output files go here.
  • <skill_dir>: The directory containing this SKILL.md file. Use its absolute path to reference scripts.

IMPORTANT: Always use absolute paths when running scripts. Never cd into the skill directory.

Step 1: Determine Filing Period

If user did NOT specify a period, use WebSearch to find the latest filing:

WebSearch: "{company_name} latest 10-K 10-Q SEC filing"

IMPORTANT: Always analyze the MOST RECENT filing by date, regardless of type (10-K or 10-Q).

Example decision logic:

  • If latest 10-K is 2024-12-31 and latest 10-Q is 2025-09-30 → Use 10-Q (more recent)
  • If latest 10-K is 2025-01-15 and latest 10-Q is 2024-09-30 → Use 10-K (more recent)

Inform user: "根据搜索,{TICKER} 最新的财报是 {10-K/10-Q}(截至 {period}),将分析该期财报"

Step 2: Download Filing
python3.11 <skill_dir>/scripts/download_sec_filings.py --ticker <TICKER> --type <10-K|10-Q|6-K> --limit 1 --project-root <project_root>

Output: <project_root>/investment-research/{TICKER}/tmp/sec_filings/cleaned.txt

Step 3: Dynamic Framework Generation
  1. Read first 5000 characters of filing
  2. Identify company industry
  3. Select modules from <skill_dir>/industry-analysis-modules.md
  4. Merge with <skill_dir>/financial-analysis-framework.md
  5. Save to <project_root>/investment-research/<TICKER>/tmp/analysis-framework-YYYY-MM-DD.md
Step 4: Execute Deep Research

Gemini Mode (full two-phase analysis):

python3.11 <skill_dir>/scripts/gemini_deep_research.py \
  --input <project_root>/investment-research/<TICKER>/tmp/sec_filings/cleaned.txt \
  --prompt <project_root>/investment-research/<TICKER>/tmp/analysis-framework-YYYY-MM-DD.md \
  --output-dir <project_root>/investment-research/<TICKER> \
  --ticker <TICKER> \
  --company <Company Name> \
  --phase all

Gemini Mode (local filing analysis only):

python3.11 <skill_dir>/scripts/gemini_deep_research.py \
  --input <project_root>/investment-research/<TICKER>/tmp/sec_filings/cleaned.txt \
  --prompt <project_root>/investment-research/<TICKER>/tmp/analysis-framework-YYYY-MM-DD.md \
  --output-dir <project_root>/investment-research/<TICKER> \
  --ticker <TICKER> \
  --company <Company Name> \
  --phase local

Gemini Mode (web research only, requires local phase output):

python3.11 <skill_dir>/scripts/gemini_deep_research.py \
  --input <project_root>/investment-research/<TICKER>/tmp/sec_filings/cleaned.txt \
  --prompt <project_root>/investment-research/<TICKER>/tmp/analysis-framework-YYYY-MM-DD.md \
  --output-dir <project_root>/investment-research/<TICKER> \
  --ticker <TICKER> \
  --company <Company Name> \
  --phase web \
  --phase1-output <project_root>/investment-research/<TICKER>/tmp/phase1-YYYY-MM-DD.md

IMPORTANT: --phase only accepts three values: all, local, web. Do NOT use numeric values like 1 or 2.

Claude Native Mode: Follow <skill_dir>/prompts/claude-deep-research-protocol.md for complete 7-phase execution.

Step 5: Format and Save

Format per <skill_dir>/markdown-formatter-rules.md, save to <project_root>/investment-research/{TICKER}/


Mode 1: Gemini Deep Research

User Input → Download Filing → Framework Generation → Local: Filing Analysis → Web: Market Research → Integration → Final Report
                                                              ↓                         ↓
                                                      (Gemini Deep Research)    (Gemini Deep Research)
  • Local phase (--phase local): Upload filing via Files API, Gemini analyzes comprehensively
  • Web phase (--phase web): Web search for competitors, trends, management verification
  • Integration: Claude merges local + web results per <skill_dir>/prompts/report-merge-prompt.md

Mode 2: Claude Native Deep Research

Uses 7-Phase Deep Research + Graph of Thoughts (GoT) methodology.

For complete execution details, see: <skill_dir>/prompts/claude-deep-research-protocol.md

7-Phase Overview
PhaseNameDescription
1Question ScopingDefine goals, download filing
2Retrieval PlanningIdentify industry, create research plan
3Iterative QueryingGoT branches: Financial, Competitive, Industry, Management, Risk
4Source TriangulationCross-validate findings
5Knowledge SynthesisStructure report per framework
6Quality AssuranceChain-of-Verification
7Output PackagingFormat and save
GoT Research Branches
BranchMethodFocus
ARead filingFinancial data analysis
BWebSearchCompetitive landscape
CWebSearchIndustry trends
DWebSearchManagement verification
EWebSearchRisk factors

Reference Documents

DocumentPurpose
financial-analysis-framework.mdBase analysis framework
industry-analysis-modules.mdIndustry-specific modules
markdown-formatter-rules.mdReport formatting rules
prompts/claude-deep-research-protocol.mdClaude Native 7-phase guide
prompts/report-merge-prompt.mdGemini mode report integration

Output Location

<project_root>/investment-research/{TICKER}/
├── tmp/
│   ├── sec_filings/cleaned.txt
│   ├── analysis-framework-YYYY-MM-DD.md
│   ├── phase1-YYYY-MM-DD.md             # Local phase (--phase local) output
│   └── phase2-YYYY-MM-DD.md             # Web phase (--phase web) output
└── {TICKER}-Investment-Report-YYYY-MM-DD.md

Usage Examples

  • "Analyze AAPL's latest 10-K annual report"
  • "Deep research MSFT's 10-K filing"
  • "Analyze JPM's latest annual report" (auto-selects Financial module)
  • "Research PFE's financial report" (auto-selects Pharma module)

Comments

Markdown supported