get-shit-done-cc 1.7.1 → 1.8.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.
@@ -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,133 +41,40 @@ 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
55
-
56
- **MANDATORY FIRST STEP — Execute these checks before ANY user interaction:**
57
-
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
- ```
62
-
63
- 2. **Check for active milestone (ROADMAP.md exists):**
64
- ```bash
65
- [ -f .planning/ROADMAP.md ] && echo "ACTIVE_MILESTONE" || echo "READY_FOR_NEW"
66
- ```
67
-
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)
75
-
76
- If "Complete current first": Exit with routing to `/gsd:complete-milestone`
77
- If "Continue anyway": Continue to Phase 2
78
-
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
- ```
84
-
85
- ## Phase 2: Present Context
86
-
87
- **Display stage banner:**
88
-
89
- ```
90
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
91
- GSD ► NEW MILESTONE
92
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
93
- ```
94
-
95
- **Present what shipped:**
96
-
97
- ```
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
-
105
- Validated requirements:
106
- - [From PROJECT.md Validated section]
107
-
108
- Pending todos:
109
- - [From STATE.md if any]
110
- ```
111
-
112
- ## Phase 3: Deep Questioning
50
+ ## Phase 1: Load Context
113
51
 
114
- **Display stage banner:**
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)
115
56
 
116
- ```
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
-
128
- Wait for their response. This gives you the context needed to ask intelligent follow-up questions.
129
-
130
- **Follow the thread:**
131
-
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.
133
-
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:**
57
+ ## Phase 2: Gather Milestone Goals
149
58
 
150
- When you could update PROJECT.md with clear new goals, use AskUserQuestion:
59
+ **If MILESTONE-CONTEXT.md exists:**
60
+ - Use features and scope from discuss-milestone
61
+ - Present summary for confirmation
151
62
 
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.
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
159
68
 
160
- Loop until "Update PROJECT.md" selected.
69
+ ## Phase 3: Determine Milestone Version
161
70
 
162
- ## Phase 4: Determine Milestone Version
71
+ - Parse last version from MILESTONES.md
72
+ - Suggest next version (v1.0 → v1.1, or v2.0 for major)
73
+ - Confirm with user
163
74
 
164
- Parse last version from MILESTONES.md and suggest next:
75
+ ## Phase 4: Update PROJECT.md
165
76
 
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
173
-
174
- ## Phase 5: Update PROJECT.md
175
-
176
- Update `.planning/PROJECT.md` with new milestone section:
77
+ Add/update these sections:
177
78
 
178
79
  ```markdown
179
80
  ## Current Milestone: v[X.Y] [Name]
@@ -186,30 +87,49 @@ Update `.planning/PROJECT.md` with new milestone section:
186
87
  - [Feature 3]
187
88
  ```
188
89
 
189
- Update Active requirements section with new goals (keep Validated section intact).
90
+ Update Active requirements section with new goals.
190
91
 
191
92
  Update "Last updated" footer.
192
93
 
193
- **Commit PROJECT.md:**
94
+ ## Phase 5: Update STATE.md
95
+
96
+ ```markdown
97
+ ## Current Position
98
+
99
+ Phase: Not started (defining requirements)
100
+ Plan: —
101
+ Status: Defining requirements
102
+ Last activity: [today] — Milestone v[X.Y] started
103
+ ```
104
+
105
+ Keep Accumulated Context section (decisions, blockers) from previous milestone.
106
+
107
+ ## Phase 6: Cleanup and Commit
108
+
109
+ Delete MILESTONE-CONTEXT.md if exists (consumed).
194
110
 
111
+ Check planning config:
195
112
  ```bash
196
- git add .planning/PROJECT.md
197
- git commit -m "$(cat <<'EOF'
198
- docs: start milestone v[X.Y] [Name]
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
+ ```
199
116
 
200
- [One-liner describing milestone focus]
201
- EOF
202
- )"
117
+ If `COMMIT_PLANNING_DOCS=false`: Skip git operations
118
+
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]"
203
123
  ```
