5-phase-workflow 1.4.1 → 1.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/install.js +2 -1
- package/package.json +1 -1
- package/src/commands/5/plan-feature.md +84 -286
- package/src/commands/5/plan-implementation.md +87 -213
- package/src/commands/5/review-code.md +134 -494
- package/src/commands/5/update.md +17 -0
- package/src/hooks/check-updates.js +8 -11
- package/src/hooks/plan-guard.js +103 -0
- package/src/hooks/statusline.js +28 -3
- package/src/settings.json +12 -0
|
@@ -1,67 +1,78 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: 5:plan-implementation
|
|
3
3
|
description: Creates an implementation plan from a feature spec. Phase 2 of the 5-phase workflow.
|
|
4
|
-
allowed-tools:
|
|
4
|
+
allowed-tools: Read, Write, Task, AskUserQuestion
|
|
5
5
|
context: fork
|
|
6
6
|
user-invocable: true
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
+
<role>
|
|
10
|
+
You are an Implementation Planner. You create implementation plans.
|
|
11
|
+
You do NOT implement. You write NO code.
|
|
12
|
+
You spawn ONLY Explore agents (subagent_type=Explore).
|
|
13
|
+
You write ONLY to .5/features/{name}/plan.md.
|
|
14
|
+
After creating the plan, you are DONE.
|
|
15
|
+
</role>
|
|
16
|
+
|
|
9
17
|
# Plan Implementation (Phase 2)
|
|
10
18
|
|
|
11
|
-
## Prerequisites
|
|
19
|
+
## Prerequisites
|
|
12
20
|
|
|
13
|
-
|
|
21
|
+
If the feature argument is `CONFIGURE`, skip this check — the CONFIGURE workflow creates the config file.
|
|
14
22
|
|
|
15
|
-
|
|
23
|
+
For all other features: Read `.claude/.5/config.json`. If the file does not exist, STOP immediately and tell the user:
|
|
16
24
|
|
|
17
|
-
|
|
25
|
+
"Configuration not found. Please run `/5:configure` first to set up your project."
|
|
18
26
|
|
|
19
|
-
|
|
20
|
-
if [ ! -f ".claude/.5/config.json" ]; then
|
|
21
|
-
echo "❌ Configuration not found"
|
|
22
|
-
echo ""
|
|
23
|
-
echo "Please run /5:configure first to set up your project."
|
|
24
|
-
echo ""
|
|
25
|
-
echo "The configure command will:"
|
|
26
|
-
echo " • Detect your project type and build commands"
|
|
27
|
-
echo " • Set up ticket tracking conventions"
|
|
28
|
-
echo " • Generate documentation (CLAUDE.md)"
|
|
29
|
-
echo " • Create project-specific skills"
|
|
30
|
-
exit 1
|
|
31
|
-
fi
|
|
32
|
-
```
|
|
27
|
+
Do NOT proceed without configuration.
|
|
33
28
|
|
|
34
|
-
|
|
29
|
+
## Example Workflow
|
|
35
30
|
|
|
36
|
-
|
|
31
|
+
1. User runs `/5:plan-implementation PROJ-1234-add-emergency-schedule`
|
|
32
|
+
2. Agent reads `.5/features/PROJ-1234-add-emergency-schedule/feature.md`
|
|
33
|
+
3. Agent spawns Explore sub-agent for codebase scan
|
|
34
|
+
4. Sub-agent returns: project structure, naming conventions, pattern files
|
|
35
|
+
5. Agent asks 2-3 technical questions (one at a time)
|
|
36
|
+
6. Agent creates `.5/features/PROJ-1234-add-emergency-schedule/plan.md`
|
|
37
|
+
7. Agent outputs: "Plan created. Next: /clear then /5:implement-feature"
|
|
37
38
|
|
|
38
|
-
##
|
|
39
|
+
## Example Plan
|
|
39
40
|
|
|
40
|
-
|
|
41
|
+
```markdown
|
|
42
|
+
---
|
|
43
|
+
ticket: PROJ-1234
|
|
44
|
+
feature: PROJ-1234-add-emergency-schedule
|
|
45
|
+
created: 2026-01-28T10:00:00Z
|
|
46
|
+
---
|
|
41
47
|
|
|
42
|
-
|
|
43
|
-
- You read ONLY `.5/{feature-name}/feature.md` using Read tool
|
|
44
|
-
- You spawn a read-only Explore agent to scan the codebase
|
|
45
|
-
- You receive findings from the sub-agent
|
|
46
|
-
- You ask 2-3 technical questions
|
|
47
|
-
- You write ONLY `.5/{feature-name}/plan.md` using Write tool
|
|
48
|
+
# Implementation Plan: PROJ-1234
|
|
48
49
|
|
|
49
|
-
|
|
50
|
+
Add emergency schedule tracking to products with date validation.
|
|
50
51
|
|
|
51
|
-
|
|
52
|
+
## Components
|
|
52
53
|
|
|
53
|
-
|
|
54
|
+
| Step | Component | Action | File | Description | Complexity |
|
|
55
|
+
|------|-----------|--------|------|-------------|------------|
|
|
56
|
+
| 1 | Schedule model | create | src/models/Schedule.ts | Schedule entity with name, startDate, endDate, isEmergency | simple |
|
|
57
|
+
| 1 | Schedule types | create | src/types/schedule.ts | TypeScript interfaces for schedule data | simple |
|
|
58
|
+
| 2 | Schedule service | create | src/services/ScheduleService.ts | CRUD operations with date validation (endDate > startDate) | moderate |
|
|
59
|
+
| 2 | Schedule repository | create | src/repositories/ScheduleRepository.ts | Database access for schedules | simple |
|
|
60
|
+
| 3 | Schedule controller | create | src/controllers/ScheduleController.ts | REST endpoints: GET/POST/DELETE /api/schedules | moderate |
|
|
61
|
+
| 3 | Register routes | modify | src/routes/index.ts | Add schedule routes to router | simple |
|
|
62
|
+
| 4 | Schedule service tests | create | src/services/__tests__/ScheduleService.test.ts | Test validation and CRUD | moderate |
|
|
54
63
|
|
|
55
|
-
|
|
64
|
+
## Implementation Notes
|
|
56
65
|
|
|
57
|
-
|
|
66
|
+
- Follow the pattern from src/services/UserService.ts for the service
|
|
67
|
+
- Follow the pattern from src/controllers/UserController.ts for the controller
|
|
68
|
+
- Date validation: endDate must be after startDate, throw ValidationError if not
|
|
69
|
+
- Emergency schedules have `isEmergency: true` flag
|
|
58
70
|
|
|
59
|
-
##
|
|
71
|
+
## Verification
|
|
60
72
|
|
|
61
|
-
-
|
|
62
|
-
-
|
|
63
|
-
|
|
64
|
-
- ❌ **Do NOT write complete code in the plan** - Only describe WHAT to build
|
|
73
|
+
- Build: npm run build
|
|
74
|
+
- Test: npm test
|
|
75
|
+
```
|
|
65
76
|
|
|
66
77
|
## Process
|
|
67
78
|
|
|
@@ -69,21 +80,13 @@ After creating the plan, tell the user to run `/5:implement-feature`.
|
|
|
69
80
|
|
|
70
81
|
Read `.5/features/{feature-name}/feature.md` (where `{feature-name}` is the argument provided).
|
|
71
82
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
Extract:
|
|
75
|
-
- Ticket ID
|
|
76
|
-
- Requirements (functional and non-functional)
|
|
77
|
-
- Acceptance criteria
|
|
78
|
-
- Affected components mentioned
|
|
83
|
+
Extract: Ticket ID, requirements (functional and non-functional), acceptance criteria, affected components.
|
|
79
84
|
|
|
80
85
|
If the file doesn't exist, tell the user to run `/5:plan-feature` first.
|
|
81
86
|
|
|
82
|
-
### Step 2: Spawn
|
|
83
|
-
|
|
84
|
-
**CRITICAL: Delegate ALL codebase exploration to a sub-agent.**
|
|
87
|
+
### Step 2: Spawn Explore Agent for Codebase Scan
|
|
85
88
|
|
|
86
|
-
Spawn a Task with `subagent_type=Explore
|
|
89
|
+
Spawn a Task with `subagent_type=Explore`:
|
|
87
90
|
|
|
88
91
|
```
|
|
89
92
|
Quick codebase scan for implementation planning.
|
|
@@ -98,79 +101,59 @@ Quick codebase scan for implementation planning.
|
|
|
98
101
|
4. Find example files that can serve as patterns for new components
|
|
99
102
|
|
|
100
103
|
**Report Format:**
|
|
101
|
-
Return a structured report with:
|
|
102
104
|
- Project structure (key directories)
|
|
103
105
|
- Naming conventions observed
|
|
104
|
-
- Pattern files for each component type
|
|
106
|
+
- Pattern files for each component type
|
|
105
107
|
- Where new files should be placed
|
|
106
108
|
|
|
107
|
-
**IMPORTANT:**
|
|
109
|
+
**IMPORTANT:** Quick scan, not deep analysis. Focus on structure and patterns.
|
|
108
110
|
**READ-ONLY:** Only use Read, Glob, and Grep tools.
|
|
109
111
|
```
|
|
110
112
|
|
|
111
|
-
|
|
113
|
+
Wait for the sub-agent to return before proceeding.
|
|
112
114
|
|
|
113
|
-
### Step 3: Ask 2-3 Technical Questions (
|
|
114
|
-
|
|
115
|
-
**CRITICAL:** Ask questions ONE AT A TIME. Wait for the user's answer before asking the next question.
|
|
115
|
+
### Step 3: Ask 2-3 Technical Questions (One at a Time)
|
|
116
116
|
|
|
117
117
|
Use AskUserQuestion to clarify:
|
|
118
118
|
- Data layer decisions (if applicable)
|
|
119
119
|
- Key implementation choices
|
|
120
120
|
- Anything unclear from the feature spec
|
|
121
|
-
- Software Architecture
|
|
122
|
-
- Testing behaviour
|
|
123
|
-
|
|
124
|
-
Keep it brief. Don't over-question. Don't ask feature questions already answered in the plan-feature phase.
|
|
125
|
-
|
|
126
|
-
- **ONE question at a time** - wait for answer before next question
|
|
127
|
-
- Do NOT list multiple questions in one message
|
|
128
|
-
- Do NOT skip to creating plan.md before asking your questions
|
|
129
121
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
**When to trigger:**
|
|
135
|
-
- User mentions a specific file as a pattern to follow
|
|
136
|
-
- User asks about a component not in the initial report
|
|
137
|
-
- Understanding a specific pattern is critical for the plan
|
|
122
|
+
**Rules:**
|
|
123
|
+
- ONE question at a time — wait for answer before next
|
|
124
|
+
- Max 3 questions — don't over-question
|
|
125
|
+
- Don't repeat questions already answered in Phase 1
|
|
138
126
|
|
|
139
|
-
**
|
|
127
|
+
**Optional re-exploration:** If user mentions patterns not in the initial scan, spawn a targeted Explore agent:
|
|
140
128
|
|
|
141
129
|
```
|
|
142
130
|
Targeted scan for implementation planning.
|
|
143
|
-
|
|
144
|
-
**
|
|
145
|
-
|
|
146
|
-
**Task:** Find and analyze {specific target} to understand the pattern.
|
|
147
|
-
|
|
148
|
-
**Report:** How this pattern works and how to apply it.
|
|
149
|
-
|
|
150
|
-
**READ-ONLY:** Only use Read, Glob, and Grep tools.
|
|
131
|
+
**Context:** User mentioned {pattern/file/convention}.
|
|
132
|
+
**Task:** Find and analyze {target} to understand the pattern.
|
|
133
|
+
**READ-ONLY.** Only use Read, Glob, and Grep tools.
|
|
151
134
|
```
|
|
152
135
|
|
|
153
136
|
### Step 4: Design Components
|
|
154
137
|
|
|
155
|
-
Based on
|
|
156
|
-
-
|
|
157
|
-
-
|
|
158
|
-
-
|
|
138
|
+
Based on feature spec and codebase scan, identify:
|
|
139
|
+
- Files to create
|
|
140
|
+
- Files to modify
|
|
141
|
+
- Implementation order (dependencies)
|
|
159
142
|
|
|
160
143
|
Group into steps:
|
|
161
144
|
- **Step 1**: Foundation (models, types, interfaces)
|
|
162
145
|
- **Step 2**: Logic (services, business rules)
|
|
163
146
|
- **Step 3**: Integration (controllers, routes, wiring)
|
|
164
|
-
- **Step 4**: Tests (if not
|
|
147
|
+
- **Step 4**: Tests (if not alongside components)
|
|
165
148
|
|
|
166
149
|
Not every feature needs all steps. Use what makes sense.
|
|
167
150
|
|
|
151
|
+
**Parallel execution:** Components in the same step run in parallel. Group independent components together, separate dependent ones into different steps.
|
|
152
|
+
|
|
168
153
|
### Step 5: Write the Plan
|
|
169
154
|
|
|
170
155
|
Create a single file at `.5/features/{feature-name}/plan.md`:
|
|
171
156
|
|
|
172
|
-
**THIS IS THE ONLY FILE YOU MAY WRITE.**
|
|
173
|
-
|
|
174
157
|
```markdown
|
|
175
158
|
---
|
|
176
159
|
ticket: {TICKET-ID}
|
|
@@ -187,36 +170,19 @@ created: {ISO-timestamp}
|
|
|
187
170
|
| Step | Component | Action | File | Description | Complexity |
|
|
188
171
|
|------|-----------|--------|------|-------------|------------|
|
|
189
172
|
| 1 | {name} | create | {path} | {what it does} | simple |
|
|
190
|
-
| 1 | {name} | create | {path} | {what it does} | simple |
|
|
191
|
-
| 2 | {name} | create | {path} | {what it does} | moderate |
|
|
192
173
|
| 2 | {name} | modify | {path} | {what to change} | moderate |
|
|
193
|
-
| 3 | {name} | create | {path} | {what it does} | complex |
|
|
194
174
|
|
|
195
175
|
## Implementation Notes
|
|
196
176
|
|
|
197
|
-
|
|
198
|
-
-
|
|
199
|
-
- {
|
|
200
|
-
- {Integration point to wire up}
|
|
177
|
+
- Follow pattern from {existing-file} for {component-type}
|
|
178
|
+
- {Key business rule}
|
|
179
|
+
- {Integration point}
|
|
201
180
|
|
|
202
181
|
## Complexity Guide
|
|
203
182
|
|
|
204
|
-
**simple**
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
- Adding imports/exports
|
|
208
|
-
- Straightforward CRUD without custom logic
|
|
209
|
-
|
|
210
|
-
**moderate** → Use haiku with sonnet fallback
|
|
211
|
-
- Services with some business logic
|
|
212
|
-
- Files requiring understanding of multiple patterns
|
|
213
|
-
- Modifications to existing files
|
|
214
|
-
|
|
215
|
-
**complex** → Use sonnet (better reasoning)
|
|
216
|
-
- Integration points wiring multiple systems
|
|
217
|
-
- Complex validation or business rules
|
|
218
|
-
- Components requiring architectural decisions
|
|
219
|
-
- Significant refactoring of existing code
|
|
183
|
+
**simple** -> haiku: Pattern-following, type defs, simple CRUD
|
|
184
|
+
**moderate** -> haiku/sonnet: Services with logic, multi-pattern files, modifications
|
|
185
|
+
**complex** -> sonnet: Integration points, complex rules, significant refactoring
|
|
220
186
|
|
|
221
187
|
## Verification
|
|
222
188
|
|
|
@@ -224,113 +190,21 @@ created: {ISO-timestamp}
|
|
|
224
190
|
- Test: {command or "auto"}
|
|
225
191
|
```
|
|
226
192
|
|
|
227
|
-
**Key principle:** The plan describes WHAT to build, not HOW.
|
|
193
|
+
**Key principle:** The plan describes WHAT to build, not HOW. Agents figure out patterns by reading existing code.
|
|
194
|
+
|
|
195
|
+
## PLANNING COMPLETE
|
|
228
196
|
|
|
229
|
-
|
|
197
|
+
After writing plan.md, output exactly:
|
|
230
198
|
|
|
231
|
-
Tell the user:
|
|
232
199
|
```
|
|
233
200
|
Plan created at `.5/features/{feature-name}/plan.md`
|
|
234
201
|
|
|
235
202
|
{N} components across {M} steps.
|
|
236
203
|
|
|
237
|
-
|
|
238
|
-
1.
|
|
239
|
-
2.
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
**🛑 STOP HERE. YOUR JOB IS COMPLETE. DO NOT PROCEED TO IMPLEMENTATION.**
|
|
243
|
-
|
|
244
|
-
## Example Workflow
|
|
245
|
-
|
|
246
|
-
1. User runs: `/5:plan-implementation PROJ-1234-add-emergency-schedule`
|
|
247
|
-
2. Main agent reads: `.5/features/PROJ-1234-add-emergency-schedule/feature.md`
|
|
248
|
-
3. **Main agent spawns Explore sub-agent** for codebase scan
|
|
249
|
-
4. **Sub-agent returns:** Project uses src/{models,services,controllers}, services follow UserService.ts pattern...
|
|
250
|
-
5. Main agent asks: "Should the schedule validation be in the service or a separate validator?"
|
|
251
|
-
6. User: "In the service, like we do in OrderService"
|
|
252
|
-
7. **Main agent spawns targeted Re-Explore** for OrderService pattern
|
|
253
|
-
8. Main agent asks one more question about testing approach
|
|
254
|
-
9. Main agent creates: `.5/features/PROJ-1234-add-emergency-schedule/plan.md`
|
|
255
|
-
10. Main agent tells user the plan is ready and to run `/5:implement-feature`
|
|
256
|
-
|
|
257
|
-
**🛑 COMMAND COMPLETE.**
|
|
258
|
-
|
|
259
|
-
## Example Plan
|
|
260
|
-
|
|
261
|
-
```markdown
|
|
262
|
-
---
|
|
263
|
-
ticket: PROJ-1234
|
|
264
|
-
feature: PROJ-1234-add-emergency-schedule
|
|
265
|
-
created: 2026-01-28T10:00:00Z
|
|
266
|
-
---
|
|
267
|
-
|
|
268
|
-
# Implementation Plan: PROJ-1234
|
|
269
|
-
|
|
270
|
-
Add emergency schedule tracking to products with date validation.
|
|
271
|
-
|
|
272
|
-
## Components
|
|
273
|
-
|
|
274
|
-
| Step | Component | Action | File | Description | Complexity |
|
|
275
|
-
|------|-----------|--------|------|-------------|------------|
|
|
276
|
-
| 1 | Schedule model | create | src/models/Schedule.ts | Schedule entity with name, startDate, endDate, isEmergency | simple |
|
|
277
|
-
| 1 | Schedule types | create | src/types/schedule.ts | TypeScript interfaces for schedule data | simple |
|
|
278
|
-
| 2 | Schedule service | create | src/services/ScheduleService.ts | CRUD operations with date validation (endDate > startDate) | moderate |
|
|
279
|
-
| 2 | Schedule repository | create | src/repositories/ScheduleRepository.ts | Database access for schedules | simple |
|
|
280
|
-
| 3 | Schedule controller | create | src/controllers/ScheduleController.ts | REST endpoints: GET/POST/DELETE /api/schedules | moderate |
|
|
281
|
-
| 3 | Register routes | modify | src/routes/index.ts | Add schedule routes to router | simple |
|
|
282
|
-
| 4 | Schedule service tests | create | src/services/__tests__/ScheduleService.test.ts | Test validation and CRUD | moderate |
|
|
283
|
-
|
|
284
|
-
## Implementation Notes
|
|
285
|
-
|
|
286
|
-
- Follow the pattern from src/services/UserService.ts for the service
|
|
287
|
-
- Follow the pattern from src/controllers/UserController.ts for the controller
|
|
288
|
-
- Date validation: endDate must be after startDate, throw ValidationError if not
|
|
289
|
-
- Emergency schedules have `isEmergency: true` flag
|
|
290
|
-
|
|
291
|
-
## Verification
|
|
292
|
-
|
|
293
|
-
- Build: npm run build
|
|
294
|
-
- Test: npm test
|
|
295
|
-
```
|
|
296
|
-
|
|
297
|
-
## Structuring Steps for Parallel Execution
|
|
298
|
-
|
|
299
|
-
Components in the same step run in parallel. Structure your plan accordingly:
|
|
300
|
-
|
|
301
|
-
**Good - parallel-friendly:**
|
|
302
|
-
```
|
|
303
|
-
| Step | Component | File |
|
|
304
|
-
| 1 | Model | src/models/Schedule.ts | ← parallel (no deps)
|
|
305
|
-
| 1 | Types | src/types/schedule.ts | ← parallel (no deps)
|
|
306
|
-
| 2 | Service | src/services/ScheduleService.ts | ← parallel
|
|
307
|
-
| 2 | Repository | src/repositories/ScheduleRepo.ts | ← parallel
|
|
308
|
-
| 3 | Controller | src/controllers/ScheduleCtrl.ts | ← needs service
|
|
309
|
-
| 3 | Routes | src/routes/index.ts | ← needs controller
|
|
310
|
-
```
|
|
311
|
-
|
|
312
|
-
**Bad - forces sequential:**
|
|
313
|
-
```
|
|
314
|
-
| Step | Component | File |
|
|
315
|
-
| 1 | Model | ... |
|
|
316
|
-
| 2 | Types | ... | ← could be step 1
|
|
317
|
-
| 3 | Service | ... |
|
|
318
|
-
| 4 | Repository | ... | ← could be step 3
|
|
204
|
+
Next steps:
|
|
205
|
+
1. Review the plan
|
|
206
|
+
2. /clear to reset context
|
|
207
|
+
3. /5:implement-feature {feature-name}
|
|
319
208
|
```
|
|
320
209
|
|
|
321
|
-
|
|
322
|
-
- Group independent components in the same step
|
|
323
|
-
- Only separate into different steps when there's a real dependency
|
|
324
|
-
- More components per step = more parallelization = faster execution
|
|
325
|
-
|
|
326
|
-
## What NOT To Do
|
|
327
|
-
|
|
328
|
-
- Don't write complete code in the plan
|
|
329
|
-
- Don't spend time on "haiku-ready prompts"
|
|
330
|
-
- Don't create multiple plan files (meta.md, step-N.md, etc.)
|
|
331
|
-
- Don't read source code directly - use Explore sub-agent
|
|
332
|
-
- Don't ask more than 3 questions
|
|
333
|
-
- Don't create unnecessary sequential steps - group independent work together
|
|
334
|
-
- **Don't skip to implementation** - This command ONLY creates the plan
|
|
335
|
-
- **Don't batch questions** - Ask one question at a time
|
|
336
|
-
- **Don't write any file except plan.md** - No source code files
|
|
210
|
+
STOP. You are a planner. Your job is done. Do not implement.
|