Writing Plans
Generate comprehensive, actionable implementation plans before coding.
When to Use
- Multi-step tasks (3+ distinct steps)
- Changes touching multiple files
- New features requiring design decisions
- User explicitly asks for a plan
- Complex refactoring or migrations
Process
Step 1: Announce
Say: “I’m using the writing-plans skill to create an implementation plan.”
Step 2: Understand the Task
- What’s the goal?
- What constraints exist?
- What’s the current state?
- Are there dependencies?
Step 3: Write the Plan
Save to: docs/plans/YYYY-MM-DD-{feature-name}.md
Use the template in assets/plan-template.md as the starting structure.
Plan must include:
- Feature name and goal - One clear sentence
- Architecture approach - 2-3 sentences on the strategy
- Tech stack - What tools/libraries/frameworks
- Exact file paths - Every file that will be created/modified
- Code examples - Complete, not abstract
- Commands - Specific commands with expected outputs
- Verification steps - How to know each step worked
Step 4: Define Atomic Tasks
Each task should take 2-5 minutes. Separate:
- Write test
- Verify test fails
- Implement feature
- Verify test passes
- Commit
Bad: “Add user authentication” Good:
- Create
tests/auth/test_login.pywith login test - Run
pytest tests/auth/test_login.py- verify FAILS - Create
src/auth/login.pywith login function - Run
pytest tests/auth/test_login.py- verify PASSES - Commit: “feat(auth): add login function”
Step 5: Offer Execution Path
After completing the plan:
Ready to execute?
- Option A: I execute the plan now (batch execution with checkpoints)
- Option B: You execute, I guide (pair programming style)
Principles
- DRY - Don’t repeat yourself
- YAGNI - You aren’t gonna need it
- TDD - Write tests first when practical
- Frequent commits - Small, atomic commits
- Assume competence - Don’t over-explain basics
Adapted from obra/superpowers writing-plans skill