gsd-opencode 1.5.0 → 1.6.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 (112) hide show
  1. package/agents/gsd-codebase-mapper.md +743 -0
  2. package/agents/gsd-debugger.md +1191 -0
  3. package/agents/gsd-executor.md +759 -0
  4. package/agents/gsd-integration-checker.md +427 -0
  5. package/agents/gsd-phase-researcher.md +637 -0
  6. package/agents/gsd-plan-checker.md +749 -0
  7. package/agents/gsd-planner.md +1373 -0
  8. package/agents/gsd-project-researcher.md +877 -0
  9. package/agents/gsd-research-synthesizer.md +250 -0
  10. package/agents/gsd-roadmapper.md +610 -0
  11. package/agents/gsd-verifier.md +782 -0
  12. package/bin/install.js +11 -1
  13. package/command/gsd/add-phase.md +6 -8
  14. package/command/gsd/add-todo.md +6 -8
  15. package/command/gsd/audit-milestone.md +257 -0
  16. package/command/gsd/check-todos.md +2 -4
  17. package/command/gsd/complete-milestone.md +53 -23
  18. package/command/gsd/debug.md +120 -30
  19. package/command/gsd/discuss-phase.md +51 -30
  20. package/command/gsd/execute-phase.md +192 -26
  21. package/command/gsd/help.md +68 -77
  22. package/command/gsd/insert-phase.md +7 -7
  23. package/command/gsd/list-phase-assumptions.md +1 -1
  24. package/command/gsd/map-codebase.md +15 -28
  25. package/command/gsd/new-milestone.md +693 -36
  26. package/command/gsd/new-project.md +670 -110
  27. package/command/gsd/pause-work.md +3 -3
  28. package/command/gsd/plan-milestone-gaps.md +284 -0
  29. package/command/gsd/plan-phase.md +449 -42
  30. package/command/gsd/progress.md +72 -42
  31. package/command/gsd/remove-phase.md +17 -19
  32. package/command/gsd/research-phase.md +155 -67
  33. package/command/gsd/resume-work.md +3 -3
  34. package/command/gsd/update.md +172 -0
  35. package/command/gsd/verify-work.md +186 -38
  36. package/command/gsd/whats-new.md +124 -0
  37. package/get-shit-done/references/checkpoints.md +609 -108
  38. package/get-shit-done/references/continuation-format.md +16 -22
  39. package/get-shit-done/references/git-integration.md +4 -4
  40. package/get-shit-done/references/questioning.md +87 -108
  41. package/get-shit-done/references/tdd.md +3 -3
  42. package/get-shit-done/references/ui-brand.md +160 -0
  43. package/get-shit-done/references/verification-patterns.md +595 -0
  44. package/get-shit-done/templates/DEBUG.md +9 -9
  45. package/get-shit-done/templates/UAT.md +247 -0
  46. package/get-shit-done/templates/codebase/architecture.md +6 -6
  47. package/get-shit-done/templates/codebase/concerns.md +2 -2
  48. package/get-shit-done/templates/codebase/conventions.md +2 -2
  49. package/get-shit-done/templates/codebase/structure.md +8 -8
  50. package/get-shit-done/templates/codebase/testing.md +2 -2
  51. package/get-shit-done/templates/context.md +221 -70
  52. package/get-shit-done/templates/continue-here.md +1 -1
  53. package/get-shit-done/templates/debug-subagent-prompt.md +91 -0
  54. package/get-shit-done/templates/discovery.md +5 -5
  55. package/get-shit-done/templates/phase-prompt.md +118 -5
  56. package/get-shit-done/templates/planner-subagent-prompt.md +117 -0
  57. package/get-shit-done/templates/project.md +1 -1
  58. package/get-shit-done/templates/requirements.md +231 -0
  59. package/get-shit-done/templates/research-project/ARCHITECTURE.md +204 -0
  60. package/get-shit-done/templates/research-project/FEATURES.md +147 -0
  61. package/get-shit-done/templates/research-project/PITFALLS.md +200 -0
  62. package/get-shit-done/templates/research-project/STACK.md +120 -0
  63. package/get-shit-done/templates/research-project/SUMMARY.md +170 -0
  64. package/get-shit-done/templates/research.md +4 -4
  65. package/get-shit-done/templates/roadmap.md +26 -20
  66. package/get-shit-done/templates/state.md +3 -18
  67. package/get-shit-done/templates/summary.md +13 -17
  68. package/get-shit-done/templates/user-setup.md +323 -0
  69. package/get-shit-done/templates/verification-report.md +322 -0
  70. package/get-shit-done/workflows/complete-milestone.md +153 -46
  71. package/get-shit-done/workflows/diagnose-issues.md +233 -0
  72. package/get-shit-done/workflows/discovery-phase.md +13 -18
  73. package/get-shit-done/workflows/discuss-phase.md +311 -126
  74. package/get-shit-done/workflows/execute-phase.md +178 -19
  75. package/get-shit-done/workflows/execute-plan.md +169 -151
  76. package/get-shit-done/workflows/list-phase-assumptions.md +7 -7
  77. package/get-shit-done/workflows/map-codebase.md +87 -232
  78. package/get-shit-done/workflows/resume-project.md +20 -22
  79. package/get-shit-done/workflows/transition.md +9 -25
  80. package/get-shit-done/workflows/verify-phase.md +629 -0
  81. package/get-shit-done/workflows/verify-work.md +495 -134
  82. package/package.json +2 -1
  83. package/command/gsd/consider-issues.md +0 -201
  84. package/command/gsd/create-roadmap.md +0 -115
  85. package/command/gsd/discuss-milestone.md +0 -47
  86. package/command/gsd/execute-plan.md +0 -103
  87. package/command/gsd/plan-fix.md +0 -205
  88. package/command/gsd/status.md +0 -127
  89. package/get-shit-done/references/debugging/debugging-mindset.md +0 -253
  90. package/get-shit-done/references/debugging/hypothesis-testing.md +0 -373
  91. package/get-shit-done/references/debugging/investigation-techniques.md +0 -337
  92. package/get-shit-done/references/debugging/verification-patterns.md +0 -425
  93. package/get-shit-done/references/debugging/when-to-research.md +0 -361
  94. package/get-shit-done/references/plan-format.md +0 -475
  95. package/get-shit-done/references/principles.md +0 -157
  96. package/get-shit-done/references/research-pitfalls.md +0 -215
  97. package/get-shit-done/references/scope-estimation.md +0 -256
  98. package/get-shit-done/templates/agent-history.md +0 -263
  99. package/get-shit-done/templates/checkpoint-return.md +0 -204
  100. package/get-shit-done/templates/config.json +0 -26
  101. package/get-shit-done/templates/continuation-prompt.md +0 -235
  102. package/get-shit-done/templates/issues.md +0 -32
  103. package/get-shit-done/templates/milestone-context.md +0 -93
  104. package/get-shit-done/templates/subagent-task-prompt.md +0 -95
  105. package/get-shit-done/templates/uat-issues.md +0 -143
  106. package/get-shit-done/workflows/_archive/execute-phase.md +0 -899
  107. package/get-shit-done/workflows/create-milestone.md +0 -416
  108. package/get-shit-done/workflows/create-roadmap.md +0 -481
  109. package/get-shit-done/workflows/debug.md +0 -426
  110. package/get-shit-done/workflows/discuss-milestone.md +0 -236
  111. package/get-shit-done/workflows/plan-phase.md +0 -701
  112. package/get-shit-done/workflows/research-phase.md +0 -436
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: gsd-progress
3
3
  description: Check project progress, show context, and route to next action (execute or plan)
