gsd-opencode 1.3.33 → 1.4.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 (67) hide show
  1. package/LICENSE +21 -0
  2. package/command/gsd/add-phase.md +3 -3
  3. package/command/gsd/add-todo.md +182 -0
  4. package/command/gsd/check-todos.md +217 -0
  5. package/command/gsd/complete-milestone.md +4 -3
  6. package/command/gsd/consider-issues.md +5 -5
  7. package/command/gsd/create-roadmap.md +4 -4
  8. package/command/gsd/debug.md +58 -0
  9. package/command/gsd/discuss-phase.md +3 -4
  10. package/command/gsd/execute-phase.md +137 -0
  11. package/command/gsd/execute-plan.md +70 -95
  12. package/command/gsd/help.md +83 -6
  13. package/command/gsd/insert-phase.md +16 -16
  14. package/command/gsd/list-phase-assumptions.md +8 -8
  15. package/command/gsd/map-codebase.md +11 -11
  16. package/command/gsd/new-milestone.md +1 -1
  17. package/command/gsd/new-project.md +26 -7
  18. package/command/gsd/pause-work.md +4 -3
  19. package/command/gsd/plan-fix.md +8 -8
  20. package/command/gsd/plan-phase.md +9 -9
  21. package/command/gsd/progress.md +20 -11
  22. package/command/gsd/remove-phase.md +15 -15
  23. package/command/gsd/research-phase.md +10 -10
  24. package/command/gsd/resume-work.md +4 -5
  25. package/command/gsd/status.md +127 -0
  26. package/command/gsd/verify-work.md +8 -8
  27. package/get-shit-done/references/continuation-format.md +8 -8
  28. package/get-shit-done/references/debugging/debugging-mindset.md +253 -0
  29. package/get-shit-done/references/debugging/hypothesis-testing.md +373 -0
  30. package/get-shit-done/references/debugging/investigation-techniques.md +337 -0
  31. package/get-shit-done/references/debugging/verification-patterns.md +425 -0
  32. package/get-shit-done/references/debugging/when-to-research.md +361 -0
  33. package/get-shit-done/references/plan-format.md +68 -21
  34. package/get-shit-done/references/questioning.md +12 -12
  35. package/get-shit-done/references/research-pitfalls.md +2 -2
  36. package/get-shit-done/references/scope-estimation.md +95 -11
  37. package/get-shit-done/templates/DEBUG.md +159 -0
  38. package/get-shit-done/templates/agent-history.md +263 -0
  39. package/get-shit-done/templates/checkpoint-return.md +204 -0
  40. package/get-shit-done/templates/codebase/architecture.md +4 -4
  41. package/get-shit-done/templates/codebase/concerns.md +1 -1
  42. package/get-shit-done/templates/codebase/structure.md +11 -11
  43. package/get-shit-done/templates/config.json +8 -0
  44. package/get-shit-done/templates/context.md +0 -21
  45. package/get-shit-done/templates/continuation-prompt.md +235 -0
  46. package/get-shit-done/templates/milestone-archive.md +1 -1
  47. package/get-shit-done/templates/phase-prompt.md +289 -129
  48. package/get-shit-done/templates/roadmap.md +1 -1
  49. package/get-shit-done/templates/state.md +11 -0
  50. package/get-shit-done/templates/subagent-task-prompt.md +95 -0
  51. package/get-shit-done/templates/summary.md +2 -2
  52. package/get-shit-done/workflows/_archive/execute-phase.md +899 -0
  53. package/get-shit-done/workflows/complete-milestone.md +1 -1
  54. package/get-shit-done/workflows/create-milestone.md +1 -1
  55. package/get-shit-done/workflows/create-roadmap.md +2 -2
  56. package/get-shit-done/workflows/debug.md +426 -0
  57. package/get-shit-done/workflows/discovery-phase.md +1 -1
  58. package/get-shit-done/workflows/discuss-milestone.md +6 -6
  59. package/get-shit-done/workflows/discuss-phase.md +12 -22
  60. package/get-shit-done/workflows/execute-phase.md +272 -1504
  61. package/get-shit-done/workflows/execute-plan.md +1813 -0
  62. package/get-shit-done/workflows/map-codebase.md +9 -9
  63. package/get-shit-done/workflows/plan-phase.md +262 -49
  64. package/get-shit-done/workflows/resume-project.md +28 -2
  65. package/get-shit-done/workflows/transition.md +4 -4
  66. package/get-shit-done/workflows/verify-work.md +4 -4
  67. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  # Phase Prompt Template
