@opengsd/gsd-path 1.3.0 → 1.4.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 (434) hide show
  1. package/AGENTS.md +2 -207
  2. package/CHANGELOG.md +294 -0
  3. package/DOCS.md +19 -10
  4. package/FULL.md +9 -3
  5. package/GUIDE.md +1 -1
  6. package/HOOKS.md +9 -6
  7. package/QUICK.md +4 -1
  8. package/README.md +63 -11
  9. package/RUNTIME.md +1 -1
  10. package/UPDATE.md +61 -12
  11. package/WORKFLOW.md +22 -6
  12. package/package.json +9 -8
  13. package/scripts/_common.py +472 -19
  14. package/scripts/archive_milestone.py +146 -73
  15. package/scripts/bootstrap_repository.py +8 -5
  16. package/scripts/build_recovery.py +4 -1
  17. package/scripts/build_state.py +66 -23
  18. package/scripts/check_docs_audit.py +14 -3
  19. package/scripts/check_handoffs.py +116 -20
  20. package/scripts/check_task_briefs.py +60 -8
  21. package/scripts/check_update.py +2 -2
  22. package/scripts/core_hook_gate.py +10 -1
  23. package/scripts/core_hook_settings.py +11 -4
  24. package/scripts/detect_project.py +345 -15
  25. package/scripts/discussion_records.py +19 -13
  26. package/scripts/discussion_validate.py +66 -21
  27. package/scripts/dispatch_driver.py +111 -26
  28. package/scripts/git_guard.py +116 -29
  29. package/scripts/guard_hook.py +151 -29
  30. package/scripts/install.mjs +55 -39
  31. package/scripts/install.py +564 -41
  32. package/scripts/integration.py +434 -24
  33. package/scripts/isolation.py +1077 -28
  34. package/scripts/lean_verification.py +99 -19
  35. package/scripts/loop_run.py +20 -30
  36. package/scripts/members.py +704 -0
  37. package/scripts/migrate_core.py +2 -2
  38. package/scripts/path_config.py +2 -2
  39. package/scripts/pipeline_diagnose.py +82 -31
  40. package/scripts/pipeline_git.py +61 -22
  41. package/scripts/pipeline_state.py +176 -54
  42. package/scripts/pipeline_undo.py +117 -22
  43. package/scripts/promote_lookahead.py +1 -1
  44. package/scripts/review_panel.py +1 -1
  45. package/scripts/runtime_store.py +49 -11
  46. package/scripts/skill-resources.json +28 -3
  47. package/scripts/state_checkpoint.py +140 -31
  48. package/scripts/state_promote.py +2 -0
  49. package/scripts/status_runtime.py +36 -6
  50. package/scripts/sync_skill_resources.py +8 -7
  51. package/scripts/token_budget.py +12 -8
  52. package/scripts/workflow_run.py +103 -29
  53. package/scripts/worktree_paths.py +18 -8
  54. package/skills/gsd-path/BUILD.md +7 -1
  55. package/skills/gsd-path/DECIDE.md +11 -4
  56. package/skills/gsd-path/DEFINE.md +8 -1
  57. package/skills/gsd-path/DOCS-AUDIT.md +6 -4
  58. package/skills/gsd-path/INSPECT.md +5 -4
  59. package/skills/gsd-path/PLAN.md +7 -1
  60. package/skills/gsd-path/RESEARCH.md +2 -1
  61. package/skills/gsd-path/ROADMAP.md +2 -1
  62. package/skills/gsd-path/SHIP.md +27 -10
  63. package/skills/gsd-path/SKILL.md +45 -1
  64. package/skills/gsd-path/references/build-native.md +47 -14
  65. package/skills/gsd-path/references/codebase-mapper.md +2 -1
  66. package/skills/gsd-path/references/docs-auditor.md +2 -1
  67. package/skills/gsd-path/references/operating-rules.md +214 -0
  68. package/skills/gsd-path/references/planner.md +8 -0
  69. package/skills/gsd-path/references/reviewer-wave.md +3 -1
  70. package/skills/gsd-path/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  71. package/skills/gsd-path/scripts/__pycache__/check_handoffs.cpython-312.pyc +0 -0
  72. package/skills/gsd-path/scripts/_common.py +472 -19
  73. package/skills/gsd-path/scripts/archive_milestone.py +146 -73
  74. package/skills/gsd-path/scripts/bootstrap_repository.py +8 -5
  75. package/skills/gsd-path/scripts/build_recovery.py +4 -1
  76. package/skills/gsd-path/scripts/build_state.py +66 -23
  77. package/skills/gsd-path/scripts/check_docs_audit.py +14 -3
  78. package/skills/gsd-path/scripts/check_handoffs.py +116 -20
  79. package/skills/gsd-path/scripts/check_task_briefs.py +60 -8
  80. package/skills/gsd-path/scripts/check_update.py +2 -2
  81. package/skills/gsd-path/scripts/detect_project.py +345 -15
  82. package/skills/gsd-path/scripts/discussion_records.py +19 -13
  83. package/skills/gsd-path/scripts/discussion_validate.py +66 -21
  84. package/skills/gsd-path/scripts/dispatch_driver.py +111 -26
  85. package/skills/gsd-path/scripts/git_guard.py +116 -29
  86. package/skills/gsd-path/scripts/integration.py +434 -24
  87. package/skills/gsd-path/scripts/isolation.py +1077 -28
  88. package/skills/gsd-path/scripts/lean_verification.py +99 -19
  89. package/skills/gsd-path/scripts/loop_run.py +20 -30
  90. package/skills/gsd-path/scripts/members.py +704 -0
  91. package/skills/gsd-path/scripts/path_config.py +2 -2
  92. package/skills/gsd-path/scripts/pipeline_git.py +61 -22
  93. package/skills/gsd-path/scripts/pipeline_state.py +176 -54
  94. package/skills/gsd-path/scripts/promote_lookahead.py +1 -1
  95. package/skills/gsd-path/scripts/review_panel.py +1 -1
  96. package/skills/gsd-path/scripts/state_checkpoint.py +140 -31
  97. package/skills/gsd-path/scripts/state_promote.py +2 -0
  98. package/skills/gsd-path/scripts/status_runtime.py +36 -6
  99. package/skills/gsd-path/scripts/token_budget.py +12 -8
  100. package/skills/gsd-path/scripts/workflow_run.py +103 -29
  101. package/skills/gsd-path/scripts/worktree_paths.py +18 -8
  102. package/skills/gsd-path/templates/codebase.md +1 -1
  103. package/skills/gsd-path/templates/docs-audit.md +1 -1
  104. package/skills/gsd-path/templates/final-review.md +5 -2
  105. package/skills/gsd-path/templates/gap-review.md +2 -1
  106. package/skills/gsd-path/templates/task.md +1 -0
  107. package/skills/gsd-path/templates/wave-review.md +3 -1
  108. package/skills/gsd-path-build/SKILL.md +7 -1
  109. package/skills/gsd-path-build/references/build-native.md +47 -14
  110. package/skills/gsd-path-build/references/operating-rules.md +214 -0
  111. package/skills/gsd-path-build/references/reviewer-wave.md +3 -1
  112. package/skills/gsd-path-build/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  113. package/skills/gsd-path-build/scripts/__pycache__/check_handoffs.cpython-312.pyc +0 -0
  114. package/skills/gsd-path-build/scripts/_common.py +472 -19
  115. package/skills/gsd-path-build/scripts/archive_milestone.py +146 -73
  116. package/skills/gsd-path-build/scripts/build_recovery.py +4 -1
  117. package/skills/gsd-path-build/scripts/build_state.py +66 -23
  118. package/skills/gsd-path-build/scripts/check_handoffs.py +116 -20
  119. package/skills/gsd-path-build/scripts/check_task_briefs.py +60 -8
  120. package/skills/gsd-path-build/scripts/detect_project.py +345 -15
  121. package/skills/gsd-path-build/scripts/discussion_records.py +19 -13
  122. package/skills/gsd-path-build/scripts/discussion_validate.py +66 -21
  123. package/skills/gsd-path-build/scripts/dispatch_driver.py +111 -26
  124. package/skills/gsd-path-build/scripts/integration.py +434 -24
  125. package/skills/gsd-path-build/scripts/isolation.py +1077 -28
  126. package/skills/gsd-path-build/scripts/loop_run.py +20 -30
  127. package/skills/gsd-path-build/scripts/members.py +704 -0
  128. package/skills/gsd-path-build/scripts/path_config.py +2 -2
  129. package/skills/gsd-path-build/scripts/pipeline_git.py +61 -22
  130. package/skills/gsd-path-build/scripts/pipeline_state.py +176 -54
  131. package/skills/gsd-path-build/scripts/promote_lookahead.py +1 -1
  132. package/skills/gsd-path-build/scripts/review_panel.py +1 -1
  133. package/skills/gsd-path-build/scripts/state_checkpoint.py +140 -31
  134. package/skills/gsd-path-build/scripts/state_promote.py +2 -0
  135. package/skills/gsd-path-build/scripts/token_budget.py +12 -8
  136. package/skills/gsd-path-build/scripts/workflow_run.py +103 -29
  137. package/skills/gsd-path-build/scripts/worktree_paths.py +18 -8
  138. package/skills/gsd-path-build/templates/task.md +1 -0
  139. package/skills/gsd-path-build/templates/wave-review.md +3 -1
  140. package/skills/gsd-path-decide/SKILL.md +11 -4
  141. package/skills/gsd-path-decide/references/operating-rules.md +214 -0
  142. package/skills/gsd-path-decide/scripts/_common.py +472 -19
  143. package/skills/gsd-path-decide/scripts/archive_milestone.py +146 -73
  144. package/skills/gsd-path-decide/scripts/build_recovery.py +4 -1
  145. package/skills/gsd-path-decide/scripts/check_handoffs.py +116 -20
  146. package/skills/gsd-path-decide/scripts/check_task_briefs.py +60 -8
  147. package/skills/gsd-path-decide/scripts/detect_project.py +345 -15
  148. package/skills/gsd-path-decide/scripts/discussion_records.py +19 -13
  149. package/skills/gsd-path-decide/scripts/discussion_validate.py +66 -21
  150. package/skills/gsd-path-decide/scripts/integration.py +434 -24
  151. package/skills/gsd-path-decide/scripts/isolation.py +1077 -28
  152. package/skills/gsd-path-decide/scripts/loop_run.py +20 -30
  153. package/skills/gsd-path-decide/scripts/members.py +704 -0
  154. package/skills/gsd-path-decide/scripts/path_config.py +2 -2
  155. package/skills/gsd-path-decide/scripts/pipeline_git.py +61 -22
  156. package/skills/gsd-path-decide/scripts/pipeline_state.py +176 -54
  157. package/skills/gsd-path-decide/scripts/promote_lookahead.py +1 -1
  158. package/skills/gsd-path-decide/scripts/review_panel.py +1 -1
  159. package/skills/gsd-path-decide/scripts/state_checkpoint.py +140 -31
  160. package/skills/gsd-path-decide/scripts/state_promote.py +2 -0
  161. package/skills/gsd-path-decide/scripts/worktree_paths.py +18 -8
  162. package/skills/gsd-path-define/SKILL.md +8 -1
  163. package/skills/gsd-path-define/references/operating-rules.md +214 -0
  164. package/skills/gsd-path-define/scripts/_common.py +472 -19
  165. package/skills/gsd-path-define/scripts/archive_milestone.py +146 -73
  166. package/skills/gsd-path-define/scripts/build_recovery.py +4 -1
  167. package/skills/gsd-path-define/scripts/check_handoffs.py +116 -20
  168. package/skills/gsd-path-define/scripts/check_task_briefs.py +60 -8
  169. package/skills/gsd-path-define/scripts/detect_project.py +345 -15
  170. package/skills/gsd-path-define/scripts/discussion_records.py +19 -13
  171. package/skills/gsd-path-define/scripts/discussion_validate.py +66 -21
  172. package/skills/gsd-path-define/scripts/integration.py +434 -24
  173. package/skills/gsd-path-define/scripts/isolation.py +1077 -28
  174. package/skills/gsd-path-define/scripts/loop_run.py +20 -30
  175. package/skills/gsd-path-define/scripts/members.py +704 -0
  176. package/skills/gsd-path-define/scripts/path_config.py +2 -2
  177. package/skills/gsd-path-define/scripts/pipeline_git.py +61 -22
  178. package/skills/gsd-path-define/scripts/pipeline_state.py +176 -54
  179. package/skills/gsd-path-define/scripts/promote_lookahead.py +1 -1
  180. package/skills/gsd-path-define/scripts/review_panel.py +1 -1
  181. package/skills/gsd-path-define/scripts/state_checkpoint.py +140 -31
  182. package/skills/gsd-path-define/scripts/state_promote.py +2 -0
  183. package/skills/gsd-path-define/scripts/worktree_paths.py +18 -8
  184. package/skills/gsd-path-discuss/SKILL.md +2 -1
  185. package/skills/gsd-path-discuss/references/operating-rules.md +214 -0
  186. package/skills/gsd-path-discuss/scripts/_common.py +472 -19
  187. package/skills/gsd-path-discuss/scripts/discussion_records.py +19 -13
  188. package/skills/gsd-path-discuss/scripts/loop_run.py +20 -30
  189. package/skills/gsd-path-discuss/scripts/path_config.py +2 -2
  190. package/skills/gsd-path-discuss/scripts/review_panel.py +1 -1
  191. package/skills/gsd-path-discuss/scripts/worktree_paths.py +18 -8
  192. package/skills/gsd-path-docs-audit/SKILL.md +6 -4
  193. package/skills/gsd-path-docs-audit/references/docs-auditor.md +2 -1
  194. package/skills/gsd-path-docs-audit/references/operating-rules.md +214 -0
  195. package/skills/gsd-path-docs-audit/scripts/_common.py +472 -19
  196. package/skills/gsd-path-docs-audit/scripts/archive_milestone.py +146 -73
  197. package/skills/gsd-path-docs-audit/scripts/build_recovery.py +4 -1
  198. package/skills/gsd-path-docs-audit/scripts/check_docs_audit.py +14 -3
  199. package/skills/gsd-path-docs-audit/scripts/check_handoffs.py +116 -20
  200. package/skills/gsd-path-docs-audit/scripts/check_task_briefs.py +60 -8
  201. package/skills/gsd-path-docs-audit/scripts/detect_project.py +345 -15
  202. package/skills/gsd-path-docs-audit/scripts/discussion_records.py +19 -13
  203. package/skills/gsd-path-docs-audit/scripts/discussion_validate.py +66 -21
  204. package/skills/gsd-path-docs-audit/scripts/integration.py +434 -24
  205. package/skills/gsd-path-docs-audit/scripts/isolation.py +1077 -28
  206. package/skills/gsd-path-docs-audit/scripts/loop_run.py +20 -30
  207. package/skills/gsd-path-docs-audit/scripts/members.py +704 -0
  208. package/skills/gsd-path-docs-audit/scripts/path_config.py +2 -2
  209. package/skills/gsd-path-docs-audit/scripts/pipeline_git.py +61 -22
  210. package/skills/gsd-path-docs-audit/scripts/pipeline_state.py +176 -54
  211. package/skills/gsd-path-docs-audit/scripts/promote_lookahead.py +1 -1
  212. package/skills/gsd-path-docs-audit/scripts/review_panel.py +1 -1
  213. package/skills/gsd-path-docs-audit/scripts/state_checkpoint.py +140 -31
  214. package/skills/gsd-path-docs-audit/scripts/state_promote.py +2 -0
  215. package/skills/gsd-path-docs-audit/scripts/worktree_paths.py +18 -8
  216. package/skills/gsd-path-docs-audit/templates/docs-audit.md +1 -1
  217. package/skills/gsd-path-forensics/SKILL.md +2 -1
  218. package/skills/gsd-path-forensics/references/operating-rules.md +214 -0
  219. package/skills/gsd-path-forensics/scripts/_common.py +472 -19
  220. package/skills/gsd-path-forensics/scripts/discussion_records.py +19 -13
  221. package/skills/gsd-path-forensics/scripts/loop_run.py +20 -30
  222. package/skills/gsd-path-forensics/scripts/path_config.py +2 -2
  223. package/skills/gsd-path-forensics/scripts/pipeline_diagnose.py +82 -31
  224. package/skills/gsd-path-forensics/scripts/pipeline_undo.py +117 -22
  225. package/skills/gsd-path-forensics/scripts/review_panel.py +1 -1
  226. package/skills/gsd-path-forensics/scripts/worktree_paths.py +18 -8
  227. package/skills/gsd-path-inspect/SKILL.md +5 -4
  228. package/skills/gsd-path-inspect/references/codebase-mapper.md +2 -1
  229. package/skills/gsd-path-inspect/references/docs-auditor.md +2 -1
  230. package/skills/gsd-path-inspect/references/operating-rules.md +214 -0
  231. package/skills/gsd-path-inspect/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  232. package/skills/gsd-path-inspect/scripts/_common.py +472 -19
  233. package/skills/gsd-path-inspect/scripts/archive_milestone.py +146 -73
  234. package/skills/gsd-path-inspect/scripts/build_recovery.py +4 -1
  235. package/skills/gsd-path-inspect/scripts/check_docs_audit.py +14 -3
  236. package/skills/gsd-path-inspect/scripts/check_handoffs.py +116 -20
  237. package/skills/gsd-path-inspect/scripts/check_task_briefs.py +60 -8
  238. package/skills/gsd-path-inspect/scripts/detect_project.py +345 -15
  239. package/skills/gsd-path-inspect/scripts/discussion_records.py +19 -13
  240. package/skills/gsd-path-inspect/scripts/discussion_validate.py +66 -21
  241. package/skills/gsd-path-inspect/scripts/integration.py +434 -24
  242. package/skills/gsd-path-inspect/scripts/isolation.py +1077 -28
  243. package/skills/gsd-path-inspect/scripts/loop_run.py +20 -30
  244. package/skills/gsd-path-inspect/scripts/members.py +704 -0
  245. package/skills/gsd-path-inspect/scripts/path_config.py +2 -2
  246. package/skills/gsd-path-inspect/scripts/pipeline_git.py +61 -22
  247. package/skills/gsd-path-inspect/scripts/pipeline_state.py +176 -54
  248. package/skills/gsd-path-inspect/scripts/promote_lookahead.py +1 -1
  249. package/skills/gsd-path-inspect/scripts/review_panel.py +1 -1
  250. package/skills/gsd-path-inspect/scripts/state_checkpoint.py +140 -31
  251. package/skills/gsd-path-inspect/scripts/state_promote.py +2 -0
  252. package/skills/gsd-path-inspect/scripts/workflow_run.py +103 -29
  253. package/skills/gsd-path-inspect/scripts/worktree_paths.py +18 -8
  254. package/skills/gsd-path-inspect/templates/codebase.md +1 -1
  255. package/skills/gsd-path-inspect/templates/docs-audit.md +1 -1
  256. package/skills/gsd-path-loop/SKILL.md +2 -1
  257. package/skills/gsd-path-loop/references/operating-rules.md +214 -0
  258. package/skills/gsd-path-loop/scripts/_common.py +472 -19
  259. package/skills/gsd-path-loop/scripts/discussion_records.py +19 -13
  260. package/skills/gsd-path-loop/scripts/loop_run.py +20 -30
  261. package/skills/gsd-path-loop/scripts/path_config.py +2 -2
  262. package/skills/gsd-path-loop/scripts/review_panel.py +1 -1
  263. package/skills/gsd-path-loop/scripts/worktree_paths.py +18 -8
  264. package/skills/gsd-path-migrate/SKILL.md +2 -1
  265. package/skills/gsd-path-migrate/references/operating-rules.md +214 -0
  266. package/skills/gsd-path-migrate/scripts/_common.py +472 -19
  267. package/skills/gsd-path-migrate/scripts/core_hook_gate.py +10 -1
  268. package/skills/gsd-path-migrate/scripts/core_hook_settings.py +11 -4
  269. package/skills/gsd-path-migrate/scripts/discussion_records.py +19 -13
  270. package/skills/gsd-path-migrate/scripts/loop_run.py +20 -30
  271. package/skills/gsd-path-migrate/scripts/migrate_core.py +2 -2
  272. package/skills/gsd-path-migrate/scripts/path_config.py +2 -2
  273. package/skills/gsd-path-migrate/scripts/review_panel.py +1 -1
  274. package/skills/gsd-path-plan/SKILL.md +7 -1
  275. package/skills/gsd-path-plan/references/operating-rules.md +214 -0
  276. package/skills/gsd-path-plan/references/planner.md +8 -0
  277. package/skills/gsd-path-plan/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  278. package/skills/gsd-path-plan/scripts/_common.py +472 -19
  279. package/skills/gsd-path-plan/scripts/archive_milestone.py +146 -73
  280. package/skills/gsd-path-plan/scripts/build_recovery.py +4 -1
  281. package/skills/gsd-path-plan/scripts/check_handoffs.py +116 -20
  282. package/skills/gsd-path-plan/scripts/check_task_briefs.py +60 -8
  283. package/skills/gsd-path-plan/scripts/detect_project.py +345 -15
  284. package/skills/gsd-path-plan/scripts/discussion_records.py +19 -13
  285. package/skills/gsd-path-plan/scripts/discussion_validate.py +66 -21
  286. package/skills/gsd-path-plan/scripts/integration.py +434 -24
  287. package/skills/gsd-path-plan/scripts/isolation.py +1077 -28
  288. package/skills/gsd-path-plan/scripts/loop_run.py +20 -30
  289. package/skills/gsd-path-plan/scripts/members.py +704 -0
  290. package/skills/gsd-path-plan/scripts/path_config.py +2 -2
  291. package/skills/gsd-path-plan/scripts/pipeline_git.py +61 -22
  292. package/skills/gsd-path-plan/scripts/pipeline_state.py +176 -54
  293. package/skills/gsd-path-plan/scripts/promote_lookahead.py +1 -1
  294. package/skills/gsd-path-plan/scripts/review_panel.py +1 -1
  295. package/skills/gsd-path-plan/scripts/state_checkpoint.py +140 -31
  296. package/skills/gsd-path-plan/scripts/state_promote.py +2 -0
  297. package/skills/gsd-path-plan/scripts/workflow_run.py +103 -29
  298. package/skills/gsd-path-plan/scripts/worktree_paths.py +18 -8
  299. package/skills/gsd-path-plan/templates/task.md +1 -0
  300. package/skills/gsd-path-research/SKILL.md +2 -1
  301. package/skills/gsd-path-research/references/operating-rules.md +214 -0
  302. package/skills/gsd-path-research/scripts/_common.py +472 -19
  303. package/skills/gsd-path-research/scripts/archive_milestone.py +146 -73
  304. package/skills/gsd-path-research/scripts/build_recovery.py +4 -1
  305. package/skills/gsd-path-research/scripts/check_handoffs.py +116 -20
  306. package/skills/gsd-path-research/scripts/check_task_briefs.py +60 -8
  307. package/skills/gsd-path-research/scripts/detect_project.py +345 -15
  308. package/skills/gsd-path-research/scripts/discussion_records.py +19 -13
  309. package/skills/gsd-path-research/scripts/discussion_validate.py +66 -21
  310. package/skills/gsd-path-research/scripts/integration.py +434 -24
  311. package/skills/gsd-path-research/scripts/isolation.py +1077 -28
  312. package/skills/gsd-path-research/scripts/loop_run.py +20 -30
  313. package/skills/gsd-path-research/scripts/members.py +704 -0
  314. package/skills/gsd-path-research/scripts/path_config.py +2 -2
  315. package/skills/gsd-path-research/scripts/pipeline_git.py +61 -22
  316. package/skills/gsd-path-research/scripts/pipeline_state.py +176 -54
  317. package/skills/gsd-path-research/scripts/promote_lookahead.py +1 -1
  318. package/skills/gsd-path-research/scripts/review_panel.py +1 -1
  319. package/skills/gsd-path-research/scripts/state_checkpoint.py +140 -31
  320. package/skills/gsd-path-research/scripts/state_promote.py +2 -0
  321. package/skills/gsd-path-research/scripts/worktree_paths.py +18 -8
  322. package/skills/gsd-path-roadmap/SKILL.md +2 -1
  323. package/skills/gsd-path-roadmap/references/operating-rules.md +214 -0
  324. package/skills/gsd-path-roadmap/scripts/_common.py +472 -19
  325. package/skills/gsd-path-roadmap/scripts/archive_milestone.py +146 -73
  326. package/skills/gsd-path-roadmap/scripts/build_recovery.py +4 -1
  327. package/skills/gsd-path-roadmap/scripts/check_handoffs.py +116 -20
  328. package/skills/gsd-path-roadmap/scripts/check_task_briefs.py +60 -8
  329. package/skills/gsd-path-roadmap/scripts/detect_project.py +345 -15
  330. package/skills/gsd-path-roadmap/scripts/discussion_records.py +19 -13
  331. package/skills/gsd-path-roadmap/scripts/discussion_validate.py +66 -21
  332. package/skills/gsd-path-roadmap/scripts/integration.py +434 -24
  333. package/skills/gsd-path-roadmap/scripts/isolation.py +1077 -28
  334. package/skills/gsd-path-roadmap/scripts/loop_run.py +20 -30
  335. package/skills/gsd-path-roadmap/scripts/members.py +704 -0
  336. package/skills/gsd-path-roadmap/scripts/path_config.py +2 -2
  337. package/skills/gsd-path-roadmap/scripts/pipeline_git.py +61 -22
  338. package/skills/gsd-path-roadmap/scripts/pipeline_state.py +176 -54
  339. package/skills/gsd-path-roadmap/scripts/promote_lookahead.py +1 -1
  340. package/skills/gsd-path-roadmap/scripts/review_panel.py +1 -1
  341. package/skills/gsd-path-roadmap/scripts/state_checkpoint.py +140 -31
  342. package/skills/gsd-path-roadmap/scripts/state_promote.py +2 -0
  343. package/skills/gsd-path-roadmap/scripts/worktree_paths.py +18 -8
  344. package/skills/gsd-path-ship/SKILL.md +27 -10
  345. package/skills/gsd-path-ship/references/operating-rules.md +214 -0
  346. package/skills/gsd-path-ship/references/reviewer-wave.md +3 -1
  347. package/skills/gsd-path-ship/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  348. package/skills/gsd-path-ship/scripts/_common.py +472 -19
  349. package/skills/gsd-path-ship/scripts/archive_milestone.py +146 -73
  350. package/skills/gsd-path-ship/scripts/build_recovery.py +4 -1
  351. package/skills/gsd-path-ship/scripts/build_state.py +66 -23
  352. package/skills/gsd-path-ship/scripts/check_handoffs.py +116 -20
  353. package/skills/gsd-path-ship/scripts/check_task_briefs.py +60 -8
  354. package/skills/gsd-path-ship/scripts/detect_project.py +345 -15
  355. package/skills/gsd-path-ship/scripts/discussion_records.py +19 -13
  356. package/skills/gsd-path-ship/scripts/discussion_validate.py +66 -21
  357. package/skills/gsd-path-ship/scripts/integration.py +434 -24
  358. package/skills/gsd-path-ship/scripts/isolation.py +1077 -28
  359. package/skills/gsd-path-ship/scripts/lean_verification.py +99 -19
  360. package/skills/gsd-path-ship/scripts/loop_run.py +20 -30
  361. package/skills/gsd-path-ship/scripts/members.py +704 -0
  362. package/skills/gsd-path-ship/scripts/path_config.py +2 -2
  363. package/skills/gsd-path-ship/scripts/pipeline_git.py +61 -22
  364. package/skills/gsd-path-ship/scripts/pipeline_state.py +176 -54
  365. package/skills/gsd-path-ship/scripts/promote_lookahead.py +1 -1
  366. package/skills/gsd-path-ship/scripts/review_panel.py +1 -1
  367. package/skills/gsd-path-ship/scripts/state_checkpoint.py +140 -31
  368. package/skills/gsd-path-ship/scripts/state_promote.py +2 -0
  369. package/skills/gsd-path-ship/scripts/workflow_run.py +103 -29
  370. package/skills/gsd-path-ship/scripts/worktree_paths.py +18 -8
  371. package/skills/gsd-path-ship/templates/final-review.md +5 -2
  372. package/skills/gsd-path-ship/templates/gap-review.md +2 -1
  373. package/skills/gsd-path-ship/templates/wave-review.md +3 -1
  374. package/skills/gsd-path-undo/SKILL.md +2 -1
  375. package/skills/gsd-path-undo/references/operating-rules.md +214 -0
  376. package/skills/gsd-path-undo/scripts/_common.py +472 -19
  377. package/skills/gsd-path-undo/scripts/discussion_records.py +19 -13
  378. package/skills/gsd-path-undo/scripts/loop_run.py +20 -30
  379. package/skills/gsd-path-undo/scripts/path_config.py +2 -2
  380. package/skills/gsd-path-undo/scripts/pipeline_undo.py +117 -22
  381. package/skills/gsd-path-undo/scripts/review_panel.py +1 -1
  382. package/skills/gsd-path-undo/scripts/worktree_paths.py +18 -8
  383. package/skills/path/BUILD.md +7 -1
  384. package/skills/path/DECIDE.md +11 -4
  385. package/skills/path/DEFINE.md +8 -1
  386. package/skills/path/DOCS-AUDIT.md +6 -4
  387. package/skills/path/INSPECT.md +5 -4
  388. package/skills/path/PLAN.md +7 -1
  389. package/skills/path/RESEARCH.md +2 -1
  390. package/skills/path/ROADMAP.md +2 -1
  391. package/skills/path/SHIP.md +27 -10
  392. package/skills/path/SKILL.md +45 -1
  393. package/skills/path/references/build-native.md +47 -14
  394. package/skills/path/references/codebase-mapper.md +2 -1
  395. package/skills/path/references/docs-auditor.md +2 -1
  396. package/skills/path/references/operating-rules.md +214 -0
  397. package/skills/path/references/planner.md +8 -0
  398. package/skills/path/references/reviewer-wave.md +3 -1
  399. package/skills/path/scripts/_common.py +472 -19
  400. package/skills/path/scripts/archive_milestone.py +146 -73
  401. package/skills/path/scripts/bootstrap_repository.py +8 -5
  402. package/skills/path/scripts/build_recovery.py +4 -1
  403. package/skills/path/scripts/build_state.py +66 -23
  404. package/skills/path/scripts/check_docs_audit.py +14 -3
  405. package/skills/path/scripts/check_handoffs.py +116 -20
  406. package/skills/path/scripts/check_task_briefs.py +60 -8
  407. package/skills/path/scripts/check_update.py +2 -2
  408. package/skills/path/scripts/detect_project.py +345 -15
  409. package/skills/path/scripts/discussion_records.py +19 -13
  410. package/skills/path/scripts/discussion_validate.py +66 -21
  411. package/skills/path/scripts/dispatch_driver.py +111 -26
  412. package/skills/path/scripts/git_guard.py +116 -29
  413. package/skills/path/scripts/integration.py +434 -24
  414. package/skills/path/scripts/isolation.py +1077 -28
  415. package/skills/path/scripts/lean_verification.py +99 -19
  416. package/skills/path/scripts/loop_run.py +20 -30
  417. package/skills/path/scripts/members.py +704 -0
  418. package/skills/path/scripts/path_config.py +2 -2
  419. package/skills/path/scripts/pipeline_git.py +61 -22
  420. package/skills/path/scripts/pipeline_state.py +176 -54
  421. package/skills/path/scripts/promote_lookahead.py +1 -1
  422. package/skills/path/scripts/review_panel.py +1 -1
  423. package/skills/path/scripts/state_checkpoint.py +140 -31
  424. package/skills/path/scripts/state_promote.py +2 -0
  425. package/skills/path/scripts/status_runtime.py +36 -6
  426. package/skills/path/scripts/token_budget.py +12 -8
  427. package/skills/path/scripts/workflow_run.py +103 -29
  428. package/skills/path/scripts/worktree_paths.py +18 -8
  429. package/skills/path/templates/codebase.md +1 -1
  430. package/skills/path/templates/docs-audit.md +1 -1
  431. package/skills/path/templates/final-review.md +5 -2
  432. package/skills/path/templates/gap-review.md +2 -1
  433. package/skills/path/templates/task.md +1 -0
  434. package/skills/path/templates/wave-review.md +3 -1
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 |
package/HOOKS.md CHANGED
@@ -42,7 +42,8 @@ node scripts/install.mjs --claude --project /path/to/repo --hooks
42
42
  ```
43
43
 
44
44
  For a project that already has `AGENTS.md` and `WORKFLOW.md`, initialize only
45
- the guards and keep those contracts unchanged:
45
+ the guards and keep those contracts unchanged (use `--update --project` to
46
+ refresh the `AGENTS.md` block):
46
47
 
47
48
  ```bash
