@opengsd/gsd-path 1.0.0 → 1.1.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 (395) hide show
  1. package/AGENTS.md +28 -11
  2. package/DOCS.md +6 -5
  3. package/FULL.md +9 -13
  4. package/QUICK.md +3 -3
  5. package/README.md +151 -14
  6. package/RUNTIME.md +7 -1
  7. package/WORKFLOW.md +30 -14
  8. package/package.json +15 -1
  9. package/platforms/shared-agents/dispatch.md +6 -0
  10. package/scripts/archive_milestone.py +10 -118
  11. package/scripts/bootstrap_repository.py +25 -3
  12. package/scripts/build_recovery.py +287 -0
  13. package/scripts/check_docs_audit.py +5 -3
  14. package/scripts/check_handoffs.py +1 -1
  15. package/scripts/detect_project.py +11 -2
  16. package/scripts/dispatch_driver.py +4 -2
  17. package/scripts/git_guard.py +2 -1
  18. package/scripts/install.mjs +2 -0
  19. package/scripts/install.py +2 -0
  20. package/scripts/integration.py +28 -22
  21. package/scripts/isolation.py +9 -1
  22. package/scripts/lean_verification.py +1 -1
  23. package/scripts/pipeline_diagnose.py +12 -3
  24. package/scripts/pipeline_state.py +114 -186
  25. package/scripts/pipeline_undo.py +11 -7
  26. package/scripts/promote_lookahead.py +30 -162
  27. package/scripts/roadmap.py +321 -0
  28. package/scripts/skill-resources.json +79 -1
  29. package/scripts/state_checkpoint.py +109 -72
  30. package/scripts/state_promote.py +42 -44
  31. package/scripts/task_context.py +73 -0
  32. package/scripts/token_budget.py +40 -1
  33. package/scripts/workflow_run.py +116 -7
  34. package/skills/gsd-path/BUILD.md +47 -575
  35. package/skills/gsd-path/DECIDE.md +2 -6
  36. package/skills/gsd-path/DEFINE.md +10 -14
  37. package/skills/gsd-path/INSPECT.md +30 -8
  38. package/skills/gsd-path/PLAN.md +25 -17
  39. package/skills/gsd-path/RESEARCH.md +3 -6
  40. package/skills/gsd-path/ROADMAP.md +22 -58
  41. package/skills/gsd-path/SHIP.md +5 -4
  42. package/skills/gsd-path/SKILL.md +24 -14
  43. package/skills/gsd-path/references/build-abandon.md +33 -0
  44. package/skills/gsd-path/references/build-native.md +494 -0
  45. package/skills/gsd-path/references/build-recovery.md +78 -0
  46. package/skills/gsd-path/references/coder.md +8 -3
  47. package/skills/gsd-path/references/dispatch.md +6 -0
  48. package/skills/gsd-path/references/docs-auditor.md +14 -0
  49. package/skills/gsd-path/references/reviewer-final.md +21 -0
  50. package/skills/gsd-path/references/reviewer-panel.md +17 -0
  51. package/skills/gsd-path/references/reviewer-skeptic.md +20 -0
  52. package/skills/gsd-path/references/reviewer-wave.md +89 -0
  53. package/skills/gsd-path/references/reviewer.md +12 -150
  54. package/skills/gsd-path/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  55. package/skills/gsd-path/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
  56. package/skills/gsd-path/scripts/__pycache__/build_recovery.cpython-312.pyc +0 -0
  57. package/skills/gsd-path/scripts/__pycache__/build_state.cpython-312.pyc +0 -0
  58. package/skills/gsd-path/scripts/__pycache__/check_handoffs.cpython-312.pyc +0 -0
  59. package/skills/gsd-path/scripts/__pycache__/check_task_briefs.cpython-312.pyc +0 -0
  60. package/skills/gsd-path/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
  61. package/skills/gsd-path/scripts/__pycache__/discussion_records.cpython-312.pyc +0 -0
  62. package/skills/gsd-path/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
  63. package/skills/gsd-path/scripts/__pycache__/integration.cpython-312.pyc +0 -0
  64. package/skills/gsd-path/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
  65. package/skills/gsd-path/scripts/__pycache__/loop_run.cpython-312.pyc +0 -0
  66. package/skills/gsd-path/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
  67. package/skills/gsd-path/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
  68. package/skills/gsd-path/scripts/__pycache__/review_findings.cpython-312.pyc +0 -0
  69. package/skills/gsd-path/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
  70. package/skills/gsd-path/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
  71. package/skills/gsd-path/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
  72. package/skills/gsd-path/scripts/__pycache__/task_context.cpython-312.pyc +0 -0
  73. package/skills/gsd-path/scripts/__pycache__/workflow_run.cpython-312.pyc +0 -0
  74. package/skills/gsd-path/scripts/archive_milestone.py +10 -118
  75. package/skills/gsd-path/scripts/bootstrap_repository.py +25 -3
  76. package/skills/gsd-path/scripts/build_recovery.py +287 -0
  77. package/skills/gsd-path/scripts/check_docs_audit.py +5 -3
  78. package/skills/gsd-path/scripts/check_handoffs.py +1 -1
  79. package/skills/gsd-path/scripts/detect_project.py +11 -2
  80. package/skills/gsd-path/scripts/dispatch_driver.py +4 -2
  81. package/skills/gsd-path/scripts/integration.py +28 -22
  82. package/skills/gsd-path/scripts/isolation.py +9 -1
  83. package/skills/gsd-path/scripts/lean_verification.py +1 -1
  84. package/skills/gsd-path/scripts/pipeline_state.py +114 -186
  85. package/skills/gsd-path/scripts/promote_lookahead.py +30 -162
  86. package/skills/gsd-path/scripts/roadmap.py +321 -0
  87. package/skills/gsd-path/scripts/state_checkpoint.py +109 -72
  88. package/skills/gsd-path/scripts/state_promote.py +42 -44
  89. package/skills/gsd-path/scripts/task_context.py +73 -0
  90. package/skills/gsd-path/scripts/token_budget.py +40 -1
  91. package/skills/gsd-path/scripts/workflow_run.py +116 -7
  92. package/skills/gsd-path/templates/wave-review.md +1 -1
  93. package/skills/gsd-path-build/SKILL.md +47 -575
  94. package/skills/gsd-path-build/references/build-abandon.md +33 -0
  95. package/skills/gsd-path-build/references/build-native.md +494 -0
  96. package/skills/gsd-path-build/references/build-recovery.md +78 -0
  97. package/skills/gsd-path-build/references/coder.md +8 -3
  98. package/skills/gsd-path-build/references/dispatch.md +6 -0
  99. package/skills/gsd-path-build/references/reviewer-final.md +21 -0
  100. package/skills/gsd-path-build/references/reviewer-panel.md +17 -0
  101. package/skills/gsd-path-build/references/reviewer-skeptic.md +20 -0
  102. package/skills/gsd-path-build/references/reviewer-wave.md +89 -0
  103. package/skills/gsd-path-build/references/reviewer.md +12 -150
  104. package/skills/gsd-path-build/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  105. package/skills/gsd-path-build/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
  106. package/skills/gsd-path-build/scripts/__pycache__/build_recovery.cpython-312.pyc +0 -0
  107. package/skills/gsd-path-build/scripts/__pycache__/build_state.cpython-312.pyc +0 -0
  108. package/skills/gsd-path-build/scripts/__pycache__/check_handoffs.cpython-312.pyc +0 -0
  109. package/skills/gsd-path-build/scripts/__pycache__/check_task_briefs.cpython-312.pyc +0 -0
  110. package/skills/gsd-path-build/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
  111. package/skills/gsd-path-build/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
  112. package/skills/gsd-path-build/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
  113. package/skills/gsd-path-build/scripts/__pycache__/loop_run.cpython-312.pyc +0 -0
  114. package/skills/gsd-path-build/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
  115. package/skills/gsd-path-build/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
  116. package/skills/gsd-path-build/scripts/__pycache__/review_findings.cpython-312.pyc +0 -0
  117. package/skills/gsd-path-build/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
  118. package/skills/gsd-path-build/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
  119. package/skills/gsd-path-build/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
  120. package/skills/gsd-path-build/scripts/__pycache__/task_context.cpython-312.pyc +0 -0
  121. package/skills/gsd-path-build/scripts/__pycache__/workflow_run.cpython-312.pyc +0 -0
  122. package/skills/gsd-path-build/scripts/archive_milestone.py +10 -118
  123. package/skills/gsd-path-build/scripts/build_recovery.py +287 -0
  124. package/skills/gsd-path-build/scripts/check_handoffs.py +1 -1
  125. package/skills/gsd-path-build/scripts/detect_project.py +1526 -0
  126. package/skills/gsd-path-build/scripts/dispatch_driver.py +4 -2
  127. package/skills/gsd-path-build/scripts/integration.py +28 -22
  128. package/skills/gsd-path-build/scripts/isolation.py +9 -1
  129. package/skills/gsd-path-build/scripts/pipeline_state.py +114 -186
  130. package/skills/gsd-path-build/scripts/promote_lookahead.py +283 -0
  131. package/skills/gsd-path-build/scripts/roadmap.py +321 -0
  132. package/skills/gsd-path-build/scripts/state_checkpoint.py +109 -72
  133. package/skills/gsd-path-build/scripts/state_promote.py +42 -44
  134. package/skills/gsd-path-build/scripts/task_context.py +73 -0
  135. package/skills/gsd-path-build/scripts/token_budget.py +40 -1
  136. package/skills/gsd-path-build/scripts/workflow_run.py +116 -7
  137. package/skills/gsd-path-build/templates/wave-review.md +1 -1
  138. package/skills/gsd-path-decide/SKILL.md +2 -6
  139. package/skills/gsd-path-decide/references/dispatch.md +6 -0
  140. package/skills/gsd-path-decide/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  141. package/skills/gsd-path-decide/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
  142. package/skills/gsd-path-decide/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
  143. package/skills/gsd-path-decide/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
  144. package/skills/gsd-path-decide/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
  145. package/skills/gsd-path-decide/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
  146. package/skills/gsd-path-decide/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
  147. package/skills/gsd-path-decide/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
  148. package/skills/gsd-path-decide/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
  149. package/skills/gsd-path-decide/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
  150. package/skills/gsd-path-decide/scripts/archive_milestone.py +2157 -0
  151. package/skills/gsd-path-decide/scripts/build_recovery.py +287 -0
  152. package/skills/gsd-path-decide/scripts/check_handoffs.py +1 -1
  153. package/skills/gsd-path-decide/scripts/detect_project.py +1526 -0
  154. package/skills/gsd-path-decide/scripts/discussion_validate.py +1321 -0
  155. package/skills/gsd-path-decide/scripts/integration.py +1439 -0
  156. package/skills/gsd-path-decide/scripts/isolation.py +9 -1
  157. package/skills/gsd-path-decide/scripts/pipeline_state.py +114 -186
  158. package/skills/gsd-path-decide/scripts/promote_lookahead.py +283 -0
  159. package/skills/gsd-path-decide/scripts/review_panel.py +553 -0
  160. package/skills/gsd-path-decide/scripts/roadmap.py +321 -0
  161. package/skills/gsd-path-decide/scripts/state_checkpoint.py +109 -72
  162. package/skills/gsd-path-decide/scripts/state_promote.py +42 -44
  163. package/skills/gsd-path-define/SKILL.md +10 -14
  164. package/skills/gsd-path-define/references/build-recovery.md +78 -0
  165. package/skills/gsd-path-define/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  166. package/skills/gsd-path-define/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
  167. package/skills/gsd-path-define/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
  168. package/skills/gsd-path-define/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
  169. package/skills/gsd-path-define/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
  170. package/skills/gsd-path-define/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
  171. package/skills/gsd-path-define/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
  172. package/skills/gsd-path-define/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
  173. package/skills/gsd-path-define/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
  174. package/skills/gsd-path-define/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
  175. package/skills/gsd-path-define/scripts/archive_milestone.py +2157 -0
  176. package/skills/gsd-path-define/scripts/build_recovery.py +287 -0
  177. package/skills/gsd-path-define/scripts/check_handoffs.py +1 -1
  178. package/skills/gsd-path-define/scripts/detect_project.py +11 -2
  179. package/skills/gsd-path-define/scripts/discussion_validate.py +1321 -0
  180. package/skills/gsd-path-define/scripts/integration.py +1439 -0
  181. package/skills/gsd-path-define/scripts/isolation.py +9 -1
  182. package/skills/gsd-path-define/scripts/pipeline_state.py +114 -186
  183. package/skills/gsd-path-define/scripts/promote_lookahead.py +283 -0
  184. package/skills/gsd-path-define/scripts/review_panel.py +553 -0
  185. package/skills/gsd-path-define/scripts/roadmap.py +321 -0
  186. package/skills/gsd-path-define/scripts/state_checkpoint.py +109 -72
  187. package/skills/gsd-path-define/scripts/state_promote.py +42 -44
  188. package/skills/gsd-path-docs-audit/references/dispatch.md +6 -0
  189. package/skills/gsd-path-docs-audit/references/docs-auditor.md +14 -0
  190. package/skills/gsd-path-docs-audit/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  191. package/skills/gsd-path-docs-audit/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
  192. package/skills/gsd-path-docs-audit/scripts/__pycache__/build_recovery.cpython-312.pyc +0 -0
  193. package/skills/gsd-path-docs-audit/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
  194. package/skills/gsd-path-docs-audit/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
  195. package/skills/gsd-path-docs-audit/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
  196. package/skills/gsd-path-docs-audit/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
  197. package/skills/gsd-path-docs-audit/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
  198. package/skills/gsd-path-docs-audit/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
  199. package/skills/gsd-path-docs-audit/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
  200. package/skills/gsd-path-docs-audit/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
  201. package/skills/gsd-path-docs-audit/scripts/archive_milestone.py +2157 -0
  202. package/skills/gsd-path-docs-audit/scripts/build_recovery.py +287 -0
  203. package/skills/gsd-path-docs-audit/scripts/check_docs_audit.py +5 -3
  204. package/skills/gsd-path-docs-audit/scripts/check_handoffs.py +1 -1
  205. package/skills/gsd-path-docs-audit/scripts/detect_project.py +1526 -0
  206. package/skills/gsd-path-docs-audit/scripts/discussion_validate.py +1321 -0
  207. package/skills/gsd-path-docs-audit/scripts/integration.py +1439 -0
  208. package/skills/gsd-path-docs-audit/scripts/isolation.py +9 -1
  209. package/skills/gsd-path-docs-audit/scripts/pipeline_state.py +114 -186
  210. package/skills/gsd-path-docs-audit/scripts/promote_lookahead.py +283 -0
  211. package/skills/gsd-path-docs-audit/scripts/review_panel.py +553 -0
  212. package/skills/gsd-path-docs-audit/scripts/roadmap.py +321 -0
  213. package/skills/gsd-path-docs-audit/scripts/state_checkpoint.py +109 -72
  214. package/skills/gsd-path-docs-audit/scripts/state_promote.py +42 -44
  215. package/skills/gsd-path-forensics/scripts/__pycache__/pipeline_undo.cpython-312.pyc +0 -0
  216. package/skills/gsd-path-forensics/scripts/pipeline_diagnose.py +12 -3
  217. package/skills/gsd-path-forensics/scripts/pipeline_undo.py +11 -7
  218. package/skills/gsd-path-inspect/SKILL.md +30 -8
  219. package/skills/gsd-path-inspect/references/dispatch.md +6 -0
  220. package/skills/gsd-path-inspect/references/docs-auditor.md +14 -0
  221. package/skills/gsd-path-inspect/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  222. package/skills/gsd-path-inspect/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
  223. package/skills/gsd-path-inspect/scripts/__pycache__/build_recovery.cpython-312.pyc +0 -0
  224. package/skills/gsd-path-inspect/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
  225. package/skills/gsd-path-inspect/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
  226. package/skills/gsd-path-inspect/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
  227. package/skills/gsd-path-inspect/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
  228. package/skills/gsd-path-inspect/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
  229. package/skills/gsd-path-inspect/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
  230. package/skills/gsd-path-inspect/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
  231. package/skills/gsd-path-inspect/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
  232. package/skills/gsd-path-inspect/scripts/archive_milestone.py +2157 -0
  233. package/skills/gsd-path-inspect/scripts/build_recovery.py +287 -0
  234. package/skills/gsd-path-inspect/scripts/check_docs_audit.py +5 -3
  235. package/skills/gsd-path-inspect/scripts/check_handoffs.py +1 -1
  236. package/skills/gsd-path-inspect/scripts/detect_project.py +11 -2
  237. package/skills/gsd-path-inspect/scripts/discussion_validate.py +1321 -0
  238. package/skills/gsd-path-inspect/scripts/integration.py +1439 -0
  239. package/skills/gsd-path-inspect/scripts/isolation.py +9 -1
  240. package/skills/gsd-path-inspect/scripts/pipeline_state.py +114 -186
  241. package/skills/gsd-path-inspect/scripts/promote_lookahead.py +283 -0
  242. package/skills/gsd-path-inspect/scripts/review_panel.py +553 -0
  243. package/skills/gsd-path-inspect/scripts/roadmap.py +321 -0
  244. package/skills/gsd-path-inspect/scripts/state_checkpoint.py +109 -72
  245. package/skills/gsd-path-inspect/scripts/state_promote.py +42 -44
  246. package/skills/gsd-path-inspect/scripts/workflow_run.py +226 -0
  247. package/skills/gsd-path-plan/SKILL.md +25 -17
  248. package/skills/gsd-path-plan/references/build-recovery.md +78 -0
  249. package/skills/gsd-path-plan/references/dispatch.md +6 -0
  250. package/skills/gsd-path-plan/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  251. package/skills/gsd-path-plan/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
  252. package/skills/gsd-path-plan/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
  253. package/skills/gsd-path-plan/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
  254. package/skills/gsd-path-plan/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
  255. package/skills/gsd-path-plan/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
  256. package/skills/gsd-path-plan/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
  257. package/skills/gsd-path-plan/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
  258. package/skills/gsd-path-plan/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
  259. package/skills/gsd-path-plan/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
  260. package/skills/gsd-path-plan/scripts/archive_milestone.py +2157 -0
  261. package/skills/gsd-path-plan/scripts/build_recovery.py +287 -0
  262. package/skills/gsd-path-plan/scripts/check_handoffs.py +1 -1
  263. package/skills/gsd-path-plan/scripts/detect_project.py +1526 -0
  264. package/skills/gsd-path-plan/scripts/discussion_validate.py +1321 -0
  265. package/skills/gsd-path-plan/scripts/integration.py +1439 -0
  266. package/skills/gsd-path-plan/scripts/isolation.py +9 -1
  267. package/skills/gsd-path-plan/scripts/pipeline_state.py +114 -186
  268. package/skills/gsd-path-plan/scripts/promote_lookahead.py +283 -0
  269. package/skills/gsd-path-plan/scripts/roadmap.py +321 -0
  270. package/skills/gsd-path-plan/scripts/state_checkpoint.py +109 -72
  271. package/skills/gsd-path-plan/scripts/state_promote.py +42 -44
  272. package/skills/gsd-path-plan/scripts/workflow_run.py +116 -7
  273. package/skills/gsd-path-research/SKILL.md +3 -6
  274. package/skills/gsd-path-research/references/dispatch.md +6 -0
  275. package/skills/gsd-path-research/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  276. package/skills/gsd-path-research/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
  277. package/skills/gsd-path-research/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
  278. package/skills/gsd-path-research/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
  279. package/skills/gsd-path-research/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
  280. package/skills/gsd-path-research/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
  281. package/skills/gsd-path-research/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
  282. package/skills/gsd-path-research/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
  283. package/skills/gsd-path-research/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
  284. package/skills/gsd-path-research/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
  285. package/skills/gsd-path-research/scripts/archive_milestone.py +2157 -0
  286. package/skills/gsd-path-research/scripts/build_recovery.py +287 -0
  287. package/skills/gsd-path-research/scripts/check_handoffs.py +1 -1
  288. package/skills/gsd-path-research/scripts/detect_project.py +1526 -0
  289. package/skills/gsd-path-research/scripts/discussion_validate.py +1321 -0
  290. package/skills/gsd-path-research/scripts/integration.py +1439 -0
  291. package/skills/gsd-path-research/scripts/isolation.py +9 -1
  292. package/skills/gsd-path-research/scripts/pipeline_state.py +114 -186
  293. package/skills/gsd-path-research/scripts/promote_lookahead.py +283 -0
  294. package/skills/gsd-path-research/scripts/review_panel.py +553 -0
  295. package/skills/gsd-path-research/scripts/roadmap.py +321 -0
  296. package/skills/gsd-path-research/scripts/state_checkpoint.py +109 -72
  297. package/skills/gsd-path-research/scripts/state_promote.py +42 -44
  298. package/skills/gsd-path-roadmap/SKILL.md +22 -58
  299. package/skills/gsd-path-roadmap/references/dispatch.md +6 -0
  300. package/skills/gsd-path-roadmap/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  301. package/skills/gsd-path-roadmap/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
  302. package/skills/gsd-path-roadmap/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
  303. package/skills/gsd-path-roadmap/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
  304. package/skills/gsd-path-roadmap/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
  305. package/skills/gsd-path-roadmap/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
  306. package/skills/gsd-path-roadmap/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
  307. package/skills/gsd-path-roadmap/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
  308. package/skills/gsd-path-roadmap/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
  309. package/skills/gsd-path-roadmap/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
  310. package/skills/gsd-path-roadmap/scripts/archive_milestone.py +10 -118
  311. package/skills/gsd-path-roadmap/scripts/build_recovery.py +287 -0
  312. package/skills/gsd-path-roadmap/scripts/check_handoffs.py +1 -1
  313. package/skills/gsd-path-roadmap/scripts/detect_project.py +11 -2
  314. package/skills/gsd-path-roadmap/scripts/integration.py +28 -22
  315. package/skills/gsd-path-roadmap/scripts/isolation.py +9 -1
  316. package/skills/gsd-path-roadmap/scripts/pipeline_state.py +114 -186
  317. package/skills/gsd-path-roadmap/scripts/promote_lookahead.py +30 -162
  318. package/skills/gsd-path-roadmap/scripts/roadmap.py +321 -0
  319. package/skills/gsd-path-roadmap/scripts/state_checkpoint.py +109 -72
  320. package/skills/gsd-path-roadmap/scripts/state_promote.py +42 -44
  321. package/skills/gsd-path-ship/SKILL.md +5 -4
  322. package/skills/gsd-path-ship/references/dispatch.md +6 -0
  323. package/skills/gsd-path-ship/references/reviewer-final.md +21 -0
  324. package/skills/gsd-path-ship/references/reviewer-panel.md +17 -0
  325. package/skills/gsd-path-ship/references/reviewer-skeptic.md +20 -0
  326. package/skills/gsd-path-ship/references/reviewer-wave.md +89 -0
  327. package/skills/gsd-path-ship/references/reviewer.md +12 -150
  328. package/skills/gsd-path-ship/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  329. package/skills/gsd-path-ship/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
  330. package/skills/gsd-path-ship/scripts/__pycache__/build_recovery.cpython-312.pyc +0 -0
  331. package/skills/gsd-path-ship/scripts/__pycache__/build_state.cpython-312.pyc +0 -0
  332. package/skills/gsd-path-ship/scripts/__pycache__/check_handoffs.cpython-312.pyc +0 -0
  333. package/skills/gsd-path-ship/scripts/__pycache__/check_task_briefs.cpython-312.pyc +0 -0
  334. package/skills/gsd-path-ship/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
  335. package/skills/gsd-path-ship/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
  336. package/skills/gsd-path-ship/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
  337. package/skills/gsd-path-ship/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
  338. package/skills/gsd-path-ship/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
  339. package/skills/gsd-path-ship/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
  340. package/skills/gsd-path-ship/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
  341. package/skills/gsd-path-ship/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
  342. package/skills/gsd-path-ship/scripts/archive_milestone.py +10 -118
  343. package/skills/gsd-path-ship/scripts/build_recovery.py +287 -0
  344. package/skills/gsd-path-ship/scripts/check_handoffs.py +1 -1
  345. package/skills/gsd-path-ship/scripts/detect_project.py +1526 -0
  346. package/skills/gsd-path-ship/scripts/integration.py +28 -22
  347. package/skills/gsd-path-ship/scripts/isolation.py +9 -1
  348. package/skills/gsd-path-ship/scripts/lean_verification.py +1 -1
  349. package/skills/gsd-path-ship/scripts/pipeline_state.py +114 -186
  350. package/skills/gsd-path-ship/scripts/promote_lookahead.py +283 -0
  351. package/skills/gsd-path-ship/scripts/roadmap.py +321 -0
  352. package/skills/gsd-path-ship/scripts/state_checkpoint.py +109 -72
  353. package/skills/gsd-path-ship/scripts/state_promote.py +42 -44
  354. package/skills/gsd-path-ship/scripts/workflow_run.py +116 -7
  355. package/skills/gsd-path-ship/templates/wave-review.md +1 -1
  356. package/skills/gsd-path-undo/scripts/pipeline_undo.py +11 -7
  357. package/skills/path/BUILD.md +47 -575
  358. package/skills/path/DECIDE.md +2 -6
  359. package/skills/path/DEFINE.md +10 -14
  360. package/skills/path/INSPECT.md +30 -8
  361. package/skills/path/PLAN.md +25 -17
  362. package/skills/path/RESEARCH.md +3 -6
  363. package/skills/path/ROADMAP.md +22 -58
  364. package/skills/path/SHIP.md +5 -4
  365. package/skills/path/SKILL.md +24 -14
  366. package/skills/path/references/build-abandon.md +33 -0
  367. package/skills/path/references/build-native.md +494 -0
  368. package/skills/path/references/build-recovery.md +78 -0
  369. package/skills/path/references/coder.md +8 -3
  370. package/skills/path/references/dispatch.md +6 -0
  371. package/skills/path/references/docs-auditor.md +14 -0
  372. package/skills/path/references/reviewer-final.md +21 -0
  373. package/skills/path/references/reviewer-panel.md +17 -0
  374. package/skills/path/references/reviewer-skeptic.md +20 -0
  375. package/skills/path/references/reviewer-wave.md +89 -0
  376. package/skills/path/references/reviewer.md +12 -150
  377. package/skills/path/scripts/archive_milestone.py +10 -118
  378. package/skills/path/scripts/bootstrap_repository.py +25 -3
  379. package/skills/path/scripts/build_recovery.py +287 -0
  380. package/skills/path/scripts/check_docs_audit.py +5 -3
  381. package/skills/path/scripts/check_handoffs.py +1 -1
  382. package/skills/path/scripts/detect_project.py +11 -2
  383. package/skills/path/scripts/dispatch_driver.py +4 -2
  384. package/skills/path/scripts/integration.py +28 -22
  385. package/skills/path/scripts/isolation.py +9 -1
  386. package/skills/path/scripts/lean_verification.py +1 -1
  387. package/skills/path/scripts/pipeline_state.py +114 -186
  388. package/skills/path/scripts/promote_lookahead.py +30 -162
  389. package/skills/path/scripts/roadmap.py +321 -0
  390. package/skills/path/scripts/state_checkpoint.py +109 -72
  391. package/skills/path/scripts/state_promote.py +42 -44
  392. package/skills/path/scripts/task_context.py +73 -0
  393. package/skills/path/scripts/token_budget.py +40 -1
  394. package/skills/path/scripts/workflow_run.py +116 -7
  395. package/skills/path/templates/wave-review.md +1 -1
