@undeemed/get-shit-done-codex 1.21.0 → 1.22.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/.codex/config.toml +1 -1
  2. package/README.md +33 -45
  3. package/agents/gsd-codebase-mapper.md +3 -3
  4. package/agents/gsd-debugger.md +7 -7
  5. package/agents/gsd-executor.md +14 -14
  6. package/agents/gsd-phase-researcher.md +7 -7
  7. package/agents/gsd-plan-checker.md +10 -10
  8. package/agents/gsd-planner.md +20 -20
  9. package/agents/gsd-project-researcher.md +3 -3
  10. package/agents/gsd-research-synthesizer.md +6 -6
  11. package/agents/gsd-roadmapper.md +7 -7
  12. package/agents/gsd-verifier.md +29 -17
  13. package/bin/install.js +54 -198
  14. package/commands/gsd/add-tests.md +5 -4
  15. package/commands/gsd/complete-milestone.md +6 -6
  16. package/commands/gsd/debug.md +1 -1
  17. package/commands/gsd/map-codebase.md +3 -3
  18. package/commands/gsd/new-milestone.md +1 -1
  19. package/commands/gsd/new-project.md +1 -1
  20. package/commands/gsd/plan-milestone-gaps.md +2 -2
  21. package/commands/gsd/reapply-patches.md +2 -2
  22. package/commands/gsd/research-phase.md +3 -3
  23. package/commands/gsd/verify-work.md +1 -1
  24. package/get-shit-done/bin/lib/commands.cjs +1 -1
  25. package/get-shit-done/bin/lib/phase.cjs +2 -2
  26. package/get-shit-done/bin/lib/verify.cjs +8 -8
  27. package/get-shit-done/references/continuation-format.md +33 -27
  28. package/get-shit-done/references/model-profiles.md +1 -1
  29. package/get-shit-done/references/ui-brand.md +3 -3
  30. package/get-shit-done/templates/DEBUG.md +5 -5
  31. package/get-shit-done/templates/UAT.md +4 -4
  32. package/get-shit-done/templates/VALIDATION.md +1 -1
  33. package/get-shit-done/templates/debug-subagent-prompt.md +1 -1
  34. package/get-shit-done/templates/discovery.md +2 -2
  35. package/get-shit-done/templates/phase-prompt.md +1 -1
  36. package/get-shit-done/templates/planner-subagent-prompt.md +3 -3
  37. package/get-shit-done/templates/project.md +1 -1
  38. package/get-shit-done/templates/research.md +1 -1
  39. package/get-shit-done/templates/retrospective.md +13 -7
  40. package/get-shit-done/templates/state.md +2 -2
  41. package/get-shit-done/workflows/add-phase.md +8 -8
  42. package/get-shit-done/workflows/add-tests.md +41 -18
  43. package/get-shit-done/workflows/add-todo.md +2 -2
  44. package/get-shit-done/workflows/audit-milestone.md +8 -8
  45. package/get-shit-done/workflows/check-todos.md +8 -8
  46. package/get-shit-done/workflows/complete-milestone.md +34 -9
  47. package/get-shit-done/workflows/diagnose-issues.md +1 -1
  48. package/get-shit-done/workflows/discovery-phase.md +3 -3
  49. package/get-shit-done/workflows/discuss-phase.md +12 -12
  50. package/get-shit-done/workflows/execute-phase.md +8 -8
  51. package/get-shit-done/workflows/execute-plan.md +4 -4
  52. package/get-shit-done/workflows/health.md +5 -5
  53. package/get-shit-done/workflows/help.md +97 -90
  54. package/get-shit-done/workflows/insert-phase.md +7 -7
  55. package/get-shit-done/workflows/list-phase-assumptions.md +4 -4
  56. package/get-shit-done/workflows/map-codebase.md +3 -3
  57. package/get-shit-done/workflows/new-milestone.md +6 -6
  58. package/get-shit-done/workflows/new-project.md +12 -12
  59. package/get-shit-done/workflows/pause-work.md +1 -1
  60. package/get-shit-done/workflows/plan-milestone-gaps.md +8 -8
  61. package/get-shit-done/workflows/plan-phase.md +13 -13
  62. package/get-shit-done/workflows/progress.md +29 -29
  63. package/get-shit-done/workflows/quick.md +3 -3
  64. package/get-shit-done/workflows/remove-phase.md +6 -6
  65. package/get-shit-done/workflows/research-phase.md +2 -2
  66. package/get-shit-done/workflows/resume-project.md +11 -11
  67. package/get-shit-done/workflows/settings.md +6 -6
  68. package/get-shit-done/workflows/transition.md +13 -13
  69. package/get-shit-done/workflows/update.md +2 -2
  70. package/get-shit-done/workflows/verify-work.md +8 -8
  71. package/package.json +1 -1
  72. package/commands/gsd/new-project.md.bak +0 -1041