204
124
 
205
- ## Phase 6: Research Decision
125
+ ## Phase 7: Research Decision
206
126
 
207
127
  Use AskUserQuestion:
208
128
  - header: "Research"
209
- - question: "Research the domain ecosystem before defining requirements?"
129
+ - question: "Research the domain ecosystem for new features before defining requirements?"
210
130
  - options:
211
- - "Research first (Recommended)" — Discover patterns, expected features, architecture
212
- - "Skip research" — I know this domain well, go straight to requirements
131
+ - "Research first (Recommended)" — Discover patterns, expected features, architecture for NEW capabilities
132
+ - "Skip research" — I know what I need, go straight to requirements
213
133
 
214
134
  **If "Research first":**
215
135
 
@@ -219,7 +139,7 @@ Display stage banner:
219
139
  GSD ► RESEARCHING
220
140
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
221
141
 
222
- Researching [domain] ecosystem...
142
+ Researching [new features] ecosystem...
223
143
  ```
224
144
 
225
145
  Create research directory:
@@ -227,46 +147,53 @@ Create research directory:
227
147
  mkdir -p .planning/research
228
148
  ```
229
149
 
230
- **Milestone context is "subsequent"** — Research focuses on new features, not re-researching validated requirements.
231
-
232
150
  Display spawning indicator:
233
151
  ```
234
152
  ◆ Spawning 4 researchers in parallel...
235
- → Stack research
153
+ → Stack research (for new features)
236
154
  → Features research
237
- → Architecture research
155
+ → Architecture research (integration)
238
156
  → Pitfalls research
239
157
  ```
240
158
 
241
- Spawn 4 parallel gsd-project-researcher agents with context:
159
+ Spawn 4 parallel gsd-project-researcher agents with milestone-aware context:
242
160
 