4
- allowed-tools:
4
+ tools:
5
5
  - read
6
6
  - bash
7
7
  - grep
@@ -30,15 +30,21 @@ Run /gsd-new-project to start a new project.
30
30
 
31
31
  Exit.
32
32
 
33
- If missing STATE.md or ROADMAP.md: inform what's missing, suggest running `/gsd-new-project`.
33
+ If missing STATE.md: suggest `/gsd-new-project`.
34
+
35
+ **If ROADMAP.md missing but PROJECT.md exists:**
36
+
37
+ This means a milestone was completed and archived. Go to **Route F** (between milestones).
38
+
39
+ If missing both ROADMAP.md and PROJECT.md: suggest `/gsd-new-project`.
34
40
  </step>
35
41
 
36
42
  <step name="load">
37
43
  **Load full project context:**
38
44
 
39
- - Read `.planning/STATE.md` for living memory (position, decisions, issues)
40
- - Read `.planning/ROADMAP.md` for phase structure and objectives
41
- - Read `.planning/PROJECT.md` for current state (What This Is, Core Value, Requirements)
45
+ - read `.planning/STATE.md` for living memory (position, decisions, issues)
46
+ - read `.planning/ROADMAP.md` for phase structure and objectives
47
+ - read `.planning/PROJECT.md` for current state (What This Is, Core Value, Requirements)
42
48
  </step>
43
49
 
44
50
  <step name="recent">
@@ -54,7 +60,7 @@ If missing STATE.md or ROADMAP.md: inform what's missing, suggest running `/gsd-
54
60
 
55
61
  - From STATE.md: current phase, plan number, status
56
62
  - Calculate: total plans, completed plans, remaining plans
57
- - Note any blockers, concerns, or deferred issues
63
+ - Note any blockers or concerns
58
64
  - Check for CONTEXT.md: For phases without PLAN.md files, check if `{phase}-CONTEXT.md` exists in phase directory
