@opengsd/gsd-path 1.3.1 → 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 +281 -0
  3. package/DOCS.md +13 -7
  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 +57 -8
  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 +54 -38
  31. package/scripts/install.py +562 -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 +35 -9
  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/AGENTS.md CHANGED
@@ -43,13 +43,6 @@ full-repo suite on a tiny edit outrank the phase brief.
43
43
 
44
44
  - Start from disk, not conversation. If an input is absent from `.project/`,
45
45
  report it instead of inventing it.
46
- - `.project/discuss/DIALOGUE.md` and `.project/discuss/ANSWERS.md` are the
47
- append-only memory for any-phase discussion. Read them before continuing an
48
- existing thread; never treat chat history alone as durable context.
49
- - The discussion skill never commits. Every phase orchestrator treats only
50
- complete append-only discussion records as expected bookkeeping and includes
51
- them in its next normal `.project/` checkpoint; build does so before its next
52
- clean layer base, and ship includes them in its transaction.
53
46
  - A discussion answer with `Status: final` or `NEEDS-USER`, `Follow-up:
54
47
  required`, and no later `Disposition X###` receipt is pending. Before phase
55
48
  work and again before a phase gate, the router and current phase run the
@@ -64,43 +57,6 @@ full-repo suite on a tiny edit outrank the phase brief.
64
57
  current phase with links to ANSWERS.md and the target artifact and ask the
65
58
  user; never auto-advance or archive it. Only the user may authorize
66
59
  `rejected-by-user`.
67
- - Write every output to the handoff path in WORKFLOW.md, using the absolute
68
- bundled template path supplied by the active phase skill. An output that
69
- needs verbal explanation is defective.
70
- - With no `.project/STATE.md`, route through the bundled
71
- `scripts/detect_project.py initialize --repo <absolute-root> --template
72
- <absolute-state-template> --require-git` helper; `route: setup-repository`
73
- leaves the invocation folder unchanged and routes to repository setup before
74
- state creation or branch binding. Never delete the invocation folder or its
75
- state to satisfy bootstrap path checks. Do not classify from a directory listing
76
- or conversation. Follow its JSON `verdict` and `route`. Reserve `classify`
77
- for read-only inspection; do not use it as a state-initialization preflight.
78
- - `.project/STATE.md` tracks phase position. Parse and validate it only with
79
- the bundled `scripts/pipeline_state.py validate` command, route with its
80
- `route` command, and make ordinary phase transitions only with its
81
- expected-state `transition`. A journaled transaction helper may write only
82
- the state fields its contract explicitly owns. Never reproduce these
83
- deterministic operations in model reasoning. The
84
- orchestrator alone owns task frontmatter base, isolated worktree/branch,
85
- status, and agent; the landing commit is proven from git by `isolation.py
86
- recover`, never recorded. Require `pipeline: gsd-path/v2`; never
87
- consume an ambiguous or differently owned state file. Artifacts outrank
88
- summaries; reconcile STATE.md when it disagrees with task frontmatter.
89
- During a program build, `.project/next/STATE.md` may hold
90
- the lookahead planning track for the next milestone; it follows the same
91
- marker rule, owns no task frontmatter, and never binds a branch.
92
- - STATE.integration_default is the project closeout choice and
93
- STATE.integration is the current milestone choice. Both are `direct` or
94
- `pull-request`; STATE.integration_source is `default` or `milestone` and
95
- preserves explicit override provenance. Older v2 state defaults to `direct`,
96
- and modes may be changed only through `pipeline_state.py
97
- configure-integration` before build. A next milestone resets its current
98
- choice from the project default.
99
- - Spawned agents have isolated context. Follow the installed runtime dispatch
100
- contract and brief them with exact input and output paths, constraints, a
101
- deterministic logical task name, and a bounded responsibility. Independent
102
- briefs may run in parallel up to available child capacity; a dependent
103
- brief runs as soon as its dependencies complete.
104
60
  - After a phase completes its gate and state update, run the bundled
105
61
  `pipeline_state.py status --repo <absolute-root>` with the routed
106
62
  `--project-dir`. Its `handoff` is the shared phase handoff for chat and the
@@ -114,6 +70,8 @@ full-repo suite on a tiny edit outrank the phase brief.
114
70
  a route is not approval. Return to an active caller instead of invoking an
115
71
  explicit-only sibling skill. Derive the next phase from this result, not
116
72
  from another lane table in prose.
73
+ - Phase skills bundle the remaining rules in `references/operating-rules.md`;
74
+ read it before phase work.
117
75
 