2
2
 
3
- Template for `.planning/phases/XX-name/{phase}-{plan}-PLAN.md` - executable phase plans.
3
+ Template for `.planning/phases/XX-name/{phase}-{plan}-PLAN.md` - executable phase plans optimized for parallel execution.
4
4
 
5
5
  **Naming:** Use `{phase}-{plan}-PLAN.md` format (e.g., `01-02-PLAN.md` for Phase 1, Plan 2)
6
6
 
@@ -11,29 +11,39 @@ Template for `.planning/phases/XX-name/{phase}-{plan}-PLAN.md` - executable phas
11
11
  ```markdown
12
12
  ---
13
13
  phase: XX-name
14
+ plan: NN
14
15
  type: execute
16
+ wave: N # Execution wave (1, 2, 3...). Pre-computed at plan time.
17
+ depends_on: [] # Plan IDs this plan requires (e.g., ["01-01"]).
18
+ files_modified: [] # Files this plan modifies.
19
+ autonomous: true # false if plan has checkpoints requiring user interaction
15
20
  domain: [optional - if domain skill loaded]
16
21
  ---
17
22
 
18
23
  <objective>
19
- [What this phase accomplishes - from roadmap phase goal]
24
+ [What this plan accomplishes]
20
25
 
21
26
  Purpose: [Why this matters for the project]
22
27
  Output: [What artifacts will be created]
23
28
  </objective>
24
29
 
25
30
  <execution_context>
26
- ~/.config/opencode/get-shit-done/workflows/execute-phase.md
27
- ./summary.md
31
+ @~/.config/opencode/get-shit-done/workflows/execute-plan.md
32
+ @~/.config/opencode/get-shit-done/templates/summary.md
28
33
  [If plan contains checkpoint tasks (type="checkpoint:*"), add:]
29
- ~/.config/opencode/get-shit-done/references/checkpoints.md
34
+ @~/.config/opencode/get-shit-done/references/checkpoints.md
30
35
  </execution_context>
31
36
 
32
37
  <context>
33
38
  @.planning/PROJECT.md
34
39
  @.planning/ROADMAP.md
35
- [If discovery exists:]
36
- @.planning/phases/XX-name/DISCOVERY.md
40
+ @.planning/STATE.md
41
+
42
+ # Only reference prior plan SUMMARYs if genuinely needed:
43
+ # - This plan uses types/exports from prior plan
44
+ # - Prior plan made decision that affects this plan
45
+ # Do NOT reflexively chain: Plan 02 refs 01, Plan 03 refs 02...
46
+
37
47
  [Relevant source files:]
38
48
  @src/path/to/relevant.ts
39
49
  </context>
@@ -74,14 +84,6 @@ Output: [What artifacts will be created]
74
84
  <resume-signal>[How to indicate choice - "Select: option-a or option-b"]</resume-signal>
75
85
  </task>
76
86
 
77
- <task type="auto">
78
- <name>Task 3: [Action-oriented name]</name>
79
- <files>path/to/file.ext</files>
80
- <action>[Specific implementation]</action>
81
- <verify>[Command or check]</verify>
82
- <done>[Acceptance criteria]</done>
83
- </task>
84
-
85
87
  <task type="checkpoint:human-verify" gate="blocking">
86
88
  <what-built>[What Claude just built that needs verification]</what-built>
87
89
  <how-to-verify>
@@ -93,12 +95,10 @@ Output: [What artifacts will be created]
93
95
  <resume-signal>Type "approved" to continue, or describe issues to fix</resume-signal>
94
96
  </task>
95
97
 
96
- [Continue for all tasks - mix of auto and checkpoints as needed...]
97
-
98
98
  </tasks>
99
99
 
100
100
  <verification>
101
- Before declaring phase complete:
101
+ Before declaring plan complete:
102
102
  - [ ] [Specific test command]
103
103
  - [ ] [Build/type check passes]
104
104
  - [ ] [Behavior verification]
@@ -109,195 +109,355 @@ Before declaring phase complete:
109
109
  - All tasks completed
110
110
  - All verification checks pass
111
111
  - No errors or warnings introduced
112
- - [Phase-specific criteria]
112
+ - [Plan-specific criteria]
113
113
  </success_criteria>
114
114
 
115
115
  <output>
116
- After completion, create `.planning/phases/XX-name/{phase}-{plan}-SUMMARY.md`:
116
+ After completion, create `.planning/phases/XX-name/{phase}-{plan}-SUMMARY.md`
117
+ </output>
118
+ ```
119
+
120
+ ---
117
121
 
118
- # Phase [X] Plan [Y]: [Name] Summary
122
+ ## Frontmatter Fields
119
123
 
120
- **[Substantive one-liner - what shipped, not "phase complete"]**
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
+ | `domain` | No | Domain skill if loaded (e.g., `next-js`) |
121
134
 
122
- ## Accomplishments
135
+ **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.
123
136
 
124
- - [Key outcome 1]
125
- - [Key outcome 2]
137
+ ---
138
+
139
+ ## Parallel vs Sequential
126
140
 
127
- ## Files Created/Modified
141
+ <parallel_examples>
128
142
 
129
- - `path/to/file.ts` - Description
130
- - `path/to/another.ts` - Description
143
+ **Wave 1 candidates (parallel):**
131
144
 
132
- ## Decisions Made
145
+ ```yaml
146
+ # Plan 01 - User feature
147
+ wave: 1
148
+ depends_on: []
149
+ files_modified: [src/models/user.ts, src/api/users.ts]
150
+ autonomous: true
133
151
 
134
- [Key decisions and rationale, or "None"]
152
+ # Plan 02 - Product feature (no overlap with Plan 01)
153
+ wave: 1
154
+ depends_on: []
155
+ files_modified: [src/models/product.ts, src/api/products.ts]
156
+ autonomous: true
135
157
 
136
- ## Issues Encountered
158
+ # Plan 03 - Order feature (no overlap)
159
+ wave: 1
160
+ depends_on: []
161
+ files_modified: [src/models/order.ts, src/api/orders.ts]
162
+ autonomous: true
163
+ ```
137
164
 
138
- [Problems and resolutions, or "None"]
165
+ All three run in parallel (Wave 1) - no dependencies, no file conflicts.
139
166
 
140
- ## Next Step
167
+ **Sequential (genuine dependency):**
141
168
 
142
- [If more plans in this phase: "Ready for {phase}-{next-plan}-PLAN.md"]
143
- [If phase complete: "Phase complete, ready for next phase"]
144
- </output>
169
+ ```yaml
170
+ # Plan 01 - Auth foundation
171
+ wave: 1
172
+ depends_on: []
173
+ files_modified: [src/lib/auth.ts, src/middleware/auth.ts]
174
+ autonomous: true
175
+
176
+ # Plan 02 - Protected features (needs auth)
177
+ wave: 2
178
+ depends_on: ["01"]
179
+ files_modified: [src/features/dashboard.ts]
180
+ autonomous: true
181
+ ```
182
+
183
+ Plan 02 in Wave 2 waits for Plan 01 in Wave 1 - genuine dependency on auth types/middleware.
184
+
185
+ **Checkpoint plan:**
186
+
187
+ ```yaml
188
+ # Plan 03 - UI with verification
189
+ wave: 3
190
+ depends_on: ["01", "02"]
191
+ files_modified: [src/components/Dashboard.tsx]
192
+ autonomous: false # Has checkpoint:human-verify
193
+ ```
194
+
195
+ Wave 3 runs after Waves 1 and 2. Pauses at checkpoint, orchestrator presents to user, resumes on approval.
196
+
197
+ </parallel_examples>
198
+
199
+ ---
200
+
201
+ ## Context Section
202
+
203
+ **Parallel-aware context:**
204
+
205
+ ```markdown
206
+ <context>
207
+ @.planning/PROJECT.md
208
+ @.planning/ROADMAP.md
209
+ @.planning/STATE.md
210
+
211
+ # Only include SUMMARY refs if genuinely needed:
212
+ # - This plan imports types from prior plan
213
+ # - Prior plan made decision affecting this plan
214
+ # - Prior plan's output is input to this plan
215
+ #
216
+ # Independent plans need NO prior SUMMARY references.
217
+ # Do NOT reflexively chain: 02 refs 01, 03 refs 02...
218
+
219
+ @src/relevant/source.ts
220
+ </context>
221
+ ```
222
+
223
+ **Bad pattern (creates false dependencies):**
224
+ ```markdown
225
+ <context>
226
+ @.planning/phases/03-features/03-01-SUMMARY.md # Just because it's earlier
227
+ @.planning/phases/03-features/03-02-SUMMARY.md # Reflexive chaining
228
+ </context>
145
229
  ```
146
230
 
147
- <key_elements>
148
- From create-meta-prompts patterns:
231
+ ---
149
232
 
150
- - XML structure for Claude parsing
151
- - @context references for file loading
152
- - Task types: auto, checkpoint:human-action, checkpoint:human-verify, checkpoint:decision
153
- - Action includes "what to avoid and WHY" (from intelligence-rules)
154
- - Verification is specific and executable
155
- - Success criteria is measurable
156
- - Output specification includes SUMMARY.md structure
157
- </key_elements>
233
+ ## Scope Guidance
158
234
 
159
- <scope_guidance>
160
235
  **Plan sizing:**
161
236
 
162
- - Aim for 2-3 tasks per plan
163
- - If planning >3 tasks, split into multiple plans (01-01, 01-02, etc.)
164
- - Target ~50% context usage maximum
165
- - Complex phases: Create 01-01, 01-02, 01-03 plans instead of one large plan
237
+ - 2-3 tasks per plan
238
+ - ~50% context usage maximum
239
+ - Complex phases: Multiple focused plans, not one large plan
166
240
 
167
241
  **When to split:**
168
242
 
169
243
  - Different subsystems (auth vs API vs UI)
170
- - Clear dependency boundaries (setup → implement → test)
171
- - Risk of context overflow (>50% estimated usage)
172
- - **TDD candidates** - Features that warrant TDD become their own TDD plans
173
- </scope_guidance>
244
+ - >3 tasks
245
+ - Risk of context overflow
246
+ - TDD candidates - separate plans
247
+
248
+ **Vertical slices preferred:**
249
+
250
+ ```
251
+ PREFER: Plan 01 = User (model + API + UI)
252
+ Plan 02 = Product (model + API + UI)
253
+
254
+ AVOID: Plan 01 = All models
255
+ Plan 02 = All APIs
256
+ Plan 03 = All UIs
257
+ ```
174
258
 
175
- <tdd_plan_note>
176
- **TDD features get dedicated plans.**
259
+ ---
260
+
261
+ ## TDD Plans
177
262
 
178
- TDD requires 2-3 execution cycles (RED GREEN → REFACTOR) that consume 40-50% context for a single feature. Features warranting TDD (business logic, validation, algorithms, API contracts) each get their own TDD plan.
263
+ TDD features get dedicated plans with `type: tdd`.
179
264
 
180
265
  **Heuristic:** Can you write `expect(fn(input)).toBe(output)` before writing `fn`?
181
- → Yes: Create a TDD plan (one feature per plan)
266
+ → Yes: Create a TDD plan
182
267
  → No: Standard task in standard plan
183
268
 
184
269
  See `~/.config/opencode/get-shit-done/references/tdd.md` for TDD plan structure.
185
- </tdd_plan_note>
186
270
 
187
- <good_examples>
271
+ ---
272
+
273
+ ## Task Types
274
+
275
+ | Type | Use For | Autonomy |
276
+ |------|---------|----------|
277
+ | `auto` | Everything Claude can do independently | Fully autonomous |
278
+ | `checkpoint:human-verify` | Visual/functional verification | Pauses, returns to orchestrator |
279
+ | `checkpoint:decision` | Implementation choices | Pauses, returns to orchestrator |
280
+ | `checkpoint:human-action` | Truly unavoidable manual steps (rare) | Pauses, returns to orchestrator |
281
+
282
+ **Checkpoint behavior in parallel execution:**
283
+ - Plan runs until checkpoint
284
+ - Agent returns with checkpoint details + agent_id
285
+ - Orchestrator presents to user
286
+ - User responds
287
+ - Orchestrator resumes agent with `resume: agent_id`
288
+
289
+ ---
290
+
291
+ ## Examples
292
+
293
+ **Autonomous parallel plan:**
188
294
 
189
295
  ```markdown
190
296
  ---
191
- phase: 01-foundation
297
+ phase: 03-features
298
+ plan: 01
192
299
  type: execute
193
- domain: next-js
300
+ wave: 1
301
+ depends_on: []
302
+ files_modified: [src/features/user/model.ts, src/features/user/api.ts, src/features/user/UserList.tsx]
303
+ autonomous: true
194
304
  ---
195
305
 
196
306
  <objective>
197
- Set up Next.js project with authentication foundation.
307
+ Implement complete User feature as vertical slice.
198
308
 
199
- Purpose: Establish the core structure and auth patterns all features depend on.
200
- Output: Working Next.js app with JWT auth, protected routes, and user model.
309
+ Purpose: Self-contained user management that can run parallel to other features.
310
+ Output: User model, API endpoints, and UI components.
201
311
  </objective>
202
312
 
203
- <execution_context>
204
- ~/.config/opencode/get-shit-done/workflows/execute-phase.md
205
- ./summary.md
206
- </execution_context>
207
-
208
313
  <context>
209
314
  @.planning/PROJECT.md
210
315
  @.planning/ROADMAP.md
211
- @src/lib/db.ts
316
+ @.planning/STATE.md
212
317
  </context>
213
318
 
214
319
  <tasks>
215
-
216
320
  <task type="auto">
217
- <name>Task 1: Add User model to database schema</name>
218
- <files>prisma/schema.prisma</files>
219
- <action>Add User model with fields: id (cuid), email (unique), passwordHash, createdAt, updatedAt. Add Session relation. Use @db.VarChar(255) for email to prevent index issues.</action>
220
- <verify>npx prisma validate passes, npx prisma generate succeeds</verify>
221
- <done>Schema valid, types generated, no errors</done>
321
+ <name>Task 1: Create User model</name>
322
+ <files>src/features/user/model.ts</files>
323
+ <action>Define User type with id, email, name, createdAt. Export TypeScript interface.</action>
324
+ <verify>tsc --noEmit passes</verify>
325
+ <done>User type exported and usable</done>
222
326
  </task>
223
327
 
224
328
  <task type="auto">
225
- <name>Task 2: Create login API endpoint</name>
226
- <files>src/app/api/auth/login/route.ts</files>
227
- <action>POST endpoint that accepts {email, password}, validates against User table using bcrypt, returns JWT in httpOnly cookie with 15-min expiry. Use jose library for JWT (not jsonwebtoken - it has CommonJS issues with Next.js).</action>
228
- <verify>curl -X POST /api/auth/login -d '{"email":"test@test.com","password":"test"}' -H "Content-Type: application/json" returns 200 with Set-Cookie header</verify>
229
- <done>Valid credentials return 200 + cookie, invalid return 401, missing fields return 400</done>
329
+ <name>Task 2: Create User API endpoints</name>
330
+ <files>src/features/user/api.ts</files>
331
+ <action>GET /users (list), GET /users/:id (single), POST /users (create). Use User type from model.</action>
332
+ <verify>curl tests pass for all endpoints</verify>
333
+ <done>All CRUD operations work</done>
230
334
  </task>
231
-
232
335
  </tasks>
233
336
 
234
337
  <verification>
235
- Before declaring phase complete:
236
- - [ ] `npm run build` succeeds without errors
237
- - [ ] `npx prisma validate` passes
238
- - [ ] Login endpoint responds correctly to valid/invalid credentials
239
- - [ ] Protected route redirects unauthenticated users
338
+ - [ ] npm run build succeeds
339
+ - [ ] API endpoints respond correctly
240
340
  </verification>
241
341
 
242
342
  <success_criteria>
243
-
244
343
  - All tasks completed
245
- - All verification checks pass
246
- - No TypeScript errors
247
- - JWT auth flow works end-to-end
248
- </success_criteria>
344
+ - User feature works end-to-end
345
+ </success_criteria>
249
346
 
250
347
  <output>
251
- After completion, create `.planning/phases/01-foundation/01-01-SUMMARY.md`
348
+ After completion, create `.planning/phases/03-features/03-01-SUMMARY.md`
252
349
  </output>
253
350
  ```