59
65
  - Count pending todos: `ls .planning/todos/pending/*.md 2>/dev/null | wc -l`
60
66
  - Check for active debug sessions: `ls .planning/debug/*.md 2>/dev/null | grep -v resolved | wc -l`
@@ -81,8 +87,8 @@ CONTEXT: [✓ if CONTEXT.md exists | - if not]
81
87
  - [decision 1 from STATE.md]
82
88
  - [decision 2]
83
89
 
84
- ## Open Issues
85
- - [any deferred issues or blockers]
90
+ ## Blockers/Concerns
91
+ - [any blockers or concerns from STATE.md]
86
92
 
87
93
  ## Pending Todos
88
94
  - [count] pending — /gsd-check-todos to review
@@ -107,28 +113,28 @@ List files in the current phase directory:
107
113
  ```bash
108
114
  ls -1 .planning/phases/[current-phase-dir]/*-PLAN.md 2>/dev/null | wc -l
109
115
  ls -1 .planning/phases/[current-phase-dir]/*-SUMMARY.md 2>/dev/null | wc -l
110
- ls -1 .planning/phases/[current-phase-dir]/*-ISSUES.md 2>/dev/null | wc -l
111
- ls -1 .planning/phases/[current-phase-dir]/*-FIX.md 2>/dev/null | wc -l
112
- ls -1 .planning/phases/[current-phase-dir]/*-FIX-SUMMARY.md 2>/dev/null | wc -l
116
+ ls -1 .planning/phases/[current-phase-dir]/*-UAT.md 2>/dev/null | wc -l
113
117
  ```
114
118
 
115
- State: "This phase has {X} plans, {Y} summaries, {Z} issues files, {W} fix plans."
119
+ State: "This phase has {X} plans, {Y} summaries."
116
120
 
117
- **Step 1.5: Check for unaddressed UAT issues**
121
+ **Step 1.5: Check for unaddressed UAT gaps**
118
122
 
119
- For each *-ISSUES.md file, check if matching *-FIX.md exists.
120
- For each *-FIX.md file, check if matching *-FIX-SUMMARY.md exists.
123
+ Check for UAT.md files with status "diagnosed" (has gaps needing fixes).
124
+
125
+ ```bash
126
+ # Check for diagnosed UAT with gaps
127
+ grep -l "status: diagnosed" .planning/phases/[current-phase-dir]/*-UAT.md 2>/dev/null
128
+ ```
121
129
 
122
130
  Track:
123
- - `issues_without_fix`: ISSUES.md files without FIX.md
124
- - `fixes_without_summary`: FIX.md files without FIX-SUMMARY.md
131
+ - `uat_with_gaps`: UAT.md files with status "diagnosed" (gaps need fixing)
125
132
 
126
133
  **Step 2: Route based on counts**
127
134
 
128
135
  | Condition | Meaning | Action |
129
136
  |-----------|---------|--------|
130
- | fixes_without_summary > 0 | Unexecuted fix plans exist | Go to **Route A** (with FIX.md) |
131
- | issues_without_fix > 0 | UAT issues need fix plans | Go to **Route E** |
137
+ | uat_with_gaps > 0 | UAT gaps need fix plans | Go to **Route E** |
132
138
  | summaries < plans | Unexecuted plans exist | Go to **Route A** |
133
139
  | summaries = plans AND plans > 0 | Phase complete | Go to Step 3 |
134
140
  | plans = 0 | Phase not yet planned | Go to **Route B** |
@@ -138,7 +144,7 @@ Track:
138
144
  **Route A: Unexecuted plan exists**
139
145
 
140
146
  Find the first PLAN.md without matching SUMMARY.md.
141
- Read its `<objective>` section.
147
+ read its `<objective>` section.
142
148
 
143
149
  ```
144
150
  ---
@@ -147,9 +153,9 @@ Read its `<objective>` section.
147
153
 
148
154
  **{phase}-{plan}: [Plan Name]** — [objective summary from PLAN.md]
149
155
 
150
- `/gsd-execute-plan [full-path-to-PLAN.md]`
156
+ `/gsd-execute-phase {phase}`
151
157
 
152
- *`/clear` first → fresh context window*
158
+ *`/new` first → fresh context window*
153
159
 
154
160
  ---
155
161
  ```
@@ -172,7 +178,7 @@ Check if `{phase}-CONTEXT.md` exists in phase directory.
172
178
 
173
179
  `/gsd-plan-phase {phase-number}`
174
180
 
175
- *`/clear` first → fresh context window*
181
+ *`/new` first → fresh context window*
176
182
 
177
183
  ---