@@ -98,12 +98,8 @@ rules are unchanged; never write an active-path artifact.
98
98
  branch and archive values, `--set-phase decide --set-status done`, and an
99
99
  event naming the validated synthesis path. Include `--project-dir
100
100
  .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.
101
+ settled outcome, link SYNTHESIS.md again, and use the executable phase
102
+ handoff in AGENTS.md.
107
103
 
108
104
  ## Rules
109
105
 
@@ -36,16 +36,22 @@ ROADMAP.md exists), `roadmap/done`
36
36
  lookahead track at `define/active|blocked` also requires both current-track
37
37
  inspection artifacts and a Log entry proving `inspect/done` for the same
38
38
  milestone after its latest activation; otherwise route to inspect.
39
+ The sole later-phase exception is a blocked build entered through the
40
+ [build recovery contract](references/build-recovery.md). Follow its preparation
41
+ and corrections procedure when the runtime returns mode `corrections`; keep
42
+ the existing milestone identity and approval gate. Otherwise
39
43
  `define/done` or any later phase blocks rather than overwriting approved
40
44
  intent and leaving downstream artifacts stale. When an active router supplies
41
45
  the lookahead track root `.project/next/`, require its STATE.md to be a regular
42
46
  non-symlink file and evaluate this section against that track's state and
43
47
  paths; see Lookahead mode. If STATE.md is missing, run the bundled
44
48
  `python3 <absolute-bundled-script> initialize --repo <absolute-root>
