gsd-remix 1.0.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 (554) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +939 -0
  3. package/README.zh-CN.md +876 -0
  4. package/agents/gsd-advisor-researcher.md +127 -0
  5. package/agents/gsd-ai-researcher.md +133 -0
  6. package/agents/gsd-assumptions-analyzer.md +105 -0
  7. package/agents/gsd-code-fixer.md +517 -0
  8. package/agents/gsd-code-reviewer.md +371 -0
  9. package/agents/gsd-codebase-mapper.md +781 -0
  10. package/agents/gsd-debug-session-manager.md +314 -0
  11. package/agents/gsd-debugger.md +1452 -0
  12. package/agents/gsd-doc-classifier.md +168 -0
  13. package/agents/gsd-doc-synthesizer.md +204 -0
  14. package/agents/gsd-doc-verifier.md +217 -0
  15. package/agents/gsd-doc-writer.md +615 -0
  16. package/agents/gsd-domain-researcher.md +153 -0
  17. package/agents/gsd-eval-auditor.md +191 -0
  18. package/agents/gsd-eval-planner.md +154 -0
  19. package/agents/gsd-executor.md +603 -0
  20. package/agents/gsd-framework-selector.md +160 -0
  21. package/agents/gsd-integration-checker.md +470 -0
  22. package/agents/gsd-intel-updater.md +334 -0
  23. package/agents/gsd-nyquist-auditor.md +203 -0
  24. package/agents/gsd-pattern-mapper.md +335 -0
  25. package/agents/gsd-phase-researcher.md +841 -0
  26. package/agents/gsd-plan-checker.md +978 -0
  27. package/agents/gsd-planner.md +1251 -0
  28. package/agents/gsd-project-researcher.md +677 -0
  29. package/agents/gsd-research-synthesizer.md +247 -0
  30. package/agents/gsd-roadmapper.md +688 -0
  31. package/agents/gsd-security-auditor.md +155 -0
  32. package/agents/gsd-ui-auditor.md +495 -0
  33. package/agents/gsd-ui-checker.md +309 -0
  34. package/agents/gsd-ui-researcher.md +380 -0
  35. package/agents/gsd-user-profiler.md +171 -0
  36. package/agents/gsd-verifier.md +830 -0
  37. package/bin/install.js +7062 -0
  38. package/commands/gsd/add-backlog.md +79 -0
  39. package/commands/gsd/add-phase.md +43 -0
  40. package/commands/gsd/add-tests.md +41 -0
  41. package/commands/gsd/add-todo.md +47 -0
  42. package/commands/gsd/ai-integration-phase.md +36 -0
  43. package/commands/gsd/analyze-dependencies.md +34 -0
  44. package/commands/gsd/audit-fix.md +33 -0
  45. package/commands/gsd/audit-milestone.md +36 -0
  46. package/commands/gsd/audit-uat.md +24 -0
  47. package/commands/gsd/autonomous.md +46 -0
  48. package/commands/gsd/check-todos.md +45 -0
  49. package/commands/gsd/cleanup.md +23 -0
  50. package/commands/gsd/code-review-fix.md +52 -0
  51. package/commands/gsd/code-review.md +55 -0
  52. package/commands/gsd/complete-milestone.md +136 -0
  53. package/commands/gsd/debug.md +263 -0
  54. package/commands/gsd/discuss-phase.md +69 -0
  55. package/commands/gsd/do.md +30 -0
  56. package/commands/gsd/docs-update.md +48 -0
  57. package/commands/gsd/eval-review.md +32 -0
  58. package/commands/gsd/execute-phase.md +63 -0
  59. package/commands/gsd/explore.md +27 -0
  60. package/commands/gsd/extract_learnings.md +22 -0
  61. package/commands/gsd/fast.md +30 -0
  62. package/commands/gsd/forensics.md +56 -0
  63. package/commands/gsd/from-gsd2.md +47 -0
  64. package/commands/gsd/graphify.md +201 -0
  65. package/commands/gsd/health.md +22 -0
  66. package/commands/gsd/help.md +24 -0
  67. package/commands/gsd/import.md +37 -0
  68. package/commands/gsd/inbox.md +38 -0
  69. package/commands/gsd/ingest-docs.md +42 -0
  70. package/commands/gsd/insert-phase.md +32 -0
  71. package/commands/gsd/intel.md +179 -0
  72. package/commands/gsd/join-discord.md +19 -0
  73. package/commands/gsd/list-phase-assumptions.md +46 -0
  74. package/commands/gsd/list-workspaces.md +19 -0
  75. package/commands/gsd/manager.md +40 -0
  76. package/commands/gsd/map-codebase.md +71 -0
  77. package/commands/gsd/milestone-summary.md +51 -0
  78. package/commands/gsd/new-milestone.md +44 -0
  79. package/commands/gsd/new-project.md +46 -0
  80. package/commands/gsd/new-workspace.md +44 -0
  81. package/commands/gsd/next.md +28 -0
  82. package/commands/gsd/note.md +34 -0
  83. package/commands/gsd/pause-work.md +38 -0
  84. package/commands/gsd/plan-milestone-gaps.md +34 -0
  85. package/commands/gsd/plan-phase.md +52 -0
  86. package/commands/gsd/plan-review-convergence.md +52 -0
  87. package/commands/gsd/plant-seed.md +28 -0
  88. package/commands/gsd/pr-branch.md +25 -0
  89. package/commands/gsd/profile-user.md +46 -0
  90. package/commands/gsd/progress.md +25 -0
  91. package/commands/gsd/quick.md +173 -0
  92. package/commands/gsd/reapply-patches.md +331 -0
  93. package/commands/gsd/remove-phase.md +31 -0
  94. package/commands/gsd/remove-workspace.md +26 -0
  95. package/commands/gsd/research-phase.md +195 -0
  96. package/commands/gsd/resume-work.md +40 -0
  97. package/commands/gsd/review-backlog.md +62 -0
  98. package/commands/gsd/review.md +40 -0
  99. package/commands/gsd/scan.md +26 -0
  100. package/commands/gsd/secure-phase.md +35 -0
  101. package/commands/gsd/session-report.md +19 -0
  102. package/commands/gsd/set-profile.md +12 -0
  103. package/commands/gsd/settings.md +36 -0
  104. package/commands/gsd/ship.md +23 -0
  105. package/commands/gsd/sketch-wrap-up.md +31 -0
  106. package/commands/gsd/sketch.md +49 -0
  107. package/commands/gsd/spec-phase.md +62 -0
  108. package/commands/gsd/spike-wrap-up.md +31 -0
  109. package/commands/gsd/spike.md +46 -0
  110. package/commands/gsd/stats.md +18 -0
  111. package/commands/gsd/sync-skills.md +19 -0
  112. package/commands/gsd/thread.md +227 -0
  113. package/commands/gsd/ui-phase.md +34 -0
  114. package/commands/gsd/ui-review.md +32 -0
  115. package/commands/gsd/ultraplan-phase.md +33 -0
  116. package/commands/gsd/undo.md +34 -0
  117. package/commands/gsd/update.md +37 -0
  118. package/commands/gsd/validate-phase.md +35 -0
  119. package/commands/gsd/verify-work.md +38 -0
  120. package/commands/gsd/workstreams.md +69 -0
  121. package/get-shit-done/bin/gsd-tools.cjs +1263 -0
  122. package/get-shit-done/bin/lib/artifacts.cjs +52 -0
  123. package/get-shit-done/bin/lib/audit.cjs +757 -0
  124. package/get-shit-done/bin/lib/commands.cjs +1023 -0
  125. package/get-shit-done/bin/lib/config-schema.cjs +79 -0
  126. package/get-shit-done/bin/lib/config.cjs +463 -0
  127. package/get-shit-done/bin/lib/core.cjs +1794 -0
  128. package/get-shit-done/bin/lib/docs.cjs +267 -0
  129. package/get-shit-done/bin/lib/frontmatter.cjs +379 -0
  130. package/get-shit-done/bin/lib/graphify.cjs +494 -0
  131. package/get-shit-done/bin/lib/gsd2-import.cjs +511 -0
  132. package/get-shit-done/bin/lib/init.cjs +1878 -0
  133. package/get-shit-done/bin/lib/intel.cjs +639 -0
  134. package/get-shit-done/bin/lib/learnings.cjs +378 -0
  135. package/get-shit-done/bin/lib/milestone.cjs +283 -0
  136. package/get-shit-done/bin/lib/model-profiles.cjs +71 -0
  137. package/get-shit-done/bin/lib/phase.cjs +1058 -0
  138. package/get-shit-done/bin/lib/profile-output.cjs +1080 -0
  139. package/get-shit-done/bin/lib/profile-pipeline.cjs +539 -0
  140. package/get-shit-done/bin/lib/roadmap.cjs +523 -0
  141. package/get-shit-done/bin/lib/schema-detect.cjs +238 -0
  142. package/get-shit-done/bin/lib/security.cjs +504 -0
  143. package/get-shit-done/bin/lib/state.cjs +1649 -0
  144. package/get-shit-done/bin/lib/template.cjs +226 -0
  145. package/get-shit-done/bin/lib/uat.cjs +288 -0
  146. package/get-shit-done/bin/lib/verify.cjs +1184 -0
  147. package/get-shit-done/bin/lib/workstream.cjs +495 -0
  148. package/get-shit-done/bin/repair-sdk.cjs +177 -0
  149. package/get-shit-done/contexts/dev.md +21 -0
  150. package/get-shit-done/contexts/research.md +22 -0
  151. package/get-shit-done/contexts/review.md +22 -0
  152. package/get-shit-done/references/agent-contracts.md +79 -0
  153. package/get-shit-done/references/ai-evals.md +156 -0
  154. package/get-shit-done/references/ai-frameworks.md +186 -0
  155. package/get-shit-done/references/artifact-types.md +131 -0
  156. package/get-shit-done/references/autonomous-smart-discuss.md +277 -0
  157. package/get-shit-done/references/checkpoints.md +808 -0
  158. package/get-shit-done/references/common-bug-patterns.md +114 -0
  159. package/get-shit-done/references/context-budget.md +49 -0
  160. package/get-shit-done/references/continuation-format.md +253 -0
  161. package/get-shit-done/references/debugger-philosophy.md +76 -0
  162. package/get-shit-done/references/decimal-phase-calculation.md +64 -0
  163. package/get-shit-done/references/doc-conflict-engine.md +91 -0
  164. package/get-shit-done/references/domain-probes.md +125 -0
  165. package/get-shit-done/references/executor-examples.md +110 -0
  166. package/get-shit-done/references/few-shot-examples/plan-checker.md +73 -0
  167. package/get-shit-done/references/few-shot-examples/verifier.md +109 -0
  168. package/get-shit-done/references/gate-prompts.md +100 -0
  169. package/get-shit-done/references/gates.md +70 -0
  170. package/get-shit-done/references/git-integration.md +295 -0
  171. package/get-shit-done/references/git-planning-commit.md +40 -0
  172. package/get-shit-done/references/ios-scaffold.md +123 -0
  173. package/get-shit-done/references/mandatory-initial-read.md +2 -0
  174. package/get-shit-done/references/model-profile-resolution.md +38 -0
  175. package/get-shit-done/references/model-profiles.md +145 -0
  176. package/get-shit-done/references/phase-argument-parsing.md +61 -0
  177. package/get-shit-done/references/planner-antipatterns.md +89 -0
  178. package/get-shit-done/references/planner-gap-closure.md +62 -0
  179. package/get-shit-done/references/planner-reviews.md +39 -0
  180. package/get-shit-done/references/planner-revision.md +87 -0
  181. package/get-shit-done/references/planner-source-audit.md +73 -0
  182. package/get-shit-done/references/planning-config.md +460 -0
  183. package/get-shit-done/references/project-skills-discovery.md +19 -0
  184. package/get-shit-done/references/questioning.md +162 -0
  185. package/get-shit-done/references/revision-loop.md +97 -0
  186. package/get-shit-done/references/sketch-interactivity.md +41 -0
  187. package/get-shit-done/references/sketch-theme-system.md +94 -0
  188. package/get-shit-done/references/sketch-tooling.md +45 -0
  189. package/get-shit-done/references/sketch-variant-patterns.md +81 -0
  190. package/get-shit-done/references/tdd.md +330 -0
  191. package/get-shit-done/references/thinking-models-debug.md +44 -0
  192. package/get-shit-done/references/thinking-models-execution.md +50 -0
  193. package/get-shit-done/references/thinking-models-planning.md +62 -0
  194. package/get-shit-done/references/thinking-models-research.md +50 -0
  195. package/get-shit-done/references/thinking-models-verification.md +55 -0
  196. package/get-shit-done/references/thinking-partner.md +96 -0
  197. package/get-shit-done/references/ui-brand.md +160 -0
  198. package/get-shit-done/references/universal-anti-patterns.md +63 -0
  199. package/get-shit-done/references/user-profiling.md +681 -0
  200. package/get-shit-done/references/verification-overrides.md +227 -0
  201. package/get-shit-done/references/verification-patterns.md +612 -0
  202. package/get-shit-done/references/workstream-flag.md +111 -0
  203. package/get-shit-done/templates/AI-SPEC.md +246 -0
  204. package/get-shit-done/templates/DEBUG.md +169 -0
  205. package/get-shit-done/templates/README.md +76 -0
  206. package/get-shit-done/templates/SECURITY.md +61 -0
  207. package/get-shit-done/templates/UAT.md +265 -0
  208. package/get-shit-done/templates/UI-SPEC.md +100 -0
  209. package/get-shit-done/templates/VALIDATION.md +76 -0
  210. package/get-shit-done/templates/claude-md.md +145 -0
  211. package/get-shit-done/templates/codebase/architecture.md +255 -0
  212. package/get-shit-done/templates/codebase/concerns.md +310 -0
  213. package/get-shit-done/templates/codebase/conventions.md +307 -0
  214. package/get-shit-done/templates/codebase/integrations.md +280 -0
  215. package/get-shit-done/templates/codebase/stack.md +186 -0
  216. package/get-shit-done/templates/codebase/structure.md +285 -0
  217. package/get-shit-done/templates/codebase/testing.md +480 -0
  218. package/get-shit-done/templates/config.json +56 -0
  219. package/get-shit-done/templates/context.md +352 -0
  220. package/get-shit-done/templates/continue-here.md +78 -0
  221. package/get-shit-done/templates/copilot-instructions.md +7 -0
  222. package/get-shit-done/templates/debug-subagent-prompt.md +91 -0
  223. package/get-shit-done/templates/dev-preferences.md +21 -0
  224. package/get-shit-done/templates/discovery.md +146 -0
  225. package/get-shit-done/templates/discussion-log.md +63 -0
  226. package/get-shit-done/templates/milestone-archive.md +123 -0
  227. package/get-shit-done/templates/milestone.md +115 -0
  228. package/get-shit-done/templates/phase-prompt.md +610 -0
  229. package/get-shit-done/templates/planner-subagent-prompt.md +117 -0
  230. package/get-shit-done/templates/project.md +186 -0
  231. package/get-shit-done/templates/requirements.md +231 -0
  232. package/get-shit-done/templates/research-project/ARCHITECTURE.md +204 -0
  233. package/get-shit-done/templates/research-project/FEATURES.md +147 -0
  234. package/get-shit-done/templates/research-project/PITFALLS.md +200 -0
  235. package/get-shit-done/templates/research-project/STACK.md +120 -0
  236. package/get-shit-done/templates/research-project/SUMMARY.md +170 -0
  237. package/get-shit-done/templates/research.md +592 -0
  238. package/get-shit-done/templates/retrospective.md +54 -0
  239. package/get-shit-done/templates/roadmap.md +202 -0
  240. package/get-shit-done/templates/spec.md +307 -0
  241. package/get-shit-done/templates/state.md +184 -0
  242. package/get-shit-done/templates/summary-complex.md +59 -0
  243. package/get-shit-done/templates/summary-minimal.md +41 -0
  244. package/get-shit-done/templates/summary-standard.md +48 -0
  245. package/get-shit-done/templates/summary.md +248 -0
  246. package/get-shit-done/templates/user-profile.md +146 -0
  247. package/get-shit-done/templates/user-setup.md +311 -0
  248. package/get-shit-done/templates/verification-report.md +322 -0
  249. package/get-shit-done/workflows/add-phase.md +112 -0
  250. package/get-shit-done/workflows/add-tests.md +354 -0
  251. package/get-shit-done/workflows/add-todo.md +160 -0
  252. package/get-shit-done/workflows/ai-integration-phase.md +284 -0
  253. package/get-shit-done/workflows/analyze-dependencies.md +96 -0
  254. package/get-shit-done/workflows/audit-fix.md +175 -0
  255. package/get-shit-done/workflows/audit-milestone.md +340 -0
  256. package/get-shit-done/workflows/audit-uat.md +109 -0
  257. package/get-shit-done/workflows/autonomous.md +789 -0
  258. package/get-shit-done/workflows/check-todos.md +179 -0
  259. package/get-shit-done/workflows/cleanup.md +154 -0
  260. package/get-shit-done/workflows/code-review-fix.md +497 -0
  261. package/get-shit-done/workflows/code-review.md +515 -0
  262. package/get-shit-done/workflows/complete-milestone.md +847 -0
  263. package/get-shit-done/workflows/diagnose-issues.md +238 -0
  264. package/get-shit-done/workflows/discovery-phase.md +291 -0
  265. package/get-shit-done/workflows/discuss-phase-assumptions.md +670 -0
  266. package/get-shit-done/workflows/discuss-phase-power.md +308 -0
  267. package/get-shit-done/workflows/discuss-phase.md +1378 -0
  268. package/get-shit-done/workflows/do.md +110 -0
  269. package/get-shit-done/workflows/docs-update.md +1155 -0
  270. package/get-shit-done/workflows/eval-review.md +155 -0
  271. package/get-shit-done/workflows/execute-phase.md +1677 -0
  272. package/get-shit-done/workflows/execute-plan.md +533 -0
  273. package/get-shit-done/workflows/explore.md +141 -0
  274. package/get-shit-done/workflows/extract_learnings.md +242 -0
  275. package/get-shit-done/workflows/fast.md +105 -0
  276. package/get-shit-done/workflows/forensics.md +265 -0
  277. package/get-shit-done/workflows/graduation.md +195 -0
  278. package/get-shit-done/workflows/health.md +314 -0
  279. package/get-shit-done/workflows/help.md +667 -0
  280. package/get-shit-done/workflows/import.md +246 -0
  281. package/get-shit-done/workflows/inbox.md +387 -0
  282. package/get-shit-done/workflows/ingest-docs.md +328 -0
  283. package/get-shit-done/workflows/insert-phase.md +130 -0
  284. package/get-shit-done/workflows/list-phase-assumptions.md +178 -0
  285. package/get-shit-done/workflows/list-workspaces.md +56 -0
  286. package/get-shit-done/workflows/manager.md +365 -0
  287. package/get-shit-done/workflows/map-codebase.md +393 -0
  288. package/get-shit-done/workflows/milestone-summary.md +223 -0
  289. package/get-shit-done/workflows/new-milestone.md +611 -0
  290. package/get-shit-done/workflows/new-project.md +1391 -0
  291. package/get-shit-done/workflows/new-workspace.md +239 -0
  292. package/get-shit-done/workflows/next.md +220 -0
  293. package/get-shit-done/workflows/node-repair.md +92 -0
  294. package/get-shit-done/workflows/note.md +158 -0
  295. package/get-shit-done/workflows/pause-work.md +243 -0
  296. package/get-shit-done/workflows/plan-milestone-gaps.md +273 -0
  297. package/get-shit-done/workflows/plan-phase.md +1349 -0
  298. package/get-shit-done/workflows/plan-review-convergence.md +254 -0
  299. package/get-shit-done/workflows/plant-seed.md +172 -0
  300. package/get-shit-done/workflows/pr-branch.md +157 -0
  301. package/get-shit-done/workflows/profile-user.md +452 -0
  302. package/get-shit-done/workflows/progress.md +619 -0
  303. package/get-shit-done/workflows/quick.md +970 -0
  304. package/get-shit-done/workflows/remove-phase.md +155 -0
  305. package/get-shit-done/workflows/remove-workspace.md +92 -0
  306. package/get-shit-done/workflows/research-phase.md +89 -0
  307. package/get-shit-done/workflows/resume-project.md +326 -0
  308. package/get-shit-done/workflows/review.md +344 -0
  309. package/get-shit-done/workflows/scan.md +102 -0
  310. package/get-shit-done/workflows/secure-phase.md +166 -0
  311. package/get-shit-done/workflows/session-report.md +146 -0
  312. package/get-shit-done/workflows/settings.md +319 -0
  313. package/get-shit-done/workflows/ship.md +302 -0
  314. package/get-shit-done/workflows/sketch-wrap-up.md +283 -0
  315. package/get-shit-done/workflows/sketch.md +286 -0
  316. package/get-shit-done/workflows/spec-phase.md +262 -0
  317. package/get-shit-done/workflows/spike-wrap-up.md +281 -0
  318. package/get-shit-done/workflows/spike.md +362 -0
  319. package/get-shit-done/workflows/stats.md +60 -0
  320. package/get-shit-done/workflows/sync-skills.md +182 -0
  321. package/get-shit-done/workflows/transition.md +693 -0
  322. package/get-shit-done/workflows/ui-phase.md +323 -0
  323. package/get-shit-done/workflows/ui-review.md +190 -0
  324. package/get-shit-done/workflows/ultraplan-phase.md +189 -0
  325. package/get-shit-done/workflows/undo.md +314 -0
  326. package/get-shit-done/workflows/update.md +587 -0
  327. package/get-shit-done/workflows/validate-phase.md +176 -0
  328. package/get-shit-done/workflows/verify-phase.md +465 -0
  329. package/get-shit-done/workflows/verify-work.md +740 -0
  330. package/hooks/dist/gsd-check-update-worker.js +108 -0
  331. package/hooks/dist/gsd-check-update.js +64 -0
  332. package/hooks/dist/gsd-context-monitor.js +192 -0
  333. package/hooks/dist/gsd-phase-boundary.sh +28 -0
  334. package/hooks/dist/gsd-prompt-guard.js +97 -0
  335. package/hooks/dist/gsd-read-guard.js +82 -0
  336. package/hooks/dist/gsd-read-injection-scanner.js +152 -0
  337. package/hooks/dist/gsd-session-state.sh +34 -0
  338. package/hooks/dist/gsd-statusline.js +293 -0
  339. package/hooks/dist/gsd-validate-commit.sh +48 -0
  340. package/hooks/dist/gsd-workflow-guard.js +94 -0
  341. package/hooks/gsd-check-update-worker.js +108 -0
  342. package/hooks/gsd-check-update.js +64 -0
  343. package/hooks/gsd-context-monitor.js +192 -0
  344. package/hooks/gsd-phase-boundary.sh +28 -0
  345. package/hooks/gsd-prompt-guard.js +97 -0
  346. package/hooks/gsd-read-guard.js +82 -0
  347. package/hooks/gsd-read-injection-scanner.js +152 -0
  348. package/hooks/gsd-session-state.sh +34 -0
  349. package/hooks/gsd-statusline.js +293 -0
  350. package/hooks/gsd-validate-commit.sh +48 -0
  351. package/hooks/gsd-workflow-guard.js +94 -0
  352. package/package.json +59 -0
  353. package/scripts/base64-scan.sh +262 -0
  354. package/scripts/build-hooks.js +95 -0
  355. package/scripts/gen-inventory-manifest.cjs +109 -0
  356. package/scripts/prompt-injection-scan.sh +201 -0
  357. package/scripts/run-tests.cjs +33 -0
  358. package/scripts/secret-scan.sh +227 -0
  359. package/sdk/package-lock.json +1998 -0
  360. package/sdk/package.json +52 -0
  361. package/sdk/prompts/agents/gsd-executor.md +110 -0
  362. package/sdk/prompts/agents/gsd-phase-researcher.md +158 -0
  363. package/sdk/prompts/agents/gsd-plan-checker.md +160 -0
  364. package/sdk/prompts/agents/gsd-planner.md +214 -0
  365. package/sdk/prompts/agents/gsd-project-researcher.md +323 -0
  366. package/sdk/prompts/agents/gsd-research-synthesizer.md +237 -0
  367. package/sdk/prompts/agents/gsd-roadmapper.md +670 -0
  368. package/sdk/prompts/agents/gsd-verifier.md +159 -0
  369. package/sdk/prompts/templates/project.md +186 -0
  370. package/sdk/prompts/templates/requirements.md +231 -0
  371. package/sdk/prompts/templates/research-project/ARCHITECTURE.md +204 -0
  372. package/sdk/prompts/templates/research-project/FEATURES.md +147 -0
  373. package/sdk/prompts/templates/research-project/PITFALLS.md +200 -0
  374. package/sdk/prompts/templates/research-project/STACK.md +120 -0
  375. package/sdk/prompts/templates/research-project/SUMMARY.md +170 -0
  376. package/sdk/prompts/templates/roadmap.md +202 -0
  377. package/sdk/prompts/templates/state.md +175 -0
  378. package/sdk/prompts/workflows/discuss-phase.md +126 -0
  379. package/sdk/prompts/workflows/execute-plan.md +106 -0
  380. package/sdk/prompts/workflows/plan-phase.md +84 -0
  381. package/sdk/prompts/workflows/research-phase.md +45 -0
  382. package/sdk/prompts/workflows/verify-phase.md +142 -0
  383. package/sdk/src/assembled-prompts.test.ts +349 -0
  384. package/sdk/src/cli-transport.test.ts +388 -0
  385. package/sdk/src/cli-transport.ts +130 -0
  386. package/sdk/src/cli.test.ts +383 -0
  387. package/sdk/src/cli.ts +670 -0
  388. package/sdk/src/config.test.ts +168 -0
  389. package/sdk/src/config.ts +177 -0
  390. package/sdk/src/context-engine.test.ts +295 -0
  391. package/sdk/src/context-engine.ts +170 -0
  392. package/sdk/src/context-truncation.test.ts +163 -0
  393. package/sdk/src/context-truncation.ts +233 -0
  394. package/sdk/src/e2e.integration.test.ts +178 -0
  395. package/sdk/src/errors.ts +72 -0
  396. package/sdk/src/event-stream.test.ts +661 -0
  397. package/sdk/src/event-stream.ts +441 -0
  398. package/sdk/src/failure-memory.test.ts +457 -0
  399. package/sdk/src/failure-memory.ts +1324 -0
  400. package/sdk/src/golden/capture.ts +95 -0
  401. package/sdk/src/golden/fixtures/generate-slug.golden.json +1 -0
  402. package/sdk/src/golden/fixtures/profile-sample-sessions/demo-project/sample.jsonl +3 -0
  403. package/sdk/src/golden/fixtures/summary-extract-sample.md +26 -0
  404. package/sdk/src/golden/fixtures/uat-render-checkpoint-sample.md +15 -0
  405. package/sdk/src/golden/golden-integration-covered.ts +30 -0
  406. package/sdk/src/golden/golden-mutation-covered.ts +7 -0
  407. package/sdk/src/golden/golden-policy.test.ts +8 -0
  408. package/sdk/src/golden/golden-policy.ts +112 -0
  409. package/sdk/src/golden/golden.integration.test.ts +373 -0
  410. package/sdk/src/golden/init-golden-normalize.ts +15 -0
  411. package/sdk/src/golden/read-only-golden-rows.ts +77 -0
  412. package/sdk/src/golden/read-only-parity.integration.test.ts +125 -0
  413. package/sdk/src/golden/registry-canonical-commands.ts +31 -0
  414. package/sdk/src/gsd-tools.test.ts +409 -0
  415. package/sdk/src/gsd-tools.ts +595 -0
  416. package/sdk/src/headless-prompts.test.ts +159 -0
  417. package/sdk/src/index.ts +333 -0
  418. package/sdk/src/init-e2e.integration.test.ts +136 -0
  419. package/sdk/src/init-runner.test.ts +783 -0
  420. package/sdk/src/init-runner.ts +735 -0
  421. package/sdk/src/lifecycle-e2e.integration.test.ts +258 -0
  422. package/sdk/src/logger.test.ts +149 -0
  423. package/sdk/src/logger.ts +113 -0
  424. package/sdk/src/milestone-runner.test.ts +421 -0
  425. package/sdk/src/phase-prompt.test.ts +538 -0
  426. package/sdk/src/phase-prompt.ts +264 -0
  427. package/sdk/src/phase-runner-types.test.ts +421 -0
  428. package/sdk/src/phase-runner.integration.test.ts +377 -0
  429. package/sdk/src/phase-runner.test.ts +2333 -0
  430. package/sdk/src/phase-runner.ts +1203 -0
  431. package/sdk/src/plan-parser.test.ts +528 -0
  432. package/sdk/src/plan-parser.ts +427 -0
  433. package/sdk/src/prompt-builder.test.ts +306 -0
  434. package/sdk/src/prompt-builder.ts +193 -0
  435. package/sdk/src/prompt-sanitizer.test.ts +260 -0
  436. package/sdk/src/prompt-sanitizer.ts +71 -0
  437. package/sdk/src/query/QUERY-HANDLERS.md +317 -0
  438. package/sdk/src/query/audit-open.ts +722 -0
  439. package/sdk/src/query/check-auto-mode.test.ts +77 -0
  440. package/sdk/src/query/check-auto-mode.ts +50 -0
  441. package/sdk/src/query/check-completion.test.ts +113 -0
  442. package/sdk/src/query/check-completion.ts +182 -0
  443. package/sdk/src/query/check-gates.test.ts +103 -0
  444. package/sdk/src/query/check-gates.ts +112 -0
  445. package/sdk/src/query/check-ship-ready.test.ts +77 -0
  446. package/sdk/src/query/check-ship-ready.ts +103 -0
  447. package/sdk/src/query/check-verification-status.test.ts +143 -0
  448. package/sdk/src/query/check-verification-status.ts +160 -0
  449. package/sdk/src/query/commit.test.ts +202 -0
  450. package/sdk/src/query/commit.ts +301 -0
  451. package/sdk/src/query/config-gates.test.ts +89 -0
  452. package/sdk/src/query/config-gates.ts +69 -0
  453. package/sdk/src/query/config-mutation.test.ts +365 -0
  454. package/sdk/src/query/config-mutation.ts +497 -0
  455. package/sdk/src/query/config-query.test.ts +161 -0
  456. package/sdk/src/query/config-query.ts +190 -0
  457. package/sdk/src/query/context-history.test.ts +165 -0
  458. package/sdk/src/query/context-history.ts +467 -0
  459. package/sdk/src/query/decomposed-handlers.test.ts +365 -0
  460. package/sdk/src/query/detect-custom-files.ts +97 -0
  461. package/sdk/src/query/detect-phase-type.test.ts +105 -0
  462. package/sdk/src/query/detect-phase-type.ts +141 -0
  463. package/sdk/src/query/docs-init.ts +257 -0
  464. package/sdk/src/query/failure-capture.ts +58 -0
  465. package/sdk/src/query/frontmatter-array.test.ts +14 -0
  466. package/sdk/src/query/frontmatter-mutation.test.ts +259 -0
  467. package/sdk/src/query/frontmatter-mutation.ts +343 -0
  468. package/sdk/src/query/frontmatter.test.ts +281 -0
  469. package/sdk/src/query/frontmatter.ts +397 -0
  470. package/sdk/src/query/helpers.test.ts +426 -0
  471. package/sdk/src/query/helpers.ts +482 -0
  472. package/sdk/src/query/index.ts +586 -0
  473. package/sdk/src/query/init-complex.test.ts +232 -0
  474. package/sdk/src/query/init-complex.ts +578 -0
  475. package/sdk/src/query/init.test.ts +522 -0
  476. package/sdk/src/query/init.ts +1046 -0
  477. package/sdk/src/query/intel.test.ts +90 -0
  478. package/sdk/src/query/intel.ts +404 -0
  479. package/sdk/src/query/normalize-query-command.test.ts +50 -0
  480. package/sdk/src/query/normalize-query-command.ts +56 -0
  481. package/sdk/src/query/phase-lifecycle.test.ts +1126 -0
  482. package/sdk/src/query/phase-lifecycle.ts +1799 -0
  483. package/sdk/src/query/phase-list-queries.test.ts +88 -0
  484. package/sdk/src/query/phase-list-queries.ts +152 -0
  485. package/sdk/src/query/phase-ready.test.ts +65 -0
  486. package/sdk/src/query/phase-ready.ts +158 -0
  487. package/sdk/src/query/phase.test.ts +307 -0
  488. package/sdk/src/query/phase.ts +340 -0
  489. package/sdk/src/query/pipeline.test.ts +169 -0
  490. package/sdk/src/query/pipeline.ts +243 -0
  491. package/sdk/src/query/plan-execution-route.test.ts +166 -0
  492. package/sdk/src/query/plan-execution-route.ts +209 -0
  493. package/sdk/src/query/plan-task-structure.test.ts +65 -0
  494. package/sdk/src/query/plan-task-structure.ts +63 -0
  495. package/sdk/src/query/profile-extract-messages.ts +247 -0
  496. package/sdk/src/query/profile-output.ts +908 -0
  497. package/sdk/src/query/profile-questionnaire-data.ts +181 -0
  498. package/sdk/src/query/profile-sample.ts +184 -0
  499. package/sdk/src/query/profile-scan-sessions.ts +174 -0
  500. package/sdk/src/query/profile.test.ts +74 -0
  501. package/sdk/src/query/profile.ts +337 -0
  502. package/sdk/src/query/progress.test.ts +156 -0
  503. package/sdk/src/query/progress.ts +566 -0
  504. package/sdk/src/query/registry.test.ts +216 -0
  505. package/sdk/src/query/registry.ts +174 -0
  506. package/sdk/src/query/requirements-extract-from-plans.test.ts +58 -0
  507. package/sdk/src/query/requirements-extract-from-plans.ts +86 -0
  508. package/sdk/src/query/roadmap-update-plan-progress.ts +132 -0
  509. package/sdk/src/query/roadmap.test.ts +359 -0
  510. package/sdk/src/query/roadmap.ts +591 -0
  511. package/sdk/src/query/route-next-action.test.ts +61 -0
  512. package/sdk/src/query/route-next-action.ts +345 -0
  513. package/sdk/src/query/runtime-health.ts +7 -0
  514. package/sdk/src/query/schema-detect.ts +189 -0
  515. package/sdk/src/query/skill-manifest.ts +214 -0
  516. package/sdk/src/query/skills.test.ts +80 -0
  517. package/sdk/src/query/skills.ts +62 -0
  518. package/sdk/src/query/state-mutation.test.ts +450 -0
  519. package/sdk/src/query/state-mutation.ts +1444 -0
  520. package/sdk/src/query/state-project-load.ts +109 -0
  521. package/sdk/src/query/state.test.ts +347 -0
  522. package/sdk/src/query/state.ts +397 -0
  523. package/sdk/src/query/summary.test.ts +95 -0
  524. package/sdk/src/query/summary.ts +296 -0
  525. package/sdk/src/query/template.test.ts +180 -0
  526. package/sdk/src/query/template.ts +242 -0
  527. package/sdk/src/query/uat.test.ts +77 -0
  528. package/sdk/src/query/uat.ts +314 -0
  529. package/sdk/src/query/utils.test.ts +82 -0
  530. package/sdk/src/query/utils.ts +92 -0
  531. package/sdk/src/query/validate.test.ts +656 -0
  532. package/sdk/src/query/validate.ts +807 -0
  533. package/sdk/src/query/verify.test.ts +414 -0
  534. package/sdk/src/query/verify.ts +645 -0
  535. package/sdk/src/query/websearch.test.ts +31 -0
  536. package/sdk/src/query/websearch.ts +82 -0
  537. package/sdk/src/query/workspace.test.ts +119 -0
  538. package/sdk/src/query/workspace.ts +131 -0
  539. package/sdk/src/query/workstream.test.ts +51 -0
  540. package/sdk/src/query/workstream.ts +434 -0
  541. package/sdk/src/research-gate.test.ts +190 -0
  542. package/sdk/src/research-gate.ts +94 -0
  543. package/sdk/src/runtime-health.test.ts +176 -0
  544. package/sdk/src/runtime-health.ts +387 -0
  545. package/sdk/src/session-runner.test.ts +98 -0
  546. package/sdk/src/session-runner.ts +299 -0
  547. package/sdk/src/tool-scoping.test.ts +160 -0
  548. package/sdk/src/tool-scoping.ts +61 -0
  549. package/sdk/src/types.ts +917 -0
  550. package/sdk/src/workstream-utils.ts +33 -0
  551. package/sdk/src/ws-flag.test.ts +285 -0
  552. package/sdk/src/ws-transport.test.ts +161 -0
  553. package/sdk/src/ws-transport.ts +93 -0
  554. package/sdk/tsconfig.json +20 -0
@@ -0,0 +1,619 @@
1
+ <purpose>
2
+ Check project progress, summarize recent work and what's ahead, then intelligently route to the next action — either executing an existing plan or creating the next one. Provides situational awareness before continuing work.
3
+ </purpose>
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
+ <step name="init_context">
12
+ **Load progress context (paths only):**
13
+
14
+ ```bash
15
+ INIT=$(gsd-remix-sdk query init.progress)
16
+ if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
17
+ ```
18
+
19
+ Extract from init JSON: `project_exists`, `roadmap_exists`, `state_exists`, `phases`, `current_phase`, `next_phase`, `milestone_version`, `completed_count`, `phase_count`, `paused_at`, `state_path`, `roadmap_path`, `project_path`, `config_path`.
20
+
21
+ ```bash
22
+ DISCUSS_MODE=$(gsd-remix-sdk query config-get workflow.discuss_mode 2>/dev/null || echo "discuss")
23
+ ```
24
+
25
+ If `project_exists` is false (no `.planning/` directory):
26
+
27
+ ```
28
+ No planning structure found.
29
+
30
+ Run /gsd-new-project to start a new project.
31
+ ```
32
+
33
+ Exit.
34
+
35
+ If missing STATE.md: suggest `/gsd-new-project`.
36
+
37
+ **If ROADMAP.md missing but PROJECT.md exists:**
38
+
39
+ This means a milestone was completed and archived. Go to **Route F** (between milestones).
40
+
41
+ If missing both ROADMAP.md and PROJECT.md: suggest `/gsd-new-project`.
42
+ </step>
43
+
44
+ <step name="load">
45
+ **Use structured extraction from `gsd-remix-sdk query` (or legacy gsd-tools.cjs):**
46
+
47
+ Instead of reading full files, use targeted tools to get only the data needed for the report:
48
+ - `ROADMAP=$(gsd-remix-sdk query roadmap.analyze)`
49
+ - `STATE=$(gsd-remix-sdk query state-snapshot)`
50
+
51
+ This minimizes orchestrator context usage.
52
+ </step>
53
+
54
+ <step name="analyze_roadmap">
55
+ **Get comprehensive roadmap analysis (replaces manual parsing):**
56
+
57
+ ```bash
58
+ ROADMAP=$(gsd-remix-sdk query roadmap.analyze)
59
+ ```
60
+
61
+ This returns structured JSON with:
62
+ - All phases with disk status (complete/partial/planned/empty/no_directory)
63
+ - Goal and dependencies per phase
64
+ - Plan and summary counts per phase
65
+ - Aggregated stats: total plans, summaries, progress percent
66
+ - Current and next phase identification
67
+
68
+ Use this instead of manually reading/parsing ROADMAP.md.
69
+ </step>
70
+
71
+ <step name="recent">
72
+ **Gather recent work context:**
73
+
74
+ - Find the 2-3 most recent SUMMARY.md files
75
+ - Use `summary-extract` for efficient parsing:
76
+ ```bash
77
+ gsd-remix-sdk query summary-extract <path> --fields one_liner
78
+ ```
79
+ - This shows "what we've been working on"
80
+ </step>
81
+
82
+ <step name="position">
83
+ **Parse current position from init context and roadmap analysis:**
84
+
85
+ - Use `current_phase` and `next_phase` from `$ROADMAP`
86
+ - Note `paused_at` if work was paused (from `$STATE`)
87
+ - Count pending todos: use `init todos` or `list-todos`
88
+ - Check for active debug sessions: `(ls .planning/debug/*.md 2>/dev/null || true) | grep -v resolved | wc -l`
89
+ </step>
90
+
91
+ <step name="report">
92
+ **Generate progress bar from `gsd-remix-sdk query progress` / `progress.json`, then present rich status report:**
93
+
94
+ ```bash
95
+ # Get formatted progress bar
96
+ PROGRESS_BAR=$(gsd-remix-sdk query progress.bar --raw)
97
+ ```
98
+
99
+ Present:
100
+
101
+ ```
102
+ # [Project Name]
103
+
104
+ **Progress:** {PROGRESS_BAR}
105
+ **Profile:** [quality/balanced/budget/inherit]
106
+ **Discuss mode:** {DISCUSS_MODE}
107
+
108
+ ## Recent Work
109
+ - [Phase X, Plan Y]: [what was accomplished - 1 line from summary-extract]
110
+ - [Phase X, Plan Z]: [what was accomplished - 1 line from summary-extract]
111
+
112
+ ## Current Position
113
+ Phase [N] of [total]: [phase-name]
114
+ Plan [M] of [phase-total]: [status]
115
+ CONTEXT: [✓ if has_context | - if not]
116
+
117
+ ## Key Decisions Made
118
+ - [extract from $STATE.decisions[]]
119
+ - [e.g. jq -r '.decisions[].decision' from state-snapshot]
120
+
121
+ ## Blockers/Concerns
122
+ - [extract from $STATE.blockers[]]
123
+ - [e.g. jq -r '.blockers[].text' from state-snapshot]
124
+
125
+ ## Pending Todos
126
+ - [count] pending — /gsd-check-todos to review
127
+
128
+ ## Active Debug Sessions
129
+ - [count] active — /gsd-debug to continue
130
+ (Only show this section if count > 0)
131
+
132
+ ## What's Next
133
+ [Next phase/plan objective from roadmap analyze]
134
+ ```
135
+
136
+ </step>
137
+
138
+ <step name="route">
139
+ **Determine next action based on verified counts.**
140
+
141
+ **Step 1: Count plans, summaries, and issues in current phase**
142
+
143
+ List files in the current phase directory:
144
+
145
+ ```bash
146
+ (ls -1 .planning/phases/[current-phase-dir]/*-PLAN.md 2>/dev/null || true) | wc -l
147
+ (ls -1 .planning/phases/[current-phase-dir]/*-SUMMARY.md 2>/dev/null || true) | wc -l
148
+ (ls -1 .planning/phases/[current-phase-dir]/*-UAT.md 2>/dev/null || true) | wc -l
149
+ ```
150
+
151
+ State: "This phase has {X} plans, {Y} summaries."
152
+
153
+ **Step 1.5: Check for unaddressed UAT gaps**
154
+
155
+ Check for UAT.md files with status "diagnosed" (has gaps needing fixes).
156
+
157
+ ```bash
158
+ # Check for diagnosed UAT with gaps or partial (incomplete) testing
159
+ grep -l "status: diagnosed\|status: partial" .planning/phases/[current-phase-dir]/*-UAT.md 2>/dev/null || true
160
+ ```
161
+
162
+ Track:
163
+ - `uat_with_gaps`: UAT.md files with status "diagnosed" (gaps need fixing)
164
+ - `uat_partial`: UAT.md files with status "partial" (incomplete testing)
165
+
166
+ **Step 1.6: Cross-phase health check**
167
+
168
+ Scan ALL phases in the current milestone for outstanding verification debt using the CLI (which respects milestone boundaries via `getMilestonePhaseFilter`):
169
+
170
+ ```bash
171
+ DEBT=$(gsd-remix-sdk query audit-uat --raw 2>/dev/null)
172
+ ```
173
+
174
+ Parse JSON for `summary.total_items` and `summary.total_files`.
175
+
176
+ Track: `outstanding_debt` — `summary.total_items` from the audit.
177
+
178
+ **If outstanding_debt > 0:** Add a warning section to the progress report output (in the `report` step), placed between "## What's Next" and the route suggestion:
179
+
180
+ ```markdown
181
+ ## Verification Debt ({N} files across prior phases)
182
+
183
+ | Phase | File | Issue |
184
+ |-------|------|-------|
185
+ | {phase} | {filename} | {pending_count} pending, {skipped_count} skipped, {blocked_count} blocked |
186
+ | {phase} | {filename} | human_needed — {count} items |
187
+
188
+ Review: `/gsd-audit-uat ${GSD_WS}` — full cross-phase audit
189
+ Resume testing: `/gsd-verify-work {phase} ${GSD_WS}` — retest specific phase
190
+ ```
191
+
192
+ This is a WARNING, not a blocker — routing proceeds normally. The debt is visible so the user can make an informed choice.
193
+
194
+ **Step 2: Route based on counts**
195
+
196
+ | Condition | Meaning | Action |
197
+ |-----------|---------|--------|
198
+ | uat_partial > 0 | UAT testing incomplete | Go to **Route E.2** |
199
+ | uat_with_gaps > 0 | UAT gaps need fix plans | Go to **Route E** |
200
+ | summaries < plans | Unexecuted plans exist | Go to **Route A** |
201
+ | summaries = plans AND plans > 0 | Phase complete | Go to Step 3 |
202
+ | plans = 0 | Phase not yet planned | Go to **Route B** |
203
+
204
+ ---
205
+
206
+ **Route A: Unexecuted plan exists**
207
+
208
+ Find the first PLAN.md without matching SUMMARY.md.
209
+ Read its `<objective>` section.
210
+
211
+ ```
212
+ ---
213
+
214
+ ## ▶ Next Up — [${PROJECT_CODE}] ${PROJECT_TITLE}
215
+
216
+ **{phase}-{plan}: [Plan Name]** — [objective summary from PLAN.md]
217
+
218
+ `/clear` then:
219
+
220
+ `/gsd-execute-phase {phase} ${GSD_WS}`
221
+
222
+ ---
223
+ ```
224
+
225
+ ---
226
+
227
+ **Route B: Phase needs planning**
228
+
229
+ Check if `{phase_num}-CONTEXT.md` exists in phase directory.
230
+
231
+ Check if current phase has UI indicators:
232
+
233
+ ```bash
234
+ PHASE_SECTION=$(gsd-remix-sdk query roadmap.get-phase "${CURRENT_PHASE}" 2>/dev/null)
235
+ PHASE_HAS_UI=$(echo "$PHASE_SECTION" | grep -qi "UI hint.*yes" && echo "true" || echo "false")
236
+ ```
237
+
238
+ **If CONTEXT.md exists:**
239
+
240
+ ```
241
+ ---
242
+
243
+ ## ▶ Next Up — [${PROJECT_CODE}] ${PROJECT_TITLE}
244
+
245
+ **Phase {N}: {Name}** — {Goal from ROADMAP.md}
246
+ <sub>✓ Context gathered, ready to plan</sub>
247
+
248
+ `/clear` then:
249
+
250
+ `/gsd-plan-phase {phase-number} ${GSD_WS}`
251
+
252
+ ---
253
+ ```
254
+
255
+ **If CONTEXT.md does NOT exist AND phase has UI (`PHASE_HAS_UI` is `true`):**
256
+
257
+ ```
258
+ ---
259
+
260
+ ## ▶ Next Up — [${PROJECT_CODE}] ${PROJECT_TITLE}
261
+
262
+ **Phase {N}: {Name}** — {Goal from ROADMAP.md}
263
+
264
+ `/clear` then:
265
+
266
+ `/gsd-discuss-phase {phase}` — gather context and clarify approach
267
+
268
+ ---
269
+
270
+ **Also available:**
271
+ - `/gsd-ui-phase {phase}` — generate UI design contract (recommended for frontend phases)
272
+ - `/gsd-plan-phase {phase}` — skip discussion, plan directly
273
+ - `/gsd-list-phase-assumptions {phase}` — see Claude's assumptions
274
+
275
+ ---
276
+ ```
277
+
278
+ **If CONTEXT.md does NOT exist AND phase has no UI:**
279
+
280
+ ```
281
+ ---
282
+
283
+ ## ▶ Next Up — [${PROJECT_CODE}] ${PROJECT_TITLE}
284
+
285
+ **Phase {N}: {Name}** — {Goal from ROADMAP.md}
286
+
287
+ `/clear` then:
288
+
289
+ `/gsd-discuss-phase {phase} ${GSD_WS}` — gather context and clarify approach
290
+
291
+ ---
292
+
293
+ **Also available:**
294
+ - `/gsd-plan-phase {phase} ${GSD_WS}` — skip discussion, plan directly
295
+ - `/gsd-list-phase-assumptions {phase} ${GSD_WS}` — see Claude's assumptions
296
+
297
+ ---
298
+ ```
299
+
300
+ ---
301
+
302
+ **Route E: UAT gaps need fix plans**
303
+
304
+ UAT.md exists with gaps (diagnosed issues). User needs to plan fixes.
305
+
306
+ ```
307
+ ---
308
+
309
+ ## ⚠ UAT Gaps Found
310
+
311
+ **{phase_num}-UAT.md** has {N} gaps requiring fixes.
312
+
313
+ `/clear` then:
314
+
315
+ `/gsd-plan-phase {phase} --gaps ${GSD_WS}`
316
+
317
+ ---
318
+
319
+ **Also available:**
320
+ - `/gsd-execute-phase {phase} ${GSD_WS}` — execute phase plans
321
+ - `/gsd-verify-work {phase} ${GSD_WS}` — run more UAT testing
322
+
323
+ ---
324
+ ```
325
+
326
+ ---
327
+
328
+ **Route E.2: UAT testing incomplete (partial)**
329
+
330
+ UAT.md exists with `status: partial` — testing session ended before all items resolved.
331
+
332
+ ```
333
+ ---
334
+
335
+ ## Incomplete UAT Testing
336
+
337
+ **{phase_num}-UAT.md** has {N} unresolved tests (pending, blocked, or skipped).
338
+
339
+ `/clear` then:
340
+
341
+ `/gsd-verify-work {phase} ${GSD_WS}` — resume testing from where you left off
342
+
343
+ ---
344
+
345
+ **Also available:**
346
+ - `/gsd-audit-uat ${GSD_WS}` — full cross-phase UAT audit
347
+ - `/gsd-execute-phase {phase} ${GSD_WS}` — execute phase plans
348
+
349
+ ---
350
+ ```
351
+
352
+ ---
353
+
354
+ **Step 3: Check milestone status (only when phase complete)**
355
+
356
+ Read ROADMAP.md and identify:
357
+ 1. Current phase number
358
+ 2. All phase numbers in the current milestone section
359
+
360
+ Count total phases and identify the highest phase number.
361
+
362
+ State: "Current phase is {X}. Milestone has {N} phases (highest: {Y})."
363
+
364
+ **Route based on milestone status:**
365
+
366
+ | Condition | Meaning | Action |
367
+ |-----------|---------|--------|
368
+ | current phase < highest phase | More phases remain | Go to **Route C** |
369
+ | current phase = highest phase | Milestone complete | Go to **Route D** |
370
+
371
+ ---
372
+
373
+ **Route C: Phase complete, more phases remain**
374
+
375
+ Read ROADMAP.md to get the next phase's name and goal.
376
+
377
+ Check if next phase has UI indicators:
378
+
379
+ ```bash
380
+ NEXT_PHASE_SECTION=$(gsd-remix-sdk query roadmap.get-phase "$((Z+1))" 2>/dev/null)
381
+ NEXT_HAS_UI=$(echo "$NEXT_PHASE_SECTION" | grep -qi "UI hint.*yes" && echo "true" || echo "false")
382
+ ```
383
+
384
+ **If next phase has UI (`NEXT_HAS_UI` is `true`):**
385
+
386
+ ```
387
+ ---
388
+
389
+ ## ✓ Phase {Z} Complete
390
+
391
+ ## ▶ Next Up — [${PROJECT_CODE}] ${PROJECT_TITLE}
392
+
393
+ **Phase {Z+1}: {Name}** — {Goal from ROADMAP.md}
394
+
395
+ `/clear` then:
396
+
397
+ `/gsd-discuss-phase {Z+1}` — gather context and clarify approach
398
+
399
+ ---
400
+
401
+ **Also available:**
402
+ - `/gsd-ui-phase {Z+1}` — generate UI design contract (recommended for frontend phases)
403
+ - `/gsd-plan-phase {Z+1}` — skip discussion, plan directly
404
+ - `/gsd-verify-work {Z}` — user acceptance test before continuing
405
+
406
+ ---
407
+ ```
408
+
409
+ **If next phase has no UI:**
410
+
411
+ ```
412
+ ---
413
+
414
+ ## ✓ Phase {Z} Complete
415
+
416
+ ## ▶ Next Up — [${PROJECT_CODE}] ${PROJECT_TITLE}
417
+
418
+ **Phase {Z+1}: {Name}** — {Goal from ROADMAP.md}
419
+
420
+ `/clear` then:
421
+
422
+ `/gsd-discuss-phase {Z+1} ${GSD_WS}` — gather context and clarify approach
423
+
424
+ ---
425
+
426
+ **Also available:**
427
+ - `/gsd-plan-phase {Z+1} ${GSD_WS}` — skip discussion, plan directly
428
+ - `/gsd-verify-work {Z} ${GSD_WS}` — user acceptance test before continuing
429
+
430
+ ---
431
+ ```
432
+
433
+ ---
434
+
435
+ **Route D: Milestone complete**
436
+
437
+ ```
438
+ ---
439
+
440
+ ## 🎉 Milestone Complete
441
+
442
+ All {N} phases finished!
443
+
444
+ ## ▶ Next Up — [${PROJECT_CODE}] ${PROJECT_TITLE}
445
+
446
+ **Complete Milestone** — archive and prepare for next
447
+
448
+ `/clear` then:
449
+
450
+ `/gsd-complete-milestone ${GSD_WS}`
451
+
452
+ ---
453
+
454
+ **Also available:**
455
+ - `/gsd-verify-work ${GSD_WS}` — user acceptance test before completing milestone
456
+
457
+ ---
458
+ ```
459
+
460
+ ---
461
+
462
+ **Route F: Between milestones (ROADMAP.md missing, PROJECT.md exists)**
463
+
464
+ A milestone was completed and archived. Ready to start the next milestone cycle.
465
+
466
+ Read MILESTONES.md to find the last completed milestone version.
467
+
468
+ ```
469
+ ---
470
+
471
+ ## ✓ Milestone v{X.Y} Complete
472
+
473
+ Ready to plan the next milestone.
474
+
475
+ ## ▶ Next Up — [${PROJECT_CODE}] ${PROJECT_TITLE}
476
+
477
+ **Start Next Milestone** — questioning → research → requirements → roadmap
478
+
479
+ `/clear` then:
480
+
481
+ `/gsd-new-milestone ${GSD_WS}`
482
+
483
+ ---
484
+ ```
485
+
486
+ </step>
487
+
488
+ <step name="edge_cases">
489
+ **Handle edge cases:**
490
+
491
+ - Phase complete but next phase not planned → offer `/gsd-plan-phase [next] ${GSD_WS}`
492
+ - All work complete → offer milestone completion
493
+ - Blockers present → highlight before offering to continue
494
+ - Handoff file exists → mention it, offer `/gsd-resume-work ${GSD_WS}`
495
+ </step>
496
+
497
+ <step name="forensic_audit">
498
+ **Forensic Integrity Audit** — only runs when `--forensic` is present in ARGUMENTS.
499
+
500
+ If `--forensic` is NOT present in ARGUMENTS: skip this step entirely. Default progress behavior (standard report + routing) is unchanged.
501
+
502
+ If `--forensic` IS present: after the standard report and routing suggestion have been displayed, append the following audit section.
503
+
504
+ ---
505
+
506
+ ## Forensic Integrity Audit
507
+
508
+ Running 6 deep checks against project state...
509
+
510
+ Run each check in order. For each check, emit ✓ (pass) or ⚠ (warning) with concrete evidence when a problem is found.
511
+
512
+ **Check 1 — STATE vs artifact consistency**
513
+
514
+ Read STATE.md `status` / `stopped_at` fields (from the STATE snapshot already loaded). Compare against the artifact count from the roadmap analysis. If STATE.md claims the current phase is pending/mid-flight but the artifact count shows it as complete (all PLAN.md files have matching SUMMARY.md files), flag inconsistency. Emit:
515
+ - ✓ `STATE.md consistent with artifact count` — if both agree
516
+ - ⚠ `STATE.md claims [status] but artifact count shows phase complete` — with the specific values
517
+
518
+ **Check 2 — Orphaned handoff files**
519
+
520
+ Check for existence of:
521
+ ```bash
522
+ ls .planning/HANDOFF.json .planning/phases/*/.continue-here.md .planning/phases/*/*HANDOFF*.md 2>/dev/null || true
523
+ ```
524
+ Also check `.planning/continue-here.md`.
525
+
526
+ Emit:
527
+ - ✓ `No orphaned handoff files` — if none found
528
+ - ⚠ `Orphaned handoff files found` — list each file path, add: `→ Work was paused mid-flight. Read the handoff before continuing.`
529
+
530
+ **Check 3 — Deferred scope drift**
531
+
532
+ Search phase artifacts (CONTEXT.md, DISCUSSION-LOG.md, BUG-BRIEF.md, VERIFICATION.md, SUMMARY.md, HANDOFF.md files under `.planning/phases/`) for patterns:
533
+ ```bash
534
+ grep -rl "defer to Phase\|future phase\|out of scope Phase\|deferred to Phase" .planning/phases/ 2>/dev/null || true
535
+ ```
536
+
537
+ For each match, extract the referenced phase number. Cross-reference against ROADMAP.md phase list. If the referenced phase number is NOT in ROADMAP.md, flag as deferred scope not captured.
538
+
539
+ Emit:
540
+ - ✓ `All deferred scope captured in ROADMAP` — if no mismatches
541
+ - ⚠ `Deferred scope references phase(s) not in ROADMAP` — list: file, reference text, missing phase number
542
+
543
+ **Check 4 — Memory-flagged pending work**
544
+
545
+ Check if `.planning/MEMORY.md` or `.planning/memory/` exists:
546
+ ```bash
547
+ ls .planning/MEMORY.md .planning/memory/*.md 2>/dev/null || true
548
+ ```
549
+
550
+ If found, grep for entries containing: `pending`, `status`, `deferred`, `not yet run`, `backfill`, `blocking`.
551
+
552
+ Emit:
553
+ - ✓ `No memory entries flagging pending work` — if none found or no MEMORY.md
554
+ - ⚠ `Memory entries flag pending/deferred work` — list the matching lines (max 5, truncated at 80 chars)
555
+
556
+ **Check 5 — Blocking operational todos**
557
+
558
+ Check for pending todos:
559
+ ```bash
560
+ ls .planning/todos/pending/*.md 2>/dev/null || true
561
+ ```
562
+
563
+ For files found, scan for keywords indicating operational blockers: `script`, `credential`, `API key`, `manual`, `verification`, `setup`, `configure`, `run `.
564
+
565
+ Emit:
566
+ - ✓ `No blocking operational todos` — if no pending todos or none match operational keywords
567
+ - ⚠ `Blocking operational todos found` — list the file names and matching keywords (max 5)
568
+
569
+ **Check 6 — Uncommitted code**
570
+
571
+ ```bash
572
+ git status --porcelain 2>/dev/null | grep -v "^??" | grep -v "^.planning\/" | grep -v "^\.\." | head -10
573
+ ```
574
+
575
+ If output is non-empty (modified/staged files outside `.planning/`), flag as uncommitted code.
576
+
577
+ Emit:
578
+ - ✓ `Working tree clean` — if no modified files outside `.planning/`
579
+ - ⚠ `Uncommitted changes in source files` — list up to 10 file paths
580
+
581
+ ---
582
+
583
+ After all 6 checks, display the verdict:
584
+
585
+ **If all 6 checks passed:**
586
+ ```
587
+ ### Verdict: CLEAN
588
+
589
+ The standard progress report is trustworthy — proceed with the routing suggestion above.
590
+ ```
591
+
592
+ **If 1 or more checks failed:**
593
+ ```
594
+ ### Verdict: N INTEGRITY ISSUE(S) FOUND
595
+
596
+ The standard progress report may not reflect true project state.
597
+ Review the flagged items above before acting on the routing suggestion.
598
+ ```
599
+
600
+ Then for each failed check, add a concrete next action:
601
+ - Check 2 (orphaned handoff): `Read the handoff file(s) and resume from where work was paused: /gsd-resume-work ${GSD_WS}`
602
+ - Check 3 (deferred scope): `Add the missing phases to ROADMAP.md or update the deferred references`
603
+ - Check 4 (memory pending): `Review the flagged memory entries and resolve or clear them`
604
+ - Check 5 (blocking todos): `Complete the operational steps in .planning/todos/pending/ before continuing`
605
+ - Check 6 (uncommitted code): `Commit or stash the uncommitted changes before advancing`
606
+ - Check 1 (STATE inconsistency): `Run /gsd-verify-work ${PHASE} ${GSD_WS} to reconcile state`
607
+ </step>
608
+
609
+ </process>
610
+
611
+ <success_criteria>
612
+
613
+ - [ ] Rich context provided (recent work, decisions, issues)
614
+ - [ ] Current position clear with visual progress
615
+ - [ ] What's next clearly explained
616
+ - [ ] Smart routing: /gsd-execute-phase if plans exist, /gsd-plan-phase if not
617
+ - [ ] User confirms before any action
618
+ - [ ] Seamless handoff to appropriate gsd command
619
+ </success_criteria>