gsd-pi 2.28.0-dev.e19bf89 → 2.29.0-dev.2ccf3fb

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 (256) hide show
  1. package/README.md +24 -17
  2. package/dist/cli.js +15 -9
  3. package/dist/resource-loader.js +80 -8
  4. package/dist/resources/extensions/bg-shell/process-manager.ts +13 -0
  5. package/dist/resources/extensions/gsd/auto-dashboard.ts +186 -65
  6. package/dist/resources/extensions/gsd/auto-post-unit.ts +14 -6
  7. package/dist/resources/extensions/gsd/auto-recovery.ts +33 -23
  8. package/dist/resources/extensions/gsd/auto-start.ts +25 -10
  9. package/dist/resources/extensions/gsd/auto-verification.ts +41 -7
  10. package/dist/resources/extensions/gsd/auto-worktree-sync.ts +21 -6
  11. package/dist/resources/extensions/gsd/auto.ts +67 -22
  12. package/dist/resources/extensions/gsd/commands-handlers.ts +3 -11
  13. package/dist/resources/extensions/gsd/commands-logs.ts +536 -0
  14. package/dist/resources/extensions/gsd/commands-prefs-wizard.ts +90 -47
  15. package/dist/resources/extensions/gsd/commands-workflow-templates.ts +544 -0
  16. package/dist/resources/extensions/gsd/commands.ts +75 -29
  17. package/dist/resources/extensions/gsd/dashboard-overlay.ts +2 -1
  18. package/dist/resources/extensions/gsd/doctor-types.ts +13 -0
  19. package/dist/resources/extensions/gsd/doctor.ts +2 -6
  20. package/dist/resources/extensions/gsd/export.ts +28 -2
  21. package/dist/resources/extensions/gsd/gsd-db.ts +19 -0
  22. package/dist/resources/extensions/gsd/index.ts +2 -1
  23. package/dist/resources/extensions/gsd/json-persistence.ts +67 -0
  24. package/dist/resources/extensions/gsd/metrics.ts +17 -31
  25. package/dist/resources/extensions/gsd/paths.ts +0 -8
  26. package/dist/resources/extensions/gsd/prompts/guided-discuss-milestone.md +1 -1
  27. package/dist/resources/extensions/gsd/prompts/workflow-start.md +28 -0
  28. package/dist/resources/extensions/gsd/queue-order.ts +10 -11
  29. package/dist/resources/extensions/gsd/routing-history.ts +13 -17
  30. package/dist/resources/extensions/gsd/session-lock.ts +284 -0
  31. package/dist/resources/extensions/gsd/session-status-io.ts +23 -41
  32. package/dist/resources/extensions/gsd/tests/auto-budget-alerts.test.ts +1 -1
  33. package/dist/resources/extensions/gsd/tests/auto-skip-loop.test.ts +1 -1
  34. package/dist/resources/extensions/gsd/tests/commands-logs.test.ts +241 -0
  35. package/dist/resources/extensions/gsd/tests/extension-selector-separator.test.ts +60 -38
  36. package/dist/resources/extensions/gsd/tests/gsd-inspect.test.ts +1 -1
  37. package/dist/resources/extensions/gsd/tests/parallel-workers-multi-milestone-e2e.test.ts +1 -1
  38. package/dist/resources/extensions/gsd/tests/session-lock.test.ts +315 -0
  39. package/dist/resources/extensions/gsd/tests/validate-milestone.test.ts +55 -0
  40. package/dist/resources/extensions/gsd/tests/verification-evidence.test.ts +26 -24
  41. package/dist/resources/extensions/gsd/tests/verification-gate.test.ts +136 -7
  42. package/dist/resources/extensions/gsd/tests/workflow-templates.test.ts +173 -0
  43. package/dist/resources/extensions/gsd/types.ts +1 -0
  44. package/dist/resources/extensions/gsd/unit-runtime.ts +16 -13
  45. package/dist/resources/extensions/gsd/verification-evidence.ts +2 -0
  46. package/dist/resources/extensions/gsd/verification-gate.ts +13 -2
  47. package/dist/resources/extensions/gsd/workflow-templates/bugfix.md +87 -0
  48. package/dist/resources/extensions/gsd/workflow-templates/dep-upgrade.md +74 -0
  49. package/dist/resources/extensions/gsd/workflow-templates/full-project.md +41 -0
  50. package/dist/resources/extensions/gsd/workflow-templates/hotfix.md +45 -0
  51. package/dist/resources/extensions/gsd/workflow-templates/refactor.md +83 -0
  52. package/dist/resources/extensions/gsd/workflow-templates/registry.json +85 -0
  53. package/dist/resources/extensions/gsd/workflow-templates/security-audit.md +73 -0
  54. package/dist/resources/extensions/gsd/workflow-templates/small-feature.md +81 -0
  55. package/dist/resources/extensions/gsd/workflow-templates/spike.md +69 -0
  56. package/dist/resources/extensions/gsd/workflow-templates.ts +241 -0
  57. package/dist/resources/extensions/mcp-client/index.ts +459 -0
  58. package/dist/resources/extensions/remote-questions/discord-adapter.ts +9 -20
  59. package/dist/resources/extensions/remote-questions/http-client.ts +76 -0
  60. package/dist/resources/extensions/remote-questions/notify.ts +1 -2
  61. package/dist/resources/extensions/remote-questions/slack-adapter.ts +11 -18
  62. package/dist/resources/extensions/remote-questions/telegram-adapter.ts +8 -20
  63. package/dist/resources/extensions/remote-questions/types.ts +3 -0
  64. package/dist/resources/extensions/shared/mod.ts +3 -0
  65. package/dist/resources/skills/create-gsd-extension/SKILL.md +87 -0
  66. package/dist/resources/skills/create-gsd-extension/references/compaction-session-control.md +77 -0
  67. package/dist/resources/skills/create-gsd-extension/references/custom-commands.md +139 -0
  68. package/dist/resources/skills/create-gsd-extension/references/custom-rendering.md +108 -0
  69. package/dist/resources/skills/create-gsd-extension/references/custom-tools.md +183 -0
  70. package/dist/resources/skills/create-gsd-extension/references/custom-ui.md +490 -0
  71. package/dist/resources/skills/create-gsd-extension/references/events-reference.md +126 -0
  72. package/dist/resources/skills/create-gsd-extension/references/extension-lifecycle.md +64 -0
  73. package/dist/resources/skills/create-gsd-extension/references/extensionapi-reference.md +75 -0
  74. package/dist/resources/skills/create-gsd-extension/references/extensioncontext-reference.md +53 -0
  75. package/dist/resources/skills/create-gsd-extension/references/key-rules-gotchas.md +36 -0
  76. package/dist/resources/skills/create-gsd-extension/references/mode-behavior.md +32 -0
  77. package/dist/resources/skills/create-gsd-extension/references/model-provider-management.md +89 -0
  78. package/dist/resources/skills/create-gsd-extension/references/packaging-distribution.md +55 -0
  79. package/dist/resources/skills/create-gsd-extension/references/remote-execution-overrides.md +90 -0
  80. package/dist/resources/skills/create-gsd-extension/references/state-management.md +70 -0
  81. package/dist/resources/skills/create-gsd-extension/references/system-prompt-modification.md +52 -0
  82. package/dist/resources/skills/create-gsd-extension/templates/extension-skeleton.ts +51 -0
  83. package/dist/resources/skills/create-gsd-extension/templates/stateful-tool-skeleton.ts +143 -0
  84. package/dist/resources/skills/create-gsd-extension/workflows/add-capability.md +57 -0
  85. package/dist/resources/skills/create-gsd-extension/workflows/create-extension.md +156 -0
  86. package/dist/resources/skills/create-gsd-extension/workflows/debug-extension.md +74 -0
  87. package/dist/resources/skills/create-skill/SKILL.md +184 -0
  88. package/dist/resources/skills/create-skill/references/api-security.md +226 -0
  89. package/dist/resources/skills/create-skill/references/be-clear-and-direct.md +531 -0
  90. package/dist/resources/skills/create-skill/references/common-patterns.md +595 -0
  91. package/dist/resources/skills/create-skill/references/core-principles.md +437 -0
  92. package/dist/resources/skills/create-skill/references/executable-code.md +175 -0
  93. package/dist/resources/skills/create-skill/references/gsd-skill-ecosystem.md +68 -0
  94. package/dist/resources/skills/create-skill/references/iteration-and-testing.md +474 -0
  95. package/dist/resources/skills/create-skill/references/recommended-structure.md +168 -0
  96. package/dist/resources/skills/create-skill/references/skill-structure.md +372 -0
  97. package/dist/resources/skills/create-skill/references/use-xml-tags.md +466 -0
  98. package/dist/resources/skills/create-skill/references/using-scripts.md +113 -0
  99. package/dist/resources/skills/create-skill/references/using-templates.md +112 -0
  100. package/dist/resources/skills/create-skill/references/workflows-and-validation.md +510 -0
  101. package/dist/resources/skills/create-skill/templates/router-skill.md +73 -0
  102. package/dist/resources/skills/create-skill/templates/simple-skill.md +33 -0
  103. package/dist/resources/skills/create-skill/workflows/add-reference.md +96 -0
  104. package/dist/resources/skills/create-skill/workflows/add-script.md +93 -0
  105. package/dist/resources/skills/create-skill/workflows/add-template.md +74 -0
  106. package/dist/resources/skills/create-skill/workflows/add-workflow.md +120 -0
  107. package/dist/resources/skills/create-skill/workflows/audit-skill.md +148 -0
  108. package/dist/resources/skills/create-skill/workflows/create-new-skill.md +196 -0
  109. package/dist/resources/skills/create-skill/workflows/get-guidance.md +121 -0
  110. package/dist/resources/skills/create-skill/workflows/upgrade-to-router.md +161 -0
  111. package/dist/resources/skills/create-skill/workflows/verify-skill.md +204 -0
  112. package/package.json +6 -3
  113. package/packages/native/dist/native.d.ts +2 -0
  114. package/packages/native/dist/native.js +19 -5
  115. package/packages/native/src/native.ts +23 -9
  116. package/packages/pi-coding-agent/dist/core/extensions/loader.d.ts.map +1 -1
  117. package/packages/pi-coding-agent/dist/core/extensions/loader.js +13 -0
  118. package/packages/pi-coding-agent/dist/core/extensions/loader.js.map +1 -1
  119. package/packages/pi-coding-agent/dist/core/settings-manager.d.ts +3 -0
  120. package/packages/pi-coding-agent/dist/core/settings-manager.d.ts.map +1 -1
  121. package/packages/pi-coding-agent/dist/core/settings-manager.js +8 -0
  122. package/packages/pi-coding-agent/dist/core/settings-manager.js.map +1 -1
  123. package/packages/pi-coding-agent/dist/core/system-prompt.d.ts.map +1 -1
  124. package/packages/pi-coding-agent/dist/core/system-prompt.js +10 -0
  125. package/packages/pi-coding-agent/dist/core/system-prompt.js.map +1 -1
  126. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  127. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js +4 -1
  128. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js.map +1 -1
  129. package/packages/pi-coding-agent/package.json +1 -1
  130. package/packages/pi-coding-agent/scripts/copy-assets.cjs +39 -8
  131. package/packages/pi-coding-agent/src/core/extensions/loader.ts +13 -0
  132. package/packages/pi-coding-agent/src/core/settings-manager.ts +11 -0
  133. package/packages/pi-coding-agent/src/core/system-prompt.ts +11 -0
  134. package/packages/pi-coding-agent/src/modes/interactive/interactive-mode.ts +4 -1
  135. package/packages/pi-tui/dist/autocomplete.d.ts +3 -0
  136. package/packages/pi-tui/dist/autocomplete.d.ts.map +1 -1
  137. package/packages/pi-tui/dist/autocomplete.js +14 -0
  138. package/packages/pi-tui/dist/autocomplete.js.map +1 -1
  139. package/packages/pi-tui/src/autocomplete.ts +19 -1
  140. package/pkg/package.json +1 -1
  141. package/src/resources/extensions/bg-shell/process-manager.ts +13 -0
  142. package/src/resources/extensions/gsd/auto-dashboard.ts +186 -65
  143. package/src/resources/extensions/gsd/auto-post-unit.ts +14 -6
  144. package/src/resources/extensions/gsd/auto-recovery.ts +33 -23
  145. package/src/resources/extensions/gsd/auto-start.ts +25 -10
  146. package/src/resources/extensions/gsd/auto-verification.ts +41 -7
  147. package/src/resources/extensions/gsd/auto-worktree-sync.ts +21 -6
  148. package/src/resources/extensions/gsd/auto.ts +67 -22
  149. package/src/resources/extensions/gsd/commands-handlers.ts +3 -11
  150. package/src/resources/extensions/gsd/commands-logs.ts +536 -0
  151. package/src/resources/extensions/gsd/commands-prefs-wizard.ts +90 -47
  152. package/src/resources/extensions/gsd/commands-workflow-templates.ts +544 -0
  153. package/src/resources/extensions/gsd/commands.ts +75 -29
  154. package/src/resources/extensions/gsd/dashboard-overlay.ts +2 -1
  155. package/src/resources/extensions/gsd/doctor-types.ts +13 -0
  156. package/src/resources/extensions/gsd/doctor.ts +2 -6
  157. package/src/resources/extensions/gsd/export.ts +28 -2
  158. package/src/resources/extensions/gsd/gsd-db.ts +19 -0
  159. package/src/resources/extensions/gsd/index.ts +2 -1
  160. package/src/resources/extensions/gsd/json-persistence.ts +67 -0
  161. package/src/resources/extensions/gsd/metrics.ts +17 -31
  162. package/src/resources/extensions/gsd/paths.ts +0 -8
  163. package/src/resources/extensions/gsd/prompts/guided-discuss-milestone.md +1 -1
  164. package/src/resources/extensions/gsd/prompts/workflow-start.md +28 -0
  165. package/src/resources/extensions/gsd/queue-order.ts +10 -11
  166. package/src/resources/extensions/gsd/routing-history.ts +13 -17
  167. package/src/resources/extensions/gsd/session-lock.ts +284 -0
  168. package/src/resources/extensions/gsd/session-status-io.ts +23 -41
  169. package/src/resources/extensions/gsd/tests/auto-budget-alerts.test.ts +1 -1
  170. package/src/resources/extensions/gsd/tests/auto-skip-loop.test.ts +1 -1
  171. package/src/resources/extensions/gsd/tests/commands-logs.test.ts +241 -0
  172. package/src/resources/extensions/gsd/tests/extension-selector-separator.test.ts +60 -38
  173. package/src/resources/extensions/gsd/tests/gsd-inspect.test.ts +1 -1
  174. package/src/resources/extensions/gsd/tests/parallel-workers-multi-milestone-e2e.test.ts +1 -1
  175. package/src/resources/extensions/gsd/tests/session-lock.test.ts +315 -0
  176. package/src/resources/extensions/gsd/tests/validate-milestone.test.ts +55 -0
  177. package/src/resources/extensions/gsd/tests/verification-evidence.test.ts +26 -24
  178. package/src/resources/extensions/gsd/tests/verification-gate.test.ts +136 -7
  179. package/src/resources/extensions/gsd/tests/workflow-templates.test.ts +173 -0
  180. package/src/resources/extensions/gsd/types.ts +1 -0
  181. package/src/resources/extensions/gsd/unit-runtime.ts +16 -13
  182. package/src/resources/extensions/gsd/verification-evidence.ts +2 -0
  183. package/src/resources/extensions/gsd/verification-gate.ts +13 -2
  184. package/src/resources/extensions/gsd/workflow-templates/bugfix.md +87 -0
  185. package/src/resources/extensions/gsd/workflow-templates/dep-upgrade.md +74 -0
  186. package/src/resources/extensions/gsd/workflow-templates/full-project.md +41 -0
  187. package/src/resources/extensions/gsd/workflow-templates/hotfix.md +45 -0
  188. package/src/resources/extensions/gsd/workflow-templates/refactor.md +83 -0
  189. package/src/resources/extensions/gsd/workflow-templates/registry.json +85 -0
  190. package/src/resources/extensions/gsd/workflow-templates/security-audit.md +73 -0
  191. package/src/resources/extensions/gsd/workflow-templates/small-feature.md +81 -0
  192. package/src/resources/extensions/gsd/workflow-templates/spike.md +69 -0
  193. package/src/resources/extensions/gsd/workflow-templates.ts +241 -0
  194. package/src/resources/extensions/mcp-client/index.ts +459 -0
  195. package/src/resources/extensions/remote-questions/discord-adapter.ts +9 -20
  196. package/src/resources/extensions/remote-questions/http-client.ts +76 -0
  197. package/src/resources/extensions/remote-questions/notify.ts +1 -2
  198. package/src/resources/extensions/remote-questions/slack-adapter.ts +11 -18
  199. package/src/resources/extensions/remote-questions/telegram-adapter.ts +8 -20
  200. package/src/resources/extensions/remote-questions/types.ts +3 -0
  201. package/src/resources/extensions/shared/mod.ts +3 -0
  202. package/src/resources/skills/create-gsd-extension/SKILL.md +87 -0
  203. package/src/resources/skills/create-gsd-extension/references/compaction-session-control.md +77 -0
  204. package/src/resources/skills/create-gsd-extension/references/custom-commands.md +139 -0
  205. package/src/resources/skills/create-gsd-extension/references/custom-rendering.md +108 -0
  206. package/src/resources/skills/create-gsd-extension/references/custom-tools.md +183 -0
  207. package/src/resources/skills/create-gsd-extension/references/custom-ui.md +490 -0
  208. package/src/resources/skills/create-gsd-extension/references/events-reference.md +126 -0
  209. package/src/resources/skills/create-gsd-extension/references/extension-lifecycle.md +64 -0
  210. package/src/resources/skills/create-gsd-extension/references/extensionapi-reference.md +75 -0
  211. package/src/resources/skills/create-gsd-extension/references/extensioncontext-reference.md +53 -0
  212. package/src/resources/skills/create-gsd-extension/references/key-rules-gotchas.md +36 -0
  213. package/src/resources/skills/create-gsd-extension/references/mode-behavior.md +32 -0
  214. package/src/resources/skills/create-gsd-extension/references/model-provider-management.md +89 -0
  215. package/src/resources/skills/create-gsd-extension/references/packaging-distribution.md +55 -0
  216. package/src/resources/skills/create-gsd-extension/references/remote-execution-overrides.md +90 -0
  217. package/src/resources/skills/create-gsd-extension/references/state-management.md +70 -0
  218. package/src/resources/skills/create-gsd-extension/references/system-prompt-modification.md +52 -0
  219. package/src/resources/skills/create-gsd-extension/templates/extension-skeleton.ts +51 -0
  220. package/src/resources/skills/create-gsd-extension/templates/stateful-tool-skeleton.ts +143 -0
  221. package/src/resources/skills/create-gsd-extension/workflows/add-capability.md +57 -0
  222. package/src/resources/skills/create-gsd-extension/workflows/create-extension.md +156 -0
  223. package/src/resources/skills/create-gsd-extension/workflows/debug-extension.md +74 -0
  224. package/src/resources/skills/create-skill/SKILL.md +184 -0
  225. package/src/resources/skills/create-skill/references/api-security.md +226 -0
  226. package/src/resources/skills/create-skill/references/be-clear-and-direct.md +531 -0
  227. package/src/resources/skills/create-skill/references/common-patterns.md +595 -0
  228. package/src/resources/skills/create-skill/references/core-principles.md +437 -0
  229. package/src/resources/skills/create-skill/references/executable-code.md +175 -0
  230. package/src/resources/skills/create-skill/references/gsd-skill-ecosystem.md +68 -0
  231. package/src/resources/skills/create-skill/references/iteration-and-testing.md +474 -0
  232. package/src/resources/skills/create-skill/references/recommended-structure.md +168 -0
  233. package/src/resources/skills/create-skill/references/skill-structure.md +372 -0
  234. package/src/resources/skills/create-skill/references/use-xml-tags.md +466 -0
  235. package/src/resources/skills/create-skill/references/using-scripts.md +113 -0
  236. package/src/resources/skills/create-skill/references/using-templates.md +112 -0
  237. package/src/resources/skills/create-skill/references/workflows-and-validation.md +510 -0
  238. package/src/resources/skills/create-skill/templates/router-skill.md +73 -0
  239. package/src/resources/skills/create-skill/templates/simple-skill.md +33 -0
  240. package/src/resources/skills/create-skill/workflows/add-reference.md +96 -0
  241. package/src/resources/skills/create-skill/workflows/add-script.md +93 -0
  242. package/src/resources/skills/create-skill/workflows/add-template.md +74 -0
  243. package/src/resources/skills/create-skill/workflows/add-workflow.md +120 -0
  244. package/src/resources/skills/create-skill/workflows/audit-skill.md +148 -0
  245. package/src/resources/skills/create-skill/workflows/create-new-skill.md +196 -0
  246. package/src/resources/skills/create-skill/workflows/get-guidance.md +121 -0
  247. package/src/resources/skills/create-skill/workflows/upgrade-to-router.md +161 -0
  248. package/src/resources/skills/create-skill/workflows/verify-skill.md +204 -0
  249. package/dist/resources/extensions/gsd/preferences-hooks.ts +0 -10
  250. package/dist/resources/extensions/mcporter/index.ts +0 -525
  251. package/dist/resources/extensions/shared/progress-widget.ts +0 -282
  252. package/dist/resources/extensions/shared/thinking-widget.ts +0 -107
  253. package/src/resources/extensions/gsd/preferences-hooks.ts +0 -10
  254. package/src/resources/extensions/mcporter/index.ts +0 -525
  255. package/src/resources/extensions/shared/progress-widget.ts +0 -282
  256. package/src/resources/extensions/shared/thinking-widget.ts +0 -107
