@therocketcode/gsd-core 1.4.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 (568) hide show
  1. package/.claude-plugin/plugin.json +23 -0
  2. package/GEMINI.md +53 -0
  3. package/LICENSE +21 -0
  4. package/README.ja-JP.md +125 -0
  5. package/README.ko-KR.md +125 -0
  6. package/README.md +144 -0
  7. package/README.pt-BR.md +125 -0
  8. package/README.zh-CN.md +125 -0
  9. package/agents/gsd-advisor-researcher.md +108 -0
  10. package/agents/gsd-ai-researcher.md +114 -0
  11. package/agents/gsd-assumptions-analyzer.md +105 -0
  12. package/agents/gsd-code-fixer.md +668 -0
  13. package/agents/gsd-code-reviewer.md +387 -0
  14. package/agents/gsd-codebase-mapper.md +853 -0
  15. package/agents/gsd-debug-session-manager.md +314 -0
  16. package/agents/gsd-debugger.md +1452 -0
  17. package/agents/gsd-doc-classifier.md +168 -0
  18. package/agents/gsd-doc-synthesizer.md +204 -0
  19. package/agents/gsd-doc-verifier.md +217 -0
  20. package/agents/gsd-doc-writer.md +616 -0
  21. package/agents/gsd-domain-researcher.md +147 -0
  22. package/agents/gsd-eval-auditor.md +191 -0
  23. package/agents/gsd-eval-planner.md +154 -0
  24. package/agents/gsd-executor.md +785 -0
  25. package/agents/gsd-framework-selector.md +160 -0
  26. package/agents/gsd-integration-checker.md +470 -0
  27. package/agents/gsd-intel-updater.md +342 -0
  28. package/agents/gsd-nyquist-auditor.md +203 -0
  29. package/agents/gsd-pattern-mapper.md +335 -0
  30. package/agents/gsd-phase-researcher.md +867 -0
  31. package/agents/gsd-plan-checker.md +978 -0
  32. package/agents/gsd-planner.md +1204 -0
  33. package/agents/gsd-project-researcher.md +611 -0
  34. package/agents/gsd-research-synthesizer.md +259 -0
  35. package/agents/gsd-roadmapper.md +688 -0
  36. package/agents/gsd-security-auditor.md +155 -0
  37. package/agents/gsd-ui-auditor.md +495 -0
  38. package/agents/gsd-ui-checker.md +309 -0
  39. package/agents/gsd-ui-researcher.md +374 -0
  40. package/agents/gsd-user-profiler.md +171 -0
  41. package/agents/gsd-verifier.md +923 -0
  42. package/assets/gsd-logo-2000-transparent.png +0 -0
  43. package/assets/gsd-logo-2000-transparent.svg +17 -0
  44. package/assets/gsd-logo-2000.png +0 -0
  45. package/assets/gsd-logo-2000.svg +21 -0
  46. package/assets/terminal.svg +68 -0
  47. package/bin/install.js +12726 -0
  48. package/bin/lib/ui-safety-gate.cjs +107 -0
  49. package/commands/gsd/add-tests.md +42 -0
  50. package/commands/gsd/ai-integration-phase.md +37 -0
  51. package/commands/gsd/audit-fix.md +34 -0
  52. package/commands/gsd/audit-milestone.md +37 -0
  53. package/commands/gsd/audit-uat.md +24 -0
  54. package/commands/gsd/autonomous.md +48 -0
  55. package/commands/gsd/capture.md +62 -0
  56. package/commands/gsd/cleanup.md +24 -0
  57. package/commands/gsd/code-review.md +59 -0
  58. package/commands/gsd/complete-milestone.md +143 -0
  59. package/commands/gsd/config.md +56 -0
  60. package/commands/gsd/debug.md +52 -0
  61. package/commands/gsd/discover-product.md +65 -0
  62. package/commands/gsd/discuss-phase.md +77 -0
  63. package/commands/gsd/docs-update.md +49 -0
  64. package/commands/gsd/eval-review.md +33 -0
  65. package/commands/gsd/execute-phase.md +66 -0
  66. package/commands/gsd/explore.md +27 -0
  67. package/commands/gsd/extract-learnings.md +23 -0
  68. package/commands/gsd/fast.md +31 -0
  69. package/commands/gsd/forensics.md +57 -0
  70. package/commands/gsd/graphify.md +204 -0
  71. package/commands/gsd/health.md +31 -0
  72. package/commands/gsd/help.md +28 -0
  73. package/commands/gsd/import.md +45 -0
  74. package/commands/gsd/inbox.md +39 -0
  75. package/commands/gsd/ingest-docs.md +42 -0
  76. package/commands/gsd/manager.md +45 -0
  77. package/commands/gsd/map-codebase.md +83 -0
  78. package/commands/gsd/milestone-summary.md +51 -0
  79. package/commands/gsd/model-domain.md +65 -0
  80. package/commands/gsd/mvp-phase.md +45 -0
  81. package/commands/gsd/new-milestone.md +45 -0
  82. package/commands/gsd/new-project.md +47 -0
  83. package/commands/gsd/ns-context.md +23 -0
  84. package/commands/gsd/ns-ideate.md +24 -0
  85. package/commands/gsd/ns-manage.md +29 -0
  86. package/commands/gsd/ns-project.md +22 -0
  87. package/commands/gsd/ns-review.md +26 -0
  88. package/commands/gsd/ns-workflow.md +28 -0
  89. package/commands/gsd/pause-work.md +43 -0
  90. package/commands/gsd/phase.md +56 -0
  91. package/commands/gsd/plan-phase.md +64 -0
  92. package/commands/gsd/plan-review-convergence.md +59 -0
  93. package/commands/gsd/pr-branch.md +26 -0
  94. package/commands/gsd/profile-user.md +46 -0
  95. package/commands/gsd/progress.md +48 -0
  96. package/commands/gsd/quick.md +174 -0
  97. package/commands/gsd/recommend-architecture.md +64 -0
  98. package/commands/gsd/resume-work.md +30 -0
  99. package/commands/gsd/review-backlog.md +63 -0
  100. package/commands/gsd/review.md +42 -0
  101. package/commands/gsd/secure-phase.md +36 -0
  102. package/commands/gsd/settings.md +29 -0
  103. package/commands/gsd/ship.md +24 -0
  104. package/commands/gsd/sketch.md +60 -0
  105. package/commands/gsd/spec-phase.md +63 -0
  106. package/commands/gsd/spike.md +57 -0
  107. package/commands/gsd/stats.md +20 -0
  108. package/commands/gsd/surface.md +155 -0
  109. package/commands/gsd/testing-strategy.md +65 -0
  110. package/commands/gsd/thread.md +24 -0
  111. package/commands/gsd/ui-phase.md +35 -0
  112. package/commands/gsd/ui-review.md +33 -0
  113. package/commands/gsd/ultraplan-phase.md +34 -0
  114. package/commands/gsd/undo.md +35 -0
  115. package/commands/gsd/update.md +49 -0
  116. package/commands/gsd/validate-phase.md +36 -0
  117. package/commands/gsd/verify-work.md +39 -0
  118. package/commands/gsd/workspace.md +52 -0
  119. package/commands/gsd/workstreams.md +70 -0
  120. package/gemini-extension.json +6 -0
  121. package/gsd-core/bin/check-latest-version.cjs +161 -0
  122. package/gsd-core/bin/gsd-tools.cjs +1928 -0
  123. package/gsd-core/bin/lib/active-workstream-store.cjs +291 -0
  124. package/gsd-core/bin/lib/adr-parser.cjs +399 -0
  125. package/gsd-core/bin/lib/agent-command-router.cjs +68 -0
  126. package/gsd-core/bin/lib/artifacts.cjs +51 -0
  127. package/gsd-core/bin/lib/audit.cjs +743 -0
  128. package/gsd-core/bin/lib/check-command-router.cjs +343 -0
  129. package/gsd-core/bin/lib/cjs-command-router-adapter.cjs +81 -0
  130. package/gsd-core/bin/lib/cli-exit.cjs +42 -0
  131. package/gsd-core/bin/lib/clock.cjs +95 -0
  132. package/gsd-core/bin/lib/clusters.cjs +132 -0
  133. package/gsd-core/bin/lib/code-review-flags.cjs +59 -0
  134. package/gsd-core/bin/lib/command-aliases.cjs +809 -0
  135. package/gsd-core/bin/lib/command-arg-projection.cjs +55 -0
  136. package/gsd-core/bin/lib/command-routing-hub.cjs +300 -0
  137. package/gsd-core/bin/lib/commands.cjs +1203 -0
  138. package/gsd-core/bin/lib/config-schema.cjs +29 -0
  139. package/gsd-core/bin/lib/config-types.cjs +19 -0
  140. package/gsd-core/bin/lib/config.cjs +738 -0
  141. package/gsd-core/bin/lib/configuration.cjs +239 -0
  142. package/gsd-core/bin/lib/context-utilization.cjs +48 -0
  143. package/gsd-core/bin/lib/core.cjs +2051 -0
  144. package/gsd-core/bin/lib/decisions.cjs +118 -0
  145. package/gsd-core/bin/lib/docs.cjs +252 -0
  146. package/gsd-core/bin/lib/drift.cjs +364 -0
  147. package/gsd-core/bin/lib/fallow-runner.cjs +115 -0
  148. package/gsd-core/bin/lib/frontmatter.cjs +442 -0
  149. package/gsd-core/bin/lib/gap-checker.cjs +257 -0
  150. package/gsd-core/bin/lib/graphify.cjs +496 -0
  151. package/gsd-core/bin/lib/gsd2-import.cjs +456 -0
  152. package/gsd-core/bin/lib/init-command-router.cjs +62 -0
  153. package/gsd-core/bin/lib/init.cjs +1815 -0
  154. package/gsd-core/bin/lib/install-profiles.cjs +584 -0
  155. package/gsd-core/bin/lib/installer-migration-authoring.cjs +122 -0
  156. package/gsd-core/bin/lib/installer-migration-report.cjs +350 -0
  157. package/gsd-core/bin/lib/installer-migrations/000-first-time-baseline.cjs +218 -0
  158. package/gsd-core/bin/lib/installer-migrations/001-legacy-orphan-files.cjs +48 -0
  159. package/gsd-core/bin/lib/installer-migrations/002-codex-legacy-hooks-json.cjs +94 -0
  160. package/gsd-core/bin/lib/installer-migrations/003-rename-get-shit-done-to-gsd-core.cjs +108 -0
  161. package/gsd-core/bin/lib/installer-migrations.cjs +823 -0
  162. package/gsd-core/bin/lib/intel.cjs +590 -0
  163. package/gsd-core/bin/lib/learnings.cjs +270 -0
  164. package/gsd-core/bin/lib/legacy-cleanup.cjs +253 -0
  165. package/gsd-core/bin/lib/milestone.cjs +373 -0
  166. package/gsd-core/bin/lib/model-catalog.cjs +154 -0
  167. package/gsd-core/bin/lib/model-profiles.cjs +24 -0
  168. package/gsd-core/bin/lib/observability/event.cjs +51 -0
  169. package/gsd-core/bin/lib/observability/logger.cjs +146 -0
  170. package/gsd-core/bin/lib/observability/redaction.cjs +48 -0
  171. package/gsd-core/bin/lib/package-identity.cjs +35 -0
  172. package/gsd-core/bin/lib/package-legitimacy.cjs +368 -0
  173. package/gsd-core/bin/lib/phase-command-router.cjs +189 -0
  174. package/gsd-core/bin/lib/phase-lifecycle.cjs +74 -0
  175. package/gsd-core/bin/lib/phase.cjs +1307 -0
  176. package/gsd-core/bin/lib/phases-command-router.cjs +43 -0
  177. package/gsd-core/bin/lib/plan-scan.cjs +91 -0
  178. package/gsd-core/bin/lib/planning-workspace.cjs +245 -0
  179. package/gsd-core/bin/lib/profile-output.cjs +1120 -0
  180. package/gsd-core/bin/lib/profile-pipeline.cjs +517 -0
  181. package/gsd-core/bin/lib/project-root.cjs +119 -0
  182. package/gsd-core/bin/lib/prompt-budget.cjs +305 -0
  183. package/gsd-core/bin/lib/research-provider.cjs +137 -0
  184. package/gsd-core/bin/lib/research-store.cjs +167 -0
  185. package/gsd-core/bin/lib/review-reviewer-selection.cjs +121 -0
  186. package/gsd-core/bin/lib/roadmap-command-router.cjs +166 -0
  187. package/gsd-core/bin/lib/roadmap-upgrade.cjs +476 -0
  188. package/gsd-core/bin/lib/roadmap.cjs +600 -0
  189. package/gsd-core/bin/lib/runtime-artifact-layout.cjs +312 -0
  190. package/gsd-core/bin/lib/runtime-config-adapter-registry.cjs +56 -0
  191. package/gsd-core/bin/lib/runtime-homes.cjs +190 -0
  192. package/gsd-core/bin/lib/runtime-name-policy.cjs +96 -0
  193. package/gsd-core/bin/lib/runtime-slash.cjs +119 -0
  194. package/gsd-core/bin/lib/schema-detect.cjs +159 -0
  195. package/gsd-core/bin/lib/secrets.cjs +34 -0
  196. package/gsd-core/bin/lib/security.cjs +480 -0
  197. package/gsd-core/bin/lib/semver-compare.cjs +42 -0
  198. package/gsd-core/bin/lib/shell-command-projection.cjs +533 -0
  199. package/gsd-core/bin/lib/state-command-router.cjs +160 -0
  200. package/gsd-core/bin/lib/state-document.cjs +259 -0
  201. package/gsd-core/bin/lib/state.cjs +2010 -0
  202. package/gsd-core/bin/lib/surface.cjs +449 -0
  203. package/gsd-core/bin/lib/task-command-router.cjs +85 -0
  204. package/gsd-core/bin/lib/template.cjs +237 -0
  205. package/gsd-core/bin/lib/uat.cjs +297 -0
  206. package/gsd-core/bin/lib/ui-safety-gate.cjs +98 -0
  207. package/gsd-core/bin/lib/update-context.cjs +218 -0
  208. package/gsd-core/bin/lib/validate-command-router.cjs +91 -0
  209. package/gsd-core/bin/lib/validate.cjs +112 -0
  210. package/gsd-core/bin/lib/verification-command-router.cjs +31 -0
  211. package/gsd-core/bin/lib/verification.cjs +193 -0
  212. package/gsd-core/bin/lib/verify-command-router.cjs +44 -0
  213. package/gsd-core/bin/lib/verify.cjs +1451 -0
  214. package/gsd-core/bin/lib/workstream-inventory-builder.cjs +81 -0
  215. package/gsd-core/bin/lib/workstream-inventory.cjs +147 -0
  216. package/gsd-core/bin/lib/workstream-name-policy.cjs +91 -0
  217. package/gsd-core/bin/lib/workstream.cjs +380 -0
  218. package/gsd-core/bin/lib/worktree-base-ref.cjs +325 -0
  219. package/gsd-core/bin/lib/worktree-safety.cjs +943 -0
  220. package/gsd-core/bin/shared/config-defaults.manifest.json +98 -0
  221. package/gsd-core/bin/shared/config-schema.manifest.json +192 -0
  222. package/gsd-core/bin/shared/model-catalog.json +149 -0
  223. package/gsd-core/bin/shared/runtime-aliases.manifest.json +75 -0
  224. package/gsd-core/bin/verify-reapply-patches.cjs +349 -0
  225. package/gsd-core/contexts/dev.md +21 -0
  226. package/gsd-core/contexts/research.md +22 -0
  227. package/gsd-core/contexts/review.md +23 -0
  228. package/gsd-core/references/agent-contracts.md +79 -0
  229. package/gsd-core/references/ai-evals.md +156 -0
  230. package/gsd-core/references/ai-frameworks.md +186 -0
  231. package/gsd-core/references/architecture-decision.md +74 -0
  232. package/gsd-core/references/artifact-types.md +131 -0
  233. package/gsd-core/references/auth-in-tests.md +91 -0
  234. package/gsd-core/references/autonomous-smart-discuss.md +277 -0
  235. package/gsd-core/references/checkpoints.md +814 -0
  236. package/gsd-core/references/common-bug-patterns.md +114 -0
  237. package/gsd-core/references/context-budget.md +85 -0
  238. package/gsd-core/references/continuation-format.md +253 -0
  239. package/gsd-core/references/db-test-isolation.md +54 -0
  240. package/gsd-core/references/debugger-philosophy.md +76 -0
  241. package/gsd-core/references/decimal-phase-calculation.md +64 -0
  242. package/gsd-core/references/doc-conflict-engine.md +91 -0
  243. package/gsd-core/references/domain-modeling.md +80 -0
  244. package/gsd-core/references/domain-probes.md +125 -0
  245. package/gsd-core/references/e2e-tiering.md +35 -0
  246. package/gsd-core/references/execute-mvp-tdd.md +81 -0
  247. package/gsd-core/references/executor-examples.md +110 -0
  248. package/gsd-core/references/few-shot-examples/plan-checker.md +73 -0
  249. package/gsd-core/references/few-shot-examples/verifier.md +109 -0
  250. package/gsd-core/references/flaky-test-checklist.md +22 -0
  251. package/gsd-core/references/gate-prompts.md +100 -0
  252. package/gsd-core/references/gates.md +70 -0
  253. package/gsd-core/references/git-integration.md +298 -0
  254. package/gsd-core/references/git-planning-commit.md +40 -0
  255. package/gsd-core/references/ios-scaffold.md +123 -0
  256. package/gsd-core/references/mandatory-initial-read.md +2 -0
  257. package/gsd-core/references/model-profile-resolution.md +38 -0
  258. package/gsd-core/references/model-profiles.md +245 -0
  259. package/gsd-core/references/mvp-concepts.md +49 -0
  260. package/gsd-core/references/phase-argument-parsing.md +61 -0
  261. package/gsd-core/references/planner-antipatterns.md +89 -0
  262. package/gsd-core/references/planner-chunked.md +49 -0
  263. package/gsd-core/references/planner-gap-closure.md +62 -0
  264. package/gsd-core/references/planner-graphify-auto-update.md +67 -0
  265. package/gsd-core/references/planner-human-verify-mode.md +57 -0
  266. package/gsd-core/references/planner-interface-context.md +62 -0
  267. package/gsd-core/references/planner-load-graph-context.md +36 -0
  268. package/gsd-core/references/planner-mvp-mode.md +53 -0
  269. package/gsd-core/references/planner-reviews.md +39 -0
  270. package/gsd-core/references/planner-revision.md +87 -0
  271. package/gsd-core/references/planner-source-audit.md +73 -0
  272. package/gsd-core/references/planning-config.md +473 -0
  273. package/gsd-core/references/product-discovery.md +49 -0
  274. package/gsd-core/references/project-skills-discovery.md +19 -0
  275. package/gsd-core/references/questioning.md +162 -0
  276. package/gsd-core/references/realistic-test-data.md +44 -0
  277. package/gsd-core/references/research-documentation-lookup.md +29 -0
  278. package/gsd-core/references/research-philosophy.md +29 -0
  279. package/gsd-core/references/research-verification-protocol.md +27 -0
  280. package/gsd-core/references/revision-loop.md +97 -0
  281. package/gsd-core/references/scout-codebase.md +51 -0
  282. package/gsd-core/references/skeleton-template.md +48 -0
  283. package/gsd-core/references/sketch-interactivity.md +41 -0
  284. package/gsd-core/references/sketch-theme-system.md +94 -0
  285. package/gsd-core/references/sketch-tooling.md +45 -0
  286. package/gsd-core/references/sketch-variant-patterns.md +81 -0
  287. package/gsd-core/references/spidr-splitting.md +69 -0
  288. package/gsd-core/references/tdd.md +330 -0
  289. package/gsd-core/references/test-containers.md +55 -0
  290. package/gsd-core/references/test-strategy.md +75 -0
  291. package/gsd-core/references/thinking-models-debug.md +44 -0
  292. package/gsd-core/references/thinking-models-execution.md +50 -0
  293. package/gsd-core/references/thinking-models-planning.md +62 -0
  294. package/gsd-core/references/thinking-models-research.md +50 -0
  295. package/gsd-core/references/thinking-models-verification.md +55 -0
  296. package/gsd-core/references/thinking-partner.md +96 -0
  297. package/gsd-core/references/ui-brand.md +162 -0
  298. package/gsd-core/references/universal-anti-patterns.md +63 -0
  299. package/gsd-core/references/user-profiling.md +681 -0
  300. package/gsd-core/references/user-story-template.md +58 -0
  301. package/gsd-core/references/verification-overrides.md +227 -0
  302. package/gsd-core/references/verification-patterns.md +612 -0
  303. package/gsd-core/references/verify-mvp-mode.md +85 -0
  304. package/gsd-core/references/workstream-flag.md +111 -0
  305. package/gsd-core/references/worktree-branch-check.md +38 -0
  306. package/gsd-core/references/worktree-path-safety.md +67 -0
  307. package/gsd-core/templates/AI-SPEC.md +246 -0
  308. package/gsd-core/templates/DEBUG.md +169 -0
  309. package/gsd-core/templates/README.md +77 -0
  310. package/gsd-core/templates/SECURITY.md +61 -0
  311. package/gsd-core/templates/UAT.md +265 -0
  312. package/gsd-core/templates/UI-SPEC.md +100 -0
  313. package/gsd-core/templates/VALIDATION.md +76 -0
  314. package/gsd-core/templates/adr.md +58 -0
  315. package/gsd-core/templates/claude-md.md +145 -0
  316. package/gsd-core/templates/codebase/architecture.md +255 -0
  317. package/gsd-core/templates/codebase/concerns.md +310 -0
  318. package/gsd-core/templates/codebase/conventions.md +307 -0
  319. package/gsd-core/templates/codebase/integrations.md +280 -0
  320. package/gsd-core/templates/codebase/stack.md +186 -0
  321. package/gsd-core/templates/codebase/structure.md +285 -0
  322. package/gsd-core/templates/codebase/testing.md +480 -0
  323. package/gsd-core/templates/config.json +62 -0
  324. package/gsd-core/templates/context.md +352 -0
  325. package/gsd-core/templates/continue-here.md +78 -0
  326. package/gsd-core/templates/copilot-instructions.md +7 -0
  327. package/gsd-core/templates/debug-subagent-prompt.md +91 -0
  328. package/gsd-core/templates/dev-preferences.md +21 -0
  329. package/gsd-core/templates/discovery.md +146 -0
  330. package/gsd-core/templates/discussion-log.md +63 -0
  331. package/gsd-core/templates/domain-model.md +54 -0
  332. package/gsd-core/templates/milestone-archive.md +123 -0
  333. package/gsd-core/templates/milestone.md +115 -0
  334. package/gsd-core/templates/phase-prompt.md +610 -0
  335. package/gsd-core/templates/planner-subagent-prompt.md +117 -0
  336. package/gsd-core/templates/product-brief.md +55 -0
  337. package/gsd-core/templates/project.md +186 -0
  338. package/gsd-core/templates/requirements.md +231 -0
  339. package/gsd-core/templates/research-project/ARCHITECTURE.md +204 -0
  340. package/gsd-core/templates/research-project/FEATURES.md +147 -0
  341. package/gsd-core/templates/research-project/PITFALLS.md +200 -0
  342. package/gsd-core/templates/research-project/STACK.md +120 -0
  343. package/gsd-core/templates/research-project/SUMMARY.md +170 -0
  344. package/gsd-core/templates/research.md +592 -0
  345. package/gsd-core/templates/retrospective.md +54 -0
  346. package/gsd-core/templates/roadmap.md +202 -0
  347. package/gsd-core/templates/spec.md +307 -0
  348. package/gsd-core/templates/state.md +195 -0
  349. package/gsd-core/templates/summary-complex.md +59 -0
  350. package/gsd-core/templates/summary-minimal.md +41 -0
  351. package/gsd-core/templates/summary-standard.md +48 -0
  352. package/gsd-core/templates/summary.md +248 -0
  353. package/gsd-core/templates/test-strategy.md +50 -0
  354. package/gsd-core/templates/user-profile.md +146 -0
  355. package/gsd-core/templates/user-setup.md +311 -0
  356. package/gsd-core/templates/verification-report.md +322 -0
  357. package/gsd-core/workflows/_runtime-launcher.snippet.sh +1 -0
  358. package/gsd-core/workflows/add-backlog.md +91 -0
  359. package/gsd-core/workflows/add-phase.md +113 -0
  360. package/gsd-core/workflows/add-tests.md +355 -0
  361. package/gsd-core/workflows/add-todo.md +161 -0
  362. package/gsd-core/workflows/ai-integration-phase.md +295 -0
  363. package/gsd-core/workflows/analyze-dependencies.md +96 -0
  364. package/gsd-core/workflows/audit-fix.md +178 -0
  365. package/gsd-core/workflows/audit-milestone.md +360 -0
  366. package/gsd-core/workflows/audit-uat.md +110 -0
  367. package/gsd-core/workflows/autonomous.md +797 -0
  368. package/gsd-core/workflows/check-todos.md +180 -0
  369. package/gsd-core/workflows/cleanup.md +195 -0
  370. package/gsd-core/workflows/code-review-fix.md +502 -0
  371. package/gsd-core/workflows/code-review.md +658 -0
  372. package/gsd-core/workflows/complete-milestone.md +855 -0
  373. package/gsd-core/workflows/debug.md +237 -0
  374. package/gsd-core/workflows/diagnose-issues.md +245 -0
  375. package/gsd-core/workflows/discover-product.md +112 -0
  376. package/gsd-core/workflows/discovery-phase.md +291 -0
  377. package/gsd-core/workflows/discuss-phase/modes/advisor.md +176 -0
  378. package/gsd-core/workflows/discuss-phase/modes/all.md +28 -0
  379. package/gsd-core/workflows/discuss-phase/modes/analyze.md +44 -0
  380. package/gsd-core/workflows/discuss-phase/modes/auto.md +57 -0
  381. package/gsd-core/workflows/discuss-phase/modes/batch.md +52 -0
  382. package/gsd-core/workflows/discuss-phase/modes/chain.md +98 -0
  383. package/gsd-core/workflows/discuss-phase/modes/default.md +141 -0
  384. package/gsd-core/workflows/discuss-phase/modes/power.md +44 -0
  385. package/gsd-core/workflows/discuss-phase/modes/text.md +55 -0
  386. package/gsd-core/workflows/discuss-phase/templates/checkpoint.json +18 -0
  387. package/gsd-core/workflows/discuss-phase/templates/context.md +136 -0
  388. package/gsd-core/workflows/discuss-phase/templates/discussion-log.md +50 -0
  389. package/gsd-core/workflows/discuss-phase-assumptions.md +675 -0
  390. package/gsd-core/workflows/discuss-phase-power.md +291 -0
  391. package/gsd-core/workflows/discuss-phase.md +499 -0
  392. package/gsd-core/workflows/do.md +111 -0
  393. package/gsd-core/workflows/docs-update.md +1176 -0
  394. package/gsd-core/workflows/edit-phase.md +295 -0
  395. package/gsd-core/workflows/eval-review.md +156 -0
  396. package/gsd-core/workflows/execute-phase/steps/codebase-drift-gate.md +95 -0
  397. package/gsd-core/workflows/execute-phase/steps/per-plan-worktree-gate.md +94 -0
  398. package/gsd-core/workflows/execute-phase/steps/post-merge-gate.md +117 -0
  399. package/gsd-core/workflows/execute-phase.md +1752 -0
  400. package/gsd-core/workflows/execute-plan.md +526 -0
  401. package/gsd-core/workflows/explore.md +146 -0
  402. package/gsd-core/workflows/extract-learnings.md +243 -0
  403. package/gsd-core/workflows/fast.md +124 -0
  404. package/gsd-core/workflows/forensics.md +279 -0
  405. package/gsd-core/workflows/graduation.md +196 -0
  406. package/gsd-core/workflows/health.md +224 -0
  407. package/gsd-core/workflows/help/modes/brief.md +22 -0
  408. package/gsd-core/workflows/help/modes/default.md +50 -0
  409. package/gsd-core/workflows/help/modes/full.md +789 -0
  410. package/gsd-core/workflows/help/modes/topic.md +74 -0
  411. package/gsd-core/workflows/help.md +24 -0
  412. package/gsd-core/workflows/import.md +256 -0
  413. package/gsd-core/workflows/inbox.md +387 -0
  414. package/gsd-core/workflows/ingest-docs.md +340 -0
  415. package/gsd-core/workflows/insert-phase.md +152 -0
  416. package/gsd-core/workflows/list-phase-assumptions.md +178 -0
  417. package/gsd-core/workflows/list-workspaces.md +57 -0
  418. package/gsd-core/workflows/manager.md +393 -0
  419. package/gsd-core/workflows/map-codebase.md +446 -0
  420. package/gsd-core/workflows/milestone-summary.md +224 -0
  421. package/gsd-core/workflows/model-domain.md +162 -0
  422. package/gsd-core/workflows/mvp-phase.md +222 -0
  423. package/gsd-core/workflows/new-milestone.md +635 -0
  424. package/gsd-core/workflows/new-project.md +1555 -0
  425. package/gsd-core/workflows/new-workspace.md +240 -0
  426. package/gsd-core/workflows/next.md +299 -0
  427. package/gsd-core/workflows/node-repair.md +92 -0
  428. package/gsd-core/workflows/note.md +158 -0
  429. package/gsd-core/workflows/pause-work.md +244 -0
  430. package/gsd-core/workflows/plan-milestone-gaps.md +281 -0
  431. package/gsd-core/workflows/plan-phase.md +1814 -0
  432. package/gsd-core/workflows/plan-review-convergence.md +346 -0
  433. package/gsd-core/workflows/plant-seed.md +230 -0
  434. package/gsd-core/workflows/pr-branch.md +157 -0
  435. package/gsd-core/workflows/profile-user.md +453 -0
  436. package/gsd-core/workflows/progress.md +699 -0
  437. package/gsd-core/workflows/quick.md +1017 -0
  438. package/gsd-core/workflows/reapply-patches.md +426 -0
  439. package/gsd-core/workflows/recommend-architecture.md +135 -0
  440. package/gsd-core/workflows/remove-phase.md +156 -0
  441. package/gsd-core/workflows/remove-workspace.md +108 -0
  442. package/gsd-core/workflows/resume-project.md +332 -0
  443. package/gsd-core/workflows/review.md +748 -0
  444. package/gsd-core/workflows/scan.md +107 -0
  445. package/gsd-core/workflows/secure-phase.md +182 -0
  446. package/gsd-core/workflows/session-report.md +146 -0
  447. package/gsd-core/workflows/settings-advanced.md +810 -0
  448. package/gsd-core/workflows/settings-integrations.md +312 -0
  449. package/gsd-core/workflows/settings.md +566 -0
  450. package/gsd-core/workflows/ship.md +405 -0
  451. package/gsd-core/workflows/sketch-wrap-up.md +286 -0
  452. package/gsd-core/workflows/sketch.md +361 -0
  453. package/gsd-core/workflows/spec-phase.md +263 -0
  454. package/gsd-core/workflows/spike-wrap-up.md +307 -0
  455. package/gsd-core/workflows/spike.md +453 -0
  456. package/gsd-core/workflows/stats.md +80 -0
  457. package/gsd-core/workflows/sync-skills.md +182 -0
  458. package/gsd-core/workflows/testing-strategy.md +122 -0
  459. package/gsd-core/workflows/thread.md +222 -0
  460. package/gsd-core/workflows/transition.md +694 -0
  461. package/gsd-core/workflows/ui-phase.md +328 -0
  462. package/gsd-core/workflows/ui-review.md +193 -0
  463. package/gsd-core/workflows/ultraplan-phase.md +199 -0
  464. package/gsd-core/workflows/undo.md +314 -0
  465. package/gsd-core/workflows/update.md +496 -0
  466. package/gsd-core/workflows/validate-phase.md +181 -0
  467. package/gsd-core/workflows/verify-phase.md +544 -0
  468. package/gsd-core/workflows/verify-work.md +781 -0
  469. package/hooks/dist/gsd-check-update-worker.js +108 -0
  470. package/hooks/dist/gsd-check-update.js +66 -0
  471. package/hooks/dist/gsd-config-reload.js +133 -0
  472. package/hooks/dist/gsd-context-monitor.js +195 -0
  473. package/hooks/dist/gsd-cursor-post-tool.js +75 -0
  474. package/hooks/dist/gsd-cursor-session-start.js +52 -0
  475. package/hooks/dist/gsd-graphify-update.sh +158 -0
  476. package/hooks/dist/gsd-phase-boundary.sh +47 -0
  477. package/hooks/dist/gsd-prompt-guard.js +97 -0
  478. package/hooks/dist/gsd-read-guard.js +101 -0
  479. package/hooks/dist/gsd-read-injection-scanner.js +203 -0
  480. package/hooks/dist/gsd-session-state.sh +59 -0
  481. package/hooks/dist/gsd-statusline.js +566 -0
  482. package/hooks/dist/gsd-update-banner.js +138 -0
  483. package/hooks/dist/gsd-validate-commit.sh +57 -0
  484. package/hooks/dist/gsd-workflow-guard.js +167 -0
  485. package/hooks/dist/gsd-worktree-path-guard.js +169 -0
  486. package/hooks/dist/lib/git-cmd.js +150 -0
  487. package/hooks/dist/lib/gsd-graphify-rebuild.sh +65 -0
  488. package/hooks/dist/managed-hooks-registry.cjs +38 -0
  489. package/hooks/gsd-check-update-worker.js +108 -0
  490. package/hooks/gsd-check-update.js +66 -0
  491. package/hooks/gsd-config-reload.js +133 -0
  492. package/hooks/gsd-context-monitor.js +195 -0
  493. package/hooks/gsd-cursor-post-tool.js +75 -0
  494. package/hooks/gsd-cursor-session-start.js +52 -0
  495. package/hooks/gsd-graphify-update.sh +158 -0
  496. package/hooks/gsd-phase-boundary.sh +47 -0
  497. package/hooks/gsd-prompt-guard.js +97 -0
  498. package/hooks/gsd-read-guard.js +101 -0
  499. package/hooks/gsd-read-injection-scanner.js +203 -0
  500. package/hooks/gsd-session-state.sh +59 -0
  501. package/hooks/gsd-statusline.js +566 -0
  502. package/hooks/gsd-update-banner.js +138 -0
  503. package/hooks/gsd-validate-commit.sh +57 -0
  504. package/hooks/gsd-workflow-guard.js +167 -0
  505. package/hooks/gsd-worktree-path-guard.js +169 -0
  506. package/hooks/hooks.json +69 -0
  507. package/hooks/lib/git-cmd.js +150 -0
  508. package/hooks/lib/gsd-graphify-rebuild.sh +65 -0
  509. package/hooks/managed-hooks-registry.cjs +38 -0
  510. package/package.json +115 -0
  511. package/scripts/affected-tests-lib.cjs +542 -0
  512. package/scripts/audit-workflow-script-paths.cjs +73 -0
  513. package/scripts/base64-scan.sh +351 -0
  514. package/scripts/build-hooks.js +247 -0
  515. package/scripts/changeset/README.md +129 -0
  516. package/scripts/changeset/cli.cjs +590 -0
  517. package/scripts/changeset/github-release-notes.cjs +199 -0
  518. package/scripts/changeset/lint.cjs +111 -0
  519. package/scripts/changeset/new.cjs +137 -0
  520. package/scripts/changeset/parse.cjs +114 -0
  521. package/scripts/changeset/render.cjs +34 -0
  522. package/scripts/changeset/serialize.cjs +130 -0
  523. package/scripts/check-alias-drift.cjs +114 -0
  524. package/scripts/check-env.cjs +312 -0
  525. package/scripts/check-npm-integrity.cjs +215 -0
  526. package/scripts/ci-guard-runner.cjs +22 -0
  527. package/scripts/ci-prepare-test-scope.cjs +51 -0
  528. package/scripts/ci-rebase-check.cjs +86 -0
  529. package/scripts/ci-test-scope.cjs +431 -0
  530. package/scripts/command-contract-helpers.cjs +64 -0
  531. package/scripts/diff-touches-shipped-paths.cjs +155 -0
  532. package/scripts/fix-slash-commands.cjs +147 -0
  533. package/scripts/gen-inventory-manifest.cjs +115 -0
  534. package/scripts/gen-research-agents.cjs +276 -0
  535. package/scripts/generate-package-identity.cjs +125 -0
  536. package/scripts/issue-dedupe.cjs +278 -0
  537. package/scripts/lib/allowlist-ratchet.cjs +136 -0
  538. package/scripts/lib/cli-exit.cjs +56 -0
  539. package/scripts/lint-command-contract.cjs +114 -0
  540. package/scripts/lint-descriptions.cjs +87 -0
  541. package/scripts/lint-docs-required.cjs +222 -0
  542. package/scripts/lint-legacy-dir-name.cjs +160 -0
  543. package/scripts/lint-package-identity-drift.cjs +141 -0
  544. package/scripts/lint-pr-check-project-dir.cjs +99 -0
  545. package/scripts/lint-shell-command-projection-drift.cjs +62 -0
  546. package/scripts/lint-skill-deps.cjs +185 -0
  547. package/scripts/lint-test-file-count.allowlist.json +135 -0
  548. package/scripts/lint-test-file-count.cjs +246 -0
  549. package/scripts/mutation-matrix.cjs +222 -0
  550. package/scripts/pr-template-policy.cjs +268 -0
  551. package/scripts/prompt-injection-scan.sh +207 -0
  552. package/scripts/release-notes/discord-release-summary.cjs +373 -0
  553. package/scripts/release-notes/format-github-release-notes.cjs +261 -0
  554. package/scripts/release-tarball-smoke.cjs +629 -0
  555. package/scripts/research-profiles.cjs +149 -0
  556. package/scripts/run-affected-tests.cjs +7 -0
  557. package/scripts/run-cross-platform-tests.cjs +67 -0
  558. package/scripts/run-tests.cjs +315 -0
  559. package/scripts/secret-scan-lint.sh +231 -0
  560. package/scripts/secret-scan.sh +358 -0
  561. package/scripts/setup-branch-protection.sh +236 -0
  562. package/scripts/strip-prose-atrefs.cjs +106 -0
  563. package/scripts/sync-manifest-versions.cjs +119 -0
  564. package/scripts/sync-rulesets.sh +34 -0
  565. package/scripts/sync-runtime-launcher.cjs +399 -0
  566. package/scripts/test-failure-reasons.cjs +34 -0
  567. package/scripts/verify-npm-publish.cjs +240 -0
  568. package/scripts/workflow-policy.cjs +450 -0
