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,195 @@
1
+ # graduation.md — LEARNINGS.md Cross-Phase Graduation Helper
2
+
3
+ **Invoked by:** `transition.md` step `graduation_scan`. Never invoked directly by users.
4
+
5
+ This workflow clusters recurring items across the last N phases' LEARNINGS.md files and surfaces promotion candidates to the developer via HITL. No item is promoted without explicit developer approval.
6
+
7
+ ---
8
+
9
+ ## Configuration
10
+
11
+ Read from project config (`config.json`):
12
+
13
+ | Key | Default | Description |
14
+ |-----|---------|-------------|
15
+ | `features.graduation` | `true` | Master on/off switch. `false` skips silently. |
16
+ | `features.graduation_window` | `5` | How many prior phases to scan |
17
+ | `features.graduation_threshold` | `3` | Minimum cluster size to surface |
18
+
19
+ ---
20
+
21
+ ## Step 1: Guard Checks
22
+
23
+ ```bash
24
+ GRADUATION_ENABLED=$(gsd-remix-sdk query config-get features.graduation 2>/dev/null || echo "true")
25
+ GRADUATION_WINDOW=$(gsd-remix-sdk query config-get features.graduation_window 2>/dev/null || echo "5")
26
+ GRADUATION_THRESHOLD=$(gsd-remix-sdk query config-get features.graduation_threshold 2>/dev/null || echo "3")
27
+ ```
28
+
29
+ **Skip silently (print nothing) if:**
30
+ - `features.graduation` is `false`
31
+ - Fewer than `graduation_threshold` completed prior phases exist (not enough data)
32
+
33
+ **Skip silently (print nothing) if total items across all LEARNINGS.md files in the window is fewer than 5.**
34
+
35
+ ---
36
+
37
+ ## Step 2: Collect LEARNINGS.md Files
38
+
39
+ Find LEARNINGS.md files from the last N completed phases (excluding the phase currently completing):
40
+
41
+ ```bash
42
+ find .planning/phases -name "*-LEARNINGS.md" | sort | tail -n "$GRADUATION_WINDOW"
43
+ ```
44
+
45
+ For each file found:
46
+ 1. Parse the four category sections: `## Decisions`, `## Lessons`, `## Patterns`, `## Surprises`
47
+ 2. Extract each `### Item Title` + body as a single item record: `{ category, title, body, source_phase, source_file }`
48
+ 3. **Skip items that already contain `**Graduated:**`** — they have been promoted and must not re-surface
49
+
50
+ ---
51
+
52
+ ## Step 3: Cluster by Lexical Similarity
53
+
54
+ For each category independently, cluster items using Jaccard similarity on tokenized title+body:
55
+
56
+ **Tokenization:** lowercase, strip punctuation, split on whitespace, remove stop words (a, an, the, is, was, in, on, at, to, for, of, and, or, but, with, from, that, this, by, as).
57
+
58
+ **Jaccard similarity:** `|A ∩ B| / |A ∪ B|` where A and B are token sets. Two items are in the same cluster if similarity ≥ 0.25.
59
+
60
+ **Clustering algorithm:** single-pass greedy — process items in phase order; add to the first cluster whose centroid (union of all cluster tokens) has similarity ≥ 0.25 with the new item; otherwise start a new cluster.
61
+
62
+ **Cluster size filter:** only surface clusters with distinct source phases ≥ `graduation_threshold` (not just total items — same item repeated in one phase still counts as 1 distinct phase).
63
+
64
+ ---
65
+
66
+ ## Step 4: Check graduation_backlog in STATE.md
67
+
68
+ Read `.planning/STATE.md` `graduation_backlog` section (if present). Format:
69
+
70
+ ```yaml
71
+ graduation_backlog:
72
+ - cluster_id: "{sha256-of-cluster-title}"
73
+ status: "dismissed" # or "deferred"
74
+ deferred_until: "phase-N" # only for deferred entries
75
+ cluster_title: "{representative title}"
76
+ ```
77
+
78
+ **Skip any cluster whose `cluster_id` matches a `dismissed` entry.**
79
+
80
+ **Skip any cluster whose `cluster_id` matches a `deferred` entry where `deferred_until` phase has not yet completed.**
81
+
82
+ ---
83
+
84
+ ## Step 5: Surface Promotion Candidates
85
+
86
+ For each qualifying cluster, determine the suggested target file:
87
+
88
+ | Category | Suggested Target |
89
+ |----------|-----------------|
90
+ | `decisions` | `PROJECT.md` — append under `## Validated Decisions` (create section if absent) |
91
+ | `patterns` | `PATTERNS.md` — append under the appropriate category section (create file if absent) |
92
+ | `lessons` | `PROJECT.md` — append under `## Invariants` (create section if absent) |
93
+ | `surprises` | Flag for human review — if genuinely surprising 3+ times, something structural is wrong |
94
+
95
+ Print the graduation report:
96
+
97
+ ```text
98
+ 📚 Graduation scan across phases {M}–{N}:
99
+
100
+ HIGH RECURRENCE ({K}/{WINDOW} phases)
101
+ ├─ Cluster: "{representative title}"
102
+ ├─ Category: {category}
103
+ ├─ Sources: {list of NN-LEARNINGS filenames}
104
+ └─ Suggested target: {target file} § {section}
105
+
106
+ [repeat for each qualifying cluster, ordered HIGH→LOW recurrence]
107
+
108
+ For each cluster above, choose an action:
109
+ P = Promote now D = Defer (re-surface next transition) X = Dismiss (never re-surface) A = Defer all remaining
110
+ ```
111
+
112
+ ---
113
+
114
+ ## Step 6: HITL — Process Each Cluster
115
+
116
+ For each cluster (in order from Step 5), ask the developer:
117
+
118
+ ```text
119
+ Cluster: "{title}" [{category}, {K} phases] → {target}
120
+ Action [P/D/X/A]:
121
+ ```
122
+
123
+ Use `AskUserQuestion` (or equivalent HITL primitive for the current runtime). If `TEXT_MODE` is true, display the cluster question as plain text and accept typed input. Accept single-character input: `P`, `D`, `X`, `A` (case-insensitive).
124
+
125
+ **On `P` (Promote now):**
126
+
127
+ 1. Read the target file (or create it with a standard header if absent)
128
+ 2. Append the cluster entry under the suggested section:
129
+ ```markdown
130
+ ### {Cluster representative title}
131
+ {Merged body — combine unique sentences across cluster items}
132
+
133
+ **Sources:** Phase {A}, Phase {B}, Phase {C}
134
+ **Promoted:** {ISO_DATE}
135
+ ```
136
+ 3. For each source LEARNINGS.md item in the cluster, append `**Graduated:** {target-file}:{ISO_DATE}` after its last existing field
137
+ 4. Commit both the target file and all annotated LEARNINGS.md files in a single atomic commit:
138
+ `docs(learnings): graduate "{cluster title}" to {target-file}`
139
+
140
+ **On `D` (Defer):**
141
+
142
+ Write to `.planning/STATE.md` under `graduation_backlog`:
143
+ ```yaml
144
+ - cluster_id: "{sha256}"
145
+ status: "deferred"
146
+ deferred_until: "phase-{NEXT_PHASE_NUMBER}"
147
+ cluster_title: "{title}"
148
+ ```
149
+
150
+ **On `X` (Dismiss):**
151
+
152
+ Write to `.planning/STATE.md` under `graduation_backlog`:
153
+ ```yaml
154
+ - cluster_id: "{sha256}"
155
+ status: "dismissed"
156
+ cluster_title: "{title}"
157
+ ```
158
+
159
+ **On `A` (Defer all):**
160
+
161
+ Defer the current cluster (same as `D`) and skip all remaining clusters for this run, deferring each to the next transition. Print:
162
+ ```text
163
+ [graduation: deferred all remaining clusters to next transition]
164
+ ```
165
+ Then proceed directly to Step 7.
166
+
167
+ ---
168
+
169
+ ## Step 7: Completion Report
170
+
171
+ After processing all clusters, print:
172
+
173
+ ```text
174
+ Graduation complete: {promoted} promoted, {deferred} deferred, {dismissed} dismissed.
175
+ ```
176
+
177
+ If no clusters qualified (all filtered by backlog or threshold), print:
178
+ ```text
179
+ [graduation: no qualifying clusters in phases {M}–{N}]
180
+ ```
181
+
182
+ ---
183
+
184
+ ## First-Run Behaviour
185
+
186
+ On the first transition after upgrading to a version that includes this workflow, all extant LEARNINGS.md files may produce a large batch of candidates at once. A `[Defer all]` shorthand is available: if the developer enters `A` at any cluster prompt, all remaining clusters for this run are deferred to the next transition.
187
+
188
+ ---
189
+
190
+ ## No-Op Conditions (silent skip)
191
+
192
+ - `features.graduation = false`
193
+ - Fewer than `graduation_threshold` prior phases with LEARNINGS.md
194
+ - Total items < 5 across the window
195
+ - All qualifying clusters are in `graduation_backlog` as dismissed
@@ -0,0 +1,314 @@
1
+ <purpose>
2
+ Validate `.planning/` directory integrity or runtime install health and report actionable issues. Checks for missing files, invalid configurations, inconsistent state, orphaned plans, unsupported runtime versions, and SDK availability. Optionally repairs auto-fixable planning issues or rebuilds the bundled SDK.
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="parse_args">
12
+ **Parse arguments:**
13
+
14
+ Check if `--runtime`, `--repair`, or `--backfill` flags are present in the command arguments.
15
+
16
+ ```
17
+ RUNTIME_FLAG=""
18
+ REPAIR_FLAG=""
19
+ BACKFILL_FLAG=""
20
+ if arguments contain "--runtime"; then
21
+ RUNTIME_FLAG="--runtime"
22
+ fi
23
+ if arguments contain "--repair"; then
24
+ REPAIR_FLAG="--repair"
25
+ fi
26
+ if arguments contain "--backfill"; then
27
+ BACKFILL_FLAG="--backfill"
28
+ fi
29
+ ```
30
+
31
+ **Runtime SDK repair script path:**
32
+
33
+ The installer rewrites this path for non-Claude runtimes and local installs.
34
+
35
+ ```bash
36
+ RUNTIME_REPAIR_SCRIPT="$HOME/.claude/get-shit-done/bin/repair-sdk.cjs"
37
+ ```
38
+
39
+ **If runtime repair is requested, repair before any SDK query:**
40
+
41
+ ```bash
42
+ if [[ -n "$RUNTIME_FLAG" && -n "$REPAIR_FLAG" ]]; then
43
+ if [[ ! -f "$RUNTIME_REPAIR_SCRIPT" ]]; then
44
+ echo "✗ Runtime repair script not found:"
45
+ echo " $RUNTIME_REPAIR_SCRIPT"
46
+ echo ""
47
+ echo "Re-run the gsd-remix installer to refresh runtime assets:"
48
+ echo " npx gsd-remix@latest"
49
+ exit 1
50
+ fi
51
+
52
+ echo "Running GSD Remix SDK repair..."
53
+ node "$RUNTIME_REPAIR_SCRIPT"
54
+ REPAIR_STATUS=$?
55
+ if [[ "$REPAIR_STATUS" -ne 0 ]]; then
56
+ echo ""
57
+ echo "✗ GSD Remix SDK repair failed with exit $REPAIR_STATUS."
58
+ exit "$REPAIR_STATUS"
59
+ fi
60
+ fi
61
+ ```
62
+
63
+ **Guard `gsd-remix-sdk` before any query:**
64
+
65
+ ```bash
66
+ if ! command -v gsd-remix-sdk &>/dev/null; then
67
+ echo "⚠ gsd-remix-sdk not found in PATH — /gsd-health requires it."
68
+ echo ""
69
+ echo "Repair the bundled SDK without reinstalling all runtime assets:"
70
+ echo " /gsd-health --runtime --repair"
71
+ exit 1
72
+ fi
73
+ ```
74
+
75
+ **Runtime mode constraints:**
76
+
77
+ If `RUNTIME_FLAG` is set, ignore `BACKFILL_FLAG` for this run. Runtime checks are read-only unless `REPAIR_FLAG` is also set. Runtime repair only rebuilds and reinstalls the bundled SDK from `get-shit-done/sdk/`; it does not reinstall commands, agents, hooks, or project artifacts.
78
+ </step>
79
+
80
+ <step name="run_health_check">
81
+ **Run health validation:**
82
+
83
+ **If `RUNTIME_FLAG` is set:**
84
+
85
+ ```bash
86
+ HEALTH=$(gsd-remix-sdk query runtime.health 2>/dev/null || echo '{"passed":false,"blockers":[{"code":"runtime_health_unavailable","message":"Installed gsd-remix-sdk does not expose runtime.health.","fix":"Run /gsd-health --runtime --repair to rebuild the bundled SDK."}],"warnings":[],"checks":[]}')
87
+ ```
88
+
89
+ Parse JSON output:
90
+ - `passed`: boolean
91
+ - `node_version`: Current Node version
92
+ - `required_node_range`: Required Node range from package metadata
93
+ - `runtime_identity`: Installed runtime identity marker (`distribution`, `package_name`, `version`, `runtime`, `install_scope`, `identity_path`) or null
94
+ - `runtime_identity_path`: Expected identity marker path
95
+ - `gsd_tools_source`: `bundled` | `project` | `user` | `custom` | `missing`
96
+ - `gsd_tools_path`: Resolved `gsd-tools.cjs` path if found
97
+ - `legacy_bridge_available`: boolean
98
+ - `blockers[]`: Critical runtime issues
99
+ - `warnings[]`: Non-blocking runtime issues
100
+ - `checks[]`: Full deterministic runtime check results
101
+
102
+ **If `RUNTIME_FLAG` is NOT set:** Run planning health validation:
103
+
104
+ ```bash
105
+ HEALTH=$(gsd-remix-sdk query validate.health $REPAIR_FLAG $BACKFILL_FLAG)
106
+ ```
107
+
108
+ Parse JSON output:
109
+ - `status`: "healthy" | "degraded" | "broken"
110
+ - `errors[]`: Critical issues (code, message, fix, repairable)
111
+ - `warnings[]`: Non-critical issues
112
+ - `info[]`: Informational notes
113
+ - `repairable_count`: Number of auto-fixable issues
114
+ - `repairs_performed[]`: Actions taken if --repair was used
115
+ </step>
116
+
117
+ <step name="format_output">
118
+ **Format and display results:**
119
+
120
+ **If `RUNTIME_FLAG` is set:**
121
+
122
+ Determine status:
123
+ - `BROKEN` when `blockers[]` is non-empty
124
+ - `DEGRADED` when `blockers[]` is empty and `warnings[]` is non-empty
125
+ - `HEALTHY` otherwise
126
+
127
+ ```
128
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
129
+ GSD Runtime Health Check
130
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
131
+
132
+ Status: HEALTHY | DEGRADED | BROKEN
133
+ Distribution: {runtime_identity.display_name or runtime_identity.distribution or "unknown"} {runtime_identity.version or ""}
134
+ Package: {runtime_identity.package_name or "unknown"} ({runtime_identity.runtime or "unknown"} / {runtime_identity.install_scope or "unknown"})
135
+ Node: {node_version} (required: {required_node_range or "unknown"})
136
+ Legacy bridge: READY | DEGRADED | MISSING
137
+ Source: {gsd_tools_source}
138
+ Path: {gsd_tools_path or "not found"}
139
+ Identity: {runtime_identity.identity_path or runtime_identity_path or "not found"}
140
+ Warnings: N
141
+ ```
142
+
143
+ **If blockers exist:**
144
+ ```
145
+ ## Blockers
146
+
147
+ - [node_version_unsupported] Current Node v20.11.1 does not satisfy >=22.0.0
148
+ Fix: Use Node >=22.0.0 or newer, then rerun the workflow.
149
+ ```
150
+
151
+ **If warnings exist:**
152
+ ```
153
+ ## Warnings
154
+
155
+ - [legacy_bridge_missing] No gsd-tools.cjs bridge could be found for CJS fallback commands.
156
+ Fix: Run /gsd-update to restore the bundled bridge. Use /gsd-health --runtime --repair only for SDK CLI repair.
157
+ ```
158
+
159
+ **Footer:**
160
+ ```
161
+ ---
162
+ Runtime mode is read-only unless --repair is set. Use /gsd-health --runtime --repair to rebuild the bundled SDK, or /gsd-update to refresh all runtime assets.
163
+ ```
164
+
165
+ Then STOP. Do not proceed to repair prompts.
166
+
167
+ **If `RUNTIME_FLAG` is NOT set:** Use the existing planning health output:
168
+
169
+ ```
170
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
171
+ GSD Health Check
172
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
173
+
174
+ Status: HEALTHY | DEGRADED | BROKEN
175
+ Errors: N | Warnings: N | Info: N
176
+ ```
177
+
178
+ **If repairs were performed:**
179
+ ```
180
+ ## Repairs Performed
181
+
182
+ - ✓ config.json: Created with defaults
183
+ - ✓ STATE.md: Regenerated from roadmap
184
+ ```
185
+
186
+ **If errors exist:**
187
+ ```
188
+ ## Errors
189
+
190
+ - [E001] config.json: JSON parse error at line 5
191
+ Fix: Run /gsd-health --repair to reset to defaults
192
+
193
+ - [E002] PROJECT.md not found
194
+ Fix: Run /gsd-new-project to create
195
+ ```
196
+
197
+ **If warnings exist:**
198
+ ```
199
+ ## Warnings
200
+
201
+ - [W002] STATE.md references phase 5, but only phases 1-3 exist
202
+ Fix: Review STATE.md manually before changing it; repair will not overwrite an existing STATE.md
203
+
204
+ - [W005] Phase directory "1-setup" doesn't follow NN-name format
205
+ Fix: Rename to match pattern (e.g., 01-setup)
206
+ ```
207
+
208
+ **If info exists:**
209
+ ```
210
+ ## Info
211
+
212
+ - [I001] 02-implementation/02-01-PLAN.md has no SUMMARY.md
213
+ Note: May be in progress
214
+ ```
215
+
216
+ **Footer (if repairable issues exist and --repair was NOT used):**
217
+ ```
218
+ ---
219
+ N issues can be auto-repaired. Run: /gsd-health --repair
220
+ ```
221
+ </step>
222
+
223
+ <step name="offer_repair">
224
+ **Skip if:** `RUNTIME_FLAG` is set.
225
+
226
+ **If repairable issues exist and --repair was NOT used:**
227
+
228
+ Ask user if they want to run repairs:
229
+
230
+ ```
231
+ Would you like to run /gsd-health --repair to fix N issues automatically?
232
+ ```
233
+
234
+ If yes, re-run with --repair flag and display results.
235
+ </step>
236
+
237
+ <step name="verify_repairs">
238
+ **Skip if:** `RUNTIME_FLAG` is set.
239
+
240
+ **If repairs were performed:**
241
+
242
+ Re-run health check without --repair to confirm issues are resolved:
243
+
244
+ ```bash
245
+ gsd-remix-sdk query validate.health
246
+ ```
247
+
248
+ Report final status.
249
+ </step>
250
+
251
+ </process>
252
+
253
+ <error_codes>
254
+
255
+ | Code | Severity | Description | Repairable |
256
+ |------|----------|-------------|------------|
257
+ | E001 | error | .planning/ directory not found | No |
258
+ | E002 | error | PROJECT.md not found | No |
259
+ | E003 | error | ROADMAP.md not found | No |
260
+ | E004 | error | STATE.md not found | Yes |
261
+ | E005 | error | config.json parse error | Yes |
262
+ | W001 | warning | PROJECT.md missing required section | No |
263
+ | W002 | warning | STATE.md references invalid phase | No |
264
+ | W003 | warning | config.json not found | Yes |
265
+ | W004 | warning | config.json invalid field value | No |
266
+ | W005 | warning | Phase directory naming mismatch | No |
267
+ | W006 | warning | Phase in ROADMAP but no directory | No |
268
+ | W007 | warning | Phase on disk but not in ROADMAP | No |
269
+ | W008 | warning | config.json: workflow.nyquist_validation absent (defaults to enabled but agents may skip) | Yes |
270
+ | W009 | warning | Phase has Validation Architecture in RESEARCH.md but no VALIDATION.md | No |
271
+ | W018 | warning | MILESTONES.md missing entry for archived milestone snapshot | Yes (`--backfill`) |
272
+ | W019 | warning | Unrecognized .planning/ root file — not a canonical GSD artifact | No |
273
+ | I001 | info | Plan without SUMMARY (may be in progress) | No |
274
+
275
+ </error_codes>
276
+
277
+ <repair_actions>
278
+
279
+ | Action | Effect | Risk |
280
+ |--------|--------|------|
281
+ | createConfig | Create config.json with defaults | None |
282
+ | resetConfig | Delete + recreate config.json | Loses custom settings |
283
+ | regenerateState | Create STATE.md from ROADMAP structure when it is missing | Loses session history |
284
+ | addNyquistKey | Add workflow.nyquist_validation: true to config.json | None — matches existing default |
285
+ | backfillMilestones | Synthesize missing MILESTONES.md entries from `.planning/milestones/vX.Y-ROADMAP.md` snapshots | None — additive only; triggered by `--backfill` flag |
286
+
287
+ **Not repairable (too risky):**
288
+ - PROJECT.md, ROADMAP.md content
289
+ - Phase directory renaming
290
+ - Orphaned plan cleanup
291
+
292
+ </repair_actions>
293
+
294
+ <stale_task_cleanup>
295
+ **Windows-specific:** Check for stale Claude Code task directories that accumulate on crash/freeze.
296
+ These are left behind when subagents are force-killed and consume disk space.
297
+
298
+ When `--repair` is active, detect and clean up:
299
+
300
+ ```bash
301
+ # Check for stale task directories (older than 24 hours)
302
+ TASKS_DIR="$HOME/.claude/tasks"
303
+ if [ -d "$TASKS_DIR" ]; then
304
+ STALE_COUNT=$( (find "$TASKS_DIR" -maxdepth 1 -type d -mtime +1 2>/dev/null || true) | wc -l )
305
+ if [ "$STALE_COUNT" -gt 0 ]; then
306
+ echo "⚠️ Found $STALE_COUNT stale task directories in ~/.claude/tasks/"
307
+ echo " These are leftover from crashed subagent sessions."
308
+ echo " Run: rm -rf ~/.claude/tasks/* (safe — only affects dead sessions)"
309
+ fi
310
+ fi
311
+ ```
312
+
313
+ Report as info diagnostic: `I002 | info | Stale subagent task directories found | Yes (--repair removes them)`
314
+ </stale_task_cleanup>