@opengsd/gsd-path 1.1.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 (577) hide show
  1. package/AGENTS.md +5 -2
  2. package/CHANGELOG.md +68 -0
  3. package/DOCS.md +69 -1
  4. package/FULL.md +3 -2
  5. package/HOOKS.md +18 -9
  6. package/QUICK.md +5 -3
  7. package/README.md +72 -5
  8. package/RUNTIME.md +9 -4
  9. package/UPDATE.md +30 -11
  10. package/WORKFLOW.md +5 -2
  11. package/package.json +9 -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 +6 -19
  21. package/scripts/_common.py +5 -0
  22. package/scripts/archive_milestone.py +20 -6
  23. package/scripts/bootstrap_repository.py +8 -1
  24. package/scripts/build_recovery.py +5 -0
  25. package/scripts/build_state.py +2 -0
  26. package/scripts/check_docs_audit.py +2 -0
  27. package/scripts/check_handoffs.py +6 -0
  28. package/scripts/check_task_briefs.py +3 -0
  29. package/scripts/detect_project.py +11 -1
  30. package/scripts/discussion_records.py +3 -0
  31. package/scripts/discussion_validate.py +8 -3
  32. package/scripts/dispatch_driver.py +230 -21
  33. package/scripts/git_guard.py +12 -4
  34. package/scripts/guard_hook.py +11 -1
  35. package/scripts/install.mjs +52 -1448
  36. package/scripts/install.py +155 -190
  37. package/scripts/integration.py +28 -8
  38. package/scripts/isolation.py +15 -5
  39. package/scripts/jev_review.py +138 -0
  40. package/scripts/lean_verification.py +2 -0
  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 +3 -0
  45. package/scripts/pipeline_git.py +3 -0
  46. package/scripts/pipeline_state.py +4 -1
  47. package/scripts/pipeline_undo.py +3 -0
  48. package/scripts/promote_lookahead.py +3 -0
  49. package/scripts/review_panel.py +11 -0
  50. package/scripts/roadmap.py +5 -0
  51. package/scripts/runtime_store.py +278 -0
  52. package/scripts/skill-resources.json +104 -4
  53. package/scripts/state_checkpoint.py +5 -0
  54. package/scripts/state_promote.py +5 -0
  55. package/scripts/status_runtime.py +92 -6
  56. package/scripts/workflow_run.py +12 -1
  57. package/scripts/worktree_paths.py +94 -0
  58. package/skills/gsd-path/BUILD.md +7 -0
  59. package/skills/gsd-path/DECIDE.md +2 -0
  60. package/skills/gsd-path/DEFINE.md +13 -7
  61. package/skills/gsd-path/DOCS-AUDIT.md +2 -0
  62. package/skills/gsd-path/INSPECT.md +2 -0
  63. package/skills/gsd-path/PLAN.md +4 -2
  64. package/skills/gsd-path/RESEARCH.md +2 -0
  65. package/skills/gsd-path/ROADMAP.md +2 -0
  66. package/skills/gsd-path/SHIP.md +24 -13
  67. package/skills/gsd-path/SKILL.md +23 -9
  68. package/skills/gsd-path/references/build-native.md +15 -7
  69. package/skills/gsd-path/references/config.md +57 -0
  70. package/skills/gsd-path/references/dispatch.md +6 -19
  71. package/skills/gsd-path/references/jev-review.md +82 -0
  72. package/skills/gsd-path/references/model-policy.md +139 -0
  73. package/skills/gsd-path/references/reviewer-panel.md +1 -1
  74. package/skills/gsd-path/references/reviewer.md +2 -0
  75. package/skills/gsd-path/references/runtime-selection.md +25 -0
  76. package/skills/gsd-path/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  77. package/skills/gsd-path/scripts/__pycache__/check_handoffs.cpython-312.pyc +0 -0
  78. package/skills/gsd-path/scripts/_common.py +5 -0
  79. package/skills/gsd-path/scripts/archive_milestone.py +20 -6
  80. package/skills/gsd-path/scripts/bootstrap_repository.py +8 -1
  81. package/skills/gsd-path/scripts/build_recovery.py +5 -0
  82. package/skills/gsd-path/scripts/build_state.py +2 -0
  83. package/skills/gsd-path/scripts/check_docs_audit.py +2 -0
  84. package/skills/gsd-path/scripts/check_handoffs.py +6 -0
  85. package/skills/gsd-path/scripts/check_task_briefs.py +3 -0
  86. package/skills/gsd-path/scripts/detect_project.py +11 -1
  87. package/skills/gsd-path/scripts/discussion_records.py +3 -0
  88. package/skills/gsd-path/scripts/discussion_validate.py +8 -3
  89. package/skills/gsd-path/scripts/dispatch_driver.py +230 -21
  90. package/skills/gsd-path/scripts/git_guard.py +768 -0
  91. package/skills/gsd-path/scripts/integration.py +28 -8
  92. package/skills/gsd-path/scripts/isolation.py +15 -5
  93. package/skills/gsd-path/scripts/jev_review.py +138 -0
  94. package/skills/gsd-path/scripts/lean_verification.py +2 -0
  95. package/skills/gsd-path/scripts/loop_run.py +2 -0
  96. package/skills/gsd-path/scripts/model_policy.py +279 -0
  97. package/skills/gsd-path/scripts/path_config.py +248 -0
  98. package/skills/gsd-path/scripts/pipeline_git.py +3 -0
  99. package/skills/gsd-path/scripts/pipeline_state.py +4 -1
  100. package/skills/gsd-path/scripts/promote_lookahead.py +3 -0
  101. package/skills/gsd-path/scripts/review_panel.py +11 -0
  102. package/skills/gsd-path/scripts/roadmap.py +5 -0
  103. package/skills/gsd-path/scripts/state_checkpoint.py +5 -0
  104. package/skills/gsd-path/scripts/state_promote.py +5 -0
  105. package/skills/gsd-path/scripts/status_runtime.py +208 -0
  106. package/skills/gsd-path/scripts/workflow_run.py +12 -1
  107. package/skills/gsd-path/scripts/worktree_paths.py +94 -0
  108. package/skills/gsd-path/templates/skeptic.md +1 -1
  109. package/skills/gsd-path/templates/task.md +2 -0
  110. package/skills/gsd-path/templates/wave-panel.md +1 -1
  111. package/skills/gsd-path-build/SKILL.md +7 -0
  112. package/skills/gsd-path-build/references/build-native.md +15 -7
  113. package/skills/gsd-path-build/references/dispatch.md +6 -19
  114. package/skills/gsd-path-build/references/jev-review.md +82 -0
  115. package/skills/gsd-path-build/references/model-policy.md +139 -0
  116. package/skills/gsd-path-build/references/reviewer-panel.md +1 -1
  117. package/skills/gsd-path-build/references/reviewer.md +2 -0
  118. package/skills/gsd-path-build/references/runtime-selection.md +25 -0
  119. package/skills/gsd-path-build/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  120. package/skills/gsd-path-build/scripts/__pycache__/check_handoffs.cpython-312.pyc +0 -0
  121. package/skills/gsd-path-build/scripts/_common.py +5 -0
  122. package/skills/gsd-path-build/scripts/archive_milestone.py +20 -6
  123. package/skills/gsd-path-build/scripts/build_recovery.py +5 -0
  124. package/skills/gsd-path-build/scripts/build_state.py +2 -0
  125. package/skills/gsd-path-build/scripts/check_handoffs.py +6 -0
  126. package/skills/gsd-path-build/scripts/check_task_briefs.py +3 -0
  127. package/skills/gsd-path-build/scripts/detect_project.py +11 -1
  128. package/skills/gsd-path-build/scripts/discussion_records.py +3 -0
  129. package/skills/gsd-path-build/scripts/discussion_validate.py +8 -3
  130. package/skills/gsd-path-build/scripts/dispatch_driver.py +230 -21
  131. package/skills/gsd-path-build/scripts/integration.py +28 -8
  132. package/skills/gsd-path-build/scripts/isolation.py +15 -5
  133. package/skills/gsd-path-build/scripts/jev_review.py +138 -0
  134. package/skills/gsd-path-build/scripts/loop_run.py +2 -0
  135. package/skills/gsd-path-build/scripts/model_policy.py +279 -0
  136. package/skills/gsd-path-build/scripts/path_config.py +248 -0
  137. package/skills/gsd-path-build/scripts/pipeline_git.py +3 -0
  138. package/skills/gsd-path-build/scripts/pipeline_state.py +4 -1
  139. package/skills/gsd-path-build/scripts/promote_lookahead.py +3 -0
  140. package/skills/gsd-path-build/scripts/review_panel.py +11 -0
  141. package/skills/gsd-path-build/scripts/roadmap.py +5 -0
  142. package/skills/gsd-path-build/scripts/state_checkpoint.py +5 -0
  143. package/skills/gsd-path-build/scripts/state_promote.py +5 -0
  144. package/skills/gsd-path-build/scripts/workflow_run.py +12 -1
  145. package/skills/gsd-path-build/scripts/worktree_paths.py +94 -0
  146. package/skills/gsd-path-build/templates/skeptic.md +1 -1
  147. package/skills/gsd-path-build/templates/task.md +2 -0
  148. package/skills/gsd-path-build/templates/wave-panel.md +1 -1
  149. package/skills/gsd-path-decide/SKILL.md +2 -0
  150. package/skills/gsd-path-decide/references/dispatch.md +6 -19
  151. package/skills/gsd-path-decide/references/model-policy.md +139 -0
  152. package/skills/gsd-path-decide/references/runtime-selection.md +25 -0
  153. package/skills/gsd-path-decide/scripts/_common.py +5 -0
  154. package/skills/gsd-path-decide/scripts/archive_milestone.py +20 -6
  155. package/skills/gsd-path-decide/scripts/build_recovery.py +5 -0
  156. package/skills/gsd-path-decide/scripts/check_handoffs.py +6 -0
  157. package/skills/gsd-path-decide/scripts/check_task_briefs.py +3 -0
  158. package/skills/gsd-path-decide/scripts/detect_project.py +11 -1
  159. package/skills/gsd-path-decide/scripts/discussion_records.py +3 -0
  160. package/skills/gsd-path-decide/scripts/discussion_validate.py +8 -3
  161. package/skills/gsd-path-decide/scripts/integration.py +28 -8
  162. package/skills/gsd-path-decide/scripts/isolation.py +15 -5
  163. package/skills/gsd-path-decide/scripts/loop_run.py +839 -0
  164. package/skills/gsd-path-decide/scripts/model_policy.py +279 -0
  165. package/skills/gsd-path-decide/scripts/path_config.py +248 -0
  166. package/skills/gsd-path-decide/scripts/pipeline_git.py +3 -0
  167. package/skills/gsd-path-decide/scripts/pipeline_state.py +4 -1
  168. package/skills/gsd-path-decide/scripts/promote_lookahead.py +3 -0
  169. package/skills/gsd-path-decide/scripts/review_panel.py +11 -0
  170. package/skills/gsd-path-decide/scripts/roadmap.py +5 -0
  171. package/skills/gsd-path-decide/scripts/state_checkpoint.py +5 -0
  172. package/skills/gsd-path-decide/scripts/state_promote.py +5 -0
  173. package/skills/gsd-path-decide/scripts/worktree_paths.py +94 -0
  174. package/skills/gsd-path-define/SKILL.md +13 -7
  175. package/skills/gsd-path-define/references/runtime-selection.md +25 -0
  176. package/skills/gsd-path-define/scripts/_common.py +5 -0
  177. package/skills/gsd-path-define/scripts/archive_milestone.py +20 -6
  178. package/skills/gsd-path-define/scripts/build_recovery.py +5 -0
  179. package/skills/gsd-path-define/scripts/check_handoffs.py +6 -0
  180. package/skills/gsd-path-define/scripts/check_task_briefs.py +3 -0
  181. package/skills/gsd-path-define/scripts/detect_project.py +11 -1
  182. package/skills/gsd-path-define/scripts/discussion_records.py +3 -0
  183. package/skills/gsd-path-define/scripts/discussion_validate.py +8 -3
  184. package/skills/gsd-path-define/scripts/integration.py +28 -8
  185. package/skills/gsd-path-define/scripts/isolation.py +15 -5
  186. package/skills/gsd-path-define/scripts/loop_run.py +839 -0
  187. package/skills/gsd-path-define/scripts/model_policy.py +279 -0
  188. package/skills/gsd-path-define/scripts/path_config.py +248 -0
  189. package/skills/gsd-path-define/scripts/pipeline_git.py +3 -0
  190. package/skills/gsd-path-define/scripts/pipeline_state.py +4 -1
  191. package/skills/gsd-path-define/scripts/promote_lookahead.py +3 -0
  192. package/skills/gsd-path-define/scripts/review_panel.py +11 -0
  193. package/skills/gsd-path-define/scripts/roadmap.py +5 -0
  194. package/skills/gsd-path-define/scripts/state_checkpoint.py +5 -0
  195. package/skills/gsd-path-define/scripts/state_promote.py +5 -0
  196. package/skills/gsd-path-define/scripts/worktree_paths.py +94 -0
  197. package/skills/gsd-path-discuss/SKILL.md +2 -0
  198. package/skills/gsd-path-discuss/references/runtime-selection.md +25 -0
  199. package/skills/gsd-path-discuss/scripts/_common.py +5 -0
  200. package/skills/gsd-path-discuss/scripts/discussion_records.py +3 -0
  201. package/skills/gsd-path-discuss/scripts/loop_run.py +839 -0
  202. package/skills/gsd-path-discuss/scripts/model_policy.py +279 -0
  203. package/skills/gsd-path-discuss/scripts/path_config.py +248 -0
  204. package/skills/gsd-path-discuss/scripts/review_panel.py +564 -0
  205. package/skills/gsd-path-discuss/scripts/worktree_paths.py +94 -0
  206. package/skills/gsd-path-docs-audit/SKILL.md +2 -0
  207. package/skills/gsd-path-docs-audit/references/dispatch.md +6 -19
  208. package/skills/gsd-path-docs-audit/references/model-policy.md +139 -0
  209. package/skills/gsd-path-docs-audit/references/runtime-selection.md +25 -0
  210. package/skills/gsd-path-docs-audit/scripts/_common.py +5 -0
  211. package/skills/gsd-path-docs-audit/scripts/archive_milestone.py +20 -6
  212. package/skills/gsd-path-docs-audit/scripts/build_recovery.py +5 -0
  213. package/skills/gsd-path-docs-audit/scripts/check_docs_audit.py +2 -0
  214. package/skills/gsd-path-docs-audit/scripts/check_handoffs.py +6 -0
  215. package/skills/gsd-path-docs-audit/scripts/check_task_briefs.py +3 -0
  216. package/skills/gsd-path-docs-audit/scripts/detect_project.py +11 -1
  217. package/skills/gsd-path-docs-audit/scripts/discussion_records.py +3 -0
  218. package/skills/gsd-path-docs-audit/scripts/discussion_validate.py +8 -3
  219. package/skills/gsd-path-docs-audit/scripts/integration.py +28 -8
  220. package/skills/gsd-path-docs-audit/scripts/isolation.py +15 -5
  221. package/skills/gsd-path-docs-audit/scripts/loop_run.py +839 -0
  222. package/skills/gsd-path-docs-audit/scripts/model_policy.py +279 -0
  223. package/skills/gsd-path-docs-audit/scripts/path_config.py +248 -0
  224. package/skills/gsd-path-docs-audit/scripts/pipeline_git.py +3 -0
  225. package/skills/gsd-path-docs-audit/scripts/pipeline_state.py +4 -1
  226. package/skills/gsd-path-docs-audit/scripts/promote_lookahead.py +3 -0
  227. package/skills/gsd-path-docs-audit/scripts/review_panel.py +11 -0
  228. package/skills/gsd-path-docs-audit/scripts/roadmap.py +5 -0
  229. package/skills/gsd-path-docs-audit/scripts/state_checkpoint.py +5 -0
  230. package/skills/gsd-path-docs-audit/scripts/state_promote.py +5 -0
  231. package/skills/gsd-path-docs-audit/scripts/worktree_paths.py +94 -0
  232. package/skills/gsd-path-forensics/SKILL.md +9 -5
  233. package/skills/gsd-path-forensics/references/runtime-selection.md +25 -0
  234. package/skills/gsd-path-forensics/scripts/_common.py +5 -0
  235. package/skills/gsd-path-forensics/scripts/discussion_records.py +3 -0
  236. package/skills/gsd-path-forensics/scripts/loop_run.py +839 -0
  237. package/skills/gsd-path-forensics/scripts/model_policy.py +279 -0
  238. package/skills/gsd-path-forensics/scripts/path_config.py +248 -0
  239. package/skills/gsd-path-forensics/scripts/pipeline_diagnose.py +3 -0
  240. package/skills/gsd-path-forensics/scripts/pipeline_undo.py +3 -0
  241. package/skills/gsd-path-forensics/scripts/review_panel.py +564 -0
  242. package/skills/gsd-path-forensics/scripts/worktree_paths.py +94 -0
  243. package/skills/gsd-path-inspect/SKILL.md +2 -0
  244. package/skills/gsd-path-inspect/references/dispatch.md +6 -19
  245. package/skills/gsd-path-inspect/references/model-policy.md +139 -0
  246. package/skills/gsd-path-inspect/references/runtime-selection.md +25 -0
  247. package/skills/gsd-path-inspect/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  248. package/skills/gsd-path-inspect/scripts/_common.py +5 -0
  249. package/skills/gsd-path-inspect/scripts/archive_milestone.py +20 -6
  250. package/skills/gsd-path-inspect/scripts/build_recovery.py +5 -0
  251. package/skills/gsd-path-inspect/scripts/check_docs_audit.py +2 -0
  252. package/skills/gsd-path-inspect/scripts/check_handoffs.py +6 -0
  253. package/skills/gsd-path-inspect/scripts/check_task_briefs.py +3 -0
  254. package/skills/gsd-path-inspect/scripts/detect_project.py +11 -1
  255. package/skills/gsd-path-inspect/scripts/discussion_records.py +3 -0
  256. package/skills/gsd-path-inspect/scripts/discussion_validate.py +8 -3
  257. package/skills/gsd-path-inspect/scripts/integration.py +28 -8
  258. package/skills/gsd-path-inspect/scripts/isolation.py +15 -5
  259. package/skills/gsd-path-inspect/scripts/loop_run.py +839 -0
  260. package/skills/gsd-path-inspect/scripts/model_policy.py +279 -0
  261. package/skills/gsd-path-inspect/scripts/path_config.py +248 -0
  262. package/skills/gsd-path-inspect/scripts/pipeline_git.py +3 -0
  263. package/skills/gsd-path-inspect/scripts/pipeline_state.py +4 -1
  264. package/skills/gsd-path-inspect/scripts/promote_lookahead.py +3 -0
  265. package/skills/gsd-path-inspect/scripts/review_panel.py +11 -0
  266. package/skills/gsd-path-inspect/scripts/roadmap.py +5 -0
  267. package/skills/gsd-path-inspect/scripts/state_checkpoint.py +5 -0
  268. package/skills/gsd-path-inspect/scripts/state_promote.py +5 -0
  269. package/skills/gsd-path-inspect/scripts/workflow_run.py +12 -1
  270. package/skills/gsd-path-inspect/scripts/worktree_paths.py +94 -0
  271. package/skills/gsd-path-loop/SKILL.md +2 -0
  272. package/skills/gsd-path-loop/references/runtime-selection.md +25 -0
  273. package/skills/gsd-path-loop/scripts/_common.py +5 -0
  274. package/skills/gsd-path-loop/scripts/discussion_records.py +3 -0
  275. package/skills/gsd-path-loop/scripts/loop_run.py +2 -0
  276. package/skills/gsd-path-loop/scripts/model_policy.py +279 -0
  277. package/skills/gsd-path-loop/scripts/path_config.py +248 -0
  278. package/skills/gsd-path-loop/scripts/review_panel.py +564 -0
  279. package/skills/gsd-path-loop/scripts/worktree_paths.py +94 -0
  280. package/skills/gsd-path-migrate/SKILL.md +2 -0
  281. package/skills/gsd-path-migrate/references/runtime-selection.md +25 -0
  282. package/skills/gsd-path-migrate/scripts/_common.py +185 -0
  283. package/skills/gsd-path-migrate/scripts/discussion_records.py +3 -0
  284. package/skills/gsd-path-migrate/scripts/loop_run.py +839 -0
  285. package/skills/gsd-path-migrate/scripts/model_policy.py +279 -0
  286. package/skills/gsd-path-migrate/scripts/path_config.py +248 -0
  287. package/skills/gsd-path-migrate/scripts/review_panel.py +564 -0
  288. package/skills/gsd-path-plan/SKILL.md +4 -2
  289. package/skills/gsd-path-plan/references/dispatch.md +6 -19
  290. package/skills/gsd-path-plan/references/model-policy.md +139 -0
  291. package/skills/gsd-path-plan/references/runtime-selection.md +25 -0
  292. package/skills/gsd-path-plan/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  293. package/skills/gsd-path-plan/scripts/_common.py +5 -0
  294. package/skills/gsd-path-plan/scripts/archive_milestone.py +20 -6
  295. package/skills/gsd-path-plan/scripts/build_recovery.py +5 -0
  296. package/skills/gsd-path-plan/scripts/check_handoffs.py +6 -0
  297. package/skills/gsd-path-plan/scripts/check_task_briefs.py +3 -0
  298. package/skills/gsd-path-plan/scripts/detect_project.py +11 -1
  299. package/skills/gsd-path-plan/scripts/discussion_records.py +3 -0
  300. package/skills/gsd-path-plan/scripts/discussion_validate.py +8 -3
  301. package/skills/gsd-path-plan/scripts/integration.py +28 -8
  302. package/skills/gsd-path-plan/scripts/isolation.py +15 -5
  303. package/skills/gsd-path-plan/scripts/loop_run.py +839 -0
  304. package/skills/gsd-path-plan/scripts/model_policy.py +279 -0
  305. package/skills/gsd-path-plan/scripts/path_config.py +248 -0
  306. package/skills/gsd-path-plan/scripts/pipeline_git.py +3 -0
  307. package/skills/gsd-path-plan/scripts/pipeline_state.py +4 -1
  308. package/skills/gsd-path-plan/scripts/promote_lookahead.py +3 -0
  309. package/skills/gsd-path-plan/scripts/review_panel.py +11 -0
  310. package/skills/gsd-path-plan/scripts/roadmap.py +5 -0
  311. package/skills/gsd-path-plan/scripts/state_checkpoint.py +5 -0
  312. package/skills/gsd-path-plan/scripts/state_promote.py +5 -0
  313. package/skills/gsd-path-plan/scripts/workflow_run.py +12 -1
  314. package/skills/gsd-path-plan/scripts/worktree_paths.py +94 -0
  315. package/skills/gsd-path-plan/templates/task.md +2 -0
  316. package/skills/gsd-path-research/SKILL.md +2 -0
  317. package/skills/gsd-path-research/references/dispatch.md +6 -19
  318. package/skills/gsd-path-research/references/model-policy.md +139 -0
  319. package/skills/gsd-path-research/references/runtime-selection.md +25 -0
  320. package/skills/gsd-path-research/scripts/_common.py +5 -0
  321. package/skills/gsd-path-research/scripts/archive_milestone.py +20 -6
  322. package/skills/gsd-path-research/scripts/build_recovery.py +5 -0
  323. package/skills/gsd-path-research/scripts/check_handoffs.py +6 -0
  324. package/skills/gsd-path-research/scripts/check_task_briefs.py +3 -0
  325. package/skills/gsd-path-research/scripts/detect_project.py +11 -1
  326. package/skills/gsd-path-research/scripts/discussion_records.py +3 -0
  327. package/skills/gsd-path-research/scripts/discussion_validate.py +8 -3
  328. package/skills/gsd-path-research/scripts/integration.py +28 -8
  329. package/skills/gsd-path-research/scripts/isolation.py +15 -5
  330. package/skills/gsd-path-research/scripts/loop_run.py +839 -0
  331. package/skills/gsd-path-research/scripts/model_policy.py +279 -0
  332. package/skills/gsd-path-research/scripts/path_config.py +248 -0
  333. package/skills/gsd-path-research/scripts/pipeline_git.py +3 -0
  334. package/skills/gsd-path-research/scripts/pipeline_state.py +4 -1
  335. package/skills/gsd-path-research/scripts/promote_lookahead.py +3 -0
  336. package/skills/gsd-path-research/scripts/review_panel.py +11 -0
  337. package/skills/gsd-path-research/scripts/roadmap.py +5 -0
  338. package/skills/gsd-path-research/scripts/state_checkpoint.py +5 -0
  339. package/skills/gsd-path-research/scripts/state_promote.py +5 -0
  340. package/skills/gsd-path-research/scripts/worktree_paths.py +94 -0
  341. package/skills/gsd-path-roadmap/SKILL.md +2 -0
  342. package/skills/gsd-path-roadmap/references/dispatch.md +6 -19
  343. package/skills/gsd-path-roadmap/references/model-policy.md +139 -0
  344. package/skills/gsd-path-roadmap/references/runtime-selection.md +25 -0
  345. package/skills/gsd-path-roadmap/scripts/_common.py +5 -0
  346. package/skills/gsd-path-roadmap/scripts/archive_milestone.py +20 -6
  347. package/skills/gsd-path-roadmap/scripts/build_recovery.py +5 -0
  348. package/skills/gsd-path-roadmap/scripts/check_handoffs.py +6 -0
  349. package/skills/gsd-path-roadmap/scripts/check_task_briefs.py +3 -0
  350. package/skills/gsd-path-roadmap/scripts/detect_project.py +11 -1
  351. package/skills/gsd-path-roadmap/scripts/discussion_records.py +3 -0
  352. package/skills/gsd-path-roadmap/scripts/discussion_validate.py +8 -3
  353. package/skills/gsd-path-roadmap/scripts/integration.py +28 -8
  354. package/skills/gsd-path-roadmap/scripts/isolation.py +15 -5
  355. package/skills/gsd-path-roadmap/scripts/loop_run.py +839 -0
  356. package/skills/gsd-path-roadmap/scripts/model_policy.py +279 -0
  357. package/skills/gsd-path-roadmap/scripts/path_config.py +248 -0
  358. package/skills/gsd-path-roadmap/scripts/pipeline_git.py +3 -0
  359. package/skills/gsd-path-roadmap/scripts/pipeline_state.py +4 -1
  360. package/skills/gsd-path-roadmap/scripts/promote_lookahead.py +3 -0
  361. package/skills/gsd-path-roadmap/scripts/review_panel.py +11 -0
  362. package/skills/gsd-path-roadmap/scripts/roadmap.py +5 -0
  363. package/skills/gsd-path-roadmap/scripts/state_checkpoint.py +5 -0
  364. package/skills/gsd-path-roadmap/scripts/state_promote.py +5 -0
  365. package/skills/gsd-path-roadmap/scripts/worktree_paths.py +94 -0
  366. package/skills/gsd-path-ship/SKILL.md +24 -13
  367. package/skills/gsd-path-ship/references/dispatch.md +6 -19
  368. package/skills/gsd-path-ship/references/jev-review.md +82 -0
  369. package/skills/gsd-path-ship/references/model-policy.md +139 -0
  370. package/skills/gsd-path-ship/references/reviewer-panel.md +1 -1
  371. package/skills/gsd-path-ship/references/reviewer.md +2 -0
  372. package/skills/gsd-path-ship/references/runtime-selection.md +25 -0
  373. package/skills/gsd-path-ship/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  374. package/skills/gsd-path-ship/scripts/_common.py +5 -0
  375. package/skills/gsd-path-ship/scripts/archive_milestone.py +20 -6
  376. package/skills/gsd-path-ship/scripts/build_recovery.py +5 -0
  377. package/skills/gsd-path-ship/scripts/build_state.py +2 -0
  378. package/skills/gsd-path-ship/scripts/check_handoffs.py +6 -0
  379. package/skills/gsd-path-ship/scripts/check_task_briefs.py +3 -0
  380. package/skills/gsd-path-ship/scripts/detect_project.py +11 -1
  381. package/skills/gsd-path-ship/scripts/discussion_records.py +3 -0
  382. package/skills/gsd-path-ship/scripts/discussion_validate.py +8 -3
  383. package/skills/gsd-path-ship/scripts/integration.py +28 -8
  384. package/skills/gsd-path-ship/scripts/isolation.py +15 -5
  385. package/skills/gsd-path-ship/scripts/jev_review.py +138 -0
  386. package/skills/gsd-path-ship/scripts/lean_verification.py +2 -0
  387. package/skills/gsd-path-ship/scripts/loop_run.py +839 -0
  388. package/skills/gsd-path-ship/scripts/model_policy.py +279 -0
  389. package/skills/gsd-path-ship/scripts/path_config.py +248 -0
  390. package/skills/gsd-path-ship/scripts/pipeline_git.py +3 -0
  391. package/skills/gsd-path-ship/scripts/pipeline_state.py +4 -1
  392. package/skills/gsd-path-ship/scripts/promote_lookahead.py +3 -0
  393. package/skills/gsd-path-ship/scripts/review_panel.py +11 -0
  394. package/skills/gsd-path-ship/scripts/roadmap.py +5 -0
  395. package/skills/gsd-path-ship/scripts/state_checkpoint.py +5 -0
  396. package/skills/gsd-path-ship/scripts/state_promote.py +5 -0
  397. package/skills/gsd-path-ship/scripts/workflow_run.py +12 -1
  398. package/skills/gsd-path-ship/scripts/worktree_paths.py +94 -0
  399. package/skills/gsd-path-undo/SKILL.md +2 -0
  400. package/skills/gsd-path-undo/references/runtime-selection.md +25 -0
  401. package/skills/gsd-path-undo/scripts/_common.py +5 -0
  402. package/skills/gsd-path-undo/scripts/discussion_records.py +3 -0
  403. package/skills/gsd-path-undo/scripts/loop_run.py +839 -0
  404. package/skills/gsd-path-undo/scripts/model_policy.py +279 -0
  405. package/skills/gsd-path-undo/scripts/path_config.py +248 -0
  406. package/skills/gsd-path-undo/scripts/pipeline_undo.py +3 -0
  407. package/skills/gsd-path-undo/scripts/review_panel.py +564 -0
  408. package/skills/gsd-path-undo/scripts/worktree_paths.py +94 -0
  409. package/skills/path/BUILD.md +7 -0
  410. package/skills/path/DECIDE.md +2 -0
  411. package/skills/path/DEFINE.md +13 -7
  412. package/skills/path/DOCS-AUDIT.md +2 -0
  413. package/skills/path/INSPECT.md +2 -0
  414. package/skills/path/PLAN.md +4 -2
  415. package/skills/path/RESEARCH.md +2 -0
  416. package/skills/path/ROADMAP.md +2 -0
  417. package/skills/path/SHIP.md +24 -13
  418. package/skills/path/SKILL.md +23 -9
  419. package/skills/path/references/build-native.md +15 -7
  420. package/skills/path/references/config.md +57 -0
  421. package/skills/path/references/dispatch.md +6 -19
  422. package/skills/path/references/jev-review.md +82 -0
  423. package/skills/path/references/model-policy.md +139 -0
  424. package/skills/path/references/reviewer-panel.md +1 -1
  425. package/skills/path/references/reviewer.md +2 -0
  426. package/skills/path/references/runtime-selection.md +25 -0
  427. package/skills/path/scripts/_common.py +5 -0
  428. package/skills/path/scripts/archive_milestone.py +20 -6
  429. package/skills/path/scripts/bootstrap_repository.py +8 -1
  430. package/skills/path/scripts/build_recovery.py +5 -0
  431. package/skills/path/scripts/build_state.py +2 -0
  432. package/skills/path/scripts/check_docs_audit.py +2 -0
  433. package/skills/path/scripts/check_handoffs.py +6 -0
  434. package/skills/path/scripts/check_task_briefs.py +3 -0
  435. package/skills/path/scripts/detect_project.py +11 -1
  436. package/skills/path/scripts/discussion_records.py +3 -0
  437. package/skills/path/scripts/discussion_validate.py +8 -3
  438. package/skills/path/scripts/dispatch_driver.py +230 -21
  439. package/skills/path/scripts/git_guard.py +768 -0
  440. package/skills/path/scripts/integration.py +28 -8
  441. package/skills/path/scripts/isolation.py +15 -5
  442. package/skills/path/scripts/jev_review.py +138 -0
  443. package/skills/path/scripts/lean_verification.py +2 -0
  444. package/skills/path/scripts/loop_run.py +2 -0
  445. package/skills/path/scripts/model_policy.py +279 -0
  446. package/skills/path/scripts/path_config.py +248 -0
  447. package/skills/path/scripts/pipeline_git.py +3 -0
  448. package/skills/path/scripts/pipeline_state.py +4 -1
  449. package/skills/path/scripts/promote_lookahead.py +3 -0
  450. package/skills/path/scripts/review_panel.py +11 -0
  451. package/skills/path/scripts/roadmap.py +5 -0
  452. package/skills/path/scripts/state_checkpoint.py +5 -0
  453. package/skills/path/scripts/state_promote.py +5 -0
  454. package/skills/path/scripts/status_runtime.py +208 -0
  455. package/skills/path/scripts/workflow_run.py +12 -1
  456. package/skills/path/scripts/worktree_paths.py +94 -0
  457. package/skills/path/templates/skeptic.md +1 -1
  458. package/skills/path/templates/task.md +2 -0
  459. package/skills/path/templates/wave-panel.md +1 -1
  460. package/skills/gsd-path/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
  461. package/skills/gsd-path/scripts/__pycache__/build_recovery.cpython-312.pyc +0 -0
  462. package/skills/gsd-path/scripts/__pycache__/build_state.cpython-312.pyc +0 -0
  463. package/skills/gsd-path/scripts/__pycache__/check_task_briefs.cpython-312.pyc +0 -0
  464. package/skills/gsd-path/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
  465. package/skills/gsd-path/scripts/__pycache__/discussion_records.cpython-312.pyc +0 -0
  466. package/skills/gsd-path/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
  467. package/skills/gsd-path/scripts/__pycache__/integration.cpython-312.pyc +0 -0
  468. package/skills/gsd-path/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
  469. package/skills/gsd-path/scripts/__pycache__/loop_run.cpython-312.pyc +0 -0
  470. package/skills/gsd-path/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
  471. package/skills/gsd-path/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
  472. package/skills/gsd-path/scripts/__pycache__/review_findings.cpython-312.pyc +0 -0
  473. package/skills/gsd-path/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
  474. package/skills/gsd-path/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
  475. package/skills/gsd-path/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
  476. package/skills/gsd-path/scripts/__pycache__/task_context.cpython-312.pyc +0 -0
  477. package/skills/gsd-path/scripts/__pycache__/workflow_run.cpython-312.pyc +0 -0
  478. package/skills/gsd-path-build/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
  479. package/skills/gsd-path-build/scripts/__pycache__/build_recovery.cpython-312.pyc +0 -0
  480. package/skills/gsd-path-build/scripts/__pycache__/build_state.cpython-312.pyc +0 -0
  481. package/skills/gsd-path-build/scripts/__pycache__/check_task_briefs.cpython-312.pyc +0 -0
  482. package/skills/gsd-path-build/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
  483. package/skills/gsd-path-build/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
  484. package/skills/gsd-path-build/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
  485. package/skills/gsd-path-build/scripts/__pycache__/loop_run.cpython-312.pyc +0 -0
  486. package/skills/gsd-path-build/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
  487. package/skills/gsd-path-build/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
  488. package/skills/gsd-path-build/scripts/__pycache__/review_findings.cpython-312.pyc +0 -0
  489. package/skills/gsd-path-build/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
  490. package/skills/gsd-path-build/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
  491. package/skills/gsd-path-build/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
  492. package/skills/gsd-path-build/scripts/__pycache__/task_context.cpython-312.pyc +0 -0
  493. package/skills/gsd-path-build/scripts/__pycache__/workflow_run.cpython-312.pyc +0 -0
  494. package/skills/gsd-path-decide/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  495. package/skills/gsd-path-decide/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
  496. package/skills/gsd-path-decide/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
  497. package/skills/gsd-path-decide/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
  498. package/skills/gsd-path-decide/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
  499. package/skills/gsd-path-decide/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
  500. package/skills/gsd-path-decide/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
  501. package/skills/gsd-path-decide/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
  502. package/skills/gsd-path-decide/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
  503. package/skills/gsd-path-decide/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
  504. package/skills/gsd-path-define/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  505. package/skills/gsd-path-define/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
  506. package/skills/gsd-path-define/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
  507. package/skills/gsd-path-define/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
  508. package/skills/gsd-path-define/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
  509. package/skills/gsd-path-define/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
  510. package/skills/gsd-path-define/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
  511. package/skills/gsd-path-define/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
  512. package/skills/gsd-path-define/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
  513. package/skills/gsd-path-define/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
  514. package/skills/gsd-path-docs-audit/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  515. package/skills/gsd-path-docs-audit/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
  516. package/skills/gsd-path-docs-audit/scripts/__pycache__/build_recovery.cpython-312.pyc +0 -0
  517. package/skills/gsd-path-docs-audit/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
  518. package/skills/gsd-path-docs-audit/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
  519. package/skills/gsd-path-docs-audit/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
  520. package/skills/gsd-path-docs-audit/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
  521. package/skills/gsd-path-docs-audit/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
  522. package/skills/gsd-path-docs-audit/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
  523. package/skills/gsd-path-docs-audit/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
  524. package/skills/gsd-path-docs-audit/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
  525. package/skills/gsd-path-forensics/scripts/__pycache__/pipeline_undo.cpython-312.pyc +0 -0
  526. package/skills/gsd-path-inspect/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
  527. package/skills/gsd-path-inspect/scripts/__pycache__/build_recovery.cpython-312.pyc +0 -0
  528. package/skills/gsd-path-inspect/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
  529. package/skills/gsd-path-inspect/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
  530. package/skills/gsd-path-inspect/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
  531. package/skills/gsd-path-inspect/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
  532. package/skills/gsd-path-inspect/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
  533. package/skills/gsd-path-inspect/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
  534. package/skills/gsd-path-inspect/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
  535. package/skills/gsd-path-inspect/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
  536. package/skills/gsd-path-plan/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
  537. package/skills/gsd-path-plan/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
  538. package/skills/gsd-path-plan/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
  539. package/skills/gsd-path-plan/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
  540. package/skills/gsd-path-plan/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
  541. package/skills/gsd-path-plan/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
  542. package/skills/gsd-path-plan/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
  543. package/skills/gsd-path-plan/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
  544. package/skills/gsd-path-plan/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
  545. package/skills/gsd-path-research/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  546. package/skills/gsd-path-research/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
  547. package/skills/gsd-path-research/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
  548. package/skills/gsd-path-research/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
  549. package/skills/gsd-path-research/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
  550. package/skills/gsd-path-research/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
  551. package/skills/gsd-path-research/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
  552. package/skills/gsd-path-research/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
  553. package/skills/gsd-path-research/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
  554. package/skills/gsd-path-research/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
  555. package/skills/gsd-path-roadmap/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  556. package/skills/gsd-path-roadmap/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
  557. package/skills/gsd-path-roadmap/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
  558. package/skills/gsd-path-roadmap/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
  559. package/skills/gsd-path-roadmap/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
  560. package/skills/gsd-path-roadmap/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
  561. package/skills/gsd-path-roadmap/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
  562. package/skills/gsd-path-roadmap/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
  563. package/skills/gsd-path-roadmap/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
  564. package/skills/gsd-path-roadmap/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
  565. package/skills/gsd-path-ship/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
  566. package/skills/gsd-path-ship/scripts/__pycache__/build_recovery.cpython-312.pyc +0 -0
  567. package/skills/gsd-path-ship/scripts/__pycache__/build_state.cpython-312.pyc +0 -0
  568. package/skills/gsd-path-ship/scripts/__pycache__/check_handoffs.cpython-312.pyc +0 -0
  569. package/skills/gsd-path-ship/scripts/__pycache__/check_task_briefs.cpython-312.pyc +0 -0
  570. package/skills/gsd-path-ship/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
  571. package/skills/gsd-path-ship/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
  572. package/skills/gsd-path-ship/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
  573. package/skills/gsd-path-ship/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
  574. package/skills/gsd-path-ship/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
  575. package/skills/gsd-path-ship/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
  576. package/skills/gsd-path-ship/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
  577. package/skills/gsd-path-ship/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
