gsd-remix 1.0.2 → 1.1.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 (230) hide show
  1. package/README.md +13 -81
  2. package/README.zh-CN.md +13 -57
  3. package/agents/gsd-debugger.md +0 -3
  4. package/agents/gsd-executor.md +5 -11
  5. package/agents/gsd-phase-researcher.md +3 -107
  6. package/agents/gsd-plan-checker.md +0 -61
  7. package/agents/gsd-planner.md +4 -63
  8. package/agents/gsd-roadmapper.md +0 -29
  9. package/agents/gsd-security-auditor.md +62 -114
  10. package/agents/gsd-verifier.md +0 -3
  11. package/bin/install.js +20 -118
  12. package/commands/gsd/complete-milestone.md +0 -22
  13. package/commands/gsd/plan-phase.md +1 -2
  14. package/get-shit-done/bin/gsd-tools.cjs +5 -224
  15. package/get-shit-done/bin/lib/claude-md.cjs +427 -0
  16. package/get-shit-done/bin/lib/config-schema.cjs +2 -12
  17. package/get-shit-done/bin/lib/config.cjs +3 -12
  18. package/get-shit-done/bin/lib/core.cjs +4 -5
  19. package/get-shit-done/bin/lib/init.cjs +0 -163
  20. package/get-shit-done/bin/lib/model-profiles.cjs +12 -18
  21. package/get-shit-done/bin/lib/verify.cjs +0 -66
  22. package/get-shit-done/references/agent-contracts.md +0 -6
  23. package/get-shit-done/references/artifact-types.md +0 -30
  24. package/get-shit-done/references/continuation-format.md +0 -1
  25. package/get-shit-done/references/model-profiles.md +39 -37
  26. package/get-shit-done/references/planning-config.md +7 -12
  27. package/get-shit-done/references/verification-overrides.md +1 -1
  28. package/get-shit-done/templates/README.md +2 -9
  29. package/get-shit-done/templates/claude-md.md +0 -14
  30. package/get-shit-done/templates/config.json +5 -19
  31. package/get-shit-done/workflows/autonomous.md +9 -141
  32. package/get-shit-done/workflows/complete-milestone.md +3 -4
  33. package/get-shit-done/workflows/discuss-phase-assumptions.md +1 -18
  34. package/get-shit-done/workflows/discuss-phase.md +10 -104
  35. package/get-shit-done/workflows/do.md +1 -5
  36. package/get-shit-done/workflows/execute-phase.md +53 -103
  37. package/get-shit-done/workflows/execute-plan.md +4 -4
  38. package/get-shit-done/workflows/health.md +2 -5
  39. package/get-shit-done/workflows/help.md +0 -165
  40. package/get-shit-done/workflows/new-milestone.md +0 -51
  41. package/get-shit-done/workflows/new-project.md +2 -63
  42. package/get-shit-done/workflows/next.md +0 -23
  43. package/get-shit-done/workflows/pause-work.md +7 -15
  44. package/get-shit-done/workflows/plan-phase.md +20 -304
  45. package/get-shit-done/workflows/pr-branch.md +0 -1
  46. package/get-shit-done/workflows/progress.md +1 -68
  47. package/get-shit-done/workflows/quick.md +0 -3
  48. package/get-shit-done/workflows/research-phase.md +0 -1
  49. package/get-shit-done/workflows/settings.md +1 -57
  50. package/get-shit-done/workflows/transition.md +3 -86
  51. package/get-shit-done/workflows/verify-work.md +0 -64
  52. package/package.json +1 -1
  53. package/scripts/build-hooks.js +0 -2
  54. package/sdk/prompts/agents/gsd-executor.md +2 -0
  55. package/sdk/prompts/agents/gsd-plan-checker.md +0 -3
  56. package/sdk/prompts/agents/gsd-roadmapper.md +0 -29
  57. package/sdk/src/config.ts +4 -5
  58. package/sdk/src/golden/golden-integration-covered.ts +0 -2
  59. package/sdk/src/golden/golden-policy.ts +1 -1
  60. package/sdk/src/golden/golden.integration.test.ts +0 -27
  61. package/sdk/src/golden/read-only-golden-rows.ts +0 -15
  62. package/sdk/src/query/QUERY-HANDLERS.md +3 -34
  63. package/sdk/src/query/claude-md.ts +421 -0
  64. package/sdk/src/query/commit.test.ts +155 -1
  65. package/sdk/src/query/commit.ts +71 -17
  66. package/sdk/src/query/config-gates.test.ts +1 -2
  67. package/sdk/src/query/config-gates.ts +1 -5
  68. package/sdk/src/query/config-mutation.test.ts +0 -1
  69. package/sdk/src/query/config-mutation.ts +5 -6
  70. package/sdk/src/query/config-query.test.ts +2 -2
  71. package/sdk/src/query/config-query.ts +12 -18
  72. package/sdk/src/query/decomposed-handlers.test.ts +0 -64
  73. package/sdk/src/query/index.ts +4 -68
  74. package/sdk/src/query/init.test.ts +0 -64
  75. package/sdk/src/query/init.ts +0 -189
  76. package/sdk/src/query/normalize-query-command.ts +0 -2
  77. package/sdk/src/query/profile.test.ts +0 -43
  78. package/sdk/src/query/profile.ts +1 -141
  79. package/sdk/src/query/state-mutation.ts +18 -0
  80. package/sdk/src/runtime-health.ts +3 -3
  81. package/agents/gsd-ai-researcher.md +0 -133
  82. package/agents/gsd-doc-classifier.md +0 -168
  83. package/agents/gsd-doc-synthesizer.md +0 -204
  84. package/agents/gsd-doc-verifier.md +0 -217
  85. package/agents/gsd-doc-writer.md +0 -615
  86. package/agents/gsd-domain-researcher.md +0 -153
  87. package/agents/gsd-eval-auditor.md +0 -191
  88. package/agents/gsd-eval-planner.md +0 -154
  89. package/agents/gsd-framework-selector.md +0 -160
  90. package/agents/gsd-intel-updater.md +0 -334
  91. package/agents/gsd-nyquist-auditor.md +0 -203
  92. package/agents/gsd-ui-auditor.md +0 -495
  93. package/agents/gsd-ui-checker.md +0 -309
  94. package/agents/gsd-ui-researcher.md +0 -380
  95. package/agents/gsd-user-profiler.md +0 -171
  96. package/commands/gsd/ai-integration-phase.md +0 -36
  97. package/commands/gsd/analyze-dependencies.md +0 -34
  98. package/commands/gsd/audit-fix.md +0 -33
  99. package/commands/gsd/audit-milestone.md +0 -36
  100. package/commands/gsd/audit-uat.md +0 -24
  101. package/commands/gsd/docs-update.md +0 -48
  102. package/commands/gsd/eval-review.md +0 -32
  103. package/commands/gsd/explore.md +0 -27
  104. package/commands/gsd/extract_learnings.md +0 -22
  105. package/commands/gsd/forensics.md +0 -56
  106. package/commands/gsd/from-gsd2.md +0 -47
  107. package/commands/gsd/graphify.md +0 -201
  108. package/commands/gsd/import.md +0 -37
  109. package/commands/gsd/inbox.md +0 -38
  110. package/commands/gsd/ingest-docs.md +0 -42
  111. package/commands/gsd/intel.md +0 -179
  112. package/commands/gsd/join-discord.md +0 -19
  113. package/commands/gsd/list-phase-assumptions.md +0 -46
  114. package/commands/gsd/list-workspaces.md +0 -19
  115. package/commands/gsd/manager.md +0 -40
  116. package/commands/gsd/milestone-summary.md +0 -51
  117. package/commands/gsd/new-workspace.md +0 -44
  118. package/commands/gsd/plan-milestone-gaps.md +0 -34
  119. package/commands/gsd/plan-review-convergence.md +0 -52
  120. package/commands/gsd/plant-seed.md +0 -28
  121. package/commands/gsd/profile-user.md +0 -46
  122. package/commands/gsd/reapply-patches.md +0 -331
  123. package/commands/gsd/remove-workspace.md +0 -26
  124. package/commands/gsd/review.md +0 -40
  125. package/commands/gsd/scan.md +0 -26
  126. package/commands/gsd/secure-phase.md +0 -35
  127. package/commands/gsd/session-report.md +0 -19
  128. package/commands/gsd/set-profile.md +0 -12
  129. package/commands/gsd/ship.md +0 -23
  130. package/commands/gsd/sketch-wrap-up.md +0 -31
  131. package/commands/gsd/sketch.md +0 -49
  132. package/commands/gsd/spec-phase.md +0 -62
  133. package/commands/gsd/spike-wrap-up.md +0 -31
  134. package/commands/gsd/spike.md +0 -46
  135. package/commands/gsd/stats.md +0 -18
  136. package/commands/gsd/sync-skills.md +0 -19
  137. package/commands/gsd/thread.md +0 -227
  138. package/commands/gsd/ui-phase.md +0 -34
  139. package/commands/gsd/ui-review.md +0 -32
  140. package/commands/gsd/ultraplan-phase.md +0 -33
  141. package/commands/gsd/update.md +0 -37
  142. package/commands/gsd/validate-phase.md +0 -35
  143. package/commands/gsd/workstreams.md +0 -69
  144. package/get-shit-done/bin/lib/docs.cjs +0 -267
  145. package/get-shit-done/bin/lib/graphify.cjs +0 -494
  146. package/get-shit-done/bin/lib/gsd2-import.cjs +0 -511
  147. package/get-shit-done/bin/lib/intel.cjs +0 -639
  148. package/get-shit-done/bin/lib/profile-output.cjs +0 -1080
  149. package/get-shit-done/bin/lib/profile-pipeline.cjs +0 -539
  150. package/get-shit-done/bin/lib/workstream.cjs +0 -495
  151. package/get-shit-done/references/ai-evals.md +0 -156
  152. package/get-shit-done/references/ai-frameworks.md +0 -186
  153. package/get-shit-done/references/doc-conflict-engine.md +0 -91
  154. package/get-shit-done/references/model-profile-resolution.md +0 -38
  155. package/get-shit-done/references/planner-reviews.md +0 -39
  156. package/get-shit-done/references/sketch-interactivity.md +0 -41
  157. package/get-shit-done/references/sketch-theme-system.md +0 -94
  158. package/get-shit-done/references/sketch-tooling.md +0 -45
  159. package/get-shit-done/references/sketch-variant-patterns.md +0 -81
  160. package/get-shit-done/references/thinking-models-debug.md +0 -44
  161. package/get-shit-done/references/thinking-models-execution.md +0 -50
  162. package/get-shit-done/references/thinking-models-planning.md +0 -62
  163. package/get-shit-done/references/thinking-models-research.md +0 -50
  164. package/get-shit-done/references/thinking-models-verification.md +0 -55
  165. package/get-shit-done/references/thinking-partner.md +0 -96
  166. package/get-shit-done/references/user-profiling.md +0 -681
  167. package/get-shit-done/references/workstream-flag.md +0 -111
  168. package/get-shit-done/templates/AI-SPEC.md +0 -246
  169. package/get-shit-done/templates/SECURITY.md +0 -61
  170. package/get-shit-done/templates/UI-SPEC.md +0 -100
  171. package/get-shit-done/templates/VALIDATION.md +0 -76
  172. package/get-shit-done/templates/dev-preferences.md +0 -21
  173. package/get-shit-done/templates/user-profile.md +0 -146
  174. package/get-shit-done/workflows/ai-integration-phase.md +0 -284
  175. package/get-shit-done/workflows/analyze-dependencies.md +0 -96
  176. package/get-shit-done/workflows/audit-fix.md +0 -175
  177. package/get-shit-done/workflows/audit-milestone.md +0 -340
  178. package/get-shit-done/workflows/audit-uat.md +0 -109
  179. package/get-shit-done/workflows/docs-update.md +0 -1155
  180. package/get-shit-done/workflows/eval-review.md +0 -155
  181. package/get-shit-done/workflows/explore.md +0 -141
  182. package/get-shit-done/workflows/extract_learnings.md +0 -242
  183. package/get-shit-done/workflows/forensics.md +0 -265
  184. package/get-shit-done/workflows/import.md +0 -246
  185. package/get-shit-done/workflows/inbox.md +0 -387
  186. package/get-shit-done/workflows/ingest-docs.md +0 -328
  187. package/get-shit-done/workflows/list-phase-assumptions.md +0 -178
  188. package/get-shit-done/workflows/list-workspaces.md +0 -56
  189. package/get-shit-done/workflows/manager.md +0 -365
  190. package/get-shit-done/workflows/milestone-summary.md +0 -223
  191. package/get-shit-done/workflows/new-workspace.md +0 -239
  192. package/get-shit-done/workflows/plan-milestone-gaps.md +0 -273
  193. package/get-shit-done/workflows/plan-review-convergence.md +0 -254
  194. package/get-shit-done/workflows/plant-seed.md +0 -172
  195. package/get-shit-done/workflows/profile-user.md +0 -452
  196. package/get-shit-done/workflows/remove-workspace.md +0 -92
  197. package/get-shit-done/workflows/review.md +0 -344
  198. package/get-shit-done/workflows/scan.md +0 -102
  199. package/get-shit-done/workflows/secure-phase.md +0 -166
  200. package/get-shit-done/workflows/session-report.md +0 -146
  201. package/get-shit-done/workflows/ship.md +0 -302
  202. package/get-shit-done/workflows/sketch-wrap-up.md +0 -283
  203. package/get-shit-done/workflows/sketch.md +0 -286
  204. package/get-shit-done/workflows/spec-phase.md +0 -262
  205. package/get-shit-done/workflows/spike-wrap-up.md +0 -281
  206. package/get-shit-done/workflows/spike.md +0 -362
  207. package/get-shit-done/workflows/stats.md +0 -60
  208. package/get-shit-done/workflows/sync-skills.md +0 -182
  209. package/get-shit-done/workflows/ui-phase.md +0 -323
  210. package/get-shit-done/workflows/ui-review.md +0 -190
  211. package/get-shit-done/workflows/ultraplan-phase.md +0 -189
  212. package/get-shit-done/workflows/update.md +0 -587
  213. package/get-shit-done/workflows/validate-phase.md +0 -176
  214. package/hooks/dist/gsd-check-update-worker.js +0 -108
  215. package/hooks/dist/gsd-check-update.js +0 -63
  216. package/hooks/gsd-check-update-worker.js +0 -108
  217. package/hooks/gsd-check-update.js +0 -63
  218. package/sdk/src/golden/fixtures/profile-sample-sessions/demo-project/sample.jsonl +0 -3
  219. package/sdk/src/query/docs-init.ts +0 -257
  220. package/sdk/src/query/intel.test.ts +0 -90
  221. package/sdk/src/query/intel.ts +0 -404
  222. package/sdk/src/query/profile-extract-messages.ts +0 -247
  223. package/sdk/src/query/profile-output.ts +0 -908
  224. package/sdk/src/query/profile-questionnaire-data.ts +0 -181
  225. package/sdk/src/query/profile-sample.ts +0 -184
  226. package/sdk/src/query/profile-scan-sessions.ts +0 -174
  227. package/sdk/src/query/workspace.test.ts +0 -119
  228. package/sdk/src/query/workspace.ts +0 -131
  229. package/sdk/src/query/workstream.test.ts +0 -51
  230. package/sdk/src/query/workstream.ts +0 -434
