From rp1-base
Orchestrates autonomous deep research on codebases and technical topics via map-reduce explorer architecture with sub-agents, generating structured reports.
npx claudepluginhub rp1-run/rp1This skill is limited to using the following tools:
Extract these parameters from the user's input:
Orchestrates autonomous deep research on codebases and technical topics using map-reduce explorer architecture for structured report output.
Launches agent team for parallel deep research on codebases, architectures, or technical topics, building causal models (what exists, why, what breaks) over surface coverage. Use for multi-file investigations or complex questions.
Share bugs, ideas, or general feedback.
Extract these parameters from the user's input:
| Parameter | Required | Default | Description |
|---|---|---|---|
RESEARCH_TOPIC | Yes | - | The user's research topic or questions (freeform text) |
Environment values (resolve via shell):
RP1_ROOT: !rp1 agent-tools rp1-root-dir (extract data.root from JSON response)You are executing the Deep Research workflow. You coordinate autonomous research through a map-reduce architecture: clarify intent, spawn parallel explorers, synthesize findings, and delegate report generation.
CRITICAL: Commands CAN spawn agents. You will spawn research-explorer agents for exploration and research-reporter for report generation. Do NOT delegate orchestration to another agent.
stateDiagram-v2
[*] --> clarify
clarify --> plan : intent_clear
plan --> explore : plan_ready
explore --> synthesize : exploration_complete
synthesize --> report : synthesis_complete
report --> [*] : done
On each phase transition, report via:
rp1 agent-tools work update \
--project "$(pwd)" \
--feature {FEATURE_ID} \
--workflow deep-research \
--run-id {RUN_ID} \
--step {CURRENT_STATE} \
--status started
RUN_ID as a UUID at workflow start; derive FEATURE_ID by slugifying the research topic (e.g., "auth-flow-analysis")State Progression Protocol:
--step with --status started when you enter that state→ [*] transitions): report --status completed when the step's work finishesExample sequence:
--step clarify --status started # entering clarify phase
--step plan --status started # intent clear, entering plan phase
--step explore --status started # plan ready, entering explore phase
--step synthesize --status started # exploration done, entering synthesize phase
--step report --status started # synthesis done, entering report phase
--step report --status completed # report work finished, workflow done
Goal: Understand exactly what the user wants to research before spawning explorers.
Analyze the RESEARCH_TOPIC to identify:
Use AskUserQuestion if RESEARCH_TOPIC is ambiguous about:
Clear requests (skip clarification):
Ambiguous requests (ask clarification):
After clarification (or immediately if clear), construct:
RESEARCH_INTENT:
- mode: single-project | multi-project | technical-investigation
- primary_questions: [list of specific questions to answer]
- target_projects: [list of project paths, or ["."] for current]
- focus_areas: [architecture | patterns | implementation | integration | performance]
- depth: overview | standard | deep
Goal: Define explorer assignments for parallel execution.
Based on RESEARCH_INTENT:
Single-project mode:
Multi-project mode:
Technical investigation mode:
For each explorer, prepare:
CRITICAL: Spawn ALL explorers in a SINGLE message with PARALLEL Task tool calls.
For each explorer:
{% dispatch_agent "rp1-base:research-explorer" %} Explore and return JSON findings. EXPLORATION_TARGET: {target} QUESTIONS: {stringify(questions)} EXPLORATION_TYPE: {type} KB_PATH: {kb_path}
Return structured JSON per output contract. {% enddispatch_agent %}
Naming convention: explorer-{n} where n is 1, 2, 3...
Wait for ALL explorers to complete before proceeding.
CRITICAL: Use extended thinking for this entire phase.
Parse JSON output from each explorer:
Handle failures:
Combine findings from all explorers:
Using extended thinking, analyze merged findings to:
Based on synthesis, create actionable recommendations:
Identify diagrams that would aid understanding:
For each diagram, specify:
Construct the synthesis data JSON for the reporter:
{
"topic": "<research topic>",
"scope": "single-project | multi-project | technical-investigation",
"projects_analyzed": ["<path1>", "<path2>"],
"research_questions": ["<q1>", "<q2>"],
"executive_summary": "<1-2 paragraph summary>",
"findings": [
{
"id": "F-001",
"category": "<category>",
"title": "<title>",
"description": "<description>",
"confidence": "high | medium | low",
"evidence": [...]
}
],
"comparative_analysis": {
"aspects": ["<aspect1>", "<aspect2>"],
"comparison_table": [
{"aspect": "<aspect>", "project_a": "<approach>", "project_b": "<approach>", "analysis": "<comparison>"}
]
},
"recommendations": [
{
"id": "R-001",
"action": "<action>",
"priority": "high | medium | low",
"rationale": "<why>",
"implementation_notes": "<how>"
}
],
"diagram_specs": [
{
"id": "D-001",
"title": "<title>",
"type": "flowchart | sequence | er | class",
"description": "<what to visualize>",
"elements": ["<element descriptions>"]
}
],
"sources": {
"codebase": ["<file:line> - <description>"],
"external": ["<URL> - <description>"]
},
"metadata": {
"explorers_spawned": "<count>",
"kb_status": {"<project>": {"available": true, "files_loaded": ["..."]}},
"files_explored": "<total_count>",
"web_searches": "<total_count>"
}
}
The reporter handles output file naming (slugification, directory creation, deduplication).
{% dispatch_agent "rp1-base:research-reporter" %} Generate research report. SYNTHESIS_DATA: {stringify(synthesis_data)} RP1_ROOT: {{$RP1_ROOT}} REPORT_TYPE: {standard | comparative}
Return JSON with report status and path. {% enddispatch_agent %}
Parse JSON output:
Handle failure:
After extracting report_path, register it in the artifact database:
rp1 agent-tools work artifact \
--project "$(pwd)" \
--feature {FEATURE_ID} \
--run-id {RUN_ID} \
--path {report_path}
Output a concise summary to the user:
## Research Complete
**Topic**: {research_topic}
**Scope**: {scope}
**Projects Analyzed**: {project_list}
### Key Findings
{2-3 sentence summary of most important findings}
### Recommendations
- {Top recommendation 1}
- {Top recommendation 2}
### Report
Full report saved to: `{report_path}`
**Methodology**:
- Explorers spawned: {count}
- KB files loaded: {list or "none available"}
- Files explored: {count}
- Web searches: {count}
- Diagrams generated: {count}
EXECUTE IMMEDIATELY:
If blocked:
CRITICAL - Keep Output Focused:
| Error | Action |
|---|---|
| Ambiguous topic | Ask ONE clarifying question |
| No target projects | Default to current directory |
| Explorer JSON invalid | Skip explorer, continue if >50% succeed |
| >50% explorers fail | Abort with clear error message |
| Reporter fails | Output synthesis summary directly to user |
| No findings | Report "no significant findings" with methodology |