gsd-opencode 1.22.1 → 1.33.0

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 (188) hide show
  1. package/agents/gsd-advisor-researcher.md +112 -0
  2. package/agents/gsd-assumptions-analyzer.md +110 -0
  3. package/agents/gsd-codebase-mapper.md +0 -2
  4. package/agents/gsd-debugger.md +117 -2
  5. package/agents/gsd-doc-verifier.md +207 -0
  6. package/agents/gsd-doc-writer.md +608 -0
  7. package/agents/gsd-executor.md +45 -4
  8. package/agents/gsd-integration-checker.md +0 -2
  9. package/agents/gsd-nyquist-auditor.md +0 -2
  10. package/agents/gsd-phase-researcher.md +191 -5
  11. package/agents/gsd-plan-checker.md +152 -5
  12. package/agents/gsd-planner.md +131 -157
  13. package/agents/gsd-project-researcher.md +28 -3
  14. package/agents/gsd-research-synthesizer.md +0 -2
  15. package/agents/gsd-roadmapper.md +29 -2
  16. package/agents/gsd-security-auditor.md +129 -0
  17. package/agents/gsd-ui-auditor.md +485 -0
  18. package/agents/gsd-ui-checker.md +305 -0
  19. package/agents/gsd-ui-researcher.md +368 -0
  20. package/agents/gsd-user-profiler.md +173 -0
  21. package/agents/gsd-verifier.md +207 -22
  22. package/commands/gsd/gsd-add-backlog.md +76 -0
  23. package/commands/gsd/gsd-analyze-dependencies.md +34 -0
  24. package/commands/gsd/gsd-audit-uat.md +24 -0
  25. package/commands/gsd/gsd-autonomous.md +45 -0
  26. package/commands/gsd/gsd-cleanup.md +5 -0
  27. package/commands/gsd/gsd-debug.md +29 -21
  28. package/commands/gsd/gsd-discuss-phase.md +15 -36
  29. package/commands/gsd/gsd-do.md +30 -0
  30. package/commands/gsd/gsd-docs-update.md +48 -0
  31. package/commands/gsd/gsd-execute-phase.md +24 -2
  32. package/commands/gsd/gsd-fast.md +30 -0
  33. package/commands/gsd/gsd-forensics.md +56 -0
  34. package/commands/gsd/gsd-help.md +2 -0
  35. package/commands/gsd/gsd-join-discord.md +2 -1
  36. package/commands/gsd/gsd-list-workspaces.md +19 -0
  37. package/commands/gsd/gsd-manager.md +40 -0
  38. package/commands/gsd/gsd-milestone-summary.md +51 -0
  39. package/commands/gsd/gsd-new-project.md +4 -0
  40. package/commands/gsd/gsd-new-workspace.md +44 -0
  41. package/commands/gsd/gsd-next.md +24 -0
  42. package/commands/gsd/gsd-note.md +34 -0
  43. package/commands/gsd/gsd-plan-phase.md +8 -1
  44. package/commands/gsd/gsd-plant-seed.md +28 -0
  45. package/commands/gsd/gsd-pr-branch.md +25 -0
  46. package/commands/gsd/gsd-profile-user.md +46 -0
  47. package/commands/gsd/gsd-quick.md +7 -3
  48. package/commands/gsd/gsd-reapply-patches.md +178 -45
  49. package/commands/gsd/gsd-remove-workspace.md +26 -0
  50. package/commands/gsd/gsd-research-phase.md +7 -12
  51. package/commands/gsd/gsd-review-backlog.md +62 -0
  52. package/commands/gsd/gsd-review.md +38 -0
  53. package/commands/gsd/gsd-secure-phase.md +35 -0
  54. package/commands/gsd/gsd-session-report.md +19 -0
  55. package/commands/gsd/gsd-set-profile.md +24 -23
  56. package/commands/gsd/gsd-ship.md +23 -0
  57. package/commands/gsd/gsd-stats.md +18 -0
  58. package/commands/gsd/gsd-thread.md +127 -0
  59. package/commands/gsd/gsd-ui-phase.md +34 -0
  60. package/commands/gsd/gsd-ui-review.md +32 -0
  61. package/commands/gsd/gsd-workstreams.md +71 -0
  62. package/get-shit-done/bin/gsd-tools.cjs +450 -90
  63. package/get-shit-done/bin/lib/commands.cjs +489 -24
  64. package/get-shit-done/bin/lib/config.cjs +329 -48
  65. package/get-shit-done/bin/lib/core.cjs +1143 -102
  66. package/get-shit-done/bin/lib/docs.cjs +267 -0
  67. package/get-shit-done/bin/lib/frontmatter.cjs +125 -43
  68. package/get-shit-done/bin/lib/init.cjs +918 -106
  69. package/get-shit-done/bin/lib/milestone.cjs +65 -33
  70. package/get-shit-done/bin/lib/model-profiles.cjs +70 -0
  71. package/get-shit-done/bin/lib/phase.cjs +434 -404
  72. package/get-shit-done/bin/lib/profile-output.cjs +1048 -0
  73. package/get-shit-done/bin/lib/profile-pipeline.cjs +539 -0
  74. package/get-shit-done/bin/lib/roadmap.cjs +156 -101
  75. package/get-shit-done/bin/lib/schema-detect.cjs +238 -0
  76. package/get-shit-done/bin/lib/security.cjs +384 -0
  77. package/get-shit-done/bin/lib/state.cjs +711 -79
  78. package/get-shit-done/bin/lib/template.cjs +2 -2
  79. package/get-shit-done/bin/lib/uat.cjs +282 -0
  80. package/get-shit-done/bin/lib/verify.cjs +254 -42
  81. package/get-shit-done/bin/lib/workstream.cjs +495 -0
  82. package/get-shit-done/references/agent-contracts.md +79 -0
  83. package/get-shit-done/references/artifact-types.md +113 -0
  84. package/get-shit-done/references/checkpoints.md +12 -10
  85. package/get-shit-done/references/context-budget.md +49 -0
  86. package/get-shit-done/references/continuation-format.md +15 -15
  87. package/get-shit-done/references/decimal-phase-calculation.md +2 -3
  88. package/get-shit-done/references/domain-probes.md +125 -0
  89. package/get-shit-done/references/gate-prompts.md +100 -0
  90. package/get-shit-done/references/git-integration.md +47 -0
  91. package/get-shit-done/references/model-profile-resolution.md +2 -0
  92. package/get-shit-done/references/model-profiles.md +62 -16
  93. package/get-shit-done/references/phase-argument-parsing.md +2 -2
  94. package/get-shit-done/references/planner-gap-closure.md +62 -0
  95. package/get-shit-done/references/planner-reviews.md +39 -0
  96. package/get-shit-done/references/planner-revision.md +87 -0
  97. package/get-shit-done/references/planning-config.md +18 -1
  98. package/get-shit-done/references/revision-loop.md +97 -0
  99. package/get-shit-done/references/ui-brand.md +2 -2
  100. package/get-shit-done/references/universal-anti-patterns.md +58 -0
  101. package/get-shit-done/references/user-profiling.md +681 -0
  102. package/get-shit-done/references/workstream-flag.md +111 -0
  103. package/get-shit-done/templates/SECURITY.md +61 -0
  104. package/get-shit-done/templates/UAT.md +21 -3
  105. package/get-shit-done/templates/UI-SPEC.md +100 -0
  106. package/get-shit-done/templates/VALIDATION.md +3 -3
  107. package/get-shit-done/templates/claude-md.md +145 -0
  108. package/get-shit-done/templates/config.json +14 -3
  109. package/get-shit-done/templates/context.md +61 -6
  110. package/get-shit-done/templates/debug-subagent-prompt.md +2 -6
  111. package/get-shit-done/templates/dev-preferences.md +21 -0
  112. package/get-shit-done/templates/discussion-log.md +63 -0
  113. package/get-shit-done/templates/phase-prompt.md +46 -5
  114. package/get-shit-done/templates/planner-subagent-prompt.md +2 -10
  115. package/get-shit-done/templates/project.md +2 -0
  116. package/get-shit-done/templates/state.md +2 -2
  117. package/get-shit-done/templates/user-profile.md +146 -0
  118. package/get-shit-done/workflows/add-phase.md +4 -4
  119. package/get-shit-done/workflows/add-tests.md +4 -4
  120. package/get-shit-done/workflows/add-todo.md +4 -4
  121. package/get-shit-done/workflows/analyze-dependencies.md +96 -0
  122. package/get-shit-done/workflows/audit-milestone.md +20 -16
  123. package/get-shit-done/workflows/audit-uat.md +109 -0
  124. package/get-shit-done/workflows/autonomous.md +1036 -0
  125. package/get-shit-done/workflows/check-todos.md +4 -4
  126. package/get-shit-done/workflows/cleanup.md +4 -4
  127. package/get-shit-done/workflows/complete-milestone.md +22 -10
  128. package/get-shit-done/workflows/diagnose-issues.md +21 -7
  129. package/get-shit-done/workflows/discovery-phase.md +2 -2
  130. package/get-shit-done/workflows/discuss-phase-assumptions.md +671 -0
  131. package/get-shit-done/workflows/discuss-phase-power.md +291 -0
  132. package/get-shit-done/workflows/discuss-phase.md +558 -47
  133. package/get-shit-done/workflows/do.md +104 -0
  134. package/get-shit-done/workflows/docs-update.md +1093 -0
  135. package/get-shit-done/workflows/execute-phase.md +741 -58
  136. package/get-shit-done/workflows/execute-plan.md +77 -12
  137. package/get-shit-done/workflows/fast.md +105 -0
  138. package/get-shit-done/workflows/forensics.md +265 -0
  139. package/get-shit-done/workflows/health.md +28 -6
  140. package/get-shit-done/workflows/help.md +127 -7
  141. package/get-shit-done/workflows/insert-phase.md +4 -4
  142. package/get-shit-done/workflows/list-phase-assumptions.md +2 -2
  143. package/get-shit-done/workflows/list-workspaces.md +56 -0
  144. package/get-shit-done/workflows/manager.md +363 -0
  145. package/get-shit-done/workflows/map-codebase.md +83 -44
  146. package/get-shit-done/workflows/milestone-summary.md +223 -0
  147. package/get-shit-done/workflows/new-milestone.md +133 -25
  148. package/get-shit-done/workflows/new-project.md +216 -54
  149. package/get-shit-done/workflows/new-workspace.md +237 -0
  150. package/get-shit-done/workflows/next.md +97 -0
  151. package/get-shit-done/workflows/node-repair.md +92 -0
  152. package/get-shit-done/workflows/note.md +156 -0
  153. package/get-shit-done/workflows/pause-work.md +132 -15
  154. package/get-shit-done/workflows/plan-milestone-gaps.md +6 -7
  155. package/get-shit-done/workflows/plan-phase.md +513 -62
  156. package/get-shit-done/workflows/plant-seed.md +169 -0
  157. package/get-shit-done/workflows/pr-branch.md +129 -0
  158. package/get-shit-done/workflows/profile-user.md +450 -0
  159. package/get-shit-done/workflows/progress.md +154 -29
  160. package/get-shit-done/workflows/quick.md +285 -111
  161. package/get-shit-done/workflows/remove-phase.md +2 -2
  162. package/get-shit-done/workflows/remove-workspace.md +90 -0
  163. package/get-shit-done/workflows/research-phase.md +13 -9
  164. package/get-shit-done/workflows/resume-project.md +37 -18
  165. package/get-shit-done/workflows/review.md +281 -0
  166. package/get-shit-done/workflows/secure-phase.md +154 -0
  167. package/get-shit-done/workflows/session-report.md +146 -0
  168. package/get-shit-done/workflows/set-profile.md +2 -2
  169. package/get-shit-done/workflows/settings.md +91 -11
  170. package/get-shit-done/workflows/ship.md +237 -0
  171. package/get-shit-done/workflows/stats.md +60 -0
  172. package/get-shit-done/workflows/transition.md +150 -23
  173. package/get-shit-done/workflows/ui-phase.md +292 -0
  174. package/get-shit-done/workflows/ui-review.md +183 -0
  175. package/get-shit-done/workflows/update.md +262 -30
  176. package/get-shit-done/workflows/validate-phase.md +14 -17
  177. package/get-shit-done/workflows/verify-phase.md +143 -11
  178. package/get-shit-done/workflows/verify-work.md +141 -39
  179. package/package.json +1 -1
  180. package/skills/gsd-audit-milestone/SKILL.md +29 -0
  181. package/skills/gsd-cleanup/SKILL.md +19 -0
  182. package/skills/gsd-complete-milestone/SKILL.md +131 -0
  183. package/skills/gsd-discuss-phase/SKILL.md +54 -0
  184. package/skills/gsd-execute-phase/SKILL.md +49 -0
  185. package/skills/gsd-plan-phase/SKILL.md +37 -0
  186. package/skills/gsd-ui-phase/SKILL.md +24 -0
  187. package/skills/gsd-ui-review/SKILL.md +24 -0
  188. package/skills/gsd-verify-work/SKILL.md +30 -0