178
184
  ```
@@ -186,15 +192,14 @@ Check if `{phase}-CONTEXT.md` exists in phase directory.
186
192
 
187
193
  **Phase {N}: {Name}** — {Goal from ROADMAP.md}
188
194
 
189
- `/gsd-plan-phase {phase}`
195
+ `/gsd-discuss-phase {phase}` — gather context and clarify approach
190
196
 
191
- *`/clear` first → fresh context window*
197
+ *`/new` first → fresh context window*
192
198
 
193
199
  ---
194
200
 
195
201
  **Also available:**
196
- - `/gsd-discuss-phase {phase}` — gather context first
197
- - `/gsd-research-phase {phase}` — investigate unknowns
202
+ - `/gsd-plan-phase {phase}` — skip discussion, plan directly
198
203
  - `/gsd-list-phase-assumptions {phase}` — see OpenCode's assumptions
199
204
 
200
205
  ---
@@ -202,25 +207,25 @@ Check if `{phase}-CONTEXT.md` exists in phase directory.
202
207
 
203
208
  ---
204
209
 
205
- **Route E: UAT issues need fix plans**
210
+ **Route E: UAT gaps need fix plans**
206
211
 
207
- ISSUES.md exists without matching FIX.md. User needs to plan fixes.
212
+ UAT.md exists with gaps (diagnosed issues). User needs to plan fixes.
208
213
 
209
214
  ```
210
215
  ---
211
216
 
212
- ## ⚠ UAT Issues Found
217
+ ## ⚠ UAT Gaps Found
213
218
 
214
- **{plan}-ISSUES.md** has {N} issues without a fix plan.
219
+ **{phase}-UAT.md** has {N} gaps requiring fixes.
215
220
 
216
- `/gsd-plan-fix {plan}`
221
+ `/gsd-plan-phase {phase} --gaps`
217
222
 
218
- *`/clear` first → fresh context window*
223
+ *`/new` first → fresh context window*
219
224
 
220
225
  ---
221
226
 
222
227
  **Also available:**
223
- - `/gsd-execute-plan [path]` — continue with other work first
228
+ - `/gsd-execute-phase {phase}` — execute phase plans
224
229
  - `/gsd-verify-work {phase}` — run more UAT testing
225
230
 
226
231
  ---
@@ -230,7 +235,7 @@ ISSUES.md exists without matching FIX.md. User needs to plan fixes.
230
235
 
231
236
  **Step 3: Check milestone status (only when phase complete)**
232
237
 
233
- Read ROADMAP.md and identify:
238
+ read ROADMAP.md and identify:
234
239
  1. Current phase number
235
240
  2. All phase numbers in the current milestone section
236
241
 
@@ -249,7 +254,7 @@ State: "Current phase is {X}. Milestone has {N} phases (highest: {Y})."
249
254
 
250
255
  **Route C: Phase complete, more phases remain**
251
256
 
252
- Read ROADMAP.md to get the next phase's name and goal.
257
+ read ROADMAP.md to get the next phase's name and goal.
253
258
 
254
259
  ```
255
260
  ---
@@ -260,16 +265,15 @@ Read ROADMAP.md to get the next phase's name and goal.
260
265
 
261
266
  **Phase {Z+1}: {Name}** — {Goal from ROADMAP.md}
262
267
 
263
- `/gsd-plan-phase {Z+1}`
268
+ `/gsd-discuss-phase {Z+1}` — gather context and clarify approach
264
269
 
265
- *`/clear` first → fresh context window*
270
+ *`/new` first → fresh context window*
266
271
 
267
272
  ---
268
273
 
269
274
  **Also available:**
275
+ - `/gsd-plan-phase {Z+1}` — skip discussion, plan directly
270
276
  - `/gsd-verify-work {Z}` — user acceptance test before continuing
271
- - `/gsd-discuss-phase {Z+1}` — gather context first
272
- - `/gsd-research-phase {Z+1}` — investigate unknowns
273
277
 
274
278
  ---
275
279
  ```
@@ -291,7 +295,7 @@ All {N} phases finished!
291
295
 
292
296
  `/gsd-complete-milestone`
293
297
 
294
- *`/clear` first → fresh context window*
298
+ *`/new` first → fresh context window*
295
299
 
296
300
  ---
297
301
 
@@ -301,6 +305,32 @@ All {N} phases finished!
301
305
  ---
