@opengsd/gsd-path 1.3.1 → 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 (481) hide show
  1. package/AGENTS.md +2 -207
  2. package/CHANGELOG.md +331 -69
  3. package/DOCS.md +25 -9
  4. package/FULL.md +12 -5
  5. package/GUIDE.md +1 -1
  6. package/HOOKS.md +104 -14
  7. package/QUICK.md +5 -2
  8. package/README.md +131 -111
  9. package/RUNTIME.md +2 -2
  10. package/UPDATE.md +61 -11
  11. package/WORKFLOW.md +44 -7
  12. package/package.json +13 -9
  13. package/platforms/shared-agents/dispatch.md +13 -0
  14. package/scripts/_common.py +619 -18
  15. package/scripts/archive_milestone.py +160 -86
  16. package/scripts/bootstrap_repository.py +8 -5
  17. package/scripts/build_recovery.py +100 -32
  18. package/scripts/build_state.py +143 -24
  19. package/scripts/check_docs_audit.py +91 -7
  20. package/scripts/check_handoffs.py +662 -50
  21. package/scripts/check_task_briefs.py +338 -30
  22. package/scripts/check_update.py +2 -2
  23. package/scripts/core_hook_gate.py +10 -1
  24. package/scripts/core_hook_settings.py +11 -4
  25. package/scripts/detect_project.py +587 -32
  26. package/scripts/discussion_records.py +19 -13
  27. package/scripts/discussion_validate.py +152 -50
  28. package/scripts/dispatch_driver.py +501 -46
  29. package/scripts/git_guard.py +118 -31
  30. package/scripts/guard_hook.py +1567 -194
  31. package/scripts/install.mjs +77 -46
  32. package/scripts/install.py +611 -50
  33. package/scripts/integration.py +580 -25
  34. package/scripts/isolation.py +1438 -57
  35. package/scripts/lean_verification.py +99 -19
  36. package/scripts/loop_run.py +31 -29
  37. package/scripts/members.py +706 -0
  38. package/scripts/migrate_core.py +2 -2
  39. package/scripts/path_config.py +5 -5
  40. package/scripts/pipeline_diagnose.py +82 -31
  41. package/scripts/pipeline_git.py +124 -34
  42. package/scripts/pipeline_state.py +287 -87
  43. package/scripts/pipeline_undo.py +218 -30
  44. package/scripts/promote_lookahead.py +1 -1
  45. package/scripts/review_panel.py +1 -1
  46. package/scripts/runtime_store.py +55 -11
  47. package/scripts/skill-resources.json +37 -5
  48. package/scripts/state_checkpoint.py +135 -44
  49. package/scripts/state_promote.py +2 -0
  50. package/scripts/status_runtime.py +58 -10
  51. package/scripts/sync_skill_resources.py +8 -7
  52. package/scripts/task_context.py +12 -3
  53. package/scripts/token_budget.py +12 -8
  54. package/scripts/wizard.mjs +1 -0
  55. package/scripts/workflow_run.py +107 -30
  56. package/scripts/worktree_paths.py +72 -10
  57. package/skills/gsd-path/BUILD.md +7 -1
  58. package/skills/gsd-path/DECIDE.md +11 -4
  59. package/skills/gsd-path/DEFINE.md +36 -4
  60. package/skills/gsd-path/DOCS-AUDIT.md +6 -4
  61. package/skills/gsd-path/INSPECT.md +5 -4
  62. package/skills/gsd-path/PLAN.md +18 -4
  63. package/skills/gsd-path/RESEARCH.md +13 -1
  64. package/skills/gsd-path/ROADMAP.md +2 -1
  65. package/skills/gsd-path/SHIP.md +33 -11
  66. package/skills/gsd-path/SKILL.md +45 -1
  67. package/skills/gsd-path/references/build-native.md +63 -15
  68. package/skills/gsd-path/references/codebase-mapper.md +2 -1
  69. package/skills/gsd-path/references/dispatch.md +13 -0
  70. package/skills/gsd-path/references/docs-auditor.md +7 -1
  71. package/skills/gsd-path/references/operating-rules.md +214 -0
  72. package/skills/gsd-path/references/planner.md +22 -4
  73. package/skills/gsd-path/references/reviewer-final.md +20 -2
  74. package/skills/gsd-path/references/reviewer-wave.md +18 -5
  75. package/skills/gsd-path/references/reviewer.md +3 -1
  76. package/skills/gsd-path/references/spec-probes.md +150 -0
  77. package/skills/gsd-path/scripts/_common.py +619 -18
  78. package/skills/gsd-path/scripts/archive_milestone.py +160 -86
  79. package/skills/gsd-path/scripts/bootstrap_repository.py +8 -5
  80. package/skills/gsd-path/scripts/build_recovery.py +100 -32
  81. package/skills/gsd-path/scripts/build_state.py +143 -24
  82. package/skills/gsd-path/scripts/check_docs_audit.py +91 -7
  83. package/skills/gsd-path/scripts/check_handoffs.py +662 -50
  84. package/skills/gsd-path/scripts/check_task_briefs.py +338 -30
  85. package/skills/gsd-path/scripts/check_update.py +2 -2
  86. package/skills/gsd-path/scripts/detect_project.py +587 -32
  87. package/skills/gsd-path/scripts/discussion_records.py +19 -13
  88. package/skills/gsd-path/scripts/discussion_validate.py +152 -50
  89. package/skills/gsd-path/scripts/dispatch_driver.py +501 -46
  90. package/skills/gsd-path/scripts/git_guard.py +118 -31
  91. package/skills/gsd-path/scripts/integration.py +580 -25
  92. package/skills/gsd-path/scripts/isolation.py +1438 -57
  93. package/skills/gsd-path/scripts/lean_verification.py +99 -19
  94. package/skills/gsd-path/scripts/loop_run.py +31 -29
  95. package/skills/gsd-path/scripts/members.py +706 -0
  96. package/skills/gsd-path/scripts/path_config.py +5 -5
  97. package/skills/gsd-path/scripts/pipeline_git.py +124 -34
  98. package/skills/gsd-path/scripts/pipeline_state.py +287 -87
  99. package/skills/gsd-path/scripts/promote_lookahead.py +1 -1
  100. package/skills/gsd-path/scripts/review_panel.py +1 -1
  101. package/skills/gsd-path/scripts/state_checkpoint.py +135 -44
  102. package/skills/gsd-path/scripts/state_promote.py +2 -0
  103. package/skills/gsd-path/scripts/status_runtime.py +58 -10
  104. package/skills/gsd-path/scripts/task_context.py +12 -3
  105. package/skills/gsd-path/scripts/token_budget.py +12 -8
  106. package/skills/gsd-path/scripts/workflow_run.py +107 -30
  107. package/skills/gsd-path/scripts/worktree_paths.py +72 -10
  108. package/skills/gsd-path/templates/codebase.md +1 -1
  109. package/skills/gsd-path/templates/docs-audit.md +6 -2
  110. package/skills/gsd-path/templates/final-review.md +16 -4
  111. package/skills/gsd-path/templates/gap-review.md +2 -1
  112. package/skills/gsd-path/templates/intent.md +30 -0
  113. package/skills/gsd-path/templates/patch-findings.md +3 -3
  114. package/skills/gsd-path/templates/plan.md +17 -2
  115. package/skills/gsd-path/templates/research-handoff.md +14 -3
  116. package/skills/gsd-path/templates/state.md +1 -1
  117. package/skills/gsd-path/templates/task.md +1 -0
  118. package/skills/gsd-path/templates/wave-review.md +16 -4
  119. package/skills/gsd-path-build/SKILL.md +7 -1
  120. package/skills/gsd-path-build/references/build-native.md +63 -15
  121. package/skills/gsd-path-build/references/dispatch.md +13 -0
  122. package/skills/gsd-path-build/references/operating-rules.md +214 -0
  123. package/skills/gsd-path-build/references/reviewer-final.md +20 -2
  124. package/skills/gsd-path-build/references/reviewer-wave.md +18 -5
  125. package/skills/gsd-path-build/references/reviewer.md +3 -1
  126. package/skills/gsd-path-build/references/spec-probes.md +150 -0
  127. package/skills/gsd-path-build/scripts/_common.py +619 -18
  128. package/skills/gsd-path-build/scripts/archive_milestone.py +160 -86
  129. package/skills/gsd-path-build/scripts/build_recovery.py +100 -32
  130. package/skills/gsd-path-build/scripts/build_state.py +143 -24
  131. package/skills/gsd-path-build/scripts/check_handoffs.py +662 -50
  132. package/skills/gsd-path-build/scripts/check_task_briefs.py +338 -30
  133. package/skills/gsd-path-build/scripts/detect_project.py +587 -32
  134. package/skills/gsd-path-build/scripts/discussion_records.py +19 -13
  135. package/skills/gsd-path-build/scripts/discussion_validate.py +152 -50
  136. package/skills/gsd-path-build/scripts/dispatch_driver.py +501 -46
  137. package/skills/gsd-path-build/scripts/integration.py +580 -25
  138. package/skills/gsd-path-build/scripts/isolation.py +1438 -57
  139. package/skills/gsd-path-build/scripts/loop_run.py +31 -29
  140. package/skills/gsd-path-build/scripts/members.py +706 -0
  141. package/skills/gsd-path-build/scripts/path_config.py +5 -5
  142. package/skills/gsd-path-build/scripts/pipeline_git.py +124 -34
  143. package/skills/gsd-path-build/scripts/pipeline_state.py +287 -87
  144. package/skills/gsd-path-build/scripts/promote_lookahead.py +1 -1
  145. package/skills/gsd-path-build/scripts/review_panel.py +1 -1
  146. package/skills/gsd-path-build/scripts/state_checkpoint.py +135 -44
  147. package/skills/gsd-path-build/scripts/state_promote.py +2 -0
  148. package/skills/gsd-path-build/scripts/task_context.py +12 -3
  149. package/skills/gsd-path-build/scripts/token_budget.py +12 -8
  150. package/skills/gsd-path-build/scripts/workflow_run.py +107 -30
  151. package/skills/gsd-path-build/scripts/worktree_paths.py +72 -10
  152. package/skills/gsd-path-build/templates/task.md +1 -0
  153. package/skills/gsd-path-build/templates/wave-review.md +16 -4
  154. package/skills/gsd-path-decide/SKILL.md +11 -4
  155. package/skills/gsd-path-decide/references/dispatch.md +13 -0
  156. package/skills/gsd-path-decide/references/operating-rules.md +214 -0
  157. package/skills/gsd-path-decide/scripts/_common.py +619 -18
  158. package/skills/gsd-path-decide/scripts/archive_milestone.py +160 -86
  159. package/skills/gsd-path-decide/scripts/build_recovery.py +100 -32
  160. package/skills/gsd-path-decide/scripts/check_handoffs.py +662 -50
  161. package/skills/gsd-path-decide/scripts/check_task_briefs.py +338 -30
  162. package/skills/gsd-path-decide/scripts/detect_project.py +587 -32
  163. package/skills/gsd-path-decide/scripts/discussion_records.py +19 -13
  164. package/skills/gsd-path-decide/scripts/discussion_validate.py +152 -50
  165. package/skills/gsd-path-decide/scripts/integration.py +580 -25
  166. package/skills/gsd-path-decide/scripts/isolation.py +1438 -57
  167. package/skills/gsd-path-decide/scripts/loop_run.py +31 -29
  168. package/skills/gsd-path-decide/scripts/members.py +706 -0
  169. package/skills/gsd-path-decide/scripts/path_config.py +5 -5
  170. package/skills/gsd-path-decide/scripts/pipeline_git.py +124 -34
  171. package/skills/gsd-path-decide/scripts/pipeline_state.py +287 -87
  172. package/skills/gsd-path-decide/scripts/promote_lookahead.py +1 -1
  173. package/skills/gsd-path-decide/scripts/review_panel.py +1 -1
  174. package/skills/gsd-path-decide/scripts/state_checkpoint.py +135 -44
  175. package/skills/gsd-path-decide/scripts/state_promote.py +2 -0
  176. package/skills/gsd-path-decide/scripts/worktree_paths.py +72 -10
  177. package/skills/gsd-path-define/SKILL.md +36 -4
  178. package/skills/gsd-path-define/references/operating-rules.md +214 -0
  179. package/skills/gsd-path-define/references/spec-probes.md +150 -0
  180. package/skills/gsd-path-define/scripts/_common.py +619 -18
  181. package/skills/gsd-path-define/scripts/archive_milestone.py +160 -86
  182. package/skills/gsd-path-define/scripts/build_recovery.py +100 -32
  183. package/skills/gsd-path-define/scripts/check_handoffs.py +662 -50
  184. package/skills/gsd-path-define/scripts/check_task_briefs.py +338 -30
  185. package/skills/gsd-path-define/scripts/detect_project.py +587 -32
  186. package/skills/gsd-path-define/scripts/discussion_records.py +19 -13
  187. package/skills/gsd-path-define/scripts/discussion_validate.py +152 -50
  188. package/skills/gsd-path-define/scripts/integration.py +580 -25
  189. package/skills/gsd-path-define/scripts/isolation.py +1438 -57
  190. package/skills/gsd-path-define/scripts/loop_run.py +31 -29
  191. package/skills/gsd-path-define/scripts/members.py +706 -0
  192. package/skills/gsd-path-define/scripts/path_config.py +5 -5
  193. package/skills/gsd-path-define/scripts/pipeline_git.py +124 -34
  194. package/skills/gsd-path-define/scripts/pipeline_state.py +287 -87
  195. package/skills/gsd-path-define/scripts/promote_lookahead.py +1 -1
  196. package/skills/gsd-path-define/scripts/review_panel.py +1 -1
  197. package/skills/gsd-path-define/scripts/state_checkpoint.py +135 -44
  198. package/skills/gsd-path-define/scripts/state_promote.py +2 -0
  199. package/skills/gsd-path-define/scripts/worktree_paths.py +72 -10
  200. package/skills/gsd-path-define/templates/intent.md +30 -0
  201. package/skills/gsd-path-define/templates/state.md +1 -1
  202. package/skills/gsd-path-discuss/SKILL.md +2 -1
  203. package/skills/gsd-path-discuss/references/operating-rules.md +214 -0
  204. package/skills/gsd-path-discuss/scripts/_common.py +619 -18
  205. package/skills/gsd-path-discuss/scripts/discussion_records.py +19 -13
  206. package/skills/gsd-path-discuss/scripts/loop_run.py +31 -29
  207. package/skills/gsd-path-discuss/scripts/path_config.py +5 -5
  208. package/skills/gsd-path-discuss/scripts/review_panel.py +1 -1
  209. package/skills/gsd-path-discuss/scripts/worktree_paths.py +72 -10
  210. package/skills/gsd-path-docs-audit/SKILL.md +6 -4
  211. package/skills/gsd-path-docs-audit/references/dispatch.md +13 -0
  212. package/skills/gsd-path-docs-audit/references/docs-auditor.md +7 -1
  213. package/skills/gsd-path-docs-audit/references/operating-rules.md +214 -0
  214. package/skills/gsd-path-docs-audit/scripts/_common.py +619 -18
  215. package/skills/gsd-path-docs-audit/scripts/archive_milestone.py +160 -86
  216. package/skills/gsd-path-docs-audit/scripts/build_recovery.py +100 -32
  217. package/skills/gsd-path-docs-audit/scripts/check_docs_audit.py +91 -7
  218. package/skills/gsd-path-docs-audit/scripts/check_handoffs.py +662 -50
  219. package/skills/gsd-path-docs-audit/scripts/check_task_briefs.py +338 -30
  220. package/skills/gsd-path-docs-audit/scripts/detect_project.py +587 -32
  221. package/skills/gsd-path-docs-audit/scripts/discussion_records.py +19 -13
  222. package/skills/gsd-path-docs-audit/scripts/discussion_validate.py +152 -50
  223. package/skills/gsd-path-docs-audit/scripts/integration.py +580 -25
  224. package/skills/gsd-path-docs-audit/scripts/isolation.py +1438 -57
  225. package/skills/gsd-path-docs-audit/scripts/loop_run.py +31 -29
  226. package/skills/gsd-path-docs-audit/scripts/members.py +706 -0
  227. package/skills/gsd-path-docs-audit/scripts/path_config.py +5 -5
  228. package/skills/gsd-path-docs-audit/scripts/pipeline_git.py +124 -34
  229. package/skills/gsd-path-docs-audit/scripts/pipeline_state.py +287 -87
  230. package/skills/gsd-path-docs-audit/scripts/promote_lookahead.py +1 -1
  231. package/skills/gsd-path-docs-audit/scripts/review_panel.py +1 -1
  232. package/skills/gsd-path-docs-audit/scripts/state_checkpoint.py +135 -44
  233. package/skills/gsd-path-docs-audit/scripts/state_promote.py +2 -0
  234. package/skills/gsd-path-docs-audit/scripts/worktree_paths.py +72 -10
  235. package/skills/gsd-path-docs-audit/templates/docs-audit.md +6 -2
  236. package/skills/gsd-path-forensics/SKILL.md +2 -1
  237. package/skills/gsd-path-forensics/references/operating-rules.md +214 -0
  238. package/skills/gsd-path-forensics/scripts/_common.py +619 -18
  239. package/skills/gsd-path-forensics/scripts/discussion_records.py +19 -13
  240. package/skills/gsd-path-forensics/scripts/loop_run.py +31 -29
  241. package/skills/gsd-path-forensics/scripts/path_config.py +5 -5
  242. package/skills/gsd-path-forensics/scripts/pipeline_diagnose.py +82 -31
  243. package/skills/gsd-path-forensics/scripts/pipeline_undo.py +218 -30
  244. package/skills/gsd-path-forensics/scripts/review_panel.py +1 -1
  245. package/skills/gsd-path-forensics/scripts/worktree_paths.py +72 -10
  246. package/skills/gsd-path-inspect/SKILL.md +5 -4
  247. package/skills/gsd-path-inspect/references/codebase-mapper.md +2 -1
  248. package/skills/gsd-path-inspect/references/dispatch.md +13 -0
  249. package/skills/gsd-path-inspect/references/docs-auditor.md +7 -1
  250. package/skills/gsd-path-inspect/references/operating-rules.md +214 -0
  251. package/skills/gsd-path-inspect/scripts/_common.py +619 -18
  252. package/skills/gsd-path-inspect/scripts/archive_milestone.py +160 -86
  253. package/skills/gsd-path-inspect/scripts/build_recovery.py +100 -32
  254. package/skills/gsd-path-inspect/scripts/check_docs_audit.py +91 -7
  255. package/skills/gsd-path-inspect/scripts/check_handoffs.py +662 -50
  256. package/skills/gsd-path-inspect/scripts/check_task_briefs.py +338 -30
  257. package/skills/gsd-path-inspect/scripts/detect_project.py +587 -32
  258. package/skills/gsd-path-inspect/scripts/discussion_records.py +19 -13
  259. package/skills/gsd-path-inspect/scripts/discussion_validate.py +152 -50
  260. package/skills/gsd-path-inspect/scripts/integration.py +580 -25
  261. package/skills/gsd-path-inspect/scripts/isolation.py +1438 -57
  262. package/skills/gsd-path-inspect/scripts/loop_run.py +31 -29
  263. package/skills/gsd-path-inspect/scripts/members.py +706 -0
  264. package/skills/gsd-path-inspect/scripts/path_config.py +5 -5
  265. package/skills/gsd-path-inspect/scripts/pipeline_git.py +124 -34
  266. package/skills/gsd-path-inspect/scripts/pipeline_state.py +287 -87
  267. package/skills/gsd-path-inspect/scripts/promote_lookahead.py +1 -1
  268. package/skills/gsd-path-inspect/scripts/review_panel.py +1 -1
  269. package/skills/gsd-path-inspect/scripts/state_checkpoint.py +135 -44
  270. package/skills/gsd-path-inspect/scripts/state_promote.py +2 -0
  271. package/skills/gsd-path-inspect/scripts/workflow_run.py +107 -30
  272. package/skills/gsd-path-inspect/scripts/worktree_paths.py +72 -10
  273. package/skills/gsd-path-inspect/templates/codebase.md +1 -1
  274. package/skills/gsd-path-inspect/templates/docs-audit.md +6 -2
  275. package/skills/gsd-path-inspect/templates/state.md +1 -1
  276. package/skills/gsd-path-loop/SKILL.md +2 -1
  277. package/skills/gsd-path-loop/references/operating-rules.md +214 -0
  278. package/skills/gsd-path-loop/scripts/_common.py +619 -18
  279. package/skills/gsd-path-loop/scripts/discussion_records.py +19 -13
  280. package/skills/gsd-path-loop/scripts/loop_run.py +31 -29
  281. package/skills/gsd-path-loop/scripts/path_config.py +5 -5
  282. package/skills/gsd-path-loop/scripts/review_panel.py +1 -1
  283. package/skills/gsd-path-loop/scripts/worktree_paths.py +72 -10
  284. package/skills/gsd-path-migrate/SKILL.md +2 -1
  285. package/skills/gsd-path-migrate/references/operating-rules.md +214 -0
  286. package/skills/gsd-path-migrate/scripts/_common.py +619 -18
  287. package/skills/gsd-path-migrate/scripts/core_hook_gate.py +10 -1
  288. package/skills/gsd-path-migrate/scripts/core_hook_settings.py +11 -4
  289. package/skills/gsd-path-migrate/scripts/discussion_records.py +19 -13
  290. package/skills/gsd-path-migrate/scripts/loop_run.py +31 -29
  291. package/skills/gsd-path-migrate/scripts/migrate_core.py +2 -2
  292. package/skills/gsd-path-migrate/scripts/path_config.py +5 -5
  293. package/skills/gsd-path-migrate/scripts/review_panel.py +1 -1
  294. package/skills/gsd-path-plan/SKILL.md +18 -4
  295. package/skills/gsd-path-plan/references/dispatch.md +13 -0
  296. package/skills/gsd-path-plan/references/operating-rules.md +214 -0
  297. package/skills/gsd-path-plan/references/planner.md +22 -4
  298. package/skills/gsd-path-plan/references/spec-probes.md +150 -0
  299. package/skills/gsd-path-plan/scripts/_common.py +619 -18
  300. package/skills/gsd-path-plan/scripts/archive_milestone.py +160 -86
  301. package/skills/gsd-path-plan/scripts/build_recovery.py +100 -32
  302. package/skills/gsd-path-plan/scripts/check_handoffs.py +662 -50
  303. package/skills/gsd-path-plan/scripts/check_task_briefs.py +338 -30
  304. package/skills/gsd-path-plan/scripts/detect_project.py +587 -32
  305. package/skills/gsd-path-plan/scripts/discussion_records.py +19 -13
  306. package/skills/gsd-path-plan/scripts/discussion_validate.py +152 -50
  307. package/skills/gsd-path-plan/scripts/integration.py +580 -25
  308. package/skills/gsd-path-plan/scripts/isolation.py +1438 -57
  309. package/skills/gsd-path-plan/scripts/loop_run.py +31 -29
  310. package/skills/gsd-path-plan/scripts/members.py +706 -0
  311. package/skills/gsd-path-plan/scripts/path_config.py +5 -5
  312. package/skills/gsd-path-plan/scripts/pipeline_git.py +124 -34
  313. package/skills/gsd-path-plan/scripts/pipeline_state.py +287 -87
  314. package/skills/gsd-path-plan/scripts/promote_lookahead.py +1 -1
  315. package/skills/gsd-path-plan/scripts/review_panel.py +1 -1
  316. package/skills/gsd-path-plan/scripts/state_checkpoint.py +135 -44
  317. package/skills/gsd-path-plan/scripts/state_promote.py +2 -0
  318. package/skills/gsd-path-plan/scripts/workflow_run.py +107 -30
  319. package/skills/gsd-path-plan/scripts/worktree_paths.py +72 -10
  320. package/skills/gsd-path-plan/templates/patch-findings.md +3 -3
  321. package/skills/gsd-path-plan/templates/plan.md +17 -2
  322. package/skills/gsd-path-plan/templates/task.md +1 -0
  323. package/skills/gsd-path-research/SKILL.md +13 -1
  324. package/skills/gsd-path-research/references/dispatch.md +13 -0
  325. package/skills/gsd-path-research/references/operating-rules.md +214 -0
  326. package/skills/gsd-path-research/scripts/_common.py +619 -18
  327. package/skills/gsd-path-research/scripts/archive_milestone.py +160 -86
  328. package/skills/gsd-path-research/scripts/build_recovery.py +100 -32
  329. package/skills/gsd-path-research/scripts/check_handoffs.py +662 -50
  330. package/skills/gsd-path-research/scripts/check_task_briefs.py +338 -30
  331. package/skills/gsd-path-research/scripts/detect_project.py +587 -32
  332. package/skills/gsd-path-research/scripts/discussion_records.py +19 -13
  333. package/skills/gsd-path-research/scripts/discussion_validate.py +152 -50
  334. package/skills/gsd-path-research/scripts/integration.py +580 -25
  335. package/skills/gsd-path-research/scripts/isolation.py +1438 -57
  336. package/skills/gsd-path-research/scripts/loop_run.py +31 -29
  337. package/skills/gsd-path-research/scripts/members.py +706 -0
  338. package/skills/gsd-path-research/scripts/path_config.py +5 -5
  339. package/skills/gsd-path-research/scripts/pipeline_git.py +124 -34
  340. package/skills/gsd-path-research/scripts/pipeline_state.py +287 -87
  341. package/skills/gsd-path-research/scripts/promote_lookahead.py +1 -1
  342. package/skills/gsd-path-research/scripts/review_panel.py +1 -1
  343. package/skills/gsd-path-research/scripts/state_checkpoint.py +135 -44
  344. package/skills/gsd-path-research/scripts/state_promote.py +2 -0
  345. package/skills/gsd-path-research/scripts/worktree_paths.py +72 -10
  346. package/skills/gsd-path-research/templates/research-handoff.md +14 -3
  347. package/skills/gsd-path-roadmap/SKILL.md +2 -1
  348. package/skills/gsd-path-roadmap/references/dispatch.md +13 -0
  349. package/skills/gsd-path-roadmap/references/operating-rules.md +214 -0
  350. package/skills/gsd-path-roadmap/scripts/_common.py +619 -18
  351. package/skills/gsd-path-roadmap/scripts/archive_milestone.py +160 -86
  352. package/skills/gsd-path-roadmap/scripts/build_recovery.py +100 -32
  353. package/skills/gsd-path-roadmap/scripts/check_handoffs.py +662 -50
  354. package/skills/gsd-path-roadmap/scripts/check_task_briefs.py +338 -30
  355. package/skills/gsd-path-roadmap/scripts/detect_project.py +587 -32
  356. package/skills/gsd-path-roadmap/scripts/discussion_records.py +19 -13
  357. package/skills/gsd-path-roadmap/scripts/discussion_validate.py +152 -50
  358. package/skills/gsd-path-roadmap/scripts/integration.py +580 -25
  359. package/skills/gsd-path-roadmap/scripts/isolation.py +1438 -57
  360. package/skills/gsd-path-roadmap/scripts/loop_run.py +31 -29
  361. package/skills/gsd-path-roadmap/scripts/members.py +706 -0
  362. package/skills/gsd-path-roadmap/scripts/path_config.py +5 -5
  363. package/skills/gsd-path-roadmap/scripts/pipeline_git.py +124 -34
  364. package/skills/gsd-path-roadmap/scripts/pipeline_state.py +287 -87
  365. package/skills/gsd-path-roadmap/scripts/promote_lookahead.py +1 -1
  366. package/skills/gsd-path-roadmap/scripts/review_panel.py +1 -1
  367. package/skills/gsd-path-roadmap/scripts/state_checkpoint.py +135 -44
  368. package/skills/gsd-path-roadmap/scripts/state_promote.py +2 -0
  369. package/skills/gsd-path-roadmap/scripts/worktree_paths.py +72 -10
  370. package/skills/gsd-path-ship/SKILL.md +33 -11
  371. package/skills/gsd-path-ship/references/dispatch.md +13 -0
  372. package/skills/gsd-path-ship/references/operating-rules.md +214 -0
  373. package/skills/gsd-path-ship/references/reviewer-final.md +20 -2
  374. package/skills/gsd-path-ship/references/reviewer-wave.md +18 -5
  375. package/skills/gsd-path-ship/references/reviewer.md +3 -1
  376. package/skills/gsd-path-ship/references/spec-probes.md +150 -0
  377. package/skills/gsd-path-ship/scripts/_common.py +619 -18
  378. package/skills/gsd-path-ship/scripts/archive_milestone.py +160 -86
  379. package/skills/gsd-path-ship/scripts/build_recovery.py +100 -32
  380. package/skills/gsd-path-ship/scripts/build_state.py +143 -24
  381. package/skills/gsd-path-ship/scripts/check_handoffs.py +662 -50
  382. package/skills/gsd-path-ship/scripts/check_task_briefs.py +338 -30
  383. package/skills/gsd-path-ship/scripts/detect_project.py +587 -32
  384. package/skills/gsd-path-ship/scripts/discussion_records.py +19 -13
  385. package/skills/gsd-path-ship/scripts/discussion_validate.py +152 -50
  386. package/skills/gsd-path-ship/scripts/integration.py +580 -25
  387. package/skills/gsd-path-ship/scripts/isolation.py +1438 -57
  388. package/skills/gsd-path-ship/scripts/lean_verification.py +99 -19
  389. package/skills/gsd-path-ship/scripts/loop_run.py +31 -29
  390. package/skills/gsd-path-ship/scripts/members.py +706 -0
  391. package/skills/gsd-path-ship/scripts/path_config.py +5 -5
  392. package/skills/gsd-path-ship/scripts/pipeline_git.py +124 -34
  393. package/skills/gsd-path-ship/scripts/pipeline_state.py +287 -87
  394. package/skills/gsd-path-ship/scripts/promote_lookahead.py +1 -1
  395. package/skills/gsd-path-ship/scripts/review_panel.py +1 -1
  396. package/skills/gsd-path-ship/scripts/state_checkpoint.py +135 -44
  397. package/skills/gsd-path-ship/scripts/state_promote.py +2 -0
  398. package/skills/gsd-path-ship/scripts/workflow_run.py +107 -30
  399. package/skills/gsd-path-ship/scripts/worktree_paths.py +72 -10
  400. package/skills/gsd-path-ship/templates/final-review.md +16 -4
  401. package/skills/gsd-path-ship/templates/gap-review.md +2 -1
  402. package/skills/gsd-path-ship/templates/patch-findings.md +3 -3
  403. package/skills/gsd-path-ship/templates/wave-review.md +16 -4
  404. package/skills/gsd-path-undo/SKILL.md +2 -1
  405. package/skills/gsd-path-undo/references/operating-rules.md +214 -0
  406. package/skills/gsd-path-undo/scripts/_common.py +619 -18
  407. package/skills/gsd-path-undo/scripts/discussion_records.py +19 -13
  408. package/skills/gsd-path-undo/scripts/loop_run.py +31 -29
  409. package/skills/gsd-path-undo/scripts/path_config.py +5 -5
  410. package/skills/gsd-path-undo/scripts/pipeline_undo.py +218 -30
  411. package/skills/gsd-path-undo/scripts/review_panel.py +1 -1
  412. package/skills/gsd-path-undo/scripts/worktree_paths.py +72 -10
  413. package/skills/path/BUILD.md +7 -1
  414. package/skills/path/DECIDE.md +11 -4
  415. package/skills/path/DEFINE.md +36 -4
  416. package/skills/path/DOCS-AUDIT.md +6 -4
  417. package/skills/path/INSPECT.md +5 -4
  418. package/skills/path/PLAN.md +18 -4
  419. package/skills/path/RESEARCH.md +13 -1
  420. package/skills/path/ROADMAP.md +2 -1
  421. package/skills/path/SHIP.md +33 -11
  422. package/skills/path/SKILL.md +45 -1
  423. package/skills/path/references/build-native.md +63 -15
  424. package/skills/path/references/codebase-mapper.md +2 -1
  425. package/skills/path/references/dispatch.md +13 -0
  426. package/skills/path/references/docs-auditor.md +7 -1
  427. package/skills/path/references/operating-rules.md +214 -0
  428. package/skills/path/references/planner.md +22 -4
  429. package/skills/path/references/reviewer-final.md +20 -2
  430. package/skills/path/references/reviewer-wave.md +18 -5
  431. package/skills/path/references/reviewer.md +3 -1
  432. package/skills/path/references/spec-probes.md +150 -0
  433. package/skills/path/scripts/_common.py +619 -18
  434. package/skills/path/scripts/archive_milestone.py +160 -86
  435. package/skills/path/scripts/bootstrap_repository.py +8 -5
  436. package/skills/path/scripts/build_recovery.py +100 -32
  437. package/skills/path/scripts/build_state.py +143 -24
  438. package/skills/path/scripts/check_docs_audit.py +91 -7
  439. package/skills/path/scripts/check_handoffs.py +662 -50
  440. package/skills/path/scripts/check_task_briefs.py +338 -30
  441. package/skills/path/scripts/check_update.py +2 -2
  442. package/skills/path/scripts/detect_project.py +587 -32
  443. package/skills/path/scripts/discussion_records.py +19 -13
  444. package/skills/path/scripts/discussion_validate.py +152 -50
  445. package/skills/path/scripts/dispatch_driver.py +501 -46
  446. package/skills/path/scripts/git_guard.py +118 -31
  447. package/skills/path/scripts/integration.py +580 -25
  448. package/skills/path/scripts/isolation.py +1438 -57
  449. package/skills/path/scripts/lean_verification.py +99 -19
  450. package/skills/path/scripts/loop_run.py +31 -29
  451. package/skills/path/scripts/members.py +706 -0
  452. package/skills/path/scripts/path_config.py +5 -5
  453. package/skills/path/scripts/pipeline_git.py +124 -34
  454. package/skills/path/scripts/pipeline_state.py +287 -87
  455. package/skills/path/scripts/promote_lookahead.py +1 -1
  456. package/skills/path/scripts/review_panel.py +1 -1
  457. package/skills/path/scripts/state_checkpoint.py +135 -44
  458. package/skills/path/scripts/state_promote.py +2 -0
  459. package/skills/path/scripts/status_runtime.py +58 -10
  460. package/skills/path/scripts/task_context.py +12 -3
  461. package/skills/path/scripts/token_budget.py +12 -8
  462. package/skills/path/scripts/workflow_run.py +107 -30
  463. package/skills/path/scripts/worktree_paths.py +72 -10
  464. package/skills/path/templates/codebase.md +1 -1
  465. package/skills/path/templates/docs-audit.md +6 -2
  466. package/skills/path/templates/final-review.md +16 -4
  467. package/skills/path/templates/gap-review.md +2 -1
  468. package/skills/path/templates/intent.md +30 -0
  469. package/skills/path/templates/patch-findings.md +3 -3
  470. package/skills/path/templates/plan.md +17 -2
  471. package/skills/path/templates/research-handoff.md +14 -3
  472. package/skills/path/templates/state.md +1 -1
  473. package/skills/path/templates/task.md +1 -0
  474. package/skills/path/templates/wave-review.md +16 -4
  475. package/skills/gsd-path/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  476. package/skills/gsd-path/scripts/__pycache__/check_handoffs.cpython-312.pyc +0 -0
  477. package/skills/gsd-path-build/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  478. package/skills/gsd-path-build/scripts/__pycache__/check_handoffs.cpython-312.pyc +0 -0
  479. package/skills/gsd-path-inspect/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  480. package/skills/gsd-path-plan/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  481. package/skills/gsd-path-ship/scripts/__pycache__/_common.cpython-312.pyc +0 -0
