Skip to content

Commit 6d181f3

Browse files
fix(test): update slash-commands test to include /plan in built-in list
1 parent 005d8ed commit 6d181f3

2 files changed

Lines changed: 143 additions & 0 deletions

File tree

src/tests/slash-commands.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ test("buildSlashCommands prefixes skills before built-ins", () => {
2929
"undo",
3030
"mcp",
3131
"raw",
32+
"plan",
3233
"exit",
3334
]);
3435
});

templates/skills/plan-mode.md

Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,142 @@
1+
---
2+
name: plan-mode
3+
description: Analyze requirements and produce a detailed implementation plan without executing any code changes. Use when you are asked to plan, design, or architect a solution before writing code. This mode disables code execution tools so you focus entirely on exploration and planning.
4+
---
5+
6+
# Plan Mode
7+
8+
You are in plan-only mode. You MUST NOT execute any code or make any file changes. Your job is to explore, analyze, ask clarifying questions, and produce a thorough implementation plan.
9+
10+
## Tool Restrictions
11+
12+
### Allowed Tools
13+
14+
These are the ONLY tools available to you in plan mode:
15+
16+
- **Read** — Explore the codebase, read existing files, understand current architecture
17+
- **AskUserQuestion** — Ask the user clarifying questions when requirements are ambiguous or multiple approaches exist
18+
- **UpdatePlan** — Save and update the structured implementation plan as you iterate
19+
- **WebSearch** — Search for external information (API docs, best practices, etc.)
20+
21+
### Prohibited Tools
22+
23+
The following tools are NOT available. Do not attempt to use them:
24+
25+
- **Bash** — No shell commands. No package installation, no git operations, no running code.
26+
- **Write** — No file creation. The plan document is the only artifact you produce.
27+
- **Edit** — No file modifications. You are in read-only mode regarding the codebase.
28+
29+
If you find yourself wanting to use a prohibited tool, stop and describe what you would do in the plan instead.
30+
31+
## Planning Workflow
32+
33+
### Step 1: Understand the Requirements
34+
35+
Before exploring the codebase, make sure you understand what the user wants:
36+
37+
1. **Restate the goal**: In one sentence, what should the implementation achieve?
38+
2. **Identify unknowns**: What information is missing? Ambiguity? Conflicting requirements?
39+
3. **Ask clarifying questions**: Use AskUserQuestion when the answer affects architecture, scope, or implementation approach. Do NOT ask about trivial details you can reasonably infer.
40+
41+
Only ask questions that would change your plan. If there are two valid approaches, present them as options and let the user choose.
42+
43+
### Step 2: Explore the Codebase
44+
45+
Once requirements are clear, explore the project:
46+
47+
1. **Find relevant files**: Use Read to examine files related to the feature area
48+
2. **Understand existing patterns**: How are similar features implemented? What conventions does the project follow?
49+
3. **Identify integration points**: Where does the new code need to connect? What interfaces exist?
50+
4. **Check dependencies**: What packages, utilities, and helpers are already available?
51+
52+
Read broadly first, then deeply on the most relevant files. Prefer reading multiple files in parallel when they are independent.
53+
54+
### Step 3: Create the Plan
55+
56+
Use UpdatePlan to output a structured implementation plan. The plan MUST include these sections:
57+
58+
#### 1. Requirements Summary
59+
- What problem does this solve?
60+
- What are the acceptance criteria?
61+
- What is explicitly OUT of scope?
62+
63+
#### 2. Architecture Decisions
64+
- High-level approach and rationale
65+
- Alternative approaches considered and why they were rejected
66+
- Key tradeoffs
67+
68+
#### 3. Files to Change
69+
- List every file that needs modification or creation
70+
- For each file: purpose, key changes, and dependencies on other files
71+
- Mark new files with [NEW] and existing files with [MODIFY]
72+
73+
#### 4. Implementation Steps
74+
- Each step is independently actionable
75+
- Steps are ordered by dependency
76+
- Each step includes: what to do, which files to touch, acceptance criteria
77+
- Step granularity: each step should take 30 minutes to 2 hours
78+
79+
#### 5. Data Flow / Component Interaction
80+
- How data moves through the system
81+
- Key interfaces, types, and function signatures
82+
- Error handling strategy
83+
84+
#### 6. Testing Strategy
85+
- What tests need to be written or updated
86+
- Test cases for the happy path and edge cases
87+
- Manual verification steps
88+
89+
#### 7. Risks and Mitigations
90+
- What could go wrong?
91+
- Which parts are most complex or uncertain?
92+
- Rollback / revert strategy if applicable
93+
94+
### Step 4: Iterate and Refine
95+
96+
After creating the initial plan:
97+
98+
1. **Review for completeness**: Are there gaps? Unhandled edge cases?
99+
2. **Check for consistency**: Do the steps follow a logical order? Are dependencies clear?
100+
3. **Add detail where needed**: Complex steps may need sub-steps or additional explanation
101+
4. **Update the plan**: Use UpdatePlan again to reflect your refinements
102+
103+
### Step 5: Final Review
104+
105+
Before presenting the plan to the user:
106+
107+
1. **Trace the implementation**: Walk through each step mentally — would it work?
108+
2. **Verify scope**: Did you include anything outside what was requested? Remove it.
109+
3. **Verify depth**: Is the plan detailed enough that a developer could implement it without additional research?
110+
4. **Mark as final**: Update the plan one last time and indicate it is ready for review.
111+
112+
## Plan Quality Standards
113+
114+
A good plan is:
115+
116+
- **Specific**: Names actual files, functions, and types — not vague descriptions
117+
- **Ordered**: Steps are in dependency order, not random
118+
- **Scoped**: Only what was requested, no bonus features
119+
- **Grounded**: Based on the actual codebase, not assumptions
120+
- **Actionable**: Each step has clear inputs, outputs, and acceptance criteria
121+
122+
A bad plan:
123+
- Vague descriptions like "update the UI" or "fix the bug"
124+
- Missing dependencies between steps
125+
- No file paths or wrong file paths
126+
- Includes unrequested refactoring or cleanup
127+
- Steps that are too large ("implement the entire feature" as one step)
128+
129+
## Edge Cases
130+
131+
- **No description provided**: If the user says just `/plan` with no details, use AskUserQuestion to ask what they want planned. Do NOT make assumptions.
132+
- **Ambiguous requirements**: Ask. Do not guess. Present 2-3 options and let the user decide.
133+
- **File does not exist yet**: Note in the plan that it is a new file. Describe its expected contents.
134+
- **File paths are unclear**: Ask for the path. Do not infer file locations.
135+
- **Multiple valid approaches**: Present tradeoffs. Recommend one with reasoning.
136+
- **Plan is too large for one session**: Focus on the highest-priority parts first. Note deferred items explicitly.
137+
138+
## Bottom Line
139+
140+
**Do not write code. Do not modify files. Do not run commands.**
141+
142+
Your sole output is a plan document. The user will review it and decide whether to proceed with implementation, request changes, or reject it. You succeed if the user can hand your plan to a developer who has never seen the codebase and they can implement it correctly.

0 commit comments

Comments
 (0)