48
49
  npx @opengsd/gsd-path --hooks-init --claude --project /path/to/repo
@@ -86,11 +87,13 @@ manual activation is complete, Codex's guaranteed manifest tier is `git-only`;
86
87
  changing the hook requires review again.
87
88
 
88
89
  **Windows / interpreter caveat:** hooks and native host settings invoke a
89
- Python interpreter that the installer probes at install time — `python3` first,
90
- then `python` (plain `python3` usually does not exist on Windows). If neither
91
- runs, hook installation stops before writing instead of pinning a missing
92
- interpreter. The `sh` hook scripts themselves need a POSIX shell (Git for
93
- Windows provides one).
90
+ Python interpreter that the installer probes at install time: `python3` first,
91
+ then `python`, then the `py -3` launcher (plain `python3` usually does not
92
+ exist on Windows). If none runs, hook installation stops before writing
93
+ instead of pinning a missing interpreter. The `sh` hook scripts themselves need
94
+ a POSIX shell, which Git for Windows provides. Claude Code runs Windows hook
95
+ commands in Git Bash, so wrapped Core hooks are bash-quoted and their original
96
+ command runs through Git Bash, not cmd.exe.
94
97
 
95
98
  ### Updating after package upgrade
96
99
 
package/QUICK.md CHANGED
@@ -22,7 +22,7 @@ Cursor, Zed, Kiro, Kimi Code.
22
22
 
