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

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 (104) hide show
  1. package/README.md +22 -3
  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 +106 -100
  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/debug.md +13 -0
  20. package/commands/gsd/discuss-phase.md +10 -3
  21. package/commands/gsd/execute-phase.md +3 -265
  22. package/commands/gsd/health.md +22 -0
  23. package/commands/gsd/help.md +8 -369
  24. package/commands/gsd/insert-phase.md +9 -203
  25. package/commands/gsd/join-discord.md +18 -0
  26. package/commands/gsd/new-milestone.md +12 -678
  27. package/commands/gsd/new-project.md +8 -862
  28. package/commands/gsd/new-project.md.bak +1041 -0
  29. package/commands/gsd/pause-work.md +17 -105
  30. package/commands/gsd/plan-milestone-gaps.md +3 -247
  31. package/commands/gsd/plan-phase.md +13 -444
  32. package/commands/gsd/progress.md +5 -337
  33. package/commands/gsd/quick.md +40 -0
  34. package/commands/gsd/reapply-patches.md +110 -0
  35. package/commands/gsd/remove-phase.md +9 -315
  36. package/commands/gsd/research-phase.md +26 -19
  37. package/commands/gsd/set-profile.md +34 -0
  38. package/commands/gsd/settings.md +36 -0
  39. package/commands/gsd/update.md +25 -160
  40. package/commands/gsd/verify-work.md +3 -183
  41. package/get-shit-done/bin/gsd-tools.cjs +5243 -0
  42. package/get-shit-done/bin/gsd-tools.test.cjs +2273 -0
  43. package/get-shit-done/references/checkpoints.md +254 -267
  44. package/get-shit-done/references/decimal-phase-calculation.md +65 -0
  45. package/get-shit-done/references/git-integration.md +3 -9
  46. package/get-shit-done/references/git-planning-commit.md +38 -0
  47. package/get-shit-done/references/model-profile-resolution.md +34 -0
  48. package/get-shit-done/references/model-profiles.md +92 -0
  49. package/get-shit-done/references/phase-argument-parsing.md +61 -0
  50. package/get-shit-done/references/planning-config.md +196 -0
  51. package/get-shit-done/references/questioning.md +4 -0
  52. package/get-shit-done/references/verification-patterns.md +17 -0
  53. package/get-shit-done/templates/UAT.md +1 -1
  54. package/get-shit-done/templates/codebase/structure.md +3 -3
  55. package/get-shit-done/templates/config.json +10 -0
  56. package/get-shit-done/templates/context.md +2 -10
  57. package/get-shit-done/templates/phase-prompt.md +18 -27
  58. package/get-shit-done/templates/planner-subagent-prompt.md +4 -4
  59. package/get-shit-done/templates/research-project/ARCHITECTURE.md +1 -1
  60. package/get-shit-done/templates/research.md +25 -2
  61. package/get-shit-done/templates/state.md +0 -30
  62. package/get-shit-done/templates/summary-complex.md +59 -0
  63. package/get-shit-done/templates/summary-minimal.md +41 -0
  64. package/get-shit-done/templates/summary-standard.md +48 -0
  65. package/get-shit-done/templates/summary.md +5 -28
  66. package/get-shit-done/templates/user-setup.md +1 -13
  67. package/get-shit-done/templates/verification-report.md +1 -1
  68. package/get-shit-done/workflows/add-phase.md +111 -0
  69. package/get-shit-done/workflows/add-todo.md +157 -0
  70. package/get-shit-done/workflows/audit-milestone.md +242 -0
  71. package/get-shit-done/workflows/check-todos.md +176 -0
  72. package/get-shit-done/workflows/cleanup.md +152 -0
  73. package/get-shit-done/workflows/complete-milestone.md +225 -301
  74. package/get-shit-done/workflows/diagnose-issues.md +3 -17
  75. package/get-shit-done/workflows/discovery-phase.md +6 -10
  76. package/get-shit-done/workflows/discuss-phase.md +99 -36
  77. package/get-shit-done/workflows/execute-phase.md +205 -349
  78. package/get-shit-done/workflows/execute-plan.md +179 -1569
  79. package/get-shit-done/workflows/health.md +156 -0
  80. package/get-shit-done/workflows/help.md +486 -0
  81. package/get-shit-done/workflows/insert-phase.md +129 -0
  82. package/get-shit-done/workflows/list-phase-assumptions.md +2 -2
  83. package/get-shit-done/workflows/map-codebase.md +55 -17
  84. package/get-shit-done/workflows/new-milestone.md +373 -0
  85. package/get-shit-done/workflows/new-project.md +1113 -0
  86. package/get-shit-done/workflows/pause-work.md +122 -0
  87. package/get-shit-done/workflows/plan-milestone-gaps.md +256 -0
  88. package/get-shit-done/workflows/plan-phase.md +448 -0
  89. package/get-shit-done/workflows/progress.md +393 -0
  90. package/get-shit-done/workflows/quick.md +444 -0
  91. package/get-shit-done/workflows/remove-phase.md +154 -0
  92. package/get-shit-done/workflows/research-phase.md +74 -0
  93. package/get-shit-done/workflows/resume-project.md +18 -23
  94. package/get-shit-done/workflows/set-profile.md +80 -0
  95. package/get-shit-done/workflows/settings.md +200 -0
  96. package/get-shit-done/workflows/transition.md +78 -103
  97. package/get-shit-done/workflows/update.md +214 -0
  98. package/get-shit-done/workflows/verify-phase.md +107 -494
  99. package/get-shit-done/workflows/verify-work.md +18 -11
  100. package/hooks/dist/gsd-check-update.js +66 -0
  101. package/hooks/dist/gsd-statusline.js +91 -0
  102. package/package.json +19 -3
  103. package/scripts/build-hooks.js +42 -0
  104. package/commands/gsd/whats-new.md +0 -124
