@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
@@ -0,0 +1,21 @@
1
+ ## Final integration mode
2
+
3
+ Use only final-review.md. Treat INTENT.md success criteria as the rubric.
4
+ Exercise the running system and record `met`, `not-met`, or `unverifiable`
5
+ with checked command output or a precise file reference. When PLAN.md carries
6
+ a `## Surface contract`, every criterion it lists under a surface is checked
7
+ by performing that surface's Walkthrough from its Entry in the supplied
8
+ sidecar: `Surface` names that surface, Check names what was performed,
9
+ Observed records what the surface actually showed at each state, and a missing
10
+ or unreachable surface is `not-met`. A surface criterion is never `met` on
11
+ internal test output alone. Run project commands only in the supplied verify
12
+ sidecar at the exact reviewed HEAD. Do not
13
+ re-run PLAN.md's project Verify; cite the orchestrator's recorded
14
+ project-verify sidecar output. `pass`
15
+ requires every criterion to be `met`.
16
+
17
+ ## Final gap mode
18
+
19
+ Use only gap-review.md. Check the one cross-wave risk in the brief against the
20
+ running system in the supplied verify sidecar at the exact reviewed HEAD.
21
+ Record evidence and `pass` or `blocked`; an unverified risk is blocked.
@@ -0,0 +1,17 @@
1
+ ## Plan panel mode
2
+
3
+ Use only plan-panel.md. Review `.project/plan/PLAN.md` and every task file
4
+ against INTENT.md and SYNTHESIS.md. Do not edit those files. Write one
5
+ finding block per issue, or `- none`. Mark `Kind: criterion` only when the
6
+ finding names a written plan/task criterion; alternate designs are
7
+ `Kind: preference`. This output is advisory. The structural plan gate and
8
+ the user's approval remain the only plan gates.
9
+
10
+ ## Wave panel mode
11
+
12
+ Use only wave-panel.md. Apply every Wave mode evidence rule (recorded SHAs,
13
+ isolated patch, recorded Verify) when the brief supplies a verify sidecar.
14
+ On a `deep` wave the brief is the adversarial lens only. Record findings
15
+ the same way as plan panel mode. Do not write a Wave verdict and do not
16
+ edit the canonical wave-review file. The inherit reviewer remains the only
17
+ pass/fail.
@@ -0,0 +1,20 @@
1
+ ## Skeptic mode
2
+
3
+ Use only skeptic.md. The brief supplies one canonical criterion locator, the
4
+ failed criterion verbatim, and every distinct blocking observation for that
5
+ criterion from the `deep` wave lenses, plus the involved task files and their
6
+ recorded bases and proven landing commits. The only job is to refute all of
7
+ those observations.
8
+
9
+ - Apply every Wave mode evidence rule (recorded SHAs, isolated patch,
10
+ recorded Verify) in the supplied sidecar, scoped to the tasks the
11
+ observations cite.
12
+ - Address every distinct observation separately. Record `Verdict: refuted`
13
+ only when checked evidence refutes every observation by proving each
14
+ claimed failure cannot occur or the cited criterion actually holds.
15
+ Anything short of that is `Verdict: stands`.
16
+ - Stage
17
+ `.project/review/wave-N.cycleC.skeptic-<criterion_locator>.md` under the
18
+ supplied sidecar.
19
+ - Do not write a Wave verdict and do not review anything beyond the
20
+ supplied criterion and observations.
@@ -0,0 +1,89 @@
1
+ ## Wave mode
2
+
3
+ Use task acceptance criteria and the INTENT.md success criteria owned by
4
+ tasks in this wave as the rubric. For each task:
5
+
6
+ 1. Read the task file's `base` and the landing commit SHA the orchestrator
7
+ supplied in your brief (it comes from `isolation.py land`/`recover`).
8
+ Never infer either SHA from task ids, branch position, or nearby history.
9
+ 2. Fail a missing, malformed, or invalid SHA. Inspect the commit with
10
+ `git show --format=fuller --stat --patch <commit> --`.
11
+ 3. In the supplied verify sidecar at `base`, apply only the complete
12
+ binary patch from `commit^..commit` for the task's declared product files
13
+ and inspect the diff. Use the orchestrator's recorded isolated Verify
14
+ output in that task's Log as the Verify evidence. Do not re-run the
15
+ task Verify command or PLAN.md's project Verify. Re-run a command only
16
+ when the recorded output plus the isolated diff cannot check the
17
+ criterion. Never use the primary worktree or branch tip as task
18
+ evidence. Do not create or remove Git worktrees yourself.
19
+ 4. Mark `pass` or `fail`. Before the evidence separator (` — `), copy the
20
+ complete task acceptance or interface criterion verbatim, joining wrapped
21
+ lines with spaces. Do not substitute an AC id or summary: finding grouping
22
+ binds this text to the task. Give the observed result, `file:line`, and
23
+ concrete fix direction for each failure.
24
+
25
+ Then check each INTENT.md success criterion owned by a task in this wave
26
+ against that same isolated product. Copy the criterion verbatim from
27
+ INTENT.md. Mark `pass` or `fail` with evidence; a failed owned SC blocks
28
+ the wave. Omit the Intent coverage section when no task in the wave owns
29
+ an SC.
30
+
31
+ Allow changed paths only in the task's `files` plus its assigned task file.
32
+ Within the task file, allow orchestrator-owned `base`, `worktree`,
33
+ `task_branch`, `status`, and `agent` fields plus append-only Log
34
+ entries; block contract-body changes in the task commit. Warn on disabled tests
35
+ or Verify commands that cannot fail unless either defeats a criterion. Set the
36
+ wave verdict to `pass` only when every task passes and every owned INTENT
37
+ success criterion for the wave passes.
38
+
39
+ For cycle greater than 1, read the previous review, re-check every failure,
40
+ and regression-check affected passes. State when the same criterion fails for
41
+ a different reason. Use only the wave-review template.
42
+
43
+ ### Re-review after a proven repair
44
+
45
+ When the brief supplies a `review_findings.py repair-evidence` receipt, use
46
+ its isolated repair product for the linked original criteria, including owned
47
+ INTENT criteria. The original faulty landing and earlier verdicts remain
48
+ historical evidence; they do not force the later verdict to remain failed.
49
+ Reconstruct the receipt's repair `base` plus only its `commit^..commit` patch
50
+ for `files` inside the supplied sidecar. Read the repair task's recorded
51
+ Verify, inspect the patch against the original unchanged contract, and reuse
52
+ settled checks. Check unaffected criteria from their prior evidence plus the
53
+ repair diff for regressions. Cite the receipt, repair landing and task Log in
54
+ the new review. A receipt proves provenance, not acceptance: judge whether the
55
+ repair actually satisfies the criterion. A missing or rejected receipt blocks
56
+ using that repair; the parent resolves it rather than creating another product
57
+ fix for the unchanged historical failure.
58
+
59
+ ## Final scope in a quick full wave
60
+
61
+ When explicitly briefed with final scope, record `Review scope: final` and the
62
+ full supplied review HEAD in the wave artifact. Check all INTENT success criteria
63
+ and PLAN's Surface contract against the completed isolated product. Each surface
64
+ criterion's Intent coverage block includes `- **Surface**:`, `- **Check**:`, and
65
+ `- **Observed**:` with the walked states and actual result. Reuse recorded task
66
+ output if it proves that exact walkthrough; run only a missing check. Final-scope
67
+ coverage shares this wave artifact; do not write a second report. Shipping's
68
+ runtime checks freshness and derives the final view from these records.
69
+
70
+ ## Deep review lenses
71
+
72
+ A `deep` wave spawns two independent reviewers in parallel, each with a fresh
73
+ context and its own verify sidecar at the recorded review base. Every
74
+ Wave mode rule above applies to both lenses.
75
+
76
+ - **Contract** — logical task name
77
+ `review_wave_<wave>_cycle_<cycle>_contract`; stages
78
+ `.project/review/wave-N.cycleC.contract.md`. This is the full wave review:
79
+ patches applied to the recorded base, recorded Verify plus diff, every
80
+ acceptance criterion and interface contract checked. Record `Lens:
81
+ contract`.
82
+ - **Adversarial** — logical task name
83
+ `review_wave_<wave>_cycle_<cycle>_adversarial`; stages
84
+ `.project/review/wave-N.cycleC.adversarial.md`. Try to kill the work:
85
+ security holes, unhandled edge cases, failure modes, data-loss and
86
+ concurrency risks, missing error handling. Record `Lens: adversarial`.
87
+
88
+ The wave passes only when both lenses return `pass`; any `blocked` lens
89
+ blocks the wave.
@@ -17,156 +17,18 @@ Verify written GSD Path expectations and block failures. Never fix code.
17
17
  inside supplied sidecars. Never edit a product path or any other
