@sienklogic/plan-build-run 2.1.0 → 2.1.1

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 (1238) hide show
  1. package/CHANGELOG.md +51 -49
  2. package/CLAUDE.md +48 -32
  3. package/LICENSE +2 -1
  4. package/README.md +771 -87
  5. package/agents/pbr-audit.md +266 -0
  6. package/agents/pbr-codebase-mapper.md +236 -0
  7. package/agents/pbr-debugger.md +312 -0
  8. package/agents/pbr-dev-sync.md +220 -0
  9. package/agents/pbr-executor.md +559 -0
  10. package/agents/pbr-general.md +191 -0
  11. package/agents/pbr-integration-checker.md +237 -0
  12. package/agents/pbr-nyquist-auditor.md +252 -0
  13. package/agents/pbr-plan-checker.md +312 -0
  14. package/agents/pbr-planner.md +495 -0
  15. package/agents/pbr-researcher.md +314 -0
  16. package/agents/pbr-roadmapper.md +346 -0
  17. package/agents/pbr-synthesizer.md +271 -0
  18. package/agents/pbr-verifier.md +495 -0
  19. package/bin/install.js +2752 -0
  20. package/commands/pbr/add-phase.md +75 -0
  21. package/commands/pbr/add-todo.md +8 -0
  22. package/commands/pbr/audit-milestone.md +8 -0
  23. package/commands/pbr/audit.md +5 -0
  24. package/commands/pbr/check-todos.md +8 -0
  25. package/commands/pbr/complete-milestone.md +8 -0
  26. package/commands/pbr/config.md +5 -0
  27. package/commands/pbr/continue.md +5 -0
  28. package/commands/pbr/dashboard.md +5 -0
  29. package/commands/pbr/debug.md +5 -0
  30. package/commands/pbr/discuss-phase.md +6 -0
  31. package/commands/pbr/do.md +5 -0
  32. package/commands/pbr/execute-phase.md +6 -0
  33. package/commands/pbr/explore.md +5 -0
  34. package/commands/pbr/health.md +5 -0
  35. package/commands/pbr/help.md +5 -0
  36. package/commands/pbr/import.md +5 -0
  37. package/commands/pbr/insert-phase.md +65 -0
  38. package/commands/pbr/join-discord.md +11 -0
  39. package/commands/pbr/list-phase-assumptions.md +69 -0
  40. package/commands/pbr/map-codebase.md +6 -0
  41. package/commands/pbr/new-milestone.md +8 -0
  42. package/commands/pbr/new-project.md +6 -0
  43. package/commands/pbr/note.md +5 -0
  44. package/commands/pbr/pause-work.md +5 -0
  45. package/commands/pbr/plan-milestone-gaps.md +7 -0
  46. package/commands/pbr/plan-phase.md +6 -0
  47. package/commands/pbr/progress.md +6 -0
  48. package/commands/pbr/quick.md +5 -0
  49. package/commands/pbr/reapply-patches.md +40 -0
  50. package/commands/pbr/remove-phase.md +66 -0
  51. package/commands/pbr/research-phase.md +59 -0
  52. package/commands/pbr/resume-work.md +5 -0
  53. package/commands/pbr/set-profile.md +6 -0
  54. package/commands/pbr/settings.md +5 -0
  55. package/commands/pbr/setup.md +5 -0
  56. package/commands/pbr/statusline.md +5 -0
  57. package/commands/pbr/test.md +5 -0
  58. package/commands/pbr/undo.md +5 -0
  59. package/commands/pbr/update.md +37 -0
  60. package/commands/pbr/verify-work.md +6 -0
  61. package/dashboard/bin/cli.cjs +85 -0
  62. package/dashboard/eslint.config.js +37 -0
  63. package/dashboard/index.html +20 -0
  64. package/dashboard/package.json +28 -23
  65. package/dashboard/server/index.js +134 -0
  66. package/dashboard/server/lib/frontmatter.js +92 -0
  67. package/dashboard/server/middleware/static.js +35 -0
  68. package/dashboard/server/package.json +16 -0
  69. package/dashboard/server/routes/agents.js +213 -0
  70. package/dashboard/server/routes/config.js +64 -0
  71. package/dashboard/server/routes/health.js +21 -0
  72. package/dashboard/server/routes/memory.js +107 -0
  73. package/dashboard/server/routes/planning.js +234 -0
  74. package/dashboard/server/routes/projects.js +36 -0
  75. package/dashboard/server/routes/requirements.js +40 -0
  76. package/dashboard/server/routes/roadmap.js +69 -0
  77. package/dashboard/server/routes/status.js +25 -0
  78. package/dashboard/server/routes/telemetry.js +171 -0
  79. package/dashboard/server/services/file-watcher.js +105 -0
  80. package/dashboard/server/services/planning-reader.js +679 -0
  81. package/dashboard/server/test/cli.test.js +34 -0
  82. package/dashboard/server/test/frontmatter.test.js +104 -0
  83. package/dashboard/server/test/isolation.test.js +32 -0
  84. package/dashboard/server/test/planning-reader.test.js +151 -0
  85. package/dashboard/server/test/routes.test.js +91 -0
  86. package/dashboard/server/test/ws.test.js +81 -0
  87. package/dashboard/server/ws.js +96 -0
  88. package/dashboard/src/App.jsx +147 -0
  89. package/dashboard/src/components/charts/BudgetBars.jsx +42 -0
  90. package/dashboard/src/components/charts/ContextRadar.jsx +34 -0
  91. package/dashboard/src/components/charts/PhaseDonut.jsx +66 -0
  92. package/dashboard/src/components/charts/SuccessTrend.jsx +45 -0
  93. package/dashboard/src/components/charts/TokenChart.jsx +55 -0
  94. package/dashboard/src/components/charts/index.js +5 -0
  95. package/dashboard/src/components/config/CfgSection.jsx +93 -0
  96. package/dashboard/src/components/layout/Header.jsx +89 -0
  97. package/dashboard/src/components/layout/ProjectSwitcher.jsx +160 -0
  98. package/dashboard/src/components/layout/Sidebar.jsx +161 -0
  99. package/dashboard/src/components/ui/AutoModeBanner.jsx +138 -0
  100. package/dashboard/src/components/ui/BackButton.jsx +27 -0
  101. package/dashboard/src/components/ui/Badge.jsx +27 -0
  102. package/dashboard/src/components/ui/Card.jsx +23 -0
  103. package/dashboard/src/components/ui/ChartTooltip.jsx +48 -0
  104. package/dashboard/src/components/ui/CheckpointBox.jsx +110 -0
  105. package/dashboard/src/components/ui/CodeBlock.jsx +27 -0
  106. package/dashboard/src/components/ui/ConfidenceBadge.jsx +20 -0
  107. package/dashboard/src/components/ui/ConfirmModal.jsx +161 -0
  108. package/dashboard/src/components/ui/ConnectionBanner.jsx +60 -0
  109. package/dashboard/src/components/ui/ErrorBoundary.jsx +106 -0
  110. package/dashboard/src/components/ui/ErrorBox.jsx +107 -0
  111. package/dashboard/src/components/ui/KeyValue.jsx +33 -0
  112. package/dashboard/src/components/ui/LoadingSkeleton.jsx +84 -0
  113. package/dashboard/src/components/ui/MetricCard.jsx +58 -0
  114. package/dashboard/src/components/ui/NextUpBlock.jsx +92 -0
  115. package/dashboard/src/components/ui/NumberInput.jsx +44 -0
  116. package/dashboard/src/components/ui/PBRBanner.jsx +47 -0
  117. package/dashboard/src/components/ui/PipelineView.jsx +130 -0
  118. package/dashboard/src/components/ui/ProgressBar.jsx +28 -0
  119. package/dashboard/src/components/ui/ProgressDisplay.jsx +47 -0
  120. package/dashboard/src/components/ui/QualityGateBadge.jsx +15 -0
  121. package/dashboard/src/components/ui/SectionTitle.jsx +35 -0
  122. package/dashboard/src/components/ui/SelectInput.jsx +45 -0
  123. package/dashboard/src/components/ui/StatusDot.jsx +51 -0
  124. package/dashboard/src/components/ui/StatusSymbol.jsx +49 -0
  125. package/dashboard/src/components/ui/TabBar.jsx +41 -0
  126. package/dashboard/src/components/ui/TextInput.jsx +42 -0
  127. package/dashboard/src/components/ui/Toast.jsx +117 -0
  128. package/dashboard/src/components/ui/Toggle.jsx +70 -0
  129. package/dashboard/src/components/ui/index.js +29 -0
  130. package/dashboard/src/hooks/useDocumentTitle.js +16 -0
  131. package/dashboard/src/hooks/useFetch.js +50 -0
  132. package/dashboard/src/hooks/useToast.jsx +43 -0
  133. package/dashboard/src/hooks/useWebSocket.js +103 -0
  134. package/dashboard/src/lib/api.js +112 -0
  135. package/dashboard/src/lib/configSchema.js +189 -0
  136. package/dashboard/src/lib/constants.js +16 -0
  137. package/dashboard/src/main.jsx +15 -0
  138. package/dashboard/src/pages/AgentsPage.jsx +191 -0
  139. package/dashboard/src/pages/ConfigPage.jsx +298 -0
  140. package/dashboard/src/pages/HooksPage.jsx +412 -0
  141. package/dashboard/src/pages/LiveFeed.jsx +274 -0
  142. package/dashboard/src/pages/MemoryPage.jsx +107 -0
  143. package/dashboard/src/pages/Overview.jsx +360 -0
  144. package/dashboard/src/pages/PhaseDetailView.jsx +216 -0
  145. package/dashboard/src/pages/PlanningPage.jsx +181 -0
  146. package/dashboard/src/pages/RoadmapPage.jsx +251 -0
  147. package/dashboard/src/pages/Telemetry.jsx +113 -0
  148. package/dashboard/src/pages/planning/DecisionsTab.jsx +153 -0
  149. package/dashboard/src/pages/planning/FilesTab.jsx +420 -0
  150. package/dashboard/src/pages/planning/MilestoneDetail.jsx +319 -0
  151. package/dashboard/src/pages/planning/MilestonesTab.jsx +151 -0
  152. package/dashboard/src/pages/planning/NotesTab.jsx +251 -0
  153. package/dashboard/src/pages/planning/PhasesTab.jsx +218 -0
  154. package/dashboard/src/pages/planning/QuickTab.jsx +50 -0
  155. package/dashboard/src/pages/planning/ResearchTab.jsx +103 -0
  156. package/dashboard/src/pages/planning/TodosTab.jsx +297 -0
  157. package/dashboard/src/theme/ThemeProvider.jsx +38 -0
  158. package/dashboard/src/theme/tokens.js +17 -0
  159. package/dashboard/tests/components/ConfirmModal.test.jsx +179 -0
  160. package/dashboard/tests/components/ConnectionBanner.test.jsx +37 -0
  161. package/dashboard/tests/components/ErrorBoundary.test.jsx +59 -0
  162. package/dashboard/tests/components/LoadingSkeleton.test.jsx +46 -0
  163. package/dashboard/tests/components/ToastContainer.test.jsx +47 -0
  164. package/dashboard/tests/components/Toggle.test.jsx +61 -0
  165. package/dashboard/tests/hooks/useFetch.test.jsx +77 -0
  166. package/dashboard/tests/hooks/useToast.test.jsx +78 -0
  167. package/dashboard/tests/hooks/useWebSocket.test.jsx +128 -0
  168. package/dashboard/tests/pages/ConfigPage.test.jsx +199 -0
  169. package/dashboard/tests/pages/PlanningPage.test.jsx +119 -0
  170. package/dashboard/tests/pages/planning/FilesTab.test.jsx +198 -0
  171. package/dashboard/tests/pages/planning/NotesTab.test.jsx +178 -0
  172. package/dashboard/tests/pages/planning/TodosTab.test.jsx +188 -0
  173. package/dashboard/tests/performance.test.jsx +46 -0
  174. package/dashboard/tests/routes/config.test.js +98 -0
  175. package/dashboard/tests/routes/health.test.js +40 -0
  176. package/dashboard/tests/routes/planning.test.js +112 -0
  177. package/dashboard/tests/routes/roadmap.test.js +91 -0
  178. package/dashboard/tests/routes/status.test.js +131 -0
  179. package/dashboard/tests/server/planning-reader.test.js +153 -0
  180. package/dashboard/tests/setup.js +7 -0
  181. package/dashboard/vite.config.js +41 -0
  182. package/hooks/dist/auto-continue.js +201 -0
  183. package/hooks/dist/block-skill-self-read.js +77 -0
  184. package/hooks/dist/branding-audit.js +232 -0
  185. package/hooks/dist/check-agent-state-write.js +63 -0
  186. package/hooks/dist/check-config-change.js +188 -0
  187. package/hooks/dist/check-dangerous-commands.js +184 -0
  188. package/hooks/dist/check-doc-sprawl.js +102 -0
  189. package/hooks/dist/check-phase-boundary.js +190 -0
  190. package/hooks/dist/check-plan-format.js +654 -0
  191. package/hooks/dist/check-roadmap-sync.js +491 -0
  192. package/hooks/dist/check-skill-workflow.js +353 -0
  193. package/hooks/dist/check-state-sync.js +612 -0
  194. package/hooks/dist/check-subagent-output.js +754 -0
  195. package/hooks/dist/check-summary-gate.js +198 -0
  196. package/hooks/dist/context-bridge.js +342 -0
  197. package/hooks/dist/context-budget-check.js +441 -0
  198. package/hooks/dist/enforce-pbr-workflow.js +277 -0
  199. package/hooks/dist/event-handler.js +217 -0
  200. package/hooks/dist/event-logger.js +92 -0
  201. package/hooks/dist/hook-logger.js +80 -0
  202. package/hooks/dist/hook-server-client.js +341 -0
  203. package/hooks/dist/hook-server.js +336 -0
  204. package/hooks/dist/hooks-schema.json +85 -0
  205. package/hooks/dist/hooks.json +288 -0
  206. package/hooks/dist/instructions-loaded.js +107 -0
  207. package/hooks/dist/intercept-plan-mode.js +48 -0
  208. package/hooks/dist/log-notification.js +87 -0
  209. package/hooks/dist/log-subagent.js +303 -0
  210. package/hooks/dist/log-tool-failure.js +140 -0
  211. package/hooks/dist/milestone-learnings.js +290 -0
  212. package/hooks/dist/post-bash-triage.js +151 -0
  213. package/hooks/dist/post-write-dispatch.js +227 -0
  214. package/hooks/dist/post-write-quality.js +207 -0
  215. package/hooks/dist/pre-bash-dispatch.js +137 -0
  216. package/hooks/dist/pre-write-dispatch.js +156 -0
  217. package/hooks/dist/progress-tracker.js +742 -0
  218. package/hooks/dist/prompt-routing.js +152 -0
  219. package/hooks/dist/run-hook.js +144 -0
  220. package/hooks/dist/session-cleanup.js +455 -0
  221. package/hooks/dist/session-tracker.js +78 -0
  222. package/hooks/dist/status-line.js +471 -0
  223. package/hooks/dist/suggest-compact.js +220 -0
  224. package/hooks/dist/sync-context-to-claude.js +100 -0
  225. package/hooks/dist/task-completed.js +167 -0
  226. package/hooks/dist/track-context-budget.js +317 -0
  227. package/hooks/dist/validate-commit.js +265 -0
  228. package/hooks/dist/validate-plugin-structure.js +193 -0
  229. package/hooks/dist/validate-skill-args.js +219 -0
  230. package/hooks/dist/validate-task.js +256 -0
  231. package/hooks/dist/worktree-create.js +144 -0
  232. package/hooks/dist/worktree-remove.js +147 -0
  233. package/package.json +53 -40
  234. package/plan-build-run/bin/config-schema.json +406 -0
  235. package/plan-build-run/bin/dashboard-launch.cjs +114 -0
  236. package/plan-build-run/bin/event-logger.cjs +92 -0
  237. package/plan-build-run/bin/lib/alternatives.cjs +198 -0
  238. package/plan-build-run/bin/lib/build.cjs +717 -0
  239. package/plan-build-run/bin/lib/circuit-state.cjs +133 -0
  240. package/plan-build-run/bin/lib/commands.cjs +482 -0
  241. package/plan-build-run/bin/lib/config.cjs +681 -0
  242. package/plan-build-run/bin/lib/context.cjs +216 -0
  243. package/plan-build-run/bin/lib/core.cjs +1548 -0
  244. package/plan-build-run/bin/lib/frontmatter.cjs +299 -0
  245. package/plan-build-run/bin/lib/gates/advisories.cjs +129 -0
  246. package/plan-build-run/bin/lib/gates/build-dependency.cjs +100 -0
  247. package/plan-build-run/bin/lib/gates/build-executor.cjs +79 -0
  248. package/plan-build-run/bin/lib/gates/doc-existence.cjs +46 -0
  249. package/plan-build-run/bin/lib/gates/helpers.cjs +74 -0
  250. package/plan-build-run/bin/lib/gates/milestone-complete.cjs +120 -0
  251. package/plan-build-run/bin/lib/gates/plan-executor.cjs +36 -0
  252. package/plan-build-run/bin/lib/gates/quick-executor.cjs +76 -0
  253. package/plan-build-run/bin/lib/gates/review-planner.cjs +61 -0
  254. package/plan-build-run/bin/lib/gates/review-verifier.cjs +69 -0
  255. package/plan-build-run/bin/lib/history.cjs +147 -0
  256. package/plan-build-run/bin/lib/init.cjs +304 -0
  257. package/plan-build-run/bin/lib/learnings.cjs +312 -0
  258. package/plan-build-run/bin/lib/local-llm/health.cjs +12 -0
  259. package/plan-build-run/bin/lib/local-llm/index.cjs +89 -0
  260. package/plan-build-run/bin/lib/local-llm/metrics.cjs +20 -0
  261. package/plan-build-run/bin/lib/local-llm/operations/classify-artifact.cjs +4 -0
  262. package/plan-build-run/bin/lib/local-llm/operations/classify-commit.cjs +4 -0
  263. package/plan-build-run/bin/lib/local-llm/operations/classify-error.cjs +4 -0
  264. package/plan-build-run/bin/lib/local-llm/operations/classify-file-intent.cjs +4 -0
  265. package/plan-build-run/bin/lib/local-llm/operations/triage-test-output.cjs +12 -0
  266. package/plan-build-run/bin/lib/local-llm/operations/validate-task.cjs +4 -0
  267. package/plan-build-run/bin/lib/migrate.cjs +248 -0
  268. package/plan-build-run/bin/lib/milestone.cjs +245 -0
  269. package/plan-build-run/bin/lib/phase.cjs +1021 -0
  270. package/plan-build-run/bin/lib/preview.cjs +174 -0
  271. package/plan-build-run/bin/lib/reference.cjs +234 -0
  272. package/plan-build-run/bin/lib/roadmap.cjs +909 -0
  273. package/plan-build-run/bin/lib/skill-section.cjs +98 -0
  274. package/plan-build-run/bin/lib/spot-check.cjs +116 -0
  275. package/plan-build-run/bin/lib/state.cjs +641 -0
  276. package/plan-build-run/bin/lib/step-verify.cjs +149 -0
  277. package/plan-build-run/bin/lib/template.cjs +222 -0
  278. package/plan-build-run/bin/lib/todo.cjs +300 -0
  279. package/plan-build-run/bin/lib/verify.cjs +820 -0
  280. package/plan-build-run/bin/pbr-tools.cjs +1287 -0
  281. package/plan-build-run/references/CLAUDE.md +7 -0
  282. package/plan-build-run/references/agent-contracts.md +324 -0
  283. package/plan-build-run/references/agent-teams.md +54 -0
  284. package/plan-build-run/references/behavioral-contexts.md +53 -0
  285. package/plan-build-run/references/checkpoints.md +776 -0
  286. package/plan-build-run/references/config-reference.md +363 -0
  287. package/plan-build-run/references/continuation-format.md +249 -0
  288. package/plan-build-run/references/debugging/CLAUDE.md +7 -0
  289. package/plan-build-run/references/decimal-phase-calculation.md +65 -0
  290. package/plan-build-run/references/git-integration.md +248 -0
  291. package/plan-build-run/references/git-planning-commit.md +38 -0
  292. package/plan-build-run/references/model-profile-resolution.md +34 -0
  293. package/plan-build-run/references/model-profiles.md +92 -0
  294. package/plan-build-run/references/model-selection.md +53 -0
  295. package/plan-build-run/references/phase-argument-parsing.md +61 -0
  296. package/plan-build-run/references/plan-authoring.md +246 -0
  297. package/plan-build-run/references/plan-format.md +351 -0
  298. package/plan-build-run/references/planning-config.md +200 -0
  299. package/plan-build-run/references/questioning.md +162 -0
  300. package/plan-build-run/references/reading-verification.md +93 -0
  301. package/plan-build-run/references/stub-patterns.md +160 -0
  302. package/plan-build-run/references/tdd.md +263 -0
  303. package/plan-build-run/references/ui-brand.md +187 -0
  304. package/plan-build-run/references/verification-overrides.md +38 -0
  305. package/plan-build-run/references/verification-patterns.md +612 -0
  306. package/plan-build-run/references/wave-execution.md +52 -0
  307. package/plan-build-run/skills/audit/SKILL.md +348 -0
  308. package/plan-build-run/skills/begin/SKILL.md +891 -0
  309. package/{plugins/cursor-pbr → plan-build-run}/skills/begin/templates/PROJECT.md.tmpl +0 -1
  310. package/{plugins/cursor-pbr → plan-build-run}/skills/begin/templates/REQUIREMENTS.md.tmpl +0 -1
  311. package/{plugins/cursor-pbr → plan-build-run}/skills/begin/templates/STATE.md.tmpl +1 -3
  312. package/{plugins/cursor-pbr → plan-build-run}/skills/begin/templates/config.json.tmpl +7 -2
  313. package/plan-build-run/skills/begin/templates/project-CONTEXT.md.tmpl +19 -0
  314. package/plan-build-run/skills/begin/templates/researcher-prompt.md.tmpl +47 -0
  315. package/plan-build-run/skills/begin/templates/roadmap-prompt.md.tmpl +49 -0
  316. package/plan-build-run/skills/begin/templates/synthesis-prompt.md.tmpl +44 -0
  317. package/plan-build-run/skills/build/SKILL.md +1007 -0
  318. package/plan-build-run/skills/build/templates/continuation-prompt.md.tmpl +26 -0
  319. package/plan-build-run/skills/build/templates/executor-prompt.md.tmpl +70 -0
  320. package/plan-build-run/skills/build/templates/inline-verifier-prompt.md.tmpl +33 -0
  321. package/plan-build-run/skills/config/SKILL.md +342 -0
  322. package/plan-build-run/skills/continue/SKILL.md +190 -0
  323. package/plan-build-run/skills/dashboard/SKILL.md +12 -0
  324. package/plan-build-run/skills/debug/SKILL.md +539 -0
  325. package/plan-build-run/skills/debug/templates/continuation-prompt.md.tmpl +27 -0
  326. package/plan-build-run/skills/debug/templates/initial-investigation-prompt.md.tmpl +34 -0
  327. package/plan-build-run/skills/discuss/SKILL.md +440 -0
  328. package/{plugins/cursor-pbr → plan-build-run}/skills/discuss/templates/CONTEXT.md.tmpl +1 -2
  329. package/{plugins/cursor-pbr → plan-build-run}/skills/discuss/templates/decision-categories.md +0 -1
  330. package/plan-build-run/skills/discuss/templates/project-CONTEXT.md.tmpl +19 -0
  331. package/plan-build-run/skills/do/SKILL.md +70 -0
  332. package/plan-build-run/skills/explore/SKILL.md +443 -0
  333. package/plan-build-run/skills/health/SKILL.md +332 -0
  334. package/{plugins/cursor-pbr → plan-build-run}/skills/health/templates/check-pattern.md.tmpl +0 -1
  335. package/{plugins/cursor-pbr → plan-build-run}/skills/health/templates/output-format.md.tmpl +0 -1
  336. package/plan-build-run/skills/help/SKILL.md +236 -0
  337. package/plan-build-run/skills/import/SKILL.md +816 -0
  338. package/plan-build-run/skills/milestone/SKILL.md +659 -0
  339. package/plan-build-run/skills/milestone/templates/audit-output.md.tmpl +76 -0
  340. package/{plugins/cursor-pbr → plan-build-run}/skills/milestone/templates/audit-report.md.tmpl +0 -1
  341. package/plan-build-run/skills/milestone/templates/complete-output.md.tmpl +32 -0
  342. package/plan-build-run/skills/milestone/templates/edge-cases.md +54 -0
  343. package/plan-build-run/skills/milestone/templates/gaps-output.md.tmpl +25 -0
  344. package/plan-build-run/skills/milestone/templates/integration-checker-prompt.md.tmpl +25 -0
  345. package/plan-build-run/skills/milestone/templates/new-output.md.tmpl +29 -0
  346. package/{plugins/cursor-pbr → plan-build-run}/skills/milestone/templates/stats-file.md.tmpl +0 -1
  347. package/plan-build-run/skills/note/SKILL.md +221 -0
  348. package/plan-build-run/skills/pause/SKILL.md +259 -0
  349. package/{plugins/cursor-pbr → plan-build-run}/skills/pause/templates/continue-here.md.tmpl +0 -1
  350. package/plan-build-run/skills/plan/SKILL.md +700 -0
  351. package/plan-build-run/skills/plan/decimal-phase-calc.md +98 -0
  352. package/{plugins/cursor-pbr → plan-build-run}/skills/plan/templates/checker-prompt.md.tmpl +0 -1
  353. package/plan-build-run/skills/plan/templates/completion-output.md.tmpl +27 -0
  354. package/{plugins/cursor-pbr → plan-build-run}/skills/plan/templates/gap-closure-prompt.md.tmpl +0 -1
  355. package/{plugins/cursor-pbr → plan-build-run}/skills/plan/templates/planner-prompt.md.tmpl +1 -2
  356. package/plan-build-run/skills/plan/templates/prompt-partials/phase-project-context.md.tmpl +21 -0
  357. package/{plugins/cursor-pbr → plan-build-run}/skills/plan/templates/researcher-prompt.md.tmpl +0 -1
  358. package/{plugins/cursor-pbr → plan-build-run}/skills/plan/templates/revision-prompt.md.tmpl +0 -1
  359. package/plan-build-run/skills/profile/SKILL.md +173 -0
  360. package/plan-build-run/skills/quick/SKILL.md +440 -0
  361. package/plan-build-run/skills/resume/SKILL.md +404 -0
  362. package/plan-build-run/skills/review/SKILL.md +711 -0
  363. package/{plugins/cursor-pbr → plan-build-run}/skills/review/templates/debugger-prompt.md.tmpl +0 -1
  364. package/{plugins/cursor-pbr → plan-build-run}/skills/review/templates/gap-planner-prompt.md.tmpl +0 -1
  365. package/{plugins/cursor-pbr → plan-build-run}/skills/review/templates/verifier-prompt.md.tmpl +0 -1
  366. package/plan-build-run/skills/scan/SKILL.md +326 -0
  367. package/{plugins/cursor-pbr → plan-build-run}/skills/scan/templates/mapper-prompt.md.tmpl +1 -2
  368. package/plan-build-run/skills/setup/SKILL.md +236 -0
  369. package/plan-build-run/skills/shared/commit-planning-docs.md +43 -0
  370. package/plan-build-run/skills/shared/config-loading.md +102 -0
  371. package/plan-build-run/skills/shared/context-budget.md +92 -0
  372. package/plan-build-run/skills/shared/context-loader-task.md +93 -0
  373. package/plan-build-run/skills/shared/digest-select.md +79 -0
  374. package/plan-build-run/skills/shared/domain-probes.md +125 -0
  375. package/plan-build-run/skills/shared/error-reporting.md +67 -0
  376. package/plan-build-run/skills/shared/gate-prompts.md +390 -0
  377. package/plan-build-run/skills/shared/phase-argument-parsing.md +45 -0
  378. package/plan-build-run/skills/shared/revision-loop.md +81 -0
  379. package/plan-build-run/skills/shared/state-update.md +153 -0
  380. package/plan-build-run/skills/shared/universal-anti-patterns.md +59 -0
  381. package/plan-build-run/skills/status/SKILL.md +485 -0
  382. package/plan-build-run/skills/statusline/SKILL.md +151 -0
  383. package/plan-build-run/skills/test/SKILL.md +212 -0
  384. package/plan-build-run/skills/todo/SKILL.md +301 -0
  385. package/plan-build-run/skills/undo/SKILL.md +216 -0
  386. package/plan-build-run/templates/CLAUDE.md +7 -0
  387. package/plan-build-run/templates/DEBUG.md +164 -0
  388. package/plan-build-run/templates/UAT.md +247 -0
  389. package/plan-build-run/templates/VALIDATION.md +76 -0
  390. package/plan-build-run/templates/codebase/architecture.md +255 -0
  391. package/plan-build-run/templates/codebase/concerns.md +310 -0
  392. package/plan-build-run/templates/codebase/conventions.md +307 -0
  393. package/plan-build-run/templates/codebase/integrations.md +280 -0
  394. package/plan-build-run/templates/codebase/stack.md +186 -0
  395. package/plan-build-run/templates/codebase/structure.md +285 -0
  396. package/plan-build-run/templates/codebase/testing.md +480 -0
  397. package/plan-build-run/templates/config.json +37 -0
  398. package/plan-build-run/templates/context.md +297 -0
  399. package/plan-build-run/templates/continue-here.md +78 -0
  400. package/plan-build-run/templates/crud-flow-verification.md +277 -0
  401. package/plan-build-run/templates/debug-subagent-prompt.md +91 -0
  402. package/plan-build-run/templates/deferred-items.md +19 -0
  403. package/plan-build-run/templates/discovery.md +146 -0
  404. package/plan-build-run/templates/milestone-archive.md +123 -0
  405. package/plan-build-run/templates/milestone.md +115 -0
  406. package/plan-build-run/templates/phase-prompt.md +569 -0
  407. package/plan-build-run/templates/planner-subagent-prompt.md +117 -0
  408. package/plan-build-run/templates/project.md +184 -0
  409. package/plan-build-run/templates/requirements.md +231 -0
  410. package/plan-build-run/templates/research-outputs/ARCHITECTURE.md.tmpl +86 -0
  411. package/plan-build-run/templates/research-outputs/FEATURES.md.tmpl +77 -0
  412. package/plan-build-run/templates/research-outputs/PITFALLS.md.tmpl +65 -0
  413. package/plan-build-run/templates/research-outputs/STACK.md.tmpl +80 -0
  414. package/plan-build-run/templates/research-project/ARCHITECTURE.md +204 -0
  415. package/plan-build-run/templates/research-project/FEATURES.md +147 -0
  416. package/plan-build-run/templates/research-project/PITFALLS.md +200 -0
  417. package/plan-build-run/templates/research-project/STACK.md +120 -0
  418. package/plan-build-run/templates/research-project/SUMMARY.md +170 -0
  419. package/plan-build-run/templates/research.md +552 -0
  420. package/plan-build-run/templates/retrospective.md +54 -0
  421. package/plan-build-run/templates/roadmap.md +202 -0
  422. package/plan-build-run/templates/seed.md +16 -0
  423. package/plan-build-run/templates/state.md +176 -0
  424. package/plan-build-run/templates/summary-complex.md +59 -0
  425. package/plan-build-run/templates/summary-minimal.md +41 -0
  426. package/plan-build-run/templates/summary-standard.md +48 -0
  427. package/plan-build-run/templates/summary.md +248 -0
  428. package/plan-build-run/templates/user-setup.md +311 -0
  429. package/plan-build-run/templates/verification-report.md +322 -0
  430. package/plan-build-run/workflows/add-phase.md +111 -0
  431. package/plan-build-run/workflows/add-todo.md +157 -0
  432. package/plan-build-run/workflows/audit-milestone.md +241 -0
  433. package/plan-build-run/workflows/check-todos.md +176 -0
  434. package/plan-build-run/workflows/complete-milestone.md +644 -0
  435. package/plan-build-run/workflows/diagnose-issues.md +219 -0
  436. package/plan-build-run/workflows/discovery-phase.md +289 -0
  437. package/plan-build-run/workflows/discuss-phase.md +429 -0
  438. package/plan-build-run/workflows/execute-phase.md +439 -0
  439. package/plan-build-run/workflows/execute-plan.md +437 -0
  440. package/plan-build-run/workflows/explore.md +150 -0
  441. package/plan-build-run/workflows/help.md +470 -0
  442. package/plan-build-run/workflows/insert-phase.md +129 -0
  443. package/plan-build-run/workflows/list-phase-assumptions.md +178 -0
  444. package/plan-build-run/workflows/map-codebase.md +327 -0
  445. package/plan-build-run/workflows/new-milestone.md +373 -0
  446. package/plan-build-run/workflows/new-project.md +1009 -0
  447. package/plan-build-run/workflows/note.md +90 -0
  448. package/plan-build-run/workflows/pause-work.md +122 -0
  449. package/plan-build-run/workflows/plan-milestone-gaps.md +256 -0
  450. package/plan-build-run/workflows/plan-phase.md +376 -0
  451. package/plan-build-run/workflows/progress.md +431 -0
  452. package/plan-build-run/workflows/quick.md +230 -0
  453. package/plan-build-run/workflows/remove-phase.md +154 -0
  454. package/plan-build-run/workflows/research-phase.md +74 -0
  455. package/plan-build-run/workflows/resume-project.md +306 -0
  456. package/plan-build-run/workflows/set-profile.md +80 -0
  457. package/plan-build-run/workflows/settings.md +145 -0
  458. package/plan-build-run/workflows/transition.md +539 -0
  459. package/plan-build-run/workflows/update.md +212 -0
  460. package/plan-build-run/workflows/verify-phase.md +226 -0
  461. package/plan-build-run/workflows/verify-work.md +465 -0
  462. package/plugins/codex-pbr/.codex/config.toml +101 -0
  463. package/plugins/codex-pbr/AGENTS.md +653 -0
  464. package/plugins/codex-pbr/README.md +116 -0
  465. package/plugins/codex-pbr/agents/audit.md +240 -0
  466. package/plugins/codex-pbr/agents/codebase-mapper.md +225 -0
  467. package/plugins/codex-pbr/agents/debugger.md +300 -0
  468. package/plugins/codex-pbr/agents/dev-sync.md +198 -0
  469. package/plugins/codex-pbr/agents/executor.md +549 -0
  470. package/plugins/codex-pbr/agents/general.md +151 -0
  471. package/plugins/codex-pbr/agents/integration-checker.md +230 -0
  472. package/plugins/codex-pbr/agents/nyquist-auditor.md +244 -0
  473. package/plugins/codex-pbr/agents/plan-checker.md +306 -0
  474. package/plugins/codex-pbr/agents/planner.md +464 -0
  475. package/plugins/codex-pbr/agents/researcher.md +304 -0
  476. package/plugins/codex-pbr/agents/roadmapper.md +339 -0
  477. package/plugins/codex-pbr/agents/synthesizer.md +267 -0
  478. package/plugins/codex-pbr/agents/verifier.md +488 -0
  479. package/plugins/codex-pbr/commands/add-phase.md +75 -0
  480. package/plugins/codex-pbr/commands/add-todo.md +8 -0
  481. package/plugins/codex-pbr/commands/audit-milestone.md +8 -0
  482. package/plugins/codex-pbr/commands/audit.md +5 -0
  483. package/plugins/codex-pbr/commands/check-todos.md +8 -0
  484. package/plugins/codex-pbr/commands/complete-milestone.md +8 -0
  485. package/plugins/codex-pbr/commands/config.md +5 -0
  486. package/plugins/codex-pbr/commands/continue.md +5 -0
  487. package/plugins/codex-pbr/commands/dashboard.md +5 -0
  488. package/plugins/codex-pbr/commands/debug.md +5 -0
  489. package/plugins/codex-pbr/commands/discuss-phase.md +6 -0
  490. package/plugins/codex-pbr/commands/do.md +5 -0
  491. package/plugins/codex-pbr/commands/execute-phase.md +6 -0
  492. package/plugins/codex-pbr/commands/explore.md +5 -0
  493. package/plugins/codex-pbr/commands/health.md +5 -0
  494. package/plugins/codex-pbr/commands/help.md +5 -0
  495. package/plugins/codex-pbr/commands/import.md +5 -0
  496. package/plugins/codex-pbr/commands/insert-phase.md +65 -0
  497. package/plugins/codex-pbr/commands/join-discord.md +11 -0
  498. package/plugins/codex-pbr/commands/list-phase-assumptions.md +69 -0
  499. package/plugins/codex-pbr/commands/map-codebase.md +6 -0
  500. package/plugins/codex-pbr/commands/new-milestone.md +8 -0
  501. package/plugins/codex-pbr/commands/new-project.md +6 -0
  502. package/plugins/codex-pbr/commands/note.md +5 -0
  503. package/plugins/codex-pbr/commands/pause-work.md +5 -0
  504. package/plugins/codex-pbr/commands/plan-milestone-gaps.md +7 -0
  505. package/plugins/codex-pbr/commands/plan-phase.md +6 -0
  506. package/plugins/codex-pbr/commands/progress.md +6 -0
  507. package/plugins/codex-pbr/commands/quick.md +5 -0
  508. package/plugins/codex-pbr/commands/reapply-patches.md +40 -0
  509. package/plugins/codex-pbr/commands/remove-phase.md +66 -0
  510. package/plugins/codex-pbr/commands/research-phase.md +59 -0
  511. package/plugins/codex-pbr/commands/resume-work.md +5 -0
  512. package/plugins/codex-pbr/commands/set-profile.md +6 -0
  513. package/plugins/codex-pbr/commands/settings.md +5 -0
  514. package/plugins/codex-pbr/commands/setup.md +5 -0
  515. package/plugins/codex-pbr/commands/statusline.md +5 -0
  516. package/plugins/codex-pbr/commands/test.md +5 -0
  517. package/plugins/codex-pbr/commands/undo.md +5 -0
  518. package/plugins/codex-pbr/commands/update.md +37 -0
  519. package/plugins/codex-pbr/commands/verify-work.md +6 -0
  520. package/plugins/codex-pbr/references/agent-contracts.md +324 -0
  521. package/plugins/codex-pbr/references/agent-teams.md +54 -0
  522. package/plugins/codex-pbr/references/common-bug-patterns.md +13 -0
  523. package/plugins/codex-pbr/references/config-reference.md +587 -0
  524. package/plugins/codex-pbr/references/continuation-format.md +212 -0
  525. package/plugins/codex-pbr/references/deviation-rules.md +112 -0
  526. package/plugins/codex-pbr/references/git-integration.md +284 -0
  527. package/plugins/codex-pbr/references/integration-patterns.md +117 -0
  528. package/plugins/codex-pbr/references/model-profiles.md +143 -0
  529. package/plugins/codex-pbr/references/model-selection.md +31 -0
  530. package/plugins/codex-pbr/references/pbr-tools-cli.md +400 -0
  531. package/plugins/codex-pbr/references/plan-authoring.md +246 -0
  532. package/plugins/codex-pbr/references/plan-format.md +351 -0
  533. package/plugins/codex-pbr/references/questioning.md +303 -0
  534. package/plugins/codex-pbr/references/reading-verification.md +127 -0
  535. package/plugins/codex-pbr/references/signal-files.md +41 -0
  536. package/plugins/codex-pbr/references/stub-patterns.md +160 -0
  537. package/plugins/codex-pbr/references/tmux-setup.md +286 -0
  538. package/plugins/codex-pbr/references/ui-formatting.md +449 -0
  539. package/plugins/codex-pbr/references/wave-execution.md +95 -0
  540. package/plugins/codex-pbr/skills/audit/SKILL.md +346 -0
  541. package/plugins/codex-pbr/skills/begin/SKILL.md +886 -0
  542. package/plugins/codex-pbr/skills/build/SKILL.md +992 -0
  543. package/plugins/codex-pbr/skills/config/SKILL.md +341 -0
  544. package/plugins/codex-pbr/skills/continue/SKILL.md +172 -0
  545. package/plugins/codex-pbr/skills/dashboard/SKILL.md +56 -0
  546. package/plugins/codex-pbr/skills/debug/SKILL.md +537 -0
  547. package/plugins/codex-pbr/skills/discuss/SKILL.md +438 -0
  548. package/plugins/codex-pbr/skills/do/SKILL.md +68 -0
  549. package/plugins/codex-pbr/skills/explore/SKILL.md +441 -0
  550. package/plugins/codex-pbr/skills/health/SKILL.md +330 -0
  551. package/plugins/codex-pbr/skills/help/SKILL.md +231 -0
  552. package/plugins/codex-pbr/skills/import/SKILL.md +814 -0
  553. package/plugins/codex-pbr/skills/milestone/SKILL.md +637 -0
  554. package/plugins/codex-pbr/skills/note/SKILL.md +219 -0
  555. package/plugins/codex-pbr/skills/pause/SKILL.md +258 -0
  556. package/plugins/codex-pbr/skills/plan/SKILL.md +689 -0
  557. package/plugins/codex-pbr/skills/profile/SKILL.md +171 -0
  558. package/plugins/codex-pbr/skills/quick/SKILL.md +437 -0
  559. package/plugins/codex-pbr/skills/resume/SKILL.md +403 -0
  560. package/plugins/codex-pbr/skills/review/SKILL.md +693 -0
  561. package/plugins/codex-pbr/skills/scan/SKILL.md +325 -0
  562. package/plugins/codex-pbr/skills/setup/SKILL.md +235 -0
  563. package/plugins/codex-pbr/skills/shared/commit-planning-docs.md +43 -0
  564. package/plugins/codex-pbr/skills/shared/config-loading.md +102 -0
  565. package/plugins/codex-pbr/skills/shared/context-budget.md +92 -0
  566. package/plugins/codex-pbr/skills/shared/context-loader-task.md +93 -0
  567. package/plugins/codex-pbr/skills/shared/digest-select.md +79 -0
  568. package/plugins/codex-pbr/skills/shared/domain-probes.md +125 -0
  569. package/plugins/codex-pbr/skills/shared/error-reporting.md +59 -0
  570. package/plugins/codex-pbr/skills/shared/gate-prompts.md +390 -0
  571. package/plugins/codex-pbr/skills/shared/phase-argument-parsing.md +45 -0
  572. package/plugins/codex-pbr/skills/shared/revision-loop.md +81 -0
  573. package/plugins/codex-pbr/skills/shared/state-update.md +153 -0
  574. package/plugins/codex-pbr/skills/shared/universal-anti-patterns.md +59 -0
  575. package/plugins/codex-pbr/skills/status/SKILL.md +484 -0
  576. package/plugins/codex-pbr/skills/statusline/SKILL.md +149 -0
  577. package/plugins/codex-pbr/skills/test/SKILL.md +210 -0
  578. package/plugins/codex-pbr/skills/todo/SKILL.md +281 -0
  579. package/plugins/codex-pbr/skills/undo/SKILL.md +214 -0
  580. package/plugins/codex-pbr/templates/CONTEXT.md.tmpl +52 -0
  581. package/plugins/codex-pbr/templates/INTEGRATION-REPORT.md.tmpl +167 -0
  582. package/plugins/codex-pbr/templates/PROJECT.md.tmpl +111 -0
  583. package/plugins/codex-pbr/templates/REQUIREMENTS.md.tmpl +96 -0
  584. package/plugins/codex-pbr/templates/ROADMAP.md.tmpl +105 -0
  585. package/plugins/codex-pbr/templates/SUMMARY-complex.md.tmpl +112 -0
  586. package/plugins/codex-pbr/templates/SUMMARY-minimal.md.tmpl +48 -0
  587. package/plugins/codex-pbr/templates/SUMMARY.md.tmpl +81 -0
  588. package/plugins/codex-pbr/templates/VERIFICATION-DETAIL.md.tmpl +119 -0
  589. package/plugins/codex-pbr/templates/codebase/ARCHITECTURE.md.tmpl +98 -0
  590. package/plugins/codex-pbr/templates/codebase/CONCERNS.md.tmpl +93 -0
  591. package/plugins/codex-pbr/templates/codebase/CONVENTIONS.md.tmpl +104 -0
  592. package/plugins/codex-pbr/templates/codebase/INTEGRATIONS.md.tmpl +78 -0
  593. package/plugins/codex-pbr/templates/codebase/STACK.md.tmpl +78 -0
  594. package/plugins/codex-pbr/templates/codebase/STRUCTURE.md.tmpl +80 -0
  595. package/plugins/codex-pbr/templates/codebase/TESTING.md.tmpl +107 -0
  596. package/plugins/codex-pbr/templates/continue-here.md.tmpl +73 -0
  597. package/plugins/codex-pbr/templates/pr-body.md.tmpl +22 -0
  598. package/plugins/codex-pbr/templates/project-CONTEXT.md.tmpl +43 -0
  599. package/plugins/codex-pbr/templates/prompt-partials/phase-project-context.md.tmpl +37 -0
  600. package/plugins/codex-pbr/templates/research-outputs/ARCHITECTURE.md.tmpl +91 -0
  601. package/plugins/codex-pbr/templates/research-outputs/FEATURES.md.tmpl +64 -0
  602. package/plugins/codex-pbr/templates/research-outputs/PITFALLS.md.tmpl +50 -0
  603. package/plugins/codex-pbr/templates/research-outputs/STACK.md.tmpl +63 -0
  604. package/plugins/codex-pbr/templates/research-outputs/SUMMARY.md.tmpl +98 -0
  605. package/plugins/copilot-pbr/CHANGELOG.md +19 -0
  606. package/plugins/copilot-pbr/README.md +139 -0
  607. package/plugins/copilot-pbr/agents/audit.agent.md +240 -0
  608. package/plugins/copilot-pbr/agents/codebase-mapper.agent.md +225 -0
  609. package/plugins/copilot-pbr/agents/debugger.agent.md +300 -0
  610. package/plugins/copilot-pbr/agents/dev-sync.agent.md +198 -0
  611. package/plugins/copilot-pbr/agents/executor.agent.md +549 -0
  612. package/plugins/copilot-pbr/agents/general.agent.md +151 -0
  613. package/plugins/copilot-pbr/agents/integration-checker.agent.md +230 -0
  614. package/plugins/copilot-pbr/agents/nyquist-auditor.agent.md +244 -0
  615. package/plugins/copilot-pbr/agents/plan-checker.agent.md +306 -0
  616. package/plugins/copilot-pbr/agents/planner.agent.md +464 -0
  617. package/plugins/copilot-pbr/agents/researcher.agent.md +304 -0
  618. package/plugins/copilot-pbr/agents/roadmapper.agent.md +339 -0
  619. package/plugins/copilot-pbr/agents/synthesizer.agent.md +267 -0
  620. package/plugins/copilot-pbr/agents/verifier.agent.md +488 -0
  621. package/plugins/copilot-pbr/commands/add-phase.md +75 -0
  622. package/plugins/copilot-pbr/commands/add-todo.md +8 -0
  623. package/plugins/copilot-pbr/commands/audit-milestone.md +8 -0
  624. package/plugins/copilot-pbr/commands/audit.md +5 -0
  625. package/plugins/copilot-pbr/commands/check-todos.md +8 -0
  626. package/plugins/copilot-pbr/commands/complete-milestone.md +8 -0
  627. package/plugins/copilot-pbr/commands/config.md +5 -0
  628. package/plugins/copilot-pbr/commands/continue.md +5 -0
  629. package/plugins/copilot-pbr/commands/dashboard.md +5 -0
  630. package/plugins/copilot-pbr/commands/debug.md +5 -0
  631. package/plugins/copilot-pbr/commands/discuss-phase.md +6 -0
  632. package/plugins/copilot-pbr/commands/do.md +5 -0
  633. package/plugins/copilot-pbr/commands/execute-phase.md +6 -0
  634. package/plugins/copilot-pbr/commands/explore.md +5 -0
  635. package/plugins/copilot-pbr/commands/health.md +5 -0
  636. package/plugins/copilot-pbr/commands/help.md +5 -0
  637. package/plugins/copilot-pbr/commands/import.md +5 -0
  638. package/plugins/copilot-pbr/commands/insert-phase.md +65 -0
  639. package/plugins/copilot-pbr/commands/join-discord.md +11 -0
  640. package/plugins/copilot-pbr/commands/list-phase-assumptions.md +69 -0
  641. package/plugins/copilot-pbr/commands/map-codebase.md +6 -0
  642. package/plugins/copilot-pbr/commands/new-milestone.md +8 -0
  643. package/plugins/copilot-pbr/commands/new-project.md +6 -0
  644. package/plugins/copilot-pbr/commands/note.md +5 -0
  645. package/plugins/copilot-pbr/commands/pause-work.md +5 -0
  646. package/plugins/copilot-pbr/commands/plan-milestone-gaps.md +7 -0
  647. package/plugins/copilot-pbr/commands/plan-phase.md +6 -0
  648. package/plugins/copilot-pbr/commands/progress.md +6 -0
  649. package/plugins/copilot-pbr/commands/quick.md +5 -0
  650. package/plugins/copilot-pbr/commands/reapply-patches.md +40 -0
  651. package/plugins/copilot-pbr/commands/remove-phase.md +66 -0
  652. package/plugins/copilot-pbr/commands/research-phase.md +59 -0
  653. package/plugins/copilot-pbr/commands/resume-work.md +5 -0
  654. package/plugins/copilot-pbr/commands/set-profile.md +6 -0
  655. package/plugins/copilot-pbr/commands/settings.md +5 -0
  656. package/plugins/copilot-pbr/commands/setup.md +5 -0
  657. package/plugins/copilot-pbr/commands/statusline.md +5 -0
  658. package/plugins/copilot-pbr/commands/test.md +5 -0
  659. package/plugins/copilot-pbr/commands/undo.md +5 -0
  660. package/plugins/copilot-pbr/commands/update.md +37 -0
  661. package/plugins/copilot-pbr/commands/verify-work.md +6 -0
  662. package/plugins/copilot-pbr/hooks/hooks.json +309 -0
  663. package/plugins/copilot-pbr/plugin.json +30 -0
  664. package/plugins/copilot-pbr/references/agent-contracts.md +324 -0
  665. package/plugins/copilot-pbr/references/agent-teams.md +54 -0
  666. package/plugins/copilot-pbr/references/common-bug-patterns.md +13 -0
  667. package/plugins/copilot-pbr/references/config-reference.md +587 -0
  668. package/plugins/copilot-pbr/references/continuation-format.md +212 -0
  669. package/plugins/copilot-pbr/references/deviation-rules.md +112 -0
  670. package/plugins/copilot-pbr/references/git-integration.md +284 -0
  671. package/plugins/copilot-pbr/references/integration-patterns.md +117 -0
  672. package/plugins/copilot-pbr/references/model-profiles.md +143 -0
  673. package/plugins/copilot-pbr/references/model-selection.md +31 -0
  674. package/plugins/copilot-pbr/references/pbr-tools-cli.md +400 -0
  675. package/plugins/copilot-pbr/references/plan-authoring.md +246 -0
  676. package/plugins/copilot-pbr/references/plan-format.md +351 -0
  677. package/plugins/copilot-pbr/references/questioning.md +303 -0
  678. package/plugins/copilot-pbr/references/reading-verification.md +127 -0
  679. package/plugins/copilot-pbr/references/signal-files.md +41 -0
  680. package/plugins/copilot-pbr/references/stub-patterns.md +160 -0
  681. package/plugins/copilot-pbr/references/tmux-setup.md +286 -0
  682. package/plugins/copilot-pbr/references/ui-formatting.md +449 -0
  683. package/plugins/copilot-pbr/references/wave-execution.md +95 -0
  684. package/plugins/copilot-pbr/rules/pbr-workflow.mdc +48 -0
  685. package/plugins/copilot-pbr/setup.ps1 +93 -0
  686. package/plugins/copilot-pbr/setup.sh +93 -0
  687. package/plugins/copilot-pbr/skills/audit/SKILL.md +346 -0
  688. package/plugins/copilot-pbr/skills/begin/SKILL.md +886 -0
  689. package/plugins/copilot-pbr/skills/build/SKILL.md +992 -0
  690. package/plugins/copilot-pbr/skills/config/SKILL.md +341 -0
  691. package/plugins/copilot-pbr/skills/continue/SKILL.md +172 -0
  692. package/plugins/copilot-pbr/skills/dashboard/SKILL.md +56 -0
  693. package/plugins/copilot-pbr/skills/debug/SKILL.md +537 -0
  694. package/plugins/copilot-pbr/skills/discuss/SKILL.md +438 -0
  695. package/plugins/copilot-pbr/skills/do/SKILL.md +68 -0
  696. package/plugins/copilot-pbr/skills/explore/SKILL.md +441 -0
  697. package/plugins/copilot-pbr/skills/health/SKILL.md +330 -0
  698. package/plugins/copilot-pbr/skills/help/SKILL.md +231 -0
  699. package/plugins/copilot-pbr/skills/import/SKILL.md +814 -0
  700. package/plugins/copilot-pbr/skills/milestone/SKILL.md +637 -0
  701. package/plugins/copilot-pbr/skills/note/SKILL.md +219 -0
  702. package/plugins/copilot-pbr/skills/pause/SKILL.md +258 -0
  703. package/plugins/copilot-pbr/skills/plan/SKILL.md +689 -0
  704. package/plugins/copilot-pbr/skills/profile/SKILL.md +171 -0
  705. package/plugins/copilot-pbr/skills/quick/SKILL.md +437 -0
  706. package/plugins/copilot-pbr/skills/resume/SKILL.md +403 -0
  707. package/plugins/copilot-pbr/skills/review/SKILL.md +693 -0
  708. package/plugins/copilot-pbr/skills/scan/SKILL.md +325 -0
  709. package/plugins/copilot-pbr/skills/setup/SKILL.md +235 -0
  710. package/plugins/copilot-pbr/skills/shared/commit-planning-docs.md +43 -0
  711. package/plugins/copilot-pbr/skills/shared/config-loading.md +102 -0
  712. package/plugins/copilot-pbr/skills/shared/context-budget.md +92 -0
  713. package/plugins/copilot-pbr/skills/shared/context-loader-task.md +93 -0
  714. package/plugins/copilot-pbr/skills/shared/digest-select.md +79 -0
  715. package/plugins/copilot-pbr/skills/shared/domain-probes.md +125 -0
  716. package/plugins/copilot-pbr/skills/shared/error-reporting.md +59 -0
  717. package/plugins/copilot-pbr/skills/shared/gate-prompts.md +390 -0
  718. package/plugins/copilot-pbr/skills/shared/phase-argument-parsing.md +45 -0
  719. package/plugins/copilot-pbr/skills/shared/revision-loop.md +81 -0
  720. package/plugins/copilot-pbr/skills/shared/state-update.md +153 -0
  721. package/plugins/copilot-pbr/skills/shared/universal-anti-patterns.md +59 -0
  722. package/plugins/copilot-pbr/skills/status/SKILL.md +484 -0
  723. package/plugins/copilot-pbr/skills/statusline/SKILL.md +149 -0
  724. package/plugins/copilot-pbr/skills/test/SKILL.md +210 -0
  725. package/plugins/copilot-pbr/skills/todo/SKILL.md +281 -0
  726. package/plugins/copilot-pbr/skills/undo/SKILL.md +214 -0
  727. package/plugins/copilot-pbr/templates/CONTEXT.md.tmpl +52 -0
  728. package/plugins/copilot-pbr/templates/INTEGRATION-REPORT.md.tmpl +167 -0
  729. package/plugins/copilot-pbr/templates/PROJECT.md.tmpl +111 -0
  730. package/plugins/copilot-pbr/templates/REQUIREMENTS.md.tmpl +96 -0
  731. package/plugins/copilot-pbr/templates/ROADMAP.md.tmpl +105 -0
  732. package/plugins/copilot-pbr/templates/SUMMARY-complex.md.tmpl +112 -0
  733. package/plugins/copilot-pbr/templates/SUMMARY-minimal.md.tmpl +48 -0
  734. package/plugins/copilot-pbr/templates/SUMMARY.md.tmpl +81 -0
  735. package/plugins/copilot-pbr/templates/VERIFICATION-DETAIL.md.tmpl +119 -0
  736. package/plugins/copilot-pbr/templates/codebase/ARCHITECTURE.md.tmpl +98 -0
  737. package/plugins/copilot-pbr/templates/codebase/CONCERNS.md.tmpl +93 -0
  738. package/plugins/copilot-pbr/templates/codebase/CONVENTIONS.md.tmpl +104 -0
  739. package/plugins/copilot-pbr/templates/codebase/INTEGRATIONS.md.tmpl +78 -0
  740. package/plugins/copilot-pbr/templates/codebase/STACK.md.tmpl +78 -0
  741. package/plugins/copilot-pbr/templates/codebase/STRUCTURE.md.tmpl +80 -0
  742. package/plugins/copilot-pbr/templates/codebase/TESTING.md.tmpl +107 -0
  743. package/plugins/copilot-pbr/templates/continue-here.md.tmpl +73 -0
  744. package/plugins/copilot-pbr/templates/pr-body.md.tmpl +22 -0
  745. package/plugins/copilot-pbr/templates/project-CONTEXT.md.tmpl +43 -0
  746. package/plugins/copilot-pbr/templates/prompt-partials/phase-project-context.md.tmpl +37 -0
  747. package/plugins/copilot-pbr/templates/research-outputs/ARCHITECTURE.md.tmpl +91 -0
  748. package/plugins/copilot-pbr/templates/research-outputs/FEATURES.md.tmpl +64 -0
  749. package/plugins/copilot-pbr/templates/research-outputs/PITFALLS.md.tmpl +50 -0
  750. package/plugins/copilot-pbr/templates/research-outputs/STACK.md.tmpl +63 -0
  751. package/plugins/copilot-pbr/templates/research-outputs/SUMMARY.md.tmpl +98 -0
  752. package/plugins/cursor-pbr/.cursor-plugin/plugin.json +13 -3
  753. package/plugins/cursor-pbr/README.md +32 -7
  754. package/plugins/cursor-pbr/agents/audit.md +242 -0
  755. package/plugins/cursor-pbr/agents/codebase-mapper.md +134 -15
  756. package/plugins/cursor-pbr/agents/debugger.md +160 -26
  757. package/plugins/cursor-pbr/agents/dev-sync.md +200 -0
  758. package/plugins/cursor-pbr/agents/executor.md +354 -39
  759. package/plugins/cursor-pbr/agents/general.md +70 -4
  760. package/plugins/cursor-pbr/agents/integration-checker.md +171 -26
  761. package/plugins/cursor-pbr/agents/nyquist-auditor.md +246 -0
  762. package/plugins/cursor-pbr/agents/plan-checker.md +152 -42
  763. package/plugins/cursor-pbr/agents/planner.md +315 -29
  764. package/plugins/cursor-pbr/agents/researcher.md +174 -30
  765. package/plugins/cursor-pbr/agents/roadmapper.md +341 -0
  766. package/plugins/cursor-pbr/agents/synthesizer.md +191 -23
  767. package/plugins/cursor-pbr/agents/verifier.md +320 -23
  768. package/plugins/cursor-pbr/commands/add-phase.md +75 -0
  769. package/plugins/cursor-pbr/commands/add-todo.md +8 -0
  770. package/plugins/cursor-pbr/commands/audit-milestone.md +8 -0
  771. package/plugins/cursor-pbr/commands/audit.md +5 -0
  772. package/plugins/cursor-pbr/commands/check-todos.md +8 -0
  773. package/plugins/cursor-pbr/commands/complete-milestone.md +8 -0
  774. package/plugins/cursor-pbr/commands/config.md +5 -0
  775. package/plugins/cursor-pbr/commands/continue.md +5 -0
  776. package/plugins/cursor-pbr/commands/dashboard.md +5 -0
  777. package/plugins/cursor-pbr/commands/debug.md +5 -0
  778. package/plugins/cursor-pbr/commands/discuss-phase.md +6 -0
  779. package/plugins/cursor-pbr/commands/do.md +5 -0
  780. package/plugins/cursor-pbr/commands/execute-phase.md +6 -0
  781. package/plugins/cursor-pbr/commands/explore.md +5 -0
  782. package/plugins/cursor-pbr/commands/health.md +5 -0
  783. package/plugins/cursor-pbr/commands/help.md +5 -0
  784. package/plugins/cursor-pbr/commands/import.md +5 -0
  785. package/plugins/cursor-pbr/commands/insert-phase.md +65 -0
  786. package/plugins/cursor-pbr/commands/join-discord.md +11 -0
  787. package/plugins/cursor-pbr/commands/list-phase-assumptions.md +69 -0
  788. package/plugins/cursor-pbr/commands/map-codebase.md +6 -0
  789. package/plugins/cursor-pbr/commands/new-milestone.md +8 -0
  790. package/plugins/cursor-pbr/commands/new-project.md +6 -0
  791. package/plugins/cursor-pbr/commands/note.md +5 -0
  792. package/plugins/cursor-pbr/commands/pause-work.md +5 -0
  793. package/plugins/cursor-pbr/commands/plan-milestone-gaps.md +7 -0
  794. package/plugins/cursor-pbr/commands/plan-phase.md +6 -0
  795. package/plugins/cursor-pbr/commands/progress.md +6 -0
  796. package/plugins/cursor-pbr/commands/quick.md +5 -0
  797. package/plugins/cursor-pbr/commands/reapply-patches.md +40 -0
  798. package/plugins/cursor-pbr/commands/remove-phase.md +66 -0
  799. package/plugins/cursor-pbr/commands/research-phase.md +59 -0
  800. package/plugins/cursor-pbr/commands/resume-work.md +5 -0
  801. package/plugins/cursor-pbr/commands/set-profile.md +6 -0
  802. package/plugins/cursor-pbr/commands/settings.md +5 -0
  803. package/plugins/cursor-pbr/commands/setup.md +5 -0
  804. package/plugins/cursor-pbr/commands/statusline.md +5 -0
  805. package/plugins/cursor-pbr/commands/test.md +5 -0
  806. package/plugins/cursor-pbr/commands/undo.md +5 -0
  807. package/plugins/cursor-pbr/commands/update.md +37 -0
  808. package/plugins/cursor-pbr/commands/verify-work.md +6 -0
  809. package/plugins/cursor-pbr/hooks/hooks.json +96 -28
  810. package/plugins/cursor-pbr/references/agent-contracts.md +324 -0
  811. package/plugins/cursor-pbr/references/agent-teams.md +3 -4
  812. package/plugins/cursor-pbr/references/common-bug-patterns.md +0 -1
  813. package/plugins/cursor-pbr/references/config-reference.md +155 -10
  814. package/plugins/cursor-pbr/references/continuation-format.md +0 -1
  815. package/plugins/cursor-pbr/references/deviation-rules.md +0 -1
  816. package/plugins/cursor-pbr/references/git-integration.md +80 -23
  817. package/plugins/cursor-pbr/references/integration-patterns.md +0 -1
  818. package/plugins/cursor-pbr/references/model-profiles.md +51 -8
  819. package/plugins/cursor-pbr/references/model-selection.md +1 -2
  820. package/plugins/cursor-pbr/references/pbr-tools-cli.md +400 -0
  821. package/plugins/cursor-pbr/references/plan-authoring.md +65 -1
  822. package/plugins/cursor-pbr/references/plan-format.md +72 -9
  823. package/plugins/cursor-pbr/references/questioning.md +138 -50
  824. package/plugins/cursor-pbr/references/reading-verification.md +3 -4
  825. package/plugins/cursor-pbr/references/signal-files.md +41 -0
  826. package/plugins/cursor-pbr/references/stub-patterns.md +0 -1
  827. package/plugins/cursor-pbr/references/tmux-setup.md +286 -0
  828. package/plugins/cursor-pbr/references/ui-formatting.md +67 -80
  829. package/plugins/cursor-pbr/references/wave-execution.md +0 -1
  830. package/plugins/cursor-pbr/rules/pbr-workflow.mdc +6 -6
  831. package/plugins/cursor-pbr/setup.ps1 +1 -1
  832. package/plugins/cursor-pbr/setup.sh +1 -1
  833. package/plugins/cursor-pbr/skills/audit/SKILL.md +347 -0
  834. package/plugins/cursor-pbr/skills/begin/SKILL.md +461 -141
  835. package/plugins/cursor-pbr/skills/build/SKILL.md +420 -329
  836. package/plugins/cursor-pbr/skills/config/SKILL.md +107 -19
  837. package/plugins/cursor-pbr/skills/continue/SKILL.md +49 -36
  838. package/plugins/cursor-pbr/skills/dashboard/SKILL.md +57 -0
  839. package/plugins/cursor-pbr/skills/debug/SKILL.md +60 -34
  840. package/plugins/cursor-pbr/skills/discuss/SKILL.md +125 -30
  841. package/plugins/cursor-pbr/skills/do/SKILL.md +69 -0
  842. package/plugins/cursor-pbr/skills/explore/SKILL.md +90 -23
  843. package/plugins/cursor-pbr/skills/health/SKILL.md +144 -31
  844. package/plugins/cursor-pbr/skills/help/SKILL.md +124 -45
  845. package/plugins/cursor-pbr/skills/import/SKILL.md +346 -30
  846. package/plugins/cursor-pbr/skills/milestone/SKILL.md +189 -252
  847. package/plugins/cursor-pbr/skills/note/SKILL.md +47 -55
  848. package/plugins/cursor-pbr/skills/pause/SKILL.md +28 -16
  849. package/plugins/cursor-pbr/skills/plan/SKILL.md +305 -263
  850. package/plugins/cursor-pbr/skills/profile/SKILL.md +172 -0
  851. package/plugins/cursor-pbr/skills/quick/SKILL.md +106 -20
  852. package/plugins/cursor-pbr/skills/resume/SKILL.md +31 -27
  853. package/plugins/cursor-pbr/skills/review/SKILL.md +212 -167
  854. package/plugins/cursor-pbr/skills/scan/SKILL.md +47 -23
  855. package/plugins/cursor-pbr/skills/setup/SKILL.md +158 -173
  856. package/plugins/cursor-pbr/skills/shared/commit-planning-docs.md +8 -1
  857. package/plugins/cursor-pbr/skills/shared/config-loading.md +1 -2
  858. package/plugins/cursor-pbr/skills/shared/context-budget.md +56 -5
  859. package/plugins/cursor-pbr/skills/shared/context-loader-task.md +9 -3
  860. package/plugins/cursor-pbr/skills/shared/digest-select.md +2 -3
  861. package/plugins/cursor-pbr/skills/shared/domain-probes.md +1 -2
  862. package/plugins/cursor-pbr/skills/shared/error-reporting.md +38 -59
  863. package/plugins/cursor-pbr/skills/shared/gate-prompts.md +4 -3
  864. package/plugins/cursor-pbr/skills/shared/phase-argument-parsing.md +6 -7
  865. package/plugins/cursor-pbr/skills/shared/revision-loop.md +0 -1
  866. package/plugins/cursor-pbr/skills/shared/state-update.md +38 -47
  867. package/plugins/cursor-pbr/skills/shared/universal-anti-patterns.md +34 -9
  868. package/plugins/cursor-pbr/skills/status/SKILL.md +174 -52
  869. package/plugins/cursor-pbr/skills/statusline/SKILL.md +150 -0
  870. package/plugins/cursor-pbr/skills/test/SKILL.md +211 -0
  871. package/plugins/cursor-pbr/skills/todo/SKILL.md +118 -31
  872. package/plugins/cursor-pbr/skills/undo/SKILL.md +215 -0
  873. package/plugins/cursor-pbr/templates/CONTEXT.md.tmpl +1 -2
  874. package/plugins/cursor-pbr/templates/INTEGRATION-REPORT.md.tmpl +18 -3
  875. package/plugins/cursor-pbr/templates/PROJECT.md.tmpl +111 -0
  876. package/plugins/cursor-pbr/templates/REQUIREMENTS.md.tmpl +96 -0
  877. package/plugins/cursor-pbr/templates/ROADMAP.md.tmpl +80 -16
  878. package/plugins/cursor-pbr/templates/SUMMARY-complex.md.tmpl +112 -0
  879. package/plugins/cursor-pbr/templates/SUMMARY-minimal.md.tmpl +48 -0
  880. package/plugins/cursor-pbr/templates/SUMMARY.md.tmpl +0 -1
  881. package/plugins/cursor-pbr/templates/VERIFICATION-DETAIL.md.tmpl +13 -11
  882. package/plugins/cursor-pbr/templates/codebase/ARCHITECTURE.md.tmpl +98 -0
  883. package/plugins/cursor-pbr/templates/codebase/CONCERNS.md.tmpl +93 -0
  884. package/plugins/cursor-pbr/templates/codebase/CONVENTIONS.md.tmpl +104 -0
  885. package/plugins/cursor-pbr/templates/codebase/INTEGRATIONS.md.tmpl +78 -0
  886. package/plugins/cursor-pbr/templates/codebase/STACK.md.tmpl +78 -0
  887. package/plugins/cursor-pbr/templates/codebase/STRUCTURE.md.tmpl +80 -0
  888. package/plugins/cursor-pbr/templates/codebase/TESTING.md.tmpl +107 -0
  889. package/plugins/cursor-pbr/templates/continue-here.md.tmpl +0 -1
  890. package/plugins/cursor-pbr/templates/pr-body.md.tmpl +22 -0
  891. package/plugins/cursor-pbr/templates/project-CONTEXT.md.tmpl +43 -0
  892. package/plugins/cursor-pbr/templates/prompt-partials/phase-project-context.md.tmpl +0 -1
  893. package/plugins/cursor-pbr/templates/research-outputs/ARCHITECTURE.md.tmpl +91 -0
  894. package/plugins/cursor-pbr/templates/research-outputs/FEATURES.md.tmpl +64 -0
  895. package/plugins/cursor-pbr/templates/research-outputs/PITFALLS.md.tmpl +50 -0
  896. package/plugins/cursor-pbr/templates/research-outputs/STACK.md.tmpl +63 -0
  897. package/plugins/cursor-pbr/templates/research-outputs/SUMMARY.md.tmpl +98 -0
  898. package/plugins/pbr/.claude-plugin/plugin.json +7 -2
  899. package/plugins/pbr/UI-CONSISTENCY-GAPS.md +1 -1
  900. package/plugins/pbr/agents/audit.md +247 -0
  901. package/plugins/pbr/agents/codebase-mapper.md +151 -18
  902. package/plugins/pbr/agents/debugger.md +180 -28
  903. package/plugins/pbr/agents/dev-sync.md +206 -0
  904. package/plugins/pbr/agents/executor.md +365 -40
  905. package/plugins/pbr/agents/general.md +70 -5
  906. package/plugins/pbr/agents/integration-checker.md +174 -27
  907. package/plugins/pbr/agents/nyquist-auditor.md +252 -0
  908. package/plugins/pbr/agents/plan-checker.md +153 -43
  909. package/plugins/pbr/agents/planner.md +340 -28
  910. package/plugins/pbr/agents/researcher.md +210 -34
  911. package/plugins/pbr/agents/roadmapper.md +346 -0
  912. package/plugins/pbr/agents/synthesizer.md +193 -26
  913. package/plugins/pbr/agents/verifier.md +402 -23
  914. package/plugins/pbr/commands/add-phase.md +75 -0
  915. package/plugins/pbr/commands/add-todo.md +8 -0
  916. package/plugins/pbr/commands/audit-milestone.md +8 -0
  917. package/plugins/pbr/commands/audit.md +5 -0
  918. package/plugins/pbr/commands/check-todos.md +8 -0
  919. package/plugins/pbr/commands/complete-milestone.md +8 -0
  920. package/plugins/pbr/commands/config.md +2 -2
  921. package/plugins/pbr/commands/continue.md +1 -1
  922. package/plugins/pbr/commands/dashboard.md +5 -0
  923. package/plugins/pbr/commands/debug.md +1 -1
  924. package/plugins/pbr/commands/discuss-phase.md +6 -0
  925. package/plugins/pbr/commands/do.md +5 -0
  926. package/plugins/pbr/commands/execute-phase.md +6 -0
  927. package/plugins/pbr/commands/explore.md +1 -1
  928. package/plugins/pbr/commands/health.md +1 -1
  929. package/plugins/pbr/commands/help.md +1 -1
  930. package/plugins/pbr/commands/import.md +1 -1
  931. package/plugins/pbr/commands/insert-phase.md +65 -0
  932. package/plugins/pbr/commands/join-discord.md +11 -0
  933. package/plugins/pbr/commands/list-phase-assumptions.md +69 -0
  934. package/plugins/pbr/commands/map-codebase.md +6 -0
  935. package/plugins/pbr/commands/new-milestone.md +8 -0
  936. package/plugins/pbr/commands/new-project.md +6 -0
  937. package/plugins/pbr/commands/note.md +1 -1
  938. package/plugins/pbr/commands/pause-work.md +5 -0
  939. package/plugins/pbr/commands/plan-milestone-gaps.md +7 -0
  940. package/plugins/pbr/commands/plan-phase.md +6 -0
  941. package/plugins/pbr/commands/progress.md +6 -0
  942. package/plugins/pbr/commands/quick.md +1 -1
  943. package/plugins/pbr/commands/reapply-patches.md +40 -0
  944. package/plugins/pbr/commands/remove-phase.md +66 -0
  945. package/plugins/pbr/commands/research-phase.md +59 -0
  946. package/plugins/pbr/commands/resume-work.md +5 -0
  947. package/plugins/pbr/commands/set-profile.md +6 -0
  948. package/plugins/pbr/commands/settings.md +5 -0
  949. package/plugins/pbr/commands/setup.md +2 -2
  950. package/plugins/pbr/commands/statusline.md +5 -0
  951. package/plugins/pbr/commands/test.md +5 -0
  952. package/plugins/pbr/commands/undo.md +5 -0
  953. package/plugins/pbr/commands/update.md +37 -0
  954. package/plugins/pbr/commands/verify-work.md +6 -0
  955. package/plugins/pbr/dashboard/package-lock.json +6 -0
  956. package/plugins/pbr/hooks/hooks.json +97 -18
  957. package/plugins/pbr/references/agent-contracts.md +324 -0
  958. package/plugins/pbr/references/agent-teams.md +3 -3
  959. package/plugins/pbr/references/{checkpoints.md → archive/checkpoints.md} +32 -0
  960. package/plugins/pbr/references/archive/context-quality-tiers.md +45 -0
  961. package/plugins/{cursor-pbr/references → pbr/references/archive}/pbr-rules.md +4 -4
  962. package/plugins/pbr/references/archive/verification-patterns.md +277 -0
  963. package/plugins/pbr/references/config-reference.md +179 -9
  964. package/plugins/pbr/references/git-integration.md +80 -22
  965. package/plugins/pbr/references/model-profiles.md +62 -7
  966. package/plugins/pbr/references/model-selection.md +1 -1
  967. package/plugins/pbr/references/pbr-tools-cli.md +400 -0
  968. package/plugins/pbr/references/plan-authoring.md +65 -0
  969. package/plugins/pbr/references/plan-format.md +72 -8
  970. package/plugins/pbr/references/questioning.md +138 -49
  971. package/plugins/pbr/references/reading-verification.md +3 -3
  972. package/plugins/pbr/references/signal-files.md +41 -0
  973. package/plugins/pbr/references/tmux-setup.md +286 -0
  974. package/plugins/pbr/references/ui-formatting.md +67 -79
  975. package/plugins/pbr/scripts/auto-continue.js +113 -6
  976. package/plugins/pbr/scripts/block-skill-self-read.js +77 -0
  977. package/plugins/pbr/scripts/branding-audit.js +231 -0
  978. package/plugins/pbr/scripts/check-agent-state-write.js +63 -0
  979. package/plugins/pbr/scripts/check-config-change.js +188 -0
  980. package/plugins/pbr/scripts/check-cross-plugin-sync.js +93 -0
  981. package/plugins/pbr/scripts/check-dangerous-commands.js +49 -1
  982. package/plugins/pbr/scripts/check-phase-boundary.js +2 -8
  983. package/plugins/pbr/scripts/check-plan-format.js +414 -30
  984. package/plugins/pbr/scripts/check-roadmap-sync.js +178 -9
  985. package/plugins/pbr/scripts/check-skill-workflow.js +109 -18
  986. package/plugins/pbr/scripts/check-state-sync.js +156 -20
  987. package/plugins/pbr/scripts/check-subagent-output.js +581 -14
  988. package/plugins/pbr/scripts/check-summary-gate.js +1 -1
  989. package/plugins/pbr/scripts/config-schema.json +157 -2
  990. package/plugins/pbr/scripts/context-bridge.js +342 -0
  991. package/plugins/pbr/scripts/context-budget-check.js +89 -9
  992. package/plugins/pbr/scripts/enforce-pbr-workflow.js +277 -0
  993. package/plugins/pbr/scripts/event-handler.js +72 -6
  994. package/plugins/pbr/scripts/hook-server-client.js +258 -0
  995. package/plugins/pbr/scripts/hook-server.js +334 -0
  996. package/plugins/pbr/scripts/hooks-schema.json +5 -1
  997. package/plugins/pbr/scripts/instructions-loaded.js +107 -0
  998. package/plugins/pbr/scripts/intercept-plan-mode.js +47 -0
  999. package/plugins/pbr/scripts/lib/alternatives.js +203 -0
  1000. package/plugins/pbr/scripts/lib/build.js +719 -0
  1001. package/plugins/pbr/scripts/lib/circuit-state.js +133 -0
  1002. package/plugins/pbr/scripts/lib/config.js +288 -0
  1003. package/plugins/pbr/scripts/lib/context.js +246 -0
  1004. package/plugins/pbr/scripts/lib/core.js +934 -0
  1005. package/plugins/pbr/scripts/lib/gates/advisories.js +129 -0
  1006. package/plugins/pbr/scripts/lib/gates/build-dependency.js +100 -0
  1007. package/plugins/pbr/scripts/lib/gates/build-executor.js +79 -0
  1008. package/plugins/pbr/scripts/lib/gates/doc-existence.js +46 -0
  1009. package/plugins/pbr/scripts/lib/gates/helpers.js +74 -0
  1010. package/plugins/pbr/scripts/lib/gates/milestone-complete.js +120 -0
  1011. package/plugins/pbr/scripts/lib/gates/plan-executor.js +36 -0
  1012. package/plugins/pbr/scripts/lib/gates/quick-executor.js +76 -0
  1013. package/plugins/pbr/scripts/lib/gates/review-planner.js +61 -0
  1014. package/plugins/pbr/scripts/lib/gates/review-verifier.js +69 -0
  1015. package/plugins/pbr/scripts/lib/history.js +150 -0
  1016. package/plugins/pbr/scripts/lib/init.js +302 -0
  1017. package/plugins/pbr/scripts/lib/learnings.js +312 -0
  1018. package/plugins/pbr/scripts/lib/migrate.js +169 -0
  1019. package/plugins/pbr/scripts/lib/phase.js +935 -0
  1020. package/plugins/pbr/scripts/lib/preview.js +174 -0
  1021. package/plugins/pbr/scripts/lib/reference.js +236 -0
  1022. package/plugins/pbr/scripts/lib/roadmap.js +784 -0
  1023. package/plugins/pbr/scripts/lib/skill-section.js +99 -0
  1024. package/plugins/pbr/scripts/lib/spot-check.js +118 -0
  1025. package/plugins/pbr/scripts/lib/state.js +534 -0
  1026. package/plugins/pbr/scripts/lib/step-verify.js +149 -0
  1027. package/plugins/pbr/scripts/lib/todo.js +300 -0
  1028. package/plugins/pbr/scripts/local-llm/client.js +237 -0
  1029. package/plugins/pbr/scripts/local-llm/health.js +220 -0
  1030. package/plugins/pbr/scripts/local-llm/metrics.js +340 -0
  1031. package/plugins/pbr/scripts/local-llm/operations/classify-artifact.js +76 -0
  1032. package/plugins/pbr/scripts/local-llm/operations/classify-commit.js +137 -0
  1033. package/plugins/pbr/scripts/local-llm/operations/classify-error.js +75 -0
  1034. package/plugins/pbr/scripts/local-llm/operations/classify-file-intent.js +171 -0
  1035. package/plugins/pbr/scripts/local-llm/operations/score-source.js +72 -0
  1036. package/plugins/pbr/scripts/local-llm/operations/summarize-context.js +62 -0
  1037. package/plugins/pbr/scripts/local-llm/operations/triage-test-output.js +72 -0
  1038. package/plugins/pbr/scripts/local-llm/operations/validate-task.js +59 -0
  1039. package/plugins/pbr/scripts/local-llm/router.js +101 -0
  1040. package/plugins/pbr/scripts/local-llm/shadow.js +60 -0
  1041. package/plugins/pbr/scripts/local-llm/threshold-tuner.js +118 -0
  1042. package/plugins/pbr/scripts/log-subagent.js +90 -13
  1043. package/plugins/pbr/scripts/log-tool-failure.js +39 -5
  1044. package/plugins/pbr/scripts/milestone-learnings.js +290 -0
  1045. package/plugins/pbr/scripts/package.json +1 -0
  1046. package/plugins/pbr/scripts/pbr-tools.js +1143 -1232
  1047. package/plugins/pbr/scripts/post-bash-triage.js +151 -0
  1048. package/plugins/pbr/scripts/post-write-dispatch.js +181 -25
  1049. package/plugins/pbr/scripts/post-write-quality.js +3 -3
  1050. package/plugins/pbr/scripts/pre-bash-dispatch.js +56 -2
  1051. package/plugins/pbr/scripts/pre-write-dispatch.js +69 -19
  1052. package/plugins/pbr/scripts/progress-tracker.js +428 -19
  1053. package/plugins/pbr/scripts/run-hook.js +49 -8
  1054. package/plugins/pbr/scripts/session-cleanup.js +99 -5
  1055. package/plugins/pbr/scripts/session-tracker.js +78 -0
  1056. package/plugins/pbr/scripts/status-line.js +179 -27
  1057. package/plugins/pbr/scripts/suggest-compact.js +108 -7
  1058. package/plugins/pbr/scripts/sync-context-to-claude.js +100 -0
  1059. package/plugins/pbr/scripts/task-completed.js +123 -1
  1060. package/plugins/pbr/scripts/test/config.test.js +126 -0
  1061. package/plugins/pbr/scripts/test/cross-platform.test.js +131 -0
  1062. package/plugins/pbr/scripts/test/fixtures/config.json +20 -0
  1063. package/plugins/pbr/scripts/test/fixtures/plan.md +54 -0
  1064. package/plugins/pbr/scripts/test/fixtures/project.md +30 -0
  1065. package/plugins/pbr/scripts/test/fixtures/roadmap.md +55 -0
  1066. package/plugins/pbr/scripts/test/fixtures/state.md +60 -0
  1067. package/plugins/pbr/scripts/test/fixtures/summary.md +35 -0
  1068. package/plugins/pbr/scripts/test/fixtures.test.js +184 -0
  1069. package/plugins/pbr/scripts/test/phase.test.js +142 -0
  1070. package/plugins/pbr/scripts/test/roadmap.test.js +96 -0
  1071. package/plugins/pbr/scripts/test/state.test.js +163 -0
  1072. package/plugins/pbr/scripts/track-context-budget.js +237 -89
  1073. package/plugins/pbr/scripts/validate-commit.js +76 -11
  1074. package/plugins/pbr/scripts/validate-skill-args.js +151 -0
  1075. package/plugins/pbr/scripts/validate-task.js +167 -17
  1076. package/plugins/pbr/scripts/worktree-create.js +144 -0
  1077. package/plugins/pbr/scripts/worktree-remove.js +147 -0
  1078. package/plugins/pbr/skills/audit/SKILL.md +348 -0
  1079. package/plugins/pbr/skills/begin/SKILL.md +412 -118
  1080. package/plugins/pbr/skills/begin/templates/STATE.md.tmpl +1 -2
  1081. package/plugins/pbr/skills/begin/templates/config.json.tmpl +8 -2
  1082. package/plugins/pbr/skills/begin/templates/researcher-prompt.md.tmpl +28 -0
  1083. package/plugins/pbr/skills/begin/templates/roadmap-prompt.md.tmpl +19 -0
  1084. package/plugins/pbr/skills/begin/templates/synthesis-prompt.md.tmpl +33 -5
  1085. package/plugins/pbr/skills/build/SKILL.md +503 -307
  1086. package/plugins/pbr/skills/build/templates/continuation-prompt.md.tmpl +26 -0
  1087. package/plugins/pbr/skills/build/templates/executor-prompt.md.tmpl +70 -0
  1088. package/plugins/pbr/skills/build/templates/inline-verifier-prompt.md.tmpl +33 -0
  1089. package/plugins/pbr/skills/config/SKILL.md +104 -18
  1090. package/plugins/pbr/skills/continue/SKILL.md +92 -22
  1091. package/plugins/pbr/skills/dashboard/SKILL.md +58 -0
  1092. package/plugins/pbr/skills/debug/SKILL.md +57 -33
  1093. package/plugins/pbr/skills/debug/templates/continuation-prompt.md.tmpl +12 -1
  1094. package/plugins/pbr/skills/debug/templates/initial-investigation-prompt.md.tmpl +12 -5
  1095. package/plugins/pbr/skills/discuss/SKILL.md +123 -30
  1096. package/plugins/pbr/skills/discuss/templates/CONTEXT.md.tmpl +1 -1
  1097. package/plugins/pbr/skills/do/SKILL.md +70 -0
  1098. package/plugins/pbr/skills/explore/SKILL.md +92 -24
  1099. package/plugins/pbr/skills/health/SKILL.md +143 -32
  1100. package/plugins/pbr/skills/help/SKILL.md +122 -45
  1101. package/plugins/pbr/skills/import/SKILL.md +341 -29
  1102. package/plugins/pbr/skills/milestone/SKILL.md +187 -252
  1103. package/plugins/pbr/skills/milestone/templates/audit-output.md.tmpl +76 -0
  1104. package/plugins/pbr/skills/milestone/templates/complete-output.md.tmpl +32 -0
  1105. package/plugins/pbr/skills/milestone/templates/edge-cases.md +54 -0
  1106. package/plugins/pbr/skills/milestone/templates/gaps-output.md.tmpl +25 -0
  1107. package/plugins/pbr/skills/milestone/templates/integration-checker-prompt.md.tmpl +25 -0
  1108. package/plugins/pbr/skills/milestone/templates/new-output.md.tmpl +29 -0
  1109. package/plugins/pbr/skills/note/SKILL.md +45 -55
  1110. package/plugins/pbr/skills/pause/SKILL.md +26 -16
  1111. package/plugins/pbr/skills/plan/SKILL.md +264 -258
  1112. package/plugins/pbr/skills/plan/templates/completion-output.md.tmpl +27 -0
  1113. package/plugins/pbr/skills/plan/templates/planner-prompt.md.tmpl +1 -1
  1114. package/plugins/pbr/skills/profile/SKILL.md +173 -0
  1115. package/plugins/pbr/skills/quick/SKILL.md +104 -20
  1116. package/plugins/pbr/skills/resume/SKILL.md +29 -27
  1117. package/plugins/pbr/skills/review/SKILL.md +172 -136
  1118. package/plugins/pbr/skills/scan/SKILL.md +41 -19
  1119. package/plugins/pbr/skills/scan/templates/mapper-prompt.md.tmpl +1 -1
  1120. package/plugins/pbr/skills/setup/SKILL.md +160 -177
  1121. package/plugins/pbr/skills/shared/commit-planning-docs.md +8 -0
  1122. package/plugins/pbr/skills/shared/context-budget.md +67 -2
  1123. package/plugins/pbr/skills/shared/context-loader-task.md +9 -2
  1124. package/plugins/pbr/skills/shared/digest-select.md +2 -2
  1125. package/plugins/pbr/skills/shared/domain-probes.md +1 -1
  1126. package/plugins/pbr/skills/shared/error-reporting.md +38 -58
  1127. package/plugins/pbr/skills/shared/gate-prompts.md +4 -2
  1128. package/plugins/pbr/skills/shared/phase-argument-parsing.md +6 -6
  1129. package/plugins/pbr/skills/shared/state-update.md +36 -44
  1130. package/plugins/pbr/skills/shared/universal-anti-patterns.md +36 -10
  1131. package/plugins/pbr/skills/status/SKILL.md +161 -43
  1132. package/plugins/pbr/skills/statusline/SKILL.md +151 -0
  1133. package/plugins/pbr/skills/test/SKILL.md +212 -0
  1134. package/plugins/pbr/skills/todo/SKILL.md +117 -32
  1135. package/plugins/pbr/skills/undo/SKILL.md +216 -0
  1136. package/plugins/pbr/templates/CONTEXT.md.tmpl +1 -1
  1137. package/plugins/pbr/templates/INTEGRATION-REPORT.md.tmpl +18 -2
  1138. package/plugins/pbr/templates/PROJECT.md.tmpl +111 -0
  1139. package/plugins/pbr/templates/REQUIREMENTS.md.tmpl +96 -0
  1140. package/plugins/pbr/templates/ROADMAP.md.tmpl +80 -15
  1141. package/plugins/pbr/templates/SUMMARY-complex.md.tmpl +112 -0
  1142. package/plugins/pbr/templates/SUMMARY-minimal.md.tmpl +48 -0
  1143. package/plugins/pbr/templates/VERIFICATION-DETAIL.md.tmpl +13 -10
  1144. package/plugins/pbr/templates/pr-body.md.tmpl +22 -0
  1145. package/plugins/pbr/templates/project-CONTEXT.md.tmpl +43 -0
  1146. package/plugins/pbr/templates/research-outputs/ARCHITECTURE.md.tmpl +91 -0
  1147. package/plugins/pbr/templates/research-outputs/FEATURES.md.tmpl +64 -0
  1148. package/plugins/pbr/templates/research-outputs/PITFALLS.md.tmpl +50 -0
  1149. package/plugins/pbr/templates/research-outputs/STACK.md.tmpl +63 -0
  1150. package/plugins/pbr/templates/research-outputs/SUMMARY.md.tmpl +98 -0
  1151. package/scripts/build-hooks.js +61 -0
  1152. package/scripts/generate-derivatives.js +581 -0
  1153. package/scripts/run-tests.cjs +29 -0
  1154. package/dashboard/bin/cli.js +0 -25
  1155. package/dashboard/public/css/layout.css +0 -406
  1156. package/dashboard/public/css/status-colors.css +0 -98
  1157. package/dashboard/public/js/htmx-title.js +0 -5
  1158. package/dashboard/public/js/sidebar-toggle.js +0 -20
  1159. package/dashboard/src/app.js +0 -78
  1160. package/dashboard/src/middleware/errorHandler.js +0 -52
  1161. package/dashboard/src/middleware/notFoundHandler.js +0 -9
  1162. package/dashboard/src/repositories/planning.repository.js +0 -128
  1163. package/dashboard/src/routes/events.routes.js +0 -40
  1164. package/dashboard/src/routes/index.routes.js +0 -31
  1165. package/dashboard/src/routes/pages.routes.js +0 -252
  1166. package/dashboard/src/server.js +0 -42
  1167. package/dashboard/src/services/dashboard.service.js +0 -286
  1168. package/dashboard/src/services/phase.service.js +0 -226
  1169. package/dashboard/src/services/project.service.js +0 -57
  1170. package/dashboard/src/services/roadmap.service.js +0 -171
  1171. package/dashboard/src/services/sse.service.js +0 -58
  1172. package/dashboard/src/services/todo.service.js +0 -254
  1173. package/dashboard/src/services/watcher.service.js +0 -48
  1174. package/dashboard/src/views/coming-soon.ejs +0 -11
  1175. package/dashboard/src/views/error.ejs +0 -13
  1176. package/dashboard/src/views/index.ejs +0 -5
  1177. package/dashboard/src/views/layout.ejs +0 -1
  1178. package/dashboard/src/views/partials/dashboard-content.ejs +0 -77
  1179. package/dashboard/src/views/partials/footer.ejs +0 -3
  1180. package/dashboard/src/views/partials/head.ejs +0 -21
  1181. package/dashboard/src/views/partials/header.ejs +0 -12
  1182. package/dashboard/src/views/partials/layout-bottom.ejs +0 -15
  1183. package/dashboard/src/views/partials/layout-top.ejs +0 -8
  1184. package/dashboard/src/views/partials/phase-content.ejs +0 -189
  1185. package/dashboard/src/views/partials/phase-doc-content.ejs +0 -38
  1186. package/dashboard/src/views/partials/phases-content.ejs +0 -117
  1187. package/dashboard/src/views/partials/roadmap-content.ejs +0 -142
  1188. package/dashboard/src/views/partials/sidebar.ejs +0 -38
  1189. package/dashboard/src/views/partials/todo-create-content.ejs +0 -53
  1190. package/dashboard/src/views/partials/todo-detail-content.ejs +0 -38
  1191. package/dashboard/src/views/partials/todos-content.ejs +0 -53
  1192. package/dashboard/src/views/phase-detail.ejs +0 -5
  1193. package/dashboard/src/views/phase-doc.ejs +0 -5
  1194. package/dashboard/src/views/phases.ejs +0 -5
  1195. package/dashboard/src/views/roadmap.ejs +0 -5
  1196. package/dashboard/src/views/todo-create.ejs +0 -5
  1197. package/dashboard/src/views/todo-detail.ejs +0 -5
  1198. package/dashboard/src/views/todos.ejs +0 -5
  1199. package/plugins/cursor-pbr/references/agent-anti-patterns.md +0 -25
  1200. package/plugins/cursor-pbr/references/agent-interactions.md +0 -135
  1201. package/plugins/cursor-pbr/references/checkpoints.md +0 -158
  1202. package/plugins/cursor-pbr/references/planning-config.md +0 -214
  1203. package/plugins/cursor-pbr/references/subagent-coordination.md +0 -120
  1204. package/plugins/cursor-pbr/references/verification-patterns.md +0 -199
  1205. package/plugins/cursor-pbr/skills/begin/templates/researcher-prompt.md.tmpl +0 -20
  1206. package/plugins/cursor-pbr/skills/begin/templates/roadmap-prompt.md.tmpl +0 -31
  1207. package/plugins/cursor-pbr/skills/begin/templates/synthesis-prompt.md.tmpl +0 -17
  1208. package/plugins/cursor-pbr/skills/debug/templates/continuation-prompt.md.tmpl +0 -17
  1209. package/plugins/cursor-pbr/skills/debug/templates/initial-investigation-prompt.md.tmpl +0 -28
  1210. package/plugins/cursor-pbr/skills/shared/progress-display.md +0 -54
  1211. package/plugins/cursor-pbr/skills/shared/state-loading.md +0 -63
  1212. package/plugins/cursor-pbr/templates/RESEARCH-SUMMARY.md.tmpl +0 -98
  1213. package/plugins/pbr/commands/begin.md +0 -5
  1214. package/plugins/pbr/commands/build.md +0 -5
  1215. package/plugins/pbr/commands/discuss.md +0 -5
  1216. package/plugins/pbr/commands/milestone.md +0 -5
  1217. package/plugins/pbr/commands/pause.md +0 -5
  1218. package/plugins/pbr/commands/plan.md +0 -5
  1219. package/plugins/pbr/commands/resume.md +0 -5
  1220. package/plugins/pbr/commands/review.md +0 -5
  1221. package/plugins/pbr/commands/scan.md +0 -5
  1222. package/plugins/pbr/commands/status.md +0 -5
  1223. package/plugins/pbr/commands/todo.md +0 -5
  1224. package/plugins/pbr/references/agent-interactions.md +0 -134
  1225. package/plugins/pbr/references/pbr-rules.md +0 -193
  1226. package/plugins/pbr/references/planning-config.md +0 -213
  1227. package/plugins/pbr/references/subagent-coordination.md +0 -119
  1228. package/plugins/pbr/references/verification-patterns.md +0 -198
  1229. package/plugins/pbr/skills/shared/progress-display.md +0 -53
  1230. package/plugins/pbr/skills/shared/state-loading.md +0 -62
  1231. package/plugins/pbr/templates/RESEARCH-SUMMARY.md.tmpl +0 -97
  1232. package/plugins/pbr/templates/research/ARCHITECTURE.md.tmpl +0 -124
  1233. package/plugins/pbr/templates/research/STACK.md.tmpl +0 -71
  1234. package/plugins/pbr/templates/research/SUMMARY.md.tmpl +0 -112
  1235. package/plugins/pbr/templates/research-outputs/phase-research.md.tmpl +0 -81
  1236. package/plugins/pbr/templates/research-outputs/project-research.md.tmpl +0 -99
  1237. package/plugins/pbr/templates/research-outputs/synthesis.md.tmpl +0 -36
  1238. /package/plugins/pbr/references/{agent-anti-patterns.md → archive/agent-anti-patterns.md} +0 -0