package/AGENTS.md CHANGED
@@ -127,7 +127,10 @@ full-repo suite on a tiny edit outrank the phase brief.
127
127
  with `-B .gsd-path/status_runtime.py --repo <absolute-root>`
128
128
  before any requested repository mutation. Treat its JSON as the only route
129
129
  authority.
130
- A plain change request does not authorize work outside the pipeline: make no
130
+ When `completion.status` is `verified` and `git.branch` is an ordinary
131
+ branch (not `gsd-path/M###`), requested product work may proceed normally.
132
+ Archives and pipeline control files remain protected. Otherwise,
133
+ a plain change request does not authorize work outside the pipeline: make no
131
134
  changes and report **Outcome**, link the returned `path` under **Review**, and
132
135
  under **Next** use `handoff.next`. An explicit request to leave
133
136
  or bypass the pipeline is a user ruling;
@@ -253,7 +256,7 @@ full-repo suite on a tiny edit outrank the phase brief.
253
256
  orchestrator.
254
257
  - Reviewers verify and block; they never fix. A block names the criterion,
255
258
  observed result, evidence location, and concrete fix direction. An optional
256
- review panel is advisory: the inherit reviewer remains the only wave
259
+ review panel is advisory: the canonical reviewer remains the only wave
257
260
  pass/fail, and panel findings never average or auto-replan. Same-model
