From research
Orchestrate multi-round, multi-source deep research using parallel agents and multiple search providers (Perplexity, Tavily, Exa, Gemini, native WebSearch). Produces comprehensive reports with citations, confidence scores, and identified gaps. Use this skill whenever the user wants thorough, multi-angle research on any topic — trigger on "deep research", "research this thoroughly", "comprehensive analysis of", "what does the internet say about", "gather everything about", "investigate X in depth", "multi-source research", "find all recent info on", or any request implying broad internet research beyond a simple search. Also trigger when the user needs cited research for a presentation, report, or decision, wants to compare sources, triangulate information, or needs source quality assessment. Even casual requests like "look into X for me" or "what's the latest on X" should trigger this if the topic is complex enough to benefit from structured multi-source research.
How this skill is triggered — by the user, by Claude, or both
Slash command
/research:deep-researchThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Multi-round, multi-source research orchestration for Claude Code. Produces structured
Multi-round, multi-source research orchestration for Claude Code. Produces structured reports by dispatching parallel research agents across multiple search providers, iterating until coverage is comprehensive.
The difference between a web search and deep research is iteration and triangulation. A single search returns surface-level results. Deep research decomposes questions into angles, searches across independent sources, identifies what's missing, searches again with refined queries, and synthesizes findings only when coverage is sufficient. This skill replicates the pattern used by commercial deep research products (Claude Research, Gemini Deep Research, Perplexity Deep Research) using Claude Code's agent system and MCP integrations.
The skill operates in two distinct phases:
Never skip the planning phase. The interview shapes the entire research — angles, recency requirements, depth expectations, and output format all come from the user's input.
Before any research, run date +%Y-%m-%d to get today's date. This prevents stale year
assumptions from training data and ensures recency filtering uses the correct baseline.
Check which MCP tools are available by attempting to use them or checking the tool list. Build an inventory:
Deep research channels (thorough, multi-step — these are the primary tools):
| Channel | Tool / Skill | How it works |
|---|---|---|
| Perplexity Deep Research | perplexity_research | Multi-source investigation via API. Does its own iterative search+read+synthesize loop internally. |
| Perplexity Reasoning | perplexity_reason | Step-by-step logical analysis with web grounding. |
| Tavily Deep Research | tavily_research | Multi-step research via API. Iterates internally across sources. |
| Gemini Deep Research | browser-researcher agent + gemini skill | Browser automation at gemini.google.com. Browses hundreds of sites. Plan review: gated. |
| ChatGPT Deep Research | browser-researcher agent + chatgpt skill | Browser automation at chatgpt.com. Uses o3/o4-mini reasoning. Plan review: gated. |
| Claude.ai Deep Research | browser-researcher agent + claude-ai skill | Browser automation at claude.ai. Plan review: informational (auto-starts, can stop & restart). |
All of these do their own internal multi-round research — they are not simple search queries. They are the core of what makes this skill "deep." Use them as the primary research channels, not as fallbacks.
Supplementary tools (for targeted lookups, gap-filling, reading specific sources):
| Channel | Tools |
|---|---|
| Perplexity | perplexity_search, perplexity_ask |
| Tavily | tavily_search, tavily_extract, tavily_crawl |
| Exa | web_search_exa, crawling |
| Gemini | ask-gemini, brainstorm |
| Native | WebSearch, WebFetch (always available) |
These are faster, lighter tools useful for filling specific gaps, verifying claims, reading individual pages, or brainstorming additional angles.
Present the full inventory to the user: "I have N search channels available, including Gemini Deep Research and ChatGPT Deep Research which can run in the background while faster MCP tools handle other angles."
If no MCPs are available, inform the user that research will use native tools + deep research skills. Ask if they want to proceed or install MCPs first.
Ask these questions (adapt based on what's already clear from context):
.work/<topic>/ if Flow workspace exists, otherwise ask.Based on the interview, present a plan:
Research: [topic]
Recency: [cutoff]
Rounds: [user-specified limit, or "until coverage is met"]
Angles: [list of research angles]
Channels: [which MCPs/tools will be used]
Output: [path]
Estimated agents: [N per round]
Wait for user approval before proceeding. They may adjust angles, add requirements, or change scope.
After approval, prepare the research dispatch.
Break the topic into distinct, non-overlapping angles. The number is adaptive based on topic complexity — bias toward thoroughness (typically 5-10 for complex topics, fewer for narrow questions). Each angle becomes one research agent's responsibility. Good angles are:
For each angle, generate specific search queries. The count is adaptive — scale with angle complexity (simple angles: 5-10, complex: 15-25, bias toward dense). This is critical — agents with specific query lists produce dramatically better results than agents told to "research X."
Include varied query patterns:
Give each agent access to all available MCP tools and native WebSearch/WebFetch. Agents
decide which tools to use based on what they find. Prefer deep research tools
(perplexity_research, tavily_research, perplexity_reason) — these do multi-step
research internally and produce richer results than simple search queries.
See references/tool-guide.md for what each tool can do.
Spawn all available deep research channels simultaneously as background agents. Each gets the core research question (or a specific angle if the topic is broad enough to split across them). They all do their own internal multi-round research independently.
perplexity_research, tavily_research,
perplexity_reason as their primary tools. Each agent focuses on a research angle.browser-researcher agent with Gemini skill:
Agent(name="gemini", subagent_type="browser-researcher",
prompt="skill_path: ~/.claude/skills/gemini-deep-research/SKILL.md\nresearch_prompt: <topic>\noutput_path: .work/gemini-report.md\ncaller: <your name>",
run_in_background=true)
browser-researcher agent with ChatGPT skill:
Agent(name="chatgpt", subagent_type="browser-researcher",
prompt="skill_path: ~/.claude/skills/chatgpt-deep-research/SKILL.md\nresearch_prompt: <topic>\noutput_path: .work/chatgpt-report.md\ncaller: <your name>",
run_in_background=true)
browser-researcher agent with Claude.ai skill:
Agent(name="claude-ai", subagent_type="browser-researcher",
prompt="skill_path: ~/.claude/skills/claude-ai-deep-research/SKILL.md\nresearch_prompt: <topic>\noutput_path: .work/claude-ai-report.md\ncaller: <your name>",
run_in_background=true)
All three use the same browser-researcher agent with different platform knowledge.
They communicate via SendMessage (prefixes: PLAN_READY, RESEARCH_PROGRESS, RESEARCH_COMPLETE, ERROR).
The browser-based research may take longer but produces comprehensive reports. The MCP-based
deep research tools return faster but are equally thorough per-query.
When researching a topic that has both positive and negative dimensions (ROI, impact, effectiveness, adoption), general research agents naturally skew toward paradoxes, anti-patterns, and cautionary findings. Academic/analyst sources emphasize what's surprising, not what's working.
Always plan two research rounds for balanced topics:
Without Round 2, the synthesis will be skewed. Check after Round 1 whether results lean heavily in one direction, and compensate with targeted agents for the underrepresented angle.
For research angles that need targeted searches, specific source reading, or gap-filling,
spawn additional agents with supplementary tools (perplexity_search, tavily_search,
web_search_exa, WebSearch, WebFetch, etc.). These handle:
Read references/agent-prompts.md for the full prompt template. Inline all context into
each agent prompt — context doesn't cross agent boundaries.
Agent output requirements: Each agent must write its findings to a file at the designated output path and return:
As agents complete, read their output files. Don't read entire files into context — use grep, head, or offset+limit reads to extract what's needed for gap analysis.
Before gap analysis, check whether Round 1 findings contradict the original research plan. Evidence sometimes reveals that the decomposition was wrong — an angle was irrelevant, a critical sub-topic was missed entirely, or assumptions in the plan were unfounded. If so, restructure the angles for Round 2 rather than doubling down on a flawed plan. This prevents the sunk-cost fallacy of researching angles that evidence shows are unproductive.
After all agents in a round complete, assess coverage:
Spawn another round if:
Stop if:
For Round 2+, generate new, targeted queries based on specific gaps — don't re-run the same queries. Focus agents on the weak spots.
When coverage is sufficient, delegate synthesis to a dedicated agent. The synthesis agent reads research files directly from disk — do NOT pass research content through the orchestrator's context (this only multiplies token use).
The orchestrator provides the synthesis agent with:
references/report-format.mdIf deep research skills are still running when MCP-based rounds are done, wait for them before synthesizing — their reports are typically the richest single sources.
The synthesis agent then:
Read references/agent-prompts.md for the synthesis agent prompt template.
Use the template in references/report-format.md. Core sections:
Rate each major finding on a 1-10 scale:
Flag source type: independent research, academic, vendor-funded, consulting firm, journalist, blog/opinion. This matters because vendor-funded studies consistently show more optimistic results than independent research.
After the synthesis agent completes, present a brief summary (5-10 lines) to the user with the file path, inviting them to read the full report and ask follow-up questions.
Recency is a first-class parameter because in fast-moving fields, outdated research is misleading. When a study from 6 months ago used previous-generation AI models, its findings may not apply to current tools.
How to enforce recency:
start_date parameter (format: YYYY-MM-DD)time_range parameter (day/week/month/year)When the user says "recent" or "latest": Always ask what they mean — never assume a default based on topic domain. Different users have different recency needs even within the same field.
Always note which model generation a study's data reflects if relevant (e.g., a study testing GPT-4 may not apply to GPT-5 era).
Research agents gravitate toward highly-cited older studies even when given strict date filters, because these studies dominate search engine rankings. Include an explicit KNOWN OBSOLETE blocklist in every research agent prompt to prevent this.
When dispatching agents, add to each prompt:
KNOWN OBSOLETE — do NOT cite as current evidence:
- METR Jul 2025 "experienced devs 19% slower with AI" — pre-agentic, METR retracted
the experimental design in their Feb 2026 update
- [add other obsolete studies as they are identified]
Reference these only as HISTORICAL CONTEXT with explicit "LEGACY" label.
During synthesis, run a dedicated obsolescence pass checking all cited studies against this blocklist before finalizing the report. Research agents WILL cite these studies despite date filters — the blocklist is the only reliable defense.
Before finalizing any research report, verify:
This skill does not use fixed configuration defaults. All parameters are adaptive:
references/tool-guide.md — Detailed MCP tool capabilities, parameters, and assignment strategyreferences/agent-prompts.md — Template for research agent promptsreferences/report-format.md — Output report templateProvides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
npx claudepluginhub kzarzycki/agent-skills --plugin research