254
351
 
255
- </good_examples>
256
-
257
- <bad_examples>
352
+ **Plan with checkpoint (non-autonomous):**
258
353
 
259
354
  ```markdown
260
- # Phase 1: Foundation
355
+ ---
356
+ phase: 03-features
357
+ plan: 03
358
+ type: execute
359
+ wave: 2
360
+ depends_on: ["03-01", "03-02"]
361
+ files_modified: [src/components/Dashboard.tsx]
362
+ autonomous: false
363
+ ---
261
364
 
262
- ## Tasks
365
+ <objective>
366
+ Build dashboard with visual verification.
263
367
 
264
- ### Task 1: Set up authentication
368
+ Purpose: Integrate user and product features into unified view.
369
+ Output: Working dashboard component.
370
+ </objective>
265
371
 
266
- **Action**: Add auth to the app
267
- **Done when**: Users can log in
268
- ```
372
+ <execution_context>
373
+ @~/.config/opencode/get-shit-done/workflows/execute-plan.md
374
+ @~/.config/opencode/get-shit-done/templates/summary.md
375
+ @~/.config/opencode/get-shit-done/references/checkpoints.md
376
+ </execution_context>
269
377
 
270
- This is useless. No XML structure, no @context, no verification, no specificity.
271
- </bad_examples>
378
+ <context>
379
+ @.planning/PROJECT.md
380
+ @.planning/ROADMAP.md
381
+ @.planning/phases/03-features/03-01-SUMMARY.md
382
+ @.planning/phases/03-features/03-02-SUMMARY.md
383
+ </context>
272
384
 
273
- <guidelines>
274
- **When to use:**
275
- - Creating execution plans for each phase
276
- - One plan per 2-3 tasks, multiple plans per phase if needed
277
- - Always use XML structure for Claude parsing
385
+ <tasks>
386
+ <task type="auto">
387
+ <name>Task 1: Build Dashboard layout</name>
388
+ <files>src/components/Dashboard.tsx</files>
389
+ <action>Create responsive grid with UserList and ProductList components. Use Tailwind for styling.</action>
390
+ <verify>npm run build succeeds</verify>
391
+ <done>Dashboard renders without errors</done>
392
+ </task>
278
393
 
279
- **Task types:**
394
+ <task type="checkpoint:human-verify" gate="blocking">
395
+ <what-built>Responsive dashboard with user and product sections</what-built>
396
+ <how-to-verify>
397
+ 1. Run: npm run dev
398
+ 2. Visit: http://localhost:3000/dashboard
399
+ 3. Desktop: Verify two-column grid
400
+ 4. Mobile: Verify stacked layout
401
+ 5. Check: No layout shift, no scroll issues
402
+ </how-to-verify>
403
+ <resume-signal>Type "approved" or describe issues</resume-signal>
404
+ </task>
405
+ </tasks>
280
406
 
