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.
- package/agents/gsd-codebase-mapper.md +1 -1
- package/agents/gsd-executor.md +1 -4
- package/agents/gsd-phase-researcher.md +6 -4
- package/agents/gsd-plan-checker.md +3 -2
- package/agents/gsd-planner.md +6 -2
- package/bin/install.js +13 -109
- package/commands/gsd/audit-milestone.md +1 -1
- package/commands/gsd/create-roadmap.md +0 -2
- package/commands/gsd/define-requirements.md +0 -1
- package/commands/gsd/discuss-milestone.md +0 -1
- package/commands/gsd/discuss-phase.md +24 -16
- package/commands/gsd/execute-phase.md +0 -1
- package/commands/gsd/help.md +6 -20
- package/commands/gsd/new-milestone.md +2 -0
- package/commands/gsd/plan-milestone-gaps.md +1 -2
- package/commands/gsd/plan-phase.md +25 -13
- package/commands/gsd/progress.md +3 -3
- package/commands/gsd/research-phase.md +13 -7
- package/get-shit-done/references/continuation-format.md +3 -3
- package/get-shit-done/templates/context.md +143 -13
- package/get-shit-done/templates/phase-prompt.md +0 -1
- package/get-shit-done/templates/planner-subagent-prompt.md +1 -1
- package/get-shit-done/workflows/discovery-phase.md +2 -2
- package/get-shit-done/workflows/discuss-phase.md +115 -55
- package/get-shit-done/workflows/execute-phase.md +3 -1
- package/get-shit-done/workflows/execute-plan.md +2 -2
- package/get-shit-done/workflows/map-codebase.md +2 -2
- package/get-shit-done/workflows/resume-project.md +5 -7
- package/get-shit-done/workflows/verify-phase.md +4 -4
- package/get-shit-done/workflows/verify-work.md +3 -2
- package/hooks/gsd-check-update.js +51 -0
- package/hooks/statusline.js +84 -0
- package/package.json +1 -1
- package/commands/gsd/execute-plan.md +0 -400
- package/get-shit-done/references/debugging/debugging-mindset.md +0 -11
- package/get-shit-done/references/debugging/hypothesis-testing.md +0 -11
- package/get-shit-done/references/debugging/investigation-techniques.md +0 -11
- package/get-shit-done/references/debugging/verification-patterns.md +0 -11
- package/get-shit-done/references/debugging/when-to-research.md +0 -11
- package/get-shit-done/references/goal-backward.md +0 -33
- package/get-shit-done/references/plan-format.md +0 -32
- package/get-shit-done/references/principles.md +0 -29
- package/get-shit-done/references/research-pitfalls.md +0 -233
- package/get-shit-done/references/scope-estimation.md +0 -32
- package/get-shit-done/templates/research-subagent-prompt.md +0 -92
- package/get-shit-done/workflows/create-milestone.md +0 -203
- package/get-shit-done/workflows/debug.md +0 -14
- package/get-shit-done/workflows/plan-phase.md +0 -41
- package/get-shit-done/workflows/research-phase.md +0 -17
- package/get-shit-done/workflows/research-project.md +0 -23
- package/hooks/gsd-check-update.sh +0 -20
- package/hooks/gsd-notify.sh +0 -59
- 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
|
-
### [
|
|
33
|
+
### [Area 1 that was discussed]
|
|
32
34
|
- [Specific decision made]
|
|
33
35
|
- [Another decision if applicable]
|
|
34
36
|
|
|
35
|
-
### [
|
|
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
|
-
###
|
|
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
|
-
###
|
|
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
|
|
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
|
-
- "
|
|
139
|
-
- "
|
|
140
|
-
- "
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
<
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
- **
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
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
|
-
|
|
113
|
-
|
|
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
|
|
173
|
-
- "[
|
|
174
|
-
-
|
|
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
|
-
|
|
202
|
+
For "Post Feed" (visual feature):
|
|
177
203
|
```
|
|
178
|
-
☐
|
|
179
|
-
☐
|
|
180
|
-
☐
|
|
181
|
-
☐
|
|
204
|
+
☐ Layout style — Cards vs list vs timeline? Information density?
|
|
205
|
+
☐ Loading behavior — Infinite scroll or pagination? Pull to refresh?
|
|
206
|
+
☐ Content ordering — Chronological, algorithmic, or user choice?
|
|
207
|
+
☐ Post metadata — What info per post? Timestamps, reactions, author?
|
|
182
208
|
```
|
|
183
209
|
|
|
184
|
-
|
|
185
|
-
|
|
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 [
|
|
240
|
+
Let's talk about [Area].
|
|
196
241
|
```
|
|
197
242
|
|
|
198
|
-
2. **Ask
|
|
199
|
-
- header: "[
|
|
200
|
-
- question: Specific
|
|
201
|
-
- options: 2-3 concrete choices
|
|
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
|
-
|
|
204
|
-
-
|
|
205
|
-
-
|
|
206
|
-
-
|
|
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
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
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
|
|
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
|
-
**
|
|
282
|
+
**Find or create phase directory:**
|
|
233
283
|
|
|
234
|
-
|
|
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
|
-
|
|
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
|
|
397
|
+
git add "${PHASE_DIR}/${PADDED_PHASE}-CONTEXT.md"
|
|
338
398
|
git commit -m "$(cat <<'EOF'
|
|
339
|
-
docs(${
|
|
399
|
+
docs(${PADDED_PHASE}): capture phase context
|
|
340
400
|
|
|
341
|
-
Phase ${
|
|
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(${
|
|
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
|
-
|
|
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
|
|
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-
|
|
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
|
-
|
|
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
|
-
-
|
|
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:
|
|
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 (
|
|
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
|
|
181
|
+
1. Resume interrupted agent [if interrupted agent found]
|
|
182
182
|
OR
|
|
183
|
-
1.
|
|
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-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|