@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.
Files changed (73) hide show
  1. package/.codex/config.toml +77 -0
  2. package/README.md +53 -42
  3. package/agents/gsd-codebase-mapper.md +3 -3
  4. package/agents/gsd-debugger.md +5 -5
  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 +19 -19
  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 +161 -208
  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/{AGENTS.md → get-shit-done/AGENTS.md} +1 -1
  25. package/get-shit-done/bin/lib/commands.cjs +1 -1
  26. package/get-shit-done/bin/lib/phase.cjs +2 -2
  27. package/get-shit-done/bin/lib/verify.cjs +8 -8
  28. package/get-shit-done/references/continuation-format.md +16 -16
  29. package/get-shit-done/references/model-profiles.md +1 -1
  30. package/get-shit-done/references/ui-brand.md +2 -2
  31. package/get-shit-done/templates/DEBUG.md +1 -1
  32. package/get-shit-done/templates/UAT.md +3 -3
  33. package/get-shit-done/templates/VALIDATION.md +1 -1
  34. package/get-shit-done/templates/debug-subagent-prompt.md +1 -1
  35. package/get-shit-done/templates/discovery.md +2 -2
  36. package/get-shit-done/templates/phase-prompt.md +1 -1
  37. package/get-shit-done/templates/planner-subagent-prompt.md +3 -3
  38. package/get-shit-done/templates/project.md +1 -1
  39. package/get-shit-done/templates/research.md +1 -1
  40. package/get-shit-done/templates/retrospective.md +13 -7
  41. package/get-shit-done/templates/state.md +2 -2
  42. package/get-shit-done/workflows/add-phase.md +7 -7
  43. package/get-shit-done/workflows/add-tests.md +41 -18
  44. package/get-shit-done/workflows/add-todo.md +2 -2
  45. package/get-shit-done/workflows/audit-milestone.md +5 -5
  46. package/get-shit-done/workflows/check-todos.md +8 -8
  47. package/get-shit-done/workflows/complete-milestone.md +33 -8
  48. package/get-shit-done/workflows/diagnose-issues.md +1 -1
  49. package/get-shit-done/workflows/discovery-phase.md +3 -3
  50. package/get-shit-done/workflows/discuss-phase.md +10 -10
  51. package/get-shit-done/workflows/execute-phase.md +7 -7
  52. package/get-shit-done/workflows/execute-plan.md +3 -3
  53. package/get-shit-done/workflows/health.md +5 -5
  54. package/get-shit-done/workflows/help.md +85 -85
  55. package/get-shit-done/workflows/insert-phase.md +6 -6
  56. package/get-shit-done/workflows/list-phase-assumptions.md +4 -4
  57. package/get-shit-done/workflows/map-codebase.md +2 -2
  58. package/get-shit-done/workflows/new-milestone.md +5 -5
  59. package/get-shit-done/workflows/new-project.md +11 -11
  60. package/get-shit-done/workflows/pause-work.md +1 -1
  61. package/get-shit-done/workflows/plan-milestone-gaps.md +7 -7
  62. package/get-shit-done/workflows/plan-phase.md +12 -12
  63. package/get-shit-done/workflows/progress.md +22 -22
  64. package/get-shit-done/workflows/quick.md +3 -3
  65. package/get-shit-done/workflows/remove-phase.md +6 -6
  66. package/get-shit-done/workflows/research-phase.md +2 -2
  67. package/get-shit-done/workflows/resume-project.md +9 -9
  68. package/get-shit-done/workflows/settings.md +5 -5
  69. package/get-shit-done/workflows/transition.md +10 -10
  70. package/get-shit-done/workflows/update.md +2 -2
  71. package/get-shit-done/workflows/verify-work.md +8 -8
  72. package/package.json +2 -2
  73. package/commands/gsd/new-project.md.bak +0 -1041
