get-shit-done-cc 1.7.1 → 1.9.0

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.
Files changed (44) hide show
  1. package/README.md +104 -0
  2. package/agents/gsd-debugger.md +20 -1
  3. package/agents/gsd-executor.md +30 -0
  4. package/agents/gsd-phase-researcher.md +9 -0
  5. package/agents/gsd-planner.md +41 -0
  6. package/agents/gsd-research-synthesizer.md +9 -0
  7. package/bin/install.js +78 -7
  8. package/commands/gsd/add-todo.md +11 -0
  9. package/commands/gsd/analyze-codebase.md +363 -0
  10. package/commands/gsd/audit-milestone.md +20 -1
  11. package/commands/gsd/check-todos.md +11 -0
  12. package/commands/gsd/debug.md +20 -0
  13. package/commands/gsd/execute-phase.md +40 -5
  14. package/commands/gsd/help.md +118 -0
  15. package/commands/gsd/new-milestone.md +267 -263
  16. package/commands/gsd/new-project.md +116 -10
  17. package/commands/gsd/pause-work.md +11 -0
  18. package/commands/gsd/plan-milestone-gaps.md +11 -0
  19. package/commands/gsd/plan-phase.md +84 -26
  20. package/commands/gsd/progress.md +8 -0
  21. package/commands/gsd/query-intel.md +128 -0
  22. package/commands/gsd/quick.md +23 -0
  23. package/commands/gsd/remove-phase.md +11 -0
  24. package/commands/gsd/research-phase.md +20 -0
  25. package/commands/gsd/set-profile.md +106 -0
  26. package/commands/gsd/settings.md +136 -0
  27. package/get-shit-done/references/model-profiles.md +73 -0
  28. package/get-shit-done/references/planning-config.md +94 -0
  29. package/get-shit-done/templates/config.json +9 -0
  30. package/get-shit-done/templates/entity.md +173 -0
  31. package/get-shit-done/workflows/complete-milestone.md +11 -0
  32. package/get-shit-done/workflows/diagnose-issues.md +11 -0
  33. package/get-shit-done/workflows/discuss-phase.md +11 -0
  34. package/get-shit-done/workflows/execute-phase.md +68 -9
  35. package/get-shit-done/workflows/execute-plan.md +188 -4
  36. package/get-shit-done/workflows/map-codebase.md +35 -2
  37. package/get-shit-done/workflows/verify-work.md +33 -0
  38. package/hooks/dist/gsd-intel-index.js +97 -0
  39. package/hooks/dist/gsd-intel-prune.js +78 -0
  40. package/hooks/dist/gsd-intel-session.js +39 -0
  41. package/package.json +12 -2
  42. package/scripts/build-hooks.js +95 -0
  43. /package/hooks/{gsd-check-update.js → dist/gsd-check-update.js} +0 -0
  44. /package/hooks/{statusline.js → dist/statusline.js} +0 -0
@@ -8,37 +8,31 @@ allowed-tools:
8
8
  - Bash
9
9
  - Task
10
10
  - AskUserQuestion
11
- - Glob
12
11
  ---
13
12
 
14
13
  <objective>
15
-
16
14
  Start a new milestone through unified flow: questioning → research (optional) → requirements → roadmap.
17
15
 
18
- This is the brownfield equivalent of new-project. The project exists, PROJECT.md has history. This command gathers "what's next" and takes you through the full cycle.
16
+ This is the brownfield equivalent of new-project. The project exists, PROJECT.md has history. This command gathers "what's next", updates PROJECT.md, then continues through the full requirements → roadmap cycle.
19
17
 
20
18
  **Creates/Updates:**
21
19
  - `.planning/PROJECT.md` — updated with new milestone goals
22
- - `.planning/research/` — domain research (optional)
23
- - `.planning/REQUIREMENTS.md` — scoped requirements
24
- - `.planning/ROADMAP.md` — phase structure
25
- - `.planning/STATE.md` — updated project memory
20
+ - `.planning/research/` — domain research (optional, focuses on NEW features)
21
+ - `.planning/REQUIREMENTS.md` — scoped requirements for this milestone
22
+ - `.planning/ROADMAP.md` — phase structure (continues numbering)
23
+ - `.planning/STATE.md` — reset for new milestone
26
24
 
27
25
  **After this command:** Run `/gsd:plan-phase [N]` to start execution.
28
-
29
26
  </objective>
30
27
 
31
28
  <execution_context>
32
-
33
29
  @~/.claude/get-shit-done/references/questioning.md
34
30
  @~/.claude/get-shit-done/references/ui-brand.md
35
31
  @~/.claude/get-shit-done/templates/project.md
36
32
  @~/.claude/get-shit-done/templates/requirements.md
37
-
38
33
  </execution_context>
39
34
 
40
35
  <context>
41
-
42
36
  Milestone name: $ARGUMENTS (optional - will prompt if not provided)
43
37
 
44
38
  **Load project context:**
@@ -47,169 +41,115 @@ Milestone name: $ARGUMENTS (optional - will prompt if not provided)
47
41
  @.planning/MILESTONES.md
