gsd-codex-cli 1.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. package/.codex/prompts/gsd-add-phase.md +44 -0
  2. package/.codex/prompts/gsd-add-todo.md +43 -0
  3. package/.codex/prompts/gsd-audit-milestone.md +43 -0
  4. package/.codex/prompts/gsd-check-todos.md +43 -0
  5. package/.codex/prompts/gsd-complete-milestone.md +43 -0
  6. package/.codex/prompts/gsd-debug.md +46 -0
  7. package/.codex/prompts/gsd-discuss-phase.md +43 -0
  8. package/.codex/prompts/gsd-execute-phase.md +43 -0
  9. package/.codex/prompts/gsd-help.md +43 -0
  10. package/.codex/prompts/gsd-insert-phase.md +43 -0
  11. package/.codex/prompts/gsd-list-phase-assumptions.md +43 -0
  12. package/.codex/prompts/gsd-map-codebase.md +43 -0
  13. package/.codex/prompts/gsd-new-milestone.md +43 -0
  14. package/.codex/prompts/gsd-new-project.md +43 -0
  15. package/.codex/prompts/gsd-pause-work.md +43 -0
  16. package/.codex/prompts/gsd-plan-milestone-gaps.md +43 -0
  17. package/.codex/prompts/gsd-plan-phase.md +43 -0
  18. package/.codex/prompts/gsd-progress.md +43 -0
  19. package/.codex/prompts/gsd-quick.md +43 -0
  20. package/.codex/prompts/gsd-remove-phase.md +43 -0
  21. package/.codex/prompts/gsd-research-phase.md +43 -0
  22. package/.codex/prompts/gsd-resume-work.md +43 -0
  23. package/.codex/prompts/gsd-set-profile.md +43 -0
  24. package/.codex/prompts/gsd-settings.md +43 -0
  25. package/.codex/prompts/gsd-update.md +43 -0
  26. package/.codex/prompts/gsd-verify-work.md +43 -0
  27. package/.codex/skills/get-shit-done-codex/SKILL.md +65 -0
  28. package/.codex/skills/get-shit-done-codex/references/compat.md +32 -0
  29. package/.codex/skills/get-shit-done-codex/references/windows.md +23 -0
  30. package/CHANGELOG.md +1434 -0
  31. package/LICENSE +21 -0
  32. package/README.md +690 -0
  33. package/agents/gsd-codebase-mapper.md +761 -0
  34. package/agents/gsd-debugger.md +1198 -0
  35. package/agents/gsd-executor.md +419 -0
  36. package/agents/gsd-integration-checker.md +423 -0
  37. package/agents/gsd-phase-researcher.md +469 -0
  38. package/agents/gsd-plan-checker.md +622 -0
  39. package/agents/gsd-planner.md +1159 -0
  40. package/agents/gsd-project-researcher.md +618 -0
  41. package/agents/gsd-research-synthesizer.md +236 -0
  42. package/agents/gsd-roadmapper.md +639 -0
  43. package/agents/gsd-verifier.md +541 -0
  44. package/bin/install-codex.js +100 -0
  45. package/bin/install.js +1806 -0
  46. package/commands/gsd/add-phase.md +39 -0
  47. package/commands/gsd/add-todo.md +42 -0
  48. package/commands/gsd/audit-milestone.md +42 -0
  49. package/commands/gsd/check-todos.md +41 -0
  50. package/commands/gsd/cleanup.md +18 -0
  51. package/commands/gsd/complete-milestone.md +136 -0
  52. package/commands/gsd/debug.md +162 -0
  53. package/commands/gsd/discuss-phase.md +87 -0
  54. package/commands/gsd/execute-phase.md +42 -0
  55. package/commands/gsd/health.md +22 -0
  56. package/commands/gsd/help.md +22 -0
  57. package/commands/gsd/insert-phase.md +33 -0
  58. package/commands/gsd/join-discord.md +18 -0
  59. package/commands/gsd/list-phase-assumptions.md +50 -0
  60. package/commands/gsd/map-codebase.md +71 -0
  61. package/commands/gsd/new-milestone.md +51 -0
  62. package/commands/gsd/new-project.md +42 -0
  63. package/commands/gsd/pause-work.md +35 -0
  64. package/commands/gsd/plan-milestone-gaps.md +40 -0
  65. package/commands/gsd/plan-phase.md +44 -0
  66. package/commands/gsd/progress.md +24 -0
  67. package/commands/gsd/quick.md +40 -0
  68. package/commands/gsd/reapply-patches.md +110 -0
  69. package/commands/gsd/remove-phase.md +32 -0
  70. package/commands/gsd/research-phase.md +187 -0
  71. package/commands/gsd/resume-work.md +40 -0
  72. package/commands/gsd/set-profile.md +34 -0
  73. package/commands/gsd/settings.md +36 -0
  74. package/commands/gsd/update.md +37 -0
  75. package/commands/gsd/verify-work.md +39 -0
  76. package/get-shit-done/bin/gsd-tools.cjs +5243 -0
  77. package/get-shit-done/bin/gsd-tools.test.cjs +2273 -0
  78. package/get-shit-done/references/checkpoints.md +775 -0
  79. package/get-shit-done/references/continuation-format.md +249 -0
  80. package/get-shit-done/references/decimal-phase-calculation.md +65 -0
  81. package/get-shit-done/references/git-integration.md +248 -0
  82. package/get-shit-done/references/git-planning-commit.md +38 -0
  83. package/get-shit-done/references/model-profile-resolution.md +34 -0
  84. package/get-shit-done/references/model-profiles.md +92 -0
  85. package/get-shit-done/references/phase-argument-parsing.md +61 -0
  86. package/get-shit-done/references/planning-config.md +196 -0
  87. package/get-shit-done/references/questioning.md +145 -0
  88. package/get-shit-done/references/tdd.md +263 -0
  89. package/get-shit-done/references/ui-brand.md +160 -0
  90. package/get-shit-done/references/verification-patterns.md +612 -0
  91. package/get-shit-done/templates/DEBUG.md +159 -0
  92. package/get-shit-done/templates/UAT.md +247 -0
  93. package/get-shit-done/templates/codebase/architecture.md +255 -0
  94. package/get-shit-done/templates/codebase/concerns.md +310 -0
  95. package/get-shit-done/templates/codebase/conventions.md +307 -0
  96. package/get-shit-done/templates/codebase/integrations.md +280 -0
  97. package/get-shit-done/templates/codebase/stack.md +186 -0
  98. package/get-shit-done/templates/codebase/structure.md +285 -0
  99. package/get-shit-done/templates/codebase/testing.md +480 -0
  100. package/get-shit-done/templates/config.json +36 -0
  101. package/get-shit-done/templates/context.md +283 -0
  102. package/get-shit-done/templates/continue-here.md +78 -0
  103. package/get-shit-done/templates/debug-subagent-prompt.md +91 -0
  104. package/get-shit-done/templates/discovery.md +146 -0
  105. package/get-shit-done/templates/milestone-archive.md +123 -0
  106. package/get-shit-done/templates/milestone.md +115 -0
  107. package/get-shit-done/templates/phase-prompt.md +567 -0
  108. package/get-shit-done/templates/planner-subagent-prompt.md +117 -0
  109. package/get-shit-done/templates/project.md +184 -0
  110. package/get-shit-done/templates/requirements.md +231 -0
  111. package/get-shit-done/templates/research-project/ARCHITECTURE.md +204 -0
  112. package/get-shit-done/templates/research-project/FEATURES.md +147 -0
  113. package/get-shit-done/templates/research-project/PITFALLS.md +200 -0
  114. package/get-shit-done/templates/research-project/STACK.md +120 -0
  115. package/get-shit-done/templates/research-project/SUMMARY.md +170 -0
  116. package/get-shit-done/templates/research.md +552 -0
  117. package/get-shit-done/templates/roadmap.md +202 -0
  118. package/get-shit-done/templates/state.md +176 -0
  119. package/get-shit-done/templates/summary-complex.md +59 -0
  120. package/get-shit-done/templates/summary-minimal.md +41 -0
  121. package/get-shit-done/templates/summary-standard.md +48 -0
  122. package/get-shit-done/templates/summary.md +246 -0
  123. package/get-shit-done/templates/user-setup.md +311 -0
  124. package/get-shit-done/templates/verification-report.md +322 -0
  125. package/get-shit-done/workflows/add-phase.md +111 -0
  126. package/get-shit-done/workflows/add-todo.md +157 -0
  127. package/get-shit-done/workflows/audit-milestone.md +242 -0
  128. package/get-shit-done/workflows/check-todos.md +176 -0
  129. package/get-shit-done/workflows/cleanup.md +152 -0
  130. package/get-shit-done/workflows/complete-milestone.md +674 -0
  131. package/get-shit-done/workflows/diagnose-issues.md +219 -0
  132. package/get-shit-done/workflows/discovery-phase.md +289 -0
  133. package/get-shit-done/workflows/discuss-phase.md +485 -0
  134. package/get-shit-done/workflows/execute-phase.md +408 -0
  135. package/get-shit-done/workflows/execute-plan.md +441 -0
  136. package/get-shit-done/workflows/health.md +156 -0
  137. package/get-shit-done/workflows/help.md +486 -0
  138. package/get-shit-done/workflows/insert-phase.md +129 -0
  139. package/get-shit-done/workflows/list-phase-assumptions.md +178 -0
  140. package/get-shit-done/workflows/map-codebase.md +327 -0
  141. package/get-shit-done/workflows/new-milestone.md +373 -0
  142. package/get-shit-done/workflows/new-project.md +1113 -0
  143. package/get-shit-done/workflows/pause-work.md +122 -0
  144. package/get-shit-done/workflows/plan-milestone-gaps.md +256 -0
  145. package/get-shit-done/workflows/plan-phase.md +448 -0
  146. package/get-shit-done/workflows/progress.md +393 -0
  147. package/get-shit-done/workflows/quick.md +444 -0
  148. package/get-shit-done/workflows/remove-phase.md +154 -0
  149. package/get-shit-done/workflows/research-phase.md +74 -0
  150. package/get-shit-done/workflows/resume-project.md +306 -0
  151. package/get-shit-done/workflows/set-profile.md +80 -0
  152. package/get-shit-done/workflows/settings.md +200 -0
  153. package/get-shit-done/workflows/transition.md +539 -0
  154. package/get-shit-done/workflows/update.md +214 -0
  155. package/get-shit-done/workflows/verify-phase.md +242 -0
  156. package/get-shit-done/workflows/verify-work.md +570 -0
  157. package/hooks/dist/gsd-check-update.js +62 -0
  158. package/hooks/dist/gsd-statusline.js +91 -0
  159. package/package.json +54 -0
  160. package/scripts/build-hooks.js +42 -0
