@opengsd/gsd-path 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 (398) hide show
  1. package/AGENTS.md +397 -0
  2. package/DOCS.md +341 -0
  3. package/FULL.md +475 -0
  4. package/GUIDE.md +23 -0
  5. package/HOOKS.md +273 -0
  6. package/LICENSE +21 -0
  7. package/MIGRATE.md +100 -0
  8. package/QUICK.md +146 -0
  9. package/README.md +280 -0
  10. package/RUNTIME.md +229 -0
  11. package/UPDATE.md +196 -0
  12. package/WORKFLOW.md +683 -0
  13. package/package.json +80 -0
  14. package/platforms/claude/dispatch.md +63 -0
  15. package/platforms/copilot/dispatch.md +61 -0
  16. package/platforms/cursor/agent.md +17 -0
  17. package/platforms/cursor/dispatch.md +63 -0
  18. package/platforms/grok/dispatch.md +61 -0
  19. package/platforms/kimi/dispatch.md +64 -0
  20. package/platforms/kiro/dispatch.md +58 -0
  21. package/platforms/opencode/dispatch.md +62 -0
  22. package/platforms/qwen/dispatch.md +60 -0
  23. package/platforms/shared-agents/dispatch.md +131 -0
  24. package/plugin.json +14 -0
  25. package/scripts/_common.py +180 -0
  26. package/scripts/archive_milestone.py +2265 -0
  27. package/scripts/bootstrap_repository.py +710 -0
  28. package/scripts/build_state.py +854 -0
  29. package/scripts/check_docs_audit.py +463 -0
  30. package/scripts/check_handoffs.py +1855 -0
  31. package/scripts/check_task_briefs.py +376 -0
  32. package/scripts/check_update.py +93 -0
  33. package/scripts/core_hook_gate.py +34 -0
  34. package/scripts/core_hook_settings.py +119 -0
  35. package/scripts/detect_project.py +1517 -0
  36. package/scripts/discussion_records.py +619 -0
  37. package/scripts/discussion_validate.py +1321 -0
  38. package/scripts/dispatch_driver.py +1812 -0
  39. package/scripts/git_guard.py +759 -0
  40. package/scripts/guard_hook.py +2124 -0
  41. package/scripts/install.mjs +3239 -0
  42. package/scripts/install.py +3008 -0
  43. package/scripts/integration.py +1433 -0
  44. package/scripts/isolation.py +3538 -0
  45. package/scripts/lean_verification.py +256 -0
  46. package/scripts/loop_run.py +837 -0
  47. package/scripts/migrate_core.py +169 -0
  48. package/scripts/pipeline_diagnose.py +715 -0
  49. package/scripts/pipeline_git.py +940 -0
  50. package/scripts/pipeline_state.py +2291 -0
  51. package/scripts/pipeline_undo.py +1039 -0
  52. package/scripts/promote_lookahead.py +415 -0
  53. package/scripts/review_findings.py +714 -0
  54. package/scripts/review_panel.py +553 -0
  55. package/scripts/skill-resources.json +340 -0
  56. package/scripts/state_checkpoint.py +1039 -0
  57. package/scripts/state_promote.py +743 -0
  58. package/scripts/status_runtime.py +122 -0
  59. package/scripts/sync_skill_resources.py +259 -0
  60. package/scripts/token_budget.py +146 -0
  61. package/scripts/wizard.mjs +179 -0
  62. package/scripts/workflow_run.py +117 -0
  63. package/skills/gsd-path/BUILD.md +700 -0
  64. package/skills/gsd-path/DECIDE.md +115 -0
  65. package/skills/gsd-path/DEFINE.md +297 -0
  66. package/skills/gsd-path/DOCS-AUDIT.md +190 -0
  67. package/skills/gsd-path/INSPECT.md +167 -0
  68. package/skills/gsd-path/PLAN.md +411 -0
  69. package/skills/gsd-path/RESEARCH.md +159 -0
  70. package/skills/gsd-path/ROADMAP.md +215 -0
  71. package/skills/gsd-path/SHIP.md +412 -0
  72. package/skills/gsd-path/SKILL.md +471 -0
  73. package/skills/gsd-path/agents/openai.yaml +6 -0
  74. package/skills/gsd-path/references/codebase-mapper.md +52 -0
  75. package/skills/gsd-path/references/coder.md +90 -0
  76. package/skills/gsd-path/references/decider.md +36 -0
  77. package/skills/gsd-path/references/dispatch.md +131 -0
  78. package/skills/gsd-path/references/docs-auditor.md +60 -0
  79. package/skills/gsd-path/references/planner.md +104 -0
  80. package/skills/gsd-path/references/researcher.md +42 -0
  81. package/skills/gsd-path/references/reviewer.md +188 -0
  82. package/skills/gsd-path/references/roadmapper.md +48 -0
  83. package/skills/gsd-path/scripts/_common.py +180 -0
  84. package/skills/gsd-path/scripts/archive_milestone.py +2265 -0
  85. package/skills/gsd-path/scripts/bootstrap_repository.py +710 -0
  86. package/skills/gsd-path/scripts/build_state.py +854 -0
  87. package/skills/gsd-path/scripts/check_docs_audit.py +463 -0
  88. package/skills/gsd-path/scripts/check_handoffs.py +1855 -0
  89. package/skills/gsd-path/scripts/check_task_briefs.py +376 -0
  90. package/skills/gsd-path/scripts/check_update.py +93 -0
  91. package/skills/gsd-path/scripts/detect_project.py +1517 -0
  92. package/skills/gsd-path/scripts/discussion_records.py +619 -0
  93. package/skills/gsd-path/scripts/discussion_validate.py +1321 -0
  94. package/skills/gsd-path/scripts/dispatch_driver.py +1812 -0
  95. package/skills/gsd-path/scripts/integration.py +1433 -0
  96. package/skills/gsd-path/scripts/isolation.py +3538 -0
  97. package/skills/gsd-path/scripts/lean_verification.py +256 -0
  98. package/skills/gsd-path/scripts/loop_run.py +837 -0
  99. package/skills/gsd-path/scripts/pipeline_git.py +940 -0
  100. package/skills/gsd-path/scripts/pipeline_state.py +2291 -0
  101. package/skills/gsd-path/scripts/promote_lookahead.py +415 -0
  102. package/skills/gsd-path/scripts/review_findings.py +714 -0
  103. package/skills/gsd-path/scripts/review_panel.py +553 -0
  104. package/skills/gsd-path/scripts/state_checkpoint.py +1039 -0
  105. package/skills/gsd-path/scripts/state_promote.py +743 -0
  106. package/skills/gsd-path/scripts/token_budget.py +146 -0
  107. package/skills/gsd-path/scripts/workflow_run.py +117 -0
  108. package/skills/gsd-path/templates/answers.md +29 -0
  109. package/skills/gsd-path/templates/archive-manifest.md +37 -0
  110. package/skills/gsd-path/templates/charter.md +50 -0
  111. package/skills/gsd-path/templates/codebase.md +46 -0
  112. package/skills/gsd-path/templates/dialogue.md +21 -0
  113. package/skills/gsd-path/templates/docs-audit.md +69 -0
  114. package/skills/gsd-path/templates/evidence.md +24 -0
  115. package/skills/gsd-path/templates/final-review.md +27 -0
  116. package/skills/gsd-path/templates/gap-review.md +20 -0
  117. package/skills/gsd-path/templates/intent.md +98 -0
  118. package/skills/gsd-path/templates/loop.md +59 -0
  119. package/skills/gsd-path/templates/patch-findings.md +16 -0
  120. package/skills/gsd-path/templates/plan-panel.md +25 -0
  121. package/skills/gsd-path/templates/plan.md +89 -0
  122. package/skills/gsd-path/templates/repository.md +16 -0
  123. package/skills/gsd-path/templates/research-handoff.md +25 -0
  124. package/skills/gsd-path/templates/roadmap.md +38 -0
  125. package/skills/gsd-path/templates/skeptic.md +36 -0
  126. package/skills/gsd-path/templates/state.md +27 -0
  127. package/skills/gsd-path/templates/synthesis.md +36 -0
  128. package/skills/gsd-path/templates/task.md +74 -0
  129. package/skills/gsd-path/templates/wave-panel.md +25 -0
  130. package/skills/gsd-path/templates/wave-review.md +64 -0
  131. package/skills/gsd-path-build/SKILL.md +700 -0
  132. package/skills/gsd-path-build/agents/openai.yaml +6 -0
  133. package/skills/gsd-path-build/references/coder.md +90 -0
  134. package/skills/gsd-path-build/references/dispatch.md +131 -0
  135. package/skills/gsd-path-build/references/reviewer.md +188 -0
  136. package/skills/gsd-path-build/scripts/_common.py +180 -0
  137. package/skills/gsd-path-build/scripts/archive_milestone.py +2265 -0
  138. package/skills/gsd-path-build/scripts/build_state.py +854 -0
  139. package/skills/gsd-path-build/scripts/check_handoffs.py +1855 -0
  140. package/skills/gsd-path-build/scripts/check_task_briefs.py +376 -0
  141. package/skills/gsd-path-build/scripts/discussion_records.py +619 -0
  142. package/skills/gsd-path-build/scripts/discussion_validate.py +1321 -0
  143. package/skills/gsd-path-build/scripts/dispatch_driver.py +1812 -0
  144. package/skills/gsd-path-build/scripts/integration.py +1433 -0
  145. package/skills/gsd-path-build/scripts/isolation.py +3538 -0
  146. package/skills/gsd-path-build/scripts/loop_run.py +837 -0
  147. package/skills/gsd-path-build/scripts/pipeline_git.py +940 -0
  148. package/skills/gsd-path-build/scripts/pipeline_state.py +2291 -0
  149. package/skills/gsd-path-build/scripts/review_findings.py +714 -0
  150. package/skills/gsd-path-build/scripts/review_panel.py +553 -0
  151. package/skills/gsd-path-build/scripts/state_checkpoint.py +1039 -0
  152. package/skills/gsd-path-build/scripts/state_promote.py +743 -0
  153. package/skills/gsd-path-build/scripts/token_budget.py +146 -0
  154. package/skills/gsd-path-build/scripts/workflow_run.py +117 -0
  155. package/skills/gsd-path-build/templates/skeptic.md +36 -0
  156. package/skills/gsd-path-build/templates/task.md +74 -0
  157. package/skills/gsd-path-build/templates/wave-panel.md +25 -0
  158. package/skills/gsd-path-build/templates/wave-review.md +64 -0
  159. package/skills/gsd-path-decide/SKILL.md +115 -0
  160. package/skills/gsd-path-decide/agents/openai.yaml +6 -0
  161. package/skills/gsd-path-decide/references/decider.md +36 -0
  162. package/skills/gsd-path-decide/references/dispatch.md +131 -0
  163. package/skills/gsd-path-decide/scripts/_common.py +180 -0
  164. package/skills/gsd-path-decide/scripts/check_handoffs.py +1855 -0
  165. package/skills/gsd-path-decide/scripts/check_task_briefs.py +376 -0
  166. package/skills/gsd-path-decide/scripts/discussion_records.py +619 -0
  167. package/skills/gsd-path-decide/scripts/isolation.py +3538 -0
  168. package/skills/gsd-path-decide/scripts/pipeline_git.py +940 -0
  169. package/skills/gsd-path-decide/scripts/pipeline_state.py +2291 -0
  170. package/skills/gsd-path-decide/scripts/state_checkpoint.py +1039 -0
  171. package/skills/gsd-path-decide/scripts/state_promote.py +743 -0
  172. package/skills/gsd-path-decide/templates/synthesis.md +36 -0
  173. package/skills/gsd-path-define/SKILL.md +297 -0
  174. package/skills/gsd-path-define/agents/openai.yaml +6 -0
  175. package/skills/gsd-path-define/scripts/_common.py +180 -0
  176. package/skills/gsd-path-define/scripts/check_handoffs.py +1855 -0
  177. package/skills/gsd-path-define/scripts/check_task_briefs.py +376 -0
  178. package/skills/gsd-path-define/scripts/detect_project.py +1517 -0
  179. package/skills/gsd-path-define/scripts/discussion_records.py +619 -0
  180. package/skills/gsd-path-define/scripts/isolation.py +3538 -0
  181. package/skills/gsd-path-define/scripts/pipeline_git.py +940 -0
  182. package/skills/gsd-path-define/scripts/pipeline_state.py +2291 -0
  183. package/skills/gsd-path-define/scripts/state_checkpoint.py +1039 -0
  184. package/skills/gsd-path-define/scripts/state_promote.py +743 -0
  185. package/skills/gsd-path-define/templates/charter.md +50 -0
  186. package/skills/gsd-path-define/templates/intent.md +98 -0
  187. package/skills/gsd-path-define/templates/state.md +27 -0
  188. package/skills/gsd-path-discuss/SKILL.md +162 -0
  189. package/skills/gsd-path-discuss/agents/openai.yaml +6 -0
  190. package/skills/gsd-path-discuss/scripts/_common.py +180 -0
  191. package/skills/gsd-path-discuss/scripts/discussion_records.py +619 -0
  192. package/skills/gsd-path-discuss/templates/answers.md +29 -0
  193. package/skills/gsd-path-discuss/templates/dialogue.md +21 -0
  194. package/skills/gsd-path-docs-audit/SKILL.md +190 -0
  195. package/skills/gsd-path-docs-audit/agents/openai.yaml +6 -0
  196. package/skills/gsd-path-docs-audit/references/dispatch.md +131 -0
  197. package/skills/gsd-path-docs-audit/references/docs-auditor.md +60 -0
  198. package/skills/gsd-path-docs-audit/scripts/_common.py +180 -0
  199. package/skills/gsd-path-docs-audit/scripts/check_docs_audit.py +463 -0
  200. package/skills/gsd-path-docs-audit/scripts/check_handoffs.py +1855 -0
  201. package/skills/gsd-path-docs-audit/scripts/check_task_briefs.py +376 -0
  202. package/skills/gsd-path-docs-audit/scripts/discussion_records.py +619 -0
  203. package/skills/gsd-path-docs-audit/scripts/isolation.py +3538 -0
  204. package/skills/gsd-path-docs-audit/scripts/pipeline_git.py +940 -0
  205. package/skills/gsd-path-docs-audit/scripts/pipeline_state.py +2291 -0
  206. package/skills/gsd-path-docs-audit/scripts/state_checkpoint.py +1039 -0
  207. package/skills/gsd-path-docs-audit/scripts/state_promote.py +743 -0
  208. package/skills/gsd-path-docs-audit/templates/docs-audit.md +69 -0
  209. package/skills/gsd-path-forensics/SKILL.md +39 -0
  210. package/skills/gsd-path-forensics/agents/openai.yaml +6 -0
  211. package/skills/gsd-path-forensics/scripts/_common.py +180 -0
  212. package/skills/gsd-path-forensics/scripts/discussion_records.py +619 -0
  213. package/skills/gsd-path-forensics/scripts/pipeline_diagnose.py +715 -0
  214. package/skills/gsd-path-forensics/scripts/pipeline_undo.py +1039 -0
  215. package/skills/gsd-path-inspect/SKILL.md +167 -0
  216. package/skills/gsd-path-inspect/agents/openai.yaml +6 -0
  217. package/skills/gsd-path-inspect/references/codebase-mapper.md +52 -0
  218. package/skills/gsd-path-inspect/references/dispatch.md +131 -0
  219. package/skills/gsd-path-inspect/references/docs-auditor.md +60 -0
  220. package/skills/gsd-path-inspect/scripts/_common.py +180 -0
  221. package/skills/gsd-path-inspect/scripts/check_docs_audit.py +463 -0
  222. package/skills/gsd-path-inspect/scripts/check_handoffs.py +1855 -0
  223. package/skills/gsd-path-inspect/scripts/check_task_briefs.py +376 -0
  224. package/skills/gsd-path-inspect/scripts/detect_project.py +1517 -0
  225. package/skills/gsd-path-inspect/scripts/discussion_records.py +619 -0
  226. package/skills/gsd-path-inspect/scripts/isolation.py +3538 -0
  227. package/skills/gsd-path-inspect/scripts/pipeline_git.py +940 -0
  228. package/skills/gsd-path-inspect/scripts/pipeline_state.py +2291 -0
  229. package/skills/gsd-path-inspect/scripts/state_checkpoint.py +1039 -0
  230. package/skills/gsd-path-inspect/scripts/state_promote.py +743 -0
  231. package/skills/gsd-path-inspect/templates/codebase.md +46 -0
  232. package/skills/gsd-path-inspect/templates/docs-audit.md +69 -0
  233. package/skills/gsd-path-inspect/templates/state.md +27 -0
  234. package/skills/gsd-path-loop/SKILL.md +98 -0
  235. package/skills/gsd-path-loop/agents/openai.yaml +6 -0
  236. package/skills/gsd-path-loop/examples/ci-repair.LOOP.md +61 -0
  237. package/skills/gsd-path-loop/scripts/_common.py +180 -0
  238. package/skills/gsd-path-loop/scripts/discussion_records.py +619 -0
  239. package/skills/gsd-path-loop/scripts/loop_run.py +837 -0
  240. package/skills/gsd-path-loop/templates/loop.md +59 -0
  241. package/skills/gsd-path-migrate/SKILL.md +134 -0
  242. package/skills/gsd-path-migrate/agents/openai.yaml +6 -0
  243. package/skills/gsd-path-migrate/scripts/core_hook_gate.py +34 -0
  244. package/skills/gsd-path-migrate/scripts/core_hook_settings.py +119 -0
  245. package/skills/gsd-path-migrate/scripts/discussion_records.py +619 -0
  246. package/skills/gsd-path-migrate/scripts/migrate_core.py +169 -0
  247. package/skills/gsd-path-plan/SKILL.md +411 -0
  248. package/skills/gsd-path-plan/agents/openai.yaml +6 -0
  249. package/skills/gsd-path-plan/references/dispatch.md +131 -0
  250. package/skills/gsd-path-plan/references/planner.md +104 -0
  251. package/skills/gsd-path-plan/scripts/_common.py +180 -0
  252. package/skills/gsd-path-plan/scripts/check_handoffs.py +1855 -0
  253. package/skills/gsd-path-plan/scripts/check_task_briefs.py +376 -0
  254. package/skills/gsd-path-plan/scripts/discussion_records.py +619 -0
  255. package/skills/gsd-path-plan/scripts/isolation.py +3538 -0
  256. package/skills/gsd-path-plan/scripts/pipeline_git.py +940 -0
  257. package/skills/gsd-path-plan/scripts/pipeline_state.py +2291 -0
  258. package/skills/gsd-path-plan/scripts/review_panel.py +553 -0
  259. package/skills/gsd-path-plan/scripts/state_checkpoint.py +1039 -0
  260. package/skills/gsd-path-plan/scripts/state_promote.py +743 -0
  261. package/skills/gsd-path-plan/scripts/workflow_run.py +117 -0
  262. package/skills/gsd-path-plan/templates/patch-findings.md +16 -0
  263. package/skills/gsd-path-plan/templates/plan-panel.md +25 -0
  264. package/skills/gsd-path-plan/templates/plan.md +89 -0
  265. package/skills/gsd-path-plan/templates/task.md +74 -0
  266. package/skills/gsd-path-research/SKILL.md +159 -0
  267. package/skills/gsd-path-research/agents/openai.yaml +6 -0
  268. package/skills/gsd-path-research/references/dispatch.md +131 -0
  269. package/skills/gsd-path-research/references/researcher.md +42 -0
  270. package/skills/gsd-path-research/scripts/_common.py +180 -0
  271. package/skills/gsd-path-research/scripts/check_handoffs.py +1855 -0
  272. package/skills/gsd-path-research/scripts/check_task_briefs.py +376 -0
  273. package/skills/gsd-path-research/scripts/discussion_records.py +619 -0
  274. package/skills/gsd-path-research/scripts/isolation.py +3538 -0
  275. package/skills/gsd-path-research/scripts/pipeline_git.py +940 -0
  276. package/skills/gsd-path-research/scripts/pipeline_state.py +2291 -0
  277. package/skills/gsd-path-research/scripts/state_checkpoint.py +1039 -0
  278. package/skills/gsd-path-research/scripts/state_promote.py +743 -0
  279. package/skills/gsd-path-research/templates/evidence.md +24 -0
  280. package/skills/gsd-path-research/templates/research-handoff.md +25 -0
  281. package/skills/gsd-path-roadmap/SKILL.md +215 -0
  282. package/skills/gsd-path-roadmap/agents/openai.yaml +6 -0
  283. package/skills/gsd-path-roadmap/references/dispatch.md +131 -0
  284. package/skills/gsd-path-roadmap/references/roadmapper.md +48 -0
  285. package/skills/gsd-path-roadmap/scripts/_common.py +180 -0
  286. package/skills/gsd-path-roadmap/scripts/archive_milestone.py +2265 -0
  287. package/skills/gsd-path-roadmap/scripts/check_handoffs.py +1855 -0
  288. package/skills/gsd-path-roadmap/scripts/check_task_briefs.py +376 -0
  289. package/skills/gsd-path-roadmap/scripts/detect_project.py +1517 -0
  290. package/skills/gsd-path-roadmap/scripts/discussion_records.py +619 -0
  291. package/skills/gsd-path-roadmap/scripts/discussion_validate.py +1321 -0
  292. package/skills/gsd-path-roadmap/scripts/integration.py +1433 -0
  293. package/skills/gsd-path-roadmap/scripts/isolation.py +3538 -0
  294. package/skills/gsd-path-roadmap/scripts/pipeline_git.py +940 -0
  295. package/skills/gsd-path-roadmap/scripts/pipeline_state.py +2291 -0
  296. package/skills/gsd-path-roadmap/scripts/promote_lookahead.py +415 -0
  297. package/skills/gsd-path-roadmap/scripts/review_panel.py +553 -0
  298. package/skills/gsd-path-roadmap/scripts/state_checkpoint.py +1039 -0
  299. package/skills/gsd-path-roadmap/scripts/state_promote.py +743 -0
  300. package/skills/gsd-path-roadmap/templates/roadmap.md +38 -0
  301. package/skills/gsd-path-ship/SKILL.md +412 -0
  302. package/skills/gsd-path-ship/agents/openai.yaml +6 -0
  303. package/skills/gsd-path-ship/references/dispatch.md +131 -0
  304. package/skills/gsd-path-ship/references/reviewer.md +188 -0
  305. package/skills/gsd-path-ship/scripts/_common.py +180 -0
  306. package/skills/gsd-path-ship/scripts/archive_milestone.py +2265 -0
  307. package/skills/gsd-path-ship/scripts/build_state.py +854 -0
  308. package/skills/gsd-path-ship/scripts/check_handoffs.py +1855 -0
  309. package/skills/gsd-path-ship/scripts/check_task_briefs.py +376 -0
  310. package/skills/gsd-path-ship/scripts/discussion_records.py +619 -0
  311. package/skills/gsd-path-ship/scripts/discussion_validate.py +1321 -0
  312. package/skills/gsd-path-ship/scripts/integration.py +1433 -0
  313. package/skills/gsd-path-ship/scripts/isolation.py +3538 -0
  314. package/skills/gsd-path-ship/scripts/lean_verification.py +256 -0
  315. package/skills/gsd-path-ship/scripts/pipeline_git.py +940 -0
  316. package/skills/gsd-path-ship/scripts/pipeline_state.py +2291 -0
  317. package/skills/gsd-path-ship/scripts/review_panel.py +553 -0
  318. package/skills/gsd-path-ship/scripts/state_checkpoint.py +1039 -0
  319. package/skills/gsd-path-ship/scripts/state_promote.py +743 -0
  320. package/skills/gsd-path-ship/scripts/workflow_run.py +117 -0
  321. package/skills/gsd-path-ship/templates/archive-manifest.md +37 -0
  322. package/skills/gsd-path-ship/templates/final-review.md +27 -0
  323. package/skills/gsd-path-ship/templates/gap-review.md +20 -0
  324. package/skills/gsd-path-ship/templates/patch-findings.md +16 -0
  325. package/skills/gsd-path-ship/templates/wave-review.md +64 -0
  326. package/skills/gsd-path-undo/SKILL.md +45 -0
  327. package/skills/gsd-path-undo/agents/openai.yaml +6 -0
  328. package/skills/gsd-path-undo/scripts/_common.py +180 -0
  329. package/skills/gsd-path-undo/scripts/discussion_records.py +619 -0
  330. package/skills/gsd-path-undo/scripts/pipeline_undo.py +1039 -0
  331. package/skills/path/BUILD.md +700 -0
  332. package/skills/path/DECIDE.md +115 -0
  333. package/skills/path/DEFINE.md +297 -0
  334. package/skills/path/DOCS-AUDIT.md +190 -0
  335. package/skills/path/INSPECT.md +167 -0
  336. package/skills/path/PLAN.md +411 -0
  337. package/skills/path/RESEARCH.md +159 -0
  338. package/skills/path/ROADMAP.md +215 -0
  339. package/skills/path/SHIP.md +412 -0
  340. package/skills/path/SKILL.md +471 -0
  341. package/skills/path/agents/openai.yaml +6 -0
  342. package/skills/path/references/codebase-mapper.md +52 -0
  343. package/skills/path/references/coder.md +90 -0
  344. package/skills/path/references/decider.md +36 -0
  345. package/skills/path/references/dispatch.md +131 -0
  346. package/skills/path/references/docs-auditor.md +60 -0
  347. package/skills/path/references/planner.md +104 -0
  348. package/skills/path/references/researcher.md +42 -0
  349. package/skills/path/references/reviewer.md +188 -0
  350. package/skills/path/references/roadmapper.md +48 -0
  351. package/skills/path/scripts/_common.py +180 -0
  352. package/skills/path/scripts/archive_milestone.py +2265 -0
  353. package/skills/path/scripts/bootstrap_repository.py +710 -0
  354. package/skills/path/scripts/build_state.py +854 -0
  355. package/skills/path/scripts/check_docs_audit.py +463 -0
  356. package/skills/path/scripts/check_handoffs.py +1855 -0
  357. package/skills/path/scripts/check_task_briefs.py +376 -0
  358. package/skills/path/scripts/check_update.py +93 -0
  359. package/skills/path/scripts/detect_project.py +1517 -0
  360. package/skills/path/scripts/discussion_records.py +619 -0
  361. package/skills/path/scripts/discussion_validate.py +1321 -0
  362. package/skills/path/scripts/dispatch_driver.py +1812 -0
  363. package/skills/path/scripts/integration.py +1433 -0
  364. package/skills/path/scripts/isolation.py +3538 -0
  365. package/skills/path/scripts/lean_verification.py +256 -0
  366. package/skills/path/scripts/loop_run.py +837 -0
  367. package/skills/path/scripts/pipeline_git.py +940 -0
  368. package/skills/path/scripts/pipeline_state.py +2291 -0
  369. package/skills/path/scripts/promote_lookahead.py +415 -0
  370. package/skills/path/scripts/review_findings.py +714 -0
  371. package/skills/path/scripts/review_panel.py +553 -0
  372. package/skills/path/scripts/state_checkpoint.py +1039 -0
  373. package/skills/path/scripts/state_promote.py +743 -0
  374. package/skills/path/scripts/token_budget.py +146 -0
  375. package/skills/path/scripts/workflow_run.py +117 -0
  376. package/skills/path/templates/answers.md +29 -0
  377. package/skills/path/templates/archive-manifest.md +37 -0
  378. package/skills/path/templates/charter.md +50 -0
  379. package/skills/path/templates/codebase.md +46 -0
  380. package/skills/path/templates/dialogue.md +21 -0
  381. package/skills/path/templates/docs-audit.md +69 -0
  382. package/skills/path/templates/evidence.md +24 -0
  383. package/skills/path/templates/final-review.md +27 -0
  384. package/skills/path/templates/gap-review.md +20 -0
  385. package/skills/path/templates/intent.md +98 -0
  386. package/skills/path/templates/loop.md +59 -0
  387. package/skills/path/templates/patch-findings.md +16 -0
  388. package/skills/path/templates/plan-panel.md +25 -0
  389. package/skills/path/templates/plan.md +89 -0
  390. package/skills/path/templates/repository.md +16 -0
  391. package/skills/path/templates/research-handoff.md +25 -0
  392. package/skills/path/templates/roadmap.md +38 -0
  393. package/skills/path/templates/skeptic.md +36 -0
  394. package/skills/path/templates/state.md +27 -0
  395. package/skills/path/templates/synthesis.md +36 -0
  396. package/skills/path/templates/task.md +74 -0
  397. package/skills/path/templates/wave-panel.md +25 -0
  398. package/skills/path/templates/wave-review.md +64 -0
