@undeemed/get-shit-done-codex 1.6.12 → 1.20.3

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 (114) hide show
  1. package/README.md +40 -7
  2. package/agents/gsd-codebase-mapper.md +761 -0
  3. package/agents/gsd-debugger.md +1198 -0
  4. package/agents/gsd-executor.md +419 -0
  5. package/agents/gsd-integration-checker.md +423 -0
  6. package/agents/gsd-phase-researcher.md +469 -0
  7. package/agents/gsd-plan-checker.md +622 -0
  8. package/agents/gsd-planner.md +1159 -0
  9. package/agents/gsd-project-researcher.md +618 -0
  10. package/agents/gsd-research-synthesizer.md +236 -0
  11. package/agents/gsd-roadmapper.md +639 -0
  12. package/agents/gsd-verifier.md +541 -0
  13. package/bin/install.js +108 -102
  14. package/commands/gsd/add-phase.md +17 -185
  15. package/commands/gsd/add-todo.md +23 -163
  16. package/commands/gsd/audit-milestone.md +3 -219
  17. package/commands/gsd/check-todos.md +20 -196
  18. package/commands/gsd/cleanup.md +18 -0
  19. package/commands/gsd/complete-milestone.md +2 -2
  20. package/commands/gsd/debug.md +13 -0
  21. package/commands/gsd/discuss-phase.md +13 -6
  22. package/commands/gsd/execute-phase.md +4 -266
  23. package/commands/gsd/health.md +22 -0
  24. package/commands/gsd/help.md +8 -369
  25. package/commands/gsd/insert-phase.md +9 -203
  26. package/commands/gsd/join-discord.md +18 -0
  27. package/commands/gsd/list-phase-assumptions.md +4 -4
  28. package/commands/gsd/map-codebase.md +1 -1
  29. package/commands/gsd/new-milestone.md +16 -682
  30. package/commands/gsd/new-project.md +12 -866
  31. package/commands/gsd/new-project.md.bak +1041 -0
  32. package/commands/gsd/pause-work.md +17 -105
  33. package/commands/gsd/plan-milestone-gaps.md +3 -247
  34. package/commands/gsd/plan-phase.md +13 -444
  35. package/commands/gsd/progress.md +5 -337
  36. package/commands/gsd/quick.md +40 -0
  37. package/commands/gsd/reapply-patches.md +110 -0
  38. package/commands/gsd/remove-phase.md +9 -315
  39. package/commands/gsd/research-phase.md +27 -20
  40. package/commands/gsd/resume-work.md +2 -2
  41. package/commands/gsd/set-profile.md +34 -0
  42. package/commands/gsd/settings.md +36 -0
  43. package/commands/gsd/update.md +25 -160
  44. package/commands/gsd/verify-work.md +6 -186
  45. package/get-shit-done/bin/gsd-tools.cjs +5243 -0
  46. package/get-shit-done/bin/gsd-tools.test.cjs +2273 -0
  47. package/get-shit-done/references/checkpoints.md +270 -283
  48. package/get-shit-done/references/decimal-phase-calculation.md +65 -0
  49. package/get-shit-done/references/git-integration.md +7 -13
  50. package/get-shit-done/references/git-planning-commit.md +38 -0
  51. package/get-shit-done/references/model-profile-resolution.md +34 -0
  52. package/get-shit-done/references/model-profiles.md +92 -0
  53. package/get-shit-done/references/phase-argument-parsing.md +61 -0
  54. package/get-shit-done/references/planning-config.md +196 -0
  55. package/get-shit-done/references/questioning.md +5 -1
  56. package/get-shit-done/references/verification-patterns.md +17 -0
  57. package/get-shit-done/templates/DEBUG.md +4 -4
  58. package/get-shit-done/templates/UAT.md +1 -1
  59. package/get-shit-done/templates/codebase/architecture.md +1 -1
  60. package/get-shit-done/templates/codebase/concerns.md +1 -1
  61. package/get-shit-done/templates/codebase/conventions.md +1 -1
  62. package/get-shit-done/templates/codebase/structure.md +9 -9
  63. package/get-shit-done/templates/config.json +10 -0
  64. package/get-shit-done/templates/context.md +7 -15
  65. package/get-shit-done/templates/continue-here.md +1 -1
  66. package/get-shit-done/templates/phase-prompt.md +32 -41
  67. package/get-shit-done/templates/planner-subagent-prompt.md +4 -4
  68. package/get-shit-done/templates/project.md +1 -1
  69. package/get-shit-done/templates/research-project/ARCHITECTURE.md +1 -1
  70. package/get-shit-done/templates/research.md +27 -4
  71. package/get-shit-done/templates/state.md +1 -31
  72. package/get-shit-done/templates/summary-complex.md +59 -0
  73. package/get-shit-done/templates/summary-minimal.md +41 -0
  74. package/get-shit-done/templates/summary-standard.md +48 -0
  75. package/get-shit-done/templates/summary.md +5 -28
  76. package/get-shit-done/templates/user-setup.md +8 -20
  77. package/get-shit-done/templates/verification-report.md +3 -3
  78. package/get-shit-done/workflows/add-phase.md +111 -0
  79. package/get-shit-done/workflows/add-todo.md +157 -0
  80. package/get-shit-done/workflows/audit-milestone.md +242 -0
  81. package/get-shit-done/workflows/check-todos.md +176 -0
  82. package/get-shit-done/workflows/cleanup.md +152 -0
  83. package/get-shit-done/workflows/complete-milestone.md +225 -301
  84. package/get-shit-done/workflows/diagnose-issues.md +3 -17
  85. package/get-shit-done/workflows/discovery-phase.md +11 -15
  86. package/get-shit-done/workflows/discuss-phase.md +105 -42
  87. package/get-shit-done/workflows/execute-phase.md +205 -349
  88. package/get-shit-done/workflows/execute-plan.md +179 -1569
  89. package/get-shit-done/workflows/health.md +156 -0
  90. package/get-shit-done/workflows/help.md +486 -0
  91. package/get-shit-done/workflows/insert-phase.md +129 -0
  92. package/get-shit-done/workflows/list-phase-assumptions.md +9 -9
  93. package/get-shit-done/workflows/map-codebase.md +56 -18
  94. package/get-shit-done/workflows/new-milestone.md +373 -0
  95. package/get-shit-done/workflows/new-project.md +1113 -0
  96. package/get-shit-done/workflows/pause-work.md +122 -0
  97. package/get-shit-done/workflows/plan-milestone-gaps.md +256 -0
  98. package/get-shit-done/workflows/plan-phase.md +448 -0
  99. package/get-shit-done/workflows/progress.md +393 -0
  100. package/get-shit-done/workflows/quick.md +444 -0
  101. package/get-shit-done/workflows/remove-phase.md +154 -0
  102. package/get-shit-done/workflows/research-phase.md +74 -0
  103. package/get-shit-done/workflows/resume-project.md +18 -23
  104. package/get-shit-done/workflows/set-profile.md +80 -0
  105. package/get-shit-done/workflows/settings.md +200 -0
  106. package/get-shit-done/workflows/transition.md +78 -103
  107. package/get-shit-done/workflows/update.md +214 -0
  108. package/get-shit-done/workflows/verify-phase.md +109 -496
  109. package/get-shit-done/workflows/verify-work.md +22 -15
  110. package/hooks/dist/gsd-check-update.js +66 -0
  111. package/hooks/dist/gsd-statusline.js +91 -0
  112. package/package.json +19 -3
  113. package/scripts/build-hooks.js +42 -0
  114. package/commands/gsd/whats-new.md +0 -124
@@ -8,349 +8,17 @@ allowed-tools:
8
8
  - Glob
9
9
  - SlashCommand
10
10
  ---
11
-
12
11
  <objective>
13
12
  Check project progress, summarize recent work and what's ahead, then intelligently route to the next action - either executing an existing plan or creating the next one.
14
13
 
15
14
  Provides situational awareness before continuing work.
16
15
  </objective>
17
16
 
17
+ <execution_context>
18
+ @~/.codex/get-shit-done/workflows/progress.md
19
+ </execution_context>
18
20
 
19
21
  <process>
20
-
21
- <step name="verify">
22
- **Verify planning structure exists:**
23
-
24
- If no `.planning/` directory:
25
-
26
- ```
27
- No planning structure found.
28
-
29
- Run /gsd:new-project to start a new project.
30
- ```
31
-
32
- Exit.
33
-
34
- If missing STATE.md: suggest `/gsd:new-project`.
35
-
36
- **If ROADMAP.md missing but PROJECT.md exists:**
37
-
38
- This means a milestone was completed and archived. Go to **Route F** (between milestones).
39
-
40
- If missing both ROADMAP.md and PROJECT.md: suggest `/gsd:new-project`.
41
- </step>
42
-
43
- <step name="load">
44
- **Load full project context:**
45
-
46
- - Read `.planning/STATE.md` for living memory (position, decisions, issues)
47
- - Read `.planning/ROADMAP.md` for phase structure and objectives
48
- - Read `.planning/PROJECT.md` for current state (What This Is, Core Value, Requirements)
49
- </step>
50
-
51
- <step name="recent">
52
- **Gather recent work context:**
53
-
54
- - Find the 2-3 most recent SUMMARY.md files
55
- - Extract from each: what was accomplished, key decisions, any issues logged
56
- - This shows "what we've been working on"
57
- </step>
58
-
59
- <step name="position">
60
- **Parse current position:**
61
-
62
- - From STATE.md: current phase, plan number, status
63
- - Calculate: total plans, completed plans, remaining plans
64
- - Note any blockers or concerns
65
- - Check for CONTEXT.md: For phases without PLAN.md files, check if `{phase}-CONTEXT.md` exists in phase directory
66
- - Count pending todos: `ls .planning/todos/pending/*.md 2>/dev/null | wc -l`
67
- - Check for active debug sessions: `ls .planning/debug/*.md 2>/dev/null | grep -v resolved | wc -l`
68
- </step>
69
-
70
- <step name="report">
71
- **Present rich status report:**
72
-
73
- ```
74
- # [Project Name]
75
-
76
- **Progress:** [████████░░] 8/10 plans complete
77
-
78
- ## Recent Work
79
- - [Phase X, Plan Y]: [what was accomplished - 1 line]
80
- - [Phase X, Plan Z]: [what was accomplished - 1 line]
81
-
82
- ## Current Position
83
- Phase [N] of [total]: [phase-name]
84
- Plan [M] of [phase-total]: [status]
85
- CONTEXT: [✓ if CONTEXT.md exists | - if not]
86
-
87
- ## Key Decisions Made
88
- - [decision 1 from STATE.md]
89
- - [decision 2]
90
-
91
- ## Blockers/Concerns
92
- - [any blockers or concerns from STATE.md]
93
-
94
- ## Pending Todos
95
- - [count] pending — /gsd:check-todos to review
96
-
97
- ## Active Debug Sessions
98
- - [count] active — /gsd:debug to continue
99
- (Only show this section if count > 0)
100
-
101
- ## What's Next
102
- [Next phase/plan objective from ROADMAP]
103
- ```
104
-
105
- </step>
106
-
107
- <step name="route">
108
- **Determine next action based on verified counts.**
109
-
110
- **Step 1: Count plans, summaries, and issues in current phase**
111
-
112
- List files in the current phase directory:
113
-
114
- ```bash
115
- ls -1 .planning/phases/[current-phase-dir]/*-PLAN.md 2>/dev/null | wc -l
116
- ls -1 .planning/phases/[current-phase-dir]/*-SUMMARY.md 2>/dev/null | wc -l
117
- ls -1 .planning/phases/[current-phase-dir]/*-UAT.md 2>/dev/null | wc -l
118
- ```
119
-
120
- State: "This phase has {X} plans, {Y} summaries."
121
-
122
- **Step 1.5: Check for unaddressed UAT gaps**
123
-
124
- Check for UAT.md files with status "diagnosed" (has gaps needing fixes).
125
-
126
- ```bash
127
- # Check for diagnosed UAT with gaps
128
- grep -l "status: diagnosed" .planning/phases/[current-phase-dir]/*-UAT.md 2>/dev/null
129
- ```
130
-
131
- Track:
132
- - `uat_with_gaps`: UAT.md files with status "diagnosed" (gaps need fixing)
133
-
134
- **Step 2: Route based on counts**
135
-
136
- | Condition | Meaning | Action |
137
- |-----------|---------|--------|
138
- | uat_with_gaps > 0 | UAT gaps need fix plans | Go to **Route E** |
139
- | summaries < plans | Unexecuted plans exist | Go to **Route A** |
140
- | summaries = plans AND plans > 0 | Phase complete | Go to Step 3 |
141
- | plans = 0 | Phase not yet planned | Go to **Route B** |
142
-
143
- ---
144
-
145
- **Route A: Unexecuted plan exists**
146
-
147
- Find the first PLAN.md without matching SUMMARY.md.
148
- Read its `<objective>` section.
149
-
150
- ```
151
- ---
152
-
153
- ## ▶ Next Up
154
-
155
- **{phase}-{plan}: [Plan Name]** — [objective summary from PLAN.md]
156
-
157
- `/gsd:execute-phase {phase}`
158
-
159
- <sub>`/clear` first → fresh context window</sub>
160
-
161
- ---
162
- ```
163
-
164
- ---
165
-
166
- **Route B: Phase needs planning**
167
-
168
- Check if `{phase}-CONTEXT.md` exists in phase directory.
169
-
170
- **If CONTEXT.md exists:**
171
-
172
- ```
173
- ---
174
-
175
- ## ▶ Next Up
176
-
177
- **Phase {N}: {Name}** — {Goal from ROADMAP.md}
178
- <sub>✓ Context gathered, ready to plan</sub>
179
-
180
- `/gsd:plan-phase {phase-number}`
181
-
182
- <sub>`/clear` first → fresh context window</sub>
183
-
184
- ---
185
- ```
186
-
187
- **If CONTEXT.md does NOT exist:**
188
-
189
- ```
190
- ---
191
-
192
- ## ▶ Next Up
193
-
194
- **Phase {N}: {Name}** — {Goal from ROADMAP.md}
195
-
196
- `/gsd:discuss-phase {phase}` — gather context and clarify approach
197
-
198
- <sub>`/clear` first → fresh context window</sub>
199
-
200
- ---
201
-
202
- **Also available:**
203
- - `/gsd:plan-phase {phase}` — skip discussion, plan directly
204
- - `/gsd:list-phase-assumptions {phase}` — see Claude's assumptions
205
-
206
- ---
207
- ```
208
-
209
- ---
210
-
211
- **Route E: UAT gaps need fix plans**
212
-
213
- UAT.md exists with gaps (diagnosed issues). User needs to plan fixes.
214
-
215
- ```
216
- ---
217
-
218
- ## ⚠ UAT Gaps Found
219
-
220
- **{phase}-UAT.md** has {N} gaps requiring fixes.
221
-
222
- `/gsd:plan-phase {phase} --gaps`
223
-
224
- <sub>`/clear` first → fresh context window</sub>
225
-
226
- ---
227
-
228
- **Also available:**
229
- - `/gsd:execute-phase {phase}` — execute phase plans
230
- - `/gsd:verify-work {phase}` — run more UAT testing
231
-
232
- ---
233
- ```
234
-
235
- ---
236
-
237
- **Step 3: Check milestone status (only when phase complete)**
238
-
239
- Read ROADMAP.md and identify:
240
- 1. Current phase number
241
- 2. All phase numbers in the current milestone section
242
-
243
- Count total phases and identify the highest phase number.
244
-
245
- State: "Current phase is {X}. Milestone has {N} phases (highest: {Y})."
246
-
247
- **Route based on milestone status:**
248
-
249
- | Condition | Meaning | Action |
250
- |-----------|---------|--------|
251
- | current phase < highest phase | More phases remain | Go to **Route C** |
252
- | current phase = highest phase | Milestone complete | Go to **Route D** |
253
-
254
- ---
255
-
256
- **Route C: Phase complete, more phases remain**
257
-
258
- Read ROADMAP.md to get the next phase's name and goal.
259
-
260
- ```
261
- ---
262
-
263
- ## ✓ Phase {Z} Complete
264
-
265
- ## ▶ Next Up
266
-
267
- **Phase {Z+1}: {Name}** — {Goal from ROADMAP.md}
268
-
269
- `/gsd:discuss-phase {Z+1}` — gather context and clarify approach
270
-
271
- <sub>`/clear` first → fresh context window</sub>
272
-
273
- ---
274
-
275
- **Also available:**
276
- - `/gsd:plan-phase {Z+1}` — skip discussion, plan directly
277
- - `/gsd:verify-work {Z}` — user acceptance test before continuing
278
-
279
- ---
280
- ```
281
-
282
- ---
283
-
284
- **Route D: Milestone complete**
285
-
286
- ```
287
- ---
288
-
289
- ## 🎉 Milestone Complete
290
-
291
- All {N} phases finished!
292
-
293
- ## ▶ Next Up
294
-
295
- **Complete Milestone** — archive and prepare for next
296
-
297
- `/gsd:complete-milestone`
298
-
299
- <sub>`/clear` first → fresh context window</sub>
300
-
301
- ---
302
-
303
- **Also available:**
304
- - `/gsd:verify-work` — user acceptance test before completing milestone
305
-
306
- ---
307
- ```
308
-
309
- ---
310
-
311
- **Route F: Between milestones (ROADMAP.md missing, PROJECT.md exists)**
312
-
313
- A milestone was completed and archived. Ready to start the next milestone cycle.
314
-
315
- Read MILESTONES.md to find the last completed milestone version.
316
-
317
- ```
318
- ---
319
-
320
- ## ✓ Milestone v{X.Y} Complete
321
-
322
- Ready to plan the next milestone.
323
-
324
- ## ▶ Next Up
325
-
326
- **Start Next Milestone** — questioning → research → requirements → roadmap
327
-
328
- `/gsd:new-milestone`
329
-
330
- <sub>`/clear` first → fresh context window</sub>
331
-
332
- ---
333
- ```
334
-
335
- </step>
336
-
337
- <step name="edge_cases">
338
- **Handle edge cases:**
339
-
340
- - Phase complete but next phase not planned → offer `/gsd:plan-phase [next]`
341
- - All work complete → offer milestone completion
342
- - Blockers present → highlight before offering to continue
343
- - Handoff file exists → mention it, offer `/gsd:resume-work`
344
- </step>
345
-
22
+ Execute the progress workflow from @~/.codex/get-shit-done/workflows/progress.md end-to-end.
23
+ Preserve all routing logic (Routes A through F) and edge case handling.
346
24
  </process>
