get-shit-done-cc 1.5.27 → 1.5.29

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 (53) hide show
  1. package/agents/gsd-codebase-mapper.md +1 -1
  2. package/agents/gsd-executor.md +1 -4
  3. package/agents/gsd-phase-researcher.md +6 -4
  4. package/agents/gsd-plan-checker.md +3 -2
  5. package/agents/gsd-planner.md +6 -2
  6. package/bin/install.js +13 -109
  7. package/commands/gsd/audit-milestone.md +1 -1
  8. package/commands/gsd/create-roadmap.md +0 -2
  9. package/commands/gsd/define-requirements.md +0 -1
  10. package/commands/gsd/discuss-milestone.md +0 -1
  11. package/commands/gsd/discuss-phase.md +24 -16
  12. package/commands/gsd/execute-phase.md +0 -1
  13. package/commands/gsd/help.md +6 -20
  14. package/commands/gsd/new-milestone.md +2 -0
  15. package/commands/gsd/plan-milestone-gaps.md +1 -2
  16. package/commands/gsd/plan-phase.md +25 -13
  17. package/commands/gsd/progress.md +3 -3
  18. package/commands/gsd/research-phase.md +13 -7
  19. package/get-shit-done/references/continuation-format.md +3 -3
  20. package/get-shit-done/templates/context.md +143 -13
  21. package/get-shit-done/templates/phase-prompt.md +0 -1
  22. package/get-shit-done/templates/planner-subagent-prompt.md +1 -1
  23. package/get-shit-done/workflows/discovery-phase.md +2 -2
  24. package/get-shit-done/workflows/discuss-phase.md +115 -55
  25. package/get-shit-done/workflows/execute-phase.md +3 -1
  26. package/get-shit-done/workflows/execute-plan.md +2 -2
  27. package/get-shit-done/workflows/map-codebase.md +2 -2
  28. package/get-shit-done/workflows/resume-project.md +5 -7
  29. package/get-shit-done/workflows/verify-phase.md +4 -4
  30. package/get-shit-done/workflows/verify-work.md +3 -2
  31. package/hooks/gsd-check-update.js +51 -0
  32. package/hooks/statusline.js +84 -0
  33. package/package.json +1 -1
  34. package/commands/gsd/execute-plan.md +0 -400
  35. package/get-shit-done/references/debugging/debugging-mindset.md +0 -11
  36. package/get-shit-done/references/debugging/hypothesis-testing.md +0 -11
  37. package/get-shit-done/references/debugging/investigation-techniques.md +0 -11
  38. package/get-shit-done/references/debugging/verification-patterns.md +0 -11
  39. package/get-shit-done/references/debugging/when-to-research.md +0 -11
  40. package/get-shit-done/references/goal-backward.md +0 -33
  41. package/get-shit-done/references/plan-format.md +0 -32
  42. package/get-shit-done/references/principles.md +0 -29
  43. package/get-shit-done/references/research-pitfalls.md +0 -233
  44. package/get-shit-done/references/scope-estimation.md +0 -32
  45. package/get-shit-done/templates/research-subagent-prompt.md +0 -92
  46. package/get-shit-done/workflows/create-milestone.md +0 -203
  47. package/get-shit-done/workflows/debug.md +0 -14
  48. package/get-shit-done/workflows/plan-phase.md +0 -41
  49. package/get-shit-done/workflows/research-phase.md +0 -17
  50. package/get-shit-done/workflows/research-project.md +0 -23
  51. package/hooks/gsd-check-update.sh +0 -20
  52. package/hooks/gsd-notify.sh +0 -59
  53. package/hooks/statusline.sh +0 -58
@@ -4,6 +4,8 @@ Template for `.planning/phases/XX-name/{phase}-CONTEXT.md` - captures implementa
4
4
 
5
5
  **Purpose:** Document decisions that downstream agents need. Researcher uses this to know WHAT to investigate. Planner uses this to know WHAT choices are locked vs flexible.
6
6
 
7
+ **Key principle:** Categories are NOT predefined. They emerge from what was actually discussed for THIS phase. A CLI phase has CLI-relevant sections, a UI phase has UI-relevant sections.
8
+
7
9
  **Downstream consumers:**
8
10
  - `gsd-phase-researcher` — Reads decisions to focus research (e.g., "card layout" → research card component patterns)
9
11
  - `gsd-planner` — Reads decisions to create specific tasks (e.g., "infinite scroll" → task includes virtualization)