302
306
  ```
303
307
 
308
+ ---
309
+
310
+ **Route F: Between milestones (ROADMAP.md missing, PROJECT.md exists)**
311
+
312
+ A milestone was completed and archived. Ready to start the next milestone cycle.
313
+
314
+ read MILESTONES.md to find the last completed milestone version.
315
+
316
+ ```
317
+ ---
318
+
319
+ ## ✓ Milestone v{X.Y} Complete
320
+
321
+ Ready to plan the next milestone.
322
+
323
+ ## ▶ Next Up
324
+
325
+ **Start Next Milestone** — questioning → research → requirements → roadmap
326
+
327
+ `/gsd-new-milestone`
328
+
329
+ *`/new` first → fresh context window*
330
+
331
+ ---
332
+ ```
333
+
304
334
  </step>
305
335
 
306
336
  <step name="edge_cases">
@@ -319,7 +349,7 @@ All {N} phases finished!
319
349
  - [ ] Rich context provided (recent work, decisions, issues)
320
350
  - [ ] Current position clear with visual progress
321
351
  - [ ] What's next clearly explained
322
- - [ ] Smart routing: /gsd-execute-plan if plan exists, /gsd-plan-phase if not
352
+ - [ ] Smart routing: /gsd-execute-phase if plans exist, /gsd-plan-phase if not
323
353
  - [ ] User confirms before any action
324
354
  - [ ] Seamless handoff to appropriate gsd command
325
355
  </success_criteria>
@@ -2,7 +2,7 @@
2
2
  name: gsd-remove-phase
3
3
  description: Remove a future phase from roadmap and renumber subsequent phases
4
4
  argument-hint: <phase-number>
5
- allowed-tools:
5
+ tools:
6
6
  - read
7
7
  - write
8
8
  - bash
@@ -19,8 +19,6 @@ Output: Phase deleted, all subsequent phases renumbered, git commit as historica
19
19
  <execution_context>
20
20
  @.planning/ROADMAP.md
21
21
  @.planning/STATE.md
22
-
23
- Phase number: $ARGUMENTS
24
22
  </execution_context>
25
23
 
26
24
  <process>
@@ -54,7 +52,7 @@ Parse current phase number from STATE.md "Current Position" section.
54
52
  </step>
55
53
 
56
54
  <step name="validate_phase_exists">
57
- Verify that target phase exists in ROADMAP.md:
55
+ Verify the target phase exists in ROADMAP.md:
58
56
 
59
57
  1. Search for `### Phase {target}:` heading
60
58
  2. If not found:
@@ -68,7 +66,7 @@ Verify that target phase exists in ROADMAP.md:
68
66
  </step>
69
67
 
70
68
  <step name="validate_future_phase">
71
- Verify that the phase is a future phase (not started):
69
+ Verify the phase is a future phase (not started):
72
70
 
73
71
  1. Compare target phase to current phase from STATE.md
74
72
  2. Target must be > current phase number
@@ -108,7 +106,7 @@ Exit.
108
106
  </step>
109
107
 
110
108
  <step name="gather_phase_info">
111
- Collect information about phase being removed:
109
+ Collect information about the phase being removed:
112
110
 
113
111
  1. Extract phase name from ROADMAP.md heading: `### Phase {target}: {Name}`
114
112
  2. Find phase directory: `.planning/phases/{target}-{slug}/`
@@ -149,7 +147,7 @@ Wait for confirmation.
149
147
  </step>
150
148
 
151
149
  <step name="delete_phase_directory">
152
- Delete target phase directory if it exists:
150
+ Delete the target phase directory if it exists:
153
151
 
154
152
  ```bash
155
153
  if [ -d ".planning/phases/{target}-{slug}" ]; then
@@ -181,7 +179,7 @@ Also rename decimal phase directories:
181
179
  <step name="rename_files_in_directories">
182
180
  Rename plan files inside renumbered directories:
183
181
 
184
- For each renumbered directory, rename files that contain phase number:
182
+ For each renumbered directory, rename files that contain the phase number:
185
183
 
186
184
  ```bash
187
185
  # Inside 17-dashboard (was 18-dashboard):
