Holistic, system-aware planning before implementing non-trivial tasks. Use when the task involves new features, architectural decisions, multi-file changes, unclear requirements, or multiple valid approaches. Triggers on "/plan", "plan this", "design an approach", "let's plan first".
68
83%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
For non-trivial implementation tasks, plan before you code. Treat every change as a system change, not an isolated patch. Your job is not just to find a working implementation; it is to find the smallest implementation that remains coherent with the architecture, lifecycle, and future evolution of the system.
Write your plan to a PLAN.md file in the project root. Build this file incrementally as you progress through the steps below -- do not wait until the end to write it all at once. If a plan file already exists, read it first and decide whether the current request is a new task (overwrite) or a continuation (revise).
Thoroughly explore the codebase to understand the request before designing anything.
Ask the user questions to resolve ambiguities before committing to an approach. This may cover technical implementation, desired system behavior, UI/UX, performance, edge cases, ownership of state, failure handling, or tradeoffs. You may ask multiple rounds, reading more code in between. Do not make large assumptions about user intent.
Based on exploration and user input, design a concrete implementation approach:
Before finalizing the design, explicitly answer these questions:
Before finalizing, review your design against the original request:
Write the final plan to the plan file. The plan should be:
Structure:
Summary: 1-2 sentences on the task and chosen approach
Context: Key findings from exploration -- existing patterns, relevant files, constraints
System Impact: How the change affects source of truth, data flow, lifecycle, and dependent parts of the system
Approach: High-level design decision and why
Changes:
- `path/to/file.ts` - what changes and why
- `path/to/other.ts` - what changes and why
Verification:
- How to test end-to-end
- Relevant test commands
- Edge cases to checkPresent the plan to the user and wait for approval. If the user has feedback, revise accordingly.
Once approved:
411da81
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.