@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,36 +1,56 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: build
|
|
3
3
|
description: "Execute all plans in a phase. Spawns agents to build in parallel, commits atomically."
|
|
4
|
-
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, Task, AskUserQuestion
|
|
5
|
-
argument-hint: "<phase-number> [--gaps-only] [--team]"
|
|
4
|
+
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, Task, AskUserQuestion, Skill
|
|
5
|
+
argument-hint: "<phase-number> [--gaps-only] [--team] [--model <model>]"
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
**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.**
|
|
9
9
|
|
|
10
|
-
# /pbr:
|
|
10
|
+
# /pbr:execute-phase — Phase Execution
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
**References:** `@references/questioning.md`, `@references/ui-brand.md`
|
|
13
|
+
|
|
14
|
+
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() subagents, and keep the user's main context window clean.
|
|
13
15
|
|
|
14
16
|
## Context Budget
|
|
15
17
|
|
|
16
18
|
Reference: `skills/shared/context-budget.md` for the universal orchestrator rules.
|
|
17
19
|
|
|
18
20
|
Additionally for this skill:
|
|
19
|
-
- **Minimize** reading executor output — read only SUMMARY.md frontmatter, not full content
|
|
21
|
+
- **Minimize** reading executor output — read only SUMMARY.md frontmatter, not full content. Exception: if `context_window_tokens` in `.planning/config.json` is >= 500000, reading full SUMMARY.md bodies is permitted when semantic content is needed for inline decisions.
|
|
20
22
|
- **Delegate** all building work to executor subagents — the orchestrator routes, it doesn't build
|
|
23
|
+
- **Lazy-load steps**: Instead of reading ahead, fetch the next step's instructions on demand:
|
|
24
|
+
`node ${CLAUDE_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.
|
|
21
25
|
|
|
22
26
|
## Step 0 — Immediate Output
|
|
23
27
|
|
|
24
28
|
**Before ANY tool calls**, display this banner:
|
|
25
29
|
|
|
26
30
|
```
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
31
|
+
╔══════════════════════════════════════════════════════════════╗
|
|
32
|
+
║ PLAN-BUILD-RUN ► BUILDING PHASE {N} ║
|
|
33
|
+
╚══════════════════════════════════════════════════════════════╝
|
|
30
34
|
```
|
|
31
35
|
|
|
32
36
|
Where `{N}` is the phase number from `$ARGUMENTS`. Then proceed to Step 1.
|
|
33
37
|
|
|
38
|
+
## Multi-Session Sync
|
|
39
|
+
|
|
40
|
+
Before any phase-modifying operations (spawning executors, writing SUMMARY.md, updating STATE.md/ROADMAP.md), acquire a claim:
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
acquireClaim(phaseDir, sessionId)
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
If the claim fails (another session owns this phase), display: "Another session owns this phase. Use `/pbr:progress` to see active claims."
|
|
47
|
+
|
|
48
|
+
On completion or error (including all exit paths), release the claim:
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
releaseClaim(phaseDir, sessionId)
|
|
52
|
+
```
|
|
53
|
+
|
|
34
54
|
## Prerequisites
|
|
35
55
|
|
|
36
56
|
- `.planning/config.json` exists
|
|
@@ -48,7 +68,56 @@ Parse `$ARGUMENTS` according to `skills/shared/phase-argument-parsing.md`.
|
|
|
48
68
|
| `3` | Build phase 3 |
|
|
49
69
|
| `3 --gaps-only` | Build only gap-closure plans in phase 3 |
|
|
50
70
|
| `3 --team` | Use Agent Teams for complex inter-agent coordination |
|
|
71
|
+
| `3 --model opus` | Use opus for all executor spawns in phase 3 (overrides config and adaptive selection) |
|
|
51
72
|
| (no number) | Use current phase from STATE.md |
|
|
73
|
+
| `3 --preview` | Preview what build would do for phase 3 without executing |
|
|
74
|
+
| `3 --cross-check` | Before spawning executors for phase 3, check current plan files_modified against prior-phase provides for conflicts |
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
### --preview mode
|
|
79
|
+
|
|
80
|
+
If `--preview` is present in `$ARGUMENTS`:
|
|
81
|
+
|
|
82
|
+
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).
|
|
83
|
+
2. Run:
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
node ${CLAUDE_PLUGIN_ROOT}/scripts/pbr-tools.js build-preview {phase-slug}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Capture the JSON output.
|
|
90
|
+
3. Render the following preview document (do NOT proceed to Step 2):
|
|
91
|
+
|
|
92
|
+
```
|
|
93
|
+
╔══════════════════════════════════════════════════════════════╗
|
|
94
|
+
║ DRY RUN — /pbr:execute-phase {N} --preview ║
|
|
95
|
+
║ No executor agents will be spawned ║
|
|
96
|
+
╚══════════════════════════════════════════════════════════════╝
|
|
97
|
+
|
|
98
|
+
PHASE: {phase}
|
|
99
|
+
|
|
100
|
+
## Plans
|
|
101
|
+
{for each plan: - {id} (wave {wave}, {task_count} tasks)}
|
|
102
|
+
|
|
103
|
+
## Wave Structure
|
|
104
|
+
{for each wave: Wave {wave}: {plan IDs} [parallel | sequential]}
|
|
105
|
+
|
|
106
|
+
## Files That Would Be Modified
|
|
107
|
+
{for each file in files_affected: - {file}}
|
|
108
|
+
(Total: {count} files)
|
|
109
|
+
|
|
110
|
+
## Estimated Agent Spawns
|
|
111
|
+
{agent_count} executor task(s)
|
|
112
|
+
|
|
113
|
+
## Critical Path
|
|
114
|
+
{critical_path joined with " → "}
|
|
115
|
+
|
|
116
|
+
## Dependency Chain
|
|
117
|
+
{for each entry in dependency_chain: - {id} (wave {wave}) depends on: {depends_on or "none"}}
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
4. **STOP** — do not proceed to Step 2.
|
|
52
121
|
|
|
53
122
|
---
|
|
54
123
|
|
|
@@ -65,7 +134,7 @@ Reference: `skills/shared/config-loading.md` for the tooling shortcut and config
|
|
|
65
134
|
1. Parse `$ARGUMENTS` for phase number and flags
|
|
66
135
|
2. Read `.planning/config.json` for parallelization, model, and gate settings (see config-loading.md for field reference)
|
|
67
136
|
3. Resolve depth profile: run `node ${CLAUDE_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.
|
|
68
|
-
4. Write `.planning/.active-skill` with the content `build` (registers with workflow enforcement hook)
|
|
137
|
+
4. **CRITICAL (hook-enforced): Write .active-skill NOW.** Write `.planning/.active-skill` with the content `build` (registers with workflow enforcement hook)
|
|
69
138
|
5. Validate:
|
|
70
139
|
- Phase directory exists at `.planning/phases/{NN}-{slug}/`
|
|
71
140
|
- PLAN.md files exist in the directory
|
|
@@ -78,33 +147,23 @@ Reference: `skills/shared/config-loading.md` for the tooling shortcut and config
|
|
|
78
147
|
options:
|
|
79
148
|
- label: "Yes" description: "Start building Phase {N}"
|
|
80
149
|
- label: "No" description: "Cancel — review plans first"
|
|
81
|
-
If "No" or "Other": stop and suggest `/pbr:plan {N}` to review plans
|
|
82
|
-
8. If `git.branching` is `phase
|
|
150
|
+
If "No" or "Other": stop and suggest `/pbr:plan-phase {N}` to review plans
|
|
151
|
+
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
|
|
83
152
|
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)
|
|
84
153
|
|
|
85
154
|
**Staleness check (dependency fingerprints):**
|
|
86
155
|
After validating prerequisites, check plan staleness:
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
10. If plans have no `dependency_fingerprints` field, fall back to timestamp-based staleness detection:
|
|
99
|
-
a. Read `.planning/ROADMAP.md` and identify the current phase's dependencies (the `depends_on` field)
|
|
100
|
-
b. For each dependency phase, find its phase directory under `.planning/phases/`
|
|
101
|
-
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
|
|
102
|
-
d. If any upstream dependency was modified after planning, display a warning (do NOT block):
|
|
103
|
-
```
|
|
104
|
-
Warning: Phase {dep_phase} (dependency of Phase {N}) was modified after this phase was planned.
|
|
105
|
-
Plans may be based on outdated assumptions. Consider re-planning with `/pbr:plan {N}`.
|
|
106
|
-
```
|
|
107
|
-
e. This is advisory only — continue with the build after displaying the warning
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
node ${CLAUDE_PLUGIN_ROOT}/scripts/pbr-tools.js staleness-check {phase-slug}
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
Returns `{ stale: bool, plans: [{id, stale, reason}] }`. If `stale: true` for any plan:
|
|
162
|
+
- Use AskUserQuestion (pattern: stale-continue from `skills/shared/gate-prompts.md`):
|
|
163
|
+
question: "Plan {plan_id} may be stale — {reason}"
|
|
164
|
+
options: ["Continue anyway", "Re-plan with /pbr:plan-phase {N}"]
|
|
165
|
+
- If "Re-plan": stop. If "Continue anyway": proceed.
|
|
166
|
+
If `stale: false`: proceed silently.
|
|
108
167
|
|
|
109
168
|
**Validation errors — use branded error boxes:**
|
|
110
169
|
|
|
@@ -116,24 +175,33 @@ If no plans found:
|
|
|
116
175
|
|
|
117
176
|
Phase {N} has no plans.
|
|
118
177
|
|
|
119
|
-
**To fix:** Run `/pbr:plan {N}` first.
|
|
178
|
+
**To fix:** Run `/pbr:plan-phase {N}` first.
|
|
120
179
|
```
|
|
121
180
|
|
|
122
|
-
If dependencies incomplete:
|
|
123
|
-
```
|
|
124
|
-
╔══════════════════════════════════════════════════════════════╗
|
|
125
|
-
║ ERROR ║
|
|
126
|
-
╚══════════════════════════════════════════════════════════════╝
|
|
181
|
+
If dependencies incomplete, use conversational recovery:
|
|
127
182
|
|
|
128
|
-
|
|
183
|
+
1. Run: `node ${CLAUDE_PLUGIN_ROOT}/scripts/pbr-tools.js suggest-alternatives missing-prereq {dependency-phase-slug}`
|
|
184
|
+
2. Parse the JSON response to get `existing_summaries`, `missing_summaries`, and `suggested_action`.
|
|
185
|
+
3. Display what summaries exist and what is still missing.
|
|
186
|
+
4. Use AskUserQuestion (pattern: yes-no from `skills/shared/gate-prompts.md`) to offer:
|
|
187
|
+
- "Build {dependency-phase} first" — stop and show: `/pbr:execute-phase {dependency-phase}`
|
|
188
|
+
- "Continue anyway (skip dependency check)" — proceed with build, note unmet deps in output
|
|
129
189
|
|
|
130
|
-
|
|
131
|
-
|
|
190
|
+
If config validation fails for a specific field, use conversational recovery:
|
|
191
|
+
|
|
192
|
+
1. Run: `node ${CLAUDE_PLUGIN_ROOT}/scripts/pbr-tools.js suggest-alternatives config-invalid {field} {value}`
|
|
193
|
+
2. Parse the JSON response to get `valid_values` and `suggested_fix`.
|
|
194
|
+
3. Display the invalid field, its current value, and the valid options.
|
|
195
|
+
4. Use AskUserQuestion to offer: "Fix config.json now, or continue with current value?"
|
|
196
|
+
- If "Fix now": stop and display the `suggested_fix` instruction.
|
|
197
|
+
- If "Continue": proceed with default value for that field.
|
|
132
198
|
|
|
133
199
|
---
|
|
134
200
|
|
|
135
201
|
### Step 2: Load Config (inline)
|
|
136
202
|
|
|
203
|
+
**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.
|
|
204
|
+
|
|
137
205
|
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`.
|
|
138
206
|
|
|
139
207
|
---
|
|
@@ -156,7 +224,7 @@ This returns a JSON object with `plans` (array with plan_id, wave, depends_on, a
|
|
|
156
224
|
4. Sort plans by plan number
|
|
157
225
|
|
|
158
226
|
**If no plans match filters:**
|
|
159
|
-
- With `--gaps-only`: "No gap-closure plans found. Run `/pbr:plan {N} --gaps` first."
|
|
227
|
+
- With `--gaps-only`: "No gap-closure plans found. Run `/pbr:plan-phase {N} --gaps` first."
|
|
160
228
|
- Without filter: "No plans found in phase directory."
|
|
161
229
|
|
|
162
230
|
---
|
|
@@ -181,7 +249,7 @@ Use AskUserQuestion (pattern: yes-no from `skills/shared/gate-prompts.md`):
|
|
|
181
249
|
- label: "Yes" description: "Delete existing SUMMARYs and re-execute all plans"
|
|
182
250
|
- label: "No" description: "Keep existing build — review instead"
|
|
183
251
|
- If "Yes": delete SUMMARY files and proceed
|
|
184
|
-
- If "No" or "Other": suggest `/pbr:
|
|
252
|
+
- If "No" or "Other": suggest `/pbr:verify-work {N}`
|
|
185
253
|
|
|
186
254
|
---
|
|
187
255
|
|
|
@@ -196,30 +264,167 @@ Validate wave consistency:
|
|
|
196
264
|
|
|
197
265
|
---
|
|
198
266
|
|
|
267
|
+
### Step 5a: Pre-Spawn Intra-Phase Conflict Detection (conditional)
|
|
268
|
+
|
|
269
|
+
**Trigger:** Only run if `context_window_tokens` in `.planning/config.json` is >= 500000.
|
|
270
|
+
|
|
271
|
+
If the condition is false, skip this step entirely and proceed to Step 5c.
|
|
272
|
+
|
|
273
|
+
**Purpose:** Before spawning any executor, detect whether plans within this phase conflict with each other — specifically plans that are assigned to the same wave (and would run in parallel) but modify the same files or share import graph dependencies without an explicit `depends_on` relationship. This prevents silent data-race failures where two parallel executors clobber each other's writes.
|
|
274
|
+
|
|
275
|
+
**Procedure:**
|
|
276
|
+
|
|
277
|
+
1. Use the `plan-index` output already collected in Step 3. No additional file reads are needed. Extract from each plan:
|
|
278
|
+
- `plan_id`
|
|
279
|
+
- `wave`
|
|
280
|
+
- `depends_on` list
|
|
281
|
+
- `files_modified` list
|
|
282
|
+
|
|
283
|
+
2. **Same-file conflict detection:** For every pair of plans in the same wave, compute the intersection of their `files_modified` lists. A non-empty intersection is a **direct conflict** — both plans write the same file in parallel.
|
|
284
|
+
|
|
285
|
+
3. **Import graph overlap detection:** For every pair of plans in the same wave that do NOT share a direct file conflict, check for shared directory prefix overlap. If plan A modifies `src/auth/session.ts` and plan B modifies `src/auth/middleware.ts`, they share the `src/auth/` subtree — flag as a **potential conflict** (import graph sibling edits may cause merge conflicts or runtime breakage even without touching the same file).
|
|
286
|
+
|
|
287
|
+
Overlap rule: two files share a directory prefix if their paths share at least one path segment beyond the project root (e.g., both under `src/auth/` or both under `plugins/pbr/scripts/`).
|
|
288
|
+
|
|
289
|
+
4. **Implicit dependency detection:** For every pair of plans across ANY waves (not just same-wave) where plan B's `files_modified` overlaps with plan A's `files_modified` BUT plan B does NOT list plan A in its `depends_on` (and plan A is in an earlier wave), flag as an **implicit dependency warning** — plan B will overwrite plan A's work without declaring the dependency.
|
|
290
|
+
|
|
291
|
+
5. Build a conflict report:
|
|
292
|
+
|
|
293
|
+
```
|
|
294
|
+
Intra-Phase Conflict Detection Results
|
|
295
|
+
|
|
296
|
+
Plans analyzed: {count} | Context: {context_window_tokens} tokens
|
|
297
|
+
|
|
298
|
+
{If direct conflicts found:}
|
|
299
|
+
DIRECT CONFLICTS (same file, same wave — parallel execution will clobber):
|
|
300
|
+
|
|
301
|
+
| File | Plan A | Plan B | Wave |
|
|
302
|
+
|------|--------|--------|------|
|
|
303
|
+
| {path} | {plan_id} | {plan_id} | {wave} |
|
|
304
|
+
|
|
305
|
+
{If potential conflicts found:}
|
|
306
|
+
POTENTIAL CONFLICTS (shared directory subtree, same wave):
|
|
307
|
+
|
|
308
|
+
| Shared Prefix | Plan A | Plan B | Wave |
|
|
309
|
+
|---------------|--------|--------|------|
|
|
310
|
+
| {prefix}/ | {plan_id} | {plan_id} | {wave} |
|
|
311
|
+
|
|
312
|
+
{If implicit dependencies found:}
|
|
313
|
+
IMPLICIT DEPENDENCIES (file overlap, no depends_on declared):
|
|
314
|
+
|
|
315
|
+
| File | Earlier Plan | Later Plan | Missing depends_on |
|
|
316
|
+
|------|-------------|------------|-------------------|
|
|
317
|
+
| {path} | {plan_id} (wave {W}) | {plan_id} (wave {W+N}) | {plan_id} not in depends_on |
|
|
318
|
+
|
|
319
|
+
{If conflicts found:}
|
|
320
|
+
Suggested wave reordering:
|
|
321
|
+
{For each direct conflict pair: "Move {plan_id} to wave {current_wave + 1} and add depends_on: ['{other_plan_id}']"}
|
|
322
|
+
{For each implicit dependency: "Add depends_on: ['{earlier_plan_id}'] to {later_plan_id}"}
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
6. If **any** conflicts or warnings were found, present the report and use AskUserQuestion (pattern: yes-no from `skills/shared/gate-prompts.md`):
|
|
326
|
+
|
|
327
|
+
```
|
|
328
|
+
question: "{N} conflict(s) detected between plans in this phase. Proceed anyway?"
|
|
329
|
+
header: "Intra-Phase Conflicts"
|
|
330
|
+
options:
|
|
331
|
+
- label: "Proceed" description: "Continue — conflicts are intentional or I will fix them manually"
|
|
332
|
+
- label: "Abort" description: "Stop — I need to re-plan with /pbr:plan-phase {N}"
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
If user selects "Abort": stop the build. Display: "Re-run `/pbr:plan-phase {N}` and apply the suggested wave reordering above."
|
|
336
|
+
|
|
337
|
+
If user selects "Proceed": log a deviation — `DEVIATION: Intra-phase conflict(s) acknowledged by user. Plans: {conflicting plan IDs}.` — then continue to Step 5c.
|
|
338
|
+
|
|
339
|
+
7. If **no conflicts found**: display `✓ No intra-phase conflicts detected. Proceeding.` and continue to Step 5c silently.
|
|
340
|
+
|
|
341
|
+
---
|
|
342
|
+
|
|
343
|
+
### Step 5c: Pre-Spawn Cross-Phase Conflict Check (conditional)
|
|
344
|
+
|
|
345
|
+
Runs after Step 5a (intra-phase conflict detection).
|
|
346
|
+
|
|
347
|
+
**Trigger:** Only run if `--cross-check` flag is present in `$ARGUMENTS` AND `context_window_tokens` in `.planning/config.json` is >= 500000.
|
|
348
|
+
|
|
349
|
+
If either condition is false, skip this step entirely and proceed to Step 5b (checkpoint manifest).
|
|
350
|
+
|
|
351
|
+
**Purpose:** Before spawning any executor, detect whether this phase's planned file modifications conflict with artifacts or provides from prior completed phases. A conflict means the current phase may overwrite or break something a prior phase established.
|
|
352
|
+
|
|
353
|
+
**Procedure:**
|
|
354
|
+
|
|
355
|
+
1. Collect current phase `files_modified` from all PLAN.md frontmatters:
|
|
356
|
+
|
|
357
|
+
```bash
|
|
358
|
+
node ${CLAUDE_PLUGIN_ROOT}/scripts/pbr-tools.js plan-index {phase-slug}
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
Extract the union of all `files_modified` arrays across plans. This is the **change surface**.
|
|
362
|
+
|
|
363
|
+
2. Collect prior completed phase provides:
|
|
364
|
+
|
|
365
|
+
```bash
|
|
366
|
+
node ${CLAUDE_PLUGIN_ROOT}/scripts/pbr-tools.js phase-list --status verified --before {phase_number}
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
For each returned phase, read SUMMARY.md `provides` list (frontmatter only — keep context lean).
|
|
370
|
+
|
|
371
|
+
3. Compare: for each prior-phase `provides` entry that names a specific file path, check if that path appears in the current phase's change surface.
|
|
372
|
+
|
|
373
|
+
4. Present conflict report to user before proceeding:
|
|
374
|
+
|
|
375
|
+
```
|
|
376
|
+
Cross-Phase Conflict Check Results
|
|
377
|
+
|
|
378
|
+
Files in scope: {count}
|
|
379
|
+
Prior phases checked: {count}
|
|
380
|
+
|
|
381
|
+
{If conflicts found:}
|
|
382
|
+
⚠ Potential conflicts detected:
|
|
383
|
+
|
|
384
|
+
| File | Current Phase Plans | Prior Phase That Provides It |
|
|
385
|
+
|------|---------------------|------------------------------|
|
|
386
|
+
| {path} | {plan_ids} | Phase {N}: {slug} |
|
|
387
|
+
|
|
388
|
+
These files were established as deliverables by prior phases. Modifying them may cause regressions.
|
|
389
|
+
```
|
|
390
|
+
|
|
391
|
+
Use AskUserQuestion (pattern: yes-no from `skills/shared/gate-prompts.md`):
|
|
392
|
+
|
|
393
|
+
```
|
|
394
|
+
question: "{count} potential cross-phase conflicts detected. Proceed with build?"
|
|
395
|
+
header: "Conflicts"
|
|
396
|
+
options:
|
|
397
|
+
- label: "Proceed" description: "Continue — I reviewed the conflicts and they are intentional"
|
|
398
|
+
- label: "Abort" description: "Stop — I need to review the plan before building"
|
|
399
|
+
```
|
|
400
|
+
|
|
401
|
+
```
|
|
402
|
+
{If no conflicts found:}
|
|
403
|
+
✓ No cross-phase conflicts detected. Proceeding to executor spawn.
|
|
404
|
+
```
|
|
405
|
+
|
|
406
|
+
5. If user selects "Abort": stop the build. Suggest reviewing the flagged plan files and running `/pbr:plan-phase {N}` to revise if needed.
|
|
407
|
+
6. If user selects "Proceed" or no conflicts found: continue to Step 5b (checkpoint manifest).
|
|
408
|
+
|
|
409
|
+
---
|
|
410
|
+
|
|
199
411
|
### Step 5b: Write Checkpoint Manifest (inline)
|
|
200
412
|
|
|
201
|
-
|
|
413
|
+
**CRITICAL (hook-enforced): Initialize checkpoint manifest NOW before entering the wave loop.**
|
|
202
414
|
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
"checkpoints_pending": [],
|
|
208
|
-
"wave": 1,
|
|
209
|
-
"deferred": [],
|
|
210
|
-
"commit_log": [],
|
|
211
|
-
"last_good_commit": null
|
|
212
|
-
}
|
|
415
|
+
**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.
|
|
416
|
+
|
|
417
|
+
```bash
|
|
418
|
+
node ${CLAUDE_PLUGIN_ROOT}/scripts/pbr-tools.js checkpoint init {phase-slug} --plans "{comma-separated plan IDs}"
|
|
213
419
|
```
|
|
214
420
|
|
|
215
|
-
|
|
421
|
+
After each wave completes, update the manifest:
|
|
422
|
+
|
|
423
|
+
```bash
|
|
424
|
+
node ${CLAUDE_PLUGIN_ROOT}/scripts/pbr-tools.js checkpoint update {phase-slug} --wave {N} --resolved {plan-id} --sha {commit-sha}
|
|
425
|
+
```
|
|
216
426
|
|
|
217
|
-
|
|
218
|
-
- Move completed plan IDs into `checkpoints_resolved`
|
|
219
|
-
- Advance the `wave` counter
|
|
220
|
-
- Record commit SHAs in `commit_log` (array of `{ plan, sha, timestamp }` objects)
|
|
221
|
-
- Update `last_good_commit` to the SHA of the last successfully verified commit
|
|
222
|
-
- Append any deferred items collected from executor SUMMARYs
|
|
427
|
+
This tracks execution for crash recovery and rollback. Read `.checkpoint-manifest.json` on resume to reconstruct which plans are complete.
|
|
223
428
|
|
|
224
429
|
---
|
|
225
430
|
|
|
@@ -242,12 +447,24 @@ For each wave, in order (Wave 1, then Wave 2, etc.):
|
|
|
242
447
|
|
|
243
448
|
For each plan in the current wave (excluding skipped plans):
|
|
244
449
|
|
|
450
|
+
**Local LLM plan quality check (optional, advisory):**
|
|
451
|
+
|
|
452
|
+
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:
|
|
453
|
+
|
|
454
|
+
```bash
|
|
455
|
+
node ${CLAUDE_PLUGIN_ROOT}/scripts/pbr-tools.js llm classify PLAN ".planning/phases/{NN}-{slug}/{plan_id}-PLAN.md"
|
|
456
|
+
```
|
|
457
|
+
|
|
458
|
+
- 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."`
|
|
459
|
+
- If the command fails or returns null: skip silently (local LLM unavailable — not an error)
|
|
460
|
+
- This is advisory only — never block on the result
|
|
461
|
+
|
|
245
462
|
**Present plan narrative before spawning:**
|
|
246
463
|
|
|
247
464
|
Display to the user before spawning:
|
|
248
465
|
|
|
249
466
|
```
|
|
250
|
-
|
|
467
|
+
◆ Spawning {N} executor(s) for Wave {W}...
|
|
251
468
|
```
|
|
252
469
|
|
|
253
470
|
Then present a brief narrative for each plan to give the user context on what's about to happen:
|
|
@@ -269,6 +486,7 @@ This is a read-only presentation step — extract descriptions from plan frontma
|
|
|
269
486
|
|
|
270
487
|
**Model Selection (Adaptive)**:
|
|
271
488
|
Before spawning the executor for each plan, determine the model:
|
|
489
|
+
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.
|
|
272
490
|
1. Read the plan's task elements for `complexity` and `model` attributes
|
|
273
491
|
2. If ANY task has an explicit `model` attribute, use the most capable model among them (inherit > sonnet > haiku)
|
|
274
492
|
3. Otherwise, use the HIGHEST complexity among the plan's tasks to select the model:
|
|
@@ -276,66 +494,25 @@ Before spawning the executor for each plan, determine the model:
|
|
|
276
494
|
4. If `config.models.executor` is set (non-null), it overrides adaptive selection entirely — use that model for all executors
|
|
277
495
|
5. Pass the selected model to the Task() spawn
|
|
278
496
|
|
|
497
|
+
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`.
|
|
498
|
+
|
|
279
499
|
Reference: `references/model-selection.md` for full details.
|
|
280
500
|
|
|
281
501
|
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.
|
|
282
|
-
2. Read `.planning/
|
|
502
|
+
2. Read `.planning/PROJECT.md` ## Context section (if exists; backwards compat: fall back to `.planning/CONTEXT.md` if PROJECT.md has no ## Context)
|
|
283
503
|
3. Read `.planning/STATE.md`
|
|
284
504
|
4. Read prior SUMMARY.md files from the same phase (completed plans in earlier waves)
|
|
285
505
|
5. Read `.planning/config.json`
|
|
286
506
|
|
|
287
|
-
Construct the executor prompt:
|
|
288
|
-
|
|
289
|
-
```
|
|
290
|
-
You are the executor agent. Execute the following plan.
|
|
291
|
-
|
|
292
|
-
<plan_summary>
|
|
293
|
-
[Inline only the ## Summary section from PLAN.md]
|
|
294
|
-
</plan_summary>
|
|
507
|
+
Construct the executor prompt by reading `${CLAUDE_SKILL_DIR}/templates/executor-prompt.md.tmpl` and filling in all `{placeholder}` values:
|
|
295
508
|
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
509
|
+
- `{NN}-{slug}` — phase directory (e.g., `02-authentication`)
|
|
510
|
+
- `{plan_id}` — plan being executed (e.g., `02-01`)
|
|
511
|
+
- `{commit_format}`, `{tdd_mode}`, `{atomic_commits}` — from loaded config
|
|
512
|
+
- File paths: absolute paths to project root, config.json, STATE.md, PROJECT.md
|
|
513
|
+
- `{prior_work table rows}` — one row per completed plan in this phase
|
|
299
514
|
|
|
300
|
-
|
|
301
|
-
Project root: {absolute path to project root}
|
|
302
|
-
Platform: {win32|linux|darwin}
|
|
303
|
-
|
|
304
|
-
Config:
|
|
305
|
-
commit_format: {commit_format from config}
|
|
306
|
-
tdd_mode: {tdd_mode from config}
|
|
307
|
-
atomic_commits: {atomic_commits from config}
|
|
308
|
-
|
|
309
|
-
Available context files (read via Read tool as needed):
|
|
310
|
-
- Config: {absolute path to config.json}
|
|
311
|
-
- State: {absolute path to STATE.md}
|
|
312
|
-
{If CONTEXT.md exists:}
|
|
313
|
-
- Project context (locked decisions): {absolute path to CONTEXT.md}
|
|
314
|
-
</project_context>
|
|
315
|
-
|
|
316
|
-
<prior_work>
|
|
317
|
-
Completed plans in this phase:
|
|
318
|
-
| Plan | Status | Commits | Summary File |
|
|
319
|
-
|------|--------|---------|-------------|
|
|
320
|
-
| {plan_id} | complete | {hash1}, {hash2} | {absolute path to SUMMARY.md} |
|
|
321
|
-
|
|
322
|
-
Read any SUMMARY file via Read tool if you need details on what prior plans produced.
|
|
323
|
-
</prior_work>
|
|
324
|
-
|
|
325
|
-
Execute all tasks in the plan sequentially. For each task:
|
|
326
|
-
0. Read the full plan file from the path in <plan_file> to get task details
|
|
327
|
-
1. Execute the <action> steps
|
|
328
|
-
2. Run the <verify> commands
|
|
329
|
-
3. Create an atomic commit with format: {commit_format}
|
|
330
|
-
4. Record the commit hash
|
|
331
|
-
|
|
332
|
-
After all tasks complete:
|
|
333
|
-
1. Write SUMMARY.md to .planning/phases/{NN}-{slug}/SUMMARY-{plan_id}.md
|
|
334
|
-
2. Run self-check (verify files exist, commits exist, verify commands still pass)
|
|
335
|
-
3. Return your SUMMARY.md content as your final response
|
|
336
|
-
|
|
337
|
-
If you hit a checkpoint task, STOP and return the checkpoint response format immediately.
|
|
338
|
-
```
|
|
515
|
+
Use the filled template as the Task() prompt.
|
|
339
516
|
|
|
340
517
|
**Spawn strategy based on config:**
|
|
341
518
|
|
|
@@ -358,7 +535,9 @@ Task({
|
|
|
358
535
|
prompt: <executor prompt constructed above>
|
|
359
536
|
})
|
|
360
537
|
|
|
361
|
-
NOTE: The pbr:executor subagent type auto-loads the agent definition.
|
|
538
|
+
NOTE: The pbr:executor subagent type auto-loads the agent definition.
|
|
539
|
+
|
|
540
|
+
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.
|
|
362
541
|
```
|
|
363
542
|
|
|
364
543
|
**Path resolution**: Before constructing the agent prompt, resolve `${CLAUDE_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.
|
|
@@ -384,71 +563,70 @@ For each completed executor:
|
|
|
384
563
|
|
|
385
564
|
**Spot-check executor claims:**
|
|
386
565
|
|
|
387
|
-
|
|
388
|
-
- Pick 2-3 files from the SUMMARY's `key_files` list and verify they exist (`ls`)
|
|
389
|
-
- Run `git log --oneline -n {commit_count}` and confirm the count matches the claimed commits
|
|
390
|
-
- For each spot-checked file, verify it has >10 lines (`wc -l`): warn if trivially small
|
|
391
|
-
- For each spot-checked file, search for TODO/FIXME/placeholder/stub markers: warn if found
|
|
392
|
-
- Check SUMMARY.md frontmatter for `self_check_failures`: if present, warn the user:
|
|
393
|
-
"Plan {id} reported self-check failures: {list failures}. Inspect before continuing?"
|
|
394
|
-
- If ANY spot-check fails, warn the user before proceeding to the next wave:
|
|
395
|
-
"Spot-check failed for plan {id}: {detail}. Inspect before continuing?"
|
|
566
|
+
CRITICAL (no hook): Before reading results or advancing to the next wave, run the spot-check CLI for each completed plan.
|
|
396
567
|
|
|
397
|
-
|
|
568
|
+
For each completed plan in this wave:
|
|
569
|
+
|
|
570
|
+
```bash
|
|
571
|
+
node ${CLAUDE_PLUGIN_ROOT}/scripts/pbr-tools.js spot-check {phaseSlug} {planId}
|
|
572
|
+
```
|
|
573
|
+
|
|
574
|
+
Where `{phaseSlug}` is the phase directory name (e.g., `49-build-workflow-hardening`) and `{planId}` is the plan identifier (e.g., `49-01`).
|
|
575
|
+
|
|
576
|
+
The command returns JSON: `{ ok, summary_exists, key_files_checked, commits_present, detail }`
|
|
577
|
+
|
|
578
|
+
**If `ok` is `false` for ANY plan: STOP.** Do NOT advance to the next wave. Present the user with:
|
|
398
579
|
|
|
580
|
+
```
|
|
581
|
+
Spot-check FAILED for plan {planId}: {detail}
|
|
582
|
+
|
|
583
|
+
Choose an action:
|
|
584
|
+
Retry — Re-spawn executor for this plan
|
|
585
|
+
Continue — Skip this plan and proceed to next wave (may leave phase incomplete)
|
|
586
|
+
Abort — Stop the build entirely
|
|
587
|
+
```
|
|
588
|
+
|
|
589
|
+
Use AskUserQuestion with the three options. Route:
|
|
590
|
+
|
|
591
|
+
- Retry: Re-spawn the executor for this plan (go back to Step 6a for this plan only)
|
|
592
|
+
- Continue: Log the failure, skip the plan, proceed
|
|
593
|
+
- Abort: Stop all build work, leave phase in partial state
|
|
594
|
+
|
|
595
|
+
**If `ok` is `true` for all plans:**
|
|
596
|
+
|
|
597
|
+
- Also check SUMMARY.md frontmatter for `self_check_failures`: if present, warn the user: "Plan {id} reported self-check failures: {list}. Inspect before continuing?"
|
|
598
|
+
- Also search SUMMARY.md for `## Self-Check: FAILED` marker — if present, warn before next wave
|
|
599
|
+
- Between waves: verify no file conflicts from parallel executors (`git status` for uncommitted changes)
|
|
600
|
+
|
|
601
|
+
**Read executor deviations:**
|
|
399
602
|
After all executors in the wave complete, read all SUMMARY frontmatter and:
|
|
400
603
|
- Collect `deferred` items into a running list (append to `.checkpoint-manifest.json` deferred array)
|
|
401
604
|
- Flag any deviation-rule-4 (architectural) stops — these require user attention
|
|
402
605
|
- Present a brief wave summary to the user:
|
|
403
606
|
"Wave {W} complete. {N} plans done. {D} deferred ideas logged. {A} architectural issues."
|
|
404
607
|
|
|
405
|
-
Build a wave results table:
|
|
608
|
+
Build a wave results table using standardized status symbols (`✓` complete, `✗` failed, `◆` in-progress, `○` pending — see `@references/ui-brand.md`):
|
|
406
609
|
|
|
407
610
|
```
|
|
408
611
|
Wave {W} Results:
|
|
409
612
|
| Plan | Status | Tasks | Commits | Deviations |
|
|
410
613
|
|------|--------|-------|---------|------------|
|
|
411
|
-
| {id} | complete | 3/3 | abc, def, ghi | 0 |
|
|
412
|
-
| {id} | complete | 2/2 | jkl, mno | 1 |
|
|
614
|
+
| {id} | ✓ complete | 3/3 | abc, def, ghi | 0 |
|
|
615
|
+
| {id} | ✓ complete | 2/2 | jkl, mno | 1 |
|
|
413
616
|
```
|
|
414
617
|
|
|
415
618
|
#### 6c-ii. Inline Per-Task Verification (conditional)
|
|
416
619
|
|
|
417
620
|
**Skip if** the depth profile has `features.inline_verify: false`.
|
|
418
621
|
|
|
419
|
-
To check: use the resolved depth profile. Only `comprehensive` mode enables inline verification by default.
|
|
420
|
-
|
|
421
|
-
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.
|
|
622
|
+
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.
|
|
422
623
|
|
|
423
624
|
For each plan that completed successfully in this wave:
|
|
424
625
|
|
|
425
626
|
1. Read the plan's SUMMARY.md to get `key_files` (the files this plan created/modified)
|
|
426
|
-
2. Display to the user:
|
|
427
|
-
|
|
428
|
-
Spawn a lightweight verifier:
|
|
429
|
-
|
|
430
|
-
<!-- NOTE: This is a targeted inline check (existence/substantiveness/wiring for specific files),
|
|
431
|
-
NOT the full must-have verifier. The canonical full verifier prompt lives in
|
|
432
|
-
agents/verifier.md and is templated via skills/review/templates/verifier-prompt.md.tmpl.
|
|
433
|
-
Keep this lightweight prompt distinct from the full verifier. -->
|
|
434
|
-
|
|
435
|
-
```
|
|
436
|
-
Task({
|
|
437
|
-
subagent_type: "pbr:verifier",
|
|
438
|
-
model: "haiku",
|
|
439
|
-
prompt: "Targeted inline verification for plan {plan_id}.
|
|
440
|
-
|
|
441
|
-
Verify ONLY these files: {comma-separated key_files list}
|
|
627
|
+
2. Display to the user: `◆ Spawning inline verifier for plan {plan_id}...`
|
|
442
628
|
|
|
443
|
-
|
|
444
|
-
1. Existence — does the file exist?
|
|
445
|
-
2. Substantiveness — is it more than a stub? (>10 lines, no TODO/FIXME placeholders)
|
|
446
|
-
3. Wiring — is it imported/used by at least one other file?
|
|
447
|
-
|
|
448
|
-
Report PASS or FAIL with a one-line reason per file.
|
|
449
|
-
Write nothing to disk — just return your results as text."
|
|
450
|
-
})
|
|
451
|
-
```
|
|
629
|
+
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.
|
|
452
630
|
|
|
453
631
|
3. If verifier reports FAIL for any file:
|
|
454
632
|
- Present the failure to the user: "Inline verify failed for plan {plan_id}: {details}"
|
|
@@ -507,19 +685,22 @@ Use AskUserQuestion (pattern: multi-option-failure from `skills/shared/gate-prom
|
|
|
507
685
|
- If yes: warn user that those plans will also need to be skipped or adjusted
|
|
508
686
|
|
|
509
687
|
**If user selects 'Rollback':**
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
688
|
+
Run the rollback CLI:
|
|
689
|
+
|
|
690
|
+
```bash
|
|
691
|
+
node ${CLAUDE_PLUGIN_ROOT}/scripts/pbr-tools.js rollback .planning/phases/{NN}-{slug}/.checkpoint-manifest.json
|
|
692
|
+
```
|
|
693
|
+
|
|
694
|
+
Returns `{ ok, rolled_back_to, plans_invalidated, files_deleted, warnings }`.
|
|
695
|
+
|
|
696
|
+
- If `ok` is `true`: display "Rolled back to commit {rolled_back_to}. {plans_invalidated.length} downstream plans invalidated."
|
|
697
|
+
Show any warnings. Continue to next wave or stop based on user preference.
|
|
698
|
+
- If `ok` is `false`: display the error message. Suggest "Use abort instead."
|
|
518
699
|
|
|
519
700
|
**If user selects 'Abort':**
|
|
520
701
|
- Update STATE.md with current progress
|
|
521
702
|
- Present what was completed before the abort
|
|
522
|
-
- Suggest: "Fix the issue and run `/pbr:
|
|
703
|
+
- Suggest: "Fix the issue and run `/pbr:execute-phase {N}` to resume (completed plans will be skipped)"
|
|
523
704
|
|
|
524
705
|
#### 6e. Handle Checkpoints
|
|
525
706
|
|
|
@@ -543,51 +724,50 @@ Checkpoint in Plan {id}, Task {N}: {checkpoint type}
|
|
|
543
724
|
|
|
544
725
|
Reference: `references/continuation-format.md` for the continuation protocol.
|
|
545
726
|
|
|
546
|
-
|
|
547
|
-
You are the executor agent. Continue executing a plan from a checkpoint.
|
|
548
|
-
|
|
549
|
-
<plan_summary>
|
|
550
|
-
[Inline only the ## Summary section from PLAN.md]
|
|
551
|
-
</plan_summary>
|
|
727
|
+
Read `${CLAUDE_SKILL_DIR}/templates/continuation-prompt.md.tmpl` and fill in:
|
|
552
728
|
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
729
|
+
- `{NN}-{slug}`, `{plan_id}` — current phase and plan
|
|
730
|
+
- `{plan_summary}` — the ## Summary section from PLAN.md
|
|
731
|
+
- `{task table rows}` — one row per task with completion status
|
|
732
|
+
- `{user's response}` — the checkpoint resolution from Step 3
|
|
733
|
+
- `{project context key-values}` — config values + file paths
|
|
556
734
|
|
|
557
|
-
|
|
558
|
-
| Task | Commit | Status |
|
|
559
|
-
|------|--------|--------|
|
|
560
|
-
| {task_name} | {hash} | complete |
|
|
561
|
-
| {task_name} | {hash} | complete |
|
|
562
|
-
| {checkpoint_task} | — | checkpoint |
|
|
563
|
-
</completed_tasks>
|
|
735
|
+
Use the filled template as the Task() prompt.
|
|
564
736
|
|
|
565
|
-
|
|
566
|
-
User response to checkpoint: {user's response}
|
|
567
|
-
Resume at: Task {N+1} (or re-execute checkpoint task with user's answer)
|
|
568
|
-
</checkpoint_resolution>
|
|
737
|
+
#### 6e-ii. CI Gate (after wave completion, conditional)
|
|
569
738
|
|
|
570
|
-
|
|
571
|
-
{Same lean context as original spawn — config key-values + file paths, not inlined bodies}
|
|
572
|
-
</project_context>
|
|
739
|
+
If `config.ci.gate_enabled` is `true` AND `config.git.branching` is not `none`:
|
|
573
740
|
|
|
574
|
-
|
|
575
|
-
|
|
741
|
+
1. Push current commits: `git push`
|
|
742
|
+
2. Wait 5 seconds for CI to trigger
|
|
743
|
+
3. Get the current run ID:
|
|
744
|
+
```bash
|
|
745
|
+
gh run list --branch $(git branch --show-current) --limit 1 --json databaseId -q '.[0].databaseId'
|
|
746
|
+
```
|
|
747
|
+
4. Poll CI status using CLI:
|
|
748
|
+
```bash
|
|
749
|
+
node ${CLAUDE_PLUGIN_ROOT}/scripts/pbr-tools.js ci-poll <run-id> [--timeout <seconds>]
|
|
750
|
+
```
|
|
751
|
+
Returns `{ status, conclusion, url, next_action, elapsed_seconds }`.
|
|
752
|
+
5. If `next_action` is `"continue"`: proceed to next wave
|
|
753
|
+
6. If `next_action` is `"wait"`: re-run ci-poll after 15 seconds (repeat up to `config.ci.wait_timeout_seconds`)
|
|
754
|
+
7. If `next_action` is `"abort"` or `status` is `"failed"`:
|
|
755
|
+
Show warning box and use AskUserQuestion: Wait / Continue anyway / Abort
|
|
756
|
+
8. If "Continue anyway": log deviation — `DEVIATION: CI gate bypassed for wave {N}`
|
|
757
|
+
9. If "Abort": stop build, update STATE.md
|
|
576
758
|
|
|
577
759
|
#### 6f. Update STATE.md
|
|
578
760
|
|
|
579
761
|
After each wave completes (all plans in the wave are done, skipped, or aborted):
|
|
580
762
|
|
|
581
763
|
**SUMMARY gate — verify before updating STATE.md:**
|
|
764
|
+
For every plan in the wave, run:
|
|
582
765
|
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
3. SUMMARY file has a valid title and YAML frontmatter (contains `---` delimiters and a `status:` field)
|
|
766
|
+
```bash
|
|
767
|
+
node ${CLAUDE_PLUGIN_ROOT}/scripts/pbr-tools.js summary-gate {phase-slug} {plan-id}
|
|
768
|
+
```
|
|
587
769
|
|
|
588
|
-
Block
|
|
589
|
-
- Warn user: "SUMMARY gate failed for plan {id}: {which gate}. Cannot update STATE.md."
|
|
590
|
-
- Ask user to retry the executor or manually inspect the SUMMARY file
|
|
770
|
+
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."
|
|
591
771
|
|
|
592
772
|
Once gates pass, update `.planning/STATE.md`:
|
|
593
773
|
|
|
@@ -605,6 +785,15 @@ node ${CLAUDE_PLUGIN_ROOT}/scripts/pbr-tools.js state update last_activity now
|
|
|
605
785
|
|
|
606
786
|
**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).
|
|
607
787
|
|
|
788
|
+
**Completion check:** Before proceeding to next wave, confirm ALL of:
|
|
789
|
+
- [ ] SUMMARY gate passed for every plan in this wave
|
|
790
|
+
- [ ] STATE.md frontmatter `plans_complete` updated
|
|
791
|
+
- [ ] STATE.md body progress bar updated
|
|
792
|
+
- [ ] `last_activity` timestamp refreshed
|
|
793
|
+
|
|
794
|
+
To verify programmatically: `node ${CLAUDE_PLUGIN_ROOT}/scripts/pbr-tools.js step-verify build step-6f '["STATE.md updated","SUMMARY.md exists","commit made"]'`
|
|
795
|
+
If any item fails, investigate before proceeding to Step 7.
|
|
796
|
+
|
|
608
797
|
---
|
|
609
798
|
|
|
610
799
|
### Step 7: Phase Verification (delegated, conditional)
|
|
@@ -621,11 +810,11 @@ To check: run `node ${CLAUDE_PLUGIN_ROOT}/scripts/pbr-tools.js config resolve-de
|
|
|
621
810
|
This implements budget mode's "skip verifier for < 3 tasks" rule: small phases in quick mode don't need a full verification pass.
|
|
622
811
|
|
|
623
812
|
**If skipping because `features.goal_verification` is `false`:**
|
|
624
|
-
Note for Step 8f completion summary: append "Note: Automatic verification was skipped (goal_verification: false). Run `/pbr:
|
|
813
|
+
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."
|
|
625
814
|
|
|
626
815
|
**If verification is enabled:**
|
|
627
816
|
|
|
628
|
-
Display to the user:
|
|
817
|
+
Display to the user: `◆ Spawning verifier...`
|
|
629
818
|
|
|
630
819
|
Spawn a verifier Task():
|
|
631
820
|
|
|
@@ -636,13 +825,25 @@ Task({
|
|
|
636
825
|
})
|
|
637
826
|
|
|
638
827
|
NOTE: The pbr:verifier subagent type auto-loads the agent definition. Do NOT inline it.
|
|
828
|
+
|
|
829
|
+
After verifier completes, check for completion marker: `## VERIFICATION COMPLETE`. Read VERIFICATION.md frontmatter for status.
|
|
639
830
|
```
|
|
640
831
|
|
|
641
832
|
**Path resolution**: Before constructing the agent prompt, resolve `${CLAUDE_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.
|
|
642
833
|
|
|
643
834
|
#### Verifier Prompt Template
|
|
644
835
|
|
|
645
|
-
Use the same verifier prompt template as defined in `/pbr:
|
|
836
|
+
Use the same verifier prompt template as defined in `/pbr:verify-work`: read `${CLAUDE_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.
|
|
837
|
+
|
|
838
|
+
**Prepend this block to the verifier prompt before sending:**
|
|
839
|
+
```
|
|
840
|
+
<files_to_read>
|
|
841
|
+
CRITICAL (no hook): Read these files BEFORE any other action:
|
|
842
|
+
1. .planning/phases/{NN}-{slug}/PLAN-*.md — must-haves to verify against
|
|
843
|
+
2. .planning/phases/{NN}-{slug}/SUMMARY-*.md — executor build summaries
|
|
844
|
+
3. .planning/phases/{NN}-{slug}/VERIFICATION.md — prior verification results (if exists)
|
|
845
|
+
</files_to_read>
|
|
846
|
+
```
|
|
646
847
|
|
|
647
848
|
After the verifier returns, read the VERIFICATION.md frontmatter and display the results:
|
|
648
849
|
|
|
@@ -663,7 +864,7 @@ If `--gaps-only` flag was used AND `features.goal_verification` is `true`:
|
|
|
663
864
|
2. Re-run the verifier using the same Step 7 process — this produces a fresh `VERIFICATION.md` that accounts for the gap-closure work
|
|
664
865
|
3. Read the new verification status for use in determining `final_status` below
|
|
665
866
|
|
|
666
|
-
This ensures that `/pbr:
|
|
867
|
+
This ensures that `/pbr:verify-work` after a `--gaps-only` build sees the updated verification state, not stale gaps from before the fix.
|
|
667
868
|
|
|
668
869
|
**8-pre-b. Determine final status based on verification:**
|
|
669
870
|
- If verification ran and status is `passed`: final_status = "built"
|
|
@@ -673,15 +874,17 @@ This ensures that `/pbr:review` after a `--gaps-only` build sees the updated ver
|
|
|
673
874
|
|
|
674
875
|
**8-pre-c. Codebase map incremental update (conditional):**
|
|
675
876
|
|
|
877
|
+
**CRITICAL (no hook): Run codebase map update if conditions are met. Do NOT skip this step.**
|
|
878
|
+
|
|
676
879
|
Only run if ALL of these are true:
|
|
677
|
-
- `.planning/codebase/` directory exists (project was previously scanned with `/pbr:
|
|
880
|
+
- `.planning/codebase/` directory exists (project was previously scanned with `/pbr:map-codebase`)
|
|
678
881
|
- Build was not aborted
|
|
679
882
|
- `git diff --name-only {pre_build_commit}..HEAD` shows >5 files changed OR `package.json`/`requirements.txt`/`go.mod`/`Cargo.toml` was modified
|
|
680
883
|
|
|
681
884
|
If triggered:
|
|
682
885
|
1. Record the pre-build commit SHA at the start of Step 1 (before any executors run) for comparison
|
|
683
886
|
2. Run `git diff --name-only {pre_build_commit}..HEAD` to get the list of changed files
|
|
684
|
-
3. Display to the user:
|
|
887
|
+
3. Display to the user: `◆ Spawning codebase mapper (incremental update)...`
|
|
685
888
|
|
|
686
889
|
Spawn a lightweight mapper Task():
|
|
687
890
|
```
|
|
@@ -693,6 +896,18 @@ If triggered:
|
|
|
693
896
|
```
|
|
694
897
|
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.
|
|
695
898
|
|
|
899
|
+
**8-pre-d. Write phase manifest (on successful completion):**
|
|
900
|
+
|
|
901
|
+
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:
|
|
902
|
+
|
|
903
|
+
```bash
|
|
904
|
+
node ${CLAUDE_PLUGIN_ROOT}/scripts/pbr-tools.js phase write-manifest {phase-slug}
|
|
905
|
+
```
|
|
906
|
+
|
|
907
|
+
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.
|
|
908
|
+
|
|
909
|
+
**CRITICAL (no hook): Update ROADMAP.md progress table NOW. Do NOT skip this step. (roadmap-sync warns)**
|
|
910
|
+
|
|
696
911
|
**8a. Update ROADMAP.md Progress table** (REQUIRED — do this BEFORE updating STATE.md):
|
|
697
912
|
|
|
698
913
|
**Tooling shortcut**: Use the CLI for atomic ROADMAP.md table updates instead of manual editing:
|
|
@@ -709,11 +924,20 @@ These return `{ success, old_status, new_status }` or `{ success, old_plans, new
|
|
|
709
924
|
5. Update the `Status` column to the final_status determined in Step 8-pre
|
|
710
925
|
6. Save the file — do NOT skip this step
|
|
711
926
|
|
|
712
|
-
**
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
-
|
|
716
|
-
- Progress bar
|
|
927
|
+
**CRITICAL (no hook): Update STATE.md NOW with phase completion status. Do NOT skip this step. (state-sync warns)**
|
|
928
|
+
|
|
929
|
+
**8b. Update STATE.md (CRITICAL (no hook) — update BOTH frontmatter AND body):**
|
|
930
|
+
- Frontmatter: `status`, `plans_complete`, `last_activity`, `progress_percent`, `last_command`
|
|
931
|
+
- Body `## Current Position`: `Phase:` line, `Plan:` line, `Status:` line, `Last activity:` line, `Progress:` bar
|
|
932
|
+
- These MUST stay in sync — the status line reads frontmatter, humans read the body
|
|
933
|
+
|
|
934
|
+
**Completion check:** Before proceeding to 8c, confirm ALL of:
|
|
935
|
+
- [ ] STATE.md frontmatter fields set: status, plans_complete, last_activity, progress_percent, last_command
|
|
936
|
+
- [ ] STATE.md body ## Current Position updated: Phase, Status, Last activity, Progress bar
|
|
937
|
+
- [ ] Frontmatter and body are consistent (same status value in both)
|
|
938
|
+
|
|
939
|
+
To verify programmatically: `node ${CLAUDE_PLUGIN_ROOT}/scripts/pbr-tools.js step-verify build step-8b '["STATE.md updated","ROADMAP.md updated","commit made"]'`
|
|
940
|
+
If any item fails, investigate before marking phase complete.
|
|
717
941
|
|
|
718
942
|
**8c. Commit planning docs (if configured):**
|
|
719
943
|
Reference: `skills/shared/commit-planning-docs.md` for the standard commit pattern.
|
|
@@ -734,6 +958,31 @@ If `git.branching` is `phase`:
|
|
|
734
958
|
- If "Yes, merge": complete the merge and delete the phase branch
|
|
735
959
|
- If "No, keep" or "Other": leave the branch as-is and inform the user
|
|
736
960
|
|
|
961
|
+
**8d-ii. PR Creation (when branching enabled):**
|
|
962
|
+
|
|
963
|
+
If `config.git.branching` is `phase` or `milestone` AND phase verification passed:
|
|
964
|
+
|
|
965
|
+
1. Push the phase branch: `git push -u origin {branch-name}`
|
|
966
|
+
2. If `config.git.auto_pr` is `true`:
|
|
967
|
+
- Run: `gh pr create --title "feat({phase-scope}): {phase-slug}" --body "$(cat <<'EOF'
|
|
968
|
+
## Phase {N}: {phase name}
|
|
969
|
+
|
|
970
|
+
**Goal**: {phase goal from ROADMAP.md}
|
|
971
|
+
|
|
972
|
+
### Key Files
|
|
973
|
+
{key_files from SUMMARY.md, bulleted}
|
|
974
|
+
|
|
975
|
+
### Verification
|
|
976
|
+
{pass/fail status from VERIFICATION.md}
|
|
977
|
+
|
|
978
|
+
---
|
|
979
|
+
Generated by Plan-Build-Run
|
|
980
|
+
EOF
|
|
981
|
+
)"`
|
|
982
|
+
3. If `config.git.auto_pr` is `false`:
|
|
983
|
+
- Use AskUserQuestion to ask: "Phase branch pushed. Create a PR?"
|
|
984
|
+
- Options: Yes (create PR as above) / No / Later (skip)
|
|
985
|
+
|
|
737
986
|
**8e. Auto-advance / auto-continue (conditional):**
|
|
738
987
|
|
|
739
988
|
**If `features.auto_advance` is `true` AND `mode` is `autonomous`:**
|
|
@@ -743,24 +992,52 @@ Chain to the next skill directly within this session. This eliminates manual pha
|
|
|
743
992
|
|-------------|-------------|-----|
|
|
744
993
|
| Verification passed, more phases | Plan next phase | `Skill({ skill: "pbr:plan", args: "{N+1}" })` |
|
|
745
994
|
| Verification skipped | Run review | `Skill({ skill: "pbr:review", args: "{N}" })` |
|
|
746
|
-
| Verification gaps found | **HARD STOP** — present gaps to user | Do NOT auto-advance past failures |
|
|
747
|
-
| Last phase
|
|
748
|
-
| Build errors occurred | **HARD STOP** — errors need human review | Do NOT auto-advance past errors |
|
|
995
|
+
| 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. |
|
|
996
|
+
| 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." |
|
|
997
|
+
| 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. |
|
|
749
998
|
|
|
750
999
|
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→...
|
|
751
1000
|
|
|
752
1001
|
**Else if `features.auto_continue` is `true`:**
|
|
753
|
-
Write `.planning/.auto-next` containing the next logical command (e.g., `/pbr:plan {N+1}` or `/pbr:
|
|
1002
|
+
Write `.planning/.auto-next` containing the next logical command (e.g., `/pbr:plan-phase {N+1}` or `/pbr:verify-work {N}`)
|
|
754
1003
|
- This file signals to the user or to wrapper scripts that the next step is ready
|
|
755
1004
|
|
|
1005
|
+
**Completion check:** Before proceeding to 8f, confirm ALL of:
|
|
1006
|
+
- [ ] auto_advance OR auto_continue evaluated (one path taken)
|
|
1007
|
+
- [ ] If auto_continue: `.auto-next` file written with correct next command
|
|
1008
|
+
- [ ] Pending todos evaluated (Step 8e-ii)
|
|
1009
|
+
- [ ] Clearly-satisfied todos auto-closed via `pbr-tools.js todo done`
|
|
1010
|
+
|
|
1011
|
+
To verify programmatically: `node ${CLAUDE_PLUGIN_ROOT}/scripts/pbr-tools.js step-verify build step-8e '["STATE.md updated","commit made"]'`
|
|
1012
|
+
If any item fails, investigate before closing the session.
|
|
1013
|
+
|
|
1014
|
+
**8e-ii. Check Pending Todos:**
|
|
1015
|
+
|
|
1016
|
+
**CRITICAL (no hook): Check pending todos after build. Do NOT skip this step.**
|
|
1017
|
+
|
|
1018
|
+
After completing the build, check if any pending todos are now satisfied:
|
|
1019
|
+
|
|
1020
|
+
1. Check if `.planning/todos/pending/` exists and contains files
|
|
1021
|
+
2. If no pending todos: skip to 8f
|
|
1022
|
+
3. If pending todos exist:
|
|
1023
|
+
a. Read the title and description from each pending todo's YAML frontmatter
|
|
1024
|
+
b. Compare each todo against the phase work (plans executed, files changed, features built)
|
|
1025
|
+
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)`
|
|
1026
|
+
d. If **partially related**: display `ℹ Related pending todo {NNN}: {title} — may be partially addressed`
|
|
1027
|
+
e. If unrelated: skip silently
|
|
1028
|
+
|
|
1029
|
+
Only auto-close when the match is unambiguous. When in doubt, leave it open.
|
|
1030
|
+
|
|
756
1031
|
**8f. Present completion summary:**
|
|
757
1032
|
|
|
758
|
-
Use the branded output templates from `references/ui-
|
|
1033
|
+
Use the branded output templates from `references/ui-brand.md`. Route based on status:
|
|
759
1034
|
|
|
760
1035
|
| Status | Template |
|
|
761
1036
|
|--------|----------|
|
|
762
|
-
| `passed` + more phases | "Phase Complete" template |
|
|
763
|
-
| `passed` + last phase | "Milestone Complete" template |
|
|
1037
|
+
| `passed` + more phases in current milestone | "Phase Complete" template |
|
|
1038
|
+
| `passed` + last phase in current milestone | "Milestone Complete" template |
|
|
1039
|
+
|
|
1040
|
+
**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.
|
|
764
1041
|
| `gaps_found` | "Gaps Found" template |
|
|
765
1042
|
|
|
766
1043
|
Before the branded banner, include the results table:
|
|
@@ -782,100 +1059,13 @@ Total files modified: {count}
|
|
|
782
1059
|
Deviations: {count}
|
|
783
1060
|
```
|
|
784
1061
|
|
|
785
|
-
Then present the appropriate branded banner:
|
|
786
|
-
|
|
787
|
-
**If `passed` + more phases:**
|
|
788
|
-
```
|
|
789
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
790
|
-
PLAN-BUILD-RUN ► PHASE {N} COMPLETE ✓
|
|
791
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
792
|
-
|
|
793
|
-
**Phase {N}: {Name}**
|
|
794
|
-
|
|
795
|
-
{X} plans executed
|
|
796
|
-
Goal verified ✓
|
|
797
|
-
|
|
798
|
-
───────────────────────────────────────────────────────────────
|
|
799
|
-
|
|
800
|
-
## ▶ Next Up
|
|
801
|
-
|
|
802
|
-
**Phase {N+1}: {Name}** — {Goal from ROADMAP.md}
|
|
803
|
-
|
|
804
|
-
`/pbr:plan {N+1}`
|
|
805
|
-
|
|
806
|
-
<sub>`/clear` first → fresh context window</sub>
|
|
807
|
-
|
|
808
|
-
───────────────────────────────────────────────────────────────
|
|
809
|
-
|
|
810
|
-
**Also available:**
|
|
811
|
-
- `/pbr:review {N}` — manual acceptance testing before continuing
|
|
812
|
-
- `/pbr:discuss {N+1}` — talk through the next phase before planning
|
|
813
|
-
- `/pbr:status` — see full project status
|
|
814
|
-
|
|
815
|
-
───────────────────────────────────────────────────────────────
|
|
816
|
-
```
|
|
817
|
-
|
|
818
|
-
**If `passed` + last phase:**
|
|
819
|
-
```
|
|
820
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
821
|
-
PLAN-BUILD-RUN ► MILESTONE COMPLETE 🎉
|
|
822
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
823
|
-
|
|
824
|
-
{N} phases completed
|
|
825
|
-
All phase goals verified ✓
|
|
826
|
-
|
|
827
|
-
───────────────────────────────────────────────────────────────
|
|
828
|
-
|
|
829
|
-
## ▶ Next Up
|
|
830
|
-
|
|
831
|
-
**Audit milestone** — verify requirements, cross-phase integration, E2E flows
|
|
832
|
-
|
|
833
|
-
`/pbr:milestone audit`
|
|
834
|
-
|
|
835
|
-
<sub>`/clear` first → fresh context window</sub>
|
|
836
|
-
|
|
837
|
-
───────────────────────────────────────────────────────────────
|
|
838
|
-
|
|
839
|
-
**Also available:**
|
|
840
|
-
- `/pbr:review` — manual acceptance testing
|
|
841
|
-
- `/pbr:milestone complete` — skip audit, archive directly
|
|
842
|
-
|
|
843
|
-
───────────────────────────────────────────────────────────────
|
|
844
|
-
```
|
|
845
|
-
|
|
846
|
-
**If `gaps_found`:**
|
|
847
|
-
```
|
|
848
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
849
|
-
PLAN-BUILD-RUN ► PHASE {N} GAPS FOUND ⚠
|
|
850
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1062
|
+
Then present the appropriate branded banner from Read `references/ui-brand.md` § "Completion Summary Templates":
|
|
851
1063
|
|
|
852
|
-
**Phase
|
|
1064
|
+
- **If `passed` + more phases:** Use the "Phase Complete" template. Fill in phase number, name, plan count, and next phase details.
|
|
1065
|
+
- **If `passed` + last phase:** Use the "Milestone Complete" template. Fill in phase count.
|
|
1066
|
+
- **If `gaps_found`:** Use the "Gaps Found" template. Fill in phase number, name, score, and gap summaries from VERIFICATION.md.
|
|
853
1067
|
|
|
854
|
-
|
|
855
|
-
Report: .planning/phases/{phase_dir}/VERIFICATION.md
|
|
856
|
-
|
|
857
|
-
### What's Missing
|
|
858
|
-
|
|
859
|
-
{Extract gap summaries from VERIFICATION.md}
|
|
860
|
-
|
|
861
|
-
───────────────────────────────────────────────────────────────
|
|
862
|
-
|
|
863
|
-
## ▶ Next Up
|
|
864
|
-
|
|
865
|
-
**Plan gap closure** — create additional plans to complete the phase
|
|
866
|
-
|
|
867
|
-
`/pbr:plan {N} --gaps`
|
|
868
|
-
|
|
869
|
-
<sub>`/clear` first → fresh context window</sub>
|
|
870
|
-
|
|
871
|
-
───────────────────────────────────────────────────────────────
|
|
872
|
-
|
|
873
|
-
**Also available:**
|
|
874
|
-
- `cat .planning/phases/{phase_dir}/VERIFICATION.md` — see full report
|
|
875
|
-
- `/pbr:review {N}` — manual testing before planning
|
|
876
|
-
|
|
877
|
-
───────────────────────────────────────────────────────────────
|
|
878
|
-
```
|
|
1068
|
+
Include `<sub>/clear first → fresh context window</sub>` inside the Next Up routing block of the completion template.
|
|
879
1069
|
|
|
880
1070
|
**8g. Display USER-SETUP.md (conditional):**
|
|
881
1071
|
|
|
@@ -928,7 +1118,7 @@ If `git.branching` is `phase` but we're not on the phase branch:
|
|
|
928
1118
|
|
|
929
1119
|
---
|
|
930
1120
|
|
|
931
|
-
## Files Created/Modified by /pbr:
|
|
1121
|
+
## Files Created/Modified by /pbr:execute-phase
|
|
932
1122
|
|
|
933
1123
|
| File | Purpose | When |
|
|
934
1124
|
|------|---------|------|
|
|
@@ -941,3 +1131,9 @@ If `git.branching` is `phase` but we're not on the phase branch:
|
|
|
941
1131
|
| `.planning/STATE.md` | Updated progress | Steps 6f, 8b |
|
|
942
1132
|
| `.planning/.auto-next` | Next command signal (if auto_continue enabled) | Step 8e |
|
|
943
1133
|
| Project source files | Actual code | Step 6 (executors) |
|
|
1134
|
+
|
|
1135
|
+
---
|
|
1136
|
+
|
|
1137
|
+
## Cleanup
|
|
1138
|
+
|
|
1139
|
+
Delete `.planning/.active-skill` if it exists. This must happen on all paths (success, partial, and failure) before reporting results.
|