@@ -1,12 +1,16 @@
1
1
  ---
2
2
  name: build
3
3
  description: "Execute all plans in a phase. Spawns agents to build in parallel, commits atomically."
4
- argument-hint: "<phase-number> [--gaps-only] [--team]"
4
+ argument-hint: "<phase-number> [--gaps-only] [--team] [--model <model>]"
5
5
  ---
6
6
 
7
- # /pbr:build Phase Execution
7
+ **STOPDO NOT READ THIS FILE. You are already reading it. This prompt was injected into your context by Claude Code's plugin system. Using the Read tool on this SKILL.md file wastes ~7,600 tokens. Begin executing Step 1 immediately.**
8
8
 
9
- You are the orchestrator for `/pbr:build`. This skill executes all plans in a phase by invoking executor agents. Plans are grouped by wave and executed in order independent plans run in parallel, dependent plans wait. Your job is to stay lean, delegate ALL building work to agents, and keep the user's main context window clean.
9
+ # /pbr:execute-phase — Phase Execution
10
+
11
+ **References:** `@references/questioning.md`, `@references/ui-brand.md`
12
+
13
+ You are the orchestrator for `/pbr:execute-phase`. This skill executes all plans in a phase by spawning executor agents. Plans are grouped by wave and executed in order — independent plans run in parallel, dependent plans wait. Your job is to stay lean, delegate ALL building work to Task() agents, and keep the user's main context window clean.
10
14
 