package/CHANGELOG.md CHANGED
@@ -3,98 +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
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.
319
+
320
+ ## [1.2.0] - 2026-09-20
321
+
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.
337
+
338
+ ### Changed
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.
79
343
 
80
344
  ### 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
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.
84
348
 
85
- ### Other
86
- - Clarify reviewer ownership; live verification remains pending
87
- - Reject unretired verification worktrees and branches in release evidence
349
+ ## [1.1.0] - 2026-09-18
88
350
 
89
- ## [1.3.1] - 2026-09-22
351
+ ### Added
352
+ - Scoped npm package `@opengsd/gsd-path` with trusted publishing.
353
+ - Release trust evidence validation and the host matrix.
90
354
 
91
355
  ### 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
356
+ - Release workflow and maintainer documentation for npm publication.
97
357
 
98
- ### Fixed
99
- - describe untracked legacy migration in help
100
- - preserve older untracked runtimes during migration
358
+ ## [1.0.0] - 2026-09-15
359
+
360
+ ### Added
361
+ - First public release of the disk-backed GSD Path pipeline.
362
+ - Multi-host installer, skills package, and project contracts.
package/DOCS.md CHANGED
@@ -35,6 +35,7 @@ DOCS.md (here) four journeys in one place
35
35
  | **Upgrading** — new gsd-path version | [UPDATE.md](UPDATE.md) |
