@opengsd/gsd-path 1.0.0 → 1.2.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 (498) hide show
  1. package/AGENTS.md +33 -13
  2. package/CHANGELOG.md +68 -0
  3. package/DOCS.md +75 -6
  4. package/FULL.md +12 -15
  5. package/HOOKS.md +18 -9
  6. package/QUICK.md +8 -6
  7. package/README.md +218 -14
  8. package/RUNTIME.md +16 -5
  9. package/UPDATE.md +30 -11
  10. package/WORKFLOW.md +35 -16
  11. package/package.json +23 -1
  12. package/platforms/claude/dispatch.md +4 -4
  13. package/platforms/copilot/dispatch.md +4 -4
  14. package/platforms/cursor/dispatch.md +5 -10
  15. package/platforms/grok/dispatch.md +4 -6
  16. package/platforms/kimi/dispatch.md +4 -4
  17. package/platforms/kiro/dispatch.md +4 -6
  18. package/platforms/opencode/dispatch.md +4 -4
  19. package/platforms/qwen/dispatch.md +4 -4
  20. package/platforms/shared-agents/dispatch.md +12 -19
  21. package/scripts/_common.py +5 -0
  22. package/scripts/archive_milestone.py +30 -124
  23. package/scripts/bootstrap_repository.py +33 -4
  24. package/scripts/build_recovery.py +292 -0
  25. package/scripts/build_state.py +2 -0
  26. package/scripts/check_docs_audit.py +7 -3
  27. package/scripts/check_handoffs.py +7 -1
  28. package/scripts/check_task_briefs.py +3 -0
  29. package/scripts/detect_project.py +22 -3
  30. package/scripts/discussion_records.py +3 -0
  31. package/scripts/discussion_validate.py +8 -3
  32. package/scripts/dispatch_driver.py +233 -22
  33. package/scripts/git_guard.py +14 -5
  34. package/scripts/guard_hook.py +11 -1
  35. package/scripts/install.mjs +54 -1448
  36. package/scripts/install.py +155 -188
  37. package/scripts/integration.py +54 -28
  38. package/scripts/isolation.py +24 -6
  39. package/scripts/jev_review.py +138 -0
  40. package/scripts/lean_verification.py +3 -1
  41. package/scripts/loop_run.py +2 -0
  42. package/scripts/model_policy.py +279 -0
  43. package/scripts/path_config.py +248 -0
  44. package/scripts/pipeline_diagnose.py +15 -3
  45. package/scripts/pipeline_git.py +3 -0
  46. package/scripts/pipeline_state.py +117 -186
  47. package/scripts/pipeline_undo.py +14 -7
  48. package/scripts/promote_lookahead.py +33 -162
  49. package/scripts/review_panel.py +11 -0
  50. package/scripts/roadmap.py +326 -0
  51. package/scripts/runtime_store.py +278 -0
  52. package/scripts/skill-resources.json +182 -4
  53. package/scripts/state_checkpoint.py +114 -72
  54. package/scripts/state_promote.py +47 -44
  55. package/scripts/status_runtime.py +92 -6
  56. package/scripts/task_context.py +73 -0
  57. package/scripts/token_budget.py +40 -1
  58. package/scripts/workflow_run.py +128 -8
  59. package/scripts/worktree_paths.py +94 -0
  60. package/skills/gsd-path/BUILD.md +54 -575
  61. package/skills/gsd-path/DECIDE.md +4 -6
  62. package/skills/gsd-path/DEFINE.md +23 -21
  63. package/skills/gsd-path/DOCS-AUDIT.md +2 -0
  64. package/skills/gsd-path/INSPECT.md +32 -8
  65. package/skills/gsd-path/PLAN.md +29 -19
  66. package/skills/gsd-path/RESEARCH.md +5 -6
  67. package/skills/gsd-path/ROADMAP.md +24 -58
  68. package/skills/gsd-path/SHIP.md +29 -17
  69. package/skills/gsd-path/SKILL.md +46 -22
  70. package/skills/gsd-path/references/build-abandon.md +33 -0
  71. package/skills/gsd-path/references/build-native.md +502 -0
  72. package/skills/gsd-path/references/build-recovery.md +78 -0
  73. package/skills/gsd-path/references/coder.md +8 -3
  74. package/skills/gsd-path/references/config.md +57 -0
  75. package/skills/gsd-path/references/dispatch.md +12 -19
  76. package/skills/gsd-path/references/docs-auditor.md +14 -0
  77. package/skills/gsd-path/references/jev-review.md +82 -0
  78. package/skills/gsd-path/references/model-policy.md +139 -0
  79. package/skills/gsd-path/references/reviewer-final.md +21 -0
  80. package/skills/gsd-path/references/reviewer-panel.md +17 -0
  81. package/skills/gsd-path/references/reviewer-skeptic.md +20 -0
  82. package/skills/gsd-path/references/reviewer-wave.md +89 -0
  83. package/skills/gsd-path/references/reviewer.md +12 -148
  84. package/skills/gsd-path/references/runtime-selection.md +25 -0
  85. package/skills/gsd-path/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  86. package/skills/gsd-path/scripts/__pycache__/check_handoffs.cpython-312.pyc +0 -0
  87. package/skills/gsd-path/scripts/_common.py +5 -0
  88. package/skills/gsd-path/scripts/archive_milestone.py +30 -124
  89. package/skills/gsd-path/scripts/bootstrap_repository.py +33 -4
  90. package/skills/gsd-path/scripts/build_recovery.py +292 -0
  91. package/skills/gsd-path/scripts/build_state.py +2 -0
  92. package/skills/gsd-path/scripts/check_docs_audit.py +7 -3
  93. package/skills/gsd-path/scripts/check_handoffs.py +7 -1
  94. package/skills/gsd-path/scripts/check_task_briefs.py +3 -0
  95. package/skills/gsd-path/scripts/detect_project.py +22 -3
  96. package/skills/gsd-path/scripts/discussion_records.py +3 -0
  97. package/skills/gsd-path/scripts/discussion_validate.py +8 -3
  98. package/skills/gsd-path/scripts/dispatch_driver.py +233 -22
  99. package/skills/gsd-path/scripts/git_guard.py +768 -0
  100. package/skills/gsd-path/scripts/integration.py +54 -28
  101. package/skills/gsd-path/scripts/isolation.py +24 -6
  102. package/skills/gsd-path/scripts/jev_review.py +138 -0
  103. package/skills/gsd-path/scripts/lean_verification.py +3 -1
  104. package/skills/gsd-path/scripts/loop_run.py +2 -0
  105. package/skills/gsd-path/scripts/model_policy.py +279 -0
  106. package/skills/gsd-path/scripts/path_config.py +248 -0
  107. package/skills/gsd-path/scripts/pipeline_git.py +3 -0
  108. package/skills/gsd-path/scripts/pipeline_state.py +117 -186
  109. package/skills/gsd-path/scripts/promote_lookahead.py +33 -162
  110. package/skills/gsd-path/scripts/review_panel.py +11 -0
  111. package/skills/gsd-path/scripts/roadmap.py +326 -0
  112. package/skills/gsd-path/scripts/state_checkpoint.py +114 -72
  113. package/skills/gsd-path/scripts/state_promote.py +47 -44
  114. package/skills/gsd-path/scripts/status_runtime.py +208 -0
  115. package/skills/gsd-path/scripts/task_context.py +73 -0
  116. package/skills/gsd-path/scripts/token_budget.py +40 -1
  117. package/skills/gsd-path/scripts/workflow_run.py +128 -8
  118. package/skills/gsd-path/scripts/worktree_paths.py +94 -0
  119. package/skills/gsd-path/templates/skeptic.md +1 -1
  120. package/skills/gsd-path/templates/task.md +2 -0
  121. package/skills/gsd-path/templates/wave-panel.md +1 -1
  122. package/skills/gsd-path/templates/wave-review.md +1 -1
  123. package/skills/gsd-path-build/SKILL.md +54 -575
  124. package/skills/gsd-path-build/references/build-abandon.md +33 -0
  125. package/skills/gsd-path-build/references/build-native.md +502 -0
  126. package/skills/gsd-path-build/references/build-recovery.md +78 -0
  127. package/skills/gsd-path-build/references/coder.md +8 -3
  128. package/skills/gsd-path-build/references/dispatch.md +12 -19
  129. package/skills/gsd-path-build/references/jev-review.md +82 -0
  130. package/skills/gsd-path-build/references/model-policy.md +139 -0
  131. package/skills/gsd-path-build/references/reviewer-final.md +21 -0
  132. package/skills/gsd-path-build/references/reviewer-panel.md +17 -0
  133. package/skills/gsd-path-build/references/reviewer-skeptic.md +20 -0
  134. package/skills/gsd-path-build/references/reviewer-wave.md +89 -0
  135. package/skills/gsd-path-build/references/reviewer.md +12 -148
  136. package/skills/gsd-path-build/references/runtime-selection.md +25 -0
  137. package/skills/gsd-path-build/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  138. package/skills/gsd-path-build/scripts/__pycache__/check_handoffs.cpython-312.pyc +0 -0
  139. package/skills/gsd-path-build/scripts/_common.py +5 -0
  140. package/skills/gsd-path-build/scripts/archive_milestone.py +30 -124
  141. package/skills/gsd-path-build/scripts/build_recovery.py +292 -0
  142. package/skills/gsd-path-build/scripts/build_state.py +2 -0
  143. package/skills/gsd-path-build/scripts/check_handoffs.py +7 -1
  144. package/skills/gsd-path-build/scripts/check_task_briefs.py +3 -0
  145. package/skills/gsd-path-build/scripts/detect_project.py +1536 -0
  146. package/skills/gsd-path-build/scripts/discussion_records.py +3 -0
  147. package/skills/gsd-path-build/scripts/discussion_validate.py +8 -3
  148. package/skills/gsd-path-build/scripts/dispatch_driver.py +233 -22
  149. package/skills/gsd-path-build/scripts/integration.py +54 -28
  150. package/skills/gsd-path-build/scripts/isolation.py +24 -6
  151. package/skills/gsd-path-build/scripts/jev_review.py +138 -0
  152. package/skills/gsd-path-build/scripts/loop_run.py +2 -0
  153. package/skills/gsd-path-build/scripts/model_policy.py +279 -0
  154. package/skills/gsd-path-build/scripts/path_config.py +248 -0
  155. package/skills/gsd-path-build/scripts/pipeline_git.py +3 -0
  156. package/skills/gsd-path-build/scripts/pipeline_state.py +117 -186
  157. package/skills/gsd-path-build/scripts/promote_lookahead.py +286 -0
  158. package/skills/gsd-path-build/scripts/review_panel.py +11 -0
  159. package/skills/gsd-path-build/scripts/roadmap.py +326 -0
  160. package/skills/gsd-path-build/scripts/state_checkpoint.py +114 -72
  161. package/skills/gsd-path-build/scripts/state_promote.py +47 -44
  162. package/skills/gsd-path-build/scripts/task_context.py +73 -0
  163. package/skills/gsd-path-build/scripts/token_budget.py +40 -1
  164. package/skills/gsd-path-build/scripts/workflow_run.py +128 -8
  165. package/skills/gsd-path-build/scripts/worktree_paths.py +94 -0
  166. package/skills/gsd-path-build/templates/skeptic.md +1 -1
  167. package/skills/gsd-path-build/templates/task.md +2 -0
  168. package/skills/gsd-path-build/templates/wave-panel.md +1 -1
  169. package/skills/gsd-path-build/templates/wave-review.md +1 -1
  170. package/skills/gsd-path-decide/SKILL.md +4 -6
  171. package/skills/gsd-path-decide/references/dispatch.md +12 -19
  172. package/skills/gsd-path-decide/references/model-policy.md +139 -0
  173. package/skills/gsd-path-decide/references/runtime-selection.md +25 -0
  174. package/skills/gsd-path-decide/scripts/_common.py +5 -0
  175. package/skills/gsd-path-decide/scripts/archive_milestone.py +2171 -0
  176. package/skills/gsd-path-decide/scripts/build_recovery.py +292 -0
  177. package/skills/gsd-path-decide/scripts/check_handoffs.py +7 -1
  178. package/skills/gsd-path-decide/scripts/check_task_briefs.py +3 -0
  179. package/skills/gsd-path-decide/scripts/detect_project.py +1536 -0
  180. package/skills/gsd-path-decide/scripts/discussion_records.py +3 -0
  181. package/skills/gsd-path-decide/scripts/discussion_validate.py +1326 -0
  182. package/skills/gsd-path-decide/scripts/integration.py +1459 -0
  183. package/skills/gsd-path-decide/scripts/isolation.py +24 -6
  184. package/skills/gsd-path-decide/scripts/loop_run.py +839 -0
  185. package/skills/gsd-path-decide/scripts/model_policy.py +279 -0
  186. package/skills/gsd-path-decide/scripts/path_config.py +248 -0
  187. package/skills/gsd-path-decide/scripts/pipeline_git.py +3 -0
  188. package/skills/gsd-path-decide/scripts/pipeline_state.py +117 -186
  189. package/skills/gsd-path-decide/scripts/promote_lookahead.py +286 -0
  190. package/skills/gsd-path-decide/scripts/review_panel.py +564 -0
  191. package/skills/gsd-path-decide/scripts/roadmap.py +326 -0
  192. package/skills/gsd-path-decide/scripts/state_checkpoint.py +114 -72
  193. package/skills/gsd-path-decide/scripts/state_promote.py +47 -44
  194. package/skills/gsd-path-decide/scripts/worktree_paths.py +94 -0
  195. package/skills/gsd-path-define/SKILL.md +23 -21
  196. package/skills/gsd-path-define/references/build-recovery.md +78 -0
  197. package/skills/gsd-path-define/references/runtime-selection.md +25 -0
  198. package/skills/gsd-path-define/scripts/_common.py +5 -0
  199. package/skills/gsd-path-define/scripts/archive_milestone.py +2171 -0
  200. package/skills/gsd-path-define/scripts/build_recovery.py +292 -0
  201. package/skills/gsd-path-define/scripts/check_handoffs.py +7 -1
  202. package/skills/gsd-path-define/scripts/check_task_briefs.py +3 -0
  203. package/skills/gsd-path-define/scripts/detect_project.py +22 -3
  204. package/skills/gsd-path-define/scripts/discussion_records.py +3 -0
  205. package/skills/gsd-path-define/scripts/discussion_validate.py +1326 -0
  206. package/skills/gsd-path-define/scripts/integration.py +1459 -0
  207. package/skills/gsd-path-define/scripts/isolation.py +24 -6
  208. package/skills/gsd-path-define/scripts/loop_run.py +839 -0
  209. package/skills/gsd-path-define/scripts/model_policy.py +279 -0
  210. package/skills/gsd-path-define/scripts/path_config.py +248 -0
  211. package/skills/gsd-path-define/scripts/pipeline_git.py +3 -0
  212. package/skills/gsd-path-define/scripts/pipeline_state.py +117 -186
  213. package/skills/gsd-path-define/scripts/promote_lookahead.py +286 -0
  214. package/skills/gsd-path-define/scripts/review_panel.py +564 -0
  215. package/skills/gsd-path-define/scripts/roadmap.py +326 -0
  216. package/skills/gsd-path-define/scripts/state_checkpoint.py +114 -72
  217. package/skills/gsd-path-define/scripts/state_promote.py +47 -44
  218. package/skills/gsd-path-define/scripts/worktree_paths.py +94 -0
  219. package/skills/gsd-path-discuss/SKILL.md +2 -0
  220. package/skills/gsd-path-discuss/references/runtime-selection.md +25 -0
  221. package/skills/gsd-path-discuss/scripts/_common.py +5 -0
  222. package/skills/gsd-path-discuss/scripts/discussion_records.py +3 -0
  223. package/skills/gsd-path-discuss/scripts/loop_run.py +839 -0
  224. package/skills/gsd-path-discuss/scripts/model_policy.py +279 -0
  225. package/skills/gsd-path-discuss/scripts/path_config.py +248 -0
  226. package/skills/gsd-path-discuss/scripts/review_panel.py +564 -0
  227. package/skills/gsd-path-discuss/scripts/worktree_paths.py +94 -0
  228. package/skills/gsd-path-docs-audit/SKILL.md +2 -0
  229. package/skills/gsd-path-docs-audit/references/dispatch.md +12 -19
  230. package/skills/gsd-path-docs-audit/references/docs-auditor.md +14 -0
  231. package/skills/gsd-path-docs-audit/references/model-policy.md +139 -0
  232. package/skills/gsd-path-docs-audit/references/runtime-selection.md +25 -0
  233. package/skills/gsd-path-docs-audit/scripts/_common.py +5 -0
  234. package/skills/gsd-path-docs-audit/scripts/archive_milestone.py +2171 -0
  235. package/skills/gsd-path-docs-audit/scripts/build_recovery.py +292 -0
  236. package/skills/gsd-path-docs-audit/scripts/check_docs_audit.py +7 -3
  237. package/skills/gsd-path-docs-audit/scripts/check_handoffs.py +7 -1
  238. package/skills/gsd-path-docs-audit/scripts/check_task_briefs.py +3 -0
  239. package/skills/gsd-path-docs-audit/scripts/detect_project.py +1536 -0
  240. package/skills/gsd-path-docs-audit/scripts/discussion_records.py +3 -0
  241. package/skills/gsd-path-docs-audit/scripts/discussion_validate.py +1326 -0
  242. package/skills/gsd-path-docs-audit/scripts/integration.py +1459 -0
  243. package/skills/gsd-path-docs-audit/scripts/isolation.py +24 -6
  244. package/skills/gsd-path-docs-audit/scripts/loop_run.py +839 -0
  245. package/skills/gsd-path-docs-audit/scripts/model_policy.py +279 -0
  246. package/skills/gsd-path-docs-audit/scripts/path_config.py +248 -0
  247. package/skills/gsd-path-docs-audit/scripts/pipeline_git.py +3 -0
  248. package/skills/gsd-path-docs-audit/scripts/pipeline_state.py +117 -186
  249. package/skills/gsd-path-docs-audit/scripts/promote_lookahead.py +286 -0
  250. package/skills/gsd-path-docs-audit/scripts/review_panel.py +564 -0
  251. package/skills/gsd-path-docs-audit/scripts/roadmap.py +326 -0
  252. package/skills/gsd-path-docs-audit/scripts/state_checkpoint.py +114 -72
  253. package/skills/gsd-path-docs-audit/scripts/state_promote.py +47 -44
  254. package/skills/gsd-path-docs-audit/scripts/worktree_paths.py +94 -0
  255. package/skills/gsd-path-forensics/SKILL.md +9 -5
  256. package/skills/gsd-path-forensics/references/runtime-selection.md +25 -0
  257. package/skills/gsd-path-forensics/scripts/_common.py +5 -0
  258. package/skills/gsd-path-forensics/scripts/discussion_records.py +3 -0
  259. package/skills/gsd-path-forensics/scripts/loop_run.py +839 -0
  260. package/skills/gsd-path-forensics/scripts/model_policy.py +279 -0
  261. package/skills/gsd-path-forensics/scripts/path_config.py +248 -0
  262. package/skills/gsd-path-forensics/scripts/pipeline_diagnose.py +15 -3
  263. package/skills/gsd-path-forensics/scripts/pipeline_undo.py +14 -7
  264. package/skills/gsd-path-forensics/scripts/review_panel.py +564 -0
  265. package/skills/gsd-path-forensics/scripts/worktree_paths.py +94 -0
  266. package/skills/gsd-path-inspect/SKILL.md +32 -8
  267. package/skills/gsd-path-inspect/references/dispatch.md +12 -19
  268. package/skills/gsd-path-inspect/references/docs-auditor.md +14 -0
  269. package/skills/gsd-path-inspect/references/model-policy.md +139 -0
  270. package/skills/gsd-path-inspect/references/runtime-selection.md +25 -0
  271. package/skills/gsd-path-inspect/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  272. package/skills/gsd-path-inspect/scripts/_common.py +5 -0
  273. package/skills/gsd-path-inspect/scripts/archive_milestone.py +2171 -0
  274. package/skills/gsd-path-inspect/scripts/build_recovery.py +292 -0
  275. package/skills/gsd-path-inspect/scripts/check_docs_audit.py +7 -3
  276. package/skills/gsd-path-inspect/scripts/check_handoffs.py +7 -1
  277. package/skills/gsd-path-inspect/scripts/check_task_briefs.py +3 -0
  278. package/skills/gsd-path-inspect/scripts/detect_project.py +22 -3
  279. package/skills/gsd-path-inspect/scripts/discussion_records.py +3 -0
  280. package/skills/gsd-path-inspect/scripts/discussion_validate.py +1326 -0
  281. package/skills/gsd-path-inspect/scripts/integration.py +1459 -0
  282. package/skills/gsd-path-inspect/scripts/isolation.py +24 -6
  283. package/skills/gsd-path-inspect/scripts/loop_run.py +839 -0
  284. package/skills/gsd-path-inspect/scripts/model_policy.py +279 -0
  285. package/skills/gsd-path-inspect/scripts/path_config.py +248 -0
  286. package/skills/gsd-path-inspect/scripts/pipeline_git.py +3 -0
  287. package/skills/gsd-path-inspect/scripts/pipeline_state.py +117 -186
  288. package/skills/gsd-path-inspect/scripts/promote_lookahead.py +286 -0
  289. package/skills/gsd-path-inspect/scripts/review_panel.py +564 -0
  290. package/skills/gsd-path-inspect/scripts/roadmap.py +326 -0
  291. package/skills/gsd-path-inspect/scripts/state_checkpoint.py +114 -72
  292. package/skills/gsd-path-inspect/scripts/state_promote.py +47 -44
  293. package/skills/gsd-path-inspect/scripts/workflow_run.py +237 -0
  294. package/skills/gsd-path-inspect/scripts/worktree_paths.py +94 -0
  295. package/skills/gsd-path-loop/SKILL.md +2 -0
  296. package/skills/gsd-path-loop/references/runtime-selection.md +25 -0
  297. package/skills/gsd-path-loop/scripts/_common.py +5 -0
  298. package/skills/gsd-path-loop/scripts/discussion_records.py +3 -0
  299. package/skills/gsd-path-loop/scripts/loop_run.py +2 -0
  300. package/skills/gsd-path-loop/scripts/model_policy.py +279 -0
  301. package/skills/gsd-path-loop/scripts/path_config.py +248 -0
  302. package/skills/gsd-path-loop/scripts/review_panel.py +564 -0
  303. package/skills/gsd-path-loop/scripts/worktree_paths.py +94 -0
  304. package/skills/gsd-path-migrate/SKILL.md +2 -0
  305. package/skills/gsd-path-migrate/references/runtime-selection.md +25 -0
  306. package/skills/gsd-path-migrate/scripts/_common.py +185 -0
  307. package/skills/gsd-path-migrate/scripts/discussion_records.py +3 -0
  308. package/skills/gsd-path-migrate/scripts/loop_run.py +839 -0
  309. package/skills/gsd-path-migrate/scripts/model_policy.py +279 -0
  310. package/skills/gsd-path-migrate/scripts/path_config.py +248 -0
  311. package/skills/gsd-path-migrate/scripts/review_panel.py +564 -0
  312. package/skills/gsd-path-plan/SKILL.md +29 -19
  313. package/skills/gsd-path-plan/references/build-recovery.md +78 -0
  314. package/skills/gsd-path-plan/references/dispatch.md +12 -19
  315. package/skills/gsd-path-plan/references/model-policy.md +139 -0
  316. package/skills/gsd-path-plan/references/runtime-selection.md +25 -0
  317. package/skills/gsd-path-plan/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  318. package/skills/gsd-path-plan/scripts/_common.py +5 -0
  319. package/skills/gsd-path-plan/scripts/archive_milestone.py +2171 -0
  320. package/skills/gsd-path-plan/scripts/build_recovery.py +292 -0
  321. package/skills/gsd-path-plan/scripts/check_handoffs.py +7 -1
  322. package/skills/gsd-path-plan/scripts/check_task_briefs.py +3 -0
  323. package/skills/gsd-path-plan/scripts/detect_project.py +1536 -0
  324. package/skills/gsd-path-plan/scripts/discussion_records.py +3 -0
  325. package/skills/gsd-path-plan/scripts/discussion_validate.py +1326 -0
  326. package/skills/gsd-path-plan/scripts/integration.py +1459 -0
  327. package/skills/gsd-path-plan/scripts/isolation.py +24 -6
  328. package/skills/gsd-path-plan/scripts/loop_run.py +839 -0
  329. package/skills/gsd-path-plan/scripts/model_policy.py +279 -0
  330. package/skills/gsd-path-plan/scripts/path_config.py +248 -0
  331. package/skills/gsd-path-plan/scripts/pipeline_git.py +3 -0
  332. package/skills/gsd-path-plan/scripts/pipeline_state.py +117 -186
  333. package/skills/gsd-path-plan/scripts/promote_lookahead.py +286 -0
  334. package/skills/gsd-path-plan/scripts/review_panel.py +11 -0
  335. package/skills/gsd-path-plan/scripts/roadmap.py +326 -0
  336. package/skills/gsd-path-plan/scripts/state_checkpoint.py +114 -72
  337. package/skills/gsd-path-plan/scripts/state_promote.py +47 -44
  338. package/skills/gsd-path-plan/scripts/workflow_run.py +128 -8
  339. package/skills/gsd-path-plan/scripts/worktree_paths.py +94 -0
  340. package/skills/gsd-path-plan/templates/task.md +2 -0
  341. package/skills/gsd-path-research/SKILL.md +5 -6
  342. package/skills/gsd-path-research/references/dispatch.md +12 -19
  343. package/skills/gsd-path-research/references/model-policy.md +139 -0
  344. package/skills/gsd-path-research/references/runtime-selection.md +25 -0
  345. package/skills/gsd-path-research/scripts/_common.py +5 -0
  346. package/skills/gsd-path-research/scripts/archive_milestone.py +2171 -0
  347. package/skills/gsd-path-research/scripts/build_recovery.py +292 -0
  348. package/skills/gsd-path-research/scripts/check_handoffs.py +7 -1
  349. package/skills/gsd-path-research/scripts/check_task_briefs.py +3 -0
  350. package/skills/gsd-path-research/scripts/detect_project.py +1536 -0
  351. package/skills/gsd-path-research/scripts/discussion_records.py +3 -0
  352. package/skills/gsd-path-research/scripts/discussion_validate.py +1326 -0
  353. package/skills/gsd-path-research/scripts/integration.py +1459 -0
  354. package/skills/gsd-path-research/scripts/isolation.py +24 -6
  355. package/skills/gsd-path-research/scripts/loop_run.py +839 -0
  356. package/skills/gsd-path-research/scripts/model_policy.py +279 -0
  357. package/skills/gsd-path-research/scripts/path_config.py +248 -0
  358. package/skills/gsd-path-research/scripts/pipeline_git.py +3 -0
  359. package/skills/gsd-path-research/scripts/pipeline_state.py +117 -186
  360. package/skills/gsd-path-research/scripts/promote_lookahead.py +286 -0
  361. package/skills/gsd-path-research/scripts/review_panel.py +564 -0
  362. package/skills/gsd-path-research/scripts/roadmap.py +326 -0
  363. package/skills/gsd-path-research/scripts/state_checkpoint.py +114 -72
  364. package/skills/gsd-path-research/scripts/state_promote.py +47 -44
  365. package/skills/gsd-path-research/scripts/worktree_paths.py +94 -0
  366. package/skills/gsd-path-roadmap/SKILL.md +24 -58
  367. package/skills/gsd-path-roadmap/references/dispatch.md +12 -19
  368. package/skills/gsd-path-roadmap/references/model-policy.md +139 -0
  369. package/skills/gsd-path-roadmap/references/runtime-selection.md +25 -0
  370. package/skills/gsd-path-roadmap/scripts/_common.py +5 -0
  371. package/skills/gsd-path-roadmap/scripts/archive_milestone.py +30 -124
  372. package/skills/gsd-path-roadmap/scripts/build_recovery.py +292 -0
  373. package/skills/gsd-path-roadmap/scripts/check_handoffs.py +7 -1
  374. package/skills/gsd-path-roadmap/scripts/check_task_briefs.py +3 -0
  375. package/skills/gsd-path-roadmap/scripts/detect_project.py +22 -3
  376. package/skills/gsd-path-roadmap/scripts/discussion_records.py +3 -0
  377. package/skills/gsd-path-roadmap/scripts/discussion_validate.py +8 -3
  378. package/skills/gsd-path-roadmap/scripts/integration.py +54 -28
  379. package/skills/gsd-path-roadmap/scripts/isolation.py +24 -6
  380. package/skills/gsd-path-roadmap/scripts/loop_run.py +839 -0
  381. package/skills/gsd-path-roadmap/scripts/model_policy.py +279 -0
  382. package/skills/gsd-path-roadmap/scripts/path_config.py +248 -0
  383. package/skills/gsd-path-roadmap/scripts/pipeline_git.py +3 -0
  384. package/skills/gsd-path-roadmap/scripts/pipeline_state.py +117 -186
  385. package/skills/gsd-path-roadmap/scripts/promote_lookahead.py +33 -162
  386. package/skills/gsd-path-roadmap/scripts/review_panel.py +11 -0
  387. package/skills/gsd-path-roadmap/scripts/roadmap.py +326 -0
  388. package/skills/gsd-path-roadmap/scripts/state_checkpoint.py +114 -72
  389. package/skills/gsd-path-roadmap/scripts/state_promote.py +47 -44
  390. package/skills/gsd-path-roadmap/scripts/worktree_paths.py +94 -0
  391. package/skills/gsd-path-ship/SKILL.md +29 -17
  392. package/skills/gsd-path-ship/references/dispatch.md +12 -19
  393. package/skills/gsd-path-ship/references/jev-review.md +82 -0
  394. package/skills/gsd-path-ship/references/model-policy.md +139 -0
  395. package/skills/gsd-path-ship/references/reviewer-final.md +21 -0
  396. package/skills/gsd-path-ship/references/reviewer-panel.md +17 -0
  397. package/skills/gsd-path-ship/references/reviewer-skeptic.md +20 -0
  398. package/skills/gsd-path-ship/references/reviewer-wave.md +89 -0
  399. package/skills/gsd-path-ship/references/reviewer.md +12 -148
  400. package/skills/gsd-path-ship/references/runtime-selection.md +25 -0
  401. package/skills/gsd-path-ship/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  402. package/skills/gsd-path-ship/scripts/_common.py +5 -0
  403. package/skills/gsd-path-ship/scripts/archive_milestone.py +30 -124
  404. package/skills/gsd-path-ship/scripts/build_recovery.py +292 -0
  405. package/skills/gsd-path-ship/scripts/build_state.py +2 -0
  406. package/skills/gsd-path-ship/scripts/check_handoffs.py +7 -1
  407. package/skills/gsd-path-ship/scripts/check_task_briefs.py +3 -0
  408. package/skills/gsd-path-ship/scripts/detect_project.py +1536 -0
  409. package/skills/gsd-path-ship/scripts/discussion_records.py +3 -0
  410. package/skills/gsd-path-ship/scripts/discussion_validate.py +8 -3
  411. package/skills/gsd-path-ship/scripts/integration.py +54 -28
  412. package/skills/gsd-path-ship/scripts/isolation.py +24 -6
  413. package/skills/gsd-path-ship/scripts/jev_review.py +138 -0
  414. package/skills/gsd-path-ship/scripts/lean_verification.py +3 -1
  415. package/skills/gsd-path-ship/scripts/loop_run.py +839 -0
  416. package/skills/gsd-path-ship/scripts/model_policy.py +279 -0
  417. package/skills/gsd-path-ship/scripts/path_config.py +248 -0
  418. package/skills/gsd-path-ship/scripts/pipeline_git.py +3 -0
  419. package/skills/gsd-path-ship/scripts/pipeline_state.py +117 -186
  420. package/skills/gsd-path-ship/scripts/promote_lookahead.py +286 -0
  421. package/skills/gsd-path-ship/scripts/review_panel.py +11 -0
  422. package/skills/gsd-path-ship/scripts/roadmap.py +326 -0
  423. package/skills/gsd-path-ship/scripts/state_checkpoint.py +114 -72
  424. package/skills/gsd-path-ship/scripts/state_promote.py +47 -44
  425. package/skills/gsd-path-ship/scripts/workflow_run.py +128 -8
  426. package/skills/gsd-path-ship/scripts/worktree_paths.py +94 -0
  427. package/skills/gsd-path-ship/templates/wave-review.md +1 -1
  428. package/skills/gsd-path-undo/SKILL.md +2 -0
  429. package/skills/gsd-path-undo/references/runtime-selection.md +25 -0
  430. package/skills/gsd-path-undo/scripts/_common.py +5 -0
  431. package/skills/gsd-path-undo/scripts/discussion_records.py +3 -0
  432. package/skills/gsd-path-undo/scripts/loop_run.py +839 -0
  433. package/skills/gsd-path-undo/scripts/model_policy.py +279 -0
  434. package/skills/gsd-path-undo/scripts/path_config.py +248 -0
  435. package/skills/gsd-path-undo/scripts/pipeline_undo.py +14 -7
  436. package/skills/gsd-path-undo/scripts/review_panel.py +564 -0
  437. package/skills/gsd-path-undo/scripts/worktree_paths.py +94 -0
  438. package/skills/path/BUILD.md +54 -575
  439. package/skills/path/DECIDE.md +4 -6
  440. package/skills/path/DEFINE.md +23 -21
  441. package/skills/path/DOCS-AUDIT.md +2 -0
  442. package/skills/path/INSPECT.md +32 -8
  443. package/skills/path/PLAN.md +29 -19
  444. package/skills/path/RESEARCH.md +5 -6
  445. package/skills/path/ROADMAP.md +24 -58
  446. package/skills/path/SHIP.md +29 -17
  447. package/skills/path/SKILL.md +46 -22
  448. package/skills/path/references/build-abandon.md +33 -0
  449. package/skills/path/references/build-native.md +502 -0
  450. package/skills/path/references/build-recovery.md +78 -0
  451. package/skills/path/references/coder.md +8 -3
  452. package/skills/path/references/config.md +57 -0
  453. package/skills/path/references/dispatch.md +12 -19
  454. package/skills/path/references/docs-auditor.md +14 -0
  455. package/skills/path/references/jev-review.md +82 -0
  456. package/skills/path/references/model-policy.md +139 -0
  457. package/skills/path/references/reviewer-final.md +21 -0
  458. package/skills/path/references/reviewer-panel.md +17 -0
  459. package/skills/path/references/reviewer-skeptic.md +20 -0
  460. package/skills/path/references/reviewer-wave.md +89 -0
  461. package/skills/path/references/reviewer.md +12 -148
  462. package/skills/path/references/runtime-selection.md +25 -0
  463. package/skills/path/scripts/_common.py +5 -0
  464. package/skills/path/scripts/archive_milestone.py +30 -124
  465. package/skills/path/scripts/bootstrap_repository.py +33 -4
  466. package/skills/path/scripts/build_recovery.py +292 -0
  467. package/skills/path/scripts/build_state.py +2 -0
  468. package/skills/path/scripts/check_docs_audit.py +7 -3
  469. package/skills/path/scripts/check_handoffs.py +7 -1
  470. package/skills/path/scripts/check_task_briefs.py +3 -0
  471. package/skills/path/scripts/detect_project.py +22 -3
  472. package/skills/path/scripts/discussion_records.py +3 -0
  473. package/skills/path/scripts/discussion_validate.py +8 -3
  474. package/skills/path/scripts/dispatch_driver.py +233 -22
  475. package/skills/path/scripts/git_guard.py +768 -0
  476. package/skills/path/scripts/integration.py +54 -28
  477. package/skills/path/scripts/isolation.py +24 -6
  478. package/skills/path/scripts/jev_review.py +138 -0
  479. package/skills/path/scripts/lean_verification.py +3 -1
  480. package/skills/path/scripts/loop_run.py +2 -0
  481. package/skills/path/scripts/model_policy.py +279 -0
  482. package/skills/path/scripts/path_config.py +248 -0
  483. package/skills/path/scripts/pipeline_git.py +3 -0
  484. package/skills/path/scripts/pipeline_state.py +117 -186
  485. package/skills/path/scripts/promote_lookahead.py +33 -162
  486. package/skills/path/scripts/review_panel.py +11 -0
  487. package/skills/path/scripts/roadmap.py +326 -0
  488. package/skills/path/scripts/state_checkpoint.py +114 -72
  489. package/skills/path/scripts/state_promote.py +47 -44
  490. package/skills/path/scripts/status_runtime.py +208 -0
  491. package/skills/path/scripts/task_context.py +73 -0
  492. package/skills/path/scripts/token_budget.py +40 -1
  493. package/skills/path/scripts/workflow_run.py +128 -8
  494. package/skills/path/scripts/worktree_paths.py +94 -0
  495. package/skills/path/templates/skeptic.md +1 -1
  496. package/skills/path/templates/task.md +2 -0
  497. package/skills/path/templates/wave-panel.md +1 -1
  498. package/skills/path/templates/wave-review.md +1 -1