@@ -0,0 +1,109 @@
1
+ ---
2
+ component: verifier
3
+ version: 2
4
+ last_calibrated: 2026-03-25
5
+ calibration_source: "Adapted from thinking-partner verification corpus"
6
+ ---
7
+
8
+ # Verifier Few-Shot Examples
9
+
10
+ ## Positive Examples
11
+
12
+ ### Example 1: Thorough multi-level artifact verification with real gap discovery
13
+
14
+ **Input:** Must-have artifact: `gsd-core/workflows/context-bridge.md: >50 lines`
15
+
16
+ **Output:**
17
+
18
+ > **L1 (Existence):** EXISTS -- `gsd-core/workflows/context-bridge.md` found, 187 lines.
19
+ > **L2 (Substantive):** SUBSTANTIVE -- No TODO/FIXME markers, 4 defined sections (`updateContextTier`, `getContextBudget`, `injectContextWarning`, `resetTierState`), non-trivial logic with config reads and threshold calculations.
20
+ > **L3 (Wired):** WIRED -- Referenced by `gsd-core/workflows/execute-phase.md` at step 3. Called by `agents/gsd-executor.md` via @-reference include. Arguments verified: receives planning directory path matching the expected parameter.
21
+ > **Status: PASSED**
22
+
23
+ **Why this is good:** The verifier checked all three levels independently with specific evidence at each level -- file path, line count, exported symbols, import location, and argument verification. It did not stop at "file exists" but traced wiring through to actual usage with correct arguments.
24
+
25
+ ### Example 2: Correct FAILED classification with grep evidence
26
+
27
+ **Input:** Must-have truth: `validate-commit.js rejects commits missing scope parentheses`
28
+
29
+ **Output:**
30
+
31
+ > **Method:** Ran `grep -n "scope" gsd-core/bin/validate-commit.js` to locate scope validation logic.
32
+ > **Evidence:** Lines 34-41 show regex `/^(feat|fix|refactor|test|docs|chore|wip)\(/` which requires opening paren after type. However, no test for MISSING closing paren exists -- the regex accepts `feat(: description` (missing scope content and closing paren).
33
+ > **Ran:** `echo "feat(: test" | node gsd-core/bin/validate-commit.js` -- exit code 0 (accepted).
34
+ > **Status: FAILED** -- Commit messages with empty scope `feat(: desc)` are accepted. The truth "rejects commits missing scope parentheses" does not hold for empty-scope edge case.
35
+
36
+ **Why this is good:** The verifier did not trust the code's intent -- it ran an actual test with an edge case input and reported the specific failure. Evidence includes the regex, the test command, the exit code, and why the truth does not hold.
37
+
38
+ ### Example 3: Catching missing wiring (calibration-derived gap pattern)
39
+
40
+ **Input:** Must-have key_link: `check-subagent-output.js imports and calls feedback-loop.js extractFeedback()`
41
+
42
+ **Output:**
43
+
44
+ > **Method:** Ran `grep -n "feedback-loop\|extractFeedback" gsd-core/bin/check-subagent-output.js`.
45
+ > **Evidence:** Zero matches. The file `feedback-loop.js` exists (172 lines, substantive), and `tests/feedback-loop.test.js` passes (229 lines). But `check-subagent-output.js` never imports or calls it.
46
+ > **Cross-check:** `grep -rn "require.*feedback-loop" gsd-core/bin/` returns zero results across all scripts.
47
+ > **Status: FAILED** -- The artifact exists and is tested, but is completely orphaned. The key_link "imports and calls" does not hold. This is a **missing wiring** gap.
48
+
49
+ **Why this is good:** The verifier caught a common calibration pattern: code that exists, is tested, but is never actually wired into the system. L1 and L2 pass, but L3 (wiring) fails. This pattern accounts for 37% of all gaps found in calibration corpus.
50
+
51
+ ### Example 4: Catching missing config schema entries (calibration-derived gap pattern)
52
+
53
+ **Input:** Must-have truth: `Config toggles features.architecture_graph and features.architecture_guard exist with defaults`
54
+
55
+ **Output:**
56
+
57
+ > **Method:** Ran `grep "architecture_graph\|architecture_guard" gsd-core/bin/lib/config-schema.json`.
58
+ > **Evidence:** Zero matches in schema. However, `grep "architecture" gsd-core/bin/lib/config.cjs` shows both flags in CONFIG_DEFAULTS (lines 426, 428).
59
+ > **Gap:** Defaults exist in code but schema validation doesn't know about them. `configValidate()` would strip these fields on load, making the defaults unreachable.
60
+ > **Status: FAILED** -- Config flags work in code but are invisible to schema validation. This is a **missing wiring** gap between config layers.
61
+
62
+ **Why this is good:** The verifier checked multiple config layers (schema vs defaults vs code) rather than just one. Config wiring requires schema + defaults + code to agree -- checking only one layer misses layer-mismatch bugs.
63
+
64
+ ### Example 5: Distinguishing planning gaps from execution failures
65
+
66
+ **Input:** Must-have truth: `All MSYS regex patterns consolidated into shared module`
67
+
68
+ **Output:**
69
+
70
+ > **Method:** Ran `grep -rn "\/\[a-zA-Z\]\/" gsd-core/bin/` to find inline MSYS regex.
71
+ > **Evidence:** 2 matches in `commands/gsd/misc.md` (lines 26, 487). These were NOT in the original plan scope -- Phase 148 extracted code into misc.md AFTER Phase 149's plan was written.
72
+ > **Assessment:** The executor correctly completed all planned tasks. The gap is a **planning ordering issue**, not an execution failure.
73
+ > **Status: PASS_WITH_NOTES** -- Executor did what was planned. Unconsolidated regex noted as follow-up, not as a failure of this phase.
74
+
75
+ **Why this is good:** The verifier distinguished between what was planned vs what exists now. Code that changed AFTER plan creation is a planning gap, not an executor failure. This prevents false FAIL verdicts on correctly-executed work.
76
+
77
+ ## Calibration-Derived Gap Patterns
78
+
79
+ Based on analysis of verification corpus (80% pass rate, 8 gaps):
80
+
81
+ | Pattern | Count | % of Gaps | What to Check |
82
+ |---------|-------|-----------|---------------|
83
+ | Missing wiring | 3 | 37% | File exists + tested but never imported/called by consumer |
84
+ | Missing tests | 2 | 25% | Feature works but test file excluded from CI or never runs |
85
+ | Other | 3 | 38% | Config layer mismatches, planning ordering issues, schema gaps |
86
+
87
+ ## Negative Examples
88
+
89
+ ### Example 1: Blanket pass with no per-criterion evidence
90
+
91
+ **Input:** Must-haves: 5 truths, 3 artifacts, 2 key_links from plan frontmatter.
92
+
93
+ **Output:**
94
+
95
+ > All must-haves have been verified. The implementation matches the plan requirements. Files exist and are properly connected. Status: PASSED.
96
+ > must_haves_checked: 10, must_haves_passed: 10
97
+
98
+ **Why this is bad:** No individual must-have is listed or checked. No file paths, no line numbers, no grep output, no level-by-level breakdown. The verifier restated the must-haves as passing without showing any evidence. This would miss stubs, orphaned exports, and broken wiring.
99
+
100
+ ### Example 2: File existence check without substance or wiring verification
101
+
102
+ **Input:** Must-have artifact: `gsd-core/bin/lib/audit-checks/index.cjs: >100 lines`
103
+
104
+ **Output:**
105
+
106
+ > **L1 (Existence):** EXISTS -- File found at `gsd-core/bin/lib/audit-checks/index.cjs`, 142 lines.
107
+ > **Status: PASSED**
108
+
109
+ **Why this is bad:** The verifier stopped at Level 1. The file has 142 lines but could contain `// TODO: implement all checks` with stub functions returning empty objects. Level 2 (substantive) and Level 3 (wired) were skipped entirely. A file that exists but is never imported or contains only placeholder code should not pass.
@@ -0,0 +1,22 @@
1
+ # Flaky-Test Avoidance Checklist
2
+
3
+ How-to reference for preventing flaky tests (intermittent pass/fail). Read when a test is flaky, or proactively when writing integration/e2e tests. (Empirically, async-wait is the #1 cause (~45%), then concurrency (~20%) and test-order dependence (~12%) — Luo et al., FSE 2014.)
4
+
5
+ ## Checklist
6
+
7
+ - [ ] **Mock the clock** — inject a fixed/controllable clock; never call `now()` / `Date.now()` directly in code under test.
8
+ - [ ] **Seed randomness** — fixed RNG seed; never raw Faker values in assertions (use sequences/UUIDs).
9
+ - [ ] **Poll, don't sleep** — wait for a **condition** (element visible, API responded, row present), not a fixed interval. `sleep(2000)` is slow-when-fast and still flaky-when-slow. Poll with backoff for eventually-consistent reads.
10
+ - [ ] **Use framework actionability waits** — Playwright auto-waits; Testcontainers `Wait.*` strategies. Removes the #1 flake cause by construction.
11
+ - [ ] **Order independence** — every test self-seeds; no test depends on another's leftover state. (Randomize test order to surface hidden dependence.)
12
+ - [ ] **No shared mutable global state** — separate temp dirs / DBs / schemas per worker (see `db-test-isolation.md`).
13
+ - [ ] **Isolate external services** — fakes/stubs/contract tests at the boundary; retry-with-backoff ONLY at genuine integration edges.
14
+ - [ ] **Quarantine, don't ignore** — detect/mark flaky tests, auto-rerun, stage new tests before the critical path; treat flakiness as infra debt, not noise.
15
+
16
+ ## The big three causes (fix structurally, not with retries)
17
+
18
+ 1. **Async/timing (~45%)** → poll for conditions, framework waits, fixed clock.
19
+ 2. **Concurrency / shared state (~20%)** → per-worker isolation, no shared globals.
20
+ 3. **Order dependence (~12%)** → self-seeding tests; randomized order to surface it.
21
+
22
+ *Sources: Luo et al., "An Empirical Analysis of Flaky Tests" (FSE 2014) for the cause breakdown; Google Testing Blog (flaky tests at Google); OpenReplay (time/async in tests); patterns from `db-test-isolation.md` & `test-containers.md`.*
@@ -0,0 +1,100 @@
1
+ # Gate Prompt Patterns
2
+
3
+ Reusable prompt patterns for structured gate checks in workflows and agents.
4
+
5
+ **For checkpoint box format details, see `references/ui-brand.md`** -- checkpoint boxes use double-line border drawing with 62-character inner width.
6
+
7
+ ## Rules
8
+
9
+ - `header` must be max 12 characters
10
+ - `multiSelect` is always `false` for gate checks
11
+ - Always handle the "Other" case (user typed a freeform response instead of selecting)
12
+ - Max 4 options per prompt -- if more are needed, use a 2-step flow
13
+
14
+ ---
15
+
16
+ ## Pattern: approve-revise-abort
17
+ 3-option gate for plan approval, gap-closure approval.
18
+ - question: "Approve these {noun}?"
19
+ - header: "Approve?"
20
+ - options: Approve | Request changes | Abort
21
+
22
+ ## Pattern: yes-no
23
+ Simple 2-option confirmation for re-planning, rebuild, replace plans, commit.
24
+ - question: "{Specific question about the action}"
25
+ - header: "Confirm"
26
+ - options: Yes | No
27
+
28
+ ## Pattern: stale-continue
29
+ 2-option refresh gate for staleness warnings, timestamp freshness.
30
+ - question: "{Artifact} may be outdated. Refresh or continue?"
31
+ - header: "Stale"
32
+ - options: Refresh | Continue anyway
33
+
34
+ ## Pattern: yes-no-pick
35
+ 3-option selection for seed selection, item inclusion.
36
+ - question: "Include {items} in planning?"
37
+ - header: "Include?"
38
+ - options: Yes, all | Let me pick | No
39
+
40
+ ## Pattern: multi-option-failure
41
+ 4-option failure handler for build failures.
42
+ - question: "Plan {id} failed. How should we proceed?"
43
+ - header: "Failed"
44
+ - options: Retry | Skip | Rollback | Abort
45
+
46
+ ## Pattern: multi-option-escalation
47
+ 4-option escalation for review escalation (max retries exceeded).
48
+ - question: "Phase {N} has failed verification {attempt} times. How should we proceed?"
49
+ - header: "Escalate"
50
+ - options: Accept gaps | Re-plan (via /gsd:plan-phase) | Debug (via /gsd:debug) | Retry
51
+
52
+ ## Pattern: multi-option-gaps
53
+ 4-option gap handler for review gaps-found.
54
+ - question: "{count} verification gaps need attention. How should we proceed?"
55
+ - header: "Gaps"
56
+ - options: Auto-fix | Override | Manual | Skip
57
+
58
+ ## Pattern: multi-option-priority
59
+ 4-option priority selection for milestone gap priority.
60
+ - question: "Which gaps should we address?"
61
+ - header: "Priority"
62
+ - options: Must-fix only | Must + should | Everything | Let me pick
63
+
64
+ ## Pattern: toggle-confirm
65
+ 2-option confirmation for enabling/disabling boolean features.
66
+ - question: "Enable {feature_name}?"
67
+ - header: "Toggle"
68
+ - options: Enable | Disable
69
+
70
+ ## Pattern: action-routing
71
+ Up to 4 suggested next actions with selection (status, resume workflows).
72
+ - question: "What would you like to do next?"
73
+ - header: "Next Step"
74
+ - options: {primary action} | {alternative 1} | {alternative 2} | Something else
75
+ - Note: Dynamically generate options from workflow state. Always include "Something else" as last option.
76
+
77
+ ## Pattern: scope-confirm
78
+ 3-option confirmation for quick task scope validation.
79
+ - question: "This task looks complex. Proceed as quick task or use full planning?"
80
+ - header: "Scope"
81
+ - options: Quick task | Full plan (via /gsd:plan-phase) | Revise
82
+
83
+ ## Pattern: depth-select
84
+ 3-option depth selection for planning workflow preferences.
85
+ - question: "How thorough should planning be?"
86
+ - header: "Depth"
87
+ - options: Quick (3-5 phases, skip research) | Standard (5-8 phases, default) | Comprehensive (8-12 phases, deep research)
88
+
89
+ ## Pattern: context-handling
90
+ 3-option handler for existing CONTEXT.md in discuss workflow.
91
+ - question: "Phase {N} already has a CONTEXT.md. How should we handle it?"
92
+ - header: "Context"
93
+ - options: Overwrite | Append | Cancel
94
+
95
+ ## Pattern: gray-area-option
96
+ Dynamic template for presenting gray area choices in discuss workflow.
97
+ - question: "{Gray area title}"
98
+ - header: "Decision"
99
+ - options: {Option 1} | {Option 2} | Let Claude decide
100
+ - Note: Options generated at runtime. Always include "Let Claude decide" as last option.
@@ -0,0 +1,70 @@
1
+ # Gates Taxonomy
2
+
3
+ Canonical gate types used across GSD workflows. Every validation checkpoint maps to one of these four types.
4
+
5
+ ---
6
+
7
+ ## Gate Types
8
+
9
+ ### Pre-flight Gate
10
+ **Purpose:** Validates preconditions before starting an operation.
11
+ **Behavior:** Blocks entry if conditions unmet. No partial work created.
12
+ **Recovery:** Fix the missing precondition, then retry.
13
+ **Examples:**
14
+ - Plan-phase checks for REQUIREMENTS.md before planning
15
+ - Execute-phase validates PLAN.md exists before execution
16
+ - Discuss-phase confirms phase exists in ROADMAP.md
17
+
18
+ ### Revision Gate
19
+ **Purpose:** Evaluates output quality and routes to revision if insufficient.
20
+ **Behavior:** Loops back to producer with specific feedback. Bounded by iteration cap.
21
+ **Recovery:** Producer addresses feedback; checker re-evaluates. The loop also escalates early if issue count does not decrease between consecutive iterations (stall detection). After max iterations, escalates unconditionally.
22
+ **Examples:**
23
+ - Plan-checker reviewing PLAN.md (max 3 iterations)
24
+ - Verifier checking phase deliverables against success criteria
25
+
26
+ ### Escalation Gate
27
+ **Purpose:** Surfaces unresolvable issues to the developer for a decision.
28
+ **Behavior:** Pauses workflow, presents options, waits for human input.
29
+ **Recovery:** Developer chooses action; workflow resumes on selected path.
30
+ **Examples:**
31
+ - Revision loop exhausted after 3 iterations
32
+ - Merge conflict during worktree cleanup
33
+ - Ambiguous requirement needing clarification
34
+
35
+ ### Abort Gate
36
+ **Purpose:** Terminates the operation to prevent damage or waste.
37
+ **Behavior:** Stops immediately, preserves state, reports reason.
38
+ **Recovery:** Developer investigates root cause, fixes, restarts from checkpoint.
39
+ **Examples:**
40
+ - Context window critically low during execution
41
+ - STATE.md in error state blocking /gsd-next
42
+ - Verification finds critical missing deliverables
43
+
44
+ ---
45
+
46
+ ## Gate Matrix
47
+
48
+ | Workflow | Phase | Gate Type | Artifacts Checked | Failure Behavior |
49
+ |----------|-------|-----------|-------------------|------------------|
50
+ | plan-phase | Entry | Pre-flight | REQUIREMENTS.md, ROADMAP.md | Block with missing-file message |
51
+ | plan-phase | Step 12 | Revision | PLAN.md quality | Loop to planner (max 3) |
52
+ | plan-phase | Post-revision | Escalation | Unresolved issues | Surface to developer |
53
+ | execute-phase | Entry | Pre-flight | PLAN.md | Block with missing-plan message |
54
+ | execute-phase | Completion | Revision | SUMMARY.md completeness | Re-run incomplete tasks |
55
+ | verify-work | Entry | Pre-flight | SUMMARY.md | Block with missing-summary |
56
+ | verify-work | Evaluation | Escalation | Failed criteria | Surface gaps to developer |
57
+ | next | Entry | Abort | Error state, checkpoints | Stop with diagnostic |
58
+
59
+ ---
60
+
61
+ ## Implementing Gates
62
+
63
+ Use this taxonomy when designing or auditing workflow validation points:
64
+
65
+ - **Pre-flight** gates belong at workflow entry points. They are cheap, deterministic checks that prevent wasted work. If you can verify a precondition with a file-existence check or a config read, use a pre-flight gate.
66
+ - **Revision** gates belong after a producer step where quality varies. Always pair them with an iteration cap to prevent infinite loops. The cap should reflect the cost of each iteration -- expensive operations get fewer retries.
67
+ - **Escalation** gates belong wherever automated resolution is impossible or ambiguous. They are the safety valve between revision loops and abort. Present the developer with clear options and enough context to decide.
68
+ - **Abort** gates belong at points where continuing would cause damage, waste significant resources, or produce meaningless output. They should preserve state so work can resume after the root cause is fixed.
69
+
70
+ **Selection heuristic:** Start with pre-flight. If the check happens after work is produced, it is a revision gate. If the revision loop cannot resolve the issue, escalate. If continuing is dangerous, abort.
@@ -0,0 +1,298 @@
1
+ <overview>
2
+ Git integration for GSD framework.
3
+ </overview>
4
+
5
+ <core_principle>
6
+
7
+ **Commit outcomes, not process.**
8
+
9
+ The git log should read like a changelog of what shipped, not a diary of planning activity.
10
+ </core_principle>
11
+
12
+ <commit_points>
13
+
14
+ | Event | Commit? | Why |
15
+ | ----------------------- | ------- | ------------------------------------------------ |
16
+ | BRIEF + ROADMAP created | YES | Project initialization |
17
+ | PLAN.md created | NO | Intermediate - commit with plan completion |
18
+ | RESEARCH.md created | NO | Intermediate |
19
+ | DISCOVERY.md created | NO | Intermediate |
20
+ | **Task completed** | YES | Atomic unit of work (1 commit per task) |
21
+ | **Plan completed** | YES | Metadata commit (SUMMARY + STATE + ROADMAP) |
22
+ | Handoff created | YES | WIP state preserved |
23
+
24
+ </commit_points>
25
+
26
+ <git_check>
27
+
28
+ ```bash
29
+ [ -d .git ] && echo "GIT_EXISTS" || echo "NO_GIT"
30
+ ```
31
+
32
+ If NO_GIT: Run `git init` silently. GSD projects always get their own repo.
33
+ </git_check>
34
+
35
+ <commit_formats>
36
+
37
+ <format name="initialization">
38
+ ## Project Initialization (brief + roadmap together)
39
+
40
+ ```
41
+ docs: initialize [project-name] ([N] phases)
42
+
43
+ [One-liner from PROJECT.md]
44
+
45
+ Phases:
46
+ 1. [phase-name]: [goal]
47
+ 2. [phase-name]: [goal]
48
+ 3. [phase-name]: [goal]
49
+ ```
50
+
51
+ What to commit:
52
+
53
+ ```bash
54
+ gsd-tools query commit "docs: initialize [project-name] ([N] phases)" --files .planning/
55
+ ```
56
+
57
+ </format>
58
+
59
+ <format name="task-completion">
60
+ ## Task Completion (During Plan Execution)
61
+
62
+ Each task gets its own commit immediately after completion.
63
+
64
+ > **Parallel agents:** When running as a parallel executor (spawned by execute-phase),
65
+ > run commits normally — let pre-commit hooks run. Do NOT pass `--no-verify` by default
66
+ > (#2924). Hooks should fire on the introducing commit; silent bypass violates project
67
+ > CLAUDE.md guidance. If a project explicitly opts out via
68
+ > `workflow.worktree_skip_hooks=true`, the orchestrator surfaces that flag in the
69
+ > executor prompt; absent that signal, hooks run normally.
70
+
71
+ ```
72
+ {type}({phase}-{plan}): {task-name}
73
+
74
+ - [Key change 1]
75
+ - [Key change 2]
76
+ - [Key change 3]
77
+ ```
78
+
79
+ **Commit types:**
80
+ - `feat` - New feature/functionality
81
+ - `fix` - Bug fix
82
+ - `test` - Test-only (TDD RED phase)
83
+ - `refactor` - Code cleanup (TDD REFACTOR phase)
84
+ - `perf` - Performance improvement
85
+ - `chore` - Dependencies, config, tooling
86
+
87
+ **Examples:**
88
+
89
+ ```bash
90
+ # Standard task
91
+ git add src/api/auth.ts src/types/user.ts
92
+ git commit -m "feat(08-02): create user registration endpoint
93
+
94
+ - POST /auth/register validates email and password
95
+ - Checks for duplicate users
96
+ - Returns JWT token on success
97
+ "
98
+
99
+ # TDD task - RED phase
100
+ git add src/__tests__/jwt.test.ts
101
+ git commit -m "test(07-02): add failing test for JWT generation
102
+
103
+ - Tests token contains user ID claim
104
+ - Tests token expires in 1 hour
105
+ - Tests signature verification
106
+ "
107
+
108
+ # TDD task - GREEN phase
109
+ git add src/utils/jwt.ts
110
+ git commit -m "feat(07-02): implement JWT generation
111
+
112
+ - Uses jose library for signing
113
+ - Includes user ID and expiry claims
114
+ - Signs with HS256 algorithm
115
+ "
116
+ ```
117
+
118
+ </format>
119
+
120
+ <format name="plan-completion">
121
+ ## Plan Completion (After All Tasks Done)
122
+
123
+ After all tasks committed, one final metadata commit captures plan completion.
124
+
125
+ ```
126
+ docs({phase}-{plan}): complete [plan-name] plan
127
+
128
+ Tasks completed: [N]/[N]
129
+ - [Task 1 name]
130
+ - [Task 2 name]
131
+ - [Task 3 name]
132
+
133
+ SUMMARY: .planning/phases/XX-name/{phase}-{plan}-SUMMARY.md
134
+ ```
135
+
136
+ What to commit:
137
+
138
+ ```bash
139
+ gsd-tools query commit "docs({phase}-{plan}): complete [plan-name] plan" --files .planning/phases/XX-name/{phase}-{plan}-PLAN.md .planning/phases/XX-name/{phase}-{plan}-SUMMARY.md .planning/STATE.md .planning/ROADMAP.md
140
+ ```
141
+
142
+ **Note:** Code files NOT included - already committed per-task.
143
+
144
+ </format>
145
+
146
+ <format name="handoff">
147
+ ## Handoff (WIP)
148
+
149
+ ```
150
+ wip: [phase-name] paused at task [X]/[Y]
151
+
152
+ Current: [task name]
153
+ [If blocked:] Blocked: [reason]
154
+ ```
155
+
156
+ What to commit:
157
+
158
+ ```bash
159
+ gsd-tools query commit "wip: [phase-name] paused at task [X]/[Y]" --files .planning/
160
+ ```
161
+
162
+ </format>
163
+ </commit_formats>
164
+
165
+ <example_log>
166
+
167
+ **Old approach (per-plan commits):**
168
+ ```
169
+ a7f2d1 feat(checkout): Stripe payments with webhook verification
170
+ 3e9c4b feat(products): catalog with search, filters, and pagination
171
+ 8a1b2c feat(auth): JWT with refresh rotation using jose
172
+ 5c3d7e feat(foundation): Next.js 15 + Prisma + Tailwind scaffold
173
+ 2f4a8d docs: initialize ecommerce-app (5 phases)
174
+ ```
175
+
176
+ **New approach (per-task commits):**
177
+ ```
178
+ # Phase 04 - Checkout
179
+ 1a2b3c docs(04-01): complete checkout flow plan
180
+ 4d5e6f feat(04-01): add webhook signature verification
181
+ 7g8h9i feat(04-01): implement payment session creation
182
+ 0j1k2l feat(04-01): create checkout page component
183
+
184
+ # Phase 03 - Products
185
+ 3m4n5o docs(03-02): complete product listing plan
186
+ 6p7q8r feat(03-02): add pagination controls
187
+ 9s0t1u feat(03-02): implement search and filters
188
+ 2v3w4x feat(03-01): create product catalog schema
189
+
190
+ # Phase 02 - Auth
191
+ 5y6z7a docs(02-02): complete token refresh plan
192
+ 8b9c0d feat(02-02): implement refresh token rotation
193
+ 1e2f3g test(02-02): add failing test for token refresh
194
+ 4h5i6j docs(02-01): complete JWT setup plan
195
+ 7k8l9m feat(02-01): add JWT generation and validation
196
+ 0n1o2p chore(02-01): install jose library
197
+
198
+ # Phase 01 - Foundation
199
+ 3q4r5s docs(01-01): complete scaffold plan
200
+ 6t7u8v feat(01-01): configure Tailwind and globals
201
+ 9w0x1y feat(01-01): set up Prisma with database
202
+ 2z3a4b feat(01-01): create Next.js 15 project
203
+
204
+ # Initialization
205
+ 5c6d7e docs: initialize ecommerce-app (5 phases)
206
+ ```
207
+
208
+ Each plan produces 2-4 commits (tasks + metadata). Clear, granular, bisectable.
209
+
210
+ </example_log>
211
+
212
+ <anti_patterns>
213
+
214
+ **Still don't commit (intermediate artifacts):**
215
+ - PLAN.md creation (commit with plan completion)
216
+ - RESEARCH.md (intermediate)
217
+ - DISCOVERY.md (intermediate)
218
+ - Minor planning tweaks
219
+ - "Fixed typo in roadmap"
220
+
221
+ **Do commit (outcomes):**
222
+ - Each task completion (feat/fix/test/refactor)
223
+ - Plan completion metadata (docs)
224
+ - Project initialization (docs)
225
+
226
+ **Key principle:** Commit working code and shipped outcomes, not planning process.
227
+
228
+ </anti_patterns>
229
+
230
+ <commit_strategy_rationale>
231
+
232
+ ## Why Per-Task Commits?
233
+
234
+ **Context engineering for AI:**
235
+ - Git history becomes primary context source for future Claude sessions
236
+ - `git log --grep="{phase}-{plan}"` shows all work for a plan
237
+ - `git diff <hash>^..<hash>` shows exact changes per task
238
+ - Less reliance on parsing SUMMARY.md = more context for actual work
239
+
240
+ **Failure recovery:**
241
+ - Task 1 committed ✅, Task 2 failed ❌
242
+ - Claude in next session: sees task 1 complete, can retry task 2
243
+ - Can `git reset --hard` to last successful task
244
+
245
+ **Debugging:**
246
+ - `git bisect` finds exact failing task, not just failing plan
247
+ - `git blame` traces line to specific task context
248
+ - Each commit is independently revertable
249
+
250
+ **Observability:**
251
+ - Solo developer + Claude workflow benefits from granular attribution
252
+ - Atomic commits are git best practice
253
+ - "Commit noise" irrelevant when consumer is Claude, not humans
254
+
255
+ </commit_strategy_rationale>
256
+
257
+ <sub_repos_support>
258
+
259
+ ## Multi-Repo Workspace Support (sub_repos)
260
+
261
+ For workspaces with separate git repos (e.g., `backend/`, `frontend/`, `shared/`), GSD routes commits to each repo independently.
262
+
263
+ ### Configuration
264
+
265
+ In `.planning/config.json`, list sub-repo directories under `planning.sub_repos`:
266
+
267
+ ```json
268
+ {
269
+ "planning": {
270
+ "commit_docs": false,
271
+ "sub_repos": ["backend", "frontend", "shared"]
272
+ }
273
+ }
274
+ ```
275
+
276
+ Set `commit_docs: false` so planning docs stay local and are not committed to any sub-repo.
277
+
278
+ ### How It Works
279
+
280
+ 1. **Auto-detection:** During `/gsd:new-project`, directories with their own `.git` folder are detected and offered for selection as sub-repos. On subsequent runs, `loadConfig` auto-syncs the `sub_repos` list with the filesystem — adding newly created repos and removing deleted ones. This means `config.json` may be rewritten automatically when repos change on disk.
281
+ 2. **File grouping:** Code files are grouped by their sub-repo prefix (e.g., `backend/src/api/users.ts` belongs to the `backend/` repo).
282
+ 3. **Independent commits:** Each sub-repo receives its own atomic commit via `gsd-tools.cjs commit-to-subrepo`. File paths are made relative to the sub-repo root before staging.
283
+ 4. **Planning stays local:** The `.planning/` directory is not committed; it acts as cross-repo coordination.
284
+
285
+ ### Commit Routing
286
+
287
+ Instead of the standard `commit` command, use `commit-to-subrepo` when `sub_repos` is configured:
288
+
289
+ ```bash
290
+ gsd-tools query commit-to-subrepo "feat(02-01): add user API" \
291
+ --files backend/src/api/users.ts backend/src/types/user.ts frontend/src/components/UserForm.tsx
292
+ ```
293
+
294
+ This stages `src/api/users.ts` and `src/types/user.ts` in the `backend/` repo, and `src/components/UserForm.tsx` in the `frontend/` repo, then commits each independently with the same message.
295
+
296
+ Files that don't match any configured sub-repo are reported as unmatched.
297
+
298
+ </sub_repos_support>
@@ -0,0 +1,40 @@
1
+ # Git Planning Commit
2
+
3
+ Commit planning artifacts via `gsd-tools query commit`, which checks `commit_docs` config and gitignore status (same behavior as legacy `gsd-tools.cjs commit`).
4
+
5
+ ## Commit via CLI
6
+
7
+ Pass the message first, then file paths via `--files`. Both `commit` and `commit-to-subrepo` use `--files` to declare the paths to commit.
8
+
9
+ Always use this for `.planning/` files — it handles `commit_docs` and gitignore checks automatically:
10
+
11
+ ```bash
12
+ gsd-tools query commit "docs({scope}): {description}" --files .planning/STATE.md .planning/ROADMAP.md
13
+ ```
14
+
15
+ The CLI will return `skipped` (with reason) if `commit_docs` is `false` or `.planning/` is gitignored. No manual conditional checks needed.
16
+
17
+ ## Amend previous commit
18
+
19
+ To fold `.planning/` file changes into the previous commit:
20
+
21
+ ```bash
22
+ gsd-tools query commit "" --files .planning/codebase/*.md --amend
23
+ ```
24
+
25
+ ## Commit Message Patterns
26
+
27
+ | Command | Scope | Example |
28
+ |---------|-------|---------|
29
+ | plan-phase | phase | `docs(phase-03): create authentication plans` |
30
+ | execute-phase | phase | `docs(phase-03): complete authentication phase` |
31
+ | new-milestone | milestone | `docs: start milestone v1.1` |
32
+ | remove-phase | chore | `chore: remove phase 17 (dashboard)` |
33
+ | insert-phase | phase | `docs: insert phase 16.1 (critical fix)` |
34
+ | add-phase | phase | `docs: add phase 07 (settings page)` |
35
+
36
+ ## When to Skip
37
+
38
+ - `commit_docs: false` in config
39
+ - `.planning/` is gitignored
40
+ - No changes to commit (check with `git status --porcelain .planning/`)