@m3hti/commit-genie 3.3.0 → 3.3.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 (151) hide show
  1. package/.claude/agents/gsd-codebase-mapper.md +764 -0
  2. package/.claude/agents/gsd-debugger.md +1246 -0
  3. package/.claude/agents/gsd-executor.md +469 -0
  4. package/.claude/agents/gsd-integration-checker.md +443 -0
  5. package/.claude/agents/gsd-phase-researcher.md +546 -0
  6. package/.claude/agents/gsd-plan-checker.md +690 -0
  7. package/.claude/agents/gsd-planner.md +1275 -0
  8. package/.claude/agents/gsd-project-researcher.md +621 -0
  9. package/.claude/agents/gsd-research-synthesizer.md +239 -0
  10. package/.claude/agents/gsd-roadmapper.md +642 -0
  11. package/.claude/agents/gsd-verifier.md +573 -0
  12. package/.claude/commands/gsd/add-phase.md +43 -0
  13. package/.claude/commands/gsd/add-tests.md +41 -0
  14. package/.claude/commands/gsd/add-todo.md +47 -0
  15. package/.claude/commands/gsd/audit-milestone.md +36 -0
  16. package/.claude/commands/gsd/check-todos.md +45 -0
  17. package/.claude/commands/gsd/cleanup.md +18 -0
  18. package/.claude/commands/gsd/complete-milestone.md +136 -0
  19. package/.claude/commands/gsd/debug.md +167 -0
  20. package/.claude/commands/gsd/discuss-phase.md +83 -0
  21. package/.claude/commands/gsd/execute-phase.md +41 -0
  22. package/.claude/commands/gsd/health.md +22 -0
  23. package/.claude/commands/gsd/help.md +22 -0
  24. package/.claude/commands/gsd/insert-phase.md +32 -0
  25. package/.claude/commands/gsd/join-discord.md +18 -0
  26. package/.claude/commands/gsd/list-phase-assumptions.md +46 -0
  27. package/.claude/commands/gsd/map-codebase.md +71 -0
  28. package/.claude/commands/gsd/new-milestone.md +44 -0
  29. package/.claude/commands/gsd/new-project.md +42 -0
  30. package/.claude/commands/gsd/new-project.md.bak +1041 -0
  31. package/.claude/commands/gsd/pause-work.md +38 -0
  32. package/.claude/commands/gsd/plan-milestone-gaps.md +34 -0
  33. package/.claude/commands/gsd/plan-phase.md +45 -0
  34. package/.claude/commands/gsd/progress.md +24 -0
  35. package/.claude/commands/gsd/quick.md +41 -0
  36. package/.claude/commands/gsd/reapply-patches.md +110 -0
  37. package/.claude/commands/gsd/remove-phase.md +31 -0
  38. package/.claude/commands/gsd/research-phase.md +189 -0
  39. package/.claude/commands/gsd/resume-work.md +40 -0
  40. package/.claude/commands/gsd/set-profile.md +34 -0
  41. package/.claude/commands/gsd/settings.md +36 -0
  42. package/.claude/commands/gsd/update.md +37 -0
  43. package/.claude/commands/gsd/verify-work.md +38 -0
  44. package/.claude/get-shit-done/VERSION +1 -0
  45. package/.claude/get-shit-done/bin/gsd-tools.cjs +588 -0
  46. package/.claude/get-shit-done/bin/lib/commands.cjs +553 -0
  47. package/.claude/get-shit-done/bin/lib/config.cjs +162 -0
  48. package/.claude/get-shit-done/bin/lib/core.cjs +411 -0
  49. package/.claude/get-shit-done/bin/lib/frontmatter.cjs +299 -0
  50. package/.claude/get-shit-done/bin/lib/init.cjs +710 -0
  51. package/.claude/get-shit-done/bin/lib/milestone.cjs +216 -0
  52. package/.claude/get-shit-done/bin/lib/phase.cjs +871 -0
  53. package/.claude/get-shit-done/bin/lib/roadmap.cjs +298 -0
  54. package/.claude/get-shit-done/bin/lib/state.cjs +679 -0
  55. package/.claude/get-shit-done/bin/lib/template.cjs +222 -0
  56. package/.claude/get-shit-done/bin/lib/verify.cjs +773 -0
  57. package/.claude/get-shit-done/references/checkpoints.md +776 -0
  58. package/.claude/get-shit-done/references/continuation-format.md +249 -0
  59. package/.claude/get-shit-done/references/decimal-phase-calculation.md +65 -0
  60. package/.claude/get-shit-done/references/git-integration.md +248 -0
  61. package/.claude/get-shit-done/references/git-planning-commit.md +38 -0
  62. package/.claude/get-shit-done/references/model-profile-resolution.md +34 -0
  63. package/.claude/get-shit-done/references/model-profiles.md +92 -0
  64. package/.claude/get-shit-done/references/phase-argument-parsing.md +61 -0
  65. package/.claude/get-shit-done/references/planning-config.md +196 -0
  66. package/.claude/get-shit-done/references/questioning.md +145 -0
  67. package/.claude/get-shit-done/references/tdd.md +263 -0
  68. package/.claude/get-shit-done/references/ui-brand.md +160 -0
  69. package/.claude/get-shit-done/references/verification-patterns.md +612 -0
  70. package/.claude/get-shit-done/templates/DEBUG.md +164 -0
  71. package/.claude/get-shit-done/templates/UAT.md +247 -0
  72. package/.claude/get-shit-done/templates/VALIDATION.md +76 -0
  73. package/.claude/get-shit-done/templates/codebase/architecture.md +255 -0
  74. package/.claude/get-shit-done/templates/codebase/concerns.md +310 -0
  75. package/.claude/get-shit-done/templates/codebase/conventions.md +307 -0
  76. package/.claude/get-shit-done/templates/codebase/integrations.md +280 -0
  77. package/.claude/get-shit-done/templates/codebase/stack.md +186 -0
  78. package/.claude/get-shit-done/templates/codebase/structure.md +285 -0
  79. package/.claude/get-shit-done/templates/codebase/testing.md +480 -0
  80. package/.claude/get-shit-done/templates/config.json +37 -0
  81. package/.claude/get-shit-done/templates/context.md +283 -0
  82. package/.claude/get-shit-done/templates/continue-here.md +78 -0
  83. package/.claude/get-shit-done/templates/debug-subagent-prompt.md +91 -0
  84. package/.claude/get-shit-done/templates/discovery.md +146 -0
  85. package/.claude/get-shit-done/templates/milestone-archive.md +123 -0
  86. package/.claude/get-shit-done/templates/milestone.md +115 -0
  87. package/.claude/get-shit-done/templates/phase-prompt.md +569 -0
  88. package/.claude/get-shit-done/templates/planner-subagent-prompt.md +117 -0
  89. package/.claude/get-shit-done/templates/project.md +184 -0
  90. package/.claude/get-shit-done/templates/requirements.md +231 -0
  91. package/.claude/get-shit-done/templates/research-project/ARCHITECTURE.md +204 -0
  92. package/.claude/get-shit-done/templates/research-project/FEATURES.md +147 -0
  93. package/.claude/get-shit-done/templates/research-project/PITFALLS.md +200 -0
  94. package/.claude/get-shit-done/templates/research-project/STACK.md +120 -0
  95. package/.claude/get-shit-done/templates/research-project/SUMMARY.md +170 -0
  96. package/.claude/get-shit-done/templates/research.md +552 -0
  97. package/.claude/get-shit-done/templates/retrospective.md +54 -0
  98. package/.claude/get-shit-done/templates/roadmap.md +202 -0
  99. package/.claude/get-shit-done/templates/state.md +176 -0
  100. package/.claude/get-shit-done/templates/summary-complex.md +59 -0
  101. package/.claude/get-shit-done/templates/summary-minimal.md +41 -0
  102. package/.claude/get-shit-done/templates/summary-standard.md +48 -0
  103. package/.claude/get-shit-done/templates/summary.md +248 -0
  104. package/.claude/get-shit-done/templates/user-setup.md +311 -0
  105. package/.claude/get-shit-done/templates/verification-report.md +322 -0
  106. package/.claude/get-shit-done/workflows/add-phase.md +111 -0
  107. package/.claude/get-shit-done/workflows/add-tests.md +350 -0
  108. package/.claude/get-shit-done/workflows/add-todo.md +157 -0
  109. package/.claude/get-shit-done/workflows/audit-milestone.md +297 -0
  110. package/.claude/get-shit-done/workflows/check-todos.md +176 -0
  111. package/.claude/get-shit-done/workflows/cleanup.md +152 -0
  112. package/.claude/get-shit-done/workflows/complete-milestone.md +763 -0
  113. package/.claude/get-shit-done/workflows/diagnose-issues.md +219 -0
  114. package/.claude/get-shit-done/workflows/discovery-phase.md +289 -0
  115. package/.claude/get-shit-done/workflows/discuss-phase.md +542 -0
  116. package/.claude/get-shit-done/workflows/execute-phase.md +449 -0
  117. package/.claude/get-shit-done/workflows/execute-plan.md +448 -0
  118. package/.claude/get-shit-done/workflows/health.md +156 -0
  119. package/.claude/get-shit-done/workflows/help.md +489 -0
  120. package/.claude/get-shit-done/workflows/insert-phase.md +129 -0
  121. package/.claude/get-shit-done/workflows/list-phase-assumptions.md +178 -0
  122. package/.claude/get-shit-done/workflows/map-codebase.md +315 -0
  123. package/.claude/get-shit-done/workflows/new-milestone.md +382 -0
  124. package/.claude/get-shit-done/workflows/new-project.md +1116 -0
  125. package/.claude/get-shit-done/workflows/pause-work.md +122 -0
  126. package/.claude/get-shit-done/workflows/plan-milestone-gaps.md +274 -0
  127. package/.claude/get-shit-done/workflows/plan-phase.md +569 -0
  128. package/.claude/get-shit-done/workflows/progress.md +381 -0
  129. package/.claude/get-shit-done/workflows/quick.md +453 -0
  130. package/.claude/get-shit-done/workflows/remove-phase.md +154 -0
  131. package/.claude/get-shit-done/workflows/research-phase.md +73 -0
  132. package/.claude/get-shit-done/workflows/resume-project.md +306 -0
  133. package/.claude/get-shit-done/workflows/set-profile.md +80 -0
  134. package/.claude/get-shit-done/workflows/settings.md +213 -0
  135. package/.claude/get-shit-done/workflows/transition.md +544 -0
  136. package/.claude/get-shit-done/workflows/update.md +219 -0
  137. package/.claude/get-shit-done/workflows/verify-phase.md +242 -0
  138. package/.claude/get-shit-done/workflows/verify-work.md +569 -0
  139. package/.claude/gsd-file-manifest.json +144 -0
  140. package/.claude/hooks/gsd-check-update.js +62 -0
  141. package/.claude/hooks/gsd-context-monitor.js +122 -0
  142. package/.claude/hooks/gsd-statusline.js +108 -0
  143. package/.claude/package.json +1 -0
  144. package/.claude/settings.json +49 -0
  145. package/dist/commands/generate.d.ts.map +1 -1
  146. package/dist/commands/generate.js +18 -8
  147. package/dist/commands/generate.js.map +1 -1
  148. package/dist/services/analyzerService.d.ts.map +1 -1
  149. package/dist/services/analyzerService.js +10 -0
  150. package/dist/services/analyzerService.js.map +1 -1
  151. package/package.json +1 -1
@@ -0,0 +1,569 @@
1
+ <purpose>
2
+ Create executable phase prompts (PLAN.md files) for a roadmap phase with integrated research and verification. Default flow: Research (if needed) -> Plan -> Verify -> Done. Orchestrates gsd-phase-researcher, gsd-planner, and gsd-plan-checker agents with a revision loop (max 3 iterations).
3
+ </purpose>
4
+
5
+ <required_reading>
6
+ Read all files referenced by the invoking prompt's execution_context before starting.
7
+
8
+ @./.claude/get-shit-done/references/ui-brand.md
9
+ </required_reading>
10
+
11
+ <process>
12
+
13
+ ## 1. Initialize
14
+
15
+ Load all context in one call (paths only to minimize orchestrator context):
16
+
17
+ ```bash
18
+ INIT=$(node ./.claude/get-shit-done/bin/gsd-tools.cjs init plan-phase "$PHASE")
19
+ ```
20
+
21
+ Parse JSON for: `researcher_model`, `planner_model`, `checker_model`, `research_enabled`, `plan_checker_enabled`, `nyquist_validation_enabled`, `commit_docs`, `phase_found`, `phase_dir`, `phase_number`, `phase_name`, `phase_slug`, `padded_phase`, `has_research`, `has_context`, `has_plans`, `plan_count`, `planning_exists`, `roadmap_exists`, `phase_req_ids`.
22
+
23
+ **File paths (for <files_to_read> blocks):** `state_path`, `roadmap_path`, `requirements_path`, `context_path`, `research_path`, `verification_path`, `uat_path`. These are null if files don't exist.
24
+
25
+ **If `planning_exists` is false:** Error — run `/gsd:new-project` first.
26
+
27
+ ## 2. Parse and Normalize Arguments
28
+
29
+ Extract from $ARGUMENTS: phase number (integer or decimal like `2.1`), flags (`--research`, `--skip-research`, `--gaps`, `--skip-verify`, `--prd <filepath>`).
30
+
31
+ Extract `--prd <filepath>` from $ARGUMENTS. If present, set PRD_FILE to the filepath.
32
+
33
+ **If no phase number:** Detect next unplanned phase from roadmap.
34
+
35
+ **If `phase_found` is false:** Validate phase exists in ROADMAP.md. If valid, create the directory using `phase_slug` and `padded_phase` from init:
36
+ ```bash
37
+ mkdir -p ".planning/phases/${padded_phase}-${phase_slug}"
38
+ ```
39
+
40
+ **Existing artifacts from init:** `has_research`, `has_plans`, `plan_count`.
41
+
42
+ ## 3. Validate Phase
43
+
44
+ ```bash
45
+ PHASE_INFO=$(node ./.claude/get-shit-done/bin/gsd-tools.cjs roadmap get-phase "${PHASE}")
46
+ ```
47
+
48
+ **If `found` is false:** Error with available phases. **If `found` is true:** Extract `phase_number`, `phase_name`, `goal` from JSON.
49
+
50
+ ## 3.5. Handle PRD Express Path
51
+
52
+ **Skip if:** No `--prd` flag in arguments.
53
+
54
+ **If `--prd <filepath>` provided:**
55
+
56
+ 1. Read the PRD file:
57
+ ```bash
58
+ PRD_CONTENT=$(cat "$PRD_FILE" 2>/dev/null)
59
+ if [ -z "$PRD_CONTENT" ]; then
60
+ echo "Error: PRD file not found: $PRD_FILE"
61
+ exit 1
62
+ fi
63
+ ```
64
+
65
+ 2. Display banner:
66
+ ```
67
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
68
+ GSD ► PRD EXPRESS PATH
69
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
70
+
71
+ Using PRD: {PRD_FILE}
72
+ Generating CONTEXT.md from requirements...
73
+ ```
74
+
75
+ 3. Parse the PRD content and generate CONTEXT.md. The orchestrator should:
76
+ - Extract all requirements, user stories, acceptance criteria, and constraints from the PRD
77
+ - Map each to a locked decision (everything in the PRD is treated as a locked decision)
78
+ - Identify any areas the PRD doesn't cover and mark as "Claude's Discretion"
79
+ - Create CONTEXT.md in the phase directory
80
+
81
+ 4. Write CONTEXT.md:
82
+ ```markdown
83
+ # Phase [X]: [Name] - Context
84
+
85
+ **Gathered:** [date]
86
+ **Status:** Ready for planning
87
+ **Source:** PRD Express Path ({PRD_FILE})
88
+
89
+ <domain>
90
+ ## Phase Boundary
91
+
92
+ [Extracted from PRD — what this phase delivers]
93
+
94
+ </domain>
95
+
96
+ <decisions>
97
+ ## Implementation Decisions
98
+
99
+ {For each requirement/story/criterion in the PRD:}
100
+ ### [Category derived from content]
101
+ - [Requirement as locked decision]
102
+
103
+ ### Claude's Discretion
104
+ [Areas not covered by PRD — implementation details, technical choices]
105
+
106
+ </decisions>
107
+
108
+ <specifics>
109
+ ## Specific Ideas
110
+
111
+ [Any specific references, examples, or concrete requirements from PRD]
112
+
113
+ </specifics>
114
+
115
+ <deferred>
116
+ ## Deferred Ideas
117
+
118
+ [Items in PRD explicitly marked as future/v2/out-of-scope]
119
+ [If none: "None — PRD covers phase scope"]
120
+
121
+ </deferred>
122
+
123
+ ---
124
+
125
+ *Phase: XX-name*
126
+ *Context gathered: [date] via PRD Express Path*
127
+ ```
128
+
129
+ 5. Commit:
130
+ ```bash
131
+ node ./.claude/get-shit-done/bin/gsd-tools.cjs commit "docs(${padded_phase}): generate context from PRD" --files "${phase_dir}/${padded_phase}-CONTEXT.md"
132
+ ```
133
+
134
+ 6. Set `context_content` to the generated CONTEXT.md content and continue to step 5 (Handle Research).
135
+
136
+ **Effect:** This completely bypasses step 4 (Load CONTEXT.md) since we just created it. The rest of the workflow (research, planning, verification) proceeds normally with the PRD-derived context.
137
+
138
+ ## 4. Load CONTEXT.md
139
+
140
+ **Skip if:** PRD express path was used (CONTEXT.md already created in step 3.5).
141
+
142
+ Check `context_path` from init JSON.
143
+
144
+ If `context_path` is not null, display: `Using phase context from: ${context_path}`
145
+
146
+ **If `context_path` is null (no CONTEXT.md exists):**
147
+
148
+ Use AskUserQuestion:
149
+ - header: "No context"
150
+ - question: "No CONTEXT.md found for Phase {X}. Plans will use research and requirements only — your design preferences won't be included. Continue or capture context first?"
151
+ - options:
152
+ - "Continue without context" — Plan using research + requirements only
153
+ - "Run discuss-phase first" — Capture design decisions before planning
154
+
155
+ If "Continue without context": Proceed to step 5.
156
+ If "Run discuss-phase first": Display `/gsd:discuss-phase {X}` and exit workflow.
157
+
158
+ ## 5. Handle Research
159
+
160
+ **Skip if:** `--gaps` flag, `--skip-research` flag, or `research_enabled` is false (from init) without `--research` override.
161
+
162
+ **If `has_research` is true (from init) AND no `--research` flag:** Use existing, skip to step 6.
163
+
164
+ **If RESEARCH.md missing OR `--research` flag:**
165
+
166
+ Display banner:
167
+ ```
168
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
169
+ GSD ► RESEARCHING PHASE {X}
170
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
171
+
172
+ ◆ Spawning researcher...
173
+ ```
174
+
175
+ ### Spawn gsd-phase-researcher
176
+
177
+ ```bash
178
+ PHASE_DESC=$(node ./.claude/get-shit-done/bin/gsd-tools.cjs roadmap get-phase "${PHASE}" | jq -r '.section')
179
+ ```
180
+
181
+ Research prompt:
182
+
183
+ ```markdown
184
+ <objective>
185
+ Research how to implement Phase {phase_number}: {phase_name}
186
+ Answer: "What do I need to know to PLAN this phase well?"
187
+ </objective>
188
+
189
+ <files_to_read>
190
+ - {context_path} (USER DECISIONS from /gsd:discuss-phase)
191
+ - {requirements_path} (Project requirements)
192
+ - {state_path} (Project decisions and history)
193
+ </files_to_read>
194
+
195
+ <additional_context>
196
+ **Phase description:** {phase_description}
197
+ **Phase requirement IDs (MUST address):** {phase_req_ids}
198
+
199
+ **Project instructions:** Read ./CLAUDE.md if exists — follow project-specific guidelines
200
+ **Project skills:** Check .agents/skills/ directory (if exists) — read SKILL.md files, research should account for project skill patterns
201
+ </additional_context>
202
+
203
+ <output>
204
+ Write to: {phase_dir}/{phase_num}-RESEARCH.md
205
+ </output>
206
+ ```
207
+
208
+ ```
209
+ Task(
210
+ prompt="First, read ./.claude/agents/gsd-phase-researcher.md for your role and instructions.\n\n" + research_prompt,
211
+ subagent_type="general-purpose",
212
+ model="{researcher_model}",
213
+ description="Research Phase {phase}"
214
+ )
215
+ ```
216
+
217
+ ### Handle Researcher Return
218
+
219
+ - **`## RESEARCH COMPLETE`:** Display confirmation, continue to step 6
220
+ - **`## RESEARCH BLOCKED`:** Display blocker, offer: 1) Provide context, 2) Skip research, 3) Abort
221
+
222
+ ## 5.5. Create Validation Strategy (if Nyquist enabled)
223
+
224
+ **Skip if:** `nyquist_validation_enabled` is false from INIT JSON.
225
+
226
+ After researcher completes, check if RESEARCH.md contains a Validation Architecture section:
227
+
228
+ ```bash
229
+ grep -l "## Validation Architecture" "${PHASE_DIR}"/*-RESEARCH.md 2>/dev/null
230
+ ```
231
+
232
+ **If found:**
233
+ 1. Read validation template from `./.claude/get-shit-done/templates/VALIDATION.md`
234
+ 2. Write to `${PHASE_DIR}/${PADDED_PHASE}-VALIDATION.md`
235
+ 3. Fill frontmatter: replace `{N}` with phase number, `{phase-slug}` with phase slug, `{date}` with current date
236
+ 4. If `commit_docs` is true:
237
+ ```bash
238
+ node ./.claude/get-shit-done/bin/gsd-tools.cjs commit-docs "docs(phase-${PHASE}): add validation strategy"
239
+ ```
240
+
241
+ **If not found (and nyquist enabled):** Display warning:
242
+ ```
243
+ ⚠ Nyquist validation enabled but researcher did not produce a Validation Architecture section.
244
+ Continuing without validation strategy. Plans may fail Dimension 8 check.
245
+ ```
246
+
247
+ ## 6. Check Existing Plans
248
+
249
+ ```bash
250
+ ls "${PHASE_DIR}"/*-PLAN.md 2>/dev/null
251
+ ```
252
+
253
+ **If exists:** Offer: 1) Add more plans, 2) View existing, 3) Replan from scratch.
254
+
255
+ ## 7. Use Context Paths from INIT
256
+
257
+ Extract from INIT JSON:
258
+
259
+ ```bash
260
+ STATE_PATH=$(echo "$INIT" | jq -r '.state_path // empty')
261
+ ROADMAP_PATH=$(echo "$INIT" | jq -r '.roadmap_path // empty')
262
+ REQUIREMENTS_PATH=$(echo "$INIT" | jq -r '.requirements_path // empty')
263
+ RESEARCH_PATH=$(echo "$INIT" | jq -r '.research_path // empty')
264
+ VERIFICATION_PATH=$(echo "$INIT" | jq -r '.verification_path // empty')
265
+ UAT_PATH=$(echo "$INIT" | jq -r '.uat_path // empty')
266
+ CONTEXT_PATH=$(echo "$INIT" | jq -r '.context_path // empty')
267
+ ```
268
+
269
+ ## 8. Spawn gsd-planner Agent
270
+
271
+ Display banner:
272
+ ```
273
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
274
+ GSD ► PLANNING PHASE {X}
275
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
276
+
277
+ ◆ Spawning planner...
278
+ ```
279
+
280
+ Planner prompt:
281
+
282
+ ```markdown
283
+ <planning_context>
284
+ **Phase:** {phase_number}
285
+ **Mode:** {standard | gap_closure}
286
+
287
+ <files_to_read>
288
+ - {state_path} (Project State)
289
+ - {roadmap_path} (Roadmap)
290
+ - {requirements_path} (Requirements)
291
+ - {context_path} (USER DECISIONS from /gsd:discuss-phase)
292
+ - {research_path} (Technical Research)
293
+ - {verification_path} (Verification Gaps - if --gaps)
294
+ - {uat_path} (UAT Gaps - if --gaps)
295
+ </files_to_read>
296
+
297
+ **Phase requirement IDs (every ID MUST appear in a plan's `requirements` field):** {phase_req_ids}
298
+
299
+ **Project instructions:** Read ./CLAUDE.md if exists — follow project-specific guidelines
300
+ **Project skills:** Check .agents/skills/ directory (if exists) — read SKILL.md files, plans should account for project skill rules
301
+ </planning_context>
302
+
303
+ <downstream_consumer>
304
+ Output consumed by /gsd:execute-phase. Plans need:
305
+ - Frontmatter (wave, depends_on, files_modified, autonomous)
306
+ - Tasks in XML format
307
+ - Verification criteria
308
+ - must_haves for goal-backward verification
309
+ </downstream_consumer>
310
+
311
+ <quality_gate>
312
+ - [ ] PLAN.md files created in phase directory
313
+ - [ ] Each plan has valid frontmatter
314
+ - [ ] Tasks are specific and actionable
315
+ - [ ] Dependencies correctly identified
316
+ - [ ] Waves assigned for parallel execution
317
+ - [ ] must_haves derived from phase goal
318
+ </quality_gate>
319
+ ```
320
+
321
+ ```
322
+ Task(
323
+ prompt="First, read ./.claude/agents/gsd-planner.md for your role and instructions.\n\n" + filled_prompt,
324
+ subagent_type="general-purpose",
325
+ model="{planner_model}",
326
+ description="Plan Phase {phase}"
327
+ )
328
+ ```
329
+
330
+ ## 9. Handle Planner Return
331
+
332
+ - **`## PLANNING COMPLETE`:** Display plan count. If `--skip-verify` or `plan_checker_enabled` is false (from init): skip to step 13. Otherwise: step 10.
333
+ - **`## CHECKPOINT REACHED`:** Present to user, get response, spawn continuation (step 12)
334
+ - **`## PLANNING INCONCLUSIVE`:** Show attempts, offer: Add context / Retry / Manual
335
+
336
+ ## 10. Spawn gsd-plan-checker Agent
337
+
338
+ Display banner:
339
+ ```
340
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
341
+ GSD ► VERIFYING PLANS
342
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
343
+
344
+ ◆ Spawning plan checker...
345
+ ```
346
+
347
+ Checker prompt:
348
+
349
+ ```markdown
350
+ <verification_context>
351
+ **Phase:** {phase_number}
352
+ **Phase Goal:** {goal from ROADMAP}
353
+
354
+ <files_to_read>
355
+ - {PHASE_DIR}/*-PLAN.md (Plans to verify)
356
+ - {roadmap_path} (Roadmap)
357
+ - {requirements_path} (Requirements)
358
+ - {context_path} (USER DECISIONS from /gsd:discuss-phase)
359
+ - {research_path} (Technical Research — includes Validation Architecture)
360
+ </files_to_read>
361
+
362
+ **Phase requirement IDs (MUST ALL be covered):** {phase_req_ids}
363
+
364
+ **Project instructions:** Read ./CLAUDE.md if exists — verify plans honor project guidelines
365
+ **Project skills:** Check .agents/skills/ directory (if exists) — verify plans account for project skill rules
366
+ </verification_context>
367
+
368
+ <expected_output>
369
+ - ## VERIFICATION PASSED — all checks pass
370
+ - ## ISSUES FOUND — structured issue list
371
+ </expected_output>
372
+ ```
373
+
374
+ ```
375
+ Task(
376
+ prompt=checker_prompt,
377
+ subagent_type="gsd-plan-checker",
378
+ model="{checker_model}",
379
+ description="Verify Phase {phase} plans"
380
+ )
381
+ ```
382
+
383
+ ## 11. Handle Checker Return
384
+
385
+ - **`## VERIFICATION PASSED`:** Display confirmation, proceed to step 13.
386
+ - **`## ISSUES FOUND`:** Display issues, check iteration count, proceed to step 12.
387
+
388
+ ## 12. Revision Loop (Max 3 Iterations)
389
+
390
+ Track `iteration_count` (starts at 1 after initial plan + check).
391
+
392
+ **If iteration_count < 3:**
393
+
394
+ Display: `Sending back to planner for revision... (iteration {N}/3)`
395
+
396
+ Revision prompt:
397
+
398
+ ```markdown
399
+ <revision_context>
400
+ **Phase:** {phase_number}
401
+ **Mode:** revision
402
+
403
+ <files_to_read>
404
+ - {PHASE_DIR}/*-PLAN.md (Existing plans)
405
+ - {context_path} (USER DECISIONS from /gsd:discuss-phase)
406
+ </files_to_read>
407
+
408
+ **Checker issues:** {structured_issues_from_checker}
409
+ </revision_context>
410
+
411
+ <instructions>
412
+ Make targeted updates to address checker issues.
413
+ Do NOT replan from scratch unless issues are fundamental.
414
+ Return what changed.
415
+ </instructions>
416
+ ```
417
+
418
+ ```
419
+ Task(
420
+ prompt="First, read ./.claude/agents/gsd-planner.md for your role and instructions.\n\n" + revision_prompt,
421
+ subagent_type="general-purpose",
422
+ model="{planner_model}",
423
+ description="Revise Phase {phase} plans"
424
+ )
425
+ ```
426
+
427
+ After planner returns -> spawn checker again (step 10), increment iteration_count.
428
+
429
+ **If iteration_count >= 3:**
430
+
431
+ Display: `Max iterations reached. {N} issues remain:` + issue list
432
+
433
+ Offer: 1) Force proceed, 2) Provide guidance and retry, 3) Abandon
434
+
435
+ ## 13. Present Final Status
436
+
437
+ Route to `<offer_next>` OR `auto_advance` depending on flags/config.
438
+
439
+ ## 14. Auto-Advance Check
440
+
441
+ Check for auto-advance trigger:
442
+
443
+ 1. Parse `--auto` flag from $ARGUMENTS
444
+ 2. Read `workflow.auto_advance` from config:
445
+ ```bash
446
+ AUTO_CFG=$(node ./.claude/get-shit-done/bin/gsd-tools.cjs config-get workflow.auto_advance 2>/dev/null || echo "false")
447
+ ```
448
+
449
+ **If `--auto` flag present OR `AUTO_CFG` is true:**
450
+
451
+ Display banner:
452
+ ```
453
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
454
+ GSD ► AUTO-ADVANCING TO EXECUTE
455
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
456
+
457
+ Plans ready. Spawning execute-phase...
458
+ ```
459
+
460
+ Spawn execute-phase as Task with direct workflow file reference (do NOT use Skill tool — Skills don't resolve inside Task subagents):
461
+ ```
462
+ Task(
463
+ prompt="
464
+ <objective>
465
+ You are the execute-phase orchestrator. Execute all plans for Phase ${PHASE}: ${PHASE_NAME}.
466
+ </objective>
467
+
468
+ <execution_context>
469
+ @./.claude/get-shit-done/workflows/execute-phase.md
470
+ @./.claude/get-shit-done/references/checkpoints.md
471
+ @./.claude/get-shit-done/references/tdd.md
472
+ @./.claude/get-shit-done/references/model-profile-resolution.md
473
+ </execution_context>
474
+
475
+ <arguments>
476
+ PHASE=${PHASE}
477
+ ARGUMENTS='${PHASE} --auto --no-transition'
478
+ </arguments>
479
+
480
+ <instructions>
481
+ 1. Read execute-phase.md from execution_context for your complete workflow
482
+ 2. Follow ALL steps: initialize, handle_branching, validate_phase, discover_and_group_plans, execute_waves, aggregate_results, close_parent_artifacts, verify_phase_goal, update_roadmap
483
+ 3. The --no-transition flag means: after verification + roadmap update, STOP and return status. Do NOT run transition.md.
484
+ 4. When spawning executor agents, use subagent_type='gsd-executor' with the existing @file pattern from the workflow
485
+ 5. When spawning verifier agents, use subagent_type='gsd-verifier'
486
+ 6. Preserve the classifyHandoffIfNeeded workaround (spot-check on that specific error)
487
+ 7. Do NOT use the Skill tool or /gsd: commands
488
+ </instructions>
489
+ ",
490
+ subagent_type="general-purpose",
491
+ description="Execute Phase ${PHASE}"
492
+ )
493
+ ```
494
+
495
+ **Handle execute-phase return:**
496
+ - **PHASE COMPLETE** → Display final summary:
497
+ ```
498
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
499
+ GSD ► PHASE ${PHASE} COMPLETE ✓
500
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
501
+
502
+ Auto-advance pipeline finished.
503
+
504
+ Next: /gsd:discuss-phase ${NEXT_PHASE} --auto
505
+ ```
506
+ - **GAPS FOUND / VERIFICATION FAILED** → Display result, stop chain:
507
+ ```
508
+ Auto-advance stopped: Execution needs review.
509
+
510
+ Review the output above and continue manually:
511
+ /gsd:execute-phase ${PHASE}
512
+ ```
513
+
514
+ **If neither `--auto` nor config enabled:**
515
+ Route to `<offer_next>` (existing behavior).
516
+
517
+ </process>
518
+
519
+ <offer_next>
520
+ Output this markdown directly (not as a code block):
521
+
522
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
523
+ GSD ► PHASE {X} PLANNED ✓
524
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
525
+
526
+ **Phase {X}: {Name}** — {N} plan(s) in {M} wave(s)
527
+
528
+ | Wave | Plans | What it builds |
529
+ |------|-------|----------------|
530
+ | 1 | 01, 02 | [objectives] |
531
+ | 2 | 03 | [objective] |
532
+
533
+ Research: {Completed | Used existing | Skipped}
534
+ Verification: {Passed | Passed with override | Skipped}
535
+
536
+ ───────────────────────────────────────────────────────────────
537
+
538
+ ## ▶ Next Up
539
+
540
+ **Execute Phase {X}** — run all {N} plans
541
+
542
+ /gsd:execute-phase {X}
543
+
544
+ <sub>/clear first → fresh context window</sub>
545
+
546
+ ───────────────────────────────────────────────────────────────
547
+
548
+ **Also available:**
549
+ - cat .planning/phases/{phase-dir}/*-PLAN.md — review plans
550
+ - /gsd:plan-phase {X} --research — re-research first
551
+
552
+ ───────────────────────────────────────────────────────────────
553
+ </offer_next>
554
+
555
+ <success_criteria>
556
+ - [ ] .planning/ directory validated
557
+ - [ ] Phase validated against roadmap
558
+ - [ ] Phase directory created if needed
559
+ - [ ] CONTEXT.md loaded early (step 4) and passed to ALL agents
560
+ - [ ] Research completed (unless --skip-research or --gaps or exists)
561
+ - [ ] gsd-phase-researcher spawned with CONTEXT.md
562
+ - [ ] Existing plans checked
563
+ - [ ] gsd-planner spawned with CONTEXT.md + RESEARCH.md
564
+ - [ ] Plans created (PLANNING COMPLETE or CHECKPOINT handled)
565
+ - [ ] gsd-plan-checker spawned with CONTEXT.md
566
+ - [ ] Verification passed OR user override OR max iterations with user decision
567
+ - [ ] User sees status between agent spawns
568
+ - [ ] User knows next steps
569
+ </success_criteria>