package/HOOKS.md ADDED
@@ -0,0 +1,273 @@
1
+ # HOOKS.md — Deterministic Guard Hooks
2
+
3
+ Optional enforcement for pipeline invariants prompt contracts cannot guarantee:
4
+
5
+ - committed `.project/archive/` trees stay read-only after ship
6
+ - destructive Git operations do not erase recovery state, untracked evidence,
7
+ or protected refs
8
+ - direct product-file writes do not bypass a routed non-build phase
9
+ - a milestone branch with its canonical ship commit accepts no further edits or commits,
10
+ even if STATE is later rewritten; writes are checked against the target worktree
11
+
12
+ Closed branches still allow read-only Git inspection (`status`, `log`, `diff`, plain
13
+ `cat-file` reads of one object, branch and worktree listing) and the router handoff helpers, including
14
+ `git fetch origin`, SHA resolution, and next-base selection. Branch switching remains
15
+ router-owned. The [ship contract](skills/gsd-path-ship/SKILL.md) owns integration
16
+ conflict handling and published-validation recovery.
17
+
18
+ `cat-file` options are restricted by `CLOSED_LISTING_GIT_OPTIONS` in
19
+ [`scripts/guard_hook.py`](scripts/guard_hook.py); filter and text-conversion forms
20
+ are blocked because they can execute external commands.
21
+
22
+ **Docs:** [DOCS.md](DOCS.md) (hub) · [UPDATE.md](UPDATE.md) (refresh hooks) · [QUICK.md](QUICK.md) (first install with `--hooks`)
23
+
24
+ ## When to install
25
+
26
+ | Situation | Recommendation |
27
+ | --- | --- |
28
+ | New repo running GSD Path with shipped archives | **Recommended** with `--project --hooks` |
29
+ | Solo experiment / no ship yet | Optional |
30
+ | Zed-only workflow | Git hooks still help; no pre-tool-use layer |
31
+ | Already shipped milestones you must not corrupt | **Recommended** |
32
+
33
+ Hooks are **opt-in** — add `--hooks` to a `--project` install. They do not replace
34
+ careful review; they block common accidental violations.
35
+
36
+ ## Install
37
+
38
+ ```bash
39
+ npx @opengsd/gsd-path --claude --project /path/to/repo --hooks
40
+ # or from clone:
41
+ node scripts/install.mjs --claude --project /path/to/repo --hooks
42
+ ```
43
+
44
+ For a project that already has `AGENTS.md` and `WORKFLOW.md`, initialize only
45
+ the guards and keep those contracts unchanged:
46
+
47
+ ```bash
48
+ npx @opengsd/gsd-path --hooks-init --claude --project /path/to/repo
49
+ ```
50
+
51
+ `--hooks` requires `--project`. Valid existing native settings for explicitly
52
+ selected Claude, Codex, or Cursor hosts are merged, preserving unrelated
53
+ settings and hooks. Other target files are refused if they already exist.
54
+
55
+ `--hooks-init` also requires `--project` plus at least one host flag or `--all`.
56
+ It creates the managed guard scripts, merges selected native settings, and
57
+ installs Git hooks without reading or writing existing project contracts.
58
+ Native configs for unselected hosts are ignored.
59
+
60
+ | File | Purpose |
61
+ | --- | --- |
62
+ | `.gsd-path/guard_hook.py` | Pre-tool-use guard (stdin JSON → exit 2 + denial JSON) |
63
+ | `.gsd-path/git_guard.py` | Commit and publication validator |
64
+ | `.gsd-path/runtime/` | Project-local pipeline helpers, including the read-only status engine |
65
+ | `.git/hooks/pre-commit` | Runs `git_guard.py` before commit |
66
+ | `.git/hooks/commit-msg` | Runs `git_guard.py` with commit message |
67
+ | `.git/hooks/pre-push` | Runs `git_guard.py` on every pushed ref update |
68
+ | `.claude/settings.json` | Claude PreToolUse wiring (`claude` target) |
69
+ | `.codex/hooks.json` | Codex PreToolUse wiring (`codex` target) |
70
+ | `.cursor/hooks.json` | Cursor fail-closed preToolUse wiring (`cursor` target) |
71
+
72
+ Git hooks are written to the repository's **effective** hooks directory,
73
+ resolved with `git rev-parse --git-path hooks`. That honors `core.hooksPath`
74
+ setups (Husky and friends) and linked worktrees (where `.git` is a file).
75
+ Every selected host requires an initialized repository with a resolvable hooks
76
+ directory; otherwise installation stops before writing.
77
+
78
+ Git hooks work for **any** agent that commits. Native guard wiring denies a tool
79
+ call when its event is malformed or the guard cannot validate it.
80
+
81
+ Codex [project hooks](https://learn.chatgpt.com/docs/hooks) are installed but do
82
+ not run until Codex trusts the project `.codex/` layer and the exact hook
83
+ definition. Open `/hooks` in Codex, review both, and trust them. Until that
84
+ manual activation is complete, Codex's guaranteed manifest tier is `git-only`;
85
+ changing the hook requires review again.
86
+
87
+ **Windows / interpreter caveat:** hooks and native host settings invoke a
88
+ Python interpreter that the installer probes at install time — `python3` first,
89
+ then `python` (plain `python3` usually does not exist on Windows). If neither
90
+ runs, hook installation stops before writing instead of pinning a missing
91
+ interpreter. The `sh` hook scripts themselves need a POSIX shell (Git for
92
+ Windows provides one).
93
+
94
+ ### Updating after package upgrade
95
+
96
+ ```bash
97
+ npx @opengsd/gsd-path --hooks-refresh --project /path/to/repo
98
+ npx @opengsd/gsd-path --hooks-refresh-full --project /path/to/repo # + settings/git hooks
99
+ ```
100
+
101
+ `--hooks-refresh-full` refreshes existing managed `.claude/settings.json`,
102
+ `.codex/hooks.json`, and `.cursor/hooks.json`. Add `--claude`, `--codex`, or
103
+ `--cursor` to create a missing config or merge the guard into that selected
104
+ host's valid existing JSON. Unselected foreign configs are not changed. The
105
+ merge replaces only managed guard entries and preserves unrelated entries,
106
+ hook events, and settings. Codex resolves the guard from the Git root; Cursor
107
+ runs its project hook from the project root, so both configs remain valid after
108
+ a clone or move. A full refresh requires the same working interpreter and
109
+ resolved Git hooks directory as the initial install.
110
+
111
+ See [UPDATE.md](UPDATE.md).
112
+
113
+ ## What gets blocked
114
+
115
+ **`guard_hook.py`** (pre-tool-use):
116
+
117
+ - non-read tool actions targeting archived paths or an existing ancestor of
118
+ the archive tree; shell operands count an ancestor only for deletion or move
119
+ commands
120
+ - `git reset --hard`, destructive `git clean` modes, force pushes (including
121
+ `+` refspecs), destructive branch or ref deletion, `git branch -m`,
122
+ `git worktree remove --force`, `git stash drop`/`clear`, and whole-tree
123
+ `git checkout -- .`/`git restore .`
124
+ - shell writes (redirections, `tee`, `cp`, `mv`, `rm`, `sed -i`, ...) that
125
+ target a routing control (`.git`, `.project/STATE.md`, `.project/next`,
126
+ `.gsd-path`) while `.project/STATE.md` exists
127
+ - repeated assignments to the same shell variable within one command; split
128
+ these into separate tool calls so write targets can be resolved
129
+ - copies whose destinations, including nested recursive-copy entries, resolve
130
+ into closed worktrees. Copy sources remain read-only inputs; ordinary safe
131
+ recursive copies are allowed. Supported variables are expanded before
132
+ destinations are derived, including contents-copy forms ending in `/.` or
133
+ `/`. Both lexical entries and resolved targets are checked. Unresolved copy
134
+ operands, unreadable source trees, directory sources that are symlinks, and
135
+ source trees containing directory symlinks are denied; use literal directory
136
+ paths and copy directory links separately
137
+ - shell commands that reference the archive unless the whole command is a
138
+ recognized standalone read or a single-command invocation of the bundled
139
+ `pipeline_state.py` / `archive_milestone.py` helper, resolved to a regular file
140
+ inside the guard-owned `.gsd-path/runtime/` directory (beside `guard_hook.py`
141
+ in the repository layout), using exactly `python` or `python3` with optional
142
+ `-B`; non-empty supplied tool working directories are authoritative. Empty
143
+ strings, including list items, are treated as absent: nested payloads inherit
144
+ their parent context, with the process cwd used when no directory is supplied.
145
+ The helper exception refuses chains, pipes,
146
+ wrappers, substitutions, redirections, and any newline, carriage return, or
147
+ backslash in the command text. The parsed script path must contain no `$`,
148
+ backticks, glob characters (`*`, `?`, `[`, `]`), braces, or `..` path components,
149
+ and must not start with `~`. Quoted spaces in paths and quoted punctuation
150
+ within arguments, such as the shipment event's semicolon, are allowed
151
+ - deletion or move commands outside a single simple segment, including command
152
+ chains, pipes, newlines, grouping, directory changes, and command substitution
153
+ - deletion or move commands with any argument outside the literal-path character
154
+ set: ASCII letters, digits, `.`, `_`, `-`, and `/` (plus a drive prefix and
155
+ backslashes on Windows). One matching pair of surrounding quotes is allowed;
156
+ spaces, parameters, wildcards, braces, and tilde paths are denied even when
157
+ quoted. This also applies to `find -delete` and supported destructive aliases
158
+ - destructive Git commands nested in supported shell and command wrappers
159
+ - archive glob/brace expansions and execution-capable read options such as
160
+ `rg --pre`
161
+ - direct write, edit, and patch tool calls targeting `.project/STATE.md`,
162
+ `.project/next/STATE.md`, their protected parent directories, or `.gsd-path/`;
163
+ product-file calls also require the deterministic build route, including
164
+ helper-proven parallel task worktrees
165
+
166
+ Read tools (`Read`, `Grep`, `View`, …) may still open archive paths.
167
+
168
+ A working directory is archive context only when it is inside an archive.
169
+ Merely containing `.project/archive/` does not put the repository root in
170
+ archive context: `echo guard-probe`, `python3 -m unittest`, and the archive
171
+ helper with `--repo <root>` remain allowed by the archive guard. Deleting an
172
+ archive ancestor, such as `rm -rf .project`, remains blocked. A simple command
173
+ such as `rm -rf scratch` passes the archive check; other guard rules still apply.
174
+
175
+ **`git_guard.py`** (pre-commit + commit-msg + pre-push):
176
+
177
+ - modifies, deletes, or renames away tracked archive paths
178
+ - `ship:` commits (case-insensitive) staging paths outside `.project/`
179
+ - on unshipped pipeline lineage (the committed `STATE.md` names a bound
180
+ `gsd-path/M###` branch that is not `shipped/done`, and HEAD descends from
181
+ it — the bound branch itself, `gsd-path-task/` branches, sidecars, and any
182
+ branch cut from them): commits staging paths outside `.project/` (or the
183
+ guard's own `.gsd-path/` and native hook settings) unless the phase is
184
+ `build` and they are landing commits as `isolation.py land` writes them —
185
+ subject `<task id>: <task title>` matching the task file at `Base:`, a full
186
+ base SHA HEAD descends from, the staged task file, only that task's declared
187
+ `files:`, and a `Files:` list of exactly the staged paths. Outside build the
188
+ reviewed HEAD is frozen; product fixes reopen through the patch plan
189
+ - pushes (to any remote) that move a `gsd-path/M###` ref anywhere but its
190
+ strict ship commit, or delete it while it holds anything else; and pushes of
191
+ any other ref whose commit carries a `STATE.md` that still owes a ship commit
192
+ (names a bound branch, not `shipped/done`). The ship state's `branch` must
193
+ match every bound name in the local and remote refs. Malformed pre-push
194
+ records and failed object inspection block the push; a present commit
195
+ without `STATE.md` passes on an ordinary ref. An absent bound ref passes
196
+ deletion. The authorized publisher is `archive_milestone.py integrate`;
197
+ the hook checks ref updates, not which client initiated them
198
+ - **allows** adding files to archive during the ship transaction, before the
199
+ branch closes
200
+
201
+ These local hooks cover pushes made by plain Git and clients that invoke
202
+ Git with hooks enabled. Creating a PR from an already published ref does not
203
+ run the pre-push hook. A branch cut from `main` carrying `shipped/done` passes;
204
+ if `main` instead carries an unshipped bound state, pushes of branches carrying
205
+ that state remain blocked until the milestone records are repaired through the
206
+ pipeline.
207
+
208
+ ## GitHub-side gate
209
+
210
+ The guards above stop agents on the developer machine. A person can still
211
+ merge a pull request from a bound branch in the GitHub UI. To surface that on
212
+ the pull request, add a job to the consumer repository's pull-request workflow
213
+ that fails unless a `gsd-path/M*` head is the ship commit at `shipped/done`:
214
+
215
+ ```yaml
216
+ gsd-path-ship-gate:
217
+ if: startsWith(github.head_ref, 'gsd-path/M')
218
+ runs-on: ubuntu-latest
219
+ steps:
220
+ - uses: actions/checkout@v4
221
+ with:
222
+ ref: ${{ github.event.pull_request.head.sha }}
223
+ - run: |
224
+ gsd_phase=$(sed -n 's/^phase: *\([a-z]*\).*/\1/p' .project/STATE.md | head -1)
225
+ gsd_status=$(sed -n 's/^status: *\([a-z]*\).*/\1/p' .project/STATE.md | head -1)
226
+ state="$gsd_phase/$gsd_status"
227
+ subject=$(git log -1 --format=%s)
228
+ case "$subject" in "ship: M"*) ship=1 ;; *) ship=0 ;; esac
229
+ [ "$state" = shipped/done ] && [ "$ship" = 1 ] && exit 0
230
+ echo "::error::gsd-path: head is $state with subject '$subject'; a gsd-path/M* branch reaches main only through archive_milestone.py integrate"
231
+ exit 1
232
+ ```
233
+
234
+ The job is advisory until branch protection or a ruleset requires it, which
235
+ GitHub offers on public repositories and paid plans.
236
+
237
+ ## Wire other hosts
238
+
239
+ Claude, Codex, and Cursor wiring is installed automatically when that target is
240
+ selected. The installer does **not** install a native guard for any other host,
241
+ even where the host has a pre-tool-use API: those hosts are `git-only` in the
242
+ manifest and stay `git-only` after manual wiring, because the installer neither
243
+ writes nor verifies that wiring. To add it yourself, register
244
+ `python3 .gsd-path/guard_hook.py` as a pre-tool-use hook:
245
+
246
+ | Host | Where | Docs |
247
+ | --- | --- | --- |
248
+ | Copilot CLI | `.github/hooks/*.json` `preToolUse` | [Copilot hooks](https://docs.github.com/en/copilot/concepts/agents/hooks) |
249
+ | Grok | reads `.claude/settings.json` — covered if Claude wiring installed | [Grok hooks](https://docs.x.ai/build/features/hooks) |
250
+ | Qwen Code | `.qwen/settings.json` `PreToolUse` | [Qwen hooks](https://qwenlm.github.io/qwen-code-docs/en/users/features/hooks/) |
251
+ | Kimi CLI | `~/.kimi-code/config.toml` `PreToolUse` | [Kimi hooks](https://moonshotai.github.io/kimi-code/en/customization/hooks.html) |
252
+ | Kiro CLI | agent config `preToolUse` | [Kiro hooks](https://kiro.dev/docs/cli/hooks/) |
253
+ | Antigravity | `.agents/hooks.json` `PreToolUse` | [Antigravity hooks](https://antigravity.google/docs/hooks) |
254
+ | OpenCode | JS plugin `tool.execute.before` | [OpenCode plugins](https://opencode.ai/docs/plugins/) |
255
+ | Zed | no hook API — git hooks only | — |
256
+
257
+ **Caveats:** The hook cannot prove which skill initiated a shell command or a
258
+ build-phase edit, so AGENTS.md owns those re-entry cases. Grok and Kimi
259
+ fail-open on hook errors by design. Copilot, Kimi, Kiro, and Antigravity may
260
+ not intercept subagent tools — treat coverage as orchestrator-level.
261
+
262
+ ## Troubleshooting
263
+
264
+ | Symptom | Likely cause |
265
+ | --- | --- |
266
+ | Commit blocked on archive edit | Expected — ship adds to archive; edits after ship are forbidden |
267
+ | `ship:` commit blocked with `app.py` staged | Ship commits may only touch `.project/` |
268
+ | Tool denied editing archive | Pre-tool guard — use active paths, not archive |
269
+ | Hook not running in Cursor | Run `--hooks-refresh-full --cursor --project /path/to/repo` |
270
+ | `--hooks-refresh` rejects an unmanaged guard | Move the foreign guard aside, then rerun refresh; use `--hooks-init` if guards are wanted |
271
+ | `--hooks-refresh` rejects an unmanaged runtime file | Back up or merge that file, move it aside, then rerun refresh |
272
+
273
+ More: [DOCS.md](DOCS.md#help) · [UPDATE.md](UPDATE.md)
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 GSD Path contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/MIGRATE.md ADDED
@@ -0,0 +1,100 @@
1
+ # Move from GSD Core to GSD Path
2
+
3
+ Use `gsd-path-migrate` to preserve an existing Core project's context and
4
+ unfinished work, review hook conflicts, then enter Path through inspect and
5
+ define. The first release covers Claude Code and Codex, with either plugin or
6
+ standalone skill installations.
7
+
8
+ Both products can stay installed. Migration changes which product governs the
9
+ selected project. Core history stays in `.planning/`; Path creates its own
10
+ `.project/` state through the normal router. Core phase positions and completed
11
+ plans do not become passed Path gates.
12
+
13
+ ## Start
14
+
15
+ Install or update GSD Path using [the install guide](QUICK.md). In the Core
16
+ project, stop active Core work and invoke the migration skill:
17
+
18
+ ```text
19
+ $gsd-path-migrate
20
+ ```
21
+
22
+ On Claude Code, use the installed `gsd-path-migrate` slash command. Give the
23
+ skill the project path and whether Core came from a plugin or standalone skills.
24
+ The skill prepares an external bundle, so it does not dirty the source project
25
+ before Path's branch binding. Do not delete `.planning/` to suppress hooks.
26
+ Preserve any uncommitted work and reach a clean Git baseline using your normal
27
+ commit/stash workflow before binding. Migration does not discard pending edits.
28
+
29
+ The bundle contains an exact file copy, a hash manifest, and a reviewed
30
+ `IMPORT.md`. The import carries context, constraints, exclusions, decisions,
31
+ unfinished requirements and plan outcomes, with source references. Completed
32
+ summaries remain historical evidence. Contradictions and missing information
33
+ become explicit questions for you.
34
+
35
+ ## Keep both installations
36
+
37
+ | Installation | Project cutover |
38
+ | --- | --- |
39
+ | Claude Code plugin | Disable the exact Core plugin identifier at local scope, then reload/restart and verify effective state. |
40
+ | Codex plugin | Set the exact Core plugin identifier's `enabled` value to `false` in trusted project configuration, then restart and verify effective state. |
41
+ | Standalone command hooks | Review each Core hook registration. Use the bundled settings helper to gate only that command for the migrated root. Other projects retain the original command. |
42
+
43
+ Claude example, using the identifier shown by `claude plugin list --json`:
44
+
45
+ ```sh
46
+ claude plugin disable '<core-plugin>@<marketplace>' --scope local
47
+ ```
48
+
49
+ Codex example in the project's `.codex/config.toml`, merging into any existing
50
+ table for that identifier rather than adding a duplicate:
51
+
52
+ ```toml
53
+ [plugins."<core-plugin>@<marketplace>"]
54
+ enabled = false
55
+ ```
56
+
57
+ Check with the host's native plugin list in both the migrated project and a
58
+ separate Core project. Managed/workspace policy may prevent local overrides;
59
+ the skill reports that conflict instead of claiming migration is safe.
60
+ These controls are documented in
61
+ [Claude's plugin reference](https://code.claude.com/docs/en/plugins-reference)
62
+ and [Codex's configuration reference](https://learn.chatgpt.com/docs/config-file/config-reference).
63
+
64
+ Plugin disabling does not remove separately installed hooks or skills. Review
65
+ user, project and local settings, status-line commands and inherited instruction
66
+ files. Preserve project-specific rules. Replace Core-only workflow routing with
67
+ Path's installed contracts; keep a copy and record every removed Core instruction
68
+ in the import. Continue using the explicit Path skill names in migrated projects.
69
+
70
+ ## Review and rollback
71
+
72
+ The standalone settings helper prepares a private receipt before writing. It
73
+ records the exact selected command and original file bytes. After review, apply
74
+ the receipt; restore it to roll back. Changes made since the receipt was prepared
75
+ block application or restoration. With several changes to one settings file,
76
+ apply each before preparing the next and restore in reverse order. Close host
77
+ sessions and settings editors during these writes.
78
+
79
+ Keep both the installed helper path and its planning-time Python interpreter
80
+ available while hook settings reference them. Restore every receipt before
81
+ uninstalling/moving Path or deleting that interpreter or its virtual environment.
82
+ For symlink-managed settings, pass the resolved real file path to the helper;
83
+ it deliberately refuses symlink paths and files with multiple hard links. Each
84
+ separate migrated worktree needs its own scope. A missing or unclear event `cwd`
85
+ keeps the original Core hook active. Only Claude Code and Codex command-hook
86
+ protocols are covered; other hosts require separate verification.
87
+
88
+ Review `IMPORT.md` before handing it to `$gsd-path`. Path inspects the code,
89
+ checks the supplied evidence, and asks you to approve intent. Every remaining
90
+ Core outcome must appear in that intent or have an explicit disposition from
91
+ you. Keep the bundle available for the handoff. When inspect finishes, invoke
92
+ define with the absolute IMPORT.md path again, using the command saved in its
93
+ Handoff section. This is required in a fresh session too: the router does not
94
+ carry the external path into define automatically. Define records the source
95
+ path in its intent draft. The skill does not approve,
96
+ build, ship, or publish your project on your behalf.
97
+
98
+ Preparation and hook-command tests do not prove every installed host policy.
99
+ The skill requires effective-state and hook checks in your target environment
100
+ before declaring cutover complete.
package/QUICK.md ADDED
@@ -0,0 +1,146 @@
1
+ # GSD Path — Quick Start
2
+
3
+ **~5 minutes to installed and running.**
4
+
5
+ | More | Doc |
6
+ | --- | --- |
7
+ | Hub (install · use · understand · update) | [DOCS.md](DOCS.md) |
8
+ | Full walkthrough | [FULL.md](FULL.md) |
9
+ | Upgrading | [UPDATE.md](UPDATE.md) |
10
+
11
+ ## What you get
12
+
13
+ One router skill drives a gated pipeline: inspect → define → research → decide →
14
+ plan → build → ship. Every handoff lives in `.project/` so any session can resume from disk.
15
+
16
+ **Hosts:** Codex, Claude Code, Grok, OpenCode, Copilot CLI, Qwen, Antigravity,
17
+ Cursor, Zed, Kiro, Kimi Code.
18
+
19
+ ---
20
+
21
+ ## Checklist
22
+
23
+ ```text
24
+ [ ] 1. Install skills (step 1)
25
+ [ ] 2. Install project rules in your repo (step 2) — skip if repo already has AGENTS.md
26
+ [ ] 3. Restart agent session
27
+ [ ] 4. Open repo in agent; invoke router (step 3)
28
+ [ ] 5. Approve gates as they appear (step 4)
29
+ ```
30
+
31
+ ---
32
+
33
+ ## 1. Install skills
34
+
35
+ **Node 18.17+. Project installs in step 2 also require Python 3.9+.** Preview
36
+ first (never writes files):
37
+
38
+ ```bash
39
+ # From a clone of this repository (primary path)
40
+ node scripts/install.mjs --all --dry-run
41
+ node scripts/install.mjs --all
42
+
43
+ # From npm, no clone — once the package is published to npm
44
+ npx @opengsd/gsd-path --all --dry-run
45
+ npx @opengsd/gsd-path --all
46
+ ```
47
+
48
+ Only hosts you use:
49
+
50
+ ```bash
51
+ node scripts/install.mjs --claude --cursor
52
+ ```
53
+
54
+ Team pins skills in the repo? See [DOCS.md — Installing](DOCS.md#installing) (`--local`).
55
+
56
+ ---
57
+
58
+ ## 2. Install project rules
59
+
60
+ From your repo:
61
+
62
+ ```bash
63
+ cd /path/to/your/repo
64
+ node scripts/install.mjs --all --project "$(pwd)"
65
+ ```
66
+
67
+ Installs `AGENTS.md`, `WORKFLOW.md`, and `.gsd-path/runtime/`
68
+ (+ `.claude/CLAUDE.md` if Claude is selected).
69
+ If those managed files already exist, a plain install **refuses and installs
70
+ nothing** — use `--update --project PATH` to refresh skills and `.gsd-path/`
71
+ while keeping your contracts, and merge project-contract changes by hand
72
+ ([UPDATE.md](UPDATE.md)).
73
+
74
+ **Optional** archive/git guards:
75
+
76
+ ```bash
77
+ node scripts/install.mjs --claude --project "$(pwd)" --hooks
78
+ ```
79
+
80
+ [HOOKS.md](HOOKS.md)
81
+
82
+ ---
83
+
84
+ ## 3. Invoke the router
85
+
86
+ In the **project directory**, type explicitly:
87
+
88
+ Use the [router and phase invocation table](README.md#install-summary) for your host.
89
+
90
+ “Continue the project” does not advance a phase. With an owned
91
+ `.project/STATE.md` it reports the current handoff and next skill, read-only.
92
+
93
+ **One phase only?** e.g. `/gsd-path-plan` — see skill table in [DOCS.md](DOCS.md#using).
94
+ Need to talk through a question without advancing? Use `/gsd-path-discuss`;
95
+ Codex invokes it as `$gsd-path-discuss`.
96
+
97
+ ---
98
+
99
+ ## 4. Approve gates
100
+
101
+ | When | You |
102
+ | --- | --- |
103
+ | Define | Answer; approve playback |
104
+ | Decide | Resolve `NEEDS-USER` |
105
+ | Plan | **Approve wave summary** before build |
106
+ | Build | Escalations only |
107
+ | Ship | Approve patch waves if blocked; approve archive and ship when green |
108
+
109
+ ---
110
+
111
+ ## 5. Resume
112
+
113
+ Invoke the router again. Don’t hand-edit `.project/` mid-run.
114
+
115
+ ---
116
+
117
+ ## Later
118
+
119
+ ```bash
120
+ node scripts/install.mjs --update # refresh skills
121
+ node scripts/install.mjs --update --project "$(pwd)" # refresh .gsd-path/; keeps contracts
122
+ node scripts/install.mjs --hooks-refresh --project "$(pwd)" # guard scripts
123
+ ```
124
+
125
+ [UPDATE.md](UPDATE.md)
126
+
127
+ ---
128
+
129
+ ## Phase map
130
+
131
+ ```text
132
+ inspect (brownfield) → define → research → decide → plan → build → ship
133
+ ```
134
+
135
+ Artifacts: [README.md](README.md#handoff-contract)
136
+
137
+ ---
138
+
139
+ ## Quick troubleshooting
140
+
141
+ | Issue | Fix |
142
+ | --- | --- |
143
+ | Skills missing | Restart agent session |
144
+ | Router idle or plain prompt only reports status | Use `$gsd-path` or `/gsd-path` explicitly |
145
+ | Install failed | Read error; try `--dry-run` |
146
+ | Need more detail | [DOCS.md](DOCS.md) or [FULL.md](FULL.md) |