@@ -333,7 +333,7 @@ function cmdPhaseAdd(cwd, description, raw) {
333
333
  fs.writeFileSync(path.join(dirPath, '.gitkeep'), '');
334
334
 
335
335
  // Build phase entry
336
- const phaseEntry = `\n### Phase ${newPhaseNum}: ${description}\n\n**Goal:** [To be planned]\n**Requirements**: TBD\n**Depends on:** Phase ${maxPhase}\n**Plans:** 0 plans\n\nPlans:\n- [ ] TBD (run /gsd:plan-phase ${newPhaseNum} to break down)\n`;
336
+ const phaseEntry = `\n### Phase ${newPhaseNum}: ${description}\n\n**Goal:** [To be planned]\n**Requirements**: TBD\n**Depends on:** Phase ${maxPhase}\n**Plans:** 0 plans\n\nPlans:\n- [ ] TBD (run $gsd-plan-phase ${newPhaseNum} to break down)\n`;
337
337
 
338
338
  // Find insertion point: before last "---" or at end
339
339
  let updatedContent;
@@ -404,7 +404,7 @@ function cmdPhaseInsert(cwd, afterPhase, description, raw) {
404
404
  fs.writeFileSync(path.join(dirPath, '.gitkeep'), '');
405
405
 
406
406
  // Build phase entry
407
- const phaseEntry = `\n### Phase ${decimalPhase}: ${description} (INSERTED)\n\n**Goal:** [Urgent work - to be planned]\n**Requirements**: TBD\n**Depends on:** Phase ${afterPhase}\n**Plans:** 0 plans\n\nPlans:\n- [ ] TBD (run /gsd:plan-phase ${decimalPhase} to break down)\n`;
407
+ const phaseEntry = `\n### Phase ${decimalPhase}: ${description} (INSERTED)\n\n**Goal:** [Urgent work - to be planned]\n**Requirements**: TBD\n**Depends on:** Phase ${afterPhase}\n**Plans:** 0 plans\n\nPlans:\n- [ ] TBD (run $gsd-plan-phase ${decimalPhase} to break down)\n`;
408
408
 
409
409
  // Insert after the target phase section
410
410
  const headerPattern = new RegExp(`(#{2,4}\\s*Phase\\s+0*${afterPhaseEscaped}:[^\\n]*\\n)`, 'i');
@@ -537,7 +537,7 @@ function cmdValidateHealth(cwd, options, raw) {
537
537
 
538
538
  // ─── Check 1: .planning/ exists ───────────────────────────────────────────
539
539
  if (!fs.existsSync(planningDir)) {
540
- addIssue('error', 'E001', '.planning/ directory not found', 'Run /gsd:new-project to initialize');
540
+ addIssue('error', 'E001', '.planning/ directory not found', 'Run $gsd-new-project to initialize');
541
541
  output({
542
542
  status: 'broken',
543
543
  errors,
@@ -550,7 +550,7 @@ function cmdValidateHealth(cwd, options, raw) {
550
550
 
551
551
  // ─── Check 2: PROJECT.md exists and has required sections ─────────────────
552
552
  if (!fs.existsSync(projectPath)) {
553
- addIssue('error', 'E002', 'PROJECT.md not found', 'Run /gsd:new-project to create');
553
+ addIssue('error', 'E002', 'PROJECT.md not found', 'Run $gsd-new-project to create');
554
554
  } else {
555
555
  const content = fs.readFileSync(projectPath, 'utf-8');
556
556
  const requiredSections = ['## What This Is', '## Core Value', '## Requirements'];
@@ -563,12 +563,12 @@ function cmdValidateHealth(cwd, options, raw) {
563
563
 
564
564
  // ─── Check 3: ROADMAP.md exists ───────────────────────────────────────────
565
565
  if (!fs.existsSync(roadmapPath)) {
566
- addIssue('error', 'E003', 'ROADMAP.md not found', 'Run /gsd:new-milestone to create roadmap');
566
+ addIssue('error', 'E003', 'ROADMAP.md not found', 'Run $gsd-new-milestone to create roadmap');
567
567
  }
568
568
 
569
569
  // ─── Check 4: STATE.md exists and references valid phases ─────────────────
570
570
  if (!fs.existsSync(statePath)) {
571
- addIssue('error', 'E004', 'STATE.md not found', 'Run /gsd:health --repair to regenerate', true);
571
+ addIssue('error', 'E004', 'STATE.md not found', 'Run $gsd-health --repair to regenerate', true);
572
572
  repairs.push('regenerateState');
573
573
  } else {
574
574
  const stateContent = fs.readFileSync(statePath, 'utf-8');
@@ -591,7 +591,7 @@ function cmdValidateHealth(cwd, options, raw) {
591
591
  if (!diskPhases.has(ref) && !diskPhases.has(normalizedRef) && !diskPhases.has(String(parseInt(ref, 10)))) {
592
592
  // Only warn if phases dir has any content (not just an empty project)
593
593
  if (diskPhases.size > 0) {
594
- addIssue('warning', 'W002', `STATE.md references phase ${ref}, but only phases ${[...diskPhases].sort().join(', ')} exist`, 'Run /gsd:health --repair to regenerate STATE.md', true);
594
+ addIssue('warning', 'W002', `STATE.md references phase ${ref}, but only phases ${[...diskPhases].sort().join(', ')} exist`, 'Run $gsd-health --repair to regenerate STATE.md', true);
595
595
  if (!repairs.includes('regenerateState')) repairs.push('regenerateState');
596
596
  }
597
597
  }
@@ -600,7 +600,7 @@ function cmdValidateHealth(cwd, options, raw) {
600
600
 
601
601
  // ─── Check 5: config.json valid JSON + valid schema ───────────────────────
602
602
  if (!fs.existsSync(configPath)) {
603
- addIssue('warning', 'W003', 'config.json not found', 'Run /gsd:health --repair to create with defaults', true);
603
+ addIssue('warning', 'W003', 'config.json not found', 'Run $gsd-health --repair to create with defaults', true);
604
604
  repairs.push('createConfig');
605
605
  } else {
606
606
  try {
@@ -612,7 +612,7 @@ function cmdValidateHealth(cwd, options, raw) {
612
612
  addIssue('warning', 'W004', `config.json: invalid model_profile "${parsed.model_profile}"`, `Valid values: ${validProfiles.join(', ')}`);
613
613
  }
614
614
  } catch (err) {
615
- addIssue('error', 'E005', `config.json: JSON parse error - ${err.message}`, 'Run /gsd:health --repair to reset to defaults', true);
615
+ addIssue('error', 'E005', `config.json: JSON parse error - ${err.message}`, 'Run $gsd-health --repair to reset to defaults', true);
616
616
  repairs.push('resetConfig');
617
617
  }
618
618
  }
@@ -725,7 +725,7 @@ function cmdValidateHealth(cwd, options, raw) {
725
725
  stateContent += `**Current phase:** (determining...)\n`;
726
726
  stateContent += `**Status:** Resuming\n\n`;
727
727
  stateContent += `## Session Log\n\n`;
728
- stateContent += `- ${new Date().toISOString().split('T')[0]}: STATE.md regenerated by /gsd:health --repair\n`;
728
+ stateContent += `- ${new Date().toISOString().split('T')[0]}: STATE.md regenerated by $gsd-health --repair\n`;
729
729
  writeStateMd(statePath, stateContent, cwd);
730
730
  repairActions.push({ action: repair, success: true, path: 'STATE.md' });
731
731
  break;
@@ -13,7 +13,7 @@ Standard format for presenting next steps after completing a command or workflow
13
13
 
14
14
  `{command to copy-paste}`
15
15
 
16
- <sub>`/clear` first → fresh context window</sub>
16
+ <sub>start a new session first → fresh context window</sub>
17
17
 
18
18
  ---
19
19
 
@@ -29,7 +29,7 @@ Standard format for presenting next steps after completing a command or workflow
29
29
  1. **Always show what it is** — name + description, never just a command path
30
30
  2. **Pull context from source** — ROADMAP.md for phases, PLAN.md `<objective>` for plans
31
31
  3. **Command in inline code** — backticks, easy to copy-paste, renders as clickable link
32
- 4. **`/clear` explanation** — always include, keeps it concise but explains why
32
+ 4. **New session reminder** — always include, keeps it concise but explains why
33
33
  5. **"Also available" not "Other options"** — sounds more app-like
34
34
  6. **Visual separators** — `---` above and below to make it stand out
35
35
 
@@ -44,15 +44,15 @@ Standard format for presenting next steps after completing a command or workflow
44
44
 
45
45
  **02-03: Refresh Token Rotation** — Add /api/auth/refresh with sliding expiry
46
46
 
47
- `/gsd:execute-phase 2`
47
+ `$gsd-execute-phase 2`
48
48
 
49
- <sub>`/clear` first → fresh context window</sub>
49
+ <sub>start a new session first → fresh context window</sub>
50
50
 
51
51
  ---
52
52
 
53
53
  **Also available:**
54
54
  - Review plan before executing
55
- - `/gsd:list-phase-assumptions 2` — check assumptions
55
+ - `$gsd-list-phase-assumptions 2` — check assumptions
56
56
 
57
57
  ---
58
58
  ```
@@ -69,9 +69,9 @@ Add note that this is the last plan and what comes after:
69
69
  **02-03: Refresh Token Rotation** — Add /api/auth/refresh with sliding expiry
70
70
  <sub>Final plan in Phase 2</sub>
71
71
 
72
- `/gsd:execute-phase 2`
72
+ `$gsd-execute-phase 2`
73
73
 
74
- <sub>`/clear` first → fresh context window</sub>
74
+ <sub>start a new session first → fresh context window</sub>
75
75
 
76
76
  ---
77
77
 
@@ -91,15 +91,15 @@ Add note that this is the last plan and what comes after:
91
91
 
92
92
  **Phase 2: Authentication** — JWT login flow with refresh tokens
93
93
 
94
- `/gsd:plan-phase 2`
94
+ `$gsd-plan-phase 2`
95
95
 
96
- <sub>`/clear` first → fresh context window</sub>
96
+ <sub>start a new session first → fresh context window</sub>
97
97
 
98
98
  ---
99
99
 
100
100
  **Also available:**
101
- - `/gsd:discuss-phase 2` — gather context first
102
- - `/gsd:research-phase 2` — investigate unknowns
101
+ - `$gsd-discuss-phase 2` — gather context first
102
+ - `$gsd-research-phase 2` — investigate unknowns
103
103
  - Review roadmap
104
104
 
105
105
  ---
@@ -120,15 +120,15 @@ Show completion status before next action:
120
120
 
121
121
  **Phase 3: Core Features** — User dashboard, settings, and data export
122
122
 
123
- `/gsd:plan-phase 3`
123
+ `$gsd-plan-phase 3`
124
124
 
125
- <sub>`/clear` first → fresh context window</sub>
125
+ <sub>start a new session first → fresh context window</sub>
126
126
 
127
127
  ---
128
128
 
129
129
  **Also available:**
130
- - `/gsd:discuss-phase 3` — gather context first
131
- - `/gsd:research-phase 3` — investigate unknowns
130
+ - `$gsd-discuss-phase 3` — gather context first
131
+ - `$gsd-research-phase 3` — investigate unknowns
132
132
  - Review what Phase 2 built
133
133
 
134
134
  ---
@@ -145,13 +145,13 @@ When there's no clear primary action:
145
145
 
146
146
  **Phase 3: Core Features** — User dashboard, settings, and data export
147
147
 
148
- **To plan directly:** `/gsd:plan-phase 3`
148
+ **To plan directly:** `$gsd-plan-phase 3`
149
149
 
150
- **To discuss context first:** `/gsd:discuss-phase 3`
150
+ **To discuss context first:** `$gsd-discuss-phase 3`
151
151
 
152
- **To research unknowns:** `/gsd:research-phase 3`
152
+ **To research unknowns:** `$gsd-research-phase 3`
153
153
 
154
- <sub>`/clear` first → fresh context window</sub>
154
+ <sub>start a new session first → fresh context window</sub>
155
155
 
156
156
  ---
157
157
  ```
@@ -169,9 +169,9 @@ All 4 phases shipped
169
169
 
170
170
  **Start v1.1** — questioning → research → requirements → roadmap
171
171
 
172
- `/gsd:new-milestone`
172
+ `$gsd-new-milestone`
173
173
 
174
- <sub>`/clear` first → fresh context window</sub>
174
+ <sub>start a new session first → fresh context window</sub>
175
175
 
176
176
  ---
177
177
  ```
@@ -182,6 +182,7 @@ All 4 phases shipped
182
182
 
183
183
  ```markdown
184
184
  ### Phase 2: Authentication
185
+
185
186
  **Goal**: JWT login flow with refresh tokens
186
187
  ```
187
188
 
@@ -191,6 +192,7 @@ Extract: `**Phase 2: Authentication** — JWT login flow with refresh tokens`
191
192
 
192
193
  ```markdown
193
194
  Plans:
195
+
194
196
  - [ ] 02-03: Add refresh token rotation
195
197
  ```
196
198
 
@@ -213,18 +215,18 @@ Extract: `**02-03: Refresh Token Rotation** — Add /api/auth/refresh with slidi
213
215
  ```
214
216
  ## To Continue
215
217
 
216
- Run `/clear`, then paste:
217
- /gsd:execute-phase 2
218
+ Start a new session, then paste:
219
+ $gsd-execute-phase 2
218
220
  ```
219
221
 
220
222
  User has no idea what 02-03 is about.
221
223
 
222
- ### Don't: Missing /clear explanation
224
+ ### Don't: Missing session reset explanation
223
225
 
224
226
  ```
225
- `/gsd:plan-phase 3`
227
+ `$gsd-plan-phase 3`
226
228
 
227
- Run /clear first.
229
+ Start a new session first.
228
230
  ```
229
231
 
230
232
  Doesn't explain why. User might skip it.
@@ -241,9 +243,13 @@ Sounds like an afterthought. Use "Also available:" instead.
241
243
  ### Don't: Fenced code blocks for commands
242
244
 
243
245
  ```
246
+
244
247
  ```
245
- /gsd:plan-phase 3
248
+
249
+ $gsd-plan-phase 3
250
+
246
251
  ```
252
+
247
253
  ```
248
254
 
249
255
  Fenced blocks inside templates create nesting ambiguity. Use inline backticks instead.
@@ -65,7 +65,7 @@ Overrides take precedence over the profile. Valid values: `opus`, `sonnet`, `hai
65
65
 
66
66
  ## Switching Profiles
67
67
 
68
- Runtime: `/gsd:set-profile <profile>`
68
+ Runtime: `$gsd-set-profile <profile>`
69
69
 
70
70
  Per-project default: Set in `.planning/config.json`:
71
71
  ```json
@@ -110,13 +110,13 @@ Always at end of major completions.
110
110
 
111
111
  `{copy-paste command}`
112
112
 
113
- <sub>`/clear` first → fresh context window</sub>
113
+ <sub>start a new session first → fresh context window</sub>
114
114
 
115
115
  ───────────────────────────────────────────────────────────────
116
116
 
117
117
  **Also available:**
118
- - `/gsd:alternative-1` — description
119
- - `/gsd:alternative-2` — description
118
+ - `$gsd-alternative-1` — description
119
+ - `$gsd-alternative-2` — description
120
120
 
121
121
  ───────────────────────────────────────────────────────────────
122
122
  ```
@@ -32,7 +32,7 @@ reproduction: [how to trigger]
32
32
  started: [when it broke / always broken]
33
33
 
34
34
  ## Eliminated
35
- <!-- APPEND only - prevents re-investigating after /clear -->
35
+ <!-- APPEND only - prevents re-investigating after a session reset -->
36
36
 
37
37
  - hypothesis: [theory that was wrong]
38
38
  evidence: [what disproved it]
@@ -68,7 +68,7 @@ files_changed: []
68
68
  **Current Focus:**
69
69
  - OVERWRITE entirely on each update
70
70
  - Always reflects what Codex is doing RIGHT NOW
71
- - If Codex reads this after /clear, it knows exactly where to resume
71
+ - If Codex reads this after a session reset, it knows exactly where to resume
72
72
  - Fields: hypothesis, test, expecting, next_action
73
73
 
74
74
  **Symptoms:**
@@ -81,7 +81,7 @@ files_changed: []
81
81
  - APPEND only - never remove entries
82
82
  - Prevents re-investigating dead ends after context reset
83
83
  - Each entry: hypothesis, evidence that disproved it, timestamp
84
- - Critical for efficiency across /clear boundaries
84
+ - Critical for efficiency across session boundaries
85
85
 
86
86
  **Evidence:**
87
87
  - APPEND only - never remove entries
@@ -99,7 +99,7 @@ files_changed: []
99
99
 
100
100
  <lifecycle>
101
101
 
102
- **Creation:** Immediately when /gsd:debug is called
102
+ **Creation:** Immediately when $gsd-debug is called
103
103
  - Create file with trigger from user input
104
104
  - Set status to "gathering"
105
105
  - Current Focus: next_action = "gather symptoms"
@@ -140,7 +140,7 @@ files_changed: []
140
140
 
141
141
  <resume_behavior>
142
142
 
143
- When Codex reads this file after /clear:
143
+ When Codex reads this file after a session reset:
144
144
 
145
145
  1. Parse frontmatter → know status
146
146
  2. Read Current Focus → know exactly what was happening
@@ -98,7 +98,7 @@ skipped: [N]
98
98
  **Gaps:**
99
99
  - APPEND only when issue found (YAML format)
100
100
  - After diagnosis: fill `root_cause`, `artifacts`, `missing`, `debug_session`
101
- - This section feeds directly into /gsd:plan-phase --gaps
101
+ - This section feeds directly into $gsd-plan-phase --gaps
102
102
 
103
103
  </section_rules>
104
104
 
@@ -112,7 +112,7 @@ skipped: [N]
112
112
  4. UAT.md Gaps section updated with diagnosis:
113
113
  - Each gap gets `root_cause`, `artifacts`, `missing`, `debug_session` filled
114
114
  5. status → "diagnosed"
115
- 6. Ready for /gsd:plan-phase --gaps with root causes
115
+ 6. Ready for $gsd-plan-phase --gaps with root causes
116
116
 
117
117
  **After diagnosis:**
118
118
  ```yaml
@@ -136,7 +136,7 @@ skipped: [N]
136
136
 
137
137
  <lifecycle>
138
138
 
139
- **Creation:** When /gsd:verify-work starts new session
139
+ **Creation:** When $gsd-verify-work starts new session
140
140
  - Extract tests from SUMMARY.md files
141
141
  - Set status to "testing"
142
142
  - Current Test points to test 1
@@ -156,7 +156,7 @@ skipped: [N]
156
156
  - Commit file
157
157
  - Present summary with next steps
158
158
 
159
- **Resume after /clear:**
159
+ **Resume after session reset:**
160
160
  1. Read frontmatter → know phase and status
161
161
  2. Read Current Test → know where we are
162
162
  3. Find first [pending] result → continue from there
@@ -29,7 +29,7 @@ created: {date}
29
29
 
30
30
  - **After every task commit:** Run `{quick run command}`
31
31
  - **After every plan wave:** Run `{full suite command}`
32
- - **Before `/gsd:verify-work`:** Full suite must be green
32
+ - **Before `$gsd-verify-work`:** Full suite must be green
33
33
  - **Max feedback latency:** {N} seconds
34
34
 
35
35
  ---
@@ -51,7 +51,7 @@ Create: .planning/debug/{slug}.md
51
51
 
52
52
  ## Usage
53
53
 
54
- **From /gsd:debug:**
54
+ **From $gsd-debug:**
55
55
  ```python
56
56
  Task(
57
57
  prompt=filled_template,
@@ -4,7 +4,7 @@ Template for `.planning/phases/XX-name/DISCOVERY.md` - shallow research for libr
4
4
 
5
5
  **Purpose:** Answer "which library/option should we use" questions during mandatory discovery in plan-phase.
6
6
 
7
- For deep ecosystem research ("how do experts build this"), use `/gsd:research-phase` which produces RESEARCH.md.
7
+ For deep ecosystem research ("how do experts build this"), use `$gsd-research-phase` which produces RESEARCH.md.
8
8
 
9
9
  ---
10
10
 
@@ -142,5 +142,5 @@ Create `.planning/phases/XX-name/DISCOVERY.md`:
142
142
  - Niche/complex domains (3D, games, audio, shaders)
143
143
  - Need ecosystem knowledge, not just library choice
144
144
  - "How do experts build this" questions
145
- - Use `/gsd:research-phase` for these
145
+ - Use `$gsd-research-phase` for these
146
146
  </guidelines>
@@ -134,7 +134,7 @@ After completion, create `.planning/phases/XX-name/{phase}-{plan}-SUMMARY.md`
134
134
  | `user_setup` | No | Array of human-required setup items (external services) |
135
135
  | `must_haves` | Yes | Goal-backward verification criteria (see below) |
136
136
 
137
- **Wave is pre-computed:** Wave numbers are assigned during `/gsd:plan-phase`. Execute-phase reads `wave` directly from frontmatter and groups plans by wave number. No runtime dependency analysis needed.
137
+ **Wave is pre-computed:** Wave numbers are assigned during `$gsd-plan-phase`. Execute-phase reads `wave` directly from frontmatter and groups plans by wave number. No runtime dependency analysis needed.
138
138
 
139
139
  **Must-haves enable verification:** The `must_haves` field carries goal-backward requirements from planning to execution. After all plans complete, execute-phase spawns a verification subagent that checks these criteria against the actual codebase.
140
140
 
@@ -34,7 +34,7 @@ Template for spawning gsd-planner agent. The agent contains all planning experti
34
34
  </planning_context>
35
35
 
36
36
  <downstream_consumer>
37
- Output consumed by /gsd:execute-phase
37
+ Output consumed by $gsd-execute-phase
38
38
  Plans must be executable prompts with:
39
39
  - Frontmatter (wave, depends_on, files_modified, autonomous)
40
40
  - Tasks in XML format
@@ -68,7 +68,7 @@ Before returning PLANNING COMPLETE:
68
68
 
69
69
  ## Usage
70
70
 
71
- **From /gsd:plan-phase (standard mode):**
71
+ **From $gsd-plan-phase (standard mode):**
72
72
  ```python
73
73
  Task(
74
74
  prompt=filled_template,
@@ -77,7 +77,7 @@ Task(
77
77
  )
78
78
  ```
79
79
 
80
- **From /gsd:plan-phase --gaps (gap closure mode):**
80
+ **From $gsd-plan-phase --gaps (gap closure mode):**
81
81
  ```python
82
82
  Task(
83
83
  prompt=filled_template, # with mode: gap_closure
@@ -147,7 +147,7 @@ PROJECT.md evolves throughout the project lifecycle.
147
147
 
148
148
  For existing codebases:
149
149
 
150
- 1. **Map codebase first** via `/gsd:map-codebase`
150
+ 1. **Map codebase first** via `$gsd-map-codebase`
151
151
 
152
152
  2. **Infer Validated requirements** from existing code:
153
153
  - What does the codebase actually do?
@@ -18,7 +18,7 @@ Template for `.planning/phases/XX-name/{phase_num}-RESEARCH.md` - comprehensive
18
18
  <user_constraints>
19
19
  ## User Constraints (from CONTEXT.md)
20
20
 
21
- **CRITICAL:** If CONTEXT.md exists from /gsd:discuss-phase, copy locked decisions here verbatim. These MUST be honored by the planner.
21
+ **CRITICAL:** If CONTEXT.md exists from $gsd-discuss-phase, copy locked decisions here verbatim. These MUST be honored by the planner.
22
22
 
23
23
  ### Locked Decisions
24
24
  [Copy from CONTEXT.md `## Decisions` section - these are NON-NEGOTIABLE]
@@ -1,6 +1,6 @@
1
1
  # Project Retrospective
2
2
 
3
- *A living document updated after each milestone. Lessons feed forward into future planning.*
3
+ _A living document updated after each milestone. Lessons feed forward into future planning._
4
4
 
5
5
  ## Milestone: v{version} — {name}
6
6
 
@@ -8,27 +8,33 @@
8
8
  **Phases:** {count} | **Plans:** {count} | **Sessions:** {count}
9
9
 
10
10
  ### What Was Built
11
+
11
12
  - {Key deliverable 1}
12
13
  - {Key deliverable 2}
13
14
  - {Key deliverable 3}
14
15
 
15
16
  ### What Worked
17
+
16
18
  - {Efficiency win or successful pattern}
17
19
  - {What went smoothly}
18
20
 
19
21
  ### What Was Inefficient
22
+
20
23
  - {Missed opportunity}
21
24
  - {What took longer than expected}
22
25
 
23
26
  ### Patterns Established
27
+
24
28
  - {New pattern or convention that should persist}
25
29
 
26
30
  ### Key Lessons
31
+
27
32
  1. {Specific, actionable lesson}
28
33
  2. {Another lesson}
29
34
 
30
35
  ### Cost Observations
31
- - Model mix: {X}% opus, {Y}% sonnet, {Z}% haiku
36
+
37
+ - Model mix: {breakdown of model usage}
32
38
  - Sessions: {count}
33
39
  - Notable: {efficiency observation}
34
40
 
@@ -38,15 +44,15 @@
38
44
 
39
45
  ### Process Evolution
40
46
 
41
- | Milestone | Sessions | Phases | Key Change |
42
- |-----------|----------|--------|------------|
43
- | v{X} | {N} | {M} | {What changed in process} |
47
+ | Milestone | Sessions | Phases | Key Change |
48
+ | --------- | -------- | ------ | ------------------------- |
49
+ | v{X} | {N} | {M} | {What changed in process} |
44
50
 
45
51
  ### Cumulative Quality
46
52
 
47
53
  | Milestone | Tests | Coverage | Zero-Dep Additions |
48
- |-----------|-------|----------|-------------------|
49
- | v{X} | {N} | {Y}% | {count} |
54
+ | --------- | ----- | -------- | ------------------ |
55
+ | v{X} | {N} | {Y}% | {count} |
50
56
 
51
57
  ### Top Lessons (Verified Across Milestones)
52
58
 
@@ -145,10 +145,10 @@ Updated after each plan completion.
145
145
 
146
146
  **Decisions:** Reference to PROJECT.md Key Decisions table, plus recent decisions summary for quick access. Full decision log lives in PROJECT.md.
147
147
 
148
- **Pending Todos:** Ideas captured via /gsd:add-todo
148
+ **Pending Todos:** Ideas captured via $gsd-add-todo
149
149
  - Count of pending todos
150
150
  - Reference to .planning/todos/pending/
151
- - Brief list if few, count if many (e.g., "5 pending todos — see /gsd:check-todos")
151
+ - Brief list if few, count if many (e.g., "5 pending todos — see $gsd-check-todos")
152
152
 
153
153
  **Blockers/Concerns:** From "Next Phase Readiness" sections
154
154
  - Issues that affect future work
@@ -11,15 +11,15 @@ Read all files referenced by the invoking prompt's execution_context before star
11
11
  <step name="parse_arguments">
12
12
  Parse the command arguments:
13
13
  - All arguments become the phase description
14
- - Example: `/gsd:add-phase Add authentication` → description = "Add authentication"
15
- - Example: `/gsd:add-phase Fix critical performance issues` → description = "Fix critical performance issues"
14
+ - Example: `$gsd-add-phase Add authentication` → description = "Add authentication"
15
+ - Example: `$gsd-add-phase Fix critical performance issues` → description = "Fix critical performance issues"
16
16
 
17
17
  If no arguments provided:
18
18
 
19
19
  ```
20
20
  ERROR: Phase description required
21
- Usage: /gsd:add-phase <description>
22
- Example: /gsd:add-phase Add authentication system
21
+ Usage: $gsd-add-phase <description>
22
+ Example: $gsd-add-phase Add authentication system
23
23
  ```
24
24
 
25
25
  Exit.
@@ -35,7 +35,7 @@ INIT=$(node ~/.codex/get-shit-done/bin/gsd-tools.cjs init phase-op "0")
35
35
  Check `roadmap_exists` from init JSON. If false:
36
36
  ```
37
37
  ERROR: No roadmap found (.planning/ROADMAP.md)
38
- Run /gsd:new-project to initialize.
38
+ Run $gsd-new-project to initialize.
39
39
  ```
40
40
  Exit.
41
41
  </step>
@@ -86,14 +86,14 @@ Roadmap updated: .planning/ROADMAP.md
86
86
 
87
87
  **Phase {N}: {description}**
88
88
 
89
- `/gsd:plan-phase {N}`
89
+ `$gsd-plan-phase {N}`
90
90
 
91
- <sub>`/clear` first → fresh context window</sub>
91
+ <sub>start a new session first → fresh context window</sub>
92
92
 
93
93
  ---
94
94
 
95
95
  **Also available:**
96
- - `/gsd:add-phase <description>` — add another phase
96
+ - `$gsd-add-phase <description>` — add another phase
97
97
  - Review roadmap
98
98
 
99
99
  ---