@@ -28,11 +30,14 @@ Template for `.planning/phases/XX-name/{phase}-CONTEXT.md` - captures implementa
28
30
  <decisions>
29
31
  ## Implementation Decisions
30
32
 
31
- ### [Category discussed, e.g., UI]
33
+ ### [Area 1 that was discussed]
32
34
  - [Specific decision made]
33
35
  - [Another decision if applicable]
34
36
 
35
- ### [Category discussed, e.g., Behavior]
37
+ ### [Area 2 that was discussed]
38
+ - [Specific decision made]
39
+
40
+ ### [Area 3 that was discussed]
36
41
  - [Specific decision made]
37
42
 
38
43
  ### Claude's Discretion
@@ -65,6 +70,9 @@ Template for `.planning/phases/XX-name/{phase}-CONTEXT.md` - captures implementa
65
70
  ```
66
71
 
67
72
  <good_examples>
73
+
74
+ **Example 1: Visual feature (Post Feed)**
75
+
68
76
  ```markdown
69
77
  # Phase 3: Post Feed - Context
70
78
 
@@ -81,18 +89,17 @@ Display posts from followed users in a scrollable feed. Users can view posts and
81
89
  <decisions>
82
90
  ## Implementation Decisions
83
91
 
84
- ### UI
92
+ ### Layout style
85
93
  - Card-based layout, not timeline or list
86
94
  - Each card shows: author avatar, name, timestamp, full post content, reaction counts
87
95
  - Cards have subtle shadows, rounded corners — modern feel
88
- - Show 10 posts initially, load more on scroll
89
96
 
90
- ### Behavior
97
+ ### Loading behavior
91
98
  - Infinite scroll, not pagination
92
99
  - Pull-to-refresh on mobile
93
100
  - New posts indicator at top ("3 new posts") rather than auto-inserting
94
101
 
95
- ### Empty State
102
+ ### Empty state
96
103
  - Friendly illustration + "Follow people to see posts here"
97
104
  - Suggest 3-5 accounts to follow based on interests
98
105
 
@@ -108,7 +115,6 @@ Display posts from followed users in a scrollable feed. Users can view posts and
108
115
 
109
116
  - "I like how Twitter shows the new posts indicator without disrupting your scroll position"
110
117
  - Cards should feel like Linear's issue cards — clean, not cluttered
111
- - No infinite scroll fatigue — maybe show "You're all caught up" after ~50 posts
112
118
 
113
119
  </specifics>
114
120
 
@@ -116,7 +122,6 @@ Display posts from followed users in a scrollable feed. Users can view posts and
116
122
  ## Deferred Ideas
117
123
 
118
124
  - Commenting on posts — Phase 5
119
- - Reaction picker (not just counts) — Phase 5
120
125
  - Bookmarking posts — add to backlog
121
126
 
122
127
  </deferred>
@@ -126,6 +131,131 @@ Display posts from followed users in a scrollable feed. Users can view posts and
126
131
  *Phase: 03-post-feed*
127
132
  *Context gathered: 2025-01-20*
