@undeemed/get-shit-done-codex 1.20.10 → 1.22.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/.codex/config.toml +77 -0
- package/README.md +53 -42
- package/agents/gsd-codebase-mapper.md +3 -3
- package/agents/gsd-debugger.md +5 -5
- package/agents/gsd-executor.md +14 -14
- package/agents/gsd-phase-researcher.md +7 -7
- package/agents/gsd-plan-checker.md +10 -10
- package/agents/gsd-planner.md +19 -19
- package/agents/gsd-project-researcher.md +3 -3
- package/agents/gsd-research-synthesizer.md +6 -6
- package/agents/gsd-roadmapper.md +7 -7
- package/agents/gsd-verifier.md +29 -17
- package/bin/install.js +161 -208
- package/commands/gsd/add-tests.md +5 -4
- package/commands/gsd/complete-milestone.md +6 -6
- package/commands/gsd/debug.md +1 -1
- package/commands/gsd/map-codebase.md +3 -3
- package/commands/gsd/new-milestone.md +1 -1
- package/commands/gsd/new-project.md +1 -1
- package/commands/gsd/plan-milestone-gaps.md +2 -2
- package/commands/gsd/reapply-patches.md +2 -2
- package/commands/gsd/research-phase.md +3 -3
- package/commands/gsd/verify-work.md +1 -1
- package/{AGENTS.md → get-shit-done/AGENTS.md} +1 -1
- package/get-shit-done/bin/lib/commands.cjs +1 -1
- package/get-shit-done/bin/lib/phase.cjs +2 -2
- package/get-shit-done/bin/lib/verify.cjs +8 -8
- package/get-shit-done/references/continuation-format.md +16 -16
- package/get-shit-done/references/model-profiles.md +1 -1
- package/get-shit-done/references/ui-brand.md +2 -2
- package/get-shit-done/templates/DEBUG.md +1 -1
- package/get-shit-done/templates/UAT.md +3 -3
- package/get-shit-done/templates/VALIDATION.md +1 -1
- package/get-shit-done/templates/debug-subagent-prompt.md +1 -1
- package/get-shit-done/templates/discovery.md +2 -2
- package/get-shit-done/templates/phase-prompt.md +1 -1
- package/get-shit-done/templates/planner-subagent-prompt.md +3 -3
- package/get-shit-done/templates/project.md +1 -1
- package/get-shit-done/templates/research.md +1 -1
- package/get-shit-done/templates/retrospective.md +13 -7
- package/get-shit-done/templates/state.md +2 -2
- package/get-shit-done/workflows/add-phase.md +7 -7
- package/get-shit-done/workflows/add-tests.md +41 -18
- package/get-shit-done/workflows/add-todo.md +2 -2
- package/get-shit-done/workflows/audit-milestone.md +5 -5
- package/get-shit-done/workflows/check-todos.md +8 -8
- package/get-shit-done/workflows/complete-milestone.md +33 -8
- package/get-shit-done/workflows/diagnose-issues.md +1 -1
- package/get-shit-done/workflows/discovery-phase.md +3 -3
- package/get-shit-done/workflows/discuss-phase.md +10 -10
- package/get-shit-done/workflows/execute-phase.md +7 -7
- package/get-shit-done/workflows/execute-plan.md +3 -3
- package/get-shit-done/workflows/health.md +5 -5
- package/get-shit-done/workflows/help.md +85 -85
- package/get-shit-done/workflows/insert-phase.md +6 -6
- package/get-shit-done/workflows/list-phase-assumptions.md +4 -4
- package/get-shit-done/workflows/map-codebase.md +2 -2
- package/get-shit-done/workflows/new-milestone.md +5 -5
- package/get-shit-done/workflows/new-project.md +11 -11
- package/get-shit-done/workflows/pause-work.md +1 -1
- package/get-shit-done/workflows/plan-milestone-gaps.md +7 -7
- package/get-shit-done/workflows/plan-phase.md +12 -12
- package/get-shit-done/workflows/progress.md +22 -22
- package/get-shit-done/workflows/quick.md +3 -3
- package/get-shit-done/workflows/remove-phase.md +6 -6
- package/get-shit-done/workflows/research-phase.md +2 -2
- package/get-shit-done/workflows/resume-project.md +9 -9
- package/get-shit-done/workflows/settings.md +5 -5
- package/get-shit-done/workflows/transition.md +10 -10
- package/get-shit-done/workflows/update.md +2 -2
- package/get-shit-done/workflows/verify-work.md +8 -8
- package/package.json +2 -2
- package/commands/gsd/new-project.md.bak +0 -1041
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<purpose>
|
|
2
2
|
Generate unit and E2E tests for a completed phase based on its SUMMARY.md, CONTEXT.md, and implementation. Classifies each changed file into TDD (unit), E2E (browser), or Skip categories, presents a test plan for user approval, then generates tests following RED-GREEN conventions.
|
|
3
3
|
|
|
4
|
-
Users currently hand-craft
|
|
4
|
+
Users currently hand-craft `$gsd-quick` prompts for test generation after each phase. This workflow standardizes the process with proper classification, quality gates, and gap reporting.
|
|
5
5
|
</purpose>
|
|
6
6
|
|
|
7
7
|
<required_reading>
|
|
@@ -15,15 +15,15 @@ Parse `$ARGUMENTS` for:
|
|
|
15
15
|
- Phase number (integer, decimal, or letter-suffix) → store as `$PHASE_ARG`
|
|
16
16
|
- Remaining text after phase number → store as `$EXTRA_INSTRUCTIONS` (optional)
|
|
17
17
|
|
|
18
|
-
Example:
|
|
18
|
+
Example: `$gsd-add-tests 12 focus on edge cases` → `$PHASE_ARG=12`, `$EXTRA_INSTRUCTIONS="focus on edge cases"`
|
|
19
19
|
|
|
20
20
|
If no phase argument provided:
|
|
21
21
|
|
|
22
22
|
```
|
|
23
23
|
ERROR: Phase number required
|
|
24
|
-
Usage:
|
|
25
|
-
Example:
|
|
26
|
-
Example:
|
|
24
|
+
Usage: $gsd-add-tests <phase> [additional instructions]
|
|
25
|
+
Example: $gsd-add-tests 12
|
|
26
|
+
Example: $gsd-add-tests 12 focus on edge cases in the pricing module
|
|
27
27
|
```
|
|
28
28
|
|
|
29
29
|
Exit.
|
|
@@ -33,36 +33,43 @@ Exit.
|
|
|
33
33
|
Load phase operation context:
|
|
34
34
|
|
|
35
35
|
```bash
|
|
36
|
-
INIT=$(node ~/.
|
|
36
|
+
INIT=$(node ~/.codex/get-shit-done/bin/gsd-tools.cjs init phase-op "${PHASE_ARG}")
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
Extract from init JSON: `phase_dir`, `phase_number`, `phase_name`.
|
|
40
40
|
|
|
41
41
|
Verify the phase directory exists. If not:
|
|
42
|
+
|
|
42
43
|
```
|
|
43
44
|
ERROR: Phase directory not found for phase ${PHASE_ARG}
|
|
44
45
|
Ensure the phase exists in .planning/phases/
|
|
45
46
|
```
|
|
47
|
+
|
|
46
48
|
Exit.
|
|
47
49
|
|
|
48
50
|
Read the phase artifacts (in order of priority):
|
|
51
|
+
|
|
49
52
|
1. `${phase_dir}/*-SUMMARY.md` — what was implemented, files changed
|
|
50
53
|
2. `${phase_dir}/CONTEXT.md` — acceptance criteria, decisions
|
|
51
54
|
3. `${phase_dir}/*-VERIFICATION.md` — user-verified scenarios (if UAT was done)
|
|
52
55
|
|
|
53
56
|
If no SUMMARY.md exists:
|
|
57
|
+
|
|
54
58
|
```
|
|
55
59
|
ERROR: No SUMMARY.md found for phase ${PHASE_ARG}
|
|
56
|
-
This command works on completed phases. Run
|
|
60
|
+
This command works on completed phases. Run $gsd-execute-phase first.
|
|
57
61
|
```
|
|
62
|
+
|
|
58
63
|
Exit.
|
|
59
64
|
|
|
60
65
|
Present banner:
|
|
66
|
+
|
|
61
67
|
```
|
|
62
68
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
63
69
|
GSD ► ADD TESTS — Phase ${phase_number}: ${phase_name}
|
|
64
70
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
65
71
|
```
|
|
72
|
+
|
|
66
73
|
</step>
|
|
67
74
|
|
|
68
75
|
<step name="analyze_implementation">
|
|
@@ -70,13 +77,14 @@ Extract the list of files modified by the phase from SUMMARY.md ("Files Changed"
|
|
|
70
77
|
|
|
71
78
|
For each file, classify into one of three categories:
|
|
72
79
|
|
|
73
|
-
| Category | Criteria
|
|
74
|
-
|
|
75
|
-
| **TDD**
|
|
76
|
-
| **E2E**
|
|
77
|
-
| **Skip** | Not meaningfully testable or already covered
|
|
80
|
+
| Category | Criteria | Test Type |
|
|
81
|
+
| -------- | ----------------------------------------------------------------- | -------------------- |
|
|
82
|
+
| **TDD** | Pure functions where `expect(fn(input)).toBe(output)` is writable | Unit tests |
|
|
83
|
+
| **E2E** | UI behavior verifiable by browser automation | Playwright/E2E tests |
|
|
84
|
+
| **Skip** | Not meaningfully testable or already covered | None |
|
|
78
85
|
|
|
79
86
|
**TDD classification — apply when:**
|
|
87
|
+
|
|
80
88
|
- Business logic: calculations, pricing, tax rules, validation
|
|
81
89
|
- Data transformations: mapping, filtering, aggregation, formatting
|
|
82
90
|
- Parsers: CSV, JSON, XML, custom format parsing
|
|
@@ -85,6 +93,7 @@ For each file, classify into one of three categories:
|
|
|
85
93
|
- Utilities: string manipulation, date handling, number formatting
|
|
86
94
|
|
|
87
95
|
**E2E classification — apply when:**
|
|
96
|
+
|
|
88
97
|
- Keyboard shortcuts: key bindings, modifier keys, chord sequences
|
|
89
98
|
- Navigation: page transitions, routing, breadcrumbs, back/forward
|
|
90
99
|
- Form interactions: submit, validation errors, field focus, autocomplete
|
|
@@ -94,6 +103,7 @@ For each file, classify into one of three categories:
|
|
|
94
103
|
- Data grids: sorting, filtering, inline editing, column resize
|
|
95
104
|
|
|
96
105
|
**Skip classification — apply when:**
|
|
106
|
+
|
|
97
107
|
- UI layout/styling: CSS classes, visual appearance, responsive breakpoints
|
|
98
108
|
- Configuration: config files, environment variables, feature flags
|
|
99
109
|
- Glue code: dependency injection setup, middleware registration, routing tables
|
|
@@ -149,12 +159,14 @@ ls package.json *.sln 2>/dev/null
|
|
|
149
159
|
```
|
|
150
160
|
|
|
151
161
|
Identify:
|
|
162
|
+
|
|
152
163
|
- Test directory structure (where unit tests live, where E2E tests live)
|
|
153
164
|
- Naming conventions (`.test.ts`, `.spec.ts`, `*Tests.fs`, etc.)
|
|
154
165
|
- Test runner commands (how to execute unit tests, how to execute E2E tests)
|
|
155
166
|
- Test framework (xUnit, NUnit, Jest, Playwright, etc.)
|
|
156
167
|
|
|
157
168
|
If test structure is ambiguous, ask the user:
|
|
169
|
+
|
|
158
170
|
```
|
|
159
171
|
AskUserQuestion(
|
|
160
172
|
header: "Test Structure",
|
|
@@ -162,17 +174,20 @@ AskUserQuestion(
|
|
|
162
174
|
options: [list discovered locations]
|
|
163
175
|
)
|
|
164
176
|
```
|
|
177
|
+
|
|
165
178
|
</step>
|
|
166
179
|
|
|
167
180
|
<step name="generate_test_plan">
|
|
168
181
|
For each approved file, create a detailed test plan.
|
|
169
182
|
|
|
170
183
|
**For TDD files**, plan tests following RED-GREEN-REFACTOR:
|
|
184
|
+
|
|
171
185
|
1. Identify testable functions/methods in the file
|
|
172
186
|
2. For each function: list input scenarios, expected outputs, edge cases
|
|
173
187
|
3. Note: since code already exists, tests may pass immediately — that's OK, but verify they test the RIGHT behavior
|
|
174
188
|
|
|
175
189
|
**For E2E files**, plan tests following RED-GREEN gates:
|
|
190
|
+
|
|
176
191
|
1. Identify user scenarios from CONTEXT.md/VERIFICATION.md
|
|
177
192
|
2. For each scenario: describe the user action, expected outcome, assertions
|
|
178
193
|
3. Note: RED gate means confirming the test would fail if the feature were broken
|
|
@@ -213,6 +228,7 @@ For each approved TDD test:
|
|
|
213
228
|
1. **Create test file** following discovered project conventions (directory, naming, imports)
|
|
214
229
|
|
|
215
230
|
2. **Write test** with clear arrange/act/assert structure:
|
|
231
|
+
|
|
216
232
|
```
|
|
217
233
|
// Arrange — set up inputs and expected outputs
|
|
218
234
|
// Act — call the function under test
|
|
@@ -220,6 +236,7 @@ For each approved TDD test:
|
|
|
220
236
|
```
|
|
221
237
|
|
|
222
238
|
3. **Run the test**:
|
|
239
|
+
|
|
223
240
|
```bash
|
|
224
241
|
{discovered test command}
|
|
225
242
|
```
|
|
@@ -235,20 +252,23 @@ For each approved TDD test:
|
|
|
235
252
|
```
|
|
236
253
|
Do NOT fix the implementation — this is a test-generation command, not a fix command. Record the finding.
|
|
237
254
|
- **Test fails with error (import, syntax, etc.)**: This is a test error. Fix the test and re-run.
|
|
238
|
-
</step>
|
|
255
|
+
</step>
|
|
239
256
|
|
|
240
257
|
<step name="execute_e2e_generation">
|
|
241
258
|
For each approved E2E test:
|
|
242
259
|
|
|
243
260
|
1. **Check for existing tests** covering the same scenario:
|
|
261
|
+
|
|
244
262
|
```bash
|
|
245
263
|
grep -r "{scenario keyword}" {e2e test directory} 2>/dev/null
|
|
246
264
|
```
|
|
265
|
+
|
|
247
266
|
If found, extend rather than duplicate.
|
|
248
267
|
|
|
249
268
|
2. **Create test file** targeting the user scenario from CONTEXT.md/VERIFICATION.md
|
|
250
269
|
|
|
251
270
|
3. **Run the E2E test**:
|
|
271
|
+
|
|
252
272
|
```bash
|
|
253
273
|
{discovered e2e command}
|
|
254
274
|
```
|
|
@@ -295,8 +315,9 @@ Create a test coverage report and present to user:
|
|
|
295
315
|
```
|
|
296
316
|
|
|
297
317
|
Record test generation in project state:
|
|
318
|
+
|
|
298
319
|
```bash
|
|
299
|
-
node ~/.
|
|
320
|
+
node ~/.codex/get-shit-done/bin/gsd-tools.cjs state-snapshot
|
|
300
321
|
```
|
|
301
322
|
|
|
302
323
|
If there are passing tests to commit:
|
|
@@ -314,7 +335,7 @@ Present next steps:
|
|
|
314
335
|
## ▶ Next Up
|
|
315
336
|
|
|
316
337
|
{if bugs discovered:}
|
|
317
|
-
**Fix discovered bugs:**
|
|
338
|
+
**Fix discovered bugs:** `$gsd-quick fix the {N} test failures discovered in phase ${phase_number}`
|
|
318
339
|
|
|
319
340
|
{if blocked tests:}
|
|
320
341
|
**Resolve test blockers:** {description of what's needed}
|
|
@@ -325,16 +346,18 @@ Present next steps:
|
|
|
325
346
|
---
|
|
326
347
|
|
|
327
348
|
**Also available:**
|
|
328
|
-
-
|
|
329
|
-
-
|
|
349
|
+
- `$gsd-add-tests {next_phase}` — test another phase
|
|
350
|
+
- `$gsd-verify-work {phase_number}` — run UAT verification
|
|
330
351
|
|
|
331
352
|
---
|
|
332
353
|
```
|
|
354
|
+
|
|
333
355
|
</step>
|
|
334
356
|
|
|
335
357
|
</process>
|
|
336
358
|
|
|
337
359
|
<success_criteria>
|
|
360
|
+
|
|
338
361
|
- [ ] Phase artifacts loaded (SUMMARY.md, CONTEXT.md, optionally VERIFICATION.md)
|
|
339
362
|
- [ ] All changed files classified into TDD/E2E/Skip categories
|
|
340
363
|
- [ ] Classification presented to user and approved
|
|
@@ -347,4 +370,4 @@ Present next steps:
|
|
|
347
370
|
- [ ] Test files committed with proper message
|
|
348
371
|
- [ ] Coverage gaps documented
|
|
349
372
|
- [ ] Next steps presented to user
|
|
350
|
-
</success_criteria>
|
|
373
|
+
</success_criteria>
|
|
@@ -27,7 +27,7 @@ Note existing areas from the todos array for consistency in infer_area step.
|
|
|
27
27
|
|
|
28
28
|
<step name="extract_content">
|
|
29
29
|
**With arguments:** Use as the title/focus.
|
|
30
|
-
-
|
|
30
|
+
- `$gsd-add-todo Add auth token refresh` → title = "Add auth token refresh"
|
|
31
31
|
|
|
32
32
|
**Without arguments:** Analyze recent conversation to extract:
|
|
33
33
|
- The specific problem, idea, or task discussed
|
|
@@ -140,7 +140,7 @@ Would you like to:
|
|
|
140
140
|
|
|
141
141
|
1. Continue with current work
|
|
142
142
|
2. Add another todo
|
|
143
|
-
3. View all todos (
|
|
143
|
+
3. View all todos ($gsd-check-todos)
|
|
144
144
|
```
|
|
145
145
|
</step>
|
|
146
146
|
|
|
@@ -196,7 +196,7 @@ All requirements covered. Cross-phase integration verified. E2E flows complete.
|
|
|
196
196
|
|
|
197
197
|
**Complete milestone** — archive and tag
|
|
198
198
|
|
|
199
|
-
|
|
199
|
+
$gsd-complete-milestone {version}
|
|
200
200
|
|
|
201
201
|
<sub>/clear first → fresh context window</sub>
|
|
202
202
|
|
|
@@ -233,7 +233,7 @@ All requirements covered. Cross-phase integration verified. E2E flows complete.
|
|
|
233
233
|
|
|
234
234
|
**Plan gap closure** — create phases to complete milestone
|
|
235
235
|
|
|
236
|
-
|
|
236
|
+
$gsd-plan-milestone-gaps
|
|
237
237
|
|
|
238
238
|
<sub>/clear first → fresh context window</sub>
|
|
239
239
|
|
|
@@ -241,7 +241,7 @@ All requirements covered. Cross-phase integration verified. E2E flows complete.
|
|
|
241
241
|
|
|
242
242
|
**Also available:**
|
|
243
243
|
- cat .planning/v{version}-MILESTONE-AUDIT.md — see full report
|
|
244
|
-
-
|
|
244
|
+
- $gsd-complete-milestone {version} — proceed anyway (accept tech debt)
|
|
245
245
|
|
|
246
246
|
───────────────────────────────────────────────────────────────
|
|
247
247
|
|
|
@@ -271,11 +271,11 @@ All requirements met. No critical blockers. Accumulated tech debt needs review.
|
|
|
271
271
|
|
|
272
272
|
**A. Complete milestone** — accept debt, track in backlog
|
|
273
273
|
|
|
274
|
-
|
|
274
|
+
$gsd-complete-milestone {version}
|
|
275
275
|
|
|
276
276
|
**B. Plan cleanup phase** — address debt before completing
|
|
277
277
|
|
|
278
|
-
|
|
278
|
+
$gsd-plan-milestone-gaps
|
|
279
279
|
|
|
280
280
|
<sub>/clear first → fresh context window</sub>
|
|
281
281
|
|
|
@@ -21,14 +21,14 @@ If `todo_count` is 0:
|
|
|
21
21
|
```
|
|
22
22
|
No pending todos.
|
|
23
23
|
|
|
24
|
-
Todos are captured during work sessions with
|
|
24
|
+
Todos are captured during work sessions with $gsd-add-todo.
|
|
25
25
|
|
|
26
26
|
---
|
|
27
27
|
|
|
28
28
|
Would you like to:
|
|
29
29
|
|
|
30
|
-
1. Continue with current phase (
|
|
31
|
-
2. Add a todo now (
|
|
30
|
+
1. Continue with current phase ($gsd-progress)
|
|
31
|
+
2. Add a todo now ($gsd-add-todo)
|
|
32
32
|
```
|
|
33
33
|
|
|
34
34
|
Exit.
|
|
@@ -36,8 +36,8 @@ Exit.
|
|
|
36
36
|
|
|
37
37
|
<step name="parse_filter">
|
|
38
38
|
Check for area filter in arguments:
|
|
39
|
-
-
|
|
40
|
-
-
|
|
39
|
+
- `$gsd-check-todos` → show all
|
|
40
|
+
- `$gsd-check-todos api` → filter to area:api only
|
|
41
41
|
</step>
|
|
42
42
|
|
|
43
43
|
<step name="list_todos">
|
|
@@ -55,7 +55,7 @@ Pending Todos:
|
|
|
55
55
|
---
|
|
56
56
|
|
|
57
57
|
Reply with a number to view details, or:
|
|
58
|
-
-
|
|
58
|
+
- `$gsd-check-todos [area]` to filter by area
|
|
59
59
|
- `q` to exit
|
|
60
60
|
```
|
|
61
61
|
|
|
@@ -117,7 +117,7 @@ Use AskUserQuestion:
|
|
|
117
117
|
- question: "What would you like to do with this todo?"
|
|
118
118
|
- options:
|
|
119
119
|
- "Work on it now" — move to done, start working
|
|
120
|
-
- "Create a phase" —
|
|
120
|
+
- "Create a phase" — $gsd-add-phase with this scope
|
|
121
121
|
- "Brainstorm approach" — think through before deciding
|
|
122
122
|
- "Put it back" — return to list
|
|
123
123
|
</step>
|
|
@@ -133,7 +133,7 @@ Update STATE.md todo count. Present problem/solution context. Begin work or ask
|
|
|
133
133
|
Note todo reference in phase planning notes. Keep in pending. Return to list or exit.
|
|
134
134
|
|
|
135
135
|
**Create a phase:**
|
|
136
|
-
Display:
|
|
136
|
+
Display: `$gsd-add-phase [description from todo]`
|
|
137
137
|
Keep in pending. User runs command in fresh context.
|
|
138
138
|
|
|
139
139
|
**Brainstorm approach:**
|
|
@@ -44,6 +44,7 @@ ROADMAP=$(node ~/.codex/get-shit-done/bin/gsd-tools.cjs roadmap analyze)
|
|
|
44
44
|
```
|
|
45
45
|
|
|
46
46
|
This returns all phases with plan/summary counts and disk status. Use this to verify:
|
|
47
|
+
|
|
47
48
|
- Which phases belong to this milestone?
|
|
48
49
|
- All phases complete (all plans have summaries)? Check `disk_status === 'complete'` for each.
|
|
49
50
|
- `progress_percent` should be 100%.
|
|
@@ -51,6 +52,7 @@ This returns all phases with plan/summary counts and disk status. Use this to ve
|
|
|
51
52
|
**Requirements completion check (REQUIRED before presenting):**
|
|
52
53
|
|
|
53
54
|
Parse REQUIREMENTS.md traceability table:
|
|
55
|
+
|
|
54
56
|
- Count total v1 requirements vs checked-off (`[x]`) requirements
|
|
55
57
|
- Identify any non-Complete rows in the traceability table
|
|
56
58
|
|
|
@@ -79,8 +81,9 @@ Requirements: {N}/{M} v1 requirements checked off
|
|
|
79
81
|
```
|
|
80
82
|
|
|
81
83
|
MUST present 3 options:
|
|
84
|
+
|
|
82
85
|
1. **Proceed anyway** — mark milestone complete with known gaps
|
|
83
|
-
2. **Run audit first** —
|
|
86
|
+
2. **Run audit first** — `$gsd-audit-milestone` to assess gap severity
|
|
84
87
|
3. **Abort** — return to development
|
|
85
88
|
|
|
86
89
|
If user selects "Proceed anyway": note incomplete requirements in MILESTONES.md under `### Known Gaps` with REQ-IDs and descriptions.
|
|
@@ -113,6 +116,7 @@ Ready to mark this milestone as shipped?
|
|
|
113
116
|
```
|
|
114
117
|
|
|
115
118
|
Wait for confirmation.
|
|
119
|
+
|
|
116
120
|
- "adjust scope": Ask which phases to include.
|
|
117
121
|
- "wait": Stop, user returns when ready.
|
|
118
122
|
|
|
@@ -232,7 +236,8 @@ Update PROJECT.md inline. Update "Last updated" footer:
|
|
|
232
236
|
|
|
233
237
|
```markdown
|
|
234
238
|
---
|
|
235
|
-
|
|
239
|
+
|
|
240
|
+
_Last updated: [date] after v[X.Y] milestone_
|
|
236
241
|
```
|
|
237
242
|
|
|
238
243
|
**Example full evolution (v1.0 → v1.1 prep):**
|
|
@@ -371,6 +376,7 @@ ARCHIVE=$(node ~/.codex/get-shit-done/bin/gsd-tools.cjs milestone complete "v[X.
|
|
|
371
376
|
```
|
|
372
377
|
|
|
373
378
|
The CLI handles:
|
|
379
|
+
|
|
374
380
|
- Creating `.planning/milestones/` directory
|
|
375
381
|
- Archiving ROADMAP.md to `milestones/v[X.Y]-ROADMAP.md`
|
|
376
382
|
- Archiving REQUIREMENTS.md to `milestones/v[X.Y]-REQUIREMENTS.md` with archive header
|
|
@@ -387,16 +393,19 @@ Verify: `✅ Milestone archived to .planning/milestones/`
|
|
|
387
393
|
AskUserQuestion(header="Archive Phases", question="Archive phase directories to milestones/?", options: "Yes — move to milestones/v[X.Y]-phases/" | "Skip — keep phases in place")
|
|
388
394
|
|
|
389
395
|
If "Yes": move phase directories to the milestone archive:
|
|
396
|
+
|
|
390
397
|
```bash
|
|
391
398
|
mkdir -p .planning/milestones/v[X.Y]-phases
|
|
392
399
|
# For each phase directory in .planning/phases/:
|
|
393
400
|
mv .planning/phases/{phase-dir} .planning/milestones/v[X.Y]-phases/
|
|
394
401
|
```
|
|
402
|
+
|
|
395
403
|
Verify: `✅ Phase directories archived to .planning/milestones/v[X.Y]-phases/`
|
|
396
404
|
|
|
397
|
-
If "Skip": Phase directories remain in `.planning/phases/` as raw execution history. Use
|
|
405
|
+
If "Skip": Phase directories remain in `.planning/phases/` as raw execution history. Use `$gsd-cleanup` later to archive retroactively.
|
|
398
406
|
|
|
399
407
|
After archival, the AI still handles:
|
|
408
|
+
|
|
400
409
|
- Reorganizing ROADMAP.md with milestone grouping (requires judgment)
|
|
401
410
|
- Full PROJECT.md evolution review (requires understanding)
|
|
402
411
|
- Deleting original ROADMAP.md and REQUIREMENTS.md
|
|
@@ -443,13 +452,14 @@ rm .planning/REQUIREMENTS.md
|
|
|
443
452
|
**Append to living retrospective:**
|
|
444
453
|
|
|
445
454
|
Check for existing retrospective:
|
|
455
|
+
|
|
446
456
|
```bash
|
|
447
457
|
ls .planning/RETROSPECTIVE.md 2>/dev/null
|
|
448
458
|
```
|
|
449
459
|
|
|
450
460
|
**If exists:** Read the file, append new milestone section before the "## Cross-Milestone Trends" section.
|
|
451
461
|
|
|
452
|
-
**If doesn't exist:** Create from template at `~/.
|
|
462
|
+
**If doesn't exist:** Create from template at `~/.codex/get-shit-done/templates/retrospective.md`.
|
|
453
463
|
|
|
454
464
|
**Gather retrospective data:**
|
|
455
465
|
|
|
@@ -468,22 +478,28 @@ ls .planning/RETROSPECTIVE.md 2>/dev/null
|
|
|
468
478
|
**Phases:** {phase_count} | **Plans:** {plan_count}
|
|
469
479
|
|
|
470
480
|
### What Was Built
|
|
481
|
+
|
|
471
482
|
{Extract from SUMMARY.md one-liners}
|
|
472
483
|
|
|
473
484
|
### What Worked
|
|
485
|
+
|
|
474
486
|
{Patterns that led to smooth execution}
|
|
475
487
|
|
|
476
488
|
### What Was Inefficient
|
|
489
|
+
|
|
477
490
|
{Missed opportunities, rework, bottlenecks}
|
|
478
491
|
|
|
479
492
|
### Patterns Established
|
|
493
|
+
|
|
480
494
|
{New conventions discovered during this milestone}
|
|
481
495
|
|
|
482
496
|
### Key Lessons
|
|
497
|
+
|
|
483
498
|
{Specific, actionable takeaways}
|
|
484
499
|
|
|
485
500
|
### Cost Observations
|
|
486
|
-
|
|
501
|
+
|
|
502
|
+
- Model mix: {breakdown of model usage}
|
|
487
503
|
- Sessions: {count}
|
|
488
504
|
- Notable: {efficiency observation}
|
|
489
505
|
```
|
|
@@ -493,8 +509,9 @@ ls .planning/RETROSPECTIVE.md 2>/dev/null
|
|
|
493
509
|
If the "## Cross-Milestone Trends" section exists, update the tables with new data from this milestone.
|
|
494
510
|
|
|
495
511
|
**Commit:**
|
|
512
|
+
|
|
496
513
|
```bash
|
|
497
|
-
node ~/.
|
|
514
|
+
node ~/.codex/get-shit-done/bin/gsd-tools.cjs commit "docs: update retrospective for v${VERSION}" --files .planning/RETROSPECTIVE.md
|
|
498
515
|
```
|
|
499
516
|
|
|
500
517
|
</step>
|
|
@@ -515,6 +532,7 @@ See: .planning/PROJECT.md (updated [today])
|
|
|
515
532
|
```
|
|
516
533
|
|
|
517
534
|
**Accumulated Context:**
|
|
535
|
+
|
|
518
536
|
- Clear decisions summary (full log in PROJECT.md)
|
|
519
537
|
- Clear resolved blockers
|
|
520
538
|
- Keep open blockers for next milestone
|
|
@@ -665,6 +683,7 @@ Confirm: "Tagged: v[X.Y]"
|
|
|
665
683
|
Ask: "Push tag to remote? (y/n)"
|
|
666
684
|
|
|
667
685
|
If yes:
|
|
686
|
+
|
|
668
687
|
```bash
|
|
669
688
|
git push origin v[X.Y]
|
|
670
689
|
```
|
|
@@ -678,6 +697,7 @@ Commit milestone completion.
|
|
|
678
697
|
```bash
|
|
679
698
|
node ~/.codex/get-shit-done/bin/gsd-tools.cjs commit "chore: complete v[X.Y] milestone" --files .planning/milestones/v[X.Y]-ROADMAP.md .planning/milestones/v[X.Y]-REQUIREMENTS.md .planning/milestones/v[X.Y]-MILESTONE-AUDIT.md .planning/MILESTONES.md .planning/PROJECT.md .planning/STATE.md
|
|
680
699
|
```
|
|
700
|
+
|
|
681
701
|
```
|
|
682
702
|
|
|
683
703
|
Confirm: "Committed: chore: complete v[X.Y] milestone"
|
|
@@ -687,13 +707,16 @@ Confirm: "Committed: chore: complete v[X.Y] milestone"
|
|
|
687
707
|
<step name="offer_next">
|
|
688
708
|
|
|
689
709
|
```
|
|
710
|
+
|
|
690
711
|
✅ Milestone v[X.Y] [Name] complete
|
|
691
712
|
|
|
692
713
|
Shipped:
|
|
714
|
+
|
|
693
715
|
- [N] phases ([M] plans, [P] tasks)
|
|
694
716
|
- [One sentence of what shipped]
|
|
695
717
|
|
|
696
718
|
Archived:
|
|
719
|
+
|
|
697
720
|
- milestones/v[X.Y]-ROADMAP.md
|
|
698
721
|
- milestones/v[X.Y]-REQUIREMENTS.md
|
|
699
722
|
|
|
@@ -706,11 +729,12 @@ Tag: v[X.Y]
|
|
|
706
729
|
|
|
707
730
|
**Start Next Milestone** — questioning → research → requirements → roadmap
|
|
708
731
|
|
|
709
|
-
|
|
732
|
+
`$gsd-new-milestone`
|
|
710
733
|
|
|
711
734
|
<sub>`/clear` first → fresh context window</sub>
|
|
712
735
|
|
|
713
736
|
---
|
|
737
|
+
|
|
714
738
|
```
|
|
715
739
|
|
|
716
740
|
</step>
|
|
@@ -758,6 +782,7 @@ Milestone completion is successful when:
|
|
|
758
782
|
- [ ] Known gaps recorded in MILESTONES.md if user proceeded with incomplete requirements
|
|
759
783
|
- [ ] RETROSPECTIVE.md updated with milestone section
|
|
760
784
|
- [ ] Cross-milestone trends updated
|
|
761
|
-
- [ ] User knows next step (
|
|
785
|
+
- [ ] User knows next step ($gsd-new-milestone)
|
|
762
786
|
|
|
763
787
|
</success_criteria>
|
|
788
|
+
```
|
|
@@ -201,7 +201,7 @@ Agents only diagnose—plan-phase --gaps handles fixes (no fix application).
|
|
|
201
201
|
|
|
202
202
|
**Agent times out:**
|
|
203
203
|
- Check DEBUG-{slug}.md for partial progress
|
|
204
|
-
- Can resume with
|
|
204
|
+
- Can resume with $gsd-debug
|
|
205
205
|
|
|
206
206
|
**All agents fail:**
|
|
207
207
|
- Something systemic (permissions, git, etc.)
|
|
@@ -4,7 +4,7 @@ Produces DISCOVERY.md (for Level 2-3) that informs PLAN.md creation.
|
|
|
4
4
|
|
|
5
5
|
Called from plan-phase.md's mandatory_discovery step with a depth parameter.
|
|
6
6
|
|
|
7
|
-
NOTE: For comprehensive ecosystem research ("how do experts build this"), use
|
|
7
|
+
NOTE: For comprehensive ecosystem research ("how do experts build this"), use $gsd-research-phase instead, which produces RESEARCH.md.
|
|
8
8
|
</purpose>
|
|
9
9
|
|
|
10
10
|
<depth_levels>
|
|
@@ -252,8 +252,8 @@ Confidence: [level]
|
|
|
252
252
|
|
|
253
253
|
What's next?
|
|
254
254
|
|
|
255
|
-
1. Discuss phase context (
|
|
256
|
-
2. Create phase plan (
|
|
255
|
+
1. Discuss phase context ($gsd-discuss-phase [current-phase])
|
|
256
|
+
2. Create phase plan ($gsd-plan-phase [current-phase])
|
|
257
257
|
3. Refine discovery (dig deeper)
|
|
258
258
|
4. Review discovery
|
|
259
259
|
|
|
@@ -107,7 +107,7 @@ Phase: "API documentation"
|
|
|
107
107
|
|
|
108
108
|
<process>
|
|
109
109
|
|
|
110
|
-
**Express path available:** If you already have a PRD or acceptance criteria document, use
|
|
110
|
+
**Express path available:** If you already have a PRD or acceptance criteria document, use `$gsd-plan-phase {phase} --prd path/to/prd.md` to skip this discussion and go straight to planning.
|
|
111
111
|
|
|
112
112
|
<step name="initialize" priority="first">
|
|
113
113
|
Phase number from argument (required).
|
|
@@ -122,7 +122,7 @@ Parse JSON for: `commit_docs`, `phase_found`, `phase_dir`, `phase_number`, `phas
|
|
|
122
122
|
```
|
|
123
123
|
Phase [X] not found in roadmap.
|
|
124
124
|
|
|
125
|
-
Use
|
|
125
|
+
Use $gsd-progress to see available phases.
|
|
126
126
|
```
|
|
127
127
|
Exit workflow.
|
|
128
128
|
|
|
@@ -157,7 +157,7 @@ Use AskUserQuestion:
|
|
|
157
157
|
- header: "Plans exist"
|
|
158
158
|
- question: "Phase [X] already has {plan_count} plan(s) created without user context. Your decisions here won't affect existing plans unless you replan."
|
|
159
159
|
- options:
|
|
160
|
-
- "Continue and replan after" — Capture context, then run
|
|
160
|
+
- "Continue and replan after" — Capture context, then run $gsd-plan-phase {X} to replan
|
|
161
161
|
- "View existing plans" — Show plans before deciding
|
|
162
162
|
- "Cancel" — Skip discuss-phase
|
|
163
163
|
|
|
@@ -397,14 +397,14 @@ Created: .planning/phases/${PADDED_PHASE}-${SLUG}/${PADDED_PHASE}-CONTEXT.md
|
|
|
397
397
|
|
|
398
398
|
**Phase ${PHASE}: [Name]** — [Goal from ROADMAP.md]
|
|
399
399
|
|
|
400
|
-
|
|
400
|
+
`$gsd-plan-phase ${PHASE}`
|
|
401
401
|
|
|
402
402
|
<sub>`/clear` first → fresh context window</sub>
|
|
403
403
|
|
|
404
404
|
---
|
|
405
405
|
|
|
406
406
|
**Also available:**
|
|
407
|
-
-
|
|
407
|
+
- `$gsd-plan-phase ${PHASE} --skip-research` — plan without research
|
|
408
408
|
- Review/edit CONTEXT.md before continuing
|
|
409
409
|
|
|
410
410
|
---
|
|
@@ -486,7 +486,7 @@ Task(
|
|
|
486
486
|
2. Follow ALL steps: initialize, validate, load context, research, plan, verify, auto-advance
|
|
487
487
|
3. When spawning agents (gsd-phase-researcher, gsd-planner, gsd-plan-checker), use Task with specified subagent_type and model
|
|
488
488
|
4. For step 14 (auto-advance to execute): spawn execute-phase as a Task with DIRECT file reference — tell it to read execute-phase.md. Include @file refs to execute-phase.md, checkpoints.md, tdd.md, model-profile-resolution.md. Pass --no-transition flag so execute-phase returns results instead of chaining further.
|
|
489
|
-
5. Do NOT use the Skill tool or
|
|
489
|
+
5. Do NOT use the Skill tool or $gsd- commands. Read workflow .md files directly.
|
|
490
490
|
6. Return: PHASE COMPLETE (full pipeline success), PLANNING COMPLETE (planning done but execute failed/skipped), PLANNING INCONCLUSIVE, or GAPS FOUND
|
|
491
491
|
</instructions>
|
|
492
492
|
",
|
|
@@ -504,23 +504,23 @@ Task(
|
|
|
504
504
|
|
|
505
505
|
Auto-advance pipeline finished: discuss → plan → execute
|
|
506
506
|
|
|
507
|
-
Next:
|
|
507
|
+
Next: $gsd-discuss-phase ${NEXT_PHASE} --auto
|
|
508
508
|
<sub>/clear first → fresh context window</sub>
|
|
509
509
|
```
|
|
510
510
|
- **PLANNING COMPLETE** → Planning done, execution didn't complete:
|
|
511
511
|
```
|
|
512
512
|
Auto-advance partial: Planning complete, execution did not finish.
|
|
513
|
-
Continue:
|
|
513
|
+
Continue: $gsd-execute-phase ${PHASE}
|
|
514
514
|
```
|
|
515
515
|
- **PLANNING INCONCLUSIVE / CHECKPOINT** → Stop chain:
|
|
516
516
|
```
|
|
517
517
|
Auto-advance stopped: Planning needs input.
|
|
518
|
-
Continue:
|
|
518
|
+
Continue: $gsd-plan-phase ${PHASE}
|
|
519
519
|
```
|
|
520
520
|
- **GAPS FOUND** → Stop chain:
|
|
521
521
|
```
|
|
522
522
|
Auto-advance stopped: Gaps found during execution.
|
|
523
|
-
Continue:
|
|
523
|
+
Continue: $gsd-plan-phase ${PHASE} --gaps
|
|
524
524
|
```
|
|
525
525
|
|
|
526
526
|
**If neither `--auto` nor config enabled:**
|