@@ -1,365 +0,0 @@
1
- <purpose>
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
- </purpose>
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=$(gsd-remix-sdk query 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-remix-sdk query 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=$(gsd-remix-sdk query 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
-
121
- **Text mode (`workflow.text_mode: true` in config or `--text` flag):** Set `TEXT_MODE=true` if `--text` is present in `$ARGUMENTS` OR `text_mode` from init JSON is `true`. When TEXT_MODE is active, replace every `AskUserQuestion` call with a plain-text numbered list and ask the user to type their choice number. This is required for non-Claude runtimes (OpenAI Codex, Gemini CLI, etc.) where `AskUserQuestion` is not available.
122
- Ask user via AskUserQuestion:
123
- - **question:** "All phases complete. What next?"
124
- - **options:** "Verify work" / "Complete milestone" / "Exit manager"
125
-
126
- Handle responses:
127
- - "Verify work": `Skill(skill="gsd-verify-work")` then loop to dashboard.
128
- - "Complete milestone": `Skill(skill="gsd-complete-milestone")` then exit.
129
- - "Exit manager": Go to exit step.
130
-
131
- **If NOT all_complete**, build compound options from `recommended_actions`:
132
-
133
- **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.
134
-
135
- **Building options:**
136
-
137
- 1. Collect all background actions (execute and plan recommendations) — there can be multiple of each.
138
- 2. Collect the inline action (discuss recommendation, if any — there will be at most one since discuss is sequential).
139
- 3. Build compound options:
140
-
141
- **If there are ANY recommended actions (background, inline, or both):**
142
- Create ONE primary "Continue" option that dispatches ALL of them together:
143
- - Label: `"Continue"` — always this exact word
144
- - Below the label, list every action that will happen. Enumerate ALL recommended actions — do not cap or truncate:
145
- ```
146
- Continue:
147
- → Execute Phase 32 (background)
148
- → Plan Phase 34 (background)
149
- → Discuss Phase 35 (inline)
150
- ```
151
- - This dispatches all background agents first, then runs the inline discuss (if any).
152
- - If there is no inline discuss, the dashboard refreshes after spawning background agents.
153
-
154
- **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.
155
-
156
- 4. Always add:
157
- - `"Refresh dashboard"`
158
- - `"Exit manager"`
159
-
160
- Display recommendations compactly:
161
-
162
- ```
163
- ───────────────────────────────────────────────────────────────
164
- ▶ Next Steps
165
- ───────────────────────────────────────────────────────────────
166
-
167
- Continue:
168
- → Execute Phase 32 (background)
169
- → Plan Phase 34 (background)
170
- → Discuss Phase 35 (inline)
171
- ```
172
-
173
- **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).
174
-
175
- Present via AskUserQuestion:
176
- - **question:** "What would you like to do?"
177
- - **options:** (compound options as built above + refresh + exit, AskUserQuestion auto-adds "Other")
178
-
179
- **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.
180
-
181
- Proceed to handle_action step with the selected action.
182
-
183
- </step>
184
-
185
- <step name="handle_action">
186
-
187
- ## 4. Handle Action
188
-
189
- ### Refresh Dashboard
190
-
191
- Loop back to dashboard step.
192
-
193
- ### Exit Manager
194
-
195
- Go to exit step.
196
-
197
- ### Compound Action (background + inline)
198
-
199
- When the user selects a compound option:
200
-
201
- 1. **Spawn all background agents first** (plan/execute) — dispatch them in parallel using the Plan Phase N / Execute Phase N handlers below.
202
- 2. **Then run the inline discuss:**
203
-
204
- ```
205
- Skill(skill="gsd-discuss-phase", args="{PHASE_NUM} {manager_flags.discuss}")
206
- ```
207
-
208
- After discuss completes, loop back to dashboard step (background agents continue running).
209
-
210
- ### Discuss Phase N
211
-
212
- Discussion is interactive — needs user input. Run inline with any configured flags:
213
-
214
- ```
215
- Skill(skill="gsd-discuss-phase", args="{PHASE_NUM} {manager_flags.discuss}")
216
- ```
217
-
218
- After discuss completes, loop back to dashboard step.
219
-
220
- ### Plan Phase N
221
-
222
- Planning runs autonomously. Spawn a background agent that delegates to the Skill pipeline with any configured flags:
223
-
224
- ```
225
- Task(
226
- description="Plan phase {N}: {phase_name}",
227
- run_in_background=true,
228
- prompt="You are running the GSD plan-phase workflow for phase {N} of the project.
229
-
230
- Working directory: {cwd}
231
- Phase: {N} — {phase_name}
232
- Goal: {goal}
233
- Manager flags: {manager_flags.plan}
234
-
235
- Run the plan-phase Skill with any configured manager flags:
236
- Skill(skill=\"gsd-plan-phase\", args=\"{N} --auto {manager_flags.plan}\")
237
-
238
- This delegates to the full plan-phase pipeline including local patches, research, plan-checker, and all quality gates.
239
-
240
- Important: You are running in the background. Do NOT use AskUserQuestion — 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."
241
- )
242
- ```
243
-
244
- Display:
245
-
246
- ```
247
- ◆ Spawning planner for Phase {N}: {phase_name}...
248
- ```
249
-
250
- Loop back to dashboard step.
251
-
252
- ### Execute Phase N
253
-
254
- Execution runs autonomously. Spawn a background agent that delegates to the Skill pipeline with any configured flags:
255
-
256
- ```
257
- Task(
258
- description="Execute phase {N}: {phase_name}",
259
- run_in_background=true,
260
- prompt="You are running the GSD execute-phase workflow for phase {N} of the project.
261
-
262
- Working directory: {cwd}
263
- Phase: {N} — {phase_name}
264
- Goal: {goal}
265
- Manager flags: {manager_flags.execute}
266
-
267
- Run the execute-phase Skill with any configured manager flags:
268
- Skill(skill=\"gsd-execute-phase\", args=\"{N} {manager_flags.execute}\")
269
-
270
- This delegates to the full execute-phase pipeline including local patches, branching, wave-based execution, verification, and all quality gates.
271
-
272
- Important: You are running in the background. Do NOT use AskUserQuestion — 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."
273
- )
274
- ```
275
-
276
- Display:
277
-
278
- ```
279
- ◆ Spawning executor for Phase {N}: {phase_name}...
280
- ```
281
-
282
- Loop back to dashboard step.
283
-
284
- </step>
285
-
286
- <step name="background_completion">
287
-
288
- ## 5. Background Agent Completion
289
-
290
- When notified that a background agent completed:
291
-
292
- 1. Read the result message from the agent.
293
- 2. Display a brief notification:
294
-
295
- ```
296
- ✓ {description}
297
- {brief summary from agent result}
298
- ```
299
-
300
- 3. Loop back to dashboard step.
301
-
302
- **If the agent reported an error or blocker:**
303
-
304
- Classify the error:
305
-
306
- **Permission / tool access error** (e.g. tool not allowed, permission denied, sandbox restriction):
307
- - Parse the error to identify which tool or command was blocked.
308
- - Display the error clearly, then offer to fix it:
309
- - **question:** "Phase {N} failed — permission denied for `{tool_or_command}`. Want me to add it to settings.local.json so it's allowed?"
310
- - **options:** "Add permission and retry" / "Run this phase inline instead" / "Skip and continue"
311
- - "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.
312
- - "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.
313
- - "Skip and continue": Loop to dashboard (phase stays in current state).
314
-
315
- **Other errors** (git lock, file conflict, logic error, etc.):
316
- - Display the error, then offer options via AskUserQuestion:
317
- - **question:** "Background agent for Phase {N} encountered an issue: {error}. What next?"
318
- - **options:** "Retry" / "Run inline instead" / "Skip and continue" / "View details"
319
- - "Retry": Re-spawn the same background agent. Loop to dashboard.
320
- - "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.
321
- - "Skip and continue": Loop to dashboard (phase stays in current state).
322
- - "View details": Read STATE.md blockers section, display, then re-present options.
323
-
324
- </step>
325
-
326
- <step name="exit">
327
-
328
- ## 6. Exit
329
-
330
- Display final status with progress bar:
331
-
332
- ```
333
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
334
- GSD ► SESSION END
335
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
336
-
337
- {milestone_version} — {milestone_name}
338
- {PROGRESS_BAR} {progress_pct}% ({completed_count}/{phase_count} phases)
339
-
340
- Resume anytime: /gsd-manager
341
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
342
- ```
343
-
344
- **Note:** Any background agents still running will continue to completion. Their results will be visible on next `/gsd-manager` or `/gsd-progress` invocation.
345
-
346
- </step>
347
-
348
- </process>
349
-
350
- <success_criteria>
351
- - [ ] Dashboard displays all phases with correct status indicators (D/P/E/V columns)
352
- - [ ] Progress bar shows accurate completion percentage
353
- - [ ] Dependency resolution: blocked phases show which deps are missing
354
- - [ ] Recommendations prioritize: execute > plan > discuss
355
- - [ ] Discuss phases run inline via Skill() — interactive questions work
356
- - [ ] Plan phases spawn background Task agents — return to dashboard immediately
357
- - [ ] Execute phases spawn background Task agents — return to dashboard immediately
358
- - [ ] Dashboard refreshes pick up changes from background agents via disk state
359
- - [ ] Background agent completion triggers notification and dashboard refresh
360
- - [ ] Background agent errors present retry/skip options
361
- - [ ] All-complete state offers verify-work and complete-milestone
362
- - [ ] Exit shows final status with resume instructions
363
- - [ ] "Other" free-text input parsed for phase number and action
364
- - [ ] Manager loop continues until user exits or milestone completes
365
- </success_criteria>
@@ -1,223 +0,0 @@
1
- # Milestone Summary Workflow
2
-
3
- Generate a comprehensive, human-friendly project summary from completed milestone artifacts.
4
- Designed for team onboarding — a new contributor can read the output and understand the entire project.
5
-
6
- ---
7
-
8
- ## Step 1: Resolve Version
9
-
10
- ```bash
11
- VERSION="$ARGUMENTS"
12
- ```
13
-
14
- If `$ARGUMENTS` is empty:
15
- 1. Check `.planning/STATE.md` for current milestone version
16
- 2. Check `.planning/milestones/` for the latest archived version
17
- 3. If neither found, check if `.planning/ROADMAP.md` exists (project may be mid-milestone)
18
- 4. If nothing found: error "No milestone found. Run /gsd-new-project or /gsd-new-milestone first."
19
-
20
- Set `VERSION` to the resolved version (e.g., "1.0").
21
-
22
- ## Step 2: Locate Artifacts
23
-
24
- Determine whether the milestone is **archived** or **current**:
25
-
26
- **Archived milestone** (`.planning/milestones/v{VERSION}-ROADMAP.md` exists):
27
- ```
28
- ROADMAP_PATH=".planning/milestones/v${VERSION}-ROADMAP.md"
29
- REQUIREMENTS_PATH=".planning/milestones/v${VERSION}-REQUIREMENTS.md"
30
- AUDIT_PATH=".planning/milestones/v${VERSION}-MILESTONE-AUDIT.md"
31
- ```
32
-
33
- **Current/in-progress milestone** (no archive yet):
34
- ```
35
- ROADMAP_PATH=".planning/ROADMAP.md"
36
- REQUIREMENTS_PATH=".planning/REQUIREMENTS.md"
37
- AUDIT_PATH=".planning/v${VERSION}-MILESTONE-AUDIT.md"
38
- ```
39
-
40
- Note: The audit file moves to `.planning/milestones/` on archive (per `complete-milestone` workflow). Check both locations as a fallback.
41
-
42
- **Always available:**
43
- ```
44
- PROJECT_PATH=".planning/PROJECT.md"
45
- RETRO_PATH=".planning/RETROSPECTIVE.md"
46
- STATE_PATH=".planning/STATE.md"
47
- ```
48
-
49
- Read all files that exist. Missing files are fine — the summary adapts to what's available.
50
-
51
- ## Step 3: Discover Phase Artifacts
52
-
53
- Find all phase directories:
54
-
55
- ```bash
56
- gsd-remix-sdk query init.progress
57
- ```
58
-
59
- This returns phase metadata. For each phase in the milestone scope:
60
-
61
- - Read `{phase_dir}/{padded}-SUMMARY.md` if it exists — extract `one_liner`, `accomplishments`, `decisions`
62
- - Read `{phase_dir}/{padded}-VERIFICATION.md` if it exists — extract status, gaps, deferred items
63
- - Read `{phase_dir}/{padded}-CONTEXT.md` if it exists — extract key decisions from `<decisions>` section
64
- - Read `{phase_dir}/{padded}-RESEARCH.md` if it exists — note what was researched
65
-
66
- Track which phases have which artifacts.
67
-
68
- **If no phase directories exist** (empty milestone or pre-build state): skip to Step 5 and generate a minimal summary noting "No phases have been executed yet." Do not error — the summary should still capture PROJECT.md and ROADMAP.md content.
69
-
70
- ## Step 4: Gather Git Statistics
71
-
72
- Try each method in order until one succeeds:
73
-
74
- **Method 1 — Tagged milestone** (check first):
75
- ```bash
76
- git tag -l "v${VERSION}" | head -1
77
- ```
78
- If the tag exists:
79
- ```bash
80
- git log v${VERSION} --oneline | wc -l
81
- git diff --stat $(git log --format=%H --reverse v${VERSION} | head -1)..v${VERSION}
82
- ```
83
-
84
- **Method 2 — STATE.md date range** (if no tag):
85
- Read STATE.md and extract the `started_at` or earliest session date. Use it as the `--since` boundary:
86
- ```bash
87
- git log --oneline --since="<started_at_date>" | wc -l
88
- ```
89
-
90
- **Method 3 — Earliest phase commit** (if STATE.md has no date):
91
- Find the earliest `.planning/phases/` commit:
92
- ```bash
93
- git log --oneline --diff-filter=A -- ".planning/phases/" | tail -1
94
- ```
95
- Use that commit's date as the start boundary.
96
-
97
- **Method 4 — Skip stats** (if none of the above work):
98
- Report "Git statistics unavailable — no tag or date range could be determined." This is not an error — the summary continues without the Stats section.
99
-
100
- Extract (when available):
101
- - Total commits in milestone
102
- - Files changed, insertions, deletions
103
- - Timeline (start date → end date)
104
- - Contributors (from git log authors)
105
-
106
- ## Step 5: Generate Summary Document
107
-
108
- Write to `.planning/reports/MILESTONE_SUMMARY-v${VERSION}.md`:
109
-
110
- ```markdown
111
- # Milestone v{VERSION} — Project Summary
112
-
113
- **Generated:** {date}
114
- **Purpose:** Team onboarding and project review
115
-
116
- ---
117
-
118
- ## 1. Project Overview
119
-
120
- {From PROJECT.md: "What This Is", core value proposition, target users}
121
- {If mid-milestone: note which phases are complete vs in-progress}
122
-
123
- ## 2. Architecture & Technical Decisions
124
-
125
- {From CONTEXT.md files across phases: key technical choices}
126
- {From SUMMARY.md decisions: patterns, libraries, frameworks chosen}
127
- {From PROJECT.md: tech stack if documented}
128
-
129
- Present as a bulleted list of decisions with brief rationale:
130
- - **Decision:** {what was chosen}
131
- - **Why:** {rationale from CONTEXT.md}
132
- - **Phase:** {which phase made this decision}
133
-
134
- ## 3. Phases Delivered
135
-
136
- | Phase | Name | Status | One-Liner |
137
- |-------|------|--------|-----------|
138
- {For each phase: number, name, status (complete/in-progress/planned), one_liner from SUMMARY.md}
139
-
140
- ## 4. Requirements Coverage
141
-
142
- {From REQUIREMENTS.md: list each requirement with status}
143
- - ✅ {Requirement met}
144
- - ⚠️ {Requirement partially met — note gap}
145
- - ❌ {Requirement not met — note reason}
146
-
147
- {If MILESTONE-AUDIT.md exists: include audit verdict}
148
-
149
- ## 5. Key Decisions Log
150
-
151
- {Aggregate from all CONTEXT.md <decisions> sections}
152
- {Each decision with: ID, description, phase, rationale}
153
-
154
- ## 6. Tech Debt & Deferred Items
155
-
156
- {From VERIFICATION.md files: gaps found, anti-patterns noted}
157
- {From RETROSPECTIVE.md: lessons learned, what to improve}
158
- {From CONTEXT.md <deferred> sections: ideas parked for later}
159
-
160
- ## 7. Getting Started
161
-
162
- {Entry points for new contributors:}
163
- - **Run the project:** {from PROJECT.md or SUMMARY.md}
164
- - **Key directories:** {from codebase structure}
165
- - **Tests:** {test command from PROJECT.md or CLAUDE.md}
166
- - **Where to look first:** {main entry points, core modules}
167
-
168
- ---
169
-
170
- ## Stats
171
-
172
- - **Timeline:** {start} → {end} ({duration})
173
- - **Phases:** {count complete} / {count total}
174
- - **Commits:** {count}
175
- - **Files changed:** {count} (+{insertions} / -{deletions})
176
- - **Contributors:** {list}
177
- ```
178
-
179
- ## Step 6: Write and Commit
180
-
181
- **Overwrite guard:** If `.planning/reports/MILESTONE_SUMMARY-v${VERSION}.md` already exists, ask the user:
182
- > "A milestone summary for v{VERSION} already exists. Overwrite it, or view the existing one?"
183
- If "view": display existing file and skip to Step 8 (interactive mode). If "overwrite": proceed.
184
-
185
- Create the reports directory if needed:
186
- ```bash
187
- mkdir -p .planning/reports
188
- ```
189
-
190
- Write the summary, then commit:
191
- ```bash
192
- gsd-remix-sdk query commit "docs(v${VERSION}): generate milestone summary for onboarding" \
193
- ".planning/reports/MILESTONE_SUMMARY-v${VERSION}.md"
194
- ```
195
-
196
- ## Step 7: Present Summary
197
-
198
- Display the full summary document inline.
199
-
200
- ## Step 8: Offer Interactive Mode
201
-
202
- After presenting the summary:
203
-
204
- > "Summary written to `.planning/reports/MILESTONE_SUMMARY-v{VERSION}.md`.
205
- >
206
- > I have full context from the build artifacts. Want to ask anything about the project?
207
- > Architecture decisions, specific phases, requirements, tech debt — ask away."
208
-
209
- If the user asks questions:
210
- - Answer from the artifacts already loaded (CONTEXT.md, SUMMARY.md, VERIFICATION.md, etc.)
211
- - Reference specific files and decisions
212
- - Stay grounded in what was actually built (not speculation)
213
-
214
- If the user is done:
215
- - Suggest next steps: `/gsd-new-milestone`, `/gsd-progress`, or sharing the summary with the team
216
-
217
- ## Step 9: Update STATE.md
218
-
219
- ```bash
220
- gsd-remix-sdk query state.record-session "" \
221
- "Milestone v${VERSION} summary generated" \
222
- ".planning/reports/MILESTONE_SUMMARY-v${VERSION}.md"
223
- ```