11
15
  ## Context Budget
12
16
 
@@ -15,19 +19,37 @@ Reference: `skills/shared/context-budget.md` for the universal orchestrator rule
15
19
  Additionally for this skill:
16
20
  - **Minimize** reading executor output — read only SUMMARY.md frontmatter, not full content
17
21
  - **Delegate** all building work to executor agents — the orchestrator routes, it doesn't build
22
+ - **Lazy-load steps**: Instead of reading ahead, fetch the next step's instructions on demand:
23
+ `node ${PLUGIN_ROOT}/scripts/pbr-tools.js skill-section build "step-6"` → returns that step's content as JSON. Use this when context budget is DEGRADING.
18
24
 
19
25
  ## Step 0 — Immediate Output
20
26
 
21
27
  **Before ANY tool calls**, display this banner:
22
28
 
23
29
  ```
24
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
25
- PLAN-BUILD-RUN ► BUILDING PHASE {N}
26
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
30
+ ╔══════════════════════════════════════════════════════════════╗
31
+ PLAN-BUILD-RUN ► BUILDING PHASE {N}
32
+ ╚══════════════════════════════════════════════════════════════╝
27
33
  ```
28
34
 
29
35
  Where `{N}` is the phase number from `$ARGUMENTS`. Then proceed to Step 1.
