@opengsd/gsd-core 1.2.0-rc.1

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 (503) hide show
  1. package/LICENSE +21 -0
  2. package/README.ja-JP.md +870 -0
  3. package/README.ko-KR.md +861 -0
  4. package/README.md +301 -0
  5. package/README.pt-BR.md +492 -0
  6. package/README.zh-CN.md +842 -0
  7. package/agents/gsd-advisor-researcher.md +127 -0
  8. package/agents/gsd-ai-researcher.md +133 -0
  9. package/agents/gsd-assumptions-analyzer.md +105 -0
  10. package/agents/gsd-code-fixer.md +668 -0
  11. package/agents/gsd-code-reviewer.md +387 -0
  12. package/agents/gsd-codebase-mapper.md +853 -0
  13. package/agents/gsd-debug-session-manager.md +314 -0
  14. package/agents/gsd-debugger.md +1452 -0
  15. package/agents/gsd-doc-classifier.md +168 -0
  16. package/agents/gsd-doc-synthesizer.md +204 -0
  17. package/agents/gsd-doc-verifier.md +217 -0
  18. package/agents/gsd-doc-writer.md +615 -0
  19. package/agents/gsd-domain-researcher.md +153 -0
  20. package/agents/gsd-eval-auditor.md +191 -0
  21. package/agents/gsd-eval-planner.md +154 -0
  22. package/agents/gsd-executor.md +772 -0
  23. package/agents/gsd-framework-selector.md +160 -0
  24. package/agents/gsd-integration-checker.md +470 -0
  25. package/agents/gsd-intel-updater.md +342 -0
  26. package/agents/gsd-nyquist-auditor.md +203 -0
  27. package/agents/gsd-pattern-mapper.md +335 -0
  28. package/agents/gsd-phase-researcher.md +928 -0
  29. package/agents/gsd-plan-checker.md +978 -0
  30. package/agents/gsd-planner.md +1218 -0
  31. package/agents/gsd-project-researcher.md +677 -0
  32. package/agents/gsd-research-synthesizer.md +255 -0
  33. package/agents/gsd-roadmapper.md +688 -0
  34. package/agents/gsd-security-auditor.md +155 -0
  35. package/agents/gsd-ui-auditor.md +495 -0
  36. package/agents/gsd-ui-checker.md +309 -0
  37. package/agents/gsd-ui-researcher.md +380 -0
  38. package/agents/gsd-user-profiler.md +171 -0
  39. package/agents/gsd-verifier.md +917 -0
  40. package/bin/install.js +10936 -0
  41. package/bin/lib/ui-safety-gate.cjs +107 -0
  42. package/commands/gsd/add-tests.md +42 -0
  43. package/commands/gsd/ai-integration-phase.md +37 -0
  44. package/commands/gsd/audit-fix.md +34 -0
  45. package/commands/gsd/audit-milestone.md +37 -0
  46. package/commands/gsd/audit-uat.md +24 -0
  47. package/commands/gsd/autonomous.md +46 -0
  48. package/commands/gsd/capture.md +62 -0
  49. package/commands/gsd/cleanup.md +24 -0
  50. package/commands/gsd/code-review.md +59 -0
  51. package/commands/gsd/complete-milestone.md +143 -0
  52. package/commands/gsd/config.md +56 -0
  53. package/commands/gsd/debug.md +52 -0
  54. package/commands/gsd/discuss-phase.md +76 -0
  55. package/commands/gsd/docs-update.md +49 -0
  56. package/commands/gsd/eval-review.md +33 -0
  57. package/commands/gsd/execute-phase.md +64 -0
  58. package/commands/gsd/explore.md +27 -0
  59. package/commands/gsd/extract-learnings.md +23 -0
  60. package/commands/gsd/fast.md +31 -0
  61. package/commands/gsd/forensics.md +57 -0
  62. package/commands/gsd/graphify.md +199 -0
  63. package/commands/gsd/health.md +31 -0
  64. package/commands/gsd/help.md +28 -0
  65. package/commands/gsd/import.md +41 -0
  66. package/commands/gsd/inbox.md +39 -0
  67. package/commands/gsd/ingest-docs.md +42 -0
  68. package/commands/gsd/manager.md +45 -0
  69. package/commands/gsd/map-codebase.md +83 -0
  70. package/commands/gsd/milestone-summary.md +51 -0
  71. package/commands/gsd/mvp-phase.md +45 -0
  72. package/commands/gsd/new-milestone.md +45 -0
  73. package/commands/gsd/new-project.md +47 -0
  74. package/commands/gsd/ns-context.md +23 -0
  75. package/commands/gsd/ns-ideate.md +24 -0
  76. package/commands/gsd/ns-manage.md +29 -0
  77. package/commands/gsd/ns-project.md +22 -0
  78. package/commands/gsd/ns-review.md +26 -0
  79. package/commands/gsd/ns-workflow.md +28 -0
  80. package/commands/gsd/pause-work.md +43 -0
  81. package/commands/gsd/phase.md +56 -0
  82. package/commands/gsd/plan-phase.md +62 -0
  83. package/commands/gsd/plan-review-convergence.md +59 -0
  84. package/commands/gsd/pr-branch.md +26 -0
  85. package/commands/gsd/profile-user.md +46 -0
  86. package/commands/gsd/progress.md +47 -0
  87. package/commands/gsd/quick.md +174 -0
  88. package/commands/gsd/resume-work.md +30 -0
  89. package/commands/gsd/review-backlog.md +63 -0
  90. package/commands/gsd/review.md +41 -0
  91. package/commands/gsd/secure-phase.md +36 -0
  92. package/commands/gsd/settings.md +29 -0
  93. package/commands/gsd/ship.md +24 -0
  94. package/commands/gsd/sketch.md +60 -0
  95. package/commands/gsd/spec-phase.md +63 -0
  96. package/commands/gsd/spike.md +57 -0
  97. package/commands/gsd/stats.md +19 -0
  98. package/commands/gsd/surface.md +155 -0
  99. package/commands/gsd/thread.md +24 -0
  100. package/commands/gsd/ui-phase.md +35 -0
  101. package/commands/gsd/ui-review.md +33 -0
  102. package/commands/gsd/ultraplan-phase.md +34 -0
  103. package/commands/gsd/undo.md +35 -0
  104. package/commands/gsd/update.md +48 -0
  105. package/commands/gsd/validate-phase.md +36 -0
  106. package/commands/gsd/verify-work.md +39 -0
  107. package/commands/gsd/workspace.md +52 -0
  108. package/commands/gsd/workstreams.md +70 -0
  109. package/get-shit-done/bin/check-latest-version.cjs +106 -0
  110. package/get-shit-done/bin/gsd-tools.cjs +1676 -0
  111. package/get-shit-done/bin/lib/active-workstream-store.cjs +302 -0
  112. package/get-shit-done/bin/lib/adr-parser.cjs +394 -0
  113. package/get-shit-done/bin/lib/agent-command-router.cjs +65 -0
  114. package/get-shit-done/bin/lib/artifacts.cjs +53 -0
  115. package/get-shit-done/bin/lib/audit.cjs +755 -0
  116. package/get-shit-done/bin/lib/check-command-router.cjs +333 -0
  117. package/get-shit-done/bin/lib/cjs-command-router-adapter.cjs +118 -0
  118. package/get-shit-done/bin/lib/clock.cjs +96 -0
  119. package/get-shit-done/bin/lib/clusters.cjs +135 -0
  120. package/get-shit-done/bin/lib/code-review-flags.cjs +74 -0
  121. package/get-shit-done/bin/lib/command-aliases.cjs +815 -0
  122. package/get-shit-done/bin/lib/command-arg-projection.cjs +62 -0
  123. package/get-shit-done/bin/lib/command-routing-hub.cjs +388 -0
  124. package/get-shit-done/bin/lib/commands.cjs +1188 -0
  125. package/get-shit-done/bin/lib/config-schema.cjs +31 -0
  126. package/get-shit-done/bin/lib/config.cjs +728 -0
  127. package/get-shit-done/bin/lib/configuration.cjs +248 -0
  128. package/get-shit-done/bin/lib/context-utilization.cjs +47 -0
  129. package/get-shit-done/bin/lib/core.cjs +2121 -0
  130. package/get-shit-done/bin/lib/decisions.cjs +116 -0
  131. package/get-shit-done/bin/lib/docs.cjs +270 -0
  132. package/get-shit-done/bin/lib/drift.cjs +388 -0
  133. package/get-shit-done/bin/lib/fallow-runner.cjs +109 -0
  134. package/get-shit-done/bin/lib/frontmatter.cjs +389 -0
  135. package/get-shit-done/bin/lib/gap-checker.cjs +205 -0
  136. package/get-shit-done/bin/lib/graphify.cjs +592 -0
  137. package/get-shit-done/bin/lib/gsd2-import.cjs +514 -0
  138. package/get-shit-done/bin/lib/init-command-router.cjs +58 -0
  139. package/get-shit-done/bin/lib/init.cjs +2112 -0
  140. package/get-shit-done/bin/lib/install-profiles.cjs +603 -0
  141. package/get-shit-done/bin/lib/installer-migration-authoring.cjs +117 -0
  142. package/get-shit-done/bin/lib/installer-migration-report.cjs +354 -0
  143. package/get-shit-done/bin/lib/installer-migrations/000-first-time-baseline.cjs +220 -0
  144. package/get-shit-done/bin/lib/installer-migrations/001-legacy-orphan-files.cjs +41 -0
  145. package/get-shit-done/bin/lib/installer-migrations/002-codex-legacy-hooks-json.cjs +80 -0
  146. package/get-shit-done/bin/lib/installer-migrations.cjs +778 -0
  147. package/get-shit-done/bin/lib/intel.cjs +708 -0
  148. package/get-shit-done/bin/lib/learnings.cjs +421 -0
  149. package/get-shit-done/bin/lib/milestone.cjs +314 -0
  150. package/get-shit-done/bin/lib/model-catalog.cjs +212 -0
  151. package/get-shit-done/bin/lib/model-profiles.cjs +31 -0
  152. package/get-shit-done/bin/lib/observability/event.cjs +82 -0
  153. package/get-shit-done/bin/lib/observability/logger.cjs +174 -0
  154. package/get-shit-done/bin/lib/observability/redaction.cjs +50 -0
  155. package/get-shit-done/bin/lib/package-identity.cjs +31 -0
  156. package/get-shit-done/bin/lib/phase-command-router.cjs +191 -0
  157. package/get-shit-done/bin/lib/phase-lifecycle.cjs +80 -0
  158. package/get-shit-done/bin/lib/phase.cjs +1607 -0
  159. package/get-shit-done/bin/lib/phases-command-router.cjs +39 -0
  160. package/get-shit-done/bin/lib/plan-scan.cjs +97 -0
  161. package/get-shit-done/bin/lib/planning-workspace.cjs +238 -0
  162. package/get-shit-done/bin/lib/profile-output.cjs +1141 -0
  163. package/get-shit-done/bin/lib/profile-pipeline.cjs +539 -0
  164. package/get-shit-done/bin/lib/project-root.cjs +112 -0
  165. package/get-shit-done/bin/lib/prompt-budget.cjs +399 -0
  166. package/get-shit-done/bin/lib/review-reviewer-selection.cjs +125 -0
  167. package/get-shit-done/bin/lib/roadmap-command-router.cjs +28 -0
  168. package/get-shit-done/bin/lib/roadmap.cjs +650 -0
  169. package/get-shit-done/bin/lib/runtime-artifact-layout.cjs +301 -0
  170. package/get-shit-done/bin/lib/runtime-homes.cjs +222 -0
  171. package/get-shit-done/bin/lib/runtime-name-policy.cjs +83 -0
  172. package/get-shit-done/bin/lib/runtime-slash.cjs +112 -0
  173. package/get-shit-done/bin/lib/schema-detect.cjs +165 -0
  174. package/get-shit-done/bin/lib/secrets.cjs +32 -0
  175. package/get-shit-done/bin/lib/security.cjs +600 -0
  176. package/get-shit-done/bin/lib/semver-compare.cjs +35 -0
  177. package/get-shit-done/bin/lib/shell-command-projection.cjs +500 -0
  178. package/get-shit-done/bin/lib/state-command-router.cjs +252 -0
  179. package/get-shit-done/bin/lib/state-document.cjs +263 -0
  180. package/get-shit-done/bin/lib/state.cjs +2038 -0
  181. package/get-shit-done/bin/lib/surface.cjs +470 -0
  182. package/get-shit-done/bin/lib/task-command-router.cjs +81 -0
  183. package/get-shit-done/bin/lib/template.cjs +228 -0
  184. package/get-shit-done/bin/lib/uat.cjs +289 -0
  185. package/get-shit-done/bin/lib/update-context.cjs +209 -0
  186. package/get-shit-done/bin/lib/validate-command-router.cjs +83 -0
  187. package/get-shit-done/bin/lib/validate.cjs +92 -0
  188. package/get-shit-done/bin/lib/verify-command-router.cjs +40 -0
  189. package/get-shit-done/bin/lib/verify.cjs +1511 -0
  190. package/get-shit-done/bin/lib/workstream-inventory-builder.cjs +74 -0
  191. package/get-shit-done/bin/lib/workstream-inventory.cjs +146 -0
  192. package/get-shit-done/bin/lib/workstream-name-policy.cjs +94 -0
  193. package/get-shit-done/bin/lib/workstream.cjs +389 -0
  194. package/get-shit-done/bin/lib/worktree-safety.cjs +985 -0
  195. package/get-shit-done/bin/shared/config-defaults.manifest.json +97 -0
  196. package/get-shit-done/bin/shared/config-schema.manifest.json +175 -0
  197. package/get-shit-done/bin/shared/model-catalog.json +122 -0
  198. package/get-shit-done/bin/shared/runtime-aliases.manifest.json +75 -0
  199. package/get-shit-done/bin/verify-reapply-patches.cjs +352 -0
  200. package/get-shit-done/contexts/dev.md +21 -0
  201. package/get-shit-done/contexts/research.md +22 -0
  202. package/get-shit-done/contexts/review.md +23 -0
  203. package/get-shit-done/references/agent-contracts.md +79 -0
  204. package/get-shit-done/references/ai-evals.md +156 -0
  205. package/get-shit-done/references/ai-frameworks.md +186 -0
  206. package/get-shit-done/references/artifact-types.md +131 -0
  207. package/get-shit-done/references/autonomous-smart-discuss.md +277 -0
  208. package/get-shit-done/references/checkpoints.md +814 -0
  209. package/get-shit-done/references/common-bug-patterns.md +114 -0
  210. package/get-shit-done/references/context-budget.md +85 -0
  211. package/get-shit-done/references/continuation-format.md +253 -0
  212. package/get-shit-done/references/debugger-philosophy.md +76 -0
  213. package/get-shit-done/references/decimal-phase-calculation.md +64 -0
  214. package/get-shit-done/references/doc-conflict-engine.md +91 -0
  215. package/get-shit-done/references/domain-probes.md +125 -0
  216. package/get-shit-done/references/execute-mvp-tdd.md +81 -0
  217. package/get-shit-done/references/executor-examples.md +110 -0
  218. package/get-shit-done/references/few-shot-examples/plan-checker.md +73 -0
  219. package/get-shit-done/references/few-shot-examples/verifier.md +109 -0
  220. package/get-shit-done/references/gate-prompts.md +100 -0
  221. package/get-shit-done/references/gates.md +70 -0
  222. package/get-shit-done/references/git-integration.md +298 -0
  223. package/get-shit-done/references/git-planning-commit.md +40 -0
  224. package/get-shit-done/references/ios-scaffold.md +123 -0
  225. package/get-shit-done/references/mandatory-initial-read.md +2 -0
  226. package/get-shit-done/references/model-profile-resolution.md +38 -0
  227. package/get-shit-done/references/model-profiles.md +245 -0
  228. package/get-shit-done/references/mvp-concepts.md +49 -0
  229. package/get-shit-done/references/phase-argument-parsing.md +61 -0
  230. package/get-shit-done/references/planner-antipatterns.md +89 -0
  231. package/get-shit-done/references/planner-chunked.md +49 -0
  232. package/get-shit-done/references/planner-gap-closure.md +62 -0
  233. package/get-shit-done/references/planner-graphify-auto-update.md +67 -0
  234. package/get-shit-done/references/planner-human-verify-mode.md +57 -0
  235. package/get-shit-done/references/planner-interface-context.md +62 -0
  236. package/get-shit-done/references/planner-mvp-mode.md +53 -0
  237. package/get-shit-done/references/planner-reviews.md +39 -0
  238. package/get-shit-done/references/planner-revision.md +87 -0
  239. package/get-shit-done/references/planner-source-audit.md +73 -0
  240. package/get-shit-done/references/planning-config.md +471 -0
  241. package/get-shit-done/references/project-skills-discovery.md +19 -0
  242. package/get-shit-done/references/questioning.md +162 -0
  243. package/get-shit-done/references/revision-loop.md +97 -0
  244. package/get-shit-done/references/scout-codebase.md +51 -0
  245. package/get-shit-done/references/skeleton-template.md +48 -0
  246. package/get-shit-done/references/sketch-interactivity.md +41 -0
  247. package/get-shit-done/references/sketch-theme-system.md +94 -0
  248. package/get-shit-done/references/sketch-tooling.md +45 -0
  249. package/get-shit-done/references/sketch-variant-patterns.md +81 -0
  250. package/get-shit-done/references/spidr-splitting.md +69 -0
  251. package/get-shit-done/references/tdd.md +330 -0
  252. package/get-shit-done/references/thinking-models-debug.md +44 -0
  253. package/get-shit-done/references/thinking-models-execution.md +50 -0
  254. package/get-shit-done/references/thinking-models-planning.md +62 -0
  255. package/get-shit-done/references/thinking-models-research.md +50 -0
  256. package/get-shit-done/references/thinking-models-verification.md +55 -0
  257. package/get-shit-done/references/thinking-partner.md +96 -0
  258. package/get-shit-done/references/ui-brand.md +160 -0
  259. package/get-shit-done/references/universal-anti-patterns.md +63 -0
  260. package/get-shit-done/references/user-profiling.md +681 -0
  261. package/get-shit-done/references/user-story-template.md +58 -0
  262. package/get-shit-done/references/verification-overrides.md +227 -0
  263. package/get-shit-done/references/verification-patterns.md +612 -0
  264. package/get-shit-done/references/verify-mvp-mode.md +85 -0
  265. package/get-shit-done/references/workstream-flag.md +111 -0
  266. package/get-shit-done/references/worktree-path-safety.md +89 -0
  267. package/get-shit-done/templates/AI-SPEC.md +246 -0
  268. package/get-shit-done/templates/DEBUG.md +169 -0
  269. package/get-shit-done/templates/README.md +77 -0
  270. package/get-shit-done/templates/SECURITY.md +61 -0
  271. package/get-shit-done/templates/UAT.md +265 -0
  272. package/get-shit-done/templates/UI-SPEC.md +100 -0
  273. package/get-shit-done/templates/VALIDATION.md +76 -0
  274. package/get-shit-done/templates/claude-md.md +145 -0
  275. package/get-shit-done/templates/codebase/architecture.md +255 -0
  276. package/get-shit-done/templates/codebase/concerns.md +310 -0
  277. package/get-shit-done/templates/codebase/conventions.md +307 -0
  278. package/get-shit-done/templates/codebase/integrations.md +280 -0
  279. package/get-shit-done/templates/codebase/stack.md +186 -0
  280. package/get-shit-done/templates/codebase/structure.md +285 -0
  281. package/get-shit-done/templates/codebase/testing.md +480 -0
  282. package/get-shit-done/templates/config.json +62 -0
  283. package/get-shit-done/templates/context.md +352 -0
  284. package/get-shit-done/templates/continue-here.md +78 -0
  285. package/get-shit-done/templates/copilot-instructions.md +7 -0
  286. package/get-shit-done/templates/debug-subagent-prompt.md +91 -0
  287. package/get-shit-done/templates/dev-preferences.md +21 -0
  288. package/get-shit-done/templates/discovery.md +146 -0
  289. package/get-shit-done/templates/discussion-log.md +63 -0
  290. package/get-shit-done/templates/milestone-archive.md +123 -0
  291. package/get-shit-done/templates/milestone.md +115 -0
  292. package/get-shit-done/templates/phase-prompt.md +610 -0
  293. package/get-shit-done/templates/planner-subagent-prompt.md +117 -0
  294. package/get-shit-done/templates/project.md +186 -0
  295. package/get-shit-done/templates/requirements.md +231 -0
  296. package/get-shit-done/templates/research-project/ARCHITECTURE.md +204 -0
  297. package/get-shit-done/templates/research-project/FEATURES.md +147 -0
  298. package/get-shit-done/templates/research-project/PITFALLS.md +200 -0
  299. package/get-shit-done/templates/research-project/STACK.md +120 -0
  300. package/get-shit-done/templates/research-project/SUMMARY.md +170 -0
  301. package/get-shit-done/templates/research.md +592 -0
  302. package/get-shit-done/templates/retrospective.md +54 -0
  303. package/get-shit-done/templates/roadmap.md +202 -0
  304. package/get-shit-done/templates/spec.md +307 -0
  305. package/get-shit-done/templates/state.md +195 -0
  306. package/get-shit-done/templates/summary-complex.md +59 -0
  307. package/get-shit-done/templates/summary-minimal.md +41 -0
  308. package/get-shit-done/templates/summary-standard.md +48 -0
  309. package/get-shit-done/templates/summary.md +248 -0
  310. package/get-shit-done/templates/user-profile.md +146 -0
  311. package/get-shit-done/templates/user-setup.md +311 -0
  312. package/get-shit-done/templates/verification-report.md +322 -0
  313. package/get-shit-done/workflows/_runtime-launcher.snippet.sh +1 -0
  314. package/get-shit-done/workflows/add-backlog.md +91 -0
  315. package/get-shit-done/workflows/add-phase.md +113 -0
  316. package/get-shit-done/workflows/add-tests.md +355 -0
  317. package/get-shit-done/workflows/add-todo.md +161 -0
  318. package/get-shit-done/workflows/ai-integration-phase.md +295 -0
  319. package/get-shit-done/workflows/analyze-dependencies.md +96 -0
  320. package/get-shit-done/workflows/audit-fix.md +178 -0
  321. package/get-shit-done/workflows/audit-milestone.md +358 -0
  322. package/get-shit-done/workflows/audit-uat.md +110 -0
  323. package/get-shit-done/workflows/autonomous.md +795 -0
  324. package/get-shit-done/workflows/check-todos.md +180 -0
  325. package/get-shit-done/workflows/cleanup.md +155 -0
  326. package/get-shit-done/workflows/code-review-fix.md +502 -0
  327. package/get-shit-done/workflows/code-review.md +656 -0
  328. package/get-shit-done/workflows/complete-milestone.md +855 -0
  329. package/get-shit-done/workflows/debug.md +232 -0
  330. package/get-shit-done/workflows/diagnose-issues.md +241 -0
  331. package/get-shit-done/workflows/discovery-phase.md +291 -0
  332. package/get-shit-done/workflows/discuss-phase/modes/advisor.md +176 -0
  333. package/get-shit-done/workflows/discuss-phase/modes/all.md +28 -0
  334. package/get-shit-done/workflows/discuss-phase/modes/analyze.md +44 -0
  335. package/get-shit-done/workflows/discuss-phase/modes/auto.md +57 -0
  336. package/get-shit-done/workflows/discuss-phase/modes/batch.md +52 -0
  337. package/get-shit-done/workflows/discuss-phase/modes/chain.md +98 -0
  338. package/get-shit-done/workflows/discuss-phase/modes/default.md +141 -0
  339. package/get-shit-done/workflows/discuss-phase/modes/power.md +44 -0
  340. package/get-shit-done/workflows/discuss-phase/modes/text.md +55 -0
  341. package/get-shit-done/workflows/discuss-phase/templates/checkpoint.json +18 -0
  342. package/get-shit-done/workflows/discuss-phase/templates/context.md +136 -0
  343. package/get-shit-done/workflows/discuss-phase/templates/discussion-log.md +50 -0
  344. package/get-shit-done/workflows/discuss-phase-assumptions.md +675 -0
  345. package/get-shit-done/workflows/discuss-phase-power.md +291 -0
  346. package/get-shit-done/workflows/discuss-phase.md +499 -0
  347. package/get-shit-done/workflows/do.md +111 -0
  348. package/get-shit-done/workflows/docs-update.md +1162 -0
  349. package/get-shit-done/workflows/edit-phase.md +295 -0
  350. package/get-shit-done/workflows/eval-review.md +156 -0
  351. package/get-shit-done/workflows/execute-phase/steps/codebase-drift-gate.md +82 -0
  352. package/get-shit-done/workflows/execute-phase/steps/per-plan-worktree-gate.md +94 -0
  353. package/get-shit-done/workflows/execute-phase/steps/post-merge-gate.md +117 -0
  354. package/get-shit-done/workflows/execute-phase.md +1709 -0
  355. package/get-shit-done/workflows/execute-plan.md +526 -0
  356. package/get-shit-done/workflows/explore.md +144 -0
  357. package/get-shit-done/workflows/extract-learnings.md +243 -0
  358. package/get-shit-done/workflows/fast.md +124 -0
  359. package/get-shit-done/workflows/forensics.md +279 -0
  360. package/get-shit-done/workflows/graduation.md +196 -0
  361. package/get-shit-done/workflows/health.md +224 -0
  362. package/get-shit-done/workflows/help/modes/brief.md +22 -0
  363. package/get-shit-done/workflows/help/modes/default.md +50 -0
  364. package/get-shit-done/workflows/help/modes/full.md +784 -0
  365. package/get-shit-done/workflows/help/modes/topic.md +74 -0
  366. package/get-shit-done/workflows/help.md +24 -0
  367. package/get-shit-done/workflows/import.md +254 -0
  368. package/get-shit-done/workflows/inbox.md +387 -0
  369. package/get-shit-done/workflows/ingest-docs.md +339 -0
  370. package/get-shit-done/workflows/insert-phase.md +152 -0
  371. package/get-shit-done/workflows/list-phase-assumptions.md +178 -0
  372. package/get-shit-done/workflows/list-workspaces.md +57 -0
  373. package/get-shit-done/workflows/manager.md +393 -0
  374. package/get-shit-done/workflows/map-codebase.md +444 -0
  375. package/get-shit-done/workflows/milestone-summary.md +224 -0
  376. package/get-shit-done/workflows/mvp-phase.md +222 -0
  377. package/get-shit-done/workflows/new-milestone.md +635 -0
  378. package/get-shit-done/workflows/new-project.md +1555 -0
  379. package/get-shit-done/workflows/new-workspace.md +240 -0
  380. package/get-shit-done/workflows/next.md +299 -0
  381. package/get-shit-done/workflows/node-repair.md +92 -0
  382. package/get-shit-done/workflows/note.md +158 -0
  383. package/get-shit-done/workflows/pause-work.md +244 -0
  384. package/get-shit-done/workflows/plan-milestone-gaps.md +281 -0
  385. package/get-shit-done/workflows/plan-phase.md +1809 -0
  386. package/get-shit-done/workflows/plan-review-convergence.md +346 -0
  387. package/get-shit-done/workflows/plant-seed.md +230 -0
  388. package/get-shit-done/workflows/pr-branch.md +157 -0
  389. package/get-shit-done/workflows/profile-user.md +453 -0
  390. package/get-shit-done/workflows/progress.md +699 -0
  391. package/get-shit-done/workflows/quick.md +1039 -0
  392. package/get-shit-done/workflows/reapply-patches.md +426 -0
  393. package/get-shit-done/workflows/remove-phase.md +156 -0
  394. package/get-shit-done/workflows/remove-workspace.md +108 -0
  395. package/get-shit-done/workflows/resume-project.md +332 -0
  396. package/get-shit-done/workflows/review.md +623 -0
  397. package/get-shit-done/workflows/scan.md +105 -0
  398. package/get-shit-done/workflows/secure-phase.md +180 -0
  399. package/get-shit-done/workflows/session-report.md +146 -0
  400. package/get-shit-done/workflows/settings-advanced.md +620 -0
  401. package/get-shit-done/workflows/settings-integrations.md +312 -0
  402. package/get-shit-done/workflows/settings.md +552 -0
  403. package/get-shit-done/workflows/ship.md +356 -0
  404. package/get-shit-done/workflows/sketch-wrap-up.md +286 -0
  405. package/get-shit-done/workflows/sketch.md +361 -0
  406. package/get-shit-done/workflows/spec-phase.md +262 -0
  407. package/get-shit-done/workflows/spike-wrap-up.md +307 -0
  408. package/get-shit-done/workflows/spike.md +453 -0
  409. package/get-shit-done/workflows/stats.md +80 -0
  410. package/get-shit-done/workflows/sync-skills.md +182 -0
  411. package/get-shit-done/workflows/thread.md +222 -0
  412. package/get-shit-done/workflows/transition.md +694 -0
  413. package/get-shit-done/workflows/ui-phase.md +328 -0
  414. package/get-shit-done/workflows/ui-review.md +193 -0
  415. package/get-shit-done/workflows/ultraplan-phase.md +199 -0
  416. package/get-shit-done/workflows/undo.md +314 -0
  417. package/get-shit-done/workflows/update.md +443 -0
  418. package/get-shit-done/workflows/validate-phase.md +179 -0
  419. package/get-shit-done/workflows/verify-phase.md +544 -0
  420. package/get-shit-done/workflows/verify-work.md +781 -0
  421. package/hooks/dist/gsd-check-update-worker.js +95 -0
  422. package/hooks/dist/gsd-check-update.js +64 -0
  423. package/hooks/dist/gsd-context-monitor.js +195 -0
  424. package/hooks/dist/gsd-graphify-update.sh +158 -0
  425. package/hooks/dist/gsd-phase-boundary.sh +47 -0
  426. package/hooks/dist/gsd-prompt-guard.js +97 -0
  427. package/hooks/dist/gsd-read-guard.js +101 -0
  428. package/hooks/dist/gsd-read-injection-scanner.js +203 -0
  429. package/hooks/dist/gsd-session-state.sh +59 -0
  430. package/hooks/dist/gsd-statusline.js +548 -0
  431. package/hooks/dist/gsd-update-banner.js +134 -0
  432. package/hooks/dist/gsd-validate-commit.sh +57 -0
  433. package/hooks/dist/gsd-workflow-guard.js +166 -0
  434. package/hooks/dist/lib/git-cmd.js +150 -0
  435. package/hooks/dist/lib/gsd-graphify-rebuild.sh +65 -0
  436. package/hooks/gsd-check-update-worker.js +95 -0
  437. package/hooks/gsd-check-update.js +64 -0
  438. package/hooks/gsd-context-monitor.js +195 -0
  439. package/hooks/gsd-graphify-update.sh +158 -0
  440. package/hooks/gsd-phase-boundary.sh +47 -0
  441. package/hooks/gsd-prompt-guard.js +97 -0
  442. package/hooks/gsd-read-guard.js +101 -0
  443. package/hooks/gsd-read-injection-scanner.js +203 -0
  444. package/hooks/gsd-session-state.sh +59 -0
  445. package/hooks/gsd-statusline.js +548 -0
  446. package/hooks/gsd-update-banner.js +134 -0
  447. package/hooks/gsd-validate-commit.sh +57 -0
  448. package/hooks/gsd-workflow-guard.js +166 -0
  449. package/hooks/lib/git-cmd.js +150 -0
  450. package/hooks/lib/gsd-graphify-rebuild.sh +65 -0
  451. package/hooks/managed-hooks-registry.cjs +34 -0
  452. package/package.json +102 -0
  453. package/scripts/affected-tests-lib.cjs +541 -0
  454. package/scripts/audit-workflow-script-paths.cjs +73 -0
  455. package/scripts/base64-scan.sh +339 -0
  456. package/scripts/build-hooks.js +236 -0
  457. package/scripts/changeset/README.md +129 -0
  458. package/scripts/changeset/cli.cjs +392 -0
  459. package/scripts/changeset/github-release-notes.cjs +199 -0
  460. package/scripts/changeset/lint.cjs +110 -0
  461. package/scripts/changeset/new.cjs +137 -0
  462. package/scripts/changeset/parse.cjs +114 -0
  463. package/scripts/changeset/render.cjs +34 -0
  464. package/scripts/changeset/serialize.cjs +130 -0
  465. package/scripts/check-alias-drift.cjs +108 -0
  466. package/scripts/check-env.cjs +302 -0
  467. package/scripts/check-npm-integrity.cjs +209 -0
  468. package/scripts/ci-guard-runner.cjs +16 -0
  469. package/scripts/ci-prepare-test-scope.cjs +46 -0
  470. package/scripts/ci-rebase-check.cjs +85 -0
  471. package/scripts/ci-test-scope.cjs +302 -0
  472. package/scripts/command-contract-helpers.cjs +64 -0
  473. package/scripts/diff-touches-shipped-paths.cjs +147 -0
  474. package/scripts/fix-slash-commands.cjs +147 -0
  475. package/scripts/gen-inventory-manifest.cjs +109 -0
  476. package/scripts/generate-package-identity.cjs +104 -0
  477. package/scripts/lint-command-contract.cjs +108 -0
  478. package/scripts/lint-descriptions.cjs +83 -0
  479. package/scripts/lint-docs-required.cjs +222 -0
  480. package/scripts/lint-no-source-grep-extras.cjs +81 -0
  481. package/scripts/lint-no-source-grep.cjs +174 -0
  482. package/scripts/lint-package-identity-drift.cjs +141 -0
  483. package/scripts/lint-pr-check-project-dir.cjs +98 -0
  484. package/scripts/lint-shared-module-handsync.cjs +388 -0
  485. package/scripts/lint-shell-command-projection-drift.cjs +57 -0
  486. package/scripts/lint-skill-deps.cjs +180 -0
  487. package/scripts/lint-test-file-count.allowlist.json +36 -0
  488. package/scripts/lint-test-file-count.cjs +190 -0
  489. package/scripts/pr-template-policy.cjs +268 -0
  490. package/scripts/prompt-injection-scan.sh +203 -0
  491. package/scripts/release-tarball-smoke.cjs +627 -0
  492. package/scripts/run-affected-tests.cjs +6 -0
  493. package/scripts/run-cross-platform-tests.cjs +63 -0
  494. package/scripts/run-tests.cjs +282 -0
  495. package/scripts/secret-scan-lint.sh +231 -0
  496. package/scripts/secret-scan.sh +358 -0
  497. package/scripts/setup-branch-protection.sh +236 -0
  498. package/scripts/shared-module-handsync-allowlist.json +183 -0
  499. package/scripts/strip-prose-atrefs.cjs +106 -0
  500. package/scripts/sync-rulesets.sh +34 -0
  501. package/scripts/sync-runtime-launcher.cjs +402 -0
  502. package/scripts/test-failure-reasons.cjs +34 -0
  503. package/scripts/workflow-policy.cjs +450 -0
