Deepen Plan: $ARGUMENTS
You are enhancing an existing plan with parallel research agents, skill applications, learnings from prior work, and detailed per-section analysis. The result is a deeply grounded, production-ready plan with concrete implementation details.
Note: The current year is 2026. Use this when searching for recent documentation and best practices.
NEVER CODE! Just research and enhance the plan.
Phase 1: Find Plan
If argument provided:
Look for a plan matching $ARGUMENTS:
ls docs/plans/*${ARGUMENTS}* 2>/dev/null
If no argument:
Find the most recent plan:
ls -lt docs/plans/*.md 2>/dev/null | head -5
If no plans found:
"No plan files found in docs/plans/. Run /plan first to create one."
Then STOP.
Read the plan file.
Phase 2: Parse and Analyze Plan Structure
Read the plan file and extract:
- Overview/Problem Statement
- Proposed Solution sections
- Technical Approach/Architecture
- Implementation phases/steps
- Code examples and file references
- Acceptance criteria
- Any UI/UX components mentioned
- Technologies/frameworks mentioned (Rails, React, Python, TypeScript, etc.)
- Domain areas (data models, APIs, UI, security, performance, etc.)
Create a section manifest:
Section 1: [Title] - [Brief description of what to research]
Section 2: [Title] - [Brief description of what to research]
...
Phase 3: Discover and Apply Available Skills
Dynamically discover all available skills and match them to plan sections. Don't assume what skills exist — discover them at runtime.
Step 1: Discover ALL available skills
# 1. Project-local skills (highest priority)
ls .claude/skills/*/SKILL.md 2>/dev/null
# 2. User's global skills
ls ~/.claude/skills/*/SKILL.md 2>/dev/null
Step 2: For each discovered skill, read its SKILL.md to understand what it does
cat [skill-path]/SKILL.md
Step 3: Match skills to plan content
For each skill discovered:
- Read its SKILL.md description
- Check if any plan sections match the skill's domain
- If there's a match, spawn a sub-agent to apply that skill's knowledge
Step 4: Spawn a sub-agent for EVERY matched skill
For each matched skill:
Task general-purpose: "You have the [skill-name] skill available at [skill-path].
YOUR JOB: Use this skill on the plan.
1. Read the skill: cat [skill-path]/SKILL.md
2. Follow the skill's instructions exactly
3. Apply the skill to this content:
[relevant plan section or full plan]
4. Return the skill's full output
The skill tells you what to do - follow it. Execute the skill completely."
Spawn ALL skill sub-agents in PARALLEL. No limit on skill sub-agents — spawn one for every skill that could possibly be relevant.
Phase 4: Discover and Apply Learnings/Solutions
Check for documented learnings from /compound. These are solved problems stored as markdown files.
Step 1: Find ALL learning markdown files
# Project-level learnings
find docs/solutions -name "*.md" -type f 2>/dev/null
# Global learnings
find ~/.claude/docs/solutions -name "*.md" -type f 2>/dev/null
Step 2: Read frontmatter of each learning to filter
Each learning file has YAML frontmatter with metadata:
---
title: "N+1 Query Fix for Briefs"
category: performance-issues
tags: [activerecord, n-plus-one, includes, eager-loading]
module: Briefs
symptom: "Slow page load, multiple queries in logs"
root_cause: "Missing includes on association"
---
# Read first 20 lines of each learning (frontmatter + summary)
head -20 docs/solutions/**/*.md
Step 3: Filter — only spawn sub-agents for LIKELY relevant learnings
Compare each learning's frontmatter against the plan:
tags:— Do any tags match technologies/patterns in the plan?category:— Is this category relevant?module:— Does the plan touch this module?symptom:/root_cause:— Could this problem occur with the plan?
SKIP learnings that are clearly not applicable. SPAWN sub-agents for learnings that MIGHT apply.
Step 4: Spawn sub-agents for filtered learnings
For each learning that passes the filter:
Task general-purpose: "
LEARNING FILE: [full path to .md file]
1. Read this learning file completely
2. This learning documents a previously solved problem
Check if this learning applies to this plan:
---
[full plan content]
---
If relevant:
- Explain specifically how it applies
- Quote the key insight or solution
- Suggest where/how to incorporate it
If NOT relevant after deeper analysis:
- Say 'Not applicable: [reason]'
"
Spawn sub-agents in PARALLEL for all filtered learnings. These learnings are institutional knowledge — applying them prevents repeating past mistakes.
Phase 5: Per-Section Research Agents
For each major section in the plan, spawn dedicated sub-agents to research improvements.
Explore agents for open-ended research:
Task Explore: "Research best practices, patterns, and real-world examples for: [section topic].
Find:
- Industry standards and conventions
- Performance considerations
- Common pitfalls and how to avoid them
- Documentation and tutorials
Return concrete, actionable recommendations."
Context7 MCP for framework documentation:
For any technologies/frameworks mentioned in the plan:
mcp__plugin_context7_context7__resolve-library-id: Find library ID for [framework]
mcp__plugin_context7_context7__query-docs: Query documentation for specific patterns
WebSearch for current best practices:
Search for recent (2024-2026) articles, blog posts, and documentation on topics in the plan.
Phase 6: Discover and Run Review Agents
Dynamically discover every available review/research agent and run them ALL against the plan.
Step 1: Discover ALL available agents
# Project-local agents
find .claude/agents -name "*.md" 2>/dev/null
# User's global agents
find ~/.claude/agents -name "*.md" 2>/dev/null
Step 2: For each discovered agent, read its description
Read the first few lines of each agent file to understand what it reviews/analyzes.
Step 3: Launch ALL agents in parallel
For EVERY agent discovered, launch a Task in parallel:
Task [agent-name]: "Review this plan using your expertise. Apply all your checks and patterns. Plan content: [full plan content]"
Rules:
- Do NOT filter agents by "relevance" — run them ALL
- Launch ALL agents in a SINGLE message with multiple Task tool calls
- 20, 30, 40 parallel agents is fine — use everything available
- Each agent may catch something others miss
- The goal is MAXIMUM coverage, not efficiency
Also run research agents (best-practices-researcher, framework-docs-researcher, git-history-analyzer, repo-research-analyst, learnings-researcher) for relevant plan sections.
Phase 7: Wait and Synthesize
Wait for ALL parallel agents to complete — skills, learnings, research agents, review agents, everything. Then synthesize all findings.
Collect outputs from ALL sources:
- Skill-based sub-agents — Each skill's full output (code examples, patterns, recommendations)
- Learnings/Solutions sub-agents — Relevant documented learnings from
/compound - Research agents — Best practices, documentation, real-world examples
- Review agents — All feedback from every reviewer (architecture, security, performance, simplicity, etc.)
- Context7 queries — Framework documentation and patterns
- Web searches — Current best practices and articles
For each agent's findings, extract:
- Concrete recommendations (actionable items)
- Code patterns and examples (copy-paste ready)
- Anti-patterns to avoid (warnings)
- Performance considerations (metrics, benchmarks)
- Security considerations (vulnerabilities, mitigations)
- Edge cases discovered (handling strategies)
- Documentation links (references)
- Skill-specific patterns (from matched skills)
- Relevant learnings (past solutions that apply)
Deduplicate and prioritize:
- Merge similar recommendations from multiple agents
- Prioritize by impact (high-value improvements first)
- Flag conflicting advice for human review
- Group by plan section
Phase 8: Enhance Plan Sections
Merge research findings back into the plan, adding depth without changing the original structure.
Enhancement format for each section:
## [Original Section Title]
[Original content preserved]
### Research Insights
**Best Practices:**
- [Concrete recommendation 1]
- [Concrete recommendation 2]
**Performance Considerations:**
- [Optimization opportunity]
- [Benchmark or metric to target]
**Implementation Details:**
```[language]
// Concrete code example from research
Edge Cases:
- [Edge case 1 and how to handle]
- [Edge case 2 and how to handle]
References:
- [Documentation URL 1]
- [Documentation URL 2]
## Phase 9: Add Enhancement Summary
At the top of the plan, add:
```markdown
## Enhancement Summary
**Deepened on:** [Date]
**Sections enhanced:** [Count]
**Research agents used:** [List]
### Key Improvements
1. [Major improvement 1]
2. [Major improvement 2]
3. [Major improvement 3]
### New Considerations Discovered
- [Important finding 1]
- [Important finding 2]
Phase 10: Update Plan File
Write the enhanced plan:
- Preserve original filename
- Add
-deepenedsuffix if user prefers a new file - Update any timestamps or metadata
Phase 11: Update Beads Tasks
For each task that gained new detail:
bd update <task-id> --description "<enhanced description with implementation notes and refined acceptance criteria>"
For newly discovered tasks:
bd create "<title>" --type task --priority <P1/P2/P3> --description "<description>"
bd dep add <new-id> <parent-id>
For tasks that are now obsolete:
bd close <task-id> --reason="Obsoleted during plan deepening: <reason>"
bd sync
Quality Checks
Before finalizing:
- All original content preserved
- Research insights clearly marked and attributed
- Code examples are syntactically correct
- Links are valid and relevant
- No contradictions between sections
- Enhancement summary accurately reflects changes
Post-Enhancement Options
After writing the enhanced plan, use the AskUserQuestion tool to present these options:
Question: "Plan deepened at [plan_path]. What would you like to do next?"
Options:
- View diff — Show what was added/changed (
git diff [plan_path]) - Run
/multi-review— Get feedback from reviewers on enhanced plan - Run
/dispatch— Spawn parallel workers to implement - Run
/start-task <id>— Begin implementing a specific task - Deepen further — Run another round of research on specific sections
Example Enhancement
Before (from /plan):
## Technical Approach
Use React Query for data fetching with optimistic updates.
After (from /deepen-plan):
## Technical Approach
Use React Query for data fetching with optimistic updates.
### Research Insights
**Best Practices:**
- Configure `staleTime` and `cacheTime` based on data freshness requirements
- Use `queryKey` factories for consistent cache invalidation
- Implement error boundaries around query-dependent components
**Performance Considerations:**
- Enable `refetchOnWindowFocus: false` for stable data to reduce unnecessary requests
- Use `select` option to transform and memoize data at query level
- Consider `placeholderData` for instant perceived loading
**Implementation Details:**
```typescript
const queryClient = new QueryClient({
defaultOptions: {
queries: {
staleTime: 5 * 60 * 1000,
retry: 2,
refetchOnWindowFocus: false,
},
},
});
Edge Cases:
- Handle race conditions with
cancelQuerieson component unmount - Implement retry logic for transient network failures
- Consider offline support with
persistQueryClient
References:
- https://tanstack.com/query/latest/docs/react/guides/optimistic-updates
- https://tkdodo.eu/blog/practical-react-query
**NEVER CODE! Just research and enhance the plan.**