gsd-opencode 1.10.2 → 1.20.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 (164) hide show
  1. package/agents/gsd-codebase-mapper.md +29 -3
  2. package/agents/gsd-debugger.md +19 -21
  3. package/agents/gsd-executor.md +213 -528
  4. package/agents/gsd-integration-checker.md +20 -0
  5. package/agents/gsd-phase-researcher.md +189 -267
  6. package/agents/gsd-plan-checker.md +278 -279
  7. package/agents/gsd-planner.md +299 -490
  8. package/agents/gsd-project-researcher.md +103 -345
  9. package/agents/gsd-research-synthesizer.md +5 -22
  10. package/agents/gsd-roadmapper.md +43 -6
  11. package/agents/gsd-verifier.md +158 -377
  12. package/{lib → bin/dm/lib}/constants.js +10 -3
  13. package/{src → bin/dm/src}/commands/install.js +5 -4
  14. package/{src → bin/dm/src}/commands/uninstall.js +3 -1
  15. package/{src → bin/dm/src}/services/backup-manager.js +1 -1
  16. package/{src → bin/dm/src}/services/config.js +1 -1
  17. package/{src → bin/dm/src}/services/file-ops.js +20 -4
  18. package/{src → bin/dm/src}/services/health-checker.js +3 -1
  19. package/{src → bin/dm/src}/services/repair-service.js +3 -1
  20. package/{src → bin/dm/src}/services/settings.js +1 -1
  21. package/{src → bin/dm/src}/services/update-service.js +2 -2
  22. package/bin/gsd-install.js +0 -0
  23. package/bin/gsd.js +9 -9
  24. package/commands/gsd/gsd-add-phase.md +43 -0
  25. package/commands/gsd/gsd-add-todo.md +47 -0
  26. package/commands/gsd/gsd-audit-milestone.md +36 -0
  27. package/commands/gsd/gsd-check-todos.md +45 -0
  28. package/commands/gsd/gsd-cleanup.md +18 -0
  29. package/commands/gsd/{complete-milestone.md → gsd-complete-milestone.md} +1 -1
  30. package/commands/gsd/{debug.md → gsd-debug.md} +16 -21
  31. package/commands/gsd/{discuss-phase.md → gsd-discuss-phase.md} +6 -9
  32. package/commands/gsd/gsd-execute-phase.md +41 -0
  33. package/commands/gsd/gsd-health.md +22 -0
  34. package/commands/gsd/gsd-help.md +22 -0
  35. package/commands/gsd/gsd-insert-phase.md +32 -0
  36. package/commands/gsd/gsd-join-discord.md +18 -0
  37. package/commands/gsd/{list-phase-assumptions.md → gsd-list-phase-assumptions.md} +3 -7
  38. package/commands/gsd/{map-codebase.md → gsd-map-codebase.md} +3 -3
  39. package/commands/gsd/gsd-new-milestone.md +44 -0
  40. package/commands/gsd/gsd-new-project.md +42 -0
  41. package/commands/gsd/gsd-pause-work.md +38 -0
  42. package/commands/gsd/gsd-plan-milestone-gaps.md +34 -0
  43. package/commands/gsd/gsd-plan-phase.md +44 -0
  44. package/commands/gsd/gsd-progress.md +24 -0
  45. package/commands/gsd/gsd-quick.md +41 -0
  46. package/commands/gsd/gsd-reapply-patches.md +119 -0
  47. package/commands/gsd/gsd-remove-phase.md +31 -0
  48. package/commands/gsd/{research-phase.md → gsd-research-phase.md} +38 -49
  49. package/commands/gsd/{resume-work.md → gsd-resume-work.md} +2 -2
  50. package/commands/gsd/gsd-set-profile.md +34 -0
  51. package/commands/gsd/gsd-settings.md +36 -0
  52. package/commands/gsd/gsd-update.md +37 -0
  53. package/commands/gsd/gsd-verify-work.md +38 -0
  54. package/get-shit-done/bin/gsd-tools.cjs +553 -0
  55. package/get-shit-done/bin/gsd-tools.test.cjs +2346 -0
  56. package/get-shit-done/bin/lib/commands.cjs +556 -0
  57. package/get-shit-done/bin/lib/config.cjs +162 -0
  58. package/get-shit-done/bin/lib/core.cjs +377 -0
  59. package/get-shit-done/bin/lib/frontmatter.cjs +299 -0
  60. package/get-shit-done/bin/lib/init.cjs +694 -0
  61. package/get-shit-done/bin/lib/milestone.cjs +215 -0
  62. package/get-shit-done/bin/lib/phase.cjs +877 -0
  63. package/get-shit-done/bin/lib/roadmap.cjs +298 -0
  64. package/get-shit-done/bin/lib/state.cjs +490 -0
  65. package/get-shit-done/bin/lib/template.cjs +222 -0
  66. package/get-shit-done/bin/lib/verify.cjs +772 -0
  67. package/get-shit-done/references/checkpoints.md +62 -364
  68. package/get-shit-done/references/decimal-phase-calculation.md +65 -0
  69. package/get-shit-done/references/git-integration.md +10 -16
  70. package/get-shit-done/references/git-planning-commit.md +38 -0
  71. package/get-shit-done/references/model-profile-resolution.md +34 -0
  72. package/get-shit-done/references/model-profiles.md +54 -66
  73. package/get-shit-done/references/phase-argument-parsing.md +61 -0
  74. package/get-shit-done/references/planning-config.md +112 -10
  75. package/get-shit-done/references/questioning.md +4 -0
  76. package/get-shit-done/references/ui-brand.md +1 -1
  77. package/get-shit-done/templates/UAT.md +1 -1
  78. package/get-shit-done/templates/VALIDATION.md +104 -0
  79. package/get-shit-done/templates/codebase/structure.md +6 -6
  80. package/get-shit-done/templates/config.json +37 -0
  81. package/get-shit-done/templates/context.md +2 -10
  82. package/get-shit-done/templates/continue-here.md +6 -6
  83. package/get-shit-done/templates/debug-subagent-prompt.md +2 -2
  84. package/get-shit-done/templates/discovery.md +6 -6
  85. package/get-shit-done/templates/milestone-archive.md +3 -3
  86. package/get-shit-done/templates/phase-prompt.md +9 -7
  87. package/get-shit-done/templates/planner-subagent-prompt.md +6 -6
  88. package/get-shit-done/templates/research-project/ARCHITECTURE.md +1 -1
  89. package/get-shit-done/templates/research.md +29 -6
  90. package/get-shit-done/templates/roadmap.md +1 -1
  91. package/get-shit-done/templates/state.md +0 -30
  92. package/get-shit-done/templates/summary-complex.md +59 -0
  93. package/get-shit-done/templates/summary-minimal.md +41 -0
  94. package/get-shit-done/templates/summary-standard.md +48 -0
  95. package/get-shit-done/templates/summary.md +16 -37
  96. package/get-shit-done/templates/user-setup.md +1 -13
  97. package/get-shit-done/templates/verification-report.md +5 -5
  98. package/get-shit-done/workflows/add-phase.md +111 -0
  99. package/{commands/gsd → get-shit-done/workflows}/add-todo.md +24 -60
  100. package/{commands/gsd → get-shit-done/workflows}/audit-milestone.md +83 -63
  101. package/{commands/gsd → get-shit-done/workflows}/check-todos.md +21 -73
  102. package/get-shit-done/workflows/cleanup.md +152 -0
  103. package/get-shit-done/workflows/complete-milestone.md +251 -312
  104. package/get-shit-done/workflows/diagnose-issues.md +6 -31
  105. package/get-shit-done/workflows/discovery-phase.md +11 -11
  106. package/get-shit-done/workflows/discuss-phase.md +156 -49
  107. package/get-shit-done/workflows/execute-phase.md +238 -396
  108. package/get-shit-done/workflows/execute-plan.md +180 -1609
  109. package/get-shit-done/workflows/health.md +156 -0
  110. package/{commands/gsd → get-shit-done/workflows}/help.md +33 -35
  111. package/get-shit-done/workflows/insert-phase.md +129 -0
  112. package/get-shit-done/workflows/list-phase-assumptions.md +3 -3
  113. package/get-shit-done/workflows/map-codebase.md +73 -80
  114. package/get-shit-done/workflows/new-milestone.md +382 -0
  115. package/{commands/gsd → get-shit-done/workflows}/new-project.md +281 -234
  116. package/get-shit-done/workflows/oc-set-profile.md +320 -0
  117. package/{commands/gsd → get-shit-done/workflows}/pause-work.md +31 -43
  118. package/{commands/gsd → get-shit-done/workflows}/plan-milestone-gaps.md +29 -50
  119. package/get-shit-done/workflows/plan-phase.md +478 -0
  120. package/{commands/gsd → get-shit-done/workflows}/progress.md +64 -47
  121. package/get-shit-done/workflows/quick.md +453 -0
  122. package/get-shit-done/workflows/remove-phase.md +154 -0
  123. package/get-shit-done/workflows/research-phase.md +73 -0
  124. package/get-shit-done/workflows/resume-project.md +17 -26
  125. package/get-shit-done/workflows/set-profile.md +80 -0
  126. package/get-shit-done/workflows/settings.md +213 -0
  127. package/get-shit-done/workflows/transition.md +84 -104
  128. package/{commands/gsd → get-shit-done/workflows}/update.md +70 -28
  129. package/get-shit-done/workflows/verify-phase.md +106 -492
  130. package/get-shit-done/workflows/verify-work.md +26 -53
  131. package/package.json +7 -4
  132. package/rules/gsd-oc-work-hard.md +36 -0
  133. package/skills/gsd-oc-select-model/SKILL.md +348 -0
  134. package/skills/gsd-oc-select-model/scripts/select-models.cjs +268 -0
  135. package/agents/gsd-set-model.md +0 -287
  136. package/agents/gsd-set-profile.md +0 -239
  137. package/agents/gsd-settings.md +0 -749
  138. package/bin/install.js +0 -323
  139. package/commands/gsd/add-phase.md +0 -207
  140. package/commands/gsd/execute-phase.md +0 -339
  141. package/commands/gsd/insert-phase.md +0 -227
  142. package/commands/gsd/new-milestone.md +0 -721
  143. package/commands/gsd/plan-phase.md +0 -525
  144. package/commands/gsd/quick.md +0 -309
  145. package/commands/gsd/remove-phase.md +0 -349
  146. package/commands/gsd/set-model.md +0 -77
  147. package/commands/gsd/set-profile.md +0 -46
  148. package/commands/gsd/settings.md +0 -33
  149. package/commands/gsd/verify-work.md +0 -219
  150. package/commands/gsd/whats-new.md +0 -124
  151. /package/{src → bin/dm/src}/commands/check.js +0 -0
  152. /package/{src → bin/dm/src}/commands/config.js +0 -0
  153. /package/{src → bin/dm/src}/commands/list.js +0 -0
  154. /package/{src → bin/dm/src}/commands/repair.js +0 -0
  155. /package/{src → bin/dm/src}/commands/update.js +0 -0
  156. /package/{src → bin/dm/src}/services/manifest-manager.js +0 -0
  157. /package/{src → bin/dm/src}/services/migration-service.js +0 -0
  158. /package/{src → bin/dm/src}/services/scope-manager.js +0 -0
  159. /package/{src → bin/dm/src}/services/structure-detector.js +0 -0
  160. /package/{src → bin/dm/src}/utils/hash.js +0 -0
  161. /package/{src → bin/dm/src}/utils/interactive.js +0 -0
  162. /package/{src → bin/dm/src}/utils/logger.js +0 -0
  163. /package/{src → bin/dm/src}/utils/npm-registry.js +0 -0
  164. /package/{src → bin/dm/src}/utils/path-resolver.js +0 -0