@@ -3,6 +3,8 @@ name: gsd-path-decide
3
3
  description: Decide implementation direction from approved intent and complete research evidence, recording settled choices in SYNTHESIS.md. Use only when the user explicitly invokes $gsd-path-decide or an active $gsd-path router explicitly routes to this phase.
4
4
  ---
5
5
 
6
+ Before executing project helpers, read [runtime selection](references/runtime-selection.md).
7
+
6
8
  # GSD Path Decide Phase
7
9
 
8
10
  Dispatch one reasoning-intensive decider and validate its decision artifact.
@@ -98,12 +100,8 @@ rules are unchanged; never write an active-path artifact.
98
100
  branch and archive values, `--set-phase decide --set-status done`, and an
99
101
  event naming the validated synthesis path. Include `--project-dir
100
102
  .project/next` in lookahead and require returned `decide/done`. Confirm the
101
- settled outcome, link SYNTHESIS.md again, and name
102
- the next phase: the roadmap phase in program scope, planning otherwise.
103
- When routed by an active `$gsd-path`, return control to
104
- that router. When invoked directly, stop and tell the user to explicitly
105
- invoke `$gsd-path`, which routes to that next phase; do not invoke an
106
- explicit-only sibling skill yourself.
103
+ settled outcome, link SYNTHESIS.md again, and use the executable phase
104
+ handoff in AGENTS.md.
107
105
 
