@opengsd/gsd-path 1.0.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 (398) hide show
  1. package/AGENTS.md +397 -0
  2. package/DOCS.md +341 -0
  3. package/FULL.md +475 -0
  4. package/GUIDE.md +23 -0
  5. package/HOOKS.md +273 -0
  6. package/LICENSE +21 -0
  7. package/MIGRATE.md +100 -0
  8. package/QUICK.md +146 -0
  9. package/README.md +280 -0
  10. package/RUNTIME.md +229 -0
  11. package/UPDATE.md +196 -0
  12. package/WORKFLOW.md +683 -0
  13. package/package.json +80 -0
  14. package/platforms/claude/dispatch.md +63 -0
  15. package/platforms/copilot/dispatch.md +61 -0
  16. package/platforms/cursor/agent.md +17 -0
  17. package/platforms/cursor/dispatch.md +63 -0
  18. package/platforms/grok/dispatch.md +61 -0
  19. package/platforms/kimi/dispatch.md +64 -0
  20. package/platforms/kiro/dispatch.md +58 -0
  21. package/platforms/opencode/dispatch.md +62 -0
  22. package/platforms/qwen/dispatch.md +60 -0
  23. package/platforms/shared-agents/dispatch.md +131 -0
  24. package/plugin.json +14 -0
  25. package/scripts/_common.py +180 -0
  26. package/scripts/archive_milestone.py +2265 -0
  27. package/scripts/bootstrap_repository.py +710 -0
  28. package/scripts/build_state.py +854 -0
  29. package/scripts/check_docs_audit.py +463 -0
  30. package/scripts/check_handoffs.py +1855 -0
  31. package/scripts/check_task_briefs.py +376 -0
  32. package/scripts/check_update.py +93 -0
  33. package/scripts/core_hook_gate.py +34 -0
  34. package/scripts/core_hook_settings.py +119 -0
  35. package/scripts/detect_project.py +1517 -0
  36. package/scripts/discussion_records.py +619 -0
  37. package/scripts/discussion_validate.py +1321 -0
  38. package/scripts/dispatch_driver.py +1812 -0
  39. package/scripts/git_guard.py +759 -0
  40. package/scripts/guard_hook.py +2124 -0
  41. package/scripts/install.mjs +3239 -0
  42. package/scripts/install.py +3008 -0
  43. package/scripts/integration.py +1433 -0
  44. package/scripts/isolation.py +3538 -0
  45. package/scripts/lean_verification.py +256 -0
  46. package/scripts/loop_run.py +837 -0
  47. package/scripts/migrate_core.py +169 -0
  48. package/scripts/pipeline_diagnose.py +715 -0
  49. package/scripts/pipeline_git.py +940 -0
  50. package/scripts/pipeline_state.py +2291 -0
  51. package/scripts/pipeline_undo.py +1039 -0
  52. package/scripts/promote_lookahead.py +415 -0
  53. package/scripts/review_findings.py +714 -0
  54. package/scripts/review_panel.py +553 -0
  55. package/scripts/skill-resources.json +340 -0
  56. package/scripts/state_checkpoint.py +1039 -0
  57. package/scripts/state_promote.py +743 -0
  58. package/scripts/status_runtime.py +122 -0
  59. package/scripts/sync_skill_resources.py +259 -0
  60. package/scripts/token_budget.py +146 -0
  61. package/scripts/wizard.mjs +179 -0
  62. package/scripts/workflow_run.py +117 -0
  63. package/skills/gsd-path/BUILD.md +700 -0
  64. package/skills/gsd-path/DECIDE.md +115 -0
  65. package/skills/gsd-path/DEFINE.md +297 -0
  66. package/skills/gsd-path/DOCS-AUDIT.md +190 -0
  67. package/skills/gsd-path/INSPECT.md +167 -0
  68. package/skills/gsd-path/PLAN.md +411 -0
  69. package/skills/gsd-path/RESEARCH.md +159 -0
  70. package/skills/gsd-path/ROADMAP.md +215 -0
  71. package/skills/gsd-path/SHIP.md +412 -0
  72. package/skills/gsd-path/SKILL.md +471 -0
  73. package/skills/gsd-path/agents/openai.yaml +6 -0
  74. package/skills/gsd-path/references/codebase-mapper.md +52 -0
  75. package/skills/gsd-path/references/coder.md +90 -0
  76. package/skills/gsd-path/references/decider.md +36 -0
  77. package/skills/gsd-path/references/dispatch.md +131 -0
  78. package/skills/gsd-path/references/docs-auditor.md +60 -0
  79. package/skills/gsd-path/references/planner.md +104 -0
  80. package/skills/gsd-path/references/researcher.md +42 -0
  81. package/skills/gsd-path/references/reviewer.md +188 -0
  82. package/skills/gsd-path/references/roadmapper.md +48 -0
  83. package/skills/gsd-path/scripts/_common.py +180 -0
  84. package/skills/gsd-path/scripts/archive_milestone.py +2265 -0
  85. package/skills/gsd-path/scripts/bootstrap_repository.py +710 -0
  86. package/skills/gsd-path/scripts/build_state.py +854 -0
  87. package/skills/gsd-path/scripts/check_docs_audit.py +463 -0
  88. package/skills/gsd-path/scripts/check_handoffs.py +1855 -0
  89. package/skills/gsd-path/scripts/check_task_briefs.py +376 -0
  90. package/skills/gsd-path/scripts/check_update.py +93 -0
  91. package/skills/gsd-path/scripts/detect_project.py +1517 -0
  92. package/skills/gsd-path/scripts/discussion_records.py +619 -0
  93. package/skills/gsd-path/scripts/discussion_validate.py +1321 -0
  94. package/skills/gsd-path/scripts/dispatch_driver.py +1812 -0
  95. package/skills/gsd-path/scripts/integration.py +1433 -0
  96. package/skills/gsd-path/scripts/isolation.py +3538 -0
  97. package/skills/gsd-path/scripts/lean_verification.py +256 -0
  98. package/skills/gsd-path/scripts/loop_run.py +837 -0
  99. package/skills/gsd-path/scripts/pipeline_git.py +940 -0
  100. package/skills/gsd-path/scripts/pipeline_state.py +2291 -0
  101. package/skills/gsd-path/scripts/promote_lookahead.py +415 -0
  102. package/skills/gsd-path/scripts/review_findings.py +714 -0
  103. package/skills/gsd-path/scripts/review_panel.py +553 -0
  104. package/skills/gsd-path/scripts/state_checkpoint.py +1039 -0
  105. package/skills/gsd-path/scripts/state_promote.py +743 -0
  106. package/skills/gsd-path/scripts/token_budget.py +146 -0
  107. package/skills/gsd-path/scripts/workflow_run.py +117 -0
  108. package/skills/gsd-path/templates/answers.md +29 -0
  109. package/skills/gsd-path/templates/archive-manifest.md +37 -0
  110. package/skills/gsd-path/templates/charter.md +50 -0
  111. package/skills/gsd-path/templates/codebase.md +46 -0
  112. package/skills/gsd-path/templates/dialogue.md +21 -0
  113. package/skills/gsd-path/templates/docs-audit.md +69 -0
  114. package/skills/gsd-path/templates/evidence.md +24 -0
  115. package/skills/gsd-path/templates/final-review.md +27 -0
  116. package/skills/gsd-path/templates/gap-review.md +20 -0
  117. package/skills/gsd-path/templates/intent.md +98 -0
  118. package/skills/gsd-path/templates/loop.md +59 -0
  119. package/skills/gsd-path/templates/patch-findings.md +16 -0
  120. package/skills/gsd-path/templates/plan-panel.md +25 -0
  121. package/skills/gsd-path/templates/plan.md +89 -0
  122. package/skills/gsd-path/templates/repository.md +16 -0
  123. package/skills/gsd-path/templates/research-handoff.md +25 -0
  124. package/skills/gsd-path/templates/roadmap.md +38 -0
  125. package/skills/gsd-path/templates/skeptic.md +36 -0
  126. package/skills/gsd-path/templates/state.md +27 -0
  127. package/skills/gsd-path/templates/synthesis.md +36 -0
  128. package/skills/gsd-path/templates/task.md +74 -0
  129. package/skills/gsd-path/templates/wave-panel.md +25 -0
  130. package/skills/gsd-path/templates/wave-review.md +64 -0
  131. package/skills/gsd-path-build/SKILL.md +700 -0
  132. package/skills/gsd-path-build/agents/openai.yaml +6 -0
  133. package/skills/gsd-path-build/references/coder.md +90 -0
  134. package/skills/gsd-path-build/references/dispatch.md +131 -0
  135. package/skills/gsd-path-build/references/reviewer.md +188 -0
  136. package/skills/gsd-path-build/scripts/_common.py +180 -0
  137. package/skills/gsd-path-build/scripts/archive_milestone.py +2265 -0
  138. package/skills/gsd-path-build/scripts/build_state.py +854 -0
  139. package/skills/gsd-path-build/scripts/check_handoffs.py +1855 -0
  140. package/skills/gsd-path-build/scripts/check_task_briefs.py +376 -0
  141. package/skills/gsd-path-build/scripts/discussion_records.py +619 -0
  142. package/skills/gsd-path-build/scripts/discussion_validate.py +1321 -0
  143. package/skills/gsd-path-build/scripts/dispatch_driver.py +1812 -0
  144. package/skills/gsd-path-build/scripts/integration.py +1433 -0
  145. package/skills/gsd-path-build/scripts/isolation.py +3538 -0
  146. package/skills/gsd-path-build/scripts/loop_run.py +837 -0
  147. package/skills/gsd-path-build/scripts/pipeline_git.py +940 -0
  148. package/skills/gsd-path-build/scripts/pipeline_state.py +2291 -0
  149. package/skills/gsd-path-build/scripts/review_findings.py +714 -0
  150. package/skills/gsd-path-build/scripts/review_panel.py +553 -0
  151. package/skills/gsd-path-build/scripts/state_checkpoint.py +1039 -0
  152. package/skills/gsd-path-build/scripts/state_promote.py +743 -0
  153. package/skills/gsd-path-build/scripts/token_budget.py +146 -0
  154. package/skills/gsd-path-build/scripts/workflow_run.py +117 -0
  155. package/skills/gsd-path-build/templates/skeptic.md +36 -0
  156. package/skills/gsd-path-build/templates/task.md +74 -0
  157. package/skills/gsd-path-build/templates/wave-panel.md +25 -0
  158. package/skills/gsd-path-build/templates/wave-review.md +64 -0
  159. package/skills/gsd-path-decide/SKILL.md +115 -0
  160. package/skills/gsd-path-decide/agents/openai.yaml +6 -0
  161. package/skills/gsd-path-decide/references/decider.md +36 -0
  162. package/skills/gsd-path-decide/references/dispatch.md +131 -0
  163. package/skills/gsd-path-decide/scripts/_common.py +180 -0
  164. package/skills/gsd-path-decide/scripts/check_handoffs.py +1855 -0
  165. package/skills/gsd-path-decide/scripts/check_task_briefs.py +376 -0
  166. package/skills/gsd-path-decide/scripts/discussion_records.py +619 -0
  167. package/skills/gsd-path-decide/scripts/isolation.py +3538 -0
  168. package/skills/gsd-path-decide/scripts/pipeline_git.py +940 -0
  169. package/skills/gsd-path-decide/scripts/pipeline_state.py +2291 -0
  170. package/skills/gsd-path-decide/scripts/state_checkpoint.py +1039 -0
  171. package/skills/gsd-path-decide/scripts/state_promote.py +743 -0
  172. package/skills/gsd-path-decide/templates/synthesis.md +36 -0
  173. package/skills/gsd-path-define/SKILL.md +297 -0
  174. package/skills/gsd-path-define/agents/openai.yaml +6 -0
  175. package/skills/gsd-path-define/scripts/_common.py +180 -0
  176. package/skills/gsd-path-define/scripts/check_handoffs.py +1855 -0
  177. package/skills/gsd-path-define/scripts/check_task_briefs.py +376 -0
  178. package/skills/gsd-path-define/scripts/detect_project.py +1517 -0
  179. package/skills/gsd-path-define/scripts/discussion_records.py +619 -0
  180. package/skills/gsd-path-define/scripts/isolation.py +3538 -0
  181. package/skills/gsd-path-define/scripts/pipeline_git.py +940 -0
  182. package/skills/gsd-path-define/scripts/pipeline_state.py +2291 -0
  183. package/skills/gsd-path-define/scripts/state_checkpoint.py +1039 -0
  184. package/skills/gsd-path-define/scripts/state_promote.py +743 -0
  185. package/skills/gsd-path-define/templates/charter.md +50 -0
  186. package/skills/gsd-path-define/templates/intent.md +98 -0
  187. package/skills/gsd-path-define/templates/state.md +27 -0
  188. package/skills/gsd-path-discuss/SKILL.md +162 -0
  189. package/skills/gsd-path-discuss/agents/openai.yaml +6 -0
  190. package/skills/gsd-path-discuss/scripts/_common.py +180 -0
  191. package/skills/gsd-path-discuss/scripts/discussion_records.py +619 -0
  192. package/skills/gsd-path-discuss/templates/answers.md +29 -0
  193. package/skills/gsd-path-discuss/templates/dialogue.md +21 -0
  194. package/skills/gsd-path-docs-audit/SKILL.md +190 -0
  195. package/skills/gsd-path-docs-audit/agents/openai.yaml +6 -0
  196. package/skills/gsd-path-docs-audit/references/dispatch.md +131 -0
  197. package/skills/gsd-path-docs-audit/references/docs-auditor.md +60 -0
  198. package/skills/gsd-path-docs-audit/scripts/_common.py +180 -0
  199. package/skills/gsd-path-docs-audit/scripts/check_docs_audit.py +463 -0
  200. package/skills/gsd-path-docs-audit/scripts/check_handoffs.py +1855 -0
  201. package/skills/gsd-path-docs-audit/scripts/check_task_briefs.py +376 -0
  202. package/skills/gsd-path-docs-audit/scripts/discussion_records.py +619 -0
  203. package/skills/gsd-path-docs-audit/scripts/isolation.py +3538 -0
  204. package/skills/gsd-path-docs-audit/scripts/pipeline_git.py +940 -0
  205. package/skills/gsd-path-docs-audit/scripts/pipeline_state.py +2291 -0
  206. package/skills/gsd-path-docs-audit/scripts/state_checkpoint.py +1039 -0
  207. package/skills/gsd-path-docs-audit/scripts/state_promote.py +743 -0
  208. package/skills/gsd-path-docs-audit/templates/docs-audit.md +69 -0
  209. package/skills/gsd-path-forensics/SKILL.md +39 -0
  210. package/skills/gsd-path-forensics/agents/openai.yaml +6 -0
  211. package/skills/gsd-path-forensics/scripts/_common.py +180 -0
  212. package/skills/gsd-path-forensics/scripts/discussion_records.py +619 -0
  213. package/skills/gsd-path-forensics/scripts/pipeline_diagnose.py +715 -0
  214. package/skills/gsd-path-forensics/scripts/pipeline_undo.py +1039 -0
  215. package/skills/gsd-path-inspect/SKILL.md +167 -0
  216. package/skills/gsd-path-inspect/agents/openai.yaml +6 -0
  217. package/skills/gsd-path-inspect/references/codebase-mapper.md +52 -0
  218. package/skills/gsd-path-inspect/references/dispatch.md +131 -0
  219. package/skills/gsd-path-inspect/references/docs-auditor.md +60 -0
  220. package/skills/gsd-path-inspect/scripts/_common.py +180 -0
  221. package/skills/gsd-path-inspect/scripts/check_docs_audit.py +463 -0
  222. package/skills/gsd-path-inspect/scripts/check_handoffs.py +1855 -0
  223. package/skills/gsd-path-inspect/scripts/check_task_briefs.py +376 -0
  224. package/skills/gsd-path-inspect/scripts/detect_project.py +1517 -0
  225. package/skills/gsd-path-inspect/scripts/discussion_records.py +619 -0
  226. package/skills/gsd-path-inspect/scripts/isolation.py +3538 -0
  227. package/skills/gsd-path-inspect/scripts/pipeline_git.py +940 -0
  228. package/skills/gsd-path-inspect/scripts/pipeline_state.py +2291 -0
  229. package/skills/gsd-path-inspect/scripts/state_checkpoint.py +1039 -0
  230. package/skills/gsd-path-inspect/scripts/state_promote.py +743 -0
  231. package/skills/gsd-path-inspect/templates/codebase.md +46 -0
  232. package/skills/gsd-path-inspect/templates/docs-audit.md +69 -0
  233. package/skills/gsd-path-inspect/templates/state.md +27 -0
  234. package/skills/gsd-path-loop/SKILL.md +98 -0
  235. package/skills/gsd-path-loop/agents/openai.yaml +6 -0
  236. package/skills/gsd-path-loop/examples/ci-repair.LOOP.md +61 -0
  237. package/skills/gsd-path-loop/scripts/_common.py +180 -0
  238. package/skills/gsd-path-loop/scripts/discussion_records.py +619 -0
  239. package/skills/gsd-path-loop/scripts/loop_run.py +837 -0
  240. package/skills/gsd-path-loop/templates/loop.md +59 -0
  241. package/skills/gsd-path-migrate/SKILL.md +134 -0
  242. package/skills/gsd-path-migrate/agents/openai.yaml +6 -0
  243. package/skills/gsd-path-migrate/scripts/core_hook_gate.py +34 -0
  244. package/skills/gsd-path-migrate/scripts/core_hook_settings.py +119 -0
  245. package/skills/gsd-path-migrate/scripts/discussion_records.py +619 -0
  246. package/skills/gsd-path-migrate/scripts/migrate_core.py +169 -0
  247. package/skills/gsd-path-plan/SKILL.md +411 -0
  248. package/skills/gsd-path-plan/agents/openai.yaml +6 -0
  249. package/skills/gsd-path-plan/references/dispatch.md +131 -0
  250. package/skills/gsd-path-plan/references/planner.md +104 -0
  251. package/skills/gsd-path-plan/scripts/_common.py +180 -0
  252. package/skills/gsd-path-plan/scripts/check_handoffs.py +1855 -0
  253. package/skills/gsd-path-plan/scripts/check_task_briefs.py +376 -0
  254. package/skills/gsd-path-plan/scripts/discussion_records.py +619 -0
  255. package/skills/gsd-path-plan/scripts/isolation.py +3538 -0
  256. package/skills/gsd-path-plan/scripts/pipeline_git.py +940 -0
  257. package/skills/gsd-path-plan/scripts/pipeline_state.py +2291 -0
  258. package/skills/gsd-path-plan/scripts/review_panel.py +553 -0
  259. package/skills/gsd-path-plan/scripts/state_checkpoint.py +1039 -0
  260. package/skills/gsd-path-plan/scripts/state_promote.py +743 -0
  261. package/skills/gsd-path-plan/scripts/workflow_run.py +117 -0
  262. package/skills/gsd-path-plan/templates/patch-findings.md +16 -0
  263. package/skills/gsd-path-plan/templates/plan-panel.md +25 -0
  264. package/skills/gsd-path-plan/templates/plan.md +89 -0
  265. package/skills/gsd-path-plan/templates/task.md +74 -0
  266. package/skills/gsd-path-research/SKILL.md +159 -0
  267. package/skills/gsd-path-research/agents/openai.yaml +6 -0
  268. package/skills/gsd-path-research/references/dispatch.md +131 -0
  269. package/skills/gsd-path-research/references/researcher.md +42 -0
  270. package/skills/gsd-path-research/scripts/_common.py +180 -0
  271. package/skills/gsd-path-research/scripts/check_handoffs.py +1855 -0
  272. package/skills/gsd-path-research/scripts/check_task_briefs.py +376 -0
  273. package/skills/gsd-path-research/scripts/discussion_records.py +619 -0
  274. package/skills/gsd-path-research/scripts/isolation.py +3538 -0
  275. package/skills/gsd-path-research/scripts/pipeline_git.py +940 -0
  276. package/skills/gsd-path-research/scripts/pipeline_state.py +2291 -0
  277. package/skills/gsd-path-research/scripts/state_checkpoint.py +1039 -0
  278. package/skills/gsd-path-research/scripts/state_promote.py +743 -0
  279. package/skills/gsd-path-research/templates/evidence.md +24 -0
  280. package/skills/gsd-path-research/templates/research-handoff.md +25 -0
  281. package/skills/gsd-path-roadmap/SKILL.md +215 -0
  282. package/skills/gsd-path-roadmap/agents/openai.yaml +6 -0
  283. package/skills/gsd-path-roadmap/references/dispatch.md +131 -0
  284. package/skills/gsd-path-roadmap/references/roadmapper.md +48 -0
  285. package/skills/gsd-path-roadmap/scripts/_common.py +180 -0
  286. package/skills/gsd-path-roadmap/scripts/archive_milestone.py +2265 -0
  287. package/skills/gsd-path-roadmap/scripts/check_handoffs.py +1855 -0
  288. package/skills/gsd-path-roadmap/scripts/check_task_briefs.py +376 -0
  289. package/skills/gsd-path-roadmap/scripts/detect_project.py +1517 -0
  290. package/skills/gsd-path-roadmap/scripts/discussion_records.py +619 -0
  291. package/skills/gsd-path-roadmap/scripts/discussion_validate.py +1321 -0
  292. package/skills/gsd-path-roadmap/scripts/integration.py +1433 -0
  293. package/skills/gsd-path-roadmap/scripts/isolation.py +3538 -0
  294. package/skills/gsd-path-roadmap/scripts/pipeline_git.py +940 -0
  295. package/skills/gsd-path-roadmap/scripts/pipeline_state.py +2291 -0
  296. package/skills/gsd-path-roadmap/scripts/promote_lookahead.py +415 -0
  297. package/skills/gsd-path-roadmap/scripts/review_panel.py +553 -0
  298. package/skills/gsd-path-roadmap/scripts/state_checkpoint.py +1039 -0
  299. package/skills/gsd-path-roadmap/scripts/state_promote.py +743 -0
  300. package/skills/gsd-path-roadmap/templates/roadmap.md +38 -0
  301. package/skills/gsd-path-ship/SKILL.md +412 -0
  302. package/skills/gsd-path-ship/agents/openai.yaml +6 -0
  303. package/skills/gsd-path-ship/references/dispatch.md +131 -0
  304. package/skills/gsd-path-ship/references/reviewer.md +188 -0
  305. package/skills/gsd-path-ship/scripts/_common.py +180 -0
  306. package/skills/gsd-path-ship/scripts/archive_milestone.py +2265 -0
  307. package/skills/gsd-path-ship/scripts/build_state.py +854 -0
  308. package/skills/gsd-path-ship/scripts/check_handoffs.py +1855 -0
  309. package/skills/gsd-path-ship/scripts/check_task_briefs.py +376 -0
  310. package/skills/gsd-path-ship/scripts/discussion_records.py +619 -0
  311. package/skills/gsd-path-ship/scripts/discussion_validate.py +1321 -0
  312. package/skills/gsd-path-ship/scripts/integration.py +1433 -0
  313. package/skills/gsd-path-ship/scripts/isolation.py +3538 -0
  314. package/skills/gsd-path-ship/scripts/lean_verification.py +256 -0
  315. package/skills/gsd-path-ship/scripts/pipeline_git.py +940 -0
  316. package/skills/gsd-path-ship/scripts/pipeline_state.py +2291 -0
  317. package/skills/gsd-path-ship/scripts/review_panel.py +553 -0
  318. package/skills/gsd-path-ship/scripts/state_checkpoint.py +1039 -0
  319. package/skills/gsd-path-ship/scripts/state_promote.py +743 -0
  320. package/skills/gsd-path-ship/scripts/workflow_run.py +117 -0
  321. package/skills/gsd-path-ship/templates/archive-manifest.md +37 -0
  322. package/skills/gsd-path-ship/templates/final-review.md +27 -0
  323. package/skills/gsd-path-ship/templates/gap-review.md +20 -0
  324. package/skills/gsd-path-ship/templates/patch-findings.md +16 -0
  325. package/skills/gsd-path-ship/templates/wave-review.md +64 -0
  326. package/skills/gsd-path-undo/SKILL.md +45 -0
  327. package/skills/gsd-path-undo/agents/openai.yaml +6 -0
  328. package/skills/gsd-path-undo/scripts/_common.py +180 -0
  329. package/skills/gsd-path-undo/scripts/discussion_records.py +619 -0
  330. package/skills/gsd-path-undo/scripts/pipeline_undo.py +1039 -0
  331. package/skills/path/BUILD.md +700 -0
  332. package/skills/path/DECIDE.md +115 -0
  333. package/skills/path/DEFINE.md +297 -0
  334. package/skills/path/DOCS-AUDIT.md +190 -0
  335. package/skills/path/INSPECT.md +167 -0
  336. package/skills/path/PLAN.md +411 -0
  337. package/skills/path/RESEARCH.md +159 -0
  338. package/skills/path/ROADMAP.md +215 -0
  339. package/skills/path/SHIP.md +412 -0
  340. package/skills/path/SKILL.md +471 -0
  341. package/skills/path/agents/openai.yaml +6 -0
  342. package/skills/path/references/codebase-mapper.md +52 -0
  343. package/skills/path/references/coder.md +90 -0
  344. package/skills/path/references/decider.md +36 -0
  345. package/skills/path/references/dispatch.md +131 -0
  346. package/skills/path/references/docs-auditor.md +60 -0
  347. package/skills/path/references/planner.md +104 -0
  348. package/skills/path/references/researcher.md +42 -0
  349. package/skills/path/references/reviewer.md +188 -0
  350. package/skills/path/references/roadmapper.md +48 -0
  351. package/skills/path/scripts/_common.py +180 -0
  352. package/skills/path/scripts/archive_milestone.py +2265 -0
  353. package/skills/path/scripts/bootstrap_repository.py +710 -0
  354. package/skills/path/scripts/build_state.py +854 -0
  355. package/skills/path/scripts/check_docs_audit.py +463 -0
  356. package/skills/path/scripts/check_handoffs.py +1855 -0
  357. package/skills/path/scripts/check_task_briefs.py +376 -0
  358. package/skills/path/scripts/check_update.py +93 -0
  359. package/skills/path/scripts/detect_project.py +1517 -0
  360. package/skills/path/scripts/discussion_records.py +619 -0
  361. package/skills/path/scripts/discussion_validate.py +1321 -0
  362. package/skills/path/scripts/dispatch_driver.py +1812 -0
  363. package/skills/path/scripts/integration.py +1433 -0
  364. package/skills/path/scripts/isolation.py +3538 -0
  365. package/skills/path/scripts/lean_verification.py +256 -0
  366. package/skills/path/scripts/loop_run.py +837 -0
  367. package/skills/path/scripts/pipeline_git.py +940 -0
  368. package/skills/path/scripts/pipeline_state.py +2291 -0
  369. package/skills/path/scripts/promote_lookahead.py +415 -0
  370. package/skills/path/scripts/review_findings.py +714 -0
  371. package/skills/path/scripts/review_panel.py +553 -0
  372. package/skills/path/scripts/state_checkpoint.py +1039 -0
  373. package/skills/path/scripts/state_promote.py +743 -0
  374. package/skills/path/scripts/token_budget.py +146 -0
  375. package/skills/path/scripts/workflow_run.py +117 -0
  376. package/skills/path/templates/answers.md +29 -0
  377. package/skills/path/templates/archive-manifest.md +37 -0
  378. package/skills/path/templates/charter.md +50 -0
  379. package/skills/path/templates/codebase.md +46 -0
  380. package/skills/path/templates/dialogue.md +21 -0
  381. package/skills/path/templates/docs-audit.md +69 -0
  382. package/skills/path/templates/evidence.md +24 -0
  383. package/skills/path/templates/final-review.md +27 -0
  384. package/skills/path/templates/gap-review.md +20 -0
  385. package/skills/path/templates/intent.md +98 -0
  386. package/skills/path/templates/loop.md +59 -0
  387. package/skills/path/templates/patch-findings.md +16 -0
  388. package/skills/path/templates/plan-panel.md +25 -0
  389. package/skills/path/templates/plan.md +89 -0
  390. package/skills/path/templates/repository.md +16 -0
  391. package/skills/path/templates/research-handoff.md +25 -0
  392. package/skills/path/templates/roadmap.md +38 -0
  393. package/skills/path/templates/skeptic.md +36 -0
  394. package/skills/path/templates/state.md +27 -0
  395. package/skills/path/templates/synthesis.md +36 -0
  396. package/skills/path/templates/task.md +74 -0
  397. package/skills/path/templates/wave-panel.md +25 -0
  398. package/skills/path/templates/wave-review.md +64 -0