30
36
 
37
+ ## Multi-Session Sync
38
+
39
+ Before any phase-modifying operations (spawning executors, writing SUMMARY.md, updating STATE.md/ROADMAP.md), acquire a claim:
40
+
41
+ ```
42
+ acquireClaim(phaseDir, sessionId)
43
+ ```
44
+
45
+ If the claim fails (another session owns this phase), display: "Another session owns this phase. Use `/pbr:progress` to see active claims."
46
+
47
+ On completion or error (including all exit paths), release the claim:
48
+
49
+ ```
50
+ releaseClaim(phaseDir, sessionId)
51
+ ```
52
+
31
53
  ## Prerequisites
32
54
 
33
55
  - `.planning/config.json` exists
@@ -45,7 +67,55 @@ Parse `$ARGUMENTS` according to `skills/shared/phase-argument-parsing.md`.
45
67
  | `3` | Build phase 3 |
46
68
  | `3 --gaps-only` | Build only gap-closure plans in phase 3 |
47
69
  | `3 --team` | Use Agent Teams for complex inter-agent coordination |
70
+ | `3 --model opus` | Use opus for all executor spawns in phase 3 (overrides config and adaptive selection) |
48
71
  | (no number) | Use current phase from STATE.md |
72
+ | `3 --preview` | Preview what build would do for phase 3 without executing |
73
+
74
+ ---
75
+
76
+ ### --preview mode
77
+
78
+ If `--preview` is present in `$ARGUMENTS`:
79
+
80
+ 1. Extract the phase slug from `$ARGUMENTS` (use the phase number to look up the slug, or pass the number directly — the CLI accepts partial slug matches).
81
+ 2. Run:
82
+
83
+ ```bash
84
+ node ${PLUGIN_ROOT}/scripts/pbr-tools.js build-preview {phase-slug}
85
+ ```
86
+
87
+ Capture the JSON output.
88
+ 3. Render the following preview document (do NOT proceed to Step 2):
89
+
90
+ ```
91
+ ╔══════════════════════════════════════════════════════════════╗
92
+ ║ DRY RUN — /pbr:execute-phase {N} --preview ║
93
+ ║ No executor agents will be spawned ║
94
+ ╚══════════════════════════════════════════════════════════════╝
95
+
96
+ PHASE: {phase}
97
+
98
+ ## Plans
99
+ {for each plan: - {id} (wave {wave}, {task_count} tasks)}
100
+
101
+ ## Wave Structure
102
+ {for each wave: Wave {wave}: {plan IDs} [parallel | sequential]}
103
+
104
+ ## Files That Would Be Modified
105
+ {for each file in files_affected: - {file}}
106
+ (Total: {count} files)
107
+
108
+ ## Estimated Agent Spawns
109
+ {agent_count} executor task(s)
110
+
111
+ ## Critical Path
112
+ {critical_path joined with " → "}
113
+
114
+ ## Dependency Chain
115
+ {for each entry in dependency_chain: - {id} (wave {wave}) depends on: {depends_on or "none"}}
116
+ ```
117
+
118
+ 4. **STOP** — do not proceed to Step 2.
49
119
 