@@ -197,14 +195,14 @@ Also handle CONTEXT.md and DISCOVERY.md (these don't have phase prefixes, so no
197
195
  <step name="update_roadmap">
198
196
  Update ROADMAP.md:
199
197
 
200
- 1. **Remove phase section entirely:**
201
- - Delete from `### Phase {target}:` to next phase heading (or section end)
198
+ 1. **Remove the phase section entirely:**
199
+ - Delete from `### Phase {target}:` to the next phase heading (or section end)
202
200
 
203
201
  2. **Remove from phase list:**
204
202
  - Delete line `- [ ] **Phase {target}: {Name}**` or similar
205
203
 
206
204
  3. **Remove from Progress table:**
207
- - Delete row for Phase {target}
205
+ - Delete the row for Phase {target}
208
206
 
209
207
  4. **Renumber all subsequent phases:**
210
208
  - `### Phase 18:` → `### Phase 17:`
@@ -214,14 +212,14 @@ Update ROADMAP.md:
214
212
 
215
213
  5. **Update dependency references:**
216
214
  - `**Depends on:** Phase 18` → `**Depends on:** Phase 17`
217
- - For phase that depended on removed phase:
215
+ - For the phase that depended on the removed phase:
218
216
  - `**Depends on:** Phase 17` (removed) → `**Depends on:** Phase 16`
219
217
 
220
218
  6. **Renumber decimal phases:**
221
219
  - `### Phase 17.1:` → `### Phase 16.1:` (if integer 17 removed)
222
220
  - Update all references consistently
223
221
 
224
- Write updated ROADMAP.md.
222
+ write updated ROADMAP.md.
225
223
  </step>
226
224
 
227
225
  <step name="update_state">
@@ -233,16 +231,16 @@ Update STATE.md:
233
231
  2. **Recalculate progress percentage:**
234
232
  - New percentage based on completed plans / new total plans
235
233
 
236
- Do NOT add a "Roadmap Evolution" note - git commit is record.
234
+ Do NOT add a "Roadmap Evolution" note - the git commit is the record.
237
235
 
238
- Write updated STATE.md.
236
+ write updated STATE.md.
239
237
  </step>
240
238
 
241
239
  <step name="update_file_contents">
242
240
  Search for and update phase references inside plan files:
243
241
 
244
242
  ```bash
245
- # Find files that reference to old phase numbers
243
+ # Find files that reference the old phase numbers
246
244
  grep -r "Phase 18" .planning/phases/17-*/ 2>/dev/null
247
245
  grep -r "Phase 19" .planning/phases/18-*/ 2>/dev/null
248
246
  # etc.
@@ -252,7 +250,7 @@ Update any internal references to reflect new numbering.
252
250
  </step>
253
251
 
254
252
  <step name="commit">
255
- Stage and commit removal:
253
+ Stage and commit the removal:
256
254
 
257
255
  ```bash
258
256
  git add .planning/
@@ -297,7 +295,7 @@ Would you like to:
297
295
  - Don't remove completed phases (have SUMMARY.md files)
298
296
  - Don't remove current or past phases
299
297
  - Don't leave gaps in numbering - always renumber
300
- - Don't add "removed phase" notes to STATE.md - git commit is record
298
+ - Don't add "removed phase" notes to STATE.md - git commit is the record
301
299
  - Don't ask about each decimal phase - just renumber them
302
300
  - Don't modify completed phase directories
303
301
  </anti_patterns>
@@ -310,7 +308,7 @@ Would you like to:
310
308
  - Simpler operation
311
309
 
312
310
  **No subsequent phases to renumber:**
313
- - Removing last phase (e.g., Phase 20 when that's the end)
311
+ - Removing the last phase (e.g., Phase 20 when that's the end)
314
312
  - Just delete and update ROADMAP.md, no renumbering needed
315
313
 
316
314
  **Phase directory doesn't exist:**
@@ -1,91 +1,179 @@
1
1
  ---
2
2
  name: gsd-research-phase
3
- description: Research how to implement a phase before planning
3
+ description: Research how to implement a phase (standalone - usually use /gsd-plan-phase instead)
4
4
  argument-hint: "[phase]"
5
- allowed-tools:
5
+ tools:
6
6
  - read
7
7
  - bash
8
- - glob
9
- - grep
10
- - write
11
- - webfetch
12
- - websearch
13
- - mcp__context7__*
14
8
  ---
15
9
 
16
10
  <objective>
17
- Comprehensive research on HOW to implement a phase before planning.
11
+ Research how to implement a phase. Spawns gsd-phase-researcher agent with phase context.
18
12
 
19
- This is for niche/complex domains where OpenCode's training data is sparse or outdated. Research discovers:
20
- - What libraries exist for this problem
21
- - What architecture patterns experts use
22
- - What standard stack looks like
23
- - What problems people commonly hit
24
- - What NOT to hand-roll (use existing solutions)
13
+ **Note:** This is a standalone research command. For most workflows, use `/gsd-plan-phase` which integrates research automatically.
25
14
 
26
- Output: RESEARCH.md with ecosystem knowledge that informs quality planning.
27
- </objective>
15
+ **Use this command when:**
16
+ - You want to research without planning yet
17
+ - You want to re-research after planning is complete
18
+ - You need to investigate before deciding if a phase is feasible
19
+
20
+ **Orchestrator role:** Parse phase, validate against roadmap, check existing research, gather context, spawn researcher agent, present results.
28
21
 
29
- <execution_context>
30
- @~/.config/opencode/get-shit-done/workflows/research-phase.md
31
- @~/.config/opencode/get-shit-done/templates/research.md
32
- @~/.config/opencode/get-shit-done/references/research-pitfalls.md
33
- </execution_context>
22
+ **Why subagent:** Research burns context fast (webfetch, Context7 queries, source verification). Fresh 200k context for investigation. Main context stays lean for user interaction.
23
+ </objective>
34
24
 
35
25
  <context>
36
26
  Phase number: $ARGUMENTS (required)
37
27
 
38
- **Load project state:**
39
- @.planning/STATE.md
28
+ Normalize phase input in step 1 before any directory lookups.
29
+ </context>
30
+
31
+ <process>
32
+
33
+ ## 1. Normalize and Validate Phase
34
+
35
+ ```bash
36
+ # Normalize phase number (8 → 08, but preserve decimals like 2.1 → 02.1)
37
+ if [[ "$ARGUMENTS" =~ ^[0-9]+$ ]]; then
38
+ PHASE=$(printf "%02d" "$ARGUMENTS")
39
+ elif [[ "$ARGUMENTS" =~ ^([0-9]+)\.([0-9]+)$ ]]; then
40
+ PHASE=$(printf "%02d.%s" "${BASH_REMATCH[1]}" "${BASH_REMATCH[2]}")
41
+ else
42
+ PHASE="$ARGUMENTS"
43
+ fi
44
+
45
+ grep -A5 "Phase ${PHASE}:" .planning/ROADMAP.md 2>/dev/null
46
+ ```
47
+
48
+ **If not found:** Error and exit. **If found:** Extract phase number, name, description.
49
+
50
+ ## 2. Check Existing Research
51
+
52
+ ```bash
53
+ ls .planning/phases/${PHASE}-*/RESEARCH.md 2>/dev/null
54
+ ```
55
+
56
+ **If exists:** Offer: 1) Update research, 2) View existing, 3) Skip. Wait for response.
57
+
58
+ **If doesn't exist:** Continue.
59
+
60
+ ## 3. Gather Phase Context
61
+
62
+ ```bash
63
+ grep -A20 "Phase ${PHASE}:" .planning/ROADMAP.md
64
+ cat .planning/REQUIREMENTS.md 2>/dev/null
65
+ cat .planning/phases/${PHASE}-*/${PHASE}-CONTEXT.md 2>/dev/null
66
+ grep -A30 "### Decisions Made" .planning/STATE.md 2>/dev/null
67
+ ```
68
+
69
+ Present summary with phase description, requirements, prior decisions.
70
+
71
+ ## 4. Spawn gsd-researcher Agent
72
+
73
+ Research modes: ecosystem (default), feasibility, implementation, comparison.
74
+
75
+ ```markdown
76
+ <research_type>
77
+ Phase Research — investigating HOW to implement a specific phase well.
78
+ </research_type>
79
+
80
+ <key_insight>
81
+ The question is NOT "which library should I use?"
82
+
83
+ The question is: "What do I not know that I don't know?"
40
84
 
41
- **Load roadmap:**
42
- @.planning/ROADMAP.md
85
+ For this phase, discover:
86
+ - What's the established architecture pattern?
87
+ - What libraries form the standard stack?
88
+ - What problems do people commonly hit?
89
+ - What's SOTA vs what OpenCode's training thinks is SOTA?
90
+ - What should NOT be hand-rolled?
91
+ </key_insight>
43
92
 
44
- **Load phase context if exists:**
45
- Check for `.planning/phases/XX-name/{phase}-CONTEXT.md` - bonus context from discuss-phase.
93
+ <objective>
94
+ Research implementation approach for Phase {phase_number}: {phase_name}
95
+ Mode: ecosystem
96
+ </objective>
97
+
98
+ <context>
99
+ **Phase description:** {phase_description}
100
+ **Requirements:** {requirements_list}
101
+ **Prior decisions:** {decisions_if_any}
102
+ **Phase context:** {context_md_content}
46
103
  </context>
47
104
 
48
- <process>
49
- 1. Validate phase number argument (error if missing or invalid)
50
- 2. Check if phase exists in roadmap - extract phase description
51
- 3. Check if RESEARCH.md already exists (offer to update or use existing)
52
- 4. Load CONTEXT.md if it exists (bonus context for research direction)
53
- 5. Follow research-phase.md workflow:
54
- - Analyze phase to identify knowledge gaps
55
- - Determine research domains (architecture, ecosystem, patterns, pitfalls)
56
- - Execute comprehensive research via Context7, official docs, WebSearch
57
- - Cross-verify all findings
58
- - Create RESEARCH.md with actionable ecosystem knowledge
59
- 6. Offer next steps (plan phase)
60
- </process>
105
+ <downstream_consumer>
106
+ Your RESEARCH.md will be loaded by `/gsd-plan-phase` which uses specific sections:
107
+ - `## Standard Stack` Plans use these libraries
108
+ - `## Architecture Patterns` Task structure follows these
109
+ - `## Don't Hand-Roll` Tasks NEVER build custom solutions for listed problems
110
+ - `## Common Pitfalls` → Verification steps check for these
111
+ - `## Code Examples` Task actions reference these patterns
112
+
113
+ Be prescriptive, not exploratory. "Use X" not "Consider X or Y."
114
+ </downstream_consumer>
115
+
116
+ <quality_gate>
117
+ Before declaring complete, verify:
118
+ - [ ] All domains investigated (not just some)
119
+ - [ ] Negative claims verified with official docs
120
+ - [ ] Multiple sources for critical claims
121
+ - [ ] Confidence levels assigned honestly
122
+ - [ ] Section names match what plan-phase expects
123
+ </quality_gate>
124
+
125
+ <output>
126
+ write to: .planning/phases/${PHASE}-{slug}/${PHASE}-RESEARCH.md
127
+ </output>
128
+ ```
129
+
130
+ ```
131
+ Task(
132
+ prompt=filled_prompt,
133
+ subagent_type="gsd-phase-researcher",
134
+ description="Research Phase {phase}"
135
+ )
136
+ ```
137
+
138
+ ## 5. Handle Agent Return
61
139
 
62
- <when_to_use>
63
- **Use research-phase for:**
64
- - 3D graphics (Three.js, WebGL, procedural generation)
65
- - Game development (physics, collision, AI, procedural content)
66
- - Audio/music (Web Audio API, DSP, synthesis)
67
- - Shaders (GLSL, Metal, ISF)
68
- - ML/AI integration (model serving, inference, pipelines)
69
- - Real-time systems (WebSockets, WebRTC, sync)
70
- - Specialized frameworks with active ecosystems
71
- - Any domain where "how do experts do this" matters
72
-
73
- **Skip research-phase for:**
74
- - Standard web dev (auth, CRUD, REST APIs)
75
- - Well-known patterns (forms, validation, testing)
76
- - Simple integrations (Stripe, SendGrid with clear docs)
77
- - Commodity features OpenCode handles well
78
- </when_to_use>
140
+ **`## RESEARCH COMPLETE`:** Display summary, offer: Plan phase, Dig deeper, Review full, Done.
141
+
142
+ **`## CHECKPOINT REACHED`:** Present to user, get response, spawn continuation.
143
+
144
+ **`## RESEARCH INCONCLUSIVE`:** Show what was attempted, offer: Add context, Try different mode, Manual.
145
+
146
+ ## 6. Spawn Continuation Agent
147
+
148
+ ```markdown
149
+ <objective>
150
+ Continue research for Phase {phase_number}: {phase_name}
151
+ </objective>
152
+
153
+ <prior_state>
154
+ Research file: @.planning/phases/${PHASE}-{slug}/${PHASE}-RESEARCH.md
155
+ </prior_state>
156
+
157
+ <checkpoint_response>
158
+ **Type:** {checkpoint_type}
159
+ **Response:** {user_response}
160
+ </checkpoint_response>
161
+ ```
162
+
163
+ ```
164
+ Task(
165
+ prompt=continuation_prompt,
166
+ subagent_type="gsd-phase-researcher",
167
+ description="Continue research Phase {phase}"
168
+ )
169
+ ```
170
+
171
+ </process>
79
172
 
