Research Resume Skill
Resume work on a research plan. Handles three states: spawning agents, checking progress, and synthesizing findings.
Process
- •
Scan for research plans:
- •Look for
.gumbo/research/NNNN-*/research-plan.mdfiles (exclude.gumbo/research/archive/) - •A research plan is active if its
.research-state.jsonhasstatusother than"complete"or"archived" - •If no state file exists, treat as active if the research-plan.md exists
- •Look for
- •
Handle different scenarios:
No active research found:
codeNo active research plans found in `.gumbo/research/`. To create a new research plan, use `/research:create <topic description>`.
Multiple active research plans: List all and ask user to choose:
codeFound multiple active research plans: 1. `.gumbo/research/0001-edge-routing/` - Status: in_progress (3/5 questions complete) 2. `.gumbo/research/0002-layout-algo/` - Status: planned (not started) Which research plan would you like to resume?
Single plan found: Proceed to state-based handling below.
- •
Read
.research-state.jsonand handle based on status:
State: planned (agents not yet spawned)
- •Display the research plan summary
- •Ask user to confirm they want to start the research
- •Spawn parallel subagents using the Task tool:
- •Use
subagent_type=Explorefor codebase investigation questions - •Use
subagent_type=general-purposefor questions requiring web research or multi-source analysis - •Launch all agents in a single message with multiple Task tool calls for true parallelism
- •Each agent's prompt should include:
- •The specific question to investigate
- •The where/what/how/why framework from the research plan
- •The sources to consult
- •Instructions to write findings to the output file using the findings template
- •The full path to the output file:
.gumbo/research/NNNN-topic/qN-filename.md
- •Run agents in the background using
run_in_background: trueso they execute in parallel
- •Use
- •Collect agent IDs from all Task results
- •Update
.research-state.json:json{ "status": "in_progress", "updated_at": "...", "agent_ids": ["agent-1-id", "agent-2-id", "agent-3-id"], ... } - •Update
research-plan.mdstatus toIN PROGRESSand update the Expected Outputs table statuses - •Display:
code
**Research started:** `.gumbo/research/NNNN-topic-name/` **Agents spawned:** N parallel investigations **Agent IDs:** `id1`, `id2`, `id3` Agents are running in the background. Run `/research:resume` to check progress and synthesize findings when complete.
State: in_progress (agents spawned, awaiting completion)
- •
Check each agent's output file — if the file exists and has content, that question is complete
- •
Read completed findings files to verify they have substantive content
- •
Update
research-plan.mdExpected Outputs table with current status - •
Display progress:
code**Research progress:** `.gumbo/research/NNNN-topic-name/` **Questions:** X/N complete **Complete:** - Q1: [Title] -> `q1-file.md` - Q3: [Title] -> `q3-file.md` **Pending:** - Q2: [Title] -> `q2-file.md` (agent: `id2`)
- •
If all questions complete, proceed to synthesis (see below)
- •
If some are pending, offer to:
- •Wait and check again later (
/research:resume) - •Proceed to partial synthesis with available findings
- •Re-spawn failed agents
- •Wait and check again later (
State: in_progress with all questions complete -> Synthesis
- •
Read all findings files
- •
Synthesize findings into
synthesis.md:markdown# Research Synthesis: Topic Name ## Summary [3-5 sentence executive summary of all findings] ## Key Findings ### [Finding 1 title] [Cross-cutting finding that draws from multiple questions] ### [Finding 2 title] [Another cross-cutting finding] ## Recommendations 1. **[Recommendation]** — [Rationale based on findings] 2. **[Recommendation]** — [Rationale] ## Where/What/How/Why Summary | Aspect | Key Points | |--------|------------| | **Where** | [Key locations/sources identified] | | **What** | [Core facts discovered] | | **How** | [Key mechanisms understood] | | **Why** | [Design rationale and tradeoffs] | ## Open Questions - [Questions that emerged and may warrant deeper research] ## Next Steps - [ ] [Suggested follow-up action] - [ ] [Suggested follow-up action] ## Source Files | File | Question | |------|----------| | `q1-file.md` | Q1: Title | | `q2-file.md` | Q2: Title |
- •
Update
.research-state.json:json{ "status": "synthesized", "updated_at": "...", "synthesis_agent_id": null, "last_session_notes": "Synthesis complete. N findings, M recommendations.", ... }Note:
synthesis_agent_idis null when synthesis is done inline. Set it to an agent ID if a separate agent performed synthesis. - •
Update
research-plan.mdstatus toSYNTHESIZEDand mark synthesis as complete in Expected Outputs - •
Display:
code**Research synthesized:** `.gumbo/research/NNNN-topic-name/` **Findings:** N questions answered **Synthesis:** `synthesis.md` **Key findings:** - [Finding 1] - [Finding 2] **Recommendations:** - [Recommendation 1] - [Recommendation 2] To create an implementation plan based on this research, run `/plan:create` and reference `.gumbo/research/NNNN-topic-name/`. To archive this research, run `/research:archive NNNN`.
State: synthesized (synthesis complete)
- •Display the synthesis summary
- •Offer options:
- •Create a deeper investigation on a subtopic (hierarchical research)
- •Create an implementation plan based on findings
- •Archive the research
Deeper Investigation (Hierarchical Research)
If the user wants to investigate a subtopic further:
- •Create
.gumbo/research/NNNN-topic/subtopic-name/subdirectory - •Create a new
research-plan.mdand.research-state.jsoninside it - •The parent research's synthesis should note the child investigation
- •Follow the same create/resume lifecycle for the child
Session Notes
Before ending any session, update .research-state.json with:
- •
updated_at: current UTC timestamp - •
last_session_notes: summary of what happened and what to do next