50
120
  ---
51
121
 
@@ -62,71 +132,74 @@ Reference: `skills/shared/config-loading.md` for the tooling shortcut and config
62
132
  1. Parse `$ARGUMENTS` for phase number and flags
63
133
  2. Read `.planning/config.json` for parallelization, model, and gate settings (see config-loading.md for field reference)
64
134
  3. Resolve depth profile: run `node ${PLUGIN_ROOT}/scripts/pbr-tools.js config resolve-depth` to get the effective feature/gate settings for the current depth. Store the result for use in later gating decisions.
65
- 4. Write `.planning/.active-skill` with the content `build` (registers with workflow enforcement hook)
135
+ 4. **CRITICAL (hook-enforced): Write .active-skill NOW.** Write `.planning/.active-skill` with the content `build` (registers with workflow enforcement hook)
66
136
  5. Validate:
67
137
  - Phase directory exists at `.planning/phases/{NN}-{slug}/`
68
138
  - PLAN.md files exist in the directory
69
139
  - Prior phase dependencies are met (check for SUMMARY.md files in dependency phases)
70
140
  6. If no phase number given, read current phase from `.planning/STATE.md`
71
141
  - `config.models.complexity_map` — adaptive model mapping (default: `{ simple: "haiku", medium: "sonnet", complex: "inherit" }`)