@@ -25,7 +25,7 @@ Initialize a new project through unified flow: questioning → research (optiona
25
25
  - `.planning/ROADMAP.md` — phase structure
26
26
  - `.planning/STATE.md` — project memory
27
27
 
28
- **After this command:** Run `/gsd:plan-phase 1` to start execution.
28
+ **After this command:** Run `$gsd-plan-phase 1` to start execution.
29
29
  </objective>
30
30
 
31
31
  <execution_context>
@@ -10,11 +10,11 @@ allowed-tools:
10
10
  - AskUserQuestion
11
11
  ---
12
12
  <objective>
13
- Create all phases necessary to close gaps identified by `/gsd:audit-milestone`.
13
+ Create all phases necessary to close gaps identified by `$gsd-audit-milestone`.
14
14
 
15
15
  Reads MILESTONE-AUDIT.md, groups gaps into logical phases, creates phase entries in ROADMAP.md, and offers to plan each phase.
16
16
 
17
- One command creates all fix phases — no manual `/gsd:add-phase` per gap.
17
+ One command creates all fix phases — no manual `$gsd-add-phase` per gap.
18
18
  </objective>
19
19
 
20
20
  <execution_context>
@@ -28,7 +28,7 @@ Read `backup-meta.json` from the patches directory.
28
28
  ```
29
29
  No local patches found. Nothing to reapply.
30
30
 
31
- Local patches are automatically saved when you run /gsd:update
31
+ Local patches are automatically saved when you run $gsd-update
32
32
  after modifying any GSD workflow, command, or agent files.
33
33
  ```
34
34
  Exit.
@@ -76,7 +76,7 @@ For each file in `backup-meta.json`:
76
76
  After reapplying, regenerate the file manifest so future updates correctly detect these as user modifications:
77
77
 
78
78
  ```bash
79
- # The manifest will be regenerated on next /gsd:update
79
+ # The manifest will be regenerated on next $gsd-update
80
80
  # For now, just note which files were modified
81
81
  ```
82
82
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: gsd:research-phase
3
- description: Research how to implement a phase (standalone - usually use /gsd:plan-phase instead)
3
+ description: Research how to implement a phase (standalone - usually use $gsd-plan-phase instead)
4
4
  argument-hint: "[phase]"
5
5
  allowed-tools:
6
6
  - Read
@@ -11,7 +11,7 @@ allowed-tools:
11
11
  <objective>
12
12
  Research how to implement a phase. Spawns gsd-phase-researcher agent with phase context.
13
13
 
14
- **Note:** This is a standalone research command. For most workflows, use `/gsd:plan-phase` which integrates research automatically.
14
+ **Note:** This is a standalone research command. For most workflows, use `$gsd-plan-phase` which integrates research automatically.
15
15
 
16
16
  **Use this command when:**
17
17
  - You want to research without planning yet
@@ -109,7 +109,7 @@ Mode: ecosystem
109
109
  </additional_context>
110
110
 
111
111
  <downstream_consumer>
112
- Your RESEARCH.md will be loaded by `/gsd:plan-phase` which uses specific sections:
112
+ Your RESEARCH.md will be loaded by `$gsd-plan-phase` which uses specific sections:
113
113
  - `## Standard Stack` → Plans use these libraries
114
114
  - `## Architecture Patterns` → Task structure follows these
115
115
  - `## Don't Hand-Roll` → Tasks NEVER build custom solutions for listed problems
@@ -16,7 +16,7 @@ Validate built features through conversational testing with persistent state.
16
16
 
17
17
  Purpose: Confirm what Codex built actually works from user's perspective. One test at a time, plain text responses, no interrogation. When issues are found, automatically diagnose, plan fixes, and prepare for execution.
18
18
 
19
- Output: {phase_num}-UAT.md tracking all test results. If issues found: diagnosed gaps, verified fix plans ready for /gsd:execute-phase
19
+ Output: {phase_num}-UAT.md tracking all test results. If issues found: diagnosed gaps, verified fix plans ready for $gsd-execute-phase
20
20
  </objective>
21
21
 
22
22
  <execution_context>
@@ -1,6 +1,6 @@
1
1
  # get-shit-done-codex (GSD) - Agent Instructions
2
2
 
3
- A meta-prompting, context engineering and spec-driven development system for Codex CLI.
3
+ A meta-prompting, context engineering and spec-driven development system for Codex CLI and Desktop.
4
4
 
5
5
  ## Overview
6
6
 
@@ -497,7 +497,7 @@ function cmdScaffold(cwd, type, options, raw) {
497
497
  switch (type) {
498
498
  case 'context': {
499
499
  filePath = path.join(phaseDir, `${padded}-CONTEXT.md`);
500
- content = `---\nphase: "${padded}"\nname: "${name || phaseInfo?.phase_name || 'Unnamed'}"\ncreated: ${today}\n---\n\n# Phase ${phase}: ${name || phaseInfo?.phase_name || 'Unnamed'} — Context\n\n## Decisions\n\n_Decisions will be captured during /gsd:discuss-phase ${phase}_\n\n## Discretion Areas\n\n_Areas where the executor can use judgment_\n\n## Deferred Ideas\n\n_Ideas to consider later_\n`;
500
+ content = `---\nphase: "${padded}"\nname: "${name || phaseInfo?.phase_name || 'Unnamed'}"\ncreated: ${today}\n---\n\n# Phase ${phase}: ${name || phaseInfo?.phase_name || 'Unnamed'} — Context\n\n## Decisions\n\n_Decisions will be captured during $gsd-discuss-phase ${phase}_\n\n## Discretion Areas\n\n_Areas where the executor can use judgment_\n\n## Deferred Ideas\n\n_Ideas to consider later_\n`;
501
501
  break;
502
502
  }
503
503
  case 'uat': {
@@ -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;
@@ -44,7 +44,7 @@ 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
49
  <sub>`/clear` first → fresh context window</sub>
50
50
 
@@ -52,7 +52,7 @@ Standard format for presenting next steps after completing a command or workflow
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,7 +69,7 @@ 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
74
  <sub>`/clear` first → fresh context window</sub>
75
75
 
@@ -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
96
  <sub>`/clear` 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
125
  <sub>`/clear` 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,11 +145,11 @@ 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
154
  <sub>`/clear` first → fresh context window</sub>
155
155
 
@@ -169,7 +169,7 @@ 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
174
  <sub>`/clear` first → fresh context window</sub>
175
175
 
@@ -214,7 +214,7 @@ Extract: `**02-03: Refresh Token Rotation** — Add /api/auth/refresh with slidi
214
214
  ## To Continue
215
215
 
216
216
  Run `/clear`, then paste:
217
- /gsd:execute-phase 2
217
+ $gsd-execute-phase 2
218
218
  ```
219
219
 
220
220
  User has no idea what 02-03 is about.
@@ -222,7 +222,7 @@ User has no idea what 02-03 is about.
222
222
  ### Don't: Missing /clear explanation
223
223
 
224
224
  ```
225
- `/gsd:plan-phase 3`
225
+ `$gsd-plan-phase 3`
226
226
 
227
227
  Run /clear first.
228
228
  ```
@@ -242,7 +242,7 @@ Sounds like an afterthought. Use "Also available:" instead.
242
242
 
243
243
  ```
244
244
  ```
245
- /gsd:plan-phase 3
245
+ $gsd-plan-phase 3
246
246
  ```
247
247
  ```
248
248
 
@@ -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
@@ -115,8 +115,8 @@ Always at end of major completions.
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
  ```
@@ -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"
@@ -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
@@ -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
91
  <sub>`/clear` 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
  ---