23
23
  ```text
24
24
  [ ] 1. Install skills (step 1)
25
- [ ] 2. Install project rules in your repo (step 2) — skip if repo already has AGENTS.md
25
+ [ ] 2. Install project rules in your repo (step 2) — an existing AGENTS.md keeps its text
26
26
  [ ] 3. Restart agent session
27
27
  [ ] 4. Open repo in agent; invoke router (step 3)
28
28
  [ ] 5. Approve gates as they appear (step 4)
@@ -105,6 +105,9 @@ Codex invokes it as `$gsd-path-discuss`.
105
105
  | Build | Escalations only |
106
106
  | Ship | Approve patch waves if blocked; approve archive and ship when green |
107
107
 
108
+ For unattended quick-lane runs, see
109
+ [pre-approval in the README](README.md#start-your-first-project).
110
+
108
111
  ---
109
112
 
110
113
  ## 5. Resume
package/README.md CHANGED
@@ -16,14 +16,14 @@ Support means the installer and dispatch contract exist. See the
16
16
  proof and each host's guard tier.
17
17
 
18
18
  <!-- release-docs -->
19
- **Latest npm release:** [@opengsd/gsd-path@1.3.0](https://www.npmjs.com/package/@opengsd/gsd-path/v/1.3.0) — [release notes](CHANGELOG.md#130---2026-09-21)
19
+ **Latest npm release:** [@opengsd/gsd-path@1.4.0](https://www.npmjs.com/package/@opengsd/gsd-path/v/1.4.0) — [release notes](CHANGELOG.md#140---2026-09-30)
20
20
 
21
21
  **Recent highlights**
22
- - migrate legacy runtimes during upgrades
23
- - validate installer changes without live host reruns
24
- - preserve closed review cycles in host recovery
25
- - clarify owner gates and accept serial task release evidence
26
- - Clarify receipt reuse and consolidate release policy guidance
22
+ - key verify ledger rows by repo and fail closed on member drift (S3d)
23
+ - guard coders in member sidecars with coordinator host hooks (S3c3b2)
24
+ - dispatch and land member tasks in build rounds (S3c3b1)
25
+ - activate member tasks with a live copy in the member sidecar (S3c3a)
26
+ - prove landed member tasks from record and member landing (S3c2b)
27
27
 
28
28
  <!-- /release-docs -->
29
29
 
@@ -77,6 +77,21 @@ published release.
77
77
  Requires **Node.js 18.17+** for the npm installer and **Python 3.9+** for
78
78
  project contracts and pipeline helpers. Install and sign in to a supported
79
79
  coding-agent host separately; GSD Path installs its skills, not the host itself.
80
+
81
+ **Windows** runs natively; WSL is not required. Install
82
+ [Git for Windows](https://git-scm.com/download/win): git hooks and task Verify
83
+ commands run in its Git Bash, never the System32 WSL launcher (`GSD_PATH_BASH`
84
+ overrides the path). Install a real Python from python.org or
85
+ `winget install Python.Python.3.12`; the Microsoft Store `python` alias stub
86
+ does not count. The installer accepts `python3`, `python`, or the `py -3`
87
+ launcher. For deep managed-worktree paths, turn on long paths
88
+ (`git config --global core.longpaths true` and Windows' `LongPathsEnabled`);
89
+ `--doctor` warns about both. Git for Windows defaults to
90
+ `core.autocrlf=true`, so project installs add a managed
91
+ `/.project/** text eol=lf` rule to the repository's local `.git/info/attributes`
92
+ (never committed; delete the `# gsd-path:begin` block to remove it). That keeps
93
+ pipeline state LF in every worktree while product files follow your setting.
94
+
80
95
  The public npm package is **[@opengsd/gsd-path](https://www.npmjs.com/package/@opengsd/gsd-path)**.
81
96
 
82
97
  ```bash
@@ -98,7 +113,9 @@ npx @opengsd/gsd-path@latest --update --project /path/to/your-repo
98
113
  Use host flags such as `--claude --codex` instead of `--all` to select hosts.
99
114
  For project-local skills, run from your project directory and add `--local`
100
115
  to install and update commands. `--project PATH` selects where contracts are
101
- written; it does not change the directory used by `--local`. Run
116
+ written; it does not change the directory used by `--local`. If the repo
117
+ already has an `AGENTS.md`, the install adds a marked GSD Path block and keeps
118
+ your text; see [project contracts](UPDATE.md#update-project-contracts). Run
102
119
  `npx @opengsd/gsd-path@latest --help` for all options. After installing, invoke
103
120
  `$path` in Codex or `/path` on slash-command hosts to start the pipeline.
104
121
  See [Install (summary)](#install-summary) for the host list and source-checkout commands.
@@ -116,6 +133,12 @@ contain newer changes.
116
133
  4. Resume later from the same folder with the router. Use `$path status`
117
134
  (Codex) or `/path status` to inspect progress without advancing.
118
135
 
136
+ For an unattended quick-lane run, invoke `$gsd-path --pre-approve intent,plan`
137
+ in Codex or `/gsd-path --pre-approve intent,plan` on slash-command hosts before
138
+ milestone intent approval. This grants those two gates for one milestone when
139
+ their checks pass. Required answers, failed checks, and other approval gates
140
+ still pause for you. Shipping always needs manual approval.
141
+
119
142
  For a missing skill or an install problem, run:
120
143
 
121
144
  ```bash
@@ -158,8 +181,8 @@ daemon configuration.
158
181
 
159
182
  ![Project dashboard showing the history viewer link, milestone progress, expandable evidence, and usage with sample data](docs/images/dashboard-project.png)
160
183
 
161
- *Dashboard screenshots captured from the current source on September 19, 2026,
162
- using the repository's sample projects.*
184
+ *Dashboard screenshots captured on September 19, 2026, using the repository's
185
+ sample projects; the current project folder layout may differ.*
163
186
 
164
187
  Open **History & files** to browse project files and archived milestones,
165
188
  preview Markdown, or read a file at a selected Git commit. Relative document
@@ -186,8 +209,8 @@ menu-bar icon to open the dashboard directly.
186
209
 
187
210
  <img src="docs/images/macos-menu-bar.png" alt="OpenGSD Path native macOS panel with sample projects and its bottom toolbar" width="400">
188
211
 
189
- *Screenshots show the current UI with sample project data. The native panel is
190
- captured in its preview window.*
212
+ *The native panel screenshot uses sample project data and was captured in its
213
+ preview window; the current folder layout may differ.*
191
214
 
192
215
  ### Install the monitor
193
216
 
@@ -362,6 +385,35 @@ default checkout, `gsd-path/M001` branch, and sibling linked worktree. A
362
385
  journaled helper performs the approved creation and safely resumes a matching
363
386
  partial remote/clone/worktree transaction; the default checkout stays clean.
364
387
 
388
+ ## Multi-repo milestones
389
+
390
+ One project can change several repositories in the same milestone. The
391
+ **coordinator** repo holds `.project/` and runs the pipeline; each other repo
392
+ is a **member** listed in `.project/MEMBERS.md`. A member needs a GitHub.com
393
+ `origin` whose default is `main`. See
394
+ [ADR 0002](docs/adr/0002-multi-repo-coordinator.md) for the design.
395
+
396
+ - Add members at a milestone boundary: ask the router to add an existing repo
397
+ (`members.py add`) or to create a new one (`members.py add --create`, after
398
+ you approve the exact owner, name, visibility, and checkout). For optional
399
+ guard hooks, install them in the member with
400
+ `npx @opengsd/gsd-path@latest --member-of <coordinator> --project <member>`.
401
+ - The planner gives each member task `repo: <member>`; one task changes one
402
+ repo. Project Verify runs from the coordinator and reaches a member as
403
+ `../<member>`.
404
+ - Build works in Path-owned member branches `gsd-path/<project>-M00N` and
405
+ records each member landing in the coordinator. The final review names each
406
+ member's reviewed HEAD.
407
+ - Ship closes members in order before the coordinator: `close-members` merges
408
+ each member in its own `direct` or `pull-request` mode and tags it
409
+ `milestone/<project>-<archive>`, then the ship commit records each member.
410
+ A pull-request member waits for you to merge it. The next milestone retires
411
+ the member branches.
412
+ - `members.py detect --checkout <path>` reports whether a repo is a member.
413
+
414
+ Out of scope: submodules, one task across two repos, non-GitHub remotes, and
415
+ an atomic close across repos.
416
+
365
417
  ## Handoff contract
366
418
 
367
419
  ```text
package/RUNTIME.md CHANGED
@@ -68,7 +68,7 @@ skeptic attempts under `skeptics/`.
68
68
  | `skeptics --repo <root> --wave <N> --cycle <C> --child-command '<cmd>' [--wait <s>] [--child-timeout <s>]` | Step 7 skeptic branch: one read-only skeptic per `skeptic_groups` locator in its own sidecar at the recorded review base, briefed with the criterion, every observation, and the cited tasks verbatim; validate with `review_findings.py`, collect, retire, then rerun the helper. `none` without skeptic groups; `escalate` for structural blockers or the cycle cap. The skeptic files stay uncommitted for the fix-task or ruling checkpoint. |
69
69
  | `fix-tasks --repo <root> --wave <N> --cycle <C>` | Step 7 batching: one fix task per `review_findings.py collect` batch with the failed criteria and observations verbatim, lint-checked; `escalate` for structural blockers, skeptic groups, cycle cap, or all-refuted. |
70
70
  | `complete --repo <root>` | Completion: clean primary at `build/active` (or a crash-left `build/done`), no unfinished wave, the archive-time review cycle check (`discussion_validate.review_cycle_counts`: contiguous cycles, passing last cycle, panel and skeptic artifacts present); `workflow_run.py build-evidence` at HEAD; `pipeline_state.py transition` to `ship/active` with event `build done; final review pending`; checkpoint `build: complete milestone`. |
71
- | `finish --repo <root> --task-id <id>` | Recover first; return a proven landing without repeating Verify, or verify, land, record, and retire one returned task. Without a dispatch record, derive the isolate from task frontmatter. |
71
+ | `finish --repo <root> --task-id <id>` | Recover first; return a proven landing without repeating Verify, or verify, land, record, and retire one returned task. Without a dispatch record, or when the newest record is settled and its base differs from the task's current in-progress base (a native retry after a driver block), read the primary task's in-progress state; if it lacks a recorded base, use the parallel task isolate's state only if that worktree is authorized. A blocked record at the same base still refuses the retry. A deactivated isolate stays blocked. |
72
72
  | `answer --repo <root> --task-id <id> --answer '<text>'` | Append `Orchestrator answer:` to the isolate's task Log; the next `round` redispatches that isolate. |
73
73
  | `status --repo <root>` | Every task's newest dispatch record. |
74
74
 
package/UPDATE.md CHANGED
@@ -14,7 +14,7 @@ Pulled new gsd-path / ran npx @opengsd/gsd-path@latest
14
14
  └─ Skills feel stale or router shows old behavior?
15
15
  ├─ Global install → install.mjs --update
16
16
  ├─ Project-local → install.mjs --update --local (from repo root)
17
- ├─ Project wiring → install.mjs --update --project PATH (keeps contracts and selected runtime)
17
+ ├─ Project wiring → install.mjs --update --project PATH (refreshes the AGENTS.md block; keeps WORKFLOW.md and selected runtime)
18
18
  └─ npm only → npx @opengsd/gsd-path@latest --update
19
19
 
20
20
  Installed with --hooks and need to refresh wiring
@@ -25,7 +25,10 @@ Installed with --hooks and need to refresh wiring
25
25
  Existing project needs guards for the first time
26
26
  └─ install.mjs --hooks-init --claude --project PATH
27
27
 
28
- AGENTS.md or WORKFLOW.md template changed upstream
28
+ AGENTS.md template changed upstream
29
+ └─ install.mjs --update --project PATH (replaces only the GSD Path block)
30
+
31
+ WORKFLOW.md template changed upstream
29
32
  └─ Manual diff + merge (installer never overwrites)
30
33
  ```
31
34
 
@@ -43,7 +46,8 @@ AGENTS.md or WORKFLOW.md template changed upstream
43
46
  | Project runtime | Explicit upgrade only | [Runtime lifecycle](DOCS.md#project-runtime-versions) |
44
47
  | Native hook settings + git hooks | Yes | `--hooks-refresh-full` (host flag creates missing config) |
45
48
  | Guards for an existing project | Yes | `--hooks-init` (preserves project contracts) |
46
- | `AGENTS.md`, `WORKFLOW.md` | **No** | Manual merge |
49
+ | `AGENTS.md` GSD Path block | Yes | `--update --project PATH` (owner text outside the block is kept) |
50
+ | `WORKFLOW.md` | **No** | Manual merge |
47
51
  | `.project/*` (active milestone) | **No** | Pipeline state |
48
52
 
49
53
  Existing managed skills, including the owned `path` alias, move to
@@ -56,13 +60,32 @@ it or move it aside first. Unrelated skills are never touched. Failed multi-host
56
60
  updates roll back all selected targets.
57
61
  An initial `--hooks` install merges valid native settings for explicitly selected Claude,
58
62
  Codex, or Cursor hosts; other existing project contract and guard files are refused.
59
- `--update --project PATH` keeps `AGENTS.md`, `WORKFLOW.md`, and `.claude/CLAUDE.md`
60
- and refreshes managed hook wiring, native settings, and git hooks. For runtime
63
+ `--update --project PATH` replaces the GSD Path block in `AGENTS.md`, keeps
64
+ `WORKFLOW.md` and `.claude/CLAUDE.md`, and refreshes managed hook wiring, native settings, and git hooks. For runtime
61
65
  changes or legacy installations, follow the [runtime lifecycle](DOCS.md#project-runtime-versions).
62
66
  Use `--hooks-init` to add guards to an existing project without changing its
63
67
  `AGENTS.md` or `WORKFLOW.md`. It inspects and merges native configs only for
64
68
  the selected hosts; configs for unselected hosts remain untouched.
65
69
 
70
+ ### Local additions
71
+
72
+ Skill directories are managed. Updates and reinstalls replace existing managed
73
+ skills with fresh copies; edits and added files inside them stay only in the
74
+ backup described above. To recover your changes, diff each backed-up skill
75
+ against the same skill from the release you had installed. Comparing the backup
76
+ against the new install also includes upstream changes.
77
+
78
+ Put local rules in project-owned files instead. Add a `## Local rules`
79
+ section to `AGENTS.md` after the `<!-- gsd-path:end -->` line, with
80
+ subsections per phase if needed (for example, "Research: also read X").
81
+ Updates replace only the text between the GSD Path markers, and phase and
82
+ subagent briefs name `AGENTS.md`. Hosts load project instructions differently,
83
+ so confirm your host and its subagents read it. Keep owner rules after the
84
+ block: Codex reads only the first 32 KiB, so text above the block can push
85
+ GSD Path rules out.
86
+
87
+ Gates are scripts, not an extension point. To change a gate, open an issue.
88
+
66
89
  ---
67
90
 
68
91
  ## Update skills
@@ -103,8 +126,8 @@ node scripts/install.mjs --update --claude --cursor
103
126
  The interactive npm installer detects the old `.gsd-path/runtime/` layout when
104
127
  you choose to update project wiring. Choose **Migrate and continue upgrade** to
105
128
  migrate first, then update skills and wiring. Cancelling leaves the installation
106
- unchanged. Migration preserves locally modified files by stopping for you to
107
- resolve them; it never stages or commits changes.
129
+ unchanged. See [Project runtime versions](DOCS.md#project-runtime-versions)
130
+ for migration safety checks and backups. Migration never stages or commits changes.
108
131
 
109
132
  For unattended upgrades, migration requires explicit consent:
110
133
 
@@ -160,8 +183,8 @@ local edits. Clean source checkouts still refresh before a project update.
160
183
  Older unstamped installs show **Unknown — version metadata unavailable**.
161
184
  This does not establish that their runtime is outdated or broken. **Update**
162
185
  uses the guarded migration for legacy runtime directories and an upgrade for
163
- version-pinned runtimes. Migration leaves a reviewable Git diff and refuses
164
- modified or unknown runtime files; the dashboard shows the failure reason.
186
+ version-pinned runtimes. Migration leaves a reviewable Git diff; the dashboard
187
+ shows the failure reason when it stops.
165
188
  See [Project runtime versions](DOCS.md#project-runtime-versions) for manual
166
189
  migration and preview commands. Use `--doctor --project PATH` to check runtime files.
167
190
 
@@ -200,10 +223,36 @@ Details: [HOOKS.md](HOOKS.md)
200
223
 
201
224
  ## Update project contracts
202
225
 
203
- `AGENTS.md` and `WORKFLOW.md` are installed once with `--project`. A plain install
204
- **refuses** if they already exist; `--update --project PATH` keeps them unchanged.
226
+ GSD Path owns one marked block in `AGENTS.md`:
227
+
228
+ ```text
229
+ <!-- gsd-path:begin -->
230
+ ...GSD Path contract...
231
+ <!-- gsd-path:end -->
232
+ ```
233
+
234
+ You own everything outside the markers. `--project` puts the block first in a
235
+ new or existing `AGENTS.md`; `--update --project PATH` replaces only the
236
+ block. Both refuse:
237
+
238
+ - a file with unmatched markers or more than one block (fix the markers by
239
+ hand);
240
+ - a merged file over 32 KiB, because Codex reads only the first 32 KiB. The
241
+ error prints the file, block, and merged sizes and a command to move the
242
+ file aside.
243
+
244
+ Migration from whole-file installs (1.x): an `AGENTS.md` equal to a released
245
+ template becomes a block on the next `--project` or `--update --project`. An
246
+ edited whole-file `AGENTS.md` is refused with a diff: keep your rules, move
247
+ the file aside, rerun, then add your rules after the end marker.
248
+
249
+ `WORKFLOW.md` and `.claude/CLAUDE.md` (with Claude) are installed once with
250
+ `--project`. A plain install **refuses** if they already exist and prints a
251
+ command to move each to its `.pre-path.md` name. If that name is occupied, it
252
+ asks you to choose an unused name. `--update --project PATH` keeps them
253
+ unchanged.
205
254
 
206
- To adopt upstream template changes:
255
+ To adopt upstream `WORKFLOW.md` changes:
207
256
 
208
257
  1. Open new templates in the gsd-path repo or npm package
209
258
  2. `diff` against your project copies
package/WORKFLOW.md CHANGED
@@ -75,8 +75,11 @@ cancellation is a blocked result, not a skipped result.
75
75
 
76
76
  Non-interactive phases auto-advance when their artifacts pass their gates.
77
77
  User approval remains required at define, roadmap, plan, final-review patch
78
- selection, and final shipping checkpoints. Decide auto-advances after its evidence gate
79
- unless a `NEEDS-USER` decision remains.
78
+ selection, and final shipping checkpoints. Decide auto-advances after its
79
+ evidence gate unless a `NEEDS-USER` decision remains. The opt-in quick-lane
80
+ grant for selected intent or plan gates is described in the
81
+ [router contract](skills/gsd-path/SKILL.md#pre-approval); all other gates
82
+ still ask.
80
83
 
81
84
  Every user-facing checkpoint follows one handoff shape: **Outcome** states what
82
85
  was produced or learned, **Review** links the primary canonical artifact by its
@@ -418,8 +421,9 @@ criterion `met`, `not-met`, or `unverifiable` with checked evidence. Each gap
418
421
  reviewer records `pass` or `blocked` for its assigned end-to-end or cross-wave
419
422
  risk. List only genuine
420
423
  risks that could plausibly fail; never pad the list. The runtime
421
- runs PLAN.md's project Verify once, stores exact stdout/stderr in the existing
422
- command/commit ledger, and generates its gap view; other gap
424
+ runs PLAN.md's project Verify and generates its gap view. Single-repo output
425
+ lives in the command/commit ledger; for member milestone evidence and reruns,
426
+ see [S4a1](docs/multi-repo-work.md#slices). Other gap
423
427
  reviewers do not re-run it. The orchestrator
424
428
  creates one disposable worktree at exact reviewed HEAD
425
429
  per reviewer; project commands never run in the primary worktree. Every final
@@ -459,8 +463,8 @@ REPOSITORY.md, LESSONS.md, and the program artifacts (CHARTER.md,
459
463
  ROADMAP.md, top-level SYNTHESIS.md) remain active project metadata; a program
460
464
  ship also marks the milestone's roadmap entry `Status: shipped` with its
461
465
  archive pointer inside the ship commit. MANIFEST.md is
462
- written by same-directory temporary file plus atomic rename and lists actual
463
- archive contents, ship date, final verdicts, wave/task/cycle counts, and
466
+ written by same-directory temporary file plus atomic rename and lists
467
+ shippable archive files, ship date, final verdicts, wave/task/cycle counts, and
464
468
  carried-forward items. A precommit helper gate validates canonical files, the
465
469
  active-root allowlist, metadata, success rows, counts, and exact contents before
466
470
  STATE may become shipped.
@@ -472,6 +476,18 @@ real wave-review files, every final artifact names the reviewed HEAD, and Notes
472
476
  must be completed. A committed target is immutable and routes only to
473
477
  validation.
474
478
 
479
+ Ship preparation removes file-free `.claude` staging directories left under the
480
+ active `.project/` tree. Archive preflight also removes them from the current
481
+ uncommitted archive. At the `.project/` top level, ship input and active-root
482
+ checks skip non-pipeline entries only when Git neither tracks nor would add
483
+ them (for example, an ignored, untracked `.DS_Store`). Tracked entries still
484
+ block, and pipeline-owned active paths block even when ignored. Strict checks
485
+ under `.project/` and the current archive skip a regular `.DS_Store` only when
486
+ Git ignores it and does not track it; the manifest omits that file. A tracked
487
+ or non-ignored `.DS_Store` receives normal checks and is listed if archived.
488
+ Other ignored archive files still block shipment, and committed archives remain
489
+ untouched.
490
+
475
491
  One exception: a DOCS-AUDIT.md with pending `planned: no` rulings is copied
476
492
  atomically back into a recreated `research/` so the alignment queue survives;
477
493
  the archived original keeps full history. Active and archived research may
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengsd/gsd-path",
3
- "version": "1.3.0",
3
+ "version": "1.4.0",
4
4
  "description": "Disk-backed AI agent pipeline. Docs: DOCS.md (start here), QUICK.md, FULL.md, UPDATE.md",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -36,6 +36,7 @@
36
36
  "scripts/integration.py",
37
37
  "scripts/archive_milestone.py",
38
38
  "scripts/bootstrap_repository.py",
39
+ "scripts/members.py",
39
40
  "scripts/detect_project.py",
40
41
  "scripts/promote_lookahead.py",
41
42
  "scripts/discussion_records.py",
@@ -83,15 +84,15 @@
83
84
  },
84
85
  "scripts": {
85
86
  "install:ci": "npm ci",
86
- "check:prereqs": "bash scripts/check-test-prereqs.sh",
87
- "test": "node --test tests/*.test.mjs",
87
+ "check:prereqs": "node scripts/dev/check-prereqs.mjs",
88
+ "test": "node tests/run-node-tests.mjs",
88
89
  "test:smoke": "npm test",
89
90
  "test:integration": "npm run test:python",
90
- "test:python": "python3 -m unittest discover -s tests",
91
- "test:sync": "python3 scripts/sync_skill_resources.py --check",
92
- "test:daemon": "PYTHONPATH=daemon python3 -m unittest discover -s tests -p 'test_daemon_*.py'",
93
- "verify": "npm test && npm run test:python && python3 scripts/sync_skill_resources.py --check",
94
- "verify:release": "npm run verify && python3 scripts/check_trust_evidence.py --repo .",
91
+ "test:python": "node scripts/dev/py.mjs -m unittest discover -s tests",
92
+ "test:sync": "node scripts/dev/py.mjs scripts/sync_skill_resources.py --check",
93
+ "test:daemon": "node scripts/dev/py.mjs --path daemon -m unittest discover -s tests -p \"test_daemon_*.py\"",
94
+ "verify": "npm test && npm run test:python && npm run test:sync",
95
+ "verify:release": "npm run verify && node scripts/dev/py.mjs scripts/check_trust_evidence.py --repo .",
95
96
  "release:docs": "node scripts/update_release_docs.mjs",
96
97
  "release:bump": "node scripts/bump_version.mjs --bump auto",
97
98
  "prepublishOnly": "npm run verify:release"