@m3hti/commit-genie 3.2.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 (160) 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/dist/services/descriptionGenerator.d.ts.map +1 -1
  152. package/dist/services/descriptionGenerator.js +56 -14
  153. package/dist/services/descriptionGenerator.js.map +1 -1
  154. package/dist/services/fileContentAnalyzer.js +136 -17
  155. package/dist/services/fileContentAnalyzer.js.map +1 -1
  156. package/dist/services/fileContentAnalyzer.test.js +64 -0
  157. package/dist/services/fileContentAnalyzer.test.js.map +1 -1
  158. package/dist/services/semanticAnalyzer.js +20 -0
  159. package/dist/services/semanticAnalyzer.js.map +1 -1
  160. package/package.json +1 -1
@@ -0,0 +1,115 @@
1
+ # Milestone Entry Template
2
+
3
+ Add this entry to `.planning/MILESTONES.md` when completing a milestone:
4
+
5
+ ```markdown
6
+ ## v[X.Y] [Name] (Shipped: YYYY-MM-DD)
7
+
8
+ **Delivered:** [One sentence describing what shipped]
9
+
10
+ **Phases completed:** [X-Y] ([Z] plans total)
11
+
12
+ **Key accomplishments:**
13
+ - [Major achievement 1]
14
+ - [Major achievement 2]
15
+ - [Major achievement 3]
16
+ - [Major achievement 4]
17
+
18
+ **Stats:**
19
+ - [X] files created/modified
20
+ - [Y] lines of code (primary language)
21
+ - [Z] phases, [N] plans, [M] tasks
22
+ - [D] days from start to ship (or milestone to milestone)
23
+
24
+ **Git range:** `feat(XX-XX)` → `feat(YY-YY)`
25
+
26
+ **What's next:** [Brief description of next milestone goals, or "Project complete"]
27
+
28
+ ---
29
+ ```
30
+
31
+ <structure>
32
+ If MILESTONES.md doesn't exist, create it with header:
33
+
34
+ ```markdown
35
+ # Project Milestones: [Project Name]
36
+
37
+ [Entries in reverse chronological order - newest first]
38
+ ```
39
+ </structure>
40
+
41
+ <guidelines>
42
+ **When to create milestones:**
43
+ - Initial v1.0 MVP shipped
44
+ - Major version releases (v2.0, v3.0)
45
+ - Significant feature milestones (v1.1, v1.2)
46
+ - Before archiving planning (capture what was shipped)
47
+
48
+ **Don't create milestones for:**
49
+ - Individual phase completions (normal workflow)
50
+ - Work in progress (wait until shipped)
51
+ - Minor bug fixes that don't constitute a release
52
+
53
+ **Stats to include:**
54
+ - Count modified files: `git diff --stat feat(XX-XX)..feat(YY-YY) | tail -1`
55
+ - Count LOC: `find . -name "*.swift" -o -name "*.ts" | xargs wc -l` (or relevant extension)
56
+ - Phase/plan/task counts from ROADMAP
57
+ - Timeline from first phase commit to last phase commit
58
+
59
+ **Git range format:**
60
+ - First commit of milestone → last commit of milestone
61
+ - Example: `feat(01-01)` → `feat(04-01)` for phases 1-4
62
+ </guidelines>
63
+
64
+ <example>
65
+ ```markdown
66
+ # Project Milestones: WeatherBar
67
+
68
+ ## v1.1 Security & Polish (Shipped: 2025-12-10)
69
+
70
+ **Delivered:** Security hardening with Keychain integration and comprehensive error handling
71
+
72
+ **Phases completed:** 5-6 (3 plans total)
73
+
74
+ **Key accomplishments:**
75
+ - Migrated API key storage from plaintext to macOS Keychain
76
+ - Implemented comprehensive error handling for network failures
77
+ - Added Sentry crash reporting integration
78
+ - Fixed memory leak in auto-refresh timer
79
+
80
+ **Stats:**
81
+ - 23 files modified
82
+ - 650 lines of Swift added
83
+ - 2 phases, 3 plans, 12 tasks
84
+ - 8 days from v1.0 to v1.1
85
+
86
+ **Git range:** `feat(05-01)` → `feat(06-02)`
87
+
88
+ **What's next:** v2.0 SwiftUI redesign with widget support
89
+
90
+ ---
91
+
92
+ ## v1.0 MVP (Shipped: 2025-11-25)
93
+
94
+ **Delivered:** Menu bar weather app with current conditions and 3-day forecast
95
+
96
+ **Phases completed:** 1-4 (7 plans total)
97
+
98
+ **Key accomplishments:**
99
+ - Menu bar app with popover UI (AppKit)
100
+ - OpenWeather API integration with auto-refresh
101
+ - Current weather display with conditions icon
102
+ - 3-day forecast list with high/low temperatures
103
+ - Code signed and notarized for distribution
104
+
105
+ **Stats:**
106
+ - 47 files created
107
+ - 2,450 lines of Swift
108
+ - 4 phases, 7 plans, 28 tasks
109
+ - 12 days from start to ship
110
+
111
+ **Git range:** `feat(01-01)` → `feat(04-01)`
112
+
113
+ **What's next:** Security audit and hardening for v1.1
114
+ ```
115
+ </example>
@@ -0,0 +1,569 @@
1
+ # Phase Prompt Template
2
+
3
+ > **Note:** Planning methodology is in `agents/gsd-planner.md`.
4
+ > This template defines the PLAN.md output format that the agent produces.
5
+
6
+ Template for `.planning/phases/XX-name/{phase}-{plan}-PLAN.md` - executable phase plans optimized for parallel execution.
7
+
8
+ **Naming:** Use `{phase}-{plan}-PLAN.md` format (e.g., `01-02-PLAN.md` for Phase 1, Plan 2)
9
+
10
+ ---
11
+
12
+ ## File Template
13
+
14
+ ```markdown
15
+ ---
16
+ phase: XX-name
17
+ plan: NN
18
+ type: execute
19
+ wave: N # Execution wave (1, 2, 3...). Pre-computed at plan time.
20
+ depends_on: [] # Plan IDs this plan requires (e.g., ["01-01"]).
21
+ files_modified: [] # Files this plan modifies.
22
+ autonomous: true # false if plan has checkpoints requiring user interaction
23
+ requirements: [] # REQUIRED — Requirement IDs from ROADMAP this plan addresses. MUST NOT be empty.
24
+ user_setup: [] # Human-required setup Claude cannot automate (see below)
25
+
26
+ # Goal-backward verification (derived during planning, verified after execution)
27
+ must_haves:
28
+ truths: [] # Observable behaviors that must be true for goal achievement
29
+ artifacts: [] # Files that must exist with real implementation
30
+ key_links: [] # Critical connections between artifacts
31
+ ---
32
+
33
+ <objective>
34
+ [What this plan accomplishes]
35
+
36
+ Purpose: [Why this matters for the project]
37
+ Output: [What artifacts will be created]
38
+ </objective>
39
+
40
+ <execution_context>
41
+ @./.claude/get-shit-done/workflows/execute-plan.md
42
+ @./.claude/get-shit-done/templates/summary.md
43
+ [If plan contains checkpoint tasks (type="checkpoint:*"), add:]
44
+ @./.claude/get-shit-done/references/checkpoints.md
45
+ </execution_context>
46
+
47
+ <context>
48
+ @.planning/PROJECT.md
49
+ @.planning/ROADMAP.md
50
+ @.planning/STATE.md
51
+
52
+ # Only reference prior plan SUMMARYs if genuinely needed:
53
+ # - This plan uses types/exports from prior plan
54
+ # - Prior plan made decision that affects this plan
55
+ # Do NOT reflexively chain: Plan 02 refs 01, Plan 03 refs 02...
56
+
57
+ [Relevant source files:]
58
+ @src/path/to/relevant.ts
59
+ </context>
60
+
61
+ <tasks>
62
+
63
+ <task type="auto">
64
+ <name>Task 1: [Action-oriented name]</name>
65
+ <files>path/to/file.ext, another/file.ext</files>
66
+ <action>[Specific implementation - what to do, how to do it, what to avoid and WHY]</action>
67
+ <verify>[Command or check to prove it worked]</verify>
68
+ <done>[Measurable acceptance criteria]</done>
69
+ </task>
70
+
71
+ <task type="auto">
72
+ <name>Task 2: [Action-oriented name]</name>
73
+ <files>path/to/file.ext</files>
74
+ <action>[Specific implementation]</action>
75
+ <verify>[Command or check]</verify>
76
+ <done>[Acceptance criteria]</done>
77
+ </task>
78
+
79
+ <!-- For checkpoint task examples and patterns, see @./.claude/get-shit-done/references/checkpoints.md -->
80
+ <!-- Key rule: Claude starts dev server BEFORE human-verify checkpoints. User only visits URLs. -->
81
+
82
+ <task type="checkpoint:decision" gate="blocking">
83
+ <decision>[What needs deciding]</decision>
84
+ <context>[Why this decision matters]</context>
85
+ <options>
86
+ <option id="option-a"><name>[Name]</name><pros>[Benefits]</pros><cons>[Tradeoffs]</cons></option>
87
+ <option id="option-b"><name>[Name]</name><pros>[Benefits]</pros><cons>[Tradeoffs]</cons></option>
88
+ </options>
89
+ <resume-signal>Select: option-a or option-b</resume-signal>
90
+ </task>
91
+
92
+ <task type="checkpoint:human-verify" gate="blocking">
93
+ <what-built>[What Claude built] - server running at [URL]</what-built>
94
+ <how-to-verify>Visit [URL] and verify: [visual checks only, NO CLI commands]</how-to-verify>
95
+ <resume-signal>Type "approved" or describe issues</resume-signal>
96
+ </task>
97
+
98
+ </tasks>
99
+
100
+ <verification>
101
+ Before declaring plan complete:
102
+ - [ ] [Specific test command]
103
+ - [ ] [Build/type check passes]
104
+ - [ ] [Behavior verification]
105
+ </verification>
106
+
107
+ <success_criteria>
108
+
109
+ - All tasks completed
110
+ - All verification checks pass
111
+ - No errors or warnings introduced
112
+ - [Plan-specific criteria]
113
+ </success_criteria>
114
+
115
+ <output>
116
+ After completion, create `.planning/phases/XX-name/{phase}-{plan}-SUMMARY.md`
117
+ </output>
118
+ ```
119
+
120
+ ---
121
+
122
+ ## Frontmatter Fields
123
+
124
+ | Field | Required | Purpose |
125
+ |-------|----------|---------|
126
+ | `phase` | Yes | Phase identifier (e.g., `01-foundation`) |
127
+ | `plan` | Yes | Plan number within phase (e.g., `01`, `02`) |
128
+ | `type` | Yes | Always `execute` for standard plans, `tdd` for TDD plans |
129
+ | `wave` | Yes | Execution wave number (1, 2, 3...). Pre-computed at plan time. |
130
+ | `depends_on` | Yes | Array of plan IDs this plan requires. |
131
+ | `files_modified` | Yes | Files this plan touches. |
132
+ | `autonomous` | Yes | `true` if no checkpoints, `false` if has checkpoints |
133
+ | `requirements` | Yes | **MUST** list requirement IDs from ROADMAP. Every roadmap requirement MUST appear in at least one plan. |
134
+ | `user_setup` | No | Array of human-required setup items (external services) |
135
+ | `must_haves` | Yes | Goal-backward verification criteria (see below) |
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.
138
+
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
+
141
+ ---
142
+
143
+ ## Parallel vs Sequential
144
+
145
+ <parallel_examples>
146
+
147
+ **Wave 1 candidates (parallel):**
148
+
149
+ ```yaml
150
+ # Plan 01 - User feature
151
+ wave: 1
152
+ depends_on: []
153
+ files_modified: [src/models/user.ts, src/api/users.ts]
154
+ autonomous: true
155
+
156
+ # Plan 02 - Product feature (no overlap with Plan 01)
157
+ wave: 1
158
+ depends_on: []
159
+ files_modified: [src/models/product.ts, src/api/products.ts]
160
+ autonomous: true
161
+
162
+ # Plan 03 - Order feature (no overlap)
163
+ wave: 1
164
+ depends_on: []
165
+ files_modified: [src/models/order.ts, src/api/orders.ts]
166
+ autonomous: true
167
+ ```
168
+
169
+ All three run in parallel (Wave 1) - no dependencies, no file conflicts.
170
+
171
+ **Sequential (genuine dependency):**
172
+
173
+ ```yaml
174
+ # Plan 01 - Auth foundation
175
+ wave: 1
176
+ depends_on: []
177
+ files_modified: [src/lib/auth.ts, src/middleware/auth.ts]
178
+ autonomous: true
179
+
180
+ # Plan 02 - Protected features (needs auth)
181
+ wave: 2
182
+ depends_on: ["01"]
183
+ files_modified: [src/features/dashboard.ts]
184
+ autonomous: true
185
+ ```
186
+
187
+ Plan 02 in Wave 2 waits for Plan 01 in Wave 1 - genuine dependency on auth types/middleware.
188
+
189
+ **Checkpoint plan:**
190
+
191
+ ```yaml
192
+ # Plan 03 - UI with verification
193
+ wave: 3
194
+ depends_on: ["01", "02"]
195
+ files_modified: [src/components/Dashboard.tsx]
196
+ autonomous: false # Has checkpoint:human-verify
197
+ ```
198
+
199
+ Wave 3 runs after Waves 1 and 2. Pauses at checkpoint, orchestrator presents to user, resumes on approval.
200
+
201
+ </parallel_examples>
202
+
203
+ ---
204
+
205
+ ## Context Section
206
+
207
+ **Parallel-aware context:**
208
+
209
+ ```markdown
210
+ <context>
211
+ @.planning/PROJECT.md
212
+ @.planning/ROADMAP.md
213
+ @.planning/STATE.md
214
+
215
+ # Only include SUMMARY refs if genuinely needed:
216
+ # - This plan imports types from prior plan
217
+ # - Prior plan made decision affecting this plan
218
+ # - Prior plan's output is input to this plan
219
+ #
220
+ # Independent plans need NO prior SUMMARY references.
221
+ # Do NOT reflexively chain: 02 refs 01, 03 refs 02...
222
+
223
+ @src/relevant/source.ts
224
+ </context>
225
+ ```
226
+
227
+ **Bad pattern (creates false dependencies):**
228
+ ```markdown
229
+ <context>
230
+ @.planning/phases/03-features/03-01-SUMMARY.md # Just because it's earlier
231
+ @.planning/phases/03-features/03-02-SUMMARY.md # Reflexive chaining
232
+ </context>
233
+ ```
234
+
235
+ ---
236
+
237
+ ## Scope Guidance
238
+
239
+ **Plan sizing:**
240
+
241
+ - 2-3 tasks per plan
242
+ - ~50% context usage maximum
243
+ - Complex phases: Multiple focused plans, not one large plan
244
+
245
+ **When to split:**
246
+
247
+ - Different subsystems (auth vs API vs UI)
248
+ - >3 tasks
249
+ - Risk of context overflow
250
+ - TDD candidates - separate plans
251
+
252
+ **Vertical slices preferred:**
253
+
254
+ ```
255
+ PREFER: Plan 01 = User (model + API + UI)
256
+ Plan 02 = Product (model + API + UI)
257
+
258
+ AVOID: Plan 01 = All models
259
+ Plan 02 = All APIs
260
+ Plan 03 = All UIs
261
+ ```
262
+
263
+ ---
264
+
265
+ ## TDD Plans
266
+
267
+ TDD features get dedicated plans with `type: tdd`.
268
+
269
+ **Heuristic:** Can you write `expect(fn(input)).toBe(output)` before writing `fn`?
270
+ → Yes: Create a TDD plan
271
+ → No: Standard task in standard plan
272
+
273
+ See `./.claude/get-shit-done/references/tdd.md` for TDD plan structure.
274
+
275
+ ---
276
+
277
+ ## Task Types
278
+
279
+ | Type | Use For | Autonomy |
280
+ |------|---------|----------|
281
+ | `auto` | Everything Claude can do independently | Fully autonomous |
282
+ | `checkpoint:human-verify` | Visual/functional verification | Pauses, returns to orchestrator |
283
+ | `checkpoint:decision` | Implementation choices | Pauses, returns to orchestrator |
284
+ | `checkpoint:human-action` | Truly unavoidable manual steps (rare) | Pauses, returns to orchestrator |
285
+
286
+ **Checkpoint behavior in parallel execution:**
287
+ - Plan runs until checkpoint
288
+ - Agent returns with checkpoint details + agent_id
289
+ - Orchestrator presents to user
290
+ - User responds
291
+ - Orchestrator resumes agent with `resume: agent_id`
292
+
293
+ ---
294
+
295
+ ## Examples
296
+
297
+ **Autonomous parallel plan:**
298
+
299
+ ```markdown
300
+ ---
301
+ phase: 03-features
302
+ plan: 01
303
+ type: execute
304
+ wave: 1
305
+ depends_on: []
306
+ files_modified: [src/features/user/model.ts, src/features/user/api.ts, src/features/user/UserList.tsx]
307
+ autonomous: true
308
+ ---
309
+
310
+ <objective>
311
+ Implement complete User feature as vertical slice.
312
+
313
+ Purpose: Self-contained user management that can run parallel to other features.
314
+ Output: User model, API endpoints, and UI components.
315
+ </objective>
316
+
317
+ <context>
318
+ @.planning/PROJECT.md
319
+ @.planning/ROADMAP.md
320
+ @.planning/STATE.md
321
+ </context>
322
+
323
+ <tasks>
324
+ <task type="auto">
325
+ <name>Task 1: Create User model</name>
326
+ <files>src/features/user/model.ts</files>
327
+ <action>Define User type with id, email, name, createdAt. Export TypeScript interface.</action>
328
+ <verify>tsc --noEmit passes</verify>
329
+ <done>User type exported and usable</done>
330
+ </task>
331
+
332
+ <task type="auto">
333
+ <name>Task 2: Create User API endpoints</name>
334
+ <files>src/features/user/api.ts</files>
335
+ <action>GET /users (list), GET /users/:id (single), POST /users (create). Use User type from model.</action>
336
+ <verify>curl tests pass for all endpoints</verify>
337
+ <done>All CRUD operations work</done>
338
+ </task>
339
+ </tasks>
340
+
341
+ <verification>
342
+ - [ ] npm run build succeeds
343
+ - [ ] API endpoints respond correctly
344
+ </verification>
345
+
346
+ <success_criteria>
347
+ - All tasks completed
348
+ - User feature works end-to-end
349
+ </success_criteria>
350
+
351
+ <output>
352
+ After completion, create `.planning/phases/03-features/03-01-SUMMARY.md`
353
+ </output>
354
+ ```
355
+
356
+ **Plan with checkpoint (non-autonomous):**
357
+
358
+ ```markdown
359
+ ---
360
+ phase: 03-features
361
+ plan: 03
362
+ type: execute
363
+ wave: 2
364
+ depends_on: ["03-01", "03-02"]
365
+ files_modified: [src/components/Dashboard.tsx]
366
+ autonomous: false
367
+ ---
368
+
369
+ <objective>
370
+ Build dashboard with visual verification.
371
+
372
+ Purpose: Integrate user and product features into unified view.
373
+ Output: Working dashboard component.
374
+ </objective>
375
+
376
+ <execution_context>
377
+ @./.claude/get-shit-done/workflows/execute-plan.md
378
+ @./.claude/get-shit-done/templates/summary.md
379
+ @./.claude/get-shit-done/references/checkpoints.md
380
+ </execution_context>
381
+
382
+ <context>
383
+ @.planning/PROJECT.md
384
+ @.planning/ROADMAP.md
385
+ @.planning/phases/03-features/03-01-SUMMARY.md
386
+ @.planning/phases/03-features/03-02-SUMMARY.md
387
+ </context>
388
+
389
+ <tasks>
390
+ <task type="auto">
391
+ <name>Task 1: Build Dashboard layout</name>
392
+ <files>src/components/Dashboard.tsx</files>
393
+ <action>Create responsive grid with UserList and ProductList components. Use Tailwind for styling.</action>
394
+ <verify>npm run build succeeds</verify>
395
+ <done>Dashboard renders without errors</done>
396
+ </task>
397
+
398
+ <!-- Checkpoint pattern: Claude starts server, user visits URL. See checkpoints.md for full patterns. -->
399
+ <task type="auto">
400
+ <name>Start dev server</name>
401
+ <action>Run `npm run dev` in background, wait for ready</action>
402
+ <verify>curl localhost:3000 returns 200</verify>
403
+ </task>
404
+
405
+ <task type="checkpoint:human-verify" gate="blocking">
406
+ <what-built>Dashboard - server at http://localhost:3000</what-built>
407
+ <how-to-verify>Visit localhost:3000/dashboard. Check: desktop grid, mobile stack, no scroll issues.</how-to-verify>
408
+ <resume-signal>Type "approved" or describe issues</resume-signal>
409
+ </task>
410
+ </tasks>
411
+
412
+ <verification>
413
+ - [ ] npm run build succeeds
414
+ - [ ] Visual verification passed
415
+ </verification>
416
+
417
+ <success_criteria>
418
+ - All tasks completed
419
+ - User approved visual layout
420
+ </success_criteria>
421
+
422
+ <output>
423
+ After completion, create `.planning/phases/03-features/03-03-SUMMARY.md`
424
+ </output>
425
+ ```
426
+
427
+ ---
428
+
429
+ ## Anti-Patterns
430
+
431
+ **Bad: Reflexive dependency chaining**
432
+ ```yaml
433
+ depends_on: ["03-01"] # Just because 01 comes before 02
434
+ ```
435
+
436
+ **Bad: Horizontal layer grouping**
437
+ ```
438
+ Plan 01: All models
439
+ Plan 02: All APIs (depends on 01)
440
+ Plan 03: All UIs (depends on 02)
441
+ ```
442
+
443
+ **Bad: Missing autonomy flag**
444
+ ```yaml
445
+ # Has checkpoint but no autonomous: false
446
+ depends_on: []
447
+ files_modified: [...]
448
+ # autonomous: ??? <- Missing!
449
+ ```
450
+
451
+ **Bad: Vague tasks**
452
+ ```xml
453
+ <task type="auto">
454
+ <name>Set up authentication</name>
455
+ <action>Add auth to the app</action>
456
+ </task>
457
+ ```
458
+
459
+ ---
460
+
461
+ ## Guidelines
462
+
463
+ - Always use XML structure for Claude parsing
464
+ - Include `wave`, `depends_on`, `files_modified`, `autonomous` in every plan
465
+ - Prefer vertical slices over horizontal layers
466
+ - Only reference prior SUMMARYs when genuinely needed
467
+ - Group checkpoints with related auto tasks in same plan
468
+ - 2-3 tasks per plan, ~50% context max
469
+
470
+ ---
471
+
472
+ ## User Setup (External Services)
473
+
474
+ When a plan introduces external services requiring human configuration, declare in frontmatter:
475
+
476
+ ```yaml
477
+ user_setup:
478
+ - service: stripe
479
+ why: "Payment processing requires API keys"
480
+ env_vars:
481
+ - name: STRIPE_SECRET_KEY
482
+ source: "Stripe Dashboard → Developers → API keys → Secret key"
483
+ - name: STRIPE_WEBHOOK_SECRET
484
+ source: "Stripe Dashboard → Developers → Webhooks → Signing secret"
485
+ dashboard_config:
486
+ - task: "Create webhook endpoint"
487
+ location: "Stripe Dashboard → Developers → Webhooks → Add endpoint"
488
+ details: "URL: https://[your-domain]/api/webhooks/stripe"
489
+ local_dev:
490
+ - "stripe listen --forward-to localhost:3000/api/webhooks/stripe"
491
+ ```
492
+
493
+ **The automation-first rule:** `user_setup` contains ONLY what Claude literally cannot do:
494
+ - Account creation (requires human signup)
495
+ - Secret retrieval (requires dashboard access)
496
+ - Dashboard configuration (requires human in browser)
497
+
498
+ **NOT included:** Package installs, code changes, file creation, CLI commands Claude can run.
499
+
500
+ **Result:** Execute-plan generates `{phase}-USER-SETUP.md` with checklist for the user.
501
+
502
+ See `./.claude/get-shit-done/templates/user-setup.md` for full schema and examples
503
+
504
+ ---
505
+
506
+ ## Must-Haves (Goal-Backward Verification)
507
+
508
+ The `must_haves` field defines what must be TRUE for the phase goal to be achieved. Derived during planning, verified after execution.
509
+
510
+ **Structure:**
511
+
512
+ ```yaml
513
+ must_haves:
514
+ truths:
515
+ - "User can see existing messages"
516
+ - "User can send a message"
517
+ - "Messages persist across refresh"
518
+ artifacts:
519
+ - path: "src/components/Chat.tsx"
520
+ provides: "Message list rendering"
521
+ min_lines: 30
522
+ - path: "src/app/api/chat/route.ts"
523
+ provides: "Message CRUD operations"
524
+ exports: ["GET", "POST"]
525
+ - path: "prisma/schema.prisma"
526
+ provides: "Message model"
527
+ contains: "model Message"
528
+ key_links:
529
+ - from: "src/components/Chat.tsx"
530
+ to: "/api/chat"
531
+ via: "fetch in useEffect"
532
+ pattern: "fetch.*api/chat"
533
+ - from: "src/app/api/chat/route.ts"
534
+ to: "prisma.message"
535
+ via: "database query"
536
+ pattern: "prisma\\.message\\.(find|create)"
537
+ ```
538
+
539
+ **Field descriptions:**
540
+
541
+ | Field | Purpose |
542
+ |-------|---------|
543
+ | `truths` | Observable behaviors from user perspective. Each must be testable. |
544
+ | `artifacts` | Files that must exist with real implementation. |
545
+ | `artifacts[].path` | File path relative to project root. |
546
+ | `artifacts[].provides` | What this artifact delivers. |
547
+ | `artifacts[].min_lines` | Optional. Minimum lines to be considered substantive. |
548
+ | `artifacts[].exports` | Optional. Expected exports to verify. |
549
+ | `artifacts[].contains` | Optional. Pattern that must exist in file. |
550
+ | `key_links` | Critical connections between artifacts. |
551
+ | `key_links[].from` | Source artifact. |
552
+ | `key_links[].to` | Target artifact or endpoint. |
553
+ | `key_links[].via` | How they connect (description). |
554
+ | `key_links[].pattern` | Optional. Regex to verify connection exists. |
555
+
556
+ **Why this matters:**
557
+
558
+ Task completion ≠ Goal achievement. A task "create chat component" can complete by creating a placeholder. The `must_haves` field captures what must actually work, enabling verification to catch gaps before they compound.
559
+
560
+ **Verification flow:**
561
+
562
+ 1. Plan-phase derives must_haves from phase goal (goal-backward)
563
+ 2. Must_haves written to PLAN.md frontmatter
564
+ 3. Execute-phase runs all plans
565
+ 4. Verification subagent checks must_haves against codebase
566
+ 5. Gaps found → fix plans created → execute → re-verify
567
+ 6. All must_haves pass → phase complete
568
+
569
+ See `./.claude/get-shit-done/workflows/verify-phase.md` for verification logic.