243
161
  ```
244
162
  Task(prompt="
245
163
  <research_type>
246
- Project Research — Stack dimension for [domain].
164
+ Project Research — Stack dimension for [new features].
247
165
  </research_type>
248
166
 
249
167
  <milestone_context>
250
- Subsequent milestone (v[X.Y]).
168
+ SUBSEQUENT MILESTONE — Adding [target features] to existing app.
251
169
 
252
- Research what's needed to add [target features] to an existing [domain] app. Don't re-research the existing system.
170
+ Existing validated capabilities (DO NOT re-research):
171
+ [List from PROJECT.md Validated requirements]
172
+
173
+ Focus ONLY on what's needed for the NEW features.
253
174
  </milestone_context>
254
175
 
255
176
  <question>
256
- What's needed to add [target features] to [domain]?
177
+ What stack additions/changes are needed for [new features]?
257
178
  </question>
258
179
 
259
180
  <project_context>
260
- [PROJECT.md summary - core value, validated requirements, new goals]
181
+ [PROJECT.md summary - current state, new milestone goals]
261
182
  </project_context>
262
183
 
263
184
  <downstream_consumer>
264
185
  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
186
+ - Specific libraries with versions for NEW capabilities
187
+ - Integration points with existing stack
188
+ - What NOT to add and why
268
189
  </downstream_consumer>
269
190
 
191
+ <quality_gate>
192
+ - [ ] Versions are current (verify with Context7/official docs, not training data)
193
+ - [ ] Rationale explains WHY, not just WHAT
194
+ - [ ] Integration with existing stack considered
195
+ </quality_gate>
196
+
270
197
  <output>
271
198
  Write to: .planning/research/STACK.md
272
199
  Use template: ~/.claude/get-shit-done/templates/research-project/STACK.md
@@ -275,30 +202,39 @@ Use template: ~/.claude/get-shit-done/templates/research-project/STACK.md
275
202
 
276
203
  Task(prompt="
277
204
  <research_type>
278
- Project Research — Features dimension for [domain].
205
+ Project Research — Features dimension for [new features].
279
206
  </research_type>
280
207
 
281
208
  <milestone_context>
282
- Subsequent milestone (v[X.Y]).
209
+ SUBSEQUENT MILESTONE — Adding [target features] to existing app.
283
210
 
284
- How do [target features] typically work? What's expected behavior?
211
+ Existing features (already built):
212
+ [List from PROJECT.md Validated requirements]
213
+
214
+ Focus on how [new features] typically work, expected behavior.
285
215
  </milestone_context>
286
216
 
287
217
  <question>
288
- What features are expected for [target features]?
218
+ How do [target features] typically work? What's expected behavior?
289
219
  </question>
290
220
 
291
221
  <project_context>
292
- [PROJECT.md summary]
222
+ [PROJECT.md summary - new milestone goals]
293
223
  </project_context>
294
224
 
295
225
  <downstream_consumer>
296
226
  Your FEATURES.md feeds into requirements definition. Categorize clearly:
297
- - Table stakes (must have)
227
+ - Table stakes (must have for these features)
298
228
  - Differentiators (competitive advantage)
299
229
  - Anti-features (things to deliberately NOT build)
300
230
  </downstream_consumer>
301
231
 
232
+ <quality_gate>
233
+ - [ ] Categories are clear (table stakes vs differentiators vs anti-features)
234
+ - [ ] Complexity noted for each feature
235
+ - [ ] Dependencies on existing features identified
236
+ </quality_gate>
237
+
302
238
  <output>
303
239
  Write to: .planning/research/FEATURES.md
304
240
  Use template: ~/.claude/get-shit-done/templates/research-project/FEATURES.md
@@ -307,30 +243,40 @@ Use template: ~/.claude/get-shit-done/templates/research-project/FEATURES.md
307
243
 
308
244
  Task(prompt="
309
245
  <research_type>
310
- Project Research — Architecture dimension for [domain].
246
+ Project Research — Architecture dimension for [new features].
311
247
  </research_type>
312
248
 
313
249
  <milestone_context>
314
- Subsequent milestone (v[X.Y]).
250
+ SUBSEQUENT MILESTONE — Adding [target features] to existing app.
315
251
 
316
- How do [target features] integrate with existing [domain] architecture?
252
+ Existing architecture:
253
+ [Summary from PROJECT.md or codebase map]
254
+
255
+ Focus on how [new features] integrate with existing architecture.
317
256
  </milestone_context>
318
257
 
319
258
  <question>
320
- How should [target features] integrate with the existing system?
259
+ How do [target features] integrate with existing [domain] architecture?
321
260
  </question>
322
261
 
323
262
  <project_context>
324
- [PROJECT.md summary]
263
+ [PROJECT.md summary - current architecture, new features]
325
264
  </project_context>
326
265
 
327
266
  <downstream_consumer>
328
267
  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)
268
+ - Integration points with existing components
269
+ - New components needed
270
+ - Data flow changes
271
+ - Suggested build order
332
272
  </downstream_consumer>
333
273
 
274
+ <quality_gate>
275
+ - [ ] Integration points clearly identified
276
+ - [ ] New vs modified components explicit
277
+ - [ ] Build order considers existing dependencies
278
+ </quality_gate>
279
+
334
280
  <output>
335
281
  Write to: .planning/research/ARCHITECTURE.md
336
282
  Use template: ~/.claude/get-shit-done/templates/research-project/ARCHITECTURE.md
@@ -339,21 +285,21 @@ Use template: ~/.claude/get-shit-done/templates/research-project/ARCHITECTURE.md
339
285
 
340
286
  Task(prompt="
341
287
  <research_type>
342
- Project Research — Pitfalls dimension for [domain].
288
+ Project Research — Pitfalls dimension for [new features].
343
289
  </research_type>
344
290
 
345
291
  <milestone_context>
346
- Subsequent milestone (v[X.Y]).
292
+ SUBSEQUENT MILESTONE — Adding [target features] to existing app.
347
293
 
348
- What are common mistakes when adding [target features] to [domain]?
294
+ Focus on common mistakes when ADDING these features to an existing system.
349
295
  </milestone_context>
350
296
 
351
297
  <question>
352
- What pitfalls should we avoid when adding [target features]?
298
+ What are common mistakes when adding [target features] to [domain]?
353
299
  </question>
354
300
 
355
301
  <project_context>
356
- [PROJECT.md summary]
302
+ [PROJECT.md summary - current state, new features]
357
303
  </project_context>
358
304
 
359
305
  <downstream_consumer>
@@ -363,6 +309,12 @@ Your PITFALLS.md prevents mistakes in roadmap/planning. For each pitfall:
363
309
  - Which phase should address it
364
310
  </downstream_consumer>
365
311
 
312
+ <quality_gate>
313
+ - [ ] Pitfalls are specific to adding these features (not generic)
314
+ - [ ] Integration pitfalls with existing system covered
315
+ - [ ] Prevention strategies are actionable
316
+ </quality_gate>
317
+
366
318
  <output>
367
319
  Write to: .planning/research/PITFALLS.md
368
320
  Use template: ~/.claude/get-shit-done/templates/research-project/PITFALLS.md
@@ -370,7 +322,7 @@ Use template: ~/.claude/get-shit-done/templates/research-project/PITFALLS.md
370
322
  ", subagent_type="gsd-project-researcher", description="Pitfalls research")
371
323
  ```