80
173
  <success_criteria>
81
174
  - [ ] Phase validated against roadmap
82
- - [ ] Domain/ecosystem identified from phase description
83
- - [ ] Comprehensive research executed (Context7 + official docs + WebSearch)
84
- - [ ] All WebSearch findings cross-verified with authoritative sources
85
- - [ ] RESEARCH.md created with ecosystem knowledge
86
- - [ ] Standard stack/libraries identified
87
- - [ ] Architecture patterns documented
88
- - [ ] Common pitfalls catalogued
89
- - [ ] What NOT to hand-roll is clear
90
- - [ ] User knows next steps (plan phase)
175
+ - [ ] Existing research checked
176
+ - [ ] gsd-phase-researcher spawned with context
177
+ - [ ] Checkpoints handled correctly
178
+ - [ ] User knows next steps
91
179
  </success_criteria>
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: gsd-resume-work
3
3
  description: Resume work from previous session with full context restoration
4
- allowed-tools:
4
+ tools:
5
5
  - read
6
6
  - bash
7
7
  - write
@@ -11,7 +11,7 @@ allowed-tools:
11
11
  <objective>
12
12
  Restore complete project context and resume work seamlessly from previous session.
13
13
 
14
- Routes to resume-project workflow which handles:
14
+ Routes to the resume-project workflow which handles:
15
15
 
16
16
  - STATE.md loading (or reconstruction if missing)
17
17
  - Checkpoint detection (.continue-here files)
@@ -25,7 +25,7 @@ Routes to resume-project workflow which handles:
25
25
  </execution_context>
26
26
 
27
27
  <process>
28
- **Follow resume-project workflow** from `@~/.config/opencode/get-shit-done/workflows/resume-project.md`.
28
+ **Follow the resume-project workflow** from `@~/.config/opencode/get-shit-done/workflows/resume-project.md`.
29
29
 
30
30
  The workflow handles all resumption logic including:
31
31