@@ -1,6 +1,6 @@
1
- <purpose>
1
+ <objective>
2
2
  Display the complete GSD command reference. Output ONLY the reference content. Do NOT add project-specific analysis, git status, next-step suggestions, or any commentary beyond the reference.
3
- </purpose>
3
+ </objective>
4
4
 
5
5
  <reference>
6
6
  # GSD Command Reference
@@ -66,8 +66,11 @@ Help articulate your vision for a phase before planning.
66
66
  - Captures how you imagine this phase working
67
67
  - Creates CONTEXT.md with your vision, essentials, and boundaries
68
68
  - Use when you have ideas about how something should look/feel
69
+ - Optional `--batch` asks 2-5 related questions at a time instead of one-by-one
69
70
 
70
71
  Usage: `/gsd-discuss-phase 2`
72
+ Usage: `/gsd-discuss-phase 2 --batch`
73
+ Usage: `/gsd-discuss-phase 2 --batch=3`
71
74
 
72
75
  **`/gsd-research-phase <number>`**
73
76
  Comprehensive ecosystem research for niche/complex domains.
@@ -104,30 +107,69 @@ Result: Creates `.planning/phases/01-foundation/01-01-PLAN.md`
104
107
  ### Execution
105
108
 
106
109
  **`/gsd-execute-phase <phase-number>`**
