claude-cook 1.10.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 (112) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +607 -0
  3. package/agents/gsd-codebase-mapper.md +738 -0
  4. package/agents/gsd-debugger.md +1203 -0
  5. package/agents/gsd-executor.md +784 -0
  6. package/agents/gsd-integration-checker.md +423 -0
  7. package/agents/gsd-phase-researcher.md +641 -0
  8. package/agents/gsd-plan-checker.md +745 -0
  9. package/agents/gsd-planner.md +1386 -0
  10. package/agents/gsd-pm.md +331 -0
  11. package/agents/gsd-project-researcher.md +865 -0
  12. package/agents/gsd-research-synthesizer.md +256 -0
  13. package/agents/gsd-roadmapper.md +605 -0
  14. package/agents/gsd-verifier.md +778 -0
  15. package/bin/install.js +1477 -0
  16. package/commands/gsd/add-phase.md +207 -0
  17. package/commands/gsd/add-todo.md +193 -0
  18. package/commands/gsd/audit-milestone.md +277 -0
  19. package/commands/gsd/check-todos.md +228 -0
  20. package/commands/gsd/complete-milestone.md +136 -0
  21. package/commands/gsd/debug.md +169 -0
  22. package/commands/gsd/discuss-phase.md +86 -0
  23. package/commands/gsd/execute-phase.md +339 -0
  24. package/commands/gsd/help.md +545 -0
  25. package/commands/gsd/insert-phase.md +227 -0
  26. package/commands/gsd/join-discord.md +18 -0
  27. package/commands/gsd/list-phase-assumptions.md +50 -0
  28. package/commands/gsd/map-codebase.md +71 -0
  29. package/commands/gsd/new-milestone.md +721 -0
  30. package/commands/gsd/new-project.md +1008 -0
  31. package/commands/gsd/pause-work.md +134 -0
  32. package/commands/gsd/plan-milestone-gaps.md +295 -0
  33. package/commands/gsd/plan-phase.md +525 -0
  34. package/commands/gsd/pm-check.md +115 -0
  35. package/commands/gsd/pm-replan.md +102 -0
  36. package/commands/gsd/pm-start.md +218 -0
  37. package/commands/gsd/pm-status.md +116 -0
  38. package/commands/gsd/pm-stop.md +72 -0
  39. package/commands/gsd/progress.md +415 -0
  40. package/commands/gsd/quick.md +309 -0
  41. package/commands/gsd/remove-phase.md +349 -0
  42. package/commands/gsd/research-phase.md +200 -0
  43. package/commands/gsd/resume-work.md +40 -0
  44. package/commands/gsd/set-profile.md +106 -0
  45. package/commands/gsd/settings.md +151 -0
  46. package/commands/gsd/update.md +172 -0
  47. package/commands/gsd/verify-work.md +219 -0
  48. package/get-shit-done/references/checkpoints.md +1078 -0
  49. package/get-shit-done/references/continuation-format.md +249 -0
  50. package/get-shit-done/references/git-integration.md +254 -0
  51. package/get-shit-done/references/model-profiles.md +73 -0
  52. package/get-shit-done/references/planning-config.md +189 -0
  53. package/get-shit-done/references/questioning.md +141 -0
  54. package/get-shit-done/references/tdd.md +263 -0
  55. package/get-shit-done/references/ui-brand.md +172 -0
  56. package/get-shit-done/references/verification-patterns.md +612 -0
  57. package/get-shit-done/references/vibe-kanban.md +142 -0
  58. package/get-shit-done/templates/DEBUG.md +159 -0
  59. package/get-shit-done/templates/UAT.md +247 -0
  60. package/get-shit-done/templates/codebase/architecture.md +255 -0
  61. package/get-shit-done/templates/codebase/concerns.md +310 -0
  62. package/get-shit-done/templates/codebase/conventions.md +307 -0
  63. package/get-shit-done/templates/codebase/integrations.md +280 -0
  64. package/get-shit-done/templates/codebase/stack.md +186 -0
  65. package/get-shit-done/templates/codebase/structure.md +285 -0
  66. package/get-shit-done/templates/codebase/testing.md +480 -0
  67. package/get-shit-done/templates/config.json +35 -0
  68. package/get-shit-done/templates/context.md +283 -0
  69. package/get-shit-done/templates/continue-here.md +78 -0
  70. package/get-shit-done/templates/debug-subagent-prompt.md +91 -0
  71. package/get-shit-done/templates/discovery.md +146 -0
  72. package/get-shit-done/templates/milestone-archive.md +123 -0
  73. package/get-shit-done/templates/milestone.md +115 -0
  74. package/get-shit-done/templates/phase-prompt.md +567 -0
  75. package/get-shit-done/templates/planner-subagent-prompt.md +117 -0
  76. package/get-shit-done/templates/pm-config.md +55 -0
  77. package/get-shit-done/templates/pm-log.md +27 -0
  78. package/get-shit-done/templates/project.md +184 -0
  79. package/get-shit-done/templates/requirements.md +231 -0
  80. package/get-shit-done/templates/research-project/ARCHITECTURE.md +204 -0
  81. package/get-shit-done/templates/research-project/FEATURES.md +147 -0
  82. package/get-shit-done/templates/research-project/PITFALLS.md +200 -0
  83. package/get-shit-done/templates/research-project/STACK.md +120 -0
  84. package/get-shit-done/templates/research-project/SUMMARY.md +170 -0
  85. package/get-shit-done/templates/research.md +529 -0
  86. package/get-shit-done/templates/roadmap.md +202 -0
  87. package/get-shit-done/templates/state.md +205 -0
  88. package/get-shit-done/templates/summary.md +246 -0
  89. package/get-shit-done/templates/ticket-map.md +28 -0
  90. package/get-shit-done/templates/user-setup.md +311 -0
  91. package/get-shit-done/templates/verification-report.md +322 -0
  92. package/get-shit-done/workflows/complete-milestone.md +903 -0
  93. package/get-shit-done/workflows/diagnose-issues.md +231 -0
  94. package/get-shit-done/workflows/discovery-phase.md +289 -0
  95. package/get-shit-done/workflows/discuss-phase.md +433 -0
  96. package/get-shit-done/workflows/execute-phase.md +671 -0
  97. package/get-shit-done/workflows/execute-plan.md +1844 -0
  98. package/get-shit-done/workflows/list-phase-assumptions.md +178 -0
  99. package/get-shit-done/workflows/map-codebase.md +322 -0
  100. package/get-shit-done/workflows/pm-check.md +210 -0
  101. package/get-shit-done/workflows/pm-dispatch.md +104 -0
  102. package/get-shit-done/workflows/pm-replan.md +203 -0
  103. package/get-shit-done/workflows/pm-sync.md +130 -0
  104. package/get-shit-done/workflows/resume-project.md +307 -0
  105. package/get-shit-done/workflows/transition.md +556 -0
  106. package/get-shit-done/workflows/verify-phase.md +628 -0
  107. package/get-shit-done/workflows/verify-work.md +596 -0
  108. package/hooks/dist/gsd-check-update.js +61 -0
  109. package/hooks/dist/gsd-statusline.js +87 -0
  110. package/package.json +47 -0
  111. package/scripts/build-hooks.js +42 -0
  112. package/scripts/pm-loop.sh +155 -0