118
76
  ## Plain-prompt re-entry
119
77
 
@@ -154,139 +112,6 @@ full-repo suite on a tiny edit outrank the phase brief.
154
112
  Questions never silently disappear between phases.
155
113
  - Record user corrections and vetoes verbatim.
156
114
 
157
- ## Stay in role
158
-
159
- - The codebase mapper and docs auditor observe and verify; they are strictly
160
- read-only, report observations rather than judgments, and never resolve a
161
- doc-vs-code conflict — that ruling belongs to the user.
162
- - Build, test, lint, and help commands are not presumed read-safe. Read-only
163
- roles run project commands only in orchestrator-created disposable worktrees
164
- at a recorded revision; otherwise they use static evidence or mark the check
165
- unverifiable. They never create worktrees or run commands in the source tree.
166
- - Researchers gather evidence; they do not decide. A dimension is researched
167
- only when it has open questions; the research phase records dispatched and
168
- skipped dimensions. Brownfield adds `evidence-codebase.md` as settled input.
169
- - The decider works from existing evidence; it does not re-research. An
170
- unresolved or uncited required decision fails the synthesis gate.
171
- - The planner reads both INTENT.md and SYNTHESIS.md and specs
172
- deliverable-sized outcomes and constraints; every INTENT success criterion
173
- maps to a task AC and Verify in PLAN.md Intent coverage. Coders own
174
- implementation decisions inside those bounds.
175
- - Coders implement only their full task contract, including owned INTENT
176
- success criteria read from INTENT.md, and append their result to the
177
- task Log. They never change task state, review acceptance, stage, commit, or
178
- freelance outside declared files.
179
- - The orchestrator dispatches, arbitrates, and creates task isolation and
180
- verify sidecars through the bundled `scripts/isolation.py` helper — named
181
- branches only, never a detached HEAD — lands task work serially, and
182
- records each clean base in task frontmatter; `land` stamps the landed
183
- state into the task's own commit, so a task has exactly one commit. It
184
- writes no product code. When a done task's work already sits on the bound
185
- branch without a landing commit, only an explicit owner ruling through
186
- `isolation.py attest` may stand in for it: one `.project/`-only commit that
187
- names the base, the attested HEAD, the declared files that changed, the
188
- task Verify recorded as passing at that HEAD, and the ruling verbatim.
189
- `recover` reports it as `attested`, never as a proven landing.
190
- - All pipeline work for a milestone lives on `gsd-path/M00N` (M001, M002,
191
- …) bound in STATE.branch. The next milestone binds a new unused
192
- `gsd-path/M00N` at the remote default after the previous ship integrates.
193
- Integration at ship is the only path from the bound branch to the default
194
- branch — either Path's direct merge or a Path-owned PR merged by the user.
195
- The bound branch never receives merges or back-merges and is never the
196
- GitHub default.
197
- - After initialization writes STATE.md, and before entering the first pipeline
198
- phase in an existing Git repository, the router calls
199
- `scripts/pipeline_git.py bind-initial` with the selected M00N and exact
200
- fetched `origin/main` SHA. The helper alone checks worktree identity and
201
- cleanliness, exact base, and every local, remote, and other-worktree
202
- collision before creating or adopting the branch. The sole cleanliness
203
- exception is untracked `.project/STATE.md`: validated v2 state in active
204
- inspect or define, with null milestone, branch, and archive, in a real
205
- directory containing only that regular file with no hard links. The helper
206
- checks its identity and bytes across binding. Do not commit initialization
207
- before binding. The router persists its
208
- typed result in the new state. Build has no branch-creation authority.
209
- - After `validate-integrated` passes and before any next-milestone file
210
- changes, the router calls the bundled `scripts/pipeline_git.py bind-next`
211
- helper with the previous bound branch, exact ship SHA, and exact current
212
- `origin/main` SHA. The helper moves the clean primary worktree to the new
213
- unused `gsd-path/M00N` branch at that SHA without moving the previous
214
- branch or entering the default checkout, then retires the integrated
215
- previous branch — deleted locally and on origin; the ship commit stays
216
- reachable from the integration merge and its annotated tag. The router
217
- persists the new branch in STATE; a wrong-SHA or colliding branch blocks.
218
- After validated PR integration, `bind-next --allow-missing-previous` may
219
- retire only the local previous branch when GitHub already auto-deleted its
220
- remote branch.
221
- `bind-initial`, this handoff, and the approved new-repository bootstrap are
222
- the only bound-branch creation authorities, and the handoff's retirement
223
- push is the router's only bound-branch deletion authority. When a lookahead
224
- track exists, the router then calls `scripts/pipeline_state.py promote-next`;
225
- only that journaled helper moves the track, updates state and roadmap,
226
- classifies plan drift, and writes the router promotion commit.
227
- - Build adopts the branch recorded in STATE.branch, never whatever is current
228
- when a recorded branch exists. A new-GitHub REPOSITORY.md proves the
229
- default checkout and first bound branch; later milestones may rebind
230
- `gsd-path/M00N` without rewriting that artifact. Build ignores older
231
- milestone ship and integrate commits inherited through main. A ship commit
232
- for the current STATE.branch milestone must be an ancestor of origin/main;
233
- if it is not, that milestone's integration is incomplete and control routes
234
- to ship, not build. Direct mode requires the matching canonical `integrate:`
235
- commit; PR mode requires tag metadata and a two-parent merge whose second
236
- parent is the ship commit. A null branch returns
237
- to the router; build never creates, selects, switches, or rebinds it.
238
- - The ship phase makes exactly one commit on the bound branch — the
239
- `.project/`-only ship commit recording
240
- STATE.md, the final-review artifacts, and the archive — and additionally
241
- owns the integration leg. Direct mode creates and pushes one `--no-ff` merge
242
- onto `main` with subject
243
- `integrate: M00N — merge gsd-path/M00N into main`. Pull-request mode creates
244
- or reuses one GitHub.com PR and waits for the user to merge it with a merge
245
- commit; it never auto-merges. Both modes create one annotated
246
- `milestone/<NNN>-<slug>` tag after merge validation.
247
- The roadmap and
248
- plan phases each make exactly one approval checkpoint commit
249
- (`.project/`-only, deferred to the build transition commit during a
250
- new-repository transaction or before Git exists). Their bundled
251
- `pipeline_state.py approve` command journals before changing STATE or
252
- ROADMAP.md and owns that canonical checkpoint; a routed
253
- `resume-checkpoint` must finish before phase work. The router makes one
254
- bookkeeping commit through `pipeline_state.py promote-next` when promoting a
255
- lookahead track at a milestone boundary. Every other commit belongs to the
256
- orchestrator.
257
- - Reviewers verify and block; they never fix. A block names the criterion,
258
- observed result, evidence location, and concrete fix direction. An optional
259
- review panel is advisory: the canonical reviewer remains the only wave
260
- pass/fail, and panel findings never average or auto-replan. Same-model
261
- agreement is not independent verification: matching verdicts from one
262
- model family count as a single evidence path. Independence comes from
263
- re-run commands, reconstructed patches, different sources, or a
264
- different model family. Resolve panel
265
- membership with the bundled `scripts/review_panel.py` helper; do not invent
266
- model families or slugs. Create task isolation and verify sidecars with the
267
- bundled `scripts/isolation.py` helper; do not invent `git worktree add` or
268
- `--detach`. Undo unpublished pipeline work with `scripts/pipeline_undo.py`;
269
- do not invent `git reset`. Diagnose a stuck pipeline with
270
- `scripts/pipeline_diagnose.py`.
271
- - A bundled helper that exits non-zero stops the current step. Print its
272
- stderr verbatim, run `scripts/pipeline_diagnose.py diagnose --repo
273
- <absolute-root>` (bundled with `$gsd-path-forensics`), and report both.
274
- Do not rerun the same command unchanged unless the helper's own contract
275
- names that exact rerun as its interruption recovery. Never repair state or
276
- Git by hand instead.
277
- - The discussion sidecar may run during any non-shipped phase. It grounds
278
- answers in code and phase artifacts, may perform focused research when
279
- needed, and writes only its discussion artifacts; it never changes phase
280
- state or bypasses a phase gate.
281
- - During an uncommitted archive transaction, discussion writes a complete
282
- active copy that extends the archived pair. The ship phase reruns `prepare`;
283
- the helper validates the prefix and atomically reconciles both files.
284
- Discussion never edits an archive directly or writes after shipment.
285
- - The loop runner wraps explicit skills in a bounded check → verify → fix →
286
- verify pass driven by a LOOP.md spec. It never advances a phase gate
287
- itself and never commits or pushes.
288
- - Fix tasks use the complete task template, not an abbreviated finding.
289
-
290
115
  ## Gates