45
- --template <absolute-state-template>` helper (`scripts/detect_project.py`) and
49
+ --template <absolute-state-template> --require-git` helper (`scripts/detect_project.py`) and
46
50
  follow its returned JSON `verdict` / `route`. This is the only no-state
47
51
  boundary; do not run `classify` first or classify from a directory listing or
48
- conversation. If the command exits nonzero, returns `error`, or returns
52
+ conversation. Handle `route: setup-repository` before the write gate: preserve
53
+ the folder unchanged and return to `$gsd-path` for repository setup; no state
54
+ was written. If the command exits nonzero, returns `error`, or returns
49
55
  `wrote_state: false`, report the error and block without routing or claiming
50
56
  STATE.md was written.
51
57
  - `owned` — continue under the existing-state rules above.
@@ -274,18 +280,8 @@ After approval, finalize `.project/intent/INTENT.md` and run
274
280
  current milestone/branch/archive values, event `milestone intent approved`,
275
281
  `--set-phase define --set-status done --set-milestone <milestone slug>`, and
276
282
  `--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.
283
+ the exact milestone. Confirm the approved outcome and link INTENT.md again.
284
+ Use the executable phase handoff in AGENTS.md for the next action.
289
285
 
290
286
  ## Rules
291
287
 
@@ -21,10 +21,12 @@ phase blocks.
21
21
 
22
22
  If STATE.md is missing, run the bundled
23
23
  `python3 <absolute-bundled-script> initialize --repo <absolute-root>