18
18
  primary-worktree path. Stop on a missing input or template.
19
19
 
20
- ## Wave mode
21
-
22
- Use task acceptance criteria and the INTENT.md success criteria owned by
23
- tasks in this wave as the rubric. For each task:
24
-
25
- 1. Read the task file's `base` and the landing commit SHA the orchestrator
26
- supplied in your brief (it comes from `isolation.py land`/`recover`).
27
- Never infer either SHA from task ids, branch position, or nearby history.
28
- 2. Fail a missing, malformed, or invalid SHA. Inspect the commit with
29
- `git show --format=fuller --stat --patch <commit> --`.
30
- 3. In the supplied verify sidecar at `base`, apply only the complete
31
- binary patch from `commit^..commit` for the task's declared product files
32
- and inspect the diff. Use the orchestrator's recorded isolated Verify
33
- output in that task's Log as the Verify evidence. Do not re-run the
34
- task Verify command or PLAN.md's project Verify. Re-run a command only
35
- when the recorded output plus the isolated diff cannot check the
36
- criterion. Never use the primary worktree or branch tip as task
37
- evidence. Do not create or remove Git worktrees yourself.
38
- 4. Mark `pass` or `fail`. Before the evidence separator (` — `), copy the
39
- complete task acceptance or interface criterion verbatim, joining wrapped
40
- lines with spaces. Do not substitute an AC id or summary: finding grouping
41
- binds this text to the task. Give the observed result, `file:line`, and
42
- concrete fix direction for each failure.
43
-
44
- Then check each INTENT.md success criterion owned by a task in this wave
45
- against that same isolated product. Copy the criterion verbatim from
46
- INTENT.md. Mark `pass` or `fail` with evidence; a failed owned SC blocks
47
- the wave. Omit the Intent coverage section when no task in the wave owns
48
- an SC.
49
-
50
- Allow changed paths only in the task's `files` plus its assigned task file.
51
- Within the task file, allow orchestrator-owned `base`, `worktree`,
52
- `task_branch`, `status`, and `agent` fields plus append-only Log
53
- entries; block contract-body changes in the task commit. Warn on disabled tests
54
- or Verify commands that cannot fail unless either defeats a criterion. Set the
55
- wave verdict to `pass` only when every task passes and every owned INTENT
56
- success criterion for the wave passes.
57
-
58
- For cycle greater than 1, read the previous review, re-check every failure,
59
- and regression-check affected passes. State when the same criterion fails for
60
- a different reason. Use only the wave-review template.
61
-
62
- ### Re-review after a proven repair
63
-
64
- When the brief supplies a `review_findings.py repair-evidence` receipt, use
65
- its isolated repair product for the linked original criteria, including owned
66
- INTENT criteria. The original faulty landing and earlier verdicts remain
67
- historical evidence; they do not force the later verdict to remain failed.
68
- Reconstruct the receipt's repair `base` plus only its `commit^..commit` patch
69
- for `files` inside the supplied sidecar. Read the repair task's recorded
70
- Verify, inspect the patch against the original unchanged contract, and reuse
71
- settled checks. Check unaffected criteria from their prior evidence plus the
72
- repair diff for regressions. Cite the receipt, repair landing and task Log in
73
- the new review. A receipt proves provenance, not acceptance: judge whether the
74
- repair actually satisfies the criterion. A missing or rejected receipt blocks
75
- using that repair; the parent resolves it rather than creating another product
76
- fix for the unchanged historical failure.
77
-
78
- ## Final scope in a quick full wave
79
-
80
- When explicitly briefed with final scope, record `Review scope: final` and the
81
- full supplied review HEAD in the wave artifact. Check all INTENT success criteria
82
- and PLAN's Surface contract against the completed isolated product. Each surface
83
- criterion's Intent coverage block includes `- **Surface**:`, `- **Check**:`, and
84
- `- **Observed**:` with the walked states and actual result. Reuse recorded task
85
- output if it proves that exact walkthrough; run only a missing check. Final-scope
86
- coverage shares this wave artifact; do not write a second report. Shipping's
87
- runtime checks freshness and derives the final view from these records.
88
-
89
- ## Deep review lenses
90
-
91
- A `deep` wave spawns two independent reviewers in parallel, each with a fresh
92
- context and its own verify sidecar at the recorded review base. Every
93
- Wave mode rule above applies to both lenses.
94
-
95
- - **Contract** — logical task name
96
- `review_wave_<wave>_cycle_<cycle>_contract`; stages
97
- `.project/review/wave-N.cycleC.contract.md`. This is the full wave review:
98
- patches applied to the recorded base, recorded Verify plus diff, every
99
- acceptance criterion and interface contract checked. Record `Lens:
100
- contract`.
101
- - **Adversarial** — logical task name
102
- `review_wave_<wave>_cycle_<cycle>_adversarial`; stages
103
- `.project/review/wave-N.cycleC.adversarial.md`. Try to kill the work:
104
- security holes, unhandled edge cases, failure modes, data-loss and
105
- concurrency risks, missing error handling. Record `Lens: adversarial`.
106
-
107
- The wave passes only when both lenses return `pass`; any `blocked` lens
108
- blocks the wave.
109
-
110
- ## Skeptic mode
111
-
112
- Use only skeptic.md. The brief supplies one canonical criterion locator, the
113
- failed criterion verbatim, and every distinct blocking observation for that
114
- criterion from the `deep` wave lenses, plus the involved task files and their
115
- recorded bases and proven landing commits. The only job is to refute all of
116
- those observations.
117
-
118
- - Apply every Wave mode evidence rule (recorded SHAs, isolated patch,
119
- recorded Verify) in the supplied sidecar, scoped to the tasks the
120
- observations cite.
121
- - Address every distinct observation separately. Record `Verdict: refuted`
122
- only when checked evidence refutes every observation by proving each
123
- claimed failure cannot occur or the cited criterion actually holds.
124
- Anything short of that is `Verdict: stands`.
125
- - Stage
126
- `.project/review/wave-N.cycleC.skeptic-<criterion_locator>.md` under the
127
- supplied sidecar.
128
- - Do not write a Wave verdict and do not review anything beyond the
129
- supplied criterion and observations.
130
-
131
- ## Final integration mode
132
-
133
- Use only final-review.md. Treat INTENT.md success criteria as the rubric.
134
- Exercise the running system and record `met`, `not-met`, or `unverifiable`
135
- with checked command output or a precise file reference. When PLAN.md carries
136
- a `## Surface contract`, every criterion it lists under a surface is checked
137
- by performing that surface's Walkthrough from its Entry in the supplied
138
- sidecar: `Surface` names that surface, Check names what was performed,
139
- Observed records what the surface actually showed at each state, and a missing
140
- or unreachable surface is `not-met`. A surface criterion is never `met` on
141
- internal test output alone. Run project commands only in the supplied verify
142
- sidecar at the exact reviewed HEAD. Do not
143
- re-run PLAN.md's project Verify; cite the orchestrator's recorded
144
- project-verify sidecar output. `pass`
145
- requires every criterion to be `met`.
146
-
147
- ## Final gap mode
148
-
149
- Use only gap-review.md. Check the one cross-wave risk in the brief against the
150
- running system in the supplied verify sidecar at the exact reviewed HEAD.
151
- Record evidence and `pass` or `blocked`; an unverified risk is blocked.
152
-
153
- ## Plan panel mode
154
-
155
- Use only plan-panel.md. Review `.project/plan/PLAN.md` and every task file
156
- against INTENT.md and SYNTHESIS.md. Do not edit those files. Write one
157
- finding block per issue, or `- none`. Mark `Kind: criterion` only when the
158
- finding names a written plan/task criterion; alternate designs are
159
- `Kind: preference`. This output is advisory. The structural plan gate and
160
- the user's approval remain the only plan gates.
161
-
162
- ## Wave panel mode
163
-
164
- Use only wave-panel.md. Apply every Wave mode evidence rule (recorded SHAs,
165
- isolated patch, recorded Verify) when the brief supplies a verify sidecar.
166
- On a `deep` wave the brief is the adversarial lens only. Record findings
167
- the same way as plan panel mode. Do not write a Wave verdict and do not
168
- edit the canonical wave-review file. The inherit reviewer remains the only
169
- pass/fail.
20
+ ## Load the assigned mode
21
+
22
+ Read only the row matching the brief. Common rules below apply to every mode.
23
+ Resolve sibling links against this role file's directory.
24
+
25
+ | Mode | Required procedure |
26
+ |---|---|
27
+ | Wave, full or deep; quick final scope | [Wave review](reviewer-wave.md) |
28
+ | Skeptic | [Wave evidence rules](reviewer-wave.md) and [skeptic](reviewer-skeptic.md) |
29
+ | Final integration or final gap | [Final review](reviewer-final.md) |
30
+ | Plan panel | [Panel review](reviewer-panel.md) |
31
+ | Wave panel | [Wave evidence rules](reviewer-wave.md) and [panel review](reviewer-panel.md) |
170
32
 
