
Plan Mode
Run system-aware planning before coding non-trivial features, refactors, or architectural changes with an agent.
Install
npx skills add https://github.com/vercel-labs/open-agents --skill plan-modeWhat is this skill?
- Planning doctrine: think broadly, implement narrowly; every change has system implications
- Prefers authoritative, derivable designs over transient client-only state
- Chooses the smallest coherent solution rather than the smallest local patch
- Triggers on /plan, "plan this", "design an approach", and unclear multi-file requirements
- Explicitly for new features, architecture, multi-file changes, and multiple valid approaches
Adoption & trust: 76 installs on skills.sh; 5.6k GitHub stars; 3/3 security scanners passed (skills.sh audits).
Recommended Skills
Grill Memattpocock/skills
Grill With Docsmattpocock/skills
Brainstormingobra/superpowers
Lark Tasklarksuite/cli
Lark Workflow Standup Reportlarksuite/cli
Cavemanjuliusbrussee/blueprint
Journey fit
Primary fit
Planning artifacts naturally surface first in Build PM, but the doctrine applies whenever implementation risk is high—canonical shelf is PM even though triggers span the journey. PM is where specs, task breakdown, and approach selection live before frontend/backend work begins.
Common Questions / FAQ
Is Plan Mode safe to install?
skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.
SKILL.md
READMESKILL.md - Plan Mode
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. ## Planning Doctrine - **Think broadly, implement narrowly.** Analyze the surrounding system before deciding where the change belongs. - **Every change has system implications.** Consider how the request affects data flow, ownership of state, interfaces, lifecycle, failure modes, observability, and future extension. - **Prefer authoritative, derivable designs.** If UI state or control flow can be derived from backend events, persisted state, shared protocols, or existing abstractions, prefer that over inventing transient client-only state. - **Choose the smallest coherent solution.** Do not default to the smallest local patch if it distorts the architecture or adds hidden follow-on complexity. - **Expand scope only when it simplifies the system.** Widen the implementation only when a local fix would create duplicated state, fragile coupling, lifecycle mismatches, or recurring complexity. - **Do not gold-plate.** Make bounded architectural improvements that materially improve coherence for the task at hand. ## Plan File 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). ## Step 1: Explore Thoroughly explore the codebase to understand the request before designing anything. - Read the relevant files and understand existing patterns, architecture, and conventions. - Trace the end-to-end flow, not just the local implementation point. - Identify the current **source of truth**, state ownership, boundaries between subsystems, and any existing invariants. - Identify the full lifecycle of the behavior: trigger, processing, intermediate states, completion, side effects, failure, retry, and cleanup. - Search for similar features and prior art in the codebase. - **Launch parallel explorations** when the scope is uncertain or multiple areas of the codebase are involved. Give each exploration a specific, distinct search focus (e.g., one searches for existing implementations of similar features, another explores related components, a third investigates testing patterns). Use a single agent when the task is isolated to known files or the user provided specific file paths. - Do not start implementing yet. ## Step 2: Clarify 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. ## Step 3: Design Based on exploration and user input, design a concrete implementation approach: - Provide comprehensive background context including filenames, code path traces, and the surrounding system behavior discovered in Step 1. - Treat the request as a system modification, not just a local diff. - Explicitly consider both: - **The most direct implementation** - **The most system-coherent implementation** - Choose the direct implementation only if it does **not** introduce architectural distortion, duplicated state, fragile coupling, lifecycle mismatches, or hidden follow-on complexi