108
106
  ## Rules
109
107
 
@@ -3,6 +3,8 @@ name: gsd-path-define
3
3
  description: Define and approve project or milestone intent through an interview or milestone confirmation, writing .project/CHARTER.md or .project/intent/INTENT.md. Use only when the user explicitly invokes $gsd-path-define or an active $gsd-path router explicitly routes to this phase.
4
4
  ---
5
5
 
6
+ Before executing project helpers, read [runtime selection](references/runtime-selection.md).
7
+
6
8
  # GSD Path Define Phase
7
9
 
8
10
  Turn a project idea or approved roadmap entry into an approved intent artifact.
@@ -36,16 +38,22 @@ ROADMAP.md exists), `roadmap/done`
36
38
  lookahead track at `define/active|blocked` also requires both current-track
37
39
  inspection artifacts and a Log entry proving `inspect/done` for the same
38
40
  milestone after its latest activation; otherwise route to inspect.
41
+ The sole later-phase exception is a blocked build entered through the
42
+ [build recovery contract](references/build-recovery.md). Follow its preparation
43
+ and corrections procedure when the runtime returns mode `corrections`; keep
44
+ the existing milestone identity and approval gate. Otherwise
39
45
  `define/done` or any later phase blocks rather than overwriting approved
40
46
  intent and leaving downstream artifacts stale. When an active router supplies
