gsd-remix 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (554) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +939 -0
  3. package/README.zh-CN.md +876 -0
  4. package/agents/gsd-advisor-researcher.md +127 -0
  5. package/agents/gsd-ai-researcher.md +133 -0
  6. package/agents/gsd-assumptions-analyzer.md +105 -0
  7. package/agents/gsd-code-fixer.md +517 -0
  8. package/agents/gsd-code-reviewer.md +371 -0
  9. package/agents/gsd-codebase-mapper.md +781 -0
  10. package/agents/gsd-debug-session-manager.md +314 -0
  11. package/agents/gsd-debugger.md +1452 -0
  12. package/agents/gsd-doc-classifier.md +168 -0
  13. package/agents/gsd-doc-synthesizer.md +204 -0
  14. package/agents/gsd-doc-verifier.md +217 -0
  15. package/agents/gsd-doc-writer.md +615 -0
  16. package/agents/gsd-domain-researcher.md +153 -0
  17. package/agents/gsd-eval-auditor.md +191 -0
  18. package/agents/gsd-eval-planner.md +154 -0
  19. package/agents/gsd-executor.md +603 -0
  20. package/agents/gsd-framework-selector.md +160 -0
  21. package/agents/gsd-integration-checker.md +470 -0
  22. package/agents/gsd-intel-updater.md +334 -0
  23. package/agents/gsd-nyquist-auditor.md +203 -0
  24. package/agents/gsd-pattern-mapper.md +335 -0
  25. package/agents/gsd-phase-researcher.md +841 -0
  26. package/agents/gsd-plan-checker.md +978 -0
  27. package/agents/gsd-planner.md +1251 -0
  28. package/agents/gsd-project-researcher.md +677 -0
  29. package/agents/gsd-research-synthesizer.md +247 -0
  30. package/agents/gsd-roadmapper.md +688 -0
  31. package/agents/gsd-security-auditor.md +155 -0
  32. package/agents/gsd-ui-auditor.md +495 -0
  33. package/agents/gsd-ui-checker.md +309 -0
  34. package/agents/gsd-ui-researcher.md +380 -0
  35. package/agents/gsd-user-profiler.md +171 -0
  36. package/agents/gsd-verifier.md +830 -0
  37. package/bin/install.js +7062 -0
  38. package/commands/gsd/add-backlog.md +79 -0
  39. package/commands/gsd/add-phase.md +43 -0
  40. package/commands/gsd/add-tests.md +41 -0
  41. package/commands/gsd/add-todo.md +47 -0
  42. package/commands/gsd/ai-integration-phase.md +36 -0
  43. package/commands/gsd/analyze-dependencies.md +34 -0
  44. package/commands/gsd/audit-fix.md +33 -0
  45. package/commands/gsd/audit-milestone.md +36 -0
  46. package/commands/gsd/audit-uat.md +24 -0
  47. package/commands/gsd/autonomous.md +46 -0
  48. package/commands/gsd/check-todos.md +45 -0
  49. package/commands/gsd/cleanup.md +23 -0
  50. package/commands/gsd/code-review-fix.md +52 -0
  51. package/commands/gsd/code-review.md +55 -0
  52. package/commands/gsd/complete-milestone.md +136 -0
  53. package/commands/gsd/debug.md +263 -0
  54. package/commands/gsd/discuss-phase.md +69 -0
  55. package/commands/gsd/do.md +30 -0
  56. package/commands/gsd/docs-update.md +48 -0
  57. package/commands/gsd/eval-review.md +32 -0
  58. package/commands/gsd/execute-phase.md +63 -0
  59. package/commands/gsd/explore.md +27 -0
  60. package/commands/gsd/extract_learnings.md +22 -0
  61. package/commands/gsd/fast.md +30 -0
  62. package/commands/gsd/forensics.md +56 -0
  63. package/commands/gsd/from-gsd2.md +47 -0
  64. package/commands/gsd/graphify.md +201 -0
  65. package/commands/gsd/health.md +22 -0
  66. package/commands/gsd/help.md +24 -0
  67. package/commands/gsd/import.md +37 -0
  68. package/commands/gsd/inbox.md +38 -0
  69. package/commands/gsd/ingest-docs.md +42 -0
  70. package/commands/gsd/insert-phase.md +32 -0
  71. package/commands/gsd/intel.md +179 -0
  72. package/commands/gsd/join-discord.md +19 -0
  73. package/commands/gsd/list-phase-assumptions.md +46 -0
  74. package/commands/gsd/list-workspaces.md +19 -0
  75. package/commands/gsd/manager.md +40 -0
  76. package/commands/gsd/map-codebase.md +71 -0
  77. package/commands/gsd/milestone-summary.md +51 -0
  78. package/commands/gsd/new-milestone.md +44 -0
  79. package/commands/gsd/new-project.md +46 -0
  80. package/commands/gsd/new-workspace.md +44 -0
  81. package/commands/gsd/next.md +28 -0
  82. package/commands/gsd/note.md +34 -0
  83. package/commands/gsd/pause-work.md +38 -0
  84. package/commands/gsd/plan-milestone-gaps.md +34 -0
  85. package/commands/gsd/plan-phase.md +52 -0
  86. package/commands/gsd/plan-review-convergence.md +52 -0
  87. package/commands/gsd/plant-seed.md +28 -0
  88. package/commands/gsd/pr-branch.md +25 -0
  89. package/commands/gsd/profile-user.md +46 -0
  90. package/commands/gsd/progress.md +25 -0
  91. package/commands/gsd/quick.md +173 -0
  92. package/commands/gsd/reapply-patches.md +331 -0
  93. package/commands/gsd/remove-phase.md +31 -0
  94. package/commands/gsd/remove-workspace.md +26 -0
  95. package/commands/gsd/research-phase.md +195 -0
  96. package/commands/gsd/resume-work.md +40 -0
  97. package/commands/gsd/review-backlog.md +62 -0
  98. package/commands/gsd/review.md +40 -0
  99. package/commands/gsd/scan.md +26 -0
  100. package/commands/gsd/secure-phase.md +35 -0
  101. package/commands/gsd/session-report.md +19 -0
  102. package/commands/gsd/set-profile.md +12 -0
  103. package/commands/gsd/settings.md +36 -0
  104. package/commands/gsd/ship.md +23 -0
  105. package/commands/gsd/sketch-wrap-up.md +31 -0
  106. package/commands/gsd/sketch.md +49 -0
  107. package/commands/gsd/spec-phase.md +62 -0
  108. package/commands/gsd/spike-wrap-up.md +31 -0
  109. package/commands/gsd/spike.md +46 -0
  110. package/commands/gsd/stats.md +18 -0
  111. package/commands/gsd/sync-skills.md +19 -0
  112. package/commands/gsd/thread.md +227 -0
  113. package/commands/gsd/ui-phase.md +34 -0
  114. package/commands/gsd/ui-review.md +32 -0
  115. package/commands/gsd/ultraplan-phase.md +33 -0
  116. package/commands/gsd/undo.md +34 -0
  117. package/commands/gsd/update.md +37 -0
  118. package/commands/gsd/validate-phase.md +35 -0
  119. package/commands/gsd/verify-work.md +38 -0
  120. package/commands/gsd/workstreams.md +69 -0
  121. package/get-shit-done/bin/gsd-tools.cjs +1263 -0
  122. package/get-shit-done/bin/lib/artifacts.cjs +52 -0
  123. package/get-shit-done/bin/lib/audit.cjs +757 -0
  124. package/get-shit-done/bin/lib/commands.cjs +1023 -0
  125. package/get-shit-done/bin/lib/config-schema.cjs +79 -0
  126. package/get-shit-done/bin/lib/config.cjs +463 -0
  127. package/get-shit-done/bin/lib/core.cjs +1794 -0
  128. package/get-shit-done/bin/lib/docs.cjs +267 -0
  129. package/get-shit-done/bin/lib/frontmatter.cjs +379 -0
  130. package/get-shit-done/bin/lib/graphify.cjs +494 -0
  131. package/get-shit-done/bin/lib/gsd2-import.cjs +511 -0
  132. package/get-shit-done/bin/lib/init.cjs +1878 -0
  133. package/get-shit-done/bin/lib/intel.cjs +639 -0
  134. package/get-shit-done/bin/lib/learnings.cjs +378 -0
  135. package/get-shit-done/bin/lib/milestone.cjs +283 -0
  136. package/get-shit-done/bin/lib/model-profiles.cjs +71 -0
  137. package/get-shit-done/bin/lib/phase.cjs +1058 -0
  138. package/get-shit-done/bin/lib/profile-output.cjs +1080 -0
  139. package/get-shit-done/bin/lib/profile-pipeline.cjs +539 -0
  140. package/get-shit-done/bin/lib/roadmap.cjs +523 -0
  141. package/get-shit-done/bin/lib/schema-detect.cjs +238 -0
  142. package/get-shit-done/bin/lib/security.cjs +504 -0
  143. package/get-shit-done/bin/lib/state.cjs +1649 -0
  144. package/get-shit-done/bin/lib/template.cjs +226 -0
  145. package/get-shit-done/bin/lib/uat.cjs +288 -0
  146. package/get-shit-done/bin/lib/verify.cjs +1184 -0
  147. package/get-shit-done/bin/lib/workstream.cjs +495 -0
  148. package/get-shit-done/bin/repair-sdk.cjs +177 -0
  149. package/get-shit-done/contexts/dev.md +21 -0
  150. package/get-shit-done/contexts/research.md +22 -0
  151. package/get-shit-done/contexts/review.md +22 -0
  152. package/get-shit-done/references/agent-contracts.md +79 -0
  153. package/get-shit-done/references/ai-evals.md +156 -0
  154. package/get-shit-done/references/ai-frameworks.md +186 -0
  155. package/get-shit-done/references/artifact-types.md +131 -0
  156. package/get-shit-done/references/autonomous-smart-discuss.md +277 -0
  157. package/get-shit-done/references/checkpoints.md +808 -0
  158. package/get-shit-done/references/common-bug-patterns.md +114 -0
  159. package/get-shit-done/references/context-budget.md +49 -0
  160. package/get-shit-done/references/continuation-format.md +253 -0
  161. package/get-shit-done/references/debugger-philosophy.md +76 -0
  162. package/get-shit-done/references/decimal-phase-calculation.md +64 -0
  163. package/get-shit-done/references/doc-conflict-engine.md +91 -0
  164. package/get-shit-done/references/domain-probes.md +125 -0
  165. package/get-shit-done/references/executor-examples.md +110 -0
  166. package/get-shit-done/references/few-shot-examples/plan-checker.md +73 -0
  167. package/get-shit-done/references/few-shot-examples/verifier.md +109 -0
  168. package/get-shit-done/references/gate-prompts.md +100 -0
  169. package/get-shit-done/references/gates.md +70 -0
  170. package/get-shit-done/references/git-integration.md +295 -0
  171. package/get-shit-done/references/git-planning-commit.md +40 -0
  172. package/get-shit-done/references/ios-scaffold.md +123 -0
  173. package/get-shit-done/references/mandatory-initial-read.md +2 -0
  174. package/get-shit-done/references/model-profile-resolution.md +38 -0
  175. package/get-shit-done/references/model-profiles.md +145 -0
  176. package/get-shit-done/references/phase-argument-parsing.md +61 -0
  177. package/get-shit-done/references/planner-antipatterns.md +89 -0
  178. package/get-shit-done/references/planner-gap-closure.md +62 -0
  179. package/get-shit-done/references/planner-reviews.md +39 -0
  180. package/get-shit-done/references/planner-revision.md +87 -0
  181. package/get-shit-done/references/planner-source-audit.md +73 -0
  182. package/get-shit-done/references/planning-config.md +460 -0
  183. package/get-shit-done/references/project-skills-discovery.md +19 -0
  184. package/get-shit-done/references/questioning.md +162 -0
  185. package/get-shit-done/references/revision-loop.md +97 -0
  186. package/get-shit-done/references/sketch-interactivity.md +41 -0
  187. package/get-shit-done/references/sketch-theme-system.md +94 -0
  188. package/get-shit-done/references/sketch-tooling.md +45 -0
  189. package/get-shit-done/references/sketch-variant-patterns.md +81 -0
  190. package/get-shit-done/references/tdd.md +330 -0
  191. package/get-shit-done/references/thinking-models-debug.md +44 -0
  192. package/get-shit-done/references/thinking-models-execution.md +50 -0
  193. package/get-shit-done/references/thinking-models-planning.md +62 -0
  194. package/get-shit-done/references/thinking-models-research.md +50 -0
  195. package/get-shit-done/references/thinking-models-verification.md +55 -0
  196. package/get-shit-done/references/thinking-partner.md +96 -0
  197. package/get-shit-done/references/ui-brand.md +160 -0
  198. package/get-shit-done/references/universal-anti-patterns.md +63 -0
  199. package/get-shit-done/references/user-profiling.md +681 -0
  200. package/get-shit-done/references/verification-overrides.md +227 -0
  201. package/get-shit-done/references/verification-patterns.md +612 -0
  202. package/get-shit-done/references/workstream-flag.md +111 -0
  203. package/get-shit-done/templates/AI-SPEC.md +246 -0
  204. package/get-shit-done/templates/DEBUG.md +169 -0
  205. package/get-shit-done/templates/README.md +76 -0
  206. package/get-shit-done/templates/SECURITY.md +61 -0
  207. package/get-shit-done/templates/UAT.md +265 -0
  208. package/get-shit-done/templates/UI-SPEC.md +100 -0
  209. package/get-shit-done/templates/VALIDATION.md +76 -0
  210. package/get-shit-done/templates/claude-md.md +145 -0
  211. package/get-shit-done/templates/codebase/architecture.md +255 -0
  212. package/get-shit-done/templates/codebase/concerns.md +310 -0
  213. package/get-shit-done/templates/codebase/conventions.md +307 -0
  214. package/get-shit-done/templates/codebase/integrations.md +280 -0
  215. package/get-shit-done/templates/codebase/stack.md +186 -0
  216. package/get-shit-done/templates/codebase/structure.md +285 -0
  217. package/get-shit-done/templates/codebase/testing.md +480 -0
  218. package/get-shit-done/templates/config.json +56 -0
  219. package/get-shit-done/templates/context.md +352 -0
  220. package/get-shit-done/templates/continue-here.md +78 -0
  221. package/get-shit-done/templates/copilot-instructions.md +7 -0
  222. package/get-shit-done/templates/debug-subagent-prompt.md +91 -0
  223. package/get-shit-done/templates/dev-preferences.md +21 -0
  224. package/get-shit-done/templates/discovery.md +146 -0
  225. package/get-shit-done/templates/discussion-log.md +63 -0
  226. package/get-shit-done/templates/milestone-archive.md +123 -0
  227. package/get-shit-done/templates/milestone.md +115 -0
  228. package/get-shit-done/templates/phase-prompt.md +610 -0
  229. package/get-shit-done/templates/planner-subagent-prompt.md +117 -0
  230. package/get-shit-done/templates/project.md +186 -0
  231. package/get-shit-done/templates/requirements.md +231 -0
  232. package/get-shit-done/templates/research-project/ARCHITECTURE.md +204 -0
  233. package/get-shit-done/templates/research-project/FEATURES.md +147 -0
  234. package/get-shit-done/templates/research-project/PITFALLS.md +200 -0
  235. package/get-shit-done/templates/research-project/STACK.md +120 -0
  236. package/get-shit-done/templates/research-project/SUMMARY.md +170 -0
  237. package/get-shit-done/templates/research.md +592 -0
  238. package/get-shit-done/templates/retrospective.md +54 -0
  239. package/get-shit-done/templates/roadmap.md +202 -0
  240. package/get-shit-done/templates/spec.md +307 -0
  241. package/get-shit-done/templates/state.md +184 -0
  242. package/get-shit-done/templates/summary-complex.md +59 -0
  243. package/get-shit-done/templates/summary-minimal.md +41 -0
  244. package/get-shit-done/templates/summary-standard.md +48 -0
  245. package/get-shit-done/templates/summary.md +248 -0
  246. package/get-shit-done/templates/user-profile.md +146 -0
  247. package/get-shit-done/templates/user-setup.md +311 -0
  248. package/get-shit-done/templates/verification-report.md +322 -0
  249. package/get-shit-done/workflows/add-phase.md +112 -0
  250. package/get-shit-done/workflows/add-tests.md +354 -0
  251. package/get-shit-done/workflows/add-todo.md +160 -0
  252. package/get-shit-done/workflows/ai-integration-phase.md +284 -0
  253. package/get-shit-done/workflows/analyze-dependencies.md +96 -0
  254. package/get-shit-done/workflows/audit-fix.md +175 -0
  255. package/get-shit-done/workflows/audit-milestone.md +340 -0
  256. package/get-shit-done/workflows/audit-uat.md +109 -0
  257. package/get-shit-done/workflows/autonomous.md +789 -0
  258. package/get-shit-done/workflows/check-todos.md +179 -0
  259. package/get-shit-done/workflows/cleanup.md +154 -0
  260. package/get-shit-done/workflows/code-review-fix.md +497 -0
  261. package/get-shit-done/workflows/code-review.md +515 -0
  262. package/get-shit-done/workflows/complete-milestone.md +847 -0
  263. package/get-shit-done/workflows/diagnose-issues.md +238 -0
  264. package/get-shit-done/workflows/discovery-phase.md +291 -0
  265. package/get-shit-done/workflows/discuss-phase-assumptions.md +670 -0
  266. package/get-shit-done/workflows/discuss-phase-power.md +308 -0
  267. package/get-shit-done/workflows/discuss-phase.md +1378 -0
  268. package/get-shit-done/workflows/do.md +110 -0
  269. package/get-shit-done/workflows/docs-update.md +1155 -0
  270. package/get-shit-done/workflows/eval-review.md +155 -0
  271. package/get-shit-done/workflows/execute-phase.md +1677 -0
  272. package/get-shit-done/workflows/execute-plan.md +533 -0
  273. package/get-shit-done/workflows/explore.md +141 -0
  274. package/get-shit-done/workflows/extract_learnings.md +242 -0
  275. package/get-shit-done/workflows/fast.md +105 -0
  276. package/get-shit-done/workflows/forensics.md +265 -0
  277. package/get-shit-done/workflows/graduation.md +195 -0
  278. package/get-shit-done/workflows/health.md +314 -0
  279. package/get-shit-done/workflows/help.md +667 -0
  280. package/get-shit-done/workflows/import.md +246 -0
  281. package/get-shit-done/workflows/inbox.md +387 -0
  282. package/get-shit-done/workflows/ingest-docs.md +328 -0
  283. package/get-shit-done/workflows/insert-phase.md +130 -0
  284. package/get-shit-done/workflows/list-phase-assumptions.md +178 -0
  285. package/get-shit-done/workflows/list-workspaces.md +56 -0
  286. package/get-shit-done/workflows/manager.md +365 -0
  287. package/get-shit-done/workflows/map-codebase.md +393 -0
  288. package/get-shit-done/workflows/milestone-summary.md +223 -0
  289. package/get-shit-done/workflows/new-milestone.md +611 -0
  290. package/get-shit-done/workflows/new-project.md +1391 -0
  291. package/get-shit-done/workflows/new-workspace.md +239 -0
  292. package/get-shit-done/workflows/next.md +220 -0
  293. package/get-shit-done/workflows/node-repair.md +92 -0
  294. package/get-shit-done/workflows/note.md +158 -0
  295. package/get-shit-done/workflows/pause-work.md +243 -0
  296. package/get-shit-done/workflows/plan-milestone-gaps.md +273 -0
  297. package/get-shit-done/workflows/plan-phase.md +1349 -0
  298. package/get-shit-done/workflows/plan-review-convergence.md +254 -0
  299. package/get-shit-done/workflows/plant-seed.md +172 -0
  300. package/get-shit-done/workflows/pr-branch.md +157 -0
  301. package/get-shit-done/workflows/profile-user.md +452 -0
  302. package/get-shit-done/workflows/progress.md +619 -0
  303. package/get-shit-done/workflows/quick.md +970 -0
  304. package/get-shit-done/workflows/remove-phase.md +155 -0
  305. package/get-shit-done/workflows/remove-workspace.md +92 -0
  306. package/get-shit-done/workflows/research-phase.md +89 -0
  307. package/get-shit-done/workflows/resume-project.md +326 -0
  308. package/get-shit-done/workflows/review.md +344 -0
  309. package/get-shit-done/workflows/scan.md +102 -0
  310. package/get-shit-done/workflows/secure-phase.md +166 -0
  311. package/get-shit-done/workflows/session-report.md +146 -0
  312. package/get-shit-done/workflows/settings.md +319 -0
  313. package/get-shit-done/workflows/ship.md +302 -0
  314. package/get-shit-done/workflows/sketch-wrap-up.md +283 -0
  315. package/get-shit-done/workflows/sketch.md +286 -0
  316. package/get-shit-done/workflows/spec-phase.md +262 -0
  317. package/get-shit-done/workflows/spike-wrap-up.md +281 -0
  318. package/get-shit-done/workflows/spike.md +362 -0
  319. package/get-shit-done/workflows/stats.md +60 -0
  320. package/get-shit-done/workflows/sync-skills.md +182 -0
  321. package/get-shit-done/workflows/transition.md +693 -0
  322. package/get-shit-done/workflows/ui-phase.md +323 -0
  323. package/get-shit-done/workflows/ui-review.md +190 -0
  324. package/get-shit-done/workflows/ultraplan-phase.md +189 -0
  325. package/get-shit-done/workflows/undo.md +314 -0
  326. package/get-shit-done/workflows/update.md +587 -0
  327. package/get-shit-done/workflows/validate-phase.md +176 -0
  328. package/get-shit-done/workflows/verify-phase.md +465 -0
  329. package/get-shit-done/workflows/verify-work.md +740 -0
  330. package/hooks/dist/gsd-check-update-worker.js +108 -0
  331. package/hooks/dist/gsd-check-update.js +64 -0
  332. package/hooks/dist/gsd-context-monitor.js +192 -0
  333. package/hooks/dist/gsd-phase-boundary.sh +28 -0
  334. package/hooks/dist/gsd-prompt-guard.js +97 -0
  335. package/hooks/dist/gsd-read-guard.js +82 -0
  336. package/hooks/dist/gsd-read-injection-scanner.js +152 -0
  337. package/hooks/dist/gsd-session-state.sh +34 -0
  338. package/hooks/dist/gsd-statusline.js +293 -0
  339. package/hooks/dist/gsd-validate-commit.sh +48 -0
  340. package/hooks/dist/gsd-workflow-guard.js +94 -0
  341. package/hooks/gsd-check-update-worker.js +108 -0
  342. package/hooks/gsd-check-update.js +64 -0
  343. package/hooks/gsd-context-monitor.js +192 -0
  344. package/hooks/gsd-phase-boundary.sh +28 -0
  345. package/hooks/gsd-prompt-guard.js +97 -0
  346. package/hooks/gsd-read-guard.js +82 -0
  347. package/hooks/gsd-read-injection-scanner.js +152 -0
  348. package/hooks/gsd-session-state.sh +34 -0
  349. package/hooks/gsd-statusline.js +293 -0
  350. package/hooks/gsd-validate-commit.sh +48 -0
  351. package/hooks/gsd-workflow-guard.js +94 -0
  352. package/package.json +59 -0
  353. package/scripts/base64-scan.sh +262 -0
  354. package/scripts/build-hooks.js +95 -0
  355. package/scripts/gen-inventory-manifest.cjs +109 -0
  356. package/scripts/prompt-injection-scan.sh +201 -0
  357. package/scripts/run-tests.cjs +33 -0
  358. package/scripts/secret-scan.sh +227 -0
  359. package/sdk/package-lock.json +1998 -0
  360. package/sdk/package.json +52 -0
  361. package/sdk/prompts/agents/gsd-executor.md +110 -0
  362. package/sdk/prompts/agents/gsd-phase-researcher.md +158 -0
  363. package/sdk/prompts/agents/gsd-plan-checker.md +160 -0
  364. package/sdk/prompts/agents/gsd-planner.md +214 -0
  365. package/sdk/prompts/agents/gsd-project-researcher.md +323 -0
  366. package/sdk/prompts/agents/gsd-research-synthesizer.md +237 -0
  367. package/sdk/prompts/agents/gsd-roadmapper.md +670 -0
  368. package/sdk/prompts/agents/gsd-verifier.md +159 -0
  369. package/sdk/prompts/templates/project.md +186 -0
  370. package/sdk/prompts/templates/requirements.md +231 -0
  371. package/sdk/prompts/templates/research-project/ARCHITECTURE.md +204 -0
  372. package/sdk/prompts/templates/research-project/FEATURES.md +147 -0
  373. package/sdk/prompts/templates/research-project/PITFALLS.md +200 -0
  374. package/sdk/prompts/templates/research-project/STACK.md +120 -0
  375. package/sdk/prompts/templates/research-project/SUMMARY.md +170 -0
  376. package/sdk/prompts/templates/roadmap.md +202 -0
  377. package/sdk/prompts/templates/state.md +175 -0
  378. package/sdk/prompts/workflows/discuss-phase.md +126 -0
  379. package/sdk/prompts/workflows/execute-plan.md +106 -0
  380. package/sdk/prompts/workflows/plan-phase.md +84 -0
  381. package/sdk/prompts/workflows/research-phase.md +45 -0
  382. package/sdk/prompts/workflows/verify-phase.md +142 -0
  383. package/sdk/src/assembled-prompts.test.ts +349 -0
  384. package/sdk/src/cli-transport.test.ts +388 -0
  385. package/sdk/src/cli-transport.ts +130 -0
  386. package/sdk/src/cli.test.ts +383 -0
  387. package/sdk/src/cli.ts +670 -0
  388. package/sdk/src/config.test.ts +168 -0
  389. package/sdk/src/config.ts +177 -0
  390. package/sdk/src/context-engine.test.ts +295 -0
  391. package/sdk/src/context-engine.ts +170 -0
  392. package/sdk/src/context-truncation.test.ts +163 -0
  393. package/sdk/src/context-truncation.ts +233 -0
  394. package/sdk/src/e2e.integration.test.ts +178 -0
  395. package/sdk/src/errors.ts +72 -0
  396. package/sdk/src/event-stream.test.ts +661 -0
  397. package/sdk/src/event-stream.ts +441 -0
  398. package/sdk/src/failure-memory.test.ts +457 -0
  399. package/sdk/src/failure-memory.ts +1324 -0
  400. package/sdk/src/golden/capture.ts +95 -0
  401. package/sdk/src/golden/fixtures/generate-slug.golden.json +1 -0
  402. package/sdk/src/golden/fixtures/profile-sample-sessions/demo-project/sample.jsonl +3 -0
  403. package/sdk/src/golden/fixtures/summary-extract-sample.md +26 -0
  404. package/sdk/src/golden/fixtures/uat-render-checkpoint-sample.md +15 -0
  405. package/sdk/src/golden/golden-integration-covered.ts +30 -0
  406. package/sdk/src/golden/golden-mutation-covered.ts +7 -0
  407. package/sdk/src/golden/golden-policy.test.ts +8 -0
  408. package/sdk/src/golden/golden-policy.ts +112 -0
  409. package/sdk/src/golden/golden.integration.test.ts +373 -0
  410. package/sdk/src/golden/init-golden-normalize.ts +15 -0
  411. package/sdk/src/golden/read-only-golden-rows.ts +77 -0
  412. package/sdk/src/golden/read-only-parity.integration.test.ts +125 -0
  413. package/sdk/src/golden/registry-canonical-commands.ts +31 -0
  414. package/sdk/src/gsd-tools.test.ts +409 -0
  415. package/sdk/src/gsd-tools.ts +595 -0
  416. package/sdk/src/headless-prompts.test.ts +159 -0
  417. package/sdk/src/index.ts +333 -0
  418. package/sdk/src/init-e2e.integration.test.ts +136 -0
  419. package/sdk/src/init-runner.test.ts +783 -0
  420. package/sdk/src/init-runner.ts +735 -0
  421. package/sdk/src/lifecycle-e2e.integration.test.ts +258 -0
  422. package/sdk/src/logger.test.ts +149 -0
  423. package/sdk/src/logger.ts +113 -0
  424. package/sdk/src/milestone-runner.test.ts +421 -0
  425. package/sdk/src/phase-prompt.test.ts +538 -0
  426. package/sdk/src/phase-prompt.ts +264 -0
  427. package/sdk/src/phase-runner-types.test.ts +421 -0
  428. package/sdk/src/phase-runner.integration.test.ts +377 -0
  429. package/sdk/src/phase-runner.test.ts +2333 -0
  430. package/sdk/src/phase-runner.ts +1203 -0
  431. package/sdk/src/plan-parser.test.ts +528 -0
  432. package/sdk/src/plan-parser.ts +427 -0
  433. package/sdk/src/prompt-builder.test.ts +306 -0
  434. package/sdk/src/prompt-builder.ts +193 -0
  435. package/sdk/src/prompt-sanitizer.test.ts +260 -0
  436. package/sdk/src/prompt-sanitizer.ts +71 -0
  437. package/sdk/src/query/QUERY-HANDLERS.md +317 -0
  438. package/sdk/src/query/audit-open.ts +722 -0
  439. package/sdk/src/query/check-auto-mode.test.ts +77 -0
  440. package/sdk/src/query/check-auto-mode.ts +50 -0
  441. package/sdk/src/query/check-completion.test.ts +113 -0
  442. package/sdk/src/query/check-completion.ts +182 -0
  443. package/sdk/src/query/check-gates.test.ts +103 -0
  444. package/sdk/src/query/check-gates.ts +112 -0
  445. package/sdk/src/query/check-ship-ready.test.ts +77 -0
  446. package/sdk/src/query/check-ship-ready.ts +103 -0
  447. package/sdk/src/query/check-verification-status.test.ts +143 -0
  448. package/sdk/src/query/check-verification-status.ts +160 -0
  449. package/sdk/src/query/commit.test.ts +202 -0
  450. package/sdk/src/query/commit.ts +301 -0
  451. package/sdk/src/query/config-gates.test.ts +89 -0
  452. package/sdk/src/query/config-gates.ts +69 -0
  453. package/sdk/src/query/config-mutation.test.ts +365 -0
  454. package/sdk/src/query/config-mutation.ts +497 -0
  455. package/sdk/src/query/config-query.test.ts +161 -0
  456. package/sdk/src/query/config-query.ts +190 -0
  457. package/sdk/src/query/context-history.test.ts +165 -0
  458. package/sdk/src/query/context-history.ts +467 -0
  459. package/sdk/src/query/decomposed-handlers.test.ts +365 -0
  460. package/sdk/src/query/detect-custom-files.ts +97 -0
  461. package/sdk/src/query/detect-phase-type.test.ts +105 -0
  462. package/sdk/src/query/detect-phase-type.ts +141 -0
  463. package/sdk/src/query/docs-init.ts +257 -0
  464. package/sdk/src/query/failure-capture.ts +58 -0
  465. package/sdk/src/query/frontmatter-array.test.ts +14 -0
  466. package/sdk/src/query/frontmatter-mutation.test.ts +259 -0
  467. package/sdk/src/query/frontmatter-mutation.ts +343 -0
  468. package/sdk/src/query/frontmatter.test.ts +281 -0
  469. package/sdk/src/query/frontmatter.ts +397 -0
  470. package/sdk/src/query/helpers.test.ts +426 -0
  471. package/sdk/src/query/helpers.ts +482 -0
  472. package/sdk/src/query/index.ts +586 -0
  473. package/sdk/src/query/init-complex.test.ts +232 -0
  474. package/sdk/src/query/init-complex.ts +578 -0
  475. package/sdk/src/query/init.test.ts +522 -0
  476. package/sdk/src/query/init.ts +1046 -0
  477. package/sdk/src/query/intel.test.ts +90 -0
  478. package/sdk/src/query/intel.ts +404 -0
  479. package/sdk/src/query/normalize-query-command.test.ts +50 -0
  480. package/sdk/src/query/normalize-query-command.ts +56 -0
  481. package/sdk/src/query/phase-lifecycle.test.ts +1126 -0
  482. package/sdk/src/query/phase-lifecycle.ts +1799 -0
  483. package/sdk/src/query/phase-list-queries.test.ts +88 -0
  484. package/sdk/src/query/phase-list-queries.ts +152 -0
  485. package/sdk/src/query/phase-ready.test.ts +65 -0
  486. package/sdk/src/query/phase-ready.ts +158 -0
  487. package/sdk/src/query/phase.test.ts +307 -0
  488. package/sdk/src/query/phase.ts +340 -0
  489. package/sdk/src/query/pipeline.test.ts +169 -0
  490. package/sdk/src/query/pipeline.ts +243 -0
  491. package/sdk/src/query/plan-execution-route.test.ts +166 -0
  492. package/sdk/src/query/plan-execution-route.ts +209 -0
  493. package/sdk/src/query/plan-task-structure.test.ts +65 -0
  494. package/sdk/src/query/plan-task-structure.ts +63 -0
  495. package/sdk/src/query/profile-extract-messages.ts +247 -0
  496. package/sdk/src/query/profile-output.ts +908 -0
  497. package/sdk/src/query/profile-questionnaire-data.ts +181 -0
  498. package/sdk/src/query/profile-sample.ts +184 -0
  499. package/sdk/src/query/profile-scan-sessions.ts +174 -0
  500. package/sdk/src/query/profile.test.ts +74 -0
  501. package/sdk/src/query/profile.ts +337 -0
  502. package/sdk/src/query/progress.test.ts +156 -0
  503. package/sdk/src/query/progress.ts +566 -0
  504. package/sdk/src/query/registry.test.ts +216 -0
  505. package/sdk/src/query/registry.ts +174 -0
  506. package/sdk/src/query/requirements-extract-from-plans.test.ts +58 -0
  507. package/sdk/src/query/requirements-extract-from-plans.ts +86 -0
  508. package/sdk/src/query/roadmap-update-plan-progress.ts +132 -0
  509. package/sdk/src/query/roadmap.test.ts +359 -0
  510. package/sdk/src/query/roadmap.ts +591 -0
  511. package/sdk/src/query/route-next-action.test.ts +61 -0
  512. package/sdk/src/query/route-next-action.ts +345 -0
  513. package/sdk/src/query/runtime-health.ts +7 -0
  514. package/sdk/src/query/schema-detect.ts +189 -0
  515. package/sdk/src/query/skill-manifest.ts +214 -0
  516. package/sdk/src/query/skills.test.ts +80 -0
  517. package/sdk/src/query/skills.ts +62 -0
  518. package/sdk/src/query/state-mutation.test.ts +450 -0
  519. package/sdk/src/query/state-mutation.ts +1444 -0
  520. package/sdk/src/query/state-project-load.ts +109 -0
  521. package/sdk/src/query/state.test.ts +347 -0
  522. package/sdk/src/query/state.ts +397 -0
  523. package/sdk/src/query/summary.test.ts +95 -0
  524. package/sdk/src/query/summary.ts +296 -0
  525. package/sdk/src/query/template.test.ts +180 -0
  526. package/sdk/src/query/template.ts +242 -0
  527. package/sdk/src/query/uat.test.ts +77 -0
  528. package/sdk/src/query/uat.ts +314 -0
  529. package/sdk/src/query/utils.test.ts +82 -0
  530. package/sdk/src/query/utils.ts +92 -0
  531. package/sdk/src/query/validate.test.ts +656 -0
  532. package/sdk/src/query/validate.ts +807 -0
  533. package/sdk/src/query/verify.test.ts +414 -0
  534. package/sdk/src/query/verify.ts +645 -0
  535. package/sdk/src/query/websearch.test.ts +31 -0
  536. package/sdk/src/query/websearch.ts +82 -0
  537. package/sdk/src/query/workspace.test.ts +119 -0
  538. package/sdk/src/query/workspace.ts +131 -0
  539. package/sdk/src/query/workstream.test.ts +51 -0
  540. package/sdk/src/query/workstream.ts +434 -0
  541. package/sdk/src/research-gate.test.ts +190 -0
  542. package/sdk/src/research-gate.ts +94 -0
  543. package/sdk/src/runtime-health.test.ts +176 -0
  544. package/sdk/src/runtime-health.ts +387 -0
  545. package/sdk/src/session-runner.test.ts +98 -0
  546. package/sdk/src/session-runner.ts +299 -0
  547. package/sdk/src/tool-scoping.test.ts +160 -0
  548. package/sdk/src/tool-scoping.ts +61 -0
  549. package/sdk/src/types.ts +917 -0
  550. package/sdk/src/workstream-utils.ts +33 -0
  551. package/sdk/src/ws-flag.test.ts +285 -0
  552. package/sdk/src/ws-transport.test.ts +161 -0
  553. package/sdk/src/ws-transport.ts +93 -0
  554. package/sdk/tsconfig.json +20 -0