72
- 7. If `gates.confirm_execute` is true: use the yes-no pattern from `skills/shared/gate-prompts.md`:
142
+ 7. If `gates.confirm_execute` is true: use AskUserQuestion (pattern: yes-no from `skills/shared/gate-prompts.md`):
73
143
  question: "Ready to build Phase {N}? This will execute {count} plans."
74
144
  header: "Build?"
75
145
  options:
76
146
  - label: "Yes" description: "Start building Phase {N}"
77
147
  - label: "No" description: "Cancel — review plans first"
78
- If "No" or "Other": stop and suggest `/pbr:plan {N}` to review plans
79
- 8. If `git.branching` is `phase`: create and switch to branch `plan-build-run/phase-{NN}-{name}` before any build work begins
148
+ If "No" or "Other": stop and suggest `/pbr:plan-phase {N}` to review plans
149
+ 8. If `git.branching` is `phase` (the recommended default — see config Quick Start): create and switch to branch `plan-build-run/phase-{NN}-{name}` before any build work begins
80
150
  9. Record the current HEAD commit SHA: `git rev-parse HEAD` — store as `pre_build_commit` for use in Step 8-pre-c (codebase map update)
81
151
 
82
152
  **Staleness check (dependency fingerprints):**
83
153
  After validating prerequisites, check plan staleness:
84
- 1. Read each PLAN.md file's `dependency_fingerprints` field (if present)
85
- 2. For each fingerprinted dependency, check the current SUMMARY.md file (length + modification time)
86
- 3. If any fingerprint doesn't match: the dependency phase was re-built after this plan was created
87
- 4. Use the stale-continue pattern from `skills/shared/gate-prompts.md`:
88
- question: "Plan {plan_id} may be stale — dependency phase {M} was re-built after this plan was created."
89
- header: "Stale"
90
- options:
91
- - label: "Continue anyway" description: "Proceed with existing plans (may still be valid)"
92
- - label: "Re-plan" description: "Stop and re-plan with `/pbr:plan {N}` (recommended)"
93
- If "Re-plan" or "Other": stop and suggest `/pbr:plan {N}`
94
- If "Continue anyway": proceed with existing plans
95
- 10. If plans have no `dependency_fingerprints` field, fall back to timestamp-based staleness detection:
96
- a. Read `.planning/ROADMAP.md` and identify the current phase's dependencies (the `depends_on` field)
97
- b. For each dependency phase, find its phase directory under `.planning/phases/`
98
- c. Check if any SUMMARY.md files in the dependency phase directory have a modification timestamp newer than the current phase's PLAN.md files
99
- d. If any upstream dependency was modified after planning, display a warning (do NOT block):
100
- ```
101
- Warning: Phase {dep_phase} (dependency of Phase {N}) was modified after this phase was planned.
102
- Plans may be based on outdated assumptions. Consider re-planning with `/pbr:plan {N}`.
103
- ```
104
- e. This is advisory only — continue with the build after displaying the warning
154
+
155
+ ```bash
156
+ node ${PLUGIN_ROOT}/scripts/pbr-tools.js staleness-check {phase-slug}
157
+ ```
158
+
159
+ Returns `{ stale: bool, plans: [{id, stale, reason}] }`. If `stale: true` for any plan:
160
+ - Use AskUserQuestion (pattern: stale-continue from `skills/shared/gate-prompts.md`):
161
+ question: "Plan {plan_id} may be stale {reason}"
162
+ options: ["Continue anyway", "Re-plan with /pbr:plan-phase {N}"]
163
+ - If "Re-plan": stop. If "Continue anyway": proceed.
164
+ If `stale: false`: proceed silently.
105
165
 
106
166
  **Validation errors — use branded error boxes:**
107
167
 
108
168
  If no plans found:
109
169
  ```
110
- ERROR
170
+ ╔══════════════════════════════════════════════════════════════╗
171
+ ║ ERROR ║
172
+ ╚══════════════════════════════════════════════════════════════╝
111
173
 
112
174
  Phase {N} has no plans.
113
175
 
114
- **To fix:** Run `/pbr:plan {N}` first.
176
+ **To fix:** Run `/pbr:plan-phase {N}` first.
115
177
  ```
116
178
 
117
- If dependencies incomplete:
118
- ```
119
- ERROR
179
+ If dependencies incomplete, use conversational recovery:
120
180
 
121
- Phase {N} depends on Phase {M}, which is not complete.
181
+ 1. Run: `node ${PLUGIN_ROOT}/scripts/pbr-tools.js suggest-alternatives missing-prereq {dependency-phase-slug}`
182
+ 2. Parse the JSON response to get `existing_summaries`, `missing_summaries`, and `suggested_action`.
183
+ 3. Display what summaries exist and what is still missing.
184
+ 4. Use AskUserQuestion (pattern: yes-no from `skills/shared/gate-prompts.md`) to offer:
185
+ - "Build {dependency-phase} first" — stop and show: `/pbr:execute-phase {dependency-phase}`
186
+ - "Continue anyway (skip dependency check)" — proceed with build, note unmet deps in output
122
187
 
123
- **To fix:** Build Phase {M} first with `/pbr:build {M}`.
124
- ```
188
+ If config validation fails for a specific field, use conversational recovery:
189
+
190
+ 1. Run: `node ${PLUGIN_ROOT}/scripts/pbr-tools.js suggest-alternatives config-invalid {field} {value}`
191
+ 2. Parse the JSON response to get `valid_values` and `suggested_fix`.
192
+ 3. Display the invalid field, its current value, and the valid options.
193
+ 4. Use AskUserQuestion to offer: "Fix config.json now, or continue with current value?"
194
+ - If "Fix now": stop and display the `suggested_fix` instruction.
195
+ - If "Continue": proceed with default value for that field.
125
196
 
126
197
  ---
127
198
 
128
199
  ### Step 2: Load Config (inline)
129
200
 
201
+ **Init-first pattern**: When spawning agents, pass the output of `node plugins/pbr/scripts/pbr-tools.js init execute-phase {N}` as context rather than having the agent read multiple files separately. This reduces file reads and prevents context-loading failures.
202
+
130
203
  Read configuration values needed for execution. See `skills/shared/config-loading.md` for the full field reference; build uses: `parallelization.*`, `features.goal_verification`, `features.inline_verify`, `features.atomic_commits`, `features.auto_continue`, `features.auto_advance`, `planning.commit_docs`, `git.commit_format`, `git.branching`.
131
204
 
132
205
  ---
