@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,178 @@
1
+ <purpose>
2
+ Autonomous audit-to-fix pipeline. Runs an audit, parses findings, classifies each as
3
+ auto-fixable vs manual-only, spawns executor agents for fixable issues, runs tests
4
+ after each fix, and commits atomically with finding IDs for traceability.
5
+ </purpose>
6
+
7
+ <available_agent_types>
8
+ - gsd-executor — executes a specific, scoped code change
9
+ </available_agent_types>
10
+
11
+ <process>
12
+
13
+ <step name="parse-arguments">
14
+ Extract flags from the user's invocation:
15
+
16
+ - `--max N` — maximum findings to fix (default: **5**)
17
+ - `--severity high|medium|all` — minimum severity to process (default: **medium**)
18
+ - `--dry-run` — classify findings without fixing (shows classification table only)
19
+ - `--source <audit>` — which audit to run (default: **audit-uat**)
20
+
21
+ Validate `--source` is a supported audit. Currently supported:
22
+ - `audit-uat`
23
+
24
+ If `--source` is not supported, stop with an error:
25
+ ```
26
+ Error: Unsupported audit source "{source}". Supported sources: audit-uat
27
+ ```
28
+ </step>
29
+
30
+ <step name="run-audit">
31
+ Invoke the source audit command and capture output.
32
+
33
+ For `audit-uat` source:
34
+ ```bash
35
+ _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
36
+ INIT=$(gsd_run query audit-uat 2>/dev/null || echo "{}")
37
+ if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
38
+ ```
39
+
40
+ Read existing UAT and verification files to extract findings:
41
+ - Glob: `.planning/phases/*/*-UAT.md`
42
+ - Glob: `.planning/phases/*/*-VERIFICATION.md`
43
+
44
+ Parse each finding into a structured record:
45
+ - **ID** — sequential identifier (F-01, F-02, ...)
46
+ - **description** — concise summary of the issue
47
+ - **severity** — high, medium, or low
48
+ - **file_refs** — specific file paths referenced in the finding
49
+ </step>
50
+
51
+ <step name="classify-findings">
52
+ For each finding, classify as one of:
53
+
54
+ - **auto-fixable** — clear code change, specific file referenced, testable fix
55
+ - **manual-only** — requires design decisions, ambiguous scope, architectural changes, user input needed
56
+ - **skip** — severity below the `--severity` threshold
57
+
58
+ **Classification heuristics** (err on manual-only when uncertain):
59
+
60
+ Auto-fixable signals:
61
+ - References a specific file path + line number
62
+ - Describes a missing test or assertion
63
+ - Missing export, wrong import path, typo in identifier
64
+ - Clear single-file change with obvious expected behavior
65
+
66
+ Manual-only signals:
67
+ - Uses words like "consider", "evaluate", "design", "rethink"
68
+ - Requires new architecture or API changes
69
+ - Ambiguous scope or multiple valid approaches
70
+ - Requires user input or design decisions
71
+ - Cross-cutting concerns affecting multiple subsystems
72
+ - Performance or scalability issues without clear fix
73
+
74
+ **When uncertain, always classify as manual-only.**
75
+ </step>
76
+
77
+ <step name="present-classification">
78
+ Display the classification table:
79
+
80
+ ```
81
+ ## Audit-Fix Classification
82
+
83
+ | # | Finding | Severity | Classification | Reason |
84
+ |---|---------|----------|---------------|--------|
85
+ | F-01 | Missing export in index.ts | high | auto-fixable | Specific file, clear fix |
86
+ | F-02 | No error handling in payment flow | high | manual-only | Requires design decisions |
87
+ | F-03 | Test stub with 0 assertions | medium | auto-fixable | Clear test gap |
88
+ ```
89
+
90
+ If `--dry-run` was specified, **stop here and exit**. The classification table is the
91
+ final output — do not proceed to fixing.
92
+ </step>
93
+
94
+ <step name="fix-loop">
95
+ For each **auto-fixable** finding (up to `--max`, ordered by severity desc):
96
+
97
+ **a. Spawn executor agent:**
98
+ ```
99
+ Agent(
100
+ prompt="Fix finding {ID}: {description}. Files: {file_refs}. Make the minimal change to resolve this specific finding. Do not refactor surrounding code.",
101
+ subagent_type="gsd-executor"
102
+ )
103
+ ```
104
+
105
+ > **ORCHESTRATOR RULE — CODEX RUNTIME**: After calling Agent() above, stop working on this task immediately. Do not read more files, edit code, or run tests related to this task while the subagent is active. Wait for the subagent to return its result. This prevents duplicate work, conflicting edits, and wasted context. Only resume when the subagent result is available.
106
+
107
+ **b. Run tests:**
108
+ ```bash
109
+ AUDIT_TEST_CMD=$(gsd_run query config-get workflow.test_command --default "" 2>/dev/null || true)
110
+ if [ -z "$AUDIT_TEST_CMD" ]; then
111
+ if [ -f "Makefile" ] && grep -q "^test:" Makefile; then
112
+ AUDIT_TEST_CMD="make test"
113
+ elif [ -f "Justfile" ] || [ -f "justfile" ]; then
114
+ AUDIT_TEST_CMD="just test"
115
+ elif [ -f "package.json" ]; then
116
+ AUDIT_TEST_CMD="npm test"
117
+ elif [ -f "Cargo.toml" ]; then
118
+ AUDIT_TEST_CMD="cargo test"
119
+ elif [ -f "go.mod" ]; then
120
+ AUDIT_TEST_CMD="go test ./..."
121
+ elif [ -f "pyproject.toml" ] || [ -f "requirements.txt" ]; then
122
+ AUDIT_TEST_CMD="python -m pytest -x -q --tb=short"
123
+ else
124
+ AUDIT_TEST_CMD="true"
125
+ fi
126
+ fi
127
+ eval "$AUDIT_TEST_CMD" 2>&1 | tail -20
128
+ ```
129
+
130
+ **c. If tests pass** — commit atomically:
131
+ ```bash
132
+ git add {changed_files}
133
+ git commit -m "fix({scope}): resolve {ID} — {description}"
134
+ ```
135
+ The commit message **must** include the finding ID (e.g., F-01) for traceability.
136
+
137
+ **d. If tests fail** — revert changes, mark finding as `fix-failed`, and **stop the pipeline**:
138
+ ```bash
139
+ git checkout -- {changed_files} 2>/dev/null
140
+ ```
141
+ Log the failure reason and stop processing — do not continue to the next finding.
142
+ A test failure indicates the codebase may be in an unexpected state, so the pipeline
143
+ must halt to avoid cascading issues. Remaining auto-fixable findings will appear in the
144
+ report as `not-attempted`.
145
+ </step>
146
+
147
+ <step name="report">
148
+ Present the final summary:
149
+
150
+ ```
151
+ ## Audit-Fix Complete
152
+
153
+ **Source:** {audit_command}
154
+ **Findings:** {total} total, {auto} auto-fixable, {manual} manual-only
155
+ **Fixed:** {fixed_count}/{auto} auto-fixable findings
156
+ **Failed:** {failed_count} (reverted)
157
+
158
+ | # | Finding | Status | Commit |
159
+ |---|---------|--------|--------|
160
+ | F-01 | Missing export | Fixed | abc1234 |
161
+ | F-03 | Test stub | Fix failed | (reverted) |
162
+
163
+ ### Manual-only findings (require developer attention):
164
+ - F-02: No error handling in payment flow — requires design decisions
165
+ ```
166
+ </step>
167
+
168
+ </process>
169
+
170
+ <success_criteria>
171
+ - Auto-fixable findings processed sequentially until --max reached or a test failure stops the pipeline
172
+ - Tests pass after each committed fix (no broken commits)
173
+ - Failed fixes are reverted cleanly (no partial changes left)
174
+ - Pipeline stops after the first test failure (no cascading fixes)
175
+ - Every commit message contains the finding ID
176
+ - Manual-only findings are surfaced for developer attention
177
+ - --dry-run produces a useful standalone classification table
178
+ </success_criteria>
@@ -0,0 +1,358 @@
1
+ <purpose>
2
+ Verify milestone achieved its definition of done by aggregating phase verifications, checking cross-phase integration, and assessing requirements coverage. Reads existing VERIFICATION.md files (phases already verified during execute-phase), aggregates tech debt and deferred gaps, then spawns integration checker for cross-phase wiring.
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
+ <available_agent_types>
10
+ Valid GSD subagent types (use exact names — do not fall back to 'general-purpose'):
11
+ - gsd-integration-checker — Checks cross-phase integration
12
+ </available_agent_types>
13
+
14
+ <process>
15
+
16
+ ## 0. Initialize Milestone Context
17
+
18
+ ```bash
19
+ _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
20
+ INIT=$(gsd_run query init.milestone-op)
21
+ if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
22
+ AGENT_SKILLS_CHECKER=$(gsd_run query agent-skills gsd-integration-checker)
23
+ ```
24
+
25
+ Extract from init JSON: `milestone_version`, `milestone_name`, `phase_count`, `completed_phases`, `commit_docs`.
26
+
27
+ Resolve integration checker model:
28
+ ```bash
29
+ integration_checker_model=$(gsd_run query resolve-model gsd-integration-checker --raw)
30
+ ```
31
+
32
+ ## 1. Determine Milestone Scope
33
+
34
+ ```bash
35
+ # Get phases in milestone (sorted numerically, handles decimals)
36
+ gsd_run query phases.list
37
+ ```
38
+
39
+ - Parse version from arguments or detect current from ROADMAP.md
40
+ - Identify all phase directories in scope
41
+ - Extract milestone definition of done from ROADMAP.md
42
+ - Extract requirements mapped to this milestone from REQUIREMENTS.md
43
+
44
+ ## 2. Read All Phase Verifications
45
+
46
+ For each phase directory, read the VERIFICATION.md:
47
+
48
+ ```bash
49
+ # For each phase, use find-phase to resolve the directory (handles archived phases)
50
+ PHASE_INFO=$(gsd_run query find-phase 01 --raw)
51
+ # Extract directory from JSON, then read VERIFICATION.md from that directory
52
+ # Repeat for each phase number from ROADMAP.md
53
+ ```
54
+
55
+ From each VERIFICATION.md, extract:
56
+ - **Status:** passed | gaps_found
57
+ - **Critical gaps:** (if any — these are blockers)
58
+ - **Non-critical gaps:** tech debt, deferred items, warnings
59
+ - **Anti-patterns found:** TODOs, stubs, placeholders
60
+ - **Requirements coverage:** which requirements satisfied/blocked
61
+
62
+ If a phase is missing VERIFICATION.md, flag it as "unverified phase" — this is a blocker.
63
+
64
+ ## 3. Spawn Integration Checker
65
+
66
+ With phase context collected:
67
+
68
+ Extract `MILESTONE_REQ_IDS` from REQUIREMENTS.md traceability table — all REQ-IDs assigned to phases in this milestone.
69
+
70
+ ```
71
+ Agent(
72
+ prompt="Check cross-phase integration and E2E flows.
73
+
74
+ Phases: {phase_dirs}
75
+ Phase exports: {from SUMMARYs}
76
+ API routes: {routes created}
77
+
78
+ Milestone Requirements:
79
+ {MILESTONE_REQ_IDS — list each REQ-ID with description and assigned phase}
80
+
81
+ MUST map each integration finding to affected requirement IDs where applicable.
82
+
83
+ Verify cross-phase wiring and E2E user flows.
84
+ ${AGENT_SKILLS_CHECKER}",
85
+ subagent_type="gsd-integration-checker",
86
+ model="{integration_checker_model}"
87
+ )
88
+ ```
89
+
90
+ > **ORCHESTRATOR RULE — CODEX RUNTIME**: After calling Agent() above, stop working on this task immediately. Do not read more files, edit code, or run tests related to this task while the subagent is active. Wait for the subagent to return its result. This prevents duplicate work, conflicting edits, and wasted context. Only resume when the subagent result is available.
91
+
92
+ ## 4. Collect Results
93
+
94
+ Combine:
95
+ - Phase-level gaps and tech debt (from step 2)
96
+ - Integration checker's report (wiring gaps, broken flows)
97
+
98
+ ## 5. Check Requirements Coverage (3-Source Cross-Reference)
99
+
100
+ MUST cross-reference three independent sources for each requirement:
101
+
102
+ ### 5a. Parse REQUIREMENTS.md Traceability Table
103
+
104
+ Extract all REQ-IDs mapped to milestone phases from the traceability table:
105
+ - Requirement ID, description, assigned phase, current status, checked-off state (`[x]` vs `[ ]`)
106
+
107
+ ### 5b. Parse Phase VERIFICATION.md Requirements Tables
108
+
109
+ For each phase's VERIFICATION.md, extract the expanded requirements table:
110
+ - Requirement | Source Plan | Description | Status | Evidence
111
+ - Map each entry back to its REQ-ID
112
+
113
+ ### 5c. Extract SUMMARY.md Frontmatter Cross-Check
114
+
115
+ For each phase's SUMMARY.md, extract `requirements-completed` from YAML frontmatter:
116
+ ```bash
117
+ for summary in .planning/phases/*-*/*-SUMMARY.md; do
118
+ [ -e "$summary" ] || continue
119
+ gsd_run query summary-extract "$summary" --fields requirements_completed --pick requirements_completed
120
+ done
121
+ ```
122
+
123
+ ### 5d. Status Determination Matrix
124
+
125
+ For each REQ-ID, determine status using all three sources:
126
+
127
+ | VERIFICATION.md Status | SUMMARY Frontmatter | REQUIREMENTS.md | → Final Status |
128
+ |------------------------|---------------------|-----------------|----------------|
129
+ | passed | listed | `[x]` | **satisfied** |
130
+ | passed | listed | `[ ]` | **satisfied** (update checkbox) |
131
+ | passed | missing | any | **partial** (verify manually) |
132
+ | gaps_found | any | any | **unsatisfied** |
133
+ | missing | listed | any | **partial** (verification gap) |
134
+ | missing | missing | any | **unsatisfied** |
135
+
136
+ ### 5e. FAIL Gate and Orphan Detection
137
+
138
+ **REQUIRED:** Any `unsatisfied` requirement MUST force `gaps_found` status on the milestone audit.
139
+
140
+ **Orphan detection:** Requirements present in REQUIREMENTS.md traceability table but absent from ALL phase VERIFICATION.md files MUST be flagged as orphaned. Orphaned requirements are treated as `unsatisfied` — they were assigned but never verified by any phase.
141
+
142
+ ## 5.5. Nyquist Compliance Discovery
143
+
144
+ Skip if `workflow.nyquist_validation` is explicitly `false` (absent = enabled).
145
+
146
+ ```bash
147
+ NYQUIST_CONFIG=$(gsd_run query config-get workflow.nyquist_validation --raw --default true 2>/dev/null)
148
+ ```
149
+
150
+ If `false`: skip entirely.
151
+
152
+ For each phase directory, check `*-VALIDATION.md`. If exists, parse frontmatter (`nyquist_compliant`, `wave_0_complete`).
153
+
154
+ Classify per phase:
155
+
156
+ | Status | Condition |
157
+ |--------|-----------|
158
+ | COMPLIANT | `nyquist_compliant: true` and all tasks green |
159
+ | PARTIAL | VALIDATION.md exists, `nyquist_compliant: false` or red/pending |
160
+ | MISSING | No VALIDATION.md |
161
+
162
+ Add to audit YAML: `nyquist: { compliant_phases, partial_phases, missing_phases, overall }`
163
+
164
+ Discovery only — never auto-calls `/gsd:validate-phase`.
165
+
166
+ ## 6. Aggregate into v{version}-MILESTONE-AUDIT.md
167
+
168
+ Create `.planning/v{version}-v{version}-MILESTONE-AUDIT.md` with:
169
+
170
+ ```yaml
171
+ ---
172
+ milestone: {version}
173
+ audited: {timestamp}
174
+ status: passed | gaps_found | tech_debt
175
+ scores:
176
+ requirements: N/M
177
+ phases: N/M
178
+ integration: N/M
179
+ flows: N/M
180
+ gaps: # Critical blockers
181
+ requirements:
182
+ - id: "{REQ-ID}"
183
+ status: "unsatisfied | partial | orphaned"
184
+ phase: "{assigned phase}"
185
+ claimed_by_plans: ["{plan files that reference this requirement}"]
186
+ completed_by_plans: ["{plan files whose SUMMARY marks it complete}"]
187
+ verification_status: "passed | gaps_found | missing | orphaned"
188
+ evidence: "{specific evidence or lack thereof}"
189
+ integration: [...]
190
+ flows: [...]
191
+ tech_debt: # Non-critical, deferred
192
+ - phase: 01-auth
193
+ items:
194
+ - "TODO: add rate limiting"
195
+ - "Warning: no password strength validation"
196
+ - phase: 03-dashboard
197
+ items:
198
+ - "Deferred: mobile responsive layout"
199
+ ---
200
+ ```
201
+
202
+ Plus full markdown report with tables for requirements, phases, integration, tech debt.
203
+
204
+ **Status values:**
205
+ - `passed` — all requirements met, no critical gaps, minimal tech debt
206
+ - `gaps_found` — critical blockers exist
207
+ - `tech_debt` — no blockers but accumulated deferred items need review
208
+
209
+ ## 7. Present Results
210
+
211
+ Route by status (see `<offer_next>`).
212
+
213
+ </process>
214
+
215
+ <offer_next>
216
+ Output this markdown directly (not as a code block). Route based on status:
217
+
218
+ ---
219
+
220
+ **If passed:**
221
+
222
+ ## ✓ Milestone {version} — Audit Passed
223
+
224
+ **Score:** {N}/{M} requirements satisfied
225
+ **Report:** .planning/v{version}-MILESTONE-AUDIT.md
226
+
227
+ All requirements covered. Cross-phase integration verified. E2E flows complete.
228
+
229
+ ───────────────────────────────────────────────────────────────
230
+
231
+ ## ▶ Next Up — [${PROJECT_CODE}] ${PROJECT_TITLE}
232
+
233
+ **Complete milestone** — archive and tag
234
+
235
+ /clear then:
236
+
237
+ /gsd:complete-milestone {version}
238
+
239
+ ───────────────────────────────────────────────────────────────
240
+
241
+ ---
242
+
243
+ **If gaps_found:**
244
+
245
+ ## ⚠ Milestone {version} — Gaps Found
246
+
247
+ **Score:** {N}/{M} requirements satisfied
248
+ **Report:** .planning/v{version}-MILESTONE-AUDIT.md
249
+
250
+ ### Unsatisfied Requirements
251
+
252
+ {For each unsatisfied requirement:}
253
+ - **{REQ-ID}: {description}** (Phase {X})
254
+ - {reason}
255
+
256
+ ### Cross-Phase Issues
257
+
258
+ {For each integration gap:}
259
+ - **{from} → {to}:** {issue}
260
+
261
+ ### Broken Flows
262
+
263
+ {For each flow gap:}
264
+ - **{flow name}:** breaks at {step}
265
+
266
+ ### Nyquist Coverage
267
+
268
+ | Phase | VALIDATION.md | Compliant | Action |
269
+ |-------|---------------|-----------|--------|
270
+ | {phase} | exists/missing | true/false/partial | `/gsd:validate-phase {N}` |
271
+
272
+ Phases needing validation: run `/gsd:validate-phase {N}` for each flagged phase.
273
+
274
+ ───────────────────────────────────────────────────────────────
275
+
276
+ ## ▶ Next Up — [${PROJECT_CODE}] ${PROJECT_TITLE}
277
+
278
+ **Close the gaps inline** — gap planning happens as part of this audit's
279
+ output (see the Unsatisfied Requirements, Cross-Phase Issues, Broken Flows,
280
+ and Nyquist Coverage sections above). Insert one closure phase per gap (or
281
+ per group of related gaps) using the standard phase chain:
282
+
283
+ /clear then:
284
+
285
+ /gsd:phase --insert <N> "Close gap: <REQ-ID> — <description>"
286
+ /gsd:discuss-phase <N>
287
+ /gsd:plan-phase <N>
288
+ /gsd:execute-phase <N>
289
+
290
+ For Nyquist-coverage gaps flagged in the table above, prefer running
291
+ `/gsd:validate-phase <N>` for each flagged phase (and `/gsd:secure-phase
292
+ <N>` if SECURITY.md was flagged) before inserting a new closure phase —
293
+ they may close the gap retroactively without a new phase.
294
+
295
+ ───────────────────────────────────────────────────────────────
296
+
297
+ **Also available:**
298
+ - cat .planning/v{version}-MILESTONE-AUDIT.md — see full report
299
+ - /gsd:complete-milestone {version} — proceed anyway (accept tech debt)
300
+
301
+ ───────────────────────────────────────────────────────────────
302
+
303
+ ---
304
+
305
+ **If tech_debt (no blockers but accumulated debt):**
306
+
307
+ ## ⚡ Milestone {version} — Tech Debt Review
308
+
309
+ **Score:** {N}/{M} requirements satisfied
310
+ **Report:** .planning/v{version}-MILESTONE-AUDIT.md
311
+
312
+ All requirements met. No critical blockers. Accumulated tech debt needs review.
313
+
314
+ ### Tech Debt by Phase
315
+
316
+ {For each phase with debt:}
317
+ **Phase {X}: {name}**
318
+ - {item 1}
319
+ - {item 2}
320
+
321
+ ### Total: {N} items across {M} phases
322
+
323
+ ───────────────────────────────────────────────────────────────
324
+
325
+ ## ▶ Options
326
+
327
+ **A. Complete milestone** — accept debt, track in backlog
328
+
329
+ /gsd:complete-milestone {version}
330
+
331
+ **B. Plan a cleanup phase** — address the debt above before completing.
332
+ Insert a closure phase using the standard chain:
333
+
334
+ /clear then:
335
+
336
+ /gsd:phase --insert <N> "Address tech debt: <area>"
337
+ /gsd:discuss-phase <N>
338
+ /gsd:plan-phase <N>
339
+ /gsd:execute-phase <N>
340
+
341
+ ───────────────────────────────────────────────────────────────
342
+ </offer_next>
343
+
344
+ <success_criteria>
345
+ - [ ] Milestone scope identified
346
+ - [ ] All phase VERIFICATION.md files read
347
+ - [ ] SUMMARY.md `requirements-completed` frontmatter extracted for each phase
348
+ - [ ] REQUIREMENTS.md traceability table parsed for all milestone REQ-IDs
349
+ - [ ] 3-source cross-reference completed (VERIFICATION + SUMMARY + traceability)
350
+ - [ ] Orphaned requirements detected (in traceability but absent from all VERIFICATIONs)
351
+ - [ ] Tech debt and deferred gaps aggregated
352
+ - [ ] Integration checker spawned with milestone requirement IDs
353
+ - [ ] v{version}-MILESTONE-AUDIT.md created with structured requirement gap objects
354
+ - [ ] FAIL gate enforced — any unsatisfied requirement forces gaps_found status
355
+ - [ ] Nyquist compliance scanned for all milestone phases (if enabled)
356
+ - [ ] Missing VALIDATION.md phases flagged with validate-phase suggestion
357
+ - [ ] Results presented with actionable next steps
358
+ </success_criteria>
@@ -0,0 +1,110 @@
1
+ <purpose>
2
+ Cross-phase audit of all UAT and verification files. Finds every outstanding item (pending, skipped, blocked, human_needed), optionally verifies against the codebase to detect stale docs, and produces a prioritized human test plan.
3
+ </purpose>
4
+
5
+ <process>
6
+
7
+ <step name="initialize">
8
+ Run the CLI audit:
9
+
10
+ ```bash
11
+ _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
12
+ AUDIT=$(gsd_run query audit-uat --raw)
13
+ ```
14
+
15
+ Parse JSON for `results` array and `summary` object.
16
+
17
+ If `summary.total_items` is 0:
18
+ ```
19
+ ## All Clear
20
+
21
+ No outstanding UAT or verification items found across all phases.
22
+ All tests are passing, resolved, or diagnosed with fix plans.
23
+ ```
24
+ Stop here.
25
+ </step>
26
+
27
+ <step name="categorize">
28
+ Group items by what's actionable NOW vs. what needs prerequisites:
29
+
30
+ **Testable Now** (no external dependencies):
31
+ - `pending` — tests never run
32
+ - `human_uat` — human verification items
33
+ - `skipped_unresolved` — skipped without clear blocking reason
34
+
35
+ **Needs Prerequisites:**
36
+ - `server_blocked` — needs external server running
37
+ - `device_needed` — needs physical device (not simulator)
38
+ - `build_needed` — needs release/preview build
39
+ - `third_party` — needs external service configuration
40
+
41
+ For each item in "Testable Now", use Grep/Read to check if the underlying feature still exists in the codebase:
42
+ - If the test references a component/function that no longer exists → mark as `stale`
43
+ - If the test references code that has been significantly rewritten → mark as `needs_update`
44
+ - Otherwise → mark as `active`
45
+ </step>
46
+
47
+ <step name="present">
48
+ Present the audit report:
49
+
50
+ ```
51
+ ## UAT Audit Report
52
+
53
+ **{total_items} outstanding items across {total_files} files in {phase_count} phases**
54
+
55
+ ### Testable Now ({count})
56
+
57
+ | # | Phase | Test | Description | Status |
58
+ |---|-------|------|-------------|--------|
59
+ | 1 | {phase} | {test_name} | {expected} | {active/stale/needs_update} |
60
+ ...
61
+
62
+ ### Needs Prerequisites ({count})
63
+
64
+ | # | Phase | Test | Blocked By | Description |
65
+ |---|-------|------|------------|-------------|
66
+ | 1 | {phase} | {test_name} | {category} | {expected} |
67
+ ...
68
+
69
+ ### Stale (can be closed) ({count})
70
+
71
+ | # | Phase | Test | Why Stale |
72
+ |---|-------|------|-----------|
73
+ | 1 | {phase} | {test_name} | {reason} |
74
+ ...
75
+
76
+ ---
77
+
78
+ ## Recommended Actions
79
+
80
+ 1. **Close stale items:** `/gsd:verify-work {phase}` — mark stale tests as resolved
81
+ 2. **Run active tests:** Human UAT test plan below
82
+ 3. **When prerequisites met:** Retest blocked items with `/gsd:verify-work {phase}`
83
+ ```
84
+ </step>
85
+
86
+ <step name="test_plan">
87
+ Generate a human UAT test plan for "Testable Now" + "active" items only:
88
+
89
+ Group by what can be tested together (same screen, same feature, same prerequisite):
90
+
91
+ ```
92
+ ## Human UAT Test Plan
93
+
94
+ ### Group 1: {category — e.g., "Billing Flow"}
95
+ Prerequisites: {what needs to be running/configured}
96
+
97
+ 1. **{Test name}** (Phase {N})
98
+ - Navigate to: {where}
99
+ - Do: {action}
100
+ - Expected: {expected behavior}
101
+
102
+ 2. **{Test name}** (Phase {N})
103
+ ...
104
+
105
+ ### Group 2: {category}
106
+ ...
107
+ ```
108
+ </step>
109
+
110
+ </process>