@@ -0,0 +1,302 @@
1
+ <purpose>
2
+ Create a pull request from completed phase/milestone work, generate a rich PR body from planning artifacts, optionally run code review, and prepare for merge. Closes the plan → execute → verify → ship loop.
3
+ </purpose>
4
+
5
+ <required_reading>
6
+ Read all files referenced by the invoking prompt's execution_context before starting.
7
+ </required_reading>
8
+
9
+ <process>
10
+
11
+ <step name="initialize">
12
+ Parse arguments and load project state:
13
+
14
+ ```bash
15
+ INIT=$(gsd-remix-sdk query init.phase-op "${PHASE_ARG}")
16
+ if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
17
+ ```
18
+
19
+ Parse from init JSON: `phase_found`, `phase_dir`, `phase_number`, `phase_name`, `padded_phase`, `commit_docs`.
20
+
21
+ Also load config for branching strategy:
22
+ ```bash
23
+ CONFIG=$(gsd-remix-sdk query state.load)
24
+ ```
25
+
26
+ Extract: `branching_strategy`, `branch_name`.
27
+
28
+ Detect base branch for PRs and merges:
29
+ ```bash
30
+ BASE_BRANCH=$(gsd-remix-sdk query config-get git.base_branch 2>/dev/null || echo "")
31
+ if [ -z "$BASE_BRANCH" ] || [ "$BASE_BRANCH" = "null" ]; then
32
+ BASE_BRANCH=$(git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's|^refs/remotes/origin/||')
33
+ BASE_BRANCH="${BASE_BRANCH:-main}"
34
+ fi
35
+ ```
36
+ </step>
37
+
38
+ <step name="preflight_checks">
39
+ Verify the work is ready to ship:
40
+
41
+ 1. **Verification passed?**
42
+ ```bash
43
+ VERIFICATION=$(cat ${PHASE_DIR}/*-VERIFICATION.md 2>/dev/null)
44
+ ```
45
+ Check for `status: passed` or `status: human_needed` (with human approval).
46
+ If no VERIFICATION.md or status is `gaps_found`: warn and ask user to confirm.
47
+
48
+ 2. **Clean working tree?**
49
+ ```bash
50
+ git status --short
51
+ ```
52
+ If uncommitted changes exist: ask user to commit or stash first.
53
+
54
+ 3. **On correct branch?**
55
+ ```bash
56
+ CURRENT_BRANCH=$(git branch --show-current)
57
+ ```
58
+ If on `${BASE_BRANCH}`: warn — should be on a feature branch.
59
+ If branching_strategy is `none`: offer to create a branch now.
60
+
61
+ 4. **Remote configured?**
62
+ ```bash
63
+ git remote -v | head -2
64
+ ```
65
+ Detect `origin` remote. If no remote: error — can't create PR.
66
+
67
+ 5. **`gh` CLI available?**
68
+ ```bash
69
+ which gh && gh auth status 2>&1
70
+ ```
71
+ If `gh` not found or not authenticated: provide setup instructions and exit.
72
+ </step>
73
+
74
+ <step name="push_branch">
75
+ Push the current branch to remote:
76
+
77
+ ```bash
78
+ git push origin ${CURRENT_BRANCH} 2>&1
79
+ ```
80
+
81
+ If push fails (e.g., no upstream): set upstream:
82
+ ```bash
83
+ git push --set-upstream origin ${CURRENT_BRANCH} 2>&1
84
+ ```
85
+
86
+ Report: "Pushed `{branch}` to origin ({commit_count} commits ahead of ${BASE_BRANCH})"
87
+ </step>
88
+
89
+ <step name="generate_pr_body">
90
+ Auto-generate a rich PR body from planning artifacts:
91
+
92
+ **1. Title:**
93
+ ```
94
+ Phase {phase_number}: {phase_name}
95
+ ```
96
+ Or for milestone: `Milestone {version}: {name}`
97
+
98
+ **2. Summary section:**
99
+ Read ROADMAP.md for phase goal. Read VERIFICATION.md for verification status.
100
+
101
+ ```markdown
102
+ ## Summary
103
+
104
+ **Phase {N}: {Name}**
105
+ **Goal:** {goal from ROADMAP.md}
106
+ **Status:** Verified ✓
107
+
108
+ {One paragraph synthesized from SUMMARY.md files — what was built}
109
+ ```
110
+
111
+ **3. Changes section:**
112
+ For each SUMMARY.md in the phase directory:
113
+ ```markdown
114
+ ## Changes
115
+
116
+ ### Plan {plan_id}: {plan_name}
117
+ {one_liner from SUMMARY.md frontmatter}
118
+
119
+ **Key files:**
120
+ {key-files.created and key-files.modified from SUMMARY.md frontmatter}
121
+ ```
122
+
123
+ **4. Requirements section:**
124
+ ```markdown
125
+ ## Requirements Addressed
126
+
127
+ {REQ-IDs from plan frontmatter, linked to REQUIREMENTS.md descriptions}
128
+ ```
129
+
130
+ **5. Testing section:**
131
+ ```markdown
132
+ ## Verification
133
+
134
+ - [x] Automated verification: {pass/fail from VERIFICATION.md}
135
+ - {human verification items from VERIFICATION.md, if any}
136
+ ```
137
+
138
+ **6. Decisions section:**
139
+ ```markdown
140
+ ## Key Decisions
141
+
142
+ {Decisions from STATE.md accumulated context relevant to this phase}
143
+ ```
144
+ </step>
145
+
146
+ <step name="create_pr">
147
+ Create the PR using the generated body:
148
+
149
+ ```bash
150
+ gh pr create \
151
+ --title "Phase ${PHASE_NUMBER}: ${PHASE_NAME}" \
152
+ --body "${PR_BODY}" \
153
+ --base ${BASE_BRANCH}
154
+ ```
155
+
156
+ If `--draft` flag was passed: add `--draft`.
157
+
158
+ Report: "PR #{number} created: {url}"
159
+ </step>
160
+
161
+ <step name="optional_review">
162
+
163
+ **External code review command (automated sub-step):**
164
+
165
+ Before prompting the user, check if an external review command is configured:
166
+
167
+ ```bash
168
+ REVIEW_CMD=$(gsd-remix-sdk query config-get workflow.code_review_command 2>/dev/null | jq -r '.' 2>/dev/null || echo "")
169
+ ```
170
+
171
+ If `REVIEW_CMD` is non-empty and not `"null"`, run the external review:
172
+
173
+ 1. **Generate diff and stats:**
174
+ ```bash
175
+ DIFF=$(git diff ${BASE_BRANCH}...HEAD)
176
+ DIFF_STATS=$(git diff --stat ${BASE_BRANCH}...HEAD)
177
+ ```
178
+
179
+ 2. **Load phase context from STATE.md:**
180
+ ```bash
181
+ STATE_STATUS=$(gsd-remix-sdk query state.load 2>/dev/null | head -20)
182
+ ```
183
+
184
+ 3. **Build review prompt and pipe to command via stdin:**
185
+ Construct a review prompt containing the diff, diff stats, and phase context, then pipe it to the configured command:
186
+ ```bash
187
+ REVIEW_PROMPT="You are reviewing a pull request.\n\nDiff stats:\n${DIFF_STATS}\n\nPhase context:\n${STATE_STATUS}\n\nFull diff:\n${DIFF}\n\nRespond with JSON: { \"verdict\": \"APPROVED\" or \"REVISE\", \"confidence\": 0-100, \"summary\": \"...\", \"issues\": [{\"severity\": \"...\", \"file\": \"...\", \"line_range\": \"...\", \"description\": \"...\", \"suggestion\": \"...\"}] }"
188
+ REVIEW_OUTPUT=$(echo "${REVIEW_PROMPT}" | timeout 120 ${REVIEW_CMD} 2>/tmp/gsd-review-stderr.log)
189
+ REVIEW_EXIT=$?
190
+ ```
191
+
192
+ 4. **Handle timeout (120s) and failure:**
193
+ If `REVIEW_EXIT` is non-zero or the command times out:
194
+ ```bash
195
+ if [ $REVIEW_EXIT -ne 0 ]; then
196
+ REVIEW_STDERR=$(cat /tmp/gsd-review-stderr.log 2>/dev/null)
197
+ echo "WARNING: External review command failed (exit ${REVIEW_EXIT}). stderr: ${REVIEW_STDERR}"
198
+ echo "Continuing with manual review flow..."
199
+ fi
200
+ ```
201
+ On failure, warn with stderr output and fall through to the manual review flow below.
202
+
203
+ 5. **Parse JSON result:**
204
+ If the command succeeded, parse the JSON output and report the verdict:
205
+ ```bash
206
+ # Parse verdict and summary from REVIEW_OUTPUT JSON
207
+ VERDICT=$(echo "${REVIEW_OUTPUT}" | node -e "
208
+ let d=''; process.stdin.on('data',c=>d+=c); process.stdin.on('end',()=>{
209
+ try { const r=JSON.parse(d); console.log(r.verdict); }
210
+ catch(e) { console.log('INVALID_JSON'); }
211
+ });
212
+ ")
213
+ ```
214
+ - If `verdict` is `"APPROVED"`: report approval with confidence and summary.
215
+ - If `verdict` is `"REVISE"`: report issues found, list each issue with severity, file, line_range, description, and suggestion.
216
+ - If JSON is invalid (`INVALID_JSON`): warn "External review returned invalid JSON" with stderr and continue.
217
+
218
+ Regardless of the external review result, fall through to the manual review options below.
219
+
220
+ ---
221
+
222
+ **Manual review options:**
223
+
224
+ Ask if user wants to trigger a code review:
225
+
226
+
227
+ **Text mode (`workflow.text_mode: true` in config or `--text` flag):** Set `TEXT_MODE=true` if `--text` is present in `$ARGUMENTS` OR `text_mode` from init JSON is `true`. When TEXT_MODE is active, replace every `AskUserQuestion` call with a plain-text numbered list and ask the user to type their choice number. This is required for non-Claude runtimes (OpenAI Codex, Gemini CLI, etc.) where `AskUserQuestion` is not available.
228
+
229
+ ```
230
+ AskUserQuestion:
231
+ question: "PR created. Run a code review before merge?"
232
+ options:
233
+ - label: "Skip review"
234
+ description: "PR is ready — merge when CI passes"
235
+ - label: "Self-review"
236
+ description: "I'll review the diff in the PR myself"
237
+ - label: "Request review"
238
+ description: "Request review from a teammate"
239
+ ```
240
+
241
+ **If "Request review":**
242
+ ```bash
243
+ gh pr edit ${PR_NUMBER} --add-reviewer "${REVIEWER}"
244
+ ```
245
+
246
+ **If "Self-review":**
247
+ Report the PR URL and suggest: "Review the diff at {url}/files"
248
+ </step>
249
+
250
+ <step name="track_shipping">
251
+ Update STATE.md to reflect the shipping action:
252
+
253
+ ```bash
254
+ gsd-remix-sdk query state.update "Last Activity" "$(date +%Y-%m-%d)"
255
+ gsd-remix-sdk query state.update "Status" "Phase ${PHASE_NUMBER} shipped — PR #${PR_NUMBER}"
256
+ ```
257
+
258
+ If `commit_docs` is true:
259
+ ```bash
260
+ gsd-remix-sdk query commit "docs(${padded_phase}): ship phase ${PHASE_NUMBER} — PR #${PR_NUMBER}" .planning/STATE.md
261
+ ```
262
+ </step>
263
+
264
+ <step name="report">
265
+ ```
266
+ ───────────────────────────────────────────────────────────────
267
+
268
+ ## ✓ Phase {X}: {Name} — Shipped
269
+
270
+ PR: #{number} ({url})
271
+ Branch: {branch} → ${BASE_BRANCH}
272
+ Commits: {count}
273
+ Verification: ✓ Passed
274
+ Requirements: {N} REQ-IDs addressed
275
+
276
+ Next steps:
277
+ - Review/approve PR
278
+ - Merge when CI passes
279
+ - /gsd-complete-milestone (if last phase in milestone)
280
+ - /gsd-progress (to see what's next)
281
+
282
+ ───────────────────────────────────────────────────────────────
283
+ ```
284
+ </step>
285
+
286
+ </process>
287
+
288
+ <offer_next>
289
+ After shipping:
290
+
291
+ - /gsd-complete-milestone — if all phases in milestone are done
292
+ - /gsd-progress — see overall project state
293
+ - /gsd-execute-phase {next} — continue to next phase
294
+ </offer_next>
295
+
296
+ <success_criteria>
297
+ - [ ] Preflight checks passed (verification, clean tree, branch, remote, gh)
298
+ - [ ] Branch pushed to remote
299
+ - [ ] PR created with rich auto-generated body
300
+ - [ ] STATE.md updated with shipping status
301
+ - [ ] User knows PR number and next steps
302
+ </success_criteria>
@@ -0,0 +1,283 @@
1
+ <purpose>
2
+ Curate sketch design findings and package them into a persistent project skill for future
3
+ UI implementation. Reads from `.planning/sketches/`, writes skill to `./.claude/skills/sketch-findings-[project]/`
4
+ (project-local) and summary to `.planning/sketches/WRAP-UP-SUMMARY.md`.
5
+ Companion to `/gsd-sketch`.
6
+ </purpose>
7
+
8
+ <required_reading>
9
+ Read all files referenced by the invoking prompt's execution_context before starting.
10
+ </required_reading>
11
+
12
+ <process>
13
+
14
+ <step name="banner">
15
+ ```
16
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
17
+ GSD ► SKETCH WRAP-UP
18
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
19
+ ```
20
+ </step>
21
+
22
+ <step name="gather">
23
+ ## Gather Sketch Inventory
24
+
25
+ 1. Read `.planning/sketches/MANIFEST.md` for the design direction and reference points
26
+ 2. Glob `.planning/sketches/*/README.md` and parse YAML frontmatter from each
27
+ 3. Check if `./.claude/skills/sketch-findings-*/SKILL.md` exists for this project
28
+ - If yes: read its `processed_sketches` list and filter those out
29
+ - If no: all sketches are candidates
30
+
31
+ If no unprocessed sketches exist:
32
+ ```
33
+ No unprocessed sketches found in `.planning/sketches/`.
34
+ Run `/gsd-sketch` first to create design explorations.
35
+ ```
36
+ Exit.
37
+
38
+ Check `commit_docs` config:
39
+ ```bash
40
+ COMMIT_DOCS=$(gsd-remix-sdk query config-get commit_docs 2>/dev/null || echo "true")
41
+ ```
42
+ </step>
43
+
44
+ <step name="curate">
45
+ ## Curate Sketches One-at-a-Time
46
+
47
+ Present each unprocessed sketch in ascending order. For each sketch, show:
48
+
49
+ - **Sketch number and name**
50
+ - **Design question:** from frontmatter
51
+ - **Winner:** which variant was selected (if any)
52
+ - **Tags:** from frontmatter
53
+ - **Key decisions:** summarize what was decided visually
54
+
55
+ Then ask the user:
56
+
57
+ ╔══════════════════════════════════════════════════════════════╗
58
+ ║ CHECKPOINT: Decision Required ║
59
+ ╚══════════════════════════════════════════════════════════════╝
60
+
61
+ Sketch {NNN}: {name} — Winner: Variant {X}
62
+
63
+ {key design decisions summary}
64
+
65
+ ──────────────────────────────────────────────────────────────
66
+ → Include / Exclude / Partial / Let me look at it
67
+ ──────────────────────────────────────────────────────────────
68
+
69
+ **If "Let me look at it":**
70
+ 1. Provide: `open .planning/sketches/NNN-name/index.html`
71
+ 2. Remind them which variant won and what to look for
72
+ 3. After they've looked, return to the include/exclude/partial decision
73
+
74
+ **If "Partial":**
75
+ Ask what specifically to include or exclude from this sketch's decisions.
76
+ </step>
77
+
78
+ <step name="group">
79
+ ## Auto-Group by Design Area
80
+
81
+ After all sketches are curated:
82
+
83
+ 1. Read all included sketches' tags, names, and content
84
+ 2. Propose design-area groupings, e.g.:
85
+ - "**Layout & Navigation** — sketches 001, 004"
86
+ - "**Form Controls** — sketches 002, 005"
87
+ - "**Color & Typography** — sketches 003"
88
+ 3. Present the grouping for approval — user may merge, split, rename, or rearrange
89
+
90
+ Each group becomes one reference file in the generated skill.
91
+ </step>
92
+
93
+ <step name="skill_name">
94
+ ## Determine Output Skill Name
95
+
96
+ Derive from the project directory name: `./.claude/skills/sketch-findings-[project-dir-name]/`
97
+
98
+ If a skill already exists at that path (append mode), update in place.
99
+ </step>
100
+
101
+ <step name="copy_sources">
102
+ ## Copy Source Files
103
+
104
+ For each included sketch:
105
+
106
+ 1. Copy the winning variant's HTML file (or the full index.html with all variants) into `sources/NNN-sketch-name/`
107
+ 2. Copy the winning theme.css into `sources/themes/`
108
+ 3. Exclude node_modules, build artifacts, .DS_Store
109
+ </step>
110
+
111
+ <step name="synthesize">
112
+ ## Synthesize Reference Files
113
+
114
+ For each design-area group, write a reference file at `references/[design-area-name].md`:
115
+
116
+ ```markdown
117
+ # [Design Area Name]
118
+
119
+ ## Design Decisions
120
+ [For each validated decision: what was chosen, why it won over alternatives, the key visual properties (colors, spacing, border radius, typography)]
121
+
122
+ ## CSS Patterns
123
+ [Key CSS snippets from winning variants — layout structures, component patterns, animation patterns. Extracted and cleaned up for reference.]
124
+
125
+ ## HTML Structures
126
+ [Key HTML patterns from winning variants — page layout, component markup, navigation structures.]
127
+
128
+ ## What to Avoid
129
+ [Design directions that were tried and rejected. Why they didn't work.]
130
+
131
+ ## Origin
132
+ Synthesized from sketches: NNN, NNN
133
+ Source files available in: sources/NNN-sketch-name/
134
+ ```
135
+ </step>
136
+
137
+ <step name="write_skill">
138
+ ## Write SKILL.md
139
+
140
+ Create (or update) the generated skill's SKILL.md:
141
+
142
+ ```markdown
143
+ ---
144
+ name: sketch-findings-[project-dir-name]
145
+ description: Validated design decisions, CSS patterns, and visual direction from sketch experiments. Auto-loaded during UI implementation on [project-dir-name].
146
+ ---
147
+
148
+ <context>
149
+ ## Project: [project-dir-name]
150
+
151
+ [Design direction paragraph from MANIFEST.md]
152
+ [Reference points mentioned during intake]
153
+
154
+ Sketch sessions wrapped: [date(s)]
155
+ </context>
156
+
157
+ <design_direction>
158
+ ## Overall Direction
159
+
160
+ [Summary of the validated visual direction: palette, typography, spacing system, layout approach, interaction patterns]
161
+ </design_direction>
162
+
163
+ <findings_index>
164
+ ## Design Areas
165
+
166
+ | Area | Reference | Key Decision |
167
+ |------|-----------|--------------|
168
+ | [Name] | references/[name].md | [One-line summary] |
169
+
170
+ ## Theme
171
+
172
+ The winning theme file is at `sources/themes/default.css`.
173
+
174
+ ## Source Files
175
+
176
+ Original sketch HTML files are preserved in `sources/` for complete reference.
177
+ </findings_index>
178
+
179
+ <metadata>
180
+ ## Processed Sketches
181
+
182
+ [List of sketch numbers wrapped up]
183
+
184
+ - 001-sketch-name
185
+ - 002-sketch-name
186
+ </metadata>
187
+ ```
188
+ </step>
189
+
190
+ <step name="write_summary">
191
+ ## Write Planning Summary
192
+
193
+ Write `.planning/sketches/WRAP-UP-SUMMARY.md` for project history:
194
+
195
+ ```markdown
196
+ # Sketch Wrap-Up Summary
197
+
198
+ **Date:** [date]
199
+ **Sketches processed:** [count]
200
+ **Design areas:** [list]
201
+ **Skill output:** `./.claude/skills/sketch-findings-[project]/`
202
+
203
+ ## Included Sketches
204
+ | # | Name | Winner | Design Area |
205
+ |---|------|--------|-------------|
206
+
207
+ ## Excluded Sketches
208
+ | # | Name | Reason |
209
+ |---|------|--------|
210
+
211
+ ## Design Direction
212
+ [consolidated design direction summary]
213
+
214
+ ## Key Decisions
215
+ [layout, palette, typography, spacing, interaction patterns]
216
+ ```
217
+ </step>
218
+
219
+ <step name="update_claude_md">
220
+ ## Update Project CLAUDE.md
221
+
222
+ Add an auto-load routing line:
223
+
224
+ ```
225
+ - **Sketch findings for [project]** (design decisions, CSS patterns, visual direction) → `Skill("sketch-findings-[project-dir-name]")`
226
+ ```
227
+
228
+ If this routing line already exists (append mode), leave it as-is.
229
+ </step>
230
+
231
+ <step name="commit">
232
+ Commit all artifacts (if `COMMIT_DOCS` is true):
233
+
234
+ ```bash
235
+ gsd-remix-sdk query commit "docs(sketch-wrap-up): package [N] sketch findings into project skill" .planning/sketches/WRAP-UP-SUMMARY.md
236
+ ```
237
+ </step>
238
+
239
+ <step name="report">
240
+ ```
241
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
242
+ GSD ► SKETCH WRAP-UP COMPLETE ✓
243
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
244
+
245
+ **Curated:** {N} sketches ({included} included, {excluded} excluded)
246
+ **Design areas:** {list}
247
+ **Skill:** `./.claude/skills/sketch-findings-[project]/`
248
+ **Summary:** `.planning/sketches/WRAP-UP-SUMMARY.md`
249
+ **CLAUDE.md:** routing line added
250
+
251
+ The sketch-findings skill will auto-load when building the UI.
252
+ ```
253
+
254
+ ───────────────────────────────────────────────────────────────
255
+
256
+ ## ▶ Next Up
257
+
258
+ **Start building** — implement the validated design
259
+
260
+ `/gsd-plan-phase`
261
+
262
+ ───────────────────────────────────────────────────────────────
263
+
264
+ **Also available:**
265
+ - `/gsd-ui-phase` — generate a UI design contract for a frontend phase
266
+ - `/gsd-sketch` — sketch additional design areas
267
+ - `/gsd-explore` — continue exploring
268
+
269
+ ───────────────────────────────────────────────────────────────
270
+ </step>
271
+
272
+ </process>
273
+
274
+ <success_criteria>
275
+ - [ ] Every unprocessed sketch presented for individual curation
276
+ - [ ] Design-area grouping proposed and approved
277
+ - [ ] Sketch-findings skill exists at `./.claude/skills/` with SKILL.md, references/, sources/
278
+ - [ ] Winning theme.css copied into skill sources
279
+ - [ ] Reference files contain design decisions, CSS patterns, HTML structures, anti-patterns
280
+ - [ ] `.planning/sketches/WRAP-UP-SUMMARY.md` written for project history
281
+ - [ ] Project CLAUDE.md has auto-load routing line
282
+ - [ ] Summary presented with next-step routing
283
+ </success_criteria>