48
42
  @.planning/config.json
49
43
 
44
+ **Load milestone context (if exists, from /gsd:discuss-milestone):**
45
+ @.planning/MILESTONE-CONTEXT.md
50
46
  </context>
51
47
 
52
48
  <process>
53
49
 
54
- ## Phase 1: Validate
50
+ ## Phase 1: Load Context
55
51
 
56
- **MANDATORY FIRST STEP Execute these checks before ANY user interaction:**
52
+ - Read PROJECT.md (existing project, Validated requirements, decisions)
53
+ - Read MILESTONES.md (what shipped previously)
54
+ - Read STATE.md (pending todos, blockers)
55
+ - Check for MILESTONE-CONTEXT.md (from /gsd:discuss-milestone)
57
56
 
58
- 1. **Verify project exists:**
59
- ```bash
60
- [ -f .planning/PROJECT.md ] || { echo "ERROR: No PROJECT.md. Run /gsd:new-project first."; exit 1; }
61
- ```
57
+ ## Phase 2: Gather Milestone Goals
62
58
 
63
- 2. **Check for active milestone (ROADMAP.md exists):**
64
- ```bash
65
- [ -f .planning/ROADMAP.md ] && echo "ACTIVE_MILESTONE" || echo "READY_FOR_NEW"
66
- ```
59
+ **If MILESTONE-CONTEXT.md exists:**
60
+ - Use features and scope from discuss-milestone
61
+ - Present summary for confirmation
67
62
 
68
- **If ACTIVE_MILESTONE:**
69
- Use AskUserQuestion:
70
- - header: "Active Milestone"
71
- - question: "A milestone is in progress. What would you like to do?"
72
- - options:
73
- - "Complete current first" — Run /gsd:complete-milestone
74
- - "Continue anyway" — Start new milestone (will archive current)
63
+ **If no context file:**
64
+ - Present what shipped in last milestone
65
+ - Ask: "What do you want to build next?"
66
+ - Use AskUserQuestion to explore features
67
+ - Probe for priorities, constraints, scope
75
68
 
76
- If "Complete current first": Exit with routing to `/gsd:complete-milestone`
77
- If "Continue anyway": Continue to Phase 2
69
+ ## Phase 3: Determine Milestone Version
78
70
 
79
- 3. **Load previous milestone context:**
80
- ```bash
81
- cat .planning/MILESTONES.md 2>/dev/null || echo "NO_MILESTONES"
82
- cat .planning/STATE.md
83
- ```
71
+ - Parse last version from MILESTONES.md
72
+ - Suggest next version (v1.0 → v1.1, or v2.0 for major)
73
+ - Confirm with user
84
74
 
85
- ## Phase 2: Present Context
75
+ ## Phase 4: Update PROJECT.md
86
76
 
87
- **Display stage banner:**
77
+ Add/update these sections:
88
78
 
89
- ```
90
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
91
- GSD ► NEW MILESTONE
92
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
93
- ```
79
+ ```markdown
80
+ ## Current Milestone: v[X.Y] [Name]
94
81
 
95
- **Present what shipped:**
82
+ **Goal:** [One sentence describing milestone focus]
96
83
 
84
+ **Target features:**
85
+ - [Feature 1]
86
+ - [Feature 2]
87
+ - [Feature 3]
97
88
  ```
98
- Last milestone: v[X.Y] [Name] (shipped [DATE])
99
-
100
- Key accomplishments:
101
- - [From MILESTONES.md]
102
- - [From MILESTONES.md]
103
- - [From MILESTONES.md]
104
89
 
105
- Validated requirements:
106
- - [From PROJECT.md Validated section]
90
+ Update Active requirements section with new goals.
107
91
 
108
- Pending todos:
109
- - [From STATE.md if any]
110
- ```
92
+ Update "Last updated" footer.
111
93
 
112
- ## Phase 3: Deep Questioning
94
+ ## Phase 5: Update STATE.md
113
95
 
114
- **Display stage banner:**
96
+ ```markdown
97
+ ## Current Position
115
98
 
99
+ Phase: Not started (defining requirements)
100
+ Plan: —
101
+ Status: Defining requirements
102
+ Last activity: [today] — Milestone v[X.Y] started
116
103
  ```
117
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
118
- GSD ► QUESTIONING
119
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
120
- ```
121
-
122
- **Open the conversation:**
123
-
124
- Ask inline (freeform, NOT AskUserQuestion):
125
-
126
- "What do you want to build next?"
127
104
 
128
- Wait for their response. This gives you the context needed to ask intelligent follow-up questions.
105
+ Keep Accumulated Context section (decisions, blockers) from previous milestone.
129
106
 
130
- **Follow the thread:**
107
+ ## Phase 6: Cleanup and Commit
131
108
 
132
- Based on what they said, ask follow-up questions that dig into their response. Use AskUserQuestion with options that probe what they mentioned — interpretations, clarifications, concrete examples.
109
+ Delete MILESTONE-CONTEXT.md if exists (consumed).
133
110
 
