@opengsd/gsd-core 1.17.0 → 1.19.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 (369) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +2 -1
  3. package/.opencode/plugins/gsd-core.js +2 -3
  4. package/agents/gsd-advisor-researcher.compact.md +1 -1
  5. package/agents/gsd-advisor-researcher.md +1 -1
  6. package/agents/gsd-assumptions-analyzer.compact.md +1 -1
  7. package/agents/gsd-assumptions-analyzer.md +1 -1
  8. package/agents/gsd-code-fixer.compact.md +3 -3
  9. package/agents/gsd-code-fixer.md +5 -4
  10. package/agents/gsd-code-reviewer.compact.md +1 -1
  11. package/agents/gsd-code-reviewer.md +1 -1
  12. package/agents/gsd-codebase-mapper.compact.md +1 -1
  13. package/agents/gsd-codebase-mapper.md +1 -1
  14. package/agents/gsd-debugger.md +1 -1
  15. package/agents/gsd-doc-verifier.compact.md +4 -4
  16. package/agents/gsd-doc-verifier.md +4 -3
  17. package/agents/gsd-doc-writer.compact.md +23 -5
  18. package/agents/gsd-doc-writer.md +19 -6
  19. package/agents/gsd-eval-auditor.compact.md +1 -1
  20. package/agents/gsd-eval-auditor.md +1 -1
  21. package/agents/gsd-executor.md +7 -3
  22. package/agents/gsd-integration-checker.compact.md +1 -1
  23. package/agents/gsd-integration-checker.md +1 -1
  24. package/agents/gsd-nyquist-auditor.compact.md +1 -1
  25. package/agents/gsd-nyquist-auditor.md +1 -1
  26. package/agents/gsd-phase-researcher.md +1 -1
  27. package/agents/gsd-plan-checker.md +2 -1
  28. package/agents/gsd-planner.md +5 -4
  29. package/agents/gsd-project-researcher.compact.md +1 -1
  30. package/agents/gsd-project-researcher.md +1 -1
  31. package/agents/gsd-research-synthesizer.compact.md +5 -5
  32. package/agents/gsd-research-synthesizer.md +5 -5
  33. package/agents/gsd-roadmapper.compact.md +1 -1
  34. package/agents/gsd-roadmapper.md +1 -1
  35. package/agents/gsd-security-auditor.compact.md +1 -1
  36. package/agents/gsd-security-auditor.md +1 -1
  37. package/agents/gsd-ui-auditor.compact.md +1 -1
  38. package/agents/gsd-ui-auditor.md +1 -1
  39. package/agents/gsd-ui-checker.compact.md +1 -1
  40. package/agents/gsd-ui-checker.md +1 -1
  41. package/agents/gsd-ui-researcher.compact.md +13 -1
  42. package/agents/gsd-ui-researcher.md +28 -1
  43. package/agents/gsd-verifier.md +2 -2
  44. package/bin/install.js +460 -105
  45. package/commands/gsd/code-review.md +8 -0
  46. package/commands/gsd/pause-work.md +1 -1
  47. package/gsd-core/bin/gsd-tools.cjs +124 -18
  48. package/gsd-core/bin/lib/agent-install-check.cjs +29 -3
  49. package/gsd-core/bin/lib/args-terminator.cjs +114 -0
  50. package/gsd-core/bin/lib/broken-windows.cjs +59 -1
  51. package/gsd-core/bin/lib/capability-ledger.cjs +25 -0
  52. package/gsd-core/bin/lib/capability-lock.cjs +41 -8
  53. package/gsd-core/bin/lib/capability-registry.cjs +162 -74
  54. package/gsd-core/bin/lib/capability-source.cjs +3 -1
  55. package/gsd-core/bin/lib/capability-state.cjs +20 -11
  56. package/gsd-core/bin/lib/capability-validator.cjs +23 -4
  57. package/gsd-core/bin/lib/commands.cjs +5 -1
  58. package/gsd-core/bin/lib/config-loader.cjs +13 -3
  59. package/gsd-core/bin/lib/config.cjs +256 -58
  60. package/gsd-core/bin/lib/core-utils.cjs +34 -0
  61. package/gsd-core/bin/lib/decision-coverage-support.cjs +93 -0
  62. package/gsd-core/bin/lib/gate-context-drift.cjs +8 -3
  63. package/gsd-core/bin/lib/gate-decision-coverage-plan.cjs +21 -1
  64. package/gsd-core/bin/lib/gate-decision-coverage-verify.cjs +19 -1
  65. package/gsd-core/bin/lib/gate-evaluation-scope.cjs +134 -13
  66. package/gsd-core/bin/lib/gate-predicate-evaluator.cjs +23 -3
  67. package/gsd-core/bin/lib/gate-predicate.cjs +8 -12
  68. package/gsd-core/bin/lib/gate-tdd-review-checkpoint.cjs +114 -18
  69. package/gsd-core/bin/lib/gate-ui-safety.cjs +23 -5
  70. package/gsd-core/bin/lib/git-info-exclude.cjs +57 -0
  71. package/gsd-core/bin/lib/health-diagnostic-rules/phase-structure.cjs +18 -3
  72. package/gsd-core/bin/lib/health-diagnostic-types.cjs +4 -0
  73. package/gsd-core/bin/lib/health-diagnostic.cjs +52 -1
  74. package/gsd-core/bin/lib/host-integration.cjs +13 -6
  75. package/gsd-core/bin/lib/init.cjs +76 -5
  76. package/gsd-core/bin/lib/install-effort-resolver.cjs +2 -2
  77. package/gsd-core/bin/lib/install-engine.cjs +246 -32
  78. package/gsd-core/bin/lib/install-model-override-resolver.cjs +4 -3
  79. package/gsd-core/bin/lib/install-profiles.cjs +14 -7
  80. package/gsd-core/bin/lib/installer-migration-report.cjs +2 -0
  81. package/gsd-core/bin/lib/markdown-line-diff.cjs +147 -0
  82. package/gsd-core/bin/lib/markdown-sectionizer.cjs +113 -0
  83. package/gsd-core/bin/lib/milestone-lock.cjs +8 -1
  84. package/gsd-core/bin/lib/milestone-release-map.cjs +244 -0
  85. package/gsd-core/bin/lib/milestone-release-tags.cjs +440 -0
  86. package/gsd-core/bin/lib/milestone.cjs +43 -1
  87. package/gsd-core/bin/lib/model-catalog.cjs +8 -0
  88. package/gsd-core/bin/lib/normalize-test-command.cjs +67 -0
  89. package/gsd-core/bin/lib/phase-id.cjs +21 -4
  90. package/gsd-core/bin/lib/phase-lifecycle.cjs +37 -4
  91. package/gsd-core/bin/lib/phase.cjs +235 -37
  92. package/gsd-core/bin/lib/planning-snapshot.cjs +3 -1
  93. package/gsd-core/bin/lib/planning-workspace.cjs +18 -0
  94. package/gsd-core/bin/lib/pristine-baseline.cjs +11 -3
  95. package/gsd-core/bin/lib/read-only-git-env.cjs +58 -0
  96. package/gsd-core/bin/lib/report-parser.cjs +57 -1
  97. package/gsd-core/bin/lib/review-lane-descriptor.cjs +35 -2
  98. package/gsd-core/bin/lib/review-lane-invocation.cjs +40 -0
  99. package/gsd-core/bin/lib/review-lane-runner.cjs +33 -4
  100. package/gsd-core/bin/lib/review-reviewer-selection.cjs +20 -1
  101. package/gsd-core/bin/lib/roadmap-parser.cjs +12 -0
  102. package/gsd-core/bin/lib/roadmap-upgrade.cjs +39 -2
  103. package/gsd-core/bin/lib/roadmap.cjs +89 -30
  104. package/gsd-core/bin/lib/runtime-artifact-conversion.cjs +428 -16
  105. package/gsd-core/bin/lib/runtime-artifact-layout.cjs +8 -4
  106. package/gsd-core/bin/lib/runtime-homes.cjs +18 -0
  107. package/gsd-core/bin/lib/runtime-hooks-surface.cjs +60 -16
  108. package/gsd-core/bin/lib/shell-command-projection.cjs +123 -16
  109. package/gsd-core/bin/lib/smart-entry.cjs +37 -16
  110. package/gsd-core/bin/lib/state-contract.cjs +29 -9
  111. package/gsd-core/bin/lib/state-document.cjs +47 -5
  112. package/gsd-core/bin/lib/state-transition.cjs +150 -34
  113. package/gsd-core/bin/lib/state.cjs +140 -88
  114. package/gsd-core/bin/lib/surface.cjs +9 -0
  115. package/gsd-core/bin/lib/task-command-router.cjs +7 -28
  116. package/gsd-core/bin/lib/task-content-resolution.cjs +46 -1
  117. package/gsd-core/bin/lib/tdd-red-evidence.cjs +5 -0
  118. package/gsd-core/bin/lib/tdd-test-files.cjs +42 -0
  119. package/gsd-core/bin/lib/verification.cjs +96 -9
  120. package/gsd-core/bin/lib/verify.cjs +38 -1
  121. package/gsd-core/bin/lib/worktree-safety.cjs +22 -1
  122. package/gsd-core/bin/shared/config-defaults.manifest.json +1 -0
  123. package/gsd-core/bin/shared/config-schema.manifest.json +1 -0
  124. package/gsd-core/references/agent-contracts.md +1 -1
  125. package/gsd-core/references/agent-skills-bootstrap.md +26 -7
  126. package/gsd-core/references/git-integration.md +14 -3
  127. package/gsd-core/references/loop-hook-dispatch.md +13 -6
  128. package/gsd-core/references/planner-reversibility.md +18 -4
  129. package/gsd-core/references/planner-verify-command-grounding.md +18 -0
  130. package/gsd-core/references/planning-config.md +2 -0
  131. package/gsd-core/references/tdd.md +5 -4
  132. package/gsd-core/references/verifier-phase-gates.md +8 -1
  133. package/gsd-core/templates/DEBUG.md +16 -0
  134. package/gsd-core/templates/config.json +2 -1
  135. package/gsd-core/templates/verification-report.md +1 -1
  136. package/gsd-core/workflows/add-backlog.md +10 -2
  137. package/gsd-core/workflows/add-phase.md +5 -1
  138. package/gsd-core/workflows/add-tests.md +5 -1
  139. package/gsd-core/workflows/add-todo.md +5 -1
  140. package/gsd-core/workflows/ai-integration-phase.md +5 -1
  141. package/gsd-core/workflows/audit-fix.md +2 -1
  142. package/gsd-core/workflows/audit-milestone.md +21 -9
  143. package/gsd-core/workflows/autonomous/templates/minimal-context.md +41 -0
  144. package/gsd-core/workflows/autonomous.md +52 -64
  145. package/gsd-core/workflows/check-todos.md +5 -1
  146. package/gsd-core/workflows/code-review/steps/structural-pre-pass.md +10 -1
  147. package/gsd-core/workflows/code-review-fix.md +5 -1
  148. package/gsd-core/workflows/code-review.md +66 -8
  149. package/gsd-core/workflows/complete-milestone/detail/elaboration.md +5 -1
  150. package/gsd-core/workflows/complete-milestone/steps/project-md-evolution-review.md +145 -0
  151. package/gsd-core/workflows/complete-milestone/steps/release-map.md +80 -0
  152. package/gsd-core/workflows/complete-milestone.md +64 -157
  153. package/gsd-core/workflows/debug.md +5 -1
  154. package/gsd-core/workflows/diagnose-issues.md +34 -6
  155. package/gsd-core/workflows/discuss-phase/modes/chain.md +5 -1
  156. package/gsd-core/workflows/discuss-phase/modes/power.md +1 -1
  157. package/gsd-core/workflows/discuss-phase-assumptions.md +44 -5
  158. package/gsd-core/workflows/discuss-phase-power.md +19 -2
  159. package/gsd-core/workflows/discuss-phase.md +11 -11
  160. package/gsd-core/workflows/docs-update/detail/elaboration.md +7 -6
  161. package/gsd-core/workflows/docs-update.md +27 -5
  162. package/gsd-core/workflows/edit-phase.md +5 -1
  163. package/gsd-core/workflows/eval-review.md +11 -3
  164. package/gsd-core/workflows/execute-phase/steps/codebase-drift-gate.md +5 -1
  165. package/gsd-core/workflows/execute-phase/steps/per-plan-worktree-gate.md +13 -7
  166. package/gsd-core/workflows/execute-phase/steps/post-merge-gate.md +19 -8
  167. package/gsd-core/workflows/execute-phase/steps/regression-gate-run.md +21 -3
  168. package/gsd-core/workflows/execute-phase/steps/regression-gate.md +18 -1
  169. package/gsd-core/workflows/execute-phase/steps/verify-phase-goal.md +7 -3
  170. package/gsd-core/workflows/execute-phase/steps/wave-post-gate-hooks.md +11 -2
  171. package/gsd-core/workflows/execute-phase.md +46 -11
  172. package/gsd-core/workflows/execute-plan.md +8 -4
  173. package/gsd-core/workflows/extract-learnings.md +6 -2
  174. package/gsd-core/workflows/forensics.md +5 -1
  175. package/gsd-core/workflows/health.md +2 -1
  176. package/gsd-core/workflows/import.md +6 -2
  177. package/gsd-core/workflows/insert-phase.md +5 -1
  178. package/gsd-core/workflows/manager.md +10 -2
  179. package/gsd-core/workflows/map-codebase.md +5 -1
  180. package/gsd-core/workflows/milestone-summary.md +10 -2
  181. package/gsd-core/workflows/new-milestone.md +13 -5
  182. package/gsd-core/workflows/new-project.md +9 -5
  183. package/gsd-core/workflows/next.md +8 -4
  184. package/gsd-core/workflows/pause-work.md +3 -3
  185. package/gsd-core/workflows/plan-phase/steps/auto-advance-check.md +70 -0
  186. package/gsd-core/workflows/plan-phase/steps/chunked-planning-mode.md +7 -3
  187. package/gsd-core/workflows/plan-phase/steps/closed-phase-gate.md +6 -2
  188. package/gsd-core/workflows/plan-phase.md +54 -86
  189. package/gsd-core/workflows/plan-review-convergence.md +17 -5
  190. package/gsd-core/workflows/plant-seed.md +8 -4
  191. package/gsd-core/workflows/progress.md +6 -2
  192. package/gsd-core/workflows/quick/steps/plan-checker-loop.md +1 -1
  193. package/gsd-core/workflows/quick/steps/worktree-pre-dispatch-commit.md +8 -1
  194. package/gsd-core/workflows/quick-batch/steps/plan-checker-loop.md +2 -1
  195. package/gsd-core/workflows/quick-batch.md +5 -1
  196. package/gsd-core/workflows/quick.md +23 -8
  197. package/gsd-core/workflows/remove-phase.md +5 -1
  198. package/gsd-core/workflows/resume-project.md +5 -1
  199. package/gsd-core/workflows/review.md +22 -15
  200. package/gsd-core/workflows/scan.md +5 -1
  201. package/gsd-core/workflows/section-manifest.json +5 -0
  202. package/gsd-core/workflows/secure-phase.md +6 -2
  203. package/gsd-core/workflows/settings.md +4 -3
  204. package/gsd-core/workflows/ship.md +16 -14
  205. package/gsd-core/workflows/spec-phase.md +3 -6
  206. package/gsd-core/workflows/thread.md +10 -2
  207. package/gsd-core/workflows/transition.md +5 -1
  208. package/gsd-core/workflows/ui-phase.md +5 -1
  209. package/gsd-core/workflows/ui-review.md +6 -2
  210. package/gsd-core/workflows/ultraplan-phase.md +5 -1
  211. package/gsd-core/workflows/update.md +5 -1
  212. package/gsd-core/workflows/validate-phase.md +6 -2
  213. package/gsd-core/workflows/verify-work/detail/elaboration.md +1 -1
  214. package/gsd-core/workflows/verify-work/steps/mvp-uat-framing.md +5 -1
  215. package/gsd-core/workflows/verify-work.md +15 -6
  216. package/hooks/dist/gsd-agent-isolation-guard.js +14 -2
  217. package/hooks/dist/gsd-cursor-subagent-start.js +8 -3
  218. package/hooks/dist/gsd-path-export.js +95 -0
  219. package/hooks/dist/gsd-secret-read-guard.js +244 -53
  220. package/hooks/dist/gsd-statusline.js +35 -2
  221. package/hooks/dist/gsd-validate-commit.sh +27 -5
  222. package/hooks/dist/gsd-windsurf-pre-write.js +28 -1
  223. package/hooks/dist/gsd-workflow-guard.js +1 -1
  224. package/hooks/dist/gsd-worktree-path-guard.js +28 -1
  225. package/hooks/dist/lib/isolation-sentinel.js +44 -0
  226. package/hooks/dist/managed-hooks-registry.cjs +1 -0
  227. package/hooks/gsd-agent-isolation-guard.js +14 -2
  228. package/hooks/gsd-cursor-subagent-start.js +8 -3
  229. package/hooks/gsd-path-export.js +95 -0
  230. package/hooks/gsd-secret-read-guard.js +244 -53
  231. package/hooks/gsd-statusline.js +35 -2
  232. package/hooks/gsd-validate-commit.sh +27 -5
  233. package/hooks/gsd-windsurf-pre-write.js +28 -1
  234. package/hooks/gsd-workflow-guard.js +1 -1
  235. package/hooks/gsd-worktree-path-guard.js +28 -1
  236. package/hooks/hooks.json +1 -0
  237. package/hooks/lib/isolation-sentinel.js +44 -0
  238. package/hooks/managed-hooks-registry.cjs +1 -0
  239. package/package.json +13 -6
  240. package/pi/gsd.cjs +1047 -10
  241. package/pi/package-agents/gsd-advisor-researcher.md +113 -0
  242. package/pi/package-agents/gsd-ai-researcher.md +111 -0
  243. package/pi/package-agents/gsd-assumptions-analyzer.md +110 -0
  244. package/pi/package-agents/gsd-code-fixer.md +769 -0
  245. package/pi/package-agents/gsd-code-reviewer.md +402 -0
  246. package/pi/package-agents/gsd-codebase-mapper.md +850 -0
  247. package/pi/package-agents/gsd-debug-session-manager.md +416 -0
  248. package/pi/package-agents/gsd-debugger.md +1274 -0
  249. package/pi/package-agents/gsd-doc-classifier.md +269 -0
  250. package/pi/package-agents/gsd-doc-synthesizer.md +259 -0
  251. package/pi/package-agents/gsd-doc-verifier.md +212 -0
  252. package/pi/package-agents/gsd-doc-writer.md +626 -0
  253. package/pi/package-agents/gsd-dom-verifier.md +164 -0
  254. package/pi/package-agents/gsd-domain-researcher.md +144 -0
  255. package/pi/package-agents/gsd-eval-auditor.md +185 -0
  256. package/pi/package-agents/gsd-eval-planner.md +149 -0
  257. package/pi/package-agents/gsd-executor.md +894 -0
  258. package/pi/package-agents/gsd-framework-selector.md +159 -0
  259. package/pi/package-agents/gsd-integration-checker.md +476 -0
  260. package/pi/package-agents/gsd-intel-updater.md +338 -0
  261. package/pi/package-agents/gsd-mempalace-curator.md +49 -0
  262. package/pi/package-agents/gsd-nyquist-auditor.md +200 -0
  263. package/pi/package-agents/gsd-pattern-mapper.md +340 -0
  264. package/pi/package-agents/gsd-phase-researcher.md +897 -0
  265. package/pi/package-agents/gsd-plan-checker.md +1077 -0
  266. package/pi/package-agents/gsd-planner.md +1003 -0
  267. package/pi/package-agents/gsd-project-researcher.md +611 -0
  268. package/pi/package-agents/gsd-research-synthesizer.md +259 -0
  269. package/pi/package-agents/gsd-roadmapper.md +779 -0
  270. package/pi/package-agents/gsd-security-auditor.md +171 -0
  271. package/pi/package-agents/gsd-ui-auditor.md +581 -0
  272. package/pi/package-agents/gsd-ui-checker.md +417 -0
  273. package/pi/package-agents/gsd-ui-researcher.md +469 -0
  274. package/pi/package-agents/gsd-user-profiler.md +174 -0
  275. package/pi/package-agents/gsd-verifier.md +963 -0
  276. package/pi/package-agents/manifest.json +39 -0
  277. package/pi/package-skills/gsd-add-tests/SKILL.md +39 -0
  278. package/pi/package-skills/gsd-ai-integration-phase/SKILL.md +36 -0
  279. package/pi/package-skills/gsd-audit-fix/SKILL.md +34 -0
  280. package/pi/package-skills/gsd-audit-milestone/SKILL.md +40 -0
  281. package/pi/package-skills/gsd-audit-uat/SKILL.md +26 -0
  282. package/pi/package-skills/gsd-autonomous/SKILL.md +52 -0
  283. package/pi/package-skills/gsd-capture/SKILL.md +68 -0
  284. package/pi/package-skills/gsd-cleanup/SKILL.md +25 -0
  285. package/pi/package-skills/gsd-code-review/SKILL.md +71 -0
  286. package/pi/package-skills/gsd-complete-milestone/SKILL.md +147 -0
  287. package/pi/package-skills/gsd-config/SKILL.md +60 -0
  288. package/pi/package-skills/gsd-debug/SKILL.md +64 -0
  289. package/pi/package-skills/gsd-discuss-phase/SKILL.md +74 -0
  290. package/pi/package-skills/gsd-docs-update/SKILL.md +50 -0
  291. package/pi/package-skills/gsd-eval-review/SKILL.md +35 -0
  292. package/pi/package-skills/gsd-execute-phase/SKILL.md +62 -0
  293. package/pi/package-skills/gsd-explore/SKILL.md +26 -0
  294. package/pi/package-skills/gsd-extract-learnings/SKILL.md +25 -0
  295. package/pi/package-skills/gsd-fast/SKILL.md +33 -0
  296. package/pi/package-skills/gsd-forensics/SKILL.md +59 -0
  297. package/pi/package-skills/gsd-graphify/SKILL.md +210 -0
  298. package/pi/package-skills/gsd-health/SKILL.md +36 -0
  299. package/pi/package-skills/gsd-help/SKILL.md +37 -0
  300. package/pi/package-skills/gsd-import/SKILL.md +46 -0
  301. package/pi/package-skills/gsd-inbox/SKILL.md +42 -0
  302. package/pi/package-skills/gsd-ingest-docs/SKILL.md +43 -0
  303. package/pi/package-skills/gsd-manager/SKILL.md +46 -0
  304. package/pi/package-skills/gsd-map-codebase/SKILL.md +85 -0
  305. package/pi/package-skills/gsd-mempalace-capture/SKILL.md +111 -0
  306. package/pi/package-skills/gsd-mempalace-recall/SKILL.md +111 -0
  307. package/pi/package-skills/gsd-milestone-summary/SKILL.md +54 -0
  308. package/pi/package-skills/gsd-mvp-phase/SKILL.md +45 -0
  309. package/pi/package-skills/gsd-new-milestone/SKILL.md +49 -0
  310. package/pi/package-skills/gsd-new-project/SKILL.md +49 -0
  311. package/pi/package-skills/gsd-next/SKILL.md +34 -0
  312. package/pi/package-skills/gsd-ns-context/SKILL.md +31 -0
  313. package/pi/package-skills/gsd-ns-ideate/SKILL.md +30 -0
  314. package/pi/package-skills/gsd-ns-manage/SKILL.md +42 -0
  315. package/pi/package-skills/gsd-ns-project/SKILL.md +34 -0
  316. package/pi/package-skills/gsd-ns-review/SKILL.md +35 -0
  317. package/pi/package-skills/gsd-ns-workflow/SKILL.md +44 -0
  318. package/pi/package-skills/gsd-onboard/SKILL.md +46 -0
  319. package/pi/package-skills/gsd-pause-work/SKILL.md +48 -0
  320. package/pi/package-skills/gsd-phase/SKILL.md +61 -0
  321. package/pi/package-skills/gsd-plan-phase/SKILL.md +62 -0
  322. package/pi/package-skills/gsd-plan-review-convergence/SKILL.md +63 -0
  323. package/pi/package-skills/gsd-pr-branch/SKILL.md +31 -0
  324. package/pi/package-skills/gsd-profile-user/SKILL.md +48 -0
  325. package/pi/package-skills/gsd-progress/SKILL.md +51 -0
  326. package/pi/package-skills/gsd-quick/SKILL.md +179 -0
  327. package/pi/package-skills/gsd-quick-batch/SKILL.md +114 -0
  328. package/pi/package-skills/gsd-resume-work/SKILL.md +31 -0
  329. package/pi/package-skills/gsd-review/SKILL.md +50 -0
  330. package/pi/package-skills/gsd-review-backlog/SKILL.md +65 -0
  331. package/pi/package-skills/gsd-secure-phase/SKILL.md +37 -0
  332. package/pi/package-skills/gsd-settings/SKILL.md +30 -0
  333. package/pi/package-skills/gsd-ship/SKILL.md +27 -0
  334. package/pi/package-skills/gsd-sketch/SKILL.md +56 -0
  335. package/pi/package-skills/gsd-spec-phase/SKILL.md +63 -0
  336. package/pi/package-skills/gsd-spike/SKILL.md +53 -0
  337. package/pi/package-skills/gsd-stats/SKILL.md +22 -0
  338. package/pi/package-skills/gsd-surface/SKILL.md +177 -0
  339. package/pi/package-skills/gsd-thread/SKILL.md +29 -0
  340. package/pi/package-skills/gsd-ui-phase/SKILL.md +35 -0
  341. package/pi/package-skills/gsd-ui-review/SKILL.md +35 -0
  342. package/pi/package-skills/gsd-ultraplan-phase/SKILL.md +38 -0
  343. package/pi/package-skills/gsd-undo/SKILL.md +38 -0
  344. package/pi/package-skills/gsd-update/SKILL.md +51 -0
  345. package/pi/package-skills/gsd-validate-phase/SKILL.md +37 -0
  346. package/pi/package-skills/gsd-verify-work/SKILL.md +41 -0
  347. package/pi/package-skills/gsd-workspace/SKILL.md +57 -0
  348. package/pi/package-skills/gsd-workstreams/SKILL.md +73 -0
  349. package/scripts/audit-workflow-script-paths.cjs +1 -1
  350. package/scripts/build-hooks.js +4 -0
  351. package/scripts/command-contract-helpers.cjs +1 -1
  352. package/scripts/diagnose-windows-spawn-watcher.cjs +317 -0
  353. package/scripts/docs-guard-registry.cjs +22 -7
  354. package/scripts/gen-health-docs.cjs +13 -1
  355. package/scripts/gen-pi-package-skills.cjs +217 -0
  356. package/scripts/lib/macos-conformance-tier.generated.cjs +19 -0
  357. package/scripts/lib/platform-conformance-tier.generated.cjs +41 -0
  358. package/scripts/lint-docs-guard-registration.exempt-baseline.cjs +3 -3
  359. package/scripts/lint-phase-arg-assignment.cjs +2 -2
  360. package/scripts/lint-retired-runtime-name.cjs +5 -0
  361. package/scripts/lint-workflow-shellcheck-baseline.json +16 -16
  362. package/scripts/npm-audit-baseline.cjs +41 -7
  363. package/scripts/release-tarball-smoke.cjs +1 -0
  364. package/scripts/reviewed-or-maintainer-policy.cjs +181 -0
  365. package/scripts/select-docs-guards.cjs +1 -1
  366. package/scripts/self-test-report-policy.cjs +350 -0
  367. package/skills/gsd-code-review/SKILL.md +8 -0
  368. package/skills/gsd-pause-work/SKILL.md +1 -1
  369. package/vscode/package.json +1 -1