372
324
 
373
- After all 4 agents complete, spawn synthesizer:
325
+ After all 4 agents complete, spawn synthesizer to create SUMMARY.md:
374
326
 
375
327
  ```
376
328
  Task(prompt="
@@ -394,7 +346,7 @@ Commit after writing.
394
346
  ", subagent_type="gsd-research-synthesizer", description="Synthesize research")
395
347
  ```
396
348
 
397
- Display research complete:
349
+ Display research complete banner and key findings:
398
350
  ```
399
351
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
400
352
  GSD ► RESEARCH COMPLETE ✓
@@ -402,16 +354,16 @@ Display research complete:
402
354
 
403
355
  ## Key Findings
404
356
 
405
- **Stack:** [from SUMMARY.md]
406
- **Table Stakes:** [from SUMMARY.md]
357
+ **Stack additions:** [from SUMMARY.md]
358
+ **New feature table stakes:** [from SUMMARY.md]
407
359
  **Watch Out For:** [from SUMMARY.md]
408
360
 
409
361
  Files: `.planning/research/`
410
362
  ```
411
363
 
412
- **If "Skip research":** Continue to Phase 7.
364
+ **If "Skip research":** Continue to Phase 8.
413
365
 
414
- ## Phase 7: Define Requirements
366
+ ## Phase 8: Define Requirements
415
367
 
416
368
  Display stage banner:
417
369
  ```
@@ -424,24 +376,24 @@ Display stage banner:
424
376
 
425
377
  Read PROJECT.md and extract:
426
378
  - Core value (the ONE thing that must work)
427
- - New milestone goals
428
- - Validated requirements (what already works)
429
- - Stated constraints
379
+ - Current milestone goals
380
+ - Validated requirements (what already exists)
430
381
 
431
382
  **If research exists:** Read research/FEATURES.md and extract feature categories.
432
383
 
433
384
  **Present features by category:**
434
385
 
435
386
  ```
436
- Here are the features for [milestone focus]:
387
+ Here are the features for [new capabilities]:
437
388
 
438
389
  ## [Category 1]
439
390
  **Table stakes:**
440
- - [Feature]
441
- - [Feature]
391
+ - Feature A
392
+ - Feature B
442
393
 
443
394
  **Differentiators:**
444
- - [Feature]
395
+ - Feature C
396
+ - Feature D
445
397
 