@@ -149,7 +222,7 @@ This returns a JSON object with `plans` (array with plan_id, wave, depends_on, a
149
222
  4. Sort plans by plan number
150
223
 
151
224
  **If no plans match filters:**
152
- - With `--gaps-only`: "No gap-closure plans found. Run `/pbr:plan {N} --gaps` first."
225
+ - With `--gaps-only`: "No gap-closure plans found. Run `/pbr:plan-phase {N} --gaps` first."
153
226
  - Without filter: "No plans found in phase directory."
154
227
 
155
228
  ---
@@ -167,14 +240,14 @@ Check for existing SUMMARY.md files from previous runs (crash recovery):
167
240
  3. Build the skip list of plans to exclude
168
241
 
169
242
  **If all plans already have completed SUMMARYs:**
170
- Use the yes-no pattern from `skills/shared/gate-prompts.md`:
243
+ Use AskUserQuestion (pattern: yes-no from `skills/shared/gate-prompts.md`):
171
244
  question: "Phase {N} has already been built. All plans have completed SUMMARYs. Re-build from scratch?"
172
245
  header: "Re-build?"
173
246
  options:
174
247
  - label: "Yes" description: "Delete existing SUMMARYs and re-execute all plans"
175
248
  - label: "No" description: "Keep existing build — review instead"
176
249
  - If "Yes": delete SUMMARY files and proceed
177
- - If "No" or "Other": suggest `/pbr:review {N}`
250
+ - If "No" or "Other": suggest `/pbr:verify-work {N}`
178
251
 
179
252
  ---
180
253
 
@@ -191,28 +264,21 @@ Validate wave consistency:
191
264
 
192
265
  ### Step 5b: Write Checkpoint Manifest (inline)
193
266
 
194
- Before entering the wave loop, write `.planning/phases/{NN}-{slug}/.checkpoint-manifest.json`:
267
+ **CRITICAL (hook-enforced): Initialize checkpoint manifest NOW before entering the wave loop.**
195
268
 
196
- ```json
197
- {
198
- "plans": ["02-01", "02-02", "02-03"],
199
- "checkpoints_resolved": [],
200
- "checkpoints_pending": [],
201
- "wave": 1,
202
- "deferred": [],
203
- "commit_log": [],
204
- "last_good_commit": null
205
- }
269
+ **Session affinity:** The checkpoint manifest includes a `session_id` field. Before writing any phase state, validate that the current session owns the manifest by checking `manifest.session_id` matches the active session. If mismatch, another session may have taken over — re-acquire the claim or warn the user.
270
+
271
+ ```bash
272
+ node ${PLUGIN_ROOT}/scripts/pbr-tools.js checkpoint init {phase-slug} --plans "{comma-separated plan IDs}"
206
273
  ```
207
274
 
208
- This file tracks execution progress for crash recovery and rollback. On resume after compaction, read this manifest to determine where execution left off and which plans still need work.
275
+ After each wave completes, update the manifest:
276
+
277
+ ```bash
278
+ node ${PLUGIN_ROOT}/scripts/pbr-tools.js checkpoint update {phase-slug} --wave {N} --resolved {plan-id} --sha {commit-sha}
279
+ ```
209
280
 
210
- Update the manifest after each wave completes:
211
- - Move completed plan IDs into `checkpoints_resolved`
212
- - Advance the `wave` counter
213
- - Record commit SHAs in `commit_log` (array of `{ plan, sha, timestamp }` objects)
214
- - Update `last_good_commit` to the SHA of the last successfully verified commit
215
- - Append any deferred items collected from executor SUMMARYs
281
+ This tracks execution for crash recovery and rollback. Read `.checkpoint-manifest.json` on resume to reconstruct which plans are complete.
216
282
 
217
283
  ---
218
284
 
@@ -235,12 +301,24 @@ For each wave, in order (Wave 1, then Wave 2, etc.):
235
301
 
236
302
  For each plan in the current wave (excluding skipped plans):
237
303
 
304
+ **Local LLM plan quality check (optional, advisory):**
305
+
306
+ Before spawning executors for this wave, if `config.local_llm.enabled` is `true`, run a quick classification on each plan to catch stubs before wasting an executor spawn:
307
+
308
+ ```bash
309
+ node ${PLUGIN_ROOT}/scripts/pbr-tools.js llm classify PLAN ".planning/phases/{NN}-{slug}/{plan_id}-PLAN.md"
310
+ ```
311
+
312
+ - If classification is `"stub"` or `"partial"` with confidence >= 0.7: warn the user before spawning: `"⚠ Plan {plan_id} classified as {classification} (confidence {conf}) — consider refining before building."`
313
+ - If the command fails or returns null: skip silently (local LLM unavailable — not an error)
314
+ - This is advisory only — never block on the result
315
+
238
316
  **Present plan narrative before spawning:**
239
317
 
240
318
  Display to the user before spawning:
241
319
 
242
320
  ```
243
- Spawning {N} executor(s) for Wave {W}...
321
+ Spawning {N} executor(s) for Wave {W}...
244
322
  ```
245
323
 
246
324
  Then present a brief narrative for each plan to give the user context on what's about to happen:
@@ -261,95 +339,66 @@ This is a read-only presentation step — extract descriptions from plan frontma
261
339
  **State fragment rule:** Executors MUST NOT modify STATE.md directly. The build skill orchestrator is the sole STATE.md writer during execution. Executors report results via SUMMARY.md only; the orchestrator reads those summaries and updates STATE.md itself.
262
340
 
263
341
  **Model Selection (Adaptive)**:
264
- Before invoking the executor for each plan, determine the model:
342
+ Before spawning the executor for each plan, determine the model:
343
+ 0. If `--model <value>` was parsed from `$ARGUMENTS` (valid values: sonnet, opus, haiku, inherit), use that model for ALL executor Task() spawns in this run. Skip steps 1-4. The --model flag is the highest precedence override.
265
344
  1. Read the plan's task elements for `complexity` and `model` attributes
266
345
  2. If ANY task has an explicit `model` attribute, use the most capable model among them (inherit > sonnet > haiku)
267
346
  3. Otherwise, use the HIGHEST complexity among the plan's tasks to select the model:
268
347
  - Look up `config.models.complexity_map.{complexity}` (defaults: simple->haiku, medium->sonnet, complex->inherit)
269
348
  4. If `config.models.executor` is set (non-null), it overrides adaptive selection entirely — use that model for all executors
270
- 5. Pass the selected model to the agent invocation
349
+ 5. Pass the selected model to the Task() spawn
350
+
351
+ If `--model <value>` is present in `$ARGUMENTS`, extract the value. Valid values: `sonnet`, `opus`, `haiku`, `inherit`. If an invalid value is provided, display an error and list valid values. Store as `override_model`.
271
352
 
272
353
  Reference: `references/model-selection.md` for full details.
273
354
 
274
355
  1. Extract the `## Summary` section from the PLAN.md (everything after the `## Summary` heading to end of file). If no ## Summary section exists (legacy plans), fall back to reading the full PLAN.md content. Note: The orchestrator reads the full PLAN.md once for narrative extraction AND summary extraction; only the ## Summary portion is inlined into the executor prompt. The full PLAN.md stays on disk for the executor to Read.
275
- 2. Read `.planning/CONTEXT.md` (if exists)
356
+ 2. Read `.planning/PROJECT.md` ## Context section (if exists; backwards compat: fall back to `.planning/CONTEXT.md` if PROJECT.md has no ## Context)
276
357
  3. Read `.planning/STATE.md`
277
358
  4. Read prior SUMMARY.md files from the same phase (completed plans in earlier waves)
278
359
  5. Read `.planning/config.json`
279
360
 
280
- Construct the executor prompt and invoke `@executor`:
281
-
282
- ```
283
- You are the executor agent. Execute the following plan.
284
-
285
- <plan_summary>
286
- [Inline only the ## Summary section from PLAN.md]
287
- </plan_summary>
288
-
289
- <plan_file>
290
- .planning/phases/{NN}-{slug}/{plan_id}-PLAN.md
291
- </plan_file>
292
-
293
- <project_context>
294
- Project root: {absolute path to project root}
295
- Platform: {win32|linux|darwin}
296
-
297
- Config:
298
- commit_format: {commit_format from config}
299
- tdd_mode: {tdd_mode from config}
300
- atomic_commits: {atomic_commits from config}
301
-
302
- Available context files (read via Read tool as needed):
303
- - Config: {absolute path to config.json}
304
- - State: {absolute path to STATE.md}
305
- {If CONTEXT.md exists:}
306
- - Project context (locked decisions): {absolute path to CONTEXT.md}
307
- </project_context>
308
-
309
- <prior_work>
310
- Completed plans in this phase:
311
- | Plan | Status | Commits | Summary File |
312
- |------|--------|---------|-------------|
313
- | {plan_id} | complete | {hash1}, {hash2} | {absolute path to SUMMARY.md} |
314
-
315
- Read any SUMMARY file via Read tool if you need details on what prior plans produced.
316
- </prior_work>
361
+ Construct the executor prompt by reading `${CLAUDE_SKILL_DIR}/templates/executor-prompt.md.tmpl` and filling in all `{placeholder}` values:
317
362
 
318
- Execute all tasks in the plan sequentially. For each task:
319
- 0. Read the full plan file from the path in <plan_file> to get task details
320
- 1. Execute the <action> steps
321
- 2. Run the <verify> commands
322
- 3. Create an atomic commit with format: {commit_format}
323
- 4. Record the commit hash
363
+ - `{NN}-{slug}` phase directory (e.g., `02-authentication`)
364
+ - `{plan_id}` plan being executed (e.g., `02-01`)
365
+ - `{commit_format}`, `{tdd_mode}`, `{atomic_commits}` — from loaded config
366
+ - File paths: absolute paths to project root, config.json, STATE.md, PROJECT.md
367
+ - `{prior_work table rows}` one row per completed plan in this phase
324
368
 
325
- After all tasks complete:
326
- 1. Write SUMMARY.md to .planning/phases/{NN}-{slug}/SUMMARY-{plan_id}.md
327
- 2. Run self-check (verify files exist, commits exist, verify commands still pass)
328
- 3. Return your SUMMARY.md content as your final response
329
-
330
- If you hit a checkpoint task, STOP and return the checkpoint response format immediately.
331
- ```
332
-
333
- **NOTE**: The `@executor` agent is defined in `agents/executor.md`. Do NOT inline it.
369
+ Use the filled template as the Task() prompt.
334
370
 
335
371
  **Spawn strategy based on config:**
336
372
 
337
373
  - If `parallelization.enabled: true` AND multiple plans in this wave:
338
- - Invoke up to `max_concurrent_agents` executors in parallel
339
- - Each invocation is independent
374
+ - Spawn up to `max_concurrent_agents` Task() calls in parallel
375
+ - Each Task() call is independent
376
+ - Use `run_in_background: true` for each executor
340
377
  - While waiting, display progress to the user:
341
378
  - After spawning: "Wave {W}: launched {N} executors in parallel: {list of plan names}"
379
+ - Periodically (~30s): check `TaskOutput` with `block: false` and report status
342
380
  - When each completes: "Plan {id} complete ({duration})"
343
381
  - When all complete: "Wave {W} finished. {passed}/{total} plans succeeded."
344
382
 
345
383
  - If `parallelization.enabled: false` OR single plan in wave:
346
- - Invoke executors sequentially, one at a time
384
+ - Spawn Task() calls sequentially, one at a time
385
+
386
+ ```
387
+ Task({
388
+ subagent_type: "pbr:executor",
389
+ prompt: <executor prompt constructed above>
390
+ })
391
+
392
+ NOTE: The pbr:executor subagent type auto-loads the agent definition.
347
393
 
348
- **Path resolution**: Before constructing the agent prompt, resolve plugin root to its absolute path. Do not pass the variable literally in prompts. Use the resolved absolute path for any pbr-tools.js or template references included in the prompt.
394
+ After executor completes, check for completion markers: `## PLAN COMPLETE`, `## PLAN FAILED`, or `## CHECKPOINT: {TYPE}`. Route accordingly PLAN COMPLETE proceeds to next plan, PLAN FAILED triggers failure handling, CHECKPOINT triggers checkpoint flow. Do NOT inline it.
395
+ ```
396
+
397
+ **Path resolution**: Before constructing the agent prompt, resolve `${PLUGIN_ROOT}` to its absolute path. Do not pass the variable literally in prompts — Task() contexts may not expand it. Use the resolved absolute path for any pbr-tools.js or template references included in the prompt.
349
398
 
350
399
  #### 6b. Wait for Wave Completion
351
400
 
352
- Block until all executor agents for this wave complete.
401
+ Block until all executor Task() calls for this wave complete.
353
402
 
354
403
  #### 6c. Read Results
355
404
 
@@ -360,7 +409,7 @@ For each completed executor:
360
409
  3. Extract status: `completed` | `partial` | `checkpoint` | `failed`
361
410
  4. Display per-plan completion to the user:
362
411
  ```
363
- Plan {id} complete — {brief summary from SUMMARY.md frontmatter description or first key_file}
412
+ Plan {id} complete — {brief summary from SUMMARY.md frontmatter description or first key_file}
364
413
  ```
365
414
  Extract the brief summary from the SUMMARY.md frontmatter (use the `description` field if present, otherwise use the first entry from `key_files`).
366
415
  5. Record commit hashes, files created, deviations
@@ -368,70 +417,78 @@ For each completed executor:
368
417
 
369
418
  **Spot-check executor claims:**
370
419
 
371
- After reading each SUMMARY, perform a lightweight verification:
372
- - Pick 2-3 files from the SUMMARY's `key_files` list and verify they exist (`ls`)
373
- - Run `git log --oneline -n {commit_count}` and confirm the count matches the claimed commits
374
- - For each spot-checked file, verify it has >10 lines (`wc -l`): warn if trivially small
375
- - For each spot-checked file, search for TODO/FIXME/placeholder/stub markers: warn if found
376
- - Check SUMMARY.md frontmatter for `self_check_failures`: if present, warn the user:
377
- "Plan {id} reported self-check failures: {list failures}. Inspect before continuing?"
378
- - If ANY spot-check fails, warn the user before proceeding to the next wave:
379
- "Spot-check failed for plan {id}: {detail}. Inspect before continuing?"
420
+ CRITICAL (no hook): Before reading results or advancing to the next wave, run the spot-check CLI for each completed plan.
380
421
 
381
- **Read executor deviations:**
422
+ For each completed plan in this wave:
423
+
424
+ ```bash
425
+ node ${PLUGIN_ROOT}/scripts/pbr-tools.js spot-check {phaseSlug} {planId}
426
+ ```
382
427
 
428
+ Where `{phaseSlug}` is the phase directory name (e.g., `49-build-workflow-hardening`) and `{planId}` is the plan identifier (e.g., `49-01`).
429
+
430
+ The command returns JSON: `{ ok, summary_exists, key_files_checked, commits_present, detail }`
431
+
432
+ **If `ok` is `false` for ANY plan: STOP.** Do NOT advance to the next wave. Present the user with:
433
+
434
+ ```
435
+ Spot-check FAILED for plan {planId}: {detail}
436
+
437
+ Choose an action:
438
+ Retry — Re-spawn executor for this plan
439
+ Continue — Skip this plan and proceed to next wave (may leave phase incomplete)
440
+ Abort — Stop the build entirely
441
+ ```
442
+
443
+ Use AskUserQuestion with the three options. Route:
444
+
445
+ - Retry: Re-spawn the executor for this plan (go back to Step 6a for this plan only)
446
+ - Continue: Log the failure, skip the plan, proceed
447
+ - Abort: Stop all build work, leave phase in partial state
448
+
449
+ **If `ok` is `true` for all plans:**
450
+
451
+ - Also check SUMMARY.md frontmatter for `self_check_failures`: if present, warn the user: "Plan {id} reported self-check failures: {list}. Inspect before continuing?"
452
+ - Also search SUMMARY.md for `## Self-Check: FAILED` marker — if present, warn before next wave
453
+ - Between waves: verify no file conflicts from parallel executors (`git status` for uncommitted changes)
454
+
455
+ **Read executor deviations:**
383
456
  After all executors in the wave complete, read all SUMMARY frontmatter and:
384
457
  - Collect `deferred` items into a running list (append to `.checkpoint-manifest.json` deferred array)
385
458
  - Flag any deviation-rule-4 (architectural) stops — these require user attention
386
459
  - Present a brief wave summary to the user:
387
460
  "Wave {W} complete. {N} plans done. {D} deferred ideas logged. {A} architectural issues."
388
461
 
389
- Build a wave results table:
462
+ Build a wave results table using standardized status symbols (`✓` complete, `✗` failed, `◆` in-progress, `○` pending — see `@references/ui-brand.md`):
390
463
 
391
464
  ```
392
465
  Wave {W} Results:
393
466
  | Plan | Status | Tasks | Commits | Deviations |
394
467
  |------|--------|-------|---------|------------|
395
- | {id} | complete | 3/3 | abc, def, ghi | 0 |
396
- | {id} | complete | 2/2 | jkl, mno | 1 |
468
+ | {id} | complete | 3/3 | abc, def, ghi | 0 |
469
+ | {id} | complete | 2/2 | jkl, mno | 1 |
397
470
  ```
398
471
 
399
472
  #### 6c-ii. Inline Per-Task Verification (conditional)
400
473
 
401
474
  **Skip if** the depth profile has `features.inline_verify: false`.
402
475
 
403
- To check: use the resolved depth profile. Only `comprehensive` mode enables inline verification by default.
404
-
405
- When inline verification is enabled, each completed plan gets a targeted verification pass before the orchestrator proceeds to the next wave. This catches issues early — before dependent plans build on a broken foundation.
476
+ To check: use the resolved depth profile. Only `comprehensive` mode enables inline verification by default. When inline verification is enabled, each completed plan gets a targeted verification pass before the orchestrator proceeds to the next wave — catching issues early before dependent plans build on a broken foundation.
406
477
 
407
478
  For each plan that completed successfully in this wave:
408
479
 
409
480
  1. Read the plan's SUMMARY.md to get `key_files` (the files this plan created/modified)
410
- 2. Display to the user: `Spawning inline verifier for plan {plan_id}...`
411
-
412
- Invoke `@verifier` with a lightweight targeted verification prompt:
413
-
414
- ```
415
- Targeted inline verification for plan {plan_id}.
416
-
417
- Verify ONLY these files: {comma-separated key_files list}
418
-
419
- For each file, check three layers:
420
- 1. Existence — does the file exist?
421
- 2. Substantiveness — is it more than a stub? (>10 lines, no TODO/FIXME placeholders)
422
- 3. Wiring — is it imported/used by at least one other file?
481
+ 2. Display to the user: `◆ Spawning inline verifier for plan {plan_id}...`
423
482
 
424
- Report PASS or FAIL with a one-line reason per file.
425
- Write nothing to disk — just return your results as text.
426
- ```
483
+ Spawn `Task({ subagent_type: "pbr:verifier", model: "haiku", prompt: ... })`. Read `${CLAUDE_SKILL_DIR}/templates/inline-verifier-prompt.md.tmpl` and fill in `{NN}-{slug}`, `{plan_id}`, and `{comma-separated key_files list}` (key_files from PLAN.md frontmatter). Use the filled template as the `prompt` value.
427
484
 
428
485
  3. If verifier reports FAIL for any file:
429
486
  - Present the failure to the user: "Inline verify failed for plan {plan_id}: {details}"
430
- - Re-invoke the executor for just the failed items: include only the failing file context in the prompt
487
+ - Re-spawn the executor for just the failed items: include only the failing file context in the prompt
431
488
  - If the retry also fails: proceed but flag in the wave results table (don't block indefinitely)
432
489
  4. If verifier reports all PASS: continue to next wave
433
490
 
434
- **Note:** This adds latency (~10-20s per plan for the verifier). It's opt-in via `features.inline_verify: true` for projects where early detection outweighs speed.
491
+ **Note:** This adds latency (~10-20s per plan for the haiku verifier). It's opt-in via `features.inline_verify: true` for projects where early detection outweighs speed.
435
492
 
436
493
  ---
437
494
 
@@ -441,7 +498,7 @@ If any executor returned `failed` or `partial`:
441
498
 
442
499
  **Handoff bug check (false-failure detection):**
443
500
 
444
- Before presenting failure options, check whether the executor actually completed its work despite reporting failure:
501
+ Before presenting failure options, check whether the executor actually completed its work despite reporting failure (known Claude Code platform bug where handoff reports failure but work is done):
445
502
 
446
503
  1. Check if SUMMARY.md exists at the expected path for this plan
447
504
  2. If SUMMARY.md exists:
@@ -463,17 +520,17 @@ Plan {id} {status}:
463
520
  Last verify output: {output}
464
521
  ```
465
522
 
466
- Use the multi-option-failure pattern from `skills/shared/gate-prompts.md`:
523
+ Use AskUserQuestion (pattern: multi-option-failure from `skills/shared/gate-prompts.md`):
467
524
  question: "Plan {id} failed at task {N} ({name}). How should we proceed?"
468
525
  header: "Failed"
469
526
  options:
470
- - label: "Retry" description: "Re-invoke the executor for this plan"
527
+ - label: "Retry" description: "Re-spawn the executor for this plan"
471
528
  - label: "Skip" description: "Mark as skipped, continue to next wave"
472
529
  - label: "Rollback" description: "Undo commits from this plan, revert to last good state"
473
530
  - label: "Abort" description: "Stop the entire build"
474
531
 
475
532
  **If user selects 'Retry':**
476
- - Re-invoke executor with the same prompt
533
+ - Re-spawn executor Task() with the same prompt
477
534
  - If retry also fails: ask user again (max 2 retries total)
478
535
 
479
536
  **If user selects 'Skip':**
@@ -482,19 +539,22 @@ Use the multi-option-failure pattern from `skills/shared/gate-prompts.md`:
482
539
  - If yes: warn user that those plans will also need to be skipped or adjusted
483
540
 
484
541
  **If user selects 'Rollback':**
485
- - Read `last_good_commit` from `.checkpoint-manifest.json`
486
- - If `last_good_commit` exists:
487
- - Show the user: "Rolling back to commit {sha} (last verified good state). This will soft-reset {N} commits."
488
- - Run: `git reset --soft {last_good_commit}`
489
- - Delete the failed plan's SUMMARY.md file if it was created
490
- - Update the checkpoint manifest: remove the failed plan from `checkpoints_resolved`
491
- - Continue to next wave or stop based on user preference
492
- - If no `last_good_commit`: warn "No rollback point available (this was the first plan). Use abort instead."
542
+ Run the rollback CLI:
543
+
544
+ ```bash
545
+ node ${PLUGIN_ROOT}/scripts/pbr-tools.js rollback .planning/phases/{NN}-{slug}/.checkpoint-manifest.json
546
+ ```
547
+
548
+ Returns `{ ok, rolled_back_to, plans_invalidated, files_deleted, warnings }`.
549
+
550
+ - If `ok` is `true`: display "Rolled back to commit {rolled_back_to}. {plans_invalidated.length} downstream plans invalidated."
551
+ Show any warnings. Continue to next wave or stop based on user preference.
552
+ - If `ok` is `false`: display the error message. Suggest "Use abort instead."
493
553
 
494
554
  **If user selects 'Abort':**
495
555
  - Update STATE.md with current progress
496
556
  - Present what was completed before the abort
497
- - Suggest: "Fix the issue and run `/pbr:build {N}` to resume (completed plans will be skipped)"
557
+ - Suggest: "Fix the issue and run `/pbr:execute-phase {N}` to resume (completed plans will be skipped)"
498
558
 
499
559
  #### 6e. Handle Checkpoints
500
560
 
@@ -514,55 +574,54 @@ Checkpoint in Plan {id}, Task {N}: {checkpoint type}
514
574
  ```
515
575
 
516
576
  3. Wait for user response
517
- 4. Invoke a FRESH continuation executor:
577
+ 4. Spawn a FRESH continuation executor:
518
578
 
519
579
  Reference: `references/continuation-format.md` for the continuation protocol.
520
580
 
521
- ```
522
- You are the executor agent. Continue executing a plan from a checkpoint.
523
-
524
- <plan_summary>
525
- [Inline only the ## Summary section from PLAN.md]
526
- </plan_summary>
581
+ Read `${CLAUDE_SKILL_DIR}/templates/continuation-prompt.md.tmpl` and fill in:
527
582
 
528
- <plan_file>
529
- .planning/phases/{NN}-{slug}/{plan_id}-PLAN.md
530
- </plan_file>
583
+ - `{NN}-{slug}`, `{plan_id}` — current phase and plan
584
+ - `{plan_summary}` — the ## Summary section from PLAN.md
585
+ - `{task table rows}` — one row per task with completion status
586
+ - `{user's response}` — the checkpoint resolution from Step 3
587
+ - `{project context key-values}` — config values + file paths
531
588
 
532
- <completed_tasks>
533
- | Task | Commit | Status |
534
- |------|--------|--------|
535
- | {task_name} | {hash} | complete |
536
- | {task_name} | {hash} | complete |
537
- | {checkpoint_task} | — | checkpoint |
538
- </completed_tasks>
589
+ Use the filled template as the Task() prompt.
539
590
 
540
- <checkpoint_resolution>
541
- User response to checkpoint: {user's response}
542
- Resume at: Task {N+1} (or re-execute checkpoint task with user's answer)
543
- </checkpoint_resolution>
591
+ #### 6e-ii. CI Gate (after wave completion, conditional)
544
592
 
545
- <project_context>
546
- {Same lean context as original spawn — config key-values + file paths, not inlined bodies}
547
- </project_context>
593
+ If `config.ci.gate_enabled` is `true` AND `config.git.branching` is not `none`:
548
594
 
549
- Continue execution from the checkpoint. Skip completed tasks. Process the checkpoint resolution, then continue with remaining tasks. Write SUMMARY.md when done.
550
- ```
595
+ 1. Push current commits: `git push`
596
+ 2. Wait 5 seconds for CI to trigger
597
+ 3. Get the current run ID:
598
+ ```bash
599
+ gh run list --branch $(git branch --show-current) --limit 1 --json databaseId -q '.[0].databaseId'
600
+ ```
601
+ 4. Poll CI status using CLI:
602
+ ```bash
603
+ node ${PLUGIN_ROOT}/scripts/pbr-tools.js ci-poll <run-id> [--timeout <seconds>]
604
+ ```
605
+ Returns `{ status, conclusion, url, next_action, elapsed_seconds }`.
606
+ 5. If `next_action` is `"continue"`: proceed to next wave
607
+ 6. If `next_action` is `"wait"`: re-run ci-poll after 15 seconds (repeat up to `config.ci.wait_timeout_seconds`)
608
+ 7. If `next_action` is `"abort"` or `status` is `"failed"`:
609
+ Show warning box and use AskUserQuestion: Wait / Continue anyway / Abort
610
+ 8. If "Continue anyway": log deviation — `DEVIATION: CI gate bypassed for wave {N}`
611
+ 9. If "Abort": stop build, update STATE.md
551
612
 
552
613
  #### 6f. Update STATE.md
553
614
 
554
615
  After each wave completes (all plans in the wave are done, skipped, or aborted):
555
616
 
556
617
  **SUMMARY gate — verify before updating STATE.md:**
618
+ For every plan in the wave, run:
557
619
 
558
- Before writing any STATE.md update, verify these three gates for every plan in the wave:
559
- 1. SUMMARY file exists at the expected path
560
- 2. SUMMARY file is not empty (file size > 0)
561
- 3. SUMMARY file has a valid title and YAML frontmatter (contains `---` delimiters and a `status:` field)
620
+ ```bash
621
+ node ${PLUGIN_ROOT}/scripts/pbr-tools.js summary-gate {phase-slug} {plan-id}
622
+ ```
562
623
 
563
- Block the STATE.md update until ALL gates pass. If any gate fails:
564
- - Warn user: "SUMMARY gate failed for plan {id}: {which gate}. Cannot update STATE.md."
565
- - Ask user to retry the executor or manually inspect the SUMMARY file
624
+ Returns `{ ok: bool, gate: string, detail: string }`. Block STATE.md update until ALL plans return `ok: true`. If any fail, warn: "SUMMARY gate failed for plan {id}: {gate} — {detail}. Cannot update STATE.md."
566
625
 
567
626
  Once gates pass, update `.planning/STATE.md`:
568
627
 
@@ -580,11 +639,20 @@ node ${PLUGIN_ROOT}/scripts/pbr-tools.js state update last_activity now
580
639
 
581
640
  **STATE.md size limit:** Follow the size limit enforcement rules in `skills/shared/state-update.md` (150 lines max — collapse completed phases, remove duplicated decisions, trim old sessions).
582
641
 
642
+ **Completion check:** Before proceeding to next wave, confirm ALL of:
643
+ - [ ] SUMMARY gate passed for every plan in this wave
644
+ - [ ] STATE.md frontmatter `plans_complete` updated
645
+ - [ ] STATE.md body progress bar updated
646
+ - [ ] `last_activity` timestamp refreshed
647
+
648
+ To verify programmatically: `node ${PLUGIN_ROOT}/scripts/pbr-tools.js step-verify build step-6f '["STATE.md updated","SUMMARY.md exists","commit made"]'`
649
+ If any item fails, investigate before proceeding to Step 7.
650
+
583
651
  ---
584
652
 
585
653
  ### Step 7: Phase Verification (delegated, conditional)
586
654
 
587
- **Event-driven auto-verify signal:** Check if `.planning/.auto-verify` exists (written by event hooks). If the signal file exists, read it and delete it (one-shot). The signal confirms that auto-verification was triggered — proceed with verification even if the build just finished.
655
+ **Event-driven auto-verify signal:** Check if `.planning/.auto-verify` exists (written by `event-handler.js` SubagentStop hook). If the signal file exists, read it and delete it (one-shot). The signal confirms that auto-verification was triggered — proceed with verification even if the build just finished.
588
656
 
589
657
  **Skip if:**
590
658
  - Build was aborted
@@ -596,26 +664,45 @@ To check: run `node ${PLUGIN_ROOT}/scripts/pbr-tools.js config resolve-depth` an
596
664
  This implements budget mode's "skip verifier for < 3 tasks" rule: small phases in quick mode don't need a full verification pass.
597
665
 
598
666
  **If skipping because `features.goal_verification` is `false`:**
599
- Note for Step 8f completion summary: append "Note: Automatic verification was skipped (goal_verification: false). Run `/pbr:review {N}` to verify what was built."
667
+ Note for Step 8f completion summary: append "Note: Automatic verification was skipped (goal_verification: false). Run `/pbr:verify-work {N}` to verify what was built."
600
668
 
601
669
  **If verification is enabled:**
602
670
 
603
- Display to the user: `Spawning verifier...`
671
+ Display to the user: `◆ Spawning verifier...`
672
+
673
+ Spawn a verifier Task():
604
674
 
605
- Invoke the `@verifier` agent with the verifier prompt.
675
+ ```
676
+ Task({
677
+ subagent_type: "pbr:verifier",
678
+ prompt: <verifier prompt>
679
+ })
680
+
681
+ NOTE: The pbr:verifier subagent type auto-loads the agent definition. Do NOT inline it.
606
682
 
607
- **NOTE**: The `@verifier` agent is defined in `agents/verifier.md`. Do NOT inline it.
683
+ After verifier completes, check for completion marker: `## VERIFICATION COMPLETE`. Read VERIFICATION.md frontmatter for status.
684
+ ```
608
685
 
609
- **Path resolution**: Before constructing the agent prompt, resolve plugin root to its absolute path. Do not pass the variable literally in prompts. Use the resolved absolute path for any pbr-tools.js or template references included in the prompt.
686
+ **Path resolution**: Before constructing the agent prompt, resolve `${PLUGIN_ROOT}` to its absolute path. Do not pass the variable literally in prompts — Task() contexts may not expand it. Use the resolved absolute path for any pbr-tools.js or template references included in the prompt.
610
687
 
611
688
  #### Verifier Prompt Template
612
689
 
613
- Use the same verifier prompt template as defined in `/pbr:review`: read `skills/review/templates/verifier-prompt.md.tmpl` and fill in its placeholders with the phase's PLAN.md must_haves and SUMMARY.md file paths. This avoids maintaining duplicate verifier prompts across skills.
690
+ Use the same verifier prompt template as defined in `/pbr:verify-work`: read `${PLUGIN_ROOT}/skills/review/templates/verifier-prompt.md.tmpl` and fill in its placeholders with the phase's PLAN.md must_haves and SUMMARY.md file paths. This avoids maintaining duplicate verifier prompts across skills.
691
+
692
+ **Prepend this block to the verifier prompt before sending:**
693
+ ```
694
+ <files_to_read>
695
+ CRITICAL (no hook): Read these files BEFORE any other action:
696
+ 1. .planning/phases/{NN}-{slug}/PLAN-*.md — must-haves to verify against
697
+ 2. .planning/phases/{NN}-{slug}/SUMMARY-*.md — executor build summaries
698
+ 3. .planning/phases/{NN}-{slug}/VERIFICATION.md — prior verification results (if exists)
699
+ </files_to_read>
700
+ ```
614
701
 
615
702
  After the verifier returns, read the VERIFICATION.md frontmatter and display the results:
616
703
 
617
- - If status is `passed`: display `Verifier: {X}/{Y} must-haves verified` (where X = `must_haves_passed` and Y = `must_haves_checked`)
618
- - If status is `gaps_found`: display `Verifier found {N} gap(s) — see VERIFICATION.md` (where N = `must_haves_failed`)
704
+ - If status is `passed`: display `✓ Verifier: {X}/{Y} must-haves verified` (where X = `must_haves_passed` and Y = `must_haves_checked`)
705
+ - If status is `gaps_found`: display `⚠ Verifier found {N} gap(s) — see VERIFICATION.md` (where N = `must_haves_failed`)
619
706
 
620
707
  ---
621
708
 
@@ -631,7 +718,7 @@ If `--gaps-only` flag was used AND `features.goal_verification` is `true`:
631
718
  2. Re-run the verifier using the same Step 7 process — this produces a fresh `VERIFICATION.md` that accounts for the gap-closure work
632
719
  3. Read the new verification status for use in determining `final_status` below
633
720
 
634
- This ensures that `/pbr:review` after a `--gaps-only` build sees the updated verification state, not stale gaps from before the fix.
721
+ This ensures that `/pbr:verify-work` after a `--gaps-only` build sees the updated verification state, not stale gaps from before the fix.
635
722
 
636
723
  **8-pre-b. Determine final status based on verification:**
637
724
  - If verification ran and status is `passed`: final_status = "built"
@@ -641,18 +728,39 @@ This ensures that `/pbr:review` after a `--gaps-only` build sees the updated ver
641
728
 
642
729
  **8-pre-c. Codebase map incremental update (conditional):**
643
730
 
731
+ **CRITICAL (no hook): Run codebase map update if conditions are met. Do NOT skip this step.**
732
+
644
733
  Only run if ALL of these are true:
645
- - `.planning/codebase/` directory exists (project was previously scanned with `/pbr:scan`)
734
+ - `.planning/codebase/` directory exists (project was previously scanned with `/pbr:map-codebase`)
646
735
  - Build was not aborted
647
736
  - `git diff --name-only {pre_build_commit}..HEAD` shows >5 files changed OR `package.json`/`requirements.txt`/`go.mod`/`Cargo.toml` was modified
648
737
 
649
738
  If triggered:
650
739
  1. Record the pre-build commit SHA at the start of Step 1 (before any executors run) for comparison
651
740
  2. Run `git diff --name-only {pre_build_commit}..HEAD` to get the list of changed files
652
- 3. Display to the user: `Spawning codebase mapper (incremental update)...`
741
+ 3. Display to the user: `◆ Spawning codebase mapper (incremental update)...`
742
+
743
+ Spawn a lightweight mapper Task():
744
+ ```
745
+ Task({
746
+ subagent_type: "pbr:codebase-mapper",
747
+ model: "haiku",
748
+ prompt: "Incremental codebase map update. These files changed during the Phase {N} build:\n{diff file list}\n\nRead the existing .planning/codebase/ documents. Update ONLY the sections affected by these changes. Do NOT rewrite entire documents — make targeted updates. If a new dependency was added, update STACK.md. If new directories/modules were created, update STRUCTURE.md. If new patterns were introduced, update CONVENTIONS.md. Write updated files to .planning/codebase/."
749
+ })
750
+ ```
751
+ 4. Do NOT block on this — use `run_in_background: true` and continue to Step 8a. Report completion in Step 8f if it finishes in time.
752
+
753
+ **8-pre-d. Write phase manifest (on successful completion):**
754
+
755
+ If all plans completed successfully (final_status is "built" or "built (unverified)"), write `.phase-manifest.json` to the phase directory. This manifest aggregates all plan commits for the undo skill's `--phase NN` mode:
756
+
757
+ ```bash
758
+ node ${PLUGIN_ROOT}/scripts/pbr-tools.js phase write-manifest {phase-slug}
759
+ ```
653
760
 
654
- Invoke `@codebase-mapper` with: "Incremental codebase map update. These files changed during the Phase {N} build:\n{diff file list}\n\nRead the existing .planning/codebase/ documents. Update ONLY the sections affected by these changes. Do NOT rewrite entire documents — make targeted updates. If a new dependency was added, update STACK.md. If new directories/modules were created, update STRUCTURE.md. If new patterns were introduced, update CONVENTIONS.md. Write updated files to .planning/codebase/."
655
- 4. Do NOT block on this — run in background and continue to Step 8a. Report completion in Step 8f if it finishes in time.
761
+ The manifest collects commit hashes from each plan's SUMMARY.md and stores them as a single artifact that `completePhase()` uses for rollback support. If the command fails, log a warning but do not block completion.
762
+
763
+ **CRITICAL (no hook): Update ROADMAP.md progress table NOW. Do NOT skip this step. (roadmap-sync warns)**
656
764
 
657
765
  **8a. Update ROADMAP.md Progress table** (REQUIRED — do this BEFORE updating STATE.md):
658
766
 
@@ -670,11 +778,20 @@ These return `{ success, old_status, new_status }` or `{ success, old_plans, new
670
778
  5. Update the `Status` column to the final_status determined in Step 8-pre
671
779
  6. Save the file — do NOT skip this step
672
780
 
673
- **8b. Update STATE.md:**
674
- - Phase status: {final_status from Step 8-pre}
675
- - Plan completion count
676
- - Last activity timestamp
677
- - Progress bar
781
+ **CRITICAL (no hook): Update STATE.md NOW with phase completion status. Do NOT skip this step. (state-sync warns)**
782
+
783
+ **8b. Update STATE.md (CRITICAL (no hook) — update BOTH frontmatter AND body):**
784
+ - Frontmatter: `status`, `plans_complete`, `last_activity`, `progress_percent`, `last_command`
785
+ - Body `## Current Position`: `Phase:` line, `Plan:` line, `Status:` line, `Last activity:` line, `Progress:` bar
786
+ - These MUST stay in sync — the status line reads frontmatter, humans read the body
787
+
788
+ **Completion check:** Before proceeding to 8c, confirm ALL of:
789
+ - [ ] STATE.md frontmatter fields set: status, plans_complete, last_activity, progress_percent, last_command
790
+ - [ ] STATE.md body ## Current Position updated: Phase, Status, Last activity, Progress bar
791
+ - [ ] Frontmatter and body are consistent (same status value in both)
792
+
793
+ To verify programmatically: `node ${PLUGIN_ROOT}/scripts/pbr-tools.js step-verify build step-8b '["STATE.md updated","ROADMAP.md updated","commit made"]'`
794
+ If any item fails, investigate before marking phase complete.
678
795
 
679
796
  **8c. Commit planning docs (if configured):**
680
797
  Reference: `skills/shared/commit-planning-docs.md` for the standard commit pattern.
@@ -686,7 +803,7 @@ If `planning.commit_docs` is `true`:
686
803
  If `git.branching` is `phase`:
687
804
  - All work was done on the phase branch (created in Step 1)
688
805
  - Squash merge to main: `git checkout main && git merge --squash plan-build-run/phase-{NN}-{name}`
689
- - Use the yes-no pattern from `skills/shared/gate-prompts.md`:
806
+ - Use AskUserQuestion (pattern: yes-no from `skills/shared/gate-prompts.md`):
690
807
  question: "Phase {N} complete on branch `plan-build-run/phase-{NN}-{name}`. Squash merge to main?"
691
808
  header: "Merge?"
692
809
  options:
@@ -695,6 +812,31 @@ If `git.branching` is `phase`:
695
812
  - If "Yes, merge": complete the merge and delete the phase branch
696
813
  - If "No, keep" or "Other": leave the branch as-is and inform the user
697
814
 
815
+ **8d-ii. PR Creation (when branching enabled):**
816
+
817
+ If `config.git.branching` is `phase` or `milestone` AND phase verification passed:
818
+
819
+ 1. Push the phase branch: `git push -u origin {branch-name}`
820
+ 2. If `config.git.auto_pr` is `true`:
821
+ - Run: `gh pr create --title "feat({phase-scope}): {phase-slug}" --body "$(cat <<'EOF'
822
+ ## Phase {N}: {phase name}
823
+
824
+ **Goal**: {phase goal from ROADMAP.md}
825
+
826
+ ### Key Files
827
+ {key_files from SUMMARY.md, bulleted}
828
+
829
+ ### Verification
830
+ {pass/fail status from VERIFICATION.md}
831
+
832
+ ---
833
+ Generated by Plan-Build-Run
834
+ EOF
835
+ )"`
836
+ 3. If `config.git.auto_pr` is `false`:
837
+ - Use AskUserQuestion to ask: "Phase branch pushed. Create a PR?"
838
+ - Options: Yes (create PR as above) / No / Later (skip)
839
+
698
840
  **8e. Auto-advance / auto-continue (conditional):**
699
841
 
700
842
  **If `features.auto_advance` is `true` AND `mode` is `autonomous`:**
@@ -702,26 +844,54 @@ Chain to the next skill directly within this session. This eliminates manual pha
702
844
 
703
845
  | Build Result | Next Action | How |
704
846
  |-------------|-------------|-----|
705
- | Verification passed, more phases | Plan next phase | Chain to `/pbr:plan {N+1}` |
706
- | Verification skipped | Run review | Chain to `/pbr:review {N}` |
707
- | Verification gaps found | **HARD STOP** — present gaps to user | Do NOT auto-advance past failures |
708
- | Last phase complete | **HARD STOP** — milestone boundary | Suggest `/pbr:milestone audit` |
709
- | Build errors occurred | **HARD STOP** — errors need human review | Do NOT auto-advance past errors |
847
+ | Verification passed, more phases | Plan next phase | `Skill({ skill: "pbr:plan", args: "{N+1}" })` |
848
+ | Verification skipped | Run review | `Skill({ skill: "pbr:review", args: "{N}" })` |
849
+ | Verification gaps found | **HARD STOP** — present gaps to user | If `auto_continue` also true: write `.planning/.auto-next` with `/pbr:verify-work {N}` before stopping. Do NOT auto-advance past failures. |
850
+ | Last phase in current milestone | **HARD STOP** — milestone boundary | If `auto_continue` also true: write `.planning/.auto-next` with `/pbr:complete-milestone` before stopping. Suggest `/pbr:audit-milestone`. Explain: "auto_advance pauses at milestone boundaries — your sign-off is required." |
851
+ | Build errors occurred | **HARD STOP** — errors need human review | If `auto_continue` also true: write `.planning/.auto-next` with `/pbr:execute-phase {N}` before stopping. Do NOT auto-advance past errors. |
710
852
 
711
- After invoking the chained skill, it runs within the same session. When it completes, the chained skill may itself chain further (review->plan, plan->build) if auto_advance remains true. This creates the full cycle: build->review->plan->build->...
853
+ After invoking the chained skill, it runs within the same session. When it completes, the chained skill may itself chain further (reviewplan, planbuild) if auto_advance remains true. This creates the full cycle: buildreviewplanbuild→...
712
854
 
713
855
  **Else if `features.auto_continue` is `true`:**
714
- Write `.planning/.auto-next` containing the next logical command (e.g., `/pbr:plan {N+1}` or `/pbr:review {N}`)
856
+ Write `.planning/.auto-next` containing the next logical command (e.g., `/pbr:plan-phase {N+1}` or `/pbr:verify-work {N}`)
715
857
  - This file signals to the user or to wrapper scripts that the next step is ready
716
858
 
859
+ **Completion check:** Before proceeding to 8f, confirm ALL of:
860
+ - [ ] auto_advance OR auto_continue evaluated (one path taken)
861
+ - [ ] If auto_continue: `.auto-next` file written with correct next command
862
+ - [ ] Pending todos evaluated (Step 8e-ii)
863
+ - [ ] Clearly-satisfied todos auto-closed via `pbr-tools.js todo done`
864
+
865
+ To verify programmatically: `node ${PLUGIN_ROOT}/scripts/pbr-tools.js step-verify build step-8e '["STATE.md updated","commit made"]'`
866
+ If any item fails, investigate before closing the session.
867
+
868
+ **8e-ii. Check Pending Todos:**
869
+
870
+ **CRITICAL (no hook): Check pending todos after build. Do NOT skip this step.**
871
+
872
+ After completing the build, check if any pending todos are now satisfied:
873
+
874
+ 1. Check if `.planning/todos/pending/` exists and contains files
875
+ 2. If no pending todos: skip to 8f
876
+ 3. If pending todos exist:
877
+ a. Read the title and description from each pending todo's YAML frontmatter
878
+ b. Compare each todo against the phase work (plans executed, files changed, features built)
879
+ c. If a todo is **clearly satisfied**: move it to `.planning/todos/done/`, update `status: done`, add `completed: {YYYY-MM-DD}`, delete from `pending/` via Bash `rm`. Display: `✓ Auto-closed todo {NNN}: {title} (satisfied by Phase {N} build)`
880
+ d. If **partially related**: display `ℹ Related pending todo {NNN}: {title} — may be partially addressed`
881
+ e. If unrelated: skip silently
882
+
883
+ Only auto-close when the match is unambiguous. When in doubt, leave it open.
884
+
717
885
  **8f. Present completion summary:**
718
886
 
719
- Use the branded output templates from `references/ui-formatting.md`. Route based on status:
887
+ Use the branded output templates from `references/ui-brand.md`. Route based on status:
720
888
 
721
889
  | Status | Template |
722
890
  |--------|----------|
723
- | `passed` + more phases | "Phase Complete" template |
724
- | `passed` + last phase | "Milestone Complete" template |
891
+ | `passed` + more phases in current milestone | "Phase Complete" template |
892
+ | `passed` + last phase in current milestone | "Milestone Complete" template |
893
+
894
+ **Milestone boundary detection:** To determine "last phase in current milestone", read ROADMAP.md and find the `## Milestone:` section containing the current phase. Check its `**Phases:** start - end` range. If the current phase equals `end`, this is the last phase in the milestone. For projects with a single milestone or no explicit milestone sections, "last phase in ROADMAP" is equivalent.
725
895
  | `gaps_found` | "Gaps Found" template |
726
896
 
727
897
  Before the branded banner, include the results table:
@@ -743,100 +913,13 @@ Total files modified: {count}
743
913
  Deviations: {count}
744
914
  ```
745
915
 
746
- Then present the appropriate branded banner:
916
+ Then present the appropriate branded banner from Read `references/ui-brand.md` § "Completion Summary Templates":
747
917
 
748
- **If `passed` + more phases:**
749
- ```
750
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
751
- PLAN-BUILD-RUN ► PHASE {N} COMPLETE
752
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
753
-
754
- **Phase {N}: {Name}**
918
+ - **If `passed` + more phases:** Use the "Phase Complete" template. Fill in phase number, name, plan count, and next phase details.
919
+ - **If `passed` + last phase:** Use the "Milestone Complete" template. Fill in phase count.
920
+ - **If `gaps_found`:** Use the "Gaps Found" template. Fill in phase number, name, score, and gap summaries from VERIFICATION.md.
755
921
 
756
- {X} plans executed
757
- Goal verified
758
-
759
- ---
760
-
761
- ## Next Up
762
-
763
- **Phase {N+1}: {Name}** — {Goal from ROADMAP.md}
764
-
765
- `/pbr:plan {N+1}`
766
-
767
- `/clear` first for a fresh context window
768
-
769
- ---
770
-
771
- **Also available:**
772
- - `/pbr:review {N}` — manual acceptance testing before continuing
773
- - `/pbr:discuss {N+1}` — talk through the next phase before planning
774
- - `/pbr:status` — see full project status
775
-
776
- ---
777
- ```
778
-
779
- **If `passed` + last phase:**
780
- ```
781
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
782
- PLAN-BUILD-RUN ► MILESTONE COMPLETE
783
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
784
-
785
- {N} phases completed
786
- All phase goals verified
787
-
788
- ---
789
-
790
- ## Next Up
791
-
792
- **Audit milestone** — verify requirements, cross-phase integration, E2E flows
793
-
794
- `/pbr:milestone audit`
795
-
796
- `/clear` first for a fresh context window
797
-
798
- ---
799
-
800
- **Also available:**
801
- - `/pbr:review` — manual acceptance testing
802
- - `/pbr:milestone complete` — skip audit, archive directly
803
-
804
- ---
805
- ```
806
-
807
- **If `gaps_found`:**
808
- ```
809
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
810
- PLAN-BUILD-RUN ► PHASE {N} GAPS FOUND
811
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
812
-
813
- **Phase {N}: {Name}**
814
-
815
- Score: {X}/{Y} must-haves verified
816
- Report: .planning/phases/{phase_dir}/VERIFICATION.md
817
-
818
- ### What's Missing
819
-
820
- {Extract gap summaries from VERIFICATION.md}
821
-
822
- ---
823
-
824
- ## Next Up
825
-
826
- **Plan gap closure** — create additional plans to complete the phase
827
-
828
- `/pbr:plan {N} --gaps`
829
-
830
- `/clear` first for a fresh context window
831
-
832
- ---
833
-
834
- **Also available:**
835
- - `cat .planning/phases/{phase_dir}/VERIFICATION.md` — see full report
836
- - `/pbr:review {N}` — manual testing before planning
837
-
838
- ---
839
- ```
922
+ Include `<sub>/clear first → fresh context window</sub>` inside the Next Up routing block of the completion template.
840
923
 
841
924
  **8g. Display USER-SETUP.md (conditional):**
842
925
 
@@ -857,9 +940,11 @@ This ensures the user sees setup requirements prominently instead of buried in S
857
940
  ## Error Handling
858
941
 
859
942
  ### Executor agent timeout
860
- If an executor agent doesn't return within a reasonable time, display:
943
+ If a Task() doesn't return within a reasonable time, display:
861
944
  ```
862
- ERROR
945
+ ╔══════════════════════════════════════════════════════════════╗
946
+ ║ ERROR ║
947
+ ╚══════════════════════════════════════════════════════════════╝
863
948
 
864
949
  Executor agent timed out for Plan {id}.
865
950
 
@@ -872,7 +957,7 @@ For commit conventions and git workflow details, see `references/git-integration
872
957
  ### Git lock conflicts
873
958
  If multiple parallel executors create git lock conflicts:
874
959
  - The executor agent handles retries internally (see executor agent definition)
875
- - If lock conflicts persist, display: "Git lock conflicts detected with parallel execution. Consider reducing max_concurrent_agents to 1."
960
+ - If lock conflicts persist, display: `⚠ Git lock conflicts detected with parallel execution. Consider reducing max_concurrent_agents to 1.`
876
961
 
877
962
  ### Executor produces unexpected files
878
963
  If SUMMARY.md shows files not listed in the plan's `files_modified`:
@@ -887,7 +972,7 @@ If `git.branching` is `phase` but we're not on the phase branch:
887
972
 
888
973
  ---
889
974
 
890
- ## Files Created/Modified by /pbr:build
975
+ ## Files Created/Modified by /pbr:execute-phase
891
976
 
892
977
  | File | Purpose | When |
893
978
  |------|---------|------|
@@ -896,7 +981,13 @@ If `git.branching` is `phase` but we're not on the phase branch:
896
981
  | `.planning/phases/{NN}-{slug}/USER-SETUP.md` | External setup requirements | Step 6 (executor, if needed) |
897
982
  | `.planning/phases/{NN}-{slug}/VERIFICATION.md` | Phase verification report | Step 7 |
898
983
  | `.planning/codebase/*.md` | Incremental codebase map updates | Step 8-pre-c (if codebase/ exists) |
899
- | `.planning/ROADMAP.md` | Plans Complete + Status -> `built` or `partial` | Step 8a |
984
+ | `.planning/ROADMAP.md` | Plans Complete + Status `built` or `partial` | Step 8a |
900
985
  | `.planning/STATE.md` | Updated progress | Steps 6f, 8b |
901
986
  | `.planning/.auto-next` | Next command signal (if auto_continue enabled) | Step 8e |
902
987
  | Project source files | Actual code | Step 6 (executors) |
988
+
989
+ ---
990
+
991
+ ## Cleanup
992
+
993
+ Delete `.planning/.active-skill` if it exists. This must happen on all paths (success, partial, and failure) before reporting results.