@opengsd/gsd-path 1.0.0 → 1.1.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 (395) hide show
  1. package/AGENTS.md +28 -11
  2. package/DOCS.md +6 -5
  3. package/FULL.md +9 -13
  4. package/QUICK.md +3 -3
  5. package/README.md +151 -14
  6. package/RUNTIME.md +7 -1
  7. package/WORKFLOW.md +30 -14
  8. package/package.json +15 -1
  9. package/platforms/shared-agents/dispatch.md +6 -0
  10. package/scripts/archive_milestone.py +10 -118
  11. package/scripts/bootstrap_repository.py +25 -3
  12. package/scripts/build_recovery.py +287 -0
  13. package/scripts/check_docs_audit.py +5 -3
  14. package/scripts/check_handoffs.py +1 -1
  15. package/scripts/detect_project.py +11 -2
  16. package/scripts/dispatch_driver.py +4 -2
  17. package/scripts/git_guard.py +2 -1
  18. package/scripts/install.mjs +2 -0
  19. package/scripts/install.py +2 -0
  20. package/scripts/integration.py +28 -22
  21. package/scripts/isolation.py +9 -1
  22. package/scripts/lean_verification.py +1 -1
  23. package/scripts/pipeline_diagnose.py +12 -3
  24. package/scripts/pipeline_state.py +114 -186
  25. package/scripts/pipeline_undo.py +11 -7
  26. package/scripts/promote_lookahead.py +30 -162
  27. package/scripts/roadmap.py +321 -0
  28. package/scripts/skill-resources.json +79 -1
  29. package/scripts/state_checkpoint.py +109 -72
  30. package/scripts/state_promote.py +42 -44
  31. package/scripts/task_context.py +73 -0
  32. package/scripts/token_budget.py +40 -1
  33. package/scripts/workflow_run.py +116 -7
  34. package/skills/gsd-path/BUILD.md +47 -575
  35. package/skills/gsd-path/DECIDE.md +2 -6
  36. package/skills/gsd-path/DEFINE.md +10 -14
  37. package/skills/gsd-path/INSPECT.md +30 -8
  38. package/skills/gsd-path/PLAN.md +25 -17
  39. package/skills/gsd-path/RESEARCH.md +3 -6
  40. package/skills/gsd-path/ROADMAP.md +22 -58
  41. package/skills/gsd-path/SHIP.md +5 -4
  42. package/skills/gsd-path/SKILL.md +24 -14
  43. package/skills/gsd-path/references/build-abandon.md +33 -0
  44. package/skills/gsd-path/references/build-native.md +494 -0
  45. package/skills/gsd-path/references/build-recovery.md +78 -0
  46. package/skills/gsd-path/references/coder.md +8 -3
  47. package/skills/gsd-path/references/dispatch.md +6 -0
  48. package/skills/gsd-path/references/docs-auditor.md +14 -0
  49. package/skills/gsd-path/references/reviewer-final.md +21 -0
  50. package/skills/gsd-path/references/reviewer-panel.md +17 -0
  51. package/skills/gsd-path/references/reviewer-skeptic.md +20 -0
  52. package/skills/gsd-path/references/reviewer-wave.md +89 -0
  53. package/skills/gsd-path/references/reviewer.md +12 -150
  54. package/skills/gsd-path/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  55. package/skills/gsd-path/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
  56. package/skills/gsd-path/scripts/__pycache__/build_recovery.cpython-312.pyc +0 -0
  57. package/skills/gsd-path/scripts/__pycache__/build_state.cpython-312.pyc +0 -0
  58. package/skills/gsd-path/scripts/__pycache__/check_handoffs.cpython-312.pyc +0 -0
  59. package/skills/gsd-path/scripts/__pycache__/check_task_briefs.cpython-312.pyc +0 -0
  60. package/skills/gsd-path/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
  61. package/skills/gsd-path/scripts/__pycache__/discussion_records.cpython-312.pyc +0 -0
  62. package/skills/gsd-path/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
  63. package/skills/gsd-path/scripts/__pycache__/integration.cpython-312.pyc +0 -0
  64. package/skills/gsd-path/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
  65. package/skills/gsd-path/scripts/__pycache__/loop_run.cpython-312.pyc +0 -0
  66. package/skills/gsd-path/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
  67. package/skills/gsd-path/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
  68. package/skills/gsd-path/scripts/__pycache__/review_findings.cpython-312.pyc +0 -0
  69. package/skills/gsd-path/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
  70. package/skills/gsd-path/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
  71. package/skills/gsd-path/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
  72. package/skills/gsd-path/scripts/__pycache__/task_context.cpython-312.pyc +0 -0
  73. package/skills/gsd-path/scripts/__pycache__/workflow_run.cpython-312.pyc +0 -0
  74. package/skills/gsd-path/scripts/archive_milestone.py +10 -118
  75. package/skills/gsd-path/scripts/bootstrap_repository.py +25 -3
  76. package/skills/gsd-path/scripts/build_recovery.py +287 -0
  77. package/skills/gsd-path/scripts/check_docs_audit.py +5 -3
  78. package/skills/gsd-path/scripts/check_handoffs.py +1 -1
  79. package/skills/gsd-path/scripts/detect_project.py +11 -2
  80. package/skills/gsd-path/scripts/dispatch_driver.py +4 -2
  81. package/skills/gsd-path/scripts/integration.py +28 -22
  82. package/skills/gsd-path/scripts/isolation.py +9 -1
  83. package/skills/gsd-path/scripts/lean_verification.py +1 -1
  84. package/skills/gsd-path/scripts/pipeline_state.py +114 -186
  85. package/skills/gsd-path/scripts/promote_lookahead.py +30 -162
  86. package/skills/gsd-path/scripts/roadmap.py +321 -0
  87. package/skills/gsd-path/scripts/state_checkpoint.py +109 -72
  88. package/skills/gsd-path/scripts/state_promote.py +42 -44
  89. package/skills/gsd-path/scripts/task_context.py +73 -0
  90. package/skills/gsd-path/scripts/token_budget.py +40 -1
  91. package/skills/gsd-path/scripts/workflow_run.py +116 -7
  92. package/skills/gsd-path/templates/wave-review.md +1 -1
  93. package/skills/gsd-path-build/SKILL.md +47 -575
  94. package/skills/gsd-path-build/references/build-abandon.md +33 -0
  95. package/skills/gsd-path-build/references/build-native.md +494 -0
  96. package/skills/gsd-path-build/references/build-recovery.md +78 -0
  97. package/skills/gsd-path-build/references/coder.md +8 -3
  98. package/skills/gsd-path-build/references/dispatch.md +6 -0
  99. package/skills/gsd-path-build/references/reviewer-final.md +21 -0
  100. package/skills/gsd-path-build/references/reviewer-panel.md +17 -0
  101. package/skills/gsd-path-build/references/reviewer-skeptic.md +20 -0
  102. package/skills/gsd-path-build/references/reviewer-wave.md +89 -0
  103. package/skills/gsd-path-build/references/reviewer.md +12 -150
  104. package/skills/gsd-path-build/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  105. package/skills/gsd-path-build/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
  106. package/skills/gsd-path-build/scripts/__pycache__/build_recovery.cpython-312.pyc +0 -0
  107. package/skills/gsd-path-build/scripts/__pycache__/build_state.cpython-312.pyc +0 -0
  108. package/skills/gsd-path-build/scripts/__pycache__/check_handoffs.cpython-312.pyc +0 -0
  109. package/skills/gsd-path-build/scripts/__pycache__/check_task_briefs.cpython-312.pyc +0 -0
  110. package/skills/gsd-path-build/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
  111. package/skills/gsd-path-build/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
  112. package/skills/gsd-path-build/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
  113. package/skills/gsd-path-build/scripts/__pycache__/loop_run.cpython-312.pyc +0 -0
  114. package/skills/gsd-path-build/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
  115. package/skills/gsd-path-build/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
  116. package/skills/gsd-path-build/scripts/__pycache__/review_findings.cpython-312.pyc +0 -0
  117. package/skills/gsd-path-build/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
  118. package/skills/gsd-path-build/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
  119. package/skills/gsd-path-build/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
  120. package/skills/gsd-path-build/scripts/__pycache__/task_context.cpython-312.pyc +0 -0
  121. package/skills/gsd-path-build/scripts/__pycache__/workflow_run.cpython-312.pyc +0 -0
  122. package/skills/gsd-path-build/scripts/archive_milestone.py +10 -118
  123. package/skills/gsd-path-build/scripts/build_recovery.py +287 -0
  124. package/skills/gsd-path-build/scripts/check_handoffs.py +1 -1
  125. package/skills/gsd-path-build/scripts/detect_project.py +1526 -0
  126. package/skills/gsd-path-build/scripts/dispatch_driver.py +4 -2
  127. package/skills/gsd-path-build/scripts/integration.py +28 -22
  128. package/skills/gsd-path-build/scripts/isolation.py +9 -1
  129. package/skills/gsd-path-build/scripts/pipeline_state.py +114 -186
  130. package/skills/gsd-path-build/scripts/promote_lookahead.py +283 -0
  131. package/skills/gsd-path-build/scripts/roadmap.py +321 -0
  132. package/skills/gsd-path-build/scripts/state_checkpoint.py +109 -72
  133. package/skills/gsd-path-build/scripts/state_promote.py +42 -44
  134. package/skills/gsd-path-build/scripts/task_context.py +73 -0
  135. package/skills/gsd-path-build/scripts/token_budget.py +40 -1
  136. package/skills/gsd-path-build/scripts/workflow_run.py +116 -7
  137. package/skills/gsd-path-build/templates/wave-review.md +1 -1
  138. package/skills/gsd-path-decide/SKILL.md +2 -6
  139. package/skills/gsd-path-decide/references/dispatch.md +6 -0
  140. package/skills/gsd-path-decide/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  141. package/skills/gsd-path-decide/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
  142. package/skills/gsd-path-decide/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
  143. package/skills/gsd-path-decide/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
  144. package/skills/gsd-path-decide/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
  145. package/skills/gsd-path-decide/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
  146. package/skills/gsd-path-decide/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
  147. package/skills/gsd-path-decide/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
  148. package/skills/gsd-path-decide/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
  149. package/skills/gsd-path-decide/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
  150. package/skills/gsd-path-decide/scripts/archive_milestone.py +2157 -0
  151. package/skills/gsd-path-decide/scripts/build_recovery.py +287 -0
  152. package/skills/gsd-path-decide/scripts/check_handoffs.py +1 -1
  153. package/skills/gsd-path-decide/scripts/detect_project.py +1526 -0
  154. package/skills/gsd-path-decide/scripts/discussion_validate.py +1321 -0
  155. package/skills/gsd-path-decide/scripts/integration.py +1439 -0
  156. package/skills/gsd-path-decide/scripts/isolation.py +9 -1
  157. package/skills/gsd-path-decide/scripts/pipeline_state.py +114 -186
  158. package/skills/gsd-path-decide/scripts/promote_lookahead.py +283 -0
  159. package/skills/gsd-path-decide/scripts/review_panel.py +553 -0
  160. package/skills/gsd-path-decide/scripts/roadmap.py +321 -0
  161. package/skills/gsd-path-decide/scripts/state_checkpoint.py +109 -72
  162. package/skills/gsd-path-decide/scripts/state_promote.py +42 -44
  163. package/skills/gsd-path-define/SKILL.md +10 -14
  164. package/skills/gsd-path-define/references/build-recovery.md +78 -0
  165. package/skills/gsd-path-define/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  166. package/skills/gsd-path-define/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
  167. package/skills/gsd-path-define/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
  168. package/skills/gsd-path-define/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
  169. package/skills/gsd-path-define/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
  170. package/skills/gsd-path-define/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
  171. package/skills/gsd-path-define/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
  172. package/skills/gsd-path-define/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
  173. package/skills/gsd-path-define/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
  174. package/skills/gsd-path-define/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
  175. package/skills/gsd-path-define/scripts/archive_milestone.py +2157 -0
  176. package/skills/gsd-path-define/scripts/build_recovery.py +287 -0
  177. package/skills/gsd-path-define/scripts/check_handoffs.py +1 -1
  178. package/skills/gsd-path-define/scripts/detect_project.py +11 -2
  179. package/skills/gsd-path-define/scripts/discussion_validate.py +1321 -0
  180. package/skills/gsd-path-define/scripts/integration.py +1439 -0
  181. package/skills/gsd-path-define/scripts/isolation.py +9 -1
  182. package/skills/gsd-path-define/scripts/pipeline_state.py +114 -186
  183. package/skills/gsd-path-define/scripts/promote_lookahead.py +283 -0
  184. package/skills/gsd-path-define/scripts/review_panel.py +553 -0
  185. package/skills/gsd-path-define/scripts/roadmap.py +321 -0
  186. package/skills/gsd-path-define/scripts/state_checkpoint.py +109 -72
  187. package/skills/gsd-path-define/scripts/state_promote.py +42 -44
  188. package/skills/gsd-path-docs-audit/references/dispatch.md +6 -0
  189. package/skills/gsd-path-docs-audit/references/docs-auditor.md +14 -0
  190. package/skills/gsd-path-docs-audit/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  191. package/skills/gsd-path-docs-audit/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
  192. package/skills/gsd-path-docs-audit/scripts/__pycache__/build_recovery.cpython-312.pyc +0 -0
  193. package/skills/gsd-path-docs-audit/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
  194. package/skills/gsd-path-docs-audit/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
  195. package/skills/gsd-path-docs-audit/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
  196. package/skills/gsd-path-docs-audit/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
  197. package/skills/gsd-path-docs-audit/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
  198. package/skills/gsd-path-docs-audit/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
  199. package/skills/gsd-path-docs-audit/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
  200. package/skills/gsd-path-docs-audit/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
  201. package/skills/gsd-path-docs-audit/scripts/archive_milestone.py +2157 -0
  202. package/skills/gsd-path-docs-audit/scripts/build_recovery.py +287 -0
  203. package/skills/gsd-path-docs-audit/scripts/check_docs_audit.py +5 -3
  204. package/skills/gsd-path-docs-audit/scripts/check_handoffs.py +1 -1
  205. package/skills/gsd-path-docs-audit/scripts/detect_project.py +1526 -0
  206. package/skills/gsd-path-docs-audit/scripts/discussion_validate.py +1321 -0
  207. package/skills/gsd-path-docs-audit/scripts/integration.py +1439 -0
  208. package/skills/gsd-path-docs-audit/scripts/isolation.py +9 -1
  209. package/skills/gsd-path-docs-audit/scripts/pipeline_state.py +114 -186
  210. package/skills/gsd-path-docs-audit/scripts/promote_lookahead.py +283 -0
  211. package/skills/gsd-path-docs-audit/scripts/review_panel.py +553 -0
  212. package/skills/gsd-path-docs-audit/scripts/roadmap.py +321 -0
  213. package/skills/gsd-path-docs-audit/scripts/state_checkpoint.py +109 -72
  214. package/skills/gsd-path-docs-audit/scripts/state_promote.py +42 -44
  215. package/skills/gsd-path-forensics/scripts/__pycache__/pipeline_undo.cpython-312.pyc +0 -0
  216. package/skills/gsd-path-forensics/scripts/pipeline_diagnose.py +12 -3
  217. package/skills/gsd-path-forensics/scripts/pipeline_undo.py +11 -7
  218. package/skills/gsd-path-inspect/SKILL.md +30 -8
  219. package/skills/gsd-path-inspect/references/dispatch.md +6 -0
  220. package/skills/gsd-path-inspect/references/docs-auditor.md +14 -0
  221. package/skills/gsd-path-inspect/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  222. package/skills/gsd-path-inspect/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
  223. package/skills/gsd-path-inspect/scripts/__pycache__/build_recovery.cpython-312.pyc +0 -0
  224. package/skills/gsd-path-inspect/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
  225. package/skills/gsd-path-inspect/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
  226. package/skills/gsd-path-inspect/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
  227. package/skills/gsd-path-inspect/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
  228. package/skills/gsd-path-inspect/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
  229. package/skills/gsd-path-inspect/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
  230. package/skills/gsd-path-inspect/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
  231. package/skills/gsd-path-inspect/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
  232. package/skills/gsd-path-inspect/scripts/archive_milestone.py +2157 -0
  233. package/skills/gsd-path-inspect/scripts/build_recovery.py +287 -0
  234. package/skills/gsd-path-inspect/scripts/check_docs_audit.py +5 -3
  235. package/skills/gsd-path-inspect/scripts/check_handoffs.py +1 -1
  236. package/skills/gsd-path-inspect/scripts/detect_project.py +11 -2
  237. package/skills/gsd-path-inspect/scripts/discussion_validate.py +1321 -0
  238. package/skills/gsd-path-inspect/scripts/integration.py +1439 -0
  239. package/skills/gsd-path-inspect/scripts/isolation.py +9 -1
  240. package/skills/gsd-path-inspect/scripts/pipeline_state.py +114 -186
  241. package/skills/gsd-path-inspect/scripts/promote_lookahead.py +283 -0
  242. package/skills/gsd-path-inspect/scripts/review_panel.py +553 -0
  243. package/skills/gsd-path-inspect/scripts/roadmap.py +321 -0
  244. package/skills/gsd-path-inspect/scripts/state_checkpoint.py +109 -72
  245. package/skills/gsd-path-inspect/scripts/state_promote.py +42 -44
  246. package/skills/gsd-path-inspect/scripts/workflow_run.py +226 -0
  247. package/skills/gsd-path-plan/SKILL.md +25 -17
  248. package/skills/gsd-path-plan/references/build-recovery.md +78 -0
  249. package/skills/gsd-path-plan/references/dispatch.md +6 -0
  250. package/skills/gsd-path-plan/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  251. package/skills/gsd-path-plan/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
  252. package/skills/gsd-path-plan/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
  253. package/skills/gsd-path-plan/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
  254. package/skills/gsd-path-plan/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
  255. package/skills/gsd-path-plan/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
  256. package/skills/gsd-path-plan/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
  257. package/skills/gsd-path-plan/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
  258. package/skills/gsd-path-plan/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
  259. package/skills/gsd-path-plan/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
  260. package/skills/gsd-path-plan/scripts/archive_milestone.py +2157 -0
  261. package/skills/gsd-path-plan/scripts/build_recovery.py +287 -0
  262. package/skills/gsd-path-plan/scripts/check_handoffs.py +1 -1
  263. package/skills/gsd-path-plan/scripts/detect_project.py +1526 -0
  264. package/skills/gsd-path-plan/scripts/discussion_validate.py +1321 -0
  265. package/skills/gsd-path-plan/scripts/integration.py +1439 -0
  266. package/skills/gsd-path-plan/scripts/isolation.py +9 -1
  267. package/skills/gsd-path-plan/scripts/pipeline_state.py +114 -186
  268. package/skills/gsd-path-plan/scripts/promote_lookahead.py +283 -0
  269. package/skills/gsd-path-plan/scripts/roadmap.py +321 -0
  270. package/skills/gsd-path-plan/scripts/state_checkpoint.py +109 -72
  271. package/skills/gsd-path-plan/scripts/state_promote.py +42 -44
  272. package/skills/gsd-path-plan/scripts/workflow_run.py +116 -7
  273. package/skills/gsd-path-research/SKILL.md +3 -6
  274. package/skills/gsd-path-research/references/dispatch.md +6 -0
  275. package/skills/gsd-path-research/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  276. package/skills/gsd-path-research/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
  277. package/skills/gsd-path-research/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
  278. package/skills/gsd-path-research/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
  279. package/skills/gsd-path-research/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
  280. package/skills/gsd-path-research/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
  281. package/skills/gsd-path-research/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
  282. package/skills/gsd-path-research/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
  283. package/skills/gsd-path-research/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
  284. package/skills/gsd-path-research/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
  285. package/skills/gsd-path-research/scripts/archive_milestone.py +2157 -0
  286. package/skills/gsd-path-research/scripts/build_recovery.py +287 -0
  287. package/skills/gsd-path-research/scripts/check_handoffs.py +1 -1
  288. package/skills/gsd-path-research/scripts/detect_project.py +1526 -0
  289. package/skills/gsd-path-research/scripts/discussion_validate.py +1321 -0
  290. package/skills/gsd-path-research/scripts/integration.py +1439 -0
  291. package/skills/gsd-path-research/scripts/isolation.py +9 -1
  292. package/skills/gsd-path-research/scripts/pipeline_state.py +114 -186
  293. package/skills/gsd-path-research/scripts/promote_lookahead.py +283 -0
  294. package/skills/gsd-path-research/scripts/review_panel.py +553 -0
  295. package/skills/gsd-path-research/scripts/roadmap.py +321 -0
  296. package/skills/gsd-path-research/scripts/state_checkpoint.py +109 -72
  297. package/skills/gsd-path-research/scripts/state_promote.py +42 -44
  298. package/skills/gsd-path-roadmap/SKILL.md +22 -58
  299. package/skills/gsd-path-roadmap/references/dispatch.md +6 -0
  300. package/skills/gsd-path-roadmap/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  301. package/skills/gsd-path-roadmap/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
  302. package/skills/gsd-path-roadmap/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
  303. package/skills/gsd-path-roadmap/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
  304. package/skills/gsd-path-roadmap/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
  305. package/skills/gsd-path-roadmap/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
  306. package/skills/gsd-path-roadmap/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
  307. package/skills/gsd-path-roadmap/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
  308. package/skills/gsd-path-roadmap/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
  309. package/skills/gsd-path-roadmap/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
  310. package/skills/gsd-path-roadmap/scripts/archive_milestone.py +10 -118
  311. package/skills/gsd-path-roadmap/scripts/build_recovery.py +287 -0
  312. package/skills/gsd-path-roadmap/scripts/check_handoffs.py +1 -1
  313. package/skills/gsd-path-roadmap/scripts/detect_project.py +11 -2
  314. package/skills/gsd-path-roadmap/scripts/integration.py +28 -22
  315. package/skills/gsd-path-roadmap/scripts/isolation.py +9 -1
  316. package/skills/gsd-path-roadmap/scripts/pipeline_state.py +114 -186
  317. package/skills/gsd-path-roadmap/scripts/promote_lookahead.py +30 -162
  318. package/skills/gsd-path-roadmap/scripts/roadmap.py +321 -0
  319. package/skills/gsd-path-roadmap/scripts/state_checkpoint.py +109 -72
  320. package/skills/gsd-path-roadmap/scripts/state_promote.py +42 -44
  321. package/skills/gsd-path-ship/SKILL.md +5 -4
  322. package/skills/gsd-path-ship/references/dispatch.md +6 -0
  323. package/skills/gsd-path-ship/references/reviewer-final.md +21 -0
  324. package/skills/gsd-path-ship/references/reviewer-panel.md +17 -0
  325. package/skills/gsd-path-ship/references/reviewer-skeptic.md +20 -0
  326. package/skills/gsd-path-ship/references/reviewer-wave.md +89 -0
  327. package/skills/gsd-path-ship/references/reviewer.md +12 -150
  328. package/skills/gsd-path-ship/scripts/__pycache__/_common.cpython-312.pyc +0 -0
  329. package/skills/gsd-path-ship/scripts/__pycache__/archive_milestone.cpython-312.pyc +0 -0
  330. package/skills/gsd-path-ship/scripts/__pycache__/build_recovery.cpython-312.pyc +0 -0
  331. package/skills/gsd-path-ship/scripts/__pycache__/build_state.cpython-312.pyc +0 -0
  332. package/skills/gsd-path-ship/scripts/__pycache__/check_handoffs.cpython-312.pyc +0 -0
  333. package/skills/gsd-path-ship/scripts/__pycache__/check_task_briefs.cpython-312.pyc +0 -0
  334. package/skills/gsd-path-ship/scripts/__pycache__/detect_project.cpython-312.pyc +0 -0
  335. package/skills/gsd-path-ship/scripts/__pycache__/discussion_validate.cpython-312.pyc +0 -0
  336. package/skills/gsd-path-ship/scripts/__pycache__/isolation.cpython-312.pyc +0 -0
  337. package/skills/gsd-path-ship/scripts/__pycache__/pipeline_git.cpython-312.pyc +0 -0
  338. package/skills/gsd-path-ship/scripts/__pycache__/pipeline_state.cpython-312.pyc +0 -0
  339. package/skills/gsd-path-ship/scripts/__pycache__/review_panel.cpython-312.pyc +0 -0
  340. package/skills/gsd-path-ship/scripts/__pycache__/roadmap.cpython-312.pyc +0 -0
  341. package/skills/gsd-path-ship/scripts/__pycache__/state_checkpoint.cpython-312.pyc +0 -0
  342. package/skills/gsd-path-ship/scripts/archive_milestone.py +10 -118
  343. package/skills/gsd-path-ship/scripts/build_recovery.py +287 -0
  344. package/skills/gsd-path-ship/scripts/check_handoffs.py +1 -1
  345. package/skills/gsd-path-ship/scripts/detect_project.py +1526 -0
  346. package/skills/gsd-path-ship/scripts/integration.py +28 -22
  347. package/skills/gsd-path-ship/scripts/isolation.py +9 -1
  348. package/skills/gsd-path-ship/scripts/lean_verification.py +1 -1
  349. package/skills/gsd-path-ship/scripts/pipeline_state.py +114 -186
  350. package/skills/gsd-path-ship/scripts/promote_lookahead.py +283 -0
  351. package/skills/gsd-path-ship/scripts/roadmap.py +321 -0
  352. package/skills/gsd-path-ship/scripts/state_checkpoint.py +109 -72
  353. package/skills/gsd-path-ship/scripts/state_promote.py +42 -44
  354. package/skills/gsd-path-ship/scripts/workflow_run.py +116 -7
  355. package/skills/gsd-path-ship/templates/wave-review.md +1 -1
  356. package/skills/gsd-path-undo/scripts/pipeline_undo.py +11 -7
  357. package/skills/path/BUILD.md +47 -575
  358. package/skills/path/DECIDE.md +2 -6
  359. package/skills/path/DEFINE.md +10 -14
  360. package/skills/path/INSPECT.md +30 -8
  361. package/skills/path/PLAN.md +25 -17
  362. package/skills/path/RESEARCH.md +3 -6
  363. package/skills/path/ROADMAP.md +22 -58
  364. package/skills/path/SHIP.md +5 -4
  365. package/skills/path/SKILL.md +24 -14
  366. package/skills/path/references/build-abandon.md +33 -0
  367. package/skills/path/references/build-native.md +494 -0
  368. package/skills/path/references/build-recovery.md +78 -0
  369. package/skills/path/references/coder.md +8 -3
  370. package/skills/path/references/dispatch.md +6 -0
  371. package/skills/path/references/docs-auditor.md +14 -0
  372. package/skills/path/references/reviewer-final.md +21 -0
  373. package/skills/path/references/reviewer-panel.md +17 -0
  374. package/skills/path/references/reviewer-skeptic.md +20 -0
  375. package/skills/path/references/reviewer-wave.md +89 -0
  376. package/skills/path/references/reviewer.md +12 -150
  377. package/skills/path/scripts/archive_milestone.py +10 -118
  378. package/skills/path/scripts/bootstrap_repository.py +25 -3
  379. package/skills/path/scripts/build_recovery.py +287 -0
  380. package/skills/path/scripts/check_docs_audit.py +5 -3
  381. package/skills/path/scripts/check_handoffs.py +1 -1
  382. package/skills/path/scripts/detect_project.py +11 -2
  383. package/skills/path/scripts/dispatch_driver.py +4 -2
  384. package/skills/path/scripts/integration.py +28 -22
  385. package/skills/path/scripts/isolation.py +9 -1
  386. package/skills/path/scripts/lean_verification.py +1 -1
  387. package/skills/path/scripts/pipeline_state.py +114 -186
  388. package/skills/path/scripts/promote_lookahead.py +30 -162
  389. package/skills/path/scripts/roadmap.py +321 -0
  390. package/skills/path/scripts/state_checkpoint.py +109 -72
  391. package/skills/path/scripts/state_promote.py +42 -44
  392. package/skills/path/scripts/task_context.py +73 -0
  393. package/skills/path/scripts/token_budget.py +40 -1
  394. package/skills/path/scripts/workflow_run.py +116 -7
  395. package/skills/path/templates/wave-review.md +1 -1