446
398
  **Research notes:** [any relevant notes]
447
399
 
@@ -453,7 +405,7 @@ Here are the features for [milestone focus]:
453
405
 
454
406
  **If no research:** Gather requirements through conversation instead.
455
407
 
456
- Ask: "What are the main things users need to be able to do in this milestone?"
408
+ Ask: "What are the main things users need to be able to do with [new features]?"
457
409
 
458
410
  For each capability mentioned:
459
411
  - Ask clarifying questions to make it specific
@@ -470,11 +422,12 @@ For each category, use AskUserQuestion:
470
422
  - options:
471
423
  - "[Feature 1]" — [brief description]
472
424
  - "[Feature 2]" — [brief description]
473
- - "None for this milestone" — Defer
425
+ - "[Feature 3]" — [brief description]
426
+ - "None for this milestone" — Defer entire category
474
427
 
475
428
  Track responses:
476
- - Selected features → v1 requirements
477
- - Unselected table stakes → v2 (users expect these)
429
+ - Selected features → this milestone's requirements
430
+ - Unselected table stakes → future milestone
478
431
  - Unselected differentiators → out of scope
479
432
 
480
433
  **Identify gaps:**
@@ -486,38 +439,39 @@ Use AskUserQuestion:
486
439
  - "No, research covered it" — Proceed
487
440
  - "Yes, let me add some" — Capture additions
488
441
 
489
- **Validate core value:**
490
-
491
- Cross-check requirements against Core Value from PROJECT.md. If gaps detected, surface them.
492
-
493
442
  **Generate REQUIREMENTS.md:**
494
443
 
495
444
  Create `.planning/REQUIREMENTS.md` with:
496
- - v1 Requirements grouped by category (checkboxes, REQ-IDs)
497
- - v2 Requirements (deferred)
445
+ - v1 Requirements for THIS milestone grouped by category (checkboxes, REQ-IDs)
446
+ - Future Requirements (deferred to later milestones)
498
447
  - Out of Scope (explicit exclusions with reasoning)
499
448
  - Traceability section (empty, filled by roadmap)
500
449
 
501
- **REQ-ID format:** `[CATEGORY]-[NUMBER]` (AUTH-01, CONTENT-02)
450
+ **REQ-ID format:** `[CATEGORY]-[NUMBER]` (AUTH-01, NOTIF-02)
451
+
452
+ Continue numbering from existing requirements if applicable.
502
453
 
503
454
  **Requirement quality criteria:**
504
455
 
505
456
  Good requirements are:
506
457
  - **Specific and testable:** "User can reset password via email link" (not "Handle password reset")
507
458
  - **User-centric:** "User can X" (not "System does Y")
508
- - **Atomic:** One capability per requirement
459
+ - **Atomic:** One capability per requirement (not "User can login and manage profile")
509
460
  - **Independent:** Minimal dependencies on other requirements
510
461
 
511
- **Present full requirements list for confirmation:**
462
+ **Present full requirements list:**
512
463
 
513
464
  Show every requirement (not counts) for user confirmation:
514
465
 
515
466
  ```
516
- ## v1 Requirements
467
+ ## Milestone v[X.Y] Requirements
517
468
 
518
- ### [Category]
519
- - [ ] **[CAT]-01**: [Requirement description]
520
- - [ ] **[CAT]-02**: [Requirement description]
469
+ ### [Category 1]
470
+ - [ ] **CAT1-01**: User can do X
471
+ - [ ] **CAT1-02**: User can do Y
472
+
473
+ ### [Category 2]
474
+ - [ ] **CAT2-01**: User can do Z
521
475
 
522
476
  [... full list ...]
523
477
 
@@ -530,18 +484,20 @@ If "adjust": Return to scoping.
530
484
 
531
485
  **Commit requirements:**
532
486
 
487
+ Check planning config (same pattern as Phase 6).
488
+
489
+ If committing:
533
490
  ```bash