@@ -112,7 +112,9 @@ const MAX_FAILURE_CONTEXT_CHARS = 10_000;
112
112
  * Returns an empty string when all checks pass or the checks array is empty.
113
113
  */
114
114
  export function formatFailureContext(result: VerificationResult): string {
115
- const failures = result.checks.filter((c) => c.exitCode !== 0);
115
+ // Only include blocking failures in retry context non-blocking (advisory) failures
116
+ // should not be injected into retry prompts to avoid noise pollution.
117
+ const failures = result.checks.filter((c) => c.exitCode !== 0 && c.blocking);
116
118
  if (failures.length === 0) return "";
117
119
 
118
120
  const blocks: string[] = [];
@@ -256,6 +258,10 @@ export function runVerificationGate(options: RunVerificationGateOptions): Verifi
256
258
  };
257
259
  }
258
260
 
261
+ // Commands from preference and task-plan sources are blocking;
262
+ // package-json discovered commands are advisory (non-blocking).
263
+ const blocking = source === "preference" || source === "task-plan";
264
+
259
265
  const checks: VerificationCheck[] = [];
260
266
 
261
267
  for (const command of commands) {
@@ -291,11 +297,16 @@ export function runVerificationGate(options: RunVerificationGateOptions): Verifi
291
297
  stdout: truncate(result.stdout, MAX_OUTPUT_BYTES),
292
298
  stderr,
293
299
  durationMs,
300
+ blocking,
294
301
  });
