@undeemed/get-shit-done-codex 1.6.12 → 1.20.2
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.
- package/README.md +22 -3
- package/agents/gsd-codebase-mapper.md +761 -0
- package/agents/gsd-debugger.md +1198 -0
- package/agents/gsd-executor.md +419 -0
- package/agents/gsd-integration-checker.md +423 -0
- package/agents/gsd-phase-researcher.md +469 -0
- package/agents/gsd-plan-checker.md +622 -0
- package/agents/gsd-planner.md +1159 -0
- package/agents/gsd-project-researcher.md +618 -0
- package/agents/gsd-research-synthesizer.md +236 -0
- package/agents/gsd-roadmapper.md +639 -0
- package/agents/gsd-verifier.md +541 -0
- package/bin/install.js +106 -100
- package/commands/gsd/add-phase.md +17 -185
- package/commands/gsd/add-todo.md +23 -163
- package/commands/gsd/audit-milestone.md +3 -219
- package/commands/gsd/check-todos.md +20 -196
- package/commands/gsd/cleanup.md +18 -0
- package/commands/gsd/debug.md +13 -0
- package/commands/gsd/discuss-phase.md +10 -3
- package/commands/gsd/execute-phase.md +3 -265
- package/commands/gsd/health.md +22 -0
- package/commands/gsd/help.md +8 -369
- package/commands/gsd/insert-phase.md +9 -203
- package/commands/gsd/join-discord.md +18 -0
- package/commands/gsd/new-milestone.md +12 -678
- package/commands/gsd/new-project.md +8 -862
- package/commands/gsd/new-project.md.bak +1041 -0
- package/commands/gsd/pause-work.md +17 -105
- package/commands/gsd/plan-milestone-gaps.md +3 -247
- package/commands/gsd/plan-phase.md +13 -444
- package/commands/gsd/progress.md +5 -337
- package/commands/gsd/quick.md +40 -0
- package/commands/gsd/reapply-patches.md +110 -0
- package/commands/gsd/remove-phase.md +9 -315
- package/commands/gsd/research-phase.md +26 -19
- package/commands/gsd/set-profile.md +34 -0
- package/commands/gsd/settings.md +36 -0
- package/commands/gsd/update.md +25 -160
- package/commands/gsd/verify-work.md +3 -183
- package/get-shit-done/bin/gsd-tools.cjs +5243 -0
- package/get-shit-done/bin/gsd-tools.test.cjs +2273 -0
- package/get-shit-done/references/checkpoints.md +254 -267
- package/get-shit-done/references/decimal-phase-calculation.md +65 -0
- package/get-shit-done/references/git-integration.md +3 -9
- package/get-shit-done/references/git-planning-commit.md +38 -0
- package/get-shit-done/references/model-profile-resolution.md +34 -0
- package/get-shit-done/references/model-profiles.md +92 -0
- package/get-shit-done/references/phase-argument-parsing.md +61 -0
- package/get-shit-done/references/planning-config.md +196 -0
- package/get-shit-done/references/questioning.md +4 -0
- package/get-shit-done/references/verification-patterns.md +17 -0
- package/get-shit-done/templates/UAT.md +1 -1
- package/get-shit-done/templates/codebase/structure.md +3 -3
- package/get-shit-done/templates/config.json +10 -0
- package/get-shit-done/templates/context.md +2 -10
- package/get-shit-done/templates/phase-prompt.md +18 -27
- package/get-shit-done/templates/planner-subagent-prompt.md +4 -4
- package/get-shit-done/templates/research-project/ARCHITECTURE.md +1 -1
- package/get-shit-done/templates/research.md +25 -2
- package/get-shit-done/templates/state.md +0 -30
- package/get-shit-done/templates/summary-complex.md +59 -0
- package/get-shit-done/templates/summary-minimal.md +41 -0
- package/get-shit-done/templates/summary-standard.md +48 -0
- package/get-shit-done/templates/summary.md +5 -28
- package/get-shit-done/templates/user-setup.md +1 -13
- package/get-shit-done/templates/verification-report.md +1 -1
- package/get-shit-done/workflows/add-phase.md +111 -0
- package/get-shit-done/workflows/add-todo.md +157 -0
- package/get-shit-done/workflows/audit-milestone.md +242 -0
- package/get-shit-done/workflows/check-todos.md +176 -0
- package/get-shit-done/workflows/cleanup.md +152 -0
- package/get-shit-done/workflows/complete-milestone.md +225 -301
- package/get-shit-done/workflows/diagnose-issues.md +3 -17
- package/get-shit-done/workflows/discovery-phase.md +6 -10
- package/get-shit-done/workflows/discuss-phase.md +99 -36
- package/get-shit-done/workflows/execute-phase.md +205 -349
- package/get-shit-done/workflows/execute-plan.md +179 -1569
- package/get-shit-done/workflows/health.md +156 -0
- package/get-shit-done/workflows/help.md +486 -0
- package/get-shit-done/workflows/insert-phase.md +129 -0
- package/get-shit-done/workflows/list-phase-assumptions.md +2 -2
- package/get-shit-done/workflows/map-codebase.md +55 -17
- package/get-shit-done/workflows/new-milestone.md +373 -0
- package/get-shit-done/workflows/new-project.md +1113 -0
- package/get-shit-done/workflows/pause-work.md +122 -0
- package/get-shit-done/workflows/plan-milestone-gaps.md +256 -0
- package/get-shit-done/workflows/plan-phase.md +448 -0
- package/get-shit-done/workflows/progress.md +393 -0
- package/get-shit-done/workflows/quick.md +444 -0
- package/get-shit-done/workflows/remove-phase.md +154 -0
- package/get-shit-done/workflows/research-phase.md +74 -0
- package/get-shit-done/workflows/resume-project.md +18 -23
- package/get-shit-done/workflows/set-profile.md +80 -0
- package/get-shit-done/workflows/settings.md +200 -0
- package/get-shit-done/workflows/transition.md +78 -103
- package/get-shit-done/workflows/update.md +214 -0
- package/get-shit-done/workflows/verify-phase.md +107 -494
- package/get-shit-done/workflows/verify-work.md +18 -11
- package/hooks/dist/gsd-check-update.js +66 -0
- package/hooks/dist/gsd-statusline.js +91 -0
- package/package.json +19 -3
- package/scripts/build-hooks.js +42 -0
- package/commands/gsd/whats-new.md +0 -124
|
@@ -8,7 +8,6 @@ allowed-tools:
|
|
|
8
8
|
- Bash
|
|
9
9
|
- Glob
|
|
10
10
|
---
|
|
11
|
-
|
|
12
11
|
<objective>
|
|
13
12
|
Remove an unstarted future phase from the roadmap and renumber all subsequent phases to maintain a clean, linear sequence.
|
|
14
13
|
|
|
@@ -17,322 +16,17 @@ Output: Phase deleted, all subsequent phases renumbered, git commit as historica
|
|
|
17
16
|
</objective>
|
|
18
17
|
|
|
19
18
|
<execution_context>
|
|
20
|
-
|
|
21
|
-
@.planning/STATE.md
|
|
19
|
+
@~/.claude/get-shit-done/workflows/remove-phase.md
|
|
22
20
|
</execution_context>
|
|
23
21
|
|
|
24
|
-
<
|
|
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.
|
|
22
|
+
<context>
|
|
23
|
+
Phase: $ARGUMENTS
|
|
173
24
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
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
|
-
```bash
|
|
256
|
-
git add .planning/
|
|
257
|
-
git commit -m "chore: remove phase {target} ({original-phase-name})"
|
|
258
|
-
```
|
|
259
|
-
|
|
260
|
-
The commit message preserves the historical record of what was removed.
|
|
261
|
-
</step>
|
|
262
|
-
|
|
263
|
-
<step name="completion">
|
|
264
|
-
Present completion summary:
|
|
265
|
-
|
|
266
|
-
```
|
|
267
|
-
Phase {target} ({original-name}) removed.
|
|
268
|
-
|
|
269
|
-
Changes:
|
|
270
|
-
- Deleted: .planning/phases/{target}-{slug}/
|
|
271
|
-
- Renumbered: Phases {first-renumbered}-{last-old} → {first-renumbered-1}-{last-new}
|
|
272
|
-
- Updated: ROADMAP.md, STATE.md
|
|
273
|
-
- Committed: chore: remove phase {target} ({original-name})
|
|
274
|
-
|
|
275
|
-
Current roadmap: {total-remaining} phases
|
|
276
|
-
Current position: Phase {current} of {new-total}
|
|
277
|
-
|
|
278
|
-
---
|
|
279
|
-
|
|
280
|
-
## What's Next
|
|
281
|
-
|
|
282
|
-
Would you like to:
|
|
283
|
-
- `/gsd:progress` — see updated roadmap status
|
|
284
|
-
- Continue with current phase
|
|
285
|
-
- Review roadmap
|
|
286
|
-
|
|
287
|
-
---
|
|
288
|
-
```
|
|
289
|
-
</step>
|
|
25
|
+
@.planning/ROADMAP.md
|
|
26
|
+
@.planning/STATE.md
|
|
27
|
+
</context>
|
|
290
28
|
|
|
29
|
+
<process>
|
|
30
|
+
Execute the remove-phase workflow from @~/.claude/get-shit-done/workflows/remove-phase.md end-to-end.
|
|
31
|
+
Preserve all validation gates (future phase check, work check), renumbering logic, and commit.
|
|
291
32
|
</process>
|
|
292
|
-
|
|
293
|
-
<anti_patterns>
|
|
294
|
-
|
|
295
|
-
- Don't remove completed phases (have SUMMARY.md files)
|
|
296
|
-
- Don't remove current or past phases
|
|
297
|
-
- Don't leave gaps in numbering - always renumber
|
|
298
|
-
- Don't add "removed phase" notes to STATE.md - git commit is the record
|
|
299
|
-
- Don't ask about each decimal phase - just renumber them
|
|
300
|
-
- Don't modify completed phase directories
|
|
301
|
-
</anti_patterns>
|
|
302
|
-
|
|
303
|
-
<edge_cases>
|
|
304
|
-
|
|
305
|
-
**Removing a decimal phase (e.g., 17.1):**
|
|
306
|
-
- Only affects other decimals in same series (17.2 → 17.1, 17.3 → 17.2)
|
|
307
|
-
- Integer phases unchanged
|
|
308
|
-
- Simpler operation
|
|
309
|
-
|
|
310
|
-
**No subsequent phases to renumber:**
|
|
311
|
-
- Removing the last phase (e.g., Phase 20 when that's the end)
|
|
312
|
-
- Just delete and update ROADMAP.md, no renumbering needed
|
|
313
|
-
|
|
314
|
-
**Phase directory doesn't exist:**
|
|
315
|
-
- Phase may be in ROADMAP.md but directory not created yet
|
|
316
|
-
- Skip directory deletion, proceed with ROADMAP.md updates
|
|
317
|
-
|
|
318
|
-
**Decimal phases under removed integer:**
|
|
319
|
-
- Removing Phase 17 when 17.1, 17.2 exist
|
|
320
|
-
- 17.1 → 16.1, 17.2 → 16.2
|
|
321
|
-
- They maintain their position in execution order (after current last integer)
|
|
322
|
-
|
|
323
|
-
</edge_cases>
|
|
324
|
-
|
|
325
|
-
<success_criteria>
|
|
326
|
-
Phase removal is complete when:
|
|
327
|
-
|
|
328
|
-
- [ ] Target phase validated as future/unstarted
|
|
329
|
-
- [ ] Phase directory deleted (if existed)
|
|
330
|
-
- [ ] All subsequent phase directories renumbered
|
|
331
|
-
- [ ] Files inside directories renamed ({old}-01-PLAN.md → {new}-01-PLAN.md)
|
|
332
|
-
- [ ] ROADMAP.md updated (section removed, all references renumbered)
|
|
333
|
-
- [ ] STATE.md updated (phase count, progress percentage)
|
|
334
|
-
- [ ] Dependency references updated in subsequent phases
|
|
335
|
-
- [ ] Changes committed with descriptive message
|
|
336
|
-
- [ ] No gaps in phase numbering
|
|
337
|
-
- [ ] User informed of changes
|
|
338
|
-
</success_criteria>
|
|
@@ -31,22 +31,26 @@ Normalize phase input in step 1 before any directory lookups.
|
|
|
31
31
|
|
|
32
32
|
<process>
|
|
33
33
|
|
|
34
|
-
##
|
|
34
|
+
## 0. Initialize Context
|
|
35
35
|
|
|
36
36
|
```bash
|
|
37
|
-
|
|
38
|
-
if [[ "$ARGUMENTS" =~ ^[0-9]+$ ]]; then
|
|
39
|
-
PHASE=$(printf "%02d" "$ARGUMENTS")
|
|
40
|
-
elif [[ "$ARGUMENTS" =~ ^([0-9]+)\.([0-9]+)$ ]]; then
|
|
41
|
-
PHASE=$(printf "%02d.%s" "${BASH_REMATCH[1]}" "${BASH_REMATCH[2]}")
|
|
42
|
-
else
|
|
43
|
-
PHASE="$ARGUMENTS"
|
|
44
|
-
fi
|
|
45
|
-
|
|
46
|
-
grep -A5 "Phase ${PHASE}:" .planning/ROADMAP.md 2>/dev/null
|
|
37
|
+
INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs init phase-op "$ARGUMENTS")
|
|
47
38
|
```
|
|
48
39
|
|
|
49
|
-
|
|
40
|
+
Extract from init JSON: `phase_dir`, `phase_number`, `phase_name`, `phase_found`, `commit_docs`, `has_research`.
|
|
41
|
+
|
|
42
|
+
Resolve researcher model:
|
|
43
|
+
```bash
|
|
44
|
+
RESEARCHER_MODEL=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs resolve-model gsd-phase-researcher --raw)
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## 1. Validate Phase
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
PHASE_INFO=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs roadmap get-phase "${phase_number}")
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
**If `found` is false:** Error and exit. **If `found` is true:** Extract `phase_number`, `phase_name`, `goal` from JSON.
|
|
50
54
|
|
|
51
55
|
## 2. Check Existing Research
|
|
52
56
|
|
|
@@ -61,15 +65,16 @@ ls .planning/phases/${PHASE}-*/RESEARCH.md 2>/dev/null
|
|
|
61
65
|
## 3. Gather Phase Context
|
|
62
66
|
|
|
63
67
|
```bash
|
|
64
|
-
|
|
68
|
+
# Phase section already loaded in PHASE_INFO
|
|
69
|
+
echo "$PHASE_INFO" | jq -r '.section'
|
|
65
70
|
cat .planning/REQUIREMENTS.md 2>/dev/null
|
|
66
|
-
cat .planning/phases/${PHASE}
|
|
71
|
+
cat .planning/phases/${PHASE}-*/*-CONTEXT.md 2>/dev/null
|
|
67
72
|
grep -A30 "### Decisions Made" .planning/STATE.md 2>/dev/null
|
|
68
73
|
```
|
|
69
74
|
|
|
70
75
|
Present summary with phase description, requirements, prior decisions.
|
|
71
76
|
|
|
72
|
-
## 4. Spawn gsd-researcher Agent
|
|
77
|
+
## 4. Spawn gsd-phase-researcher Agent
|
|
73
78
|
|
|
74
79
|
Research modes: ecosystem (default), feasibility, implementation, comparison.
|
|
75
80
|
|
|
@@ -130,8 +135,9 @@ Write to: .planning/phases/${PHASE}-{slug}/${PHASE}-RESEARCH.md
|
|
|
130
135
|
|
|
131
136
|
```
|
|
132
137
|
Task(
|
|
133
|
-
prompt=filled_prompt,
|
|
134
|
-
subagent_type="
|
|
138
|
+
prompt="First, read ~/.claude/agents/gsd-phase-researcher.md for your role and instructions.\n\n" + filled_prompt,
|
|
139
|
+
subagent_type="general-purpose",
|
|
140
|
+
model="{researcher_model}",
|
|
135
141
|
description="Research Phase {phase}"
|
|
136
142
|
)
|
|
137
143
|
```
|
|
@@ -163,8 +169,9 @@ Research file: @.planning/phases/${PHASE}-{slug}/${PHASE}-RESEARCH.md
|
|
|
163
169
|
|
|
164
170
|
```
|
|
165
171
|
Task(
|
|
166
|
-
prompt=continuation_prompt,
|
|
167
|
-
subagent_type="
|
|
172
|
+
prompt="First, read ~/.claude/agents/gsd-phase-researcher.md for your role and instructions.\n\n" + continuation_prompt,
|
|
173
|
+
subagent_type="general-purpose",
|
|
174
|
+
model="{researcher_model}",
|
|
168
175
|
description="Continue research Phase {phase}"
|
|
169
176
|
)
|
|
170
177
|
```
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gsd:set-profile
|
|
3
|
+
description: Switch model profile for GSD agents (quality/balanced/budget)
|
|
4
|
+
argument-hint: <profile>
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Bash
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
<objective>
|
|
12
|
+
Switch the model profile used by GSD agents. Controls which Claude model each agent uses, balancing quality vs token spend.
|
|
13
|
+
|
|
14
|
+
Routes to the set-profile workflow which handles:
|
|
15
|
+
- Argument validation (quality/balanced/budget)
|
|
16
|
+
- Config file creation if missing
|
|
17
|
+
- Profile update in config.json
|
|
18
|
+
- Confirmation with model table display
|
|
19
|
+
</objective>
|
|
20
|
+
|
|
21
|
+
<execution_context>
|
|
22
|
+
@~/.claude/get-shit-done/workflows/set-profile.md
|
|
23
|
+
</execution_context>
|
|
24
|
+
|
|
25
|
+
<process>
|
|
26
|
+
**Follow the set-profile workflow** from `@~/.claude/get-shit-done/workflows/set-profile.md`.
|
|
27
|
+
|
|
28
|
+
The workflow handles all logic including:
|
|
29
|
+
1. Profile argument validation
|
|
30
|
+
2. Config file ensuring
|
|
31
|
+
3. Config reading and updating
|
|
32
|
+
4. Model table generation from MODEL_PROFILES
|
|
33
|
+
5. Confirmation display
|
|
34
|
+
</process>
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gsd:settings
|
|
3
|
+
description: Configure GSD workflow toggles and model profile
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Read
|
|
6
|
+
- Write
|
|
7
|
+
- Bash
|
|
8
|
+
- AskUserQuestion
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
<objective>
|
|
12
|
+
Interactive configuration of GSD workflow agents and model profile via multi-question prompt.
|
|
13
|
+
|
|
14
|
+
Routes to the settings workflow which handles:
|
|
15
|
+
- Config existence ensuring
|
|
16
|
+
- Current settings reading and parsing
|
|
17
|
+
- Interactive 5-question prompt (model, research, plan_check, verifier, branching)
|
|
18
|
+
- Config merging and writing
|
|
19
|
+
- Confirmation display with quick command references
|
|
20
|
+
</objective>
|
|
21
|
+
|
|
22
|
+
<execution_context>
|
|
23
|
+
@~/.claude/get-shit-done/workflows/settings.md
|
|
24
|
+
</execution_context>
|
|
25
|
+
|
|
26
|
+
<process>
|
|
27
|
+
**Follow the settings workflow** from `@~/.claude/get-shit-done/workflows/settings.md`.
|
|
28
|
+
|
|
29
|
+
The workflow handles all logic including:
|
|
30
|
+
1. Config file creation with defaults if missing
|
|
31
|
+
2. Current config reading
|
|
32
|
+
3. Interactive settings presentation with pre-selection
|
|
33
|
+
4. Answer parsing and config merging
|
|
34
|
+
5. File writing
|
|
35
|
+
6. Confirmation display
|
|
36
|
+
</process>
|
package/commands/gsd/update.md
CHANGED
|
@@ -1,172 +1,37 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: gsd:update
|
|
3
3
|
description: Update GSD to latest version with changelog display
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Bash
|
|
6
|
+
- AskUserQuestion
|
|
4
7
|
---
|
|
5
8
|
|
|
6
9
|
<objective>
|
|
7
10
|
Check for GSD updates, install if available, and display what changed.
|
|
8
11
|
|
|
9
|
-
|
|
12
|
+
Routes to the update workflow which handles:
|
|
13
|
+
- Version detection (local vs global installation)
|
|
14
|
+
- npm version checking
|
|
15
|
+
- Changelog fetching and display
|
|
16
|
+
- User confirmation with clean install warning
|
|
17
|
+
- Update execution and cache clearing
|
|
18
|
+
- Restart reminder
|
|
10
19
|
</objective>
|
|
11
20
|
|
|
12
|
-
<
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
Read installed version:
|
|
16
|
-
|
|
17
|
-
```bash
|
|
18
|
-
cat ~/.claude/get-shit-done/VERSION 2>/dev/null
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
**If VERSION file missing:**
|
|
22
|
-
```
|
|
23
|
-
## GSD Update
|
|
24
|
-
|
|
25
|
-
**Installed version:** Unknown
|
|
26
|
-
|
|
27
|
-
Your installation doesn't include version tracking.
|
|
28
|
-
|
|
29
|
-
Running fresh install...
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
Proceed to install step (treat as version 0.0.0 for comparison).
|
|
33
|
-
</step>
|
|
34
|
-
|
|
35
|
-
<step name="check_latest_version">
|
|
36
|
-
Check npm for latest version:
|
|
37
|
-
|
|
38
|
-
```bash
|
|
39
|
-
npm view get-shit-done-cc version 2>/dev/null
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
**If npm check fails:**
|
|
43
|
-
```
|
|
44
|
-
Couldn't check for updates (offline or npm unavailable).
|
|
45
|
-
|
|
46
|
-
To update manually: `npx get-shit-done-cc --global`
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
STOP here if npm unavailable.
|
|
50
|
-
</step>
|
|
51
|
-
|
|
52
|
-
<step name="compare_versions">
|
|
53
|
-
Compare installed vs latest:
|
|
54
|
-
|
|
55
|
-
**If installed == latest:**
|
|
56
|
-
```
|
|
57
|
-
## GSD Update
|
|
58
|
-
|
|
59
|
-
**Installed:** X.Y.Z
|
|
60
|
-
**Latest:** X.Y.Z
|
|
61
|
-
|
|
62
|
-
You're already on the latest version.
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
STOP here if already up to date.
|
|
66
|
-
|
|
67
|
-
**If installed > latest:**
|
|
68
|
-
```
|
|
69
|
-
## GSD Update
|
|
70
|
-
|
|
71
|
-
**Installed:** X.Y.Z
|
|
72
|
-
**Latest:** A.B.C
|
|
73
|
-
|
|
74
|
-
You're ahead of the latest release (development version?).
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
STOP here if ahead.
|
|
78
|
-
</step>
|
|
79
|
-
|
|
80
|
-
<step name="show_changes_and_confirm">
|
|
81
|
-
**If update available**, fetch and show what's new BEFORE updating:
|
|
82
|
-
|
|
83
|
-
1. Fetch changelog (same as fetch_changelog step)
|
|
84
|
-
2. Extract entries between installed and latest versions
|
|
85
|
-
3. Display preview and ask for confirmation:
|
|
86
|
-
|
|
87
|
-
```
|
|
88
|
-
## GSD Update Available
|
|
89
|
-
|
|
90
|
-
**Installed:** 1.5.10
|
|
91
|
-
**Latest:** 1.5.15
|
|
92
|
-
|
|
93
|
-
### What's New
|
|
94
|
-
────────────────────────────────────────────────────────────
|
|
95
|
-
|
|
96
|
-
## [1.5.15] - 2026-01-20
|
|
97
|
-
|
|
98
|
-
### Added
|
|
99
|
-
- Feature X
|
|
100
|
-
|
|
101
|
-
## [1.5.14] - 2026-01-18
|
|
102
|
-
|
|
103
|
-
### Fixed
|
|
104
|
-
- Bug fix Y
|
|
105
|
-
|
|
106
|
-
────────────────────────────────────────────────────────────
|
|
107
|
-
|
|
108
|
-
⚠️ **Note:** The installer performs a clean install of GSD folders:
|
|
109
|
-
- `~/.claude/commands/gsd/` will be wiped and replaced
|
|
110
|
-
- `~/.claude/get-shit-done/` will be wiped and replaced
|
|
111
|
-
- `~/.claude/agents/gsd-*` files will be replaced
|
|
112
|
-
|
|
113
|
-
Your custom files in other locations are preserved:
|
|
114
|
-
- Custom commands in `~/.claude/commands/your-stuff/` ✓
|
|
115
|
-
- Custom agents not prefixed with `gsd-` ✓
|
|
116
|
-
- Custom hooks ✓
|
|
117
|
-
- Your CLAUDE.md files ✓
|
|
118
|
-
|
|
119
|
-
If you've modified any GSD files directly, back them up first.
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
Use AskUserQuestion:
|
|
123
|
-
- Question: "Proceed with update?"
|
|
124
|
-
- Options:
|
|
125
|
-
- "Yes, update now"
|
|
126
|
-
- "No, cancel"
|
|
127
|
-
|
|
128
|
-
**If user cancels:** STOP here.
|
|
129
|
-
</step>
|
|
130
|
-
|
|
131
|
-
<step name="run_update">
|
|
132
|
-
Run the update:
|
|
133
|
-
|
|
134
|
-
```bash
|
|
135
|
-
npx get-shit-done-cc --global
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
Capture output. If install fails, show error and STOP.
|
|
139
|
-
|
|
140
|
-
Clear the update cache so statusline indicator disappears:
|
|
141
|
-
|
|
142
|
-
```bash
|
|
143
|
-
rm -f ~/.claude/cache/gsd-update-check.json
|
|
144
|
-
```
|
|
145
|
-
</step>
|
|
146
|
-
|
|
147
|
-
<step name="display_result">
|
|
148
|
-
Format completion message (changelog was already shown in confirmation step):
|
|
149
|
-
|
|
150
|
-
```
|
|
151
|
-
╔═══════════════════════════════════════════════════════════╗
|
|
152
|
-
║ GSD Updated: v1.5.10 → v1.5.15 ║
|
|
153
|
-
╚═══════════════════════════════════════════════════════════╝
|
|
154
|
-
|
|
155
|
-
⚠️ Restart Claude Code to pick up the new commands.
|
|
156
|
-
|
|
157
|
-
[View full changelog](https://github.com/glittercowboy/get-shit-done/blob/main/CHANGELOG.md)
|
|
158
|
-
```
|
|
159
|
-
</step>
|
|
21
|
+
<execution_context>
|
|
22
|
+
@~/.claude/get-shit-done/workflows/update.md
|
|
23
|
+
</execution_context>
|
|
160
24
|
|
|
25
|
+
<process>
|
|
26
|
+
**Follow the update workflow** from `@~/.claude/get-shit-done/workflows/update.md`.
|
|
27
|
+
|
|
28
|
+
The workflow handles all logic including:
|
|
29
|
+
1. Installed version detection (local/global)
|
|
30
|
+
2. Latest version checking via npm
|
|
31
|
+
3. Version comparison
|
|
32
|
+
4. Changelog fetching and extraction
|
|
33
|
+
5. Clean install warning display
|
|
34
|
+
6. User confirmation
|
|
35
|
+
7. Update execution
|
|
36
|
+
8. Cache clearing
|
|
161
37
|
</process>
|
|
162
|
-
|
|
163
|
-
<success_criteria>
|
|
164
|
-
- [ ] Installed version read correctly
|
|
165
|
-
- [ ] Latest version checked via npm
|
|
166
|
-
- [ ] Update skipped if already current
|
|
167
|
-
- [ ] Changelog fetched and displayed BEFORE update
|
|
168
|
-
- [ ] Clean install warning shown
|
|
169
|
-
- [ ] User confirmation obtained
|
|
170
|
-
- [ ] Update executed successfully
|
|
171
|
-
- [ ] Restart reminder shown
|
|
172
|
-
</success_criteria>
|