Deep web research with parallel investigators, multi-wave exploration, and structured synthesis. Spawns multiple web-researcher agents to explore different facets of a topic simultaneously, launches additional waves when gaps are identified, then synthesizes findings. Use when asked to research, investigate, compare options, find best practices, or gather comprehensive information from the web.\n\nThoroughness: quick for factual lookups | medium for focused topics | thorough for comparisons/evaluations (waves continue while critical gaps remain) | very-thorough for comprehensive research (waves continue until satisficed). Auto-selects if not specified.
Orchestrates parallel web researchers to investigate topics through iterative waves, then synthesizes findings into comprehensive intelligence.
/plugin marketplace add doodledood/claude-code-plugins/plugin install vibe-workflow@claude-code-plugins-marketplaceThis skill inherits all available tools. When active, it can use any tool Claude has access to.
Research request: $ARGUMENTS
FIRST: Determine thoroughness before researching. Parse from natural language (e.g., "quick lookup", "thorough research", "comprehensive analysis") or auto-select based on query characteristics.
Auto-selection logic:
Explicit user preference: If user explicitly specifies a thoroughness level (e.g., "do a quick lookup", "thorough research on X"), honor that request regardless of other triggers in the query.
Trigger conflicts (auto-selection only): When auto-selecting and query contains triggers from multiple levels, use the highest level indicated (very-thorough > thorough > medium > quick).
| Level | Agents/Wave | Wave Policy | Behavior | Triggers |
|---|---|---|---|---|
| quick | 1 | Single wave | Single web-researcher, no orchestration file, direct answer | "what is", "when did", factual lookups, definitions |
| medium | 1-2 | Single wave | Orchestration file, focused research on 1-2 angles | specific how-to, single technology, focused question |
| thorough | 2-4 | Continue while critical gaps remain | Full memento, parallel agents, cross-reference, follow-up waves for critical gaps | "compare", "best options", "evaluate", "pros and cons" |
| very-thorough | 4-6 | Continue until comprehensive OR diminishing returns | Multi-wave research until all significant gaps addressed or new waves stop yielding value | "comprehensive", "complete analysis", "all alternatives", "deep dive" |
Multi-wave research: For thorough and very-thorough levels, research continues in waves until satisficing criteria are met. Each wave can spawn new investigators to address gaps, conflicts, or newly discovered areas from previous waves. There is no hard maximum - waves continue as long as they're productive and gaps remain at the triggering threshold.
Ambiguous queries: If thoroughness cannot be determined AND the query is complex (involves comparison, evaluation, or multiple facets), ask the user:
I can research this at different depths:
- **medium**: Focused research on core aspects (~3-5 min)
- **thorough**: Multi-angle investigation with cross-referencing (~8-12 min)
- **very-thorough**: Comprehensive analysis covering all facets (~15-20 min)
Which level would you prefer? (Or I can auto-select based on your query)
State: **Thoroughness**: [level] — [reason] then proceed.
Orchestrate parallel web researchers to comprehensively investigate a topic through iterative waves, then synthesize findings into actionable intelligence.
Loop: Determine thoroughness → Decompose topic → Launch Wave 1 → Collect findings → Evaluate gaps → [If gaps significant AND waves remaining: Launch next wave → Collect → Evaluate → Repeat] → Synthesize → Output
Orchestration file: /tmp/research-orchestration-{topic-slug}-{YYYYMMDD-HHMMSS}.md - external memory for tracking multi-wave research progress and synthesis.
Research continues in waves until satisficing criteria are met for the given thoroughness level.
| Level | Continue When | Stop When (Satisficed) |
|---|---|---|
| quick | N/A | Always single wave |
| medium | N/A | Always single wave |
| thorough | Critical gaps remain AND previous wave was productive AND ≤50% source overlap with prior waves | No critical gaps OR diminishing returns OR >50% source overlap |
| very-thorough | Significant gaps remain AND previous wave was productive AND ≤50% source overlap with prior waves | Comprehensive coverage (no significant gaps) OR diminishing returns OR >50% source overlap |
No hard maximum: For thorough and very-thorough, waves continue based on necessity, not arbitrary limits. The satisficing criteria drive when to stop.
Source overlap: Percentage of sources in current wave that were also cited in any previous wave. >50% overlap indicates research is cycling through same sources.
After each wave, classify identified gaps:
| Gap Type | Definition | Triggers New Wave? |
|---|---|---|
| Critical | Core question aspect unanswered, major conflicts unresolved, key comparison missing | Yes (thorough, very-thorough) |
| Significant | Important facet unexplored, partial answer needs depth, newly discovered area | Yes (very-thorough only) |
| Minor | Nice-to-have detail, edge case unclear, tangential info | No - note in limitations |
After Phase 4 (Cross-Reference), evaluate whether to continue:
Definitions:
Satisficed when ANY true:
Continue when ALL true:
When continuing to a new wave:
Topic-slug format: Extract 2-4 key terms (nouns and adjectives that identify the topic; exclude articles, prepositions, and generic words like "best", "options", "analysis"), lowercase, replace spaces with hyphens. Example: "best real-time database options 2025" → real-time-database-options
Timestamp format: YYYYMMDD-HHMMSS. Obtain via date +%Y%m%d-%H%M%S.
Run two commands:
date +%Y%m%d-%H%M%S → for filename timestamp (e.g., 20260112-060615)date '+%Y-%m-%d %H:%M:%S' → for human-readable "Started" field (e.g., 2026-01-12 06:06:15)Todos = research areas to investigate + memento operations, not fixed steps. Each research todo represents a distinct angle or facet. List expands as decomposition reveals new areas. Memento todos ensure external memory stays current.
Starter todos (seeds - list grows during decomposition):
- [ ] Create orchestration file
- [ ] Topic decomposition & research planning
- [ ] Write decomposition to orchestration file
- [ ] (expand: research facets added during decomposition - e.g., "Research: {facet 1}")
- [ ] (expand: Wave 1 agent assignments)
- [ ] Launch Wave 1 agents
- [ ] Collect Wave 1 findings → write to orchestration file
- [ ] Cross-reference findings → write analysis to orchestration file
- [ ] Evaluate gaps → write gap evaluation to orchestration file
- [ ] (expand: if continuing - Wave 2+ research todos)
- [ ] Refresh context: read full orchestration file
- [ ] Synthesize final output
Critical memento todos (never skip):
Write {X} to orchestration file - after EACH phase/agent completionRefresh context: read full orchestration file - ALWAYS before synthesisExpansion pattern: As decomposition reveals facets, add specific research todos with write-to-log after each collection:
- [x] Create orchestration file
- [x] Topic decomposition & research planning
- [x] Write decomposition to orchestration file
- [ ] Research: Real-time database landscape 2025
- [ ] Research: Performance benchmarks
- [ ] Research: Conflict resolution strategies
- [ ] Research: Production case studies
- [ ] Launch Wave 1 agents (4 parallel)
- [ ] Collect Agent 1 findings → write to orchestration file
- [ ] Collect Agent 2 findings → write to orchestration file
- [ ] Collect Agent 3 findings → write to orchestration file
- [ ] Collect Agent 4 findings → write to orchestration file
- [ ] Cross-reference all findings → write analysis to orchestration file
- [ ] Evaluate gaps → write gap evaluation to orchestration file
- [ ] (if continuing: Wave 2 research todos with write-to-log)
- [ ] Refresh context: read full orchestration file
- [ ] Synthesize final output
Path: /tmp/research-orchestration-{topic-slug}-{YYYYMMDD-HHMMSS}.md
# Web Research Orchestration: {topic}
Timestamp: {YYYYMMDD-HHMMSS}
Started: {YYYY-MM-DD HH:MM:SS}
Thoroughness: {level}
Wave Policy: {single wave | continue while critical gaps | continue until comprehensive}
## Research Question
{Clear statement of what needs to be researched}
## Topic Decomposition
- Core question: {main thing to answer}
- Facets to investigate: (populated in Phase 2)
- Expected researcher count: {based on thoroughness level}
## Wave Tracking
| Wave | Agents | Focus | Status | New Findings | Decision |
|------|--------|-------|--------|--------------|----------|
| 1 | {count} | Initial investigation | Pending | - | - |
## Research Assignments
(populated in Phase 2)
## Agent Status
(updated as agents complete)
## Collected Findings
(populated as agents return)
## Cross-Reference Analysis
(populated after each wave)
## Gap Evaluation
(populated after each wave - drives continuation decisions)
## Synthesis Notes
(populated in final phase)
Before launching agents, analyze the query to identify non-overlapping research angles. Each agent should have a distinct domain with clear boundaries.
Core question: What is the fundamental thing being asked?
Facets: What distinct aspects need investigation? Ensure minimal overlap:
Orthogonality check: Before assigning agents, verify:
Bad decomposition (overlapping):
Good decomposition (orthogonal):
| Facet | Research Focus | Explicitly EXCLUDE |
|---|---|---|
| {facet 1} | "{what to research}" | "{what other agents cover}" |
| {facet 2} | "{what to research}" | "{what other agents cover}" |
Agent count by level:
If decomposition reveals more facets than agent count allows:
Orthogonality strategies:
Add a todo for each planned agent assignment:
- [x] Topic decomposition & research planning
- [ ] Research: {facet 1 description}
- [ ] Research: {facet 2 description}
- [ ] Research: {facet 3 description}
- [ ] ...
- [ ] Collect and cross-reference findings
- [ ] Synthesize final output
After decomposition, update the file:
## Topic Decomposition
- Core question: {main question}
- Facets identified:
1. {facet 1}: {why this angle matters}
2. {facet 2}: {why this angle matters}
...
## Research Assignments
| Agent | Facet | Prompt | Status |
|-------|-------|--------|--------|
| 1 | {facet} | "{prompt}" | Pending |
| 2 | {facet} | "{prompt}" | Pending |
...
Use Task tool with subagent_type: "vibe-workflow:web-researcher" for each research angle. Launch agents in parallel (single message with multiple Task tool calls) to maximize efficiency.
Wave 1 prompt template (broad exploration with boundaries):
{Specific research question for this facet}
YOUR ASSIGNED SCOPE:
- Focus areas: {specific aspect 1}, {specific aspect 2}, {specific aspect 3}
- This is YOUR domain - go deep on these topics
DO NOT RESEARCH (other agents cover these):
- {facet assigned to Agent 2}
- {facet assigned to Agent 3}
- {etc.}
Current date context: {YYYY-MM-DD} - prioritize recent sources.
---
Research context:
- Wave: 1 (initial investigation)
- Mode: Broad exploration within your assigned scope
- Stay within your boundaries - other agents handle the excluded areas
- Report any gaps or conflicts you discover for potential follow-up waves
Wave 2+ prompt template (gap-filling):
{Specific gap or conflict to resolve}
Context from previous waves:
- Previous findings: {summary of relevant findings from earlier waves}
- Gap being addressed: {specific gap - e.g., "Sources conflict on X" or "Y aspect unexplored"}
- What we already know: {established facts from Wave 1}
YOUR ASSIGNED SCOPE:
- Focus narrowly on: {targeted aspect 1}, {targeted aspect 2}
- This gap was identified because: {why previous research was insufficient}
DO NOT RESEARCH:
- Topics already well-covered in Wave 1 (don't repeat)
- {areas other Wave 2 agents are handling}
Current date context: {YYYY-MM-DD} - prioritize recent sources.
---
Research context:
- Wave: {N} (gap-filling)
- Mode: Targeted investigation - focus narrowly on the gap above
- Build on previous findings, don't repeat broad exploration
- Flag if this gap cannot be resolved (conflicting authoritative sources, no data available, etc.)
Batching rules:
After EACH agent returns, immediately update:
## Agent Status
| Agent | Facet | Status | Key Finding |
|-------|-------|--------|-------------|
| 1 | {facet} | Complete | {1-sentence summary} |
| 2 | {facet} | Complete | {1-sentence summary} |
...
## Collected Findings
### Agent 1: {facet}
**Confidence**: {High/Medium/Low/Contested/Inconclusive}
**Sources**: {count}
{Paste key findings from agent - preserve source citations}
{If Contested: note the conflicting positions}
{If Inconclusive: note what couldn't be determined}
### Agent 2: {facet}
...
If an agent times out or returns incomplete results:
Look for:
Handling agent confidence levels:
## Cross-Reference Analysis
### Agreements (High Confidence)
- {Finding}: Supported by agents {1, 3, 4}
- {Finding}: Confirmed across {count} sources
### Conflicts (Requires Judgment)
- {Topic}: Agent 1 says X, Agent 3 says Y
- Resolution: {which to trust and why, or present both}
- {Topic}: Agent 2 reported as Contested - {Position A} vs {Position B}
- Resolution: {present both with supporting sources, or identify which is more authoritative}
### Inconclusive Areas
- {Topic}: Agent {N} couldn't determine - {reason}
- Action: {follow-up wave with different angles, or note as limitation}
### Gaps Identified
- {What wasn't answered}
- {Areas needing more research}
### Key Insights
- {Synthesis observation 1}
- {Synthesis observation 2}
For thorough and very-thorough levels, classify each gap:
## Gap Evaluation (Wave {N})
### Critical Gaps (triggers thorough/very-thorough continuation)
- [ ] {Gap}: {Why critical - core question aspect unanswered}
- [ ] {Gap}: {Why critical - major conflict unresolved}
### Significant Gaps (triggers very-thorough continuation)
- [ ] {Gap}: {Why significant - important facet unexplored}
- [ ] {Gap}: {Why significant - partial answer needs depth}
- [ ] {Gap}: {Why significant - newly discovered area worth exploring}
### Minor Gaps (note in limitations, don't pursue)
- {Gap}: {Why minor - nice-to-have detail}
### Wave Productivity Assessment
- New substantive findings this wave: {count}
- Confidence improvements: {which areas improved}
- New areas discovered: {list or "none"}
- Diminishing returns signals: {yes/no - explain}
### Wave Decision
- Current wave: {N}
- Thoroughness level: {level}
- Wave policy: {single wave | continue while critical gaps | continue until comprehensive}
- Critical gaps remaining: {count}
- Significant gaps remaining: {count}
- Was this wave productive? {yes/no - ≥2 findings OR confidence improved OR new areas}
- **Decision**: {CONTINUE to Wave N+1 | SATISFICED - proceed to synthesis}
- **Reason**: {explain based on satisficing criteria - what gaps remain or why comprehensive}
If SATISFICED (any of these true):
If CONTINUE (all of these true):
When continuing to a new wave:
## Wave Tracking
| Wave | Agents | Focus | Status | New Findings |
|------|--------|-------|--------|--------------|
| 1 | 4 | Initial investigation | Complete | 12 findings |
| 2 | 2 | Gap-filling: {focus areas} | In Progress | - |
- [ ] Wave 2: Investigate {critical gap 1}
- [ ] Wave 2: Resolve conflict on {topic}
- [ ] Wave 2: Deep-dive {significant gap}
Design targeted prompts for gaps:
Launch 1-3 agents for this wave (focused investigation)
subagent_type: "vibe-workflow:web-researcher"Collect findings and return to 4.2 (cross-reference including new findings)
CRITICAL: This is the key memento step. Read the FULL orchestration file using the Read tool to restore ALL findings, cross-references, gap evaluations, and wave tracking into context.
Why this matters: By this point, findings from multiple agents across potentially multiple waves have been written to the orchestration file. Context degradation means these details may have faded. Reading the full file immediately before synthesis brings all findings into recent context where attention is strongest.
Todo must show:
- [x] Refresh context: read full orchestration file ← Must be marked complete before synthesis
- [ ] Synthesize final output
Verification: After reading, you should have access to:
Only after completing 5.1 - synthesize ALL agent findings into a cohesive answer. Include:
## Research Findings: {Topic}
**Thoroughness**: {level} | **Waves**: {count} | **Researchers**: {total across waves} | **Total Sources**: {aggregate}
**Overall Confidence**: High/Medium/Low (based on agreement and source quality)
**Satisficing**: {reason research concluded - e.g., "All significant gaps addressed" or "Diminishing returns after Wave 3"}
### Executive Summary
{4-8 sentences synthesizing the key takeaway. What does the user need to know?}
### Detailed Findings
#### {Major Finding Area 1}
{Synthesized insights with inline source citations from multiple agents}
#### {Major Finding Area 2}
{...}
### Comparison/Evaluation (if applicable)
| Option | Pros | Cons | Best For |
|--------|------|------|----------|
| {opt 1} | {from agents} | {from agents} | {synthesis} |
| {opt 2} | {from agents} | {from agents} | {synthesis} |
### Recommendations
{Based on synthesized evidence - what should the user consider/do?}
### Confidence Notes
- **High confidence**: {findings with strong multi-source agreement}
- **Medium confidence**: {findings with some support}
- **Contested**: {where high-authority sources directly contradicted - present both positions}
- **Inconclusive**: {where agents couldn't determine answers despite searching}
- **Low confidence**: {single source or weak agreement}
### Research Progression (for multi-wave)
| Wave | Focus | Agents | Key Contribution |
|------|-------|--------|------------------|
| 1 | Initial investigation | {N} | {what this wave established} |
| 2 | {Gap focus} | {N} | {what this wave resolved} |
| ... | ... | ... | ... |
### Gaps & Limitations
- {What couldn't be definitively answered despite multi-wave investigation}
- {Areas where more research would help}
- {Potential biases in available sources}
- {Gaps intentionally not pursued (minor priority)}
### Source Summary
| Source | Authority | Date | Used For | Wave |
|--------|-----------|------|----------|------|
| {url} | High/Med | {date} | {finding} | 1 |
...
---
Orchestration file: {path}
Research completed: {timestamp}
For quick (single-fact) queries, skip orchestration:
**Thoroughness**: quick — [reason]Task("vibe-workflow:web-researcher", "{query}")| Principle | Rule |
|---|---|
| Thoroughness first | Determine level before any research |
| Todos with write-to-log | Each collection gets a todo, followed by a write-to-orchestration-file todo |
| Memento writes | Write to orchestration file after EACH phase/agent - external memory |
| Parallel execution | Launch multiple agents simultaneously when possible |
| Cross-reference | Compare findings across agents before synthesizing |
| Gap evaluation | Classify gaps after each wave (critical/significant/minor) |
| Wave iteration | Continue waves until satisficed OR diminishing returns |
| Context refresh | Read full orchestration file BEFORE synthesis - non-negotiable |
| Source preservation | Maintain citations through synthesis |
| Gap honesty | Explicitly state what couldn't be answered despite multi-wave effort |
Memento Pattern Summary:
Query: "Compare the best real-time databases for a collaborative app in 2025"
Thoroughness: thorough — comparison query requiring multi-angle investigation
Decomposition:
Agents launched (parallel):
Output: Synthesized comparison table with recommendations based on use case, backed by cross-referenced sources from all four agents.
Query: "Give me a comprehensive analysis of all the AI coding assistant options in 2025"
Thoroughness: very-thorough — "comprehensive analysis" + "all options" triggers maximum depth
Decomposition (6 orthogonal facets):
Agents launched with explicit boundaries (parallel batch of 4, then 2):
Gap Evaluation (Wave 1):
Wave Decision: CONTINUE — 3 significant gaps remain, Wave 1 was productive (18 findings), research still yielding new information
Focus: Resolve agentic capabilities conflict, deepen enterprise pricing, explore AI code review
Agents launched (3 focused):
Gap Evaluation (Wave 2):
Wave Decision: SATISFICED — No significant gaps remaining, 2 waves complete
Thoroughness: very-thorough | Waves: 2 | Researchers: 9 | Sources: 34 Satisficing: All significant gaps addressed — comprehensive coverage achieved
This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.