171
33
  ## Rules
172
34
 
@@ -239,15 +239,10 @@ class ArchiveError(RuntimeError):
239
239
 
240
240
 
241
241
  PIPELINE_MARKER = _common.PIPELINE_MARKER
242
- PR_CREDIT_LINE = (
243
- "PR prepared with [GSD Path](https://github.com/open-gsd/gsd-path)."
244
- )
245
- GITHUB_HOST = "github.com"
246
242
 
247
243
 
248
- # discussion_validate and integration call back into this module through a
249
- # module reference and import the constants and ArchiveError above, so this
250
- # import must stay below those definitions.
244
+ # discussion_validate calls back into this module and imports its constants
245
+ # and ArchiveError, so this import must stay below those definitions.
251
246
  if __package__: # imported as scripts.archive_milestone
252
247
  from .discussion_validate import (
253
248
  record_sections,
@@ -280,42 +275,6 @@ if __package__: # imported as scripts.archive_milestone
280
275
  render_manifest,
281
276
  validate_manifest,
282
277
  )
283
- from .integration import (
284
- resolve_remote_default,
285
- live_remote_ref,
286
- publish_bound_branch,
287
- refresh_origin,
288
- optional_ref,
289
- integration_names,
290
- registered_worktree,
291
- remove_registered_worktree,
292
- delete_integration_branch,
293
- require_generated_integration_commit,
294
- discard_unpublished_stale_integration,
295
- create_integration_merge,
296
- require_annotated_tag,
297
- ensure_integration_tag,
298
- github_repository,
299
- require_github_authentication,
300
- github_api_json,
301
- require_pull_request_shape,
302
- require_pull_request_pages,
303
- pull_request_head_matches_repository,
304
- require_pull_request_identity,
305
- find_pull_request,
306
- pull_request_body,
307
- update_pull_request_body,
308
- create_pull_request,
309
- pull_request_tag_message,
310
- pull_request_tag_metadata,
311
- require_pull_request_merge,
312
- require_pull_request_merge_provenance,
313
- integrate_pull_request,
314
- integrate,
315
- find_integrate_commit,
316
- validate_integrated,
317
- require_published_integration,
318
- )
319
278
  else: # standalone script or sibling import
