@m3hti/commit-genie 3.2.0 → 3.3.1

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 (160) hide show
  1. package/.claude/agents/gsd-codebase-mapper.md +764 -0
  2. package/.claude/agents/gsd-debugger.md +1246 -0
  3. package/.claude/agents/gsd-executor.md +469 -0
  4. package/.claude/agents/gsd-integration-checker.md +443 -0
  5. package/.claude/agents/gsd-phase-researcher.md +546 -0
  6. package/.claude/agents/gsd-plan-checker.md +690 -0
  7. package/.claude/agents/gsd-planner.md +1275 -0
  8. package/.claude/agents/gsd-project-researcher.md +621 -0
  9. package/.claude/agents/gsd-research-synthesizer.md +239 -0
  10. package/.claude/agents/gsd-roadmapper.md +642 -0
  11. package/.claude/agents/gsd-verifier.md +573 -0
  12. package/.claude/commands/gsd/add-phase.md +43 -0
  13. package/.claude/commands/gsd/add-tests.md +41 -0
  14. package/.claude/commands/gsd/add-todo.md +47 -0
  15. package/.claude/commands/gsd/audit-milestone.md +36 -0
  16. package/.claude/commands/gsd/check-todos.md +45 -0
  17. package/.claude/commands/gsd/cleanup.md +18 -0
  18. package/.claude/commands/gsd/complete-milestone.md +136 -0
  19. package/.claude/commands/gsd/debug.md +167 -0
  20. package/.claude/commands/gsd/discuss-phase.md +83 -0
  21. package/.claude/commands/gsd/execute-phase.md +41 -0
  22. package/.claude/commands/gsd/health.md +22 -0
  23. package/.claude/commands/gsd/help.md +22 -0
  24. package/.claude/commands/gsd/insert-phase.md +32 -0
  25. package/.claude/commands/gsd/join-discord.md +18 -0
  26. package/.claude/commands/gsd/list-phase-assumptions.md +46 -0
  27. package/.claude/commands/gsd/map-codebase.md +71 -0
  28. package/.claude/commands/gsd/new-milestone.md +44 -0
  29. package/.claude/commands/gsd/new-project.md +42 -0
  30. package/.claude/commands/gsd/new-project.md.bak +1041 -0
  31. package/.claude/commands/gsd/pause-work.md +38 -0
  32. package/.claude/commands/gsd/plan-milestone-gaps.md +34 -0
  33. package/.claude/commands/gsd/plan-phase.md +45 -0
  34. package/.claude/commands/gsd/progress.md +24 -0
  35. package/.claude/commands/gsd/quick.md +41 -0
  36. package/.claude/commands/gsd/reapply-patches.md +110 -0
  37. package/.claude/commands/gsd/remove-phase.md +31 -0
  38. package/.claude/commands/gsd/research-phase.md +189 -0
  39. package/.claude/commands/gsd/resume-work.md +40 -0
  40. package/.claude/commands/gsd/set-profile.md +34 -0
  41. package/.claude/commands/gsd/settings.md +36 -0
  42. package/.claude/commands/gsd/update.md +37 -0
  43. package/.claude/commands/gsd/verify-work.md +38 -0
  44. package/.claude/get-shit-done/VERSION +1 -0
  45. package/.claude/get-shit-done/bin/gsd-tools.cjs +588 -0
  46. package/.claude/get-shit-done/bin/lib/commands.cjs +553 -0
  47. package/.claude/get-shit-done/bin/lib/config.cjs +162 -0
  48. package/.claude/get-shit-done/bin/lib/core.cjs +411 -0
  49. package/.claude/get-shit-done/bin/lib/frontmatter.cjs +299 -0
  50. package/.claude/get-shit-done/bin/lib/init.cjs +710 -0
  51. package/.claude/get-shit-done/bin/lib/milestone.cjs +216 -0
  52. package/.claude/get-shit-done/bin/lib/phase.cjs +871 -0
  53. package/.claude/get-shit-done/bin/lib/roadmap.cjs +298 -0
  54. package/.claude/get-shit-done/bin/lib/state.cjs +679 -0
  55. package/.claude/get-shit-done/bin/lib/template.cjs +222 -0
  56. package/.claude/get-shit-done/bin/lib/verify.cjs +773 -0
  57. package/.claude/get-shit-done/references/checkpoints.md +776 -0
  58. package/.claude/get-shit-done/references/continuation-format.md +249 -0
  59. package/.claude/get-shit-done/references/decimal-phase-calculation.md +65 -0
  60. package/.claude/get-shit-done/references/git-integration.md +248 -0
  61. package/.claude/get-shit-done/references/git-planning-commit.md +38 -0
  62. package/.claude/get-shit-done/references/model-profile-resolution.md +34 -0
  63. package/.claude/get-shit-done/references/model-profiles.md +92 -0
  64. package/.claude/get-shit-done/references/phase-argument-parsing.md +61 -0
  65. package/.claude/get-shit-done/references/planning-config.md +196 -0
  66. package/.claude/get-shit-done/references/questioning.md +145 -0
  67. package/.claude/get-shit-done/references/tdd.md +263 -0
  68. package/.claude/get-shit-done/references/ui-brand.md +160 -0
  69. package/.claude/get-shit-done/references/verification-patterns.md +612 -0
  70. package/.claude/get-shit-done/templates/DEBUG.md +164 -0
  71. package/.claude/get-shit-done/templates/UAT.md +247 -0
  72. package/.claude/get-shit-done/templates/VALIDATION.md +76 -0
  73. package/.claude/get-shit-done/templates/codebase/architecture.md +255 -0
  74. package/.claude/get-shit-done/templates/codebase/concerns.md +310 -0
  75. package/.claude/get-shit-done/templates/codebase/conventions.md +307 -0
  76. package/.claude/get-shit-done/templates/codebase/integrations.md +280 -0
  77. package/.claude/get-shit-done/templates/codebase/stack.md +186 -0
  78. package/.claude/get-shit-done/templates/codebase/structure.md +285 -0
  79. package/.claude/get-shit-done/templates/codebase/testing.md +480 -0
  80. package/.claude/get-shit-done/templates/config.json +37 -0
  81. package/.claude/get-shit-done/templates/context.md +283 -0
  82. package/.claude/get-shit-done/templates/continue-here.md +78 -0
  83. package/.claude/get-shit-done/templates/debug-subagent-prompt.md +91 -0
  84. package/.claude/get-shit-done/templates/discovery.md +146 -0
  85. package/.claude/get-shit-done/templates/milestone-archive.md +123 -0
  86. package/.claude/get-shit-done/templates/milestone.md +115 -0
  87. package/.claude/get-shit-done/templates/phase-prompt.md +569 -0
  88. package/.claude/get-shit-done/templates/planner-subagent-prompt.md +117 -0
  89. package/.claude/get-shit-done/templates/project.md +184 -0
  90. package/.claude/get-shit-done/templates/requirements.md +231 -0
  91. package/.claude/get-shit-done/templates/research-project/ARCHITECTURE.md +204 -0
  92. package/.claude/get-shit-done/templates/research-project/FEATURES.md +147 -0
  93. package/.claude/get-shit-done/templates/research-project/PITFALLS.md +200 -0
  94. package/.claude/get-shit-done/templates/research-project/STACK.md +120 -0
  95. package/.claude/get-shit-done/templates/research-project/SUMMARY.md +170 -0
  96. package/.claude/get-shit-done/templates/research.md +552 -0
  97. package/.claude/get-shit-done/templates/retrospective.md +54 -0
  98. package/.claude/get-shit-done/templates/roadmap.md +202 -0
  99. package/.claude/get-shit-done/templates/state.md +176 -0
  100. package/.claude/get-shit-done/templates/summary-complex.md +59 -0
  101. package/.claude/get-shit-done/templates/summary-minimal.md +41 -0
  102. package/.claude/get-shit-done/templates/summary-standard.md +48 -0
  103. package/.claude/get-shit-done/templates/summary.md +248 -0
  104. package/.claude/get-shit-done/templates/user-setup.md +311 -0
  105. package/.claude/get-shit-done/templates/verification-report.md +322 -0
  106. package/.claude/get-shit-done/workflows/add-phase.md +111 -0
  107. package/.claude/get-shit-done/workflows/add-tests.md +350 -0
  108. package/.claude/get-shit-done/workflows/add-todo.md +157 -0
  109. package/.claude/get-shit-done/workflows/audit-milestone.md +297 -0
  110. package/.claude/get-shit-done/workflows/check-todos.md +176 -0
  111. package/.claude/get-shit-done/workflows/cleanup.md +152 -0
  112. package/.claude/get-shit-done/workflows/complete-milestone.md +763 -0
  113. package/.claude/get-shit-done/workflows/diagnose-issues.md +219 -0
  114. package/.claude/get-shit-done/workflows/discovery-phase.md +289 -0
  115. package/.claude/get-shit-done/workflows/discuss-phase.md +542 -0
  116. package/.claude/get-shit-done/workflows/execute-phase.md +449 -0
  117. package/.claude/get-shit-done/workflows/execute-plan.md +448 -0
  118. package/.claude/get-shit-done/workflows/health.md +156 -0
  119. package/.claude/get-shit-done/workflows/help.md +489 -0
  120. package/.claude/get-shit-done/workflows/insert-phase.md +129 -0
  121. package/.claude/get-shit-done/workflows/list-phase-assumptions.md +178 -0
  122. package/.claude/get-shit-done/workflows/map-codebase.md +315 -0
  123. package/.claude/get-shit-done/workflows/new-milestone.md +382 -0
  124. package/.claude/get-shit-done/workflows/new-project.md +1116 -0
  125. package/.claude/get-shit-done/workflows/pause-work.md +122 -0
  126. package/.claude/get-shit-done/workflows/plan-milestone-gaps.md +274 -0
  127. package/.claude/get-shit-done/workflows/plan-phase.md +569 -0
  128. package/.claude/get-shit-done/workflows/progress.md +381 -0
  129. package/.claude/get-shit-done/workflows/quick.md +453 -0
  130. package/.claude/get-shit-done/workflows/remove-phase.md +154 -0
  131. package/.claude/get-shit-done/workflows/research-phase.md +73 -0
  132. package/.claude/get-shit-done/workflows/resume-project.md +306 -0
  133. package/.claude/get-shit-done/workflows/set-profile.md +80 -0
  134. package/.claude/get-shit-done/workflows/settings.md +213 -0
  135. package/.claude/get-shit-done/workflows/transition.md +544 -0
  136. package/.claude/get-shit-done/workflows/update.md +219 -0
  137. package/.claude/get-shit-done/workflows/verify-phase.md +242 -0
  138. package/.claude/get-shit-done/workflows/verify-work.md +569 -0
  139. package/.claude/gsd-file-manifest.json +144 -0
  140. package/.claude/hooks/gsd-check-update.js +62 -0
  141. package/.claude/hooks/gsd-context-monitor.js +122 -0
  142. package/.claude/hooks/gsd-statusline.js +108 -0
  143. package/.claude/package.json +1 -0
  144. package/.claude/settings.json +49 -0
  145. package/dist/commands/generate.d.ts.map +1 -1
  146. package/dist/commands/generate.js +18 -8
  147. package/dist/commands/generate.js.map +1 -1
  148. package/dist/services/analyzerService.d.ts.map +1 -1
  149. package/dist/services/analyzerService.js +10 -0
  150. package/dist/services/analyzerService.js.map +1 -1
  151. package/dist/services/descriptionGenerator.d.ts.map +1 -1
  152. package/dist/services/descriptionGenerator.js +56 -14
  153. package/dist/services/descriptionGenerator.js.map +1 -1
  154. package/dist/services/fileContentAnalyzer.js +136 -17
  155. package/dist/services/fileContentAnalyzer.js.map +1 -1
  156. package/dist/services/fileContentAnalyzer.test.js +64 -0
  157. package/dist/services/fileContentAnalyzer.test.js.map +1 -1
  158. package/dist/services/semanticAnalyzer.js +20 -0
  159. package/dist/services/semanticAnalyzer.js.map +1 -1
  160. package/package.json +1 -1