134
- Keep following threads. Each answer opens new threads to explore. Ask about:
135
- - What excited them
136
- - What problem sparked this
137
- - What they mean by vague terms
138
- - What it would actually look like
139
- - What's already decided
140
-
141
- Consult `questioning.md` for techniques:
142
- - Challenge vagueness
143
- - Make abstract concrete
144
- - Surface assumptions
145
- - Find edges
146
- - Reveal motivation
147
-
148
- **Decision gate:**
149
-
150
- When you could update PROJECT.md with clear new goals, use AskUserQuestion:
151
-
152
- - header: "Ready?"
153
- - question: "I think I understand what you're after. Ready to update PROJECT.md?"
154
- - options:
155
- - "Update PROJECT.md" — Let's move forward
156
- - "Keep exploring" — I want to share more / ask me more
157
-
158
- If "Keep exploring" — ask what they want to add, or identify gaps and probe naturally.
159
-
160
- Loop until "Update PROJECT.md" selected.
161
-
162
- ## Phase 4: Determine Milestone Version
163
-
164
- Parse last version from MILESTONES.md and suggest next:
165
-
166
- Use AskUserQuestion:
167
- - header: "Version"
168
- - question: "What version is this milestone?"
169
- - options:
170
- - "v[X.Y+0.1] (patch)" — Minor update: [suggested name]
171
- - "v[X+1].0 (major)" — Major release
172
- - "Custom" — I'll specify
111
+ Check planning config:
112
+ ```bash
113
+ COMMIT_PLANNING_DOCS=$(cat .planning/config.json 2>/dev/null | grep -o '"commit_docs"[[:space:]]*:[[:space:]]*[^,}]*' | grep -o 'true\|false' || echo "true")
114
+ git check-ignore -q .planning 2>/dev/null && COMMIT_PLANNING_DOCS=false
115
+ ```
173
116
 
174
- ## Phase 5: Update PROJECT.md
117
+ If `COMMIT_PLANNING_DOCS=false`: Skip git operations
175
118
 
176
- Update `.planning/PROJECT.md` with new milestone section:
119
+ If `COMMIT_PLANNING_DOCS=true` (default):
120
+ ```bash
121
+ git add .planning/PROJECT.md .planning/STATE.md
122
+ git commit -m "docs: start milestone v[X.Y] [Name]"
123
+ ```
177
124
 
178
- ```markdown
179
- ## Current Milestone: v[X.Y] [Name]
125
+ ## Phase 6.5: Resolve Model Profile
180
126
 
181
- **Goal:** [One sentence describing milestone focus]
127
+ Read model profile for agent spawning:
182
128
 
183
- **Target features:**
184
- - [Feature 1]
185
- - [Feature 2]
186
- - [Feature 3]
129
+ ```bash
130
+ MODEL_PROFILE=$(cat .planning/config.json 2>/dev/null | grep -o '"model_profile"[[:space:]]*:[[:space:]]*"[^"]*"' | grep -o '"[^"]*"$' | tr -d '"' || echo "balanced")
187
131
  ```
188
132
 
189
- Update Active requirements section with new goals (keep Validated section intact).
133
+ Default to "balanced" if not set.
190
134
 
191
- Update "Last updated" footer.
135
+ **Model lookup table:**
192
136
 
193
- **Commit PROJECT.md:**
137
+ | Agent | quality | balanced | budget |
138
+ |-------|---------|----------|--------|
139
+ | gsd-project-researcher | opus | sonnet | haiku |
140
+ | gsd-research-synthesizer | sonnet | sonnet | haiku |
141
+ | gsd-roadmapper | opus | sonnet | sonnet |
194
142
 
195
- ```bash
196
- git add .planning/PROJECT.md
197
- git commit -m "$(cat <<'EOF'
198
- docs: start milestone v[X.Y] [Name]
143
+ Store resolved models for use in Task calls below.
199
144
 
200
- [One-liner describing milestone focus]
201
- EOF
202
- )"
203
- ```
204
-
205
- ## Phase 6: Research Decision
145
+ ## Phase 7: Research Decision
206
146
 
207
147
  Use AskUserQuestion:
208
148
  - header: "Research"
209
- - question: "Research the domain ecosystem before defining requirements?"
149
+ - question: "Research the domain ecosystem for new features before defining requirements?"
210
150
  - options:
211
- - "Research first (Recommended)" — Discover patterns, expected features, architecture
212
- - "Skip research" — I know this domain well, go straight to requirements
151
+ - "Research first (Recommended)" — Discover patterns, expected features, architecture for NEW capabilities
152
+ - "Skip research" — I know what I need, go straight to requirements
213
153
 
214
154
  **If "Research first":**
215
155
 
@@ -219,7 +159,7 @@ Display stage banner:
219
159
  GSD ► RESEARCHING
220
160
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
221
161
 
222
- Researching [domain] ecosystem...
162
+ Researching [new features] ecosystem...
223
163
  ```
224
164
 