package/AGENTS.md CHANGED
@@ -69,7 +69,10 @@ full-repo suite on a tiny edit outrank the phase brief.
69
69
  needs verbal explanation is defective.
70
70
  - With no `.project/STATE.md`, route through the bundled
71
71
  `scripts/detect_project.py initialize --repo <absolute-root> --template
72
- <absolute-state-template>` helper; do not classify from a directory listing
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
73
76
  or conversation. Follow its JSON `verdict` and `route`. Reserve `classify`
74
77
  for read-only inspection; do not use it as a state-initialization preflight.
75
78
  - `.project/STATE.md` tracks phase position. Parse and validate it only with
@@ -98,11 +101,19 @@ full-repo suite on a tiny edit outrank the phase brief.
98
101
  deterministic logical task name, and a bounded responsibility. Independent
99
102
  briefs may run in parallel up to available child capacity; a dependent
100
103
  brief runs as soon as its dependencies complete.
101
- - Any phase-contract instruction to route, return, or invoke another GSD Path
102
- phase is a caller handoff, not permission to trigger an explicit-only
103
- skill. If an active router or orchestrator supplied the contract, return
104
- control to it. On a direct invocation, report the exact next skill and stop
105
- until the user explicitly invokes it.
104
+ - After a phase completes its gate and state update, run the bundled
105
+ `pipeline_state.py status --repo <absolute-root>` with the routed
106
+ `--project-dir`. Its `handoff` is the shared phase handoff for chat and the
107
+ dashboard. Present **Outcome** from `handoff.outcome` plus the completed
108
+ work; **Review** links the phase artifact, or `handoff.review` when absent.
109
+ An active router uses `handoff.router_next` for **Next** and follows the
110
+ returned route. A directly invoked phase uses `handoff.phase_next` and
111
+ stops. A status or plain-prompt reply uses `handoff.next` and stays read-only.
112
+ Convert the `$` invocation prefix to the host's slash form when needed.
113
+ Phase owners still stop for required input and approval before completion;
114
+ a route is not approval. Return to an active caller instead of invoking an
115
+ explicit-only sibling skill. Derive the next phase from this result, not
116
+ from another lane table in prose.
106
117
 
