@opengsd/gsd-path 1.0.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (498) hide show
  1. package/AGENTS.md +33 -13
  2. package/CHANGELOG.md +68 -0
  3. package/DOCS.md +75 -6
  4. package/FULL.md +12 -15
  5. package/HOOKS.md +18 -9
  6. package/QUICK.md +8 -6
  7. package/README.md +218 -14
  8. package/RUNTIME.md +16 -5
  9. package/UPDATE.md +30 -11
  10. package/WORKFLOW.md +35 -16
  11. package/package.json +23 -1
  12. package/platforms/claude/dispatch.md +4 -4
  13. package/platforms/copilot/dispatch.md +4 -4
  14. package/platforms/cursor/dispatch.md +5 -10
  15. package/platforms/grok/dispatch.md +4 -6
  16. package/platforms/kimi/dispatch.md +4 -4
  17. package/platforms/kiro/dispatch.md +4 -6
  18. package/platforms/opencode/dispatch.md +4 -4
  19. package/platforms/qwen/dispatch.md +4 -4
  20. package/platforms/shared-agents/dispatch.md +12 -19
  21. package/scripts/_common.py +5 -0
  22. package/scripts/archive_milestone.py +30 -124
  23. package/scripts/bootstrap_repository.py +33 -4
  24. package/scripts/build_recovery.py +292 -0
  25. package/scripts/build_state.py +2 -0
  26. package/scripts/check_docs_audit.py +7 -3
  27. package/scripts/check_handoffs.py +7 -1
  28. package/scripts/check_task_briefs.py +3 -0
  29. package/scripts/detect_project.py +22 -3
  30. package/scripts/discussion_records.py +3 -0
  31. package/scripts/discussion_validate.py +8 -3
  32. package/scripts/dispatch_driver.py +233 -22
  33. package/scripts/git_guard.py +14 -5
  34. package/scripts/guard_hook.py +11 -1
  35. package/scripts/install.mjs +54 -1448
  36. package/scripts/install.py +155 -188
  37. package/scripts/integration.py +54 -28
  38. package/scripts/isolation.py +24 -6
  39. package/scripts/jev_review.py +138 -0
  40. package/scripts/lean_verification.py +3 -1
  41. package/scripts/loop_run.py +2 -0
  42. package/scripts/model_policy.py +279 -0
  43. package/scripts/path_config.py +248 -0
  44. package/scripts/pipeline_diagnose.py +15 -3
  45. package/scripts/pipeline_git.py +3 -0
  46. package/scripts/pipeline_state.py +117 -186
  47. package/scripts/pipeline_undo.py +14 -7
  48. package/scripts/promote_lookahead.py +33 -162
  49. package/scripts/review_panel.py +11 -0
  50. package/scripts/roadmap.py +326 -0
  51. package/scripts/runtime_store.py +278 -0
  52. package/scripts/skill-resources.json +182 -4
  53. package/scripts/state_checkpoint.py +114 -72
  54. package/scripts/state_promote.py +47 -44
  55. package/scripts/status_runtime.py +92 -6
  56. package/scripts/task_context.py +73 -0
  57. package/scripts/token_budget.py +40 -1
  58. package/scripts/workflow_run.py +128 -8
  59. package/scripts/worktree_paths.py +94 -0
  60. package/skills/gsd-path/BUILD.md +54 -575
  61. package/skills/gsd-path/DECIDE.md +4 -6
  62. package/skills/gsd-path/DEFINE.md +23 -21
  63. package/skills/gsd-path/DOCS-AUDIT.md +2 -0
  64. package/skills/gsd-path/INSPECT.md +32 -8
  65. package/skills/gsd-path/PLAN.md +29 -19
  66. package/skills/gsd-path/RESEARCH.md +5 -6
  67. package/skills/gsd-path/ROADMAP.md +24 -58
  68. package/skills/gsd-path/SHIP.md +29 -17
  69. package/skills/gsd-path/SKILL.md +46 -22
  70. package/skills/gsd-path/references/build-abandon.md +33 -0
  71. package/skills/gsd-path/references/build-native.md +502 -0
  72. package/skills/gsd-path/references/build-recovery.md +78 -0
  73. package/skills/gsd-path/references/coder.md +8 -3
  74. package/skills/gsd-path/references/config.md +57 -0
  75. package/skills/gsd-path/references/dispatch.md +12 -19
  76. package/skills/gsd-path/references/docs-auditor.md +14 -0
  77. package/skills/gsd-path/references/jev-review.md +82 -0
  78. package/skills/gsd-path/references/model-policy.md +139 -0
  79. package/skills/gsd-path/references/reviewer-final.md +21 -0
  80. package/skills/gsd-path/references/reviewer-panel.md +17 -0
  81. package/skills/gsd-path/references/reviewer-skeptic.md +20 -0
  82. package/skills/gsd-path/references/reviewer-wave.md +89 -0
  83. package/skills/gsd-path/references/reviewer.md +12 -148
  84. package/skills/gsd-path/references/runtime-selection.md +25 -0
  85. package/skills/gsd-path/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  86. package/skills/gsd-path/scripts/__pycache__/check_handoffs.cpython-312.pyc +0 -0
  87. package/skills/gsd-path/scripts/_common.py +5 -0
  88. package/skills/gsd-path/scripts/archive_milestone.py +30 -124
  89. package/skills/gsd-path/scripts/bootstrap_repository.py +33 -4
  90. package/skills/gsd-path/scripts/build_recovery.py +292 -0
  91. package/skills/gsd-path/scripts/build_state.py +2 -0
  92. package/skills/gsd-path/scripts/check_docs_audit.py +7 -3
  93. package/skills/gsd-path/scripts/check_handoffs.py +7 -1
  94. package/skills/gsd-path/scripts/check_task_briefs.py +3 -0
  95. package/skills/gsd-path/scripts/detect_project.py +22 -3
  96. package/skills/gsd-path/scripts/discussion_records.py +3 -0
  97. package/skills/gsd-path/scripts/discussion_validate.py +8 -3
  98. package/skills/gsd-path/scripts/dispatch_driver.py +233 -22
  99. package/skills/gsd-path/scripts/git_guard.py +768 -0
  100. package/skills/gsd-path/scripts/integration.py +54 -28
  101. package/skills/gsd-path/scripts/isolation.py +24 -6
  102. package/skills/gsd-path/scripts/jev_review.py +138 -0
  103. package/skills/gsd-path/scripts/lean_verification.py +3 -1
  104. package/skills/gsd-path/scripts/loop_run.py +2 -0
  105. package/skills/gsd-path/scripts/model_policy.py +279 -0
  106. package/skills/gsd-path/scripts/path_config.py +248 -0
  107. package/skills/gsd-path/scripts/pipeline_git.py +3 -0
  108. package/skills/gsd-path/scripts/pipeline_state.py +117 -186
  109. package/skills/gsd-path/scripts/promote_lookahead.py +33 -162
  110. package/skills/gsd-path/scripts/review_panel.py +11 -0
  111. package/skills/gsd-path/scripts/roadmap.py +326 -0
  112. package/skills/gsd-path/scripts/state_checkpoint.py +114 -72
  113. package/skills/gsd-path/scripts/state_promote.py +47 -44
  114. package/skills/gsd-path/scripts/status_runtime.py +208 -0
  115. package/skills/gsd-path/scripts/task_context.py +73 -0
  116. package/skills/gsd-path/scripts/token_budget.py +40 -1
  117. package/skills/gsd-path/scripts/workflow_run.py +128 -8
  118. package/skills/gsd-path/scripts/worktree_paths.py +94 -0
  119. package/skills/gsd-path/templates/skeptic.md +1 -1
  120. package/skills/gsd-path/templates/task.md +2 -0
  121. package/skills/gsd-path/templates/wave-panel.md +1 -1
  122. package/skills/gsd-path/templates/wave-review.md +1 -1
  123. package/skills/gsd-path-build/SKILL.md +54 -575
  124. package/skills/gsd-path-build/references/build-abandon.md +33 -0
  125. package/skills/gsd-path-build/references/build-native.md +502 -0
  126. package/skills/gsd-path-build/references/build-recovery.md +78 -0
  127. package/skills/gsd-path-build/references/coder.md +8 -3
  128. package/skills/gsd-path-build/references/dispatch.md +12 -19
  129. package/skills/gsd-path-build/references/jev-review.md +82 -0
  130. package/skills/gsd-path-build/references/model-policy.md +139 -0
  131. package/skills/gsd-path-build/references/reviewer-final.md +21 -0
  132. package/skills/gsd-path-build/references/reviewer-panel.md +17 -0
  133. package/skills/gsd-path-build/references/reviewer-skeptic.md +20 -0
  134. package/skills/gsd-path-build/references/reviewer-wave.md +89 -0
  135. package/skills/gsd-path-build/references/reviewer.md +12 -148
  136. package/skills/gsd-path-build/references/runtime-selection.md +25 -0
  137. package/skills/gsd-path-build/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  138. package/skills/gsd-path-build/scripts/__pycache__/check_handoffs.cpython-312.pyc +0 -0
  139. package/skills/gsd-path-build/scripts/_common.py +5 -0
  140. package/skills/gsd-path-build/scripts/archive_milestone.py +30 -124
  141. package/skills/gsd-path-build/scripts/build_recovery.py +292 -0
  142. package/skills/gsd-path-build/scripts/build_state.py +2 -0
  143. package/skills/gsd-path-build/scripts/check_handoffs.py +7 -1
  144. package/skills/gsd-path-build/scripts/check_task_briefs.py +3 -0
  145. package/skills/gsd-path-build/scripts/detect_project.py +1536 -0
  146. package/skills/gsd-path-build/scripts/discussion_records.py +3 -0
  147. package/skills/gsd-path-build/scripts/discussion_validate.py +8 -3
  148. package/skills/gsd-path-build/scripts/dispatch_driver.py +233 -22
  149. package/skills/gsd-path-build/scripts/integration.py +54 -28
  150. package/skills/gsd-path-build/scripts/isolation.py +24 -6
  151. package/skills/gsd-path-build/scripts/jev_review.py +138 -0
  152. package/skills/gsd-path-build/scripts/loop_run.py +2 -0
  153. package/skills/gsd-path-build/scripts/model_policy.py +279 -0
  154. package/skills/gsd-path-build/scripts/path_config.py +248 -0
  155. package/skills/gsd-path-build/scripts/pipeline_git.py +3 -0
  156. package/skills/gsd-path-build/scripts/pipeline_state.py +117 -186
  157. package/skills/gsd-path-build/scripts/promote_lookahead.py +286 -0
  158. package/skills/gsd-path-build/scripts/review_panel.py +11 -0
  159. package/skills/gsd-path-build/scripts/roadmap.py +326 -0
  160. package/skills/gsd-path-build/scripts/state_checkpoint.py +114 -72
  161. package/skills/gsd-path-build/scripts/state_promote.py +47 -44
  162. package/skills/gsd-path-build/scripts/task_context.py +73 -0
  163. package/skills/gsd-path-build/scripts/token_budget.py +40 -1
  164. package/skills/gsd-path-build/scripts/workflow_run.py +128 -8
  165. package/skills/gsd-path-build/scripts/worktree_paths.py +94 -0
  166. package/skills/gsd-path-build/templates/skeptic.md +1 -1
  167. package/skills/gsd-path-build/templates/task.md +2 -0
  168. package/skills/gsd-path-build/templates/wave-panel.md +1 -1
  169. package/skills/gsd-path-build/templates/wave-review.md +1 -1
  170. package/skills/gsd-path-decide/SKILL.md +4 -6
  171. package/skills/gsd-path-decide/references/dispatch.md +12 -19
  172. package/skills/gsd-path-decide/references/model-policy.md +139 -0
  173. package/skills/gsd-path-decide/references/runtime-selection.md +25 -0
  174. package/skills/gsd-path-decide/scripts/_common.py +5 -0
  175. package/skills/gsd-path-decide/scripts/archive_milestone.py +2171 -0
  176. package/skills/gsd-path-decide/scripts/build_recovery.py +292 -0
  177. package/skills/gsd-path-decide/scripts/check_handoffs.py +7 -1
  178. package/skills/gsd-path-decide/scripts/check_task_briefs.py +3 -0
  179. package/skills/gsd-path-decide/scripts/detect_project.py +1536 -0
  180. package/skills/gsd-path-decide/scripts/discussion_records.py +3 -0
  181. package/skills/gsd-path-decide/scripts/discussion_validate.py +1326 -0
  182. package/skills/gsd-path-decide/scripts/integration.py +1459 -0
  183. package/skills/gsd-path-decide/scripts/isolation.py +24 -6
  184. package/skills/gsd-path-decide/scripts/loop_run.py +839 -0
  185. package/skills/gsd-path-decide/scripts/model_policy.py +279 -0
  186. package/skills/gsd-path-decide/scripts/path_config.py +248 -0
  187. package/skills/gsd-path-decide/scripts/pipeline_git.py +3 -0
  188. package/skills/gsd-path-decide/scripts/pipeline_state.py +117 -186
  189. package/skills/gsd-path-decide/scripts/promote_lookahead.py +286 -0
  190. package/skills/gsd-path-decide/scripts/review_panel.py +564 -0
  191. package/skills/gsd-path-decide/scripts/roadmap.py +326 -0
  192. package/skills/gsd-path-decide/scripts/state_checkpoint.py +114 -72
  193. package/skills/gsd-path-decide/scripts/state_promote.py +47 -44
  194. package/skills/gsd-path-decide/scripts/worktree_paths.py +94 -0
  195. package/skills/gsd-path-define/SKILL.md +23 -21
  196. package/skills/gsd-path-define/references/build-recovery.md +78 -0
  197. package/skills/gsd-path-define/references/runtime-selection.md +25 -0
  198. package/skills/gsd-path-define/scripts/_common.py +5 -0
  199. package/skills/gsd-path-define/scripts/archive_milestone.py +2171 -0
  200. package/skills/gsd-path-define/scripts/build_recovery.py +292 -0
  201. package/skills/gsd-path-define/scripts/check_handoffs.py +7 -1
  202. package/skills/gsd-path-define/scripts/check_task_briefs.py +3 -0
  203. package/skills/gsd-path-define/scripts/detect_project.py +22 -3
  204. package/skills/gsd-path-define/scripts/discussion_records.py +3 -0
  205. package/skills/gsd-path-define/scripts/discussion_validate.py +1326 -0
  206. package/skills/gsd-path-define/scripts/integration.py +1459 -0
  207. package/skills/gsd-path-define/scripts/isolation.py +24 -6
  208. package/skills/gsd-path-define/scripts/loop_run.py +839 -0
  209. package/skills/gsd-path-define/scripts/model_policy.py +279 -0
  210. package/skills/gsd-path-define/scripts/path_config.py +248 -0
  211. package/skills/gsd-path-define/scripts/pipeline_git.py +3 -0
  212. package/skills/gsd-path-define/scripts/pipeline_state.py +117 -186
  213. package/skills/gsd-path-define/scripts/promote_lookahead.py +286 -0
  214. package/skills/gsd-path-define/scripts/review_panel.py +564 -0
  215. package/skills/gsd-path-define/scripts/roadmap.py +326 -0
  216. package/skills/gsd-path-define/scripts/state_checkpoint.py +114 -72
  217. package/skills/gsd-path-define/scripts/state_promote.py +47 -44
  218. package/skills/gsd-path-define/scripts/worktree_paths.py +94 -0
  219. package/skills/gsd-path-discuss/SKILL.md +2 -0
  220. package/skills/gsd-path-discuss/references/runtime-selection.md +25 -0
  221. package/skills/gsd-path-discuss/scripts/_common.py +5 -0
  222. package/skills/gsd-path-discuss/scripts/discussion_records.py +3 -0
  223. package/skills/gsd-path-discuss/scripts/loop_run.py +839 -0
  224. package/skills/gsd-path-discuss/scripts/model_policy.py +279 -0
  225. package/skills/gsd-path-discuss/scripts/path_config.py +248 -0
  226. package/skills/gsd-path-discuss/scripts/review_panel.py +564 -0
  227. package/skills/gsd-path-discuss/scripts/worktree_paths.py +94 -0
  228. package/skills/gsd-path-docs-audit/SKILL.md +2 -0
  229. package/skills/gsd-path-docs-audit/references/dispatch.md +12 -19
  230. package/skills/gsd-path-docs-audit/references/docs-auditor.md +14 -0
  231. package/skills/gsd-path-docs-audit/references/model-policy.md +139 -0
  232. package/skills/gsd-path-docs-audit/references/runtime-selection.md +25 -0
  233. package/skills/gsd-path-docs-audit/scripts/_common.py +5 -0
  234. package/skills/gsd-path-docs-audit/scripts/archive_milestone.py +2171 -0
  235. package/skills/gsd-path-docs-audit/scripts/build_recovery.py +292 -0
  236. package/skills/gsd-path-docs-audit/scripts/check_docs_audit.py +7 -3
  237. package/skills/gsd-path-docs-audit/scripts/check_handoffs.py +7 -1
  238. package/skills/gsd-path-docs-audit/scripts/check_task_briefs.py +3 -0
  239. package/skills/gsd-path-docs-audit/scripts/detect_project.py +1536 -0
  240. package/skills/gsd-path-docs-audit/scripts/discussion_records.py +3 -0
  241. package/skills/gsd-path-docs-audit/scripts/discussion_validate.py +1326 -0
  242. package/skills/gsd-path-docs-audit/scripts/integration.py +1459 -0
  243. package/skills/gsd-path-docs-audit/scripts/isolation.py +24 -6
  244. package/skills/gsd-path-docs-audit/scripts/loop_run.py +839 -0
  245. package/skills/gsd-path-docs-audit/scripts/model_policy.py +279 -0
  246. package/skills/gsd-path-docs-audit/scripts/path_config.py +248 -0
  247. package/skills/gsd-path-docs-audit/scripts/pipeline_git.py +3 -0
  248. package/skills/gsd-path-docs-audit/scripts/pipeline_state.py +117 -186
  249. package/skills/gsd-path-docs-audit/scripts/promote_lookahead.py +286 -0
  250. package/skills/gsd-path-docs-audit/scripts/review_panel.py +564 -0
  251. package/skills/gsd-path-docs-audit/scripts/roadmap.py +326 -0
  252. package/skills/gsd-path-docs-audit/scripts/state_checkpoint.py +114 -72
  253. package/skills/gsd-path-docs-audit/scripts/state_promote.py +47 -44
  254. package/skills/gsd-path-docs-audit/scripts/worktree_paths.py +94 -0
  255. package/skills/gsd-path-forensics/SKILL.md +9 -5
  256. package/skills/gsd-path-forensics/references/runtime-selection.md +25 -0
  257. package/skills/gsd-path-forensics/scripts/_common.py +5 -0
  258. package/skills/gsd-path-forensics/scripts/discussion_records.py +3 -0
  259. package/skills/gsd-path-forensics/scripts/loop_run.py +839 -0
  260. package/skills/gsd-path-forensics/scripts/model_policy.py +279 -0
  261. package/skills/gsd-path-forensics/scripts/path_config.py +248 -0
  262. package/skills/gsd-path-forensics/scripts/pipeline_diagnose.py +15 -3
  263. package/skills/gsd-path-forensics/scripts/pipeline_undo.py +14 -7
  264. package/skills/gsd-path-forensics/scripts/review_panel.py +564 -0
  265. package/skills/gsd-path-forensics/scripts/worktree_paths.py +94 -0
  266. package/skills/gsd-path-inspect/SKILL.md +32 -8
  267. package/skills/gsd-path-inspect/references/dispatch.md +12 -19
  268. package/skills/gsd-path-inspect/references/docs-auditor.md +14 -0
  269. package/skills/gsd-path-inspect/references/model-policy.md +139 -0
  270. package/skills/gsd-path-inspect/references/runtime-selection.md +25 -0
  271. package/skills/gsd-path-inspect/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  272. package/skills/gsd-path-inspect/scripts/_common.py +5 -0
  273. package/skills/gsd-path-inspect/scripts/archive_milestone.py +2171 -0
  274. package/skills/gsd-path-inspect/scripts/build_recovery.py +292 -0
  275. package/skills/gsd-path-inspect/scripts/check_docs_audit.py +7 -3
  276. package/skills/gsd-path-inspect/scripts/check_handoffs.py +7 -1
  277. package/skills/gsd-path-inspect/scripts/check_task_briefs.py +3 -0
  278. package/skills/gsd-path-inspect/scripts/detect_project.py +22 -3
  279. package/skills/gsd-path-inspect/scripts/discussion_records.py +3 -0
  280. package/skills/gsd-path-inspect/scripts/discussion_validate.py +1326 -0
  281. package/skills/gsd-path-inspect/scripts/integration.py +1459 -0
  282. package/skills/gsd-path-inspect/scripts/isolation.py +24 -6
  283. package/skills/gsd-path-inspect/scripts/loop_run.py +839 -0
  284. package/skills/gsd-path-inspect/scripts/model_policy.py +279 -0
  285. package/skills/gsd-path-inspect/scripts/path_config.py +248 -0
  286. package/skills/gsd-path-inspect/scripts/pipeline_git.py +3 -0
  287. package/skills/gsd-path-inspect/scripts/pipeline_state.py +117 -186
  288. package/skills/gsd-path-inspect/scripts/promote_lookahead.py +286 -0
  289. package/skills/gsd-path-inspect/scripts/review_panel.py +564 -0
  290. package/skills/gsd-path-inspect/scripts/roadmap.py +326 -0
  291. package/skills/gsd-path-inspect/scripts/state_checkpoint.py +114 -72
  292. package/skills/gsd-path-inspect/scripts/state_promote.py +47 -44
  293. package/skills/gsd-path-inspect/scripts/workflow_run.py +237 -0
  294. package/skills/gsd-path-inspect/scripts/worktree_paths.py +94 -0
  295. package/skills/gsd-path-loop/SKILL.md +2 -0
  296. package/skills/gsd-path-loop/references/runtime-selection.md +25 -0
  297. package/skills/gsd-path-loop/scripts/_common.py +5 -0
  298. package/skills/gsd-path-loop/scripts/discussion_records.py +3 -0
  299. package/skills/gsd-path-loop/scripts/loop_run.py +2 -0
  300. package/skills/gsd-path-loop/scripts/model_policy.py +279 -0
  301. package/skills/gsd-path-loop/scripts/path_config.py +248 -0
  302. package/skills/gsd-path-loop/scripts/review_panel.py +564 -0
  303. package/skills/gsd-path-loop/scripts/worktree_paths.py +94 -0
  304. package/skills/gsd-path-migrate/SKILL.md +2 -0
  305. package/skills/gsd-path-migrate/references/runtime-selection.md +25 -0
  306. package/skills/gsd-path-migrate/scripts/_common.py +185 -0
  307. package/skills/gsd-path-migrate/scripts/discussion_records.py +3 -0
  308. package/skills/gsd-path-migrate/scripts/loop_run.py +839 -0
  309. package/skills/gsd-path-migrate/scripts/model_policy.py +279 -0
  310. package/skills/gsd-path-migrate/scripts/path_config.py +248 -0
  311. package/skills/gsd-path-migrate/scripts/review_panel.py +564 -0
  312. package/skills/gsd-path-plan/SKILL.md +29 -19
  313. package/skills/gsd-path-plan/references/build-recovery.md +78 -0
  314. package/skills/gsd-path-plan/references/dispatch.md +12 -19
  315. package/skills/gsd-path-plan/references/model-policy.md +139 -0
  316. package/skills/gsd-path-plan/references/runtime-selection.md +25 -0
  317. package/skills/gsd-path-plan/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  318. package/skills/gsd-path-plan/scripts/_common.py +5 -0
  319. package/skills/gsd-path-plan/scripts/archive_milestone.py +2171 -0
  320. package/skills/gsd-path-plan/scripts/build_recovery.py +292 -0
  321. package/skills/gsd-path-plan/scripts/check_handoffs.py +7 -1
  322. package/skills/gsd-path-plan/scripts/check_task_briefs.py +3 -0
  323. package/skills/gsd-path-plan/scripts/detect_project.py +1536 -0
  324. package/skills/gsd-path-plan/scripts/discussion_records.py +3 -0
  325. package/skills/gsd-path-plan/scripts/discussion_validate.py +1326 -0
  326. package/skills/gsd-path-plan/scripts/integration.py +1459 -0
  327. package/skills/gsd-path-plan/scripts/isolation.py +24 -6
  328. package/skills/gsd-path-plan/scripts/loop_run.py +839 -0
  329. package/skills/gsd-path-plan/scripts/model_policy.py +279 -0
  330. package/skills/gsd-path-plan/scripts/path_config.py +248 -0
  331. package/skills/gsd-path-plan/scripts/pipeline_git.py +3 -0
  332. package/skills/gsd-path-plan/scripts/pipeline_state.py +117 -186
  333. package/skills/gsd-path-plan/scripts/promote_lookahead.py +286 -0
  334. package/skills/gsd-path-plan/scripts/review_panel.py +11 -0
  335. package/skills/gsd-path-plan/scripts/roadmap.py +326 -0
  336. package/skills/gsd-path-plan/scripts/state_checkpoint.py +114 -72
  337. package/skills/gsd-path-plan/scripts/state_promote.py +47 -44
  338. package/skills/gsd-path-plan/scripts/workflow_run.py +128 -8
  339. package/skills/gsd-path-plan/scripts/worktree_paths.py +94 -0
  340. package/skills/gsd-path-plan/templates/task.md +2 -0
  341. package/skills/gsd-path-research/SKILL.md +5 -6
  342. package/skills/gsd-path-research/references/dispatch.md +12 -19
  343. package/skills/gsd-path-research/references/model-policy.md +139 -0
  344. package/skills/gsd-path-research/references/runtime-selection.md +25 -0
  345. package/skills/gsd-path-research/scripts/_common.py +5 -0
  346. package/skills/gsd-path-research/scripts/archive_milestone.py +2171 -0
  347. package/skills/gsd-path-research/scripts/build_recovery.py +292 -0
  348. package/skills/gsd-path-research/scripts/check_handoffs.py +7 -1
  349. package/skills/gsd-path-research/scripts/check_task_briefs.py +3 -0
  350. package/skills/gsd-path-research/scripts/detect_project.py +1536 -0
  351. package/skills/gsd-path-research/scripts/discussion_records.py +3 -0
  352. package/skills/gsd-path-research/scripts/discussion_validate.py +1326 -0
  353. package/skills/gsd-path-research/scripts/integration.py +1459 -0
  354. package/skills/gsd-path-research/scripts/isolation.py +24 -6
  355. package/skills/gsd-path-research/scripts/loop_run.py +839 -0
  356. package/skills/gsd-path-research/scripts/model_policy.py +279 -0
  357. package/skills/gsd-path-research/scripts/path_config.py +248 -0
  358. package/skills/gsd-path-research/scripts/pipeline_git.py +3 -0
  359. package/skills/gsd-path-research/scripts/pipeline_state.py +117 -186
  360. package/skills/gsd-path-research/scripts/promote_lookahead.py +286 -0
  361. package/skills/gsd-path-research/scripts/review_panel.py +564 -0
  362. package/skills/gsd-path-research/scripts/roadmap.py +326 -0
  363. package/skills/gsd-path-research/scripts/state_checkpoint.py +114 -72
  364. package/skills/gsd-path-research/scripts/state_promote.py +47 -44
  365. package/skills/gsd-path-research/scripts/worktree_paths.py +94 -0
  366. package/skills/gsd-path-roadmap/SKILL.md +24 -58
  367. package/skills/gsd-path-roadmap/references/dispatch.md +12 -19
  368. package/skills/gsd-path-roadmap/references/model-policy.md +139 -0
  369. package/skills/gsd-path-roadmap/references/runtime-selection.md +25 -0
  370. package/skills/gsd-path-roadmap/scripts/_common.py +5 -0
  371. package/skills/gsd-path-roadmap/scripts/archive_milestone.py +30 -124
  372. package/skills/gsd-path-roadmap/scripts/build_recovery.py +292 -0
  373. package/skills/gsd-path-roadmap/scripts/check_handoffs.py +7 -1
  374. package/skills/gsd-path-roadmap/scripts/check_task_briefs.py +3 -0
  375. package/skills/gsd-path-roadmap/scripts/detect_project.py +22 -3
  376. package/skills/gsd-path-roadmap/scripts/discussion_records.py +3 -0
  377. package/skills/gsd-path-roadmap/scripts/discussion_validate.py +8 -3
  378. package/skills/gsd-path-roadmap/scripts/integration.py +54 -28
  379. package/skills/gsd-path-roadmap/scripts/isolation.py +24 -6
  380. package/skills/gsd-path-roadmap/scripts/loop_run.py +839 -0
  381. package/skills/gsd-path-roadmap/scripts/model_policy.py +279 -0
  382. package/skills/gsd-path-roadmap/scripts/path_config.py +248 -0
  383. package/skills/gsd-path-roadmap/scripts/pipeline_git.py +3 -0
  384. package/skills/gsd-path-roadmap/scripts/pipeline_state.py +117 -186
  385. package/skills/gsd-path-roadmap/scripts/promote_lookahead.py +33 -162
  386. package/skills/gsd-path-roadmap/scripts/review_panel.py +11 -0
  387. package/skills/gsd-path-roadmap/scripts/roadmap.py +326 -0
  388. package/skills/gsd-path-roadmap/scripts/state_checkpoint.py +114 -72
  389. package/skills/gsd-path-roadmap/scripts/state_promote.py +47 -44
  390. package/skills/gsd-path-roadmap/scripts/worktree_paths.py +94 -0
  391. package/skills/gsd-path-ship/SKILL.md +29 -17
  392. package/skills/gsd-path-ship/references/dispatch.md +12 -19
  393. package/skills/gsd-path-ship/references/jev-review.md +82 -0
  394. package/skills/gsd-path-ship/references/model-policy.md +139 -0
  395. package/skills/gsd-path-ship/references/reviewer-final.md +21 -0
  396. package/skills/gsd-path-ship/references/reviewer-panel.md +17 -0
  397. package/skills/gsd-path-ship/references/reviewer-skeptic.md +20 -0
  398. package/skills/gsd-path-ship/references/reviewer-wave.md +89 -0
  399. package/skills/gsd-path-ship/references/reviewer.md +12 -148
  400. package/skills/gsd-path-ship/references/runtime-selection.md +25 -0
  401. package/skills/gsd-path-ship/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  402. package/skills/gsd-path-ship/scripts/_common.py +5 -0
  403. package/skills/gsd-path-ship/scripts/archive_milestone.py +30 -124
  404. package/skills/gsd-path-ship/scripts/build_recovery.py +292 -0
  405. package/skills/gsd-path-ship/scripts/build_state.py +2 -0
  406. package/skills/gsd-path-ship/scripts/check_handoffs.py +7 -1
  407. package/skills/gsd-path-ship/scripts/check_task_briefs.py +3 -0
  408. package/skills/gsd-path-ship/scripts/detect_project.py +1536 -0
  409. package/skills/gsd-path-ship/scripts/discussion_records.py +3 -0
  410. package/skills/gsd-path-ship/scripts/discussion_validate.py +8 -3
  411. package/skills/gsd-path-ship/scripts/integration.py +54 -28
  412. package/skills/gsd-path-ship/scripts/isolation.py +24 -6
  413. package/skills/gsd-path-ship/scripts/jev_review.py +138 -0
  414. package/skills/gsd-path-ship/scripts/lean_verification.py +3 -1
  415. package/skills/gsd-path-ship/scripts/loop_run.py +839 -0
  416. package/skills/gsd-path-ship/scripts/model_policy.py +279 -0
  417. package/skills/gsd-path-ship/scripts/path_config.py +248 -0
  418. package/skills/gsd-path-ship/scripts/pipeline_git.py +3 -0
  419. package/skills/gsd-path-ship/scripts/pipeline_state.py +117 -186
  420. package/skills/gsd-path-ship/scripts/promote_lookahead.py +286 -0
  421. package/skills/gsd-path-ship/scripts/review_panel.py +11 -0
  422. package/skills/gsd-path-ship/scripts/roadmap.py +326 -0
  423. package/skills/gsd-path-ship/scripts/state_checkpoint.py +114 -72
  424. package/skills/gsd-path-ship/scripts/state_promote.py +47 -44
  425. package/skills/gsd-path-ship/scripts/workflow_run.py +128 -8
  426. package/skills/gsd-path-ship/scripts/worktree_paths.py +94 -0
  427. package/skills/gsd-path-ship/templates/wave-review.md +1 -1
  428. package/skills/gsd-path-undo/SKILL.md +2 -0
  429. package/skills/gsd-path-undo/references/runtime-selection.md +25 -0
  430. package/skills/gsd-path-undo/scripts/_common.py +5 -0
  431. package/skills/gsd-path-undo/scripts/discussion_records.py +3 -0
  432. package/skills/gsd-path-undo/scripts/loop_run.py +839 -0
  433. package/skills/gsd-path-undo/scripts/model_policy.py +279 -0
  434. package/skills/gsd-path-undo/scripts/path_config.py +248 -0
  435. package/skills/gsd-path-undo/scripts/pipeline_undo.py +14 -7
  436. package/skills/gsd-path-undo/scripts/review_panel.py +564 -0
  437. package/skills/gsd-path-undo/scripts/worktree_paths.py +94 -0
  438. package/skills/path/BUILD.md +54 -575
  439. package/skills/path/DECIDE.md +4 -6
  440. package/skills/path/DEFINE.md +23 -21
  441. package/skills/path/DOCS-AUDIT.md +2 -0
  442. package/skills/path/INSPECT.md +32 -8
  443. package/skills/path/PLAN.md +29 -19
  444. package/skills/path/RESEARCH.md +5 -6
  445. package/skills/path/ROADMAP.md +24 -58
  446. package/skills/path/SHIP.md +29 -17
  447. package/skills/path/SKILL.md +46 -22
  448. package/skills/path/references/build-abandon.md +33 -0
  449. package/skills/path/references/build-native.md +502 -0
  450. package/skills/path/references/build-recovery.md +78 -0
  451. package/skills/path/references/coder.md +8 -3
  452. package/skills/path/references/config.md +57 -0
  453. package/skills/path/references/dispatch.md +12 -19
  454. package/skills/path/references/docs-auditor.md +14 -0
  455. package/skills/path/references/jev-review.md +82 -0
  456. package/skills/path/references/model-policy.md +139 -0
  457. package/skills/path/references/reviewer-final.md +21 -0
  458. package/skills/path/references/reviewer-panel.md +17 -0
  459. package/skills/path/references/reviewer-skeptic.md +20 -0
  460. package/skills/path/references/reviewer-wave.md +89 -0
  461. package/skills/path/references/reviewer.md +12 -148
  462. package/skills/path/references/runtime-selection.md +25 -0
  463. package/skills/path/scripts/_common.py +5 -0
  464. package/skills/path/scripts/archive_milestone.py +30 -124
  465. package/skills/path/scripts/bootstrap_repository.py +33 -4
  466. package/skills/path/scripts/build_recovery.py +292 -0
  467. package/skills/path/scripts/build_state.py +2 -0
  468. package/skills/path/scripts/check_docs_audit.py +7 -3
  469. package/skills/path/scripts/check_handoffs.py +7 -1
  470. package/skills/path/scripts/check_task_briefs.py +3 -0
  471. package/skills/path/scripts/detect_project.py +22 -3
  472. package/skills/path/scripts/discussion_records.py +3 -0
  473. package/skills/path/scripts/discussion_validate.py +8 -3
  474. package/skills/path/scripts/dispatch_driver.py +233 -22
  475. package/skills/path/scripts/git_guard.py +768 -0
  476. package/skills/path/scripts/integration.py +54 -28
  477. package/skills/path/scripts/isolation.py +24 -6
  478. package/skills/path/scripts/jev_review.py +138 -0
  479. package/skills/path/scripts/lean_verification.py +3 -1
  480. package/skills/path/scripts/loop_run.py +2 -0
  481. package/skills/path/scripts/model_policy.py +279 -0
  482. package/skills/path/scripts/path_config.py +248 -0
  483. package/skills/path/scripts/pipeline_git.py +3 -0
  484. package/skills/path/scripts/pipeline_state.py +117 -186
  485. package/skills/path/scripts/promote_lookahead.py +33 -162
  486. package/skills/path/scripts/review_panel.py +11 -0
  487. package/skills/path/scripts/roadmap.py +326 -0
  488. package/skills/path/scripts/state_checkpoint.py +114 -72
  489. package/skills/path/scripts/state_promote.py +47 -44
  490. package/skills/path/scripts/status_runtime.py +208 -0
  491. package/skills/path/scripts/task_context.py +73 -0
  492. package/skills/path/scripts/token_budget.py +40 -1
  493. package/skills/path/scripts/workflow_run.py +128 -8
  494. package/skills/path/scripts/worktree_paths.py +94 -0
  495. package/skills/path/templates/skeptic.md +1 -1
  496. package/skills/path/templates/task.md +2 -0
  497. package/skills/path/templates/wave-panel.md +1 -1
  498. package/skills/path/templates/wave-review.md +1 -1
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,22 +39,195 @@ 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 |
43
+ | [daemon/README.md](daemon/README.md) | Dashboard, menu-bar app, and monitoring setup |
44
+ | [CHANGELOG.md](CHANGELOG.md) | Published release notes |
45
+ | [RELEASE.md](RELEASE.md) | Maintainer CI and npm release cycle |
30
46
  | [GUIDE.md](GUIDE.md) | Pointer to the guides above |