41
47
  the lookahead track root `.project/next/`, require its STATE.md to be a regular
42
48
  non-symlink file and evaluate this section against that track's state and
43
49
  paths; see Lookahead mode. If STATE.md is missing, run the bundled
44
50
  `python3 <absolute-bundled-script> initialize --repo <absolute-root>
45
- --template <absolute-state-template>` helper (`scripts/detect_project.py`) and
51
+ --template <absolute-state-template> --require-git` helper (`scripts/detect_project.py`) and
46
52
  follow its returned JSON `verdict` / `route`. This is the only no-state
47
53
  boundary; do not run `classify` first or classify from a directory listing or
48
- conversation. If the command exits nonzero, returns `error`, or returns
54
+ conversation. Handle `route: setup-repository` before the write gate: preserve
55
+ the folder unchanged and return to `$gsd-path` for repository setup; no state
56
+ was written. If the command exits nonzero, returns `error`, or returns
49
57
  `wrote_state: false`, report the error and block without routing or claiming
50
58
  STATE.md was written.
51
59
  - `owned` — continue under the existing-state rules above.
@@ -104,12 +112,13 @@ the charter instead of the single-milestone checklist:
104
112
  4. **Constraints** — program-level stack, budget, deadline, integrations.
105
113
  5. **Program success criteria** — observable when the last milestone ships.
106
114
  6. **Review panel** — optional durable default (`off` | `detected` | named
107
- families). Default `off`. This value persists on CHARTER.md; later
115
+ families). Use the configured future preference unless the user chooses
116
+ otherwise (see Output contract). This value persists on CHARTER.md; later
108
117
  milestone INTENT files copy it and may override.
109
118
 
110
119
  Read the local [charter template](templates/charter.md), write the approval
111
- draft to `.project/CHARTER.md` including `Review panel:` (default `off`;
112
- never invent `detected` or a named list), and run the same playback-approval
120
+ draft to `.project/CHARTER.md` including the configured or explicitly chosen
121
+ `Review panel:` value, and run the same playback-approval
113
122
  loop as the standard Process. On approval, retain the reviewed
114
123
  `Review panel:` value on CHARTER.md, run `pipeline_state.py transition` with
115
124
  expected `define/active`, milestone/branch/archive all at their exact current
@@ -138,7 +147,7 @@ State ownership. There is no re-interview of charter or roadmap scope:
138
147
  Risks and Open questions from the entry (tagged `RESEARCH`/`NEEDS-USER`),
139
148
  `Lane: milestone`, `Surfaces:` copied verbatim from the entry, and
140
149
  `Review panel:` copied from CHARTER.md (default
141
- `off` when CHARTER omits it). The confirmation may override the copied
150
+ the configured preference when CHARTER omits it). The confirmation may override the copied
142
151
  panel value; do not invent `detected` or a named list. When brownfield,
143
152
  fill `## Current state` from the map, record doc-vs-code rulings as in