291
116
 
292
117
  - Same-wave dependencies execute in dependency order; a task dispatches as
@@ -344,36 +169,6 @@ full-repo suite on a tiny edit outrank the phase brief.
344
169
  and state whether the active router continues automatically or which exact
345
170
  explicit skill the user should invoke next.
346
171
 
347
- ## New GitHub repositories
348
-
349
- - Create a GitHub repository only from an explicit user request followed by an
350
- approval of the exact owner/name, visibility, default-checkout path,
351
- `gsd-path/M001` branch, and linked primary-worktree path. Before the
352
- external action produces an artifact, present those proposed targets as the
353
- inline **Review** surface using the active router's preview contract.
354
- Do not write a
355
- preview file into the invocation directory or another repository. Run the
356
- bundled bootstrap helper's read-only `preview` command for this evidence.
357
- - After approval, the bootstrap helper persists the exact targets under the
358
- approved workspace before the first external mutation. Its `create` command
359
- creates or verifies the remote, checkout, branch, and linked worktree one
360
- stage at a time. A matching journal permits explicit resume and adoption; a
361
- collision without that journal blocks. The helper removes the journal only
362
- after writing owned STATE.md and fixed-format `.project/REPOSITORY.md` in the
363
- linked worktree.
364
- - During an approved new-repository transaction, the router may create the
365
- first GSD Path branch and linked primary worktree at the verified
366
- remote-default SHA and persist that branch in STATE.md and REPOSITORY.md.
367
- Build must verify and adopt that exact binding from REPOSITORY.md, never a
368
- free-form log. Task branches and task worktrees remain exclusively
369
- build-orchestrator owned.
370
- - Keep the cloned default checkout clean on the remote default branch. Run the
371
- pipeline from the linked GSD Path worktree; never initialize `.project/` in
372
- the default checkout, reuse an existing branch or path (except an explicitly
373
- approved empty linked-worktree folder via `--reuse-empty-worktree`), move an existing
374
- repository, or recover a partial GitHub creation without the exact approved
375
- journal and re-verification.
376
-
377
172
  ## Escalation