320
279
  if __name__ == "__main__":
321
280
  sys.modules.setdefault("archive_milestone", sys.modules[__name__])
@@ -351,42 +310,6 @@ else: # standalone script or sibling import
351
310
  render_manifest,
352
311
  validate_manifest,
353
312
  )
354
- from integration import (
355
- resolve_remote_default,
356
- live_remote_ref,
357
- publish_bound_branch,
358
- refresh_origin,
359
- optional_ref,
360
- integration_names,
361
- registered_worktree,
362
- remove_registered_worktree,
363
- delete_integration_branch,
364
- require_generated_integration_commit,
365
- discard_unpublished_stale_integration,
366
- create_integration_merge,
367
- require_annotated_tag,
368
- ensure_integration_tag,
369
- github_repository,
370
- require_github_authentication,
371
- github_api_json,
372
- require_pull_request_shape,
373
- require_pull_request_pages,
374
- pull_request_head_matches_repository,
375
- require_pull_request_identity,
376
- find_pull_request,
377
- pull_request_body,
378
- update_pull_request_body,
379
- create_pull_request,
380
- pull_request_tag_message,
381
- pull_request_tag_metadata,
382
- require_pull_request_merge,
383
- require_pull_request_merge_provenance,
384
- integrate_pull_request,
385
- integrate,
386
- find_integrate_commit,
387
- validate_integrated,
388
- require_published_integration,
389
- )
390
313
  except ImportError: # pragma: no cover - package import used by tests