258
261
  agreement is not independent verification: matching verdicts from one
259
262
  model family count as a single evidence path. Independence comes from
package/CHANGELOG.md ADDED
@@ -0,0 +1,68 @@
1
+ # Changelog
2
+
3
+ All notable changes to [@opengsd/gsd-path](https://www.npmjs.com/package/@opengsd/gsd-path)
4
+ are documented here. Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
5
+
6
+ ## [1.1.0] - 2026-09-18
7
+
8
+ ### Added
9
+ - Scoped npm package `@opengsd/gsd-path` with trusted publishing workflow
10
+ - Release trust evidence validation and host matrix documentation
11
+
12
+ ### Changed
13
+ - Release workflow and maintainer documentation for npm publication
14
+
15
+ ## [1.0.0] - 2026-09-15
16
+
17
+ ### Added
18
+ - Initial public release of the disk-backed GSD Path pipeline
19
+ - Multi-host installer, skills package, and project contracts
20
+
21
+ ## [1.2.0] - 2026-09-20
22
+
23
+ ### Added
24
+ - add Path settings and project history dashboard
25
+ - add optional Jev evidence screening
26
+ - store worktrees and pinned runtimes outside project checkouts
27
+ - centralize sub-agent model selection policy
28
+
29
+ ### Changed
30
+ - Correct stale release guidance and consolidate scope references
31
+ - record passing eight-host release gate
32
+ - validate corrected OpenCode release evidence
33
+ - validate recovered Claude release evidence
34
+ - record affected release gate results
35
+ - preserve blocked host evaluations without receipt fallback
36
+ - record passing Antigravity Kimi and Grok release runs
37
+ - record remaining 1.2.0 release gate failures
38
+ - record Kimi receipt and complete offline recheck
39
+ - preserve 1.2.0 host receipts and release blockers
40
+ - record v1.3.0 live release evidence and blockers
41
+ - bump version to v1.3.0
42
+ - Align release documentation with risk-based host validation
43
+ - bump version to v1.2.0
44
+ - Automate npm release docs, pack verification, and provenance (#133)
45
+ - refresh README changes and dashboard screenshots
46
+ - Refresh dashboard navigation and file history documentation
47
+ - Clarify Jev receipt fields and consolidate documentation
48
+ - Refresh dashboard update and guard documentation
49
+ - Correct runtime installation, update, guard, and uninstall documentation
50
+ - Correct model policy and dispatch documentation
51
+
52
+ ### Fixed
53
+ - reuse unchanged host receipts for releases
54
+ - verify prepared releases without advancing failed versions
55
+ - scope release evidence to affected hosts
56
+ - show project runtime updates and release completed milestone guards
57
+
58
+ ### Other
59
+ - Fixed tests/package.test.mjs to invoke git_guard.py with pre-commit in a temporary Git repository instead of unsupported --help. The focused test failed before the fix and during restored-original sabotage. All 6 package tests now pass; resource sync and diff checks pass. Verified locally on Node 26; Node 18/20 CI reruns remain with the outer executor
60
+ - Preserve historical commit selection across relative document links
61
+ - Validate Jev probability normalization with CLI regression coverage
62
+ - Record passing focused checks and isolation violation
63
+ - Fix integration guard and runtime installer regression coverage
64
+ - Fixed stale runtime paths in tests/test_git_guard.py using the installed runtime resolver. Both CI failures reproduced before the fix; all 38 Git guard tests now pass. Both corrected tests also caught a temporarily disabled native guard, which was restored. git diff --check passed. Only the test file changed; remote CI remains for the outer executor
65
+ - Fix pinned runtime routing, guard blocking, and launcher bytes
66
+ - Restore same-cycle recovery after partial review completion
67
+ - Isolate assignment rejections and align native panel exclusions
68
+ - Fix dispatch isolation, legacy pinning, and independent panel selection
package/DOCS.md CHANGED
@@ -44,7 +44,8 @@ GSD Path has two install layers:
44
44
 
45
45
  1. **Skills** — router + phase skills for your AI host(s)
46
46
  2. **Project contracts** (optional) — `AGENTS.md`, `WORKFLOW.md`, and the
47
- read-only `.gsd-path/runtime/` status engine in the repo
47
+ tracked runtime declaration and stable status/guard launchers; runtime code
48
+ lives outside the checkout under `~/.gsd-path/runtimes/`
48
49
 
49
50
  ### Decision tree
50
51
 
@@ -223,6 +224,40 @@ route through `NEEDS-ORCHESTRATOR` instead of guesses.
223
224
  **Quick lane:** ≤2 tasks, one wave, no open questions — may skip research/decide
224
225
  ([FULL.md](FULL.md)).
225
226
 
227
+ ### Worktree locations
228
+
229
+ The primary worktree stays in the folder you opened. Serial task work stays
230
+ there too. New parallel task worktrees, verify sidecars, and integration
231
+ worktrees share this managed layout:
232
+
233
+ ```text
234
+ ~/.gsd-path/projects/<repository-id>/<workspace-id>/{task,verify,integrate}/<name>
235
+ ```
236
+
237
+ Set `GSD_PATH_WORKTREE_ROOT` to another absolute directory before the first
238
+ helper-owned allocation in a workspace. The root must be outside the project's
239
+ own worktrees; an unrelated repository tracking your home folder is allowed.
240
+ Repository and workspace IDs are full SHA-256 hashes of the
241
+ resolved Git common directory and primary path, so separate clones and
242
+ primary folders do not share a location.
243
+
244
+ The first allocation pins the workspace location in
245
+ `<git-common-dir>/gsd-path/workspaces/<workspace-id>.json`. Later environment
246
+ changes do not move it. Existing sibling worktrees remain at their original
247
+ paths and retain the same recovery and cleanup checks. These folders contain
248
+ active work and evidence; they are not a disposable cache. Relocation needs
249
+ a separate migration; do not edit placement records or move folders manually.
250
+
251
+ New repository setup can also use an explicitly approved managed primary
252
+ path through the existing `--worktree` option. Its parent must already exist
253
+ for the read-only preview. An approved empty invocation folder is still
254
+ reused in place. This choice does not move the default checkout.
255
+
256
+ In the dashboard's **Watched folders**, add the managed root explicitly;
257
+ watching its home-directory parent does not traverse hidden `.gsd-path`.
258
+ Discovery follows Git's registered bound branches back to the primary and
259
+ applies exclusions there, so task and verify copies do not displace it.
260
+
226
261
  ### Key artifacts
227
262
 
228
263
  | Path | Role |
@@ -340,3 +375,36 @@ initializer. After a milestone ships, the next one inspects again.
340
375
  | Installer flags | `node scripts/install.mjs --help` |
341
376
 
342
377
  [Workflow runner and observed token budgets](RUNTIME.md) documents canonical gate receipts, serial verification preparation, and host budget limits.
378
+
379
+
380
+ ## Project runtime versions
381
+
382
+ `.gsd-path/runtime.json` pins an exact runtime by package version and content
383
+ digest. The runtime is stored under `~/.gsd-path/runtimes/<digest>/`; generated
384
+ implementation files are not copied into project worktrees. Track the declaration
385
+ and stable `.gsd-path` launchers as project configuration. Task isolation, Verify
386
+ sidecars and Integration checkouts inherit this configuration through Git.
387
+
388
+ Skill/plugin updates and `--hooks-refresh` retain the selected runtime. Use
389
+ `gsd-path --runtime-upgrade --project /absolute/project` to explicitly select
390
+ the supplied package's runtime and its compatible status launcher. Review those
391
+ configuration changes before committing them. Existing versions remain available
392
+ for other projects and branches.
393
+
394
+ A new machine needs the selected runtime installed before status and guards can
395
+ run. `gsd-path --runtime-restore --project /absolute/project --source-root
396
+ /path/to/matching/package` restores that exact version without changing project
397
+ files. The supplied package must match both the version and digest; custom source
398
+ builds may share a release version while having different digests. No command
399
+ silently substitutes a newer runtime, and status/guards never install or download.
400
+
401
+ For an old tracked `.gsd-path/runtime/`, run `gsd-path --runtime-migrate --project
402
+ /absolute/project --dry-run`, then the same command without `--dry-run` and review
403
+ the Git diff. Migration removes the generated files from the checkout and writes
404
+ the declaration and stable wiring. It does not stage or commit. Resolve local
405
+ runtime edits or unknown files first. Interrupted migration is recovered by the
406
+ same explicit command; its journal lives outside the checkout.
407
+
408
+ An ignore rule alone cannot migrate tracked runtime files. This runtime lifecycle
409
+ covers runtime code and launch wiring; project-local skill copies, retained skill
410
+ backups, and mixed user/host settings remain separately owned installation output.
package/FULL.md CHANGED
@@ -131,8 +131,9 @@ Install shared rules into a repo (refuses if managed files already exist):
131
131
  node scripts/install.mjs --all --project /path/to/project
132
132
  ```
133
133
 
134
- Writes `AGENTS.md`, `WORKFLOW.md`, and `.gsd-path/runtime/`; with Claude, also
135
- `.claude/CLAUDE.md`.
134
+ Writes the [project contracts](DOCS.md#installing); with Claude, also
135
+ `.claude/CLAUDE.md`. See [project runtime versions](DOCS.md#project-runtime-versions)
136
+ for runtime storage, restoration, and legacy migration.
136
137
  Merge upgrades manually — the installer will not overwrite existing contracts.
137
138
 
138
139
  ### Guard hooks (optional)
package/HOOKS.md CHANGED
@@ -59,9 +59,10 @@ Native configs for unselected hosts are ignored.
59
59
 
60
60
  | File | Purpose |
61
61
  | --- | --- |
62
- | `.gsd-path/guard_hook.py` | Pre-tool-use guard (stdin JSON → exit 2 + denial JSON) |
62
+ | `.gsd-path/guard_hook.py` | Pre-tool-use guard (stdin JSON → exit 2 + denial JSON; runtime resolution failures exit 2 with stderr) |
63
63
  | `.gsd-path/git_guard.py` | Commit and publication validator |
64
- | `.gsd-path/runtime/` | Project-local pipeline helpers, including the read-only status engine |
64
+ | `.gsd-path/runtime.json` | Tracked selected runtime version and digest |
65
+ | `~/.gsd-path/runtimes/<digest>/` | Immutable external pipeline helpers and guards |
65
66
  | `.git/hooks/pre-commit` | Runs `git_guard.py` before commit |
66
67
  | `.git/hooks/commit-msg` | Runs `git_guard.py` with commit message |
67
68
  | `.git/hooks/pre-push` | Runs `git_guard.py` on every pushed ref update |
@@ -114,6 +115,12 @@ See [UPDATE.md](UPDATE.md).
114
115
 
115
116
  **`guard_hook.py`** (pre-tool-use):
116
117
 
118
+ - direct product edits outside the routed build phase while milestone work
119
+ remains unfinished. After integration is verified, ordinary branches allow
120
+ product edits, including a dirty product worktree. The proof still checks
121
+ the shipped archive, canonical integration merge, annotated published tag,
122
+ and default-branch ancestry. Missing proof keeps protection active. Closed
123
+ milestone branches, archives, and pipeline control files remain protected.
117
124
  - non-read tool actions targeting archived paths or an existing ancestor of
118
125
  the archive tree; shell operands count an ancestor only for deletion or move
119
126
  commands
@@ -137,7 +144,7 @@ See [UPDATE.md](UPDATE.md).
137
144
  - shell commands that reference the archive unless the whole command is a
138
145
  recognized standalone read or a single-command invocation of the bundled
139
146
  `pipeline_state.py` / `archive_milestone.py` helper, resolved to a regular file
140
- inside the guard-owned `.gsd-path/runtime/` directory (beside `guard_hook.py`
147
+ inside the verified runtime selected by `.gsd-path/runtime.json` (legacy projects use `.gsd-path/runtime/` beside `guard_hook.py`
141
148
  in the repository layout), using exactly `python` or `python3` with optional
142
149
  `-B`; non-empty supplied tool working directories are authoritative. Empty
143
150
  strings, including list items, are treated as absent: nested payloads inherit
@@ -176,16 +183,18 @@ such as `rm -rf scratch` passes the archive check; other guard rules still apply
176
183
 
177
184
  - modifies, deletes, or renames away tracked archive paths
178
185
  - `ship:` commits (case-insensitive) staging paths outside `.project/`
179
- - on unshipped pipeline lineage (the committed `STATE.md` names a bound
180
- `gsd-path/M###` branch that is not `shipped/done`, and HEAD descends from
181
- it — the bound branch itself, `gsd-path-task/` branches, sidecars, and any
182
- branch cut from them): commits staging paths outside `.project/` (or the
186
+ - while committed `STATE.md` names unfinished milestone work, including
187
+ `shipped/done` without verified integration: commits staging paths outside `.project/` (or the
183
188
  guard's own `.gsd-path/` and native hook settings) unless the phase is
184
189
  `build` and they are landing commits as `isolation.py land` writes them —
185
190
  subject `<task id>: <task title>` matching the task file at `Base:`, a full
186
191
  base SHA HEAD descends from, the staged task file, only that task's declared
187
192
  `files:`, and a `Files:` list of exactly the staged paths. Outside build the
188
- reviewed HEAD is frozen; product fixes reopen through the patch plan
193
+ reviewed HEAD is frozen; product fixes reopen through the patch plan.
194
+ The validated integration merge is allowed to complete before publication
195
+ proof exists; an ordinary commit with an integration subject is not exempt
196
+ - deleting the recorded branch or switching to another branch while carrying
197
+ unfinished state does not release product commit protection
189
198
  - pushes (to any remote) that move a `gsd-path/M###` ref anywhere but its
190
199
  strict ship commit, or delete it while it holds anything else; and pushes of
191
200
  any other ref whose commit carries a `STATE.md` that still owes a ship commit
@@ -268,6 +277,6 @@ not intercept subagent tools — treat coverage as orchestrator-level.
268
277
  | Tool denied editing archive | Pre-tool guard — use active paths, not archive |
269
278
  | Hook not running in Cursor | Run `--hooks-refresh-full --cursor --project /path/to/repo` |
270
279
  | `--hooks-refresh` rejects an unmanaged guard | Move the foreign guard aside, then rerun refresh; use `--hooks-init` if guards are wanted |
271
- | `--hooks-refresh` rejects an unmanaged runtime file | Back up or merge that file, move it aside, then rerun refresh |
280
+ | Runtime missing, invalid, or legacy | Follow [runtime restoration or migration](DOCS.md#project-runtime-versions) |
272
281
 
273
282
  More: [DOCS.md](DOCS.md#help) · [UPDATE.md](UPDATE.md)
package/QUICK.md CHANGED
@@ -64,11 +64,13 @@ cd /path/to/your/repo
64
64
  node scripts/install.mjs --all --project "$(pwd)"
65
65
  ```
66
66
 
67
- Installs `AGENTS.md`, `WORKFLOW.md`, and `.gsd-path/runtime/`
67
+ Installs the [project contracts](DOCS.md#installing)
68
68
  (+ `.claude/CLAUDE.md` if Claude is selected).
69
69
  If those managed files already exist, a plain install **refuses and installs
70
- nothing** — use `--update --project PATH` to refresh skills and `.gsd-path/`
71
- while keeping your contracts, and merge project-contract changes by hand
70
+ nothing** — see [project runtime versions](DOCS.md#project-runtime-versions)
71
+ for legacy migration, then use `--update --project PATH` to refresh skills and
72
+ hook wiring while keeping your contracts and selected runtime. Merge contract
73
+ changes by hand
72
74
  ([UPDATE.md](UPDATE.md)).
73
75
 
74
76
  **Optional** archive/git guards:
package/README.md CHANGED
@@ -15,6 +15,18 @@ Support means the installer and dispatch contract exist. See the
15
15
  [host trust matrix](https://github.com/open-gsd/gsd-path/blob/main/docs/trust-validation/HOST-MATRIX.md) for live milestone
16
16
  proof and each host's guard tier.
17
17
 
18
+ <!-- release-docs -->
19
+ **Latest npm release:** [@opengsd/gsd-path@1.2.0](https://www.npmjs.com/package/@opengsd/gsd-path/v/1.2.0) — [release notes](CHANGELOG.md#120---2026-09-20)
20
+
21
+ **Recent highlights**
22
+ - add Path settings and project history dashboard
23
+ - add optional Jev evidence screening
24
+ - store worktrees and pinned runtimes outside project checkouts
25
+ - centralize sub-agent model selection policy
26
+ - reuse unchanged host receipts for releases
27
+
28
+ <!-- /release-docs -->
29
+
18
30
  ## Documentation
19
31
 
20
32
  **Start at [DOCS.md](DOCS.md)** — install, use, understand, and update in one hub.
@@ -27,10 +39,39 @@ proof and each host's guard tier.
27
39
  | **[UPDATE.md](UPDATE.md)** | Refresh skills, hooks, or contracts |
28
40
  | [WORKFLOW.md](WORKFLOW.md) | Phase-by-phase agent SOP |
29
41
  | [HOOKS.md](HOOKS.md) | Optional archive/git guard hooks |
42
+ | [Jev screening](skills/gsd-path/references/jev-review.md) | Optional evidence screening; disabled by default, no SDK required |
30
43
  | [daemon/README.md](daemon/README.md) | Dashboard, menu-bar app, and monitoring setup |
44
+ | [CHANGELOG.md](CHANGELOG.md) | Published release notes |
31
45
  | [RELEASE.md](RELEASE.md) | Maintainer CI and npm release cycle |
32
46
  | [GUIDE.md](GUIDE.md) | Pointer to the guides above |
33
47
 
48
+ ## What's new — September 19, 2026
49
+
50
+ These changes are merged into the source checkout; npm installs use the latest
51
+ published release.
52
+
53
+ - **Dashboard settings and history:** edit Path settings, browse project files
54
+ and Git versions, and load full recorded evidence. See the
55
+ [dashboard guide](daemon/README.md#project-history-and-files).
56
+ - **Model and effort policy:** set user, project, host, and task choices through
57
+ one resolver. Recorded assignments stay pinned; unsupported explicit choices
58
+ stop the affected dispatch. See the
59
+ [model policy](skills/gsd-path/references/model-policy.md).
60
+ - **External worktrees and pinned runtimes:** new parallel task, verification,
61
+ and integration worktrees live outside project checkouts. Projects pin runtime
62
+ versions by content digest, with explicit upgrade, restore, and legacy migration
63
+ commands. See
64
+ [worktree locations](DOCS.md#worktree-locations) and
65
+ [runtime versions](DOCS.md#project-runtime-versions).
66
+ - **Clearer project updates:** the dashboard shows project runtime versions and
67
+ update results. After verified integration, ordinary branches can resume
68
+ product work while archived milestones remain protected. See
69
+ [update guidance](UPDATE.md#update-the-project-runtime-and-guard-hooks).
70
+ - **Optional Jev screening:** reviewers can request advisory checks of selected
71
+ criteria and evidence. It is disabled by default and never replaces recorded
72
+ verification or review gates. See
73
+ [Jev screening](skills/gsd-path/references/jev-review.md).
74
+
34
75
  ## Install from npm
35
76
 
36
77
  Requires **Node.js 18.17+** for the npm installer and **Python 3.9+** for
@@ -85,28 +126,54 @@ Add `--local` when checking project-local skills, from that project directory.
85
126
  See [QUICK.md](QUICK.md) for the first-run checklist and [HOOKS.md](HOOKS.md)
86
127
  for optional Git and host guard hooks.
87
128
 
129
+ For project-owned model and effort choices, see the
130
+ [dispatch model policy](skills/gsd-path/references/model-policy.md).
131
+
132
+ Use `$path config` (Codex) or `/path config` to view and change user defaults or
133
+ project settings. Dashboard users can open **Settings → Path settings** for the
134
+ same shipping, model/effort, and future review-panel controls. See
135
+ [Path settings](skills/gsd-path/references/config.md) for precedence and locks.
136
+
88
137
  ## Dashboard and menu-bar toolbar
89
138
 
90
139
  The optional **OpenGSD Path monitor** shows your projects without opening each
91
140
  project's `.project/` files. It watches the folders you choose and reads project
92
- state; it does not run pipeline commands or advance phase gates.
141
+ state without advancing phase gates. Explicit Path settings saves use the
142
+ validated configuration helper; background monitoring remains read-only.
93
143
  The monitor is a separate install from the npm skills package.
94
144
 
95
145
  ### Dashboard
96
146
 
97
147
  The project board shows blocked, active, and shipped work, with milestone and
98
148
  phase progress, task counts, last activity, and available usage data. Use the
99
- top toolbar to filter or search projects, refresh status, and open Settings for
100
- watched folders, plugin management, and appearance.
149
+ [dashboard controls](daemon/README.md#dashboard) to filter or search projects,
150
+ switch between Board and Milestones, refresh status, and manage settings.
101
151
 
102
- ![OpenGSD Path dashboard showing sample projects, phase progress, and toolbar controls](docs/images/dashboard-board.png)
152
+ ![OpenGSD Path project board showing sample projects, status filters, milestone progress, tasks, and usage](docs/images/dashboard-board.png)
103
153
 
104
154
  Click a project to see its milestone roadmap, tasks, success criteria, review
105
155
  results, verification history, and activity. Usage includes tokens and turns
106
156
  from supported host session logs; cost estimates require model prices in the
107
157
  daemon configuration.
108
158
 
109
- ![Project dashboard showing milestone progress, criteria, tasks, and usage with sample data](docs/images/dashboard-project.png)
159
+ ![Project dashboard showing the history viewer link, milestone progress, expandable evidence, and usage with sample data](docs/images/dashboard-project.png)
160
+
161
+ *Dashboard screenshots captured from the current source on September 19, 2026,
162
+ using the repository's sample projects.*
163
+
164
+ Open **History & files** to browse project files and archived milestones,
165
+ preview Markdown, or read a file at a selected Git commit. Relative document
166
+ links keep that selected version. **Records & sources → Load full records**
167
+ loads recorded usage, verification, activity, and indexed host turns on demand,
168
+ with coverage details that make missing or invalid data visible.
169
+
170
+ Open **Settings → Path settings** to change user defaults or project overrides
171
+ for shipping mode, model and effort choices, and future review panels. Each
172
+ setting shows its source and any lock reason; changes are saved explicitly.
173
+
174
+ The **Plugin** settings page shows each watched project's runtime version and
175
+ provides an explicit **Update** action with progress and failure details.
176
+ Updating global skills does not update a project's pinned runtime.
110
177
 
111
178
  ### macOS menu bar
112
179
 
package/RUNTIME.md CHANGED
@@ -74,8 +74,9 @@ skeptic attempts under `skeptics/`.
74
74
 
75
75
  The child command is owner-supplied shell words. The driver runs it with the
76
76
  isolated worktree as its working directory and the self-contained brief on
77
- stdin; the owner's flags decide the child's permissions and model. Verified
78
- templates: `claude -p --output-format json <owner permission flags>` and
77
+ stdin; the owner's flags decide the child's permissions. Model and effort
78
+ controls follow the [dispatch model policy](skills/gsd-path/references/model-policy.md#cli-lifecycle).
79
+ Verified templates: `claude -p --output-format json <owner permission flags>` and
79
80
  `codex exec --json <owner sandbox flags>`. A coder child ends its final message with
80
81
  `RESULT: <task id> ready|blocked`; no line means blocked. A Log delta whose
81
82
  first entry after the last recorded `Orchestrator answer:` leads with
@@ -83,8 +84,9 @@ first entry after the last recorded `Orchestrator answer:` leads with
83
84
  a timeout or nonzero exit is a failure even if the child wrote a question.
84
85
  Canonical reviewer children instead return the `Wave verdict:` line in their
85
86
  validated review artifact; they do not need a `RESULT:` line.
86
- Panel children write family findings without a Wave verdict. The panel command
87
- replaces literal `{model}` in its child command with the resolved family slug.
87
+ Panel children write family findings without a Wave verdict. The `{model}`
88
+ command example above is the legacy form; capability-based commands use the
89
+ argument slots defined in the dispatch model policy.
88
90
  `--wave` is required and pins the parent-selected wave, including on resumed
89
91
  calls. In `round`, an unfinished earlier wave blocks dispatch before the bookkeeping
90
92
  checkpoint. Child completion is recorded in `exit.json`; the parent alone
@@ -93,6 +95,9 @@ For `review`, `panel`, and `skeptics`, when the child process is gone and `finis
93
95
  unset, the driver rereads that attempt's state and exit receipt before
94
96
  collecting the result or blocking with
95
97
  `child wrapper exited without recording a result`.
98
+ Review starts from a clean base. A same-cycle retry may dispatch a missing lens
99
+ at that unchanged base while verified, already-collected review artifacts remain
100
+ uncommitted. Altered artifacts or unrelated changes block recovery.
96
101
  `--wait`, `--child-timeout`, and `--capacity` (concurrent children) have
97
102
  no defaults. `--max-attempts` defaults to 2 dispatches per task per milestone,
98
103
  the build contract's one logged redispatch after the first attempt; question
package/UPDATE.md CHANGED
@@ -14,10 +14,10 @@ Pulled new gsd-path / ran npx @opengsd/gsd-path@latest
14
14
  └─ Skills feel stale or router shows old behavior?
15
15
  ├─ Global install → install.mjs --update
16
16
  ├─ Project-local → install.mjs --update --local (from repo root)
17
- ├─ Project runtime → install.mjs --update --project PATH (refreshes .gsd-path/, keeps contracts)
17
+ ├─ Project wiring → install.mjs --update --project PATH (keeps contracts and selected runtime)
18
18
  └─ npm only → npx @opengsd/gsd-path@latest --update
19
19
 
20
- Installed with --hooks and upgraded guard scripts
20
+ Installed with --hooks and need to refresh wiring
21
21
  └─ install.mjs --hooks-refresh --project PATH
22
22
  └─ Also refresh native settings / git hooks?
23
23
  → --hooks-refresh-full [--claude] [--codex] [--cursor]
@@ -40,7 +40,7 @@ AGENTS.md or WORKFLOW.md template changed upstream
40
40
  | Global skills (`~/.claude/skills`, …) | Yes | `--update` |
41
41
  | Project-local skills (`.cursor/skills`, …) | Yes | `--update --local` |
42
42
  | `.gsd-path/guard_hook.py`, `git_guard.py` | Yes | `--hooks-refresh` or `--update --project PATH` |
43
- | `.gsd-path/runtime/*.py` | Yes | `--hooks-refresh` or `--update --project PATH` |
43
+ | Project runtime | Explicit upgrade only | [Runtime lifecycle](DOCS.md#project-runtime-versions) |
44
44
  | Native hook settings + git hooks | Yes | `--hooks-refresh-full` (host flag creates missing config) |
45
45
  | Guards for an existing project | Yes | `--hooks-init` (preserves project contracts) |
46
46
  | `AGENTS.md`, `WORKFLOW.md` | **No** | Manual merge |
@@ -57,7 +57,8 @@ updates roll back all selected targets.
57
57
  An initial `--hooks` install merges valid native settings for explicitly selected Claude,
58
58
  Codex, or Cursor hosts; other existing project contract and guard files are refused.
59
59
  `--update --project PATH` keeps `AGENTS.md`, `WORKFLOW.md`, and `.claude/CLAUDE.md`
60
- and refreshes the managed `.gsd-path/` files, native settings, and git hooks.
60
+ and refreshes managed hook wiring, native settings, and git hooks. For runtime
61
+ changes or legacy installations, follow the [runtime lifecycle](DOCS.md#project-runtime-versions).
61
62
  Use `--hooks-init` to add guards to an existing project without changing its
62
63
  `AGENTS.md` or `WORKFLOW.md`. It inspects and merges native configs only for
63
64
  the selected hosts; configs for unselected hosts remain untouched.
@@ -120,16 +121,33 @@ You can update proactively with [commands above](#update-skills) without waiting
120
121
 
121
122
  ## Update the project runtime and guard hooks
122
123
 
123
- After any `--project` install, refresh the project status runtime with:
124
+ The Dashboard's **Plugin Watched projects Runtime version** column shows
125
+ each project's installed runtime release. Global skill versions are separate;
126
+ a global update does not update project runtimes. Use the project's **Update**
127
+ button to refresh its runtime and existing guards. Install and update actions
128
+ show progress, success or failure, and installer output.
129
+
130
+ If the daemon's plugin source checkout has local changes, project Update uses
131
+ that local build and says so in its result. It does not pull remote changes over
132
+ local edits. Clean source checkouts still refresh before a project update.
133
+
134
+ Older unstamped installs show **Unknown — version metadata unavailable**.
135
+ This does not establish that their runtime is outdated or broken. **Update**
136
+ uses the guarded migration for legacy runtime directories and an upgrade for
137
+ version-pinned runtimes. Migration leaves a reviewable Git diff and refuses
138
+ modified or unknown runtime files; the dashboard shows the failure reason.
139
+ See [Project runtime versions](DOCS.md#project-runtime-versions) for manual
140
+ migration and preview commands. Use `--doctor --project PATH` to check runtime files.
141
+
142
+ For upgrades, exact-version restoration, or legacy migration, follow
143
+ [Project runtime versions](DOCS.md#project-runtime-versions). To refresh hook wiring:
124
144
 
125
145
  ```bash
126
146
  node scripts/install.mjs --hooks-refresh --project /path/to/repo
127
147
  ```
128
148
 
129
- This refresh works for hookless project installs. It overwrites the managed
130
- project status runtime and also refreshes managed guard scripts when they are
131
- installed. Guard files must contain `gsd-path guard`; runtime files must
132
- contain `gsd-path project runtime`.
149
+ This refresh retains the selected runtime and leaves hookless installs hookless.
150
+ Guard files must contain `gsd-path guard`.
133
151
 
134
152
  Include existing native settings and git hooks, and create missing settings for
135
153
  explicitly selected hosts:
@@ -164,7 +182,8 @@ To adopt upstream template changes:
164
182
  1. Open new templates in the gsd-path repo or npm package
165
183
  2. `diff` against your project copies
166
184
  3. Merge manually
167
- 4. Refresh or initialize hooks to install the matching `.gsd-path/runtime/`
185
+ 4. Follow the [runtime lifecycle](DOCS.md#project-runtime-versions) when adopting
186
+ runtime changes. Use `--hooks-refresh-full` when host wiring needs a refresh.
168
187
  5. Never delete active `.project/` milestone state
169
188
 
170
189
  An in-flight milestone whose `INTENT.md` or `ROADMAP.md` predates `Surfaces:`
@@ -186,7 +205,7 @@ Unrecognized or foreign `.project/` state is never auto-migrated — the router
186
205
  | Skills still old | Restart session; confirm root with `--update --dry-run` |
187
206
  | Update rolled back | Read installer error; fix path overlap; retry |
188
207
  | `--hooks-refresh` rejects an unmanaged guard | Move the foreign guard aside, then rerun refresh; use `--hooks-init` if guards are wanted |
189
- | `--hooks-refresh` rejects an unmanaged runtime file | Back up or merge that file, move it aside, then rerun refresh |
208
+ | Runtime missing, invalid, or legacy | Follow [runtime restoration or migration](DOCS.md#project-runtime-versions) |
190
209
  | Undo skill update | Copy from `disabled-gsd-skills` next to skills root |
191
210
  | npm vs clone confusion | Pick one: `npx @opengsd/gsd-path@latest --update` **or** clone + `install.mjs --update` |
192
211
  | Router still shows update line | Run update; or ignore — notice is informational |
package/WORKFLOW.md CHANGED
@@ -97,8 +97,11 @@ unpublished work; it never invents `git reset`.
97
97
 
98
98
  <!-- gsd-path/plain-prompt-reentry/v1 -->
99
99
 
100
- Project installs include the router's read-only status engine at
101
- `.gsd-path/runtime/` and its stable launcher at `.gsd-path/status_runtime.py`.
100
+ Project installs record the selected runtime in `.gsd-path/runtime.json` and
101
+ keep a stable launcher at `.gsd-path/status_runtime.py`. Runtime implementation
102
+ lives under `~/.gsd-path/runtimes/`; clones and named checkouts inherit the
103
+ declaration. Missing versions require explicit restoration, not a download
104
+ during status or guard execution.
102
105
  On any turn that did not explicitly invoke a GSD Path
103
106
  skill, an owned `.project/STATE.md` activates re-entry. Informational prompts
104
107
  finish read-only and end with the current **Outcome** / **Review** / **Next**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengsd/gsd-path",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "description": "Disk-backed AI agent pipeline. Docs: DOCS.md (start here), QUICK.md, FULL.md, UPDATE.md",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -19,6 +19,7 @@
19
19
  "plugin.json",
20
20
  "scripts/install.mjs",
21
21
  "scripts/install.py",
22
+ "scripts/runtime_store.py",
22
23
  "scripts/migrate_core.py",
23
24
  "scripts/core_hook_gate.py",
24
25
  "scripts/core_hook_settings.py",
@@ -26,6 +27,7 @@
26
27
  "scripts/wizard.mjs",
27
28
  "scripts/skill-resources.json",
28
29
  "scripts/_common.py",
30
+ "scripts/worktree_paths.py",
29
31
  "scripts/build_recovery.py",
30
32
  "scripts/state_checkpoint.py",
31
33
  "scripts/roadmap.py",
@@ -40,7 +42,10 @@
40
42
  "scripts/check_handoffs.py",
41
43
  "scripts/check_docs_audit.py",
42
44
  "scripts/check_task_briefs.py",
45
+ "scripts/path_config.py",
46
+ "scripts/model_policy.py",
43
47
  "scripts/review_panel.py",
48
+ "scripts/jev_review.py",
44
49
  "scripts/review_findings.py",
45
50
  "scripts/check_update.py",
46
51
  "scripts/guard_hook.py",
@@ -59,6 +64,7 @@
59
64
  "scripts/pipeline_undo.py",
60
65
  "scripts/pipeline_diagnose.py",
61
66
  "README.md",
67
+ "CHANGELOG.md",
62
68
  "MIGRATE.md",
63
69
  "RUNTIME.md",
64
70
  "DOCS.md",
@@ -86,6 +92,8 @@
86
92
  "test:daemon": "PYTHONPATH=daemon python3 -m unittest discover -s tests -p 'test_daemon_*.py'",
87
93
  "verify": "npm test && npm run test:python && python3 scripts/sync_skill_resources.py --check",
88
94
  "verify:release": "npm run verify && python3 scripts/check_trust_evidence.py --repo .",
95
+ "release:docs": "node scripts/update_release_docs.mjs",
96
+ "release:bump": "node scripts/bump_version.mjs --bump auto",
89
97
  "prepublishOnly": "npm run verify:release"
90
98
  },
91
99
  "devDependencies": {
@@ -27,10 +27,10 @@ Apply this contract whenever a GSD Path skill delegates work:
27
27
  a colliding target.
28
28
  - Resolve the phase's linked role brief to an absolute path. Include that path
29
29
  in the prompt and require the agent to read it before acting.
30
- - Tier hints: when the host advertises model or reasoning-effort selection,
31
- request `heavy` for `plan`, `plan_patch`, `decide`, and `roadmap`, and
32
- `light` for `inspect_docs` and `docs_audit`; when it offers no such
33
- selection, do not override the model except on a review-panel child, which receives the exact slug from `scripts/review_panel.py resolve`. Do not ask Claude Code to create
30
+ - Model selection: before every child launch or continuation, follow
31
+ [the model-policy contract](model-policy.md) and apply its recorded
32
+ native arguments. It owns defaults, project settings, task overrides,
33
+ capability failures, and reassignment. Do not ask Claude Code to create
34
34
  another worktree: GSD Path supplies the exact repository or
35
35
  linked-worktree root in the brief, and the child must work only there.
36
36
  Host isolation: none.
@@ -26,10 +26,10 @@ Apply this contract whenever a GSD Path skill delegates work:
26
26
  never create a colliding logical target.
27
27
  - Resolve the phase's linked role brief to an absolute path. Include that path
28
28
  in the prompt and require the child to read it before acting.
29
- - Tier hints: when the host advertises model or reasoning-effort selection,
30
- request `heavy` for `plan`, `plan_patch`, `decide`, and `roadmap`, and
31
- `light` for `inspect_docs` and `docs_audit`; when it offers no such
32
- selection, do not override the model except on a review-panel child, which receives the exact slug from `scripts/review_panel.py resolve`. Do not ask Copilot to create another
29
+ - Model selection: before every child launch or continuation, follow
30
+ [the model-policy contract](model-policy.md) and apply its recorded
31
+ native arguments. It owns defaults, project settings, task overrides,
32
+ capability failures, and reassignment. Do not ask Copilot to create another
33
33
  worktree: GSD Path supplies the exact repository or linked-worktree root,
34
34
  and the child must work only there. Host isolation: none.
35
35
  - Give every child a self-contained prompt with absolute input, template, and