@opengsd/gsd-path 1.4.0 → 1.5.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 (347) hide show
  1. package/CHANGELOG.md +325 -344
  2. package/DOCS.md +12 -2
  3. package/FULL.md +3 -2
  4. package/HOOKS.md +95 -8
  5. package/QUICK.md +1 -1
  6. package/README.md +78 -110
  7. package/RUNTIME.md +1 -1
  8. package/UPDATE.md +4 -3
  9. package/WORKFLOW.md +22 -1
  10. package/package.json +5 -2
  11. package/platforms/shared-agents/dispatch.md +13 -0
  12. package/scripts/_common.py +149 -1
  13. package/scripts/archive_milestone.py +14 -13
  14. package/scripts/build_recovery.py +96 -31
  15. package/scripts/build_state.py +79 -3
  16. package/scripts/check_docs_audit.py +77 -4
  17. package/scripts/check_handoffs.py +546 -30
  18. package/scripts/check_task_briefs.py +279 -23
  19. package/scripts/detect_project.py +243 -18
  20. package/scripts/discussion_validate.py +86 -29
  21. package/scripts/dispatch_driver.py +392 -22
  22. package/scripts/git_guard.py +3 -3
  23. package/scripts/guard_hook.py +1416 -165
  24. package/scripts/install.mjs +23 -8
  25. package/scripts/install.py +49 -9
  26. package/scripts/integration.py +146 -1
  27. package/scripts/isolation.py +392 -60
  28. package/scripts/loop_run.py +16 -4
  29. package/scripts/members.py +11 -9
  30. package/scripts/path_config.py +3 -3
  31. package/scripts/pipeline_git.py +63 -12
  32. package/scripts/pipeline_state.py +111 -33
  33. package/scripts/pipeline_undo.py +101 -8
  34. package/scripts/runtime_store.py +20 -2
  35. package/scripts/skill-resources.json +9 -2
  36. package/scripts/state_checkpoint.py +9 -27
  37. package/scripts/status_runtime.py +22 -4
  38. package/scripts/task_context.py +12 -3
  39. package/scripts/wizard.mjs +1 -0
  40. package/scripts/workflow_run.py +5 -2
  41. package/scripts/worktree_paths.py +54 -2
  42. package/skills/gsd-path/DEFINE.md +28 -3
  43. package/skills/gsd-path/PLAN.md +11 -3
  44. package/skills/gsd-path/RESEARCH.md +11 -0
  45. package/skills/gsd-path/SHIP.md +6 -1
  46. package/skills/gsd-path/references/build-native.md +16 -1
  47. package/skills/gsd-path/references/dispatch.md +13 -0
  48. package/skills/gsd-path/references/docs-auditor.md +5 -0
  49. package/skills/gsd-path/references/planner.md +14 -4
  50. package/skills/gsd-path/references/reviewer-final.md +20 -2
  51. package/skills/gsd-path/references/reviewer-wave.md +15 -4
  52. package/skills/gsd-path/references/reviewer.md +3 -1
  53. package/skills/gsd-path/references/spec-probes.md +150 -0
  54. package/skills/gsd-path/scripts/_common.py +149 -1
  55. package/skills/gsd-path/scripts/archive_milestone.py +14 -13
  56. package/skills/gsd-path/scripts/build_recovery.py +96 -31
  57. package/skills/gsd-path/scripts/build_state.py +79 -3
  58. package/skills/gsd-path/scripts/check_docs_audit.py +77 -4
  59. package/skills/gsd-path/scripts/check_handoffs.py +546 -30
  60. package/skills/gsd-path/scripts/check_task_briefs.py +279 -23
  61. package/skills/gsd-path/scripts/detect_project.py +243 -18
  62. package/skills/gsd-path/scripts/discussion_validate.py +86 -29
  63. package/skills/gsd-path/scripts/dispatch_driver.py +392 -22
  64. package/skills/gsd-path/scripts/git_guard.py +3 -3
  65. package/skills/gsd-path/scripts/integration.py +146 -1
  66. package/skills/gsd-path/scripts/isolation.py +392 -60
  67. package/skills/gsd-path/scripts/loop_run.py +16 -4
  68. package/skills/gsd-path/scripts/members.py +11 -9
  69. package/skills/gsd-path/scripts/path_config.py +3 -3
  70. package/skills/gsd-path/scripts/pipeline_git.py +63 -12
  71. package/skills/gsd-path/scripts/pipeline_state.py +111 -33
  72. package/skills/gsd-path/scripts/state_checkpoint.py +9 -27
  73. package/skills/gsd-path/scripts/status_runtime.py +22 -4
  74. package/skills/gsd-path/scripts/task_context.py +12 -3
  75. package/skills/gsd-path/scripts/workflow_run.py +5 -2
  76. package/skills/gsd-path/scripts/worktree_paths.py +54 -2
  77. package/skills/gsd-path/templates/docs-audit.md +5 -1
  78. package/skills/gsd-path/templates/final-review.md +11 -2
  79. package/skills/gsd-path/templates/intent.md +30 -0
  80. package/skills/gsd-path/templates/patch-findings.md +3 -3
  81. package/skills/gsd-path/templates/plan.md +17 -2
  82. package/skills/gsd-path/templates/research-handoff.md +14 -3
  83. package/skills/gsd-path/templates/state.md +1 -1
  84. package/skills/gsd-path/templates/wave-review.md +16 -6
  85. package/skills/gsd-path-build/references/build-native.md +16 -1
  86. package/skills/gsd-path-build/references/dispatch.md +13 -0
  87. package/skills/gsd-path-build/references/reviewer-final.md +20 -2
  88. package/skills/gsd-path-build/references/reviewer-wave.md +15 -4
  89. package/skills/gsd-path-build/references/reviewer.md +3 -1
  90. package/skills/gsd-path-build/references/spec-probes.md +150 -0
  91. package/skills/gsd-path-build/scripts/_common.py +149 -1
  92. package/skills/gsd-path-build/scripts/archive_milestone.py +14 -13
  93. package/skills/gsd-path-build/scripts/build_recovery.py +96 -31
  94. package/skills/gsd-path-build/scripts/build_state.py +79 -3
  95. package/skills/gsd-path-build/scripts/check_handoffs.py +546 -30
  96. package/skills/gsd-path-build/scripts/check_task_briefs.py +279 -23
  97. package/skills/gsd-path-build/scripts/detect_project.py +243 -18
  98. package/skills/gsd-path-build/scripts/discussion_validate.py +86 -29
  99. package/skills/gsd-path-build/scripts/dispatch_driver.py +392 -22
  100. package/skills/gsd-path-build/scripts/integration.py +146 -1
  101. package/skills/gsd-path-build/scripts/isolation.py +392 -60
  102. package/skills/gsd-path-build/scripts/loop_run.py +16 -4
  103. package/skills/gsd-path-build/scripts/members.py +11 -9
  104. package/skills/gsd-path-build/scripts/path_config.py +3 -3
  105. package/skills/gsd-path-build/scripts/pipeline_git.py +63 -12
  106. package/skills/gsd-path-build/scripts/pipeline_state.py +111 -33
  107. package/skills/gsd-path-build/scripts/state_checkpoint.py +9 -27
  108. package/skills/gsd-path-build/scripts/task_context.py +12 -3
  109. package/skills/gsd-path-build/scripts/workflow_run.py +5 -2
  110. package/skills/gsd-path-build/scripts/worktree_paths.py +54 -2
  111. package/skills/gsd-path-build/templates/wave-review.md +16 -6
  112. package/skills/gsd-path-decide/references/dispatch.md +13 -0
  113. package/skills/gsd-path-decide/scripts/_common.py +149 -1
  114. package/skills/gsd-path-decide/scripts/archive_milestone.py +14 -13
  115. package/skills/gsd-path-decide/scripts/build_recovery.py +96 -31
  116. package/skills/gsd-path-decide/scripts/check_handoffs.py +546 -30
  117. package/skills/gsd-path-decide/scripts/check_task_briefs.py +279 -23
  118. package/skills/gsd-path-decide/scripts/detect_project.py +243 -18
  119. package/skills/gsd-path-decide/scripts/discussion_validate.py +86 -29
  120. package/skills/gsd-path-decide/scripts/integration.py +146 -1
  121. package/skills/gsd-path-decide/scripts/isolation.py +392 -60
  122. package/skills/gsd-path-decide/scripts/loop_run.py +16 -4
  123. package/skills/gsd-path-decide/scripts/members.py +11 -9
  124. package/skills/gsd-path-decide/scripts/path_config.py +3 -3
  125. package/skills/gsd-path-decide/scripts/pipeline_git.py +63 -12
  126. package/skills/gsd-path-decide/scripts/pipeline_state.py +111 -33
  127. package/skills/gsd-path-decide/scripts/state_checkpoint.py +9 -27
  128. package/skills/gsd-path-decide/scripts/worktree_paths.py +54 -2
  129. package/skills/gsd-path-define/SKILL.md +28 -3
  130. package/skills/gsd-path-define/references/spec-probes.md +150 -0
  131. package/skills/gsd-path-define/scripts/_common.py +149 -1
  132. package/skills/gsd-path-define/scripts/archive_milestone.py +14 -13
  133. package/skills/gsd-path-define/scripts/build_recovery.py +96 -31
  134. package/skills/gsd-path-define/scripts/check_handoffs.py +546 -30
  135. package/skills/gsd-path-define/scripts/check_task_briefs.py +279 -23
  136. package/skills/gsd-path-define/scripts/detect_project.py +243 -18
  137. package/skills/gsd-path-define/scripts/discussion_validate.py +86 -29
  138. package/skills/gsd-path-define/scripts/integration.py +146 -1
  139. package/skills/gsd-path-define/scripts/isolation.py +392 -60
  140. package/skills/gsd-path-define/scripts/loop_run.py +16 -4
  141. package/skills/gsd-path-define/scripts/members.py +11 -9
  142. package/skills/gsd-path-define/scripts/path_config.py +3 -3
  143. package/skills/gsd-path-define/scripts/pipeline_git.py +63 -12
  144. package/skills/gsd-path-define/scripts/pipeline_state.py +111 -33
  145. package/skills/gsd-path-define/scripts/state_checkpoint.py +9 -27
  146. package/skills/gsd-path-define/scripts/worktree_paths.py +54 -2
  147. package/skills/gsd-path-define/templates/intent.md +30 -0
  148. package/skills/gsd-path-define/templates/state.md +1 -1
  149. package/skills/gsd-path-discuss/scripts/_common.py +149 -1
  150. package/skills/gsd-path-discuss/scripts/loop_run.py +16 -4
  151. package/skills/gsd-path-discuss/scripts/path_config.py +3 -3
  152. package/skills/gsd-path-discuss/scripts/worktree_paths.py +54 -2
  153. package/skills/gsd-path-docs-audit/references/dispatch.md +13 -0
  154. package/skills/gsd-path-docs-audit/references/docs-auditor.md +5 -0
  155. package/skills/gsd-path-docs-audit/scripts/_common.py +149 -1
  156. package/skills/gsd-path-docs-audit/scripts/archive_milestone.py +14 -13
  157. package/skills/gsd-path-docs-audit/scripts/build_recovery.py +96 -31
  158. package/skills/gsd-path-docs-audit/scripts/check_docs_audit.py +77 -4
  159. package/skills/gsd-path-docs-audit/scripts/check_handoffs.py +546 -30
  160. package/skills/gsd-path-docs-audit/scripts/check_task_briefs.py +279 -23
  161. package/skills/gsd-path-docs-audit/scripts/detect_project.py +243 -18
  162. package/skills/gsd-path-docs-audit/scripts/discussion_validate.py +86 -29
  163. package/skills/gsd-path-docs-audit/scripts/integration.py +146 -1
  164. package/skills/gsd-path-docs-audit/scripts/isolation.py +392 -60
  165. package/skills/gsd-path-docs-audit/scripts/loop_run.py +16 -4
  166. package/skills/gsd-path-docs-audit/scripts/members.py +11 -9
  167. package/skills/gsd-path-docs-audit/scripts/path_config.py +3 -3
  168. package/skills/gsd-path-docs-audit/scripts/pipeline_git.py +63 -12
  169. package/skills/gsd-path-docs-audit/scripts/pipeline_state.py +111 -33
  170. package/skills/gsd-path-docs-audit/scripts/state_checkpoint.py +9 -27
  171. package/skills/gsd-path-docs-audit/scripts/worktree_paths.py +54 -2
  172. package/skills/gsd-path-docs-audit/templates/docs-audit.md +5 -1
  173. package/skills/gsd-path-forensics/scripts/_common.py +149 -1
  174. package/skills/gsd-path-forensics/scripts/loop_run.py +16 -4
  175. package/skills/gsd-path-forensics/scripts/path_config.py +3 -3
  176. package/skills/gsd-path-forensics/scripts/pipeline_undo.py +101 -8
  177. package/skills/gsd-path-forensics/scripts/worktree_paths.py +54 -2
  178. package/skills/gsd-path-inspect/references/dispatch.md +13 -0
  179. package/skills/gsd-path-inspect/references/docs-auditor.md +5 -0
  180. package/skills/gsd-path-inspect/scripts/_common.py +149 -1
  181. package/skills/gsd-path-inspect/scripts/archive_milestone.py +14 -13
  182. package/skills/gsd-path-inspect/scripts/build_recovery.py +96 -31
  183. package/skills/gsd-path-inspect/scripts/check_docs_audit.py +77 -4
  184. package/skills/gsd-path-inspect/scripts/check_handoffs.py +546 -30
  185. package/skills/gsd-path-inspect/scripts/check_task_briefs.py +279 -23
  186. package/skills/gsd-path-inspect/scripts/detect_project.py +243 -18
  187. package/skills/gsd-path-inspect/scripts/discussion_validate.py +86 -29
  188. package/skills/gsd-path-inspect/scripts/integration.py +146 -1
  189. package/skills/gsd-path-inspect/scripts/isolation.py +392 -60
  190. package/skills/gsd-path-inspect/scripts/loop_run.py +16 -4
  191. package/skills/gsd-path-inspect/scripts/members.py +11 -9
  192. package/skills/gsd-path-inspect/scripts/path_config.py +3 -3
  193. package/skills/gsd-path-inspect/scripts/pipeline_git.py +63 -12
  194. package/skills/gsd-path-inspect/scripts/pipeline_state.py +111 -33
  195. package/skills/gsd-path-inspect/scripts/state_checkpoint.py +9 -27
  196. package/skills/gsd-path-inspect/scripts/workflow_run.py +5 -2
  197. package/skills/gsd-path-inspect/scripts/worktree_paths.py +54 -2
  198. package/skills/gsd-path-inspect/templates/docs-audit.md +5 -1
  199. package/skills/gsd-path-inspect/templates/state.md +1 -1
  200. package/skills/gsd-path-loop/scripts/_common.py +149 -1
  201. package/skills/gsd-path-loop/scripts/loop_run.py +16 -4
  202. package/skills/gsd-path-loop/scripts/path_config.py +3 -3
  203. package/skills/gsd-path-loop/scripts/worktree_paths.py +54 -2
  204. package/skills/gsd-path-migrate/scripts/_common.py +149 -1
  205. package/skills/gsd-path-migrate/scripts/loop_run.py +16 -4
  206. package/skills/gsd-path-migrate/scripts/path_config.py +3 -3
  207. package/skills/gsd-path-plan/SKILL.md +11 -3
  208. package/skills/gsd-path-plan/references/dispatch.md +13 -0
  209. package/skills/gsd-path-plan/references/planner.md +14 -4
  210. package/skills/gsd-path-plan/references/spec-probes.md +150 -0
  211. package/skills/gsd-path-plan/scripts/_common.py +149 -1
  212. package/skills/gsd-path-plan/scripts/archive_milestone.py +14 -13
  213. package/skills/gsd-path-plan/scripts/build_recovery.py +96 -31
  214. package/skills/gsd-path-plan/scripts/check_handoffs.py +546 -30
  215. package/skills/gsd-path-plan/scripts/check_task_briefs.py +279 -23
  216. package/skills/gsd-path-plan/scripts/detect_project.py +243 -18
  217. package/skills/gsd-path-plan/scripts/discussion_validate.py +86 -29
  218. package/skills/gsd-path-plan/scripts/integration.py +146 -1
  219. package/skills/gsd-path-plan/scripts/isolation.py +392 -60
  220. package/skills/gsd-path-plan/scripts/loop_run.py +16 -4
  221. package/skills/gsd-path-plan/scripts/members.py +11 -9
  222. package/skills/gsd-path-plan/scripts/path_config.py +3 -3
  223. package/skills/gsd-path-plan/scripts/pipeline_git.py +63 -12
  224. package/skills/gsd-path-plan/scripts/pipeline_state.py +111 -33
  225. package/skills/gsd-path-plan/scripts/state_checkpoint.py +9 -27
  226. package/skills/gsd-path-plan/scripts/workflow_run.py +5 -2
  227. package/skills/gsd-path-plan/scripts/worktree_paths.py +54 -2
  228. package/skills/gsd-path-plan/templates/patch-findings.md +3 -3
  229. package/skills/gsd-path-plan/templates/plan.md +17 -2
  230. package/skills/gsd-path-research/SKILL.md +11 -0
  231. package/skills/gsd-path-research/references/dispatch.md +13 -0
  232. package/skills/gsd-path-research/scripts/_common.py +149 -1
  233. package/skills/gsd-path-research/scripts/archive_milestone.py +14 -13
  234. package/skills/gsd-path-research/scripts/build_recovery.py +96 -31
  235. package/skills/gsd-path-research/scripts/check_handoffs.py +546 -30
  236. package/skills/gsd-path-research/scripts/check_task_briefs.py +279 -23
  237. package/skills/gsd-path-research/scripts/detect_project.py +243 -18
  238. package/skills/gsd-path-research/scripts/discussion_validate.py +86 -29
  239. package/skills/gsd-path-research/scripts/integration.py +146 -1
  240. package/skills/gsd-path-research/scripts/isolation.py +392 -60
  241. package/skills/gsd-path-research/scripts/loop_run.py +16 -4
  242. package/skills/gsd-path-research/scripts/members.py +11 -9
  243. package/skills/gsd-path-research/scripts/path_config.py +3 -3
  244. package/skills/gsd-path-research/scripts/pipeline_git.py +63 -12
  245. package/skills/gsd-path-research/scripts/pipeline_state.py +111 -33
  246. package/skills/gsd-path-research/scripts/state_checkpoint.py +9 -27
  247. package/skills/gsd-path-research/scripts/worktree_paths.py +54 -2
  248. package/skills/gsd-path-research/templates/research-handoff.md +14 -3
  249. package/skills/gsd-path-roadmap/references/dispatch.md +13 -0
  250. package/skills/gsd-path-roadmap/scripts/_common.py +149 -1
  251. package/skills/gsd-path-roadmap/scripts/archive_milestone.py +14 -13
  252. package/skills/gsd-path-roadmap/scripts/build_recovery.py +96 -31
  253. package/skills/gsd-path-roadmap/scripts/check_handoffs.py +546 -30
  254. package/skills/gsd-path-roadmap/scripts/check_task_briefs.py +279 -23
  255. package/skills/gsd-path-roadmap/scripts/detect_project.py +243 -18
  256. package/skills/gsd-path-roadmap/scripts/discussion_validate.py +86 -29
  257. package/skills/gsd-path-roadmap/scripts/integration.py +146 -1
  258. package/skills/gsd-path-roadmap/scripts/isolation.py +392 -60
  259. package/skills/gsd-path-roadmap/scripts/loop_run.py +16 -4
  260. package/skills/gsd-path-roadmap/scripts/members.py +11 -9
  261. package/skills/gsd-path-roadmap/scripts/path_config.py +3 -3
  262. package/skills/gsd-path-roadmap/scripts/pipeline_git.py +63 -12
  263. package/skills/gsd-path-roadmap/scripts/pipeline_state.py +111 -33
  264. package/skills/gsd-path-roadmap/scripts/state_checkpoint.py +9 -27
  265. package/skills/gsd-path-roadmap/scripts/worktree_paths.py +54 -2
  266. package/skills/gsd-path-ship/SKILL.md +6 -1
  267. package/skills/gsd-path-ship/references/dispatch.md +13 -0
  268. package/skills/gsd-path-ship/references/reviewer-final.md +20 -2
  269. package/skills/gsd-path-ship/references/reviewer-wave.md +15 -4
  270. package/skills/gsd-path-ship/references/reviewer.md +3 -1
  271. package/skills/gsd-path-ship/references/spec-probes.md +150 -0
  272. package/skills/gsd-path-ship/scripts/_common.py +149 -1
  273. package/skills/gsd-path-ship/scripts/archive_milestone.py +14 -13
  274. package/skills/gsd-path-ship/scripts/build_recovery.py +96 -31
  275. package/skills/gsd-path-ship/scripts/build_state.py +79 -3
  276. package/skills/gsd-path-ship/scripts/check_handoffs.py +546 -30
  277. package/skills/gsd-path-ship/scripts/check_task_briefs.py +279 -23
  278. package/skills/gsd-path-ship/scripts/detect_project.py +243 -18
  279. package/skills/gsd-path-ship/scripts/discussion_validate.py +86 -29
  280. package/skills/gsd-path-ship/scripts/integration.py +146 -1
  281. package/skills/gsd-path-ship/scripts/isolation.py +392 -60
  282. package/skills/gsd-path-ship/scripts/loop_run.py +16 -4
  283. package/skills/gsd-path-ship/scripts/members.py +11 -9
  284. package/skills/gsd-path-ship/scripts/path_config.py +3 -3
  285. package/skills/gsd-path-ship/scripts/pipeline_git.py +63 -12
  286. package/skills/gsd-path-ship/scripts/pipeline_state.py +111 -33
  287. package/skills/gsd-path-ship/scripts/state_checkpoint.py +9 -27
  288. package/skills/gsd-path-ship/scripts/workflow_run.py +5 -2
  289. package/skills/gsd-path-ship/scripts/worktree_paths.py +54 -2
  290. package/skills/gsd-path-ship/templates/final-review.md +11 -2
  291. package/skills/gsd-path-ship/templates/patch-findings.md +3 -3
  292. package/skills/gsd-path-ship/templates/wave-review.md +16 -6
  293. package/skills/gsd-path-undo/scripts/_common.py +149 -1
  294. package/skills/gsd-path-undo/scripts/loop_run.py +16 -4
  295. package/skills/gsd-path-undo/scripts/path_config.py +3 -3
  296. package/skills/gsd-path-undo/scripts/pipeline_undo.py +101 -8
  297. package/skills/gsd-path-undo/scripts/worktree_paths.py +54 -2
  298. package/skills/path/DEFINE.md +28 -3
  299. package/skills/path/PLAN.md +11 -3
  300. package/skills/path/RESEARCH.md +11 -0
  301. package/skills/path/SHIP.md +6 -1
  302. package/skills/path/references/build-native.md +16 -1
  303. package/skills/path/references/dispatch.md +13 -0
  304. package/skills/path/references/docs-auditor.md +5 -0
  305. package/skills/path/references/planner.md +14 -4
  306. package/skills/path/references/reviewer-final.md +20 -2
  307. package/skills/path/references/reviewer-wave.md +15 -4
  308. package/skills/path/references/reviewer.md +3 -1
  309. package/skills/path/references/spec-probes.md +150 -0
  310. package/skills/path/scripts/_common.py +149 -1
  311. package/skills/path/scripts/archive_milestone.py +14 -13
  312. package/skills/path/scripts/build_recovery.py +96 -31
  313. package/skills/path/scripts/build_state.py +79 -3
  314. package/skills/path/scripts/check_docs_audit.py +77 -4
  315. package/skills/path/scripts/check_handoffs.py +546 -30
  316. package/skills/path/scripts/check_task_briefs.py +279 -23
  317. package/skills/path/scripts/detect_project.py +243 -18
  318. package/skills/path/scripts/discussion_validate.py +86 -29
  319. package/skills/path/scripts/dispatch_driver.py +392 -22
  320. package/skills/path/scripts/git_guard.py +3 -3
  321. package/skills/path/scripts/integration.py +146 -1
  322. package/skills/path/scripts/isolation.py +392 -60
  323. package/skills/path/scripts/loop_run.py +16 -4
  324. package/skills/path/scripts/members.py +11 -9
  325. package/skills/path/scripts/path_config.py +3 -3
  326. package/skills/path/scripts/pipeline_git.py +63 -12
  327. package/skills/path/scripts/pipeline_state.py +111 -33
  328. package/skills/path/scripts/state_checkpoint.py +9 -27
  329. package/skills/path/scripts/status_runtime.py +22 -4
  330. package/skills/path/scripts/task_context.py +12 -3
  331. package/skills/path/scripts/workflow_run.py +5 -2
  332. package/skills/path/scripts/worktree_paths.py +54 -2
  333. package/skills/path/templates/docs-audit.md +5 -1
  334. package/skills/path/templates/final-review.md +11 -2
  335. package/skills/path/templates/intent.md +30 -0
  336. package/skills/path/templates/patch-findings.md +3 -3
  337. package/skills/path/templates/plan.md +17 -2
  338. package/skills/path/templates/research-handoff.md +14 -3
  339. package/skills/path/templates/state.md +1 -1
  340. package/skills/path/templates/wave-review.md +16 -6
  341. package/skills/gsd-path/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  342. package/skills/gsd-path/scripts/__pycache__/check_handoffs.cpython-312.pyc +0 -0
  343. package/skills/gsd-path-build/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  344. package/skills/gsd-path-build/scripts/__pycache__/check_handoffs.cpython-312.pyc +0 -0
  345. package/skills/gsd-path-inspect/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  346. package/skills/gsd-path-plan/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  347. package/skills/gsd-path-ship/scripts/__pycache__/_common.cpython-312.pyc +0 -0