391
314
  from scripts.discussion_validate import (
392
315
  record_sections,
@@ -419,42 +342,6 @@ else: # standalone script or sibling import
419
342
  render_manifest,
420
343
  validate_manifest,
421
344
  )
422
- from scripts.integration import (
423
- resolve_remote_default,
424
- live_remote_ref,
425
- publish_bound_branch,
426
- refresh_origin,
427
- optional_ref,
428
- integration_names,
429
- registered_worktree,
430
- remove_registered_worktree,
431
- delete_integration_branch,
432
- require_generated_integration_commit,
433
- discard_unpublished_stale_integration,
434
- create_integration_merge,
435
- require_annotated_tag,
436
- ensure_integration_tag,
437
- github_repository,
438
- require_github_authentication,
439
- github_api_json,
440
- require_pull_request_shape,
441
- require_pull_request_pages,
442
- pull_request_head_matches_repository,
443
- require_pull_request_identity,
444
- find_pull_request,
445
- pull_request_body,
446
- update_pull_request_body,
447
- create_pull_request,
448
- pull_request_tag_message,
449
- pull_request_tag_metadata,
450
- require_pull_request_merge,
451
- require_pull_request_merge_provenance,
452
- integrate_pull_request,
453
- integrate,
454
- find_integrate_commit,
455
- validate_integrated,
456
- require_published_integration,
457
- )
458
345
 