@@ -158,8 +158,7 @@ Update status in frontmatter to "diagnosed".
158
158
 
159
159
  Commit the updated UAT.md:
160
160
  ```bash
161
- git add ".planning/phases/XX-name/{phase}-UAT.md"
162
- git commit -m "docs({phase}): add root causes from diagnosis"
161
+ node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "docs({phase_num}): add root causes from diagnosis" --files ".planning/phases/XX-name/{phase_num}-UAT.md"
163
162
  ```
164
163
  </step>
165
164
 
@@ -190,21 +189,8 @@ Do NOT offer manual next steps - verify-work handles the rest.
190
189
  </process>
191
190
 
192
191
  <context_efficiency>
193
- **Orchestrator context:** ~15%
194
- - Parse UAT.md gaps
195
- - Fill template strings
196
- - Spawn parallel Task calls
197
- - Collect results
198
- - Update UAT.md
199
-
200
- **Each debug agent:** Fresh 200k context
201
- - Loads full debug workflow
202
- - Loads debugging references
203
- - Investigates with full capacity
204
- - Returns root cause
205
-
206
- **No symptom gathering.** Agents start with symptoms pre-filled from UAT.
207
- **No fix application.** Agents only diagnose - plan-phase --gaps handles fixes.
192
+ Agents start with symptoms pre-filled from UAT (no symptom gathering).
193
+ Agents only diagnose—plan-phase --gaps handles fixes (no fix application).
208
194
  </context_efficiency>
209
195
 
210
196
  <failure_handling>
@@ -107,16 +107,14 @@ For: Choosing between options, new external integration.
107
107
 
108
108
  5. **Cross-verify:** Any WebSearch finding → confirm with Context7/official docs.
109
109
 
110
- 6. **Quality check:** Before finalizing findings, consult the gsd-researcher agent's verification protocols to avoid common research gaps.
111
-
112
- 7. **Create DISCOVERY.md** using ~/.claude/get-shit-done/templates/discovery.md structure:
110
+ 6. **Create DISCOVERY.md** using ~/.claude/get-shit-done/templates/discovery.md structure:
113
111
 
114
112
  - Summary with recommendation
115
113
  - Key findings per option
116
114
  - Code examples from Context7
117
115
  - Confidence level (should be MEDIUM-HIGH for Level 2)
118
116
 
119
- 8. Return to plan-phase.md.
117
+ 7. Return to plan-phase.md.
120
118
 
121
119
  **Output:** `.planning/phases/XX-name/DISCOVERY.md`
122
120
  </step>
@@ -160,18 +158,16 @@ For: Architectural decisions, novel problems, high-risk choices.
160
158
  - Mark what's verified vs assumed
161
159
  - Flag contradictions
162
160
 
163
- 6. **Quality check:** Before finalizing findings, consult the gsd-researcher agent's verification protocols to ensure comprehensive coverage and avoid common research gaps.
164
-
165
- 7. **Create comprehensive DISCOVERY.md:**
161
+ 6. **Create comprehensive DISCOVERY.md:**
166
162
 
167
163
  - Full structure from ~/.claude/get-shit-done/templates/discovery.md
168
164
  - Quality report with source attribution
169
165
  - Confidence by finding
170
166
  - If LOW confidence on any critical finding → add validation checkpoints
171
167
 
172
- 8. **Confidence gate:** If overall confidence is LOW, present options before proceeding.
168
+ 7. **Confidence gate:** If overall confidence is LOW, present options before proceeding.
173
169
 
174
- 9. Return to plan-phase.md.
170
+ 8. Return to plan-phase.md.
175
171
 
176
172
  **Output:** `.planning/phases/XX-name/DISCOVERY.md` (comprehensive)
177
173
  </step>
@@ -220,7 +216,7 @@ After creating DISCOVERY.md, check confidence level.
220
216
  If confidence is LOW:
221
217
  Use AskUserQuestion:
222
218
 
223
- - header: "Low Confidence"
219
+ - header: "Low Conf."
224
220
  - question: "Discovery confidence is LOW: [reason]. How would you like to proceed?"
225
221
  - options:
226
222
  - "Dig deeper" - Do more research before planning
@@ -107,15 +107,16 @@ Phase: "API documentation"
107
107
 
108
108
  <process>
109
109
 
110
- <step name="validate_phase" priority="first">
110
+ <step name="initialize" priority="first">
111
111
  Phase number from argument (required).
112
112
 
113
- Load and validate:
114
- - Read `.planning/ROADMAP.md`
115
- - Find phase entry
116
- - Extract: number, name, description, status
113
+ ```bash
114
+ INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs init phase-op "${PHASE}")
115
+ ```
116
+
117
+ Parse JSON for: `commit_docs`, `phase_found`, `phase_dir`, `phase_number`, `phase_name`, `phase_slug`, `padded_phase`, `has_research`, `has_context`, `has_plans`, `has_verification`, `plan_count`, `roadmap_exists`, `planning_exists`.
117
118
 
118
- **If phase not found:**
119
+ **If `phase_found` is false:**
119
120
  ```
120
121
  Phase [X] not found in roadmap.
121
122
 
@@ -123,21 +124,19 @@ Use /gsd:progress to see available phases.
123
124
  ```
124
125
  Exit workflow.
125
126
 
126
- **If phase found:** Continue to analyze_phase.
127
+ **If `phase_found` is true:** Continue to check_existing.
127
128
  </step>
128
129
 
129
130
  <step name="check_existing">
130
- Check if CONTEXT.md already exists:
131
+ Check if CONTEXT.md already exists using `has_context` from init.
131
132
 
132
133
  ```bash
133
- # Match both zero-padded (05-*) and unpadded (5-*) folders
134
- PADDED_PHASE=$(printf "%02d" ${PHASE})
135
- ls .planning/phases/${PADDED_PHASE}-*/CONTEXT.md .planning/phases/${PADDED_PHASE}-*/${PADDED_PHASE}-CONTEXT.md .planning/phases/${PHASE}-*/CONTEXT.md .planning/phases/${PHASE}-*/${PHASE}-CONTEXT.md 2>/dev/null
134
+ ls ${phase_dir}/*-CONTEXT.md 2>/dev/null
136
135
  ```
137
136
 
138
137
  **If exists:**
139
138
  Use AskUserQuestion:
140
- - header: "Existing context"
139
+ - header: "Context"
141
140
  - question: "Phase [X] already has context. What do you want to do?"
142
141
  - options:
143
142
  - "Update it" — Review and revise existing context
@@ -148,7 +147,23 @@ If "Update": Load existing, continue to analyze_phase
148
147
  If "View": Display CONTEXT.md, then offer update/skip
149
148
  If "Skip": Exit workflow
150
149
 
151
- **If doesn't exist:** Continue to analyze_phase.
150
+ **If doesn't exist:**
151
+
152
+ Check `has_plans` and `plan_count` from init. **If `has_plans` is true:**
153
+
154
+ Use AskUserQuestion:
155
+ - header: "Plans exist"
156
+ - question: "Phase [X] already has {plan_count} plan(s) created without user context. Your decisions here won't affect existing plans unless you replan."
157
+ - options:
158
+ - "Continue and replan after" — Capture context, then run /gsd:plan-phase {X} to replan
159
+ - "View existing plans" — Show plans before deciding
160
+ - "Cancel" — Skip discuss-phase
161
+
162
+ If "Continue and replan after": Continue to analyze_phase.
163
+ If "View existing plans": Display plan files, then offer "Continue" / "Cancel".
164
+ If "Cancel": Exit workflow.
165
+
166
+ **If `has_plans` is false:** Continue to analyze_phase.
152
167
  </step>
153
168
 
154
169
  <step name="analyze_phase">
@@ -241,18 +256,19 @@ Ask 4 questions per area before offering to continue or move on. Each answer oft
241
256
  ```
242
257
 
243
258
  2. **Ask 4 questions using AskUserQuestion:**
244
- - header: "[Area]"
259
+ - header: "[Area]" (max 12 chars — abbreviate if needed)
245
260
  - question: Specific decision for this area
246
261
  - options: 2-3 concrete choices (AskUserQuestion adds "Other" automatically)
247
262
  - Include "You decide" as an option when reasonable — captures Claude discretion
248
263
 
249
264
  3. **After 4 questions, check:**
250
- - header: "[Area]"
265
+ - header: "[Area]" (max 12 chars)
251
266
  - question: "More questions about [area], or move to next?"
252
267
  - options: "More questions" / "Next area"
253
268
 
254
269
  If "More questions" → ask 4 more, then check again
255
270
  If "Next area" → proceed to next selected area
271
+ If "Other" (free text) → interpret intent: continuation phrases ("chat more", "keep going", "yes", "more") map to "More questions"; advancement phrases ("done", "move on", "next", "skip") map to "Next area". If ambiguous, ask: "Continue with more questions about [area], or move to the next area?"
256
272
 
257
273
  4. **After all areas complete:**
258
274
  - header: "Done"
@@ -281,19 +297,14 @@ Create CONTEXT.md capturing decisions made.
281
297
 
282
298
  **Find or create phase directory:**
283
299
 
300
+ Use values from init: `phase_dir`, `phase_slug`, `padded_phase`.
301
+
302
+ If `phase_dir` is null (phase exists in roadmap but no directory):
284
303
  ```bash