@@ -0,0 +1,196 @@
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
+ _GSD_SHIM_NAME="gsd-tools.cjs"; _GSD_RUNTIME_ROOT="${RUNTIME_DIR:-$(git rev-parse --show-toplevel 2>/dev/null || pwd)}"; GSD_TOOLS="${_GSD_RUNTIME_ROOT}/get-shit-done/bin/${_GSD_SHIM_NAME}"; if [ -f "$GSD_TOOLS" ]; then gsd_run() { node "$GSD_TOOLS" "$@"; }; elif [ -f "${_GSD_RUNTIME_ROOT}/.claude/get-shit-done/bin/${_GSD_SHIM_NAME}" ]; then GSD_TOOLS="${_GSD_RUNTIME_ROOT}/.claude/get-shit-done/bin/${_GSD_SHIM_NAME}"; gsd_run() { node "$GSD_TOOLS" "$@"; }; elif command -v gsd-tools >/dev/null 2>&1; then GSD_TOOLS="$(command -v gsd-tools)"; gsd_run() { "$GSD_TOOLS" "$@"; }; elif [ -f "$HOME/.claude/get-shit-done/bin/${_GSD_SHIM_NAME}" ]; then GSD_TOOLS="$HOME/.claude/get-shit-done/bin/${_GSD_SHIM_NAME}"; gsd_run() { node "$GSD_TOOLS" "$@"; }; else echo "ERROR: gsd-tools.cjs not found at $GSD_TOOLS and gsd-tools is not on PATH. Run: npx -y @opengsd/gsd-core@latest --claude --local" >&2; exit 1; fi
25
+ GRADUATION_ENABLED=$(gsd_run query config-get features.graduation 2>/dev/null || echo "true")
26
+ GRADUATION_WINDOW=$(gsd_run query config-get features.graduation_window 2>/dev/null || echo "5")
27
+ GRADUATION_THRESHOLD=$(gsd_run query config-get features.graduation_threshold 2>/dev/null || echo "3")
28
+ ```
29
+
30
+ **Skip silently (print nothing) if:**
31
+ - `features.graduation` is `false`
32
+ - Fewer than `graduation_threshold` completed prior phases exist (not enough data)
33
+
34
+ **Skip silently (print nothing) if total items across all LEARNINGS.md files in the window is fewer than 5.**
35
+
36
+ ---
37
+
38
+ ## Step 2: Collect LEARNINGS.md Files
39
+
40
+ Find LEARNINGS.md files from the last N completed phases (excluding the phase currently completing):
41
+
42
+ ```bash
43
+ find .planning/phases -name "*-LEARNINGS.md" | sort | tail -n "$GRADUATION_WINDOW"
44
+ ```
45
+
46
+ For each file found:
47
+ 1. Parse the four category sections: `## Decisions`, `## Lessons`, `## Patterns`, `## Surprises`
48
+ 2. Extract each `### Item Title` + body as a single item record: `{ category, title, body, source_phase, source_file }`
49
+ 3. **Skip items that already contain `**Graduated:**`** — they have been promoted and must not re-surface
50
+
51
+ ---
52
+
53
+ ## Step 3: Cluster by Lexical Similarity
54
+
55
+ For each category independently, cluster items using Jaccard similarity on tokenized title+body:
56
+
57
+ **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).
58
+
59
+ **Jaccard similarity:** `|A ∩ B| / |A ∪ B|` where A and B are token sets. Two items are in the same cluster if similarity ≥ 0.25.
60
+
61
+ **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.
62
+
63
+ **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).
64
+
65
+ ---
66
+
67
+ ## Step 4: Check graduation_backlog in STATE.md
68
+
69
+ Read `.planning/STATE.md` `graduation_backlog` section (if present). Format:
70
+
71
+ ```yaml
72
+ graduation_backlog:
73
+ - cluster_id: "{sha256-of-cluster-title}"
74
+ status: "dismissed" # or "deferred"
75
+ deferred_until: "phase-N" # only for deferred entries
76
+ cluster_title: "{representative title}"
77
+ ```
78
+
79
+ **Skip any cluster whose `cluster_id` matches a `dismissed` entry.**
80
+
81
+ **Skip any cluster whose `cluster_id` matches a `deferred` entry where `deferred_until` phase has not yet completed.**
82
+
83
+ ---
84
+
85
+ ## Step 5: Surface Promotion Candidates
86
+
87
+ For each qualifying cluster, determine the suggested target file:
88
+
89
+ | Category | Suggested Target |
90
+ |----------|-----------------|
91
+ | `decisions` | `PROJECT.md` — append under `## Validated Decisions` (create section if absent) |
92
+ | `patterns` | `PATTERNS.md` — append under the appropriate category section (create file if absent) |
93
+ | `lessons` | `PROJECT.md` — append under `## Invariants` (create section if absent) |
94
+ | `surprises` | Flag for human review — if genuinely surprising 3+ times, something structural is wrong |
95
+
96
+ Print the graduation report:
97
+
98
+ ```text
99
+ 📚 Graduation scan across phases {M}–{N}:
100
+
101
+ HIGH RECURRENCE ({K}/{WINDOW} phases)
102
+ ├─ Cluster: "{representative title}"
103
+ ├─ Category: {category}
104
+ ├─ Sources: {list of NN-LEARNINGS filenames}
105
+ └─ Suggested target: {target file} § {section}
106
+
107
+ [repeat for each qualifying cluster, ordered HIGH→LOW recurrence]
108
+
109
+ For each cluster above, choose an action:
110
+ P = Promote now D = Defer (re-surface next transition) X = Dismiss (never re-surface) A = Defer all remaining
111
+ ```
112
+
113
+ ---
114
+
115
+ ## Step 6: HITL — Process Each Cluster
116
+
117
+ For each cluster (in order from Step 5), ask the developer:
118
+
119
+ ```text
120
+ Cluster: "{title}" [{category}, {K} phases] → {target}
121
+ Action [P/D/X/A]:
122
+ ```
123
+
124
+ 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).
125
+
126
+ **On `P` (Promote now):**
127
+
128
+ 1. Read the target file (or create it with a standard header if absent)
129
+ 2. Append the cluster entry under the suggested section:
130
+ ```markdown
131
+ ### {Cluster representative title}
132
+ {Merged body — combine unique sentences across cluster items}
133
+
134
+ **Sources:** Phase {A}, Phase {B}, Phase {C}
135
+ **Promoted:** {ISO_DATE}
136
+ ```
137
+ 3. For each source LEARNINGS.md item in the cluster, append `**Graduated:** {target-file}:{ISO_DATE}` after its last existing field
138
+ 4. Commit both the target file and all annotated LEARNINGS.md files in a single atomic commit:
139
+ `docs(learnings): graduate "{cluster title}" to {target-file}`
140
+
141
+ **On `D` (Defer):**
142
+
143
+ Write to `.planning/STATE.md` under `graduation_backlog`:
144
+ ```yaml
145
+ - cluster_id: "{sha256}"
146
+ status: "deferred"
147
+ deferred_until: "phase-{NEXT_PHASE_NUMBER}"
148
+ cluster_title: "{title}"
149
+ ```
150
+
151
+ **On `X` (Dismiss):**
152
+
153
+ Write to `.planning/STATE.md` under `graduation_backlog`:
154
+ ```yaml
155
+ - cluster_id: "{sha256}"
156
+ status: "dismissed"
157
+ cluster_title: "{title}"
158
+ ```
159
+
160
+ **On `A` (Defer all):**
161
+
162
+ Defer the current cluster (same as `D`) and skip all remaining clusters for this run, deferring each to the next transition. Print:
163
+ ```text
164
+ [graduation: deferred all remaining clusters to next transition]
165
+ ```
166
+ Then proceed directly to Step 7.
167
+
168
+ ---
169
+
170
+ ## Step 7: Completion Report
171
+
172
+ After processing all clusters, print:
173
+
174
+ ```text
175
+ Graduation complete: {promoted} promoted, {deferred} deferred, {dismissed} dismissed.
176
+ ```
177
+
178
+ If no clusters qualified (all filtered by backlog or threshold), print:
179
+ ```text
180
+ [graduation: no qualifying clusters in phases {M}–{N}]
181
+ ```
182
+
183
+ ---
184
+
185
+ ## First-Run Behaviour
186
+
187
+ 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.
188
+
189
+ ---
190
+
191
+ ## No-Op Conditions (silent skip)
192
+
193
+ - `features.graduation = false`
194
+ - Fewer than `graduation_threshold` prior phases with LEARNINGS.md
195
+ - Total items < 5 across the window
196
+ - All qualifying clusters are in `graduation_backlog` as dismissed
@@ -0,0 +1,224 @@
1
+ <purpose>
2
+ Validate `.planning/` directory integrity and report actionable issues. Checks for missing files, invalid configurations, inconsistent state, and orphaned plans. Optionally repairs auto-fixable issues.
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 `--repair`, `--backfill`, or `--context` flags are present in the command arguments.
15
+
16
+ ```
17
+ REPAIR_FLAG=""
18
+ BACKFILL_FLAG=""
19
+ CONTEXT_MODE=""
20
+ if arguments contain "--repair"; then
21
+ REPAIR_FLAG="--repair"
22
+ fi
23
+ if arguments contain "--backfill"; then
24
+ BACKFILL_FLAG="--backfill"
25
+ fi
26
+ if arguments contain "--context"; then
27
+ CONTEXT_MODE="true"
28
+ fi
29
+ ```
30
+
31
+ If `CONTEXT_MODE` is set, jump to the `context_check` step and skip the
32
+ integrity validation steps. The two modes are orthogonal — context utilization
33
+ has nothing to do with `.planning/` directory health.
34
+ </step>
35
+
36
+ <step name="context_check">
37
+ **Run only when `--context` is set.**
38
+
39
+ The model running this workflow self-reports the current session's
40
+ approximate `tokensUsed` and the active model's `contextWindow`. Use the values
41
+ visible in your runtime (Claude Code's `/context` slash command output, or the
42
+ model's own session telemetry). If the runtime exposes neither, prompt the user
43
+ once via AskUserQuestion for both numbers.
44
+
45
+ **TEXT_MODE fallback:** when `text_mode` is true (config or `--text` flag) the
46
+ runtime is non-Claude (Codex, Gemini, etc.) and `AskUserQuestion` is not
47
+ available — replace the prompt with a plain-text two-question sequence
48
+ ("Approximate tokens used? Context window size?") and read the answers as
49
+ plain text from the user's response.
50
+
51
+ ```bash
52
+ _GSD_SHIM_NAME="gsd-tools.cjs"; _GSD_RUNTIME_ROOT="${RUNTIME_DIR:-$(git rev-parse --show-toplevel 2>/dev/null || pwd)}"; GSD_TOOLS="${_GSD_RUNTIME_ROOT}/get-shit-done/bin/${_GSD_SHIM_NAME}"; if [ -f "$GSD_TOOLS" ]; then gsd_run() { node "$GSD_TOOLS" "$@"; }; elif [ -f "${_GSD_RUNTIME_ROOT}/.claude/get-shit-done/bin/${_GSD_SHIM_NAME}" ]; then GSD_TOOLS="${_GSD_RUNTIME_ROOT}/.claude/get-shit-done/bin/${_GSD_SHIM_NAME}"; gsd_run() { node "$GSD_TOOLS" "$@"; }; elif command -v gsd-tools >/dev/null 2>&1; then GSD_TOOLS="$(command -v gsd-tools)"; gsd_run() { "$GSD_TOOLS" "$@"; }; elif [ -f "$HOME/.claude/get-shit-done/bin/${_GSD_SHIM_NAME}" ]; then GSD_TOOLS="$HOME/.claude/get-shit-done/bin/${_GSD_SHIM_NAME}"; gsd_run() { node "$GSD_TOOLS" "$@"; }; else echo "ERROR: gsd-tools.cjs not found at $GSD_TOOLS and gsd-tools is not on PATH. Run: npx -y @opengsd/gsd-core@latest --claude --local" >&2; exit 1; fi
53
+ gsd_run query validate.context \
54
+ --tokens-used "$TOKENS_USED" \
55
+ --context-window "$CONTEXT_WINDOW"
56
+ ```
57
+
58
+ The query prints a one-line status (`Context utilization: NN% (state)`) plus
59
+ a recommendation line for the warning and critical states. Print the SDK
60
+ output verbatim and end the workflow — do **not** mix in `.planning/`
61
+ health output, the two modes are independent diagnostics.
62
+ </step>
63
+
64
+ <step name="run_health_check">
65
+ **Run health validation:**
66
+
67
+ ```bash
68
+ gsd_run query validate.health $REPAIR_FLAG $BACKFILL_FLAG
69
+ ```
70
+
71
+ Parse JSON output:
72
+ - `status`: "healthy" | "degraded" | "broken"
73
+ - `errors[]`: Critical issues (code, message, fix, repairable)
74
+ - `warnings[]`: Non-critical issues
75
+ - `info[]`: Informational notes
76
+ - `repairable_count`: Number of auto-fixable issues
77
+ - `repairs_performed[]`: Actions taken if --repair was used
78
+ </step>
79
+
80
+ <step name="format_output">
81
+ **Format and display results:**
82
+
83
+ ```
84
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
85
+ GSD Health Check
86
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
87
+
88
+ Status: HEALTHY | DEGRADED | BROKEN
89
+ Errors: N | Warnings: N | Info: N
90
+ ```
91
+
92
+ **If repairs were performed:**
93
+ ```
94
+ ## Repairs Performed
95
+
96
+ - ✓ config.json: Created with defaults
97
+ - ✓ STATE.md: Regenerated from roadmap
98
+ ```
99
+
100
+ **If errors exist:**
101
+ ```
102
+ ## Errors
103
+
104
+ - [E001] config.json: JSON parse error at line 5
105
+ Fix: Run /gsd:health --repair to reset to defaults
106
+
107
+ - [E002] PROJECT.md not found
108
+ Fix: Run /gsd:new-project to create
109
+ ```
110
+
111
+ **If warnings exist:**
112
+ ```
113
+ ## Warnings
114
+
115
+ - [W002] STATE.md references phase 5, but only phases 1-3 exist
116
+ Fix: Review STATE.md manually before changing it; repair will not overwrite an existing STATE.md
117
+
118
+ - [W005] Phase directory "1-setup" doesn't follow NN-name format
119
+ Fix: Rename to match pattern (e.g., 01-setup)
120
+ ```
121
+
122
+ **If info exists:**
123
+ ```
124
+ ## Info
125
+
126
+ - [I001] 02-implementation/02-01-PLAN.md has no SUMMARY.md
127
+ Note: May be in progress
128
+ ```
129
+
130
+ **Footer (if repairable issues exist and --repair was NOT used):**
131
+ ```
132
+ ---
133
+ N issues can be auto-repaired. Run: /gsd:health --repair
134
+ ```
135
+ </step>
136
+
137
+ <step name="offer_repair">
138
+ **If repairable issues exist and --repair was NOT used:**
139
+
140
+ Ask user if they want to run repairs:
141
+
142
+ ```
143
+ Would you like to run /gsd:health --repair to fix N issues automatically?
144
+ ```
145
+
146
+ If yes, re-run with --repair flag and display results.
147
+ </step>
148
+
149
+ <step name="verify_repairs">
150
+ **If repairs were performed:**
151
+
152
+ Re-run health check without --repair to confirm issues are resolved:
153
+
154
+ ```bash
155
+ gsd_run query validate.health
156
+ ```
157
+
158
+ Report final status.
159
+ </step>
160
+
161
+ </process>
162
+
163
+ <error_codes>
164
+
165
+ | Code | Severity | Description | Repairable |
166
+ |------|----------|-------------|------------|
167
+ | E001 | error | .planning/ directory not found | No |
168
+ | E002 | error | PROJECT.md not found | No |
169
+ | E003 | error | ROADMAP.md not found | No |
170
+ | E004 | error | STATE.md not found | Yes |
171
+ | E005 | error | config.json parse error | Yes |
172
+ | W001 | warning | PROJECT.md missing required section | No |
173
+ | W002 | warning | STATE.md references invalid phase | No |
174
+ | W003 | warning | config.json not found | Yes |
175
+ | W004 | warning | config.json invalid field value | No |
176
+ | W005 | warning | Phase directory naming mismatch | No |
177
+ | W006 | warning | Phase in ROADMAP but no directory | No |
178
+ | W007 | warning | Phase on disk but not in ROADMAP | No |
179
+ | W008 | warning | config.json: workflow.nyquist_validation absent (defaults to enabled but agents may skip) | Yes |
180
+ | W009 | warning | Phase has Validation Architecture in RESEARCH.md but no VALIDATION.md | No |
181
+ | W018 | warning | MILESTONES.md missing entry for archived milestone snapshot | Yes (`--backfill`) |
182
+ | W019 | warning | Unrecognized .planning/ root file — not a canonical GSD artifact | No |
183
+ | I001 | info | Plan without SUMMARY (may be in progress) | No |
184
+
185
+ </error_codes>
186
+
187
+ <repair_actions>
188
+
189
+ | Action | Effect | Risk |
190
+ |--------|--------|------|
191
+ | createConfig | Create config.json with defaults | None |
192
+ | resetConfig | Delete + recreate config.json | Loses custom settings |
193
+ | regenerateState | Create STATE.md from ROADMAP structure when it is missing | Loses session history |
194
+ | addNyquistKey | Add workflow.nyquist_validation: true to config.json | None — matches existing default |
195
+ | backfillMilestones | Synthesize missing MILESTONES.md entries from `.planning/milestones/vX.Y-ROADMAP.md` snapshots | None — additive only; triggered by `--backfill` flag |
196
+
197
+ **Not repairable (too risky):**
198
+ - PROJECT.md, ROADMAP.md content
199
+ - Phase directory renaming
200
+ - Orphaned plan cleanup
201
+
202
+ </repair_actions>
203
+
204
+ <stale_task_cleanup>
205
+ **Windows-specific:** Check for stale Claude Code task directories that accumulate on crash/freeze.
206
+ These are left behind when subagents are force-killed and consume disk space.
207
+
208
+ When `--repair` is active, detect and clean up:
209
+
210
+ ```bash
211
+ # Check for stale task directories (older than 24 hours)
212
+ TASKS_DIR="$HOME/.claude/tasks"
213
+ if [ -d "$TASKS_DIR" ]; then
214
+ STALE_COUNT=$( (find "$TASKS_DIR" -maxdepth 1 -type d -mtime +1 2>/dev/null || true) | wc -l )
215
+ if [ "$STALE_COUNT" -gt 0 ]; then
216
+ echo "⚠️ Found $STALE_COUNT stale task directories in ~/.claude/tasks/"
217
+ echo " These are leftover from crashed subagent sessions."
218
+ echo " Run: rm -rf ~/.claude/tasks/* (safe — only affects dead sessions)"
219
+ fi
220
+ fi
221
+ ```
222
+
223
+ Report as info diagnostic: `I002 | info | Stale subagent task directories found | Yes (--repair removes them)`
224
+ </stale_task_cleanup>
@@ -0,0 +1,22 @@
1
+ <purpose>
2
+ One-liner refresher for returning users. Output ONLY the `<reference>` content below. No additions.
3
+ </purpose>
4
+
5
+ <reference>
6
+ **GSD — top commands**
7
+
8
+ ```text
9
+ /gsd:new-project Initialize a project (greenfield)
10
+ /gsd:map-codebase Map an existing codebase (brownfield)
11
+ /gsd:plan-phase <N> Create a phase plan
12
+ /gsd:execute-phase <N> Execute a phase
13
+ /gsd:progress Where am I, what's next
14
+ /gsd:quick Small ad-hoc task with GSD guarantees
15
+ /gsd:fast "<task>" Trivial inline task — no subagents
16
+ /gsd:debug "<symptom>" Persistent debug session (survives /clear)
17
+ /gsd:capture Save an idea / todo / note
18
+ /gsd:ship <N> Open a PR from a completed phase
19
+ ```
20
+
21
+ More: `/gsd:help` (default tour) · `/gsd:help --full` (everything) · `/gsd:help <topic>` (one section)
22
+ </reference>
@@ -0,0 +1,50 @@
1
+ <purpose>
2
+ One-page newcomer-oriented tour of GSD. Output ONLY the `<reference>` content below. No additions.
3
+ </purpose>
4
+
5
+ <reference>
6
+ # GSD — Get Shit Done
7
+
8
+ Plan-driven development for solo agentic work with Claude Code. GSD turns a vague idea into a hierarchical plan, then executes it phase by phase with state tracking and atomic commits.
9
+
10
+ ## Start here (3 commands)
11
+
12
+ ```text
13
+ /gsd:new-project # Greenfield: questioning → research → requirements → roadmap
14
+ /gsd:plan-phase 1 # Create a detailed plan for phase 1
15
+ /gsd:execute-phase 1 # Execute all plans in the phase
16
+ ```
17
+
18
+ Existing codebase? Run `/gsd:map-codebase` first to ground GSD in your code.
19
+
20
+ ## Common commands
21
+
22
+ | Command | Purpose |
23
+ |---|---|
24
+ | `/gsd:progress` | Where am I, what's next — also routes freeform intent with `--do "..."` |
25
+ | `/gsd:quick` | Small ad-hoc task with GSD guarantees (planning dir + atomic commit) |
26
+ | `/gsd:fast "<task>"` | Trivial inline change — no subagents, ≤3 file edits |
27
+ | `/gsd:discuss-phase <N>` | Capture vision and decisions before planning |
28
+ | `/gsd:debug "<symptom>"` | Persistent debug session, survives `/clear` |
29
+ | `/gsd:capture` | Save an idea, todo, note, seed, or backlog item |
30
+ | `/gsd:verify-work <N>` | Conversational UAT for a completed phase |
31
+ | `/gsd:ship <N>` | Open a PR from a completed phase |
32
+ | `/gsd:help --full` | Complete reference (every command, every flag) |
33
+
34
+ ## Want more?
35
+
36
+ ```text
37
+ /gsd:help --brief # 10-line refresher of top commands
38
+ /gsd:help --full # complete reference
39
+ /gsd:help <topic> # one section only — see topics below
40
+ /gsd:help --brief <topic> # compact scoped lookup — signature + one-line summary
41
+ ```
42
+
43
+ Topics: `workflow` · `planning` · `execute` · `quick` · `debug` · `capture` · `ship` · `config` · `milestones` · `spike` · `sketch` · `review` · `audit` · `progress`
44
+
45
+ ## Update GSD
46
+
47
+ ```bash
48
+ npx @opengsd/gsd-core@latest
49
+ ```
50
+ </reference>