378
173
 
379
174
  Stop and ask the user only when:
package/CHANGELOG.md CHANGED
@@ -98,3 +98,284 @@ are documented here. Format follows [Keep a Changelog](https://keepachangelog.co
98
98
  ### Fixed
99
99
  - describe untracked legacy migration in help
100
100
  - preserve older untracked runtimes during migration
101
+
102
+ ## [1.4.0] - 2026-09-30
103
+
104
+ ### Added
105
+ - key verify ledger rows by repo and fail closed on member drift (S3d)
106
+ - guard coders in member sidecars with coordinator host hooks (S3c3b2)
107
+ - dispatch and land member tasks in build rounds (S3c3b1)
108
+ - activate member tasks with a live copy in the member sidecar (S3c3a)
109
+ - prove landed member tasks from record and member landing (S3c2b)
110
+ - land member tasks with a journaled two-repo landing (S3c2a)
111
+ - isolate member tasks in Path-owned member checkouts (S3c1)
112
+ - shrink the AGENTS.md block and move phase rules into skills
113
+ - install AGENTS.md as a managed gsd-path block
114
+ - lock members and create member bound branches at build start (S3b)
115
+ - plan member tasks with repo: (S3a)
116
+ - pre-approve intent and plan gates for unattended quick lanes (#150)
117
+ - hold member writes to the coordinator phase (S2d)
118
+ - install member git hooks with --member-of (S2c)
119
+ - add member mode to git guard with push authorization (S2b)
120
+ - add multi-repo member role marker (S2a)
121
+ - add multi-repo member contract (S1)
122
+
123
+ ### Changed
124
+ - Reflow Copilot exclusion wording in trust-validation docs
125
+ - record 1.4.0 live release evidence
126
+ - prepare 1.4.0 minor candidate
127
+ - Note invalid-copy rejection evidence in multi-repo S5d
128
+ - multi-repo: native retry for a failed member task
129
+ - Refresh multi-repo activation docs and host guidance
130
+ - multi-repo: native member task dispatch
131
+ - evaluate_host: keep the release addendum on the quick scenario only
132
+ - multi-repo S5d: two-repo host scenario
133
+ - Clarify optional hooks and remove obsolete gate note
134
+ - multi-repo S5c: activate member execution and document it
135
+ - Correct S5b member documentation
136
+ - record app release tags and Linux formats
137
+ - daemon: refuse cross-site and non-JSON POSTs
138
+ - plan a native dashboard app for every OS
139
+ - multi-repo S5b: greenfield members and member detect
140
+ - Make ReplaceTests portable to POSIX Python 3.9
141
+ - Align two-repo proof documentation with test coverage
142
+ - multi-repo S5a: two-repo full-cycle proof
143
+ - Point lookahead drift guidance to S4d
144
+ - multi-repo S4d: member lookahead drift check
145
+ - Clarify active milestone member status documentation
146
+ - multi-repo S4c3: member plan check, status, and diagnose
147
+ - Document member undo safeguards
148
+ - multi-repo S4c2: undo a member landing
149
+ - Document member retirement guards and correct proof scope
150
+ - multi-repo S4c1: retire member bound branches at bind-next
151
+ - Exercise core.autocrlf=true in the attributes test under the dev runner
152
+ - Keep .project LF under core.autocrlf=true with a local attributes rule
153
+ - Port the member-close changes from main to native Windows
154
+ - Patch only the probe module's os in the Windows retry test
155
+ - Port the multi-repo member tests to native Windows
156
+ - Run the native Windows gate in CI and make it blocking
157
+ - Never skip an archive check because resolve() raised on Windows
158
+ - Decode test subprocess output as UTF-8
159
+ - Use the directory mutex for the discussion lock outside git on Windows
160
+ - Make member-isolation and release-receipt tests portable to Windows
161
+ - Decode archive and projection test output as UTF-8
162
+ - Lock discussions outside git on Windows and report sync paths with slashes
163
+ - Type guard-test helper paths the way Git Bash agents do
164
+ - Retry installer lock and skill-directory moves on Windows
165
+ - Make installer and core-migration tests portable to Windows
166
+ - Keep doctor running when git is not on PATH on Windows
167
+ - Make the runtime lifecycle tests portable to Windows
168
+ - Retry runtime directory renames on Windows and copy the launcher exactly
169
+ - Expect native paths in the Zed and Grok host command tests
170
+ - Close OpenCode session-store connections so Windows can delete them
171
+ - Read dispatch briefs as UTF-8 in the fake children
172
+ - Send native Windows relative paths to git with forward slashes
173
+ - Make daemon tests platform-correct on Windows
174
+ - Write plugin-managed files as UTF-8 bytes
175
+ - Keep discovered project roots in their original case on Windows
176
+ - Compare lookahead layout as POSIX paths on Windows
177
+ - Resolve codex through PATHEXT in the Codex evaluation harness
178
+ - Shadow the real codex in the evaluate_codex test on Windows
179
+ - Keep tests from ever reaching a real GitHub account
180
+ - Send subprocess input to git byte-exact on Windows
181
+ - Document native Windows requirements
182
+ - Make the Node suite and dev runner portable to Windows
183
+ - Make test fixtures portable to Windows
184
+ - Update member ship documentation and sync skill copies
185
+ - multi-repo S4b2b: post-commit member ship checks
186
+ - tests: hold and reap dispatch wrappers started in-process
187
+ - Align multi-repo work plan with S4b2a
188
+ - Reuse a final-scope wave review whose Surface field carries detail
189
+ - tests: keep git auto-maintenance in the foreground
190
+ - multi-repo S4b2a: member close and ship body lines
191
+ - tests: finish git housekeeping before trust-evidence temp cleanup
192
+ - Clarify member PR integration documentation
193
+ - multi-repo S4b1b: member pull-request integration
194
+ - Document member integration recovery and refresh rules
195
+ - multi-repo S4b1a: member direct integration
196
+ - Split child commands with POSIX quoting and write runtime output as UTF-8
197
+ - Install hooks and wrap Core hooks correctly on Windows
198
+ - Close Windows guard bypasses and decode text as UTF-8
199
+ - Run dispatch, verify, and loop processes portably on Windows
200
+ - Create STATE.md on Windows through pinned handles
201
+ - Lock pipeline state on Windows and write product files as LF bytes
202
+ - Leave the Windows CI job to the PR where Windows passes
203
+ - Isolate USERPROFILE with HOME in tests
204
+ - Pick the lock implementation by what imports, and split Windows CI suites
205
+ - Write test fixtures as exact UTF-8 LF bytes
206
+ - Write package.json as LF bytes in the skill-resource sync
207
+ - Add Windows platform helpers, portable dev runners, and a Windows CI job
208
+ - Clarify member head binding documentation
209
+ - multi-repo S4a2: member reviewed heads in the final review
210
+ - Point workflow to member Verify contract
211
+ - multi-repo S4a1: member sidecars for project Verify
212
+ - Correct S3d ledger and drift guidance
213
+ - Clarify member sidecar hook documentation
214
+ - Refresh member dispatch documentation and generated comments
215
+ - Document member activation safeguards and recovery
216
+ - Document member landing proof and archive recovery
217
+ - Correct member landing documentation and hook details
218
+ - merge: preserve validated dashboard fixes after publication timeout
219
+ - Refresh dashboard and tray documentation
220
+ - Clarify native retry finish documentation
221
+ - Align S3c documentation with member execution timing
222
+ - dispatch_driver: finish a native retry after a blocked driver attempt
223
+ - Drop the Node copy of the project runtime file list
224
+ - Correct managed AGENTS.md guidance and ADR context
225
+ - Document ignored .DS_Store setup behavior
226
+ - Document S3b build-start lock and recovery
227
+ - Sync generated GSD Path scripts
228
+ - Clarify Finder junk handling in pipeline docs
229
+ - Document pre-approval scope and reconcile gate guidance
230
+ - Correct stale multi-repo planning documentation
231
+ - Document legacy ledger checkpoint behavior
232
+ - Document ignored .project artifact handling
233
+ - Clarify local skill edit recovery guidance
234
+ - Correct stale S2d work plan guidance
235
+ - Clarify research transition gate documentation
236
+ - propose ADR 0003 managed AGENTS.md block
237
+ - Clarify first-install contract collision guidance
238
+ - Clarify half-retire recovery documentation and verify formatting
239
+ - Document Claude staging cleanup during shipment
240
+ - Document ignored pipeline state recovery
241
+ - Correct S2c member hook work plan
242
+ - Document native parallel finish recovery
243
+ - Clarify member guard documentation and authorization lifetime
244
+ - Clarify member marker documentation and verify formatting
245
+ - Update S1 plan and remove stale allowlist entry
246
+ - Clarify member delete authorization and close recovery proof
247
+ - close multi-repo plan open items R23-R24
248
+ - Clarify member documentation and correct S5 doc targets
249
+ - close multi-repo plan open items R17-R20
250
+ - add multi-repo coordinator ADR and work plan
251
+ - update release notes for v1.3.1
252
+
253
+ ### Fixed
254
+ - Fix three Windows races and identity mismatches found on the rebased stack
255
+ - Fix the member-build-start path regex
256
+ - Fix the Windows CI-only test failures and a Python 3.9 guard crash
257
+ - Fix the last native Windows test failures
258
+ - show actual project folders in toolbar rows
259
+ - group tray status progress and usage on separate lines
260
+ - keep tray folder paths in tooltips
261
+ - show project identity and wrap tray panel details
262
+ - wrap full project paths on dashboard board
263
+ - show main project folder alongside dashboard worktree
264
+ - keep runtime module identity independent of test order
265
+ - detect legacy marker as a whole line; keep distribution layout in AGENTS.md
266
+ - match AGENTS.md markers as whole lines; doctor flags a cut block
267
+ - harden AGENTS.md block install and uninstall
268
+ - ignored .DS_Store in .project no longer orphans project setup (#149)
269
+ - skip ignored .DS_Store inside .project subdirectories (#149)
270
+ - keep DOCS-AUDIT Repo root on the primary repo, not the sidecar (#148)
271
+ - commit a legacy ignored verify ledger in build checkpoints
272
+ - skip ignored untracked .project entries in ship allowlist checks (#149)
273
+ - say local skill edits are not carried forward (#151)
274
+ - let decide run the research handoff check at decide/active
275
+ - name a working path when --project finds an existing contract
276
+ - prune empty host .claude dirs before .project gates
277
+ - let retire recover a half-retired task worktree
278
+ - refuse landings when ignore rules hide .project state
279
+ - let finish land natively dispatched parallel tasks
280
+
281
+ ### Other
282
+ - Align Copilot exclusion docs with persistent validator exclusion
283
+ - Let forced member retire proceed on invalid task copy
284
+ - Correct native member diff instructions and track retry gap
285
+ - Record Claude and Codex two-repo host proof
286
+ - Fix native member routing and isolate host scenario
287
+ - Align activation host proof with pre-merge gate
288
+ - Correct S5d host proof and release timing
289
+ - Synced the canonical Windows checkout-path fix into 11 generated skill copies. Before the change, the resource sync check failed and caused the reported test failures. Afterward, the sync check, four affected Node tests, and 66 focused Python tests passed. Windows CI still needs to rerun
290
+ - Fixed the Windows checkout-path comparison and replaced three test-fixture deletions that fail on read-only Git objects. The regression test failed before the fix and passed after; 66 focused tests pass locally. Windows CI still needs to rerun. The ponytail skill was unavailable in this environment
291
+ - Record A1 daemon version and port ownership questions
292
+ - Move legacy cleanup into A1 and require version bumps
293
+ - Gate daemon reuse by bundled version
294
+ - Specify app update index and verify migration cleanup
295
+ - Plan legacy autostart cleanup during app upgrade
296
+ - Resolve native app plan review findings
297
+ - Fixed the Windows test fixtures in tests/test_member_create.py: Git now gets a forward-slash temporary path, and the gh test uses a platform-independent fake process. All 22 focused tests pass locally; both fixes failed sensitivity checks when deliberately undone. Windows CI still needs to rerun
298
+ - Pin GitHub host and verify remote main
299
+ - Verify checkout history and resume partial clones
300
+ - Honor configured origins and prevent repository recreation
301
+ - Reject invalid checkouts and stale clone reuse
302
+ - Fix member creation recovery and validation
303
+ - Prove member hook denials and branch retirement
304
+ - Fixed two Windows daemon test races in tests/test_daemon_serve.py. The activity test now counts events for its own project. The poll test stages STATE.md outside the watched directory and retries a transient replacement lock. The activity failure was reproduced locally before the fix; all 15 daemon serve tests pass after it, including a simulated file-lock check. PR #230 remains open; CI has not been rerun in this phase
305
+ - Reuse linted member base for lookahead approval
306
+ - Detect member rename drift and fix done-task test
307
+ - Filter done member drift; focused test remains failing
308
+ - Scope member status to the active milestone
309
+ - Block member undo while landing journals are pending
310
+ - Guard member undo against publication and concurrent landings
311
+ - Harden member undo journaling, recovery, and locking
312
+ - Guard member retirement against moved refs and team checkouts
313
+ - Sync member status fix to generated skill copies
314
+ - Keep member status validation read-only
315
+ - Read staged member lock in ship guard
316
+ - Repair merged member PR body before tagging
317
+ - Validate member PR provenance and repair reused bodies
318
+ - Set Git identity in the temporary member test repository to fix the CI merge failures. The focused test reproduced the failure before the change; all 11 member integration tests passed after it, and a sabotage check reproduced the failure. Ponytail review found no smaller fix. CI has not rerun
319
+ - Fixed the test fixture in tests/test_member_integration.py by setting the bare remote’s HEAD to main. The CI-style Git setting reproduced the 4 failures and 5 errors before the fix; all 11 focused tests passed after it. Skipping the new line caused the original error again. Ponytail review found no smaller fix. CI has not rerun
320
+ - Guard member merges, resume interrupted branches, and refresh validation
321
+ - Ignore commented member heads in review headers
322
+ - Retire switched member sidecars without changing bound branches
323
+ - Retire detached sidecars and retain member Verify output
324
+ - Refuse colliding members and clean up rejected Verify
325
+ - Fix member Verify sidecars and final review reuse
326
+ - Fix member drift detection and document Verify output policy
327
+ - Report untracked host config collisions during activation
328
+ - Restore and validate member hooks before every launch
329
+ - Both CI jobs failed because the temporary member repository had no Git author identity. I set its identity in the test fixture. The member-round suite passed (9 tests) with automatic identity discovery disabled; removing the fixture setting reproduced the failure. `git diff --check` passed. The ponytail skill was unavailable. An earlier diagnostic command created an empty `/tmp/ci-verify-18.log` outside the worktree; I made no other out-of-worktree changes
330
+ - Retire recovered members and clarify locked brief bases
331
+ - Recover partial and stale member isolates
332
+ - Fix member task resume, retirement, and contract drift
333
+ - Reject tracked and symlinked member copy paths
334
+ - Reject missing member task agents
335
+ - Unify member task contract field checks
336
+ - Fix member recovery, activation, and retirement safeguards
337
+ - Reject changed member task contracts after landing
338
+ - Harden member landing proof across archival and status
339
+ - Serialize coordinator landings and block pending member journals
340
+ - Serialize member landings with per-member locks
341
+ - Guard member landing with STATE branch checks
342
+ - Fix member landing recovery and contract checks
343
+ - Preserve bare-backed worktree identity and paths
344
+ - Fix nested project identity and worktree paths
345
+ - Fix dashboard search by repository name
346
+ - Guard member checkout reuse and retirement ownership
347
+ - Fix member isolation placement, lock guidance, and retirement
348
+ - Preserve AGENTS.md owner text across updates and uninstall
349
+ - Reject symlinked member lock paths
350
+ - Remove stale member lock when tasks drop members
351
+ - Preflight member build starts before creating refs
352
+ - Preserve tracked .DS_Store in archive manifests
353
+ - Resolve landed member bases during plan approval
354
+ - Honor canonical lane and Config during preauthorization
355
+ - Fix staged legacy ledger checkpoint retries
356
+ - Validate docs audit rulings before preapproval
357
+ - Warn on legacy Codex skill backups
358
+ - Clarify block cutoff and release evaluation scope
359
+ - Reference PR #161 in rejected option
360
+ - Clarify managed block size and migration exceptions
361
+ - Skip unreadable listed checkouts when checking foreign members
362
+ - Resume blocked decide before the research recheck
363
+ - Fix stale member markers, symlinks, and Git inspection failures
364
+ - Suppress unsafe move when contract backup exists
365
+ - Probe plan and archived ledger ignore rules
366
+ - Probe fixed-name project files before landing
367
+ - Require managed coordinator guard before installing member hooks
368
+ - Harden member hook staging and worktree path checks
369
+ - Require origin/main baseline for member joins and pushes
370
+ - Reject nonfile member markers until manual removal
371
+ - Preserve marker directory errors in validation
372
+ - Reject redirected member marker directories
373
+ - Write member marker before recording membership
374
+ - Skip valid markers during member repair
375
+ - Fix member marker recovery and coordinator ownership
376
+ - Fix member validation and duplicate repository detection
377
+ - Authorize direct member bound branch publication
378
+ - Specify per-ref member push authorization for close
379
+ - Fix member branch, landing, and ship recovery plan
380
+ - Revise multi-repo plan for accepted design reviews
381
+ - Align multi-repo plan with member binding decisions
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 |
@@ -300,7 +305,8 @@ Full tree: [README.md](README.md#handoff-contract).
300
305
  | Project-local skills | `node scripts/install.mjs --update --local` |
301
306
  | From npm | `npx @opengsd/gsd-path@latest --update` |
302
307
  | Guard scripts | `node scripts/install.mjs --hooks-refresh --project PATH` |
303
- | `AGENTS.md` / `WORKFLOW.md` | Manual merge — installer refuses overwrite |
308
+ | `AGENTS.md` | `node scripts/install.mjs --update --project PATH` — replaces only the GSD Path block |
309
+ | `WORKFLOW.md` | Manual merge — installer refuses overwrite |
304
310
  | Health check | `node scripts/install.mjs --doctor [--project PATH]` — read-only; flags missing/stale skills, hook drift, and bad pipeline state |
305
311
 
306
312
  Full guide: **[UPDATE.md](UPDATE.md)**. Router may print a one-line npm update notice.
@@ -321,10 +327,8 @@ Restart the host session. Confirm with `ls ~/.claude/skills/gsd-path` (or your h
321
327
  Yes: `node scripts/install.mjs --cursor` (add other flags as needed).
322
328
 
323
329
  **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)).
330
+ No. GSD Path adds one marked block and keeps your text outside it byte for
331
+ byte. See [Update project contracts](UPDATE.md#update-project-contracts).
328
332
 
329
333
  **Where is pipeline state?**
330
334
  `.project/` in your repo — not chat history.
@@ -357,7 +361,9 @@ document with a body is brownfield and routes to inspect. A title-only README,
357
361
  GSD Path skill bundles: a `gsd-path*` or `ogsd*` bundle is verified under a
358
362
  supported installer skill root or when it contains `SKILL.md`; a similarly
359
363
  named source directory still counts normally. Those scaffold-only trees stay
360
- greenfield and route to define. Other `.project/` content without STATE.md is
364
+ greenfield and route to define. An ignored, untracked regular `.DS_Store`
365
+ directly in `.project/` does not block setup, even if it appears while
366
+ STATE.md is being created. Other `.project/` content without STATE.md is
361
367
  orphaned and blocks for recovery. An owned state, including the new-GitHub
362
368
  bootstrap state, routes by STATE.md after classification without running the
363
369
  initializer. After a milestone ships, the next one inspects again.
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
@@ -442,6 +447,7 @@ layers. Every child brief names absolute input/output paths and bounded scope.
442
447
  | Skills missing after install | Restart host session; [UPDATE.md](UPDATE.md) |
443
448
  | Router blocked on branch | Check out `STATE.branch` or follow router instructions |
444
449
  | Phase says precondition missing | Run the producing phase it names |
450
+ | 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
451
  | Pipeline on unrelated work | Explicit invocation only — [DOCS.md](DOCS.md#faq) |
446
452
  | Contradictory STATE / tasks | Re-invoke router; artifacts outrank chat |
447
453
  | 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 |