459
346
 
460
347
  @contextmanager
@@ -2238,6 +2125,11 @@ def parser() -> argparse.ArgumentParser:
2238
2125
  def main(argv: Optional[Sequence[str]] = None) -> int:
2239
2126
  arguments = parser().parse_args(argv)
2240
2127
  try:
2128
+ if arguments.command in {"validate-integrated", "refresh-origin", "integrate"}:
2129
+ if __package__:
2130
+ from . import integration
2131
+ else:
2132
+ import integration
2241
2133
  if arguments.command == "prepare":
2242
2134
  result = prepare(arguments.repo, arguments.slug)
2243
2135
  elif arguments.command == "render-manifest":
@@ -2247,11 +2139,11 @@ def main(argv: Optional[Sequence[str]] = None) -> int:
2247
2139
  elif arguments.command == "abandon":
2248
2140
  result = abandon(arguments.repo, arguments.slug, arguments.reason)
2249
2141
  elif arguments.command == "validate-integrated":
2250
- result = validate_integrated(arguments.repo, arguments.slug)
2142
+ result = integration.validate_integrated(arguments.repo, arguments.slug)
2251
2143
  elif arguments.command == "refresh-origin":
2252
- result = refresh_origin(arguments.repo)
2144
+ result = integration.refresh_origin(arguments.repo)
2253
2145
  elif arguments.command == "integrate":
2254
- result = integrate(arguments.repo, arguments.slug)
2146
+ result = integration.integrate(arguments.repo, arguments.slug)
2255
2147
  else:
2256
2148
  result = validate(arguments.repo)
2257
2149
  except (ArchiveError, OSError) as error: