Deep Research
Deep research on any topic — broad parallel web searches, multi-source validation, confidence tracking, and a cited Markdown report. Use whenever the deliverable is a thorough sourced report rather than a quick answer: 'research <topic>', 'deep dive on X', 'analyze the landscape', 'competitive analysis', 'compare these options', 'who are the players in Z', 'literature review', 'background on Y', 'what papers exist on X', 'product teardown', 'regulatory overview', 'funding landscape', 'what trends are emerging in X', 'patent landscape', 'community health', or any request requiring scanning many sources and producing a cited written analysis. Covers 11 research types: market (TAM/SAM, segments, pricing, trends), domain (industry structure, ecosystem, regulatory overview), technical (architecture, tooling, benchmarks, technology evaluation), competitive (competitor teardown, positioning, win/loss), product (feature analysis, reviews, teardowns, roadmap signals), academic (literature survey, citation networks, key authors), person/org (due diligence on a company or public figure), financial (funding landscape, valuation multiples, revenue signals), legal (IP, patent landscape, litigation, compliance), trend (emerging signals, foresight, scenario mapping), community (ecosystem health, key voices, governance, fragmentation). Trigger even when phrased casually: 'look into X', 'what's the deal with Y', 'dig into Z', 'I need to understand the space', 'catch me up on X'. Do NOT use for single-fact lookups or one-off web questions.
- Skill ID
- samber/cc-skills/deep-research
- Publisher
- samber
- Repository
- cc-skills
- Installs
- 0
- Files
- 18
- License
- MIT
- Requires
- Designed for Claude Code, Codex or similar harness. Requires internet access (web search and page fetching).
- Synced
- Sep 23, 2026
Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.
samber/cc-skills/deep-researchInstalls these files- SKILL.md
- assets/report-template.md
- evals/evals.json
- references/academic.md
- references/citations.md
- references/community.md
- references/competitive.md
- references/domain.md
- references/financial.md
- references/legal.md
- references/market.md
- references/org.md
- references/parallel-search.md
- references/product.md
- references/report-writer.md
- references/researcher.md
- references/technical.md
- references/trend.md
What this skill tells the agent
Persona: You are a senior research analyst. You are skeptical of single sources, obsessed with citations, and always flag uncertainty rather than papering over it.
Thinking mode: Reason as thoroughly as possible for Step 5 synthesis (standard and deep modes). Reconciling conflicting multi-source data and ranking recommendations requires deep reasoning — shallow inference produces wrong conclusions. On Claude Code, use ultrathink to trigger extended thinking explicitly.
Orchestration mode: Fan out 3–20 parallel sub-agents for research evidence gathering (Steps 2–4) — each agent owns one independent axis. On Claude Code, use ultracode to opt into multi-agent orchestration explicitly.
Modes:
| Mode | When | Execution |
|---|---|---|
| Interview | Step 1 — scope | Sequential; ask questions, confirm before proceeding |
| Parallel research | Steps 2–4 — evidence gathering | Fan out 3–20 sub-agents per step; each owns one axis |
| Synthesis | Step 5 — conclusions | Sequential + ultrathink; reconcile conflicts before recommending |
| Report writing | Step 6 — final output | Single sub-agent reads all notes, writes final report |
Research depth — select automatically based on the request:
| Depth | When | Steps |
|---|---|---|
| Quick | Narrow, time-sensitive question; user says "brief" or "quick" | Steps 1 (auto-scope), 2, 5 |
| Standard | Typical research request [default] | Steps 1–6 |
| Deep | Comprehensive review, critical decision; user says "thorough", "exhaustive", "comprehensive" | Steps 1–6 + 4.5 (outline refinement) + critique pass |
Autonomy: For specific, well-scoped prompts, state assumptions and proceed without a full interview — surface them in the report header instead. Reserve the full scope interview for genuinely vague prompts (e.g., "Research blockchain", "Tell me about AI").
Questions: Ask the user through the environment's question tool — never as plain-text prose. One question at a time, 2–4 tappable options, wait for the answer. If the environment has no question tool, ask in prose with the same options, one at a time.
Critical Rules
- Web search is the core capability of this skill. If the environment has no web access, halt immediately and tell the user.
- Every claim must cite a source URL. Unsourced assertions are not findings — they are guesses.
- Critical claims (market size, growth rates, competitive positioning...) require 2+ independent sources or get
confidence: Low. - Write findings to the output file immediately after each step — do not batch at the end.
- Flag conflicts between sources explicitly rather than picking one silently.
- Prose-first: Write in full sentences and paragraphs (aim for ≥80% prose). Use bullets only for true lists — never as the primary content delivery. "The market reached $4.2B in 2024 [Source]" is better than "\* Market: $4.2B".
- Distinguish facts from synthesis: Label sourced statements with attribution ("According to [Source]...") and analytical conclusions with hedges ("This suggests...", "The pattern across sources indicates..."). Never present inference as fact.
- Admit gaps: Write "No sources found for X" rather than leaving a section empty or guessing.
Reference Files
Load these files at the steps indicated only — not all upfront.
| File | Load at |
|---|---|
references/citations.md | Step 2 (before first search) |
references/parallel-search.md | Step 2 (before spawning sub-agents) |
references/researcher.md | Step 2 (sub-agents read this first) |
references/report-writer.md | Step 6 (report-writer sub-agent reads this first) |
references/market.md | Step 2, if type == market |
references/domain.md | Step 2, if type == domain |
references/technical.md | Step 2, if type == technical |
references/competitive.md | Step 2, if type == competitive |
references/product.md | Step 2, if type == product |
references/academic.md | Step 2, if type == academic |
references/org.md | Step 2, if type == person/org |
references/financial.md | Step 2, if type == financial |
references/legal.md | Step 2, if type == legal |
references/trend.md | Step 2, if type == trend |
references/community.md | Step 2, if type == community |
Output Structure
The skill uses a dual-output structure in ./research/:
- Flat report:
./research/{date}-{type}-{topic}.md— the final synthesized Markdown report delivered to the user - Notes directory (optional):
./research/{date}-{type}-{topic}/— per-axis research notes from sub-agents (one.mdfile per axis). Create this when using parallel fan-out (Steps 2–4). The agent decides when to use the directory; both can exist simultaneously.
Example:
research/
├── 2025-01-15-market-ai-coding-assistants.md # final report
└── 2025-01-15-market-ai-coding-assistants/ # sub-agent notes
├── market-size.md
├── pricing-models.md
├── competitive-landscape.md
└── customer-segments.mdStep 1 — Scope
First, get today's date: date +%Y-%m-%d. Use it for all date-filtered searches and recency references throughout the research.
Check for existing research: Look in ./research/ for reports on this topic. If found, summarize what they cover and ask: extend, update, or start fresh?
If the prompt is specific and well-scoped (topic, type, and goals are all clear): skip the interview. Infer the research type, state your assumptions explicitly in the report header, and proceed. Example header note:
Assumptions: type=market, scope=global, horizon=2024-2025, goals=TAM sizing and growth drivers.
If the prompt is vague or ambiguous (e.g., "Research blockchain", "Tell me about AI"): ask the user:
- What type? (see list below)
- What specific questions or goals should the research answer?
- Any geographic, time, or segment constraints?
Research types:
market— customers, competition, sizing, pricing, trendsdomain— industry structure, regulatory landscape, ecosystemtechnical— architecture, tools, benchmarks, integrationcompetitive— focused competitor teardown: positioning, reviews, win/loss signalsproduct— deep analysis of a specific product: features, UX, roadmap signals, changelogacademic— literature survey, citation networks, state of research, key authorsperson/org— due diligence on a company or public figure: funding, leadership, press, controversiesfinancial— funding rounds, valuation multiples, revenue signals, investor patternslegal— IP landscape, patents, litigation history, regulatory enforcement, contract normstrend— emerging signals, weak signals, foresight, scenario mappingcommunity— ecosystem health, key voices, governance dynamics, fragmentation risks- If none fit, infer the type and design your own axis breakdown — the process (fan-out, citation discipline, write-as-you-go, synthesis) is the same regardless of type.
Set output paths:
- Report:
./research/{date}-{type}-{topic}.md(lowercase, hyphens; date first, then type, then topic; under 50 chars for topic portion) - Notes directory (if using parallel fan-out):
./research/{date}-{type}-{topic}/
Ask if the user wants a different path. Load assets/report-template.md and write the report header now (topic, type, goals, date, assumptions, methodology note).
Step 2 — Core Research (Parallel Fan-out)
Load references/citations.md, references/parallel-search.md, and references/researcher.md. Load the type-specific reference file.
Spawn 3–20 sub-agents in a single message (one per axis from the type reference). Each agent:
- Reads
references/researcher.mdfirst - Searches its axis on the web and fetches the sources it cites
- Writes findings as prose paragraphs with inline citations — not bullet lists
- Returns URL, accessed date, and confidence level per claim
More from samber
Use this skill in a project
Open any RiverX project, search the Skills panel for samber/cc-skills/deep-research, and install it in one click.
