@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.
- package/CHANGELOG.md +51 -49
- package/CLAUDE.md +48 -32
- package/LICENSE +2 -1
- package/README.md +771 -87
- package/agents/pbr-audit.md +266 -0
- package/agents/pbr-codebase-mapper.md +236 -0
- package/agents/pbr-debugger.md +312 -0
- package/agents/pbr-dev-sync.md +220 -0
- package/agents/pbr-executor.md +559 -0
- package/agents/pbr-general.md +191 -0
- package/agents/pbr-integration-checker.md +237 -0
- package/agents/pbr-nyquist-auditor.md +252 -0
- package/agents/pbr-plan-checker.md +312 -0
- package/agents/pbr-planner.md +495 -0
- package/agents/pbr-researcher.md +314 -0
- package/agents/pbr-roadmapper.md +346 -0
- package/agents/pbr-synthesizer.md +271 -0
- package/agents/pbr-verifier.md +495 -0
- package/bin/install.js +2752 -0
- package/commands/pbr/add-phase.md +75 -0
- package/commands/pbr/add-todo.md +8 -0
- package/commands/pbr/audit-milestone.md +8 -0
- package/commands/pbr/audit.md +5 -0
- package/commands/pbr/check-todos.md +8 -0
- package/commands/pbr/complete-milestone.md +8 -0
- package/commands/pbr/config.md +5 -0
- package/commands/pbr/continue.md +5 -0
- package/commands/pbr/dashboard.md +5 -0
- package/commands/pbr/debug.md +5 -0
- package/commands/pbr/discuss-phase.md +6 -0
- package/commands/pbr/do.md +5 -0
- package/commands/pbr/execute-phase.md +6 -0
- package/commands/pbr/explore.md +5 -0
- package/commands/pbr/health.md +5 -0
- package/commands/pbr/help.md +5 -0
- package/commands/pbr/import.md +5 -0
- package/commands/pbr/insert-phase.md +65 -0
- package/commands/pbr/join-discord.md +11 -0
- package/commands/pbr/list-phase-assumptions.md +69 -0
- package/commands/pbr/map-codebase.md +6 -0
- package/commands/pbr/new-milestone.md +8 -0
- package/commands/pbr/new-project.md +6 -0
- package/commands/pbr/note.md +5 -0
- package/commands/pbr/pause-work.md +5 -0
- package/commands/pbr/plan-milestone-gaps.md +7 -0
- package/commands/pbr/plan-phase.md +6 -0
- package/commands/pbr/progress.md +6 -0
- package/commands/pbr/quick.md +5 -0
- package/commands/pbr/reapply-patches.md +40 -0
- package/commands/pbr/remove-phase.md +66 -0
- package/commands/pbr/research-phase.md +59 -0
- package/commands/pbr/resume-work.md +5 -0
- package/commands/pbr/set-profile.md +6 -0
- package/commands/pbr/settings.md +5 -0
- package/commands/pbr/setup.md +5 -0
- package/commands/pbr/statusline.md +5 -0
- package/commands/pbr/test.md +5 -0
- package/commands/pbr/undo.md +5 -0
- package/commands/pbr/update.md +37 -0
- package/commands/pbr/verify-work.md +6 -0
- package/dashboard/bin/cli.cjs +85 -0
- package/dashboard/eslint.config.js +37 -0
- package/dashboard/index.html +20 -0
- package/dashboard/package.json +28 -23
- package/dashboard/server/index.js +134 -0
- package/dashboard/server/lib/frontmatter.js +92 -0
- package/dashboard/server/middleware/static.js +35 -0
- package/dashboard/server/package.json +16 -0
- package/dashboard/server/routes/agents.js +213 -0
- package/dashboard/server/routes/config.js +64 -0
- package/dashboard/server/routes/health.js +21 -0
- package/dashboard/server/routes/memory.js +107 -0
- package/dashboard/server/routes/planning.js +234 -0
- package/dashboard/server/routes/projects.js +36 -0
- package/dashboard/server/routes/requirements.js +40 -0
- package/dashboard/server/routes/roadmap.js +69 -0
- package/dashboard/server/routes/status.js +25 -0
- package/dashboard/server/routes/telemetry.js +171 -0
- package/dashboard/server/services/file-watcher.js +105 -0
- package/dashboard/server/services/planning-reader.js +679 -0
- package/dashboard/server/test/cli.test.js +34 -0
- package/dashboard/server/test/frontmatter.test.js +104 -0
- package/dashboard/server/test/isolation.test.js +32 -0
- package/dashboard/server/test/planning-reader.test.js +151 -0
- package/dashboard/server/test/routes.test.js +91 -0
- package/dashboard/server/test/ws.test.js +81 -0
- package/dashboard/server/ws.js +96 -0
- package/dashboard/src/App.jsx +147 -0
- package/dashboard/src/components/charts/BudgetBars.jsx +42 -0
- package/dashboard/src/components/charts/ContextRadar.jsx +34 -0
- package/dashboard/src/components/charts/PhaseDonut.jsx +66 -0
- package/dashboard/src/components/charts/SuccessTrend.jsx +45 -0
- package/dashboard/src/components/charts/TokenChart.jsx +55 -0
- package/dashboard/src/components/charts/index.js +5 -0
- package/dashboard/src/components/config/CfgSection.jsx +93 -0
- package/dashboard/src/components/layout/Header.jsx +89 -0
- package/dashboard/src/components/layout/ProjectSwitcher.jsx +160 -0
- package/dashboard/src/components/layout/Sidebar.jsx +161 -0
- package/dashboard/src/components/ui/AutoModeBanner.jsx +138 -0
- package/dashboard/src/components/ui/BackButton.jsx +27 -0
- package/dashboard/src/components/ui/Badge.jsx +27 -0
- package/dashboard/src/components/ui/Card.jsx +23 -0
- package/dashboard/src/components/ui/ChartTooltip.jsx +48 -0
- package/dashboard/src/components/ui/CheckpointBox.jsx +110 -0
- package/dashboard/src/components/ui/CodeBlock.jsx +27 -0
- package/dashboard/src/components/ui/ConfidenceBadge.jsx +20 -0
- package/dashboard/src/components/ui/ConfirmModal.jsx +161 -0
- package/dashboard/src/components/ui/ConnectionBanner.jsx +60 -0
- package/dashboard/src/components/ui/ErrorBoundary.jsx +106 -0
- package/dashboard/src/components/ui/ErrorBox.jsx +107 -0
- package/dashboard/src/components/ui/KeyValue.jsx +33 -0
- package/dashboard/src/components/ui/LoadingSkeleton.jsx +84 -0
- package/dashboard/src/components/ui/MetricCard.jsx +58 -0
- package/dashboard/src/components/ui/NextUpBlock.jsx +92 -0
- package/dashboard/src/components/ui/NumberInput.jsx +44 -0
- package/dashboard/src/components/ui/PBRBanner.jsx +47 -0
- package/dashboard/src/components/ui/PipelineView.jsx +130 -0
- package/dashboard/src/components/ui/ProgressBar.jsx +28 -0
- package/dashboard/src/components/ui/ProgressDisplay.jsx +47 -0
- package/dashboard/src/components/ui/QualityGateBadge.jsx +15 -0
- package/dashboard/src/components/ui/SectionTitle.jsx +35 -0
- package/dashboard/src/components/ui/SelectInput.jsx +45 -0
- package/dashboard/src/components/ui/StatusDot.jsx +51 -0
- package/dashboard/src/components/ui/StatusSymbol.jsx +49 -0
- package/dashboard/src/components/ui/TabBar.jsx +41 -0
- package/dashboard/src/components/ui/TextInput.jsx +42 -0
- package/dashboard/src/components/ui/Toast.jsx +117 -0
- package/dashboard/src/components/ui/Toggle.jsx +70 -0
- package/dashboard/src/components/ui/index.js +29 -0
- package/dashboard/src/hooks/useDocumentTitle.js +16 -0
- package/dashboard/src/hooks/useFetch.js +50 -0
- package/dashboard/src/hooks/useToast.jsx +43 -0
- package/dashboard/src/hooks/useWebSocket.js +103 -0
- package/dashboard/src/lib/api.js +112 -0
- package/dashboard/src/lib/configSchema.js +189 -0
- package/dashboard/src/lib/constants.js +16 -0
- package/dashboard/src/main.jsx +15 -0
- package/dashboard/src/pages/AgentsPage.jsx +191 -0
- package/dashboard/src/pages/ConfigPage.jsx +298 -0
- package/dashboard/src/pages/HooksPage.jsx +412 -0
- package/dashboard/src/pages/LiveFeed.jsx +274 -0
- package/dashboard/src/pages/MemoryPage.jsx +107 -0
- package/dashboard/src/pages/Overview.jsx +360 -0
- package/dashboard/src/pages/PhaseDetailView.jsx +216 -0
- package/dashboard/src/pages/PlanningPage.jsx +181 -0
- package/dashboard/src/pages/RoadmapPage.jsx +251 -0
- package/dashboard/src/pages/Telemetry.jsx +113 -0
- package/dashboard/src/pages/planning/DecisionsTab.jsx +153 -0
- package/dashboard/src/pages/planning/FilesTab.jsx +420 -0
- package/dashboard/src/pages/planning/MilestoneDetail.jsx +319 -0
- package/dashboard/src/pages/planning/MilestonesTab.jsx +151 -0
- package/dashboard/src/pages/planning/NotesTab.jsx +251 -0
- package/dashboard/src/pages/planning/PhasesTab.jsx +218 -0
- package/dashboard/src/pages/planning/QuickTab.jsx +50 -0
- package/dashboard/src/pages/planning/ResearchTab.jsx +103 -0
- package/dashboard/src/pages/planning/TodosTab.jsx +297 -0
- package/dashboard/src/theme/ThemeProvider.jsx +38 -0
- package/dashboard/src/theme/tokens.js +17 -0
- package/dashboard/tests/components/ConfirmModal.test.jsx +179 -0
- package/dashboard/tests/components/ConnectionBanner.test.jsx +37 -0
- package/dashboard/tests/components/ErrorBoundary.test.jsx +59 -0
- package/dashboard/tests/components/LoadingSkeleton.test.jsx +46 -0
- package/dashboard/tests/components/ToastContainer.test.jsx +47 -0
- package/dashboard/tests/components/Toggle.test.jsx +61 -0
- package/dashboard/tests/hooks/useFetch.test.jsx +77 -0
- package/dashboard/tests/hooks/useToast.test.jsx +78 -0
- package/dashboard/tests/hooks/useWebSocket.test.jsx +128 -0
- package/dashboard/tests/pages/ConfigPage.test.jsx +199 -0
- package/dashboard/tests/pages/PlanningPage.test.jsx +119 -0
- package/dashboard/tests/pages/planning/FilesTab.test.jsx +198 -0
- package/dashboard/tests/pages/planning/NotesTab.test.jsx +178 -0
- package/dashboard/tests/pages/planning/TodosTab.test.jsx +188 -0
- package/dashboard/tests/performance.test.jsx +46 -0
- package/dashboard/tests/routes/config.test.js +98 -0
- package/dashboard/tests/routes/health.test.js +40 -0
- package/dashboard/tests/routes/planning.test.js +112 -0
- package/dashboard/tests/routes/roadmap.test.js +91 -0
- package/dashboard/tests/routes/status.test.js +131 -0
- package/dashboard/tests/server/planning-reader.test.js +153 -0
- package/dashboard/tests/setup.js +7 -0
- package/dashboard/vite.config.js +41 -0
- package/hooks/dist/auto-continue.js +201 -0
- package/hooks/dist/block-skill-self-read.js +77 -0
- package/hooks/dist/branding-audit.js +232 -0
- package/hooks/dist/check-agent-state-write.js +63 -0
- package/hooks/dist/check-config-change.js +188 -0
- package/hooks/dist/check-dangerous-commands.js +184 -0
- package/hooks/dist/check-doc-sprawl.js +102 -0
- package/hooks/dist/check-phase-boundary.js +190 -0
- package/hooks/dist/check-plan-format.js +654 -0
- package/hooks/dist/check-roadmap-sync.js +491 -0
- package/hooks/dist/check-skill-workflow.js +353 -0
- package/hooks/dist/check-state-sync.js +612 -0
- package/hooks/dist/check-subagent-output.js +754 -0
- package/hooks/dist/check-summary-gate.js +198 -0
- package/hooks/dist/context-bridge.js +342 -0
- package/hooks/dist/context-budget-check.js +441 -0
- package/hooks/dist/enforce-pbr-workflow.js +277 -0
- package/hooks/dist/event-handler.js +217 -0
- package/hooks/dist/event-logger.js +92 -0
- package/hooks/dist/hook-logger.js +80 -0
- package/hooks/dist/hook-server-client.js +341 -0
- package/hooks/dist/hook-server.js +336 -0
- package/hooks/dist/hooks-schema.json +85 -0
- package/hooks/dist/hooks.json +288 -0
- package/hooks/dist/instructions-loaded.js +107 -0
- package/hooks/dist/intercept-plan-mode.js +48 -0
- package/hooks/dist/log-notification.js +87 -0
- package/hooks/dist/log-subagent.js +303 -0
- package/hooks/dist/log-tool-failure.js +140 -0
- package/hooks/dist/milestone-learnings.js +290 -0
- package/hooks/dist/post-bash-triage.js +151 -0
- package/hooks/dist/post-write-dispatch.js +227 -0
- package/hooks/dist/post-write-quality.js +207 -0
- package/hooks/dist/pre-bash-dispatch.js +137 -0
- package/hooks/dist/pre-write-dispatch.js +156 -0
- package/hooks/dist/progress-tracker.js +742 -0
- package/hooks/dist/prompt-routing.js +152 -0
- package/hooks/dist/run-hook.js +144 -0
- package/hooks/dist/session-cleanup.js +455 -0
- package/hooks/dist/session-tracker.js +78 -0
- package/hooks/dist/status-line.js +471 -0
- package/hooks/dist/suggest-compact.js +220 -0
- package/hooks/dist/sync-context-to-claude.js +100 -0
- package/hooks/dist/task-completed.js +167 -0
- package/hooks/dist/track-context-budget.js +317 -0
- package/hooks/dist/validate-commit.js +265 -0
- package/hooks/dist/validate-plugin-structure.js +193 -0
- package/hooks/dist/validate-skill-args.js +219 -0
- package/hooks/dist/validate-task.js +256 -0
- package/hooks/dist/worktree-create.js +144 -0
- package/hooks/dist/worktree-remove.js +147 -0
- package/package.json +53 -40
- package/plan-build-run/bin/config-schema.json +406 -0
- package/plan-build-run/bin/dashboard-launch.cjs +114 -0
- package/plan-build-run/bin/event-logger.cjs +92 -0
- package/plan-build-run/bin/lib/alternatives.cjs +198 -0
- package/plan-build-run/bin/lib/build.cjs +717 -0
- package/plan-build-run/bin/lib/circuit-state.cjs +133 -0
- package/plan-build-run/bin/lib/commands.cjs +482 -0
- package/plan-build-run/bin/lib/config.cjs +681 -0
- package/plan-build-run/bin/lib/context.cjs +216 -0
- package/plan-build-run/bin/lib/core.cjs +1548 -0
- package/plan-build-run/bin/lib/frontmatter.cjs +299 -0
- package/plan-build-run/bin/lib/gates/advisories.cjs +129 -0
- package/plan-build-run/bin/lib/gates/build-dependency.cjs +100 -0
- package/plan-build-run/bin/lib/gates/build-executor.cjs +79 -0
- package/plan-build-run/bin/lib/gates/doc-existence.cjs +46 -0
- package/plan-build-run/bin/lib/gates/helpers.cjs +74 -0
- package/plan-build-run/bin/lib/gates/milestone-complete.cjs +120 -0
- package/plan-build-run/bin/lib/gates/plan-executor.cjs +36 -0
- package/plan-build-run/bin/lib/gates/quick-executor.cjs +76 -0
- package/plan-build-run/bin/lib/gates/review-planner.cjs +61 -0
- package/plan-build-run/bin/lib/gates/review-verifier.cjs +69 -0
- package/plan-build-run/bin/lib/history.cjs +147 -0
- package/plan-build-run/bin/lib/init.cjs +304 -0
- package/plan-build-run/bin/lib/learnings.cjs +312 -0
- package/plan-build-run/bin/lib/local-llm/health.cjs +12 -0
- package/plan-build-run/bin/lib/local-llm/index.cjs +89 -0
- package/plan-build-run/bin/lib/local-llm/metrics.cjs +20 -0
- package/plan-build-run/bin/lib/local-llm/operations/classify-artifact.cjs +4 -0
- package/plan-build-run/bin/lib/local-llm/operations/classify-commit.cjs +4 -0
- package/plan-build-run/bin/lib/local-llm/operations/classify-error.cjs +4 -0
- package/plan-build-run/bin/lib/local-llm/operations/classify-file-intent.cjs +4 -0
- package/plan-build-run/bin/lib/local-llm/operations/triage-test-output.cjs +12 -0
- package/plan-build-run/bin/lib/local-llm/operations/validate-task.cjs +4 -0
- package/plan-build-run/bin/lib/migrate.cjs +248 -0
- package/plan-build-run/bin/lib/milestone.cjs +245 -0
- package/plan-build-run/bin/lib/phase.cjs +1021 -0
- package/plan-build-run/bin/lib/preview.cjs +174 -0
- package/plan-build-run/bin/lib/reference.cjs +234 -0
- package/plan-build-run/bin/lib/roadmap.cjs +909 -0
- package/plan-build-run/bin/lib/skill-section.cjs +98 -0
- package/plan-build-run/bin/lib/spot-check.cjs +116 -0
- package/plan-build-run/bin/lib/state.cjs +641 -0
- package/plan-build-run/bin/lib/step-verify.cjs +149 -0
- package/plan-build-run/bin/lib/template.cjs +222 -0
- package/plan-build-run/bin/lib/todo.cjs +300 -0
- package/plan-build-run/bin/lib/verify.cjs +820 -0
- package/plan-build-run/bin/pbr-tools.cjs +1287 -0
- package/plan-build-run/references/CLAUDE.md +7 -0
- package/plan-build-run/references/agent-contracts.md +324 -0
- package/plan-build-run/references/agent-teams.md +54 -0
- package/plan-build-run/references/behavioral-contexts.md +53 -0
- package/plan-build-run/references/checkpoints.md +776 -0
- package/plan-build-run/references/config-reference.md +363 -0
- package/plan-build-run/references/continuation-format.md +249 -0
- package/plan-build-run/references/debugging/CLAUDE.md +7 -0
- package/plan-build-run/references/decimal-phase-calculation.md +65 -0
- package/plan-build-run/references/git-integration.md +248 -0
- package/plan-build-run/references/git-planning-commit.md +38 -0
- package/plan-build-run/references/model-profile-resolution.md +34 -0
- package/plan-build-run/references/model-profiles.md +92 -0
- package/plan-build-run/references/model-selection.md +53 -0
- package/plan-build-run/references/phase-argument-parsing.md +61 -0
- package/plan-build-run/references/plan-authoring.md +246 -0
- package/plan-build-run/references/plan-format.md +351 -0
- package/plan-build-run/references/planning-config.md +200 -0
- package/plan-build-run/references/questioning.md +162 -0
- package/plan-build-run/references/reading-verification.md +93 -0
- package/plan-build-run/references/stub-patterns.md +160 -0
- package/plan-build-run/references/tdd.md +263 -0
- package/plan-build-run/references/ui-brand.md +187 -0
- package/plan-build-run/references/verification-overrides.md +38 -0
- package/plan-build-run/references/verification-patterns.md +612 -0
- package/plan-build-run/references/wave-execution.md +52 -0
- package/plan-build-run/skills/audit/SKILL.md +348 -0
- package/plan-build-run/skills/begin/SKILL.md +891 -0
- package/{plugins/cursor-pbr → plan-build-run}/skills/begin/templates/PROJECT.md.tmpl +0 -1
- package/{plugins/cursor-pbr → plan-build-run}/skills/begin/templates/REQUIREMENTS.md.tmpl +0 -1
- package/{plugins/cursor-pbr → plan-build-run}/skills/begin/templates/STATE.md.tmpl +1 -3
- package/{plugins/cursor-pbr → plan-build-run}/skills/begin/templates/config.json.tmpl +7 -2
- package/plan-build-run/skills/begin/templates/project-CONTEXT.md.tmpl +19 -0
- package/plan-build-run/skills/begin/templates/researcher-prompt.md.tmpl +47 -0
- package/plan-build-run/skills/begin/templates/roadmap-prompt.md.tmpl +49 -0
- package/plan-build-run/skills/begin/templates/synthesis-prompt.md.tmpl +44 -0
- package/plan-build-run/skills/build/SKILL.md +1007 -0
- package/plan-build-run/skills/build/templates/continuation-prompt.md.tmpl +26 -0
- package/plan-build-run/skills/build/templates/executor-prompt.md.tmpl +70 -0
- package/plan-build-run/skills/build/templates/inline-verifier-prompt.md.tmpl +33 -0
- package/plan-build-run/skills/config/SKILL.md +342 -0
- package/plan-build-run/skills/continue/SKILL.md +190 -0
- package/plan-build-run/skills/dashboard/SKILL.md +12 -0
- package/plan-build-run/skills/debug/SKILL.md +539 -0
- package/plan-build-run/skills/debug/templates/continuation-prompt.md.tmpl +27 -0
- package/plan-build-run/skills/debug/templates/initial-investigation-prompt.md.tmpl +34 -0
- package/plan-build-run/skills/discuss/SKILL.md +440 -0
- package/{plugins/cursor-pbr → plan-build-run}/skills/discuss/templates/CONTEXT.md.tmpl +1 -2
- package/{plugins/cursor-pbr → plan-build-run}/skills/discuss/templates/decision-categories.md +0 -1
- package/plan-build-run/skills/discuss/templates/project-CONTEXT.md.tmpl +19 -0
- package/plan-build-run/skills/do/SKILL.md +70 -0
- package/plan-build-run/skills/explore/SKILL.md +443 -0
- package/plan-build-run/skills/health/SKILL.md +332 -0
- package/{plugins/cursor-pbr → plan-build-run}/skills/health/templates/check-pattern.md.tmpl +0 -1
- package/{plugins/cursor-pbr → plan-build-run}/skills/health/templates/output-format.md.tmpl +0 -1
- package/plan-build-run/skills/help/SKILL.md +236 -0
- package/plan-build-run/skills/import/SKILL.md +816 -0
- package/plan-build-run/skills/milestone/SKILL.md +659 -0
- package/plan-build-run/skills/milestone/templates/audit-output.md.tmpl +76 -0
- package/{plugins/cursor-pbr → plan-build-run}/skills/milestone/templates/audit-report.md.tmpl +0 -1
- package/plan-build-run/skills/milestone/templates/complete-output.md.tmpl +32 -0
- package/plan-build-run/skills/milestone/templates/edge-cases.md +54 -0
- package/plan-build-run/skills/milestone/templates/gaps-output.md.tmpl +25 -0
- package/plan-build-run/skills/milestone/templates/integration-checker-prompt.md.tmpl +25 -0
- package/plan-build-run/skills/milestone/templates/new-output.md.tmpl +29 -0
- package/{plugins/cursor-pbr → plan-build-run}/skills/milestone/templates/stats-file.md.tmpl +0 -1
- package/plan-build-run/skills/note/SKILL.md +221 -0
- package/plan-build-run/skills/pause/SKILL.md +259 -0
- package/{plugins/cursor-pbr → plan-build-run}/skills/pause/templates/continue-here.md.tmpl +0 -1
- package/plan-build-run/skills/plan/SKILL.md +700 -0
- package/plan-build-run/skills/plan/decimal-phase-calc.md +98 -0
- package/{plugins/cursor-pbr → plan-build-run}/skills/plan/templates/checker-prompt.md.tmpl +0 -1
- package/plan-build-run/skills/plan/templates/completion-output.md.tmpl +27 -0
- package/{plugins/cursor-pbr → plan-build-run}/skills/plan/templates/gap-closure-prompt.md.tmpl +0 -1
- package/{plugins/cursor-pbr → plan-build-run}/skills/plan/templates/planner-prompt.md.tmpl +1 -2
- package/plan-build-run/skills/plan/templates/prompt-partials/phase-project-context.md.tmpl +21 -0
- package/{plugins/cursor-pbr → plan-build-run}/skills/plan/templates/researcher-prompt.md.tmpl +0 -1
- package/{plugins/cursor-pbr → plan-build-run}/skills/plan/templates/revision-prompt.md.tmpl +0 -1
- package/plan-build-run/skills/profile/SKILL.md +173 -0
- package/plan-build-run/skills/quick/SKILL.md +440 -0
- package/plan-build-run/skills/resume/SKILL.md +404 -0
- package/plan-build-run/skills/review/SKILL.md +711 -0
- package/{plugins/cursor-pbr → plan-build-run}/skills/review/templates/debugger-prompt.md.tmpl +0 -1
- package/{plugins/cursor-pbr → plan-build-run}/skills/review/templates/gap-planner-prompt.md.tmpl +0 -1
- package/{plugins/cursor-pbr → plan-build-run}/skills/review/templates/verifier-prompt.md.tmpl +0 -1
- package/plan-build-run/skills/scan/SKILL.md +326 -0
- package/{plugins/cursor-pbr → plan-build-run}/skills/scan/templates/mapper-prompt.md.tmpl +1 -2
- package/plan-build-run/skills/setup/SKILL.md +236 -0
- package/plan-build-run/skills/shared/commit-planning-docs.md +43 -0
- package/plan-build-run/skills/shared/config-loading.md +102 -0
- package/plan-build-run/skills/shared/context-budget.md +92 -0
- package/plan-build-run/skills/shared/context-loader-task.md +93 -0
- package/plan-build-run/skills/shared/digest-select.md +79 -0
- package/plan-build-run/skills/shared/domain-probes.md +125 -0
- package/plan-build-run/skills/shared/error-reporting.md +67 -0
- package/plan-build-run/skills/shared/gate-prompts.md +390 -0
- package/plan-build-run/skills/shared/phase-argument-parsing.md +45 -0
- package/plan-build-run/skills/shared/revision-loop.md +81 -0
- package/plan-build-run/skills/shared/state-update.md +153 -0
- package/plan-build-run/skills/shared/universal-anti-patterns.md +59 -0
- package/plan-build-run/skills/status/SKILL.md +485 -0
- package/plan-build-run/skills/statusline/SKILL.md +151 -0
- package/plan-build-run/skills/test/SKILL.md +212 -0
- package/plan-build-run/skills/todo/SKILL.md +301 -0
- package/plan-build-run/skills/undo/SKILL.md +216 -0
- package/plan-build-run/templates/CLAUDE.md +7 -0
- package/plan-build-run/templates/DEBUG.md +164 -0
- package/plan-build-run/templates/UAT.md +247 -0
- package/plan-build-run/templates/VALIDATION.md +76 -0
- package/plan-build-run/templates/codebase/architecture.md +255 -0
- package/plan-build-run/templates/codebase/concerns.md +310 -0
- package/plan-build-run/templates/codebase/conventions.md +307 -0
- package/plan-build-run/templates/codebase/integrations.md +280 -0
- package/plan-build-run/templates/codebase/stack.md +186 -0
- package/plan-build-run/templates/codebase/structure.md +285 -0
- package/plan-build-run/templates/codebase/testing.md +480 -0
- package/plan-build-run/templates/config.json +37 -0
- package/plan-build-run/templates/context.md +297 -0
- package/plan-build-run/templates/continue-here.md +78 -0
- package/plan-build-run/templates/crud-flow-verification.md +277 -0
- package/plan-build-run/templates/debug-subagent-prompt.md +91 -0
- package/plan-build-run/templates/deferred-items.md +19 -0
- package/plan-build-run/templates/discovery.md +146 -0
- package/plan-build-run/templates/milestone-archive.md +123 -0
- package/plan-build-run/templates/milestone.md +115 -0
- package/plan-build-run/templates/phase-prompt.md +569 -0
- package/plan-build-run/templates/planner-subagent-prompt.md +117 -0
- package/plan-build-run/templates/project.md +184 -0
- package/plan-build-run/templates/requirements.md +231 -0
- package/plan-build-run/templates/research-outputs/ARCHITECTURE.md.tmpl +86 -0
- package/plan-build-run/templates/research-outputs/FEATURES.md.tmpl +77 -0
- package/plan-build-run/templates/research-outputs/PITFALLS.md.tmpl +65 -0
- package/plan-build-run/templates/research-outputs/STACK.md.tmpl +80 -0
- package/plan-build-run/templates/research-project/ARCHITECTURE.md +204 -0
- package/plan-build-run/templates/research-project/FEATURES.md +147 -0
- package/plan-build-run/templates/research-project/PITFALLS.md +200 -0
- package/plan-build-run/templates/research-project/STACK.md +120 -0
- package/plan-build-run/templates/research-project/SUMMARY.md +170 -0
- package/plan-build-run/templates/research.md +552 -0
- package/plan-build-run/templates/retrospective.md +54 -0
- package/plan-build-run/templates/roadmap.md +202 -0
- package/plan-build-run/templates/seed.md +16 -0
- package/plan-build-run/templates/state.md +176 -0
- package/plan-build-run/templates/summary-complex.md +59 -0
- package/plan-build-run/templates/summary-minimal.md +41 -0
- package/plan-build-run/templates/summary-standard.md +48 -0
- package/plan-build-run/templates/summary.md +248 -0
- package/plan-build-run/templates/user-setup.md +311 -0
- package/plan-build-run/templates/verification-report.md +322 -0
- package/plan-build-run/workflows/add-phase.md +111 -0
- package/plan-build-run/workflows/add-todo.md +157 -0
- package/plan-build-run/workflows/audit-milestone.md +241 -0
- package/plan-build-run/workflows/check-todos.md +176 -0
- package/plan-build-run/workflows/complete-milestone.md +644 -0
- package/plan-build-run/workflows/diagnose-issues.md +219 -0
- package/plan-build-run/workflows/discovery-phase.md +289 -0
- package/plan-build-run/workflows/discuss-phase.md +429 -0
- package/plan-build-run/workflows/execute-phase.md +439 -0
- package/plan-build-run/workflows/execute-plan.md +437 -0
- package/plan-build-run/workflows/explore.md +150 -0
- package/plan-build-run/workflows/help.md +470 -0
- package/plan-build-run/workflows/insert-phase.md +129 -0
- package/plan-build-run/workflows/list-phase-assumptions.md +178 -0
- package/plan-build-run/workflows/map-codebase.md +327 -0
- package/plan-build-run/workflows/new-milestone.md +373 -0
- package/plan-build-run/workflows/new-project.md +1009 -0
- package/plan-build-run/workflows/note.md +90 -0
- package/plan-build-run/workflows/pause-work.md +122 -0
- package/plan-build-run/workflows/plan-milestone-gaps.md +256 -0
- package/plan-build-run/workflows/plan-phase.md +376 -0
- package/plan-build-run/workflows/progress.md +431 -0
- package/plan-build-run/workflows/quick.md +230 -0
- package/plan-build-run/workflows/remove-phase.md +154 -0
- package/plan-build-run/workflows/research-phase.md +74 -0
- package/plan-build-run/workflows/resume-project.md +306 -0
- package/plan-build-run/workflows/set-profile.md +80 -0
- package/plan-build-run/workflows/settings.md +145 -0
- package/plan-build-run/workflows/transition.md +539 -0
- package/plan-build-run/workflows/update.md +212 -0
- package/plan-build-run/workflows/verify-phase.md +226 -0
- package/plan-build-run/workflows/verify-work.md +465 -0
- package/plugins/codex-pbr/.codex/config.toml +101 -0
- package/plugins/codex-pbr/AGENTS.md +653 -0
- package/plugins/codex-pbr/README.md +116 -0
- package/plugins/codex-pbr/agents/audit.md +240 -0
- package/plugins/codex-pbr/agents/codebase-mapper.md +225 -0
- package/plugins/codex-pbr/agents/debugger.md +300 -0
- package/plugins/codex-pbr/agents/dev-sync.md +198 -0
- package/plugins/codex-pbr/agents/executor.md +549 -0
- package/plugins/codex-pbr/agents/general.md +151 -0
- package/plugins/codex-pbr/agents/integration-checker.md +230 -0
- package/plugins/codex-pbr/agents/nyquist-auditor.md +244 -0
- package/plugins/codex-pbr/agents/plan-checker.md +306 -0
- package/plugins/codex-pbr/agents/planner.md +464 -0
- package/plugins/codex-pbr/agents/researcher.md +304 -0
- package/plugins/codex-pbr/agents/roadmapper.md +339 -0
- package/plugins/codex-pbr/agents/synthesizer.md +267 -0
- package/plugins/codex-pbr/agents/verifier.md +488 -0
- package/plugins/codex-pbr/commands/add-phase.md +75 -0
- package/plugins/codex-pbr/commands/add-todo.md +8 -0
- package/plugins/codex-pbr/commands/audit-milestone.md +8 -0
- package/plugins/codex-pbr/commands/audit.md +5 -0
- package/plugins/codex-pbr/commands/check-todos.md +8 -0
- package/plugins/codex-pbr/commands/complete-milestone.md +8 -0
- package/plugins/codex-pbr/commands/config.md +5 -0
- package/plugins/codex-pbr/commands/continue.md +5 -0
- package/plugins/codex-pbr/commands/dashboard.md +5 -0
- package/plugins/codex-pbr/commands/debug.md +5 -0
- package/plugins/codex-pbr/commands/discuss-phase.md +6 -0
- package/plugins/codex-pbr/commands/do.md +5 -0
- package/plugins/codex-pbr/commands/execute-phase.md +6 -0
- package/plugins/codex-pbr/commands/explore.md +5 -0
- package/plugins/codex-pbr/commands/health.md +5 -0
- package/plugins/codex-pbr/commands/help.md +5 -0
- package/plugins/codex-pbr/commands/import.md +5 -0
- package/plugins/codex-pbr/commands/insert-phase.md +65 -0
- package/plugins/codex-pbr/commands/join-discord.md +11 -0
- package/plugins/codex-pbr/commands/list-phase-assumptions.md +69 -0
- package/plugins/codex-pbr/commands/map-codebase.md +6 -0
- package/plugins/codex-pbr/commands/new-milestone.md +8 -0
- package/plugins/codex-pbr/commands/new-project.md +6 -0
- package/plugins/codex-pbr/commands/note.md +5 -0
- package/plugins/codex-pbr/commands/pause-work.md +5 -0
- package/plugins/codex-pbr/commands/plan-milestone-gaps.md +7 -0
- package/plugins/codex-pbr/commands/plan-phase.md +6 -0
- package/plugins/codex-pbr/commands/progress.md +6 -0
- package/plugins/codex-pbr/commands/quick.md +5 -0
- package/plugins/codex-pbr/commands/reapply-patches.md +40 -0
- package/plugins/codex-pbr/commands/remove-phase.md +66 -0
- package/plugins/codex-pbr/commands/research-phase.md +59 -0
- package/plugins/codex-pbr/commands/resume-work.md +5 -0
- package/plugins/codex-pbr/commands/set-profile.md +6 -0
- package/plugins/codex-pbr/commands/settings.md +5 -0
- package/plugins/codex-pbr/commands/setup.md +5 -0
- package/plugins/codex-pbr/commands/statusline.md +5 -0
- package/plugins/codex-pbr/commands/test.md +5 -0
- package/plugins/codex-pbr/commands/undo.md +5 -0
- package/plugins/codex-pbr/commands/update.md +37 -0
- package/plugins/codex-pbr/commands/verify-work.md +6 -0
- package/plugins/codex-pbr/references/agent-contracts.md +324 -0
- package/plugins/codex-pbr/references/agent-teams.md +54 -0
- package/plugins/codex-pbr/references/common-bug-patterns.md +13 -0
- package/plugins/codex-pbr/references/config-reference.md +587 -0
- package/plugins/codex-pbr/references/continuation-format.md +212 -0
- package/plugins/codex-pbr/references/deviation-rules.md +112 -0
- package/plugins/codex-pbr/references/git-integration.md +284 -0
- package/plugins/codex-pbr/references/integration-patterns.md +117 -0
- package/plugins/codex-pbr/references/model-profiles.md +143 -0
- package/plugins/codex-pbr/references/model-selection.md +31 -0
- package/plugins/codex-pbr/references/pbr-tools-cli.md +400 -0
- package/plugins/codex-pbr/references/plan-authoring.md +246 -0
- package/plugins/codex-pbr/references/plan-format.md +351 -0
- package/plugins/codex-pbr/references/questioning.md +303 -0
- package/plugins/codex-pbr/references/reading-verification.md +127 -0
- package/plugins/codex-pbr/references/signal-files.md +41 -0
- package/plugins/codex-pbr/references/stub-patterns.md +160 -0
- package/plugins/codex-pbr/references/tmux-setup.md +286 -0
- package/plugins/codex-pbr/references/ui-formatting.md +449 -0
- package/plugins/codex-pbr/references/wave-execution.md +95 -0
- package/plugins/codex-pbr/skills/audit/SKILL.md +346 -0
- package/plugins/codex-pbr/skills/begin/SKILL.md +886 -0
- package/plugins/codex-pbr/skills/build/SKILL.md +992 -0
- package/plugins/codex-pbr/skills/config/SKILL.md +341 -0
- package/plugins/codex-pbr/skills/continue/SKILL.md +172 -0
- package/plugins/codex-pbr/skills/dashboard/SKILL.md +56 -0
- package/plugins/codex-pbr/skills/debug/SKILL.md +537 -0
- package/plugins/codex-pbr/skills/discuss/SKILL.md +438 -0
- package/plugins/codex-pbr/skills/do/SKILL.md +68 -0
- package/plugins/codex-pbr/skills/explore/SKILL.md +441 -0
- package/plugins/codex-pbr/skills/health/SKILL.md +330 -0
- package/plugins/codex-pbr/skills/help/SKILL.md +231 -0
- package/plugins/codex-pbr/skills/import/SKILL.md +814 -0
- package/plugins/codex-pbr/skills/milestone/SKILL.md +637 -0
- package/plugins/codex-pbr/skills/note/SKILL.md +219 -0
- package/plugins/codex-pbr/skills/pause/SKILL.md +258 -0
- package/plugins/codex-pbr/skills/plan/SKILL.md +689 -0
- package/plugins/codex-pbr/skills/profile/SKILL.md +171 -0
- package/plugins/codex-pbr/skills/quick/SKILL.md +437 -0
- package/plugins/codex-pbr/skills/resume/SKILL.md +403 -0
- package/plugins/codex-pbr/skills/review/SKILL.md +693 -0
- package/plugins/codex-pbr/skills/scan/SKILL.md +325 -0
- package/plugins/codex-pbr/skills/setup/SKILL.md +235 -0
- package/plugins/codex-pbr/skills/shared/commit-planning-docs.md +43 -0
- package/plugins/codex-pbr/skills/shared/config-loading.md +102 -0
- package/plugins/codex-pbr/skills/shared/context-budget.md +92 -0
- package/plugins/codex-pbr/skills/shared/context-loader-task.md +93 -0
- package/plugins/codex-pbr/skills/shared/digest-select.md +79 -0
- package/plugins/codex-pbr/skills/shared/domain-probes.md +125 -0
- package/plugins/codex-pbr/skills/shared/error-reporting.md +59 -0
- package/plugins/codex-pbr/skills/shared/gate-prompts.md +390 -0
- package/plugins/codex-pbr/skills/shared/phase-argument-parsing.md +45 -0
- package/plugins/codex-pbr/skills/shared/revision-loop.md +81 -0
- package/plugins/codex-pbr/skills/shared/state-update.md +153 -0
- package/plugins/codex-pbr/skills/shared/universal-anti-patterns.md +59 -0
- package/plugins/codex-pbr/skills/status/SKILL.md +484 -0
- package/plugins/codex-pbr/skills/statusline/SKILL.md +149 -0
- package/plugins/codex-pbr/skills/test/SKILL.md +210 -0
- package/plugins/codex-pbr/skills/todo/SKILL.md +281 -0
- package/plugins/codex-pbr/skills/undo/SKILL.md +214 -0
- package/plugins/codex-pbr/templates/CONTEXT.md.tmpl +52 -0
- package/plugins/codex-pbr/templates/INTEGRATION-REPORT.md.tmpl +167 -0
- package/plugins/codex-pbr/templates/PROJECT.md.tmpl +111 -0
- package/plugins/codex-pbr/templates/REQUIREMENTS.md.tmpl +96 -0
- package/plugins/codex-pbr/templates/ROADMAP.md.tmpl +105 -0
- package/plugins/codex-pbr/templates/SUMMARY-complex.md.tmpl +112 -0
- package/plugins/codex-pbr/templates/SUMMARY-minimal.md.tmpl +48 -0
- package/plugins/codex-pbr/templates/SUMMARY.md.tmpl +81 -0
- package/plugins/codex-pbr/templates/VERIFICATION-DETAIL.md.tmpl +119 -0
- package/plugins/codex-pbr/templates/codebase/ARCHITECTURE.md.tmpl +98 -0
- package/plugins/codex-pbr/templates/codebase/CONCERNS.md.tmpl +93 -0
- package/plugins/codex-pbr/templates/codebase/CONVENTIONS.md.tmpl +104 -0
- package/plugins/codex-pbr/templates/codebase/INTEGRATIONS.md.tmpl +78 -0
- package/plugins/codex-pbr/templates/codebase/STACK.md.tmpl +78 -0
- package/plugins/codex-pbr/templates/codebase/STRUCTURE.md.tmpl +80 -0
- package/plugins/codex-pbr/templates/codebase/TESTING.md.tmpl +107 -0
- package/plugins/codex-pbr/templates/continue-here.md.tmpl +73 -0
- package/plugins/codex-pbr/templates/pr-body.md.tmpl +22 -0
- package/plugins/codex-pbr/templates/project-CONTEXT.md.tmpl +43 -0
- package/plugins/codex-pbr/templates/prompt-partials/phase-project-context.md.tmpl +37 -0
- package/plugins/codex-pbr/templates/research-outputs/ARCHITECTURE.md.tmpl +91 -0
- package/plugins/codex-pbr/templates/research-outputs/FEATURES.md.tmpl +64 -0
- package/plugins/codex-pbr/templates/research-outputs/PITFALLS.md.tmpl +50 -0
- package/plugins/codex-pbr/templates/research-outputs/STACK.md.tmpl +63 -0
- package/plugins/codex-pbr/templates/research-outputs/SUMMARY.md.tmpl +98 -0
- package/plugins/copilot-pbr/CHANGELOG.md +19 -0
- package/plugins/copilot-pbr/README.md +139 -0
- package/plugins/copilot-pbr/agents/audit.agent.md +240 -0
- package/plugins/copilot-pbr/agents/codebase-mapper.agent.md +225 -0
- package/plugins/copilot-pbr/agents/debugger.agent.md +300 -0
- package/plugins/copilot-pbr/agents/dev-sync.agent.md +198 -0
- package/plugins/copilot-pbr/agents/executor.agent.md +549 -0
- package/plugins/copilot-pbr/agents/general.agent.md +151 -0
- package/plugins/copilot-pbr/agents/integration-checker.agent.md +230 -0
- package/plugins/copilot-pbr/agents/nyquist-auditor.agent.md +244 -0
- package/plugins/copilot-pbr/agents/plan-checker.agent.md +306 -0
- package/plugins/copilot-pbr/agents/planner.agent.md +464 -0
- package/plugins/copilot-pbr/agents/researcher.agent.md +304 -0
- package/plugins/copilot-pbr/agents/roadmapper.agent.md +339 -0
- package/plugins/copilot-pbr/agents/synthesizer.agent.md +267 -0
- package/plugins/copilot-pbr/agents/verifier.agent.md +488 -0
- package/plugins/copilot-pbr/commands/add-phase.md +75 -0
- package/plugins/copilot-pbr/commands/add-todo.md +8 -0
- package/plugins/copilot-pbr/commands/audit-milestone.md +8 -0
- package/plugins/copilot-pbr/commands/audit.md +5 -0
- package/plugins/copilot-pbr/commands/check-todos.md +8 -0
- package/plugins/copilot-pbr/commands/complete-milestone.md +8 -0
- package/plugins/copilot-pbr/commands/config.md +5 -0
- package/plugins/copilot-pbr/commands/continue.md +5 -0
- package/plugins/copilot-pbr/commands/dashboard.md +5 -0
- package/plugins/copilot-pbr/commands/debug.md +5 -0
- package/plugins/copilot-pbr/commands/discuss-phase.md +6 -0
- package/plugins/copilot-pbr/commands/do.md +5 -0
- package/plugins/copilot-pbr/commands/execute-phase.md +6 -0
- package/plugins/copilot-pbr/commands/explore.md +5 -0
- package/plugins/copilot-pbr/commands/health.md +5 -0
- package/plugins/copilot-pbr/commands/help.md +5 -0
- package/plugins/copilot-pbr/commands/import.md +5 -0
- package/plugins/copilot-pbr/commands/insert-phase.md +65 -0
- package/plugins/copilot-pbr/commands/join-discord.md +11 -0
- package/plugins/copilot-pbr/commands/list-phase-assumptions.md +69 -0
- package/plugins/copilot-pbr/commands/map-codebase.md +6 -0
- package/plugins/copilot-pbr/commands/new-milestone.md +8 -0
- package/plugins/copilot-pbr/commands/new-project.md +6 -0
- package/plugins/copilot-pbr/commands/note.md +5 -0
- package/plugins/copilot-pbr/commands/pause-work.md +5 -0
- package/plugins/copilot-pbr/commands/plan-milestone-gaps.md +7 -0
- package/plugins/copilot-pbr/commands/plan-phase.md +6 -0
- package/plugins/copilot-pbr/commands/progress.md +6 -0
- package/plugins/copilot-pbr/commands/quick.md +5 -0
- package/plugins/copilot-pbr/commands/reapply-patches.md +40 -0
- package/plugins/copilot-pbr/commands/remove-phase.md +66 -0
- package/plugins/copilot-pbr/commands/research-phase.md +59 -0
- package/plugins/copilot-pbr/commands/resume-work.md +5 -0
- package/plugins/copilot-pbr/commands/set-profile.md +6 -0
- package/plugins/copilot-pbr/commands/settings.md +5 -0
- package/plugins/copilot-pbr/commands/setup.md +5 -0
- package/plugins/copilot-pbr/commands/statusline.md +5 -0
- package/plugins/copilot-pbr/commands/test.md +5 -0
- package/plugins/copilot-pbr/commands/undo.md +5 -0
- package/plugins/copilot-pbr/commands/update.md +37 -0
- package/plugins/copilot-pbr/commands/verify-work.md +6 -0
- package/plugins/copilot-pbr/hooks/hooks.json +309 -0
- package/plugins/copilot-pbr/plugin.json +30 -0
- package/plugins/copilot-pbr/references/agent-contracts.md +324 -0
- package/plugins/copilot-pbr/references/agent-teams.md +54 -0
- package/plugins/copilot-pbr/references/common-bug-patterns.md +13 -0
- package/plugins/copilot-pbr/references/config-reference.md +587 -0
- package/plugins/copilot-pbr/references/continuation-format.md +212 -0
- package/plugins/copilot-pbr/references/deviation-rules.md +112 -0
- package/plugins/copilot-pbr/references/git-integration.md +284 -0
- package/plugins/copilot-pbr/references/integration-patterns.md +117 -0
- package/plugins/copilot-pbr/references/model-profiles.md +143 -0
- package/plugins/copilot-pbr/references/model-selection.md +31 -0
- package/plugins/copilot-pbr/references/pbr-tools-cli.md +400 -0
- package/plugins/copilot-pbr/references/plan-authoring.md +246 -0
- package/plugins/copilot-pbr/references/plan-format.md +351 -0
- package/plugins/copilot-pbr/references/questioning.md +303 -0
- package/plugins/copilot-pbr/references/reading-verification.md +127 -0
- package/plugins/copilot-pbr/references/signal-files.md +41 -0
- package/plugins/copilot-pbr/references/stub-patterns.md +160 -0
- package/plugins/copilot-pbr/references/tmux-setup.md +286 -0
- package/plugins/copilot-pbr/references/ui-formatting.md +449 -0
- package/plugins/copilot-pbr/references/wave-execution.md +95 -0
- package/plugins/copilot-pbr/rules/pbr-workflow.mdc +48 -0
- package/plugins/copilot-pbr/setup.ps1 +93 -0
- package/plugins/copilot-pbr/setup.sh +93 -0
- package/plugins/copilot-pbr/skills/audit/SKILL.md +346 -0
- package/plugins/copilot-pbr/skills/begin/SKILL.md +886 -0
- package/plugins/copilot-pbr/skills/build/SKILL.md +992 -0
- package/plugins/copilot-pbr/skills/config/SKILL.md +341 -0
- package/plugins/copilot-pbr/skills/continue/SKILL.md +172 -0
- package/plugins/copilot-pbr/skills/dashboard/SKILL.md +56 -0
- package/plugins/copilot-pbr/skills/debug/SKILL.md +537 -0
- package/plugins/copilot-pbr/skills/discuss/SKILL.md +438 -0
- package/plugins/copilot-pbr/skills/do/SKILL.md +68 -0
- package/plugins/copilot-pbr/skills/explore/SKILL.md +441 -0
- package/plugins/copilot-pbr/skills/health/SKILL.md +330 -0
- package/plugins/copilot-pbr/skills/help/SKILL.md +231 -0
- package/plugins/copilot-pbr/skills/import/SKILL.md +814 -0
- package/plugins/copilot-pbr/skills/milestone/SKILL.md +637 -0
- package/plugins/copilot-pbr/skills/note/SKILL.md +219 -0
- package/plugins/copilot-pbr/skills/pause/SKILL.md +258 -0
- package/plugins/copilot-pbr/skills/plan/SKILL.md +689 -0
- package/plugins/copilot-pbr/skills/profile/SKILL.md +171 -0
- package/plugins/copilot-pbr/skills/quick/SKILL.md +437 -0
- package/plugins/copilot-pbr/skills/resume/SKILL.md +403 -0
- package/plugins/copilot-pbr/skills/review/SKILL.md +693 -0
- package/plugins/copilot-pbr/skills/scan/SKILL.md +325 -0
- package/plugins/copilot-pbr/skills/setup/SKILL.md +235 -0
- package/plugins/copilot-pbr/skills/shared/commit-planning-docs.md +43 -0
- package/plugins/copilot-pbr/skills/shared/config-loading.md +102 -0
- package/plugins/copilot-pbr/skills/shared/context-budget.md +92 -0
- package/plugins/copilot-pbr/skills/shared/context-loader-task.md +93 -0
- package/plugins/copilot-pbr/skills/shared/digest-select.md +79 -0
- package/plugins/copilot-pbr/skills/shared/domain-probes.md +125 -0
- package/plugins/copilot-pbr/skills/shared/error-reporting.md +59 -0
- package/plugins/copilot-pbr/skills/shared/gate-prompts.md +390 -0
- package/plugins/copilot-pbr/skills/shared/phase-argument-parsing.md +45 -0
- package/plugins/copilot-pbr/skills/shared/revision-loop.md +81 -0
- package/plugins/copilot-pbr/skills/shared/state-update.md +153 -0
- package/plugins/copilot-pbr/skills/shared/universal-anti-patterns.md +59 -0
- package/plugins/copilot-pbr/skills/status/SKILL.md +484 -0
- package/plugins/copilot-pbr/skills/statusline/SKILL.md +149 -0
- package/plugins/copilot-pbr/skills/test/SKILL.md +210 -0
- package/plugins/copilot-pbr/skills/todo/SKILL.md +281 -0
- package/plugins/copilot-pbr/skills/undo/SKILL.md +214 -0
- package/plugins/copilot-pbr/templates/CONTEXT.md.tmpl +52 -0
- package/plugins/copilot-pbr/templates/INTEGRATION-REPORT.md.tmpl +167 -0
- package/plugins/copilot-pbr/templates/PROJECT.md.tmpl +111 -0
- package/plugins/copilot-pbr/templates/REQUIREMENTS.md.tmpl +96 -0
- package/plugins/copilot-pbr/templates/ROADMAP.md.tmpl +105 -0
- package/plugins/copilot-pbr/templates/SUMMARY-complex.md.tmpl +112 -0
- package/plugins/copilot-pbr/templates/SUMMARY-minimal.md.tmpl +48 -0
- package/plugins/copilot-pbr/templates/SUMMARY.md.tmpl +81 -0
- package/plugins/copilot-pbr/templates/VERIFICATION-DETAIL.md.tmpl +119 -0
- package/plugins/copilot-pbr/templates/codebase/ARCHITECTURE.md.tmpl +98 -0
- package/plugins/copilot-pbr/templates/codebase/CONCERNS.md.tmpl +93 -0
- package/plugins/copilot-pbr/templates/codebase/CONVENTIONS.md.tmpl +104 -0
- package/plugins/copilot-pbr/templates/codebase/INTEGRATIONS.md.tmpl +78 -0
- package/plugins/copilot-pbr/templates/codebase/STACK.md.tmpl +78 -0
- package/plugins/copilot-pbr/templates/codebase/STRUCTURE.md.tmpl +80 -0
- package/plugins/copilot-pbr/templates/codebase/TESTING.md.tmpl +107 -0
- package/plugins/copilot-pbr/templates/continue-here.md.tmpl +73 -0
- package/plugins/copilot-pbr/templates/pr-body.md.tmpl +22 -0
- package/plugins/copilot-pbr/templates/project-CONTEXT.md.tmpl +43 -0
- package/plugins/copilot-pbr/templates/prompt-partials/phase-project-context.md.tmpl +37 -0
- package/plugins/copilot-pbr/templates/research-outputs/ARCHITECTURE.md.tmpl +91 -0
- package/plugins/copilot-pbr/templates/research-outputs/FEATURES.md.tmpl +64 -0
- package/plugins/copilot-pbr/templates/research-outputs/PITFALLS.md.tmpl +50 -0
- package/plugins/copilot-pbr/templates/research-outputs/STACK.md.tmpl +63 -0
- package/plugins/copilot-pbr/templates/research-outputs/SUMMARY.md.tmpl +98 -0
- package/plugins/cursor-pbr/.cursor-plugin/plugin.json +13 -3
- package/plugins/cursor-pbr/README.md +32 -7
- package/plugins/cursor-pbr/agents/audit.md +242 -0
- package/plugins/cursor-pbr/agents/codebase-mapper.md +134 -15
- package/plugins/cursor-pbr/agents/debugger.md +160 -26
- package/plugins/cursor-pbr/agents/dev-sync.md +200 -0
- package/plugins/cursor-pbr/agents/executor.md +354 -39
- package/plugins/cursor-pbr/agents/general.md +70 -4
- package/plugins/cursor-pbr/agents/integration-checker.md +171 -26
- package/plugins/cursor-pbr/agents/nyquist-auditor.md +246 -0
- package/plugins/cursor-pbr/agents/plan-checker.md +152 -42
- package/plugins/cursor-pbr/agents/planner.md +315 -29
- package/plugins/cursor-pbr/agents/researcher.md +174 -30
- package/plugins/cursor-pbr/agents/roadmapper.md +341 -0
- package/plugins/cursor-pbr/agents/synthesizer.md +191 -23
- package/plugins/cursor-pbr/agents/verifier.md +320 -23
- package/plugins/cursor-pbr/commands/add-phase.md +75 -0
- package/plugins/cursor-pbr/commands/add-todo.md +8 -0
- package/plugins/cursor-pbr/commands/audit-milestone.md +8 -0
- package/plugins/cursor-pbr/commands/audit.md +5 -0
- package/plugins/cursor-pbr/commands/check-todos.md +8 -0
- package/plugins/cursor-pbr/commands/complete-milestone.md +8 -0
- package/plugins/cursor-pbr/commands/config.md +5 -0
- package/plugins/cursor-pbr/commands/continue.md +5 -0
- package/plugins/cursor-pbr/commands/dashboard.md +5 -0
- package/plugins/cursor-pbr/commands/debug.md +5 -0
- package/plugins/cursor-pbr/commands/discuss-phase.md +6 -0
- package/plugins/cursor-pbr/commands/do.md +5 -0
- package/plugins/cursor-pbr/commands/execute-phase.md +6 -0
- package/plugins/cursor-pbr/commands/explore.md +5 -0
- package/plugins/cursor-pbr/commands/health.md +5 -0
- package/plugins/cursor-pbr/commands/help.md +5 -0
- package/plugins/cursor-pbr/commands/import.md +5 -0
- package/plugins/cursor-pbr/commands/insert-phase.md +65 -0
- package/plugins/cursor-pbr/commands/join-discord.md +11 -0
- package/plugins/cursor-pbr/commands/list-phase-assumptions.md +69 -0
- package/plugins/cursor-pbr/commands/map-codebase.md +6 -0
- package/plugins/cursor-pbr/commands/new-milestone.md +8 -0
- package/plugins/cursor-pbr/commands/new-project.md +6 -0
- package/plugins/cursor-pbr/commands/note.md +5 -0
- package/plugins/cursor-pbr/commands/pause-work.md +5 -0
- package/plugins/cursor-pbr/commands/plan-milestone-gaps.md +7 -0
- package/plugins/cursor-pbr/commands/plan-phase.md +6 -0
- package/plugins/cursor-pbr/commands/progress.md +6 -0
- package/plugins/cursor-pbr/commands/quick.md +5 -0
- package/plugins/cursor-pbr/commands/reapply-patches.md +40 -0
- package/plugins/cursor-pbr/commands/remove-phase.md +66 -0
- package/plugins/cursor-pbr/commands/research-phase.md +59 -0
- package/plugins/cursor-pbr/commands/resume-work.md +5 -0
- package/plugins/cursor-pbr/commands/set-profile.md +6 -0
- package/plugins/cursor-pbr/commands/settings.md +5 -0
- package/plugins/cursor-pbr/commands/setup.md +5 -0
- package/plugins/cursor-pbr/commands/statusline.md +5 -0
- package/plugins/cursor-pbr/commands/test.md +5 -0
- package/plugins/cursor-pbr/commands/undo.md +5 -0
- package/plugins/cursor-pbr/commands/update.md +37 -0
- package/plugins/cursor-pbr/commands/verify-work.md +6 -0
- package/plugins/cursor-pbr/hooks/hooks.json +96 -28
- package/plugins/cursor-pbr/references/agent-contracts.md +324 -0
- package/plugins/cursor-pbr/references/agent-teams.md +3 -4
- package/plugins/cursor-pbr/references/common-bug-patterns.md +0 -1
- package/plugins/cursor-pbr/references/config-reference.md +155 -10
- package/plugins/cursor-pbr/references/continuation-format.md +0 -1
- package/plugins/cursor-pbr/references/deviation-rules.md +0 -1
- package/plugins/cursor-pbr/references/git-integration.md +80 -23
- package/plugins/cursor-pbr/references/integration-patterns.md +0 -1
- package/plugins/cursor-pbr/references/model-profiles.md +51 -8
- package/plugins/cursor-pbr/references/model-selection.md +1 -2
- package/plugins/cursor-pbr/references/pbr-tools-cli.md +400 -0
- package/plugins/cursor-pbr/references/plan-authoring.md +65 -1
- package/plugins/cursor-pbr/references/plan-format.md +72 -9
- package/plugins/cursor-pbr/references/questioning.md +138 -50
- package/plugins/cursor-pbr/references/reading-verification.md +3 -4
- package/plugins/cursor-pbr/references/signal-files.md +41 -0
- package/plugins/cursor-pbr/references/stub-patterns.md +0 -1
- package/plugins/cursor-pbr/references/tmux-setup.md +286 -0
- package/plugins/cursor-pbr/references/ui-formatting.md +67 -80
- package/plugins/cursor-pbr/references/wave-execution.md +0 -1
- package/plugins/cursor-pbr/rules/pbr-workflow.mdc +6 -6
- package/plugins/cursor-pbr/setup.ps1 +1 -1
- package/plugins/cursor-pbr/setup.sh +1 -1
- package/plugins/cursor-pbr/skills/audit/SKILL.md +347 -0
- package/plugins/cursor-pbr/skills/begin/SKILL.md +461 -141
- package/plugins/cursor-pbr/skills/build/SKILL.md +420 -329
- package/plugins/cursor-pbr/skills/config/SKILL.md +107 -19
- package/plugins/cursor-pbr/skills/continue/SKILL.md +49 -36
- package/plugins/cursor-pbr/skills/dashboard/SKILL.md +57 -0
- package/plugins/cursor-pbr/skills/debug/SKILL.md +60 -34
- package/plugins/cursor-pbr/skills/discuss/SKILL.md +125 -30
- package/plugins/cursor-pbr/skills/do/SKILL.md +69 -0
- package/plugins/cursor-pbr/skills/explore/SKILL.md +90 -23
- package/plugins/cursor-pbr/skills/health/SKILL.md +144 -31
- package/plugins/cursor-pbr/skills/help/SKILL.md +124 -45
- package/plugins/cursor-pbr/skills/import/SKILL.md +346 -30
- package/plugins/cursor-pbr/skills/milestone/SKILL.md +189 -252
- package/plugins/cursor-pbr/skills/note/SKILL.md +47 -55
- package/plugins/cursor-pbr/skills/pause/SKILL.md +28 -16
- package/plugins/cursor-pbr/skills/plan/SKILL.md +305 -263
- package/plugins/cursor-pbr/skills/profile/SKILL.md +172 -0
- package/plugins/cursor-pbr/skills/quick/SKILL.md +106 -20
- package/plugins/cursor-pbr/skills/resume/SKILL.md +31 -27
- package/plugins/cursor-pbr/skills/review/SKILL.md +212 -167
- package/plugins/cursor-pbr/skills/scan/SKILL.md +47 -23
- package/plugins/cursor-pbr/skills/setup/SKILL.md +158 -173
- package/plugins/cursor-pbr/skills/shared/commit-planning-docs.md +8 -1
- package/plugins/cursor-pbr/skills/shared/config-loading.md +1 -2
- package/plugins/cursor-pbr/skills/shared/context-budget.md +56 -5
- package/plugins/cursor-pbr/skills/shared/context-loader-task.md +9 -3
- package/plugins/cursor-pbr/skills/shared/digest-select.md +2 -3
- package/plugins/cursor-pbr/skills/shared/domain-probes.md +1 -2
- package/plugins/cursor-pbr/skills/shared/error-reporting.md +38 -59
- package/plugins/cursor-pbr/skills/shared/gate-prompts.md +4 -3
- package/plugins/cursor-pbr/skills/shared/phase-argument-parsing.md +6 -7
- package/plugins/cursor-pbr/skills/shared/revision-loop.md +0 -1
- package/plugins/cursor-pbr/skills/shared/state-update.md +38 -47
- package/plugins/cursor-pbr/skills/shared/universal-anti-patterns.md +34 -9
- package/plugins/cursor-pbr/skills/status/SKILL.md +174 -52
- package/plugins/cursor-pbr/skills/statusline/SKILL.md +150 -0
- package/plugins/cursor-pbr/skills/test/SKILL.md +211 -0
- package/plugins/cursor-pbr/skills/todo/SKILL.md +118 -31
- package/plugins/cursor-pbr/skills/undo/SKILL.md +215 -0
- package/plugins/cursor-pbr/templates/CONTEXT.md.tmpl +1 -2
- package/plugins/cursor-pbr/templates/INTEGRATION-REPORT.md.tmpl +18 -3
- package/plugins/cursor-pbr/templates/PROJECT.md.tmpl +111 -0
- package/plugins/cursor-pbr/templates/REQUIREMENTS.md.tmpl +96 -0
- package/plugins/cursor-pbr/templates/ROADMAP.md.tmpl +80 -16
- package/plugins/cursor-pbr/templates/SUMMARY-complex.md.tmpl +112 -0
- package/plugins/cursor-pbr/templates/SUMMARY-minimal.md.tmpl +48 -0
- package/plugins/cursor-pbr/templates/SUMMARY.md.tmpl +0 -1
- package/plugins/cursor-pbr/templates/VERIFICATION-DETAIL.md.tmpl +13 -11
- package/plugins/cursor-pbr/templates/codebase/ARCHITECTURE.md.tmpl +98 -0
- package/plugins/cursor-pbr/templates/codebase/CONCERNS.md.tmpl +93 -0
- package/plugins/cursor-pbr/templates/codebase/CONVENTIONS.md.tmpl +104 -0
- package/plugins/cursor-pbr/templates/codebase/INTEGRATIONS.md.tmpl +78 -0
- package/plugins/cursor-pbr/templates/codebase/STACK.md.tmpl +78 -0
- package/plugins/cursor-pbr/templates/codebase/STRUCTURE.md.tmpl +80 -0
- package/plugins/cursor-pbr/templates/codebase/TESTING.md.tmpl +107 -0
- package/plugins/cursor-pbr/templates/continue-here.md.tmpl +0 -1
- package/plugins/cursor-pbr/templates/pr-body.md.tmpl +22 -0
- package/plugins/cursor-pbr/templates/project-CONTEXT.md.tmpl +43 -0
- package/plugins/cursor-pbr/templates/prompt-partials/phase-project-context.md.tmpl +0 -1
- package/plugins/cursor-pbr/templates/research-outputs/ARCHITECTURE.md.tmpl +91 -0
- package/plugins/cursor-pbr/templates/research-outputs/FEATURES.md.tmpl +64 -0
- package/plugins/cursor-pbr/templates/research-outputs/PITFALLS.md.tmpl +50 -0
- package/plugins/cursor-pbr/templates/research-outputs/STACK.md.tmpl +63 -0
- package/plugins/cursor-pbr/templates/research-outputs/SUMMARY.md.tmpl +98 -0
- package/plugins/pbr/.claude-plugin/plugin.json +7 -2
- package/plugins/pbr/UI-CONSISTENCY-GAPS.md +1 -1
- package/plugins/pbr/agents/audit.md +247 -0
- package/plugins/pbr/agents/codebase-mapper.md +151 -18
- package/plugins/pbr/agents/debugger.md +180 -28
- package/plugins/pbr/agents/dev-sync.md +206 -0
- package/plugins/pbr/agents/executor.md +365 -40
- package/plugins/pbr/agents/general.md +70 -5
- package/plugins/pbr/agents/integration-checker.md +174 -27
- package/plugins/pbr/agents/nyquist-auditor.md +252 -0
- package/plugins/pbr/agents/plan-checker.md +153 -43
- package/plugins/pbr/agents/planner.md +340 -28
- package/plugins/pbr/agents/researcher.md +210 -34
- package/plugins/pbr/agents/roadmapper.md +346 -0
- package/plugins/pbr/agents/synthesizer.md +193 -26
- package/plugins/pbr/agents/verifier.md +402 -23
- package/plugins/pbr/commands/add-phase.md +75 -0
- package/plugins/pbr/commands/add-todo.md +8 -0
- package/plugins/pbr/commands/audit-milestone.md +8 -0
- package/plugins/pbr/commands/audit.md +5 -0
- package/plugins/pbr/commands/check-todos.md +8 -0
- package/plugins/pbr/commands/complete-milestone.md +8 -0
- package/plugins/pbr/commands/config.md +2 -2
- package/plugins/pbr/commands/continue.md +1 -1
- package/plugins/pbr/commands/dashboard.md +5 -0
- package/plugins/pbr/commands/debug.md +1 -1
- package/plugins/pbr/commands/discuss-phase.md +6 -0
- package/plugins/pbr/commands/do.md +5 -0
- package/plugins/pbr/commands/execute-phase.md +6 -0
- package/plugins/pbr/commands/explore.md +1 -1
- package/plugins/pbr/commands/health.md +1 -1
- package/plugins/pbr/commands/help.md +1 -1
- package/plugins/pbr/commands/import.md +1 -1
- package/plugins/pbr/commands/insert-phase.md +65 -0
- package/plugins/pbr/commands/join-discord.md +11 -0
- package/plugins/pbr/commands/list-phase-assumptions.md +69 -0
- package/plugins/pbr/commands/map-codebase.md +6 -0
- package/plugins/pbr/commands/new-milestone.md +8 -0
- package/plugins/pbr/commands/new-project.md +6 -0
- package/plugins/pbr/commands/note.md +1 -1
- package/plugins/pbr/commands/pause-work.md +5 -0
- package/plugins/pbr/commands/plan-milestone-gaps.md +7 -0
- package/plugins/pbr/commands/plan-phase.md +6 -0
- package/plugins/pbr/commands/progress.md +6 -0
- package/plugins/pbr/commands/quick.md +1 -1
- package/plugins/pbr/commands/reapply-patches.md +40 -0
- package/plugins/pbr/commands/remove-phase.md +66 -0
- package/plugins/pbr/commands/research-phase.md +59 -0
- package/plugins/pbr/commands/resume-work.md +5 -0
- package/plugins/pbr/commands/set-profile.md +6 -0
- package/plugins/pbr/commands/settings.md +5 -0
- package/plugins/pbr/commands/setup.md +2 -2
- package/plugins/pbr/commands/statusline.md +5 -0
- package/plugins/pbr/commands/test.md +5 -0
- package/plugins/pbr/commands/undo.md +5 -0
- package/plugins/pbr/commands/update.md +37 -0
- package/plugins/pbr/commands/verify-work.md +6 -0
- package/plugins/pbr/dashboard/package-lock.json +6 -0
- package/plugins/pbr/hooks/hooks.json +97 -18
- package/plugins/pbr/references/agent-contracts.md +324 -0
- package/plugins/pbr/references/agent-teams.md +3 -3
- package/plugins/pbr/references/{checkpoints.md → archive/checkpoints.md} +32 -0
- package/plugins/pbr/references/archive/context-quality-tiers.md +45 -0
- package/plugins/{cursor-pbr/references → pbr/references/archive}/pbr-rules.md +4 -4
- package/plugins/pbr/references/archive/verification-patterns.md +277 -0
- package/plugins/pbr/references/config-reference.md +179 -9
- package/plugins/pbr/references/git-integration.md +80 -22
- package/plugins/pbr/references/model-profiles.md +62 -7
- package/plugins/pbr/references/model-selection.md +1 -1
- package/plugins/pbr/references/pbr-tools-cli.md +400 -0
- package/plugins/pbr/references/plan-authoring.md +65 -0
- package/plugins/pbr/references/plan-format.md +72 -8
- package/plugins/pbr/references/questioning.md +138 -49
- package/plugins/pbr/references/reading-verification.md +3 -3
- package/plugins/pbr/references/signal-files.md +41 -0
- package/plugins/pbr/references/tmux-setup.md +286 -0
- package/plugins/pbr/references/ui-formatting.md +67 -79
- package/plugins/pbr/scripts/auto-continue.js +113 -6
- package/plugins/pbr/scripts/block-skill-self-read.js +77 -0
- package/plugins/pbr/scripts/branding-audit.js +231 -0
- package/plugins/pbr/scripts/check-agent-state-write.js +63 -0
- package/plugins/pbr/scripts/check-config-change.js +188 -0
- package/plugins/pbr/scripts/check-cross-plugin-sync.js +93 -0
- package/plugins/pbr/scripts/check-dangerous-commands.js +49 -1
- package/plugins/pbr/scripts/check-phase-boundary.js +2 -8
- package/plugins/pbr/scripts/check-plan-format.js +414 -30
- package/plugins/pbr/scripts/check-roadmap-sync.js +178 -9
- package/plugins/pbr/scripts/check-skill-workflow.js +109 -18
- package/plugins/pbr/scripts/check-state-sync.js +156 -20
- package/plugins/pbr/scripts/check-subagent-output.js +581 -14
- package/plugins/pbr/scripts/check-summary-gate.js +1 -1
- package/plugins/pbr/scripts/config-schema.json +157 -2
- package/plugins/pbr/scripts/context-bridge.js +342 -0
- package/plugins/pbr/scripts/context-budget-check.js +89 -9
- package/plugins/pbr/scripts/enforce-pbr-workflow.js +277 -0
- package/plugins/pbr/scripts/event-handler.js +72 -6
- package/plugins/pbr/scripts/hook-server-client.js +258 -0
- package/plugins/pbr/scripts/hook-server.js +334 -0
- package/plugins/pbr/scripts/hooks-schema.json +5 -1
- package/plugins/pbr/scripts/instructions-loaded.js +107 -0
- package/plugins/pbr/scripts/intercept-plan-mode.js +47 -0
- package/plugins/pbr/scripts/lib/alternatives.js +203 -0
- package/plugins/pbr/scripts/lib/build.js +719 -0
- package/plugins/pbr/scripts/lib/circuit-state.js +133 -0
- package/plugins/pbr/scripts/lib/config.js +288 -0
- package/plugins/pbr/scripts/lib/context.js +246 -0
- package/plugins/pbr/scripts/lib/core.js +934 -0
- package/plugins/pbr/scripts/lib/gates/advisories.js +129 -0
- package/plugins/pbr/scripts/lib/gates/build-dependency.js +100 -0
- package/plugins/pbr/scripts/lib/gates/build-executor.js +79 -0
- package/plugins/pbr/scripts/lib/gates/doc-existence.js +46 -0
- package/plugins/pbr/scripts/lib/gates/helpers.js +74 -0
- package/plugins/pbr/scripts/lib/gates/milestone-complete.js +120 -0
- package/plugins/pbr/scripts/lib/gates/plan-executor.js +36 -0
- package/plugins/pbr/scripts/lib/gates/quick-executor.js +76 -0
- package/plugins/pbr/scripts/lib/gates/review-planner.js +61 -0
- package/plugins/pbr/scripts/lib/gates/review-verifier.js +69 -0
- package/plugins/pbr/scripts/lib/history.js +150 -0
- package/plugins/pbr/scripts/lib/init.js +302 -0
- package/plugins/pbr/scripts/lib/learnings.js +312 -0
- package/plugins/pbr/scripts/lib/migrate.js +169 -0
- package/plugins/pbr/scripts/lib/phase.js +935 -0
- package/plugins/pbr/scripts/lib/preview.js +174 -0
- package/plugins/pbr/scripts/lib/reference.js +236 -0
- package/plugins/pbr/scripts/lib/roadmap.js +784 -0
- package/plugins/pbr/scripts/lib/skill-section.js +99 -0
- package/plugins/pbr/scripts/lib/spot-check.js +118 -0
- package/plugins/pbr/scripts/lib/state.js +534 -0
- package/plugins/pbr/scripts/lib/step-verify.js +149 -0
- package/plugins/pbr/scripts/lib/todo.js +300 -0
- package/plugins/pbr/scripts/local-llm/client.js +237 -0
- package/plugins/pbr/scripts/local-llm/health.js +220 -0
- package/plugins/pbr/scripts/local-llm/metrics.js +340 -0
- package/plugins/pbr/scripts/local-llm/operations/classify-artifact.js +76 -0
- package/plugins/pbr/scripts/local-llm/operations/classify-commit.js +137 -0
- package/plugins/pbr/scripts/local-llm/operations/classify-error.js +75 -0
- package/plugins/pbr/scripts/local-llm/operations/classify-file-intent.js +171 -0
- package/plugins/pbr/scripts/local-llm/operations/score-source.js +72 -0
- package/plugins/pbr/scripts/local-llm/operations/summarize-context.js +62 -0
- package/plugins/pbr/scripts/local-llm/operations/triage-test-output.js +72 -0
- package/plugins/pbr/scripts/local-llm/operations/validate-task.js +59 -0
- package/plugins/pbr/scripts/local-llm/router.js +101 -0
- package/plugins/pbr/scripts/local-llm/shadow.js +60 -0
- package/plugins/pbr/scripts/local-llm/threshold-tuner.js +118 -0
- package/plugins/pbr/scripts/log-subagent.js +90 -13
- package/plugins/pbr/scripts/log-tool-failure.js +39 -5
- package/plugins/pbr/scripts/milestone-learnings.js +290 -0
- package/plugins/pbr/scripts/package.json +1 -0
- package/plugins/pbr/scripts/pbr-tools.js +1143 -1232
- package/plugins/pbr/scripts/post-bash-triage.js +151 -0
- package/plugins/pbr/scripts/post-write-dispatch.js +181 -25
- package/plugins/pbr/scripts/post-write-quality.js +3 -3
- package/plugins/pbr/scripts/pre-bash-dispatch.js +56 -2
- package/plugins/pbr/scripts/pre-write-dispatch.js +69 -19
- package/plugins/pbr/scripts/progress-tracker.js +428 -19
- package/plugins/pbr/scripts/run-hook.js +49 -8
- package/plugins/pbr/scripts/session-cleanup.js +99 -5
- package/plugins/pbr/scripts/session-tracker.js +78 -0
- package/plugins/pbr/scripts/status-line.js +179 -27
- package/plugins/pbr/scripts/suggest-compact.js +108 -7
- package/plugins/pbr/scripts/sync-context-to-claude.js +100 -0
- package/plugins/pbr/scripts/task-completed.js +123 -1
- package/plugins/pbr/scripts/test/config.test.js +126 -0
- package/plugins/pbr/scripts/test/cross-platform.test.js +131 -0
- package/plugins/pbr/scripts/test/fixtures/config.json +20 -0
- package/plugins/pbr/scripts/test/fixtures/plan.md +54 -0
- package/plugins/pbr/scripts/test/fixtures/project.md +30 -0
- package/plugins/pbr/scripts/test/fixtures/roadmap.md +55 -0
- package/plugins/pbr/scripts/test/fixtures/state.md +60 -0
- package/plugins/pbr/scripts/test/fixtures/summary.md +35 -0
- package/plugins/pbr/scripts/test/fixtures.test.js +184 -0
- package/plugins/pbr/scripts/test/phase.test.js +142 -0
- package/plugins/pbr/scripts/test/roadmap.test.js +96 -0
- package/plugins/pbr/scripts/test/state.test.js +163 -0
- package/plugins/pbr/scripts/track-context-budget.js +237 -89
- package/plugins/pbr/scripts/validate-commit.js +76 -11
- package/plugins/pbr/scripts/validate-skill-args.js +151 -0
- package/plugins/pbr/scripts/validate-task.js +167 -17
- package/plugins/pbr/scripts/worktree-create.js +144 -0
- package/plugins/pbr/scripts/worktree-remove.js +147 -0
- package/plugins/pbr/skills/audit/SKILL.md +348 -0
- package/plugins/pbr/skills/begin/SKILL.md +412 -118
- package/plugins/pbr/skills/begin/templates/STATE.md.tmpl +1 -2
- package/plugins/pbr/skills/begin/templates/config.json.tmpl +8 -2
- package/plugins/pbr/skills/begin/templates/researcher-prompt.md.tmpl +28 -0
- package/plugins/pbr/skills/begin/templates/roadmap-prompt.md.tmpl +19 -0
- package/plugins/pbr/skills/begin/templates/synthesis-prompt.md.tmpl +33 -5
- package/plugins/pbr/skills/build/SKILL.md +503 -307
- package/plugins/pbr/skills/build/templates/continuation-prompt.md.tmpl +26 -0
- package/plugins/pbr/skills/build/templates/executor-prompt.md.tmpl +70 -0
- package/plugins/pbr/skills/build/templates/inline-verifier-prompt.md.tmpl +33 -0
- package/plugins/pbr/skills/config/SKILL.md +104 -18
- package/plugins/pbr/skills/continue/SKILL.md +92 -22
- package/plugins/pbr/skills/dashboard/SKILL.md +58 -0
- package/plugins/pbr/skills/debug/SKILL.md +57 -33
- package/plugins/pbr/skills/debug/templates/continuation-prompt.md.tmpl +12 -1
- package/plugins/pbr/skills/debug/templates/initial-investigation-prompt.md.tmpl +12 -5
- package/plugins/pbr/skills/discuss/SKILL.md +123 -30
- package/plugins/pbr/skills/discuss/templates/CONTEXT.md.tmpl +1 -1
- package/plugins/pbr/skills/do/SKILL.md +70 -0
- package/plugins/pbr/skills/explore/SKILL.md +92 -24
- package/plugins/pbr/skills/health/SKILL.md +143 -32
- package/plugins/pbr/skills/help/SKILL.md +122 -45
- package/plugins/pbr/skills/import/SKILL.md +341 -29
- package/plugins/pbr/skills/milestone/SKILL.md +187 -252
- package/plugins/pbr/skills/milestone/templates/audit-output.md.tmpl +76 -0
- package/plugins/pbr/skills/milestone/templates/complete-output.md.tmpl +32 -0
- package/plugins/pbr/skills/milestone/templates/edge-cases.md +54 -0
- package/plugins/pbr/skills/milestone/templates/gaps-output.md.tmpl +25 -0
- package/plugins/pbr/skills/milestone/templates/integration-checker-prompt.md.tmpl +25 -0
- package/plugins/pbr/skills/milestone/templates/new-output.md.tmpl +29 -0
- package/plugins/pbr/skills/note/SKILL.md +45 -55
- package/plugins/pbr/skills/pause/SKILL.md +26 -16
- package/plugins/pbr/skills/plan/SKILL.md +264 -258
- package/plugins/pbr/skills/plan/templates/completion-output.md.tmpl +27 -0
- package/plugins/pbr/skills/plan/templates/planner-prompt.md.tmpl +1 -1
- package/plugins/pbr/skills/profile/SKILL.md +173 -0
- package/plugins/pbr/skills/quick/SKILL.md +104 -20
- package/plugins/pbr/skills/resume/SKILL.md +29 -27
- package/plugins/pbr/skills/review/SKILL.md +172 -136
- package/plugins/pbr/skills/scan/SKILL.md +41 -19
- package/plugins/pbr/skills/scan/templates/mapper-prompt.md.tmpl +1 -1
- package/plugins/pbr/skills/setup/SKILL.md +160 -177
- package/plugins/pbr/skills/shared/commit-planning-docs.md +8 -0
- package/plugins/pbr/skills/shared/context-budget.md +67 -2
- package/plugins/pbr/skills/shared/context-loader-task.md +9 -2
- package/plugins/pbr/skills/shared/digest-select.md +2 -2
- package/plugins/pbr/skills/shared/domain-probes.md +1 -1
- package/plugins/pbr/skills/shared/error-reporting.md +38 -58
- package/plugins/pbr/skills/shared/gate-prompts.md +4 -2
- package/plugins/pbr/skills/shared/phase-argument-parsing.md +6 -6
- package/plugins/pbr/skills/shared/state-update.md +36 -44
- package/plugins/pbr/skills/shared/universal-anti-patterns.md +36 -10
- package/plugins/pbr/skills/status/SKILL.md +161 -43
- package/plugins/pbr/skills/statusline/SKILL.md +151 -0
- package/plugins/pbr/skills/test/SKILL.md +212 -0
- package/plugins/pbr/skills/todo/SKILL.md +117 -32
- package/plugins/pbr/skills/undo/SKILL.md +216 -0
- package/plugins/pbr/templates/CONTEXT.md.tmpl +1 -1
- package/plugins/pbr/templates/INTEGRATION-REPORT.md.tmpl +18 -2
- package/plugins/pbr/templates/PROJECT.md.tmpl +111 -0
- package/plugins/pbr/templates/REQUIREMENTS.md.tmpl +96 -0
- package/plugins/pbr/templates/ROADMAP.md.tmpl +80 -15
- package/plugins/pbr/templates/SUMMARY-complex.md.tmpl +112 -0
- package/plugins/pbr/templates/SUMMARY-minimal.md.tmpl +48 -0
- package/plugins/pbr/templates/VERIFICATION-DETAIL.md.tmpl +13 -10
- package/plugins/pbr/templates/pr-body.md.tmpl +22 -0
- package/plugins/pbr/templates/project-CONTEXT.md.tmpl +43 -0
- package/plugins/pbr/templates/research-outputs/ARCHITECTURE.md.tmpl +91 -0
- package/plugins/pbr/templates/research-outputs/FEATURES.md.tmpl +64 -0
- package/plugins/pbr/templates/research-outputs/PITFALLS.md.tmpl +50 -0
- package/plugins/pbr/templates/research-outputs/STACK.md.tmpl +63 -0
- package/plugins/pbr/templates/research-outputs/SUMMARY.md.tmpl +98 -0
- package/scripts/build-hooks.js +61 -0
- package/scripts/generate-derivatives.js +581 -0
- package/scripts/run-tests.cjs +29 -0
- package/dashboard/bin/cli.js +0 -25
- package/dashboard/public/css/layout.css +0 -406
- package/dashboard/public/css/status-colors.css +0 -98
- package/dashboard/public/js/htmx-title.js +0 -5
- package/dashboard/public/js/sidebar-toggle.js +0 -20
- package/dashboard/src/app.js +0 -78
- package/dashboard/src/middleware/errorHandler.js +0 -52
- package/dashboard/src/middleware/notFoundHandler.js +0 -9
- package/dashboard/src/repositories/planning.repository.js +0 -128
- package/dashboard/src/routes/events.routes.js +0 -40
- package/dashboard/src/routes/index.routes.js +0 -31
- package/dashboard/src/routes/pages.routes.js +0 -252
- package/dashboard/src/server.js +0 -42
- package/dashboard/src/services/dashboard.service.js +0 -286
- package/dashboard/src/services/phase.service.js +0 -226
- package/dashboard/src/services/project.service.js +0 -57
- package/dashboard/src/services/roadmap.service.js +0 -171
- package/dashboard/src/services/sse.service.js +0 -58
- package/dashboard/src/services/todo.service.js +0 -254
- package/dashboard/src/services/watcher.service.js +0 -48
- package/dashboard/src/views/coming-soon.ejs +0 -11
- package/dashboard/src/views/error.ejs +0 -13
- package/dashboard/src/views/index.ejs +0 -5
- package/dashboard/src/views/layout.ejs +0 -1
- package/dashboard/src/views/partials/dashboard-content.ejs +0 -77
- package/dashboard/src/views/partials/footer.ejs +0 -3
- package/dashboard/src/views/partials/head.ejs +0 -21
- package/dashboard/src/views/partials/header.ejs +0 -12
- package/dashboard/src/views/partials/layout-bottom.ejs +0 -15
- package/dashboard/src/views/partials/layout-top.ejs +0 -8
- package/dashboard/src/views/partials/phase-content.ejs +0 -189
- package/dashboard/src/views/partials/phase-doc-content.ejs +0 -38
- package/dashboard/src/views/partials/phases-content.ejs +0 -117
- package/dashboard/src/views/partials/roadmap-content.ejs +0 -142
- package/dashboard/src/views/partials/sidebar.ejs +0 -38
- package/dashboard/src/views/partials/todo-create-content.ejs +0 -53
- package/dashboard/src/views/partials/todo-detail-content.ejs +0 -38
- package/dashboard/src/views/partials/todos-content.ejs +0 -53
- package/dashboard/src/views/phase-detail.ejs +0 -5
- package/dashboard/src/views/phase-doc.ejs +0 -5
- package/dashboard/src/views/phases.ejs +0 -5
- package/dashboard/src/views/roadmap.ejs +0 -5
- package/dashboard/src/views/todo-create.ejs +0 -5
- package/dashboard/src/views/todo-detail.ejs +0 -5
- package/dashboard/src/views/todos.ejs +0 -5
- package/plugins/cursor-pbr/references/agent-anti-patterns.md +0 -25
- package/plugins/cursor-pbr/references/agent-interactions.md +0 -135
- package/plugins/cursor-pbr/references/checkpoints.md +0 -158
- package/plugins/cursor-pbr/references/planning-config.md +0 -214
- package/plugins/cursor-pbr/references/subagent-coordination.md +0 -120
- package/plugins/cursor-pbr/references/verification-patterns.md +0 -199
- package/plugins/cursor-pbr/skills/begin/templates/researcher-prompt.md.tmpl +0 -20
- package/plugins/cursor-pbr/skills/begin/templates/roadmap-prompt.md.tmpl +0 -31
- package/plugins/cursor-pbr/skills/begin/templates/synthesis-prompt.md.tmpl +0 -17
- package/plugins/cursor-pbr/skills/debug/templates/continuation-prompt.md.tmpl +0 -17
- package/plugins/cursor-pbr/skills/debug/templates/initial-investigation-prompt.md.tmpl +0 -28
- package/plugins/cursor-pbr/skills/shared/progress-display.md +0 -54
- package/plugins/cursor-pbr/skills/shared/state-loading.md +0 -63
- package/plugins/cursor-pbr/templates/RESEARCH-SUMMARY.md.tmpl +0 -98
- package/plugins/pbr/commands/begin.md +0 -5
- package/plugins/pbr/commands/build.md +0 -5
- package/plugins/pbr/commands/discuss.md +0 -5
- package/plugins/pbr/commands/milestone.md +0 -5
- package/plugins/pbr/commands/pause.md +0 -5
- package/plugins/pbr/commands/plan.md +0 -5
- package/plugins/pbr/commands/resume.md +0 -5
- package/plugins/pbr/commands/review.md +0 -5
- package/plugins/pbr/commands/scan.md +0 -5
- package/plugins/pbr/commands/status.md +0 -5
- package/plugins/pbr/commands/todo.md +0 -5
- package/plugins/pbr/references/agent-interactions.md +0 -134
- package/plugins/pbr/references/pbr-rules.md +0 -193
- package/plugins/pbr/references/planning-config.md +0 -213
- package/plugins/pbr/references/subagent-coordination.md +0 -119
- package/plugins/pbr/references/verification-patterns.md +0 -198
- package/plugins/pbr/skills/shared/progress-display.md +0 -53
- package/plugins/pbr/skills/shared/state-loading.md +0 -62
- package/plugins/pbr/templates/RESEARCH-SUMMARY.md.tmpl +0 -97
- package/plugins/pbr/templates/research/ARCHITECTURE.md.tmpl +0 -124
- package/plugins/pbr/templates/research/STACK.md.tmpl +0 -71
- package/plugins/pbr/templates/research/SUMMARY.md.tmpl +0 -112
- package/plugins/pbr/templates/research-outputs/phase-research.md.tmpl +0 -81
- package/plugins/pbr/templates/research-outputs/project-research.md.tmpl +0 -99
- package/plugins/pbr/templates/research-outputs/synthesis.md.tmpl +0 -36
- /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
|
-
|
|
7
|
+
**STOP — DO 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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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:
|
|
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
|
-
|
|
267
|
+
**CRITICAL (hook-enforced): Initialize checkpoint manifest NOW before entering the wave loop.**
|
|
195
268
|
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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/
|
|
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
|
|
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
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
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
|
-
|
|
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
|
-
-
|
|
339
|
-
- Each
|
|
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
|
-
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
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
|
-
|
|
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-
|
|
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
|
|
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-
|
|
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-
|
|
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
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
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:
|
|
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.
|
|
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
|
-
|
|
529
|
-
|
|
530
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
559
|
-
|
|
560
|
-
|
|
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
|
|
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
|
|
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:
|
|
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:
|
|
671
|
+
Display to the user: `◆ Spawning verifier...`
|
|
672
|
+
|
|
673
|
+
Spawn a verifier Task():
|
|
604
674
|
|
|
605
|
-
|
|
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
|
-
|
|
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
|
|
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:
|
|
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
|
|
618
|
-
- If status is `gaps_found`: display
|
|
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:
|
|
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:
|
|
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:
|
|
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
|
-
|
|
655
|
-
|
|
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
|
-
**
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
-
|
|
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
|
|
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 |
|
|
706
|
-
| Verification skipped | Run review |
|
|
707
|
-
| Verification gaps found | **HARD STOP** — present gaps to user | Do NOT auto-advance past failures |
|
|
708
|
-
| Last phase
|
|
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
|
|
853
|
+
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→...
|
|
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:
|
|
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-
|
|
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
|
-
|
|
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
|
|
943
|
+
If a Task() doesn't return within a reasonable time, display:
|
|
861
944
|
```
|
|
862
|
-
|
|
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:
|
|
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:
|
|
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
|
|
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.
|