Plan Skill
Create an implementation plan from PRODUCT.md with interactive task breakdown.
Overview
This skill creates a task breakdown from PRODUCT.md and gets user approval before proceeding. It's more interactive than /plan-feature - designed for human-guided workflow.
Usage
/plan
Prerequisites
- •
PRODUCT.mdmust exist with feature specification - •Recommended:
CONTEXT.mdfrom/discoverphase
Purpose
Human-guided planning - Present the plan for review and modification.
Break down the feature into small, focused tasks that can be:
- •Implemented independently (where possible)
- •Tested in isolation
- •Reviewed incrementally
Workflow Steps
Step 1: Read Context
Read these files:
- •
PRODUCT.md- Feature specification (required) - •
CONTEXT.md- Decisions from discovery (if exists) - •
CLAUDE.md- Coding standards (if exists) - •Existing codebase structure (if not greenfield)
Step 2: Analyze Requirements
Extract from PRODUCT.md:
- •Feature scope
- •Acceptance criteria
- •Technical constraints
- •Testing requirements
- •Definition of done
Step 3: Create Task Breakdown
Break the feature into tasks following these rules:
Task Size Limits:
- •Max 5 files to create per task
- •Max 8 files to modify per task
- •Max 7 acceptance criteria per task
- •Target complexity score < 5
Task Structure:
{
"id": "T1",
"title": "Short descriptive title",
"description": "What this task accomplishes",
"user_story": "As a [user], I want [goal], so that [benefit]",
"acceptance_criteria": [
"Criterion 1",
"Criterion 2"
],
"files_to_create": ["path/to/new/file.ts"],
"files_to_modify": ["path/to/existing/file.ts"],
"test_files": ["path/to/test.ts"],
"dependencies": [],
"estimated_complexity": "low|medium|high"
}
Step 4: Present Plan to User
Show the plan in a readable format:
## Implementation Plan Based on PRODUCT.md, here are the tasks: ### T1: Create user model and database schema - **Complexity**: Low - **Creates**: src/models/user.ts, src/db/migrations/001_users.sql - **Tests**: tests/models/user.test.ts - **Dependencies**: None ### T2: Implement password hashing service - **Complexity**: Low - **Creates**: src/services/password.ts - **Modifies**: None - **Tests**: tests/services/password.test.ts - **Dependencies**: None ### T3: Build authentication endpoints - **Complexity**: Medium - **Creates**: src/routes/auth.ts - **Modifies**: src/routes/index.ts - **Tests**: tests/routes/auth.test.ts - **Dependencies**: T1, T2 --- **Total**: 3 tasks **Estimated Files**: 5 new, 1 modified Does this plan look correct? Would you like to modify any tasks?
Step 5: Get Approval
Wait for user response:
- •Approve: Save plan and proceed
- •Modify: Adjust tasks as requested
- •Split: Break large tasks into smaller ones
- •Merge: Combine related tasks
- •Reorder: Change task sequence
Step 6: Save Plan
After approval, save to phase_outputs (type=plan):
{
"feature_name": "User Authentication",
"created_at": "2026-01-22T12:00:00Z",
"source": "PRODUCT.md",
"tasks": [
{
"id": "T1",
"title": "...",
...
}
],
"metadata": {
"total_tasks": 3,
"files_to_create": 5,
"files_to_modify": 1,
"approved_by": "user",
"approved_at": "2026-01-22T12:05:00Z"
}
}
Update workflow_state in SurrealDB:
{
"current_phase": 2,
"phase_status": {
"planning": "completed"
}
}
Task Decomposition Guidelines
Good Task Characteristics
- •Focused: Does one thing well
- •Testable: Has clear test criteria
- •Independent: Minimal dependencies
- •Small: Can be implemented in one session
- •Clear: Obvious when it's done
When to Split a Task
- •More than 5 files to create
- •More than 8 files to modify
- •Touches multiple architectural layers
- •Multiple distinct features bundled together
- •Estimated time > 30 minutes
When to Merge Tasks
- •Trivially small (< 5 minutes)
- •Tightly coupled files
- •Same test file covers both
- •Sequential and can't be parallelized
Dependency Management
Tasks should list dependencies explicitly:
{
"id": "T3",
"dependencies": ["T1", "T2"]
}
This ensures:
- •T1 and T2 complete before T3 starts
- •Clear execution order
- •Parallel execution of independent tasks
Key Behaviors
DO
- •Read PRODUCT.md thoroughly before planning
- •Break into small, focused tasks
- •Show the plan for user review
- •Wait for approval before saving
- •Explain rationale for task breakdown
- •Identify dependencies clearly
DON'T
- •Auto-proceed without user approval
- •Create overly large tasks
- •Skip dependency analysis
- •Ignore existing codebase structure
- •Make assumptions about implementation
Output Files
| File | Purpose |
|---|---|
phase_outputs (plan) | Task breakdown and metadata |
workflow_state | Updated workflow state |
State Update
After plan approval:
- •Set
phase_status.planning = "completed" - •Set
current_phase = 2(or 3 if skipping validation) - •Store
planin state
Transition
When plan is approved:
Plan saved to SurrealDB `phase_outputs` (type=plan)
Summary:
- {N} tasks created
- {M} files to create
- {K} files to modify
Next steps:
/task T1 - Start implementing the first task
/status - View progress anytime
Or for full validation:
/validate-plan - Run Cursor + Gemini review on the plan
Example Session
User: /plan Claude: I'll create an implementation plan from PRODUCT.md. Reading PRODUCT.md... ## Implementation Plan Based on the User Authentication feature, here are the tasks: ### T1: Create user model and database schema - **Complexity**: Low - **Creates**: src/models/user.ts, prisma/migrations/001_users.sql - **Tests**: tests/models/user.test.ts - **Dependencies**: None - **Criteria**: User model with id, email, password_hash, created_at ### T2: Implement password hashing service - **Complexity**: Low - **Creates**: src/services/password.ts - **Tests**: tests/services/password.test.ts - **Dependencies**: None - **Criteria**: Hash and verify functions using bcrypt ### T3: Create JWT token service - **Complexity**: Low - **Creates**: src/services/jwt.ts - **Tests**: tests/services/jwt.test.ts - **Dependencies**: None - **Criteria**: Sign and verify JWT tokens ### T4: Build login endpoint - **Complexity**: Medium - **Creates**: src/routes/auth/login.ts - **Modifies**: src/routes/index.ts - **Tests**: tests/routes/auth/login.test.ts - **Dependencies**: T1, T2, T3 - **Criteria**: POST /auth/login, validates credentials, returns JWT ### T5: Build registration endpoint - **Complexity**: Medium - **Creates**: src/routes/auth/register.ts - **Tests**: tests/routes/auth/register.test.ts - **Dependencies**: T1, T2 - **Criteria**: POST /auth/register, creates user, returns JWT ### T6: Add authentication middleware - **Complexity**: Low - **Creates**: src/middleware/auth.ts - **Tests**: tests/middleware/auth.test.ts - **Dependencies**: T3 - **Criteria**: Validates JWT, adds user to request --- **Total**: 6 tasks **Estimated**: 8 new files, 1 modified **Parallel opportunities**: T1, T2, T3 can run in parallel Does this plan look correct? Would you like to: - Approve as-is - Split any tasks - Merge any tasks - Reorder tasks - Add/remove tasks User: Looks good, approve it. Claude: Plan approved and saved to SurrealDB `phase_outputs` (type=plan) Summary: - 6 tasks created - 8 files to create - 1 file to modify Next steps: /task T1 - Start with the user model /status - View progress anytime
Outputs
- •
phase_outputsentries forplanandtask_breakdown.
Error Handling
- •If
PRODUCT.mdis missing or invalid, stop and request a valid spec before planning. - •If task complexity is too high, split tasks before seeking approval.
Related Skills
- •
/discover- Previous step (create PRODUCT.md) - •
/task <id>- Implement individual tasks - •
/validate-plan- Run agent validation on plan (optional) - •
/status- Check progress