gsd-opencode 1.3.31
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/bin/install.js +222 -0
- package/command/gsd/add-phase.md +207 -0
- package/command/gsd/complete-milestone.md +105 -0
- package/command/gsd/consider-issues.md +201 -0
- package/command/gsd/create-roadmap.md +115 -0
- package/command/gsd/discuss-milestone.md +47 -0
- package/command/gsd/discuss-phase.md +60 -0
- package/command/gsd/execute-plan.md +128 -0
- package/command/gsd/help.md +315 -0
- package/command/gsd/insert-phase.md +227 -0
- package/command/gsd/list-phase-assumptions.md +50 -0
- package/command/gsd/map-codebase.md +84 -0
- package/command/gsd/new-milestone.md +59 -0
- package/command/gsd/new-project.md +316 -0
- package/command/gsd/pause-work.md +122 -0
- package/command/gsd/plan-fix.md +205 -0
- package/command/gsd/plan-phase.md +67 -0
- package/command/gsd/progress.md +316 -0
- package/command/gsd/remove-phase.md +338 -0
- package/command/gsd/research-phase.md +91 -0
- package/command/gsd/resume-work.md +40 -0
- package/command/gsd/verify-work.md +71 -0
- package/get-shit-done/references/checkpoints.md +287 -0
- package/get-shit-done/references/continuation-format.md +255 -0
- package/get-shit-done/references/git-integration.md +254 -0
- package/get-shit-done/references/plan-format.md +428 -0
- package/get-shit-done/references/principles.md +157 -0
- package/get-shit-done/references/questioning.md +162 -0
- package/get-shit-done/references/research-pitfalls.md +215 -0
- package/get-shit-done/references/scope-estimation.md +172 -0
- package/get-shit-done/references/tdd.md +263 -0
- package/get-shit-done/templates/codebase/architecture.md +255 -0
- package/get-shit-done/templates/codebase/concerns.md +310 -0
- package/get-shit-done/templates/codebase/conventions.md +307 -0
- package/get-shit-done/templates/codebase/integrations.md +280 -0
- package/get-shit-done/templates/codebase/stack.md +186 -0
- package/get-shit-done/templates/codebase/structure.md +285 -0
- package/get-shit-done/templates/codebase/testing.md +480 -0
- package/get-shit-done/templates/config.json +18 -0
- package/get-shit-done/templates/context.md +161 -0
- package/get-shit-done/templates/continue-here.md +78 -0
- package/get-shit-done/templates/discovery.md +146 -0
- package/get-shit-done/templates/issues.md +32 -0
- package/get-shit-done/templates/milestone-archive.md +123 -0
- package/get-shit-done/templates/milestone-context.md +93 -0
- package/get-shit-done/templates/milestone.md +115 -0
- package/get-shit-done/templates/phase-prompt.md +303 -0
- package/get-shit-done/templates/project.md +184 -0
- package/get-shit-done/templates/research.md +529 -0
- package/get-shit-done/templates/roadmap.md +196 -0
- package/get-shit-done/templates/state.md +210 -0
- package/get-shit-done/templates/summary.md +273 -0
- package/get-shit-done/templates/uat-issues.md +143 -0
- package/get-shit-done/workflows/complete-milestone.md +643 -0
- package/get-shit-done/workflows/create-milestone.md +416 -0
- package/get-shit-done/workflows/create-roadmap.md +481 -0
- package/get-shit-done/workflows/discovery-phase.md +293 -0
- package/get-shit-done/workflows/discuss-milestone.md +236 -0
- package/get-shit-done/workflows/discuss-phase.md +247 -0
- package/get-shit-done/workflows/execute-phase.md +1625 -0
- package/get-shit-done/workflows/list-phase-assumptions.md +178 -0
- package/get-shit-done/workflows/map-codebase.md +434 -0
- package/get-shit-done/workflows/plan-phase.md +488 -0
- package/get-shit-done/workflows/research-phase.md +436 -0
- package/get-shit-done/workflows/resume-project.md +287 -0
- package/get-shit-done/workflows/transition.md +580 -0
- package/get-shit-done/workflows/verify-work.md +202 -0
- package/package.json +38 -0
|
@@ -0,0 +1,643 @@
|
|
|
1
|
+
<purpose>
|
|
2
|
+
|
|
3
|
+
Mark a shipped version (v1.0, v1.1, v2.0) as complete. This creates a historical record in MILESTONES.md, performs full PROJECT.md evolution review, reorganizes ROADMAP.md with milestone groupings, and tags the release in git.
|
|
4
|
+
|
|
5
|
+
This is the ritual that separates "development" from "shipped."
|
|
6
|
+
|
|
7
|
+
</purpose>
|
|
8
|
+
|
|
9
|
+
<required_reading>
|
|
10
|
+
|
|
11
|
+
**Read these files NOW:**
|
|
12
|
+
|
|
13
|
+
1. templates/milestone.md
|
|
14
|
+
2. templates/milestone-archive.md
|
|
15
|
+
3. `.planning/ROADMAP.md`
|
|
16
|
+
4. `.planning/PROJECT.md`
|
|
17
|
+
|
|
18
|
+
</required_reading>
|
|
19
|
+
|
|
20
|
+
<archival_behavior>
|
|
21
|
+
|
|
22
|
+
When a milestone completes, this workflow:
|
|
23
|
+
|
|
24
|
+
1. Extracts full milestone details to `.planning/milestones/v[X.Y]-ROADMAP.md`
|
|
25
|
+
2. Updates ROADMAP.md to replace milestone details with one-line summary
|
|
26
|
+
3. Links to archive file for historical reference
|
|
27
|
+
4. Performs full PROJECT.md evolution review
|
|
28
|
+
5. Offers to create next milestone inline
|
|
29
|
+
|
|
30
|
+
**Context Efficiency:**
|
|
31
|
+
|
|
32
|
+
- Completed milestones: One line each (~50 tokens)
|
|
33
|
+
- Full details: In archive files (loaded only when needed)
|
|
34
|
+
- Result: ROADMAP.md stays constant size (~1-2k lines) forever
|
|
35
|
+
|
|
36
|
+
**Archive Format:**
|
|
37
|
+
Uses `templates/milestone-archive.md` template with:
|
|
38
|
+
|
|
39
|
+
- Milestone header (status, phases, date)
|
|
40
|
+
- Full phase details from roadmap
|
|
41
|
+
- Milestone summary (decisions, issues, technical debt)
|
|
42
|
+
|
|
43
|
+
</archival_behavior>
|
|
44
|
+
|
|
45
|
+
<process>
|
|
46
|
+
|
|
47
|
+
<step name="verify_readiness">
|
|
48
|
+
|
|
49
|
+
Check if milestone is truly complete:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
cat .planning/ROADMAP.md
|
|
53
|
+
ls .planning/phases/*/SUMMARY.md 2>/dev/null | wc -l
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
**Questions to ask:**
|
|
57
|
+
|
|
58
|
+
- Which phases belong to this milestone?
|
|
59
|
+
- Are all those phases complete (all plans have summaries)?
|
|
60
|
+
- Has the work been tested/validated?
|
|
61
|
+
- Is this ready to ship/tag?
|
|
62
|
+
|
|
63
|
+
Present:
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
Milestone: [Name from user, e.g., "v1.0 MVP"]
|
|
67
|
+
|
|
68
|
+
Appears to include:
|
|
69
|
+
- Phase 1: Foundation (2/2 plans complete)
|
|
70
|
+
- Phase 2: Authentication (2/2 plans complete)
|
|
71
|
+
- Phase 3: Core Features (3/3 plans complete)
|
|
72
|
+
- Phase 4: Polish (1/1 plan complete)
|
|
73
|
+
|
|
74
|
+
Total: 4 phases, 8 plans, all complete
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
<config-check>
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
cat .planning/config.json 2>/dev/null
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
</config-check>
|
|
84
|
+
|
|
85
|
+
<if mode="yolo">
|
|
86
|
+
|
|
87
|
+
```
|
|
88
|
+
⚡ Auto-approved: Milestone scope verification
|
|
89
|
+
|
|
90
|
+
[Show breakdown summary without prompting]
|
|
91
|
+
|
|
92
|
+
Proceeding to stats gathering...
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
Proceed directly to gather_stats step.
|
|
96
|
+
|
|
97
|
+
</if>
|
|
98
|
+
|
|
99
|
+
<if mode="interactive" OR="custom with gates.confirm_milestone_scope true">
|
|
100
|
+
|
|
101
|
+
```
|
|
102
|
+
Ready to mark this milestone as shipped?
|
|
103
|
+
(yes / wait / adjust scope)
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Wait for confirmation.
|
|
107
|
+
|
|
108
|
+
If "adjust scope": Ask which phases should be included.
|
|
109
|
+
If "wait": Stop, user will return when ready.
|
|
110
|
+
|
|
111
|
+
</if>
|
|
112
|
+
|
|
113
|
+
</step>
|
|
114
|
+
|
|
115
|
+
<step name="gather_stats">
|
|
116
|
+
|
|
117
|
+
Calculate milestone statistics:
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
# Count phases and plans in milestone
|
|
121
|
+
# (user specified or detected from roadmap)
|
|
122
|
+
|
|
123
|
+
# Find git range
|
|
124
|
+
git log --oneline --grep="feat(" | head -20
|
|
125
|
+
|
|
126
|
+
# Count files modified in range
|
|
127
|
+
git diff --stat FIRST_COMMIT..LAST_COMMIT | tail -1
|
|
128
|
+
|
|
129
|
+
# Count LOC (adapt to language)
|
|
130
|
+
find . -name "*.swift" -o -name "*.ts" -o -name "*.py" | xargs wc -l 2>/dev/null
|
|
131
|
+
|
|
132
|
+
# Calculate timeline
|
|
133
|
+
git log --format="%ai" FIRST_COMMIT | tail -1 # Start date
|
|
134
|
+
git log --format="%ai" LAST_COMMIT | head -1 # End date
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
Present summary:
|
|
138
|
+
|
|
139
|
+
```
|
|
140
|
+
Milestone Stats:
|
|
141
|
+
- Phases: [X-Y]
|
|
142
|
+
- Plans: [Z] total
|
|
143
|
+
- Tasks: [N] total (estimated from phase summaries)
|
|
144
|
+
- Files modified: [M]
|
|
145
|
+
- Lines of code: [LOC] [language]
|
|
146
|
+
- Timeline: [Days] days ([Start] → [End])
|
|
147
|
+
- Git range: feat(XX-XX) → feat(YY-YY)
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
</step>
|
|
151
|
+
|
|
152
|
+
<step name="extract_accomplishments">
|
|
153
|
+
|
|
154
|
+
Read all phase SUMMARY.md files in milestone range:
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
cat .planning/phases/01-*/01-*-SUMMARY.md
|
|
158
|
+
cat .planning/phases/02-*/02-*-SUMMARY.md
|
|
159
|
+
# ... for each phase in milestone
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
From summaries, extract 4-6 key accomplishments.
|
|
163
|
+
|
|
164
|
+
Present:
|
|
165
|
+
|
|
166
|
+
```
|
|
167
|
+
Key accomplishments for this milestone:
|
|
168
|
+
1. [Achievement from phase 1]
|
|
169
|
+
2. [Achievement from phase 2]
|
|
170
|
+
3. [Achievement from phase 3]
|
|
171
|
+
4. [Achievement from phase 4]
|
|
172
|
+
5. [Achievement from phase 5]
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
</step>
|
|
176
|
+
|
|
177
|
+
<step name="create_milestone_entry">
|
|
178
|
+
|
|
179
|
+
Create or update `.planning/MILESTONES.md`.
|
|
180
|
+
|
|
181
|
+
If file doesn't exist:
|
|
182
|
+
|
|
183
|
+
```markdown
|
|
184
|
+
# Project Milestones: [Project Name from PROJECT.md]
|
|
185
|
+
|
|
186
|
+
[New entry]
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
If exists, prepend new entry (reverse chronological order).
|
|
190
|
+
|
|
191
|
+
Use template from `templates/milestone.md`:
|
|
192
|
+
|
|
193
|
+
```markdown
|
|
194
|
+
## v[Version] [Name] (Shipped: YYYY-MM-DD)
|
|
195
|
+
|
|
196
|
+
**Delivered:** [One sentence from user]
|
|
197
|
+
|
|
198
|
+
**Phases completed:** [X-Y] ([Z] plans total)
|
|
199
|
+
|
|
200
|
+
**Key accomplishments:**
|
|
201
|
+
|
|
202
|
+
- [List from previous step]
|
|
203
|
+
|
|
204
|
+
**Stats:**
|
|
205
|
+
|
|
206
|
+
- [Files] files created/modified
|
|
207
|
+
- [LOC] lines of [language]
|
|
208
|
+
- [Phases] phases, [Plans] plans, [Tasks] tasks
|
|
209
|
+
- [Days] days from [start milestone or start project] to ship
|
|
210
|
+
|
|
211
|
+
**Git range:** `feat(XX-XX)` → `feat(YY-YY)`
|
|
212
|
+
|
|
213
|
+
**What's next:** [Ask user: what's the next goal?]
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
</step>
|
|
219
|
+
|
|
220
|
+
<step name="evolve_project_full_review">
|
|
221
|
+
|
|
222
|
+
Perform full PROJECT.md evolution review at milestone completion.
|
|
223
|
+
|
|
224
|
+
**Read all phase summaries in this milestone:**
|
|
225
|
+
|
|
226
|
+
```bash
|
|
227
|
+
cat .planning/phases/*-*/*-SUMMARY.md
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
**Full review checklist:**
|
|
231
|
+
|
|
232
|
+
1. **"What This Is" accuracy:**
|
|
233
|
+
- Read current description
|
|
234
|
+
- Compare to what was actually built
|
|
235
|
+
- Update if the product has meaningfully changed
|
|
236
|
+
|
|
237
|
+
2. **Core Value check:**
|
|
238
|
+
- Is the stated core value still the right priority?
|
|
239
|
+
- Did shipping reveal a different core value?
|
|
240
|
+
- Update if the ONE thing has shifted
|
|
241
|
+
|
|
242
|
+
3. **Requirements audit:**
|
|
243
|
+
|
|
244
|
+
**Validated section:**
|
|
245
|
+
- All Active requirements shipped in this milestone → Move to Validated
|
|
246
|
+
- Format: `- ✓ [Requirement] — v[X.Y]`
|
|
247
|
+
|
|
248
|
+
**Active section:**
|
|
249
|
+
- Remove requirements that moved to Validated
|
|
250
|
+
- Add any new requirements for next milestone
|
|
251
|
+
- Keep requirements that weren't addressed yet
|
|
252
|
+
|
|
253
|
+
**Out of Scope audit:**
|
|
254
|
+
- Review each item — is the reasoning still valid?
|
|
255
|
+
- Remove items that are no longer relevant
|
|
256
|
+
- Add any requirements invalidated during this milestone
|
|
257
|
+
|
|
258
|
+
4. **Context update:**
|
|
259
|
+
- Current codebase state (LOC, tech stack)
|
|
260
|
+
- User feedback themes (if any)
|
|
261
|
+
- Known issues or technical debt to address
|
|
262
|
+
|
|
263
|
+
5. **Key Decisions audit:**
|
|
264
|
+
- Extract all decisions from milestone phase summaries
|
|
265
|
+
- Add to Key Decisions table with outcomes where known
|
|
266
|
+
- Mark ✓ Good, ⚠️ Revisit, or — Pending for each
|
|
267
|
+
|
|
268
|
+
6. **Constraints check:**
|
|
269
|
+
- Any constraints that changed during development?
|
|
270
|
+
- Update as needed
|
|
271
|
+
|
|
272
|
+
**Update PROJECT.md:**
|
|
273
|
+
|
|
274
|
+
Make all edits inline. Update "Last updated" footer:
|
|
275
|
+
|
|
276
|
+
```markdown
|
|
277
|
+
---
|
|
278
|
+
*Last updated: [date] after v[X.Y] milestone*
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
**Example full evolution (v1.0 → v1.1 prep):**
|
|
282
|
+
|
|
283
|
+
Before:
|
|
284
|
+
|
|
285
|
+
```markdown
|
|
286
|
+
## What This Is
|
|
287
|
+
|
|
288
|
+
A real-time collaborative whiteboard for remote teams.
|
|
289
|
+
|
|
290
|
+
## Core Value
|
|
291
|
+
|
|
292
|
+
Real-time sync that feels instant.
|
|
293
|
+
|
|
294
|
+
## Requirements
|
|
295
|
+
|
|
296
|
+
### Validated
|
|
297
|
+
|
|
298
|
+
(None yet — ship to validate)
|
|
299
|
+
|
|
300
|
+
### Active
|
|
301
|
+
|
|
302
|
+
- [ ] Canvas drawing tools
|
|
303
|
+
- [ ] Real-time sync < 500ms
|
|
304
|
+
- [ ] User authentication
|
|
305
|
+
- [ ] Export to PNG
|
|
306
|
+
|
|
307
|
+
### Out of Scope
|
|
308
|
+
|
|
309
|
+
- Mobile app — web-first approach
|
|
310
|
+
- Video chat — use external tools
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
After v1.0:
|
|
314
|
+
|
|
315
|
+
```markdown
|
|
316
|
+
## What This Is
|
|
317
|
+
|
|
318
|
+
A real-time collaborative whiteboard for remote teams with instant sync and drawing tools.
|
|
319
|
+
|
|
320
|
+
## Core Value
|
|
321
|
+
|
|
322
|
+
Real-time sync that feels instant.
|
|
323
|
+
|
|
324
|
+
## Requirements
|
|
325
|
+
|
|
326
|
+
### Validated
|
|
327
|
+
|
|
328
|
+
- ✓ Canvas drawing tools — v1.0
|
|
329
|
+
- ✓ Real-time sync < 500ms — v1.0 (achieved 200ms avg)
|
|
330
|
+
- ✓ User authentication — v1.0
|
|
331
|
+
|
|
332
|
+
### Active
|
|
333
|
+
|
|
334
|
+
- [ ] Export to PNG
|
|
335
|
+
- [ ] Undo/redo history
|
|
336
|
+
- [ ] Shape tools (rectangles, circles)
|
|
337
|
+
|
|
338
|
+
### Out of Scope
|
|
339
|
+
|
|
340
|
+
- Mobile app — web-first approach, PWA works well
|
|
341
|
+
- Video chat — use external tools
|
|
342
|
+
- Offline mode — real-time is core value
|
|
343
|
+
|
|
344
|
+
## Context
|
|
345
|
+
|
|
346
|
+
Shipped v1.0 with 2,400 LOC TypeScript.
|
|
347
|
+
Tech stack: Next.js, Supabase, Canvas API.
|
|
348
|
+
Initial user testing showed demand for shape tools.
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
**Step complete when:**
|
|
352
|
+
|
|
353
|
+
- [ ] "What This Is" reviewed and updated if needed
|
|
354
|
+
- [ ] Core Value verified as still correct
|
|
355
|
+
- [ ] All shipped requirements moved to Validated
|
|
356
|
+
- [ ] New requirements added to Active for next milestone
|
|
357
|
+
- [ ] Out of Scope reasoning audited
|
|
358
|
+
- [ ] Context updated with current state
|
|
359
|
+
- [ ] All milestone decisions added to Key Decisions
|
|
360
|
+
- [ ] "Last updated" footer reflects milestone completion
|
|
361
|
+
|
|
362
|
+
</step>
|
|
363
|
+
|
|
364
|
+
<step name="reorganize_roadmap">
|
|
365
|
+
|
|
366
|
+
Update `.planning/ROADMAP.md` to group completed milestone phases.
|
|
367
|
+
|
|
368
|
+
Add milestone headers and collapse completed work:
|
|
369
|
+
|
|
370
|
+
```markdown
|
|
371
|
+
# Roadmap: [Project Name]
|
|
372
|
+
|
|
373
|
+
## Milestones
|
|
374
|
+
|
|
375
|
+
- ✅ **v1.0 MVP** — Phases 1-4 (shipped YYYY-MM-DD)
|
|
376
|
+
- 🚧 **v1.1 Security** — Phases 5-6 (in progress)
|
|
377
|
+
- 📋 **v2.0 Redesign** — Phases 7-10 (planned)
|
|
378
|
+
|
|
379
|
+
## Phases
|
|
380
|
+
|
|
381
|
+
<details>
|
|
382
|
+
<summary>✅ v1.0 MVP (Phases 1-4) — SHIPPED YYYY-MM-DD</summary>
|
|
383
|
+
|
|
384
|
+
- [x] Phase 1: Foundation (2/2 plans) — completed YYYY-MM-DD
|
|
385
|
+
- [x] Phase 2: Authentication (2/2 plans) — completed YYYY-MM-DD
|
|
386
|
+
- [x] Phase 3: Core Features (3/3 plans) — completed YYYY-MM-DD
|
|
387
|
+
- [x] Phase 4: Polish (1/1 plan) — completed YYYY-MM-DD
|
|
388
|
+
|
|
389
|
+
</details>
|
|
390
|
+
|
|
391
|
+
### 🚧 v[Next] [Name] (In Progress / Planned)
|
|
392
|
+
|
|
393
|
+
- [ ] Phase 5: [Name] ([N] plans)
|
|
394
|
+
- [ ] Phase 6: [Name] ([N] plans)
|
|
395
|
+
|
|
396
|
+
## Progress
|
|
397
|
+
|
|
398
|
+
| Phase | Milestone | Plans Complete | Status | Completed |
|
|
399
|
+
| ----------------- | --------- | -------------- | ----------- | ---------- |
|
|
400
|
+
| 1. Foundation | v1.0 | 2/2 | Complete | YYYY-MM-DD |
|
|
401
|
+
| 2. Authentication | v1.0 | 2/2 | Complete | YYYY-MM-DD |
|
|
402
|
+
| 3. Core Features | v1.0 | 3/3 | Complete | YYYY-MM-DD |
|
|
403
|
+
| 4. Polish | v1.0 | 1/1 | Complete | YYYY-MM-DD |
|
|
404
|
+
| 5. Security Audit | v1.1 | 0/1 | Not started | - |
|
|
405
|
+
| 6. Hardening | v1.1 | 0/2 | Not started | - |
|
|
406
|
+
```
|
|
407
|
+
|
|
408
|
+
</step>
|
|
409
|
+
|
|
410
|
+
<step name="archive_milestone">
|
|
411
|
+
|
|
412
|
+
Extract completed milestone details and create archive file.
|
|
413
|
+
|
|
414
|
+
**Process:**
|
|
415
|
+
|
|
416
|
+
1. Create archive file path: `.planning/milestones/v[X.Y]-ROADMAP.md`
|
|
417
|
+
|
|
418
|
+
2. Read `~/.config/opencode/get-shit-done/templates/milestone-archive.md` template
|
|
419
|
+
|
|
420
|
+
3. Extract data from current ROADMAP.md:
|
|
421
|
+
- All phases belonging to this milestone (by phase number range)
|
|
422
|
+
- Full phase details (goals, plans, dependencies, status)
|
|
423
|
+
- Phase plan lists with completion checkmarks
|
|
424
|
+
|
|
425
|
+
4. Extract data from PROJECT.md:
|
|
426
|
+
- Key decisions made during this milestone
|
|
427
|
+
- Requirements that were validated
|
|
428
|
+
|
|
429
|
+
5. Fill template {{PLACEHOLDERS}}:
|
|
430
|
+
- {{VERSION}} — Milestone version (e.g., "1.0")
|
|
431
|
+
- {{MILESTONE_NAME}} — From ROADMAP.md milestone header
|
|
432
|
+
- {{DATE}} — Today's date
|
|
433
|
+
- {{PHASE_START}} — First phase number in milestone
|
|
434
|
+
- {{PHASE_END}} — Last phase number in milestone
|
|
435
|
+
- {{TOTAL_PLANS}} — Count of all plans in milestone
|
|
436
|
+
- {{MILESTONE_DESCRIPTION}} — From ROADMAP.md overview
|
|
437
|
+
- {{PHASES_SECTION}} — Full phase details extracted
|
|
438
|
+
- {{DECISIONS_FROM_PROJECT}} — Key decisions from PROJECT.md
|
|
439
|
+
- {{ISSUES_RESOLVED_DURING_MILESTONE}} — From summaries
|
|
440
|
+
- {{ISSUES_DEFERRED_TO_LATER}} — From ISSUES.md
|
|
441
|
+
|
|
442
|
+
6. Write filled template to `.planning/milestones/v[X.Y]-ROADMAP.md`
|
|
443
|
+
|
|
444
|
+
7. Update ROADMAP.md:
|
|
445
|
+
- Create/update "## Completed Milestones" section if not exists
|
|
446
|
+
- Add one-line entry: `- ✅ [v[X.Y] [Name]](milestones/v[X.Y]-ROADMAP.md) (Phases [N]-[M]) — SHIPPED [DATE]`
|
|
447
|
+
- Remove full milestone details from "Current Milestone" section
|
|
448
|
+
- Move next planned milestone to "Current Milestone" position
|
|
449
|
+
|
|
450
|
+
8. Verify files:
|
|
451
|
+
- Check archive file exists: `ls .planning/milestones/v[X.Y]-ROADMAP.md`
|
|
452
|
+
- Validate ROADMAP.md still parseable
|
|
453
|
+
|
|
454
|
+
9. Confirm archive complete:
|
|
455
|
+
|
|
456
|
+
```
|
|
457
|
+
✅ v[X.Y] archived to milestones/v[X.Y]-ROADMAP.md
|
|
458
|
+
```
|
|
459
|
+
|
|
460
|
+
</step>
|
|
461
|
+
|
|
462
|
+
<step name="update_state">
|
|
463
|
+
|
|
464
|
+
Update STATE.md to reflect milestone completion.
|
|
465
|
+
|
|
466
|
+
**Project Reference:**
|
|
467
|
+
|
|
468
|
+
```markdown
|
|
469
|
+
## Project Reference
|
|
470
|
+
|
|
471
|
+
See: .planning/PROJECT.md (updated [today])
|
|
472
|
+
|
|
473
|
+
**Core value:** [Current core value from PROJECT.md]
|
|
474
|
+
**Current focus:** [Next milestone or "Planning next milestone"]
|
|
475
|
+
```
|
|
476
|
+
|
|
477
|
+
**Current Position:**
|
|
478
|
+
|
|
479
|
+
```markdown
|
|
480
|
+
Phase: [Next phase] of [Total] ([Phase name])
|
|
481
|
+
Plan: Not started
|
|
482
|
+
Status: Ready to plan
|
|
483
|
+
Last activity: [today] — v[X.Y] milestone complete
|
|
484
|
+
|
|
485
|
+
Progress: [updated progress bar]
|
|
486
|
+
```
|
|
487
|
+
|
|
488
|
+
**Accumulated Context:**
|
|
489
|
+
|
|
490
|
+
- Clear decisions summary (full log in PROJECT.md)
|
|
491
|
+
- Clear resolved blockers
|
|
492
|
+
- Keep open blockers for next milestone
|
|
493
|
+
|
|
494
|
+
</step>
|
|
495
|
+
|
|
496
|
+
<step name="git_tag">
|
|
497
|
+
|
|
498
|
+
Create git tag for milestone:
|
|
499
|
+
|
|
500
|
+
```bash
|
|
501
|
+
git tag -a v[X.Y] -m "$(cat <<'EOF'
|
|
502
|
+
v[X.Y] [Name]
|
|
503
|
+
|
|
504
|
+
Delivered: [One sentence]
|
|
505
|
+
|
|
506
|
+
Key accomplishments:
|
|
507
|
+
- [Item 1]
|
|
508
|
+
- [Item 2]
|
|
509
|
+
- [Item 3]
|
|
510
|
+
|
|
511
|
+
See .planning/MILESTONES.md for full details.
|
|
512
|
+
EOF
|
|
513
|
+
)"
|
|
514
|
+
```
|
|
515
|
+
|
|
516
|
+
Confirm: "Tagged: v[X.Y]"
|
|
517
|
+
|
|
518
|
+
Ask: "Push tag to remote? (y/n)"
|
|
519
|
+
|
|
520
|
+
If yes:
|
|
521
|
+
|
|
522
|
+
```bash
|
|
523
|
+
git push origin v[X.Y]
|
|
524
|
+
```
|
|
525
|
+
|
|
526
|
+
</step>
|
|
527
|
+
|
|
528
|
+
<step name="git_commit_milestone">
|
|
529
|
+
|
|
530
|
+
Commit milestone completion including archive file.
|
|
531
|
+
|
|
532
|
+
```bash
|
|
533
|
+
# Stage all milestone-related files
|
|
534
|
+
git add .planning/MILESTONES.md
|
|
535
|
+
git add .planning/PROJECT.md
|
|
536
|
+
git add .planning/ROADMAP.md
|
|
537
|
+
git add .planning/STATE.md
|
|
538
|
+
git add .planning/milestones/v[X.Y]-ROADMAP.md
|
|
539
|
+
|
|
540
|
+
# Commit with descriptive message
|
|
541
|
+
git commit -m "$(cat <<'EOF'
|
|
542
|
+
chore: complete v[X.Y] milestone
|
|
543
|
+
|
|
544
|
+
- Added MILESTONES.md entry
|
|
545
|
+
- Evolved PROJECT.md with validated requirements
|
|
546
|
+
- Reorganized ROADMAP.md with milestone grouping
|
|
547
|
+
- Created milestone archive: milestones/v[X.Y]-ROADMAP.md
|
|
548
|
+
- Updated STATE.md
|
|
549
|
+
- Tagged v[X.Y]
|
|
550
|
+
EOF
|
|
551
|
+
)"
|
|
552
|
+
```
|
|
553
|
+
|
|
554
|
+
Confirm: "Committed: chore: complete v[X.Y] milestone"
|
|
555
|
+
|
|
556
|
+
</step>
|
|
557
|
+
|
|
558
|
+
<step name="offer_next">
|
|
559
|
+
|
|
560
|
+
```
|
|
561
|
+
✅ Milestone v[X.Y] [Name] complete
|
|
562
|
+
|
|
563
|
+
Shipped:
|
|
564
|
+
- [N] phases ([M] plans, [P] tasks)
|
|
565
|
+
- [One sentence of what shipped]
|
|
566
|
+
|
|
567
|
+
Summary: .planning/MILESTONES.md
|
|
568
|
+
Tag: v[X.Y]
|
|
569
|
+
|
|
570
|
+
---
|
|
571
|
+
|
|
572
|
+
## ▶ Next Up
|
|
573
|
+
|
|
574
|
+
**Plan Next Milestone** — define v[X.Y+1] features and scope
|
|
575
|
+
|
|
576
|
+
`/gsd:discuss-milestone`
|
|
577
|
+
|
|
578
|
+
<sub>`/clear` first → fresh context window</sub>
|
|
579
|
+
|
|
580
|
+
---
|
|
581
|
+
|
|
582
|
+
**Also available:**
|
|
583
|
+
- `/gsd:new-milestone` — create directly if scope is clear
|
|
584
|
+
|
|
585
|
+
---
|
|
586
|
+
```
|
|
587
|
+
|
|
588
|
+
</step>
|
|
589
|
+
|
|
590
|
+
</process>
|
|
591
|
+
|
|
592
|
+
<milestone_naming>
|
|
593
|
+
|
|
594
|
+
**Version conventions:**
|
|
595
|
+
- **v1.0** — Initial MVP
|
|
596
|
+
- **v1.1, v1.2, v1.3** — Minor updates, new features, fixes
|
|
597
|
+
- **v2.0, v3.0** — Major rewrites, breaking changes, significant new direction
|
|
598
|
+
|
|
599
|
+
**Name conventions:**
|
|
600
|
+
- v1.0 MVP
|
|
601
|
+
- v1.1 Security
|
|
602
|
+
- v1.2 Performance
|
|
603
|
+
- v2.0 Redesign
|
|
604
|
+
- v2.0 iOS Launch
|
|
605
|
+
|
|
606
|
+
Keep names short (1-2 words describing the focus).
|
|
607
|
+
|
|
608
|
+
</milestone_naming>
|
|
609
|
+
|
|
610
|
+
<what_qualifies>
|
|
611
|
+
|
|
612
|
+
**Create milestones for:**
|
|
613
|
+
- Initial release (v1.0)
|
|
614
|
+
- Public releases
|
|
615
|
+
- Major feature sets shipped
|
|
616
|
+
- Before archiving planning
|
|
617
|
+
|
|
618
|
+
**Don't create milestones for:**
|
|
619
|
+
- Every phase completion (too granular)
|
|
620
|
+
- Work in progress (wait until shipped)
|
|
621
|
+
- Internal dev iterations (unless truly shipped internally)
|
|
622
|
+
|
|
623
|
+
If uncertain, ask: "Is this deployed/usable/shipped in some form?"
|
|
624
|
+
If yes → milestone. If no → keep working.
|
|
625
|
+
|
|
626
|
+
</what_qualifies>
|
|
627
|
+
|
|
628
|
+
<success_criteria>
|
|
629
|
+
|
|
630
|
+
Milestone completion is successful when:
|
|
631
|
+
|
|
632
|
+
- [ ] MILESTONES.md entry created with stats and accomplishments
|
|
633
|
+
- [ ] PROJECT.md full evolution review completed
|
|
634
|
+
- [ ] All shipped requirements moved to Validated
|
|
635
|
+
- [ ] Key Decisions updated with outcomes
|
|
636
|
+
- [ ] ROADMAP.md reorganized with milestone grouping
|
|
637
|
+
- [ ] Milestone archive created
|
|
638
|
+
- [ ] STATE.md updated with fresh project reference
|
|
639
|
+
- [ ] Git tag created (v[X.Y])
|
|
640
|
+
- [ ] Milestone commit made
|
|
641
|
+
- [ ] User knows next steps
|
|
642
|
+
|
|
643
|
+
</success_criteria>
|