107
118
  ## Plain-prompt re-entry
108
119
 
@@ -118,13 +129,12 @@ full-repo suite on a tiny edit outrank the phase brief.
118
129
  authority.
119
130
  A plain change request does not authorize work outside the pipeline: make no
120
131
  changes and report **Outcome**, link the returned `path` under **Review**, and
121
- under **Next** name `next_skill` only for a `run-phase` route; for every other
122
- route, report `route.action` and `route.reason`. An explicit request to leave
132
+ under **Next** use `handoff.next`. An explicit request to leave
123
133
  or bypass the pipeline is a user ruling;
124
134
  route it through the router's undo or abandon flow instead of editing directly.
125
135
  - After any other plain-prompt turn with owned state, rerun the same read-only
126
136
  status command immediately before the final response and append the same
127
- **Outcome** / **Review** / **Next** handoff with the same exact-route rule.
137
+ **Outcome** / **Review** / **Next** handoff with the same shared handoff rule.
128
138
  Keep an informational turn read-only from start to finish: do not use repository
129
139
  mutation tools or run commands that can create or alter files. A GSD Path skill
130
140
  already supplies this handoff, so emit it once. With no STATE.md, respond
@@ -337,7 +347,8 @@ full-repo suite on a tiny edit outrank the phase brief.
337
347
  approval of the exact owner/name, visibility, default-checkout path,