285
- # Match existing directory (padded or unpadded)
286
- PADDED_PHASE=$(printf "%02d" ${PHASE})
287
- PHASE_DIR=$(ls -d .planning/phases/${PADDED_PHASE}-* .planning/phases/${PHASE}-* 2>/dev/null | head -1)
288
- if [ -z "$PHASE_DIR" ]; then
289
- # Create from roadmap name (lowercase, hyphens)
290
- PHASE_NAME=$(grep "Phase ${PHASE}:" .planning/ROADMAP.md | sed 's/.*Phase [0-9]*: //' | tr '[:upper:]' '[:lower:]' | tr ' ' '-')
291
- mkdir -p ".planning/phases/${PADDED_PHASE}-${PHASE_NAME}"
292
- PHASE_DIR=".planning/phases/${PADDED_PHASE}-${PHASE_NAME}"
293
- fi
304
+ mkdir -p ".planning/phases/${padded_phase}-${phase_slug}"
294
305
  ```
295
306
 
296
- **File location:** `${PHASE_DIR}/${PADDED_PHASE}-CONTEXT.md`
307
+ **File location:** `${phase_dir}/${padded_phase}-CONTEXT.md`
297
308
 
298
309
  **Structure the content by what was discussed:**
299
310
 
@@ -391,21 +402,72 @@ Created: .planning/phases/${PADDED_PHASE}-${SLUG}/${PADDED_PHASE}-CONTEXT.md
391
402
  </step>
392
403
 
393
404
  <step name="git_commit">
394
- Commit phase context:
405
+ Commit phase context (uses `commit_docs` from init internally):
406
+
407
+ ```bash
408
+ node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "docs(${padded_phase}): capture phase context" --files "${phase_dir}/${padded_phase}-CONTEXT.md"
409
+ ```
410
+
411
+ Confirm: "Committed: docs(${padded_phase}): capture phase context"
412
+ </step>
413
+
414
+ <step name="update_state">
415
+ Update STATE.md with session info:
416
+
417
+ ```bash
418
+ node ~/.claude/get-shit-done/bin/gsd-tools.cjs state record-session \
419
+ --stopped-at "Phase ${PHASE} context gathered" \
420
+ --resume-file "${phase_dir}/${padded_phase}-CONTEXT.md"
421
+ ```
422
+
423
+ Commit STATE.md:
395
424
 
396
425
  ```bash
397
- git add "${PHASE_DIR}/${PADDED_PHASE}-CONTEXT.md"
398
- git commit -m "$(cat <<'EOF'
399
- docs(${PADDED_PHASE}): capture phase context
400
-
401
- Phase ${PADDED_PHASE}: ${PHASE_NAME}
402
- - Implementation decisions documented
403
- - Phase boundary established
404
- EOF
405
- )"
426
+ node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "docs(state): record phase ${PHASE} context session" --files .planning/STATE.md
406
427
  ```
428
+ </step>
429
+
430
+ <step name="auto_advance">
431
+ Check for auto-advance trigger:
432
+
433
+ 1. Parse `--auto` flag from $ARGUMENTS
434
+ 2. Read `workflow.auto_advance` from config:
435
+ ```bash
436
+ AUTO_CFG=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs config-get workflow.auto_advance 2>/dev/null || echo "false")
437
+ ```
438
+
439
+ **If `--auto` flag present OR `AUTO_CFG` is true:**
440
+
441
+ Display banner:
442
+ ```
443
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
444
+ GSD ► AUTO-ADVANCING TO PLAN
445
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
446
+
447
+ Context captured. Spawning plan-phase...
448
+ ```
449
+
450
+ Spawn plan-phase as Task:
451
+ ```
452
+ Task(
453
+ prompt="Run /gsd:plan-phase ${PHASE} --auto",
454
+ subagent_type="general-purpose",
455
+ description="Plan Phase ${PHASE}"
456
+ )
457
+ ```
458
+
459
+ **Handle plan-phase return:**
460
+ - **PLANNING COMPLETE** → Plan-phase handles chaining to execute-phase (via its own auto_advance step)
461
+ - **PLANNING INCONCLUSIVE / CHECKPOINT** → Display result, stop chain:
462
+ ```
463
+ Auto-advance stopped: Planning needs input.
464
+
465
+ Review the output above and continue manually:
466
+ /gsd:plan-phase ${PHASE}
467
+ ```
407
468
 
408
- Confirm: "Committed: docs(${PADDED_PHASE}): capture phase context"
469
+ **If neither `--auto` nor config enabled:**
470
+ Route to `confirm_creation` step (existing behavior — show manual next steps).
409
471
  </step>
410
472
 
411
473
  </process>
@@ -418,5 +480,6 @@ Confirm: "Committed: docs(${PADDED_PHASE}): capture phase context"
418
480
  - Scope creep redirected to deferred ideas
419
481
  - CONTEXT.md captures actual decisions, not vague vision
420
482
  - Deferred ideas preserved for future phases
483
+ - STATE.md updated with session info
421
484
  - User knows next steps
422
485
  </success_criteria>