281
- - `type="auto"`: Execute without stopping
282
- - `type="checkpoint:human-action"`: User must do something (manual step)
283
- - `type="checkpoint:human-verify"`: User must verify output (testing, visual check)
284
- - `type="checkpoint:decision"`: User must choose between options
407
+ <verification>
408
+ - [ ] npm run build succeeds
409
+ - [ ] Visual verification passed
410
+ </verification>
285
411
 
286
- **Gate values:**
412
+ <success_criteria>
413
+ - All tasks completed
414
+ - User approved visual layout
415
+ </success_criteria>
287
416
 
288
- - `gate="blocking"`: Must resolve before continuing
289
- - `gate="optional"`: Can skip or defer
417
+ <output>
418
+ After completion, create `.planning/phases/03-features/03-03-SUMMARY.md`
419
+ </output>
420
+ ```
290
421
 
291
- **Context references:**
422
+ ---
292
423
 
293
- - Use @path/to/file.md to load files
294
- - Always include @.planning/PROJECT.md and @.planning/ROADMAP.md
295
- - Include relevant source files for context
296
- - Include workflow/template references
424
+ ## Anti-Patterns
297
425
 
298
- **After completion:**
426
+ **Bad: Reflexive dependency chaining**
427
+ ```yaml
428
+ depends_on: ["03-01"] # Just because 01 comes before 02
429
+ ```
299
430
 
300
- - Create SUMMARY.md in same directory
301
- - Follow summary.md template structure
302
- - Document deviations, decisions, issues
303
- </guidelines>
431
+ **Bad: Horizontal layer grouping**
432
+ ```
433
+ Plan 01: All models
434
+ Plan 02: All APIs (depends on 01)
435
+ Plan 03: All UIs (depends on 02)
436
+ ```
437
+
438
+ **Bad: Missing autonomy flag**
439
+ ```yaml
440
+ # Has checkpoint but no autonomous: false
441
+ depends_on: []
442
+ files_modified: [...]
443
+ # autonomous: ??? <- Missing!
444
+ ```
445
+
446
+ **Bad: Vague tasks**
447
+ ```xml
448
+ <task type="auto">
449
+ <name>Set up authentication</name>
450
+ <action>Add auth to the app</action>
451
+ </task>
452
+ ```
453
+
454
+ ---
455
+
456
+ ## Guidelines
457
+
458
+ - Always use XML structure for Claude parsing
459
+ - Include `wave`, `depends_on`, `files_modified`, `autonomous` in every plan
460
+ - Prefer vertical slices over horizontal layers
461
+ - Only reference prior SUMMARYs when genuinely needed
462
+ - Group checkpoints with related auto tasks in same plan
463
+ - 2-3 tasks per plan, ~50% context max
@@ -63,7 +63,7 @@ Plans:
63
63
  **Plans**: 1 plan
64
64
 
65
65
  Plans:
66
- - [ ] 2.1-01: [Description]
66
+ - [ ] 02.1-01: [Description]
67
67
 
68
68
  ### Phase 3: [Name]
69
69
  **Goal**: [What this phase delivers]
@@ -60,6 +60,12 @@ Recent decisions affecting current work:
60
60
 
61
61
  None yet.
62
62
 
63
+ ### Pending Todos
64
+
65
+ [From .planning/todos/pending/ — ideas captured during sessions]
66
+
67
+ None yet.
68
+
63
69
  ### Blockers/Concerns
64
70
 
65
71
  [Issues that affect future work]
@@ -152,6 +158,11 @@ Updated after each plan completion.
152
158
  - Effort estimate if known
153
159
  - Helps phase planning identify what to address
154
160
 
161
+ **Pending Todos:** Ideas captured via /gsd:add-todo
162
+ - Count of pending todos
163
+ - Reference to .planning/todos/pending/
164
+ - Brief list if few, count if many (e.g., "5 pending todos — see /gsd:check-todos")
165
+
155
166
  **Blockers/Concerns:** From "Next Phase Readiness" sections
156
167
  - Issues that affect future work
157
168
  - Prefix with originating phase
@@ -0,0 +1,95 @@
1
+ # Subagent Task Prompt Template
2
+
3
+ Template for spawning plan execution agents. Used by execute-phase (parallel) and execute-plan (single) orchestrators.
4
+
5
+ ---
6
+
7
+ ## Template
8
+
9
+ ```markdown
10
+ <objective>
11
+ Execute plan {plan_number} of phase {phase_number}-{phase_name}.
12
+
13
+ Commit each task atomically. Create SUMMARY.md. Update STATE.md.
14
+
15
+ **Checkpoint handling:** If you hit a checkpoint task or auth gate, STOP and return a structured checkpoint message. The orchestrator will spawn a fresh agent to continue after the user responds.
16
+ </objective>
17
+
18
+ <execution_context>
19
+ @~/.config/opencode/get-shit-done/workflows/execute-plan.md
20
+ @~/.config/opencode/get-shit-done/templates/summary.md
21
+ @~/.config/opencode/get-shit-done/references/checkpoints.md
22
+ @~/.config/opencode/get-shit-done/references/tdd.md
23
+ </execution_context>
24
+
25
+ <context>
26
+ Plan: @{plan_path}
27
+ Project state: @.planning/STATE.md
28
+ Config: @.planning/config.json (if exists)
29
+ </context>
30
+
31
+ <checkpoint_behavior>
32
+ When you encounter a checkpoint task (type="checkpoint:*") or auth gate, STOP execution and return using the structured format in:
33
+
34
+ @~/.config/opencode/get-shit-done/templates/checkpoint-return.md
35
+
36
+ **Required in your return:**
37
+ 1. Completed Tasks table with commit hashes and files
38
+ 2. Current task name and what's blocking it
39
+ 3. Checkpoint details for the user
40
+ 4. What you're awaiting from the user
41
+
42
+ The orchestrator will present this to the user. After they respond, a FRESH agent will continue from your checkpoint using the continuation-prompt template. You will NOT be resumed.
43
+ </checkpoint_behavior>
44
+
45
+ <completion_format>
46
+ When plan completes successfully, return:
47
+
48
+ ## PLAN COMPLETE
49
+
50
+ **Plan:** {phase}-{plan}
51
+ **Tasks:** {completed}/{total}
52
+ **SUMMARY:** {path to SUMMARY.md}
53
+
54
+ **Commits:**
55
+ - {hash}: {message}
56
+ ...
57
+ </completion_format>
58
+
59
+ <success_criteria>
60
+ - [ ] All tasks executed (or paused at checkpoint with full state returned)
61
+ - [ ] Each task committed individually
62
+ - [ ] SUMMARY.md created in plan directory
63
+ - [ ] STATE.md updated with position and decisions
64
+ </success_criteria>
65
+ ```
66
+
67
+ ---
68
+
69
+ ## Placeholders
70
+
71
+ | Placeholder | Source | Example |
72
+ |-------------|--------|---------|
73
+ | `{phase_number}` | Phase directory name | `01` |
74
+ | `{phase_name}` | Phase directory name | `foundation` |
75
+ | `{plan_number}` | Plan filename | `01` |
76
+ | `{plan_path}` | Full path to PLAN.md | `.planning/phases/01-foundation/01-01-PLAN.md` |
77
+
78
+ ---
79
+
80
+ ## Usage
81
+
82
+ Orchestrator fills placeholders and passes to Task tool:
83
+
84
+ ```python
85
+ Task(
86
+ prompt=filled_template,
87
+ subagent_type="general"
88
+ )
89
+ ```
90
+
91
+ Agent reads @-references, loads full workflow context, executes plan.
92
+
93
+ When agent returns:
94
+ - If contains "## CHECKPOINT REACHED": Parse checkpoint, present to user, spawn fresh agent with continuation-prompt.md
95
+ - If contains "## PLAN COMPLETE": Finalize execution