338
348
  `gsd-path/M001` branch, and linked primary-worktree path. Before the
339
349
  external action produces an artifact, present those proposed targets as the
340
- inline **Review** surface and mark them not yet created. Do not write a
350
+ inline **Review** surface using the active router's preview contract.
351
+ Do not write a
341
352
  preview file into the invocation directory or another repository. Run the
342
353
  bundled bootstrap helper's read-only `preview` command for this evidence.
343
354
  - After approval, the bootstrap helper persists the exact targets under the
@@ -355,7 +366,8 @@ full-repo suite on a tiny edit outrank the phase brief.
355
366
  build-orchestrator owned.
356
367
  - Keep the cloned default checkout clean on the remote default branch. Run the
357
368
  pipeline from the linked GSD Path worktree; never initialize `.project/` in
358
- the default checkout, reuse an existing branch or path, move an existing
369
+ the default checkout, reuse an existing branch or path (except an explicitly
370
+ approved empty linked-worktree folder via `--reuse-empty-worktree`), move an existing
359
371
  repository, or recover a partial GitHub creation without the exact approved
360
372
  journal and re-verification.
361
373
 
@@ -379,6 +391,11 @@ STATE.md.
379
391
 
380
392
  ## Distribution layout
381
393
 
394
+ This section describes the GSD Path source checkout. These source paths and
395
+ the sync command do not apply to an application that only installs GSD Path.
396
+ In a consuming project, resolve roles, templates, and helpers from the active
397
+ installed skill's absolute paths; the application need not contain this layout.
398
+
382
399
  | Path | Purpose |