144
153
  Brownfield mode, and add protected existing behavior under Scope out.
@@ -265,27 +274,20 @@ question. The rules change for every primary mode:
265
274
  ## Output contract
266
275
 
267
276
  At approval, retain the already reviewed `Lane:` value and its one-line reason.
268
- Retain `Review panel:` as reviewed: the CHARTER copy or the user's override
269
- in milestone/lookahead mode, the CHARTER value in program mode, or `off`
270
- when the user did not choose a panel and no CHARTER default exists.
277
+ Before presenting an approval draft without a CHARTER or explicit panel choice,
278
+ read `settings.review_panel.value` from the selected runtime's `path_config.py
279
+ show --repo <absolute-root>` (bundle for legacy projects; off for older selected
280
+ runtimes without config support). Include that preference in the draft.
281
+ Retain `Review panel:` as reviewed: the CHARTER copy, the explicit user choice,
282
+ or the configured future preference. Quick lane keeps the panel off.
271
283
 
272
284
  After approval, finalize `.project/intent/INTENT.md` and run
273
285
  `pipeline_state.py transition` with expected `define/active`, the exact
274
286
  current milestone/branch/archive values, event `milestone intent approved`,
275
287
  `--set-phase define --set-status done --set-milestone <milestone slug>`, and
276
288
  `--project-dir .project/next` in lookahead. Require returned `define/done` and
277
- the exact milestone. Report the next phase
278
- from the approved lane. For `Lane: standard`, research is next. For
279
- `Lane: quick`, planning is next and research and decide are skipped. For
280
- `Lane: milestone`, use the resolved roadmap entry matching the track STATE's
281
- `milestone`: milestone-scoped research is next when that entry lists open
282
- questions; otherwise planning is next and research and decide are skipped.
283
- Confirm the approved outcome, link the final INTENT.md again, and name that
284
- next phase before routing. When routed by an active `$gsd-path`, return control
285
- to that router so its bundled next contract can auto-advance to the named
286
- phase. When invoked directly, stop and tell the user to explicitly invoke
287
- `$gsd-path`, which selects that next phase; do not invoke an explicit-only
288
- sibling skill yourself.
289
+ the exact milestone. Confirm the approved outcome and link INTENT.md again.
290
+ Use the executable phase handoff in AGENTS.md for the next action.
289
291
 
290
292
  ## Rules
291
293
 
@@ -3,6 +3,8 @@ name: gsd-path-docs-audit
3
3
  description: Verify Markdown claims against the actual code, commands, and GSD Path artifacts. Use only when the user explicitly invokes $gsd-path-docs-audit or an active $gsd-path router explicitly routes to this phase.
4
4
  ---
5
5
 
6
+ Before executing project helpers, read [runtime selection](references/runtime-selection.md).
7
+
6
8
  # GSD Path Docs Audit
7
9
 
8
10
  Answer one question with evidence: **does the project do what its documents
@@ -3,6 +3,8 @@ name: gsd-path-inspect
3
3
  description: Inspect an existing codebase and its documentation to establish brownfield ground truth before intent is defined. Use only when the user explicitly invokes $gsd-path-inspect or an active $gsd-path router explicitly routes to this phase.
4
4
  ---
5
5
 
6
+ Before executing project helpers, read [runtime selection](references/runtime-selection.md).
7
+
6
8
  # GSD Path Inspect Phase
7
9
 
8
10
  Establish ground truth about an existing project before intent is defined.
@@ -21,10 +23,12 @@ phase blocks.
21
23
 
22
24
  If STATE.md is missing, run the bundled
23
25
  `python3 <absolute-bundled-script> initialize --repo <absolute-root>
24
- --template <absolute-state-template>` helper (`scripts/detect_project.py`) and
26
+ --template <absolute-state-template> --require-git` helper (`scripts/detect_project.py`) and
25
27
  follow its returned JSON `verdict` / `route`. This is the only no-state
26
28
  boundary; do not run `classify` first or classify from a directory listing or
27
- conversation. If the command exits nonzero, returns `error`, or returns
29
+ conversation. Handle `route: setup-repository` before the write gate: preserve
30
+ the folder unchanged and return to `$gsd-path` for repository setup; no state
31
+ was written. If the command exits nonzero, returns `error`, or returns
28
32
  `wrote_state: false`, report the error and block without routing or claiming
29
33
  STATE.md was written.
30
34
  - `owned` — continue under the existing-state rules below.
@@ -47,6 +51,31 @@ same milestone; a later milestone's `inspect/active` is a new scan.
47
51
 
48
52
  ## Process
49
53
 
54
+ For an initial `inspect/active` inspection on the `.project` track, with neither output
55
+ artifact present and a clean Git product at the recorded HEAD, run the bundled
56
+ `python3 <absolute workflow_run.py> prepare-inspect --repo <absolute root>
57
+ --expected-head <recorded HEAD>` first. It performs the inventory freeze and
58
+ both sidecar preparations from steps 1–2 and writes complete assignment briefs.
59
+ Its state validation and pending-answer check satisfy those entry checks;
60
+ reuse their results at this boundary.
61
+ Use its returned `inspection.inventory_file` for the gate. Before dispatch, read
62
+ and apply the [runtime dispatch contract](references/dispatch.md), including its
63
+ host-specific context isolation. Dispatch each returned logical `task_name` in a fresh context with its `brief_file` path and the current
64
+ user constraints, including configured budgets. The child reads that file;
65
+ the parent does not read or rewrite the roles, templates, or generated briefs.
66
+ When both children return, review the mapper's Map and Findings against its
67
+ template as in step 3. After that review passes, run the bundled
68
+ `python3 <absolute workflow_run.py> finish-inspect --repo <absolute root>
69
+ --expected-head <recorded HEAD> --inspection <returned receipt_file>
70
+ --mapper-reviewed`. This runs the docs gate, checks the audit baseline,
71
+ collects and retires both sidecars, checks pending discussion, and records
72
+ `inspect/done` through the canonical transition. Do not repeat those operations.
73
+ Present step 4's ground truth and use step 5's caller handoff. A failure uses
74
+ step 3's failure contract and the returned step evidence; do not blindly rerun
75
+ the completion command or repeat already proven steps.
76
+ Prior evidence, lookahead, or a dirty/non-Git product uses steps 1–2 below.
77
+ Preparation never changes phase state; neither command dispatches agents.
78
+
50
79
  1. Before creating or changing `.project/` Markdown, freeze the helper's exact
51
80
  stdout from `python3 <absolute check_docs_audit.py> --repo <absolute root>
52
81
  --emit-inventory` in a temporary file. Do not rediscover or edit that
@@ -132,12 +161,7 @@ same milestone; a later milestone's `inspect/active` is a new scan.
132
161
  <current branch or null> --expect-archive <current archive or null>
133
162
  --set-phase inspect --set-status done`. This helper is the only ordinary
134
163
  STATE mutation; require its returned state to be `inspect/done`.
135
- Identify `$gsd-path-define` as next. When this phase was routed by an
136
- active `$gsd-path`, return control to that router so its bundled define
137
- contract runs in brownfield mode (and milestone mode when ROADMAP.md
138
- exists). When invoked directly, stop and tell the
139
- user to explicitly invoke `$gsd-path`, which routes to define; do not invoke
140
- an explicit-only sibling skill yourself.
164
+ Use the executable phase handoff in AGENTS.md.
141
165
 
142
166
  ## Lookahead mode
143
167
 
@@ -3,6 +3,8 @@ name: gsd-path-plan
3
3
  description: Create and validate dependency-ordered GSD Path build waves and complete task contracts. Use only when the user explicitly invokes $gsd-path-plan or an active $gsd-path router explicitly routes to this phase.
4
4
  ---
5
5
 
6
+ Before executing project helpers, read [runtime selection](references/runtime-selection.md).
7
+
6
8
  # GSD Path Planning Phase
7
9
 
8
10
  Dispatch one planner, gate its artifacts, and obtain the single approval that
@@ -29,8 +31,11 @@ Before dispatch, enter from `decide/done` or `define/done` with
29
31
  `--set-phase plan --set-status active`, and event `planning started`. Resume
30
32
  `plan/blocked` through the same helper with event `planning resumed`. Require
31
33
  the returned track state to be `plan/active`; never edit STATE directly.
32
- Any later phase blocks instead of replacing an approved plan. Patch mode is
33
- the only reopen exception: require an approved plan, no in-progress task, and
34
+ For a blocked build, use the [build recovery contract](references/build-recovery.md).
35
+ The runtime's `build-repair` mode owns structural changes to the remaining task
36
+ inventory and the normal approval checkpoint; it is distinct from append-only
37
+ patch mode. Otherwise later phases block instead of replacing an approved plan.
38
+ Patch mode requires an approved plan, no in-progress task, and
34
39
  state `plan/done` or `ship/blocked`; any other state blocks. `build/done` is
35
40
  reserved exclusively for the build orchestrator's transition recovery and
36
41
  must return there instead of reopening planning. When an active router
@@ -74,10 +79,17 @@ router supplied lookahead mode. Every per-milestone path below, including
74
79
  review-panel evidence, is rooted there. Program inputs remain at `.project/`
75
80
  as stated in Lookahead mode.
76
81
 
77
- 1. Read the local [plan template](templates/plan.md), [task template](templates/task.md),
78
- [plan-panel template](templates/plan-panel.md), `scripts/check_handoffs.py`,
79
- and `scripts/review_panel.py`; resolve them to absolute paths.
80
- 2. Read the local [planner role](references/planner.md), then follow the
82
+ 1. Resolve the local [plan template](templates/plan.md), [task template](templates/task.md),
83
+ `scripts/check_handoffs.py`, and `scripts/review_panel.py` to absolute paths.
84
+ Quick mode reads the plan and task templates because the parent writes
85
+ those artifacts. Other modes pass their paths to the planner. Execute the
86
+ helpers through the commands below and consume their results; their Python
87
+ source is not planning input. Read helper source only when diagnosing a
88
+ concrete failure that the returned error and documented recovery cannot
89
+ explain.
90
+ 2. In quick mode, skip planner dispatch and follow Quick mode below; do not
91
+ load the planner role or dispatch contract. In other modes, resolve the
92
+ local [planner role](references/planner.md) for the child, then follow the
81
93
  local [runtime dispatch contract](references/dispatch.md) with deterministic
82
94
  logical task name `plan`. Give it absolute role, `AGENTS.md`, `WORKFLOW.md`,
83
95
  input, template, and output paths, including `.project/LESSONS.md` when it
@@ -133,7 +145,7 @@ as stated in Lookahead mode.
133
145
  - Require a `Review depth` value (`full`, `deep`, or `verify-only`) on
134
146
  every wave. Wave 1 and any wave touching authentication, authorization,
135
147
  payments, data migration, or concurrency requires `full` or `deep`;
136
- quick-lane single waves may use `verify-only`. The planner assigns `deep`
148
+ this includes quick-lane single waves. The planner assigns `deep`
137
149
  sparingly to waves where a wrong merge is irreversible or
138
150
  security-critical.
139
151
  - When INTENT.md `Surfaces:` is not `none`, require a PLAN.md
@@ -199,11 +211,13 @@ as stated in Lookahead mode.
199
211
  - `status: error` or exit 2 — use the same guarded transition to set
200
212
  `plan/blocked` with an event naming the helper error, link PLAN.md, and stop.
201
213
  A named family that is not advertised is an assertion failure.
202
- - `status: ready` — for each selected family, spawn one independent child
214
+ - `status: ready` — resolve the local
215
+ [plan-panel template](templates/plan-panel.md) for the reviewers; other
216
+ statuses do not load this template. For each selected family, spawn one independent child
203
217
  with logical task name `review_plan_panel_<family>`, the reviewer role
204
218
  in plan-panel mode, the plan-panel template, and the exact helper-returned
205
- model slug when the host advertises model selection. Never override the
206
- model on the planner. Each child stages its family file under a
219
+ model slug through the dispatch model-policy contract. Planner choices
220
+ use that same contract. Each child stages its family file under a
207
221
  disposable root; the parent validates and copies those files, removes
208
222
  any stale `<track>/review/PLAN-PANEL.skipped.json`, then runs
209
223
  `python3 <absolute review_panel.py> merge --kind plan --inputs <family
@@ -257,12 +271,8 @@ as stated in Lookahead mode.
257
271
  (event `patch plan approved`) without a plan checkpoint because build's
258
272
  patch re-entry commits the artifacts with its `build/active` transition.
259
273
  `pipeline_state.py transition` never approves a plan. Confirm approval,
260
- link PLAN.md again, and state that
261
- build starts next. Do not add another approval gate. When routed by an
262
- active `$gsd-path`, return control to that router so its bundled build
263
- contract starts. When invoked directly, stop and tell the user to explicitly
264
- invoke `$gsd-path`, which routes to build; do not invoke an explicit-only
265
- sibling skill yourself.
274
+ link PLAN.md again, and use the executable phase handoff in AGENTS.md.
275
+ The plan approval also authorizes build; do not add another approval gate.
266
276
 
267
277
  ## Ordering rules
268
278
 
@@ -273,8 +283,8 @@ as stated in Lookahead mode.
273
283
  ## Quick mode
274
284
 
275
285
  Legal entry: `define/done` where INTENT.md records `Lane: quick` (transition
276
- to `plan/active`, logging that research and decide were skipped for the
277
- quick lane). Quick mode dispatches no planner agent — the orchestrator writes
286
+ to `plan/active` using exactly the Preconditions event `planning started`;
287
+ record the skipped research and decide phases in the synthesis). Quick mode dispatches no planner agent — the orchestrator writes
278
288
  the artifacts directly:
279
289
 
280
290
  1. Write `.project/research/SYNTHESIS.md` containing only `## Settled` lines
@@ -282,7 +292,7 @@ the artifacts directly:
282
292
  plus a minimal `## For the planner` naming the walking skeleton. No
283
293
  invented decisions or runner-ups.
284
294
  2. Write `.project/plan/PLAN.md` with exactly one wave — `Review depth:
285
- verify-only` permitted — and at most two deliverable-sized task files
295
+ full` or `deep` — and at most two deliverable-sized task files
286
296
  (project policy),
287
297
  honoring every task-contract rule above and `.project/LESSONS.md` when it
288
298
  exists. Write `review_panel: off` and `finding_skeptics: off` regardless
@@ -3,6 +3,8 @@ name: gsd-path-research
3
3
  description: Dispatch parallel researchers and collect cited GSD Path evidence about domain, stack, pitfalls, and comparable products. Use only when the user explicitly invokes $gsd-path-research or an active $gsd-path router explicitly routes to this phase.
4
4
  ---
5
5
 
6
+ Before executing project helpers, read [runtime selection](references/runtime-selection.md).
7
+
6
8
  # GSD Path Research Phase
7
9
 
8
10
  Dispatch independent researchers and gate their evidence. Keep synthesis out
@@ -143,12 +145,9 @@ settled brownfield input.
143
145
  dimensions, and question count. Include `--project-dir .project/next` for
144
146
  lookahead. Require the returned state to be `research/done`. Report the
145
147
  outcome, link the resolved absolute `RESEARCH.md` path,
146
- summarize the dispatched evidence files, and name the decide phase as next.
147
- The decide phase reads the manifest; it must not infer dispatch state from
148
- a glob or free-form log. When routed by an active
149
- `$gsd-path`, return control to that router. When invoked directly, stop and
150
- tell the user to explicitly invoke `$gsd-path`, which routes to decide; do
151
- not invoke an explicit-only sibling skill yourself.
148
+ summarize the dispatched evidence files, and use the executable phase
149
+ handoff in AGENTS.md. The next phase reads the manifest rather than
150
+ inferring dispatch state from a glob or free-form log.
152
151
 
153
152
  ## Rules
154
153
 
@@ -3,6 +3,8 @@ name: gsd-path-roadmap
3
3
  description: Slice an approved GSD Path program charter into a dependency-ordered roadmap of independently shippable milestones. Use only when the user explicitly invokes $gsd-path-roadmap or an active $gsd-path router explicitly routes to this phase.
4
4
  ---
5
5
 
6
+ Before executing project helpers, read [runtime selection](references/runtime-selection.md).
7
+
6
8
  # GSD Path Roadmap Phase
7
9
 
8
10
  Dispatch one roadmapper, gate its roadmap, and obtain the single approval that
@@ -143,69 +145,33 @@ precondition fails.
143
145
  retain the entering state for a milestone-boundary re-slice; otherwise keep
144
146
  `phase: roadmap`, `status: active`. Retain the baseline, revise, and re-gate
145
147
  against that same baseline.
146
- 7. On approval in an established repository, record the exact full current
147
- HEAD before changing ROADMAP.md or STATE.md. For a milestone-boundary
148
- re-slice, keep its matching roadmap entry `active`, use `pipeline_state.py
149
- transition` to record `program roadmap re-slice approved` while expecting
150
- and retaining the complete entering `inspect/active` or `define/active`
151
- state, then checkpoint the pending `.project/` artifacts with:
152
-
153
- ```text
154
- python3 <absolute isolation.py> checkpoint \
155
- --repo <absolute root> --expected-head <recorded full HEAD> \
156
- --subject "roadmap: program roadmap approved" \
157
- --body "Why: approved roadmap checkpoint" \
158
- --allow-path .project
159
- ```
160
-
161
- On a post-abandon re-slice, mark only the helper-selected pending entry
162
- `active`, use `pipeline_state.py transition` with the complete current
163
- `roadmap/active` state as expected to set `phase: inspect`, `status: active`,
164
- `milestone` to the selected slug, preserve the bound branch, and set
165
- `archive: null`, with an event naming the abandoned predecessor. Then use
166
- the same `isolation.py checkpoint` command above. For a first roadmap
167
- approval, run:
148
+ 7. On approval, record the full current HEAD and use the bundled approval
149
+ module. For a first roadmap approval use `--kind roadmap`; for either
150
+ re-slice use `--kind roadmap-reslice`. In a milestone-boundary re-slice,
151
+ `--milestone` is the unchanged active milestone; after abandon, it is the
152
+ helper-selected pending milestone reviewed by the user.
168
153
 
169
154
  ```text
170
155
  python3 <absolute pipeline_state.py> approve \
171
- --repo <absolute root> --kind roadmap \
172
- --milestone <selected first pending slug> \
173
- --expected-head <recorded full HEAD>
156
+ --repo <absolute root> --kind roadmap-reslice \
157
+ --milestone <reviewed milestone slug> --expected-head <recorded full HEAD>
174
158
  ```
175
159
 
176
- The helper journals before mutation, proves the selected entry is pending
177
- and no entry is already active, marks it active, changes STATE from
178
- `roadmap/active` to `roadmap/done` with that milestone and event `program
179
- roadmap approved`, and checkpoints all pending `.project/` artifacts with
180
- the canonical roadmap subject and body, subject to the
181
- top-level allowlist in
182
- [isolation.PROJECT_ENTRIES](scripts/isolation.py). Require its typed result to report
183
- `schema: gsd-path/state-checkpoint/v1`, `status: approved`, `kind: roadmap`,
184
- `project_dir: .project`, `state.status: done`, the selected milestone, and
185
- the returned current commit. Rerun the same command after interruption; the
186
- matching journal owns recovery.
187
-
188
- For every re-slice, remove `.project/ROADMAP.before-reslice.md` only after
189
- the state transition succeeds and before the checkpoint. Retain it through
190
- every requested revision and failed approval attempt.
191
-
192
- Defer either checkpoint only when the directory is not yet a Git repository
193
- or `.project/REPOSITORY.md` records `Kind: new-github`. For a normal
194
- approval, run the same `approve` command with `--defer-checkpoint` instead
195
- of `--expected-head`; it marks the selected entry active and records
196
- `roadmap/done` with event `program roadmap approved`. `pipeline_state.py
197
- transition` never approves a roadmap. For
198
- a milestone-boundary re-slice, use the retaining transition above; for a
199
- post-abandon re-slice, use its transition above. The build transition
200
- commit owns the pending artifacts. Confirm approval and link ROADMAP.md again. For
201
- a milestone-boundary re-slice, state that the preserved inspect or define
202
- phase resumes; for a post-abandon re-slice, state that inspect is next;
203
- otherwise state that define (milestone mode) is next. Do not
204
- add another approval gate. When routed by an active `$gsd-path`, return
205
- control to that router so it routes the resulting state; never name define
206
- as next when inspect was preserved or selected. When invoked directly, stop
207
- and tell the user to explicitly invoke `$gsd-path`, which routes the same
208
- result; do not invoke an explicit-only sibling skill yourself.
160
+ The helper owns roadmap selection, expected state, baseline cleanup and
161
+ the approval checkpoint. It journals before mutation, retains the baseline
162
+ bytes for recovery, and refuses changes to settled or active entries.
163
+ A milestone-boundary re-slice retains Inspect or Define; a post-abandon
164
+ re-slice enters Inspect. Require its typed result to report `status:
165
+ approved`, the requested kind, milestone and returned commit. After an
166
+ interruption, follow the router's `resume-checkpoint` action; do not edit
167
+ state, delete the baseline or checkpoint separately.
168
+
169
+ Before Git exists, or during a `Kind: new-github` transaction, use the same
170
+ approval command with `--defer-checkpoint` instead of `--expected-head`.
171
+ That existing deferred path writes the metadata without a Git journal or
172
+ commit; the next build checkpoint owns it. Retain the baseline through
173
+ revisions and rejected approvals. Confirm approval, link ROADMAP.md again,
174
+ and use the executable phase handoff in AGENTS.md without another gate.
209
175
 
210
176
  ## Rules
211
177
 
@@ -3,13 +3,15 @@ name: gsd-path-ship
3
3
  description: Verify a completed GSD Path milestone, manage evidence-backed patch decisions, request final shipping approval, and archive the validated result. Use only when the user explicitly invokes $gsd-path-ship or an active $gsd-path router or build orchestrator explicitly routes to this phase.
4
4
  ---
5
5
 
6
+ Before executing project helpers, read [runtime selection](references/runtime-selection.md).
7
+
6
8
  # GSD Path Ship Phase
7
9
 
8
10
  Reuse proven review scope; dispatch reviewers for remaining claims. They never fix
9
11
  product code.
10
12
 
11
- Routing instructions below are caller handoffs under the AGENTS.md handoff
12
- rule; never invoke an explicit-only sibling skill yourself.
13
+ After completion, use the executable phase handoff in AGENTS.md.
14
+ Before completion, preserve the approval and recovery gates below.
13
15
 
14
16
  Require `pipeline: gsd-path/v2` in `.project/STATE.md`; a missing or different
15
17
  marker returns to `$gsd-path` for ownership checking. Read the local
@@ -174,8 +176,9 @@ so the position is unchanged. Then:
174
176
 
175
177
  ## Archive transaction
176
178
 
177
- Resolve the project's guard-owned `.gsd-path/runtime/archive_milestone.py` and
178
- `.gsd-path/runtime/pipeline_state.py` to absolute paths for `prepare`,
179
+ Resolve the declared runtime with `python3 -B
180
+ <project>/.gsd-path/status_runtime.py --repo <project> --runtime-path`; use
181
+ `archive_milestone.py` and `pipeline_state.py` from that verified directory for `prepare`,
179
182
  `render-manifest`, `preflight`, `record-shipment`, `validate`, `integrate`, and
180
183
  `validate-integrated`. Invoke them with `python3`; the files need not be
181
184
  executable. Skill-bundle copies are not the guard's trust anchor, even when
@@ -269,8 +272,9 @@ The persisted `STATE.archive` field is the transaction identity.
269
272
  create the ship phase's one commit with exact subject
270
273
  `ship: M00N — <milestone-slug>` and a body of exactly two consecutive lines,
271
274
  `Archive: .project/archive/<NNN>-<slug>` then
272
- `Reviewed-HEAD: <reviewed SHA>`, with no comment lines or blank line between them
273
- (pass the body as one `-m` value or from a message file). M00N and NNN come from STATE.archive.
275
+ `Reviewed-HEAD: <reviewed SHA>`, with no comment lines or blank line between them.
276
+ Write the subject, a blank line, and the two body lines to a message file,
277
+ then use `git commit -F <message-file>`. M00N and NNN come from STATE.archive.
274
278
  There is no untracked-project exception and no product or older-archive
275
279
  path may enter this commit.
276
280
  6. Immediately run `python3 <absolute archive_milestone.py> validate --repo <root>`. It requires the committed shipped state, exact archive and
@@ -363,27 +367,35 @@ Run this recovery setup from a separate checkout, outside the closed primary
363
367
  worktree's guard.
364
368
 
365
369
  1. Create separate disposable trust and validation checkouts from the same
366
- published origin and `STATE.branch`. This separation is required because a
367
- managed runtime refresh may dirty a checkout when `.gsd-path/` is tracked,
370
+ published origin and `STATE.branch`. This separation is required because an
371
+ explicit runtime upgrade changes the trust checkout's declaration and launcher,
368
372
  while archive validation requires a clean checkout. Never use the primary
369
373
  worktree for either role.
370
- 2. From the trusted fixed GSD Path checkout, preview and then refresh only the
374
+ 2. From the trusted fixed GSD Path checkout, preview and then explicitly upgrade only the
371
375
  disposable trust checkout's managed trust anchor:
372
376
 
373
377
  ```bash
374
- node <trusted-gsd-path>/scripts/install.mjs --hooks-refresh --dry-run --project <trust-root>
375
- node <trusted-gsd-path>/scripts/install.mjs --hooks-refresh --project <trust-root>
378
+ node <trusted-gsd-path>/scripts/install.mjs --runtime-upgrade --dry-run --project <trust-root>
379
+ node <trusted-gsd-path>/scripts/install.mjs --runtime-upgrade --project <trust-root>
380
+ ```
381
+
382
+ Confirm that the preview identifies the intended fixed version and digest.
383
+ Upgrade changes only the disposable trust project's declaration and compatible
384
+ launcher. For a legacy trust checkout with no declaration, use the explicit
385
+ `--runtime-migrate` preview and migration first. Resolve the upgraded runtime:
386
+
387
+ ```bash
388
+ python3 -B <trust-root>/.gsd-path/status_runtime.py --repo <trust-root> --runtime-path
376
389
  ```
377
390
 
378
- Continue only when the preview names managed `.gsd-path/` runtime or guard
379
- files and no `.project/` path. The installer owns the atomic refresh and
380
- refuses unmanaged or unsafe runtime entries.
381
- 3. Use only the refreshed project-local trust anchor to refresh publication
391
+ Use the returned absolute directory as `<verified-runtime>` below. Stop on any
392
+ error; do not substitute the validation checkout's older selected runtime.
393
+ 3. Use only this verified upgraded runtime to refresh publication
382
394
  refs in the clean validation checkout and validate its integrated milestone:
383
395
 
384
396
  ```bash
385
- python3 <trust-root>/.gsd-path/runtime/archive_milestone.py refresh-origin --repo <validation-root>
386
- python3 <trust-root>/.gsd-path/runtime/archive_milestone.py validate-integrated --repo <validation-root> --slug <STATE.milestone>
397
+ python3 -B <verified-runtime>/archive_milestone.py refresh-origin --repo <validation-root>
398
+ python3 -B <verified-runtime>/archive_milestone.py validate-integrated --repo <validation-root> --slug <STATE.milestone>
387
399
  ```
388
400
 
389
401
  4. A pass restores the normal shipped handoff without another commit or