107
- Execute all plans in a phase.
110
+ Execute all plans in a phase, or run a specific wave.
108
111
 
109
112
  - Groups plans by wave (from frontmatter), executes waves sequentially
110
113
  - Plans within each wave run in parallel via task tool
114
+ - Optional `--wave N` flag executes only Wave `N` and stops unless the phase is now fully complete
111
115
  - Verifies phase goal after all plans complete
112
116
  - Updates REQUIREMENTS.md, ROADMAP.md, STATE.md
113
117
 
114
118
  Usage: `/gsd-execute-phase 5`
119
+ Usage: `/gsd-execute-phase 5 --wave 2`
120
+
121
+ ### Smart Router
122
+
123
+ **`/gsd-do <description>`**
124
+ Route freeform text to the right GSD command automatically.
125
+
126
+ - Analyzes natural language input to find the best matching GSD command
127
+ - Acts as a dispatcher — never does the work itself
128
+ - Resolves ambiguity by asking you to pick between top matches
129
+ - Use when you know what you want but don't know which `/gsd-*` command to run
130
+
131
+ Usage: `/gsd-do fix the login button`
132
+ Usage: `/gsd-do refactor the auth system`
133
+ Usage: `/gsd-do I want to start a new milestone`
115
134
 
116
135
  ### Quick Mode
117
136
 
118
- **`/gsd-quick`**
137
+ **`/gsd-quick [--full] [--validate] [--discuss] [--research]`**
119
138
  Execute small, ad-hoc tasks with GSD guarantees but skip optional agents.
120
139
 
121
140
  Quick mode uses the same system with a shorter path:
122
- - Spawns planner + executor (skips researcher, checker, verifier)
141
+ - Spawns planner + executor (skips researcher, checker, verifier by default)
123
142
  - Quick tasks live in `.planning/quick/` separate from planned phases
124
143
  - Updates STATE.md tracking (not ROADMAP.md)
125
144
 