24
- --template <absolute-state-template>` helper (`scripts/detect_project.py`) and
24
+ --template <absolute-state-template> --require-git` helper (`scripts/detect_project.py`) and
25
25
  follow its returned JSON `verdict` / `route`. This is the only no-state
26
26
  boundary; do not run `classify` first or classify from a directory listing or
27
- conversation. If the command exits nonzero, returns `error`, or returns
27
+ conversation. Handle `route: setup-repository` before the write gate: preserve
28
+ the folder unchanged and return to `$gsd-path` for repository setup; no state
29
+ was written. If the command exits nonzero, returns `error`, or returns
28
30
  `wrote_state: false`, report the error and block without routing or claiming
29
31
  STATE.md was written.
30
32
  - `owned` — continue under the existing-state rules below.
@@ -47,6 +49,31 @@ same milestone; a later milestone's `inspect/active` is a new scan.
47
49
 
48
50
  ## Process
49
51
 
52
+ For an initial `inspect/active` inspection on the `.project` track, with neither output
53
+ artifact present and a clean Git product at the recorded HEAD, run the bundled
54
+ `python3 <absolute workflow_run.py> prepare-inspect --repo <absolute root>
55
+ --expected-head <recorded HEAD>` first. It performs the inventory freeze and
56
+ both sidecar preparations from steps 1–2 and writes complete assignment briefs.
57
+ Its state validation and pending-answer check satisfy those entry checks;
58
+ reuse their results at this boundary.
59
+ Use its returned `inspection.inventory_file` for the gate. Before dispatch, read
60
+ and apply the [runtime dispatch contract](references/dispatch.md), including its
61
+ host-specific context isolation. Dispatch each returned logical `task_name` in a fresh context with its `brief_file` path and the current
62
+ user constraints, including configured budgets. The child reads that file;
63
+ the parent does not read or rewrite the roles, templates, or generated briefs.
64
+ When both children return, review the mapper's Map and Findings against its
65
+ template as in step 3. After that review passes, run the bundled
66
+ `python3 <absolute workflow_run.py> finish-inspect --repo <absolute root>
67
+ --expected-head <recorded HEAD> --inspection <returned receipt_file>
68
+ --mapper-reviewed`. This runs the docs gate, checks the audit baseline,
69
+ collects and retires both sidecars, checks pending discussion, and records
70
+ `inspect/done` through the canonical transition. Do not repeat those operations.
71
+ Present step 4's ground truth and use step 5's caller handoff. A failure uses
72
+ step 3's failure contract and the returned step evidence; do not blindly rerun
73
+ the completion command or repeat already proven steps.
74
+ Prior evidence, lookahead, or a dirty/non-Git product uses steps 1–2 below.
75
+ Preparation never changes phase state; neither command dispatches agents.
76
+
50
77
  1. Before creating or changing `.project/` Markdown, freeze the helper's exact