@@ -0,0 +1,444 @@
1
+ <purpose>
2
+ Execute small, ad-hoc tasks with GSD guarantees (atomic commits, STATE.md tracking). Quick mode spawns gsd-planner (quick mode) + gsd-executor(s), tracks tasks in `.planning/quick/`, and updates STATE.md's "Quick Tasks Completed" table.
3
+
4
+ With `--full` flag: enables plan-checking (max 2 iterations) and post-execution verification for quality guarantees without full milestone ceremony.
5
+ </purpose>
6
+
7
+ <required_reading>
8
+ Read all files referenced by the invoking prompt's execution_context before starting.
9
+ </required_reading>
10
+
11
+ <process>
12
+ **Step 1: Parse arguments and get task description**
13
+
14
+ Parse `$ARGUMENTS` for:
15
+ - `--full` flag → store as `$FULL_MODE` (true/false)
16
+ - Remaining text → use as `$DESCRIPTION` if non-empty
17
+
18
+ If `$DESCRIPTION` is empty after parsing, prompt user interactively:
19
+
20
+ ```
21
+ AskUserQuestion(
22
+ header: "Quick Task",
23
+ question: "What do you want to do?",
24
+ followUp: null
25
+ )
26
+ ```
27
+
28
+ Store response as `$DESCRIPTION`.
29
+
30
+ If still empty, re-prompt: "Please provide a task description."
31
+
32
+ If `$FULL_MODE`:
33
+ ```
34
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
35
+ GSD ► QUICK TASK (FULL MODE)
36
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
37
+
38
+ ◆ Plan checking + verification enabled
39
+ ```
40
+
41
+ ---
42
+
43
+ **Step 2: Initialize**
44
+
45
+ ```bash
46
+ INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs init quick "$DESCRIPTION")
47
+ ```
48
+
49
+ Parse JSON for: `planner_model`, `executor_model`, `checker_model`, `verifier_model`, `commit_docs`, `next_num`, `slug`, `date`, `timestamp`, `quick_dir`, `task_dir`, `roadmap_exists`, `planning_exists`.
50
+
51
+ **If `roadmap_exists` is false:** Error — Quick mode requires an active project with ROADMAP.md. Run `/gsd:new-project` first.
52
+
53
+ Quick tasks can run mid-phase - validation only checks ROADMAP.md exists, not phase status.
54
+
55
+ ---
56
+
57
+ **Step 3: Create task directory**
58
+
59
+ ```bash
60
+ mkdir -p "${task_dir}"
61
+ ```
62
+
63
+ ---
64
+
65
+ **Step 4: Create quick task directory**
66
+
67
+ Create the directory for this quick task:
68
+
69
+ ```bash
70
+ QUICK_DIR=".planning/quick/${next_num}-${slug}"
71
+ mkdir -p "$QUICK_DIR"
72
+ ```
73
+
74
+ Report to user:
75
+ ```
76
+ Creating quick task ${next_num}: ${DESCRIPTION}
77
+ Directory: ${QUICK_DIR}
78
+ ```
79
+
80
+ Store `$QUICK_DIR` for use in orchestration.
81
+
82
+ ---
83
+
84
+ **Step 5: Spawn planner (quick mode)**
85
+
86
+ **If `$FULL_MODE`:** Use `quick-full` mode with stricter constraints.
87
+
88
+ **If NOT `$FULL_MODE`:** Use standard `quick` mode.
89
+
90
+ ```
91
+ Task(
92
+ prompt="
93
+ <planning_context>
94
+
95
+ **Mode:** ${FULL_MODE ? 'quick-full' : 'quick'}
96
+ **Directory:** ${QUICK_DIR}
97
+ **Description:** ${DESCRIPTION}
98
+
99
+ **Project State:**
100
+ @.planning/STATE.md
101
+
102
+ </planning_context>
103
+
104
+ <constraints>
105
+ - Create a SINGLE plan with 1-3 focused tasks
106
+ - Quick tasks should be atomic and self-contained
107
+ - No research phase
108
+ ${FULL_MODE ? '- Target ~40% context usage (structured for verification)' : '- Target ~30% context usage (simple, focused)'}
109
+ ${FULL_MODE ? '- MUST generate `must_haves` in plan frontmatter (truths, artifacts, key_links)' : ''}
110
+ ${FULL_MODE ? '- Each task MUST have `files`, `action`, `verify`, `done` fields' : ''}
111
+ </constraints>
112
+
113
+ <output>
114
+ Write plan to: ${QUICK_DIR}/${next_num}-PLAN.md
115
+ Return: ## PLANNING COMPLETE with plan path
116
+ </output>
117
+ ",
118
+ subagent_type="gsd-planner",
119
+ model="{planner_model}",
120
+ description="Quick plan: ${DESCRIPTION}"
121
+ )
122
+ ```
123
+
124
+ After planner returns:
125
+ 1. Verify plan exists at `${QUICK_DIR}/${next_num}-PLAN.md`
126
+ 2. Extract plan count (typically 1 for quick tasks)
127
+ 3. Report: "Plan created: ${QUICK_DIR}/${next_num}-PLAN.md"
128
+
129
+ If plan not found, error: "Planner failed to create ${next_num}-PLAN.md"
130
+
131
+ ---
132
+
133
+ **Step 5.5: Plan-checker loop (only when `$FULL_MODE`)**
134
+
135
+ Skip this step entirely if NOT `$FULL_MODE`.
136
+
137
+ Display banner:
138
+ ```
139
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
140
+ GSD ► CHECKING PLAN
141
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
142
+
143
+ ◆ Spawning plan checker...
144
+ ```
145
+
146
+ ```bash
147
+ PLAN_CONTENT=$(cat "${QUICK_DIR}/${next_num}-PLAN.md" 2>/dev/null)
148
+ ```
149
+
150
+ Checker prompt:
151
+
152
+ ```markdown
153
+ <verification_context>
154
+ **Mode:** quick-full
155
+ **Task Description:** ${DESCRIPTION}
156
+
157
+ **Plan to verify:** ${PLAN_CONTENT}
158
+
159
+ **Scope:** This is a quick task, not a full phase. Skip checks that require a ROADMAP phase goal.
160
+ </verification_context>
161
+
162
+ <check_dimensions>
163
+ - Requirement coverage: Does the plan address the task description?
164
+ - Task completeness: Do tasks have files, action, verify, done fields?
165
+ - Key links: Are referenced files real?
166
+ - Scope sanity: Is this appropriately sized for a quick task (1-3 tasks)?
167
+ - must_haves derivation: Are must_haves traceable to the task description?
168
+
169
+ Skip: context compliance (no CONTEXT.md), cross-plan deps (single plan), ROADMAP alignment
170
+ </check_dimensions>
171
+
172
+ <expected_output>
173
+ - ## VERIFICATION PASSED — all checks pass
174
+ - ## ISSUES FOUND — structured issue list
175
+ </expected_output>
176
+ ```
177
+
178
+ ```
179
+ Task(
180
+ prompt=checker_prompt,
181
+ subagent_type="gsd-plan-checker",
182
+ model="{checker_model}",
183
+ description="Check quick plan: ${DESCRIPTION}"
184
+ )
185
+ ```
186
+
187
+ **Handle checker return:**
188
+
189
+ - **`## VERIFICATION PASSED`:** Display confirmation, proceed to step 6.
190
+ - **`## ISSUES FOUND`:** Display issues, check iteration count, enter revision loop.
191
+
192
+ **Revision loop (max 2 iterations):**
193
+
194
+ Track `iteration_count` (starts at 1 after initial plan + check).
195
+
196
+ **If iteration_count < 2:**
197
+
198
+ Display: `Sending back to planner for revision... (iteration ${N}/2)`
199
+
200
+ ```bash
201
+ PLAN_CONTENT=$(cat "${QUICK_DIR}/${next_num}-PLAN.md" 2>/dev/null)
202
+ ```
203
+
204
+ Revision prompt:
205
+
206
+ ```markdown
207
+ <revision_context>
208
+ **Mode:** quick-full (revision)
209
+
210
+ **Existing plan:** ${PLAN_CONTENT}
211
+ **Checker issues:** ${structured_issues_from_checker}
212
+
213
+ </revision_context>
214
+
215
+ <instructions>
216
+ Make targeted updates to address checker issues.
217
+ Do NOT replan from scratch unless issues are fundamental.
218
+ Return what changed.
219
+ </instructions>
220
+ ```
221
+
222
+ ```
223
+ Task(
224
+ prompt="First, read ~/.claude/agents/gsd-planner.md for your role and instructions.\n\n" + revision_prompt,
225
+ subagent_type="general-purpose",
226
+ model="{planner_model}",
227
+ description="Revise quick plan: ${DESCRIPTION}"
228
+ )
229
+ ```
230
+
231
+ After planner returns → spawn checker again, increment iteration_count.
232
+
233
+ **If iteration_count >= 2:**
234
+
235
+ Display: `Max iterations reached. ${N} issues remain:` + issue list
236
+
237
+ Offer: 1) Force proceed, 2) Abort
238
+
239
+ ---
240
+
241
+ **Step 6: Spawn executor**
242
+
243
+ Spawn gsd-executor with plan reference:
244
+
245
+ ```
246
+ Task(
247
+ prompt="
248
+ Execute quick task ${next_num}.
249
+
250
+ Plan: @${QUICK_DIR}/${next_num}-PLAN.md
251
+ Project state: @.planning/STATE.md
252
+
253
+ <constraints>
254
+ - Execute all tasks in the plan
255
+ - Commit each task atomically
256
+ - Create summary at: ${QUICK_DIR}/${next_num}-SUMMARY.md
257
+ - Do NOT update ROADMAP.md (quick tasks are separate from planned phases)
258
+ </constraints>
259
+ ",
260
+ subagent_type="gsd-executor",
261
+ model="{executor_model}",
262
+ description="Execute: ${DESCRIPTION}"
263
+ )
264
+ ```
265
+
266
+ After executor returns:
267
+ 1. Verify summary exists at `${QUICK_DIR}/${next_num}-SUMMARY.md`
268
+ 2. Extract commit hash from executor output
269
+ 3. Report completion status
270
+
271
+ **Known Claude Code bug (classifyHandoffIfNeeded):** If executor reports "failed" with error `classifyHandoffIfNeeded is not defined`, this is a Claude Code runtime bug — not a real failure. Check if summary file exists and git log shows commits. If so, treat as successful.
272
+
273
+ If summary not found, error: "Executor failed to create ${next_num}-SUMMARY.md"
274
+
275
+ Note: For quick tasks producing multiple plans (rare), spawn executors in parallel waves per execute-phase patterns.
276
+
277
+ ---
278
+
279
+ **Step 6.5: Verification (only when `$FULL_MODE`)**
280
+
281
+ Skip this step entirely if NOT `$FULL_MODE`.
282
+
283
+ Display banner:
284
+ ```
285
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
286
+ GSD ► VERIFYING RESULTS
287
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
288
+
289
+ ◆ Spawning verifier...
290
+ ```
291
+
292
+ ```
293
+ Task(
294
+ prompt="Verify quick task goal achievement.
295
+ Task directory: ${QUICK_DIR}
296
+ Task goal: ${DESCRIPTION}
297
+ Plan: @${QUICK_DIR}/${next_num}-PLAN.md
298
+ Check must_haves against actual codebase. Create VERIFICATION.md at ${QUICK_DIR}/${next_num}-VERIFICATION.md.",
299
+ subagent_type="gsd-verifier",
300
+ model="{verifier_model}",
301
+ description="Verify: ${DESCRIPTION}"
302
+ )
303
+ ```
304
+
305
+ Read verification status:
306
+ ```bash
307
+ grep "^status:" "${QUICK_DIR}/${next_num}-VERIFICATION.md" | cut -d: -f2 | tr -d ' '
308
+ ```
309
+
310
+ Store as `$VERIFICATION_STATUS`.
311
+
312
+ | Status | Action |
313
+ |--------|--------|
314
+ | `passed` | Store `$VERIFICATION_STATUS = "Verified"`, continue to step 7 |
315
+ | `human_needed` | Display items needing manual check, store `$VERIFICATION_STATUS = "Needs Review"`, continue |
316
+ | `gaps_found` | Display gap summary, offer: 1) Re-run executor to fix gaps, 2) Accept as-is. Store `$VERIFICATION_STATUS = "Gaps"` |
317
+
318
+ ---
319
+
320
+ **Step 7: Update STATE.md**
321
+
322
+ Update STATE.md with quick task completion record.
323
+
324
+ **7a. Check if "Quick Tasks Completed" section exists:**
325
+
326
+ Read STATE.md and check for `### Quick Tasks Completed` section.
327
+
328
+ **7b. If section doesn't exist, create it:**
329
+
330
+ Insert after `### Blockers/Concerns` section:
331
+
332
+ **If `$FULL_MODE`:**
333
+ ```markdown
334
+ ### Quick Tasks Completed
335
+
336
+ | # | Description | Date | Commit | Status | Directory |
337
+ |---|-------------|------|--------|--------|-----------|
338
+ ```
339
+
340
+ **If NOT `$FULL_MODE`:**
341
+ ```markdown
342
+ ### Quick Tasks Completed
343
+
344
+ | # | Description | Date | Commit | Directory |
345
+ |---|-------------|------|--------|-----------|
346
+ ```
347
+
348
+ **Note:** If the table already exists, match its existing column format. If adding `--full` to a project that already has quick tasks without a Status column, add the Status column to the header and separator rows, and leave Status empty for the new row's predecessors.
349
+
350
+ **7c. Append new row to table:**
351
+
352
+ Use `date` from init:
353
+
354
+ **If `$FULL_MODE` (or table has Status column):**
355
+ ```markdown
356
+ | ${next_num} | ${DESCRIPTION} | ${date} | ${commit_hash} | ${VERIFICATION_STATUS} | [${next_num}-${slug}](./quick/${next_num}-${slug}/) |
357
+ ```
358
+
359
+ **If NOT `$FULL_MODE` (and table has no Status column):**
360
+ ```markdown
361
+ | ${next_num} | ${DESCRIPTION} | ${date} | ${commit_hash} | [${next_num}-${slug}](./quick/${next_num}-${slug}/) |
362
+ ```
363
+
364
+ **7d. Update "Last activity" line:**
365
+
366
+ Use `date` from init:
367
+ ```
368
+ Last activity: ${date} - Completed quick task ${next_num}: ${DESCRIPTION}
369
+ ```
370
+
371
+ Use Edit tool to make these changes atomically
372
+
373
+ ---
374
+
375
+ **Step 8: Final commit and completion**
376
+
377
+ Stage and commit quick task artifacts:
378
+
379
+ Build file list:
380
+ - `${QUICK_DIR}/${next_num}-PLAN.md`
381
+ - `${QUICK_DIR}/${next_num}-SUMMARY.md`
382
+ - `.planning/STATE.md`
383
+ - If `$FULL_MODE` and verification file exists: `${QUICK_DIR}/${next_num}-VERIFICATION.md`
384
+
385
+ ```bash
386
+ node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "docs(quick-${next_num}): ${DESCRIPTION}" --files ${file_list}
387
+ ```
388
+
389
+ Get final commit hash:
390
+ ```bash
391
+ commit_hash=$(git rev-parse --short HEAD)
392
+ ```
393
+
394
+ Display completion output:
395
+
396
+ **If `$FULL_MODE`:**
397
+ ```
398
+ ---
399
+
400
+ GSD > QUICK TASK COMPLETE (FULL MODE)
401
+
402
+ Quick Task ${next_num}: ${DESCRIPTION}
403
+
404
+ Summary: ${QUICK_DIR}/${next_num}-SUMMARY.md
405
+ Verification: ${QUICK_DIR}/${next_num}-VERIFICATION.md (${VERIFICATION_STATUS})
406
+ Commit: ${commit_hash}
407
+
408
+ ---
409
+
410
+ Ready for next task: /gsd:quick
411
+ ```
412
+
413
+ **If NOT `$FULL_MODE`:**
414
+ ```
415
+ ---
416
+
417
+ GSD > QUICK TASK COMPLETE
418
+
419
+ Quick Task ${next_num}: ${DESCRIPTION}
420
+
421
+ Summary: ${QUICK_DIR}/${next_num}-SUMMARY.md
422
+ Commit: ${commit_hash}
423
+
424
+ ---
425
+
426
+ Ready for next task: /gsd:quick
427
+ ```
428
+
429
+ </process>
430
+
431
+ <success_criteria>
432
+ - [ ] ROADMAP.md validation passes
433
+ - [ ] User provides task description
434
+ - [ ] `--full` flag parsed from arguments when present
435
+ - [ ] Slug generated (lowercase, hyphens, max 40 chars)
436
+ - [ ] Next number calculated (001, 002, 003...)
437
+ - [ ] Directory created at `.planning/quick/NNN-slug/`
438
+ - [ ] `${next_num}-PLAN.md` created by planner
439
+ - [ ] (--full) Plan checker validates plan, revision loop capped at 2
440
+ - [ ] `${next_num}-SUMMARY.md` created by executor
441
+ - [ ] (--full) `${next_num}-VERIFICATION.md` created by verifier
442
+ - [ ] STATE.md updated with quick task row (Status column when --full)
443
+ - [ ] Artifacts committed
444
+ </success_criteria>
@@ -0,0 +1,154 @@
1
+ <purpose>
2
+ Remove an unstarted future phase from the project roadmap, delete its directory, renumber all subsequent phases to maintain a clean linear sequence, and commit the change. The git commit serves as the historical record of removal.
3
+ </purpose>
4
+
5
+ <required_reading>
6
+ Read all files referenced by the invoking prompt's execution_context before starting.
7
+ </required_reading>
8
+
9
+ <process>
10
+
11
+ <step name="parse_arguments">
12
+ Parse the command arguments:
13
+ - Argument is the phase number to remove (integer or decimal)
14
+ - Example: `/gsd:remove-phase 17` → phase = 17
15
+ - Example: `/gsd:remove-phase 16.1` → phase = 16.1
16
+
17
+ If no argument provided:
18
+
19
+ ```
20
+ ERROR: Phase number required
21
+ Usage: /gsd:remove-phase <phase-number>
22
+ Example: /gsd:remove-phase 17
23
+ ```
24
+
25
+ Exit.
26
+ </step>
27
+
28
+ <step name="init_context">
29
+ Load phase operation context:
30
+
31
+ ```bash
32
+ INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs init phase-op "${target}")
33
+ ```
34
+
35
+ Extract: `phase_found`, `phase_dir`, `phase_number`, `commit_docs`, `roadmap_exists`.
36
+
37
+ Also read STATE.md and ROADMAP.md content for parsing current position.
38
+ </step>
39
+
40
+ <step name="validate_future_phase">
41
+ Verify the phase is a future phase (not started):
42
+
43
+ 1. Compare target phase to current phase from STATE.md
44
+ 2. Target must be > current phase number
45
+
46
+ If target <= current phase:
47
+
48
+ ```
49
+ ERROR: Cannot remove Phase {target}
50
+
51
+ Only future phases can be removed:
52
+ - Current phase: {current}
53
+ - Phase {target} is current or completed
54
+
55
+ To abandon current work, use /gsd:pause-work instead.
56
+ ```
57
+
58
+ Exit.
59
+ </step>
60
+
61
+ <step name="confirm_removal">
62
+ Present removal summary and confirm:
63
+
64
+ ```
65
+ Removing Phase {target}: {Name}
66
+
67
+ This will:
68
+ - Delete: .planning/phases/{target}-{slug}/
69
+ - Renumber all subsequent phases
70
+ - Update: ROADMAP.md, STATE.md
71
+
72
+ Proceed? (y/n)
73
+ ```
74
+
75
+ Wait for confirmation.
76
+ </step>
77
+
78
+ <step name="execute_removal">
79
+ **Delegate the entire removal operation to gsd-tools:**
80
+
81
+ ```bash
82
+ RESULT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs phase remove "${target}")
83
+ ```
84
+
85
+ If the phase has executed plans (SUMMARY.md files), gsd-tools will error. Use `--force` only if the user confirms:
86
+
87
+ ```bash
88
+ RESULT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs phase remove "${target}" --force)
89
+ ```
90
+
91
+ The CLI handles:
92
+ - Deleting the phase directory
93
+ - Renumbering all subsequent directories (in reverse order to avoid conflicts)
94
+ - Renaming all files inside renumbered directories (PLAN.md, SUMMARY.md, etc.)
95
+ - Updating ROADMAP.md (removing section, renumbering all phase references, updating dependencies)
96
+ - Updating STATE.md (decrementing phase count)
97
+
98
+ Extract from result: `removed`, `directory_deleted`, `renamed_directories`, `renamed_files`, `roadmap_updated`, `state_updated`.
99
+ </step>
100
+
101
+ <step name="commit">
102
+ Stage and commit the removal:
103
+
104
+ ```bash
105
+ node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "chore: remove phase {target} ({original-phase-name})" --files .planning/
106
+ ```
107
+
108
+ The commit message preserves the historical record of what was removed.
109
+ </step>
110
+
111
+ <step name="completion">
112
+ Present completion summary:
113
+
114
+ ```
115
+ Phase {target} ({original-name}) removed.
116
+
117
+ Changes:
118
+ - Deleted: .planning/phases/{target}-{slug}/
119
+ - Renumbered: {N} directories and {M} files
120
+ - Updated: ROADMAP.md, STATE.md
121
+ - Committed: chore: remove phase {target} ({original-name})
122
+
123
+ ---
124
+
125
+ ## What's Next
126
+
127
+ Would you like to:
128
+ - `/gsd:progress` — see updated roadmap status
129
+ - Continue with current phase
130
+ - Review roadmap
131
+
132
+ ---
133
+ ```
134
+ </step>
135
+
136
+ </process>
137
+
138
+ <anti_patterns>
139
+
140
+ - Don't remove completed phases (have SUMMARY.md files) without --force
141
+ - Don't remove current or past phases
142
+ - Don't manually renumber — use `gsd-tools phase remove` which handles all renumbering
143
+ - Don't add "removed phase" notes to STATE.md — git commit is the record
144
+ - Don't modify completed phase directories
145
+ </anti_patterns>
146
+
147
+ <success_criteria>
148
+ Phase removal is complete when:
149
+
150
+ - [ ] Target phase validated as future/unstarted
151
+ - [ ] `gsd-tools phase remove` executed successfully
152
+ - [ ] Changes committed with descriptive message
153
+ - [ ] User informed of changes
154
+ </success_criteria>
@@ -0,0 +1,74 @@
1
+ <purpose>
2
+ Research how to implement a phase. Spawns gsd-phase-researcher with phase context.
3
+
4
+ Standalone research command. For most workflows, use `/gsd:plan-phase` which integrates research automatically.
5
+ </purpose>
6
+
7
+ <process>
8
+
9
+ ## Step 0: Resolve Model Profile
10
+
11
+ @~/.claude/get-shit-done/references/model-profile-resolution.md
12
+
13
+ Resolve model for:
14
+ - `gsd-phase-researcher`
15
+
16
+ ## Step 1: Normalize and Validate Phase
17
+
18
+ @~/.claude/get-shit-done/references/phase-argument-parsing.md
19
+
20
+ ```bash
21
+ PHASE_INFO=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs roadmap get-phase "${PHASE}")
22
+ ```
23
+
24
+ If `found` is false: Error and exit.
25
+
26
+ ## Step 2: Check Existing Research
27
+
28
+ ```bash
29
+ ls .planning/phases/${PHASE}-*/RESEARCH.md 2>/dev/null
30
+ ```
31
+
32
+ If exists: Offer update/view/skip options.
33
+
34
+ ## Step 3: Gather Phase Context
35
+
36
+ ```bash
37
+ # Phase section from roadmap (already loaded in PHASE_INFO)
38
+ echo "$PHASE_INFO" | jq -r '.section'
39
+ cat .planning/REQUIREMENTS.md 2>/dev/null
40
+ cat .planning/phases/${PHASE}-*/*-CONTEXT.md 2>/dev/null
41
+ # Decisions from state-snapshot (structured JSON)
42
+ node ~/.claude/get-shit-done/bin/gsd-tools.cjs state-snapshot | jq '.decisions'
43
+ ```
44
+
45
+ ## Step 4: Spawn Researcher
46
+
47
+ ```
48
+ Task(
49
+ prompt="<objective>
50
+ Research implementation approach for Phase {phase}: {name}
51
+ </objective>
52
+
53
+ <context>
54
+ Phase description: {description}
55
+ Requirements: {requirements}
56
+ Prior decisions: {decisions}
57
+ Phase context: {context_md}
58
+ </context>
59
+
60
+ <output>
61
+ Write to: .planning/phases/${PHASE}-{slug}/${PHASE}-RESEARCH.md
62
+ </output>",
63
+ subagent_type="gsd-phase-researcher",
64
+ model="{researcher_model}"
65
+ )
66
+ ```
67
+
68
+ ## Step 5: Handle Return
69
+
70
+ - `## RESEARCH COMPLETE` — Display summary, offer: Plan/Dig deeper/Review/Done
71
+ - `## CHECKPOINT REACHED` — Present to user, spawn continuation
72
+ - `## RESEARCH INCONCLUSIVE` — Show attempts, offer: Add context/Try different mode/Manual
73
+
74
+ </process>