383
400
  |------|---------|
384
401
  | `plugin.json` | Agent Plugins manifest (`agent-plugins.org` 1.0.0 schema) |
package/DOCS.md CHANGED
@@ -70,7 +70,7 @@ node scripts/install.mjs --all --dry-run # preview — safe to run anytime
70
70
  node scripts/install.mjs --all # apply
71
71
  ```
72
72
 
73
- **npm** (no clone — once the package is published to npm):
73
+ **npm** (no clone required):
74
74
 
75
75
  ```bash
76
76
  npx @opengsd/gsd-path --all --dry-run
@@ -263,7 +263,7 @@ Full tree: [README.md](README.md#handoff-contract).
263
263
  | --- | --- |
264
264
  | Global skills | `node scripts/install.mjs --update` |
265
265
  | Project-local skills | `node scripts/install.mjs --update --local` |
266
- | From npm (once published) | `npx @opengsd/gsd-path@latest --update` |
266
+ | From npm | `npx @opengsd/gsd-path@latest --update` |
267
267
  | Guard scripts | `node scripts/install.mjs --hooks-refresh --project PATH` |
268
268
  | `AGENTS.md` / `WORKFLOW.md` | Manual merge — installer refuses overwrite |
269
269
  | Health check | `node scripts/install.mjs --doctor [--project PATH]` — read-only; flags missing/stale skills, hook drift, and bad pipeline state |
@@ -311,9 +311,10 @@ an external import bundle, reviews hook coexistence, and hands off to the Path
311
311
  router through inspect and define. See **[MIGRATE.md](MIGRATE.md)**.
312
312
 
313
313
  **Brownfield vs greenfield?**
314
- The router runs the bundled `scripts/detect_project.py initialize --repo
315
- <absolute-root>` command, which classifies the project before it creates
316
- STATE.md for a brownfield or greenfield verdict. A recognized
314
+ After the [startup prerequisites](README.md#the-flow) are met, the router
315
+ classifies the project before it creates STATE.md for a brownfield or
316
+ greenfield verdict. The exact initializer invocation belongs to the
317
+ [phase workflow](WORKFLOW.md#phase-0--inspect-gsd-path-inspect). A recognized
317
318
  manifest or source file, qualifying tracked Git file, or qualifying Markdown
318
319
  document with a body is brownfield and routes to inspect. A title-only README,
319
320
  `LICENSE`/`COPYING`, `.gitignore`, or content only in ignored trees such as
package/FULL.md CHANGED
@@ -63,10 +63,9 @@ gsd-path (router: reads STATE.md, runs the next valid phase)
63
63
  phases. See the [canonical skill table](DOCS.md#skills-optional).
64
64
 
65
65
  All skills are **explicit-only** on most hosts — generic “continue the project”
66
- does not inject the pipeline. In a project with an owned `.project/STATE.md`,
67
- such a prompt answers read-only with the current handoff and next skill, and a
68
- plain change request makes no changes (see `WORKFLOW.md`, Plain-prompt
69
- re-entry). On OpenCode stable, Antigravity CLI, and Kiro, treat explicit
66
+ does not inject the pipeline. For plain prompts and their read-only handoff,
67
+ see the [invocation and handoff rules](README.md#the-flow).
68
+ On OpenCode stable, Antigravity CLI, and Kiro, treat explicit
70
69
  invocation as an operating rule.
71
70
 
72
71
  ### Invocation by host
@@ -79,7 +78,7 @@ Use the [router and phase invocation table](README.md#install-summary) for your
79
78
 
80
79
  ### Requirements
81
80
 
82
- - **Node 18.17+** for `scripts/install.mjs` (recommended; also the npm `gsd-path` bin once the package is published to npm)
81
+ - **Node 18.17+** for `scripts/install.mjs` (recommended; also the npm `gsd-path` bin)
83
82
  - **Python 3.9+** required for project installs, project refresh, and project-state
84
83
  doctor checks; optional for global-only Node installs. `scripts/install.py`
85
84
  mirrors global and `--local` install transactions and `--update`; it does not
@@ -160,7 +159,7 @@ See [UPDATE.md](UPDATE.md) for the full updating guide. Quick reference:
160
159
  ```bash
161
160
  node scripts/install.mjs --update # global roots with existing install
162
161
  node scripts/install.mjs --update --local # current project only
163
- npx @opengsd/gsd-path@latest --update # from npm, once published
162
+ npx @opengsd/gsd-path@latest --update # from npm
164
163
  ```
165
164
 
166
165
  Previous copies move to `disabled-gsd-skills` beside each root. The router may
@@ -184,12 +183,9 @@ Open your agent in the project directory. Invoke the router explicitly.
184
183
 
185
184
  ### Initial greenfield repository (first milestone)
186
185
 
187
- With no `.project/STATE.md`, a `greenfield` classifier verdict routes to
188
- **define** immediately. The [DOCS.md FAQ](DOCS.md#faq) owns the exact
189
- classification rules.
190
- For an explicit request to create a new GitHub repository, the router first
191
- previews the repository and linked-worktree targets for approval as described
192
- in [README.md](README.md#the-flow).
186
+ Follow the [startup and repository setup guidance](README.md#the-flow) first.
187
+ Once setup is complete, a `greenfield` classifier verdict routes to **define**.
188
+ The [DOCS.md FAQ](DOCS.md#faq) owns the exact classification rules.
193
189
 
194
190
  Define interviews across: problem, users, observable success, scope in,
195
191
  scope out (vetoes), constraints, risks, and surfaces. A surface is anything a
@@ -469,7 +465,7 @@ node scripts/install.mjs --update [--local]
469
465
  node scripts/install.mjs --hooks-refresh --project /path/to/repo
470
466
  node scripts/install.mjs --hooks-refresh-full --project /path/to/repo
471
467
 
472
- # From npm (once the package is published to npm)
468
+ # From npm
473
469
  npx @opengsd/gsd-path --all
474
470
  npx @opengsd/gsd-path@latest --update
475
471
  ```
package/QUICK.md CHANGED
@@ -40,7 +40,7 @@ first (never writes files):
40
40
  node scripts/install.mjs --all --dry-run
41
41
  node scripts/install.mjs --all
42
42
 
43
- # From npm, no clone — once the package is published to npm
43
+ # From npm, no clone required
44
44
  npx @opengsd/gsd-path --all --dry-run
45
45
  npx @opengsd/gsd-path --all
46
46
  ```
@@ -87,8 +87,8 @@ In the **project directory**, type explicitly:
87
87
 
88
88
  Use the [router and phase invocation table](README.md#install-summary) for your host.
89
89
 
90
- “Continue the project” does not advance a phase. With an owned
91
- `.project/STATE.md` it reports the current handoff and next skill, read-only.
90
+ For plain prompts such as “continue the project,” see the
91
+ [invocation and handoff rules](README.md#the-flow).
92
92
 
93
93
  **One phase only?** e.g. `/gsd-path-plan` — see skill table in [DOCS.md](DOCS.md#using).
94
94
  Need to talk through a question without advancing? Use `/gsd-path-discuss`;
package/README.md CHANGED
@@ -27,22 +27,140 @@ proof and each host's guard tier.
27
27
  | **[UPDATE.md](UPDATE.md)** | Refresh skills, hooks, or contracts |
28
28
  | [WORKFLOW.md](WORKFLOW.md) | Phase-by-phase agent SOP |
29
29
  | [HOOKS.md](HOOKS.md) | Optional archive/git guard hooks |
30
+ | [daemon/README.md](daemon/README.md) | Dashboard, menu-bar app, and monitoring setup |
31
+ | [RELEASE.md](RELEASE.md) | Maintainer CI and npm release cycle |
30
32
  | [GUIDE.md](GUIDE.md) | Pointer to the guides above |
31
33
 
34
+ ## Install from npm
35
+
36
+ Requires **Node.js 18.17+** for the npm installer and **Python 3.9+** for
37
+ project contracts and pipeline helpers. Install and sign in to a supported
38
+ coding-agent host separately; GSD Path installs its skills, not the host itself.
39
+ The public npm package is **[@opengsd/gsd-path](https://www.npmjs.com/package/@opengsd/gsd-path)**.
40
+
32
41
  ```bash
33
- # New user
34
- node scripts/install.mjs --all --dry-run && node scripts/install.mjs --all
35
- cd your-repo && node scripts/install.mjs --all --project "$(pwd)"
36
- # In agent: invoke the router (see Install summary below)
42
+ # Interactive installer: choose hosts, install scope, contracts, and hooks
43
+ npx @opengsd/gsd-path@latest
37
44
 
38
- # Already installed
39
- node scripts/install.mjs --update
40
- cd your-repo && node scripts/install.mjs --update --project "$(pwd)" # also refresh .gsd-path/
45
+ # Or preview and install skills for all supported hosts
46
+ npx @opengsd/gsd-path@latest --all --dry-run
47
+ npx @opengsd/gsd-path@latest --all
48
+
49
+ # Add contracts and the status runtime to your project
50
+ npx @opengsd/gsd-path@latest --all --project /path/to/your-repo
51
+
52
+ # Update existing installs
53
+ npx @opengsd/gsd-path@latest --update
54
+ npx @opengsd/gsd-path@latest --update --project /path/to/your-repo
55
+ ```
56
+
57
+ Use host flags such as `--claude --codex` instead of `--all` to select hosts.
58
+ For project-local skills, run from your project directory and add `--local`
59
+ to install and update commands. `--project PATH` selects where contracts are
60
+ written; it does not change the directory used by `--local`. Run
61
+ `npx @opengsd/gsd-path@latest --help` for all options. After installing, invoke
62
+ `$path` in Codex or `/path` on slash-command hosts to start the pipeline.
63
+ See [Install (summary)](#install-summary) for the host list and source-checkout commands.
64
+ The npm command installs the latest published release; a source checkout may
65
+ contain newer changes.
66
+
67
+ ### Start your first project
68
+
69
+ 1. Open your project folder in your coding-agent host. Existing repositories
70
+ need Git; GitHub repository creation and pull-request operations also need
71
+ an authenticated GitHub CLI (`gh`).
72
+ 2. Start or reload the host session so it discovers the installed skills.
73
+ 3. Invoke `$path` in Codex, or `/path` on slash-command hosts. The router
74
+ identifies the project and guides you through the required inputs and approvals.
75
+ 4. Resume later from the same folder with the router. Use `$path status`
76
+ (Codex) or `/path status` to inspect progress without advancing.
77
+
78
+ For a missing skill or an install problem, run:
79
+
80
+ ```bash
81
+ npx @opengsd/gsd-path@latest --doctor --project /path/to/your-repo
82
+ ```
83
+
84
+ Add `--local` when checking project-local skills, from that project directory.
85
+ See [QUICK.md](QUICK.md) for the first-run checklist and [HOOKS.md](HOOKS.md)
86
+ for optional Git and host guard hooks.
87
+
88
+ ## Dashboard and menu-bar toolbar
89
+
90
+ The optional **OpenGSD Path monitor** shows your projects without opening each
91
+ project's `.project/` files. It watches the folders you choose and reads project
92
+ state; it does not run pipeline commands or advance phase gates.
93
+ The monitor is a separate install from the npm skills package.
94
+
95
+ ### Dashboard
96
+
97
+ The project board shows blocked, active, and shipped work, with milestone and
98
+ phase progress, task counts, last activity, and available usage data. Use the
99
+ top toolbar to filter or search projects, refresh status, and open Settings for
100
+ watched folders, plugin management, and appearance.
101
+
102
+ ![OpenGSD Path dashboard showing sample projects, phase progress, and toolbar controls](docs/images/dashboard-board.png)
103
+
104
+ Click a project to see its milestone roadmap, tasks, success criteria, review
105
+ results, verification history, and activity. Usage includes tokens and turns
106
+ from supported host session logs; cost estimates require model prices in the
107
+ daemon configuration.
108
+
109
+ ![Project dashboard showing milestone progress, criteria, tasks, and usage with sample data](docs/images/dashboard-project.png)
110
+
111
+ ### macOS menu bar
112
+
113
+ Click the OpenGSD Path menu-bar icon for a compact project list with phase
114
+ meters and task progress. Click a project to open its dashboard page. The
115
+ bottom toolbar opens the dashboard, plugin settings, and watched folders;
116
+ it also provides rescan, appearance, and quit controls. The daemon row shows
117
+ its running state and provides restart and stop controls. Option-click the
118
+ menu-bar icon to open the dashboard directly.
119
+
120
+ <img src="docs/images/macos-menu-bar.png" alt="OpenGSD Path native macOS panel with sample projects and its bottom toolbar" width="400">
121
+
122
+ *Screenshots show the current UI with sample project data. The native panel is
123
+ captured in its preview window.*
124
+
125
+ ### Install the monitor
126
+
127
+ The monitor requires Python 3.9+. From a source checkout, preview the setup,
128
+ then install (macOS/Linux shell):
129
+
130
+ ```bash
131
+ git clone https://github.com/open-gsd/gsd-path.git
132
+ cd gsd-path
133
+ PYTHONPATH=daemon python3 -m gsd_daemon install --dry-run
134
+ PYTHONPATH=daemon python3 -m gsd_daemon install
41
135
  ```
42
136
 
43
- Interactive: `npx @opengsd/gsd-path` with no flags opens the OpenGSD wizard (pick hosts, scope, contracts, hooks; dry-run first)
137
+ On Windows, after cloning and entering `gsd-path`, use PowerShell:
44
138
 
45
- npm (once published to npm): `npx @opengsd/gsd-path --all` · Help: `node scripts/install.mjs --help`
139
+ ```powershell
140
+ $env:PYTHONPATH = "daemon"
141
+ python -m gsd_daemon install --dry-run
142
+ python -m gsd_daemon install
143
+ ```
144
+
145
+ On Windows, launch the installed shortcut for this session before opening the
146
+ dashboard. It starts automatically at future logins:
147
+
148
+ ```powershell
149
+ Start-Process "$env:APPDATA\Microsoft\Windows\Start Menu\Programs\Startup\gsd-path-daemon.lnk"
150
+ ```
151
+
152
+ Open **http://127.0.0.1:8765**, then use **Settings → Watched folders** to add
153
+ your project folders. The installer creates an isolated Python environment and
154
+ configures autostart. On macOS it also builds and installs the native menu-bar
155
+ app; this requires macOS 12+ and Xcode Command Line Tools (`swiftc`). On
156
+ macOS, use `--no-tray` for the dashboard only. Linux autostart runs the
157
+ dashboard; launch the optional tray separately with
158
+ `~/.gsd-path/venv/bin/gsd-path-daemon tray`. Windows uses a tray-and-dashboard
159
+ Startup shortcut; see the [daemon guide](daemon/README.md) for platform details.
160
+
161
+ See the [daemon guide](daemon/README.md) for configuration, usage pricing,
162
+ manual startup, and platform setup, or the [macOS guide](daemon/macos/README.md)
163
+ for native menu-bar details.
46
164
 
47
165
  ## Skills
48
166
 
@@ -91,7 +209,7 @@ flowchart TD
91
209
  B --> W{"wave loop"}
92
210
  W -->|"briefs linted at base SHA"| C["parallel coders, isolated worktrees"]
93
211
  C -->|"streaming: dependents dispatch as deps land"| V{"wave review"}
94
- V -->|"full or deep: contract + adversarial lenses"| F{"verdict"}
212
+ V -->|"full / verify-only / deep"| F{"verdict"}
95
213
  F -->|"blocked → criterion triage"| W
96
214
  F -->|"pass → next wave"| W
97
215
  F -->|"all waves pass"| S["6 · ship — final review"]
@@ -109,6 +227,16 @@ flowchart TD
109
227
  A -->|"program complete"| PC["stop"]
110
228
  ```
111
229
 
230
+ Starting in an empty folder without Git leaves that folder unchanged until
231
+ repository setup. The router asks whether to create a new GitHub repository or
232
+ use an existing repository. For a new repository, approve the exact owner/name,
233
+ visibility, default-checkout path, `gsd-path/M001` branch, and linked-worktree
234
+ path before creation. The starting folder is proposed as the linked worktree,
235
+ with a distinct default checkout beside it, so the agent keeps working where
236
+ it started. Only an approved empty directory can be reused; nonempty folders
237
+ and symlinks remain protected. Pipeline state is created after repository
238
+ setup. See the [repository setup procedure](WORKFLOW.md#new-github-repository-creation).
239
+
112
240
  For an existing Git repository, initialization writes STATE.md first. Before
113
241
  entering inspect or define, the router fetches `origin/main`, creates or adopts
114
242
  `gsd-path/M001` there, and records the binding in state. Build only uses that
@@ -123,6 +251,8 @@ advance past an unresolved required follow-up.
123
251
 
124
252
  **Build, under the hood:**
125
253
 
254
+ - For intent corrections or structural plan repair during a blocked build,
255
+ follow the [build recovery contract](skills/gsd-path/references/build-recovery.md).
126
256
  - Task briefs are linted against the real base tree (`check_task_briefs.py`)
127
257
  before any agent is dispatched, and every coder runs a preflight — paths
128
258
  exist or are declared, interface contracts match siblings verbatim — so a
@@ -146,9 +276,11 @@ advance past an unresolved required follow-up.
146
276
 
147
277
  Invoke the router explicitly to start or advance a phase. Once a project has an
148
278
  owned `.project/STATE.md`, a plain prompt such as “continue the project” answers
149
- read-only with the current handoff and names the next skill; it never advances
150
- a phase or edits state. Phase skills stop at their handoff; invoke the router
151
- again to continue.
279
+ read-only with the current handoff and uses the runtime’s `handoff.next`; it
280
+ never advances a phase or edits state. An active router continues across completed phases
281
+ until required input, approval, or a block. A phase invoked directly stops at
282
+ its handoff; invoke the router again to continue. Chat and the dashboard use
283
+ the same executable phase handoff from the status runtime.
152
284
  The discussion sidecar is the exception: it can be invoked at any non-shipped
153
285
  phase and returns only a durable conversation record.
154
286
 
@@ -203,10 +335,14 @@ top-level `SYNTHESIS.md`) remain active project metadata.
203
335
 
204
336
  ## Install (summary)
205
337
 
206
- Node 18.17+. Project installs also require Python 3.9+. Validates package,
338
+ Node 18.17+ for the Node installer; Python 3.9+ for project installs and pipeline
339
+ helpers. Validates package,
207
340
  backs up existing skills, and rolls back on failure.
208
341
  **Always** `--dry-run` first when unsure.
209
342
 
343
+ The commands below run from a source checkout. For npm, replace
344
+ `node scripts/install.mjs` with `npx @opengsd/gsd-path@latest`.
345
+
210
346
  ```bash
211
347
  node scripts/install.mjs --all --dry-run
212
348
  node scripts/install.mjs --all
@@ -271,6 +407,7 @@ make install && make verify # same path as GitHub Actions CI
271
407
  | `HOOKS.md` | Guard hooks |
272
408
  | `skills/` | Canonical skills and generated aliases declared in [the resource manifest](scripts/skill-resources.json) |
273
409
  | `platforms/` | Host dispatch adapters |
410
+ | `daemon/` | Project monitor, dashboard, and tray apps |
274
411
  | `scripts/install.mjs` | Installer (npm `gsd-path` bin) |
275
412
  | `scripts/install.py` | Python installer |
276
413
  | `AGENTS.md` | Operating rules (installed to projects) |
package/RUNTIME.md CHANGED
@@ -13,6 +13,10 @@ It does not dispatch models or supply owner approvals.
13
13
  Use the absolute `workflow_run.py` path in the active skill's scripts directory.
14
14
  All commands require `--repo <absolute repository root>`.
15
15
 
16
+ Initial inspection also uses `prepare-inspect` and `finish-inspect`. Their
17
+ inputs, receipt handling, and entry conditions are owned by the
18
+ [inspection procedure](skills/gsd-path-inspect/SKILL.md#process).
19
+
16
20
  | Command | Required input | Result |
17
21
  | --- | --- | --- |
18
22
  | `route` | Optional `--project-dir .project/next` | Canonical route; follow its action even when it blocks or requests recovery. |
@@ -192,7 +196,9 @@ python3 <token_budget.py> admit --ledger <absolute ledger> --task <next logical
192
196
  The metric is the host's `output_tokens`, including its reported reasoning output;
193
197
  reasoning is not added again. Input and cached input are not included. Resumptions
194
198
  reuse the ledger and task identity. Each CLI invocation uses its immutable event
195
- file. Re-observing that file is idempotent; new invocations accumulate. Native
199
+ file. Re-observing that file is idempotent. For per-invocation versus cumulative
200
+ resume counters, follow the [dispatch accounting contract](platforms/shared-agents/dispatch.md#configured-output-budgets):
201
+ new invocations must charge only new output. Native
196
202
  single-invocation child sessions and Claude `--output-format json` usage
197
203
  receipts are supported. Resumed native child logs with
198
204
  ambiguous cumulative counters fail closed; use separate CLI run receipts instead.
package/WORKFLOW.md CHANGED
@@ -5,6 +5,13 @@ Idea to shipped code through a gated pipeline. The `gsd-path` router reads
5
5
  Every handoff is on disk; the any-phase discussion sidecar also records its
6
6
  dialogue and answers on disk. AGENTS.md supplies the shared operating rules.
7
7
 
8
+ **Path scope.** `.project/` paths describe the consuming project's artifacts.
9
+ References to `skills/`, `scripts/`, `platforms/`, `RUNTIME.md`, and `HOOKS.md`
10
+ describe the GSD Path source checkout, which an application need not contain.
11
+ For execution in an installed project, resolve each role, template, and helper
12
+ from the active skill's bundled absolute paths. Source-relative links below
13
+ are navigation within the GSD Path source checkout, not installed-file claims.
14
+
8
15
  **Program flow.** When the work is a multi-milestone program, define runs in
9
16
  program mode and writes `.project/CHARTER.md` (enduring scope and vetoes),
10
17
  research and decide work at program scope, and the roadmap phase slices the
@@ -28,7 +35,7 @@ is the single-milestone flow below.
28
35
 
29
36
  Use the host-specific child-agent tool defined by the runtime dispatch contract
30
37
  bundled in the `gsd-path` skill, or the build contract's
31
- [dispatch driver](RUNTIME.md#dispatch-driver) when the owner supplies a child
38
+ [dispatch driver](https://github.com/open-gsd/gsd-path/blob/main/RUNTIME.md#dispatch-driver) when the owner supplies a child
32
39
  command. Spawn independent work up to the available
33
40
  child capacity and batch any remainder. Every spawned agent has isolated
34
41
  context, so its brief must include the absolute role path, exact input paths,
@@ -95,13 +102,12 @@ Project installs include the router's read-only status engine at
95
102
  On any turn that did not explicitly invoke a GSD Path
96
103
  skill, an owned `.project/STATE.md` activates re-entry. Informational prompts
97
104
  finish read-only and end with the current **Outcome** / **Review** / **Next**
98
- handoff. Mutation prompts make no changes and point to the status result's
99
- `next_skill` only when `route.action` is `run-phase`. Every other route reports
100
- its exact `route.action` and `route.reason`. The status engine never initializes state
101
- or advances a phase.
105
+ handoff. Both informational and mutation replies use the status result's
106
+ `handoff.next` for **Next**. Mutation prompts make no changes. The status engine
107
+ never initializes state or advances a phase.
102
108
 
103
109
  The optional pre-tool guard backs this up where it has deterministic evidence.
104
- See [HOOKS.md](HOOKS.md#what-gets-blocked) for write restrictions, including
110
+ See [HOOKS.md](https://github.com/open-gsd/gsd-path/blob/main/HOOKS.md#what-gets-blocked) for write restrictions, including
105
111
  closed milestone branches and target worktrees. Shell provenance
106
112
  cannot prove which skill initiated a command, so the always-loaded AGENTS.md
107
113
  contract owns shell cases.
@@ -113,7 +119,11 @@ gate. Resolve and preview the GitHub owner/name, visibility, normal default
113
119
  checkout, `gsd-path/M001` branch, and a distinct linked-worktree path.
114
120
  Create no repository, checkout, worktree, pipeline state, journal, or preview
115
121
  file until the user approves every target; present the pre-creation review
116
- inline from the bootstrap helper's read-only `preview` result.
122
+ inline from the bootstrap helper's read-only `preview` result. An existing
123
+ empty invocation folder may be the linked worktree with approved
124
+ `--reuse-empty-worktree`; Git populates it in place. Keep the workspace journal
125
+ outside that folder. Preserve nonempty folders and choose another target;
126
+ never delete the invocation folder or its state to pass a preview.
117
127
 
118
128
  After approval, the bundled bootstrap helper writes an exact transaction
119
129
  journal under the approved workspace before mutation. Its `create` command
@@ -137,8 +147,9 @@ at `inspect/active|blocked`. **Output:**
137
147
 
138
148
  When STATE.md is absent, the router runs the bundled
139
149
  `scripts/detect_project.py initialize --repo <absolute-root> --template
140
- <absolute-state-template>` helper before asking anything and routes from its
141
- returned JSON. `brownfield` initializes `inspect/active` and routes here;
150
+ <absolute-state-template> --require-git` helper before asking anything and routes from its
151
+ returned JSON. `route: setup-repository` leaves a non-Git folder unchanged and
152
+ asks for repository setup before creating state. `brownfield` initializes `inspect/active` and routes here;
142
153
  `greenfield` initializes `define/active` and skips to define; `orphan` blocks.
143
154
  Owned state routes by STATE.md without rerunning the helper. Reserve `classify`
144
155
  for read-only inspection; do not re-derive a verdict from a directory listing.
@@ -214,8 +225,8 @@ milestone` instead: research and decide run only when the roadmap entry lists
214
225
  open questions, and planning writes a Settled-only milestone SYNTHESIS.md from
215
226
  the program synthesis before dispatching the planner. The quick lane skips
216
227
  research and decide — planning enters directly from `define/done`, writes
217
- a Settled-only SYNTHESIS.md and a single wave (verify-only review depth
218
- permitted, at most two tasks) without a planner agent, and the rest of the
228
+ a Settled-only SYNTHESIS.md and a single wave (full or deep review depth,
229
+ at most two tasks) without a planner agent, and the rest of the
219
230
  pipeline runs unchanged. A quick plan that outgrows those bounds corrects the
220
231
  lane to `standard` and reroutes through research.
221
232
 
@@ -366,6 +377,12 @@ build's re-entry transition instead).
366
377
  **Input:** the approved plan and tasks. **Output:** committed code, updated
367
378
  task files, and wave reviews.
368
379
 
380
+ A blocked build returns through the guarded
381
+ [build recovery contract](skills/gsd-path/references/build-recovery.md) when
382
+ approved intent must change or the remaining task inventory needs repair.
383
+ It preserves landed work, re-gates changed contracts, and returns through a new
384
+ plan approval checkpoint. Ship and archived milestones cannot use this path.
385
+
369
386
  The build contract is not restated here. Branch binding, the wave loop, task
370
387
  isolation and landing, wave review, fix batching, completion, and milestone
371
388
  abandon live only in the canonical
@@ -477,8 +494,7 @@ The ship phase closes the milestone with exactly one commit on the bound
477
494
  branch: the shipped STATE.md, the final-review artifacts, and the archive
478
495
  move with its MANIFEST.md, staged from `.project/` only, subject
479
496
  `ship: M00N — <milestone-slug>` and a body naming `Archive:` and
480
- `Reviewed-HEAD:`. Every other commit on the bound branch
481
- belongs to the build orchestrator. The commit must contain only `.project/`
497
+ `Reviewed-HEAD:`. The ship commit must contain only `.project/`
482
498
  paths. There is no untracked-project fallback. Every pipeline commit carries
483
499
  the subject and field body defined by its canonical phase contract; task-land
484
500
  fields live only in the
@@ -645,7 +661,7 @@ with their exact ordered source-file and row list.
645
661
  research/evidence-codebase.md brownfield ground truth (inspect)
646
662
  research/DOCS-AUDIT.md doc-vs-code verdicts and remediation queue
647
663
  research/RESEARCH.md research dispatch/question/output manifest
648
- research/evidence-*.md four required evidence dimensions
664
+ research/evidence-*.md evidence for dispatched dimensions; RESEARCH.md records skips
649
665
  research/SYNTHESIS.md decision artifact; authoritative after decide gate
650
666
  plan/PLAN.md waves, config, and project verify
651
667
  tasks/T###-slug.md full contract, clean base SHA, status
package/package.json CHANGED
@@ -1,8 +1,16 @@
1
1
  {
2
2
  "name": "@opengsd/gsd-path",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "description": "Disk-backed AI agent pipeline. Docs: DOCS.md (start here), QUICK.md, FULL.md, UPDATE.md",
5
5
  "license": "MIT",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/open-gsd/gsd-path.git"
9
+ },
10
+ "bugs": {
11
+ "url": "https://github.com/open-gsd/gsd-path/issues"
12
+ },
13
+ "homepage": "https://github.com/open-gsd/gsd-path#readme",
6
14
  "type": "module",
7
15
  "bin": {
8
16
  "gsd-path": "scripts/install.mjs"
@@ -18,7 +26,9 @@
18
26
  "scripts/wizard.mjs",
19
27
  "scripts/skill-resources.json",
20
28
  "scripts/_common.py",
29
+ "scripts/build_recovery.py",
21
30
  "scripts/state_checkpoint.py",
31
+ "scripts/roadmap.py",
22
32
  "scripts/state_promote.py",
23
33
  "scripts/discussion_validate.py",
24
34
  "scripts/integration.py",
@@ -43,6 +53,7 @@
43
53
  "scripts/loop_run.py",
44
54
  "scripts/workflow_run.py",
45
55
  "scripts/dispatch_driver.py",
56
+ "scripts/task_context.py",
46
57
  "scripts/lean_verification.py",
47
58
  "scripts/token_budget.py",
48
59
  "scripts/pipeline_undo.py",
@@ -76,5 +87,8 @@
76
87
  "verify": "npm test && npm run test:python && python3 scripts/sync_skill_resources.py --check",
77
88
  "verify:release": "npm run verify && python3 scripts/check_trust_evidence.py --repo .",
78
89
  "prepublishOnly": "npm run verify:release"
90
+ },
91
+ "devDependencies": {
92
+ "yaml": "^2.9.1"
79
93
  }
80
94
  }
@@ -122,6 +122,12 @@ directory for the full logical session; resumptions reuse it. Record completed
122
122
  parent CLI run events and each native child's session events with stable logical
123
123
  task names before the next dispatch. The helper reads host counters and refuses
124
124
  incomplete or ambiguous usage; never estimate tokens or reset the ledger.
125
+ When the verified CLI adapter reports cumulative counters across `resume`, record
126
+ each later invocation with `--previous-events <previous recorded CLI events>`.
127
+ The helper checks thread identity and records only the new output, preserving the
128
+ raw total and predecessor. Keep that chain in order; never sum cumulative totals.
129
+ Use ordinary `record` for per-invocation counters. An unknown counter convention
130
+ is unproven usage, not permission to guess.
125
131
  Run `admit` for the next task and stop dispatch on a blocked result. Preserve
126
132
  its output in the dispatch evidence. This gates observed usage only: concurrent
127
133
  or in-flight work can overrun before the host reports usage. Codex CLI has no