534
491
  git add .planning/REQUIREMENTS.md
535
492
  git commit -m "$(cat <<'EOF'
536
- docs: define v[X.Y] requirements
493
+ docs: define milestone v[X.Y] requirements
537
494
 
538
495
  [X] requirements across [N] categories
539
- [Y] requirements deferred to v2
540
496
  EOF
541
497
  )"
542
498
  ```
543
499
 
544
- ## Phase 8: Create Roadmap
500
+ ## Phase 9: Create Roadmap
545
501
 
546
502
  Display stage banner:
547
503
  ```
@@ -552,15 +508,10 @@ Display stage banner:
552
508
  ◆ Spawning roadmapper...
553
509
  ```
554
510
 
555
- **Calculate starting phase number:**
556
-
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
- ```
511
+ **Determine starting phase number:**
561
512
 
562
- If phases exist: New phases start at last + 1
563
- If no phases: Start at Phase 1
513
+ Read MILESTONES.md to find the last phase number from previous milestone.
514
+ New phases continue from there (e.g., if v1.0 ended at phase 5, v1.1 starts at phase 6).
564
515
 
565
516
  Spawn gsd-roadmapper agent with context:
566
517
 
@@ -580,20 +531,22 @@ Task(prompt="
580
531
  **Config:**
581
532
  @.planning/config.json
582
533
 
583
- **Starting phase number:** [N]
534
+ **Previous milestone (for phase numbering):**
535
+ @.planning/MILESTONES.md
584
536
 
585
537
  </planning_context>
586
538
 
587
539
  <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.
540
+ Create roadmap for milestone v[X.Y]:
541
+ 1. Start phase numbering from [N] (continues from previous milestone)
542
+ 2. Derive phases from THIS MILESTONE's requirements (don't include validated/existing)
543
+ 3. Map every requirement to exactly one phase
544
+ 4. Derive 2-5 success criteria per phase (observable user behaviors)
545
+ 5. Validate 100% coverage of new requirements
546
+ 6. Write files immediately (ROADMAP.md, STATE.md, update REQUIREMENTS.md traceability)
547
+ 7. Return ROADMAP CREATED with summary
548
+
549
+ Write files first, then return. This ensures artifacts persist even if context is lost.
597
550
  </instructions>
598
551
  ", subagent_type="gsd-roadmapper", description="Create roadmap")
599
552
  ```
@@ -607,9 +560,36 @@ Write files first, then return.
607
560
 
608
561
  **If `## ROADMAP CREATED`:**
609
562
 
610
- Read the created ROADMAP.md and present it inline.
563
+ Read the created ROADMAP.md and present it nicely inline:
564
+
565
+ ```
566
+ ---
567
+
568
+ ## Proposed Roadmap
569
+
570
+ **[N] phases** | **[X] requirements mapped** | All milestone requirements covered ✓
571
+
572
+ | # | Phase | Goal | Requirements | Success Criteria |
573
+ |---|-------|------|--------------|------------------|
574
+ | [N] | [Name] | [Goal] | [REQ-IDs] | [count] |
575
+ | [N+1] | [Name] | [Goal] | [REQ-IDs] | [count] |
576
+ ...
577
+
578
+ ### Phase Details
579
+
580
+ **Phase [N]: [Name]**
581
+ Goal: [goal]
582
+ Requirements: [REQ-IDs]
583
+ Success criteria:
584
+ 1. [criterion]
585
+ 2. [criterion]
586
+
587
+ [... continue for all phases ...]
611
588
 
612
- **Ask for approval:**
589
+ ---
590
+ ```
591
+
592
+ **CRITICAL: Ask for approval before committing:**
613
593
 
614
594
  Use AskUserQuestion:
615
595
  - header: "Roadmap"
@@ -623,27 +603,46 @@ Use AskUserQuestion:
623
603
 
624
604
  **If "Adjust phases":**
625
605
  - Get user's adjustment notes
626
- - Re-spawn roadmapper with revision context
627
- - Loop until approved
606
+ - Re-spawn roadmapper with revision context:
607
+ ```
608
+ Task(prompt="
609
+ <revision>
610
+ User feedback on roadmap:
611
+ [user's notes]
612
+
613
+ Current ROADMAP.md: @.planning/ROADMAP.md
614
+
615
+ Update the roadmap based on feedback. Edit files in place.
616
+ Return ROADMAP REVISED with changes made.
617
+ </revision>
618
+ ", subagent_type="gsd-roadmapper", description="Revise roadmap")
619
+ ```
620
+ - Present revised roadmap
621
+ - Loop until user approves
622
+
623
+ **If "Review full file":** Display raw `cat .planning/ROADMAP.md`, then re-ask.
624
+
625
+ **Commit roadmap (after approval):**
628
626
 
629
- **Commit roadmap:**
627
+ Check planning config (same pattern as Phase 6).
630
628
 
629
+ If committing:
631
630
  ```bash
632
631
  git add .planning/ROADMAP.md .planning/STATE.md .planning/REQUIREMENTS.md
633
632
  git commit -m "$(cat <<'EOF'
634
- docs: create v[X.Y] roadmap ([N] phases)
633
+ docs: create milestone v[X.Y] roadmap ([N] phases)
635
634
 
636
635
  Phases:
637
- 1. [phase-name]: [requirements covered]
638
- 2. [phase-name]: [requirements covered]
636
+ [N]. [phase-name]: [requirements covered]
637
+ [N+1]. [phase-name]: [requirements covered]
639
638
  ...
640
639
 
641
- All v1 requirements mapped to phases.
640
+ All milestone requirements mapped to phases.
642
641
  EOF
643
642
  )"
644
643
  ```
645
644
 
646
- ## Phase 9: Done
645
+ ## Phase 10: Done
647
646
 
648
647
  Present completion with next steps:
649
648
 
@@ -652,10 +651,10 @@ Present completion with next steps:
652
651
  GSD ► MILESTONE INITIALIZED ✓
653
652
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
654
653
 
655
- **v[X.Y] [Name]**
654
+ **Milestone v[X.Y]: [Name]**
656
655
 
657
656
  | Artifact | Location |
658
- |----------------|-----------------------------
657
+ |----------------|-----------------------------|
659
658
  | Project | `.planning/PROJECT.md` |
660
659
  | Research | `.planning/research/` |
661
660
  | Requirements | `.planning/REQUIREMENTS.md` |
@@ -683,35 +682,20 @@ Present completion with next steps:
683
682
 
684
683
  </process>
685
684
 
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
685
  <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
686
+ - [ ] PROJECT.md updated with Current Milestone section
687
+ - [ ] STATE.md reset for new milestone
688
+ - [ ] MILESTONE-CONTEXT.md consumed and deleted (if existed)
689
+ - [ ] Research completed (if selected) — 4 parallel agents spawned, milestone-aware
690
+ - [ ] Requirements gathered (from research or conversation)
691
+ - [ ] User scoped each category
692
+ - [ ] REQUIREMENTS.md created with REQ-IDs
693
+ - [ ] gsd-roadmapper spawned with phase numbering context
694
+ - [ ] Roadmap files written immediately (not draft)
713
695
  - [ ] User feedback incorporated (if any)
714
- - [ ] ROADMAP.md, STATE.md **committed**
715
- - [ ] User knows next step is `/gsd:plan-phase [N]`
696
+ - [ ] ROADMAP.md created with phases continuing from previous milestone
697
+ - [ ] All commits made (if planning docs committed)
698
+ - [ ] User knows next step is `/gsd:discuss-phase [N]`
716
699
 
700
+ **Atomic commits:** Each phase commits its artifacts immediately. If context is lost, artifacts persist.
717
701
  </success_criteria>