128
133
  ```
134
+
135
+ **Example 2: CLI tool (Database backup)**
136
+
137
+ ```markdown
138
+ # Phase 2: Backup Command - Context
139
+
140
+ **Gathered:** 2025-01-20
141
+ **Status:** Ready for planning
142
+
143
+ <domain>
144
+ ## Phase Boundary
145
+
146
+ CLI command to backup database to local file or S3. Supports full and incremental backups. Restore command is a separate phase.
147
+
148
+ </domain>
149
+
150
+ <decisions>
151
+ ## Implementation Decisions
152
+
153
+ ### Output format
154
+ - JSON for programmatic use, table format for humans
155
+ - Default to table, --json flag for JSON
156
+ - Verbose mode (-v) shows progress, silent by default
157
+
158
+ ### Flag design
159
+ - Short flags for common options: -o (output), -v (verbose), -f (force)
160
+ - Long flags for clarity: --incremental, --compress, --encrypt
161
+ - Required: database connection string (positional or --db)
162
+
163
+ ### Error recovery
164
+ - Retry 3 times on network failure, then fail with clear message
165
+ - --no-retry flag to fail fast
166
+ - Partial backups are deleted on failure (no corrupt files)
167
+
168
+ ### Claude's Discretion
169
+ - Exact progress bar implementation
170
+ - Compression algorithm choice
171
+ - Temp file handling
172
+
173
+ </decisions>
174
+
175
+ <specifics>
176
+ ## Specific Ideas
177
+
178
+ - "I want it to feel like pg_dump — familiar to database people"
179
+ - Should work in CI pipelines (exit codes, no interactive prompts)
180
+
181
+ </specifics>
182
+
183
+ <deferred>
184
+ ## Deferred Ideas
185
+
186
+ - Scheduled backups — separate phase
187
+ - Backup rotation/retention — add to backlog
188
+
189
+ </deferred>
190
+
191
+ ---
192
+
193
+ *Phase: 02-backup-command*
194
+ *Context gathered: 2025-01-20*
195
+ ```
196
+
197
+ **Example 3: Organization task (Photo library)**
198
+
199
+ ```markdown
200
+ # Phase 1: Photo Organization - Context
201
+
202
+ **Gathered:** 2025-01-20
203
+ **Status:** Ready for planning
204
+
205
+ <domain>
206
+ ## Phase Boundary
207
+
208
+ Organize existing photo library into structured folders. Handle duplicates and apply consistent naming. Tagging and search are separate phases.
209
+
210
+ </domain>
211
+
212
+ <decisions>
213
+ ## Implementation Decisions
214
+
215
+ ### Grouping criteria
216
+ - Primary grouping by year, then by month
217
+ - Events detected by time clustering (photos within 2 hours = same event)
218
+ - Event folders named by date + location if available
219
+
220
+ ### Duplicate handling
221
+ - Keep highest resolution version
222
+ - Move duplicates to _duplicates folder (don't delete)
223
+ - Log all duplicate decisions for review
224
+
225
+ ### Naming convention
226
+ - Format: YYYY-MM-DD_HH-MM-SS_originalname.ext
227
+ - Preserve original filename as suffix for searchability
228
+ - Handle name collisions with incrementing suffix
229
+
230
+ ### Claude's Discretion
231
+ - Exact clustering algorithm
232
+ - How to handle photos with no EXIF data
233
+ - Folder emoji usage
234
+
235
+ </decisions>
236
+
237
+ <specifics>
238
+ ## Specific Ideas
239
+
240
+ - "I want to be able to find photos by roughly when they were taken"
241
+ - Don't delete anything — worst case, move to a review folder
242
+
243
+ </specifics>
244
+
245
+ <deferred>
246
+ ## Deferred Ideas
247
+
248
+ - Face detection grouping — future phase
249
+ - Cloud sync — out of scope for now
250
+
251
+ </deferred>
252
+
253
+ ---
254
+
255
+ *Phase: 01-photo-organization*
256
+ *Context gathered: 2025-01-20*
257
+ ```
258
+
129
259
  </good_examples>
130
260
 
131
261
  <guidelines>
@@ -133,11 +263,11 @@ Display posts from followed users in a scrollable feed. Users can view posts and
133
263
 
134
264
  The output should answer: "What does the researcher need to investigate? What choices are locked for the planner?"
135
265
 
136
- **Good content:**
266
+ **Good content (concrete decisions):**
137
267
  - "Card-based layout, not timeline"
138
- - "Infinite scroll with pull-to-refresh"
139
- - "Show 10 posts initially"
140
- - "New posts indicator rather than auto-insert"
268
+ - "Retry 3 times on network failure, then fail"
269
+ - "Group by year, then by month"
270
+ - "JSON for programmatic use, table for humans"
141
271
 
142
272
  **Bad content (too vague):**
143
273
  - "Should feel modern and clean"
@@ -148,7 +278,7 @@ The output should answer: "What does the researcher need to investigate? What ch
148
278
  **Sections explained:**
149
279
 
150
280
  - **Domain** — The scope anchor. Copied/derived from ROADMAP.md. Fixed boundary.
151
- - **Decisions** — Organized by category (UI, UX, Behavior, etc.). Actual choices made.
281
+ - **Decisions** — Organized by areas discussed (NOT predefined categories). Section headers come from the actual discussion — "Layout style", "Flag design", "Grouping criteria", etc.
152
282
  - **Claude's Discretion** — Explicit acknowledgment of what Claude can decide during implementation.
153
283
  - **Specifics** — Product references, examples, "like X but..." statements.
154
284
  - **Deferred** — Ideas captured but explicitly out of scope. Prevents scope creep while preserving good ideas.
@@ -573,5 +573,4 @@ Task completion ≠ Goal achievement. A task "create chat component" can complet
573
573
  5. Gaps found → fix plans created → execute → re-verify
574
574
  6. All must_haves pass → phase complete
575
575
 
576
- See `~/.claude/get-shit-done/references/goal-backward.md` for derivation process.
577
576
  See `~/.claude/get-shit-done/workflows/verify-phase.md` for verification logic.
@@ -34,7 +34,7 @@ Template for spawning gsd-planner agent. The agent contains all planning experti
34
34
  </planning_context>
35
35
 
36
36
  <downstream_consumer>
37
- Output consumed by /gsd:execute-phase or /gsd:execute-plan
37
+ Output consumed by /gsd:execute-phase
38
38
  Plans must be executable prompts with:
39
39
  - Frontmatter (wave, depends_on, files_modified, autonomous)
40
40
  - Tasks in XML format
@@ -107,7 +107,7 @@ For: Choosing between options, new external integration.
107
107
 
108
108
  5. **Cross-verify:** Any WebSearch finding → confirm with Context7/official docs.
109
109
 
110
- 6. **Quality check:** Before finalizing findings, consult ~/.claude/get-shit-done/references/research-pitfalls.md to avoid common research gaps.
110
+ 6. **Quality check:** Before finalizing findings, consult the gsd-researcher agent's verification protocols to avoid common research gaps.
111
111
 
112
112
  7. **Create DISCOVERY.md** using ~/.claude/get-shit-done/templates/discovery.md structure:
113
113
 
@@ -160,7 +160,7 @@ For: Architectural decisions, novel problems, high-risk choices.
160
160
  - Mark what's verified vs assumed
161
161
  - Flag contradictions
162
162
 
163
- 6. **Quality check:** Before finalizing findings, consult ~/.claude/get-shit-done/references/research-pitfalls.md to ensure comprehensive coverage and avoid common research gaps.
163
+ 6. **Quality check:** Before finalizing findings, consult the gsd-researcher agent's verification protocols to ensure comprehensive coverage and avoid common research gaps.
164
164
 
165
165
  7. **Create comprehensive DISCOVERY.md:**
166
166
 
@@ -66,23 +66,44 @@ For now, let's focus on [phase domain]."
66
66
  Capture the idea in a "Deferred Ideas" section. Don't lose it, don't act on it.
67
67
  </scope_guardrail>
68
68
 
69
- <gray_area_categories>
70
- Use these categories when analyzing a phase. Not all apply to every phase.
71
-
72
- | Category | What it clarifies | Example questions |
73
- |----------|-------------------|-------------------|
74
- | **UI** | Visual presentation, layout, information density | "Card-based or list view?" "What info shows on each item?" |
75
- | **UX** | Interactions, flows, feedback | "How does loading work?" "What happens when you tap X?" |
76
- | **Behavior** | Runtime behavior, state changes | "Auto-refresh or manual?" "How does pagination work?" |
77
- | **Empty/Edge States** | What shows in unusual situations | "What appears with no data?" "How do errors display?" |
78
- | **Content** | What information is shown/hidden | "Show timestamps?" "How much preview text?" |
79
-
80
- **Categories to AVOID:**
81
- - **Scope**The roadmap defines scope, not discussion
82
- - **Technical** — You figure out implementation
83
- - **Architecture** You decide patterns
84
- - **Performance** — You handle optimization
85
- </gray_area_categories>
69
+ <gray_area_identification>
70
+ Gray areas are **implementation decisions the user cares about** things that could go multiple ways and would change the result.
71
+
72
+ **How to identify gray areas:**
73
+
74
+ 1. **Read the phase goal** from ROADMAP.md
75
+ 2. **Understand the domain** What kind of thing is being built?
76
+ - Something users SEE visual presentation, interactions, states matter
77
+ - Something users CALL interface contracts, responses, errors matter
78
+ - Something users RUN invocation, output, behavior modes matter
79
+ - Something users READ → structure, tone, depth, flow matter
80
+ - Something being ORGANIZED → criteria, grouping, handling exceptions matter
81
+ 3. **Generate phase-specific gray areas** — Not generic categories, but concrete decisions for THIS phase
82
+
83
+ **Don't use generic category labels** (UI, UX, Behavior). Generate specific gray areas:
84
+
85
+ ```
86
+ Phase: "User authentication"
87
+ → Session handling, Error responses, Multi-device policy, Recovery flow
88
+
89
+ Phase: "Organize photo library"
90
+ → Grouping criteria, Duplicate handling, Naming convention, Folder structure
91
+
92
+ Phase: "CLI for database backups"
93
+ → Output format, Flag design, Progress reporting, Error recovery
94
+
95
+ Phase: "API documentation"
96
+ → Structure/navigation, Code examples depth, Versioning approach, Interactive elements
97
+ ```
98
+
99
+ **The key question:** What decisions would change the outcome that the user should weigh in on?
100
+
101
+ **Claude handles these (don't ask):**
102
+ - Technical implementation details
103
+ - Architecture patterns
104
+ - Performance optimization
105
+ - Scope (roadmap defines this)
106
+ </gray_area_identification>
86
107
 
87
108
  <process>
88
109
 
@@ -109,8 +130,9 @@ Exit workflow.
109
130
  Check if CONTEXT.md already exists:
110
131
 
111
132
  ```bash
112
- ls .planning/phases/${PHASE}-*/CONTEXT.md 2>/dev/null
113
- ls .planning/phases/${PHASE}-*/${PHASE}-CONTEXT.md 2>/dev/null
133
+ # Match both zero-padded (05-*) and unpadded (5-*) folders
134
+ PADDED_PHASE=$(printf "%02d" ${PHASE})
135
+ ls .planning/phases/${PADDED_PHASE}-*/CONTEXT.md .planning/phases/${PADDED_PHASE}-*/${PADDED_PHASE}-CONTEXT.md .planning/phases/${PHASE}-*/CONTEXT.md .planning/phases/${PHASE}-*/${PHASE}-CONTEXT.md 2>/dev/null
114
136
  ```
115
137
 
116
138
  **If exists:**
@@ -168,47 +190,79 @@ We'll clarify HOW to implement this.
168
190
 
169
191
  **Then use AskUserQuestion (multiSelect: true):**
170
192
  - header: "Discuss"
171
- - question: "Which areas do you want to discuss?"
172
- - options: Generate 2-4 based on your analysis, each formatted as:
173
- - "[Category] — [Specific gray area question]"
174
- - Last option always: "None — you decide, proceed to planning"
193
+ - question: "Which areas do you want to discuss for [phase name]?"
194
+ - options: Generate 3-4 phase-specific gray areas, each formatted as:
195
+ - "[Specific area]" (label) concrete, not generic
196
+ - [1-2 questions this covers] (description)
197
+
198
+ **Do NOT include a "skip" or "you decide" option.** User ran this command to discuss — give them real choices.
199
+
200
+ **Examples by domain:**
175
201
 
176
- **Example options:**
202
+ For "Post Feed" (visual feature):
177
203
  ```
178
- UICard layout or timeline? How much of each post shows?
179
- Behavior — Infinite scroll or pagination? Pull to refresh?
180
- Empty stateWhat appears when there are no posts?
181
- NoneYou decide, proceed to planning
204
+ Layout style Cards vs list vs timeline? Information density?
205
+ Loading behavior — Infinite scroll or pagination? Pull to refresh?
206
+ Content orderingChronological, algorithmic, or user choice?
207
+ Post metadata What info per post? Timestamps, reactions, author?
182
208
  ```
183
209
 
184
- If user selects "None": Skip to write_context with minimal context.
185
- Otherwise: Continue to discuss_areas with selected areas.
210
+ For "Database backup CLI" (command-line tool):
211
+ ```
212
+ ☐ Output format — JSON, table, or plain text? Verbosity levels?
213
+ ☐ Flag design — Short flags, long flags, or both? Required vs optional?
214
+ ☐ Progress reporting — Silent, progress bar, or verbose logging?
215
+ ☐ Error recovery — Fail fast, retry, or prompt for action?
216
+ ```
217
+
218
+ For "Organize photo library" (organization task):
219
+ ```
220
+ ☐ Grouping criteria — By date, location, faces, or events?
221
+ ☐ Duplicate handling — Keep best, keep all, or prompt each time?
222
+ ☐ Naming convention — Original names, dates, or descriptive?
223
+ ☐ Folder structure — Flat, nested by year, or by category?
224
+ ```
225
+
226
+ Continue to discuss_areas with selected areas.
186
227
  </step>
187
228
 
188
229
  <step name="discuss_areas">
189
230
  For each selected area, conduct a focused discussion loop.
190
231
 
232
+ **Philosophy: 4 questions, then check.**
233
+
234
+ Ask 4 questions per area before offering to continue or move on. Each answer often reveals the next question.
235
+
191
236
  **For each area:**
192
237
 
193
238
  1. **Announce the area:**
194
239
  ```
195
- Let's talk about [Category].
240
+ Let's talk about [Area].
196
241
  ```
197
242
 
198
- 2. **Ask focused questions using AskUserQuestion:**
199
- - header: "[Category]"
200
- - question: Specific question about that gray area
201
- - options: 2-3 concrete choices + "Let me describe" + "You decide"
243
+ 2. **Ask 4 questions using AskUserQuestion:**
244
+ - header: "[Area]"
245
+ - question: Specific decision for this area
246
+ - options: 2-3 concrete choices (AskUserQuestion adds "Other" automatically)
247
+ - Include "You decide" as an option when reasonable — captures Claude discretion
248
+
249
+ 3. **After 4 questions, check:**
250
+ - header: "[Area]"
251
+ - question: "More questions about [area], or move to next?"
252
+ - options: "More questions" / "Next area"
253
+
254
+ If "More questions" → ask 4 more, then check again
255
+ If "Next area" → proceed to next selected area
202
256
 
203
- 3. **Follow up based on response:**
204
- - If they chose an option: Capture it, ask if there's more about this area
205
- - If "Let me describe": Receive their input, reflect it back, confirm understanding
206
- - If "You decide": Note that Claude has discretion here
257
+ 4. **After all areas complete:**
258
+ - header: "Done"
259
+ - question: "That covers [list areas]. Ready to create context?"
260
+ - options: "Create context" / "Revisit an area"
207
261
 
208
- 4. **Loop control — Always offer:**
209
- - "Ask more about [Category]" Continue probing this area
210
- - "Move to next area" Done with this category
211
- - "That's enough, create context" Done with all discussion
262
+ **Question design:**
263
+ - Options should be concrete, not abstract ("Cards" not "Option A")
264
+ - Each answer should inform the next question
265
+ - If user picks "Other", receive their input, reflect it back, confirm
212
266
 
213
267
  **Scope creep handling:**
214
268
  If user mentions something outside the phase domain:
@@ -216,24 +270,30 @@ If user mentions something outside the phase domain:
216
270
  "[Feature] sounds like a new capability — that belongs in its own phase.
217
271
  I'll note it as a deferred idea.
218
272
 
219
- Back to [current domain]: [return to current question]"
273
+ Back to [current area]: [return to current question]"
220
274
  ```
221
275
 
222
276
  Track deferred ideas internally.
223
-
224
- **Continue until:**
225
- - User says "Move to next area" and all selected areas are done, OR
226
- - User says "That's enough, create context"
227
277
  </step>
228
278
 
229
279
  <step name="write_context">
230
280
  Create CONTEXT.md capturing decisions made.
231
281
 
232
- **File location:** `.planning/phases/${PADDED_PHASE}-${SLUG}/${PADDED_PHASE}-CONTEXT.md`
282
+ **Find or create phase directory:**
233
283
 
234
- Zero-pad the phase number: `PADDED_PHASE=$(printf "%02d" ${PHASE})`
284
+ ```bash
285
+ # Match existing directory (padded or unpadded)
286
+ PADDED_PHASE=$(printf "%02d" ${PHASE})
287
+ PHASE_DIR=$(ls -d .planning/phases/${PADDED_PHASE}-* .planning/phases/${PHASE}-* 2>/dev/null | head -1)
288
+ if [ -z "$PHASE_DIR" ]; then
289
+ # Create from roadmap name (lowercase, hyphens)
290
+ PHASE_NAME=$(grep "Phase ${PHASE}:" .planning/ROADMAP.md | sed 's/.*Phase [0-9]*: //' | tr '[:upper:]' '[:lower:]' | tr ' ' '-')
291
+ mkdir -p ".planning/phases/${PADDED_PHASE}-${PHASE_NAME}"
292
+ PHASE_DIR=".planning/phases/${PADDED_PHASE}-${PHASE_NAME}"
293
+ fi
294
+ ```
235
295
 
236
- Create phase directory if it doesn't exist. Use roadmap phase name for slug (lowercase, hyphens).
296
+ **File location:** `${PHASE_DIR}/${PADDED_PHASE}-CONTEXT.md`
237
297
 
238
298
  **Structure the content by what was discussed:**
239
299
 
@@ -334,18 +394,18 @@ Created: .planning/phases/${PADDED_PHASE}-${SLUG}/${PADDED_PHASE}-CONTEXT.md
334
394
  Commit phase context:
335
395
 
336
396
  ```bash
337
- git add .planning/phases/${PHASE}-${SLUG}/${PHASE}-CONTEXT.md
397
+ git add "${PHASE_DIR}/${PADDED_PHASE}-CONTEXT.md"
338
398
  git commit -m "$(cat <<'EOF'
339
- docs(${PHASE}): capture phase context
399
+ docs(${PADDED_PHASE}): capture phase context
340
400
 
341
- Phase ${PHASE}: ${PHASE_NAME}
401
+ Phase ${PADDED_PHASE}: ${PHASE_NAME}
342
402
  - Implementation decisions documented
343
403
  - Phase boundary established
344
404
  EOF
345
405
  )"
346
406
  ```
347
407
 
348
- Confirm: "Committed: docs(${PHASE}): capture phase context"
408
+ Confirm: "Committed: docs(${PADDED_PHASE}): capture phase context"
349
409
  </step>
350
410
 
351
411
  </process>
@@ -39,7 +39,9 @@ Options:
39
39
  Confirm phase exists and has plans:
40
40
 
41
41
  ```bash
42
- PHASE_DIR=$(ls -d .planning/phases/${PHASE_ARG}* 2>/dev/null | head -1)
42
+ # Match both zero-padded (05-*) and unpadded (5-*) folders
43
+ PADDED_PHASE=$(printf "%02d" ${PHASE_ARG} 2>/dev/null || echo "${PHASE_ARG}")
44
+ PHASE_DIR=$(ls -d .planning/phases/${PADDED_PHASE}-* .planning/phases/${PHASE_ARG}-* 2>/dev/null | head -1)
43
45
  if [ -z "$PHASE_DIR" ]; then
44
46
  echo "ERROR: No phase directory matching '${PHASE_ARG}'"
45
47
  exit 1
@@ -1196,7 +1196,7 @@ You will NOT be resumed. A new agent continues from where you stopped, using you
1196
1196
 
1197
1197
  **How to know if you were spawned:**
1198
1198
 
1199
- If you're reading this workflow because an orchestrator spawned you (vs running directly from /gsd:execute-plan), the orchestrator's prompt will include checkpoint return instructions. Follow those instructions when you hit a checkpoint.
1199
+ If you're reading this workflow because an orchestrator spawned you (vs running directly), the orchestrator's prompt will include checkpoint return instructions. Follow those instructions when you hit a checkpoint.
1200
1200
 
1201
1201
  **If running in main context (not spawned):**
1202
1202
 
@@ -1701,7 +1701,7 @@ Summary: .planning/phases/{phase-dir}/{phase}-{plan}-SUMMARY.md
1701
1701
 
1702
1702
  **{phase}-{next-plan}: [Plan Name]** — [objective from next PLAN.md]
1703
1703
 
1704
- `/gsd:execute-plan .planning/phases/{phase-dir}/{phase}-{next-plan}-PLAN.md`
1704
+ `/gsd:execute-phase {phase}`
1705
1705
 
1706
1706
  <sub>`/clear` first → fresh context window</sub>
1707
1707
 
@@ -170,7 +170,7 @@ Continue to collect_confirmations.
170
170
  <step name="collect_confirmations">
171
171
  Wait for all 4 agents to complete.
172
172
 
173
- Use TaskOutput tool to collect confirmations from each agent.
173
+ Read each agent's output file to collect confirmations.
174
174
 
175
175
  **Expected confirmation format from each agent:**
176
176
  ```
@@ -282,7 +282,7 @@ End workflow.
282
282
  - .planning/codebase/ directory created
283
283
  - 4 parallel gsd-codebase-mapper agents spawned with run_in_background=true
284
284
  - Agents write documents directly (orchestrator doesn't receive document contents)
285
- - TaskOutput used to collect confirmations only
285
+ - Read agent output files to collect confirmations
286
286
  - All 7 codebase documents exist
287
287
  - Clear completion summary with line counts
288
288
  - User offered clear next steps in GSD style
@@ -121,7 +121,7 @@ Present complete project status to user:
121
121
  Task: [task description from agent-history.json]
122
122
  Interrupted: [timestamp]
123
123
 
124
- Resume with: /gsd:resume-task
124
+ Resume with: Task tool (resume parameter with agent ID)
125
125
 
126
126
  [If pending todos exist:]
127
127
  📋 [N] pending todos — /gsd:check-todos to review
@@ -141,7 +141,7 @@ Present complete project status to user:
141
141
  Based on project state, determine the most logical next action:
142
142
 
143
143
  **If interrupted agent exists:**
144
- → Primary: Resume interrupted agent (/gsd:resume-task)
144
+ → Primary: Resume interrupted agent (Task tool with resume parameter)
145
145
  → Option: Start fresh (abandon agent work)
146
146
 
147
147
  **If .continue-here file exists:**
@@ -178,11 +178,9 @@ Present contextual options based on project state:
178
178
  What would you like to do?
179
179
 
180
180
  [Primary action based on state - e.g.:]
181
- 1. Resume interrupted agent (/gsd:resume-task) [if interrupted agent found]
181
+ 1. Resume interrupted agent [if interrupted agent found]
182
182
  OR
183
- 1. Resume from checkpoint (/gsd:execute-plan .planning/phases/XX-name/.continue-here-02-01.md)
184
- OR
185
- 1. Execute next plan (/gsd:execute-plan .planning/phases/XX-name/02-02-PLAN.md)
183
+ 1. Execute phase (/gsd:execute-phase {phase})
186
184
  OR
187
185
  1. Discuss Phase 3 context (/gsd:discuss-phase 3) [if CONTEXT.md missing]
188
186
  OR
@@ -217,7 +215,7 @@ Based on user selection, route to appropriate workflow:
217
215
 
218
216
  **{phase}-{plan}: [Plan Name]** — [objective from PLAN.md]
219
217
 
220
- `/gsd:execute-plan [path]`
218
+ `/gsd:execute-phase {phase}`
221
219
 
222
220
  <sub>`/clear` first → fresh context window</sub>
223
221
 
@@ -19,7 +19,6 @@ Then verify each level against the actual codebase.
19
19
 
20
20
  <required_reading>
21
21
  **Load these references:**
22
- - ~/.claude/get-shit-done/references/goal-backward.md (derivation process)
23
22
  - ~/.claude/get-shit-done/references/verification-patterns.md (detection patterns)
24
23
  - ~/.claude/get-shit-done/templates/verification-report.md (output format)
25
24
  </required_reading>
@@ -30,8 +29,9 @@ Then verify each level against the actual codebase.
30
29
  **Gather all verification context:**
31
30
 
32
31
  ```bash
33
- # Phase directory
34
- PHASE_DIR=$(ls -d .planning/phases/${PHASE_ARG}* 2>/dev/null | head -1)
32
+ # Phase directory (match both zero-padded and unpadded)
33
+ PADDED_PHASE=$(printf "%02d" ${PHASE_ARG} 2>/dev/null || echo "${PHASE_ARG}")
34
+ PHASE_DIR=$(ls -d .planning/phases/${PADDED_PHASE}-* .planning/phases/${PHASE_ARG}-* 2>/dev/null | head -1)
35
35
 
36
36
  # Phase goal from ROADMAP
37
37
  grep -A 5 "Phase ${PHASE_NUM}" .planning/ROADMAP.md
@@ -97,7 +97,7 @@ If no must_haves in frontmatter, derive using goal-backward process:
97
97
 
98
98
  5. **Document derived must-haves** before proceeding to verification.
99
99
 
100
- See ~/.claude/get-shit-done/references/goal-backward.md for detailed derivation guidance.
100
+ <!-- Goal-backward derivation expertise is baked into the gsd-verifier agent -->
101
101
  </step>
102
102
 
103
103
  <step name="verify_truths">
@@ -73,8 +73,9 @@ Continue to `create_uat_file`.
73
73
  Parse $ARGUMENTS as phase number (e.g., "4") or plan number (e.g., "04-02").
74
74
 
75
75
  ```bash
76
- # Find phase directory
77
- PHASE_DIR=$(ls -d .planning/phases/${PHASE_ARG}* 2>/dev/null | head -1)
76
+ # Find phase directory (match both zero-padded and unpadded)
77
+ PADDED_PHASE=$(printf "%02d" ${PHASE_ARG} 2>/dev/null || echo "${PHASE_ARG}")
78
+ PHASE_DIR=$(ls -d .planning/phases/${PADDED_PHASE}-* .planning/phases/${PHASE_ARG}-* 2>/dev/null | head -1)
78
79
 
79
80
  # Find SUMMARY files
80
81
  ls "$PHASE_DIR"/*-SUMMARY.md 2>/dev/null