225
165
  Create research directory:
@@ -227,133 +167,159 @@ Create research directory:
227
167
  mkdir -p .planning/research
228
168
  ```
229
169
 
230
- **Milestone context is "subsequent"** — Research focuses on new features, not re-researching validated requirements.
231
-
232
170
  Display spawning indicator:
233
171
  ```
234
172
  ◆ Spawning 4 researchers in parallel...
235
- → Stack research
173
+ → Stack research (for new features)
236
174
  → Features research
237
- → Architecture research
175
+ → Architecture research (integration)
238
176
  → Pitfalls research
239
177
  ```
240
178
 
241
- Spawn 4 parallel gsd-project-researcher agents with context:
179
+ Spawn 4 parallel gsd-project-researcher agents with milestone-aware context:
242
180
 
243
181
  ```
244
182
  Task(prompt="
245
183
  <research_type>
246
- Project Research — Stack dimension for [domain].
184
+ Project Research — Stack dimension for [new features].
247
185
  </research_type>
248
186
 
249
187
  <milestone_context>
250
- Subsequent milestone (v[X.Y]).
188
+ SUBSEQUENT MILESTONE — Adding [target features] to existing app.
189
+
190
+ Existing validated capabilities (DO NOT re-research):
191
+ [List from PROJECT.md Validated requirements]
251
192
 
252
- Research what's needed to add [target features] to an existing [domain] app. Don't re-research the existing system.
193
+ Focus ONLY on what's needed for the NEW features.
253
194
  </milestone_context>
254
195
 
255
196
  <question>
256
- What's needed to add [target features] to [domain]?
197
+ What stack additions/changes are needed for [new features]?
257
198
  </question>
258
199
 
259
200
  <project_context>
260
- [PROJECT.md summary - core value, validated requirements, new goals]
201
+ [PROJECT.md summary - current state, new milestone goals]
261
202
  </project_context>
262
203
 
263
204
  <downstream_consumer>
264
205
  Your STACK.md feeds into roadmap creation. Be prescriptive:
265
- - Specific libraries with versions
266
- - Clear rationale for each choice
267
- - What NOT to use and why
206
+ - Specific libraries with versions for NEW capabilities
207
+ - Integration points with existing stack
208
+ - What NOT to add and why
268
209
  </downstream_consumer>
269
210
 
211
+ <quality_gate>
212
+ - [ ] Versions are current (verify with Context7/official docs, not training data)
213
+ - [ ] Rationale explains WHY, not just WHAT
214
+ - [ ] Integration with existing stack considered
215
+ </quality_gate>
216
+
270
217
  <output>
271
218
  Write to: .planning/research/STACK.md
272
219
  Use template: ~/.claude/get-shit-done/templates/research-project/STACK.md
273
220
  </output>
274
- ", subagent_type="gsd-project-researcher", description="Stack research")
221
+ ", subagent_type="gsd-project-researcher", model="{researcher_model}", description="Stack research")
275
222
 
276
223
  Task(prompt="
277
224
  <research_type>
278
- Project Research — Features dimension for [domain].
225
+ Project Research — Features dimension for [new features].
279
226
  </research_type>
280
227
 
281
228
  <milestone_context>
282
- Subsequent milestone (v[X.Y]).
229
+ SUBSEQUENT MILESTONE — Adding [target features] to existing app.
283
230
 
284
- How do [target features] typically work? What's expected behavior?
231
+ Existing features (already built):
232
+ [List from PROJECT.md Validated requirements]
233
+
234
+ Focus on how [new features] typically work, expected behavior.
285
235
  </milestone_context>
286
236
 
287
237
  <question>
288
- What features are expected for [target features]?
238
+ How do [target features] typically work? What's expected behavior?
289
239
  </question>
290
240
 
291
241
  <project_context>
292
- [PROJECT.md summary]
242
+ [PROJECT.md summary - new milestone goals]
293
243
  </project_context>
294
244
 
295
245
  <downstream_consumer>
296
246
  Your FEATURES.md feeds into requirements definition. Categorize clearly:
297
- - Table stakes (must have)
247
+ - Table stakes (must have for these features)
298
248
  - Differentiators (competitive advantage)
299
249
  - Anti-features (things to deliberately NOT build)
300
250
  </downstream_consumer>
301
251
 
252
+ <quality_gate>
253
+ - [ ] Categories are clear (table stakes vs differentiators vs anti-features)
254
+ - [ ] Complexity noted for each feature
255
+ - [ ] Dependencies on existing features identified
256
+ </quality_gate>
257
+
302
258
  <output>
303
259
  Write to: .planning/research/FEATURES.md
304
260
  Use template: ~/.claude/get-shit-done/templates/research-project/FEATURES.md
305
261
  </output>
306
- ", subagent_type="gsd-project-researcher", description="Features research")
262
+ ", subagent_type="gsd-project-researcher", model="{researcher_model}", description="Features research")
307
263
 
308
264
  Task(prompt="
309
265
  <research_type>
310
- Project Research — Architecture dimension for [domain].
266
+ Project Research — Architecture dimension for [new features].
311
267
  </research_type>
312
268
 
313
269
  <milestone_context>
314
- Subsequent milestone (v[X.Y]).
270
+ SUBSEQUENT MILESTONE — Adding [target features] to existing app.
315
271
 
316
- How do [target features] integrate with existing [domain] architecture?
272
+ Existing architecture:
273
+ [Summary from PROJECT.md or codebase map]
274
+
275
+ Focus on how [new features] integrate with existing architecture.
317
276
  </milestone_context>
318
277
 
319
278
  <question>
320
- How should [target features] integrate with the existing system?
279
+ How do [target features] integrate with existing [domain] architecture?
321
280
  </question>
322
281
 
323
282
  <project_context>
324
- [PROJECT.md summary]
283
+ [PROJECT.md summary - current architecture, new features]
325
284
  </project_context>
326
285
 
327
286
  <downstream_consumer>
328
287
  Your ARCHITECTURE.md informs phase structure in roadmap. Include:
329
- - Component boundaries (what talks to what)
330
- - Data flow (how information moves)
331
- - Suggested build order (dependencies between components)
288
+ - Integration points with existing components
289
+ - New components needed
290
+ - Data flow changes
291
+ - Suggested build order
332
292
  </downstream_consumer>
333
293
 
294
+ <quality_gate>
295
+ - [ ] Integration points clearly identified
296
+ - [ ] New vs modified components explicit
297
+ - [ ] Build order considers existing dependencies
298
+ </quality_gate>
299
+
334
300
  <output>
335
301
  Write to: .planning/research/ARCHITECTURE.md
336
302
  Use template: ~/.claude/get-shit-done/templates/research-project/ARCHITECTURE.md
337
303
  </output>
338
- ", subagent_type="gsd-project-researcher", description="Architecture research")
304
+ ", subagent_type="gsd-project-researcher", model="{researcher_model}", description="Architecture research")
339
305
 
340
306
  Task(prompt="
341
307
  <research_type>
342
- Project Research — Pitfalls dimension for [domain].
308
+ Project Research — Pitfalls dimension for [new features].
343
309
  </research_type>
344
310
 
345
311
  <milestone_context>
346
- Subsequent milestone (v[X.Y]).
312
+ SUBSEQUENT MILESTONE — Adding [target features] to existing app.
347
313
 
348
- What are common mistakes when adding [target features] to [domain]?
314
+ Focus on common mistakes when ADDING these features to an existing system.
349
315
  </milestone_context>
350
316
 
351
317
  <question>
352
- What pitfalls should we avoid when adding [target features]?
318
+ What are common mistakes when adding [target features] to [domain]?
353
319
  </question>
354
320
 
355
321
  <project_context>
356
- [PROJECT.md summary]
322
+ [PROJECT.md summary - current state, new features]
357
323
  </project_context>
358
324
 
359
325
  <downstream_consumer>
@@ -363,14 +329,20 @@ Your PITFALLS.md prevents mistakes in roadmap/planning. For each pitfall:
363
329
  - Which phase should address it
364
330
  </downstream_consumer>
365
331
 
332
+ <quality_gate>
333
+ - [ ] Pitfalls are specific to adding these features (not generic)
334
+ - [ ] Integration pitfalls with existing system covered
335
+ - [ ] Prevention strategies are actionable
336
+ </quality_gate>
337
+
366
338
  <output>
367
339
  Write to: .planning/research/PITFALLS.md
368
340
  Use template: ~/.claude/get-shit-done/templates/research-project/PITFALLS.md
369
341
  </output>
370
- ", subagent_type="gsd-project-researcher", description="Pitfalls research")
342
+ ", subagent_type="gsd-project-researcher", model="{researcher_model}", description="Pitfalls research")
371
343
  ```
372
344
 
373
- After all 4 agents complete, spawn synthesizer:
345
+ After all 4 agents complete, spawn synthesizer to create SUMMARY.md:
374
346
 
375
347
  ```
376
348
  Task(prompt="
@@ -391,10 +363,10 @@ Write to: .planning/research/SUMMARY.md
391
363
  Use template: ~/.claude/get-shit-done/templates/research-project/SUMMARY.md
392
364
  Commit after writing.
393
365
  </output>
394
- ", subagent_type="gsd-research-synthesizer", description="Synthesize research")
366
+ ", subagent_type="gsd-research-synthesizer", model="{synthesizer_model}", description="Synthesize research")
395
367
  ```
396
368
 
397
- Display research complete:
369
+ Display research complete banner and key findings:
398
370
  ```
399
371
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
400
372
  GSD ► RESEARCH COMPLETE ✓
@@ -402,16 +374,16 @@ Display research complete:
402
374
 
403
375
  ## Key Findings
404
376
 
405
- **Stack:** [from SUMMARY.md]
406
- **Table Stakes:** [from SUMMARY.md]
377
+ **Stack additions:** [from SUMMARY.md]
378
+ **New feature table stakes:** [from SUMMARY.md]
407
379
  **Watch Out For:** [from SUMMARY.md]
408
380
 
409
381
  Files: `.planning/research/`
410
382
  ```
411
383
 
412
- **If "Skip research":** Continue to Phase 7.
384
+ **If "Skip research":** Continue to Phase 8.
413
385
 
414
- ## Phase 7: Define Requirements
386
+ ## Phase 8: Define Requirements
415
387
 
416
388
  Display stage banner:
417
389
  ```
@@ -424,24 +396,24 @@ Display stage banner:
424
396
 
425
397
  Read PROJECT.md and extract:
426
398
  - Core value (the ONE thing that must work)
427
- - New milestone goals
428
- - Validated requirements (what already works)
429
- - Stated constraints
399
+ - Current milestone goals
400
+ - Validated requirements (what already exists)
430
401
 
431
402
  **If research exists:** Read research/FEATURES.md and extract feature categories.
432
403
 
433
404
  **Present features by category:**
434
405
 
435
406
  ```
436
- Here are the features for [milestone focus]:
407
+ Here are the features for [new capabilities]:
437
408
 
438
409
  ## [Category 1]
439
410
  **Table stakes:**
440
- - [Feature]
441
- - [Feature]
411
+ - Feature A
412
+ - Feature B
442
413
 
443
414
  **Differentiators:**
444
- - [Feature]
415
+ - Feature C
416
+ - Feature D
445
417
 
446
418
  **Research notes:** [any relevant notes]
447
419
 
@@ -453,7 +425,7 @@ Here are the features for [milestone focus]:
453
425
 
454
426
  **If no research:** Gather requirements through conversation instead.
455
427
 
456
- Ask: "What are the main things users need to be able to do in this milestone?"
428
+ Ask: "What are the main things users need to be able to do with [new features]?"
457
429
 
458
430
  For each capability mentioned:
459
431
  - Ask clarifying questions to make it specific
@@ -470,11 +442,12 @@ For each category, use AskUserQuestion:
470
442
  - options:
471
443
  - "[Feature 1]" — [brief description]
472
444
  - "[Feature 2]" — [brief description]
473
- - "None for this milestone" — Defer
445
+ - "[Feature 3]" — [brief description]
446
+ - "None for this milestone" — Defer entire category
474
447
 
475
448
  Track responses:
476
- - Selected features → v1 requirements
477
- - Unselected table stakes → v2 (users expect these)
449
+ - Selected features → this milestone's requirements
450
+ - Unselected table stakes → future milestone
478
451
  - Unselected differentiators → out of scope
479
452
 
480
453
  **Identify gaps:**
@@ -486,38 +459,39 @@ Use AskUserQuestion:
486
459
  - "No, research covered it" — Proceed
487
460
  - "Yes, let me add some" — Capture additions
488
461
 
489
- **Validate core value:**
490
-
491
- Cross-check requirements against Core Value from PROJECT.md. If gaps detected, surface them.
492
-
493
462
  **Generate REQUIREMENTS.md:**
494
463
 
495
464
  Create `.planning/REQUIREMENTS.md` with:
496
- - v1 Requirements grouped by category (checkboxes, REQ-IDs)
497
- - v2 Requirements (deferred)
465
+ - v1 Requirements for THIS milestone grouped by category (checkboxes, REQ-IDs)
466
+ - Future Requirements (deferred to later milestones)
498
467
  - Out of Scope (explicit exclusions with reasoning)
499
468
  - Traceability section (empty, filled by roadmap)
500
469
 
501
- **REQ-ID format:** `[CATEGORY]-[NUMBER]` (AUTH-01, CONTENT-02)
470
+ **REQ-ID format:** `[CATEGORY]-[NUMBER]` (AUTH-01, NOTIF-02)
471
+
472
+ Continue numbering from existing requirements if applicable.
502
473
 
503
474
  **Requirement quality criteria:**
504
475
 
505
476
  Good requirements are:
506
477
  - **Specific and testable:** "User can reset password via email link" (not "Handle password reset")
507
478
  - **User-centric:** "User can X" (not "System does Y")
508
- - **Atomic:** One capability per requirement
479
+ - **Atomic:** One capability per requirement (not "User can login and manage profile")
509
480
  - **Independent:** Minimal dependencies on other requirements
510
481
 
511
- **Present full requirements list for confirmation:**
482
+ **Present full requirements list:**
512
483
 
513
484
  Show every requirement (not counts) for user confirmation:
514
485
 
515
486
  ```
516
- ## v1 Requirements
487
+ ## Milestone v[X.Y] Requirements
488
+
489
+ ### [Category 1]
490
+ - [ ] **CAT1-01**: User can do X
491
+ - [ ] **CAT1-02**: User can do Y
517
492
 
518
- ### [Category]
519
- - [ ] **[CAT]-01**: [Requirement description]
520
- - [ ] **[CAT]-02**: [Requirement description]
493
+ ### [Category 2]
494
+ - [ ] **CAT2-01**: User can do Z
521
495
 
522
496
  [... full list ...]
523
497
 
@@ -530,18 +504,20 @@ If "adjust": Return to scoping.
530
504
 
531
505
  **Commit requirements:**
532
506
 
507
+ Check planning config (same pattern as Phase 6).
508
+
509
+ If committing:
533
510
  ```bash
534
511
  git add .planning/REQUIREMENTS.md
535
512
  git commit -m "$(cat <<'EOF'
536
- docs: define v[X.Y] requirements
513
+ docs: define milestone v[X.Y] requirements
537
514
 
538
515
  [X] requirements across [N] categories
539
- [Y] requirements deferred to v2
540
516
  EOF
541
517
  )"
542
518
  ```
543
519
 
544
- ## Phase 8: Create Roadmap
520
+ ## Phase 9: Create Roadmap
545
521
 
546
522
  Display stage banner:
547
523
  ```
@@ -552,15 +528,10 @@ Display stage banner:
552
528
  ◆ Spawning roadmapper...
553
529
  ```
554
530
 
555
- **Calculate starting phase number:**
531
+ **Determine starting phase number:**
556
532
 
557
- ```bash
558
- # Find highest existing phase number
559
- ls -d .planning/phases/[0-9]*-* 2>/dev/null | sort -V | tail -1 | grep -oE '[0-9]+' | head -1
560
- ```
561
-
562
- If phases exist: New phases start at last + 1
563
- If no phases: Start at Phase 1
533
+ Read MILESTONES.md to find the last phase number from previous milestone.
534
+ New phases continue from there (e.g., if v1.0 ended at phase 5, v1.1 starts at phase 6).
564
535
 
565
536
  Spawn gsd-roadmapper agent with context:
566
537
 
@@ -580,22 +551,24 @@ Task(prompt="
580
551
  **Config:**
581
552
  @.planning/config.json
582
553
 
583
- **Starting phase number:** [N]
554
+ **Previous milestone (for phase numbering):**
555
+ @.planning/MILESTONES.md
584
556
 
585
557
  </planning_context>
586
558
 
587
559
  <instructions>
588
- Create roadmap:
589
- 1. Derive phases from requirements (don't impose structure)
590
- 2. Map every v1 requirement to exactly one phase
591
- 3. Derive 2-5 success criteria per phase (observable user behaviors)
592
- 4. Validate 100% coverage
593
- 5. Write files immediately (ROADMAP.md, STATE.md, update REQUIREMENTS.md traceability)
594
- 6. Return ROADMAP CREATED with summary
595
-
596
- Write files first, then return.
560
+ Create roadmap for milestone v[X.Y]:
561
+ 1. Start phase numbering from [N] (continues from previous milestone)
562
+ 2. Derive phases from THIS MILESTONE's requirements (don't include validated/existing)
563
+ 3. Map every requirement to exactly one phase
564
+ 4. Derive 2-5 success criteria per phase (observable user behaviors)
565
+ 5. Validate 100% coverage of new requirements
566
+ 6. Write files immediately (ROADMAP.md, STATE.md, update REQUIREMENTS.md traceability)
567
+ 7. Return ROADMAP CREATED with summary
568
+
569
+ Write files first, then return. This ensures artifacts persist even if context is lost.
597
570
  </instructions>
598
- ", subagent_type="gsd-roadmapper", description="Create roadmap")
571
+ ", subagent_type="gsd-roadmapper", model="{roadmapper_model}", description="Create roadmap")
599
572
  ```
600
573
 
601
574
  **Handle roadmapper return:**
@@ -607,9 +580,36 @@ Write files first, then return.
607
580
 
608
581
  **If `## ROADMAP CREATED`:**
609
582
 
610
- Read the created ROADMAP.md and present it inline.
583
+ Read the created ROADMAP.md and present it nicely inline:
611
584
 
612
- **Ask for approval:**
585
+ ```
586
+ ---
587
+
588
+ ## Proposed Roadmap
589
+
590
+ **[N] phases** | **[X] requirements mapped** | All milestone requirements covered ✓
591
+
592
+ | # | Phase | Goal | Requirements | Success Criteria |
593
+ |---|-------|------|--------------|------------------|
594
+ | [N] | [Name] | [Goal] | [REQ-IDs] | [count] |
595
+ | [N+1] | [Name] | [Goal] | [REQ-IDs] | [count] |
596
+ ...
597
+
598
+ ### Phase Details
599
+
600
+ **Phase [N]: [Name]**
601
+ Goal: [goal]
602
+ Requirements: [REQ-IDs]
603
+ Success criteria:
604
+ 1. [criterion]
605
+ 2. [criterion]
606
+
607
+ [... continue for all phases ...]
608
+
609
+ ---
610
+ ```
611
+
612
+ **CRITICAL: Ask for approval before committing:**
613
613
 
614
614
  Use AskUserQuestion:
615
615
  - header: "Roadmap"
@@ -623,27 +623,46 @@ Use AskUserQuestion:
623
623
 
624
624
  **If "Adjust phases":**
625
625
  - Get user's adjustment notes
626
- - Re-spawn roadmapper with revision context
627
- - Loop until approved
626
+ - Re-spawn roadmapper with revision context:
627
+ ```
628
+ Task(prompt="
629
+ <revision>
630
+ User feedback on roadmap:
631
+ [user's notes]
632
+
633
+ Current ROADMAP.md: @.planning/ROADMAP.md
634
+
635
+ Update the roadmap based on feedback. Edit files in place.
636
+ Return ROADMAP REVISED with changes made.
637
+ </revision>
638
+ ", subagent_type="gsd-roadmapper", model="{roadmapper_model}", description="Revise roadmap")
639
+ ```
640
+ - Present revised roadmap
641
+ - Loop until user approves
642
+
643
+ **If "Review full file":** Display raw `cat .planning/ROADMAP.md`, then re-ask.
644
+
645
+ **Commit roadmap (after approval):**
628
646
 
629
- **Commit roadmap:**
647
+ Check planning config (same pattern as Phase 6).
630
648
 
649
+ If committing:
631
650
  ```bash
632
651
  git add .planning/ROADMAP.md .planning/STATE.md .planning/REQUIREMENTS.md
633
652
  git commit -m "$(cat <<'EOF'
634
- docs: create v[X.Y] roadmap ([N] phases)
653
+ docs: create milestone v[X.Y] roadmap ([N] phases)
635
654
 
636
655
  Phases:
637
- 1. [phase-name]: [requirements covered]
638
- 2. [phase-name]: [requirements covered]
656
+ [N]. [phase-name]: [requirements covered]
657
+ [N+1]. [phase-name]: [requirements covered]
639
658
  ...
640
659
 
641
- All v1 requirements mapped to phases.
660
+ All milestone requirements mapped to phases.
642
661
  EOF
643
662
  )"
644
663
  ```
645
664
 
646
- ## Phase 9: Done
665
+ ## Phase 10: Done
647
666
 
648
667
  Present completion with next steps:
649
668
 
@@ -652,10 +671,10 @@ Present completion with next steps:
652
671
  GSD ► MILESTONE INITIALIZED ✓
653
672
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
654
673
 
655
- **v[X.Y] [Name]**
674
+ **Milestone v[X.Y]: [Name]**
656
675
 
657
676
  | Artifact | Location |
658
- |----------------|-----------------------------
677
+ |----------------|-----------------------------|
659
678
  | Project | `.planning/PROJECT.md` |
660
679
  | Research | `.planning/research/` |
661
680
  | Requirements | `.planning/REQUIREMENTS.md` |
@@ -683,35 +702,20 @@ Present completion with next steps:
683
702
 
684
703
  </process>
685
704
 
686
- <output>
687
-
688
- - `.planning/PROJECT.md` (updated)
689
- - `.planning/research/` (if research selected)
690
- - `STACK.md`
691
- - `FEATURES.md`
692
- - `ARCHITECTURE.md`
693
- - `PITFALLS.md`
694
- - `SUMMARY.md`
695
- - `.planning/REQUIREMENTS.md`
696
- - `.planning/ROADMAP.md`
697
- - `.planning/STATE.md`
698
-
699
- </output>
700
-
701
705
  <success_criteria>
702
-
703
- - [ ] Project validated (PROJECT.md exists)
704
- - [ ] Previous milestone context presented
705
- - [ ] Deep questioning completed (threads followed)
706
- - [ ] Milestone version determined
707
- - [ ] PROJECT.md updated with new milestone goals → **committed**
708
- - [ ] Research completed (if selected) → **committed**
709
- - [ ] Requirements gathered and scoped
710
- - [ ] REQUIREMENTS.md created with REQ-IDs **committed**
711
- - [ ] gsd-roadmapper spawned with context
712
- - [ ] Roadmap files written immediately
706
+ - [ ] PROJECT.md updated with Current Milestone section
707
+ - [ ] STATE.md reset for new milestone
708
+ - [ ] MILESTONE-CONTEXT.md consumed and deleted (if existed)
709
+ - [ ] Research completed (if selected) — 4 parallel agents spawned, milestone-aware
710
+ - [ ] Requirements gathered (from research or conversation)
711
+ - [ ] User scoped each category
712
+ - [ ] REQUIREMENTS.md created with REQ-IDs
713
+ - [ ] gsd-roadmapper spawned with phase numbering context
714
+ - [ ] Roadmap files written immediately (not draft)
713
715
  - [ ] User feedback incorporated (if any)
714
- - [ ] ROADMAP.md, STATE.md **committed**
715
- - [ ] User knows next step is `/gsd:plan-phase [N]`
716
+ - [ ] ROADMAP.md created with phases continuing from previous milestone
717
+ - [ ] All commits made (if planning docs committed)
718
+ - [ ] User knows next step is `/gsd:discuss-phase [N]`
716
719
 
720
+ **Atomic commits:** Each phase commits its artifacts immediately. If context is lost, artifacts persist.
717
721
  </success_criteria>