package/CHANGELOG.md CHANGED
@@ -3,379 +3,360 @@
3
3
  All notable changes to [@opengsd/gsd-path](https://www.npmjs.com/package/@opengsd/gsd-path)
4
4
  are documented here. Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
5
5
 
6
- ## [1.1.0] - 2026-09-18
6
+ This file covers the npm package: the skills, the installer, the pipeline
7
+ scripts and project runtime, the guard hooks, and their documentation. Until
8
+ 1.4.0 it also lists changes to the monitor daemon and its dashboard, which are
9
+ in this repository but not in the npm package. From October 2026 the desktop
10
+ app and the daemon have their own file,
11
+ [daemon/app/CHANGELOG.md](daemon/app/CHANGELOG.md). Release bookkeeping and
12
+ test-only changes are not listed; the Git history has them.
13
+
14
+ ## [1.5.0] - 2026-10-09
7
15
 
8
16
  ### Added
9
- - Scoped npm package `@opengsd/gsd-path` with trusted publishing workflow
10
- - Release trust evidence validation and host matrix documentation
17
+ - record runtime hotfix provenance on the declaration
18
+ - add signed self-update
19
+ - add the Skills, Stats, Settings, and Environment pages and the setup wizard
20
+ - register the hosts, project operation, and env routes
21
+ - add project setup operations for the app
22
+ - detect installed coding agents
23
+ - add the env file module for the app's Environment page
24
+ - add the stats route for the app's charts
25
+ - add the project board, project page, and tray popover
26
+ - add the Tauri shell and React setup screens
27
+ - add settings and diagnostics routes
28
+ - install skills from the verified npm release
29
+ - report requirements in the launch check
30
+ - add the launch check for the native app
31
+ - add --require-token to gate POST routes
32
+ - add external-landing mode for forge-neutral ship
33
+ - add Muse Code as a shared-agents host
34
+ - rule on edges and prohibitions at define, gate held-out checks at plan and final
11
35
 
12
36
  ### Changed
13
- - Release workflow and maintainer documentation for npm publication
14
-
15
- ## [1.0.0] - 2026-09-15
37
+ - prepare 1.5.0 minor candidate
38
+ - point trust evidence link to current receipts
39
+ - refresh all seven host release receipts
40
+ - Name interactive.diffFilter in HOOKS.md executed-key list
41
+ - align guard, worktree pin, provenance, planner docs
42
+ - sync generated skill resource copies
43
+ - describe daemon hook-op migration and default hosts
44
+ - app: migrate a legacy runtime in the same click as a hook action
45
+ - app: send a legacy runtime to the update, not a hook refresh
46
+ - say macOS app builds are signed and notarized
47
+ - app: prepare 0.1.1, the first signed macOS build
48
+ - prove signing setup keeps keychain on success
49
+ - app: delete signing keychain on setup failure
50
+ - remove stale unsigned-build text after macOS signing
51
+ - app: sign and notarize macOS builds in the release workflow
52
+ - make diagnostic command assertion platform independent
53
+ - clarify patch finding source fields (#326)
54
+ - require maintainer rewrite of drafted changelog entry
55
+ - strengthen alias update regression assertions
56
+ - assert router alias payload refreshes on update
57
+ - rewrite the changelog entries for readers
58
+ - list the release upload script test in RELEASE.md
59
+ - prove the release upload script on macOS, Windows, and Linux runners
60
+ - Sync generated skill resource copies
61
+ - cover dispatch brief bases and in-flight lint regressions
62
+ - describe the desktop app in the README and add its changelog
63
+ - Document round exit-receipt reread in RUNTIME.md
64
+ - Merge validated main integration while preserving PR history
65
+ - Update ADR 0004 for Windows pinned-handle evidence reads
66
+ - sync detect_project skill copies
67
+ - correct app update check and release facts
68
+ - point README page list at route.ts
69
+ - Fix daemon README same-origin list and hosts docstring
70
+ - add app workflows to the RELEASE.md CI table
71
+ - Merge remote-tracking branch 'origin/main' into HEAD
72
+ - build tester installers on app-v tags and run shell tests
73
+ - Revert "fix: treat empty .project directory trees as greenfield (#273) (#292)"
74
+ - Revert "fix: reject Verify commands the host guard would refuse at plan time (#302)"
75
+ - Revert "fix(guard): allow read-only closed-milestone shell between ship and bind-next (#301)"
76
+ - match only real pip commands in the launch tests
77
+ - document INTENT SC heading text for multi-line criteria (#279) (#303)
78
+ - align plugin source wording with npm release source
79
+ - Document daemon version and pid in /status
80
+ - record native app design handoff and React frontend ruling
81
+ - run pinned-runtime reload in subprocess to avoid import pollution
82
+ - merge main: integrate #254/#265 and keep pinned-runtime test cleanup
83
+ - sync skill copies for state_checkpoint landed base fix
84
+ - sync skill copies for landed member base fix
85
+ - double-restore bundled scripts after pinned-runtime test
86
+ - drop pinned-runtime tests from native-attempt PR (#209 owns them)
87
+ - Revert "test: restore bundled scripts after pinned-runtime reload test"
88
+ - restore bundled scripts after pinned-runtime reload test
89
+ - invoke pipeline_state CLI from bundled script path
90
+ - retrigger checks
91
+ - sync skill copies after isolation change
92
+ - revert: keep ca89 dispatch finish path that passes member round tests
93
+ - merge main
94
+ - platform-neutral PowerShell path quoting expectation
95
+ - sync worktree_paths skill copies
96
+ - align package verify graph with main (drop stray check:locks)
97
+ - sync state_checkpoint skill copies
98
+ - expect LF-normalized intent hash for CRLF on-disk files
99
+ - skip WSL drvfs mount probes on Windows CI
100
+ - merge main into cursor/fix-spec-reach-probes-f72c
101
+ - merge main and sync skill resources
102
+ - merge main into cursor/fix-git-worktree-legacy-f72c
103
+ - merge main into cursor/fix-task-briefs-plan-deps-f72c
104
+ - merge main into cursor/fix-windows-member-lock-run-shell-f72c
105
+ - patch os.path.normcase in Windows session path test
106
+ - fix Windows normcase test on Linux CI (create=True, patch sep)
107
+ - sync detect_project copies after listdir_anchored fix
108
+ - update release notes for v1.4.0
109
+ - Point local shard command at py.mjs wrapper
110
+ - shard the Windows Python suite
16
111
 
17
- ### Added
18
- - Initial public release of the disk-backed GSD Path pipeline
19
- - Multi-host installer, skills package, and project contracts
112
+ ### Fixed
113
+ - parse research questions with backticks
114
+ - Fix package-level dispatch resource defaults
115
+ - deny git -c keys whose value git executes
116
+ - close zsh flag and escaped-marker gaps in the git parameter exception
117
+ - review findings on the 353 branch
118
+ - dispatch footguns from the 1.4.0 multi-repo field report
119
+ - dashboard probe resolves the pinned runtime via the project launcher
120
+ - guard hook precision for read-only commands
121
+ - allow same-wave file overlap between dependency-ordered tasks
122
+ - members validate and repair stop rejecting the refs Path creates
123
+ - lint landed member briefs at their member base
124
+ - ignore stale retired bind-next journals
125
+ - recover blocked serial tasks and retire unused verify sidecars
126
+ - preserve code spans in archive validation (#328)
127
+ - allow proven safe shell guard commands
128
+ - tolerate bytecode caches in pinned runtimes
129
+ - validate superseded wave review cycles together
130
+ - prioritize repair waves after blocked review (#315)
131
+ - accept prepared archive ship log events
132
+ - exclude Python bytecode from npm releases
133
+ - stabilize docs audit numbering (#299)
134
+ - allow research questions across multiple dimensions
135
+ - fix installer ownership of prerelease aliases
136
+ - fix installer recognition of suffixed versions
137
+ - Fix dispatch task brief validation bases
138
+ - find release files without globstar in the app release workflow
139
+ - reread task exit receipt before marking orphaned
140
+ - verify Windows pins and drain refused POST bodies
141
+ - list Windows evidence dirs by path while opens stay handle-relative
142
+ - anchor detect_project evidence reads on pinned handles
143
+ - remove the host guard Verify check that PR #305 carried from #302
144
+ - reject Verify commands the host guard would refuse at plan time (#302)
145
+ - tolerate missing lower milestone archives (#269) (#306)
146
+ - treat superseded wave review cycles as history (#274, #278) (#305)
147
+ - allow plan intent corrections to return to define (#304)
148
+ - allow read-only closed-milestone shell between ship and bind-next (#301)
149
+ - Fix final-review HEAD checks to allow runtime-pin commits (#297)
150
+ - require wave evidence line in quick-lane final scope template (#296)
151
+ - tighten task brief path token detection (#281) (#295)
152
+ - Fix multiline review bullet field parsing for final gate and archive (#294)
153
+ - Fix Surfaces parsing to split only on top-level commas (#293)
154
+ - treat empty .project directory trees as greenfield (#273) (#292)
155
+ - isolate pinned-runtime in-process test and reload order
156
+ - parse frontmatter # only as YAML comment (#268) (#289)
157
+ - keep the pinned-runtime reload test out of suite discovery
158
+ - landed member base resolution and missing STATE.md dispatch records
159
+ - resolve landed member base on coordinator or member repo
160
+ - allow dispatch records when STATE.md is absent
161
+ - validate landed member task base in member repo
162
+ - do not refresh native shell when prior attempt is blocked
163
+ - restore finish_task landing flow while keeping native shell refresh
164
+ - validate landed member task bases on coordinator
165
+ - member finish verify logging and force sidecar retirement
166
+ - allow force member sidecar retirement without task-file rejection gate
167
+ - pass task-file when force-retiring member sidecars
168
+ - record member verify on coordinator task and force-retire sidecar
169
+ - resolve landed member bases on coordinator and finish native member dispatches cleanly
170
+ - refresh native dispatch shells on re-activation and prefer live task state at finish
171
+ - exclude check_lock_usage from LK_LOCK self-scan
172
+ - reject Windows symlinks and junctions in handle-based reads
173
+ - lazy pipeline_git import with git fallback for skill bundles
174
+ - prefer isolation import before scripts package
175
+ - treat native shells as pre-spawn, not orphaned
176
+ - phase-gate shell writes only on bound milestone branch in-tree
177
+ - Windows parity for file reads, subprocess, tray, and install
178
+ - record native activations for attempt limits
179
+ - WSL drvfs index.lock workaround for state commits
180
+ - phase-gate shell writes to product files
181
+ - load pinned runtime helpers in dispatch_driver
182
+ - ignore same-wave overlap between landed tasks
183
+ - normalize CRLF in user-edited pipeline text
184
+ - prefer scripts.isolation when scripts/ is on sys.path
185
+ - worktree list without -z and posix show paths
186
+ - allow optional git trailers after ship commit body
187
+ - align gate-plan task brief check with approval checkpoint
188
+ - allow path_config model-policy.json at approval
189
+ - list .project through fresh directory fd on Linux
190
+ - member landing lock and spec command timeout drain
191
+ - copy staged skill entries into reserved directory
20
192
 
21
- ## [1.2.0] - 2026-09-20
193
+ ### Other
194
+ - fix install command receipts and 1.4.0 trust evidence
195
+ - deny pager.<cmd> config keys that git executes
196
+ - parse runner short options as getopt, deny non-literal option words
197
+ - deny file-valued runner options and non-literal runner operands
198
+ - unwrap command runners so git checks reach payload
199
+ - scope git wrapper denial to exec-prefix programs
200
+ - deny git behind programs the guard does not model
201
+ - deny unresolved git option words and credential helpers
202
+ - deny joined continuations and expanding git option values
203
+ - require literal git subcommand, deny comments in git config
204
+ - deny non-literal git config arguments
205
+ - treat only one ASCII digit as redirection file descriptor
206
+ - allow redirected git config reads, keep digit sets denied
207
+ - deny gpg program keys and redirected git config sets
208
+ - parse git config modes; .git/config append stays open
209
+ - close executed git config keys, persisted form, disabling values
210
+ - narrow zsh flag detector and cover git -C paths
211
+ - keep exact --text allowed under git option prefix rule
212
+ - match denied git options by abbreviated prefix
213
+ - deny parameters in command-valued git options
214
+ - accept only plain name expansions in git parameter exception
215
+ - deny git parameters inside wrapped shell strings
216
+ - fail closed on unrecognized quoting in git parameter exception
217
+ - allow git parameters only inside double-quoted spans
218
+ - deny bare and substituted parameters in read-only git arguments
219
+ - fix guard fail-opens and remaining 353 review findings
220
+ - app: Add guards uses installed agents when no hosts sent
221
+ - narrow macOS signing claim to Privacy & Security approval
222
+ - Correct unsupported Fixed and Security changelog entries
223
+ - assert incomplete builds upload nothing at all
224
+ - Insert new changelog entries above existing entries
225
+ - Restore Windows start step in manual monitor README section
226
+ - Classify directory SKILL.md marker as unverified on Windows
227
+ - Reject symlinked SKILL.md marker in Windows bundle probe
228
+ - Detect junctions at held Windows handles; stat-only file opens
229
+ - stop daemon before install, add .deb update, tray dialog
230
+ - Cause: GitGuardian reported one "Generic High Entropy Secret" in commit be3bd5d4, file daemon/app/src/mocks/environment.ts line 10. The value was `tsk_mock_8f3a91c2d7`, a made-up key for TYPESAFE_API_KEY in the dev-only browser mock. It is not a real credential, so nothing needs rotation. Fix: replaced the value with the plain placeholder `mock-api-key` (one line). No other file uses the old value. No test added: this is mock data, not logic. Verification: `tsc --noEmit` is clean and Vitest passes (14 files, 226 tests). GitGuardian was not run locally, so the check result is not confirmed. Remaining risk: GitGuardian scans each commit of the PR, and commit be3bd5d4 still contains the old string. The check can stay red after this commit. If it does, the owner has two options: mark incident 37796517 as a false positive / test credential in the GitGuardian dashboard, or rewrite the branch history to drop the string from be3bd5d4. I did neither: the dashboard needs the owner's account, and a history rewrite plus push is outside this phase
231
+ - compare with release in use, share plugin state
232
+ - unify update rules, badge count, and env switch
233
+ - Fix hooks-init host flags and member hook state
234
+ - Fix env quoted values, host commands, None phase
235
+ - Remove command line from port owner detail
236
+ - Report program name, pass PATH to children, handle Reopen
237
+ - Serialize boot, refresh PATH, fix port screen and autostart
238
+ - The fix is in place, but the Windows failure is not reproduced locally (macOS); only CI on Windows can confirm it. - **Cause:** `test_foreign_host_refused` got `WinError 10053` on `/api/config/parents`. `do_POST` in `daemon/gsd_daemon/serve.py` sent a refusal (403 or 415) without reading the request body. On Windows, a socket closed with unread data resets the connection, so the client can lose the reply. This is a timing race, which is why only one shard and one route failed. - **Origin:** the same-origin refusal is already on main, so the race is not new in this PR. The token refusal that this PR adds has the same exposure. - **Fix:** `do_POST` now reads the full body (per `Content-Length`) before any reply and gives it to the route handlers through `self.rfile`. It is one change at the top of `do_POST`, plus `import io`. It covers all refusals, the 404, and `/api/refresh`. The check order (origin 403, content type 415, token 403) and the route handlers are unchanged. - **Behavior change:** a negative `Content-Length` is now read as 0. Before, the server waited on the socket. - **Verification:** `python3 -m unittest tests.test_daemon_serve` ran 32 tests, all OK. I added no test, because the existing `PostOriginTests` is the test that fails on Windows. - **Not done:** the ponytail and test-writer skills were not run as separate steps, and the change is not committed; it is one modified file in the worktree
239
+ - Keep unknown config keys, wake poll, mask log credentials
240
+ - Apply settings under scan lock; skip session scan in request
241
+ - Harden daemon settings routes: atomic save, host check, finite prices
242
+ - compare updates with release in use; refuse git-source selection
243
+ - fail loud on unpublished pin; reject prerelease selection
244
+ - Two test defects from this PR are fixed in tests/test_daemon_launch.py. No product code changed. The other failures are not from this change. Caused by this PR (fixed): 1. daemon, verify (18), verify (20): test_other_service_on_port_blocks_without_install failed on Linux. The assertion `runner.ran("pip") == []` matches by substring, so it caught the Linux-only python-venv check `python -c "import ensurepip"`. The assertion now checks that no `python -m venv` command ran, which is the first step of an install. 2. windows (3.9 and 3.12, shard 0): three LegacyAutostartTests run with platform="darwin" and reach `os.getuid()`, which does not exist on Windows. They now skip when `os.getuid` is absent, the same rule tests/test_daemon_install.py uses. Not caused by this PR (no change): - windows (3.9 and 3.12, shard 3): the 3.12 log shows only two test_member_tasks errors; I did not read the 3.9 log. - verify (18): the other 43 errors are in test_member_*, test_pipeline_*, test_workflow_architecture, test_trust_evidence and one test_rebase_recovery test. I did not read the verify (20) log beyond the excerpt. - The intent names all of these suites except test_rebase_recovery as the main-branch pollution from PR #260. These checks stay red until that separate fix lands. Verification: - RED: the CI log shows the Linux failure (`['.../python3', '-c', 'import ensurepip']] != []`) and the Windows AttributeError on `os.getuid`. - GREEN: `python3 -m unittest discover -s tests -p test_daemon_launch.py` ran 30 tests, OK (macOS). The changed test also passes with the installer platform forced to linux. With `os.getuid` removed, LegacyAutostartTests ran 6 tests, OK, 3 skipped. - Sabotage: with the port problem made non-blocking, the changed test fails. - Not run locally: the tests on real Linux or Windows, and the full suite
245
+ - Make the temporary daemon build copy user-writable
246
+ - Report failed legacy cleanup as non-blocking; check venv pip
247
+ - Harden launch check requirements and error reporting
248
+ - record env route flag rule and browser transport
249
+ - record read-only browser and token-gated env rulings
250
+ ## [1.4.0] - 2026-09-30
22
251
 
23
252
  ### 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
253
+ - **Multi-repo milestones.** One coordinator project can plan, build, review,
254
+ and ship tasks in other repositories (members). A task names its repository
255
+ with `repo:`. Each member gets a marker, guard hooks
256
+ (`--member-of`), a Path-owned checkout for its tasks, and a bound branch at
257
+ build start. Landings in two repositories are journaled so an interrupted
258
+ one can be finished. Members integrate by direct merge or pull request, and
259
+ a member landing can be undone. A member accepts a push only with an
260
+ authorization for that ref, and refuses symlinked lock, marker, and task
261
+ copy paths.
262
+ - **Native Windows support.** The installer, hooks, state locking, dispatch,
263
+ Verify commands, and the project runtime run on Windows with Git for
264
+ Windows (Git Bash). A Windows job in CI now blocks a merge.
265
+ - **Managed `AGENTS.md` block.** The installer adds a marked Path block to an
266
+ existing `AGENTS.md` and keeps the owner's text, on update and on uninstall.
267
+ The block is smaller; phase rules moved into the skills.
268
+ - **Pre-approved gates.** `--pre-approve intent,plan` grants the intent and
269
+ plan approvals for one milestone, for unattended quick-lane runs (#150).
270
+ Ship approval stays manual.
271
+ - **Native retry.** A failed task that was dispatched natively can be retried
272
+ and finished, also for a member task.
28
273
 
29
274
  ### 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
275
+ - The verify ledger records the repository of each row, and a build stops when
276
+ a member repository changed outside Path.
277
+ - The monitor daemon refuses POST requests from other websites and requests
278
+ that are not JSON.
279
+ - The dashboard and the tray show the project folder beside the worktree and
280
+ wrap long paths.
51
281
 
52
282
  ### 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
283
+ - An ignored `.DS_Store` inside `.project` no longer blocks setup, landings, or
284
+ the ship check (#149).
285
+ - A landing is refused when ignore rules hide `.project` state (#145).
286
+ - `finish` lands parallel tasks that were dispatched natively (#142).
287
+ - `retire` recovers a task worktree that was only half retired (#143).
288
+ - Empty host `.claude` folders are removed before `.project` gates (#144).
289
+ - The docs audit keeps `Repo root` on the primary repository (#148).
290
+ - A build checkpoint commits a verify ledger that old ignore rules hid (#158).
291
+ - The decide phase can run the research handoff check.
292
+ - The installer names a working path when `--project` finds an existing
293
+ contract.
294
+ - The update notice says that local edits to skills are not carried forward
295
+ (#151).
57
296
 
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
297
+ ### Security
298
+ - Guard bypasses through Git Bash paths and directory junctions on Windows are
299
+ closed.
300
+
301
+ ## [1.3.1] - 2026-09-22
302
+
303
+ ### Changed
304
+ - Clearer guidance for the legacy runtime migration and its backup.
305
+
306
+ ### Fixed
307
+ - The legacy runtime migration keeps older runtime folders that Git does not
308
+ track, and the installer help describes this case.
69
309
 
70
310
  ## [1.3.0] - 2026-09-21
71
311
 
72
312
  ### Added
73
- - migrate legacy runtimes during upgrades
313
+ - An upgrade moves a legacy in-repository runtime out of the project and
314
+ leaves a backup to review (`--runtime-migrate`).
74
315
 
75
316
  ### Changed
76
- - Clarify receipt reuse and consolidate release policy guidance
77
- - Clarify legacy upgrade guidance and verify syntax
78
- - update release notes for v1.2.0
79
-
80
- ### Fixed
81
- - validate installer changes without live host reruns
82
- - preserve closed review cycles in host recovery
83
- - clarify owner gates and accept serial task release evidence
317
+ - On Cursor and Copilot, only the reviewer corrects a review, and only while
318
+ its review cycle is open. A closed review cycle is not rewritten.
84
319
 
85
- ### Other
86
- - Clarify reviewer ownership; live verification remains pending
87
- - Reject unretired verification worktrees and branches in release evidence
320
+ ## [1.2.0] - 2026-09-20
88
321
 
89
- ## [1.3.1] - 2026-09-22
322
+ ### Added
323
+ - **Path settings.** Set the shipping mode, the review panel, and the model and
324
+ effort per role, for the user or for one project, in the dashboard or with
325
+ `path_config.py`.
326
+ - **Project history in the dashboard.** Browse project files and archived
327
+ milestones, read a file at any Git commit, and load the full recorded
328
+ evidence.
329
+ - **Optional Jev evidence screening.** Reviewers can ask for an advisory check
330
+ of chosen criteria and evidence. It is off by default and never replaces a
331
+ recorded review or Verify.
332
+ - **External worktrees and pinned runtimes.** Task, verification, and
333
+ integration worktrees live outside the project checkout. A project pins its
334
+ runtime version by content digest, with upgrade and restore commands.
335
+ - **One model policy.** User, project, host, and task choices for sub-agent
336
+ models go through one resolver. A recorded assignment stays pinned.
90
337
 
91
338
  ### Changed
92
- - Clarify legacy runtime backup guidance
93
- - Consolidate legacy runtime migration guidance
94
- - prepare 1.3.1 patch candidate
95
- - Clarify legacy runtime migration documentation
96
- - update release notes for v1.3.0
339
+ - npm releases are automated: release notes, package verification, and
340
+ provenance.
341
+ - The release gate validates only the hosts a change affects and reuses
342
+ unchanged host receipts.
97
343
 
98
344
  ### Fixed
99
- - describe untracked legacy migration in help
100
- - preserve older untracked runtimes during migration
345
+ - The dashboard shows project runtime updates and their results.
346
+ - After verified integration, ordinary branches can take product work again
347
+ while archived milestones stay protected.
101
348
 
102
- ## [1.4.0] - 2026-09-30
349
+ ## [1.1.0] - 2026-09-18
103
350
 
104
351
  ### Added
105
- - key verify ledger rows by repo and fail closed on member drift (S3d)
106
- - guard coders in member sidecars with coordinator host hooks (S3c3b2)
107
- - dispatch and land member tasks in build rounds (S3c3b1)
108
- - activate member tasks with a live copy in the member sidecar (S3c3a)
109
- - prove landed member tasks from record and member landing (S3c2b)
110
- - land member tasks with a journaled two-repo landing (S3c2a)
111
- - isolate member tasks in Path-owned member checkouts (S3c1)
112
- - shrink the AGENTS.md block and move phase rules into skills
113
- - install AGENTS.md as a managed gsd-path block
114
- - lock members and create member bound branches at build start (S3b)
115
- - plan member tasks with repo: (S3a)
116
- - pre-approve intent and plan gates for unattended quick lanes (#150)
117
- - hold member writes to the coordinator phase (S2d)
118
- - install member git hooks with --member-of (S2c)
119
- - add member mode to git guard with push authorization (S2b)
120
- - add multi-repo member role marker (S2a)
121
- - add multi-repo member contract (S1)
352
+ - Scoped npm package `@opengsd/gsd-path` with trusted publishing.
353
+ - Release trust evidence validation and the host matrix.
122
354
 
123
355
  ### Changed
124
- - Reflow Copilot exclusion wording in trust-validation docs
125
- - record 1.4.0 live release evidence
126
- - prepare 1.4.0 minor candidate
127
- - Note invalid-copy rejection evidence in multi-repo S5d
128
- - multi-repo: native retry for a failed member task
129
- - Refresh multi-repo activation docs and host guidance
130
- - multi-repo: native member task dispatch
131
- - evaluate_host: keep the release addendum on the quick scenario only
132
- - multi-repo S5d: two-repo host scenario
133
- - Clarify optional hooks and remove obsolete gate note
134
- - multi-repo S5c: activate member execution and document it
135
- - Correct S5b member documentation
136
- - record app release tags and Linux formats
137
- - daemon: refuse cross-site and non-JSON POSTs
138
- - plan a native dashboard app for every OS
139
- - multi-repo S5b: greenfield members and member detect
140
- - Make ReplaceTests portable to POSIX Python 3.9
141
- - Align two-repo proof documentation with test coverage
142
- - multi-repo S5a: two-repo full-cycle proof
143
- - Point lookahead drift guidance to S4d
144
- - multi-repo S4d: member lookahead drift check
145
- - Clarify active milestone member status documentation
146
- - multi-repo S4c3: member plan check, status, and diagnose
147
- - Document member undo safeguards
148
- - multi-repo S4c2: undo a member landing
149
- - Document member retirement guards and correct proof scope
150
- - multi-repo S4c1: retire member bound branches at bind-next
151
- - Exercise core.autocrlf=true in the attributes test under the dev runner
152
- - Keep .project LF under core.autocrlf=true with a local attributes rule
153
- - Port the member-close changes from main to native Windows
154
- - Patch only the probe module's os in the Windows retry test
155
- - Port the multi-repo member tests to native Windows
156
- - Run the native Windows gate in CI and make it blocking
157
- - Never skip an archive check because resolve() raised on Windows
158
- - Decode test subprocess output as UTF-8
159
- - Use the directory mutex for the discussion lock outside git on Windows
160
- - Make member-isolation and release-receipt tests portable to Windows
161
- - Decode archive and projection test output as UTF-8
162
- - Lock discussions outside git on Windows and report sync paths with slashes
163
- - Type guard-test helper paths the way Git Bash agents do
164
- - Retry installer lock and skill-directory moves on Windows
165
- - Make installer and core-migration tests portable to Windows
166
- - Keep doctor running when git is not on PATH on Windows
167
- - Make the runtime lifecycle tests portable to Windows
168
- - Retry runtime directory renames on Windows and copy the launcher exactly
169
- - Expect native paths in the Zed and Grok host command tests
170
- - Close OpenCode session-store connections so Windows can delete them
171
- - Read dispatch briefs as UTF-8 in the fake children
172
- - Send native Windows relative paths to git with forward slashes
173
- - Make daemon tests platform-correct on Windows
174
- - Write plugin-managed files as UTF-8 bytes
175
- - Keep discovered project roots in their original case on Windows
176
- - Compare lookahead layout as POSIX paths on Windows
177
- - Resolve codex through PATHEXT in the Codex evaluation harness
178
- - Shadow the real codex in the evaluate_codex test on Windows
179
- - Keep tests from ever reaching a real GitHub account
180
- - Send subprocess input to git byte-exact on Windows
181
- - Document native Windows requirements
182
- - Make the Node suite and dev runner portable to Windows
183
- - Make test fixtures portable to Windows
184
- - Update member ship documentation and sync skill copies
185
- - multi-repo S4b2b: post-commit member ship checks
186
- - tests: hold and reap dispatch wrappers started in-process
187
- - Align multi-repo work plan with S4b2a
188
- - Reuse a final-scope wave review whose Surface field carries detail
189
- - tests: keep git auto-maintenance in the foreground
190
- - multi-repo S4b2a: member close and ship body lines
191
- - tests: finish git housekeeping before trust-evidence temp cleanup
192
- - Clarify member PR integration documentation
193
- - multi-repo S4b1b: member pull-request integration
194
- - Document member integration recovery and refresh rules
195
- - multi-repo S4b1a: member direct integration
196
- - Split child commands with POSIX quoting and write runtime output as UTF-8
197
- - Install hooks and wrap Core hooks correctly on Windows
198
- - Close Windows guard bypasses and decode text as UTF-8
199
- - Run dispatch, verify, and loop processes portably on Windows
200
- - Create STATE.md on Windows through pinned handles
201
- - Lock pipeline state on Windows and write product files as LF bytes
202
- - Leave the Windows CI job to the PR where Windows passes
203
- - Isolate USERPROFILE with HOME in tests
204
- - Pick the lock implementation by what imports, and split Windows CI suites
205
- - Write test fixtures as exact UTF-8 LF bytes
206
- - Write package.json as LF bytes in the skill-resource sync
207
- - Add Windows platform helpers, portable dev runners, and a Windows CI job
208
- - Clarify member head binding documentation
209
- - multi-repo S4a2: member reviewed heads in the final review
210
- - Point workflow to member Verify contract
211
- - multi-repo S4a1: member sidecars for project Verify
212
- - Correct S3d ledger and drift guidance
213
- - Clarify member sidecar hook documentation
214
- - Refresh member dispatch documentation and generated comments
215
- - Document member activation safeguards and recovery
216
- - Document member landing proof and archive recovery
217
- - Correct member landing documentation and hook details
218
- - merge: preserve validated dashboard fixes after publication timeout
219
- - Refresh dashboard and tray documentation
220
- - Clarify native retry finish documentation
221
- - Align S3c documentation with member execution timing
222
- - dispatch_driver: finish a native retry after a blocked driver attempt
223
- - Drop the Node copy of the project runtime file list
224
- - Correct managed AGENTS.md guidance and ADR context
225
- - Document ignored .DS_Store setup behavior
226
- - Document S3b build-start lock and recovery
227
- - Sync generated GSD Path scripts
228
- - Clarify Finder junk handling in pipeline docs
229
- - Document pre-approval scope and reconcile gate guidance
230
- - Correct stale multi-repo planning documentation
231
- - Document legacy ledger checkpoint behavior
232
- - Document ignored .project artifact handling
233
- - Clarify local skill edit recovery guidance
234
- - Correct stale S2d work plan guidance
235
- - Clarify research transition gate documentation
236
- - propose ADR 0003 managed AGENTS.md block
237
- - Clarify first-install contract collision guidance
238
- - Clarify half-retire recovery documentation and verify formatting
239
- - Document Claude staging cleanup during shipment
240
- - Document ignored pipeline state recovery
241
- - Correct S2c member hook work plan
242
- - Document native parallel finish recovery
243
- - Clarify member guard documentation and authorization lifetime
244
- - Clarify member marker documentation and verify formatting
245
- - Update S1 plan and remove stale allowlist entry
246
- - Clarify member delete authorization and close recovery proof
247
- - close multi-repo plan open items R23-R24
248
- - Clarify member documentation and correct S5 doc targets
249
- - close multi-repo plan open items R17-R20
250
- - add multi-repo coordinator ADR and work plan
251
- - update release notes for v1.3.1
356
+ - Release workflow and maintainer documentation for npm publication.
252
357
 
253
- ### Fixed
254
- - Fix three Windows races and identity mismatches found on the rebased stack
255
- - Fix the member-build-start path regex
256
- - Fix the Windows CI-only test failures and a Python 3.9 guard crash
257
- - Fix the last native Windows test failures
258
- - show actual project folders in toolbar rows
259
- - group tray status progress and usage on separate lines
260
- - keep tray folder paths in tooltips
261
- - show project identity and wrap tray panel details
262
- - wrap full project paths on dashboard board
263
- - show main project folder alongside dashboard worktree
264
- - keep runtime module identity independent of test order
265
- - detect legacy marker as a whole line; keep distribution layout in AGENTS.md
266
- - match AGENTS.md markers as whole lines; doctor flags a cut block
267
- - harden AGENTS.md block install and uninstall
268
- - ignored .DS_Store in .project no longer orphans project setup (#149)
269
- - skip ignored .DS_Store inside .project subdirectories (#149)
270
- - keep DOCS-AUDIT Repo root on the primary repo, not the sidecar (#148)
271
- - commit a legacy ignored verify ledger in build checkpoints
272
- - skip ignored untracked .project entries in ship allowlist checks (#149)
273
- - say local skill edits are not carried forward (#151)
274
- - let decide run the research handoff check at decide/active
275
- - name a working path when --project finds an existing contract
276
- - prune empty host .claude dirs before .project gates
277
- - let retire recover a half-retired task worktree
278
- - refuse landings when ignore rules hide .project state
279
- - let finish land natively dispatched parallel tasks
358
+ ## [1.0.0] - 2026-09-15
280
359
 
281
- ### Other
282
- - Align Copilot exclusion docs with persistent validator exclusion
283
- - Let forced member retire proceed on invalid task copy
284
- - Correct native member diff instructions and track retry gap
285
- - Record Claude and Codex two-repo host proof
286
- - Fix native member routing and isolate host scenario
287
- - Align activation host proof with pre-merge gate
288
- - Correct S5d host proof and release timing
289
- - Synced the canonical Windows checkout-path fix into 11 generated skill copies. Before the change, the resource sync check failed and caused the reported test failures. Afterward, the sync check, four affected Node tests, and 66 focused Python tests passed. Windows CI still needs to rerun
290
- - Fixed the Windows checkout-path comparison and replaced three test-fixture deletions that fail on read-only Git objects. The regression test failed before the fix and passed after; 66 focused tests pass locally. Windows CI still needs to rerun. The ponytail skill was unavailable in this environment
291
- - Record A1 daemon version and port ownership questions
292
- - Move legacy cleanup into A1 and require version bumps
293
- - Gate daemon reuse by bundled version
294
- - Specify app update index and verify migration cleanup
295
- - Plan legacy autostart cleanup during app upgrade
296
- - Resolve native app plan review findings
297
- - Fixed the Windows test fixtures in tests/test_member_create.py: Git now gets a forward-slash temporary path, and the gh test uses a platform-independent fake process. All 22 focused tests pass locally; both fixes failed sensitivity checks when deliberately undone. Windows CI still needs to rerun
298
- - Pin GitHub host and verify remote main
299
- - Verify checkout history and resume partial clones
300
- - Honor configured origins and prevent repository recreation
301
- - Reject invalid checkouts and stale clone reuse
302
- - Fix member creation recovery and validation
303
- - Prove member hook denials and branch retirement
304
- - Fixed two Windows daemon test races in tests/test_daemon_serve.py. The activity test now counts events for its own project. The poll test stages STATE.md outside the watched directory and retries a transient replacement lock. The activity failure was reproduced locally before the fix; all 15 daemon serve tests pass after it, including a simulated file-lock check. PR #230 remains open; CI has not been rerun in this phase
305
- - Reuse linted member base for lookahead approval
306
- - Detect member rename drift and fix done-task test
307
- - Filter done member drift; focused test remains failing
308
- - Scope member status to the active milestone
309
- - Block member undo while landing journals are pending
310
- - Guard member undo against publication and concurrent landings
311
- - Harden member undo journaling, recovery, and locking
312
- - Guard member retirement against moved refs and team checkouts
313
- - Sync member status fix to generated skill copies
314
- - Keep member status validation read-only
315
- - Read staged member lock in ship guard
316
- - Repair merged member PR body before tagging
317
- - Validate member PR provenance and repair reused bodies
318
- - Set Git identity in the temporary member test repository to fix the CI merge failures. The focused test reproduced the failure before the change; all 11 member integration tests passed after it, and a sabotage check reproduced the failure. Ponytail review found no smaller fix. CI has not rerun
319
- - Fixed the test fixture in tests/test_member_integration.py by setting the bare remote’s HEAD to main. The CI-style Git setting reproduced the 4 failures and 5 errors before the fix; all 11 focused tests passed after it. Skipping the new line caused the original error again. Ponytail review found no smaller fix. CI has not rerun
320
- - Guard member merges, resume interrupted branches, and refresh validation
321
- - Ignore commented member heads in review headers
322
- - Retire switched member sidecars without changing bound branches
323
- - Retire detached sidecars and retain member Verify output
324
- - Refuse colliding members and clean up rejected Verify
325
- - Fix member Verify sidecars and final review reuse
326
- - Fix member drift detection and document Verify output policy
327
- - Report untracked host config collisions during activation
328
- - Restore and validate member hooks before every launch
329
- - Both CI jobs failed because the temporary member repository had no Git author identity. I set its identity in the test fixture. The member-round suite passed (9 tests) with automatic identity discovery disabled; removing the fixture setting reproduced the failure. `git diff --check` passed. The ponytail skill was unavailable. An earlier diagnostic command created an empty `/tmp/ci-verify-18.log` outside the worktree; I made no other out-of-worktree changes
330
- - Retire recovered members and clarify locked brief bases
331
- - Recover partial and stale member isolates
332
- - Fix member task resume, retirement, and contract drift
333
- - Reject tracked and symlinked member copy paths
334
- - Reject missing member task agents
335
- - Unify member task contract field checks
336
- - Fix member recovery, activation, and retirement safeguards
337
- - Reject changed member task contracts after landing
338
- - Harden member landing proof across archival and status
339
- - Serialize coordinator landings and block pending member journals
340
- - Serialize member landings with per-member locks
341
- - Guard member landing with STATE branch checks
342
- - Fix member landing recovery and contract checks
343
- - Preserve bare-backed worktree identity and paths
344
- - Fix nested project identity and worktree paths
345
- - Fix dashboard search by repository name
346
- - Guard member checkout reuse and retirement ownership
347
- - Fix member isolation placement, lock guidance, and retirement
348
- - Preserve AGENTS.md owner text across updates and uninstall
349
- - Reject symlinked member lock paths
350
- - Remove stale member lock when tasks drop members
351
- - Preflight member build starts before creating refs
352
- - Preserve tracked .DS_Store in archive manifests
353
- - Resolve landed member bases during plan approval
354
- - Honor canonical lane and Config during preauthorization
355
- - Fix staged legacy ledger checkpoint retries
356
- - Validate docs audit rulings before preapproval
357
- - Warn on legacy Codex skill backups
358
- - Clarify block cutoff and release evaluation scope
359
- - Reference PR #161 in rejected option
360
- - Clarify managed block size and migration exceptions
361
- - Skip unreadable listed checkouts when checking foreign members
362
- - Resume blocked decide before the research recheck
363
- - Fix stale member markers, symlinks, and Git inspection failures
364
- - Suppress unsafe move when contract backup exists
365
- - Probe plan and archived ledger ignore rules
366
- - Probe fixed-name project files before landing
367
- - Require managed coordinator guard before installing member hooks
368
- - Harden member hook staging and worktree path checks
369
- - Require origin/main baseline for member joins and pushes
370
- - Reject nonfile member markers until manual removal
371
- - Preserve marker directory errors in validation
372
- - Reject redirected member marker directories
373
- - Write member marker before recording membership
374
- - Skip valid markers during member repair
375
- - Fix member marker recovery and coordinator ownership
376
- - Fix member validation and duplicate repository detection
377
- - Authorize direct member bound branch publication
378
- - Specify per-ref member push authorization for close
379
- - Fix member branch, landing, and ship recovery plan
380
- - Revise multi-repo plan for accepted design reviews
381
- - Align multi-repo plan with member binding decisions
360
+ ### Added
361
+ - First public release of the disk-backed GSD Path pipeline.
362
+ - Multi-host installer, skills package, and project contracts.