347
-
348
- <success_criteria>
349
-
350
- - [ ] Rich context provided (recent work, decisions, issues)
351
- - [ ] Current position clear with visual progress
352
- - [ ] What's next clearly explained
353
- - [ ] Smart routing: /gsd:execute-phase if plans exist, /gsd:plan-phase if not
354
- - [ ] User confirms before any action
355
- - [ ] Seamless handoff to appropriate gsd command
356
- </success_criteria>
@@ -0,0 +1,40 @@
1
+ ---
2
+ name: gsd:quick
3
+ description: Execute a quick task with GSD guarantees (atomic commits, state tracking) but skip optional agents
4
+ argument-hint: "[--full]"
5
+ allowed-tools:
6
+ - Read
7
+ - Write
8
+ - Edit
9
+ - Glob
10
+ - Grep
11
+ - Bash
12
+ - Task
13
+ - AskUserQuestion
14
+ ---
15
+ <objective>
16
+ Execute small, ad-hoc tasks with GSD guarantees (atomic commits, STATE.md tracking).
17
+
18
+ Quick mode is the same system with a shorter path:
19
+ - Spawns gsd-planner (quick mode) + gsd-executor(s)
20
+ - Quick tasks live in `.planning/quick/` separate from planned phases
21
+ - Updates STATE.md "Quick Tasks Completed" table (NOT ROADMAP.md)
22
+
23
+ **Default:** Skips research, plan-checker, verifier. Use when you know exactly what to do.
24
+
25
+ **`--full` flag:** Enables plan-checking (max 2 iterations) and post-execution verification. Use when you want quality guarantees without full milestone ceremony.
26
+ </objective>
27
+
28
+ <execution_context>
29
+ @~/.codex/get-shit-done/workflows/quick.md
30
+ </execution_context>
31
+
32
+ <context>
33
+ @.planning/STATE.md
34
+ $ARGUMENTS
35
+ </context>
36
+
37
+ <process>
38
+ Execute the quick workflow from @~/.codex/get-shit-done/workflows/quick.md end-to-end.
39
+ Preserve all workflow gates (validation, task description, planning, execution, state updates, commits).
40
+ </process>
@@ -0,0 +1,110 @@
1
+ ---
2
+ description: Reapply local modifications after a GSD update
3
+ allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
4
+ ---
5
+
6
+ <purpose>
7
+ After a GSD update wipes and reinstalls files, this command merges user's previously saved local modifications back into the new version. Uses intelligent comparison to handle cases where the upstream file also changed.
8
+ </purpose>
9
+
10
+ <process>
11
+
12
+ ## Step 1: Detect backed-up patches
13
+
14
+ Check for local patches directory:
15
+
16
+ ```bash
17
+ # Global install (path templated at install time)
18
+ PATCHES_DIR=~/.codex/gsd-local-patches
19
+ # Local install fallback
20
+ if [ ! -d "$PATCHES_DIR" ]; then
21
+ PATCHES_DIR=./.codex/gsd-local-patches
22
+ fi
23
+ ```
24
+
25
+ Read `backup-meta.json` from the patches directory.
26
+
27
+ **If no patches found:**
28
+ ```
29
+ No local patches found. Nothing to reapply.
30
+
31
+ Local patches are automatically saved when you run /gsd:update
32
+ after modifying any GSD workflow, command, or agent files.
33
+ ```
34
+ Exit.
35
+
36
+ ## Step 2: Show patch summary
37
+
38
+ ```
39
+ ## Local Patches to Reapply
40
+
41
+ **Backed up from:** v{from_version}
42
+ **Current version:** {read VERSION file}
43
+ **Files modified:** {count}
44
+
45
+ | # | File | Status |
46
+ |---|------|--------|
47
+ | 1 | {file_path} | Pending |
48
+ | 2 | {file_path} | Pending |
49
+ ```
50
+
51
+ ## Step 3: Merge each file
52
+
53
+ For each file in `backup-meta.json`:
54
+
55
+ 1. **Read the backed-up version** (user's modified copy from `gsd-local-patches/`)
56
+ 2. **Read the newly installed version** (current file after update)
57
+ 3. **Compare and merge:**
58
+
59
+ - If the new file is identical to the backed-up file: skip (modification was incorporated upstream)
60
+ - If the new file differs: identify the user's modifications and apply them to the new version
61
+
62
+ **Merge strategy:**
63
+ - Read both versions fully
64
+ - Identify sections the user added or modified (look for additions, not just differences from path replacement)
65
+ - Apply user's additions/modifications to the new version
66
+ - If a section the user modified was also changed upstream: flag as conflict, show both versions, ask user which to keep
67
+
68
+ 4. **Write merged result** to the installed location
69
+ 5. **Report status:**
70
+ - `Merged` — user modifications applied cleanly
71
+ - `Skipped` — modification already in upstream
72
+ - `Conflict` — user chose resolution
73
+
74
+ ## Step 4: Update manifest
75
+
76
+ After reapplying, regenerate the file manifest so future updates correctly detect these as user modifications:
77
+
78
+ ```bash
79
+ # The manifest will be regenerated on next /gsd:update
80
+ # For now, just note which files were modified
81
+ ```
82
+
83
+ ## Step 5: Cleanup option
84
+
85
+ Ask user:
86
+ - "Keep patch backups for reference?" → preserve `gsd-local-patches/`
87
+ - "Clean up patch backups?" → remove `gsd-local-patches/` directory
88
+
89
+ ## Step 6: Report
90
+
91
+ ```
92
+ ## Patches Reapplied
93
+
94
+ | # | File | Status |
95
+ |---|------|--------|
96
+ | 1 | {file_path} | ✓ Merged |
97
+ | 2 | {file_path} | ○ Skipped (already upstream) |
98
+ | 3 | {file_path} | ⚠ Conflict resolved |
99
+
100
+ {count} file(s) updated. Your local modifications are active again.
101
+ ```
102
+
103
+ </process>
104
+
105
+ <success_criteria>
106
+ - [ ] All backed-up patches processed
107
+ - [ ] User modifications merged into new version
108
+ - [ ] Conflicts resolved with user input
109
+ - [ ] Status reported for each file
110
+ </success_criteria>