36
36
  | **Team** — pin skills in repo | `--local` install; see [Installing](#installing) |
37
37
  | **Shipping broke** — archive commit blocked | [HOOKS.md](HOOKS.md) (expected with hooks) |
38
+ | **Several repos** — one milestone changes them all | [Multi-repo milestones](README.md#multi-repo-milestones) |
38
39
 
39
40
  ---
40
41
 
@@ -92,7 +93,8 @@ node scripts/install.mjs --claude --project "$(pwd)" --hooks
92
93
  ```
93
94
 
94
95
  **Requirements:** Node 18.17+. Project installs also require Python 3.9+ as
95
- `python3` or `python`. **Always** restart the agent session after install.
96
+ `python3`, `python`, or `py -3`. Windows also needs Git for Windows (see the
97
+ README's Windows notes). **Always** restart the agent session after install.
96
98
 
97
99
  **Host flags** are derived from `scripts/skill-resources.json`. Run
98
100
  `node scripts/install.mjs --help` for the current `--<host>` list.
@@ -157,6 +159,9 @@ state or bypasses a gate.
157
159
 
158
160
  ### Gates (what you approve)
159
161
 
162
+ These are the usual checkpoints. For the opt-in quick-lane grant, see
163
+ [pre-approval in the README](README.md#start-your-first-project).
164
+
160
165
  | Phase | You do |
161
166
  | --- | --- |
162
167
  | Define | Answer gaps or review milestone derivation; approve intent playback |
@@ -242,8 +247,10 @@ resolved Git common directory and primary path, so separate clones and
242
247
  primary folders do not share a location.
243
248
 
244
249
  The first allocation pins the workspace location in
245
- `<git-common-dir>/gsd-path/workspaces/<workspace-id>.json`. Later environment
246
- changes do not move it. Existing sibling worktrees remain at their original
250
+ `<git-common-dir>/gsd-path/workspaces/<workspace-id>.json`. Environment
251
+ changes do not move it while a linked worktree remains. When a sidecar is
252
+ retired and no linked worktree remains, Path removes the pin, and the next
253
+ allocation reads `GSD_PATH_WORKTREE_ROOT` again. Existing sibling worktrees remain at their original
247
254
  paths and retain the same recovery and cleanup checks. These folders contain
248
255
  active work and evidence; they are not a disposable cache. Relocation needs
249
256
  a separate migration; do not edit placement records or move folders manually.
@@ -300,7 +307,8 @@ Full tree: [README.md](README.md#handoff-contract).
300
307
  | Project-local skills | `node scripts/install.mjs --update --local` |
301
308
  | From npm | `npx @opengsd/gsd-path@latest --update` |
302
309
  | Guard scripts | `node scripts/install.mjs --hooks-refresh --project PATH` |
303
- | `AGENTS.md` / `WORKFLOW.md` | Manual merge — installer refuses overwrite |
310
+ | `AGENTS.md` | `node scripts/install.mjs --update --project PATH` — replaces only the GSD Path block |
311
+ | `WORKFLOW.md` | Manual merge — installer refuses overwrite |
304
312
  | Health check | `node scripts/install.mjs --doctor [--project PATH]` — read-only; flags missing/stale skills, hook drift, and bad pipeline state |
305
313
 
306
314
  Full guide: **[UPDATE.md](UPDATE.md)**. Router may print a one-line npm update notice.
@@ -321,10 +329,8 @@ Restart the host session. Confirm with `ls ~/.claude/skills/gsd-path` (or your h
321
329
  Yes: `node scripts/install.mjs --cursor` (add other flags as needed).
322
330
 
323
331
  **Will install overwrite my `AGENTS.md`?**
324
- No — if managed project files already exist, a plain install refuses and installs
325
- nothing for that project. Use `--update --project PATH` to refresh skills and the
326
- managed `.gsd-path/` runtime while keeping your contracts; merge project
327
- contract updates manually ([UPDATE.md](UPDATE.md)).
332
+ No. GSD Path adds one marked block and keeps your text outside it byte for
333
+ byte. See [Update project contracts](UPDATE.md#update-project-contracts).
328
334
 
329
335
  **Where is pipeline state?**
330
336
  `.project/` in your repo — not chat history.
@@ -357,7 +363,9 @@ document with a body is brownfield and routes to inspect. A title-only README,
357
363
  GSD Path skill bundles: a `gsd-path*` or `ogsd*` bundle is verified under a
358
364
  supported installer skill root or when it contains `SKILL.md`; a similarly
359
365
  named source directory still counts normally. Those scaffold-only trees stay
360
- greenfield and route to define. Other `.project/` content without STATE.md is
366
+ greenfield and route to define. An ignored, untracked regular `.DS_Store`
367
+ directly in `.project/` does not block setup, even if it appears while
368
+ STATE.md is being created. Other `.project/` content without STATE.md is
361
369
  orphaned and blocks for recovery. An owned state, including the new-GitHub
362
370
  bootstrap state, routes by STATE.md after classification without running the
363
371
  initializer. After a milestone ships, the next one inspects again.
@@ -391,6 +399,14 @@ the supplied package's runtime and its compatible status launcher. Review those
391
399
  configuration changes before committing them. Existing versions remain available
392
400
  for other projects and branches.
393
401
 
402
+ To record where a patched runtime came from, add `--runtime-provenance-source`,
403
+ `--runtime-provenance-patch`, or `--runtime-provenance-note` to
404
+ `--runtime-upgrade`. The values are written to the `provenance` object
405
+ (`source`, `patch_ref`, `note`) in `.gsd-path/runtime.json`. Without a patch
406
+ value, a source root that is a Git checkout records its `HEAD` commit. A later
407
+ upgrade without these flags keeps the object only when the digest is unchanged.
408
+ Provenance is a record only; it does not change the digest or runtime validation.
409
+
394
410
  A new machine needs the selected runtime installed before status and guards can
395
411
  run. `gsd-path --runtime-restore --project /absolute/project --source-root
396
412
  /path/to/matching/package` restores that exact version without changing project
package/FULL.md CHANGED
@@ -31,8 +31,10 @@ writes a fixed artifact under `.project/`; the next phase reads only from disk.
31
31
  You can close your session at any point and a fresh session resumes exactly
32
32
  where you left off.
33
33
 
34
- You are the gate: nothing advances past intent, plan approval, or final review
35
- without your approval.
34
+ You approve intent, plan, and final shipping. For an unattended quick-lane run,
35
+ you can grant intent and plan approval when invoking the router; see
36
+ [pre-approval in the README](README.md#start-your-first-project). Final shipping
37
+ still needs your approval.
36
38
 
37
39
  ### The pipeline
38
40
 
@@ -79,7 +81,10 @@ Use the [router and phase invocation table](README.md#install-summary) for your
79
81
  ### Requirements
80
82
 
81
83
  - **Node 18.17+** for `scripts/install.mjs` (recommended; also the npm `gsd-path` bin)
82
- - **Python 3.9+** required for project installs, project refresh, and project-state
84
+ - **Windows:** runs natively (no WSL). Needs Git for Windows, whose Git Bash runs
85
+ git hooks and task Verify commands, and long paths enabled for deep worktrees.
86
+ - **Python 3.9+** found as `python3`, `python`, or `py -3`; required for project
87
+ installs, project refresh, and project-state
83
88
  doctor checks; optional for global-only Node installs. `scripts/install.py`
84
89
  mirrors global and `--local` install transactions and `--update`; it does not
85
90
  provide the interactive wizard
@@ -101,7 +106,7 @@ node scripts/install.mjs --codex --claude --cursor
101
106
 
102
107
  | Flag | Skills root |
103
108
  | --- | --- |
104
- | `--codex`, `--zed` | `~/.agents/skills` (shared bundle) |
109
+ | `--codex`, `--zed`, `--muse` | `~/.agents/skills` (shared bundle) |
105
110
  | `--claude` | `~/.claude/skills` |
106
111
  | `--grok` | `~/.grok/skills` |
107
112
  | `--opencode` | OpenCode config `skills/` |
@@ -171,7 +176,7 @@ also print a one-line update notice (24h cache, fail-silent).
171
176
  - Validates synchronized package before writing
172
177
  - Uses the [managed-skill backup and collision rules](UPDATE.md#what-auto-updates)
173
178
  - Rolls back **all** selected targets if any one fails
174
- - Codex, Antigravity, and Zed share one local physical root — installed once
179
+ - Codex, Antigravity, Zed, and Muse share one local physical root — installed once
175
180
  with a shared host-aware bundle
176
181
 
177
182
  Restart the host session after install if skills do not appear.
@@ -427,6 +432,7 @@ your skills:
427
432
  | Antigravity | `invoke_subagent` | |
428
433
  | Cursor | `Task` | installed `gsd-path` subagent |
429
434
  | Zed | `spawn_agent` | |
435
+ | Muse Code | `muse.subagent_spawn` | trusted workspace required |
430
436
  | Kiro | subagent facility | |
431
437
  | Kimi | `Agent` | `coder` child type |
432
438
 
@@ -442,6 +448,7 @@ layers. Every child brief names absolute input/output paths and bounded scope.
442
448
  | Skills missing after install | Restart host session; [UPDATE.md](UPDATE.md) |
443
449
  | Router blocked on branch | Check out `STATE.branch` or follow router instructions |
444
450
  | Phase says precondition missing | Run the producing phase it names |
451
+ | Task landing or Verify reports ignored `.project/` state | Fix the matching product ignore rule through an owning task or patch wave (for example, anchor `build/` as `/build/`), then resume the pipeline. For the pre-existing ignored verify ledger exception, see the [build checkpoint](skills/gsd-path-build/SKILL.md). |
445
452
  | Pipeline on unrelated work | Explicit invocation only — [DOCS.md](DOCS.md#faq) |
446
453
  | Contradictory STATE / tasks | Re-invoke router; artifacts outrank chat |
447
454
  | Archive tamper blocked | Expected with hooks — [HOOKS.md](HOOKS.md) |
package/GUIDE.md CHANGED
@@ -11,7 +11,7 @@ DOCS.md hub — install, use, understand, update, FAQ
11
11
  └── README.md reference tables, handoff contract, repo layout
12
12
 
13
13
  WORKFLOW.md agent SOP (copied into your project with --project)
14
- AGENTS.md operating rules (copied into your project)
14
+ AGENTS.md operating rules (marked block in your project; see UPDATE.md)
15
15
  ```
16
16
 
17
17
  | Doc | Read when |