@@ -1,339 +0,0 @@
1
- ---
2
- name: gsd-execute-phase
3
- description: Execute all plans in a phase with wave-based parallelization
4
- argument-hint: "<phase-number> [--gaps-only]"
5
- tools:
6
- - read
7
- - write
8
- - edit
9
- - glob
10
- - grep
11
- - bash
12
-
13
- - todowrite
14
- - question
15
- ---
16
-
17
- <objective>
18
- Execute all plans in a phase using wave-based parallel execution.
19
-
20
- Orchestrator stays lean: discover plans, analyze dependencies, group into waves, spawn subagents, collect results. Each subagent loads the full execute-plan context and handles its own plan.
21
-
22
- Context budget: ~15% orchestrator, 100% fresh per subagent.
23
- </objective>
24
-
25
- <execution_context>
26
- @~/.config/opencode/get-shit-done/references/ui-brand.md
27
- @~/.config/opencode/get-shit-done/workflows/execute-phase.md
28
- </execution_context>
29
-
30
- <context>
31
- Phase: `$ARGUMENTS`
32
-
33
- **Flags:**
34
- - `--gaps-only` — Execute only gap closure plans (plans with `gap_closure: true` in frontmatter). Use after verify-work creates fix plans.
35
-
36
- @.planning/ROADMAP.md
37
- @.planning/STATE.md
38
- </context>
39
-
40
- <process>
41
- 0. **Resolve Model Profile**
42
-
43
- read model profile for agent spawning:
44
- ```bash
45
- MODEL_PROFILE=$(cat .planning/config.json 2>/dev/null | grep -o '"model_profile"[[:space:]]*:[[:space:]]*"[^"]*"' | grep -o '"[^"]*"$' | tr -d '"' || echo "balanced")
46
- ```
47
-
48
- Default to "balanced" if not set.
49
-
50
- **Model lookup table:**
51
-
52
- | Agent | quality | balanced | budget |
53
- |-------|---------|----------|--------|
54
- | gsd-executor | opus | sonnet | sonnet |
55
- | gsd-verifier | sonnet | sonnet | haiku |
56
-
57
- Store resolved models for use in Task calls below.
58
-
59
- 1. **Validate phase exists**
60
- - Find phase directory matching argument
61
- - Count PLAN.md files
62
- - Error if no plans found
63
-
64
- 2. **Discover plans**
65
- - List all *-PLAN.md files in phase directory
66
- - Check which have *-SUMMARY.md (already complete)
67
- - If `--gaps-only`: filter to only plans with `gap_closure: true`
68
- - Build list of incomplete plans
69
-
70
- 3. **Group by wave**
71
- - read `wave` from each plan's frontmatter
72
- - Group plans by wave number
73
- - Report wave structure to user
74
-
75
- 4. **Execute waves**
76
- For each wave in order:
77
- - Spawn `gsd-executor` for each plan in wave (parallel Task calls)
78
- - Wait for completion (Task blocks)
79
- - Verify SUMMARYs created
80
- - Proceed to next wave
81
-
82
- 5. **Aggregate results**
83
- - Collect summaries from all plans
84
- - Report phase completion status
85
-
86
- 6. **Commit any orchestrator corrections**
87
- Check for uncommitted changes before verification:
88
- ```bash
89
- git status --porcelain
90
- ```
91
-
92
- **If changes exist:** Orchestrator made corrections between executor completions. Commit them:
93
- ```bash
94
- git add -u && git commit -m "fix({phase}): orchestrator corrections"
95
- ```
96
-
97
- **If clean:** Continue to verification.
98
-
99
- 7. **Verify phase goal**
100
- Check config: `WORKFLOW_VERIFIER=$(cat .planning/config.json 2>/dev/null | grep -o '"verifier"[[:space:]]*:[[:space:]]*[^,}]*' | grep -o 'true\|false' || echo "true")`
101
-
102
- **If `workflow.verifier` is `false`:** Skip to step 8 (treat as passed).
103
-
104
- **Otherwise:**
105
- - Spawn `gsd-verifier` subagent with phase directory and goal
106
- - Verifier checks must_haves against actual codebase (not SUMMARY claims)
107
- - Creates VERIFICATION.md with detailed report
108
- - Route by status:
109
- - `passed` → continue to step 8
110
- - `human_needed` → present items, get approval or feedback
111
- - `gaps_found` → present gaps, offer `/gsd-plan-phase {X} --gaps`
112
-
113
- 8. **Update roadmap and state**
114
- - Update ROADMAP.md, STATE.md
115
-
116
- 9. **Update requirements**
117
- Mark phase requirements as Complete:
118
- - read ROADMAP.md, find this phase's `Requirements:` line (e.g., "AUTH-01, AUTH-02")
119
- - read REQUIREMENTS.md traceability table
120
- - For each REQ-ID in this phase: change Status from "Pending" to "Complete"
121
- - write updated REQUIREMENTS.md
122
- - Skip if: REQUIREMENTS.md doesn't exist, or phase has no Requirements line
123
-
124
- 10. **Commit phase completion**
125
- Check `COMMIT_PLANNING_DOCS` from config.json (default: true).
126
- If false: Skip git operations for .planning/ files.
127
- If true: Bundle all phase metadata updates in one commit:
128
- - Stage: `git add .planning/ROADMAP.md .planning/STATE.md`
129
- - Stage REQUIREMENTS.md if updated: `git add .planning/REQUIREMENTS.md`
130
- - Commit: `docs({phase}): complete {phase-name} phase`
131
-
132
- 11. **Offer next steps**
133
- - Route to next action (see `<offer_next>`)
134
- </process>
135
-
136
- <offer_next>
137
- Output this markdown directly (not as a code block). Route based on status:
138
-
139
- | Status | Route |
140
- |--------|-------|
141
- | `gaps_found` | Route C (gap closure) |
142
- | `human_needed` | Present checklist, then re-route based on approval |
143
- | `passed` + more phases | Route A (next phase) |
144
- | `passed` + last phase | Route B (milestone complete) |
145
-
146
- ---
147
-
148
- **Route A: Phase verified, more phases remain**
149
-
150
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
151
- GSD ► PHASE {Z} COMPLETE ✓
152
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
153
-
154
- **Phase {Z}: {Name}**
155
-
156
- {Y} plans executed
157
- Goal verified ✓
158
-
159
- ───────────────────────────────────────────────────────────────
160
-
161
- ## ▶ Next Up
162
-
163
- **Phase {Z+1}: {Name}** — {Goal from ROADMAP.md}
164
-
165
- /gsd-discuss-phase {Z+1} — gather context and clarify approach
166
-
167
- */new first → fresh context window*
168
-
169
- ───────────────────────────────────────────────────────────────
170
-
171
- **Also available:**
172
- - /gsd-plan-phase {Z+1} — skip discussion, plan directly
173
- - /gsd-verify-work {Z} — manual acceptance testing before continuing
174
-
175
- ───────────────────────────────────────────────────────────────
176
-
177
- ---
178
-
179
- **Route B: Phase verified, milestone complete**
180
-
181
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
182
- GSD ► MILESTONE COMPLETE 🎉
183
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
184
-
185
- **v1.0**
186
-
187
- {N} phases completed
188
- All phase goals verified ✓
189
-
190
- ───────────────────────────────────────────────────────────────
191
-
192
- ## ▶ Next Up
193
-
194
- **Audit milestone** — verify requirements, cross-phase integration, E2E flows
195
-
196
- /gsd-audit-milestone
197
-
198
- */new first → fresh context window*
199
-
200
- ───────────────────────────────────────────────────────────────
201
-
202
- **Also available:**
203
- - /gsd-verify-work — manual acceptance testing
204
- - /gsd-complete-milestone — skip audit, archive directly
205
-
206
- ───────────────────────────────────────────────────────────────
207
-
208
- ---
209
-
210
- **Route C: Gaps found — need additional planning**
211
-
212
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
213
- GSD ► PHASE {Z} GAPS FOUND ⚠
214
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
215
-
216
- **Phase {Z}: {Name}**
217
-
218
- Score: {N}/{M} must-haves verified
219
- Report: .planning/phases/{phase_dir}/{phase}-VERIFICATION.md
220
-
221
- ### What's Missing
222
-
223
- {Extract gap summaries from VERIFICATION.md}
224
-
225
- ───────────────────────────────────────────────────────────────
226
-
227
- ## ▶ Next Up
228
-
229
- **Plan gap closure** — create additional plans to complete the phase
230
-
231
- /gsd-plan-phase {Z} --gaps
232
-
233
- */new first → fresh context window*
234
-
235
- ───────────────────────────────────────────────────────────────
236
-
237
- **Also available:**
238
- - cat .planning/phases/{phase_dir}/{phase}-VERIFICATION.md — see full report
239
- - /gsd-verify-work {Z} — manual testing before planning
240
-
241
- ───────────────────────────────────────────────────────────────
242
-
243
- ---
244
-
245
- After user runs /gsd-plan-phase {Z} --gaps:
246
- 1. Planner reads VERIFICATION.md gaps
247
- 2. Creates plans 04, 05, etc. to close gaps
248
- 3. User runs /gsd-execute-phase {Z} again
249
- 4. Execute-phase runs incomplete plans (04, 05...)
250
- 5. Verifier runs again → loop until passed
251
- </offer_next>
252
-
253
- <wave_execution>
254
- **Parallel spawning:**
255
-
256
- Before spawning, read file contents. The `@` syntax does not work across Task() boundaries.
257
-
258
- ```bash
259
- # read each plan and STATE.md
260
- PLAN_01_CONTENT=$(cat "{plan_01_path}")
261
- PLAN_02_CONTENT=$(cat "{plan_02_path}")
262
- PLAN_03_CONTENT=$(cat "{plan_03_path}")
263
- STATE_CONTENT=$(cat .planning/STATE.md)
264
- ```
265
-
266
- Spawn all plans in a wave with a single message containing multiple Task calls, with inlined content:
267
-
268
- ```
269
- Task(prompt="Execute plan at {plan_01_path}\n\nPlan:\n{plan_01_content}\n\nProject state:\n{state_content}", subagent_type="gsd-executor", model="{executor_model}")
270
- Task(prompt="Execute plan at {plan_02_path}\n\nPlan:\n{plan_02_content}\n\nProject state:\n{state_content}", subagent_type="gsd-executor", model="{executor_model}")
271
- Task(prompt="Execute plan at {plan_03_path}\n\nPlan:\n{plan_03_content}\n\nProject state:\n{state_content}", subagent_type="gsd-executor", model="{executor_model}")
272
- ```
273
-
274
- All three run in parallel. Task tool blocks until all complete.
275
-
276
- **No polling.** No background agents. No TaskOutput loops.
277
- </wave_execution>
278
-
279
- <checkpoint_handling>
280
- Plans with `autonomous: false` have checkpoints. The execute-phase.md workflow handles the full checkpoint flow:
281
- - Subagent pauses at checkpoint, returns structured state
282
- - Orchestrator presents to user, collects response
283
- - Spawns fresh continuation agent (not resume)
284
-
285
- See `@~/.config/opencode/get-shit-done/workflows/execute-phase.md` step `checkpoint_handling` for complete details.
286
- </checkpoint_handling>
287
-
288
- <deviation_rules>
289
- During execution, handle discoveries automatically:
290
-
291
- 1. **Auto-fix bugs** - Fix immediately, document in Summary
292
- 2. **Auto-add critical** - Security/correctness gaps, add and document
293
- 3. **Auto-fix blockers** - Can't proceed without fix, do it and document
294
- 4. **Ask about architectural** - Major structural changes, stop and ask user
295
-
296
- Only rule 4 requires user intervention.
297
- </deviation_rules>
298
-
299
- <commit_rules>
300
- **Per-Task Commits:**
301
-
302
- After each task completes:
303
- 1. Stage only files modified by that task
304
- 2. Commit with format: `{type}({phase}-{plan}): {task-name}`
305
- 3. Types: feat, fix, test, refactor, perf, chore
306
- 4. Record commit hash for SUMMARY.md
307
-
308
- **Plan Metadata Commit:**
309
-
310
- After all tasks in a plan complete:
311
- 1. Stage plan artifacts only: PLAN.md, SUMMARY.md
312
- 2. Commit with format: `docs({phase}-{plan}): complete [plan-name] plan`
313
- 3. NO code files (already committed per-task)
314
-
315
- **Phase Completion Commit:**
316
-
317
- After all plans in phase complete (step 7):
318
- 1. Stage: ROADMAP.md, STATE.md, REQUIREMENTS.md (if updated), VERIFICATION.md
319
- 2. Commit with format: `docs({phase}): complete {phase-name} phase`
320
- 3. Bundles all phase-level state updates in one commit
321
-
322
- **NEVER use:**
323
- - `git add .`
324
- - `git add -A`
325
- - `git add src/` or any broad directory
326
-
327
- **Always stage files individually.**
328
- </commit_rules>
329
-
330
- <success_criteria>
331
- - [ ] All incomplete plans in phase executed
332
- - [ ] Each plan has SUMMARY.md
333
- - [ ] Phase goal verified (must_haves checked against codebase)
334
- - [ ] VERIFICATION.md created in phase directory
335
- - [ ] STATE.md reflects phase completion
336
- - [ ] ROADMAP.md updated
337
- - [ ] REQUIREMENTS.md updated (phase requirements marked Complete)
338
- - [ ] User informed of next steps
339
- </success_criteria>
@@ -1,227 +0,0 @@
1
- ---
2
- name: gsd-insert-phase
3
- description: Insert urgent work (e.g., "72.1 quick fix" - immediately after 72.1 phase)
4
- argument-hint: <after> <description>
5
- tools:
6
- - read
7
- - write
8
- - bash
9
- ---
10
-
11
- <objective>
12
- Insert a decimal phase for urgent work discovered mid-milestone that must be completed between existing integer phases.
13
-
14
- Uses decimal numbering (72.1, 72.2, etc.) to preserve the logical sequence of planned phases while accommodating urgent insertions.
15
-
16
- Purpose: Handle urgent work discovered during execution without renumbering entire roadmap.
17
- </objective>
18
-
19
- <execution_context>
20
- @.planning/ROADMAP.md
21
- @.planning/STATE.md
22
- </execution_context>
23
-
24
- <process>
25
-
26
- <step name="parse_arguments">
27
- Parse the command arguments:
28
- - First argument: integer phase number to insert after
29
- - Remaining arguments: phase description
30
-
31
- Example: `/gsd-insert-phase 72 Fix critical auth bug`
32
- → after = 72
33
- → description = "Fix critical auth bug"
34
-
35
- Validation:
36
-
37
- ```bash
38
- if [ $# -lt 2 ]; then
39
- echo "ERROR: Both phase number and description required"
40
- echo "Usage: /gsd-insert-phase <after> <description>"
41
- echo "Example: /gsd-insert-phase 72 Fix critical auth bug"
42
- exit 1
43
- fi
44
- ```
45
-
46
- Parse first argument as integer:
47
-
48
- ```bash
49
- after_phase=$1
50
- shift
51
- description="$*"
52
-
53
- # Validate after_phase is an integer
54
- if ! [[ "$after_phase" =~ ^[0-9]+$ ]]; then
55
- echo "ERROR: Phase number must be an integer"
56
- exit 1
57
- fi
58
- ```
59
-
60
- </step>
61
-
62
- <step name="load_roadmap">
63
- Load the roadmap file:
64
-
65
- ```bash
66
- if [ -f .planning/ROADMAP.md ]; then
67
- ROADMAP=".planning/ROADMAP.md"
68
- else
69
- echo "ERROR: No roadmap found (.planning/ROADMAP.md)"
70
- exit 1
71
- fi
72
- ```
73
-
74
- read roadmap content for parsing.
75
- </step>
76
-
77
- <step name="verify_target_phase">
78
- Verify that the target phase exists in the roadmap:
79
-
80
- 1. Search for "### Phase {after_phase}:" heading
81
- 2. If not found:
82
-
83
- ```
84
- ERROR: Phase {after_phase} not found in roadmap
85
- Available phases: [list phase numbers]
86
- ```
87
-
88
- Exit.
89
-
90
- 3. Verify phase is in current milestone (not completed/archived)
91
- </step>
92
-
93
- <step name="find_existing_decimals">
94
- Find existing decimal phases after the target phase:
95
-
96
- 1. Search for all "### Phase {after_phase}.N:" headings
97
- 2. Extract decimal suffixes (e.g., for Phase 72: find 72.1, 72.2, 72.3)
98
- 3. Find the highest decimal suffix
99
- 4. Calculate next decimal: max + 1
100
-
101
- Examples:
102
-
103
- - Phase 72 with no decimals → next is 72.1
104
- - Phase 72 with 72.1 → next is 72.2
105
- - Phase 72 with 72.1, 72.2 → next is 72.3
106
-
107
- Store as: `decimal_phase="$(printf "%02d" $after_phase).${next_decimal}"`
108
- </step>
109
-
110
- <step name="generate_slug">
111
- Convert the phase description to a kebab-case slug:
112
-
113
- ```bash
114
- slug=$(echo "$description" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9]/-/g' | sed 's/--*/-/g' | sed 's/^-//;s/-$//')
115
- ```
116
-
117
- Phase directory name: `{decimal-phase}-{slug}`
118
- Example: `06.1-fix-critical-auth-bug` (phase 6 insertion)
119
- </step>
120
-
121
- <step name="create_phase_directory">
122
- Create the phase directory structure:
123
-
124
- ```bash
125
- phase_dir=".planning/phases/${decimal_phase}-${slug}"
126
- mkdir -p "$phase_dir"
127
- ```
128
-
129
- Confirm: "Created directory: $phase_dir"
130
- </step>
131
-
132
- <step name="update_roadmap">
133
- Insert the new phase entry into the roadmap:
134
-
135
- 1. Find insertion point: immediately after Phase {after_phase}'s content (before next phase heading or "---")
136
- 2. Insert new phase heading with (INSERTED) marker:
137
-
138
- ```
139
- ### Phase {decimal_phase}: {Description} (INSERTED)
140
-
141
- **Goal:** [Urgent work - to be planned]
142
- **Depends on:** Phase {after_phase}
143
- **Plans:** 0 plans
144
-
145
- Plans:
146
- - [ ] TBD (run /gsd-plan-phase {decimal_phase} to break down)
147
-
148
- **Details:**
149
- [To be added during planning]
150
- ```
151
-
152
- 3. write updated roadmap back to file
153
-
154
- The "(INSERTED)" marker helps identify decimal phases as urgent insertions.
155
-
156
- Preserve all other content exactly (formatting, spacing, other phases).
157
- </step>
158
-
159
- <step name="update_project_state">
160
- Update STATE.md to reflect the inserted phase:
161
-
162
- 1. read `.planning/STATE.md`
163
- 2. Under "## Accumulated Context" → "### Roadmap Evolution" add entry:
164
- ```
165
- - Phase {decimal_phase} inserted after Phase {after_phase}: {description} (URGENT)
166
- ```
167
-
168
- If "Roadmap Evolution" section doesn't exist, create it.
169
-
170
- Add note about insertion reason if appropriate.
171
- </step>
172
-
173
- <step name="completion">
174
- Present completion summary:
175
-
176
- ```
177
- Phase {decimal_phase} inserted after Phase {after_phase}:
178
- - Description: {description}
179
- - Directory: .planning/phases/{decimal-phase}-{slug}/
180
- - Status: Not planned yet
181
- - Marker: (INSERTED) - indicates urgent work
182
-
183
- Roadmap updated: {roadmap-path}
184
- Project state updated: .planning/STATE.md
185
-
186
- ---
187
-
188
- ## ▶ Next Up
189
-
190
- **Phase {decimal_phase}: {description}** — urgent insertion
191
-
192
- `/gsd-plan-phase {decimal_phase}`
193
-
194
- *`/new` first → fresh context window*
195
-
196
- ---
197
-
198
- **Also available:**
199
- - Review insertion impact: Check if Phase {next_integer} dependencies still make sense
200
- - Review roadmap
201
-
202
- ---
203
- ```
204
- </step>
205
-
206
- </process>
207
-
208
- <anti_patterns>
209
-
210
- - Don't use this for planned work at end of milestone (use /gsd-add-phase)
211
- - Don't insert before Phase 1 (decimal 0.1 makes no sense)
212
- - Don't renumber existing phases
213
- - Don't modify the target phase content
214
- - Don't create plans yet (that's /gsd-plan-phase)
215
- - Don't commit changes (user decides when to commit)
216
- </anti_patterns>
217
-
218
- <success_criteria>
219
- Phase insertion is complete when:
220
-
221
- - [ ] Phase directory created: `.planning/phases/{N.M}-{slug}/`
222
- - [ ] Roadmap updated with new phase entry (includes "(INSERTED)" marker)
223
- - [ ] Phase inserted in correct position (after target phase, before next integer phase)
224
- - [ ] STATE.md updated with roadmap evolution note
225
- - [ ] Decimal number calculated correctly (based on existing decimals)
226
- - [ ] User informed of next steps and dependency implications
227
- </success_criteria>