@@ -0,0 +1,98 @@
1
+ # Intent — <project name>
2
+
3
+ <!-- Written by $gsd-path-define. Every downstream agent reads this first.
4
+ Constraints and vetoes here override everything downstream. -->
5
+
6
+ Lane: standard <!-- standard | quick | milestone — quick: at most two
7
+ deliverable-sized tasks in one wave, no RESEARCH or
8
+ NEEDS-USER items, no cross-wave risk; set by define at
9
+ approval. Quick skips research and decide. Milestone:
10
+ derived from an approved ROADMAP.md entry in a program;
11
+ research/decide run only when the entry has open
12
+ questions. -->
13
+
14
+ Review panel: off <!-- off | detected | claude,gpt,grok,composer,gemini,deepseek,kimi,qwen — this
15
+ milestone's panel setting. In program flow, copy
16
+ CHARTER.md's durable default and override only when
17
+ the user says so. off is the default. detected uses
18
+ advertised host families except the parent, at most 3.
19
+ Named families are an assertion, at most 3. Quick
20
+ lane stays off. -->
21
+
22
+ Finding skeptics: off <!-- off | on — build spawns one read-only skeptic
23
+ per blocking deep-review finding before fix tasks
24
+ are opened; a refuted finding spawns no fix task unless
25
+ the user explicitly overrides all cycle refutations.
26
+ off is the default. Quick lane stays off. -->
27
+
28
+ Surfaces: none <!-- none | comma-separated list of the human-facing
29
+ surfaces this milestone delivers: a web app, a CLI, an
30
+ HTTP API. Anything a person opens, sees, or types into
31
+ is a surface. Use none only when nobody touches this
32
+ work directly — a library, a migration, internals.
33
+ Every named surface needs a success criterion
34
+ observable there and a PLAN.md Surface contract. -->
35
+
36
+ ## Summary
37
+
38
+ <3–5 sentences: the problem, who has it, what the first release does. This is the
39
+ paragraph the user signed off on — do not edit without a new sign-off.>
40
+
41
+ ## Problem
42
+
43
+ <What hurts today, for whom, how badly. Evidence if the user gave any.>
44
+
45
+ ## Users
46
+
47
+ <Who, how many, how technical, what they use today.>
48
+
49
+ ## Success criteria
50
+
51
+ <!-- Observable statements, numbered from 1. PLAN.md maps each to a task
52
+ AC and Verify as SC1, SC2, …. Wave review checks the SCs a wave owns.
53
+ Final review checks every SC.
54
+ Every surface named above needs at least one criterion a person can
55
+ observe at that surface — a screen reached, an output seen — never a
56
+ passing test standing in for the experience. -->
57
+ 1. <criterion — a thing you can run/measure/see>
58
+ 2. ...
59
+
60
+ ## Scope: in
61
+
62
+ <The smallest version that hits the success criteria. Bullet list.>
63
+
64
+ ## Scope: out (vetoes)
65
+
66
+ <!-- Hard constraints. Nothing in research, plans, or tasks may include these. -->
67
+ - <vetoed item> — <user's stated reason, verbatim where possible>
68
+
69
+ ## Constraints
70
+
71
+ <Stack preferences, deadline, budget, existing code, integrations, compliance.>
72
+
73
+ ## Current state (brownfield only)
74
+
75
+ <!-- Filled from evidence-codebase.md during brownfield define. Omit the
76
+ section entirely for greenfield projects. -->
77
+ - **What exists**: <stack, architecture, maturity in 2–3 sentences>
78
+ - **Must not break**: <existing behavior the user ruled protected — these are vetoes>
79
+ - **Doc-vs-code rulings**: <each DOCS-AUDIT conflict → user's ruling: fix-doc | fix-code | accept-drift>
80
+ - **Ground truth**: `<track>/research/evidence-codebase.md`, `<track>/research/DOCS-AUDIT.md`
81
+
82
+ ## Risks
83
+
84
+ <!-- What the user is most unsure about. Research prioritizes these. -->
85
+ - <risk>
86
+
87
+ ## Open questions
88
+
89
+ <!-- Unresolved at define end. Tags: RESEARCH (research phase answers it),
90
+ NEEDS-USER (a human decision, surface at next checkpoint). -->
91
+ - [RESEARCH] <question>
92
+ - [NEEDS-USER] <question>
93
+
94
+ ## Corrections
95
+
96
+ <!-- Verbatim user corrections from playback and later phases. Append-only.
97
+ These are the highest-signal intent data in the file. -->
98
+ - <date>: "<what the user said>"
@@ -0,0 +1,59 @@
1
+ # LOOP — <loop name>
2
+
3
+ <!-- Written by whoever designs the loop. Executed one bounded pass at a time
4
+ by $gsd-path-loop. The key: value lines below are the machine fields read
5
+ by scripts/loop_run.py — keep them exact: one field per line, no nesting,
6
+ no duplicate fields except verify. A single trailing HTML comment on a
7
+ field line is stripped by the parser. The prose sections are read by the
8
+ model, never by the parser. Mandatory fields:
9
+ loop, status, trigger, verify, max_iterations, wall_clock, log.
10
+ Optional fields: cooldown, skip_when, period, period_budget. -->
11
+
12
+ loop: <kebab-case name>
13
+ status: active <!-- active | paused | done -->
14
+ trigger: manual <!-- who invokes one pass: manual | event | schedule -->
15
+ cooldown: 15m <!-- optional: minimum gap between recorded passes -->
16
+ skip_when: <shell command> <!-- optional: exit 0 = skip this pass -->
17
+ verify: <shell command> <!-- repeat the line per verifier command, in order;
18
+ include a secret-scan or dependency-audit
19
+ verifier when the loop touches code or
20
+ dependencies -->
21
+ max_iterations: 3 <!-- fix → verify cycles allowed in one pass -->
22
+ wall_clock: 30m <!-- per-pass wall-clock budget -->
23
+ period: 24h <!-- optional: rolling window for period_budget -->
24
+ period_budget: 4h <!-- optional: total wall-clock usable per period;
25
+ requires period -->
26
+ log: .project/loop/<name>.LOG.jsonl
27
+
28
+ ## Goal
29
+
30
+ <What "green" means — the one outcome the verify commands must prove. If the
31
+ loop cannot state this in a sentence, it is not ready to run.>
32
+
33
+ ## Worker scope
34
+
35
+ <What one fix worker must do, and what it must never do: no commits, pushes,
36
+ or tags; no editing tests to match broken code; paths that are read-only to
37
+ the worker.>
38
+
39
+ ## Feedback route
40
+
41
+ <On a failed verify, what the worker gets back: the exact failing command and
42
+ its output tail, aimed at the smallest failed unit — not a retry of the whole
43
+ goal.>
44
+
45
+ ## Human gates
46
+
47
+ <Never-auto actions. When a fix requires one of these, the pass stops with
48
+ BLOCKED: <reason> and the named action goes to the user.>
49
+
50
+ ## Stops
51
+
52
+ <Conditions that end a pass honestly: verify green (pass), max_iterations or
53
+ wall_clock spent (fail), a human-gate action required (blocked). Never keep
54
+ iterating past these.>
55
+
56
+ ## Output
57
+
58
+ <What one pass reports to the user and where: the record appended to the log
59
+ path above, plus the Outcome / Review / Next report.>
@@ -0,0 +1,16 @@
1
+ # Patch Findings
2
+
3
+ <!-- Written by final review when it blocks and consumed by patch planning. -->
4
+
5
+ Reviewed HEAD: <full SHA>
6
+ State: ship/blocked
7
+
8
+ ## Findings
9
+
10
+ <!-- Copy only evidenced, selected findings. Keep IDs contiguous and ordered. -->
11
+ ### P001 — <short finding title>
12
+
13
+ - **Source**: `.project/review/FINAL.md`
14
+ - **Locator**: `<SC number or gap risk row>`
15
+ - **Evidence**: <observed result copied from the source review>
16
+ - **Fix direction**: <concrete direction for the patch task>
@@ -0,0 +1,25 @@
1
+ # Plan panel — <family>
2
+
3
+ <!-- Written by one review-panel child. The orchestrator validates this file
4
+ with scripts/review_panel.py merge and never treats it as a plan gate.
5
+ Kind criterion requires a named PLAN/task criterion; preference is
6
+ taste or an alternate design and must not flip approval. -->
7
+
8
+ - Family: <claude | gpt | grok | composer | gemini | deepseek | kimi | qwen>
9
+ - Model: <exact advertised slug>
10
+
11
+ ## Findings
12
+
13
+ <!-- One ### F# block per finding, or a single `- none` line. -->
14
+
15
+ ### F1
16
+ - Severity: high
17
+ - Kind: criterion
18
+ - Criterion: Wave 1 / T001 / acceptance 1
19
+ - Evidence: .project/tasks/T001-slug.md:12
20
+ - Found: <what is missing or wrong>
21
+ - Fix direction: <concrete plan/task edit>
22
+
23
+ ## Summary
24
+
25
+ <one paragraph; do not edit PLAN.md or tasks>
@@ -0,0 +1,89 @@
1
+ # Plan — <project name>
2
+
3
+ <!-- Written by the planner role. Executed wave-by-wave by $gsd-path-build. -->
4
+
5
+ Project verify: `<command that installs dependencies, builds + tests the whole project>`
6
+ <!-- Run once at ship, in a fresh sidecar worktree checked out at the
7
+ reviewed commit: no node_modules, virtualenv, build output, or untracked
8
+ env files exist there. The command must provision what it needs first,
9
+ e.g. `pnpm install --frozen-lockfile && pnpm test`. A task Verify must
10
+ not copy this command unless an owned INTENT success criterion names it.
11
+ Otherwise the task Verify names a path from that task's files. -->
12
+
13
+ ## Config
14
+
15
+ - max_review_cycles: 3 <!-- review→fix→re-review loops per wave before escalating -->
16
+ - wave_budget: none <!-- none | optional per-wave resource cap: wall-clock,
17
+ tokens, or cost (e.g. 2h, 500k tokens). Reaching the
18
+ cap blocks the wave like an exhausted cycle cap and
19
+ escalates to the user. none is default. -->
20
+ - review_panel: off <!-- off | detected | claude,gpt,grok — optional
21
+ cross-model panel. off is default. detected uses
22
+ advertised host families except the parent, cap 3.
23
+ Named families are an assertion. Quick lane stays
24
+ off. The planner copies INTENT.md; it does not
25
+ invent a non-off value. -->
26
+ - finding_skeptics: off <!-- off | on — deep waves only. on spawns one
27
+ read-only skeptic per blocking finding before
28
+ fix tasks are batched; a refuted finding spawns
29
+ no fix task unless the user explicitly overrides
30
+ all cycle refutations. off is default. The planner
31
+ copies INTENT.md; it does not invent on. -->
32
+
33
+ ## Wave 1 — risk burn-down
34
+
35
+ Goal: <what this wave proves; if it fails, what changes>
36
+ Review depth: full <!-- full | deep | verify-only. Wave 1 and auth/payments/
37
+ data migration/concurrency waves must be full or
38
+ deep. Assign deep sparingly: irreversible or
39
+ security-critical merges. -->
40
+
41
+ <!-- No task table. Task id, title, deps, and files live only in each
42
+ `tasks/T###-slug.md` frontmatter; `wave: N` there assigns it here. -->
43
+
44
+ ## Wave 2 — walking skeleton
45
+
46
+ Goal: <the end-to-end slice that runs>
47
+ Review depth: <full | deep | verify-only>
48
+
49
+ <!-- More waves: features by dependency, then polish. Rules:
50
+ - deps only in earlier waves, or same wave with no file overlap
51
+ - no two same-wave tasks share files
52
+ - nothing from INTENT.md scope-out appears anywhere -->
53
+
54
+ ## Surface contract
55
+
56
+ <!-- Required when INTENT.md `Surfaces:` is not `none`; omit the section
57
+ entirely when it is. One block per declared surface, named exactly as
58
+ INTENT.md names it, owned by the task that delivers it. That task must
59
+ name in Criteria the success criteria this surface is proven by — the
60
+ owning task must own every listed criterion in its Intent coverage. A
61
+ criterion may appear in only one surface block. This is what the final
62
+ reviewer walks before the milestone is called done, and FINAL.md records
63
+ the surface it was walked on. Replace every whole-value angle-bracket
64
+ placeholder; angle brackets may appear inside concrete routes, commands,
65
+ states, and walkthrough steps. -->
66
+
67
+ ### <surface name as INTENT.md writes it> — T001
68
+
69
+ Criteria: SC1
70
+ Entry: <the route, screen, or command a person opens>
71
+ States: <what empty, loading, error, and success each show>
72
+ Walkthrough:
73
+ 1. <step a reviewer performs to see this surface working>
74
+
75
+ ## Intent coverage
76
+
77
+ <!-- Every INTENT.md success criterion, as SCn, maps to at least one task
78
+ acceptance item. The named task's Verify command is what must fail if
79
+ that criterion is skipped. `scripts/check_handoffs.py plan` gates this
80
+ table against INTENT.md and each task's Intent coverage section. -->
81
+
82
+ | Criterion | Task | Acceptance |
83
+ |-----------|------|------------|
84
+ | SC1 | T001 | AC1 |
85
+
86
+ ## Dependency notes
87
+
88
+ <Per non-obvious edge: the exact data or landed effect that makes X precede Y,
89
+ and how a reviewer sees it. Narrative order is not a dependency.>
@@ -0,0 +1,16 @@
1
+ # Repository Binding
2
+
3
+ <!-- Written once by the journaled new-GitHub repository transaction. This
4
+ fixed-format artifact is the recovery and build handoff; do not infer its
5
+ values from STATE.md prose. The pipeline never enters the default
6
+ checkout, so its local default branch ref may lag origin; run
7
+ `git pull --ff-only` there before working in it. -->
8
+
9
+ Kind: <kind>
10
+ Remote: <remote>
11
+ Visibility: <visibility>
12
+ Remote default: <remote-default>
13
+ Remote default SHA: <remote-default-sha>
14
+ Default checkout: <default-checkout>
15
+ GSD Path branch: <branch>
16
+ Primary worktree: <primary-worktree>
@@ -0,0 +1,25 @@
1
+ # Research Handoff
2
+
3
+ <!-- Written by the research orchestrator and consumed by decide. -->
4
+
5
+ Phase: research
6
+ Status: complete
7
+ Intent: `.project/intent/INTENT.md`
8
+ <!-- Program flow (no milestone INTENT exists): write the Intent line as
9
+ `.project/CHARTER.md` instead — the validator accepts exactly one of the
10
+ two paths, matching the file that actually exists. -->
11
+
12
+ ## Dispatch
13
+
14
+ <!-- Include every standard dimension exactly once. A custom dimension may
15
+ supplement these rows, never replace a standard row. -->
16
+ - `domain` — dispatched → `.project/research/evidence-domain.md` — <why this dimension ran>
17
+ - `stack` — skipped → none — <why this dimension was skipped>
18
+ - `pitfalls` — skipped → none — <why this dimension was skipped>
19
+ - `similar` — skipped → none — <why this dimension was skipped>
20
+
21
+ ## Question assignments
22
+
23
+ <!-- Copy every [RESEARCH] question from INTENT.md exactly once. Use `- none`
24
+ only when INTENT.md has no [RESEARCH] questions. -->
25
+ - `[RESEARCH] <question copied from INTENT.md>` → `domain`
@@ -0,0 +1,38 @@
1
+ # Roadmap — <program name>
2
+
3
+ <!-- Written and owned by $gsd-path-roadmap. Rolling-wave: milestone-granularity
4
+ scope for EVERY milestone; waves and tasks are planned only for the active
5
+ milestone. Never edit a shipped entry except its Status, Archive, and
6
+ Integrated fields; never edit an abandoned entry at all. Lives at
7
+ .project/ top
8
+ level and persists across milestones; it never archives. -->
9
+
10
+ ## Milestones
11
+
12
+ ### M001 — <slug>
13
+
14
+ Goal: <one sentence — the independently shippable outcome>
15
+ Depends on: [] # milestone ids; acyclic; earlier ids only
16
+ Surfaces: none # none | the human-facing surfaces this milestone
17
+ # delivers (web app, CLI, HTTP API). Each one needs a
18
+ # success criterion observable there.
19
+ Status: pending # pending | active | shipped | abandoned
20
+ Archive: null # .project/archive/<NNN>-<slug>/ recorded at ship
21
+ Integrated: null # optional; merge SHA of the integrate commit onto
22
+ # the remote default, filled after integration
23
+
24
+ Scope: in
25
+ - <deliverable sized capability>
26
+
27
+ Scope: out
28
+ - <explicit exclusion deferred to a later milestone or vetoed>
29
+
30
+ Success criteria
31
+ 1. <observable criterion the milestone's final review can check>
32
+
33
+ Risks
34
+ - <risk that could invalidate this milestone or its dependents>
35
+
36
+ Open questions
37
+ - None # any real question here inserts milestone-scoped
38
+ # research + decide before that milestone's planning
@@ -0,0 +1,36 @@
1
+ # Skeptic — wave <N>, cycle <C>
2
+
3
+ <!-- Written by one finding-skeptic child. Advisory to fix-task batching
4
+ only: the inherit reviewer owns Wave verdict. -->
5
+
6
+ - Criterion: <the failed criterion, verbatim from the lens file>
7
+ - Criterion locator: <t001_ac2 | t001_files | sc3>
8
+ - Lenses: <contract | adversarial | both>
9
+
10
+ ## Observations
11
+
12
+ <!-- Repeat for every distinct lens observation. Collapse only true
13
+ duplicates. Give each observation a unique number and exactly one
14
+ verdict with that number below; unknown or duplicate verdict numbers
15
+ are invalid. The criterion locator, not these local numbers, is the
16
+ finding identity across cycles. -->
17
+
18
+ ### Observation <n> — <contract | adversarial>
19
+
20
+ <the observation verbatim: criterion, observed result, file:line>
21
+
22
+ ## Observation verdicts
23
+
24
+ ### Observation <n>: <refuted | stands>
25
+
26
+ <checked evidence for this observation>
27
+
28
+ ## Verdict
29
+
30
+ <refuted | stands>
31
+
32
+ ## Evidence
33
+
34
+ <checked evidence: the command re-run in the sidecar or the artifact
35
+ re-read, with its result. A refuted verdict requires every observation above
36
+ to be individually refuted; anything short of that is stands.>
@@ -0,0 +1,27 @@
1
+ ---
2
+ pipeline: gsd-path/v2
3
+ project: <slug>
4
+ milestone: null # set by define; names the archive directory at ship
5
+ phase: define # v2 tokens: inspect | define | research | decide | roadmap | plan | build | ship | shipped
6
+ # inspect only for brownfield; greenfield starts at define
7
+ # roadmap only in program flow (CHARTER.md exists)
8
+ status: active # active | done | blocked; shipped is only phase: shipped + status: done
9
+ branch: null # bound per milestone as gsd-path/M00N; after integration
10
+ # the router rebinds before any next-milestone file change
11
+ # the bound branch is never main; ship integrates it there
12
+ archive: null # persisted archive transaction path; never recomputed
13
+ integration_default: direct # direct | pull-request; project setting
14
+ integration: direct # current milestone; may override the default before build
15
+ integration_source: default # default | milestone; preserves override provenance
16
+ ---
17
+
18
+ # Project State
19
+
20
+ One file, always current. The router reads this first; every phase updates
21
+ it on completion. If this file and the artifacts disagree, the artifacts win
22
+ — fix this file.
23
+
24
+ ## Log
25
+
26
+ <!-- append one line per transition: date, phase, event -->
27
+ - YYYY-MM-DD — <phase> — project initialized
@@ -0,0 +1,36 @@
1
+ # Synthesis
2
+
3
+ <!-- Written by the decider role. The planner treats Decisions as settled. -->
4
+
5
+ ## Settled
6
+
7
+ <!-- Choices closed by an intent constraint or the existing codebase.
8
+ One line each, citing the settling source. No invented runner-ups. -->
9
+ - <area> — <what stands> (<settling source>)
10
+
11
+ ## Decisions
12
+
13
+ <!-- One block per genuinely open choice the evidence resolved. -->
14
+ ### <decision area, e.g. Stack>
15
+
16
+ - **Decision**: <what we're doing>
17
+ - **Runner-up**: <what lost, and why>
18
+ - **Evidence**: <evidence-file.md § finding heading, ...>
19
+ - **Confidence**: <high | medium | low — low ⇒ verify in wave 1>
20
+
21
+ ## For the planner
22
+
23
+ <!-- The shape of the build. -->
24
+ - **Wave-1 blockers**: <riskiest assumptions to burn down first>
25
+ - **Walking skeleton**: <the thinnest end-to-end slice>
26
+ - **Pitfalls → tasks**: <known trap → which future task must dodge it>
27
+
28
+ ## User rulings
29
+
30
+ <!-- NEEDS-USER items answered at the synthesis checkpoint. Verbatim-ish. -->
31
+ - <question> → <ruling>
32
+
33
+ ## Still unknown
34
+
35
+ <!-- Carried-forward gaps. Never let a question vanish between phases. -->
36
+ - <gap> — <plan: wave-1 spike | accept risk | NEEDS-USER>
@@ -0,0 +1,74 @@
1
+ ---
2
+ id: T001
3
+ title: <imperative, specific>
4
+ wave: 1
5
+ deps: [] # task ids whose output or landed effect this task needs
6
+ status: pending # orchestrator-owned: pending | in-progress | done | failed | blocked
7
+ agent: null # orchestrator-owned: set at dispatch
8
+ base: null # orchestrator-owned: clean layer SHA for isolated Verify
9
+ worktree: null # orchestrator-owned: isolated task worktree while active
10
+ task_branch: null # orchestrator-owned: gsd-path-task/<id> while parallel; null when serial
11
+ files: # every file this task may touch — dispatch checks overlap
12
+ - <path>
13
+ ---
14
+
15
+ # T001 — <title>
16
+
17
+ ## Context
18
+
19
+ <!-- 3–5 sentences. Everything the coder needs from SYNTHESIS, inlined.
20
+ The coder reads this file, INTENT.md, and the codebase. -->
21
+
22
+ ## Approach
23
+
24
+ <!-- Constraints, applicable pitfalls from research, and pointers to real
25
+ paths, symbols, and schemas. Not an edit script — the coder owns the
26
+ how within these constraints and the acceptance criteria. -->
27
+ - <constraint or pointer>
28
+
29
+ ## Interface contract
30
+
31
+ <!-- Planner-owned. The exact shared symbols, signatures, types, paths,
32
+ schemas, or formats this task exchanges with other tasks. Required when
33
+ another task consumes this task's output or this task consumes a
34
+ sibling's; write the identical contract in every involved task. Otherwise
35
+ write `None`. Only shapes this task's `files` define or consume — never
36
+ the whole plan's contracts. Binding like the acceptance criteria: needing to deviate
37
+ is a plan defect — block, never negotiate or improvise. -->
38
+ - None
39
+
40
+ ## Intent coverage
41
+
42
+ <!-- SCn ids this task owns, matching PLAN.md Intent coverage. Write
43
+ `- None` when this task owns no INTENT success criterion. -->
44
+ - SC1
45
+
46
+ ## Acceptance criteria
47
+
48
+ <!-- Observable. The reviewer checks the diff against exactly these. -->
49
+ 1. <behavior/command/output that must be true>
50
+
51
+ ## Verify
52
+
53
+ ```bash
54
+ <one command that fails if this task wasn't done; names a path from files>
55
+ ```
56
+ <!-- Runs in a fresh sidecar worktree at the landed commit with nothing
57
+ installed. Provision dependencies inside the command when the project
58
+ needs them, e.g. `pnpm install --frozen-lockfile && pnpm vitest run
59
+ src/x.test.ts`. -->
60
+
61
+ Heavy: no <!-- yes when this command must not run beside another heavy Verify -->
62
+
63
+ <!-- Fix tasks only: add ## Review findings before Log, with one
64
+ ### <canonical locator> block per group in the helper's batch.
65
+ Each block contains Criterion: <verbatim criterion> and all supplied
66
+ observations verbatim. Set deps to include the source tasks and files
67
+ to the batch's files. Ordinary tasks omit this section. -->
68
+
69
+ ## Log
70
+
71
+ <!-- Append-only: coder summary, blocks (`NEEDS-ORCHESTRATOR: <question> —
72
+ readings: <candidates>` for contract ambiguity), orchestrator answers,
73
+ review verdicts, fixes. -->
74
+ - <date> — created by planner
@@ -0,0 +1,25 @@
1
+ # Panel — wave <N>, cycle <C>
2
+
3
+ <!-- Written by one review-panel child. Advisory only: the inherit reviewer
4
+ owns Wave verdict. Kind criterion may be presented to the user when
5
+ Severity is high; preference stays a warning. -->
6
+
7
+ - Family: <claude | gpt | grok | composer | gemini | deepseek | kimi | qwen>
8
+ - Model: <exact advertised slug>
9
+ - Depth: <full | adversarial>
10
+
11
+ ## Findings
12
+
13
+ <!-- One ### F# block per finding, or a single `- none` line. -->
14
+
15
+ ### F1
16
+ - Severity: high
17
+ - Kind: criterion
18
+ - Criterion: T001 acceptance 1
19
+ - Evidence: src/app.py:12
20
+ - Found: <what exists instead>
21
+ - Fix direction: <concrete coder direction>
22
+
23
+ ## Summary
24
+
25
+ <one paragraph; do not edit code, tasks, or the canonical wave review>
@@ -0,0 +1,64 @@
1
+ # Review — wave <N>, cycle <C>
2
+
3
+ <!-- Written by the reviewer role in wave mode. File: wave-N.cycleC.md —
4
+ deep reviews use wave-N.cycleC.contract.md and
5
+ wave-N.cycleC.adversarial.md instead. Keep validated fields on their
6
+ own lines: Cycle holds only the number
7
+ (C > 1 means re-review after fixes; see previous cycle file). -->
8
+
9
+ <!-- For quick single-full-wave final scope, include these two metadata lines
10
+ with actual values, otherwise omit them:
11
+ Reviewed HEAD: <full review commit SHA>
12
+ Review scope: final
13
+ In each surface SC block also include Surface, Check, and Observed fields
14
+ using the final-review format. Record the actual walkthrough evidence once. -->
15
+
16
+ Wave verdict: <pass | blocked — blocked if any task fails>
17
+ Cycle: <C>
18
+ Depth: <full | deep | verify-only — verify-only is orchestrator-written from
19
+ its isolated Verify evidence; no independent reviewer ran>
20
+ Lens: <contract | adversarial — deep reviews only; empty or omitted
21
+ otherwise>
22
+ Tasks reviewed: <count>
23
+
24
+ ## T001 — <title>: <pass | fail>
25
+
26
+ <!-- Per task criterion: copy the full acceptance/interface criterion verbatim
27
+ before the em dash; join wrapped lines with spaces. An AC id or summary
28
+ alone cannot be matched by review_findings.py. -->
29
+ - ✅ <criterion> — <evidence: verify output / file:line checked>
30
+ - ❌ <criterion> — found: <what exists instead, file:line>
31
+ fix: <concrete direction a coder can execute without re-investigating>
32
+
33
+ Warnings (non-blocking):
34
+ - <weakened test / unfailable verify / none>
35
+
36
+ Contract violations (blocking):
37
+ - ❌ <task changed path outside its files list> — <evidence and fix direction>
38
+
39
+ <!-- Repeat per task. -->
40
+
41
+ ## Intent coverage
42
+
43
+ <!-- One heading per INTENT.md success criterion owned by a task in this
44
+ wave, ending `: pass` or `: fail`. `scripts/check_handoffs.py wave
45
+ --review <this file>` gates the SC id set and verdicts. Omit this
46
+ section when no task in the wave owns an SC. -->
47
+
48
+ ### SC1 — <criterion>: <pass | fail>
49
+ - ✅ <evidence: verify output / file:line checked>
50
+ - ❌ <criterion> — found: <what exists instead, file:line>
51
+ fix: <concrete direction a coder can execute without re-investigating>
52
+
53
+ ## Fixed since last cycle
54
+
55
+ <!-- C > 1 only: previously failed criteria now confirmed fixed (re-checked,
56
+ not assumed), and any regressions the fixes introduced. -->
57
+ - <criterion> — confirmed fixed / regressed: <evidence>
58
+
59
+ ## Summary for orchestrator
60
+
61
+ - blocked findings: <failed criteria grouped by disjoint file scope; the
62
+ orchestrator applies the configured skeptic or fix-task path>
63
+ - repeat offenders: <criteria failing across cycles — possible plan defect>
64
+ - warnings worth a human eye: <...or none>