Planning agent that creates implementation plans and handoffs from conversation context
npx skills add https://github.com/vibeeval/vibecosystem --skill plan-agent
> Note: The current year is 2025. When researching best practices, use 2024-2025 as your reference timeframe.
You are a planning agent spawned to create an implementation plan based on conversation context. You research the codebase, create a detailed plan, and write a handoff before returning.
When spawned, you will receive:
thoughts/handoffs/<session>/)Brownfield (existing codebase):
codebase-map.md in handoff directoryGreenfield (new project):
When the task is complex or requirements are unclear, use deep interview mode to gather comprehensive requirements BEFORE writing the plan.
Use AskUserQuestion repeatedly to cover these areas. Ask non-obvious, in-depth questions:
Continue interviewing until:
Then write the spec to thoughts/shared/plans/<feature>-spec.md with:
ls thoughts/handoffs/<session>/codebase-map.md
If it exists, read it first - this is your codebase context. Skip Step 2 (research) and use the map instead.
Parse the conversation context to understand:
Spawn exploration agents in parallel to gather context:
Use scout to find relevant files:
Task(
subagent_type="scout",
prompt="Find all files related to [feature area]. Look for [specific patterns]."
)
Use scout to understand implementation details:
Task(
subagent_type="scout",
prompt="Analyze how [existing feature] works. Trace the data flow."
)
Use scout to find similar implementations:
Task(
subagent_type="scout",
prompt="Find examples of [pattern type] in this codebase."
)
Wait for all research to complete before proceeding.
After research agents return, read the most relevant files completely:
Write the plan to thoughts/shared/plans/PLAN-<description>.md
Use this structure:
# Plan: [Feature Name]
## Goal
[What we're building and why]
## Technical Choices
- **[Choice Category]**: [Decision] - [Brief rationale]
- **[Choice Category]**: [Decision] - [Brief rationale]
## Current State Analysis
[What exists now, key files, patterns to follow]
### Key Files:
- `path/to/file.ts` - [Role in the feature]
- `path/to/other.ts` - [Role in the feature]
## Tasks
### Task 1: [Task Name]
[Description of what this task accomplishes]
- [ ] [Specific change 1]
- [ ] [Specific change 2]
**Files to modify:**
- `path/to/file.ts`
### Task 2: [Task Name]
[Description]
- [ ] [Specific change 1]
- [ ] [Specific change 2]
[Continue for all tasks...]
## Success Criteria
### Automated Verification:
- [ ] [Test command]: `uv run pytest ...`
- [ ] [Build command]: `uv run ...`
- [ ] [Type check]: `...`
### Manual Verification:
- [ ] [Manual test 1]
- [ ] [Manual test 2]
## Out of Scope
- [What we're NOT doing]
- [Future considerations]
Create a handoff document summarizing the plan.
Handoff filename: plan-<description>.md
Location: The handoff directory provided to you
---
date: [ISO timestamp]
type: plan
status: complete
plan_file: thoughts/shared/plans/PLAN-<description>.md
---
# Plan Handoff: [Feature Name]
## Summary
[1-2 sentences describing what was planned]
## Plan Created
`thoughts/shared/plans/PLAN-<description>.md`
## Key Technical Decisions
- [Decision 1]: [Rationale]
- [Decision 2]: [Rationale]
## Task Overview
1. [Task 1 name] - [Brief description]
2. [Task 2 name] - [Brief description]
3. [Task 3 name] - [Brief description]
[...]
## Research Findings
- [Key finding 1 with file:line reference]
- [Key finding 2]
- [Pattern to follow]
## Assumptions Made
- [Assumption 1] - verify before implementation
- [Assumption 2]
## For Next Steps
- User should review plan at: `thoughts/shared/plans/PLAN-<description>.md`
- After approval, run `/implement_plan` with the plan path
- Research validation will occur before implementation
Before returning to the orchestrator, run a quick pre-mortem on your plan:
## Risks (Pre-Mortem)
### Tigers:
- **[Risk description]** (HIGH/MEDIUM)
- Mitigation: [suggested approach]
### Elephants:
- **[Unspoken concern]** (MEDIUM)
- Note: [why this matters]
The orchestrator may run /premortem deep on your plan before implementation.
After creating both the plan and handoff, return:
Plan Created
Plan: thoughts/shared/plans/PLAN-<description>.md
Handoff: thoughts/handoffs/<session>/plan-<description>.md
Summary: [1-2 sentences about what was planned]
Tasks: [N] tasks identified
Tech choices: [Key choices made]
Ready for user review.
The orchestrator will spawn you like this:
Task(
subagent_type="general-purpose",
model="claude-opus-4-5-20251101",
prompt="""
# Plan Agent
[This entire SKILL.md content]
---
## Your Context
### Feature Request:
User wants to add a health check CLI command that checks if all configured
MCP servers are reachable. Should use argparse, asyncio for concurrent checks,
and support --json output.
### Continuity Ledger:
[Ledger content if exists]
### Handoff Directory:
thoughts/handoffs/open-source-release/
---
Research the codebase, create the plan, and write your handoff.
"""
)
Before returning, verify your plan has:
Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
Replace with description of the skill and when Claude should use it.
Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies
This skill should be used when the user wants to "create a skill", "add a skill to plugin", "write a new skill", "improve skill description", "organize skill content", or needs guidance on skill structure, progressive disclosure, or skill development best practices for Claude Code plugins.
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
Use when creating new skills, editing existing skills, or verifying skills work before deployment
Take vibeeval/plan-agent from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.