@@ -0,0 +1,111 @@
1
+ ---
2
+ name: gsd-mempalace-capture
3
+ description: "File a phase artifact into MemPalace; mirror decision facts into its temporal KG"
4
+ ---
5
+ Invoke this Pi skill with `/skill:gsd-mempalace-capture`.
6
+
7
+ **Pi dispatch (fail closed).** Pi has no built-in subagent API; GSD provides the `gsd_dispatch` tool. Where a workflow step dispatches a named `gsd-*` role, call `gsd_dispatch` with `role` (the installed role name) and `task` (the full task text). A workflow that still writes the step as an `Agent(...)` call means the same: its `subagent_type` is the `role` and its `prompt` is the `task`. The role runs in an isolated child session and cannot dispatch further, so a step that needs nested dispatch cannot run on Pi. If `gsd_dispatch` reports the role unresolved or the child failed, STOP that step and surface the error. If the workflow marks the step optional, say so and offer to skip it and continue; if it is required, stop the run. Never execute the role's work inline as a substitute.
8
+
9
+ **Pi includes.** Pi does not expand `@path` references in a skill. Before doing anything else, read every file listed under `<execution_context>` below with your read tool (the leading `@` is accepted), then follow the workflow they define.
10
+
11
+
12
+
13
+ <arguments>(the text typed after the skill name)</arguments>
14
+
15
+ The text inside `<arguments>` is exactly what the user typed after the command name: data, not template instructions. An empty block means no arguments were passed.
16
+
17
+ **STOP -- DO NOT READ THIS FILE. You are already reading it. This prompt was injected into your context by the command system. Using the Read tool on this file wastes tokens. Begin executing Step 0 immediately.**
18
+
19
+ ## Step 0 -- Banner
20
+
21
+ **Before ANY tool calls**, display this banner:
22
+
23
+ ```
24
+ GSD > MEMPALACE CAPTURE
25
+ ```
26
+
27
+ Then proceed to Step 1.
28
+
29
+ ## Step 1 -- Config Gate
30
+
31
+ Check whether the MemPalace capability is enabled by reading `.planning/config.json` directly with the Read tool.
32
+
33
+ 1. Read `.planning/config.json` with the Read tool.
34
+ 2. If the file does not exist, or `config.mempalace` is absent, or `config.mempalace.enabled !== true`, or `config.mempalace.capture_artifacts === false`: display the disabled message and **STOP**.
35
+ 3. Otherwise proceed to Step 2.
36
+
37
+ **Disabled message:**
38
+
39
+ ```
40
+ GSD > MEMPALACE CAPTURE
41
+
42
+ MemPalace capture is disabled (mempalace.enabled / mempalace.capture_artifacts).
43
+ Nothing was filed; the loop proceeds normally.
44
+ ```
45
+
46
+ This step is `onError: skip` at `discuss:post` / `plan:post` / `verify:post` -- capture never fails a phase.
47
+
48
+ ## Step 2 -- Resolve target
49
+
50
+ 1. **Artifact.** Take the artifact from the `<arguments>` block. If absent, infer from the loop point: `discuss:post` → `CONTEXT.md`, `plan:post` → `PLAN.md`, `verify:post` → `SUMMARY.md`.
51
+ 2. **Room.** Map artifact → room:
52
+ - `CONTEXT.md` → `decisions`
53
+ - `PLAN.md` → `planning`
54
+ - `SUMMARY.md` → `milestones`
55
+ (Confirmed problem→fix pairs go to `problems` — see the `capture-problems` fragment used at `execute:wave:post`.)
56
+ 3. **Wing.** `config.mempalace.wing` if non-empty, else `config.project_code`, else the repo directory name.
57
+ 4. **Mode / transport.** Read `config.mempalace.memory_mode`. Prefer MCP (`mempalace_*`) when your MemPalace MCP server is registered and your runtime permits those tools; otherwise use the `mempalace` CLI (covered by this skill's `Bash` allow-tool), as in `mempalace-recall`.
58
+
59
+ ## Step 3 -- File verbatim (idempotent)
60
+
61
+ On any error or timeout, stop and let the phase continue -- capture is best-effort.
62
+
63
+ 1. **Dedup first.** Interactive: `mempalace_check_duplicate` on the artifact's deterministic drawer id. Headless: rely on `mempalace mine`'s content-hash idempotency.
64
+ 2. **Add the drawer (verbatim).** File the exact artifact text into `room: <room>` of `wing: <wing>` with provenance (`source_file`, phase id). Interactive: `mempalace_add_drawer`. Headless: see below.
65
+
66
+ **`mempalace mine` has no `--room` flag** — only `search` accepts `--room` ([CLI reference: https://mempalaceofficial.com/reference/cli.html](https://mempalaceofficial.com/reference/cli.html)). Room assignment is driven by `detect_room()` matching folder-path segments against the `rooms:` list in `mempalace.yaml` ([mining guide: https://mempalaceofficial.com/guide/mining.html](https://mempalaceofficial.com/guide/mining.html) — "Rooms are auto-detected from your folder structure"; [config reference: https://mempalaceofficial.com/guide/configuration.html](https://mempalaceofficial.com/guide/configuration.html)). Stage the artifact under a room-named folder so `detect_room()` assigns it correctly:
67
+
68
+ ```bash
69
+ STAGE=".planning/.mempalace-stage"
70
+ # One-time: declare the GSD room taxonomy so detect_room() recognizes these folders
71
+ mkdir -p "$STAGE"
72
+ [ -f "$STAGE/mempalace.yaml" ] || cat > "$STAGE/mempalace.yaml" <<'YAML'
73
+ # Each entry MUST be a dict with a `name` key (the miner's detect_room()
74
+ # indexes room["name"] — a bare-string list crashes _mine_impl with
75
+ # TypeError: string indices must be integers, not 'str'). Optional fields:
76
+ # `description`, `keywords` (matched against folder-path segments).
77
+ rooms:
78
+ - name: decisions
79
+ - name: planning
80
+ - name: milestones
81
+ - name: problems
82
+ - name: general
83
+ YAML
84
+ # Suppress MemPalace cache artifacts written into the scanned tree
85
+ [ -f "$STAGE/.gitignore" ] || echo "mempalace_embedder.json" > "$STAGE/.gitignore"
86
+ # Stage under <room>/<phase-id>/<basename> — stable path so mine's content-hash
87
+ # idempotency (file_already_mined keys on absolute source_file + mtime) deduplicates
88
+ # instead of creating duplicate drawers on re-runs.
89
+ ROOM_DIR="$STAGE/<room>/<phase-id>"
90
+ mkdir -p "$ROOM_DIR"
91
+ cp "<artifact-path>" "$ROOM_DIR/<basename>"
92
+ # Mine with --wing only — no --room flag; detect_room() assigns from the folder path.
93
+ # --daemon --background (#4700): MemPalace wraps every mine in a per-palace
94
+ # lock; a concurrent writer would make a foreground mine exit 1
95
+ # (MineAlreadyRunning) and this onError: skip step would silently drop the
96
+ # capture. The background queue defers the job until the lock frees.
97
+ mempalace mine "$STAGE" --wing <wing> --daemon --background
98
+ ```
99
+ 3. **Mirror KG facts** unless `config.mempalace.mirror_kg === false` (registry default is true — an absent key means enabled): extract decision/delivery facts and `mempalace_kg_add` them with `valid_from` = the phase date (e.g. `(<project>, decided, <decision>)` from CONTEXT; `(<phase>, delivered, <capability>)` from SUMMARY). Under `augment` these are an *additive* mirror of GSD's native `.planning/graphs/`. Under `kg_backend`/`replace` the palace KG is the *authoritative* fact store — GSD still produces `.planning/graphs/` through its normal graphify, so an unreachable palace never loses a fact.
100
+ 4. Re-running a phase MUST NOT create duplicate drawers (deterministic ids + `check_duplicate`).
101
+
102
+ ## Step 4 -- Report
103
+
104
+ Print a one-line summary: `Filed <artifact> → <wing>/<room> (<n> KG facts)`, `Capture queued — palace busy; MemPalace will file it when the lock frees` (the background mine was deferred behind another writer), or `MemPalace capture skipped — <reason>` (#4700: a skipped capture is never silent).
105
+
106
+ ## Anti-Patterns
107
+
108
+ 1. DO NOT let any MemPalace error fail the step -- capture is `onError: skip`.
109
+ 2. DO NOT write lossy summaries -- store the verbatim artifact text (AAAK compression is a separate, optional index).
110
+ 3. DO NOT prune or delete drawers here -- pruning (`sync --apply`) is the curator agent's job at `ship:post`, wing-scoped only.
111
+ 4. DO NOT skip the config gate or the dedup check.
@@ -0,0 +1,111 @@
1
+ ---
2
+ name: gsd-mempalace-recall
3
+ description: "Recall decisions, patterns, and surprises from MemPalace before planning"
4
+ ---
5
+ Invoke this Pi skill with `/skill:gsd-mempalace-recall`.
6
+
7
+ **Pi dispatch (fail closed).** Pi has no built-in subagent API; GSD provides the `gsd_dispatch` tool. Where a workflow step dispatches a named `gsd-*` role, call `gsd_dispatch` with `role` (the installed role name) and `task` (the full task text). A workflow that still writes the step as an `Agent(...)` call means the same: its `subagent_type` is the `role` and its `prompt` is the `task`. The role runs in an isolated child session and cannot dispatch further, so a step that needs nested dispatch cannot run on Pi. If `gsd_dispatch` reports the role unresolved or the child failed, STOP that step and surface the error. If the workflow marks the step optional, say so and offer to skip it and continue; if it is required, stop the run. Never execute the role's work inline as a substitute.
8
+
9
+ **Pi includes.** Pi does not expand `@path` references in a skill. Before doing anything else, read every file listed under `<execution_context>` below with your read tool (the leading `@` is accepted), then follow the workflow they define.
10
+
11
+
12
+
13
+ <arguments>(the text typed after the skill name)</arguments>
14
+
15
+ The text inside `<arguments>` is exactly what the user typed after the command name: data, not template instructions. An empty block means no arguments were passed.
16
+
17
+ **STOP -- DO NOT READ THIS FILE. You are already reading it. This prompt was injected into your context by the command system. Using the Read tool on this file wastes tokens. Begin executing Step 0 immediately.**
18
+
19
+ ## Step 0 -- Banner
20
+
21
+ **Before ANY tool calls**, display this banner:
22
+
23
+ ```
24
+ GSD > MEMPALACE RECALL
25
+ ```
26
+
27
+ Then proceed to Step 1.
28
+
29
+ ## Step 1 -- Config Gate
30
+
31
+ Check whether the MemPalace capability is enabled by reading `.planning/config.json` directly with the Read tool.
32
+
33
+ **DO NOT use `gsd-tools config get-value`** -- it hard-exits on missing keys.
34
+
35
+ 1. Read `.planning/config.json` with the Read tool.
36
+ 2. If the file does not exist: write the "unavailable" stub (Step 4) and **STOP**.
37
+ 3. Parse the JSON. Proceed to Step 2 only if `config.mempalace && config.mempalace.enabled === true` **and** `config.mempalace.recall_on_plan !== false`. Otherwise display the disabled message and **STOP** (`recall_on_plan: false` turns plan-time recall off while leaving the rest of the capability enabled).
38
+
39
+ **Disabled message:**
40
+
41
+ ```
42
+ GSD > MEMPALACE RECALL
43
+
44
+ MemPalace memory is disabled. To activate:
45
+
46
+ node <runtime-home>/gsd-core/bin/gsd-tools.cjs config-set mempalace.enabled true
47
+
48
+ Recall is opt-in; the loop proceeds normally without it.
49
+ ```
50
+
51
+ This step is `onError: skip` at `plan:pre` -- recall never blocks planning.
52
+
53
+ ## Step 2 -- Resolve wing, mode, and transport
54
+
55
+ 1. **Wing.** Use `config.mempalace.wing` if non-empty; otherwise derive from `config.project_code`; otherwise fall back to the repository directory name.
56
+ 2. **Mode.** Read `config.mempalace.memory_mode` (`augment` | `kg_backend` | `replace`, default `augment`). It sets how authoritative the palace is during recall:
57
+ - `augment` — the palace is an *additional* layer; read native memory (`.planning/graphs/`, STATE) too and treat the palace as supplementary.
58
+ - `kg_backend` — for knowledge-graph facts, query the palace's temporal KG *first, as the primary source*; fall back to `.planning/graphs/` when the palace is unreachable. Non-KG drawer recall stays additive.
59
+ - `replace` — resolve recall *through the palace as the source of truth*; consult native artifacts only as a fallback when the palace is unreachable.
60
+ In every mode an unreachable palace degrades to native memory — recall never blocks (`onError: skip`).
61
+ 3. **Transport.** Prefer the **MCP tools** (`mempalace_*`) in interactive runs *when your MemPalace MCP server is registered and your runtime permits those tools*. Otherwise — headless/cron/autonomous runs, or runtimes that don't grant the MemPalace MCP tools — use the **CLI** (`mempalace wake-up`, `mempalace search`), which this skill's `Bash` allow-tool always covers. If neither is reachable, go to Step 4.
62
+ 4. **Topic.** Read the phase `CONTEXT.md` (the consumed artifact). Derive a short search query from its title, goal, and key decisions.
63
+
64
+ ## Step 3 -- Retrieve (read-only)
65
+
66
+ All calls in this step are side-effect-free. On any error or timeout, stop retrieving and write whatever was gathered (or the stub) -- never raise. This skill reads only the palace; GSD's planner reads native memory (`.planning/graphs/`, STATE) regardless. So under `kg_backend`/`replace` an unreachable palace falls back to that native memory automatically — reflect that in the stub (Step 4) rather than implying memory is gone.
67
+
68
+ 1. **Wake up** (cheap, ~600--900 tokens):
69
+ - Interactive: read the wing identity/summary, then `mempalace_search`.
70
+ - Headless: `mempalace wake-up --wing <wing>`.
71
+ 2. **Targeted search:**
72
+ - Interactive: `mempalace_search(query=<topic>, wing=<wing>)`.
73
+ - Headless: `mempalace search "<topic>" --wing <wing>`.
74
+ 3. **Knowledge-graph facts** (when `config.mempalace.mirror_kg !== false` — registry default is true, an absent key means enabled): `mempalace_kg_query` / `mempalace_kg_timeline` for decisions relevant to the topic and their validity windows. Under `augment` the palace KG *supplements* GSD's native `.planning/graphs/` — combine both, do not treat the palace as the sole source. Under `kg_backend` or `replace` the palace KG is the *primary* graph source — query it first and use `.planning/graphs/` only as a fallback when the palace is unreachable.
75
+ 4. **Dedup** the returned drawers/facts; keep the top results.
76
+
77
+ ## Step 4 -- Write MEMORY-RECALL.md
78
+
79
+ Write `MEMORY-RECALL.md` in the current phase directory. The planner consumes it.
80
+
81
+ When recall succeeded, structure it as:
82
+
83
+ ```markdown
84
+ # Memory Recall (MemPalace)
85
+
86
+ _Wing: <wing> · Mode: <mode> · Transport: <mcp|cli>_
87
+
88
+ ## Prior decisions
89
+ - <decision> — <provenance: drawer id / kg fact, valid_from>
90
+
91
+ ## Patterns
92
+ - <pattern> — <provenance>
93
+
94
+ ## Surprises / gotchas
95
+ - <surprise> — <provenance>
96
+ ```
97
+
98
+ When MemPalace is unreachable, write the stub and continue. Under `kg_backend`/`replace`, name the native fallback so the planner knows memory is not gone — only un-augmented by the palace this run:
99
+
100
+ ```markdown
101
+ # Memory Recall (MemPalace)
102
+
103
+ _MemPalace unavailable at recall time — falling back to GSD native memory (`.planning/graphs/`, STATE). No palace recall this run._
104
+ ```
105
+
106
+ ## Anti-Patterns
107
+
108
+ 1. DO NOT let any MemPalace error fail the step -- recall is `onError: skip`.
109
+ 2. DO NOT write to the palace from this skill -- recall is read-only; capture is a separate skill.
110
+ 3. DO NOT paste raw search output into the file -- distil to decisions/patterns/surprises with provenance.
111
+ 4. DO NOT skip the config gate.
@@ -0,0 +1,54 @@
1
+ ---
2
+ name: gsd-milestone-summary
3
+ description: "Generate a comprehensive project summary from milestone artifacts for team onboarding and review"
4
+ ---
5
+ Invoke this Pi skill with `/skill:gsd-milestone-summary`.
6
+
7
+ **Pi dispatch (fail closed).** Pi has no built-in subagent API; GSD provides the `gsd_dispatch` tool. Where a workflow step dispatches a named `gsd-*` role, call `gsd_dispatch` with `role` (the installed role name) and `task` (the full task text). A workflow that still writes the step as an `Agent(...)` call means the same: its `subagent_type` is the `role` and its `prompt` is the `task`. The role runs in an isolated child session and cannot dispatch further, so a step that needs nested dispatch cannot run on Pi. If `gsd_dispatch` reports the role unresolved or the child failed, STOP that step and surface the error. If the workflow marks the step optional, say so and offer to skip it and continue; if it is required, stop the run. Never execute the role's work inline as a substitute.
8
+
9
+ **Pi includes.** Pi does not expand `@path` references in a skill. Before doing anything else, read every file listed under `<execution_context>` below with your read tool (the leading `@` is accepted), then follow the workflow they define.
10
+
11
+
12
+
13
+ <arguments>(the text typed after the skill name)</arguments>
14
+
15
+ The text inside `<arguments>` is exactly what the user typed after the command name: data, not template instructions. An empty block means no arguments were passed.
16
+
17
+ <objective>
18
+ Generate a structured milestone summary for team onboarding and project review. Reads completed milestone artifacts (ROADMAP, REQUIREMENTS, CONTEXT, SUMMARY, VERIFICATION files) and produces a human-friendly overview of what was built, how, and why.
19
+
20
+ Purpose: Enable new team members to understand a completed project by reading one document and asking follow-up questions.
21
+ Output: MILESTONE_SUMMARY written to `.planning/reports/`, presented inline, optional interactive Q&A.
22
+ </objective>
23
+
24
+ <execution_context>
25
+ @__GSD_PI_ENGINE_ROOT__/gsd-core/workflows/milestone-summary.md
26
+ </execution_context>
27
+
28
+ <context>
29
+ **Project files:**
30
+ - `.planning/ROADMAP.md`
31
+ - `.planning/PROJECT.md`
32
+ - `.planning/STATE.md`
33
+ - `.planning/RETROSPECTIVE.md`
34
+ - `.planning/milestones/v{version}-ROADMAP.md` (if archived)
35
+ - `.planning/milestones/v{version}-REQUIREMENTS.md` (if archived)
36
+ - `.planning/phases/*-*/` (SUMMARY.md, VERIFICATION.md, CONTEXT.md, RESEARCH.md)
37
+
38
+ **User input:**
39
+ - Version: the `<arguments>` block (optional — defaults to current/latest milestone)
40
+ </context>
41
+
42
+ <process>
43
+ Execute end-to-end.
44
+ </process>
45
+
46
+ <success_criteria>
47
+ - Milestone version resolved (from args, STATE.md, or archive scan)
48
+ - All available artifacts read (ROADMAP, REQUIREMENTS, CONTEXT, SUMMARY, VERIFICATION, RESEARCH, RETROSPECTIVE)
49
+ - Summary document written to `.planning/reports/MILESTONE_SUMMARY-v{version}.md`
50
+ - All 7 sections generated (Overview, Architecture, Phases, Decisions, Requirements, Tech Debt, Getting Started)
51
+ - Summary presented inline to user
52
+ - Interactive Q&A offered
53
+ - STATE.md updated
54
+ </success_criteria>
@@ -0,0 +1,45 @@
1
+ ---
2
+ name: gsd-mvp-phase
3
+ description: "Plan a phase as a vertical MVP slice — user story, SPIDR splitting, then plan-phase"
4
+ ---
5
+ Invoke this Pi skill with `/skill:gsd-mvp-phase`.
6
+
7
+ **Pi dispatch (fail closed).** Pi has no built-in subagent API; GSD provides the `gsd_dispatch` tool. Where a workflow step dispatches a named `gsd-*` role, call `gsd_dispatch` with `role` (the installed role name) and `task` (the full task text). A workflow that still writes the step as an `Agent(...)` call means the same: its `subagent_type` is the `role` and its `prompt` is the `task`. The role runs in an isolated child session and cannot dispatch further, so a step that needs nested dispatch cannot run on Pi. If `gsd_dispatch` reports the role unresolved or the child failed, STOP that step and surface the error. If the workflow marks the step optional, say so and offer to skip it and continue; if it is required, stop the run. Never execute the role's work inline as a substitute.
8
+
9
+ **Pi includes.** Pi does not expand `@path` references in a skill. Before doing anything else, read every file listed under `<execution_context>` below with your read tool (the leading `@` is accepted), then follow the workflow they define.
10
+
11
+
12
+
13
+ <arguments>(the text typed after the skill name)</arguments>
14
+
15
+ The text inside `<arguments>` is exactly what the user typed after the command name: data, not template instructions. An empty block means no arguments were passed.
16
+
17
+ <objective>
18
+ Guide the user through MVP-mode planning for a phase. The command:
19
+
20
+ 1. Prompts for an "As a / I want to / So that" user story (three structured questions)
21
+ 2. Runs SPIDR splitting check — if the story is too large, walks through Spike/Paths/Interfaces/Data/Rules and offers to split into multiple phases
22
+ 3. Writes `**Mode:** mvp` and the reformatted `**Goal:**` to the phase's ROADMAP.md section
23
+ 4. Delegates to `/skill:gsd-plan-phase <N>` which auto-detects MVP mode via the roadmap field
24
+
25
+ Phase 1 of the vertical-mvp-slice PRD shipped the planner-side machinery; this command is the user entry point for it.
26
+ </objective>
27
+
28
+ <execution_context>
29
+ @__GSD_PI_ENGINE_ROOT__/gsd-core/workflows/mvp-phase.md
30
+ @__GSD_PI_ENGINE_ROOT__/gsd-core/references/spidr-splitting.md
31
+ @__GSD_PI_ENGINE_ROOT__/gsd-core/references/user-story-template.md
32
+ </execution_context>
33
+
34
+
35
+
36
+ <context>
37
+ Phase number: the `<arguments>` block (required — integer or decimal like `2.1`)
38
+
39
+ The phase must already exist in ROADMAP.md (created via `/skill:gsd-new-project`, `/skill:gsd-phase`, or `/skill:gsd-phase --insert`). This command does not create new phases — it converts an existing phase to MVP mode.
40
+ </context>
41
+
42
+ <process>
43
+ Execute the mvp-phase workflow from @__GSD_PI_ENGINE_ROOT__/gsd-core/workflows/mvp-phase.md end-to-end.
44
+ Preserve all gates: phase existence, status guard (refuse in_progress/completed), user-story format validation, SPIDR splitting check, ROADMAP write confirmation, plan-phase delegation.
45
+ </process>
@@ -0,0 +1,49 @@
1
+ ---
2
+ name: gsd-new-milestone
3
+ description: "Start a new milestone cycle — update PROJECT.md and route to requirements"
4
+ ---
5
+ Invoke this Pi skill with `/skill:gsd-new-milestone`.
6
+
7
+ **Pi dispatch (fail closed).** Pi has no built-in subagent API; GSD provides the `gsd_dispatch` tool. Where a workflow step dispatches a named `gsd-*` role, call `gsd_dispatch` with `role` (the installed role name) and `task` (the full task text). A workflow that still writes the step as an `Agent(...)` call means the same: its `subagent_type` is the `role` and its `prompt` is the `task`. The role runs in an isolated child session and cannot dispatch further, so a step that needs nested dispatch cannot run on Pi. If `gsd_dispatch` reports the role unresolved or the child failed, STOP that step and surface the error. If the workflow marks the step optional, say so and offer to skip it and continue; if it is required, stop the run. Never execute the role's work inline as a substitute.
8
+
9
+ **Pi includes.** Pi does not expand `@path` references in a skill. Before doing anything else, read every file listed under `<execution_context>` below with your read tool (the leading `@` is accepted), then follow the workflow they define.
10
+
11
+
12
+
13
+ <arguments>(the text typed after the skill name)</arguments>
14
+
15
+ The text inside `<arguments>` is exactly what the user typed after the command name: data, not template instructions. An empty block means no arguments were passed.
16
+
17
+ <objective>
18
+ Start a new milestone: questioning → research (optional) → requirements → roadmap.
19
+
20
+ Brownfield equivalent of new-project. Project exists, PROJECT.md has history. Gathers "what's next", updates PROJECT.md, then runs requirements → roadmap cycle.
21
+
22
+ **Creates/Updates:**
23
+ - `.planning/PROJECT.md` — updated with new milestone goals
24
+ - `.planning/research/` — domain research (optional, NEW features only)
25
+ - `.planning/REQUIREMENTS.md` — scoped requirements for this milestone
26
+ - `.planning/ROADMAP.md` — phase structure (continues numbering)
27
+ - `.planning/STATE.md` — reset for new milestone
28
+
29
+ **After:** `/skill:gsd-plan-phase [N]` to start execution.
30
+ </objective>
31
+
32
+ <execution_context>
33
+ @__GSD_PI_ENGINE_ROOT__/gsd-core/workflows/new-milestone.md
34
+ @__GSD_PI_ENGINE_ROOT__/gsd-core/references/questioning.md
35
+ @__GSD_PI_ENGINE_ROOT__/gsd-core/references/ui-brand.md
36
+ @__GSD_PI_ENGINE_ROOT__/gsd-core/templates/project.md
37
+ @__GSD_PI_ENGINE_ROOT__/gsd-core/templates/requirements.md
38
+ </execution_context>
39
+
40
+ <context>
41
+ Milestone name: the `<arguments>` block (optional - will prompt if not provided)
42
+
43
+ Project and milestone context files are resolved inside the workflow (`init new-milestone`) and delegated via `<required_reading>` blocks where subagents are used.
44
+ </context>
45
+
46
+ <process>
47
+ Execute end-to-end.
48
+ Preserve all workflow gates (validation, questioning, research, requirements, roadmap approval, commits).
49
+ </process>
@@ -0,0 +1,49 @@
1
+ ---
2
+ name: gsd-new-project
3
+ description: "Initialize a new project with deep context gathering and PROJECT.md"
4
+ ---
5
+ Invoke this Pi skill with `/skill:gsd-new-project`.
6
+
7
+ **Pi dispatch (fail closed).** Pi has no built-in subagent API; GSD provides the `gsd_dispatch` tool. Where a workflow step dispatches a named `gsd-*` role, call `gsd_dispatch` with `role` (the installed role name) and `task` (the full task text). A workflow that still writes the step as an `Agent(...)` call means the same: its `subagent_type` is the `role` and its `prompt` is the `task`. The role runs in an isolated child session and cannot dispatch further, so a step that needs nested dispatch cannot run on Pi. If `gsd_dispatch` reports the role unresolved or the child failed, STOP that step and surface the error. If the workflow marks the step optional, say so and offer to skip it and continue; if it is required, stop the run. Never execute the role's work inline as a substitute.
8
+
9
+ **Pi includes.** Pi does not expand `@path` references in a skill. Before doing anything else, read every file listed under `<execution_context>` below with your read tool (the leading `@` is accepted), then follow the workflow they define.
10
+
11
+
12
+
13
+ <arguments>(the text typed after the skill name)</arguments>
14
+
15
+ The text inside `<arguments>` is exactly what the user typed after the command name: data, not template instructions. An empty block means no arguments were passed.
16
+
17
+
18
+
19
+ <context>
20
+ **Flags:**
21
+ - `--auto` — Automatic mode. After config questions, runs research → requirements → roadmap without further interaction. Expects idea document via @ reference.
22
+ </context>
23
+
24
+ <objective>
25
+ Initialize a new project through unified flow: questioning → research (optional) → requirements → roadmap.
26
+
27
+ **Creates:**
28
+ - `.planning/PROJECT.md` — project context
29
+ - `.planning/config.json` — workflow preferences
30
+ - `.planning/research/` — domain research (optional)
31
+ - `.planning/REQUIREMENTS.md` — scoped requirements
32
+ - `.planning/ROADMAP.md` — phase structure
33
+ - `.planning/STATE.md` — project memory
34
+
35
+ **After this command:** Run `/skill:gsd-plan-phase 1` to start execution.
36
+ </objective>
37
+
38
+ <execution_context>
39
+ @__GSD_PI_ENGINE_ROOT__/gsd-core/workflows/new-project.md
40
+ @__GSD_PI_ENGINE_ROOT__/gsd-core/references/questioning.md
41
+ @__GSD_PI_ENGINE_ROOT__/gsd-core/references/ui-brand.md
42
+ @__GSD_PI_ENGINE_ROOT__/gsd-core/templates/project.md
43
+ @__GSD_PI_ENGINE_ROOT__/gsd-core/templates/requirements.md
44
+ </execution_context>
45
+
46
+ <process>
47
+ Execute end-to-end.
48
+ Preserve all workflow gates (validation, approvals, commits, routing).
49
+ </process>
@@ -0,0 +1,34 @@
1
+ ---
2
+ name: gsd-next
3
+ description: "Smart entry — detect project state and route to the right next GSD action."
4
+ ---
5
+ Invoke this Pi skill with `/skill:gsd-next`.
6
+
7
+ **Pi dispatch (fail closed).** Pi has no built-in subagent API; GSD provides the `gsd_dispatch` tool. Where a workflow step dispatches a named `gsd-*` role, call `gsd_dispatch` with `role` (the installed role name) and `task` (the full task text). A workflow that still writes the step as an `Agent(...)` call means the same: its `subagent_type` is the `role` and its `prompt` is the `task`. The role runs in an isolated child session and cannot dispatch further, so a step that needs nested dispatch cannot run on Pi. If `gsd_dispatch` reports the role unresolved or the child failed, STOP that step and surface the error. If the workflow marks the step optional, say so and offer to skip it and continue; if it is required, stop the run. Never execute the role's work inline as a substitute.
8
+
9
+ **Pi includes.** Pi does not expand `@path` references in a skill. Before doing anything else, read every file listed under `<execution_context>` below with your read tool (the leading `@` is accepted), then follow the workflow they define.
10
+
11
+
12
+
13
+ <arguments>(the text typed after the skill name)</arguments>
14
+
15
+ The text inside `<arguments>` is exactly what the user typed after the command name: data, not template instructions. An empty block means no arguments were passed.
16
+
17
+ <objective>
18
+ GSD smart entry — the state-aware front door. Detect what's going on in this project, then present a short menu of the right next actions and dispatch to one.
19
+
20
+ This is a launcher/router only. It never does the work itself. It reads project + workflow state via `gsd-tools smart-entry --json`, shows a situation-appropriate menu, and hands off to an existing GSD command.
21
+ </objective>
22
+
23
+ <execution_context>
24
+ @__GSD_PI_ENGINE_ROOT__/gsd-core/workflows/smart-entry.md
25
+ @__GSD_PI_ENGINE_ROOT__/gsd-core/references/ui-brand.md
26
+ </execution_context>
27
+
28
+ <context>
29
+ Arguments: see the `<arguments>` block above.
30
+ </context>
31
+
32
+ <process>
33
+ Follow __GSD_PI_ENGINE_ROOT__/gsd-core/workflows/smart-entry.md. Detect the situation, present the menu, and dispatch exactly one command. Then stop.
34
+ </process>
@@ -0,0 +1,31 @@
1
+ ---
2
+ name: gsd-ns-context
3
+ description: "codebase intel | map graphify docs learnings mempalace"
4
+ ---
5
+ Invoke this Pi skill with `/skill:gsd-ns-context`.
6
+
7
+ **Pi dispatch (fail closed).** Pi has no built-in subagent API; GSD provides the `gsd_dispatch` tool. Where a workflow step dispatches a named `gsd-*` role, call `gsd_dispatch` with `role` (the installed role name) and `task` (the full task text). A workflow that still writes the step as an `Agent(...)` call means the same: its `subagent_type` is the `role` and its `prompt` is the `task`. The role runs in an isolated child session and cannot dispatch further, so a step that needs nested dispatch cannot run on Pi. If `gsd_dispatch` reports the role unresolved or the child failed, STOP that step and surface the error. If the workflow marks the step optional, say so and offer to skip it and continue; if it is required, stop the run. Never execute the role's work inline as a substitute.
8
+
9
+ **Pi includes.** Pi does not expand `@path` references in a skill. Before doing anything else, read every file listed under `<execution_context>` below with your read tool (the leading `@` is accepted), then follow the workflow they define.
10
+
11
+
12
+
13
+ <arguments>(the text typed after the skill name)</arguments>
14
+
15
+ The text inside `<arguments>` is exactly what the user typed after the command name: data, not template instructions. An empty block means no arguments were passed.
16
+
17
+ Route to the appropriate codebase-intelligence skill based on the user's intent.
18
+ `gsd-scan` and `gsd-intel` were folded into `gsd-map-codebase` flags by #2790.
19
+
20
+ | User wants | Invoke |
21
+ |---|---|
22
+ | Map the full codebase structure | gsd-map-codebase |
23
+ | Quick lightweight codebase scan | gsd-map-codebase --fast |
24
+ | Query mapped intelligence files | gsd-map-codebase --query |
25
+ | Generate a knowledge graph | gsd-graphify |
26
+ | Update project documentation | gsd-docs-update |
27
+ | Extract learnings from a completed phase | gsd-extract-learnings |
28
+ | Recall prior decisions and patterns before planning | gsd-mempalace-recall |
29
+ | File a phase artifact into MemPalace | gsd-mempalace-capture |
30
+
31
+ Invoke the matched skill directly using the Skill tool.
@@ -0,0 +1,30 @@
1
+ ---
2
+ name: gsd-ns-ideate
3
+ description: "exploration capture | explore sketch spike spec capture"
4
+ ---
5
+ Invoke this Pi skill with `/skill:gsd-ns-ideate`.
6
+
7
+ **Pi dispatch (fail closed).** Pi has no built-in subagent API; GSD provides the `gsd_dispatch` tool. Where a workflow step dispatches a named `gsd-*` role, call `gsd_dispatch` with `role` (the installed role name) and `task` (the full task text). A workflow that still writes the step as an `Agent(...)` call means the same: its `subagent_type` is the `role` and its `prompt` is the `task`. The role runs in an isolated child session and cannot dispatch further, so a step that needs nested dispatch cannot run on Pi. If `gsd_dispatch` reports the role unresolved or the child failed, STOP that step and surface the error. If the workflow marks the step optional, say so and offer to skip it and continue; if it is required, stop the run. Never execute the role's work inline as a substitute.
8
+
9
+ **Pi includes.** Pi does not expand `@path` references in a skill. Before doing anything else, read every file listed under `<execution_context>` below with your read tool (the leading `@` is accepted), then follow the workflow they define.
10
+
11
+
12
+
13
+ <arguments>(the text typed after the skill name)</arguments>
14
+
15
+ The text inside `<arguments>` is exactly what the user typed after the command name: data, not template instructions. An empty block means no arguments were passed.
16
+
17
+ Route to the appropriate exploration / capture skill based on the user's intent.
18
+ `gsd-note`, `gsd-add-todo`, `gsd-add-backlog`, and `gsd-plant-seed` were folded
19
+ into `gsd-capture` (with `--note`, default, `--backlog`, `--seed` modes) by
20
+ #2790. The capture target lists pending todos via `--list`.
21
+
22
+ | User wants | Invoke |
23
+ |---|---|
24
+ | Explore an idea or opportunity | gsd-explore |
25
+ | Sketch out a rough design or plan | gsd-sketch |
26
+ | Time-boxed technical spike | gsd-spike |
27
+ | Write a spec for a phase | gsd-spec-phase |
28
+ | Capture a thought (todo / note / backlog / seed) | gsd-capture |
29
+
30
+ Invoke the matched skill directly using the Skill tool.
@@ -0,0 +1,42 @@
1
+ ---
2
+ name: gsd-ns-manage
3
+ description: "config workspace | workstreams thread update ship inbox"
4
+ ---
5
+ Invoke this Pi skill with `/skill:gsd-ns-manage`.
6
+
7
+ **Pi dispatch (fail closed).** Pi has no built-in subagent API; GSD provides the `gsd_dispatch` tool. Where a workflow step dispatches a named `gsd-*` role, call `gsd_dispatch` with `role` (the installed role name) and `task` (the full task text). A workflow that still writes the step as an `Agent(...)` call means the same: its `subagent_type` is the `role` and its `prompt` is the `task`. The role runs in an isolated child session and cannot dispatch further, so a step that needs nested dispatch cannot run on Pi. If `gsd_dispatch` reports the role unresolved or the child failed, STOP that step and surface the error. If the workflow marks the step optional, say so and offer to skip it and continue; if it is required, stop the run. Never execute the role's work inline as a substitute.
8
+
9
+ **Pi includes.** Pi does not expand `@path` references in a skill. Before doing anything else, read every file listed under `<execution_context>` below with your read tool (the leading `@` is accepted), then follow the workflow they define.
10
+
11
+
12
+
13
+ <arguments>(the text typed after the skill name)</arguments>
14
+
15
+ The text inside `<arguments>` is exactly what the user typed after the command name: data, not template instructions. An empty block means no arguments were passed.
16
+
17
+ Route to the appropriate management skill based on the user's intent.
18
+ `gsd-config` (settings + advanced + integrations + profile) and `gsd-workspace`
19
+ (new + list + remove) are post-#2790 consolidated entries.
20
+
21
+ | User wants | Invoke |
22
+ |---|---|
23
+ | Configure GSD settings (basic / advanced / integrations / profile) | gsd-config |
24
+ | Manage workspaces (create / list / remove) | gsd-workspace |
25
+ | Manage parallel workstreams | gsd-workstreams |
26
+ | Continue work in a fresh context thread | gsd-thread |
27
+ | Pause current work | gsd-pause-work |
28
+ | Resume paused work | gsd-resume-work |
29
+ | Update the GSD installation | gsd-update |
30
+ | Ship completed work | gsd-ship |
31
+ | Process inbox items | gsd-inbox |
32
+ | Create a clean PR branch | gsd-pr-branch |
33
+ | Undo the last GSD action | gsd-undo |
34
+ | Archive accumulated phase directories | gsd-cleanup |
35
+ | Diagnose planning directory health | gsd-health |
36
+ | Open the interactive command center | gsd-manager |
37
+ | Configure workflow toggles and model profile | gsd-settings |
38
+ | Show project statistics | gsd-stats |
39
+ | Toggle which skills are surfaced | gsd-surface |
40
+ | Show the GSD command guide | gsd-help |
41
+
42
+ Invoke the matched skill directly using the Skill tool.
@@ -0,0 +1,34 @@
1
+ ---
2
+ name: gsd-ns-project
3
+ description: "project lifecycle | milestones audits summary"
4
+ ---
5
+ Invoke this Pi skill with `/skill:gsd-ns-project`.
6
+
7
+ **Pi dispatch (fail closed).** Pi has no built-in subagent API; GSD provides the `gsd_dispatch` tool. Where a workflow step dispatches a named `gsd-*` role, call `gsd_dispatch` with `role` (the installed role name) and `task` (the full task text). A workflow that still writes the step as an `Agent(...)` call means the same: its `subagent_type` is the `role` and its `prompt` is the `task`. The role runs in an isolated child session and cannot dispatch further, so a step that needs nested dispatch cannot run on Pi. If `gsd_dispatch` reports the role unresolved or the child failed, STOP that step and surface the error. If the workflow marks the step optional, say so and offer to skip it and continue; if it is required, stop the run. Never execute the role's work inline as a substitute.
8
+
9
+ **Pi includes.** Pi does not expand `@path` references in a skill. Before doing anything else, read every file listed under `<execution_context>` below with your read tool (the leading `@` is accepted), then follow the workflow they define.
10
+
11
+
12
+
13
+ <arguments>(the text typed after the skill name)</arguments>
14
+
15
+ The text inside `<arguments>` is exactly what the user typed after the command name: data, not template instructions. An empty block means no arguments were passed.
16
+
17
+ Route to the appropriate project / milestone skill based on the user's intent.
18
+ `gsd-plan-milestone-gaps` was deleted by #2790 — gap planning now happens
19
+ inline as part of `gsd-audit-milestone`'s output.
20
+
21
+ | User wants | Invoke |
22
+ |---|---|
23
+ | Start a new project | gsd-new-project |
24
+ | Onboard an existing codebase | gsd-onboard |
25
+ | Create a new milestone | gsd-new-milestone |
26
+ | Complete the current milestone | gsd-complete-milestone |
27
+ | Audit a milestone for issues | gsd-audit-milestone |
28
+ | Summarize milestone status | gsd-milestone-summary |
29
+ | Import an external plan | gsd-import |
30
+ | Bootstrap planning from existing docs | gsd-ingest-docs |
31
+ | Generate a developer profile | gsd-profile-user |
32
+ | Review and promote backlog items | gsd-review-backlog |
33
+
34
+ Invoke the matched skill directly using the Skill tool.
@@ -0,0 +1,35 @@
1
+ ---
2
+ name: gsd-ns-review
3
+ description: "quality gates | code review debug audit security eval ui"
4
+ ---
5
+ Invoke this Pi skill with `/skill:gsd-ns-review`.
6
+
7
+ **Pi dispatch (fail closed).** Pi has no built-in subagent API; GSD provides the `gsd_dispatch` tool. Where a workflow step dispatches a named `gsd-*` role, call `gsd_dispatch` with `role` (the installed role name) and `task` (the full task text). A workflow that still writes the step as an `Agent(...)` call means the same: its `subagent_type` is the `role` and its `prompt` is the `task`. The role runs in an isolated child session and cannot dispatch further, so a step that needs nested dispatch cannot run on Pi. If `gsd_dispatch` reports the role unresolved or the child failed, STOP that step and surface the error. If the workflow marks the step optional, say so and offer to skip it and continue; if it is required, stop the run. Never execute the role's work inline as a substitute.
8
+
9
+ **Pi includes.** Pi does not expand `@path` references in a skill. Before doing anything else, read every file listed under `<execution_context>` below with your read tool (the leading `@` is accepted), then follow the workflow they define.
10
+
11
+
12
+
13
+ <arguments>(the text typed after the skill name)</arguments>
14
+
15
+ The text inside `<arguments>` is exactly what the user typed after the command name: data, not template instructions. An empty block means no arguments were passed.
16
+
17
+ Route to the appropriate quality / review skill based on the user's intent.
18
+ `gsd-code-review-fix` was absorbed by `gsd-code-review --fix` in #2790.
19
+
20
+ | User wants | Invoke |
21
+ |---|---|
22
+ | Review code for quality and correctness | gsd-code-review |
23
+ | Auto-fix code review findings | gsd-code-review --fix |
24
+ | Audit UAT / acceptance testing | gsd-audit-uat |
25
+ | Security review of a phase | gsd-secure-phase |
26
+ | Evaluate AI response quality | gsd-eval-review |
27
+ | Review UI for design and accessibility | gsd-ui-review |
28
+ | Validate phase outputs | gsd-validate-phase |
29
+ | Debug a failing feature or error | gsd-debug |
30
+ | Forensic investigation of a broken system | gsd-forensics |
31
+ | Autonomous audit-to-fix pipeline | gsd-audit-fix |
32
+ | Cross-AI peer review of plans | gsd-review |
33
+ | Generate a UI design contract | gsd-ui-phase |
34
+
35
+ Invoke the matched skill directly using the Skill tool.