126
- Use when you know exactly what to do and the task is small enough to not need research or verification.
145
+ Flags enable additional quality steps:
146
+ - `--full` — Complete quality pipeline: discussion + research + plan-checking + verification
147
+ - `--validate` — Plan-checking (max 2 iterations) and post-execution verification only
148
+ - `--discuss` — Lightweight discussion to surface gray areas before planning
149
+ - `--research` — Focused research agent investigates approaches before planning
150
+
151
+ Granular flags are composable: `--discuss --research --validate` gives the same as `--full`.
127
152
 
128
153
  Usage: `/gsd-quick`
154
+ Usage: `/gsd-quick --full`
155
+ Usage: `/gsd-quick --research --validate`
129
156
  Result: Creates `.planning/quick/NNN-slug/PLAN.md`, `.planning/quick/NNN-slug/SUMMARY.md`
130
157
 
158
+ ---
159
+
160
+ **`/gsd-fast [description]`**
161
+ Execute a trivial task inline — no subagents, no planning files, no overhead.
162
+
163
+ For tasks too small to justify planning: typo fixes, config changes, forgotten commits, simple additions. Runs in the current context, makes the change, commits, and logs to STATE.md.
164
+
165
+ - No PLAN.md or SUMMARY.md created
166
+ - No subagent spawned (runs inline)
167
+ - ≤ 3 file edits — redirects to `/gsd-quick` if task is non-trivial
168
+ - Atomic commit with conventional message
169
+
170
+ Usage: `/gsd-fast "fix the typo in README"`
171
+ Usage: `/gsd-fast "add .env to gitignore"`
172
+
131
173
  ### Roadmap Management
132
174
 
133
175
  **`/gsd-add-phase <description>`**
@@ -169,10 +211,12 @@ Start a new milestone through unified flow.
169
211
  - Optional domain research (spawns 4 parallel researcher agents)
170
212
  - Requirements definition with scoping
171
213
  - Roadmap creation with phase breakdown
214
+ - Optional `--reset-phase-numbers` flag restarts numbering at Phase 1 and archives old phase dirs first for safety
172
215
 
173
216
  Mirrors `/gsd-new-project` flow for brownfield projects (existing PROJECT.md).
174
217
 
175
218
  Usage: `/gsd-new-milestone "v2.0 Features"`
219
+ Usage: `/gsd-new-milestone --reset-phase-numbers "v2.0 Features"`
176
220
 
177
221
  **`/gsd-complete-milestone <version>`**
178
222
  Archive completed milestone and prepare for next version.
@@ -232,6 +276,21 @@ Systematic debugging with persistent state across context resets.
232
276
  Usage: `/gsd-debug "login button doesn't work"`
233
277
  Usage: `/gsd-debug` (resume active session)
234
278
 
279
+ ### Quick Notes
280
+
281
+ **`/gsd-note <text>`**
282
+ Zero-friction idea capture — one command, instant save, no questions.
283
+
284
+ - Saves timestamped note to `.planning/notes/` (or `$HOME/.config/opencode/notes/` globally)
285
+ - Three subcommands: append (default), list, promote
286
+ - Promote converts a note into a structured todo
287
+ - Works without a project (falls back to global scope)
288
+
289
+ Usage: `/gsd-note refactor the hook system`
290
+ Usage: `/gsd-note list`
291
+ Usage: `/gsd-note promote 3`
292
+ Usage: `/gsd-note --global cross-project idea`
293
+
235
294
  ### Todo Management
236
295
 
237
296
  **`/gsd-add-todo [description]`**
@@ -270,6 +329,66 @@ Validate built features through conversational UAT.
270
329
 
271
330
  Usage: `/gsd-verify-work 3`
272
331
 
332
+ ### Ship Work
333
+
334
+ **`/gsd-ship [phase]`**
335
+ Create a PR from completed phase work with an auto-generated body.
336
+
337
+ - Pushes branch to remote
338
+ - Creates PR with summary from SUMMARY.md, VERIFICATION.md, REQUIREMENTS.md
339
+ - Optionally requests code review
340
+ - Updates STATE.md with shipping status
341
+
342
+ Prerequisites: Phase verified, `gh` CLI installed and authenticated.
343
+
344
+ Usage: `/gsd-ship 4` or `/gsd-ship 4 --draft`
345
+
346
+ ---
347
+
348
+ **`/gsd-review --phase N [--gemini] [--OpenCode] [--codex] [--coderabbit] [--all]`**
349
+ Cross-AI peer review — invoke external AI CLIs to independently review phase plans.
350
+
351
+ - Detects available CLIs (gemini, OpenCode, codex, coderabbit)
352
+ - Each CLI reviews plans independently with the same structured prompt
353
+ - CodeRabbit reviews the current git diff (not a prompt) — may take up to 5 minutes
354
+ - Produces REVIEWS.md with per-reviewer feedback and consensus summary
355
+ - Feed reviews back into planning: `/gsd-plan-phase N --reviews`
356
+
357
+ Usage: `/gsd-review --phase 3 --all`
358
+
359
+ ---
360
+
361
+ **`/gsd-pr-branch [target]`**
362
+ Create a clean branch for pull requests by filtering out .planning/ commits.
363
+
364
+ - Classifies commits: code-only (include), planning-only (exclude), mixed (include sans .planning/)
365
+ - Cherry-picks code commits onto a clean branch
366
+ - Reviewers see only code changes, no GSD artifacts
367
+
368
+ Usage: `/gsd-pr-branch` or `/gsd-pr-branch main`
369
+
370
+ ---
371
+
372
+ **`/gsd-plant-seed [idea]`**
373
+ Capture a forward-looking idea with trigger conditions for automatic surfacing.
374
+
375
+ - Seeds preserve WHY, WHEN to surface, and breadcrumbs to related code
376
+ - Auto-surfaces during `/gsd-new-milestone` when trigger conditions match
377
+ - Better than deferred items — triggers are checked, not forgotten
378
+
379
+ Usage: `/gsd-plant-seed "add real-time notifications when we build the events system"`
380
+
381
+ ---
382
+
383
+ **`/gsd-audit-uat`**
384
+ Cross-phase audit of all outstanding UAT and verification items.
385
+ - Scans every phase for pending, skipped, blocked, and human_needed items
386
+ - Cross-references against codebase to detect stale documentation
387
+ - Produces prioritized human test plan grouped by testability
388
+ - Use before starting a new milestone to clear verification debt
389
+
390
+ Usage: `/gsd-audit-uat`
391
+
273
392
  ### Milestone Auditing
