get-shit-done-cc 1.7.1 → 1.9.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.
- package/README.md +104 -0
- package/agents/gsd-debugger.md +20 -1
- package/agents/gsd-executor.md +30 -0
- package/agents/gsd-phase-researcher.md +9 -0
- package/agents/gsd-planner.md +41 -0
- package/agents/gsd-research-synthesizer.md +9 -0
- package/bin/install.js +78 -7
- package/commands/gsd/add-todo.md +11 -0
- package/commands/gsd/analyze-codebase.md +363 -0
- package/commands/gsd/audit-milestone.md +20 -1
- package/commands/gsd/check-todos.md +11 -0
- package/commands/gsd/debug.md +20 -0
- package/commands/gsd/execute-phase.md +40 -5
- package/commands/gsd/help.md +118 -0
- package/commands/gsd/new-milestone.md +267 -263
- package/commands/gsd/new-project.md +116 -10
- package/commands/gsd/pause-work.md +11 -0
- package/commands/gsd/plan-milestone-gaps.md +11 -0
- package/commands/gsd/plan-phase.md +84 -26
- package/commands/gsd/progress.md +8 -0
- package/commands/gsd/query-intel.md +128 -0
- package/commands/gsd/quick.md +23 -0
- package/commands/gsd/remove-phase.md +11 -0
- package/commands/gsd/research-phase.md +20 -0
- package/commands/gsd/set-profile.md +106 -0
- package/commands/gsd/settings.md +136 -0
- package/get-shit-done/references/model-profiles.md +73 -0
- package/get-shit-done/references/planning-config.md +94 -0
- package/get-shit-done/templates/config.json +9 -0
- package/get-shit-done/templates/entity.md +173 -0
- package/get-shit-done/workflows/complete-milestone.md +11 -0
- package/get-shit-done/workflows/diagnose-issues.md +11 -0
- package/get-shit-done/workflows/discuss-phase.md +11 -0
- package/get-shit-done/workflows/execute-phase.md +68 -9
- package/get-shit-done/workflows/execute-plan.md +188 -4
- package/get-shit-done/workflows/map-codebase.md +35 -2
- package/get-shit-done/workflows/verify-work.md +33 -0
- package/hooks/dist/gsd-intel-index.js +97 -0
- package/hooks/dist/gsd-intel-prune.js +78 -0
- package/hooks/dist/gsd-intel-session.js +39 -0
- package/package.json +12 -2
- package/scripts/build-hooks.js +95 -0
- /package/hooks/{gsd-check-update.js → dist/gsd-check-update.js} +0 -0
- /package/hooks/{statusline.js → dist/statusline.js} +0 -0
|
@@ -8,37 +8,31 @@ allowed-tools:
|
|
|
8
8
|
- Bash
|
|
9
9
|
- Task
|
|
10
10
|
- AskUserQuestion
|
|
11
|
-
- Glob
|
|
12
11
|
---
|
|
13
12
|
|
|
14
13
|
<objective>
|
|
15
|
-
|
|
16
14
|
Start a new milestone through unified flow: questioning → research (optional) → requirements → roadmap.
|
|
17
15
|
|
|
18
|
-
This is the brownfield equivalent of new-project. The project exists, PROJECT.md has history. This command gathers "what's next"
|
|
16
|
+
This is the brownfield equivalent of new-project. The project exists, PROJECT.md has history. This command gathers "what's next", updates PROJECT.md, then continues through the full requirements → roadmap cycle.
|
|
19
17
|
|
|
20
18
|
**Creates/Updates:**
|
|
21
19
|
- `.planning/PROJECT.md` — updated with new milestone goals
|
|
22
|
-
- `.planning/research/` — domain research (optional)
|
|
23
|
-
- `.planning/REQUIREMENTS.md` — scoped requirements
|
|
24
|
-
- `.planning/ROADMAP.md` — phase structure
|
|
25
|
-
- `.planning/STATE.md` —
|
|
20
|
+
- `.planning/research/` — domain research (optional, focuses on NEW features)
|
|
21
|
+
- `.planning/REQUIREMENTS.md` — scoped requirements for this milestone
|
|
22
|
+
- `.planning/ROADMAP.md` — phase structure (continues numbering)
|
|
23
|
+
- `.planning/STATE.md` — reset for new milestone
|
|
26
24
|
|
|
27
25
|
**After this command:** Run `/gsd:plan-phase [N]` to start execution.
|
|
28
|
-
|
|
29
26
|
</objective>
|
|
30
27
|
|
|
31
28
|
<execution_context>
|
|
32
|
-
|
|
33
29
|
@~/.claude/get-shit-done/references/questioning.md
|
|
34
30
|
@~/.claude/get-shit-done/references/ui-brand.md
|
|
35
31
|
@~/.claude/get-shit-done/templates/project.md
|
|
36
32
|
@~/.claude/get-shit-done/templates/requirements.md
|
|
37
|
-
|
|
38
33
|
</execution_context>
|
|
39
34
|
|
|
40
35
|
<context>
|
|
41
|
-
|
|
42
36
|
Milestone name: $ARGUMENTS (optional - will prompt if not provided)
|
|
43
37
|
|
|
44
38
|
**Load project context:**
|
|
@@ -47,169 +41,115 @@ Milestone name: $ARGUMENTS (optional - will prompt if not provided)
|
|
|
47
41
|
@.planning/MILESTONES.md
|
|
48
42
|
@.planning/config.json
|
|
49
43
|
|
|
44
|
+
**Load milestone context (if exists, from /gsd:discuss-milestone):**
|
|
45
|
+
@.planning/MILESTONE-CONTEXT.md
|
|
50
46
|
</context>
|
|
51
47
|
|
|
52
48
|
<process>
|
|
53
49
|
|
|
54
|
-
## Phase 1:
|
|
50
|
+
## Phase 1: Load Context
|
|
55
51
|
|
|
56
|
-
|
|
52
|
+
- Read PROJECT.md (existing project, Validated requirements, decisions)
|
|
53
|
+
- Read MILESTONES.md (what shipped previously)
|
|
54
|
+
- Read STATE.md (pending todos, blockers)
|
|
55
|
+
- Check for MILESTONE-CONTEXT.md (from /gsd:discuss-milestone)
|
|
57
56
|
|
|
58
|
-
|
|
59
|
-
```bash
|
|
60
|
-
[ -f .planning/PROJECT.md ] || { echo "ERROR: No PROJECT.md. Run /gsd:new-project first."; exit 1; }
|
|
61
|
-
```
|
|
57
|
+
## Phase 2: Gather Milestone Goals
|
|
62
58
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
```
|
|
59
|
+
**If MILESTONE-CONTEXT.md exists:**
|
|
60
|
+
- Use features and scope from discuss-milestone
|
|
61
|
+
- Present summary for confirmation
|
|
67
62
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
- "Complete current first" — Run /gsd:complete-milestone
|
|
74
|
-
- "Continue anyway" — Start new milestone (will archive current)
|
|
63
|
+
**If no context file:**
|
|
64
|
+
- Present what shipped in last milestone
|
|
65
|
+
- Ask: "What do you want to build next?"
|
|
66
|
+
- Use AskUserQuestion to explore features
|
|
67
|
+
- Probe for priorities, constraints, scope
|
|
75
68
|
|
|
76
|
-
|
|
77
|
-
If "Continue anyway": Continue to Phase 2
|
|
69
|
+
## Phase 3: Determine Milestone Version
|
|
78
70
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
cat .planning/STATE.md
|
|
83
|
-
```
|
|
71
|
+
- Parse last version from MILESTONES.md
|
|
72
|
+
- Suggest next version (v1.0 → v1.1, or v2.0 for major)
|
|
73
|
+
- Confirm with user
|
|
84
74
|
|
|
85
|
-
## Phase
|
|
75
|
+
## Phase 4: Update PROJECT.md
|
|
86
76
|
|
|
87
|
-
|
|
77
|
+
Add/update these sections:
|
|
88
78
|
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
GSD ► NEW MILESTONE
|
|
92
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
93
|
-
```
|
|
79
|
+
```markdown
|
|
80
|
+
## Current Milestone: v[X.Y] [Name]
|
|
94
81
|
|
|
95
|
-
**
|
|
82
|
+
**Goal:** [One sentence describing milestone focus]
|
|
96
83
|
|
|
84
|
+
**Target features:**
|
|
85
|
+
- [Feature 1]
|
|
86
|
+
- [Feature 2]
|
|
87
|
+
- [Feature 3]
|
|
97
88
|
```
|
|
98
|
-
Last milestone: v[X.Y] [Name] (shipped [DATE])
|
|
99
|
-
|
|
100
|
-
Key accomplishments:
|
|
101
|
-
- [From MILESTONES.md]
|
|
102
|
-
- [From MILESTONES.md]
|
|
103
|
-
- [From MILESTONES.md]
|
|
104
89
|
|
|
105
|
-
|
|
106
|
-
- [From PROJECT.md Validated section]
|
|
90
|
+
Update Active requirements section with new goals.
|
|
107
91
|
|
|
108
|
-
|
|
109
|
-
- [From STATE.md if any]
|
|
110
|
-
```
|
|
92
|
+
Update "Last updated" footer.
|
|
111
93
|
|
|
112
|
-
## Phase
|
|
94
|
+
## Phase 5: Update STATE.md
|
|
113
95
|
|
|
114
|
-
|
|
96
|
+
```markdown
|
|
97
|
+
## Current Position
|
|
115
98
|
|
|
99
|
+
Phase: Not started (defining requirements)
|
|
100
|
+
Plan: —
|
|
101
|
+
Status: Defining requirements
|
|
102
|
+
Last activity: [today] — Milestone v[X.Y] started
|
|
116
103
|
```
|
|
117
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
118
|
-
GSD ► QUESTIONING
|
|
119
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
**Open the conversation:**
|
|
123
|
-
|
|
124
|
-
Ask inline (freeform, NOT AskUserQuestion):
|
|
125
|
-
|
|
126
|
-
"What do you want to build next?"
|
|
127
104
|
|
|
128
|
-
|
|
105
|
+
Keep Accumulated Context section (decisions, blockers) from previous milestone.
|
|
129
106
|
|
|
130
|
-
|
|
107
|
+
## Phase 6: Cleanup and Commit
|
|
131
108
|
|
|
132
|
-
|
|
109
|
+
Delete MILESTONE-CONTEXT.md if exists (consumed).
|
|
133
110
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
-
|
|
137
|
-
-
|
|
138
|
-
|
|
139
|
-
- What's already decided
|
|
140
|
-
|
|
141
|
-
Consult `questioning.md` for techniques:
|
|
142
|
-
- Challenge vagueness
|
|
143
|
-
- Make abstract concrete
|
|
144
|
-
- Surface assumptions
|
|
145
|
-
- Find edges
|
|
146
|
-
- Reveal motivation
|
|
147
|
-
|
|
148
|
-
**Decision gate:**
|
|
149
|
-
|
|
150
|
-
When you could update PROJECT.md with clear new goals, use AskUserQuestion:
|
|
151
|
-
|
|
152
|
-
- header: "Ready?"
|
|
153
|
-
- question: "I think I understand what you're after. Ready to update PROJECT.md?"
|
|
154
|
-
- options:
|
|
155
|
-
- "Update PROJECT.md" — Let's move forward
|
|
156
|
-
- "Keep exploring" — I want to share more / ask me more
|
|
157
|
-
|
|
158
|
-
If "Keep exploring" — ask what they want to add, or identify gaps and probe naturally.
|
|
159
|
-
|
|
160
|
-
Loop until "Update PROJECT.md" selected.
|
|
161
|
-
|
|
162
|
-
## Phase 4: Determine Milestone Version
|
|
163
|
-
|
|
164
|
-
Parse last version from MILESTONES.md and suggest next:
|
|
165
|
-
|
|
166
|
-
Use AskUserQuestion:
|
|
167
|
-
- header: "Version"
|
|
168
|
-
- question: "What version is this milestone?"
|
|
169
|
-
- options:
|
|
170
|
-
- "v[X.Y+0.1] (patch)" — Minor update: [suggested name]
|
|
171
|
-
- "v[X+1].0 (major)" — Major release
|
|
172
|
-
- "Custom" — I'll specify
|
|
111
|
+
Check planning config:
|
|
112
|
+
```bash
|
|
113
|
+
COMMIT_PLANNING_DOCS=$(cat .planning/config.json 2>/dev/null | grep -o '"commit_docs"[[:space:]]*:[[:space:]]*[^,}]*' | grep -o 'true\|false' || echo "true")
|
|
114
|
+
git check-ignore -q .planning 2>/dev/null && COMMIT_PLANNING_DOCS=false
|
|
115
|
+
```
|
|
173
116
|
|
|
174
|
-
|
|
117
|
+
If `COMMIT_PLANNING_DOCS=false`: Skip git operations
|
|
175
118
|
|
|
176
|
-
|
|
119
|
+
If `COMMIT_PLANNING_DOCS=true` (default):
|
|
120
|
+
```bash
|
|
121
|
+
git add .planning/PROJECT.md .planning/STATE.md
|
|
122
|
+
git commit -m "docs: start milestone v[X.Y] [Name]"
|
|
123
|
+
```
|
|
177
124
|
|
|
178
|
-
|
|
179
|
-
## Current Milestone: v[X.Y] [Name]
|
|
125
|
+
## Phase 6.5: Resolve Model Profile
|
|
180
126
|
|
|
181
|
-
|
|
127
|
+
Read model profile for agent spawning:
|
|
182
128
|
|
|
183
|
-
|
|
184
|
-
- [
|
|
185
|
-
- [Feature 2]
|
|
186
|
-
- [Feature 3]
|
|
129
|
+
```bash
|
|
130
|
+
MODEL_PROFILE=$(cat .planning/config.json 2>/dev/null | grep -o '"model_profile"[[:space:]]*:[[:space:]]*"[^"]*"' | grep -o '"[^"]*"$' | tr -d '"' || echo "balanced")
|
|
187
131
|
```
|
|
188
132
|
|
|
189
|
-
|
|
133
|
+
Default to "balanced" if not set.
|
|
190
134
|
|
|
191
|
-
|
|
135
|
+
**Model lookup table:**
|
|
192
136
|
|
|
193
|
-
|
|
137
|
+
| Agent | quality | balanced | budget |
|
|
138
|
+
|-------|---------|----------|--------|
|
|
139
|
+
| gsd-project-researcher | opus | sonnet | haiku |
|
|
140
|
+
| gsd-research-synthesizer | sonnet | sonnet | haiku |
|
|
141
|
+
| gsd-roadmapper | opus | sonnet | sonnet |
|
|
194
142
|
|
|
195
|
-
|
|
196
|
-
git add .planning/PROJECT.md
|
|
197
|
-
git commit -m "$(cat <<'EOF'
|
|
198
|
-
docs: start milestone v[X.Y] [Name]
|
|
143
|
+
Store resolved models for use in Task calls below.
|
|
199
144
|
|
|
200
|
-
|
|
201
|
-
EOF
|
|
202
|
-
)"
|
|
203
|
-
```
|
|
204
|
-
|
|
205
|
-
## Phase 6: Research Decision
|
|
145
|
+
## Phase 7: Research Decision
|
|
206
146
|
|
|
207
147
|
Use AskUserQuestion:
|
|
208
148
|
- header: "Research"
|
|
209
|
-
- question: "Research the domain ecosystem before defining requirements?"
|
|
149
|
+
- question: "Research the domain ecosystem for new features before defining requirements?"
|
|
210
150
|
- options:
|
|
211
|
-
- "Research first (Recommended)" — Discover patterns, expected features, architecture
|
|
212
|
-
- "Skip research" — I know
|
|
151
|
+
- "Research first (Recommended)" — Discover patterns, expected features, architecture for NEW capabilities
|
|
152
|
+
- "Skip research" — I know what I need, go straight to requirements
|
|
213
153
|
|
|
214
154
|
**If "Research first":**
|
|
215
155
|
|
|
@@ -219,7 +159,7 @@ Display stage banner:
|
|
|
219
159
|
GSD ► RESEARCHING
|
|
220
160
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
221
161
|
|
|
222
|
-
Researching [
|
|
162
|
+
Researching [new features] ecosystem...
|
|
223
163
|
```
|
|
224
164
|
|
|
225
165
|
Create research directory:
|
|
@@ -227,133 +167,159 @@ Create research directory:
|
|
|
227
167
|
mkdir -p .planning/research
|
|
228
168
|
```
|
|
229
169
|
|
|
230
|
-
**Milestone context is "subsequent"** — Research focuses on new features, not re-researching validated requirements.
|
|
231
|
-
|
|
232
170
|
Display spawning indicator:
|
|
233
171
|
```
|
|
234
172
|
◆ Spawning 4 researchers in parallel...
|
|
235
|
-
→ Stack research
|
|
173
|
+
→ Stack research (for new features)
|
|
236
174
|
→ Features research
|
|
237
|
-
→ Architecture research
|
|
175
|
+
→ Architecture research (integration)
|
|
238
176
|
→ Pitfalls research
|
|
239
177
|
```
|
|
240
178
|
|
|
241
|
-
Spawn 4 parallel gsd-project-researcher agents with context:
|
|
179
|
+
Spawn 4 parallel gsd-project-researcher agents with milestone-aware context:
|
|
242
180
|
|
|
243
181
|
```
|
|
244
182
|
Task(prompt="
|
|
245
183
|
<research_type>
|
|
246
|
-
Project Research — Stack dimension for [
|
|
184
|
+
Project Research — Stack dimension for [new features].
|
|
247
185
|
</research_type>
|
|
248
186
|
|
|
249
187
|
<milestone_context>
|
|
250
|
-
|
|
188
|
+
SUBSEQUENT MILESTONE — Adding [target features] to existing app.
|
|
189
|
+
|
|
190
|
+
Existing validated capabilities (DO NOT re-research):
|
|
191
|
+
[List from PROJECT.md Validated requirements]
|
|
251
192
|
|
|
252
|
-
|
|
193
|
+
Focus ONLY on what's needed for the NEW features.
|
|
253
194
|
</milestone_context>
|
|
254
195
|
|
|
255
196
|
<question>
|
|
256
|
-
What
|
|
197
|
+
What stack additions/changes are needed for [new features]?
|
|
257
198
|
</question>
|
|
258
199
|
|
|
259
200
|
<project_context>
|
|
260
|
-
[PROJECT.md summary -
|
|
201
|
+
[PROJECT.md summary - current state, new milestone goals]
|
|
261
202
|
</project_context>
|
|
262
203
|
|
|
263
204
|
<downstream_consumer>
|
|
264
205
|
Your STACK.md feeds into roadmap creation. Be prescriptive:
|
|
265
|
-
- Specific libraries with versions
|
|
266
|
-
-
|
|
267
|
-
- What NOT to
|
|
206
|
+
- Specific libraries with versions for NEW capabilities
|
|
207
|
+
- Integration points with existing stack
|
|
208
|
+
- What NOT to add and why
|
|
268
209
|
</downstream_consumer>
|
|
269
210
|
|
|
211
|
+
<quality_gate>
|
|
212
|
+
- [ ] Versions are current (verify with Context7/official docs, not training data)
|
|
213
|
+
- [ ] Rationale explains WHY, not just WHAT
|
|
214
|
+
- [ ] Integration with existing stack considered
|
|
215
|
+
</quality_gate>
|
|
216
|
+
|
|
270
217
|
<output>
|
|
271
218
|
Write to: .planning/research/STACK.md
|
|
272
219
|
Use template: ~/.claude/get-shit-done/templates/research-project/STACK.md
|
|
273
220
|
</output>
|
|
274
|
-
", subagent_type="gsd-project-researcher", description="Stack research")
|
|
221
|
+
", subagent_type="gsd-project-researcher", model="{researcher_model}", description="Stack research")
|
|
275
222
|
|
|
276
223
|
Task(prompt="
|
|
277
224
|
<research_type>
|
|
278
|
-
Project Research — Features dimension for [
|
|
225
|
+
Project Research — Features dimension for [new features].
|
|
279
226
|
</research_type>
|
|
280
227
|
|
|
281
228
|
<milestone_context>
|
|
282
|
-
|
|
229
|
+
SUBSEQUENT MILESTONE — Adding [target features] to existing app.
|
|
283
230
|
|
|
284
|
-
|
|
231
|
+
Existing features (already built):
|
|
232
|
+
[List from PROJECT.md Validated requirements]
|
|
233
|
+
|
|
234
|
+
Focus on how [new features] typically work, expected behavior.
|
|
285
235
|
</milestone_context>
|
|
286
236
|
|
|
287
237
|
<question>
|
|
288
|
-
|
|
238
|
+
How do [target features] typically work? What's expected behavior?
|
|
289
239
|
</question>
|
|
290
240
|
|
|
291
241
|
<project_context>
|
|
292
|
-
[PROJECT.md summary]
|
|
242
|
+
[PROJECT.md summary - new milestone goals]
|
|
293
243
|
</project_context>
|
|
294
244
|
|
|
295
245
|
<downstream_consumer>
|
|
296
246
|
Your FEATURES.md feeds into requirements definition. Categorize clearly:
|
|
297
|
-
- Table stakes (must have)
|
|
247
|
+
- Table stakes (must have for these features)
|
|
298
248
|
- Differentiators (competitive advantage)
|
|
299
249
|
- Anti-features (things to deliberately NOT build)
|
|
300
250
|
</downstream_consumer>
|
|
301
251
|
|
|
252
|
+
<quality_gate>
|
|
253
|
+
- [ ] Categories are clear (table stakes vs differentiators vs anti-features)
|
|
254
|
+
- [ ] Complexity noted for each feature
|
|
255
|
+
- [ ] Dependencies on existing features identified
|
|
256
|
+
</quality_gate>
|
|
257
|
+
|
|
302
258
|
<output>
|
|
303
259
|
Write to: .planning/research/FEATURES.md
|
|
304
260
|
Use template: ~/.claude/get-shit-done/templates/research-project/FEATURES.md
|
|
305
261
|
</output>
|
|
306
|
-
", subagent_type="gsd-project-researcher", description="Features research")
|
|
262
|
+
", subagent_type="gsd-project-researcher", model="{researcher_model}", description="Features research")
|
|
307
263
|
|
|
308
264
|
Task(prompt="
|
|
309
265
|
<research_type>
|
|
310
|
-
Project Research — Architecture dimension for [
|
|
266
|
+
Project Research — Architecture dimension for [new features].
|
|
311
267
|
</research_type>
|
|
312
268
|
|
|
313
269
|
<milestone_context>
|
|
314
|
-
|
|
270
|
+
SUBSEQUENT MILESTONE — Adding [target features] to existing app.
|
|
315
271
|
|
|
316
|
-
|
|
272
|
+
Existing architecture:
|
|
273
|
+
[Summary from PROJECT.md or codebase map]
|
|
274
|
+
|
|
275
|
+
Focus on how [new features] integrate with existing architecture.
|
|
317
276
|
</milestone_context>
|
|
318
277
|
|
|
319
278
|
<question>
|
|
320
|
-
How
|
|
279
|
+
How do [target features] integrate with existing [domain] architecture?
|
|
321
280
|
</question>
|
|
322
281
|
|
|
323
282
|
<project_context>
|
|
324
|
-
[PROJECT.md summary]
|
|
283
|
+
[PROJECT.md summary - current architecture, new features]
|
|
325
284
|
</project_context>
|
|
326
285
|
|
|
327
286
|
<downstream_consumer>
|
|
328
287
|
Your ARCHITECTURE.md informs phase structure in roadmap. Include:
|
|
329
|
-
-
|
|
330
|
-
-
|
|
331
|
-
-
|
|
288
|
+
- Integration points with existing components
|
|
289
|
+
- New components needed
|
|
290
|
+
- Data flow changes
|
|
291
|
+
- Suggested build order
|
|
332
292
|
</downstream_consumer>
|
|
333
293
|
|
|
294
|
+
<quality_gate>
|
|
295
|
+
- [ ] Integration points clearly identified
|
|
296
|
+
- [ ] New vs modified components explicit
|
|
297
|
+
- [ ] Build order considers existing dependencies
|
|
298
|
+
</quality_gate>
|
|
299
|
+
|
|
334
300
|
<output>
|
|
335
301
|
Write to: .planning/research/ARCHITECTURE.md
|
|
336
302
|
Use template: ~/.claude/get-shit-done/templates/research-project/ARCHITECTURE.md
|
|
337
303
|
</output>
|
|
338
|
-
", subagent_type="gsd-project-researcher", description="Architecture research")
|
|
304
|
+
", subagent_type="gsd-project-researcher", model="{researcher_model}", description="Architecture research")
|
|
339
305
|
|
|
340
306
|
Task(prompt="
|
|
341
307
|
<research_type>
|
|
342
|
-
Project Research — Pitfalls dimension for [
|
|
308
|
+
Project Research — Pitfalls dimension for [new features].
|
|
343
309
|
</research_type>
|
|
344
310
|
|
|
345
311
|
<milestone_context>
|
|
346
|
-
|
|
312
|
+
SUBSEQUENT MILESTONE — Adding [target features] to existing app.
|
|
347
313
|
|
|
348
|
-
|
|
314
|
+
Focus on common mistakes when ADDING these features to an existing system.
|
|
349
315
|
</milestone_context>
|
|
350
316
|
|
|
351
317
|
<question>
|
|
352
|
-
What
|
|
318
|
+
What are common mistakes when adding [target features] to [domain]?
|
|
353
319
|
</question>
|
|
354
320
|
|
|
355
321
|
<project_context>
|
|
356
|
-
[PROJECT.md summary]
|
|
322
|
+
[PROJECT.md summary - current state, new features]
|
|
357
323
|
</project_context>
|
|
358
324
|
|
|
359
325
|
<downstream_consumer>
|
|
@@ -363,14 +329,20 @@ Your PITFALLS.md prevents mistakes in roadmap/planning. For each pitfall:
|
|
|
363
329
|
- Which phase should address it
|
|
364
330
|
</downstream_consumer>
|
|
365
331
|
|
|
332
|
+
<quality_gate>
|
|
333
|
+
- [ ] Pitfalls are specific to adding these features (not generic)
|
|
334
|
+
- [ ] Integration pitfalls with existing system covered
|
|
335
|
+
- [ ] Prevention strategies are actionable
|
|
336
|
+
</quality_gate>
|
|
337
|
+
|
|
366
338
|
<output>
|
|
367
339
|
Write to: .planning/research/PITFALLS.md
|
|
368
340
|
Use template: ~/.claude/get-shit-done/templates/research-project/PITFALLS.md
|
|
369
341
|
</output>
|
|
370
|
-
", subagent_type="gsd-project-researcher", description="Pitfalls research")
|
|
342
|
+
", subagent_type="gsd-project-researcher", model="{researcher_model}", description="Pitfalls research")
|
|
371
343
|
```
|
|
372
344
|
|
|
373
|
-
After all 4 agents complete, spawn synthesizer:
|
|
345
|
+
After all 4 agents complete, spawn synthesizer to create SUMMARY.md:
|
|
374
346
|
|
|
375
347
|
```
|
|
376
348
|
Task(prompt="
|
|
@@ -391,10 +363,10 @@ Write to: .planning/research/SUMMARY.md
|
|
|
391
363
|
Use template: ~/.claude/get-shit-done/templates/research-project/SUMMARY.md
|
|
392
364
|
Commit after writing.
|
|
393
365
|
</output>
|
|
394
|
-
", subagent_type="gsd-research-synthesizer", description="Synthesize research")
|
|
366
|
+
", subagent_type="gsd-research-synthesizer", model="{synthesizer_model}", description="Synthesize research")
|
|
395
367
|
```
|
|
396
368
|
|
|
397
|
-
Display research complete:
|
|
369
|
+
Display research complete banner and key findings:
|
|
398
370
|
```
|
|
399
371
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
400
372
|
GSD ► RESEARCH COMPLETE ✓
|
|
@@ -402,16 +374,16 @@ Display research complete:
|
|
|
402
374
|
|
|
403
375
|
## Key Findings
|
|
404
376
|
|
|
405
|
-
**Stack:** [from SUMMARY.md]
|
|
406
|
-
**
|
|
377
|
+
**Stack additions:** [from SUMMARY.md]
|
|
378
|
+
**New feature table stakes:** [from SUMMARY.md]
|
|
407
379
|
**Watch Out For:** [from SUMMARY.md]
|
|
408
380
|
|
|
409
381
|
Files: `.planning/research/`
|
|
410
382
|
```
|
|
411
383
|
|
|
412
|
-
**If "Skip research":** Continue to Phase
|
|
384
|
+
**If "Skip research":** Continue to Phase 8.
|
|
413
385
|
|
|
414
|
-
## Phase
|
|
386
|
+
## Phase 8: Define Requirements
|
|
415
387
|
|
|
416
388
|
Display stage banner:
|
|
417
389
|
```
|
|
@@ -424,24 +396,24 @@ Display stage banner:
|
|
|
424
396
|
|
|
425
397
|
Read PROJECT.md and extract:
|
|
426
398
|
- Core value (the ONE thing that must work)
|
|
427
|
-
-
|
|
428
|
-
- Validated requirements (what already
|
|
429
|
-
- Stated constraints
|
|
399
|
+
- Current milestone goals
|
|
400
|
+
- Validated requirements (what already exists)
|
|
430
401
|
|
|
431
402
|
**If research exists:** Read research/FEATURES.md and extract feature categories.
|
|
432
403
|
|
|
433
404
|
**Present features by category:**
|
|
434
405
|
|
|
435
406
|
```
|
|
436
|
-
Here are the features for [
|
|
407
|
+
Here are the features for [new capabilities]:
|
|
437
408
|
|
|
438
409
|
## [Category 1]
|
|
439
410
|
**Table stakes:**
|
|
440
|
-
-
|
|
441
|
-
-
|
|
411
|
+
- Feature A
|
|
412
|
+
- Feature B
|
|
442
413
|
|
|
443
414
|
**Differentiators:**
|
|
444
|
-
-
|
|
415
|
+
- Feature C
|
|
416
|
+
- Feature D
|
|
445
417
|
|
|
446
418
|
**Research notes:** [any relevant notes]
|
|
447
419
|
|
|
@@ -453,7 +425,7 @@ Here are the features for [milestone focus]:
|
|
|
453
425
|
|
|
454
426
|
**If no research:** Gather requirements through conversation instead.
|
|
455
427
|
|
|
456
|
-
Ask: "What are the main things users need to be able to do
|
|
428
|
+
Ask: "What are the main things users need to be able to do with [new features]?"
|
|
457
429
|
|
|
458
430
|
For each capability mentioned:
|
|
459
431
|
- Ask clarifying questions to make it specific
|
|
@@ -470,11 +442,12 @@ For each category, use AskUserQuestion:
|
|
|
470
442
|
- options:
|
|
471
443
|
- "[Feature 1]" — [brief description]
|
|
472
444
|
- "[Feature 2]" — [brief description]
|
|
473
|
-
- "
|
|
445
|
+
- "[Feature 3]" — [brief description]
|
|
446
|
+
- "None for this milestone" — Defer entire category
|
|
474
447
|
|
|
475
448
|
Track responses:
|
|
476
|
-
- Selected features →
|
|
477
|
-
- Unselected table stakes →
|
|
449
|
+
- Selected features → this milestone's requirements
|
|
450
|
+
- Unselected table stakes → future milestone
|
|
478
451
|
- Unselected differentiators → out of scope
|
|
479
452
|
|
|
480
453
|
**Identify gaps:**
|
|
@@ -486,38 +459,39 @@ Use AskUserQuestion:
|
|
|
486
459
|
- "No, research covered it" — Proceed
|
|
487
460
|
- "Yes, let me add some" — Capture additions
|
|
488
461
|
|
|
489
|
-
**Validate core value:**
|
|
490
|
-
|
|
491
|
-
Cross-check requirements against Core Value from PROJECT.md. If gaps detected, surface them.
|
|
492
|
-
|
|
493
462
|
**Generate REQUIREMENTS.md:**
|
|
494
463
|
|
|
495
464
|
Create `.planning/REQUIREMENTS.md` with:
|
|
496
|
-
- v1 Requirements grouped by category (checkboxes, REQ-IDs)
|
|
497
|
-
-
|
|
465
|
+
- v1 Requirements for THIS milestone grouped by category (checkboxes, REQ-IDs)
|
|
466
|
+
- Future Requirements (deferred to later milestones)
|
|
498
467
|
- Out of Scope (explicit exclusions with reasoning)
|
|
499
468
|
- Traceability section (empty, filled by roadmap)
|
|
500
469
|
|
|
501
|
-
**REQ-ID format:** `[CATEGORY]-[NUMBER]` (AUTH-01,
|
|
470
|
+
**REQ-ID format:** `[CATEGORY]-[NUMBER]` (AUTH-01, NOTIF-02)
|
|
471
|
+
|
|
472
|
+
Continue numbering from existing requirements if applicable.
|
|
502
473
|
|
|
503
474
|
**Requirement quality criteria:**
|
|
504
475
|
|
|
505
476
|
Good requirements are:
|
|
506
477
|
- **Specific and testable:** "User can reset password via email link" (not "Handle password reset")
|
|
507
478
|
- **User-centric:** "User can X" (not "System does Y")
|
|
508
|
-
- **Atomic:** One capability per requirement
|
|
479
|
+
- **Atomic:** One capability per requirement (not "User can login and manage profile")
|
|
509
480
|
- **Independent:** Minimal dependencies on other requirements
|
|
510
481
|
|
|
511
|
-
**Present full requirements list
|
|
482
|
+
**Present full requirements list:**
|
|
512
483
|
|
|
513
484
|
Show every requirement (not counts) for user confirmation:
|
|
514
485
|
|
|
515
486
|
```
|
|
516
|
-
##
|
|
487
|
+
## Milestone v[X.Y] Requirements
|
|
488
|
+
|
|
489
|
+
### [Category 1]
|
|
490
|
+
- [ ] **CAT1-01**: User can do X
|
|
491
|
+
- [ ] **CAT1-02**: User can do Y
|
|
517
492
|
|
|
518
|
-
### [Category]
|
|
519
|
-
- [ ] **
|
|
520
|
-
- [ ] **[CAT]-02**: [Requirement description]
|
|
493
|
+
### [Category 2]
|
|
494
|
+
- [ ] **CAT2-01**: User can do Z
|
|
521
495
|
|
|
522
496
|
[... full list ...]
|
|
523
497
|
|
|
@@ -530,18 +504,20 @@ If "adjust": Return to scoping.
|
|
|
530
504
|
|
|
531
505
|
**Commit requirements:**
|
|
532
506
|
|
|
507
|
+
Check planning config (same pattern as Phase 6).
|
|
508
|
+
|
|
509
|
+
If committing:
|
|
533
510
|
```bash
|
|
534
511
|
git add .planning/REQUIREMENTS.md
|
|
535
512
|
git commit -m "$(cat <<'EOF'
|
|
536
|
-
docs: define v[X.Y] requirements
|
|
513
|
+
docs: define milestone v[X.Y] requirements
|
|
537
514
|
|
|
538
515
|
[X] requirements across [N] categories
|
|
539
|
-
[Y] requirements deferred to v2
|
|
540
516
|
EOF
|
|
541
517
|
)"
|
|
542
518
|
```
|
|
543
519
|
|
|
544
|
-
## Phase
|
|
520
|
+
## Phase 9: Create Roadmap
|
|
545
521
|
|
|
546
522
|
Display stage banner:
|
|
547
523
|
```
|
|
@@ -552,15 +528,10 @@ Display stage banner:
|
|
|
552
528
|
◆ Spawning roadmapper...
|
|
553
529
|
```
|
|
554
530
|
|
|
555
|
-
**
|
|
531
|
+
**Determine starting phase number:**
|
|
556
532
|
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
ls -d .planning/phases/[0-9]*-* 2>/dev/null | sort -V | tail -1 | grep -oE '[0-9]+' | head -1
|
|
560
|
-
```
|
|
561
|
-
|
|
562
|
-
If phases exist: New phases start at last + 1
|
|
563
|
-
If no phases: Start at Phase 1
|
|
533
|
+
Read MILESTONES.md to find the last phase number from previous milestone.
|
|
534
|
+
New phases continue from there (e.g., if v1.0 ended at phase 5, v1.1 starts at phase 6).
|
|
564
535
|
|
|
565
536
|
Spawn gsd-roadmapper agent with context:
|
|
566
537
|
|
|
@@ -580,22 +551,24 @@ Task(prompt="
|
|
|
580
551
|
**Config:**
|
|
581
552
|
@.planning/config.json
|
|
582
553
|
|
|
583
|
-
**
|
|
554
|
+
**Previous milestone (for phase numbering):**
|
|
555
|
+
@.planning/MILESTONES.md
|
|
584
556
|
|
|
585
557
|
</planning_context>
|
|
586
558
|
|
|
587
559
|
<instructions>
|
|
588
|
-
Create roadmap:
|
|
589
|
-
1.
|
|
590
|
-
2.
|
|
591
|
-
3.
|
|
592
|
-
4.
|
|
593
|
-
5.
|
|
594
|
-
6.
|
|
595
|
-
|
|
596
|
-
|
|
560
|
+
Create roadmap for milestone v[X.Y]:
|
|
561
|
+
1. Start phase numbering from [N] (continues from previous milestone)
|
|
562
|
+
2. Derive phases from THIS MILESTONE's requirements (don't include validated/existing)
|
|
563
|
+
3. Map every requirement to exactly one phase
|
|
564
|
+
4. Derive 2-5 success criteria per phase (observable user behaviors)
|
|
565
|
+
5. Validate 100% coverage of new requirements
|
|
566
|
+
6. Write files immediately (ROADMAP.md, STATE.md, update REQUIREMENTS.md traceability)
|
|
567
|
+
7. Return ROADMAP CREATED with summary
|
|
568
|
+
|
|
569
|
+
Write files first, then return. This ensures artifacts persist even if context is lost.
|
|
597
570
|
</instructions>
|
|
598
|
-
", subagent_type="gsd-roadmapper", description="Create roadmap")
|
|
571
|
+
", subagent_type="gsd-roadmapper", model="{roadmapper_model}", description="Create roadmap")
|
|
599
572
|
```
|
|
600
573
|
|
|
601
574
|
**Handle roadmapper return:**
|
|
@@ -607,9 +580,36 @@ Write files first, then return.
|
|
|
607
580
|
|
|
608
581
|
**If `## ROADMAP CREATED`:**
|
|
609
582
|
|
|
610
|
-
Read the created ROADMAP.md and present it inline
|
|
583
|
+
Read the created ROADMAP.md and present it nicely inline:
|
|
611
584
|
|
|
612
|
-
|
|
585
|
+
```
|
|
586
|
+
---
|
|
587
|
+
|
|
588
|
+
## Proposed Roadmap
|
|
589
|
+
|
|
590
|
+
**[N] phases** | **[X] requirements mapped** | All milestone requirements covered ✓
|
|
591
|
+
|
|
592
|
+
| # | Phase | Goal | Requirements | Success Criteria |
|
|
593
|
+
|---|-------|------|--------------|------------------|
|
|
594
|
+
| [N] | [Name] | [Goal] | [REQ-IDs] | [count] |
|
|
595
|
+
| [N+1] | [Name] | [Goal] | [REQ-IDs] | [count] |
|
|
596
|
+
...
|
|
597
|
+
|
|
598
|
+
### Phase Details
|
|
599
|
+
|
|
600
|
+
**Phase [N]: [Name]**
|
|
601
|
+
Goal: [goal]
|
|
602
|
+
Requirements: [REQ-IDs]
|
|
603
|
+
Success criteria:
|
|
604
|
+
1. [criterion]
|
|
605
|
+
2. [criterion]
|
|
606
|
+
|
|
607
|
+
[... continue for all phases ...]
|
|
608
|
+
|
|
609
|
+
---
|
|
610
|
+
```
|
|
611
|
+
|
|
612
|
+
**CRITICAL: Ask for approval before committing:**
|
|
613
613
|
|
|
614
614
|
Use AskUserQuestion:
|
|
615
615
|
- header: "Roadmap"
|
|
@@ -623,27 +623,46 @@ Use AskUserQuestion:
|
|
|
623
623
|
|
|
624
624
|
**If "Adjust phases":**
|
|
625
625
|
- Get user's adjustment notes
|
|
626
|
-
- Re-spawn roadmapper with revision context
|
|
627
|
-
|
|
626
|
+
- Re-spawn roadmapper with revision context:
|
|
627
|
+
```
|
|
628
|
+
Task(prompt="
|
|
629
|
+
<revision>
|
|
630
|
+
User feedback on roadmap:
|
|
631
|
+
[user's notes]
|
|
632
|
+
|
|
633
|
+
Current ROADMAP.md: @.planning/ROADMAP.md
|
|
634
|
+
|
|
635
|
+
Update the roadmap based on feedback. Edit files in place.
|
|
636
|
+
Return ROADMAP REVISED with changes made.
|
|
637
|
+
</revision>
|
|
638
|
+
", subagent_type="gsd-roadmapper", model="{roadmapper_model}", description="Revise roadmap")
|
|
639
|
+
```
|
|
640
|
+
- Present revised roadmap
|
|
641
|
+
- Loop until user approves
|
|
642
|
+
|
|
643
|
+
**If "Review full file":** Display raw `cat .planning/ROADMAP.md`, then re-ask.
|
|
644
|
+
|
|
645
|
+
**Commit roadmap (after approval):**
|
|
628
646
|
|
|
629
|
-
|
|
647
|
+
Check planning config (same pattern as Phase 6).
|
|
630
648
|
|
|
649
|
+
If committing:
|
|
631
650
|
```bash
|
|
632
651
|
git add .planning/ROADMAP.md .planning/STATE.md .planning/REQUIREMENTS.md
|
|
633
652
|
git commit -m "$(cat <<'EOF'
|
|
634
|
-
docs: create v[X.Y] roadmap ([N] phases)
|
|
653
|
+
docs: create milestone v[X.Y] roadmap ([N] phases)
|
|
635
654
|
|
|
636
655
|
Phases:
|
|
637
|
-
|
|
638
|
-
|
|
656
|
+
[N]. [phase-name]: [requirements covered]
|
|
657
|
+
[N+1]. [phase-name]: [requirements covered]
|
|
639
658
|
...
|
|
640
659
|
|
|
641
|
-
All
|
|
660
|
+
All milestone requirements mapped to phases.
|
|
642
661
|
EOF
|
|
643
662
|
)"
|
|
644
663
|
```
|
|
645
664
|
|
|
646
|
-
## Phase
|
|
665
|
+
## Phase 10: Done
|
|
647
666
|
|
|
648
667
|
Present completion with next steps:
|
|
649
668
|
|
|
@@ -652,10 +671,10 @@ Present completion with next steps:
|
|
|
652
671
|
GSD ► MILESTONE INITIALIZED ✓
|
|
653
672
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
654
673
|
|
|
655
|
-
**v[X.Y] [Name]**
|
|
674
|
+
**Milestone v[X.Y]: [Name]**
|
|
656
675
|
|
|
657
676
|
| Artifact | Location |
|
|
658
|
-
|
|
677
|
+
|----------------|-----------------------------|
|
|
659
678
|
| Project | `.planning/PROJECT.md` |
|
|
660
679
|
| Research | `.planning/research/` |
|
|
661
680
|
| Requirements | `.planning/REQUIREMENTS.md` |
|
|
@@ -683,35 +702,20 @@ Present completion with next steps:
|
|
|
683
702
|
|
|
684
703
|
</process>
|
|
685
704
|
|
|
686
|
-
<output>
|
|
687
|
-
|
|
688
|
-
- `.planning/PROJECT.md` (updated)
|
|
689
|
-
- `.planning/research/` (if research selected)
|
|
690
|
-
- `STACK.md`
|
|
691
|
-
- `FEATURES.md`
|
|
692
|
-
- `ARCHITECTURE.md`
|
|
693
|
-
- `PITFALLS.md`
|
|
694
|
-
- `SUMMARY.md`
|
|
695
|
-
- `.planning/REQUIREMENTS.md`
|
|
696
|
-
- `.planning/ROADMAP.md`
|
|
697
|
-
- `.planning/STATE.md`
|
|
698
|
-
|
|
699
|
-
</output>
|
|
700
|
-
|
|
701
705
|
<success_criteria>
|
|
702
|
-
|
|
703
|
-
- [ ]
|
|
704
|
-
- [ ]
|
|
705
|
-
- [ ]
|
|
706
|
-
- [ ]
|
|
707
|
-
- [ ]
|
|
708
|
-
- [ ]
|
|
709
|
-
- [ ]
|
|
710
|
-
- [ ]
|
|
711
|
-
- [ ] gsd-roadmapper spawned with context
|
|
712
|
-
- [ ] Roadmap files written immediately
|
|
706
|
+
- [ ] PROJECT.md updated with Current Milestone section
|
|
707
|
+
- [ ] STATE.md reset for new milestone
|
|
708
|
+
- [ ] MILESTONE-CONTEXT.md consumed and deleted (if existed)
|
|
709
|
+
- [ ] Research completed (if selected) — 4 parallel agents spawned, milestone-aware
|
|
710
|
+
- [ ] Requirements gathered (from research or conversation)
|
|
711
|
+
- [ ] User scoped each category
|
|
712
|
+
- [ ] REQUIREMENTS.md created with REQ-IDs
|
|
713
|
+
- [ ] gsd-roadmapper spawned with phase numbering context
|
|
714
|
+
- [ ] Roadmap files written immediately (not draft)
|
|
713
715
|
- [ ] User feedback incorporated (if any)
|
|
714
|
-
- [ ] ROADMAP.md
|
|
715
|
-
- [ ]
|
|
716
|
+
- [ ] ROADMAP.md created with phases continuing from previous milestone
|
|
717
|
+
- [ ] All commits made (if planning docs committed)
|
|
718
|
+
- [ ] User knows next step is `/gsd:discuss-phase [N]`
|
|
716
719
|
|
|
720
|
+
**Atomic commits:** Each phase commits its artifacts immediately. If context is lost, artifacts persist.
|
|
717
721
|
</success_criteria>
|