51
78
  stdout from `python3 <absolute check_docs_audit.py> --repo <absolute root>
52
79
  --emit-inventory` in a temporary file. Do not rediscover or edit that
@@ -132,12 +159,7 @@ same milestone; a later milestone's `inspect/active` is a new scan.
132
159
  <current branch or null> --expect-archive <current archive or null>
133
160
  --set-phase inspect --set-status done`. This helper is the only ordinary
134
161
  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.
162
+ Use the executable phase handoff in AGENTS.md.
141
163
 
142
164
  ## Lookahead mode
143
165
 
@@ -29,8 +29,11 @@ Before dispatch, enter from `decide/done` or `define/done` with
29
29
  `--set-phase plan --set-status active`, and event `planning started`. Resume
30
30
  `plan/blocked` through the same helper with event `planning resumed`. Require
31
31
  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
32
+ For a blocked build, use the [build recovery contract](references/build-recovery.md).
33
+ The runtime's `build-repair` mode owns structural changes to the remaining task
34
+ inventory and the normal approval checkpoint; it is distinct from append-only
35
+ patch mode. Otherwise later phases block instead of replacing an approved plan.
36
+ Patch mode requires an approved plan, no in-progress task, and
34
37
  state `plan/done` or `ship/blocked`; any other state blocks. `build/done` is
35
38
  reserved exclusively for the build orchestrator's transition recovery and
36
39
  must return there instead of reopening planning. When an active router
@@ -74,10 +77,17 @@ router supplied lookahead mode. Every per-milestone path below, including
74
77
  review-panel evidence, is rooted there. Program inputs remain at `.project/`
75
78
  as stated in Lookahead mode.
76
79
 
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
80
+ 1. Resolve the local [plan template](templates/plan.md), [task template](templates/task.md),
81
+ `scripts/check_handoffs.py`, and `scripts/review_panel.py` to absolute paths.
82
+ Quick mode reads the plan and task templates because the parent writes
83
+ those artifacts. Other modes pass their paths to the planner. Execute the
84
+ helpers through the commands below and consume their results; their Python
85
+ source is not planning input. Read helper source only when diagnosing a
86
+ concrete failure that the returned error and documented recovery cannot
87
+ explain.
88
+ 2. In quick mode, skip planner dispatch and follow Quick mode below; do not
89
+ load the planner role or dispatch contract. In other modes, resolve the
90
+ local [planner role](references/planner.md) for the child, then follow the
81
91
  local [runtime dispatch contract](references/dispatch.md) with deterministic
82
92
  logical task name `plan`. Give it absolute role, `AGENTS.md`, `WORKFLOW.md`,
83
93
  input, template, and output paths, including `.project/LESSONS.md` when it
@@ -133,7 +143,7 @@ as stated in Lookahead mode.
133
143
  - Require a `Review depth` value (`full`, `deep`, or `verify-only`) on
134
144
  every wave. Wave 1 and any wave touching authentication, authorization,
135
145
  payments, data migration, or concurrency requires `full` or `deep`;
136
- quick-lane single waves may use `verify-only`. The planner assigns `deep`
146
+ this includes quick-lane single waves. The planner assigns `deep`
137
147
  sparingly to waves where a wrong merge is irreversible or
138
148
  security-critical.
139
149
  - When INTENT.md `Surfaces:` is not `none`, require a PLAN.md
@@ -199,7 +209,9 @@ as stated in Lookahead mode.
199
209
  - `status: error` or exit 2 — use the same guarded transition to set
200
210
  `plan/blocked` with an event naming the helper error, link PLAN.md, and stop.
201
211
  A named family that is not advertised is an assertion failure.
202
- - `status: ready` — for each selected family, spawn one independent child
212
+ - `status: ready` — resolve the local
213
+ [plan-panel template](templates/plan-panel.md) for the reviewers; other
214
+ statuses do not load this template. For each selected family, spawn one independent child
203
215
  with logical task name `review_plan_panel_<family>`, the reviewer role
204
216
  in plan-panel mode, the plan-panel template, and the exact helper-returned
205
217
  model slug when the host advertises model selection. Never override the
@@ -257,12 +269,8 @@ as stated in Lookahead mode.
257
269
  (event `patch plan approved`) without a plan checkpoint because build's
258
270
  patch re-entry commits the artifacts with its `build/active` transition.
259
271
  `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.
272
+ link PLAN.md again, and use the executable phase handoff in AGENTS.md.
273
+ The plan approval also authorizes build; do not add another approval gate.
266
274
 
267
275
  ## Ordering rules
268
276
 
@@ -273,8 +281,8 @@ as stated in Lookahead mode.
273
281
  ## Quick mode
274
282
 
275
283
  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
284
+ to `plan/active` using exactly the Preconditions event `planning started`;
285
+ record the skipped research and decide phases in the synthesis). Quick mode dispatches no planner agent — the orchestrator writes
278
286
  the artifacts directly:
279
287
 
280
288
  1. Write `.project/research/SYNTHESIS.md` containing only `## Settled` lines
@@ -282,7 +290,7 @@ the artifacts directly:
282
290
  plus a minimal `## For the planner` naming the walking skeleton. No
283
291
  invented decisions or runner-ups.
284
292
  2. Write `.project/plan/PLAN.md` with exactly one wave — `Review depth:
285
- verify-only` permitted — and at most two deliverable-sized task files
293
+ full` or `deep` — and at most two deliverable-sized task files
286
294
  (project policy),
287
295
  honoring every task-contract rule above and `.project/LESSONS.md` when it
288
296
  exists. Write `review_panel: off` and `finding_skeptics: off` regardless
@@ -143,12 +143,9 @@ settled brownfield input.
143
143
  dimensions, and question count. Include `--project-dir .project/next` for
144
144
  lookahead. Require the returned state to be `research/done`. Report the
145
145
  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.
146
+ summarize the dispatched evidence files, and use the executable phase
147
+ handoff in AGENTS.md. The next phase reads the manifest rather than
148
+ inferring dispatch state from a glob or free-form log.
152
149
 
153
150
  ## Rules
154
151
 
@@ -143,69 +143,33 @@ precondition fails.
143
143
  retain the entering state for a milestone-boundary re-slice; otherwise keep
144
144
  `phase: roadmap`, `status: active`. Retain the baseline, revise, and re-gate
145
145
  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:
146
+ 7. On approval, record the full current HEAD and use the bundled approval
147
+ module. For a first roadmap approval use `--kind roadmap`; for either
148
+ re-slice use `--kind roadmap-reslice`. In a milestone-boundary re-slice,
149
+ `--milestone` is the unchanged active milestone; after abandon, it is the
150
+ helper-selected pending milestone reviewed by the user.
168
151
 
169
152
  ```text
170
153
  python3 <absolute pipeline_state.py> approve \
171
- --repo <absolute root> --kind roadmap \
172
- --milestone <selected first pending slug> \
173
- --expected-head <recorded full HEAD>
154
+ --repo <absolute root> --kind roadmap-reslice \
155
+ --milestone <reviewed milestone slug> --expected-head <recorded full HEAD>
174
156
  ```
175
157
 
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.
158
+ The helper owns roadmap selection, expected state, baseline cleanup and
159
+ the approval checkpoint. It journals before mutation, retains the baseline
160
+ bytes for recovery, and refuses changes to settled or active entries.
161
+ A milestone-boundary re-slice retains Inspect or Define; a post-abandon
162
+ re-slice enters Inspect. Require its typed result to report `status:
163
+ approved`, the requested kind, milestone and returned commit. After an
164
+ interruption, follow the router's `resume-checkpoint` action; do not edit
165
+ state, delete the baseline or checkpoint separately.
166
+
167
+ Before Git exists, or during a `Kind: new-github` transaction, use the same
168
+ approval command with `--defer-checkpoint` instead of `--expected-head`.
169
+ That existing deferred path writes the metadata without a Git journal or
170
+ commit; the next build checkpoint owns it. Retain the baseline through
171
+ revisions and rejected approvals. Confirm approval, link ROADMAP.md again,
172
+ and use the executable phase handoff in AGENTS.md without another gate.
209
173
 
210
174
  ## Rules
211
175
 
@@ -8,8 +8,8 @@ description: Verify a completed GSD Path milestone, manage evidence-backed patch
8
8
  Reuse proven review scope; dispatch reviewers for remaining claims. They never fix
9
9
  product code.
10
10
 
11
- Routing instructions below are caller handoffs under the AGENTS.md handoff
12
- rule; never invoke an explicit-only sibling skill yourself.
11
+ After completion, use the executable phase handoff in AGENTS.md.
12
+ Before completion, preserve the approval and recovery gates below.
13
13
 
14
14
  Require `pipeline: gsd-path/v2` in `.project/STATE.md`; a missing or different
15
15
  marker returns to `$gsd-path` for ownership checking. Read the local
@@ -269,8 +269,9 @@ The persisted `STATE.archive` field is the transaction identity.
269
269
  create the ship phase's one commit with exact subject
270
270
  `ship: M00N — <milestone-slug>` and a body of exactly two consecutive lines,
271
271
  `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.
272
+ `Reviewed-HEAD: <reviewed SHA>`, with no comment lines or blank line between them.
273
+ Write the subject, a blank line, and the two body lines to a message file,
274
+ then use `git commit -F <message-file>`. M00N and NNN come from STATE.archive.
274
275
  There is no untracked-project exception and no product or older-archive
275
276
  path may enter this commit.
276
277
  6. Immediately run `python3 <absolute archive_milestone.py> validate --repo <root>`. It requires the committed shipped state, exact archive and
@@ -24,10 +24,9 @@ When the invocation argument is exactly `status`, report and stop:
24
24
  1. Run `python3 <absolute-bundled-pipeline-state.py> status --repo
25
25
  <absolute-root>`. Treat the JSON as the only status authority. Do not
26
26
  initialize STATE.md, bind a branch, or create a repository from this mode.
27
- 2. Present **Outcome** as `state.phase`/`state.status`, `route.action`,
28
- `next_skill`, and the pending-answer count. **Review** links the JSON
29
- `path` (STATE.md). **Next** names `next_skill` or the `route.reason` when
30
- `route.action` is `block`, without invoking either.
27
+ 2. Present the returned `handoff.outcome`, `handoff.review`, and
28
+ `handoff.next` as **Outcome**, **Review**, and **Next**, plus the
29
+ pending-answer count. Use the host's invocation prefix.
31
30
  3. Do not run a phase contract, auto-advance, spawn agents, or apply undo.
32
31
 
33
32
  `$gsd-path status` (Codex) and `/gsd-path status` (other hosts) are the only
@@ -66,19 +65,27 @@ GitHub repository and no owned `.project/STATE.md` is active for that request.
66
65
  local workspace when absent; do not infer account ownership or visibility.
67
66
  Derive `gsd-path/M001` as the branch. The default checkout is
68
67
  `<resolved-workspace>/<repo-name>`; propose the distinct sibling
69
- `<resolved-workspace>/<repo-name>-gsd-path` as the linked worktree. The user
68
+ `<resolved-workspace>/<repo-name>-gsd-path` as the linked worktree. When
69
+ starting in an empty non-Git folder, propose that existing folder as the
70
+ linked worktree with `--reuse-empty-worktree`, and a distinct absent default
71
+ checkout beside it. Use the parent as workspace so the journal stays outside
72
+ the worktree. Preserve the invocation folder and all its contents; never
73
+ delete it or STATE.md to satisfy a preview. A nonempty folder requires a
74
+ different target or an explicit recovery. The user
70
75
  may choose another workspace or worktree path before approval.
71
76
  2. Resolve the bundled `scripts/bootstrap_repository.py` to an absolute path.
72
77
  Run its `preview` command with the exact owner, repository, visibility,
73
78
  workspace, default checkout, linked worktree, and optional description. The
74
79
  helper checks authentication, remote state, path parents, and any matching
75
80
  transaction journal without mutation. `mode: create` means every target is
76
- absent; `mode: resume` means the exact approved journal exists and the helper
81
+ absent, except an explicitly approved empty linked-worktree directory;
82
+ `mode: resume` means the exact approved journal exists and the helper
77
83
  can verify and adopt completed stages; `mode: complete` names an already
78
84
  initialized binding. Any ambiguity or unowned collision blocks.
79
85
  3. Present **Outcome** as a repository-creation preview. Present **Review** with
80
86
  the proposed GitHub URL, visibility, default-checkout path, GSD Path branch,
81
- and linked-worktree path, all marked not yet created. Present **Next** as one
87
+ and linked-worktree path. Mark new targets not yet created and an existing
88
+ empty worktree folder as reused in place. Present **Next** as one
82
89
  choice: `Create repository and worktree (recommended)` for `mode: create`, or
83
90
  `Resume verified repository transaction (recommended)` for `mode: resume`,
84
91
  followed by `Change details` and `Cancel`. Present this review inline; do not
@@ -115,10 +122,15 @@ selects a milestone branch.
115
122
  mutation. In particular, never stamp the marker onto unowned state.
116
123
  2. With no STATE.md, run the bundled
117
124
  `python3 <absolute-bundled-script> initialize --repo <absolute-root>
118
- --template <absolute-state-template>` helper
125
+ --template <absolute-state-template> --require-git` helper
119
126
  (`scripts/detect_project.py`) before asking anything. Do not classify
120
127
  brownfield, greenfield, or orphaned `.project/` from a directory listing or
121
- conversation. If the command exits nonzero, returns `error`, or returns
128
+ conversation. Handle `route: setup-repository` before the write gate: the
129
+ helper left the folder unchanged and wrote no state. Ask whether to create
130
+ a new GitHub repository (recommended for an empty folder) or use an existing
131
+ repository. A new-repository choice enters the preview transaction above;
132
+ an existing-repository choice requires its path before continuing. Do not
133
+ bind a branch or enter a phase yet. If the command exits nonzero, returns `error`, or returns
122
134
  `wrote_state: false`, report the error and block without routing or claiming
123
135
  STATE.md was written. Otherwise follow the JSON `verdict` / `route` exactly.
124
136
  `initialize` classifies and, for brownfield or greenfield, writes STATE.md
@@ -283,11 +295,9 @@ python3 <absolute-bundled-pipeline-state.py> transition \
283
295
  --event "build started"
284
296
  ```
285
297
 
286
- Report normal progress in three labeled lines: **Outcome** names the phase and
287
- completed work, **Review** links the newest canonical artifact using its
288
- resolved absolute path when one exists, and **Next** names the action the
289
- router is taking or the single action required from the user. Resolve the
290
- routed track root first: `.project/` for the active track or `.project/next/`
298
+ Report normal progress through the executable phase handoff in AGENTS.md.
299
+ Use `handoff.router_next` while this router owns continuation.
300
+ Resolve the routed track root first: `.project/` for the active track or `.project/next/`
291
301
  for lookahead. If that track root's `research/DOCS-AUDIT.md` has `planned: no`
292
302
  rulings, add one alignment-queue line and offer once to route them through the
293
303
  bundled [plan contract](PLAN.md); declining does not block.
@@ -0,0 +1,33 @@
1
+ ## Milestone abandon (program flow only)
2
+
3
+ Abandon the active milestone only on an explicit user ruling — from the
4
+ review-cycle-cap escalation, a decision invalidation, or a direct request.
5
+ Require `.project/ROADMAP.md`; a single-milestone project has no abandon
6
+ path — stop and let the user decide how to restart.
7
+
8
+ 1. Retire every recorded task worktree and branch with `isolation.py retire`
9
+ after confirming ownership, recording each discarded uncommitted diff's
10
+ exact path set and hash in the STATE.md log. Never discard work the
11
+ recorded metadata cannot own.
12
+ 2. Run the bundled `scripts/archive_milestone.py abandon --repo <absolute
13
+ repo root> --slug <milestone slug> --reason <user ruling, verbatim>`.
14
+ This one helper-owned transaction journals the exact request and starting
15
+ HEAD before mutation; archives the partial artifacts without review gates;
16
+ marks the exact ROADMAP entry `Status: abandoned` with its `Archive:` path;
17
+ appends `- <NNN>-<slug> — abandoned: <collapsed ruling>` exactly once to
18
+ LESSONS.md; transitions STATE to `roadmap/active` with `milestone: null`
19
+ and `archive: null`; and creates the checkpoint with exact subject `build:
20
+ abandon milestone <slug>` and body `Why: <collapsed ruling>`. The manifest
21
+ `Reason:` and checkpoint `Why:` are the same normalized ruling.
22
+ 3. Rerun the same command with the same slug and ruling after any interruption.
23
+ It resumes archive moves, metadata, state transition, or checkpoint from
24
+ the journaled starting HEAD; a changed slug, ruling, archive, branch, or
25
+ manifest reason blocks. Success returns the archive, exact checkpoint
26
+ commit, and `committed` or `already-complete` status. Never edit or commit
27
+ any part of this transaction manually and never select another sequence
28
+ number.
29
+ 4. Return to the router, which routes `roadmap/active` to the roadmap
30
+ contract in re-slice mode. The abandoned code stays on the build branch
31
+ until the next milestone's integration, then reaches the default branch as
32
+ inert history; the re-slice plans around it. Never revert product commits
33
+ yourself.