274
393
 
275
394
  **`/gsd-audit-milestone [version]`**
@@ -298,7 +417,7 @@ Usage: `/gsd-plan-milestone-gaps`
298
417
  Configure workflow toggles and model profile interactively.
299
418
 
300
419
  - Toggle researcher, plan checker, verifier agents
301
- - Select model profile (simple/smart/genius)
420
+ - Select model profile (simple/smart/genius/inherit)
302
421
  - Updates `.planning/config.json`
303
422
 
304
423
  Usage: `/gsd-settings`
@@ -309,6 +428,7 @@ Quick switch model profile for GSD agents.
309
428
  - `quality` — Opus everywhere except verification
310
429
  - `balanced` — Opus for planning, Sonnet for execution (default)
311
430
  - `budget` — Sonnet for writing, Haiku for research/verification
431
+ - `inherit` — Use current session model for all agents (OpenCode `/model`)
312
432
 
313
433
  Usage: `/gsd-set-profile budget`
314
434
 
@@ -1,6 +1,6 @@
1
- <purpose>
1
+ <objective>
2
2
  Insert a decimal phase for urgent work discovered mid-milestone between existing integer phases. Uses decimal numbering (72.1, 72.2, etc.) to preserve the logical sequence of planned phases while accommodating urgent insertions without renumbering the entire roadmap.
3
- </purpose>
3
+ </objective>
4
4
 
5
5
  <required_reading>
6
6
  read all files referenced by the invoking prompt's execution_context before starting.
@@ -93,9 +93,9 @@ Project state updated: .planning/STATE.md
93
93
 
94
94
  **Phase {decimal_phase}: {description}** -- urgent insertion
95
95
 
96
- `/gsd-plan-phase {decimal_phase}`
96
+ `/new` then:
97
97
 
98
- *`/new` first -> fresh context window*
98
+ `/gsd-plan-phase {decimal_phase}`
99
99
 
100
100
  ---
101
101
 
@@ -1,8 +1,8 @@
1
- <purpose>
1
+ <objective>
2
2
  Surface OpenCode's assumptions about a phase before planning, enabling users to correct misconceptions early.
3
3
 
4
4
  Key difference from discuss-phase: This is ANALYSIS of what OpenCode thinks, not INTAKE of what user knows. No file output - purely conversational to prompt discussion.
5
- </purpose>
5
+ </objective>
6
6
 
7
7
  <process>
8
8
 
