name: deep-research description: >- This skill should be used when the user asks to "deep research", "research this topic", "investigate thoroughly", "do a deep dive on", "comprehensive research on", "find everything about", "survey the landscape of", "compare approaches to", "write a report on", "gather information about", or wants multi-source investigation with synthesis and citations. Also triggers on "what are the best practices for", "how do others solve", or "state of the art in" when the user clearly wants breadth and depth beyond a simple answer. user-invocable: true allowed-tools: - Read - Write - Bash - Glob - Grep - Agent - WebSearch - WebFetch - TaskCreate - TaskUpdate - TaskList
Deep Research
Conduct thorough, multi-source research on a topic with iterative investigation, cross-verification, and structured synthesis into a cited report.
Overview
Deep research goes beyond a single search query. It decomposes a question into sub-topics, investigates each through multiple sources, identifies gaps, iterates to fill them, and synthesizes findings into a structured report with citations. The process is designed for transparency — the user sees the plan, approves it, and can steer the investigation.
Task Tracking
Use TaskCreate and TaskUpdate throughout the research process to give the user visibility into progress. This is mandatory — do not skip task creation.
- At the start of Phase 2, create a task for each sub-question from the research plan (e.g., "Investigate: [sub-question]"). Use
activeFormto show what's happening in the spinner (e.g., "Investigating [sub-question]"). - At the start of each subsequent phase (Draft, Adversarial Review, Editorial Synthesis, Deliver), create a task for that phase.
- Mark tasks
in_progresswhen you begin working on them andcompletedwhen done. - For sub-agents, create their tasks before launching them so the user can see parallel work in progress.
Keep task subjects short and specific. The description field should include enough context to understand scope.
Effort Levels
Research intensity is controlled by an effort parameter: low, medium (default), high, or ultra. This acts as an exponential multiplier across the entire process.
| Parameter | Low | Medium | High | Ultra |
|---|---|---|---|---|
| Sub-questions | 3-5 | 5-7 | 8-12 | 15-20 |
| Parallel agents | 2 | 3-4 | 6-8 | 10+ |
| Sources per question | ~4 | ~8 | ~15 | ~25+ |
| Iteration rounds (max) | 2 | 3 | 4 | 6 |
| Adversarial review | Lightweight (no source verification) | Full | Full + source verification | Full + multiple reviewers + source verification |
| Output format | Markdown + PDF | Markdown + PDF | Markdown + PDF | Markdown + PDF (detailed) |
| Report length | 3-5 pages | 6-12 pages | 15-25 pages | 30+ pages |
Determining effort:
- "quick research", "brief overview" → low
- No qualifier (default) → medium
- "thorough", "comprehensive", "deep dive" → high
- "exhaustive", "leave no stone unturned", explicit "ultra" → ultra
- User can also specify explicitly (e.g.,
/deep-research high: topic)
All parameters in the workflow below (sub-question count, agent count, iteration limits, etc.) must follow the effort level table. When launching sub-agents, pass the effort level so they calibrate their depth accordingly.
Core Workflow
Execute these phases in order. Do not skip Phase 1 or Phase 2.
Phase 1: Plan (Interactive)
Before any searching, decompose the user's question:
- Clarify scope — If the query is ambiguous, ask 1-2 focused questions (not more) to narrow down what the user actually needs. Skip if the intent is already clear.
- Decompose into sub-questions — Break the topic into sub-questions per the effort level table. Each should target a distinct angle (e.g., "how does X work?", "what are alternatives to X?", "what do practitioners say about X?").
- Identify source types — For each sub-question, note where to look: official docs, GitHub repos, HN discussions, academic papers, blog posts, Wikipedia, etc.
- Present the plan — Show the user the research plan as a numbered list of sub-questions with source strategies. Ask for approval or modifications before proceeding.
## Research Plan: [Topic]
### Sub-questions
1. [Sub-question] — Sources: [where to look]
2. [Sub-question] — Sources: [where to look]
...
### Effort: [low/medium/high/ultra]
- Sub-questions: [N] (per effort table)
- Sources per question: ~[M]
- Parallel agents: [P]
- Max iterations: [I]
Proceed with this plan?
Phase 2: Investigate (Iterative)
For each sub-question, execute this loop:
SEARCH → READ → EXTRACT → EVALUATE → (iterate if gaps remain)
Search strategy:
- Start with
WebSearchfor broad discovery - Use lightpanda for full page content extraction per global instructions
- Fall back to
WebFetchif lightpanda fails on a particular URL - For detailed search strategies and source evaluation heuristics, read
references/research-patterns.md - Use
Agenttool to parallelize independent sub-question investigations — launch multiple research sub-agents for unrelated sub-questions simultaneously - For GitHub-specific research, use
gh search repos,gh search code, and browse READMEs directly
Source priorities (per user preferences):
- GitHub repositories and READMEs
- Hacker News discussions and comments
- Wikipedia
- Official documentation and first-party sources
- Technical blog posts and articles
- Academic papers (when relevant)
Per-source extraction:
- Extract key claims, data points, and quotes
- Note the source URL and a brief credibility assessment
- Flag disagreements between sources explicitly
Gap analysis after each round:
- List what is now known vs. what remains unanswered
- If significant gaps remain, formulate new search queries targeting those gaps
- Limit iterations to the maximum specified by the effort level table — after reaching the limit, synthesize with what is available and note remaining unknowns
Context management:
- After extracting findings from a source, distill them into bullet points — do not carry full page content forward
- Use a running findings list organized by sub-question
- When context grows large, summarize completed sub-questions to free up space
Phase 2.5: Cross-Agent Reconciliation
When multiple agents investigated overlapping sub-questions, reconcile before drafting:
- Identify contradictions — Compare agent findings on the same topic. Flag any claims where agents disagree.
- Resolve or escalate — For each contradiction:
- If one agent cited a primary source and the other cited a secondary source, prefer the primary
- If both have equal sourcing, do a targeted follow-up search to break the tie
- If unresolvable, note explicitly as contested in the draft
- Merge findings — Create a unified findings list organized by sub-question (not by agent) before proceeding to the draft
Phase 3: Draft Report
Compile findings into a structured markdown draft report:
# [Research Topic]
## Summary
[2-3 paragraph executive summary of key findings]
## Findings
### [Sub-topic 1]
[Synthesized findings with inline citations as numbered references, e.g. [1]]
### [Sub-topic 2]
...
## Key Takeaways
- [Actionable insight 1]
- [Actionable insight 2]
- ...
## Open Questions
- [What remains unknown or contested]
## Sources
1. [Title](URL) — [brief description]
2. [Title](URL) — [brief description]
...
Synthesis principles:
- Cross-verify claims that appear in multiple sources; note conflicts
- Distinguish between widely-agreed facts and individual opinions
- Lead with what matters most to the user's original question
- Include direct quotes sparingly — only when they are particularly insightful
- Every factual claim should trace to at least one numbered source
Phase 4: Adversarial Review
After drafting the report, perform an adversarial review scaled to the effort level (see effort table: lightweight at low, full at medium, full + source verification at high, full + multiple reviewers at ultra). This is a separate, critical pass whose sole job is to find problems. The adversary has no attachment to the draft — it exists to stress-test it.
Launch a review sub-agent with this mandate:
Act as a skeptical, adversarial reviewer of the following research report. Your job is to find every weakness, not to be polite. Evaluate:
- Factual accuracy — Are any claims unsupported, exaggerated, or contradicted by the cited sources? Are citations used correctly or do they misrepresent the source?
- Missing perspectives — What important angles, counterarguments, or stakeholder viewpoints are absent? What would a knowledgeable critic say is missing?
- Logical gaps — Are there non-sequiturs, unwarranted conclusions, or leaps in reasoning? Does the evidence actually support the takeaways?
- Source quality — Are any sources low-credibility, outdated, or over-relied upon? Is the source diversity sufficient?
- Bias detection — Does the report favor one side without acknowledging trade-offs? Is it selling a conclusion rather than presenting evidence?
- Staleness risk — Are any claims likely outdated given the current date? Are there fast-moving areas where the findings may already be wrong?
Return a structured critique with severity ratings (critical / major / minor) for each issue found. Be specific — cite the exact claim or section that is problematic and explain why.
You have access to WebSearch, WebFetch, and Bash (for lightpanda). For any claim you flag as potentially inaccurate or exaggerated, spot-check it by visiting the cited source URL or searching for counter-evidence. Do not rely solely on logical analysis — verify at least the 3 most critical factual claims directly.
The adversary must NOT:
- Suggest rewording for style or tone
- Praise the report
- Hedge its criticisms
Phase 5: Editorial Synthesis
Take the original draft report and the adversarial critique, and produce the final report. This is an editorial pass, not a rubber stamp.
For each adversarial finding:
| Severity | Action |
|---|---|
| Critical | Must be resolved — correct the claim, add the missing evidence, or remove the unsupported assertion. If resolution requires additional research, do a targeted follow-up search. |
| Major | Should be resolved — add the missing perspective, strengthen the sourcing, or add a caveat. |
| Minor | Use judgment — fix if straightforward, otherwise note in Open Questions. |
Editorial principles:
- Do not simply append disclaimers to dodge criticisms — fix the underlying issue
- If the adversary identified a genuinely missing perspective, research it briefly and incorporate it
- If a claim cannot be adequately sourced after the adversary challenged it, downgrade it from a finding to an open question
- Preserve the report's readability — weave fixes into the narrative rather than adding a "corrections" section
- Add a brief "Methodology & Limitations" section at the end noting the research process, number of sources consulted, and any known blind spots the adversary surfaced that could not be fully resolved
The final report should read as if it was written correctly the first time — the adversarial process is invisible to the reader.
Before proceeding to Phase 6, walk through the Quality Checklist item by item. For each item, note pass/fail. If any item fails, fix it before delivering. This is a gate, not a suggestion.
Phase 6: Deliver
Every research report is delivered in three formats: Markdown (.md), Typst (.typ), and PDF (.pdf).
- Create output directory — Run
mkdir -p ~/.claude-extra/research/to ensure the directory exists. - Write Markdown — Save the final report to
~/.claude-extra/research/[topic-slug].md. - Write Typst — Do not mechanically convert Markdown to Typst. The Typst document should be designed for the reader. Load the
typst-authoringskill (especiallyreferences/visualizations.md) and invest effort in:- Comparison tables instead of prose listing pros/cons
- Diagrams (via fletcher, CeTZ, or pintorita) for architecture, flows, and relationships
- Callout boxes (via gentle-clues) to highlight key findings, warnings, and recommendations
- Charts (via lilaq or CeTZ) when presenting data, benchmarks, or trends
- Timeline diagrams (via timeliney) for roadmaps or chronological analysis
- Visual hierarchy — use color, spacing, and layout to guide the reader's eye
The reader should be able to understand the core findings by scanning the document for 60 seconds. Save to
~/.claude-extra/research/[topic-slug].typ.
- Compile PDF — Run
typst compile ~/.claude-extra/research/[topic-slug].typ ~/.claude-extra/research/[topic-slug].pdf. If compilation fails, fix the Typst source (common issues: unescaped special characters#,@,$need\#,\@,\$in content text) and retry. - Open PDF — Run
open ~/.claude-extra/research/[topic-slug].pdfto open the rendered PDF for the user. This step is mandatory — always open the PDF. Only open the PDF once the entire research process is 100% complete — all phases finished, editorial synthesis done, quality checklist passed, and final PDF compiled without errors. Never open intermediate or draft versions. - Present summary — Show a concise inline summary with:
- The report title and key findings (3-5 bullets)
- File paths for all three outputs
- An offer to go deeper on any sub-topic
- Any actionable next steps the research revealed
Parallelization Strategy
Maximize throughput by running independent work concurrently:
| Task | Parallelizable? | How |
|---|---|---|
| Investigating unrelated sub-questions | Yes | Launch multiple Agent sub-agents |
| Searching + reading within one sub-question | Sequential | Each search informs the next |
| Cross-verifying a claim across sources | Yes | Fetch multiple URLs in parallel |
| Gap analysis | Sequential | Requires all prior findings |
| Adversarial review | Yes | Launch as sub-agent while preparing delivery notes |
| Editorial fixes requiring new research | Yes | Targeted searches in parallel |
When launching parallel sub-agents, give each a focused prompt:
- The specific sub-question to investigate
- The source types to prioritize
- Instructions to return distilled findings (not raw page content)
- A reminder to include source URLs for every claim
Important: Do not use SendMessage to communicate status updates about background agents. Plain text output is directly visible to the user — just output text normally. SendMessage is for team communication between agents, not for status updates to the user.
Quality Checklist
Before delivering the final report, verify:
- Every factual claim has a cited source
- No source URLs are fabricated — every URL was actually visited
- Conflicts between sources are noted, not silently resolved
- The report directly answers the user's original question
- Open questions and limitations are explicitly stated
- The summary can stand alone for a reader who skips the details
- The adversarial review was completed and all critical/major findings addressed
- A Methodology & Limitations section is present
- All three output files (.md, .typ, .pdf) were generated and the PDF compiled without errors
Adaptation by Research Type
| Research Type | Emphasis | Example |
|---|---|---|
| Technology comparison | Feature matrices, trade-offs, community sentiment | "Compare X vs Y vs Z" |
| Best practices survey | Consensus patterns, anti-patterns, practitioner advice | "How do teams handle X?" |
| Landscape survey | Categorization, major players, trends | "What tools exist for X?" |
| Deep dive | Architecture, implementation details, edge cases | "How does X work internally?" |
| Decision support | Pros/cons, risk assessment, recommendations | "Should we use X?" |
Adjust source priorities and report structure to match the research type. For comparisons, use tables. For best practices, lead with the consensus view. For landscape surveys, categorize before detailing.
Additional Resources
references/research-patterns.md— Source evaluation heuristics, iteration patterns, and report structure templates by research type
When generating Typst output, load the typst-authoring skill for language reference and document templates.