31
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
+
75
+ ## Install from npm
76
+
77
+ Requires **Node.js 18.17+** for the npm installer and **Python 3.9+** for
78
+ project contracts and pipeline helpers. Install and sign in to a supported
79
+ coding-agent host separately; GSD Path installs its skills, not the host itself.
80
+ The public npm package is **[@opengsd/gsd-path](https://www.npmjs.com/package/@opengsd/gsd-path)**.
81
+
32
82
  ```bash
33
- # New user
34
- node scripts/install.mjs --all --dry-run && node scripts/install.mjs --all
35
- cd your-repo && node scripts/install.mjs --all --project "$(pwd)"
36
- # In agent: invoke the router (see Install summary below)
83
+ # Interactive installer: choose hosts, install scope, contracts, and hooks
84
+ npx @opengsd/gsd-path@latest
37
85
 
38
- # Already installed
39
- node scripts/install.mjs --update
40
- cd your-repo && node scripts/install.mjs --update --project "$(pwd)" # also refresh .gsd-path/
86
+ # Or preview and install skills for all supported hosts
87
+ npx @opengsd/gsd-path@latest --all --dry-run
88
+ npx @opengsd/gsd-path@latest --all
89
+
90
+ # Add contracts and the status runtime to your project
91
+ npx @opengsd/gsd-path@latest --all --project /path/to/your-repo
92
+
93
+ # Update existing installs
94
+ npx @opengsd/gsd-path@latest --update
95
+ npx @opengsd/gsd-path@latest --update --project /path/to/your-repo
96
+ ```
97
+
98
+ Use host flags such as `--claude --codex` instead of `--all` to select hosts.
99
+ For project-local skills, run from your project directory and add `--local`
100
+ to install and update commands. `--project PATH` selects where contracts are
101
+ written; it does not change the directory used by `--local`. Run
102
+ `npx @opengsd/gsd-path@latest --help` for all options. After installing, invoke
103
+ `$path` in Codex or `/path` on slash-command hosts to start the pipeline.
104
+ See [Install (summary)](#install-summary) for the host list and source-checkout commands.
105
+ The npm command installs the latest published release; a source checkout may
106
+ contain newer changes.
107
+
108
+ ### Start your first project
109
+
110
+ 1. Open your project folder in your coding-agent host. Existing repositories
111
+ need Git; GitHub repository creation and pull-request operations also need
112
+ an authenticated GitHub CLI (`gh`).
113
+ 2. Start or reload the host session so it discovers the installed skills.
114
+ 3. Invoke `$path` in Codex, or `/path` on slash-command hosts. The router
115
+ identifies the project and guides you through the required inputs and approvals.
116
+ 4. Resume later from the same folder with the router. Use `$path status`
117
+ (Codex) or `/path status` to inspect progress without advancing.
118
+
119
+ For a missing skill or an install problem, run:
120
+
121
+ ```bash
122
+ npx @opengsd/gsd-path@latest --doctor --project /path/to/your-repo
123
+ ```
124
+
125
+ Add `--local` when checking project-local skills, from that project directory.
126
+ See [QUICK.md](QUICK.md) for the first-run checklist and [HOOKS.md](HOOKS.md)
127
+ for optional Git and host guard hooks.
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
+
137
+ ## Dashboard and menu-bar toolbar
138
+
139
+ The optional **OpenGSD Path monitor** shows your projects without opening each
140
+ project's `.project/` files. It watches the folders you choose and reads project
141
+ state without advancing phase gates. Explicit Path settings saves use the
142
+ validated configuration helper; background monitoring remains read-only.
143
+ The monitor is a separate install from the npm skills package.
144
+
145
+ ### Dashboard
146
+
147
+ The project board shows blocked, active, and shipped work, with milestone and
148
+ phase progress, task counts, last activity, and available usage data. Use the
149
+ [dashboard controls](daemon/README.md#dashboard) to filter or search projects,
150
+ switch between Board and Milestones, refresh status, and manage settings.
151
+
152
+ ![OpenGSD Path project board showing sample projects, status filters, milestone progress, tasks, and usage](docs/images/dashboard-board.png)
153
+
154
+ Click a project to see its milestone roadmap, tasks, success criteria, review
155
+ results, verification history, and activity. Usage includes tokens and turns
156
+ from supported host session logs; cost estimates require model prices in the
157
+ daemon configuration.
158
+
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.
177
+
178
+ ### macOS menu bar
179
+
180
+ Click the OpenGSD Path menu-bar icon for a compact project list with phase
181
+ meters and task progress. Click a project to open its dashboard page. The
182
+ bottom toolbar opens the dashboard, plugin settings, and watched folders;
183
+ it also provides rescan, appearance, and quit controls. The daemon row shows
184
+ its running state and provides restart and stop controls. Option-click the
185
+ menu-bar icon to open the dashboard directly.
186
+
187
+ <img src="docs/images/macos-menu-bar.png" alt="OpenGSD Path native macOS panel with sample projects and its bottom toolbar" width="400">
188
+
189
+ *Screenshots show the current UI with sample project data. The native panel is
190
+ captured in its preview window.*
191
+
192
+ ### Install the monitor
193
+
194
+ The monitor requires Python 3.9+. From a source checkout, preview the setup,
195
+ then install (macOS/Linux shell):
196
+
197
+ ```bash
198
+ git clone https://github.com/open-gsd/gsd-path.git
199
+ cd gsd-path
200
+ PYTHONPATH=daemon python3 -m gsd_daemon install --dry-run
201
+ PYTHONPATH=daemon python3 -m gsd_daemon install
202
+ ```
203
+
204
+ On Windows, after cloning and entering `gsd-path`, use PowerShell:
205
+
206
+ ```powershell
207
+ $env:PYTHONPATH = "daemon"
208
+ python -m gsd_daemon install --dry-run
209
+ python -m gsd_daemon install
41
210
  ```
42
211
 
43
- Interactive: `npx @opengsd/gsd-path` with no flags opens the OpenGSD wizard (pick hosts, scope, contracts, hooks; dry-run first)
212
+ On Windows, launch the installed shortcut for this session before opening the
213
+ dashboard. It starts automatically at future logins:
44
214
 
45
- npm (once published to npm): `npx @opengsd/gsd-path --all` · Help: `node scripts/install.mjs --help`
215
+ ```powershell
216
+ Start-Process "$env:APPDATA\Microsoft\Windows\Start Menu\Programs\Startup\gsd-path-daemon.lnk"
217
+ ```
218
+
219
+ Open **http://127.0.0.1:8765**, then use **Settings → Watched folders** to add
220
+ your project folders. The installer creates an isolated Python environment and
221
+ configures autostart. On macOS it also builds and installs the native menu-bar
222
+ app; this requires macOS 12+ and Xcode Command Line Tools (`swiftc`). On
223
+ macOS, use `--no-tray` for the dashboard only. Linux autostart runs the
224
+ dashboard; launch the optional tray separately with
225
+ `~/.gsd-path/venv/bin/gsd-path-daemon tray`. Windows uses a tray-and-dashboard
226
+ Startup shortcut; see the [daemon guide](daemon/README.md) for platform details.
227
+
228
+ See the [daemon guide](daemon/README.md) for configuration, usage pricing,
229
+ manual startup, and platform setup, or the [macOS guide](daemon/macos/README.md)
230
+ for native menu-bar details.
46
231
 
47
232
  ## Skills
48
233
 
@@ -91,7 +276,7 @@ flowchart TD
91
276
  B --> W{"wave loop"}
92
277
  W -->|"briefs linted at base SHA"| C["parallel coders, isolated worktrees"]
93
278
  C -->|"streaming: dependents dispatch as deps land"| V{"wave review"}
94
- V -->|"full or deep: contract + adversarial lenses"| F{"verdict"}
279
+ V -->|"full / verify-only / deep"| F{"verdict"}
95
280
  F -->|"blocked → criterion triage"| W
96
281
  F -->|"pass → next wave"| W
97
282
  F -->|"all waves pass"| S["6 · ship — final review"]
@@ -109,6 +294,16 @@ flowchart TD
109
294
  A -->|"program complete"| PC["stop"]
110
295
  ```
111
296
 
297
+ Starting in an empty folder without Git leaves that folder unchanged until
298
+ repository setup. The router asks whether to create a new GitHub repository or
299
+ use an existing repository. For a new repository, approve the exact owner/name,
300
+ visibility, default-checkout path, `gsd-path/M001` branch, and linked-worktree
301
+ path before creation. The starting folder is proposed as the linked worktree,
302
+ with a distinct default checkout beside it, so the agent keeps working where
303
+ it started. Only an approved empty directory can be reused; nonempty folders
304
+ and symlinks remain protected. Pipeline state is created after repository
305
+ setup. See the [repository setup procedure](WORKFLOW.md#new-github-repository-creation).
306
+
112
307
  For an existing Git repository, initialization writes STATE.md first. Before
113
308
  entering inspect or define, the router fetches `origin/main`, creates or adopts
114
309
  `gsd-path/M001` there, and records the binding in state. Build only uses that
@@ -123,6 +318,8 @@ advance past an unresolved required follow-up.
123
318
 
124
319
  **Build, under the hood:**
125
320
 
321
+ - For intent corrections or structural plan repair during a blocked build,
322
+ follow the [build recovery contract](skills/gsd-path/references/build-recovery.md).
126
323
  - Task briefs are linted against the real base tree (`check_task_briefs.py`)
127
324
  before any agent is dispatched, and every coder runs a preflight — paths
128
325
  exist or are declared, interface contracts match siblings verbatim — so a
@@ -146,9 +343,11 @@ advance past an unresolved required follow-up.
146
343
 
147
344
  Invoke the router explicitly to start or advance a phase. Once a project has an
148
345
  owned `.project/STATE.md`, a plain prompt such as “continue the project” answers
149
- read-only with the current handoff and names the next skill; it never advances
150
- a phase or edits state. Phase skills stop at their handoff; invoke the router
151
- again to continue.
346
+ read-only with the current handoff and uses the runtime’s `handoff.next`; it
347
+ never advances a phase or edits state. An active router continues across completed phases
348
+ until required input, approval, or a block. A phase invoked directly stops at
349
+ its handoff; invoke the router again to continue. Chat and the dashboard use
350
+ the same executable phase handoff from the status runtime.
152
351
  The discussion sidecar is the exception: it can be invoked at any non-shipped
153
352
  phase and returns only a durable conversation record.
154
353
 
@@ -203,10 +402,14 @@ top-level `SYNTHESIS.md`) remain active project metadata.
203
402
 
204
403
  ## Install (summary)
205
404
 
206
- Node 18.17+. Project installs also require Python 3.9+. Validates package,
405
+ Node 18.17+ for the Node installer; Python 3.9+ for project installs and pipeline
406
+ helpers. Validates package,
207
407
  backs up existing skills, and rolls back on failure.
208
408
  **Always** `--dry-run` first when unsure.
209
409
 
410
+ The commands below run from a source checkout. For npm, replace
411
+ `node scripts/install.mjs` with `npx @opengsd/gsd-path@latest`.
412
+
210
413
  ```bash
211
414
  node scripts/install.mjs --all --dry-run
212
415
  node scripts/install.mjs --all
@@ -271,6 +474,7 @@ make install && make verify # same path as GitHub Actions CI
271
474
  | `HOOKS.md` | Guard hooks |
272
475
  | `skills/` | Canonical skills and generated aliases declared in [the resource manifest](scripts/skill-resources.json) |
273
476
  | `platforms/` | Host dispatch adapters |
477
+ | `daemon/` | Project monitor, dashboard, and tray apps |
274
478
  | `scripts/install.mjs` | Installer (npm `gsd-path` bin) |
275
479
  | `scripts/install.py` | Python installer |
276
480
  | `AGENTS.md` | Operating rules (installed to projects) |
package/RUNTIME.md CHANGED
@@ -13,6 +13,10 @@ It does not dispatch models or supply owner approvals.
13
13
  Use the absolute `workflow_run.py` path in the active skill's scripts directory.
14
14
  All commands require `--repo <absolute repository root>`.
15
15
 
16
+ Initial inspection also uses `prepare-inspect` and `finish-inspect`. Their
17
+ inputs, receipt handling, and entry conditions are owned by the
18
+ [inspection procedure](skills/gsd-path-inspect/SKILL.md#process).
19
+
16
20
  | Command | Required input | Result |
17
21
  | --- | --- | --- |
18
22
  | `route` | Optional `--project-dir .project/next` | Canonical route; follow its action even when it blocks or requests recovery. |
@@ -70,8 +74,9 @@ skeptic attempts under `skeptics/`.
70
74
 
71
75
  The child command is owner-supplied shell words. The driver runs it with the
72
76
  isolated worktree as its working directory and the self-contained brief on
73
- stdin; the owner's flags decide the child's permissions and model. Verified
74
- 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
75
80
  `codex exec --json <owner sandbox flags>`. A coder child ends its final message with
76
81
  `RESULT: <task id> ready|blocked`; no line means blocked. A Log delta whose
77
82
  first entry after the last recorded `Orchestrator answer:` leads with
@@ -79,8 +84,9 @@ first entry after the last recorded `Orchestrator answer:` leads with
79
84
  a timeout or nonzero exit is a failure even if the child wrote a question.
80
85
  Canonical reviewer children instead return the `Wave verdict:` line in their
81
86
  validated review artifact; they do not need a `RESULT:` line.
82
- Panel children write family findings without a Wave verdict. The panel command
83
- 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.
84
90
  `--wave` is required and pins the parent-selected wave, including on resumed
85
91
  calls. In `round`, an unfinished earlier wave blocks dispatch before the bookkeeping
86
92
  checkpoint. Child completion is recorded in `exit.json`; the parent alone
@@ -89,6 +95,9 @@ For `review`, `panel`, and `skeptics`, when the child process is gone and `finis
89
95
  unset, the driver rereads that attempt's state and exit receipt before
90
96
  collecting the result or blocking with
91
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.
92
101
  `--wait`, `--child-timeout`, and `--capacity` (concurrent children) have
93
102
  no defaults. `--max-attempts` defaults to 2 dispatches per task per milestone,
94
103
  the build contract's one logged redispatch after the first attempt; question
@@ -192,7 +201,9 @@ python3 <token_budget.py> admit --ledger <absolute ledger> --task <next logical
192
201
  The metric is the host's `output_tokens`, including its reported reasoning output;
193
202
  reasoning is not added again. Input and cached input are not included. Resumptions
194
203
  reuse the ledger and task identity. Each CLI invocation uses its immutable event
195
- file. Re-observing that file is idempotent; new invocations accumulate. Native
204
+ file. Re-observing that file is idempotent. For per-invocation versus cumulative
205
+ resume counters, follow the [dispatch accounting contract](platforms/shared-agents/dispatch.md#configured-output-budgets):
206
+ new invocations must charge only new output. Native
196
207
  single-invocation child sessions and Claude `--output-format json` usage
197
208
  receipts are supported. Resumed native child logs with
198
209
  ambiguous cumulative counters fail closed; use separate CLI run receipts instead.
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
@@ -5,6 +5,13 @@ Idea to shipped code through a gated pipeline. The `gsd-path` router reads
5
5
  Every handoff is on disk; the any-phase discussion sidecar also records its
6
6
  dialogue and answers on disk. AGENTS.md supplies the shared operating rules.
7
7
 
8
+ **Path scope.** `.project/` paths describe the consuming project's artifacts.
9
+ References to `skills/`, `scripts/`, `platforms/`, `RUNTIME.md`, and `HOOKS.md`
10
+ describe the GSD Path source checkout, which an application need not contain.
11
+ For execution in an installed project, resolve each role, template, and helper
12
+ from the active skill's bundled absolute paths. Source-relative links below
13
+ are navigation within the GSD Path source checkout, not installed-file claims.
14
+
8
15
  **Program flow.** When the work is a multi-milestone program, define runs in
9
16
  program mode and writes `.project/CHARTER.md` (enduring scope and vetoes),
10
17
  research and decide work at program scope, and the roadmap phase slices the
@@ -28,7 +35,7 @@ is the single-milestone flow below.
28
35
 
29
36
  Use the host-specific child-agent tool defined by the runtime dispatch contract
30
37
  bundled in the `gsd-path` skill, or the build contract's
31
- [dispatch driver](RUNTIME.md#dispatch-driver) when the owner supplies a child
38
+ [dispatch driver](https://github.com/open-gsd/gsd-path/blob/main/RUNTIME.md#dispatch-driver) when the owner supplies a child
32
39
  command. Spawn independent work up to the available
33
40
  child capacity and batch any remainder. Every spawned agent has isolated
34
41
  context, so its brief must include the absolute role path, exact input paths,
@@ -90,18 +97,20 @@ unpublished work; it never invents `git reset`.
90
97
 
91
98
  <!-- gsd-path/plain-prompt-reentry/v1 -->
92
99
 
93
- Project installs include the router's read-only status engine at
94
- `.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.
95
105
  On any turn that did not explicitly invoke a GSD Path
96
106
  skill, an owned `.project/STATE.md` activates re-entry. Informational prompts
97
107
  finish read-only and end with the current **Outcome** / **Review** / **Next**
98
- handoff. Mutation prompts make no changes and point to the status result's
99
- `next_skill` only when `route.action` is `run-phase`. Every other route reports
100
- its exact `route.action` and `route.reason`. The status engine never initializes state
101
- or advances a phase.
108
+ handoff. Both informational and mutation replies use the status result's
109
+ `handoff.next` for **Next**. Mutation prompts make no changes. The status engine
110
+ never initializes state or advances a phase.
102
111
 
103
112
  The optional pre-tool guard backs this up where it has deterministic evidence.
104
- See [HOOKS.md](HOOKS.md#what-gets-blocked) for write restrictions, including
113
+ See [HOOKS.md](https://github.com/open-gsd/gsd-path/blob/main/HOOKS.md#what-gets-blocked) for write restrictions, including
105
114
  closed milestone branches and target worktrees. Shell provenance
106
115
  cannot prove which skill initiated a command, so the always-loaded AGENTS.md
107
116
  contract owns shell cases.
@@ -113,7 +122,11 @@ gate. Resolve and preview the GitHub owner/name, visibility, normal default
113
122
  checkout, `gsd-path/M001` branch, and a distinct linked-worktree path.
114
123
  Create no repository, checkout, worktree, pipeline state, journal, or preview
115
124
  file until the user approves every target; present the pre-creation review
116
- inline from the bootstrap helper's read-only `preview` result.
125
+ inline from the bootstrap helper's read-only `preview` result. An existing
126
+ empty invocation folder may be the linked worktree with approved
127
+ `--reuse-empty-worktree`; Git populates it in place. Keep the workspace journal
128
+ outside that folder. Preserve nonempty folders and choose another target;
129
+ never delete the invocation folder or its state to pass a preview.
117
130
 
118
131
  After approval, the bundled bootstrap helper writes an exact transaction
119
132
  journal under the approved workspace before mutation. Its `create` command
@@ -137,8 +150,9 @@ at `inspect/active|blocked`. **Output:**
137
150
 
138
151
  When STATE.md is absent, the router runs the bundled
139
152
  `scripts/detect_project.py initialize --repo <absolute-root> --template
140
- <absolute-state-template>` helper before asking anything and routes from its
141
- returned JSON. `brownfield` initializes `inspect/active` and routes here;
153
+ <absolute-state-template> --require-git` helper before asking anything and routes from its
154
+ returned JSON. `route: setup-repository` leaves a non-Git folder unchanged and
155
+ asks for repository setup before creating state. `brownfield` initializes `inspect/active` and routes here;
142
156
  `greenfield` initializes `define/active` and skips to define; `orphan` blocks.
143
157
  Owned state routes by STATE.md without rerunning the helper. Reserve `classify`
144
158
  for read-only inspection; do not re-derive a verdict from a directory listing.
@@ -214,8 +228,8 @@ milestone` instead: research and decide run only when the roadmap entry lists
214
228
  open questions, and planning writes a Settled-only milestone SYNTHESIS.md from
215
229
  the program synthesis before dispatching the planner. The quick lane skips
216
230
  research and decide — planning enters directly from `define/done`, writes
217
- a Settled-only SYNTHESIS.md and a single wave (verify-only review depth
218
- permitted, at most two tasks) without a planner agent, and the rest of the
231
+ a Settled-only SYNTHESIS.md and a single wave (full or deep review depth,
232
+ at most two tasks) without a planner agent, and the rest of the
219
233
  pipeline runs unchanged. A quick plan that outgrows those bounds corrects the
220
234
  lane to `standard` and reroutes through research.
221
235
 
@@ -366,6 +380,12 @@ build's re-entry transition instead).
366
380
  **Input:** the approved plan and tasks. **Output:** committed code, updated
367
381
  task files, and wave reviews.
368
382
 
383
+ A blocked build returns through the guarded
384
+ [build recovery contract](skills/gsd-path/references/build-recovery.md) when
385
+ approved intent must change or the remaining task inventory needs repair.
386
+ It preserves landed work, re-gates changed contracts, and returns through a new
387
+ plan approval checkpoint. Ship and archived milestones cannot use this path.
388
+
369
389
  The build contract is not restated here. Branch binding, the wave loop, task
370
390
  isolation and landing, wave review, fix batching, completion, and milestone
371
391
  abandon live only in the canonical
@@ -477,8 +497,7 @@ The ship phase closes the milestone with exactly one commit on the bound
477
497
  branch: the shipped STATE.md, the final-review artifacts, and the archive
478
498
  move with its MANIFEST.md, staged from `.project/` only, subject
479
499
  `ship: M00N — <milestone-slug>` and a body naming `Archive:` and
480
- `Reviewed-HEAD:`. Every other commit on the bound branch
481
- belongs to the build orchestrator. The commit must contain only `.project/`
500
+ `Reviewed-HEAD:`. The ship commit must contain only `.project/`
482
501
  paths. There is no untracked-project fallback. Every pipeline commit carries
483
502
  the subject and field body defined by its canonical phase contract; task-land
484
503
  fields live only in the
@@ -645,7 +664,7 @@ with their exact ordered source-file and row list.
645
664
  research/evidence-codebase.md brownfield ground truth (inspect)
646
665
  research/DOCS-AUDIT.md doc-vs-code verdicts and remediation queue
647
666
  research/RESEARCH.md research dispatch/question/output manifest
648
- research/evidence-*.md four required evidence dimensions
667
+ research/evidence-*.md evidence for dispatched dimensions; RESEARCH.md records skips
649
668
  research/SYNTHESIS.md decision artifact; authoritative after decide gate
650
669
  plan/PLAN.md waves, config, and project verify
651
670
  tasks/T###-slug.md full contract, clean base SHA, status
package/package.json CHANGED
@@ -1,8 +1,16 @@
1
1
  {
2
2
  "name": "@opengsd/gsd-path",
3
- "version": "1.0.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
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/open-gsd/gsd-path.git"
9
+ },
10
+ "bugs": {
11
+ "url": "https://github.com/open-gsd/gsd-path/issues"
12
+ },
13
+ "homepage": "https://github.com/open-gsd/gsd-path#readme",
6
14
  "type": "module",
7
15
  "bin": {
8
16
  "gsd-path": "scripts/install.mjs"
@@ -11,6 +19,7 @@
11
19
  "plugin.json",
12
20
  "scripts/install.mjs",
13
21
  "scripts/install.py",
22
+ "scripts/runtime_store.py",
14
23
  "scripts/migrate_core.py",
15
24
  "scripts/core_hook_gate.py",
16
25
  "scripts/core_hook_settings.py",
@@ -18,7 +27,10 @@
18
27
  "scripts/wizard.mjs",
19
28
  "scripts/skill-resources.json",
20
29
  "scripts/_common.py",
30
+ "scripts/worktree_paths.py",
31
+ "scripts/build_recovery.py",
21
32
  "scripts/state_checkpoint.py",
33
+ "scripts/roadmap.py",
22
34
  "scripts/state_promote.py",
23
35
  "scripts/discussion_validate.py",
24
36
  "scripts/integration.py",
@@ -30,7 +42,10 @@
30
42
  "scripts/check_handoffs.py",
31
43
  "scripts/check_docs_audit.py",
32
44
  "scripts/check_task_briefs.py",
45
+ "scripts/path_config.py",
46
+ "scripts/model_policy.py",
33
47
  "scripts/review_panel.py",
48
+ "scripts/jev_review.py",
34
49
  "scripts/review_findings.py",
35
50
  "scripts/check_update.py",
36
51
  "scripts/guard_hook.py",
@@ -43,11 +58,13 @@
43
58
  "scripts/loop_run.py",
44
59
  "scripts/workflow_run.py",
45
60
  "scripts/dispatch_driver.py",
61
+ "scripts/task_context.py",
46
62
  "scripts/lean_verification.py",
47
63
  "scripts/token_budget.py",
48
64
  "scripts/pipeline_undo.py",
49
65
  "scripts/pipeline_diagnose.py",
50
66
  "README.md",
67
+ "CHANGELOG.md",
51
68
  "MIGRATE.md",
52
69
  "RUNTIME.md",
53
70
  "DOCS.md",
@@ -75,6 +92,11 @@
75
92
  "test:daemon": "PYTHONPATH=daemon python3 -m unittest discover -s tests -p 'test_daemon_*.py'",
76
93
  "verify": "npm test && npm run test:python && python3 scripts/sync_skill_resources.py --check",
77
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",
78
97
  "prepublishOnly": "npm run verify:release"
98
+ },
99
+ "devDependencies": {
100
+ "yaml": "^2.9.1"
79
101
  }
80
102
  }
@@ -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.