8.3 KiB
description, model
| description | model |
|---|---|
| Batch research and planning for multiple beads with interactive question review | opus |
Beads Batch Research+Plan
This skill automates the common workflow of:
- Running /beads_research in parallel for multiple beads
- Presenting open questions interactively for user input (bead-by-bead)
- Running /beads_plan for all researched beads (plus any spawned from splits)
When to Use
- You have multiple beads ready for work
- You want to research and plan them efficiently before implementation
- You prefer to batch your question-answering rather than context-switching between skills
Phase 1: Selection
-
Get ready beads: Run
bd ready --limit=20to list beads with no blockers -
Filter already-researched beads: For each ready bead, check if it already has research:
ls thoughts/beads-{bead-id}/research.md 2>/dev/nullCategorize beads:
- Needs research: No
research.mdexists - Has research, needs plan:
research.mdexists but noplan.md - Already planned: Both
research.mdandplan.mdexist
- Needs research: No
-
Present selection:
Ready beads available for batch research+plan: NEEDS RESEARCH: - {bead-id}: {title} (type: {type}) - ... HAS RESEARCH (plan only): - {bead-id}: {title} (type: {type}) - ... ALREADY PLANNED (skip): - {bead-id}: {title} Which beads would you like to process? -
Use AskUserQuestion with
multiSelect: true:- Include bead ID and title for each option
- Separate options by category
- Allow selection across categories
Phase 2: Parallel Research
For each selected bead that NEEDS RESEARCH, launch a research subagent.
Subagent Instructions Template
Research bead [BEAD_ID]: [BEAD_TITLE]
1. **Load bead context**:
```bash
bd show [BEAD_ID]
-
Create artifact directory:
mkdir -p thoughts/beads-[BEAD_ID] -
Conduct research following beads_research.md patterns:
- Analyze and decompose the research question
- Spawn parallel sub-agent tasks (codebase-locator, codebase-analyzer, etc.)
- Synthesize findings
-
Write research document to
thoughts/beads-[BEAD_ID]/research.md:- Include frontmatter with metadata
- Document findings with file:line references
- CRITICAL: Include "## Open Questions" section listing any unresolved items
-
Return summary:
- Research status (complete/partial)
- Number of open questions
- Key findings summary (2-3 bullet points)
- List of open questions verbatim
### Launching Subagents
Use `subagent_type: "opus"` for research subagents (matches beads_research model setting).
Launch ALL research subagents in a single message for parallel execution:
<Task calls for each selected bead needing research - all in one message>
### Collecting Results
Wait for ALL research subagents to complete. Collect:
- Bead ID
- Research status
- Open questions list
- Any errors encountered
## Phase 3: Interactive Question Review
Present each bead's open questions sequentially for user input.
### For Each Bead (in order):
1. **Present research summary**:
Bead {N}/{total}: {bead-id} - {title}
Research complete. Key findings:
- {finding 1}
- {finding 2}
Open questions requiring your input:
- {question 1}
- {question 2}
Additionally:
- Should this bead be split into multiple beads? (y/n)
- If split, describe the split:
2. **Collect user responses**:
- Answers to open questions
- Split decision (yes/no)
- If split: new bead titles and how to divide the work
3. **Handle splits**:
If user indicates a split:
```bash
# Create new beads for split work
bd create --title="{split title 1}" --type={type} --priority={priority} \
--description="{description based on user input}"
# Update original bead if scope narrowed
bd update {original-bead-id} --description="{updated description}"
Track new bead IDs for inclusion in planning phase.
- Update research document:
Append user answers to
thoughts/beads-{id}/research.md:## User Clarifications [{timestamp}] Q: {question 1} A: {user answer 1} Q: {question 2} A: {user answer 2} ## Bead Splits {If split: description of split and new bead IDs}
Progress Tracking
After each bead's questions are answered, confirm before moving to next:
Questions answered for {bead-id}. {N-1} beads remaining.
Continue to next bead? (y/n)
Beads with No Questions
If a bead's research had no open questions:
## Bead {N}/{total}: {bead-id} - {title}
Research complete with no open questions.
Key findings:
- {finding 1}
- {finding 2}
Should this bead be split? (y/n)
Phase 4: Parallel Planning
After all questions answered, launch planning subagents for all beads.
Beads to Plan
Include:
- Original beads that were researched
- Beads that had existing research (from selection phase)
- New beads spawned from splits
Subagent Instructions Template
Create implementation plan for bead [BEAD_ID]: [BEAD_TITLE]
1. **Load context**:
```bash
bd show [BEAD_ID]
-
Read research (it exists and has user clarifications): Read
thoughts/beads-[BEAD_ID]/research.mdFULLY -
Create plan following beads_plan.md patterns:
- Context gathering via sub-agents
- Design approach based on research findings and user clarifications
- Skip interactive questions - they were already answered in research review
-
Write plan to
thoughts/beads-[BEAD_ID]/plan.md:- Full plan structure with phases
- Success criteria (automated and manual)
- References to research document
-
Update bead:
bd update [BEAD_ID] --notes="Plan created: thoughts/beads-[BEAD_ID]/plan.md" -
Return summary:
- Plan status (complete/failed)
- Number of phases
- Estimated complexity (small/medium/large)
- Any issues encountered
### Launching Subagents
Use `subagent_type: "opus"` for planning subagents (matches beads_plan model setting).
Launch ALL planning subagents in a single message:
<Task calls for each bead to plan - all in one message>
### Handling Beads Without Research
For beads that had existing research but user didn't review questions:
- Planning subagent reads existing research
- If research has unresolved open questions, subagent should flag this in its return
## Phase 5: Summary
After all planning completes, present final summary.
### Summary Format
Batch Research+Plan Complete
Successfully Processed:
| Bead | Title | Research | Plan | Phases | Complexity |
|---|---|---|---|---|---|
| {id} | {title} | Complete | Complete | 3 | medium |
| {id} | {title} | Complete | Complete | 2 | small |
New Beads (from splits):
| Bead | Title | Parent | Status |
|---|---|---|---|
| {new-id} | {title} | {parent-id} | Planned |
Failed:
| Bead | Title | Phase Failed | Error |
|---|---|---|---|
| {id} | {title} | Research | Timeout |
Next Steps:
- Review plans at
thoughts/beads-{id}/plan.md - Run
/parallel_beadsto implement all planned beads - Or run
/beads_implement {id}for individual implementation
Artifacts Created:
- Research: thoughts/beads-{id}/research.md (x{N} files)
- Plans: thoughts/beads-{id}/plan.md (x{N} files)
## Error Handling
### Research Subagent Failure
- Log the failure with bead ID and error
- Continue with other beads
- Exclude failed beads from question review and planning
- Report in final summary
### Planning Subagent Failure
- Log the failure with bead ID and error
- Research still valid - can retry planning manually
- Report in final summary
### User Cancellation During Question Review
- Save progress to bead notes
- Report which beads were completed
- User can resume with remaining beads in new session
### Split Bead Creation Failure
- Report error but continue with original bead
- User can manually create split beads later
## Resource Limits
- Maximum concurrent research subagents: 5
- Maximum concurrent planning subagents: 5
- If more beads selected, process in batches
## Notes
- This skill is designed for the "research+plan before implementation" workflow
- Pairs well with `/parallel_beads` for subsequent implementation
- Run `/reconcile_beads` after implementation PRs merge