295
302
  }
296
303
 
304
+ // Gate passes if all blocking checks pass (non-blocking failures are advisory)
305
+ const blockingChecks = checks.filter(c => c.blocking);
306
+ const passed = blockingChecks.length === 0 || blockingChecks.every(c => c.exitCode === 0);
307
+
297
308
  return {
298
- passed: checks.every(c => c.exitCode === 0),
309
+ passed,
299
310
  checks,
300
311
  discoverySource: source,
301
312
  timestamp,
@@ -0,0 +1,87 @@
1
+ # Bugfix Workflow
2
+
3
+ <template_meta>
4
+ name: bugfix
5
+ version: 1
6
+ requires_project: false
7
+ artifact_dir: .gsd/workflows/bugfixes/
8
+ </template_meta>
9
+
10
+ <purpose>
11
+ Fix a bug from identification through to PR submission. Designed for issues reported
12
+ via GitHub, user reports, or developer discovery. Emphasizes root cause analysis
13
+ before jumping to fixes.
14
+ </purpose>
15
+
16
+ <phases>
17
+ 1. triage — Identify root cause, reproduce the bug
18
+ 2. fix — Implement the fix with tests
19
+ 3. verify — Run full test suite, check for regressions
20
+ 4. ship — Create PR with detailed explanation
21
+ </phases>
22
+
23
+ <process>
24
+
25
+ ## Phase 1: Triage
26
+
27
+ **Goal:** Understand the bug before touching any code.
28
+
29
+ 1. **Gather context:**
30
+ - If a GitHub issue was referenced, read the issue description, labels, and comments
31
+ - Identify the expected behavior vs actual behavior
32
+ - Note any error messages, stack traces, or reproduction steps provided
33
+
34
+ 2. **Reproduce:**
35
+ - Find the minimal reproduction path
36
+ - Identify the affected code paths (files, functions, lines)
37
+ - If the bug is intermittent, note the conditions that trigger it
38
+
39
+ 3. **Root cause analysis:**
40
+ - Trace the bug to its root cause (not just the symptom)
41
+ - Identify when the bug was introduced if possible (git blame/log)
42
+ - Assess blast radius: what else could be affected?
43
+
44
+ 4. **Produce:** Write a brief `TRIAGE.md` in the artifact directory with:
45
+ - Root cause explanation
46
+ - Reproduction steps
47
+ - Affected files/functions
48
+ - Proposed fix approach
49
+
50
+ 5. **Gate:** Present the triage findings and proposed fix to the user for confirmation.
51
+
52
+ ## Phase 2: Fix
53
+
54
+ **Goal:** Implement a clean, tested fix.
55
+
56
+ 1. **Plan the fix:** Write a brief plan (1-3 tasks max)
57
+ 2. **Write the fix:** Implement the code change
58
+ 3. **Write tests:** Add or update tests that:
59
+ - Reproduce the original bug (test fails without fix)
60
+ - Verify the fix works
61
+ - Cover edge cases
62
+ 4. **Commit:** Atomic commit with message: `fix(<scope>): <description>`
63
+
64
+ ## Phase 3: Verify
65
+
66
+ **Goal:** Ensure the fix doesn't break anything else.
67
+
68
+ 1. Run the project's full test suite
69
+ 2. Run the build (if applicable)
70
+ 3. Run the linter (if applicable)
71
+ 4. Check for regressions in related functionality
72
+ 5. If any failures, fix them before proceeding
73
+
74
+ ## Phase 4: Ship
75
+
76
+ **Goal:** Create a well-documented PR.
77
+
78
+ 1. Ensure all changes are committed on the workflow branch
79
+ 2. Build the PR body:
80
+ - Link to the original issue (if applicable)
81
+ - Explain the root cause
82
+ - Describe the fix approach
83
+ - List the test coverage added
84
+ 3. Present the PR details to the user for review
85
+ 4. Create the PR via `gh pr create` (with user approval)
86
+
87
+ </process>
@@ -0,0 +1,74 @@
1
+ # Dependency Upgrade Workflow
2
+
3
+ <template_meta>
4
+ name: dep-upgrade
5
+ version: 1
6
+ requires_project: false
7
+ artifact_dir: .gsd/workflows/upgrades/
8
+ </template_meta>
9
+
10
+ <purpose>
11
+ Upgrade project dependencies safely. Assess breaking changes before upgrading,
12
+ fix issues incrementally, and verify everything works. Handles both single-package
13
+ upgrades and bulk dependency refresh.
14
+ </purpose>
15
+
16
+ <phases>
17
+ 1. assess — Analyze what's outdated and what will break
18
+ 2. upgrade — Apply upgrades incrementally
19
+ 3. fix — Resolve breaking changes
20
+ 4. verify — Full test suite and build validation
21
+ </phases>
22
+
23
+ <process>
24
+
25
+ ## Phase 1: Assess
26
+
27
+ **Goal:** Know what you're getting into before changing versions.
28
+
29
+ 1. **List outdated dependencies:** Run `npm outdated` / equivalent
30
+ 2. **For each target upgrade:**
31
+ - Read the changelog / release notes
32
+ - Identify breaking changes
33
+ - Check for known migration guides
34
+ - Assess impact on the codebase (grep for affected APIs)
35
+ 3. **Prioritize:** Which upgrades to do now, which to defer
36
+ 4. **Produce:** Write `ASSESSMENT.md` with:
37
+ - Dependency list with current → target versions
38
+ - Breaking changes per dependency
39
+ - Upgrade order (dependencies before dependents)
40
+ - Risk assessment
41
+
42
+ 5. **Gate:** Review assessment with user. Confirm upgrade scope.
43
+
44
+ ## Phase 2: Upgrade
45
+
46
+ **Goal:** Apply version bumps incrementally.
47
+
48
+ 1. Upgrade one dependency (or one group of related dependencies) at a time
49
+ 2. Run tests after each upgrade
50
+ 3. Commit each upgrade: `chore(deps): upgrade <package> to <version>`
51
+ 4. If tests fail, move to Phase 3 for that dependency before continuing
52
+
53
+ ## Phase 3: Fix
54
+
55
+ **Goal:** Resolve any breaking changes from upgrades.
56
+
57
+ 1. Fix API changes, type errors, deprecations
58
+ 2. Update configuration if needed
59
+ 3. Commit fixes separately from the upgrade: `fix(deps): adapt to <package> v<version> changes`
60
+
61
+ ## Phase 4: Verify
62
+
63
+ **Goal:** Ensure everything works together.
64
+
65
+ 1. Run the full test suite
66
+ 2. Run the build
67
+ 3. Run the linter
68
+ 4. Check for deprecation warnings in output
69
+ 5. **Produce:** Write `SUMMARY.md` with:
70
+ - Dependencies upgraded (from → to)
71
+ - Breaking changes encountered and how they were resolved
72
+ - Any deferred upgrades and why
73
+
74
+ </process>
@@ -0,0 +1,41 @@
1
+ # Full Project Workflow
2
+
3
+ <template_meta>
4
+ name: full-project
5
+ version: 1
6
+ requires_project: true
7
+ artifact_dir: .gsd/
8
+ </template_meta>
9
+
10
+ <purpose>
11
+ The complete GSD workflow with full ceremony: roadmap, milestones, slices, tasks,
12
+ research, planning, execution, and verification. Use for greenfield projects or
13
+ major features that need the full planning apparatus.
14
+
15
+ This template wraps the existing GSD workflow for registry completeness.
16
+ When selected, it routes to the standard /gsd init → /gsd auto pipeline.
17
+ </purpose>
18
+
19
+ <phases>
20
+ 1. init — Initialize project, detect stack, create .gsd/
21
+ 2. discuss — Define requirements, decisions, and architecture
22
+ 3. plan — Create roadmap with milestones and slices
23
+ 4. execute — Execute slices: research → plan → implement → verify per slice
24
+ 5. verify — Milestone-level verification and completion
25
+ </phases>
26
+
27
+ <process>
28
+
29
+ ## Routing to Standard GSD
30
+
31
+ This template is a convenience entry point. When selected via `/gsd start full-project`,
32
+ it should route to the standard GSD workflow:
33
+
34
+ 1. If `.gsd/` doesn't exist: Run `/gsd init` to bootstrap the project
35
+ 2. If `.gsd/` exists but no milestones: Start the discuss phase via `/gsd discuss`
36
+ 3. If milestones exist: Resume via `/gsd auto` or `/gsd next`
37
+
38
+ The full GSD workflow protocol is defined in `GSD-WORKFLOW.md` and handles all
39
+ phases, state tracking, and agent orchestration.
40
+
41
+ </process>
@@ -0,0 +1,45 @@
1
+ # Hotfix Workflow
2
+
3
+ <template_meta>
4
+ name: hotfix
5
+ version: 1
6
+ requires_project: false
7
+ artifact_dir: null
8
+ </template_meta>
9
+
10
+ <purpose>
11
+ Minimal ceremony for urgent fixes. Fix it, test it, ship it. No planning artifacts,
12
+ no research phase, no lengthy documentation. For when production is broken and
13
+ speed matters.
14
+ </purpose>
15
+
16
+ <phases>
17
+ 1. fix — Identify and fix the issue
18
+ 2. ship — Test, commit, and create PR
19
+ </phases>
20
+
21
+ <process>
22
+
23
+ ## Phase 1: Fix
24
+
25
+ **Goal:** Find and fix the issue as fast as possible.
26
+
27
+ 1. Identify the broken behavior
28
+ 2. Locate the root cause
29
+ 3. Implement the minimal fix
30
+ 4. Add a regression test if possible (don't block on this if the fix is urgent)
31
+ 5. Commit: `fix(<scope>): <description>`
32
+
33
+ ## Phase 2: Ship
34
+
35
+ **Goal:** Get the fix deployed.
36
+
37
+ 1. Run tests — fix any failures
38
+ 2. Run the build
39
+ 3. Push and create PR with:
40
+ - What broke
41
+ - What the fix does
42
+ - How to verify
43
+ 4. Present PR to user for approval
44
+
45
+ </process>
@@ -0,0 +1,83 @@
1
+ # Refactor / Migration Workflow
2
+
3
+ <template_meta>
4
+ name: refactor
5
+ version: 1
6
+ requires_project: false
7
+ artifact_dir: .gsd/workflows/refactors/
8
+ </template_meta>
9
+
10
+ <purpose>
11
+ Systematic code transformation with inventory-driven planning. Designed for
12
+ renames, restructures, pattern migrations, and API modernization. Executes in
13
+ waves to minimize risk and enable incremental verification.
14
+ </purpose>
15
+
16
+ <phases>
17
+ 1. inventory — Catalog everything that needs to change
18
+ 2. plan — Group changes into safe waves
19
+ 3. migrate — Execute waves with verification between each
20
+ 4. verify — Full regression testing and cleanup
21
+ </phases>
22
+
23
+ <process>
24
+
25
+ ## Phase 1: Inventory
26
+
27
+ **Goal:** Know the full scope before changing anything.
28
+
29
+ 1. **Scan the codebase:** Find all instances of what needs to change
30
+ - Files, functions, types, imports, tests, docs, config
31
+ - Use grep/glob to be exhaustive — don't rely on memory
32
+ 2. **Categorize:** Group by type (source, test, config, docs)
33
+ 3. **Identify dependencies:** What order must changes happen in?
34
+ 4. **Produce:** Write `INVENTORY.md` with:
35
+ - Complete list of files/locations that need changes
36
+ - Dependency relationships
37
+ - Estimated scope (number of files, lines affected)
38
+
39
+ 5. **Gate:** Review inventory with user. Confirm nothing is missing.
40
+
41
+ ## Phase 2: Plan
42
+
43
+ **Goal:** Break the migration into safe, independently-verifiable waves.
44
+
45
+ 1. **Define waves:** Group related changes so each wave:
46
+ - Leaves the codebase in a working state
47
+ - Can be committed and tested independently
48
+ - Handles dependencies (change the definition before the consumers)
49
+ 2. **Typical wave structure:**
50
+ - Wave 1: Types/interfaces
51
+ - Wave 2: Core implementation
52
+ - Wave 3: Consumers/callers
53
+ - Wave 4: Tests
54
+ - Wave 5: Documentation and config
55
+ 3. **Produce:** Write `PLAN.md` with waves and per-wave file lists
56
+
57
+ 4. **Gate:** Confirm plan with user.
58
+
59
+ ## Phase 3: Migrate
60
+
61
+ **Goal:** Execute waves one at a time with verification between each.
62
+
63
+ 1. For each wave:
64
+ - Make the changes
65
+ - Run tests (at minimum, the build must pass)
66
+ - Commit: `refactor(<scope>): wave N — <description>`
67
+ 2. If a wave introduces failures, fix them before moving to the next wave
68
+ 3. If unexpected scope is discovered, update the inventory and plan
69
+
70
+ ## Phase 4: Verify
71
+
72
+ **Goal:** Ensure the full refactor is complete and clean.
73
+
74
+ 1. Run the complete test suite
75
+ 2. Run the build
76
+ 3. Run the linter — fix any new warnings
77
+ 4. Search for any remnants of the old pattern (grep for old names/patterns)
78
+ 5. **Produce:** Write `SUMMARY.md` with:
79
+ - What was changed and why
80
+ - Files modified (count and list)
81
+ - Any remaining follow-up items
82
+
83
+ </process>
@@ -0,0 +1,85 @@
1
+ {
2
+ "version": 1,
3
+ "templates": {
4
+ "full-project": {
5
+ "name": "Full Project",
6
+ "description": "Complete GSD workflow with roadmap, milestones, slices, and full ceremony",
7
+ "file": "full-project.md",
8
+ "phases": ["init", "discuss", "plan", "execute", "verify"],
9
+ "triggers": ["new project", "greenfield", "from scratch", "build an app", "create a new"],
10
+ "artifact_dir": ".gsd/",
11
+ "estimated_complexity": "high",
12
+ "requires_project": true
13
+ },
14
+ "bugfix": {
15
+ "name": "Bug Fix",
16
+ "description": "Triage, reproduce, fix, test, and ship a bug fix",
17
+ "file": "bugfix.md",
18
+ "phases": ["triage", "fix", "verify", "ship"],
19
+ "triggers": ["bug", "issue", "fix", "broken", "regression", "error", "crash", "failing", "github.com/*/issues/*"],
20
+ "artifact_dir": ".gsd/workflows/bugfixes/",
21
+ "estimated_complexity": "low",
22
+ "requires_project": false
23
+ },
24
+ "small-feature": {
25
+ "name": "Small Feature",
26
+ "description": "Lightweight feature development with optional discussion and research",
27
+ "file": "small-feature.md",
28
+ "phases": ["scope", "plan", "implement", "verify"],
29
+ "triggers": ["add", "feature", "implement", "build", "create", "new command", "new endpoint"],
30
+ "artifact_dir": ".gsd/workflows/features/",
31
+ "estimated_complexity": "medium",
32
+ "requires_project": false
33
+ },
34
+ "refactor": {
35
+ "name": "Refactor / Migration",
36
+ "description": "Systematic code transformation with inventory and wave-based execution",
37
+ "file": "refactor.md",
38
+ "phases": ["inventory", "plan", "migrate", "verify"],
39
+ "triggers": ["refactor", "migrate", "rename", "restructure", "move", "reorganize", "clean up"],
40
+ "artifact_dir": ".gsd/workflows/refactors/",
41
+ "estimated_complexity": "medium",
42
+ "requires_project": false
43
+ },
44
+ "spike": {
45
+ "name": "Research Spike",
46
+ "description": "Investigate a question, prototype, and document findings",
47
+ "file": "spike.md",
48
+ "phases": ["scope", "research", "synthesize"],
49
+ "triggers": ["research", "investigate", "explore", "spike", "compare", "evaluate", "should we", "what if", "how does"],
50
+ "artifact_dir": ".gsd/workflows/spikes/",
51
+ "estimated_complexity": "low",
52
+ "requires_project": false
53
+ },
54
+ "hotfix": {
55
+ "name": "Hotfix",
56
+ "description": "Minimal ceremony: fix the thing, test it, ship it",
57
+ "file": "hotfix.md",
58
+ "phases": ["fix", "ship"],
59
+ "triggers": ["hotfix", "urgent", "critical", "asap", "production down", "p0"],
60
+ "artifact_dir": null,
61
+ "estimated_complexity": "minimal",
62
+ "requires_project": false
63
+ },
64
+ "security-audit": {
65
+ "name": "Security Audit",
66
+ "description": "Scan for vulnerabilities, triage findings, remediate, and verify",
67
+ "file": "security-audit.md",
68
+ "phases": ["scan", "triage", "remediate", "re-scan"],
69
+ "triggers": ["security", "audit", "vulnerability", "owasp", "cve", "penetration", "hardening"],
70
+ "artifact_dir": ".gsd/workflows/audits/",
71
+ "estimated_complexity": "medium",
72
+ "requires_project": false
73
+ },
74
+ "dep-upgrade": {
75
+ "name": "Dependency Upgrade",
76
+ "description": "Assess impact, upgrade dependencies, fix breaking changes",
77
+ "file": "dep-upgrade.md",
78
+ "phases": ["assess", "upgrade", "fix", "verify"],
79
+ "triggers": ["upgrade", "update", "dependency", "deps", "bump", "outdated", "npm update", "renovate"],
80
+ "artifact_dir": ".gsd/workflows/upgrades/",
81
+ "estimated_complexity": "medium",
82
+ "requires_project": false
83
+ }
84
+ }
85
+ }
@@ -0,0 +1,73 @@
1
+ # Security Audit Workflow
2
+
3
+ <template_meta>
4
+ name: security-audit
5
+ version: 1
6
+ requires_project: false
7
+ artifact_dir: .gsd/workflows/audits/
8
+ </template_meta>
9
+
10
+ <purpose>
11
+ Systematic security review of the codebase. Scan for vulnerabilities, triage
12
+ findings by severity, remediate issues, and verify fixes. Covers OWASP Top 10,
13
+ dependency vulnerabilities, and project-specific security concerns.
14
+ </purpose>
15
+
16
+ <phases>
17
+ 1. scan — Identify potential vulnerabilities
18
+ 2. triage — Prioritize findings by severity and exploitability
19
+ 3. remediate — Fix critical and high-severity issues
20
+ 4. re-scan — Verify fixes and document remaining items
21
+ </phases>
22
+
23
+ <process>
24
+
25
+ ## Phase 1: Scan
26
+
27
+ **Goal:** Identify potential security issues across the codebase.
28
+
29
+ 1. **Dependency audit:** Run `npm audit` / `pip audit` / equivalent
30
+ 2. **Code review for common vulnerabilities:**
31
+ - Injection (SQL, command, XSS)
32
+ - Authentication/authorization flaws
33
+ - Sensitive data exposure (hardcoded secrets, logs)
34
+ - Insecure configuration
35
+ - Missing input validation at boundaries
36
+ 3. **Check security headers and CORS** (if web application)
37
+ 4. **Review secrets management:** .env files, config, environment variables
38
+ 5. **Produce:** Write `SCAN-RESULTS.md` with all findings
39
+
40
+ ## Phase 2: Triage
41
+
42
+ **Goal:** Prioritize what to fix now vs later.
43
+
44
+ 1. **Rate each finding:**
45
+ - Critical: exploitable, high impact, fix immediately
46
+ - High: likely exploitable, fix in this workflow
47
+ - Medium: lower risk, fix if time allows
48
+ - Low: informational, document for later
49
+ 2. **Assess exploitability:** Is this theoretical or practically exploitable?
50
+ 3. **Produce:** Update `SCAN-RESULTS.md` with severity ratings and triage decisions
51
+
52
+ 4. **Gate:** Review triage with user. Agree on what to remediate now.
53
+
54
+ ## Phase 3: Remediate
55
+
56
+ **Goal:** Fix critical and high-severity issues.
57
+
58
+ 1. Fix each issue with proper testing
59
+ 2. Commit each fix individually: `fix(security): <description>`
60
+ 3. Don't introduce new functionality — security fixes only
61
+
62
+ ## Phase 4: Re-scan
63
+
64
+ **Goal:** Verify fixes and document the final state.
65
+
66
+ 1. Re-run the scans from Phase 1
67
+ 2. Verify all targeted issues are resolved
68
+ 3. **Produce:** Write `AUDIT-REPORT.md` with:
69
+ - Summary of findings and fixes
70
+ - Remaining medium/low items for future attention
71
+ - Recommendations for ongoing security practices
72
+
73
+ </process>
@@ -0,0 +1,81 @@
1
+ # Small Feature Workflow
2
+
3
+ <template_meta>
4
+ name: small-feature
5
+ version: 1
6
+ requires_project: false
7
+ artifact_dir: .gsd/workflows/features/
8
+ </template_meta>
9
+
10
+ <purpose>
11
+ Build a small-to-medium feature with lightweight planning. Designed for work that
12
+ needs more structure than /gsd quick but doesn't warrant full milestone ceremony.
13
+ Typical scope: a new command, endpoint, component, or module.
14
+ </purpose>
15
+
16
+ <phases>
17
+ 1. scope — Define what we're building and confirm boundaries
18
+ 2. plan — Break into 2-5 implementable tasks
19
+ 3. implement — Execute the plan with atomic commits
20
+ 4. verify — Run tests, build, and validate
21
+ </phases>
22
+
23
+ <process>
24
+
25
+ ## Phase 1: Scope
26
+
27
+ **Goal:** Align on what to build and what's out of scope.
28
+
29
+ 1. **Understand the request:** Clarify the feature's purpose and user-facing behavior
30
+ 2. **Identify gray areas:** Surface 3-4 design decisions that need answers:
31
+ - API shape / interface design
32
+ - Where in the codebase this fits
33
+ - What existing patterns to follow
34
+ - Edge cases to handle (or explicitly skip)
35
+ 3. **Define boundaries:** What's in scope vs out of scope for this workflow
36
+ 4. **Produce:** Write a brief `CONTEXT.md` in the artifact directory with:
37
+ - Feature description
38
+ - Key decisions made
39
+ - Scope boundaries
40
+
41
+ 5. **Gate:** Confirm scope with user before planning.
42
+
43
+ ## Phase 2: Plan
44
+
45
+ **Goal:** Create a clear, executable plan.
46
+
47
+ 1. **Research (if needed):** Read relevant existing code to understand patterns
48
+ 2. **Break into tasks:** 2-5 tasks, each independently committable:
49
+ - Each task should take ~10-30 minutes of AI work
50
+ - Include file paths and specific changes
51
+ - Include verification steps per task
52
+ 3. **Produce:** Write `PLAN.md` in the artifact directory
53
+
54
+ 4. **Gate:** Present plan to user for approval. Adjust if needed.
55
+
56
+ ## Phase 3: Implement
57
+
58
+ **Goal:** Build the feature following the plan.
59
+
60
+ 1. Execute tasks in order
61
+ 2. After each task:
62
+ - Verify the specific task's acceptance criteria
63
+ - Commit with message: `feat(<scope>): <description>`
64
+ 3. If a task reveals the plan needs adjustment, note the deviation and adapt
65
+ 4. Run incremental tests as you go (don't wait until the end)
66
+
67
+ ## Phase 4: Verify
68
+
69
+ **Goal:** Ensure everything works together.
70
+
71
+ 1. Run the full test suite
72
+ 2. Run the build
73
+ 3. Run the linter
74
+ 4. Manual smoke check if applicable
75
+ 5. **Produce:** Write a brief `SUMMARY.md` with:
76
+ - What was built
77
+ - Files changed
78
+ - How to test/use the feature
79
+ 6. Present summary to user
80
+
81
+ </process>
@@ -0,0 +1,69 @@
1
+ # Research Spike Workflow
2
+
3
+ <template_meta>
4
+ name: spike
5
+ version: 1
6
+ requires_project: false
7
+ artifact_dir: .gsd/workflows/spikes/
8
+ </template_meta>
9
+
10
+ <purpose>
11
+ Investigate a question, evaluate options, prototype if needed, and produce a
12
+ clear recommendation. No production code is shipped — the output is knowledge.
13
+ Use for: technology evaluation, architecture decisions, "should we X?" questions.
14
+ </purpose>
15
+
16
+ <phases>
17
+ 1. scope — Define the question and success criteria
18
+ 2. research — Investigate from multiple angles
19
+ 3. synthesize — Combine findings into a recommendation
20
+ </phases>
21
+
22
+ <process>
23
+
24
+ ## Phase 1: Scope
25
+
26
+ **Goal:** Define exactly what we're investigating and what a good answer looks like.
27
+
28
+ 1. **Frame the question:** What specific question(s) need answering?
29
+ 2. **Define success criteria:** What would a useful answer include?
30
+ - Comparison criteria (performance, DX, maintenance, ecosystem, etc.)
31
+ - Constraints (must integrate with X, must support Y)
32
+ - Decision format (go/no-go, pick from options, tradeoff matrix)
33
+ 3. **Identify research angles:** 2-3 distinct approaches to investigate:
34
+ - e.g., "evaluate library A", "evaluate library B", "evaluate building our own"
35
+ - e.g., "performance implications", "DX implications", "migration path"
36
+ 4. **Produce:** Write `SCOPE.md` in the artifact directory
37
+
38
+ 5. **Gate:** Confirm scope and research angles with user.
39
+
40
+ ## Phase 2: Research
41
+
42
+ **Goal:** Investigate each angle thoroughly.
43
+
44
+ 1. For each research angle:
45
+ - Search for relevant documentation, benchmarks, comparisons
46
+ - Read relevant source code in the project
47
+ - Build small prototypes or proof-of-concepts if needed
48
+ - Note pros, cons, risks, and unknowns
49
+ 2. **Produce:** Write a research doc per angle in `research/` subdirectory:
50
+ - `research/ANGLE-1.md`, `research/ANGLE-2.md`, etc.
51
+ - Each doc: findings, evidence, pros/cons, confidence level
52
+
53
+ ## Phase 3: Synthesize
54
+
55
+ **Goal:** Combine findings into a clear recommendation.
56
+
57
+ 1. **Compare across angles:** Build a comparison matrix or summary table
58
+ 2. **Make a recommendation:** Based on the evidence, what should we do?
59
+ - Primary recommendation with rationale
60
+ - Alternative if the primary doesn't work out
61
+ - What would change the recommendation (risk factors)
62
+ 3. **Produce:** Write `RECOMMENDATION.md` with:
63
+ - Executive summary (1-2 paragraphs)
64
+ - Comparison matrix
65
+ - Recommendation with rationale
66
+ - Next steps if the recommendation is accepted
67
+ 4. **Present** the recommendation to the user for discussion
68
+
69
+ </process>