@@ -0,0 +1,56 @@
1
+ <objective>
2
+ List all GSD workspaces found in ~/gsd-workspaces/ with their status.
3
+ </objective>
4
+
5
+ <required_reading>
6
+ read all files referenced by the invoking prompt's execution_context before starting.
7
+ </required_reading>
8
+
9
+ <process>
10
+
11
+ ## 1. Setup
12
+
13
+ ```bash
14
+ INIT=$(node "$HOME/.config/opencode/get-shit-done/bin/gsd-tools.cjs" init list-workspaces)
15
+ if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
16
+ ```
17
+
18
+ Parse JSON for: `workspace_base`, `workspaces`, `workspace_count`.
19
+
20
+ ## 2. Display
21
+
22
+ **If `workspace_count` is 0:**
23
+
24
+ ```
25
+ No workspaces found in ~/gsd-workspaces/
26
+
27
+ Create one with:
28
+ /gsd-new-workspace --name my-workspace --repos repo1,repo2
29
+ ```
30
+
31
+ Done.
32
+
33
+ **If workspaces exist:**
34
+
35
+ Display a table:
36
+
37
+ ```
38
+ GSD Workspaces (~/gsd-workspaces/)
39
+
40
+ | Name | Repos | Strategy | GSD Project |
41
+ |------|-------|----------|-------------|
42
+ | feature-a | 3 | worktree | Yes |
43
+ | feature-b | 2 | clone | No |
44
+
45
+ Manage:
46
+ cd ~/gsd-workspaces/<name> # Enter a workspace
47
+ /gsd-remove-workspace <name> # Remove a workspace
48
+ ```
49
+
50
+ For each workspace, show:
51
+ - **Name** — directory name
52
+ - **Repos** — count from init data
53
+ - **Strategy** — from WORKSPACE.md
54
+ - **GSD Project** — whether `.planning/PROJECT.md` exists (Yes/No)
55
+
56
+ </process>
@@ -0,0 +1,363 @@
1
+ <objective>
2
+
3
+ Interactive command center for managing a milestone from a single terminal. Shows a dashboard of all phases with visual status, dispatches discuss inline and plan/execute as background agents, and loops back to the dashboard after each action. Enables parallel phase work from one terminal.
4
+
5
+ </objective>
6
+
7
+ <required_reading>
8
+
9
+ read all files referenced by the invoking prompt's execution_context before starting.
10
+
11
+ </required_reading>
12
+
13
+ <process>
14
+
15
+ <step name="initialize" priority="first">
16
+
17
+ ## 1. Initialize
18
+
19
+ Bootstrap via manager init:
20
+
21
+ ```bash
22
+ INIT=$(node "$HOME/.config/opencode/get-shit-done/bin/gsd-tools.cjs" init manager)
23
+ if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
24
+ ```
25
+
26
+ Parse JSON for: `milestone_version`, `milestone_name`, `phase_count`, `completed_count`, `in_progress_count`, `phases`, `recommended_actions`, `all_complete`, `waiting_signal`, `manager_flags`.
27
+
28
+ `manager_flags` contains per-step passthrough flags from config:
29
+ - `manager_flags.discuss` — appended to `/gsd-discuss-phase` args (e.g. `"--auto --analyze"`)
30
+ - `manager_flags.plan` — appended to plan agent init command
31
+ - `manager_flags.execute` — appended to execute agent init command
32
+
33
+ These are empty strings by default. Set via: `gsd-tools config-set manager.flags.discuss "--auto --analyze"`
34
+
35
+ **If error:** Display the error message and exit.
36
+
37
+ Display startup banner:
38
+
39
+ ```
40
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
41
+ GSD ► MANAGER
42
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
43
+
44
+ {milestone_version} — {milestone_name}
45
+ {phase_count} phases · {completed_count} complete
46
+
47
+ ✓ Discuss → inline ◆ Plan/Execute → background
48
+ Dashboard auto-refreshes when background work is active.
49
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
50
+ ```
51
+
52
+ Proceed to dashboard step.
53
+
54
+ </step>
55
+
56
+ <step name="dashboard">
57
+
58
+ ## 2. Dashboard (Refresh Point)
59
+
60
+ **Every time this step is reached**, re-read state from disk to pick up changes from background agents:
61
+
62
+ ```bash
63
+ INIT=$(node "$HOME/.config/opencode/get-shit-done/bin/gsd-tools.cjs" init manager)
64
+ if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
65
+ ```
66
+
67
+ Parse the full JSON. Build the dashboard display.
68
+
69
+ Build dashboard from JSON. Symbols: `✓` done, `◆` active, `○` pending, `·` queued. Progress bar: 20-char `█░`.
70
+
71
+ **Status mapping** (disk_status → D P E Status):
72
+
73
+ - `complete` → `✓ ✓ ✓` `✓ Complete`
74
+ - `partial` → `✓ ✓ ◆` `◆ Executing...`
75
+ - `planned` → `✓ ✓ ○` `○ Ready to execute`
76
+ - `discussed` → `✓ ○ ·` `○ Ready to plan`
77
+ - `researched` → `◆ · ·` `○ Ready to plan`
78
+ - `empty`/`no_directory` + `is_next_to_discuss` → `○ · ·` `○ Ready to discuss`
79
+ - `empty`/`no_directory` otherwise → `· · ·` `· Up next`
80
+ - If `is_active`, replace status icon with `◆` and append `(active)`
81
+
82
+ If any `is_active` phases, show: `◆ Background: {action} Phase {N}, ...` above grid.
83
+
84
+ Use `display_name` (not `name`) for the Phase column — it's pre-truncated to 20 chars with `…` if clipped. Pad all phase names to the same width for alignment.
85
+
86
+ Use `deps_display` from init JSON for the Deps column — shows which phases this phase depends on (e.g. `1,3`) or `—` for none.
87
+
88
+ Example output:
89
+
90
+ ```
91
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
92
+ GSD ► DASHBOARD
93
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
94
+ ████████████░░░░░░░░ 60% (3/5 phases)
95
+ ◆ Background: Planning Phase 4
96
+ | # | Phase | Deps | D | P | E | Status |
97
+ |---|----------------------|------|---|---|---|---------------------|
98
+ | 1 | Foundation | — | ✓ | ✓ | ✓ | ✓ Complete |
99
+ | 2 | API Layer | 1 | ✓ | ✓ | ◆ | ◆ Executing (active)|
100
+ | 3 | Auth System | 1 | ✓ | ✓ | ○ | ○ Ready to execute |
101
+ | 4 | Dashboard UI & Set… | 1,2 | ✓ | ◆ | · | ◆ Planning (active) |
102
+ | 5 | Notifications | — | ○ | · | · | ○ Ready to discuss |
103
+ | 6 | Polish & Final Mail… | 1-5 | · | · | · | · Up next |
104
+ ```
105
+
106
+ **Recommendations section:**
107
+
108
+ If `all_complete` is true:
109
+
110
+ ```
111
+ ╔══════════════════════════════════════════════════════════════╗
112
+ ║ MILESTONE COMPLETE ║
113
+ ╚══════════════════════════════════════════════════════════════╝
114
+
115
+ All {phase_count} phases done. Ready for final steps:
116
+ → /gsd-verify-work — run acceptance testing
117
+ → /gsd-complete-milestone — archive and wrap up
118
+ ```
119
+
120
+ Ask user via question:
121
+ - **question:** "All phases complete. What next?"
122
+ - **options:** "Verify work" / "Complete milestone" / "Exit manager"
123
+
124
+ Handle responses:
125
+ - "Verify work": `skill(skill="gsd-verify-work")` then loop to dashboard.
126
+ - "Complete milestone": `skill(skill="gsd-complete-milestone")` then exit.
127
+ - "Exit manager": Go to exit step.
128
+
129
+ **If NOT all_complete**, build compound options from `recommended_actions`:
130
+
131
+ **Compound option logic:** Group background actions (plan/execute) together, and pair them with the single inline action (discuss) when one exists. The goal is to present the fewest options possible — one option can dispatch multiple background agents plus one inline action.
132
+
133
+ **Building options:**
134
+
135
+ 1. Collect all background actions (execute and plan recommendations) — there can be multiple of each.
136
+ 2. Collect the inline action (discuss recommendation, if any — there will be at most one since discuss is sequential).
137
+ 3. Build compound options:
138
+
139
+ **If there are ANY recommended actions (background, inline, or both):**
140
+ Create ONE primary "Continue" option that dispatches ALL of them together:
141
+ - Label: `"Continue"` — always this exact word
142
+ - Below the label, list every action that will happen. Enumerate ALL recommended actions — do not cap or truncate:
143
+ ```
144
+ Continue:
145
+ → Execute Phase 32 (background)
146
+ → Plan Phase 34 (background)
147
+ → Discuss Phase 35 (inline)
148
+ ```
149
+ - This dispatches all background agents first, then runs the inline discuss (if any).
150
+ - If there is no inline discuss, the dashboard refreshes after spawning background agents.
151
+
152
+ **Important:** The Continue option must include EVERY action from `recommended_actions` — not just 2. If there are 3 actions, list 3. If there are 5, list 5.
153
+
154
+ 4. Always add:
155
+ - `"Refresh dashboard"`
156
+ - `"Exit manager"`
157
+
158
+ Display recommendations compactly:
159
+
160
+ ```
161
+ ───────────────────────────────────────────────────────────────
162
+ ▶ Next Steps
163
+ ───────────────────────────────────────────────────────────────
164
+
165
+ Continue:
166
+ → Execute Phase 32 (background)
167
+ → Plan Phase 34 (background)
168
+ → Discuss Phase 35 (inline)
169
+ ```
170
+
171
+ **Auto-refresh:** If background agents are running (`is_active` is true for any phase), set a 60-second auto-refresh cycle. After presenting the action menu, if no user input is received within 60 seconds, automatically refresh the dashboard. This interval is configurable via `manager_refresh_interval` in GSD config (default: 60 seconds, set to 0 to disable).
172
+
173
+ Present via question:
174
+ - **question:** "What would you like to do?"
175
+ - **options:** (compound options as built above + refresh + exit, question auto-adds "Other")
176
+
177
+ **On "Other" (free text):** Parse intent — if it mentions a phase number and action, dispatch accordingly. If unclear, display available actions and loop to action_menu.
178
+
179
+ Proceed to handle_action step with the selected action.
180
+
181
+ </step>
182
+
183
+ <step name="handle_action">
184
+
185
+ ## 4. Handle Action
186
+
187
+ ### Refresh Dashboard
188
+
189
+ Loop back to dashboard step.
190
+
191
+ ### Exit Manager
192
+
193
+ Go to exit step.
194
+
195
+ ### Compound Action (background + inline)
196
+
197
+ When the user selects a compound option:
198
+
199
+ 1. **Spawn all background agents first** (plan/execute) — dispatch them in parallel using the Plan Phase N / Execute Phase N handlers below.
200
+ 2. **Then run the inline discuss:**
201
+
202
+ ```
203
+ skill(skill="gsd-discuss-phase", args="{PHASE_NUM} {manager_flags.discuss}")
204
+ ```
205
+
206
+ After discuss completes, loop back to dashboard step (background agents continue running).
207
+
208
+ ### Discuss Phase N
209
+
210
+ Discussion is interactive — needs user input. Run inline with any configured flags:
211
+
212
+ ```
213
+ skill(skill="gsd-discuss-phase", args="{PHASE_NUM} {manager_flags.discuss}")
214
+ ```
215
+
216
+ After discuss completes, loop back to dashboard step.
217
+
218
+ ### Plan Phase N
219
+
220
+ Planning runs autonomously. Spawn a background agent that delegates to the skill pipeline with any configured flags:
221
+
222
+ ```
223
+ task(
224
+ description="Plan phase {N}: {phase_name}",
225
+ run_in_background=true,
226
+ prompt="You are running the GSD plan-phase workflow for phase {N} of the project.
227
+
228
+ Working directory: {cwd}
229
+ Phase: {N} — {phase_name}
230
+ Goal: {goal}
231
+ Manager flags: {manager_flags.plan}
232
+
233
+ Run the plan-phase skill with any configured manager flags:
234
+ skill(skill=\"gsd-plan-phase\", args=\"{N} --auto {manager_flags.plan}\")
235
+
236
+ This delegates to the full plan-phase pipeline including local patches, research, plan-checker, and all quality gates.
237
+
238
+ Important: You are running in the background. Do NOT use question — make autonomous decisions based on project context. If you hit a blocker, write it to STATE.md as a blocker and stop. Do NOT silently work around permission or file access errors — let them fail so the manager can surface them with resolution hints. Do NOT use --no-verify on git commits."
239
+ )
240
+ ```
241
+
242
+ Display:
243
+
244
+ ```
245
+ ◆ Spawning planner for Phase {N}: {phase_name}...
246
+ ```
247
+
248
+ Loop back to dashboard step.
249
+
250
+ ### Execute Phase N
251
+
252
+ Execution runs autonomously. Spawn a background agent that delegates to the skill pipeline with any configured flags:
253
+
254
+ ```
255
+ task(
256
+ description="Execute phase {N}: {phase_name}",
257
+ run_in_background=true,
258
+ prompt="You are running the GSD execute-phase workflow for phase {N} of the project.
259
+
260
+ Working directory: {cwd}
261
+ Phase: {N} — {phase_name}
262
+ Goal: {goal}
263
+ Manager flags: {manager_flags.execute}
264
+
265
+ Run the execute-phase skill with any configured manager flags:
266
+ skill(skill=\"gsd-execute-phase\", args=\"{N} {manager_flags.execute}\")
267
+
268
+ This delegates to the full execute-phase pipeline including local patches, branching, wave-based execution, verification, and all quality gates.
269
+
270
+ Important: You are running in the background. Do NOT use question — make autonomous decisions. Do NOT use --no-verify on git commits — let pre-commit hooks run normally. If you hit a permission error, file lock, or any access issue, do NOT work around it — let it fail and write the error to STATE.md as a blocker so the manager can surface it with resolution guidance."
271
+ )
272
+ ```
273
+
274
+ Display:
275
+
276
+ ```
277
+ ◆ Spawning executor for Phase {N}: {phase_name}...
278
+ ```
279
+
280
+ Loop back to dashboard step.
281
+
282
+ </step>
283
+
284
+ <step name="background_completion">
285
+
286
+ ## 5. Background Agent Completion
287
+
288
+ When notified that a background agent completed:
289
+
290
+ 1. read the result message from the agent.
291
+ 2. Display a brief notification:
292
+
293
+ ```
294
+ ✓ {description}
295
+ {brief summary from agent result}
296
+ ```
297
+
298
+ 3. Loop back to dashboard step.
299
+
300
+ **If the agent reported an error or blocker:**
301
+
302
+ Classify the error:
303
+
304
+ **Permission / tool access error** (e.g. tool not allowed, permission denied, sandbox restriction):
305
+ - Parse the error to identify which tool or command was blocked.
306
+ - Display the error clearly, then offer to fix it:
307
+ - **question:** "Phase {N} failed — permission denied for `{tool_or_command}`. Want me to add it to settings.local.json so it's allowed?"
308
+ - **options:** "Add permission and retry" / "Run this phase inline instead" / "Skip and continue"
309
+ - "Add permission and retry": Use `skill(skill="update-config")` to add the permission to `settings.local.json`, then re-spawn the background agent. Loop to dashboard.
310
+ - "Run this phase inline instead": Dispatch the same action inline via the appropriate skill — use `skill(skill="gsd-plan-phase", args="{N}")` if the failed action was planning, or `skill(skill="gsd-execute-phase", args="{N}")` if the failed action was execution. Loop to dashboard after.
311
+ - "Skip and continue": Loop to dashboard (phase stays in current state).
312
+
313
+ **Other errors** (git lock, file conflict, logic error, etc.):
314
+ - Display the error, then offer options via question:
315
+ - **question:** "Background agent for Phase {N} encountered an issue: {error}. What next?"
316
+ - **options:** "Retry" / "Run inline instead" / "Skip and continue" / "View details"
317
+ - "Retry": Re-spawn the same background agent. Loop to dashboard.
318
+ - "Run inline instead": Dispatch the action inline via the appropriate skill — use `skill(skill="gsd-plan-phase", args="{N}")` if the failed action was planning, or `skill(skill="gsd-execute-phase", args="{N}")` if the failed action was execution. Loop to dashboard after.
319
+ - "Skip and continue": Loop to dashboard (phase stays in current state).
320
+ - "View details": read STATE.md blockers section, display, then re-present options.
321
+
322
+ </step>
323
+
324
+ <step name="exit">
325
+
326
+ ## 6. Exit
327
+
328
+ Display final status with progress bar:
329
+
330
+ ```
331
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
332
+ GSD ► SESSION END
333
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
334
+
335
+ {milestone_version} — {milestone_name}
336
+ {PROGRESS_BAR} {progress_pct}% ({completed_count}/{phase_count} phases)
337
+
338
+ Resume anytime: /gsd-manager
339
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
340
+ ```
341
+
342
+ **Note:** Any background agents still running will continue to completion. Their results will be visible on next `/gsd-manager` or `/gsd-progress` invocation.
343
+
344
+ </step>
345
+
346
+ </process>
347
+
348
+ <success_criteria>
349
+ - [ ] Dashboard displays all phases with correct status indicators (D/P/E/V columns)
350
+ - [ ] Progress bar shows accurate completion percentage
351
+ - [ ] Dependency resolution: blocked phases show which deps are missing
352
+ - [ ] Recommendations prioritize: execute > plan > discuss
353
+ - [ ] Discuss phases run inline via skill() — interactive questions work
354
+ - [ ] Plan phases spawn background task agents — return to dashboard immediately
355
+ - [ ] Execute phases spawn background task agents — return to dashboard immediately
356
+ - [ ] Dashboard refreshes pick up changes from background agents via disk state
357
+ - [ ] Background agent completion triggers notification and dashboard refresh
358
+ - [ ] Background agent errors present retry/skip options
359
+ - [ ] All-complete state offers verify-work and complete-milestone
360
+ - [ ] Exit shows final status with resume instructions
361
+ - [ ] "Other" free-text input parsed for phase number and action
362
+ - [ ] Manager loop continues until user exits or milestone completes
363
+ </success_criteria>