@@ -0,0 +1,381 @@
1
+ <purpose>
2
+ Check project progress, summarize recent work and what's ahead, then intelligently route to the next action — either executing an existing plan or creating the next one. Provides situational awareness before continuing work.
3
+ </purpose>
4
+
5
+ <required_reading>
6
+ Read all files referenced by the invoking prompt's execution_context before starting.
7
+ </required_reading>
8
+
9
+ <process>
10
+
11
+ <step name="init_context">
12
+ **Load progress context (paths only):**
13
+
14
+ ```bash
15
+ INIT=$(node ./.claude/get-shit-done/bin/gsd-tools.cjs init progress)
16
+ ```
17
+
18
+ Extract from init JSON: `project_exists`, `roadmap_exists`, `state_exists`, `phases`, `current_phase`, `next_phase`, `milestone_version`, `completed_count`, `phase_count`, `paused_at`, `state_path`, `roadmap_path`, `project_path`, `config_path`.
19
+
20
+ If `project_exists` is false (no `.planning/` directory):
21
+
22
+ ```
23
+ No planning structure found.
24
+
25
+ Run /gsd:new-project to start a new project.
26
+ ```
27
+
28
+ Exit.
29
+
30
+ If missing STATE.md: suggest `/gsd:new-project`.
31
+
32
+ **If ROADMAP.md missing but PROJECT.md exists:**
33
+
34
+ This means a milestone was completed and archived. Go to **Route F** (between milestones).
35
+
36
+ If missing both ROADMAP.md and PROJECT.md: suggest `/gsd:new-project`.
37
+ </step>
38
+
39
+ <step name="load">
40
+ **Use structured extraction from gsd-tools:**
41
+
42
+ Instead of reading full files, use targeted tools to get only the data needed for the report:
43
+ - `ROADMAP=$(node ./.claude/get-shit-done/bin/gsd-tools.cjs roadmap analyze)`
44
+ - `STATE=$(node ./.claude/get-shit-done/bin/gsd-tools.cjs state-snapshot)`
45
+
46
+ This minimizes orchestrator context usage.
47
+ </step>
48
+
49
+ <step name="analyze_roadmap">
50
+ **Get comprehensive roadmap analysis (replaces manual parsing):**
51
+
52
+ ```bash
53
+ ROADMAP=$(node ./.claude/get-shit-done/bin/gsd-tools.cjs roadmap analyze)
54
+ ```
55
+
56
+ This returns structured JSON with:
57
+ - All phases with disk status (complete/partial/planned/empty/no_directory)
58
+ - Goal and dependencies per phase
59
+ - Plan and summary counts per phase
60
+ - Aggregated stats: total plans, summaries, progress percent
61
+ - Current and next phase identification
62
+
63
+ Use this instead of manually reading/parsing ROADMAP.md.
64
+ </step>
65
+
66
+ <step name="recent">
67
+ **Gather recent work context:**
68
+
69
+ - Find the 2-3 most recent SUMMARY.md files
70
+ - Use `summary-extract` for efficient parsing:
71
+ ```bash
72
+ node ./.claude/get-shit-done/bin/gsd-tools.cjs summary-extract <path> --fields one_liner
73
+ ```
74
+ - This shows "what we've been working on"
75
+ </step>
76
+
77
+ <step name="position">
78
+ **Parse current position from init context and roadmap analysis:**
79
+
80
+ - Use `current_phase` and `next_phase` from `$ROADMAP`
81
+ - Note `paused_at` if work was paused (from `$STATE`)
82
+ - Count pending todos: use `init todos` or `list-todos`
83
+ - Check for active debug sessions: `ls .planning/debug/*.md 2>/dev/null | grep -v resolved | wc -l`
84
+ </step>
85
+
86
+ <step name="report">
87
+ **Generate progress bar from gsd-tools, then present rich status report:**
88
+
89
+ ```bash
90
+ # Get formatted progress bar
91
+ PROGRESS_BAR=$(node ./.claude/get-shit-done/bin/gsd-tools.cjs progress bar --raw)
92
+ ```
93
+
94
+ Present:
95
+
96
+ ```
97
+ # [Project Name]
98
+
99
+ **Progress:** {PROGRESS_BAR}
100
+ **Profile:** [quality/balanced/budget]
101
+
102
+ ## Recent Work
103
+ - [Phase X, Plan Y]: [what was accomplished - 1 line from summary-extract]
104
+ - [Phase X, Plan Z]: [what was accomplished - 1 line from summary-extract]
105
+
106
+ ## Current Position
107
+ Phase [N] of [total]: [phase-name]
108
+ Plan [M] of [phase-total]: [status]
109
+ CONTEXT: [✓ if has_context | - if not]
110
+
111
+ ## Key Decisions Made
112
+ - [extract from $STATE.decisions[]]
113
+ - [e.g. jq -r '.decisions[].decision' from state-snapshot]
114
+
115
+ ## Blockers/Concerns
116
+ - [extract from $STATE.blockers[]]
117
+ - [e.g. jq -r '.blockers[].text' from state-snapshot]
118
+
119
+ ## Pending Todos
120
+ - [count] pending — /gsd:check-todos to review
121
+
122
+ ## Active Debug Sessions
123
+ - [count] active — /gsd:debug to continue
124
+ (Only show this section if count > 0)
125
+
126
+ ## What's Next
127
+ [Next phase/plan objective from roadmap analyze]
128
+ ```
129
+
130
+ </step>
131
+
132
+ <step name="route">
133
+ **Determine next action based on verified counts.**
134
+
135
+ **Step 1: Count plans, summaries, and issues in current phase**
136
+
137
+ List files in the current phase directory:
138
+
139
+ ```bash
140
+ ls -1 .planning/phases/[current-phase-dir]/*-PLAN.md 2>/dev/null | wc -l
141
+ ls -1 .planning/phases/[current-phase-dir]/*-SUMMARY.md 2>/dev/null | wc -l
142
+ ls -1 .planning/phases/[current-phase-dir]/*-UAT.md 2>/dev/null | wc -l
143
+ ```
144
+
145
+ State: "This phase has {X} plans, {Y} summaries."
146
+
147
+ **Step 1.5: Check for unaddressed UAT gaps**
148
+
149
+ Check for UAT.md files with status "diagnosed" (has gaps needing fixes).
150
+
151
+ ```bash
152
+ # Check for diagnosed UAT with gaps
153
+ grep -l "status: diagnosed" .planning/phases/[current-phase-dir]/*-UAT.md 2>/dev/null
154
+ ```
155
+
156
+ Track:
157
+ - `uat_with_gaps`: UAT.md files with status "diagnosed" (gaps need fixing)
158
+
159
+ **Step 2: Route based on counts**
160
+
161
+ | Condition | Meaning | Action |
162
+ |-----------|---------|--------|
163
+ | uat_with_gaps > 0 | UAT gaps need fix plans | Go to **Route E** |
164
+ | summaries < plans | Unexecuted plans exist | Go to **Route A** |
165
+ | summaries = plans AND plans > 0 | Phase complete | Go to Step 3 |
166
+ | plans = 0 | Phase not yet planned | Go to **Route B** |
167
+
168
+ ---
169
+
170
+ **Route A: Unexecuted plan exists**
171
+
172
+ Find the first PLAN.md without matching SUMMARY.md.
173
+ Read its `<objective>` section.
174
+
175
+ ```
176
+ ---
177
+
178
+ ## ▶ Next Up
179
+
180
+ **{phase}-{plan}: [Plan Name]** — [objective summary from PLAN.md]
181
+
182
+ `/gsd:execute-phase {phase}`
183
+
184
+ <sub>`/clear` first → fresh context window</sub>
185
+
186
+ ---
187
+ ```
188
+
189
+ ---
190
+
191
+ **Route B: Phase needs planning**
192
+
193
+ Check if `{phase_num}-CONTEXT.md` exists in phase directory.
194
+
195
+ **If CONTEXT.md exists:**
196
+
197
+ ```
198
+ ---
199
+
200
+ ## ▶ Next Up
201
+
202
+ **Phase {N}: {Name}** — {Goal from ROADMAP.md}
203
+ <sub>✓ Context gathered, ready to plan</sub>
204
+
205
+ `/gsd:plan-phase {phase-number}`
206
+
207
+ <sub>`/clear` first → fresh context window</sub>
208
+
209
+ ---
210
+ ```
211
+
212
+ **If CONTEXT.md does NOT exist:**
213
+
214
+ ```
215
+ ---
216
+
217
+ ## ▶ Next Up
218
+
219
+ **Phase {N}: {Name}** — {Goal from ROADMAP.md}
220
+
221
+ `/gsd:discuss-phase {phase}` — gather context and clarify approach
222
+
223
+ <sub>`/clear` first → fresh context window</sub>
224
+
225
+ ---
226
+
227
+ **Also available:**
228
+ - `/gsd:plan-phase {phase}` — skip discussion, plan directly
229
+ - `/gsd:list-phase-assumptions {phase}` — see Claude's assumptions
230
+
231
+ ---
232
+ ```
233
+
234
+ ---
235
+
236
+ **Route E: UAT gaps need fix plans**
237
+
238
+ UAT.md exists with gaps (diagnosed issues). User needs to plan fixes.
239
+
240
+ ```
241
+ ---
242
+
243
+ ## ⚠ UAT Gaps Found
244
+
245
+ **{phase_num}-UAT.md** has {N} gaps requiring fixes.
246
+
247
+ `/gsd:plan-phase {phase} --gaps`
248
+
249
+ <sub>`/clear` first → fresh context window</sub>
250
+
251
+ ---
252
+
253
+ **Also available:**
254
+ - `/gsd:execute-phase {phase}` — execute phase plans
255
+ - `/gsd:verify-work {phase}` — run more UAT testing
256
+
257
+ ---
258
+ ```
259
+
260
+ ---
261
+
262
+ **Step 3: Check milestone status (only when phase complete)**
263
+
264
+ Read ROADMAP.md and identify:
265
+ 1. Current phase number
266
+ 2. All phase numbers in the current milestone section
267
+
268
+ Count total phases and identify the highest phase number.
269
+
270
+ State: "Current phase is {X}. Milestone has {N} phases (highest: {Y})."
271
+
272
+ **Route based on milestone status:**
273
+
274
+ | Condition | Meaning | Action |
275
+ |-----------|---------|--------|
276
+ | current phase < highest phase | More phases remain | Go to **Route C** |
277
+ | current phase = highest phase | Milestone complete | Go to **Route D** |
278
+
279
+ ---
280
+
281
+ **Route C: Phase complete, more phases remain**
282
+
283
+ Read ROADMAP.md to get the next phase's name and goal.
284
+
285
+ ```
286
+ ---
287
+
288
+ ## ✓ Phase {Z} Complete
289
+
290
+ ## ▶ Next Up
291
+
292
+ **Phase {Z+1}: {Name}** — {Goal from ROADMAP.md}
293
+
294
+ `/gsd:discuss-phase {Z+1}` — gather context and clarify approach
295
+
296
+ <sub>`/clear` first → fresh context window</sub>
297
+
298
+ ---
299
+
300
+ **Also available:**
301
+ - `/gsd:plan-phase {Z+1}` — skip discussion, plan directly
302
+ - `/gsd:verify-work {Z}` — user acceptance test before continuing
303
+
304
+ ---
305
+ ```
306
+
307
+ ---
308
+
309
+ **Route D: Milestone complete**
310
+
311
+ ```
312
+ ---
313
+
314
+ ## 🎉 Milestone Complete
315
+
316
+ All {N} phases finished!
317
+
318
+ ## ▶ Next Up
319
+
320
+ **Complete Milestone** — archive and prepare for next
321
+
322
+ `/gsd:complete-milestone`
323
+
324
+ <sub>`/clear` first → fresh context window</sub>
325
+
326
+ ---
327
+
328
+ **Also available:**
329
+ - `/gsd:verify-work` — user acceptance test before completing milestone
330
+
331
+ ---
332
+ ```
333
+
334
+ ---
335
+
336
+ **Route F: Between milestones (ROADMAP.md missing, PROJECT.md exists)**
337
+
338
+ A milestone was completed and archived. Ready to start the next milestone cycle.
339
+
340
+ Read MILESTONES.md to find the last completed milestone version.
341
+
342
+ ```
343
+ ---
344
+
345
+ ## ✓ Milestone v{X.Y} Complete
346
+
347
+ Ready to plan the next milestone.
348
+
349
+ ## ▶ Next Up
350
+
351
+ **Start Next Milestone** — questioning → research → requirements → roadmap
352
+
353
+ `/gsd:new-milestone`
354
+
355
+ <sub>`/clear` first → fresh context window</sub>
356
+
357
+ ---
358
+ ```
359
+
360
+ </step>
361
+
362
+ <step name="edge_cases">
363
+ **Handle edge cases:**
364
+
365
+ - Phase complete but next phase not planned → offer `/gsd:plan-phase [next]`
366
+ - All work complete → offer milestone completion
367
+ - Blockers present → highlight before offering to continue
368
+ - Handoff file exists → mention it, offer `/gsd:resume-work`
369
+ </step>
370
+
371
+ </process>
372
+
373
+ <success_criteria>
374
+
375
+ - [ ] Rich context provided (recent work, decisions, issues)
376
+ - [ ] Current position clear with visual progress
377
+ - [ ] What's next clearly explained
378
+ - [ ] Smart routing: /gsd:execute-phase if plans exist, /gsd:plan-phase if not
379
+ - [ ] User confirms before any action
380
+ - [ ] Seamless handoff to appropriate gsd command
381
+ </success_criteria>