@@ -0,0 +1,349 @@
1
+ ---
2
+ name: gsd:remove-phase
3
+ description: Remove a future phase from roadmap and renumber subsequent phases
4
+ argument-hint: <phase-number>
5
+ allowed-tools:
6
+ - Read
7
+ - Write
8
+ - Bash
9
+ - Glob
10
+ ---
11
+
12
+ <objective>
13
+ Remove an unstarted future phase from the roadmap and renumber all subsequent phases to maintain a clean, linear sequence.
14
+
15
+ Purpose: Clean removal of work you've decided not to do, without polluting context with cancelled/deferred markers.
16
+ Output: Phase deleted, all subsequent phases renumbered, git commit as historical record.
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
+ - Argument is the phase number to remove (integer or decimal)
29
+ - Example: `/gsd:remove-phase 17` → phase = 17
30
+ - Example: `/gsd:remove-phase 16.1` → phase = 16.1
31
+
32
+ If no argument provided:
33
+
34
+ ```
35
+ ERROR: Phase number required
36
+ Usage: /gsd:remove-phase <phase-number>
37
+ Example: /gsd:remove-phase 17
38
+ ```
39
+
40
+ Exit.
41
+ </step>
42
+
43
+ <step name="load_state">
44
+ Load project state:
45
+
46
+ ```bash
47
+ cat .planning/STATE.md 2>/dev/null
48
+ cat .planning/ROADMAP.md 2>/dev/null
49
+ ```
50
+
51
+ Parse current phase number from STATE.md "Current Position" section.
52
+ </step>
53
+
54
+ <step name="validate_phase_exists">
55
+ Verify the target phase exists in ROADMAP.md:
56
+
57
+ 1. Search for `### Phase {target}:` heading
58
+ 2. If not found:
59
+
60
+ ```
61
+ ERROR: Phase {target} not found in roadmap
62
+ Available phases: [list phase numbers]
63
+ ```
64
+
65
+ Exit.
66
+ </step>
67
+
68
+ <step name="validate_future_phase">
69
+ Verify the phase is a future phase (not started):
70
+
71
+ 1. Compare target phase to current phase from STATE.md
72
+ 2. Target must be > current phase number
73
+
74
+ If target <= current phase:
75
+
76
+ ```
77
+ ERROR: Cannot remove Phase {target}
78
+
79
+ Only future phases can be removed:
80
+ - Current phase: {current}
81
+ - Phase {target} is current or completed
82
+
83
+ To abandon current work, use /gsd:pause-work instead.
84
+ ```
85
+
86
+ Exit.
87
+
88
+ 3. Check for SUMMARY.md files in phase directory:
89
+
90
+ ```bash
91
+ ls .planning/phases/{target}-*/*-SUMMARY.md 2>/dev/null
92
+ ```
93
+
94
+ If any SUMMARY.md files exist:
95
+
96
+ ```
97
+ ERROR: Phase {target} has completed work
98
+
99
+ Found executed plans:
100
+ - {list of SUMMARY.md files}
101
+
102
+ Cannot remove phases with completed work.
103
+ ```
104
+
105
+ Exit.
106
+ </step>
107
+
108
+ <step name="gather_phase_info">
109
+ Collect information about the phase being removed:
110
+
111
+ 1. Extract phase name from ROADMAP.md heading: `### Phase {target}: {Name}`
112
+ 2. Find phase directory: `.planning/phases/{target}-{slug}/`
113
+ 3. Find all subsequent phases (integer and decimal) that need renumbering
114
+
115
+ **Subsequent phase detection:**
116
+
117
+ For integer phase removal (e.g., 17):
118
+ - Find all phases > 17 (integers: 18, 19, 20...)
119
+ - Find all decimal phases >= 17.0 and < 18.0 (17.1, 17.2...) → these become 16.x
120
+ - Find all decimal phases for subsequent integers (18.1, 19.1...) → renumber with their parent
121
+
122
+ For decimal phase removal (e.g., 17.1):
123
+ - Find all decimal phases > 17.1 and < 18 (17.2, 17.3...) → renumber down
124
+ - Integer phases unchanged
125
+
126
+ List all phases that will be renumbered.
127
+ </step>
128
+
129
+ <step name="confirm_removal">
130
+ Present removal summary and confirm:
131
+
132
+ ```
133
+ Removing Phase {target}: {Name}
134
+
135
+ This will:
136
+ - Delete: .planning/phases/{target}-{slug}/
137
+ - Renumber {N} subsequent phases:
138
+ - Phase 18 → Phase 17
139
+ - Phase 18.1 → Phase 17.1
140
+ - Phase 19 → Phase 18
141
+ [etc.]
142
+
143
+ Proceed? (y/n)
144
+ ```
145
+
146
+ Wait for confirmation.
147
+ </step>
148
+
149
+ <step name="delete_phase_directory">
150
+ Delete the target phase directory if it exists:
151
+
152
+ ```bash
153
+ if [ -d ".planning/phases/{target}-{slug}" ]; then
154
+ rm -rf ".planning/phases/{target}-{slug}"
155
+ echo "Deleted: .planning/phases/{target}-{slug}/"
156
+ fi
157
+ ```
158
+
159
+ If directory doesn't exist, note: "No directory to delete (phase not yet created)"
160
+ </step>
161
+
162
+ <step name="renumber_directories">
163
+ Rename all subsequent phase directories:
164
+
165
+ For each phase directory that needs renumbering (in reverse order to avoid conflicts):
166
+
167
+ ```bash
168
+ # Example: renaming 18-dashboard to 17-dashboard
169
+ mv ".planning/phases/18-dashboard" ".planning/phases/17-dashboard"
170
+ ```
171
+
172
+ Process in descending order (20→19, then 19→18, then 18→17) to avoid overwriting.
173
+
174
+ Also rename decimal phase directories:
175
+ - `17.1-fix-bug` → `16.1-fix-bug` (if removing integer 17)
176
+ - `17.2-hotfix` → `17.1-hotfix` (if removing decimal 17.1)
177
+ </step>
178
+
179
+ <step name="rename_files_in_directories">
180
+ Rename plan files inside renumbered directories:
181
+
182
+ For each renumbered directory, rename files that contain the phase number:
183
+
184
+ ```bash
185
+ # Inside 17-dashboard (was 18-dashboard):
186
+ mv "18-01-PLAN.md" "17-01-PLAN.md"
187
+ mv "18-02-PLAN.md" "17-02-PLAN.md"
188
+ mv "18-01-SUMMARY.md" "17-01-SUMMARY.md" # if exists
189
+ # etc.
190
+ ```
191
+
192
+ Also handle CONTEXT.md and DISCOVERY.md (these don't have phase prefixes, so no rename needed).
193
+ </step>
194
+
195
+ <step name="update_roadmap">
196
+ Update ROADMAP.md:
197
+
198
+ 1. **Remove the phase section entirely:**
199
+ - Delete from `### Phase {target}:` to the next phase heading (or section end)
200
+
201
+ 2. **Remove from phase list:**
202
+ - Delete line `- [ ] **Phase {target}: {Name}**` or similar
203
+
204
+ 3. **Remove from Progress table:**
205
+ - Delete the row for Phase {target}
206
+
207
+ 4. **Renumber all subsequent phases:**
208
+ - `### Phase 18:` → `### Phase 17:`
209
+ - `- [ ] **Phase 18:` → `- [ ] **Phase 17:`
210
+ - Table rows: `| 18. Dashboard |` → `| 17. Dashboard |`
211
+ - Plan references: `18-01:` → `17-01:`
212
+
213
+ 5. **Update dependency references:**
214
+ - `**Depends on:** Phase 18` → `**Depends on:** Phase 17`
215
+ - For the phase that depended on the removed phase:
216
+ - `**Depends on:** Phase 17` (removed) → `**Depends on:** Phase 16`
217
+
218
+ 6. **Renumber decimal phases:**
219
+ - `### Phase 17.1:` → `### Phase 16.1:` (if integer 17 removed)
220
+ - Update all references consistently
221
+
222
+ Write updated ROADMAP.md.
223
+ </step>
224
+
225
+ <step name="update_state">
226
+ Update STATE.md:
227
+
228
+ 1. **Update total phase count:**
229
+ - `Phase: 16 of 20` → `Phase: 16 of 19`
230
+
231
+ 2. **Recalculate progress percentage:**
232
+ - New percentage based on completed plans / new total plans
233
+
234
+ Do NOT add a "Roadmap Evolution" note - the git commit is the record.
235
+
236
+ Write updated STATE.md.
237
+ </step>
238
+
239
+ <step name="update_file_contents">
240
+ Search for and update phase references inside plan files:
241
+
242
+ ```bash
243
+ # Find files that reference the old phase numbers
244
+ grep -r "Phase 18" .planning/phases/17-*/ 2>/dev/null
245
+ grep -r "Phase 19" .planning/phases/18-*/ 2>/dev/null
246
+ # etc.
247
+ ```
248
+
249
+ Update any internal references to reflect new numbering.
250
+ </step>
251
+
252
+ <step name="commit">
253
+ Stage and commit the removal:
254
+
255
+ **Check planning config:**
256
+
257
+ ```bash
258
+ COMMIT_PLANNING_DOCS=$(cat .planning/config.json 2>/dev/null | grep -o '"commit_docs"[[:space:]]*:[[:space:]]*[^,}]*' | grep -o 'true\|false' || echo "true")
259
+ git check-ignore -q .planning 2>/dev/null && COMMIT_PLANNING_DOCS=false
260
+ ```
261
+
262
+ **If `COMMIT_PLANNING_DOCS=false`:** Skip git operations
263
+
264
+ **If `COMMIT_PLANNING_DOCS=true` (default):**
265
+
266
+ ```bash
267
+ git add .planning/
268
+ git commit -m "chore: remove phase {target} ({original-phase-name})"
269
+ ```
270
+
271
+ The commit message preserves the historical record of what was removed.
272
+ </step>
273
+
274
+ <step name="completion">
275
+ Present completion summary:
276
+
277
+ ```
278
+ Phase {target} ({original-name}) removed.
279
+
280
+ Changes:
281
+ - Deleted: .planning/phases/{target}-{slug}/
282
+ - Renumbered: Phases {first-renumbered}-{last-old} → {first-renumbered-1}-{last-new}
283
+ - Updated: ROADMAP.md, STATE.md
284
+ - Committed: chore: remove phase {target} ({original-name})
285
+
286
+ Current roadmap: {total-remaining} phases
287
+ Current position: Phase {current} of {new-total}
288
+
289
+ ---
290
+
291
+ ## What's Next
292
+
293
+ Would you like to:
294
+ - `/gsd:progress` — see updated roadmap status
295
+ - Continue with current phase
296
+ - Review roadmap
297
+
298
+ ---
299
+ ```
300
+ </step>
301
+
302
+ </process>
303
+
304
+ <anti_patterns>
305
+
306
+ - Don't remove completed phases (have SUMMARY.md files)
307
+ - Don't remove current or past phases
308
+ - Don't leave gaps in numbering - always renumber
309
+ - Don't add "removed phase" notes to STATE.md - git commit is the record
310
+ - Don't ask about each decimal phase - just renumber them
311
+ - Don't modify completed phase directories
312
+ </anti_patterns>
313
+
314
+ <edge_cases>
315
+
316
+ **Removing a decimal phase (e.g., 17.1):**
317
+ - Only affects other decimals in same series (17.2 → 17.1, 17.3 → 17.2)
318
+ - Integer phases unchanged
319
+ - Simpler operation
320
+
321
+ **No subsequent phases to renumber:**
322
+ - Removing the last phase (e.g., Phase 20 when that's the end)
323
+ - Just delete and update ROADMAP.md, no renumbering needed
324
+
325
+ **Phase directory doesn't exist:**
326
+ - Phase may be in ROADMAP.md but directory not created yet
327
+ - Skip directory deletion, proceed with ROADMAP.md updates
328
+
329
+ **Decimal phases under removed integer:**
330
+ - Removing Phase 17 when 17.1, 17.2 exist
331
+ - 17.1 → 16.1, 17.2 → 16.2
332
+ - They maintain their position in execution order (after current last integer)
333
+
334
+ </edge_cases>
335
+
336
+ <success_criteria>
337
+ Phase removal is complete when:
338
+
339
+ - [ ] Target phase validated as future/unstarted
340
+ - [ ] Phase directory deleted (if existed)
341
+ - [ ] All subsequent phase directories renumbered
342
+ - [ ] Files inside directories renamed ({old}-01-PLAN.md → {new}-01-PLAN.md)
343
+ - [ ] ROADMAP.md updated (section removed, all references renumbered)
344
+ - [ ] STATE.md updated (phase count, progress percentage)
345
+ - [ ] Dependency references updated in subsequent phases
346
+ - [ ] Changes committed with descriptive message
347
+ - [ ] No gaps in phase numbering
348
+ - [ ] User informed of changes
349
+ </success_criteria>
@@ -0,0 +1,200 @@
1
+ ---
2
+ name: gsd:research-phase
3
+ description: Research how to implement a phase (standalone - usually use /gsd:plan-phase instead)
4
+ argument-hint: "[phase]"
5
+ allowed-tools:
6
+ - Read
7
+ - Bash
8
+ - Task
9
+ ---
10
+
11
+ <objective>
12
+ Research how to implement a phase. Spawns gsd-phase-researcher agent with phase context.
13
+
14
+ **Note:** This is a standalone research command. For most workflows, use `/gsd:plan-phase` which integrates research automatically.
15
+
16
+ **Use this command when:**
17
+ - You want to research without planning yet
18
+ - You want to re-research after planning is complete
19
+ - You need to investigate before deciding if a phase is feasible
20
+
21
+ **Orchestrator role:** Parse phase, validate against roadmap, check existing research, gather context, spawn researcher agent, present results.
22
+
23
+ **Why subagent:** Research burns context fast (WebSearch, Context7 queries, source verification). Fresh 200k context for investigation. Main context stays lean for user interaction.
24
+ </objective>
25
+
26
+ <context>
27
+ Phase number: $ARGUMENTS (required)
28
+
29
+ Normalize phase input in step 1 before any directory lookups.
30
+ </context>
31
+
32
+ <process>
33
+
34
+ ## 0. Resolve Model Profile
35
+
36
+ Read model profile for agent spawning:
37
+
38
+ ```bash
39
+ MODEL_PROFILE=$(cat .planning/config.json 2>/dev/null | grep -o '"model_profile"[[:space:]]*:[[:space:]]*"[^"]*"' | grep -o '"[^"]*"$' | tr -d '"' || echo "balanced")
40
+ ```
41
+
42
+ Default to "balanced" if not set.
43
+
44
+ **Model lookup table:**
45
+
46
+ | Agent | quality | balanced | budget |
47
+ |-------|---------|----------|--------|
48
+ | gsd-phase-researcher | opus | sonnet | haiku |
49
+
50
+ Store resolved model for use in Task calls below.
51
+
52
+ ## 1. Normalize and Validate Phase
53
+
54
+ ```bash
55
+ # Normalize phase number (8 → 08, but preserve decimals like 2.1 → 02.1)
56
+ if [[ "$ARGUMENTS" =~ ^[0-9]+$ ]]; then
57
+ PHASE=$(printf "%02d" "$ARGUMENTS")
58
+ elif [[ "$ARGUMENTS" =~ ^([0-9]+)\.([0-9]+)$ ]]; then
59
+ PHASE=$(printf "%02d.%s" "${BASH_REMATCH[1]}" "${BASH_REMATCH[2]}")
60
+ else
61
+ PHASE="$ARGUMENTS"
62
+ fi
63
+
64
+ grep -A5 "Phase ${PHASE}:" .planning/ROADMAP.md 2>/dev/null
65
+ ```
66
+
67
+ **If not found:** Error and exit. **If found:** Extract phase number, name, description.
68
+
69
+ ## 2. Check Existing Research
70
+
71
+ ```bash
72
+ ls .planning/phases/${PHASE}-*/RESEARCH.md 2>/dev/null
73
+ ```
74
+
75
+ **If exists:** Offer: 1) Update research, 2) View existing, 3) Skip. Wait for response.
76
+
77
+ **If doesn't exist:** Continue.
78
+
79
+ ## 3. Gather Phase Context
80
+
81
+ ```bash
82
+ grep -A20 "Phase ${PHASE}:" .planning/ROADMAP.md
83
+ cat .planning/REQUIREMENTS.md 2>/dev/null
84
+ cat .planning/phases/${PHASE}-*/*-CONTEXT.md 2>/dev/null
85
+ grep -A30 "### Decisions Made" .planning/STATE.md 2>/dev/null
86
+ ```
87
+
88
+ Present summary with phase description, requirements, prior decisions.
89
+
90
+ ## 4. Spawn gsd-phase-researcher Agent
91
+
92
+ Research modes: ecosystem (default), feasibility, implementation, comparison.
93
+
94
+ ```markdown
95
+ <research_type>
96
+ Phase Research — investigating HOW to implement a specific phase well.
97
+ </research_type>
98
+
99
+ <key_insight>
100
+ The question is NOT "which library should I use?"
101
+
102
+ The question is: "What do I not know that I don't know?"
103
+
104
+ For this phase, discover:
105
+ - What's the established architecture pattern?
106
+ - What libraries form the standard stack?
107
+ - What problems do people commonly hit?
108
+ - What's SOTA vs what Claude's training thinks is SOTA?
109
+ - What should NOT be hand-rolled?
110
+ </key_insight>
111
+
112
+ <objective>
113
+ Research implementation approach for Phase {phase_number}: {phase_name}
114
+ Mode: ecosystem
115
+ </objective>
116
+
117
+ <context>
118
+ **Phase description:** {phase_description}
119
+ **Requirements:** {requirements_list}
120
+ **Prior decisions:** {decisions_if_any}
121
+ **Phase context:** {context_md_content}
122
+ </context>
123
+
124
+ <downstream_consumer>
125
+ Your RESEARCH.md will be loaded by `/gsd:plan-phase` which uses specific sections:
126
+ - `## Standard Stack` → Plans use these libraries
127
+ - `## Architecture Patterns` → Task structure follows these
128
+ - `## Don't Hand-Roll` → Tasks NEVER build custom solutions for listed problems
129
+ - `## Common Pitfalls` → Verification steps check for these
130
+ - `## Code Examples` → Task actions reference these patterns
131
+
132
+ Be prescriptive, not exploratory. "Use X" not "Consider X or Y."
133
+ </downstream_consumer>
134
+
135
+ <quality_gate>
136
+ Before declaring complete, verify:
137
+ - [ ] All domains investigated (not just some)
138
+ - [ ] Negative claims verified with official docs
139
+ - [ ] Multiple sources for critical claims
140
+ - [ ] Confidence levels assigned honestly
141
+ - [ ] Section names match what plan-phase expects
142
+ </quality_gate>
143
+
144
+ <output>
145
+ Write to: .planning/phases/${PHASE}-{slug}/${PHASE}-RESEARCH.md
146
+ </output>
147
+ ```
148
+
149
+ ```
150
+ Task(
151
+ prompt="First, read ~/.claude/agents/gsd-phase-researcher.md for your role and instructions.\n\n" + filled_prompt,
152
+ subagent_type="general-purpose",
153
+ model="{researcher_model}",
154
+ description="Research Phase {phase}"
155
+ )
156
+ ```
157
+
158
+ ## 5. Handle Agent Return
159
+
160
+ **`## RESEARCH COMPLETE`:** Display summary, offer: Plan phase, Dig deeper, Review full, Done.
161
+
162
+ **`## CHECKPOINT REACHED`:** Present to user, get response, spawn continuation.
163
+
164
+ **`## RESEARCH INCONCLUSIVE`:** Show what was attempted, offer: Add context, Try different mode, Manual.
165
+
166
+ ## 6. Spawn Continuation Agent
167
+
168
+ ```markdown
169
+ <objective>
170
+ Continue research for Phase {phase_number}: {phase_name}
171
+ </objective>
172
+
173
+ <prior_state>
174
+ Research file: @.planning/phases/${PHASE}-{slug}/${PHASE}-RESEARCH.md
175
+ </prior_state>
176
+
177
+ <checkpoint_response>
178
+ **Type:** {checkpoint_type}
179
+ **Response:** {user_response}
180
+ </checkpoint_response>
181
+ ```
182
+
183
+ ```
184
+ Task(
185
+ prompt="First, read ~/.claude/agents/gsd-phase-researcher.md for your role and instructions.\n\n" + continuation_prompt,
186
+ subagent_type="general-purpose",
187
+ model="{researcher_model}",
188
+ description="Continue research Phase {phase}"
189
+ )
190
+ ```
191
+
192
+ </process>
193
+
194
+ <success_criteria>
195
+ - [ ] Phase validated against roadmap
196
+ - [ ] Existing research checked
197
+ - [ ] gsd-phase-researcher spawned with context
198
+ - [ ] Checkpoints handled correctly
199
+ - [ ] User knows next steps
200
+ </success_criteria>
@@ -0,0 +1,40 @@
1
+ ---
2
+ name: gsd:resume-work
3
+ description: Resume work from previous session with full context restoration
4
+ allowed-tools:
5
+ - Read
6
+ - Bash
7
+ - Write
8
+ - AskUserQuestion
9
+ - SlashCommand
10
+ ---
11
+
12
+ <objective>
13
+ Restore complete project context and resume work seamlessly from previous session.
14
+
15
+ Routes to the resume-project workflow which handles:
16
+
17
+ - STATE.md loading (or reconstruction if missing)
18
+ - Checkpoint detection (.continue-here files)
19
+ - Incomplete work detection (PLAN without SUMMARY)
20
+ - Status presentation
21
+ - Context-aware next action routing
22
+ </objective>
23
+
24
+ <execution_context>
25
+ @~/.claude/get-shit-done/workflows/resume-project.md
26
+ </execution_context>
27
+
28
+ <process>
29
+ **Follow the resume-project workflow** from `@~/.claude/get-shit-done/workflows/resume-project.md`.
30
+
31
+ The workflow handles all resumption logic including:
32
+
33
+ 1. Project existence verification
34
+ 2. STATE.md loading or reconstruction
35
+ 3. Checkpoint and incomplete work detection
36
+ 4. Visual status presentation
37
+ 5. Context-aware option offering (checks CONTEXT.md before suggesting plan vs discuss)
38
+ 6. Routing to appropriate next command
39
+ 7. Session continuity updates
40
+ </process>
@@ -0,0 +1,106 @@
1
+ ---
2
+ name: set-profile
3
+ description: Switch model profile for GSD agents (quality/balanced/budget)
4
+ arguments:
5
+ - name: profile
6
+ description: "Profile name: quality, balanced, or budget"
7
+ required: true
8
+ ---
9
+
10
+ <objective>
11
+ Switch the model profile used by GSD agents. This controls which Claude model each agent uses, balancing quality vs token spend.
12
+ </objective>
13
+
14
+ <profiles>
15
+ | Profile | Description |
16
+ |---------|-------------|
17
+ | **quality** | Opus everywhere except read-only verification |
18
+ | **balanced** | Opus for planning, Sonnet for execution/verification (default) |
19
+ | **budget** | Sonnet for writing, Haiku for research/verification |
20
+ </profiles>
21
+
22
+ <process>
23
+
24
+ ## 1. Validate argument
25
+
26
+ ```
27
+ if $ARGUMENTS.profile not in ["quality", "balanced", "budget"]:
28
+ Error: Invalid profile "$ARGUMENTS.profile"
29
+ Valid profiles: quality, balanced, budget
30
+ STOP
31
+ ```
32
+
33
+ ## 2. Check for project
34
+
35
+ ```bash
36
+ ls .planning/config.json 2>/dev/null
37
+ ```
38
+
39
+ If no `.planning/` directory:
40
+ ```
41
+ Error: No GSD project found.
42
+ Run /gsd:new-project first to initialize a project.
43
+ ```
44
+
45
+ ## 3. Update config.json
46
+
47
+ Read current config:
48
+ ```bash
49
+ cat .planning/config.json
50
+ ```
51
+
52
+ Update `model_profile` field (or add if missing):
53
+ ```json
54
+ {
55
+ "model_profile": "$ARGUMENTS.profile"
56
+ }
57
+ ```
58
+
59
+ Write updated config back to `.planning/config.json`.
60
+
61
+ ## 4. Confirm
62
+
63
+ ```
64
+ ✓ Model profile set to: $ARGUMENTS.profile
65
+
66
+ Agents will now use:
67
+ [Show table from model-profiles.md for selected profile]
68
+
69
+ Next spawned agents will use the new profile.
70
+ ```
71
+
72
+ </process>
73
+
74
+ <examples>
75
+
76
+ **Switch to budget mode:**
77
+ ```
78
+ /gsd:set-profile budget
79
+
80
+ ✓ Model profile set to: budget
81
+
82
+ Agents will now use:
83
+ | Agent | Model |
84
+ |-------|-------|
85
+ | gsd-planner | sonnet |
86
+ | gsd-executor | sonnet |
87
+ | gsd-verifier | haiku |
88
+ | ... | ... |
89
+ ```
90
+
91
+ **Switch to quality mode:**
92
+ ```
93
+ /gsd:set-profile quality
94
+
95
+ ✓ Model profile set to: quality
96
+
97
+ Agents will now use:
98
+ | Agent | Model |
99
+ |-------|-------|
100
+ | gsd-planner | opus |
101
+ | gsd-executor | opus |
102
+ | gsd-verifier | sonnet |
103
+ | ... | ... |
104
+ ```
105
+
106
+ </examples>