@sienklogic/plan-build-run 2.19.0 → 2.19.2
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 +1287 -303
- package/CLAUDE.md +74 -39
- package/LICENSE +2 -1
- package/README.md +412 -177
- package/bin/install.js +2752 -0
- package/dashboard/bin/cli.cjs +96 -0
- package/dashboard/bin/stop.cjs +129 -0
- package/dashboard/eslint.config.js +37 -0
- package/dashboard/index.html +20 -0
- package/dashboard/package.json +27 -25
- package/dashboard/server/index.js +151 -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 +234 -0
- package/dashboard/server/routes/config.js +64 -0
- package/dashboard/server/routes/health.js +98 -0
- package/dashboard/server/routes/incidents.js +78 -0
- package/dashboard/server/routes/intel.js +69 -0
- package/dashboard/server/routes/memory.js +107 -0
- package/dashboard/server/routes/planning.js +234 -0
- package/dashboard/server/routes/progress.js +77 -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/sessions.js +70 -0
- package/dashboard/server/routes/status.js +25 -0
- package/dashboard/server/routes/telemetry.js +233 -0
- package/dashboard/server/services/file-watcher.js +105 -0
- package/dashboard/server/services/planning-reader.js +727 -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 +165 -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 +22 -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/IncidentsPage.jsx +135 -0
- package/dashboard/src/pages/IntelPage.jsx +193 -0
- package/dashboard/src/pages/LiveFeed.jsx +274 -0
- package/dashboard/src/pages/MemoryPage.jsx +107 -0
- package/dashboard/src/pages/OnboardingPage.jsx +117 -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/ProgressPage.jsx +249 -0
- package/dashboard/src/pages/ResearchPage.jsx +129 -0
- package/dashboard/src/pages/RoadmapPage.jsx +251 -0
- package/dashboard/src/pages/SessionsPage.jsx +117 -0
- package/dashboard/src/pages/Telemetry.jsx +166 -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/package.json +55 -40
- package/plan-build-run/bin/config-schema.json +1298 -0
- package/plugins/pbr/.claude-plugin/plugin.json +1 -1
- package/plugins/pbr/CLAUDE.md +19 -0
- package/plugins/pbr/UI-CONSISTENCY-GAPS.md +1 -1
- package/plugins/pbr/agents/advisor-researcher.md +101 -0
- package/plugins/pbr/agents/audit.md +205 -89
- package/plugins/pbr/agents/codebase-mapper.md +158 -23
- package/plugins/pbr/agents/debugger.md +212 -34
- package/plugins/pbr/agents/dev-sync.md +206 -0
- package/plugins/pbr/agents/executor.md +717 -39
- package/plugins/pbr/agents/general.md +71 -6
- package/plugins/pbr/agents/integration-checker.md +146 -30
- package/plugins/pbr/agents/intel-updater.md +332 -0
- package/plugins/pbr/agents/nyquist-auditor.md +253 -0
- package/plugins/pbr/agents/plan-checker.md +265 -65
- package/plugins/pbr/agents/planner.md +440 -42
- package/plugins/pbr/agents/researcher.md +219 -36
- package/plugins/pbr/agents/roadmapper.md +397 -0
- package/plugins/pbr/agents/synthesizer.md +166 -26
- package/plugins/pbr/agents/ui-checker.md +203 -0
- package/plugins/pbr/agents/ui-researcher.md +224 -0
- package/plugins/pbr/agents/verifier.md +495 -47
- package/plugins/pbr/commands/add-phase.md +75 -0
- package/plugins/pbr/commands/add-todo.md +8 -0
- package/plugins/pbr/commands/audit-fix.md +5 -0
- package/plugins/pbr/commands/audit-milestone.md +8 -0
- package/plugins/pbr/commands/autonomous.md +5 -0
- package/plugins/pbr/commands/backlog.md +6 -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 +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/fast.md +6 -0
- package/plugins/pbr/commands/forensics.md +6 -0
- package/plugins/pbr/commands/import.md +1 -1
- package/plugins/pbr/commands/insert-phase.md +65 -0
- package/plugins/pbr/commands/intel.md +5 -0
- package/plugins/pbr/commands/join-discord.md +11 -0
- package/plugins/pbr/commands/list-phase-assumptions.md +5 -0
- package/plugins/pbr/commands/map-codebase.md +6 -0
- package/plugins/pbr/commands/milestone-summary.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/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/plant-seed.md +6 -0
- package/plugins/pbr/commands/profile-user.md +5 -0
- package/plugins/pbr/commands/profile.md +5 -0
- package/plugins/pbr/commands/progress.md +6 -0
- package/plugins/pbr/commands/quick.md +1 -1
- package/plugins/pbr/commands/reapply-patches.md +47 -0
- package/plugins/pbr/commands/release.md +6 -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/seed.md +6 -0
- package/plugins/pbr/commands/session-report.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 +1 -1
- package/plugins/pbr/commands/ship.md +5 -0
- package/plugins/pbr/commands/stats.md +6 -0
- package/plugins/pbr/commands/test.md +5 -0
- package/plugins/pbr/commands/thread.md +6 -0
- package/plugins/pbr/commands/todo.md +1 -1
- package/plugins/pbr/commands/ui-phase.md +5 -0
- package/plugins/pbr/commands/ui-review.md +5 -0
- package/plugins/pbr/commands/undo.md +5 -0
- package/plugins/pbr/commands/update.md +37 -0
- package/plugins/pbr/commands/validate-phase.md +5 -0
- package/plugins/pbr/commands/verify-work.md +6 -0
- package/plugins/pbr/dashboard/package-lock.json +6 -0
- package/plugins/pbr/dist/architecture-guard.js +59 -0
- package/plugins/pbr/dist/audit-dimensions.js +556 -0
- package/plugins/pbr/dist/auto-continue.js +277 -0
- package/plugins/pbr/dist/block-skill-self-read.js +124 -0
- package/plugins/pbr/dist/check-agent-state-write.js +63 -0
- package/plugins/pbr/dist/check-config-change.js +155 -0
- package/plugins/pbr/dist/check-cross-plugin-sync.js +93 -0
- package/plugins/pbr/dist/check-dangerous-commands.js +193 -0
- package/plugins/pbr/dist/check-direct-state-write.js +37 -0
- package/plugins/pbr/dist/check-doc-sprawl.js +102 -0
- package/plugins/pbr/dist/check-phase-boundary.js +191 -0
- package/plugins/pbr/dist/check-plan-format.js +209 -0
- package/plugins/pbr/dist/check-read-first.js +345 -0
- package/plugins/pbr/dist/check-roadmap-sync.js +507 -0
- package/plugins/pbr/dist/check-skill-workflow.js +354 -0
- package/plugins/pbr/dist/check-state-sync.js +658 -0
- package/plugins/pbr/dist/check-subagent-output.js +396 -0
- package/plugins/pbr/dist/check-summary-gate.js +188 -0
- package/plugins/pbr/dist/context-bridge.js +425 -0
- package/plugins/pbr/dist/context-budget-check.js +442 -0
- package/plugins/pbr/dist/context-quality.js +271 -0
- package/plugins/pbr/dist/enforce-context-budget.js +138 -0
- package/plugins/pbr/dist/enforce-pbr-workflow.js +277 -0
- package/plugins/pbr/dist/event-handler.js +202 -0
- package/plugins/pbr/dist/event-logger.js +125 -0
- package/plugins/pbr/dist/feedback-loop.js +155 -0
- package/plugins/pbr/dist/graph-update.js +422 -0
- package/plugins/pbr/dist/hook-logger.js +114 -0
- package/plugins/pbr/dist/hook-server-client.js +361 -0
- package/plugins/pbr/dist/hook-server.js +658 -0
- package/plugins/pbr/dist/hooks-schema.json +87 -0
- package/plugins/pbr/dist/instructions-loaded.js +173 -0
- package/plugins/pbr/dist/intercept-plan-mode.js +81 -0
- package/plugins/pbr/dist/log-notification.js +131 -0
- package/plugins/pbr/dist/log-subagent.js +349 -0
- package/plugins/pbr/dist/log-tool-failure.js +140 -0
- package/plugins/pbr/dist/milestone-learnings.js +519 -0
- package/plugins/pbr/dist/pbr-tools.js +1961 -0
- package/plugins/pbr/dist/post-bash-triage.js +96 -0
- package/plugins/pbr/dist/post-compact.js +135 -0
- package/plugins/pbr/dist/post-hoc.js +237 -0
- package/plugins/pbr/dist/post-write-dispatch.js +243 -0
- package/plugins/pbr/dist/post-write-quality.js +208 -0
- package/plugins/pbr/dist/pre-bash-dispatch.js +212 -0
- package/plugins/pbr/dist/pre-skill-dispatch.js +114 -0
- package/plugins/pbr/dist/pre-task-dispatch.js +269 -0
- package/plugins/pbr/dist/pre-write-dispatch.js +234 -0
- package/plugins/pbr/dist/progress-tracker.js +173 -0
- package/plugins/pbr/dist/prompt-guard.js +114 -0
- package/plugins/pbr/dist/prompt-routing.js +209 -0
- package/plugins/pbr/dist/quick-status.js +179 -0
- package/plugins/pbr/dist/record-incident.js +37 -0
- package/plugins/pbr/dist/run-hook.js +144 -0
- package/plugins/pbr/dist/session-cleanup.js +653 -0
- package/plugins/pbr/dist/session-tracker.js +124 -0
- package/plugins/pbr/dist/status-line.js +849 -0
- package/plugins/pbr/dist/suggest-compact.js +307 -0
- package/plugins/pbr/dist/sync-context-to-claude.js +100 -0
- package/plugins/pbr/dist/task-completed.js +206 -0
- package/plugins/pbr/dist/track-context-budget.js +432 -0
- package/plugins/pbr/dist/track-user-gates.js +88 -0
- package/plugins/pbr/dist/trust-tracker.js +193 -0
- package/plugins/pbr/dist/validate-commit.js +215 -0
- package/plugins/pbr/dist/validate-skill-args.js +222 -0
- package/plugins/pbr/dist/validate-task.js +271 -0
- package/plugins/pbr/dist/worktree-create.js +144 -0
- package/plugins/pbr/dist/worktree-remove.js +147 -0
- package/plugins/pbr/hooks/hooks.json +143 -60
- package/plugins/pbr/references/agent-contracts.md +39 -8
- package/plugins/pbr/references/agent-teams.md +3 -3
- package/plugins/pbr/references/archive/checkpoints.md +189 -0
- package/plugins/pbr/references/archive/context-quality-tiers.md +45 -0
- package/plugins/pbr/references/archive/hook-ordering.md +89 -0
- package/plugins/pbr/references/archive/limitations.md +106 -0
- package/plugins/pbr/references/archive/pbr-rules.md +194 -0
- package/plugins/pbr/references/archive/pbr-tools-cli.md +415 -0
- package/plugins/pbr/references/archive/pretooluse-jsonl-behavior.md +58 -0
- package/plugins/pbr/references/archive/signal-files.md +41 -0
- package/plugins/pbr/references/archive/tmux-setup.md +288 -0
- package/plugins/pbr/references/archive/verification-matrix.md +34 -0
- package/plugins/pbr/references/archive/verification-patterns.md +277 -0
- package/plugins/pbr/references/archive/worktree-sparse-checkout.md +86 -0
- package/plugins/pbr/references/checkpoints.md +723 -104
- package/plugins/pbr/references/config-reference.md +376 -10
- package/plugins/pbr/references/continuation-format.md +1 -0
- package/plugins/pbr/references/decimal-phase-calculation.md +65 -0
- package/plugins/pbr/references/deviation-rules.md +12 -0
- package/plugins/pbr/references/git-integration.md +110 -27
- package/plugins/pbr/references/git-planning-commit.md +35 -0
- package/plugins/pbr/references/model-profile-resolution.md +34 -0
- package/plugins/pbr/references/model-profiles.md +90 -7
- package/plugins/pbr/references/model-selection.md +1 -1
- package/plugins/pbr/references/node-repair.md +48 -0
- package/plugins/pbr/references/plan-authoring.md +65 -0
- package/plugins/pbr/references/plan-format.md +161 -10
- package/plugins/pbr/references/questioning.md +138 -49
- package/plugins/pbr/references/reading-verification.md +4 -4
- package/plugins/pbr/references/tdd.md +263 -0
- package/plugins/pbr/references/ui-brand.md +449 -0
- package/plugins/pbr/references/verification-overrides.md +39 -0
- package/plugins/pbr/references/verification-patterns.md +529 -113
- package/plugins/pbr/scripts/architecture-guard.js +59 -0
- package/plugins/pbr/scripts/audit-checks/behavioral-compliance.js +2098 -0
- package/plugins/pbr/scripts/audit-checks/error-analysis.js +989 -0
- package/plugins/pbr/scripts/audit-checks/feature-verification.js +723 -0
- package/plugins/pbr/scripts/audit-checks/index.js +433 -0
- package/plugins/pbr/scripts/audit-checks/infrastructure.js +816 -0
- package/plugins/pbr/scripts/audit-checks/quality-metrics.js +452 -0
- package/plugins/pbr/scripts/audit-checks/session-quality.js +980 -0
- package/plugins/pbr/scripts/audit-checks/si-agent-hook-config-checks.js +396 -0
- package/plugins/pbr/scripts/audit-checks/si-cross-cutting-checks.js +272 -0
- package/plugins/pbr/scripts/audit-checks/si-skill-checks.js +424 -0
- package/plugins/pbr/scripts/audit-checks/workflow-compliance.js +1175 -0
- package/plugins/pbr/scripts/audit-dimensions.js +556 -0
- package/plugins/pbr/scripts/auto-continue.js +192 -31
- package/plugins/pbr/scripts/block-skill-self-read.js +124 -0
- package/plugins/pbr/scripts/check-agent-state-write.js +63 -0
- package/plugins/pbr/scripts/check-config-change.js +155 -0
- package/plugins/pbr/scripts/check-cross-plugin-sync.js +93 -0
- package/plugins/pbr/scripts/check-dangerous-commands.js +18 -5
- package/plugins/pbr/scripts/check-direct-state-write.js +37 -0
- package/plugins/pbr/scripts/check-phase-boundary.js +3 -8
- package/plugins/pbr/scripts/check-plan-format.js +135 -278
- package/plugins/pbr/scripts/check-read-first.js +345 -0
- package/plugins/pbr/scripts/check-roadmap-sync.js +182 -21
- package/plugins/pbr/scripts/check-skill-workflow.js +24 -27
- package/plugins/pbr/scripts/check-state-sync.js +339 -215
- package/plugins/pbr/scripts/check-subagent-output.js +281 -275
- package/plugins/pbr/scripts/check-summary-gate.js +5 -15
- package/plugins/pbr/scripts/config-schema.json +1134 -95
- package/plugins/pbr/scripts/context-bridge.js +425 -0
- package/plugins/pbr/scripts/context-budget-check.js +169 -14
- package/plugins/pbr/scripts/context-quality.js +271 -0
- package/plugins/pbr/scripts/enforce-context-budget.js +138 -0
- package/plugins/pbr/scripts/enforce-pbr-workflow.js +277 -0
- package/plugins/pbr/scripts/event-handler.js +127 -87
- package/plugins/pbr/scripts/event-logger.js +58 -25
- package/plugins/pbr/scripts/feedback-loop.js +155 -0
- package/plugins/pbr/scripts/graph-update.js +422 -0
- package/plugins/pbr/scripts/hook-logger.js +69 -35
- package/plugins/pbr/scripts/hook-server-client.js +361 -0
- package/plugins/pbr/scripts/hook-server.js +658 -0
- package/plugins/pbr/scripts/hooks-schema.json +13 -5
- package/plugins/pbr/scripts/instructions-loaded.js +173 -0
- package/plugins/pbr/scripts/intent-router.cjs +147 -0
- package/plugins/pbr/scripts/intercept-plan-mode.js +52 -18
- package/plugins/pbr/scripts/lib/alternatives.js +203 -0
- package/plugins/pbr/scripts/lib/audit.js +65 -0
- package/plugins/pbr/scripts/lib/auto-cleanup.js +221 -0
- package/plugins/pbr/scripts/lib/auto-verify.js +103 -0
- package/plugins/pbr/scripts/lib/build.js +719 -0
- package/plugins/pbr/scripts/lib/ci-fix-loop.js +228 -0
- package/plugins/pbr/scripts/lib/commands.js +483 -0
- package/plugins/pbr/scripts/lib/compound.js +216 -0
- package/plugins/pbr/scripts/lib/config.js +1308 -0
- package/plugins/pbr/scripts/lib/context.js +254 -0
- package/plugins/pbr/scripts/lib/contextual-help.js +183 -0
- package/plugins/pbr/scripts/lib/convention-detector.js +413 -0
- package/plugins/pbr/scripts/lib/core.js +1569 -0
- package/plugins/pbr/scripts/lib/dashboard-launch.js +364 -0
- package/plugins/pbr/scripts/lib/data-hygiene.js +179 -0
- package/plugins/pbr/scripts/lib/decision-extraction.js +183 -0
- package/plugins/pbr/scripts/lib/decisions.js +194 -0
- package/plugins/pbr/scripts/lib/dependency-break.js +147 -0
- package/plugins/pbr/scripts/lib/format-validators.js +1025 -0
- package/plugins/pbr/scripts/lib/frontmatter.js +302 -0
- package/plugins/pbr/scripts/lib/gates/advisories.js +129 -0
- package/plugins/pbr/scripts/lib/gates/build-dependency.js +115 -0
- package/plugins/pbr/scripts/lib/gates/build-executor.js +104 -0
- package/plugins/pbr/scripts/lib/gates/doc-existence.js +46 -0
- package/plugins/pbr/scripts/lib/gates/helpers.js +93 -0
- package/plugins/pbr/scripts/lib/gates/inline-execution.js +185 -0
- package/plugins/pbr/scripts/lib/gates/milestone-complete.js +136 -0
- package/plugins/pbr/scripts/lib/gates/milestone-summary.js +119 -0
- package/plugins/pbr/scripts/lib/gates/multi-phase-loader.js +147 -0
- package/plugins/pbr/scripts/lib/gates/plan-executor.js +36 -0
- package/plugins/pbr/scripts/lib/gates/plan-validation.js +114 -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/gates/rich-agent-context.js +137 -0
- package/plugins/pbr/scripts/lib/gates/user-confirmation.js +93 -0
- package/plugins/pbr/scripts/lib/graph-cli.js +89 -0
- package/plugins/pbr/scripts/lib/graph.js +553 -0
- package/plugins/pbr/scripts/lib/health-checks.js +107 -0
- package/plugins/pbr/scripts/lib/health-phase06.js +120 -0
- package/plugins/pbr/scripts/lib/health.js +132 -0
- package/plugins/pbr/scripts/lib/help.js +100 -0
- package/plugins/pbr/scripts/lib/history.js +150 -0
- package/plugins/pbr/scripts/lib/impact-analysis.js +319 -0
- package/plugins/pbr/scripts/lib/incidents.js +190 -0
- package/plugins/pbr/scripts/lib/init.js +643 -0
- package/plugins/pbr/scripts/lib/insights-parser.js +320 -0
- package/plugins/pbr/scripts/lib/intel.js +653 -0
- package/plugins/pbr/scripts/lib/learnings.js +511 -0
- package/plugins/pbr/scripts/lib/migrate.js +298 -0
- package/plugins/pbr/scripts/lib/milestone.js +306 -0
- package/plugins/pbr/scripts/lib/negative-knowledge.js +194 -0
- package/plugins/pbr/scripts/lib/notification-throttle.js +141 -0
- package/plugins/pbr/scripts/lib/onboarding-generator.js +288 -0
- package/plugins/pbr/scripts/lib/parse-args.js +134 -0
- package/plugins/pbr/scripts/lib/pattern-routing.js +55 -0
- package/plugins/pbr/scripts/lib/patterns.js +272 -0
- package/plugins/pbr/scripts/lib/perf.js +190 -0
- package/plugins/pbr/scripts/lib/phase.js +1025 -0
- package/plugins/pbr/scripts/lib/pid-lock.js +154 -0
- package/plugins/pbr/scripts/lib/post-hoc.js +160 -0
- package/plugins/pbr/scripts/lib/pre-commit-checks.js +220 -0
- package/plugins/pbr/scripts/lib/pre-research.js +126 -0
- package/plugins/pbr/scripts/lib/preview.js +174 -0
- package/plugins/pbr/scripts/lib/progress-visualization.js +296 -0
- package/plugins/pbr/scripts/lib/quick-init.js +131 -0
- package/plugins/pbr/scripts/lib/reference.js +236 -0
- package/plugins/pbr/scripts/lib/requirements.js +153 -0
- package/plugins/pbr/scripts/lib/resolve-root.js +66 -0
- package/plugins/pbr/scripts/lib/reverse-spec.js +259 -0
- package/plugins/pbr/scripts/lib/roadmap.js +1089 -0
- package/plugins/pbr/scripts/lib/security-scan.js +200 -0
- package/plugins/pbr/scripts/lib/session-briefing.js +895 -0
- package/plugins/pbr/scripts/lib/skill-section.js +99 -0
- package/plugins/pbr/scripts/lib/smart-next-task.js +198 -0
- package/plugins/pbr/scripts/lib/snapshot-manager.js +232 -0
- package/plugins/pbr/scripts/lib/spec-diff.js +209 -0
- package/plugins/pbr/scripts/lib/spec-engine.js +189 -0
- package/plugins/pbr/scripts/lib/spot-check.js +539 -0
- package/plugins/pbr/scripts/lib/state-queue.js +171 -0
- package/plugins/pbr/scripts/lib/state.js +1082 -0
- package/plugins/pbr/scripts/lib/status-render.js +511 -0
- package/plugins/pbr/scripts/lib/step-verify.js +149 -0
- package/plugins/pbr/scripts/lib/subagent-validators.js +1059 -0
- package/plugins/pbr/scripts/lib/suggest-next.js +435 -0
- package/plugins/pbr/scripts/lib/tech-debt-scanner.js +116 -0
- package/plugins/pbr/scripts/lib/templates.js +362 -0
- package/plugins/pbr/scripts/lib/test-selection.js +163 -0
- package/plugins/pbr/scripts/lib/todo.js +300 -0
- package/plugins/pbr/scripts/lib/verify.js +1483 -0
- package/plugins/pbr/scripts/log-notification.js +131 -0
- package/plugins/pbr/scripts/log-subagent.js +203 -18
- package/plugins/pbr/scripts/log-tool-failure.js +60 -8
- package/plugins/pbr/scripts/milestone-learnings.js +519 -0
- package/plugins/pbr/scripts/package.json +1 -1
- package/plugins/pbr/scripts/pbr-tools.js +1754 -1171
- package/plugins/pbr/scripts/post-bash-triage.js +96 -0
- package/plugins/pbr/scripts/post-compact.js +135 -0
- package/plugins/pbr/scripts/post-hoc.js +237 -0
- package/plugins/pbr/scripts/post-write-dispatch.js +201 -31
- package/plugins/pbr/scripts/post-write-quality.js +4 -3
- package/plugins/pbr/scripts/pre-bash-dispatch.js +147 -51
- package/plugins/pbr/scripts/pre-skill-dispatch.js +114 -0
- package/plugins/pbr/scripts/pre-task-dispatch.js +269 -0
- package/plugins/pbr/scripts/pre-write-dispatch.js +170 -73
- package/plugins/pbr/scripts/progress-tracker.js +122 -310
- package/plugins/pbr/scripts/prompt-guard.js +114 -0
- package/plugins/pbr/scripts/prompt-routing.js +209 -0
- package/plugins/pbr/scripts/quick-status.js +179 -0
- package/plugins/pbr/scripts/record-incident.js +37 -0
- package/plugins/pbr/scripts/risk-classifier.cjs +123 -0
- package/plugins/pbr/scripts/run-hook.js +62 -10
- package/plugins/pbr/scripts/session-cleanup.js +428 -29
- package/plugins/pbr/scripts/session-tracker.js +124 -0
- package/plugins/pbr/scripts/status-line.js +593 -32
- package/plugins/pbr/scripts/suggest-compact.js +201 -13
- package/plugins/pbr/scripts/sync-context-to-claude.js +100 -0
- package/plugins/pbr/scripts/task-completed.js +165 -4
- 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 +155 -0
- package/plugins/pbr/scripts/track-context-budget.js +368 -99
- package/plugins/pbr/scripts/track-user-gates.js +88 -0
- package/plugins/pbr/scripts/trust-tracker.js +193 -0
- package/plugins/pbr/scripts/validate-commit.js +41 -26
- package/plugins/pbr/scripts/validate-skill-args.js +87 -15
- package/plugins/pbr/scripts/validate-task.js +83 -627
- 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 +195 -24
- package/plugins/pbr/skills/audit-fix/SKILL.md +326 -0
- package/plugins/pbr/skills/autonomous/SKILL.md +545 -0
- package/plugins/pbr/skills/backlog/SKILL.md +56 -0
- package/plugins/pbr/skills/begin/SKILL.md +508 -153
- package/plugins/pbr/skills/begin/templates/STATE.md.tmpl +1 -2
- package/plugins/pbr/skills/begin/templates/config.json.tmpl +411 -36
- package/plugins/pbr/skills/begin/templates/researcher-prompt.md.tmpl +28 -0
- package/plugins/pbr/skills/begin/templates/roadmap-prompt.md.tmpl +28 -3
- package/plugins/pbr/skills/begin/templates/synthesis-prompt.md.tmpl +33 -5
- package/plugins/pbr/skills/build/SKILL.md +1040 -354
- package/plugins/pbr/skills/build/templates/continuation-prompt.md.tmpl +26 -0
- package/plugins/pbr/skills/build/templates/executor-prompt.md.tmpl +77 -0
- package/plugins/pbr/skills/build/templates/inline-verifier-prompt.md.tmpl +33 -0
- package/plugins/pbr/skills/config/SKILL.md +112 -9
- package/plugins/pbr/skills/continue/SKILL.md +113 -33
- package/plugins/pbr/skills/dashboard/SKILL.md +21 -9
- package/plugins/pbr/skills/debug/SKILL.md +70 -12
- 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 +206 -25
- package/plugins/pbr/skills/discuss/templates/CONTEXT.md.tmpl +21 -1
- package/plugins/pbr/skills/do/SKILL.md +119 -24
- package/plugins/pbr/skills/explore/SKILL.md +95 -20
- package/plugins/pbr/skills/fast/SKILL.md +94 -0
- package/plugins/pbr/skills/forensics/SKILL.md +144 -0
- package/plugins/pbr/skills/health/SKILL.md +35 -117
- package/plugins/pbr/skills/help/SKILL.md +84 -101
- package/plugins/pbr/skills/import/SKILL.md +332 -13
- package/plugins/pbr/skills/intel/SKILL.md +131 -0
- package/plugins/pbr/skills/list-phase-assumptions/SKILL.md +231 -0
- package/plugins/pbr/skills/milestone/SKILL.md +421 -263
- 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/milestone-summary/SKILL.md +86 -0
- package/plugins/pbr/skills/note/SKILL.md +20 -4
- package/plugins/pbr/skills/pause/SKILL.md +54 -14
- package/plugins/pbr/skills/pause/templates/continue-here.md.tmpl +33 -52
- package/plugins/pbr/skills/plan/SKILL.md +526 -280
- package/plugins/pbr/skills/plan/templates/checker-prompt.md.tmpl +5 -2
- package/plugins/pbr/skills/plan/templates/completion-output.md.tmpl +27 -0
- package/plugins/pbr/skills/plan/templates/planner-prompt.md.tmpl +27 -1
- package/plugins/pbr/skills/plan/templates/revision-prompt.md.tmpl +21 -5
- package/plugins/pbr/skills/profile/SKILL.md +185 -0
- package/plugins/pbr/skills/profile-user/SKILL.md +227 -0
- package/plugins/pbr/skills/quick/SKILL.md +435 -100
- package/plugins/pbr/skills/release/SKILL.md +206 -0
- package/plugins/pbr/skills/resume/SKILL.md +170 -46
- package/plugins/pbr/skills/review/SKILL.md +217 -164
- package/plugins/pbr/skills/review/templates/verifier-prompt.md.tmpl +7 -0
- package/plugins/pbr/skills/scan/SKILL.md +152 -106
- package/plugins/pbr/skills/scan/templates/mapper-prompt.md.tmpl +5 -56
- package/plugins/pbr/skills/seed/SKILL.md +87 -0
- package/plugins/pbr/skills/session-report/SKILL.md +130 -0
- package/plugins/pbr/skills/setup/SKILL.md +150 -202
- package/plugins/pbr/skills/shared/agent-context-enrichment.md +21 -0
- package/plugins/pbr/skills/shared/agent-type-resolution.md +32 -0
- package/plugins/pbr/skills/shared/commit-planning-docs.md +8 -0
- package/plugins/pbr/skills/shared/context-budget.md +66 -1
- package/plugins/pbr/skills/shared/context-loader-task.md +18 -11
- 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 -60
- package/plugins/pbr/skills/shared/gate-prompts.md +4 -2
- package/plugins/pbr/skills/shared/memory-capture.md +48 -0
- package/plugins/pbr/skills/shared/phase-argument-parsing.md +4 -4
- package/plugins/pbr/skills/shared/revision-loop.md +24 -6
- package/plugins/pbr/skills/shared/state-update.md +49 -56
- package/plugins/pbr/skills/shared/universal-anti-patterns.md +27 -4
- package/plugins/pbr/skills/ship/SKILL.md +155 -0
- package/plugins/pbr/skills/stats/SKILL.md +80 -0
- package/plugins/pbr/skills/status/SKILL.md +185 -119
- package/plugins/pbr/skills/test/SKILL.md +254 -0
- package/plugins/pbr/skills/thread/SKILL.md +73 -0
- package/plugins/pbr/skills/todo/SKILL.md +28 -72
- package/plugins/pbr/skills/ui-phase/SKILL.md +180 -0
- package/plugins/pbr/skills/ui-review/SKILL.md +206 -0
- package/plugins/pbr/skills/undo/SKILL.md +221 -0
- package/plugins/pbr/skills/validate-phase/SKILL.md +362 -0
- package/plugins/pbr/templates/CONTEXT.md.tmpl +45 -20
- package/plugins/pbr/templates/DISCOVERY.md.tmpl +29 -0
- package/plugins/pbr/templates/DISCUSSION-LOG.md.tmpl +49 -0
- package/plugins/pbr/templates/HANDOFF.json.tmpl +30 -0
- package/plugins/pbr/templates/INTEGRATION-REPORT.md.tmpl +18 -2
- package/plugins/pbr/templates/MILESTONE-AUDIT.md.tmpl +44 -0
- package/plugins/pbr/templates/PROJECT.md.tmpl +126 -0
- package/plugins/pbr/templates/REQUIREMENTS.md.tmpl +96 -0
- package/plugins/pbr/templates/RETROSPECTIVE.md.tmpl +43 -0
- package/plugins/pbr/templates/ROADMAP.md.tmpl +108 -14
- package/plugins/pbr/templates/SUMMARY-complex.md.tmpl +133 -0
- package/plugins/pbr/templates/SUMMARY-minimal.md.tmpl +55 -0
- package/plugins/pbr/templates/SUMMARY.md.tmpl +21 -0
- package/plugins/pbr/templates/UAT.md.tmpl +94 -0
- package/plugins/pbr/templates/UI-SPEC.md.tmpl +144 -0
- package/plugins/pbr/templates/VALIDATION.md.tmpl +94 -0
- package/plugins/pbr/templates/VERIFICATION-DETAIL.md.tmpl +49 -13
- package/plugins/pbr/templates/project-CONTEXT.md.tmpl +59 -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/check-ci.js +100 -0
- package/scripts/clean-changelog.js +364 -0
- package/scripts/generate-derivatives.js +581 -0
- package/scripts/posttest.js +93 -0
- package/scripts/release.js +262 -0
- package/scripts/run-tests.cjs +29 -0
- package/scripts/test-wrapper.js +43 -0
- package/dashboard/bin/cli.js +0 -25
- package/dashboard/public/css/layout.css +0 -704
- package/dashboard/public/css/status-colors.css +0 -98
- package/dashboard/public/css/tokens.css +0 -59
- package/dashboard/public/js/htmx-title.js +0 -5
- package/dashboard/public/js/sidebar-toggle.js +0 -34
- package/dashboard/public/js/sse-client.js +0 -100
- package/dashboard/public/js/theme-toggle.js +0 -46
- package/dashboard/src/app.js +0 -91
- package/dashboard/src/middleware/current-phase.js +0 -24
- package/dashboard/src/middleware/errorHandler.js +0 -52
- package/dashboard/src/middleware/notFoundHandler.js +0 -9
- package/dashboard/src/repositories/planning.repository.js +0 -130
- package/dashboard/src/routes/events.routes.js +0 -45
- package/dashboard/src/routes/index.routes.js +0 -35
- package/dashboard/src/routes/pages.routes.js +0 -426
- package/dashboard/src/server.js +0 -42
- package/dashboard/src/services/analytics.service.js +0 -141
- package/dashboard/src/services/dashboard.service.js +0 -309
- package/dashboard/src/services/milestone.service.js +0 -222
- package/dashboard/src/services/notes.service.js +0 -50
- package/dashboard/src/services/phase.service.js +0 -232
- package/dashboard/src/services/project.service.js +0 -57
- package/dashboard/src/services/roadmap.service.js +0 -258
- package/dashboard/src/services/sse.service.js +0 -58
- package/dashboard/src/services/todo.service.js +0 -272
- package/dashboard/src/services/watcher.service.js +0 -48
- package/dashboard/src/utils/cache.js +0 -55
- package/dashboard/src/views/analytics.ejs +0 -5
- package/dashboard/src/views/coming-soon.ejs +0 -11
- package/dashboard/src/views/dependencies.ejs +0 -5
- package/dashboard/src/views/error.ejs +0 -20
- package/dashboard/src/views/index.ejs +0 -5
- package/dashboard/src/views/milestone-detail.ejs +0 -5
- package/dashboard/src/views/milestones.ejs +0 -5
- package/dashboard/src/views/notes.ejs +0 -5
- package/dashboard/src/views/partials/analytics-content.ejs +0 -90
- package/dashboard/src/views/partials/breadcrumbs.ejs +0 -14
- package/dashboard/src/views/partials/dashboard-content.ejs +0 -84
- package/dashboard/src/views/partials/dependencies-content.ejs +0 -48
- package/dashboard/src/views/partials/empty-state.ejs +0 -7
- package/dashboard/src/views/partials/footer.ejs +0 -3
- package/dashboard/src/views/partials/head.ejs +0 -30
- package/dashboard/src/views/partials/header.ejs +0 -21
- package/dashboard/src/views/partials/layout-bottom.ejs +0 -43
- package/dashboard/src/views/partials/layout-top.ejs +0 -16
- package/dashboard/src/views/partials/milestone-detail-content.ejs +0 -20
- package/dashboard/src/views/partials/milestones-content.ejs +0 -88
- package/dashboard/src/views/partials/notes-content.ejs +0 -23
- package/dashboard/src/views/partials/phase-content.ejs +0 -193
- package/dashboard/src/views/partials/phase-doc-content.ejs +0 -38
- package/dashboard/src/views/partials/phases-content.ejs +0 -124
- package/dashboard/src/views/partials/roadmap-content.ejs +0 -180
- package/dashboard/src/views/partials/sidebar.ejs +0 -99
- package/dashboard/src/views/partials/todo-create-content.ejs +0 -54
- package/dashboard/src/views/partials/todo-detail-content.ejs +0 -42
- package/dashboard/src/views/partials/todos-content.ejs +0 -97
- 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/copilot-pbr/CHANGELOG.md +0 -19
- package/plugins/copilot-pbr/README.md +0 -139
- package/plugins/copilot-pbr/agents/audit.agent.md +0 -113
- package/plugins/copilot-pbr/agents/codebase-mapper.agent.md +0 -151
- package/plugins/copilot-pbr/agents/debugger.agent.md +0 -182
- package/plugins/copilot-pbr/agents/executor.agent.md +0 -267
- package/plugins/copilot-pbr/agents/general.agent.md +0 -88
- package/plugins/copilot-pbr/agents/integration-checker.agent.md +0 -119
- package/plugins/copilot-pbr/agents/plan-checker.agent.md +0 -208
- package/plugins/copilot-pbr/agents/planner.agent.md +0 -238
- package/plugins/copilot-pbr/agents/researcher.agent.md +0 -186
- package/plugins/copilot-pbr/agents/synthesizer.agent.md +0 -126
- package/plugins/copilot-pbr/agents/verifier.agent.md +0 -228
- package/plugins/copilot-pbr/hooks/hooks.json +0 -156
- package/plugins/copilot-pbr/plugin.json +0 -30
- package/plugins/copilot-pbr/references/agent-anti-patterns.md +0 -25
- package/plugins/copilot-pbr/references/agent-contracts.md +0 -297
- package/plugins/copilot-pbr/references/agent-interactions.md +0 -135
- package/plugins/copilot-pbr/references/agent-teams.md +0 -55
- package/plugins/copilot-pbr/references/checkpoints.md +0 -158
- package/plugins/copilot-pbr/references/common-bug-patterns.md +0 -14
- package/plugins/copilot-pbr/references/config-reference.md +0 -442
- package/plugins/copilot-pbr/references/continuation-format.md +0 -213
- package/plugins/copilot-pbr/references/deviation-rules.md +0 -113
- package/plugins/copilot-pbr/references/git-integration.md +0 -227
- package/plugins/copilot-pbr/references/integration-patterns.md +0 -118
- package/plugins/copilot-pbr/references/model-profiles.md +0 -100
- package/plugins/copilot-pbr/references/model-selection.md +0 -32
- package/plugins/copilot-pbr/references/pbr-rules.md +0 -195
- package/plugins/copilot-pbr/references/pbr-tools-cli.md +0 -285
- package/plugins/copilot-pbr/references/plan-authoring.md +0 -182
- package/plugins/copilot-pbr/references/plan-format.md +0 -288
- package/plugins/copilot-pbr/references/planning-config.md +0 -214
- package/plugins/copilot-pbr/references/questioning.md +0 -215
- package/plugins/copilot-pbr/references/reading-verification.md +0 -128
- package/plugins/copilot-pbr/references/stub-patterns.md +0 -161
- package/plugins/copilot-pbr/references/subagent-coordination.md +0 -120
- package/plugins/copilot-pbr/references/ui-formatting.md +0 -444
- package/plugins/copilot-pbr/references/verification-patterns.md +0 -199
- package/plugins/copilot-pbr/references/wave-execution.md +0 -96
- package/plugins/copilot-pbr/rules/pbr-workflow.mdc +0 -48
- package/plugins/copilot-pbr/setup.ps1 +0 -93
- package/plugins/copilot-pbr/setup.sh +0 -93
- package/plugins/copilot-pbr/skills/audit/SKILL.md +0 -330
- package/plugins/copilot-pbr/skills/begin/SKILL.md +0 -589
- package/plugins/copilot-pbr/skills/begin/templates/PROJECT.md.tmpl +0 -34
- package/plugins/copilot-pbr/skills/begin/templates/REQUIREMENTS.md.tmpl +0 -19
- package/plugins/copilot-pbr/skills/begin/templates/STATE.md.tmpl +0 -50
- package/plugins/copilot-pbr/skills/begin/templates/config.json.tmpl +0 -64
- package/plugins/copilot-pbr/skills/begin/templates/researcher-prompt.md.tmpl +0 -20
- package/plugins/copilot-pbr/skills/begin/templates/roadmap-prompt.md.tmpl +0 -31
- package/plugins/copilot-pbr/skills/begin/templates/synthesis-prompt.md.tmpl +0 -17
- package/plugins/copilot-pbr/skills/build/SKILL.md +0 -960
- package/plugins/copilot-pbr/skills/config/SKILL.md +0 -250
- package/plugins/copilot-pbr/skills/continue/SKILL.md +0 -159
- package/plugins/copilot-pbr/skills/dashboard/SKILL.md +0 -43
- package/plugins/copilot-pbr/skills/debug/SKILL.md +0 -508
- package/plugins/copilot-pbr/skills/debug/templates/continuation-prompt.md.tmpl +0 -17
- package/plugins/copilot-pbr/skills/debug/templates/initial-investigation-prompt.md.tmpl +0 -28
- package/plugins/copilot-pbr/skills/discuss/SKILL.md +0 -353
- package/plugins/copilot-pbr/skills/discuss/templates/CONTEXT.md.tmpl +0 -62
- package/plugins/copilot-pbr/skills/discuss/templates/decision-categories.md +0 -10
- package/plugins/copilot-pbr/skills/do/SKILL.md +0 -66
- package/plugins/copilot-pbr/skills/explore/SKILL.md +0 -373
- package/plugins/copilot-pbr/skills/health/SKILL.md +0 -283
- package/plugins/copilot-pbr/skills/health/templates/check-pattern.md.tmpl +0 -31
- package/plugins/copilot-pbr/skills/health/templates/output-format.md.tmpl +0 -64
- package/plugins/copilot-pbr/skills/help/SKILL.md +0 -170
- package/plugins/copilot-pbr/skills/import/SKILL.md +0 -502
- package/plugins/copilot-pbr/skills/milestone/SKILL.md +0 -745
- package/plugins/copilot-pbr/skills/milestone/templates/audit-report.md.tmpl +0 -49
- package/plugins/copilot-pbr/skills/milestone/templates/stats-file.md.tmpl +0 -31
- package/plugins/copilot-pbr/skills/note/SKILL.md +0 -213
- package/plugins/copilot-pbr/skills/pause/SKILL.md +0 -247
- package/plugins/copilot-pbr/skills/pause/templates/continue-here.md.tmpl +0 -72
- package/plugins/copilot-pbr/skills/plan/SKILL.md +0 -662
- package/plugins/copilot-pbr/skills/plan/templates/checker-prompt.md.tmpl +0 -22
- package/plugins/copilot-pbr/skills/plan/templates/gap-closure-prompt.md.tmpl +0 -33
- package/plugins/copilot-pbr/skills/plan/templates/planner-prompt.md.tmpl +0 -39
- package/plugins/copilot-pbr/skills/plan/templates/researcher-prompt.md.tmpl +0 -20
- package/plugins/copilot-pbr/skills/plan/templates/revision-prompt.md.tmpl +0 -24
- package/plugins/copilot-pbr/skills/quick/SKILL.md +0 -376
- package/plugins/copilot-pbr/skills/resume/SKILL.md +0 -399
- package/plugins/copilot-pbr/skills/review/SKILL.md +0 -653
- package/plugins/copilot-pbr/skills/review/templates/debugger-prompt.md.tmpl +0 -61
- package/plugins/copilot-pbr/skills/review/templates/gap-planner-prompt.md.tmpl +0 -41
- package/plugins/copilot-pbr/skills/review/templates/verifier-prompt.md.tmpl +0 -116
- package/plugins/copilot-pbr/skills/scan/SKILL.md +0 -299
- package/plugins/copilot-pbr/skills/scan/templates/mapper-prompt.md.tmpl +0 -202
- package/plugins/copilot-pbr/skills/setup/SKILL.md +0 -296
- package/plugins/copilot-pbr/skills/shared/commit-planning-docs.md +0 -36
- package/plugins/copilot-pbr/skills/shared/config-loading.md +0 -103
- package/plugins/copilot-pbr/skills/shared/context-budget.md +0 -41
- package/plugins/copilot-pbr/skills/shared/context-loader-task.md +0 -87
- package/plugins/copilot-pbr/skills/shared/digest-select.md +0 -80
- package/plugins/copilot-pbr/skills/shared/domain-probes.md +0 -126
- package/plugins/copilot-pbr/skills/shared/error-reporting.md +0 -81
- package/plugins/copilot-pbr/skills/shared/gate-prompts.md +0 -389
- package/plugins/copilot-pbr/skills/shared/phase-argument-parsing.md +0 -46
- package/plugins/copilot-pbr/skills/shared/progress-display.md +0 -53
- package/plugins/copilot-pbr/skills/shared/revision-loop.md +0 -82
- package/plugins/copilot-pbr/skills/shared/state-loading.md +0 -63
- package/plugins/copilot-pbr/skills/shared/state-update.md +0 -162
- package/plugins/copilot-pbr/skills/shared/universal-anti-patterns.md +0 -38
- package/plugins/copilot-pbr/skills/status/SKILL.md +0 -362
- package/plugins/copilot-pbr/skills/statusline/SKILL.md +0 -149
- package/plugins/copilot-pbr/skills/todo/SKILL.md +0 -279
- package/plugins/copilot-pbr/templates/CONTEXT.md.tmpl +0 -53
- package/plugins/copilot-pbr/templates/INTEGRATION-REPORT.md.tmpl +0 -152
- package/plugins/copilot-pbr/templates/RESEARCH-SUMMARY.md.tmpl +0 -98
- package/plugins/copilot-pbr/templates/ROADMAP.md.tmpl +0 -41
- package/plugins/copilot-pbr/templates/SUMMARY.md.tmpl +0 -82
- package/plugins/copilot-pbr/templates/VERIFICATION-DETAIL.md.tmpl +0 -117
- package/plugins/copilot-pbr/templates/codebase/ARCHITECTURE.md.tmpl +0 -98
- package/plugins/copilot-pbr/templates/codebase/CONCERNS.md.tmpl +0 -93
- package/plugins/copilot-pbr/templates/codebase/CONVENTIONS.md.tmpl +0 -104
- package/plugins/copilot-pbr/templates/codebase/INTEGRATIONS.md.tmpl +0 -78
- package/plugins/copilot-pbr/templates/codebase/STACK.md.tmpl +0 -78
- package/plugins/copilot-pbr/templates/codebase/STRUCTURE.md.tmpl +0 -80
- package/plugins/copilot-pbr/templates/codebase/TESTING.md.tmpl +0 -107
- package/plugins/copilot-pbr/templates/continue-here.md.tmpl +0 -74
- package/plugins/copilot-pbr/templates/prompt-partials/phase-project-context.md.tmpl +0 -38
- package/plugins/copilot-pbr/templates/research/ARCHITECTURE.md.tmpl +0 -124
- package/plugins/copilot-pbr/templates/research/STACK.md.tmpl +0 -71
- package/plugins/copilot-pbr/templates/research/SUMMARY.md.tmpl +0 -112
- package/plugins/copilot-pbr/templates/research-outputs/phase-research.md.tmpl +0 -81
- package/plugins/copilot-pbr/templates/research-outputs/project-research.md.tmpl +0 -99
- package/plugins/copilot-pbr/templates/research-outputs/synthesis.md.tmpl +0 -36
- package/plugins/cursor-pbr/.cursor-plugin/plugin.json +0 -32
- package/plugins/cursor-pbr/CHANGELOG.md +0 -15
- package/plugins/cursor-pbr/README.md +0 -123
- package/plugins/cursor-pbr/agents/audit.md +0 -178
- package/plugins/cursor-pbr/agents/codebase-mapper.md +0 -150
- package/plugins/cursor-pbr/agents/debugger.md +0 -181
- package/plugins/cursor-pbr/agents/executor.md +0 -266
- package/plugins/cursor-pbr/agents/general.md +0 -87
- package/plugins/cursor-pbr/agents/integration-checker.md +0 -118
- package/plugins/cursor-pbr/agents/plan-checker.md +0 -207
- package/plugins/cursor-pbr/agents/planner.md +0 -237
- package/plugins/cursor-pbr/agents/researcher.md +0 -185
- package/plugins/cursor-pbr/agents/synthesizer.md +0 -125
- package/plugins/cursor-pbr/agents/verifier.md +0 -227
- package/plugins/cursor-pbr/assets/.gitkeep +0 -0
- package/plugins/cursor-pbr/assets/logo.svg +0 -21
- package/plugins/cursor-pbr/hooks/hooks.json +0 -213
- package/plugins/cursor-pbr/references/agent-anti-patterns.md +0 -25
- package/plugins/cursor-pbr/references/agent-contracts.md +0 -297
- package/plugins/cursor-pbr/references/agent-interactions.md +0 -135
- package/plugins/cursor-pbr/references/agent-teams.md +0 -55
- package/plugins/cursor-pbr/references/checkpoints.md +0 -158
- package/plugins/cursor-pbr/references/common-bug-patterns.md +0 -14
- package/plugins/cursor-pbr/references/config-reference.md +0 -442
- package/plugins/cursor-pbr/references/continuation-format.md +0 -213
- package/plugins/cursor-pbr/references/deviation-rules.md +0 -113
- package/plugins/cursor-pbr/references/git-integration.md +0 -227
- package/plugins/cursor-pbr/references/integration-patterns.md +0 -118
- package/plugins/cursor-pbr/references/model-profiles.md +0 -100
- package/plugins/cursor-pbr/references/model-selection.md +0 -32
- package/plugins/cursor-pbr/references/pbr-rules.md +0 -195
- package/plugins/cursor-pbr/references/pbr-tools-cli.md +0 -285
- package/plugins/cursor-pbr/references/plan-authoring.md +0 -182
- package/plugins/cursor-pbr/references/plan-format.md +0 -288
- package/plugins/cursor-pbr/references/planning-config.md +0 -214
- package/plugins/cursor-pbr/references/questioning.md +0 -215
- package/plugins/cursor-pbr/references/reading-verification.md +0 -128
- package/plugins/cursor-pbr/references/stub-patterns.md +0 -161
- package/plugins/cursor-pbr/references/subagent-coordination.md +0 -120
- package/plugins/cursor-pbr/references/ui-formatting.md +0 -444
- package/plugins/cursor-pbr/references/verification-patterns.md +0 -199
- package/plugins/cursor-pbr/references/wave-execution.md +0 -96
- package/plugins/cursor-pbr/rules/pbr-workflow.mdc +0 -48
- package/plugins/cursor-pbr/setup.ps1 +0 -78
- package/plugins/cursor-pbr/setup.sh +0 -83
- package/plugins/cursor-pbr/skills/audit/SKILL.md +0 -331
- package/plugins/cursor-pbr/skills/begin/SKILL.md +0 -589
- package/plugins/cursor-pbr/skills/begin/templates/PROJECT.md.tmpl +0 -34
- package/plugins/cursor-pbr/skills/begin/templates/REQUIREMENTS.md.tmpl +0 -19
- package/plugins/cursor-pbr/skills/begin/templates/STATE.md.tmpl +0 -50
- package/plugins/cursor-pbr/skills/begin/templates/config.json.tmpl +0 -64
- 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/build/SKILL.md +0 -961
- package/plugins/cursor-pbr/skills/config/SKILL.md +0 -252
- package/plugins/cursor-pbr/skills/continue/SKILL.md +0 -159
- package/plugins/cursor-pbr/skills/dashboard/SKILL.md +0 -44
- package/plugins/cursor-pbr/skills/debug/SKILL.md +0 -512
- 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/discuss/SKILL.md +0 -354
- package/plugins/cursor-pbr/skills/discuss/templates/CONTEXT.md.tmpl +0 -62
- package/plugins/cursor-pbr/skills/discuss/templates/decision-categories.md +0 -10
- package/plugins/cursor-pbr/skills/do/SKILL.md +0 -67
- package/plugins/cursor-pbr/skills/explore/SKILL.md +0 -376
- package/plugins/cursor-pbr/skills/health/SKILL.md +0 -283
- package/plugins/cursor-pbr/skills/health/templates/check-pattern.md.tmpl +0 -31
- package/plugins/cursor-pbr/skills/health/templates/output-format.md.tmpl +0 -64
- package/plugins/cursor-pbr/skills/help/SKILL.md +0 -170
- package/plugins/cursor-pbr/skills/import/SKILL.md +0 -505
- package/plugins/cursor-pbr/skills/milestone/SKILL.md +0 -746
- package/plugins/cursor-pbr/skills/milestone/templates/audit-report.md.tmpl +0 -49
- package/plugins/cursor-pbr/skills/milestone/templates/stats-file.md.tmpl +0 -31
- package/plugins/cursor-pbr/skills/note/SKILL.md +0 -214
- package/plugins/cursor-pbr/skills/pause/SKILL.md +0 -248
- package/plugins/cursor-pbr/skills/pause/templates/continue-here.md.tmpl +0 -72
- package/plugins/cursor-pbr/skills/plan/SKILL.md +0 -663
- package/plugins/cursor-pbr/skills/plan/templates/checker-prompt.md.tmpl +0 -22
- package/plugins/cursor-pbr/skills/plan/templates/gap-closure-prompt.md.tmpl +0 -33
- package/plugins/cursor-pbr/skills/plan/templates/planner-prompt.md.tmpl +0 -39
- package/plugins/cursor-pbr/skills/plan/templates/researcher-prompt.md.tmpl +0 -20
- package/plugins/cursor-pbr/skills/plan/templates/revision-prompt.md.tmpl +0 -24
- package/plugins/cursor-pbr/skills/quick/SKILL.md +0 -376
- package/plugins/cursor-pbr/skills/resume/SKILL.md +0 -399
- package/plugins/cursor-pbr/skills/review/SKILL.md +0 -654
- package/plugins/cursor-pbr/skills/review/templates/debugger-prompt.md.tmpl +0 -61
- package/plugins/cursor-pbr/skills/review/templates/gap-planner-prompt.md.tmpl +0 -41
- package/plugins/cursor-pbr/skills/review/templates/verifier-prompt.md.tmpl +0 -116
- package/plugins/cursor-pbr/skills/scan/SKILL.md +0 -300
- package/plugins/cursor-pbr/skills/scan/templates/mapper-prompt.md.tmpl +0 -202
- package/plugins/cursor-pbr/skills/setup/SKILL.md +0 -296
- package/plugins/cursor-pbr/skills/shared/commit-planning-docs.md +0 -36
- package/plugins/cursor-pbr/skills/shared/config-loading.md +0 -103
- package/plugins/cursor-pbr/skills/shared/context-budget.md +0 -41
- package/plugins/cursor-pbr/skills/shared/context-loader-task.md +0 -87
- package/plugins/cursor-pbr/skills/shared/digest-select.md +0 -80
- package/plugins/cursor-pbr/skills/shared/domain-probes.md +0 -126
- package/plugins/cursor-pbr/skills/shared/error-reporting.md +0 -81
- package/plugins/cursor-pbr/skills/shared/gate-prompts.md +0 -389
- package/plugins/cursor-pbr/skills/shared/phase-argument-parsing.md +0 -46
- package/plugins/cursor-pbr/skills/shared/progress-display.md +0 -53
- package/plugins/cursor-pbr/skills/shared/revision-loop.md +0 -82
- package/plugins/cursor-pbr/skills/shared/state-loading.md +0 -63
- package/plugins/cursor-pbr/skills/shared/state-update.md +0 -162
- package/plugins/cursor-pbr/skills/shared/universal-anti-patterns.md +0 -38
- package/plugins/cursor-pbr/skills/status/SKILL.md +0 -362
- package/plugins/cursor-pbr/skills/statusline/SKILL.md +0 -150
- package/plugins/cursor-pbr/skills/todo/SKILL.md +0 -280
- package/plugins/cursor-pbr/templates/CONTEXT.md.tmpl +0 -53
- package/plugins/cursor-pbr/templates/INTEGRATION-REPORT.md.tmpl +0 -152
- package/plugins/cursor-pbr/templates/RESEARCH-SUMMARY.md.tmpl +0 -98
- package/plugins/cursor-pbr/templates/ROADMAP.md.tmpl +0 -41
- package/plugins/cursor-pbr/templates/SUMMARY.md.tmpl +0 -82
- package/plugins/cursor-pbr/templates/VERIFICATION-DETAIL.md.tmpl +0 -117
- package/plugins/cursor-pbr/templates/codebase/ARCHITECTURE.md.tmpl +0 -98
- package/plugins/cursor-pbr/templates/codebase/CONCERNS.md.tmpl +0 -93
- package/plugins/cursor-pbr/templates/codebase/CONVENTIONS.md.tmpl +0 -104
- package/plugins/cursor-pbr/templates/codebase/INTEGRATIONS.md.tmpl +0 -78
- package/plugins/cursor-pbr/templates/codebase/STACK.md.tmpl +0 -78
- package/plugins/cursor-pbr/templates/codebase/STRUCTURE.md.tmpl +0 -80
- package/plugins/cursor-pbr/templates/codebase/TESTING.md.tmpl +0 -107
- package/plugins/cursor-pbr/templates/continue-here.md.tmpl +0 -74
- package/plugins/cursor-pbr/templates/prompt-partials/phase-project-context.md.tmpl +0 -38
- package/plugins/cursor-pbr/templates/research/ARCHITECTURE.md.tmpl +0 -124
- package/plugins/cursor-pbr/templates/research/STACK.md.tmpl +0 -71
- package/plugins/cursor-pbr/templates/research/SUMMARY.md.tmpl +0 -112
- package/plugins/cursor-pbr/templates/research-outputs/phase-research.md.tmpl +0 -81
- package/plugins/cursor-pbr/templates/research-outputs/project-research.md.tmpl +0 -99
- package/plugins/cursor-pbr/templates/research-outputs/synthesis.md.tmpl +0 -36
- package/plugins/pbr/references/agent-interactions.md +0 -134
- package/plugins/pbr/references/pbr-rules.md +0 -194
- package/plugins/pbr/references/pbr-tools-cli.md +0 -285
- package/plugins/pbr/references/planning-config.md +0 -213
- package/plugins/pbr/references/subagent-coordination.md +0 -119
- package/plugins/pbr/references/ui-formatting.md +0 -444
- package/plugins/pbr/scripts/validate-plugin-structure.js +0 -183
- package/plugins/pbr/skills/milestone/templates/audit-report.md.tmpl +0 -48
- 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
|
@@ -0,0 +1,545 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: autonomous
|
|
3
|
+
description: "Run multiple phases hands-free. Chains discuss, plan, build, and verify automatically."
|
|
4
|
+
allowed-tools: Read, Write, Bash, Glob, Grep, Skill, Task, AskUserQuestion
|
|
5
|
+
argument-hint: "[--from <N>] [--through <N>] [--speculative-depth <N>] [--dry-run]"
|
|
6
|
+
---
|
|
7
|
+
|
|
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 tokens. Begin executing Step 0 immediately.**
|
|
9
|
+
|
|
10
|
+
# /pbr:autonomous — Hands-Free Multi-Phase Execution
|
|
11
|
+
|
|
12
|
+
References: @references/questioning.md, @references/ui-brand.md
|
|
13
|
+
|
|
14
|
+
## Step 0 — Immediate Output
|
|
15
|
+
|
|
16
|
+
**Before ANY tool calls**, display this banner:
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
╔══════════════════════════════════════════════════════════════╗
|
|
20
|
+
║ PLAN-BUILD-RUN ► AUTONOMOUS MODE ║
|
|
21
|
+
╚══════════════════════════════════════════════════════════════╝
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Then proceed to Step 1.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Step 1: Config Gate and Parse Arguments
|
|
29
|
+
|
|
30
|
+
1. Read `.planning/config.json`. Check `workflow.autonomous` — if `false` or missing, display:
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
Autonomous mode is disabled.
|
|
34
|
+
|
|
35
|
+
Enable with: /pbr:config set workflow.autonomous true
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Stop immediately. Do NOT proceed.
|
|
39
|
+
|
|
40
|
+
2. Parse `$ARGUMENTS`:
|
|
41
|
+
|
|
42
|
+
| Argument | Meaning | Default |
|
|
43
|
+
|----------|---------|---------|
|
|
44
|
+
| `--from N` | Start from phase N | Current phase from STATE.md |
|
|
45
|
+
| `--through N` | Stop after phase N | Last phase in current milestone |
|
|
46
|
+
| `--speculative-depth N` | How many phases ahead to plan speculatively | From config `workflow.speculative_depth` (default 2) |
|
|
47
|
+
| `--dry-run` | Show which phases would execute without doing anything | Off |
|
|
48
|
+
|
|
49
|
+
3. Determine speculative planning settings:
|
|
50
|
+
- Read `workflow.speculative_planning` from config — if false, speculative depth = 0
|
|
51
|
+
- Read `workflow.speculative_depth` from config (default: 2)
|
|
52
|
+
- If `--speculative-depth N` provided, override config value
|
|
53
|
+
- Store as `speculativeDepth` for use in Step 3
|
|
54
|
+
|
|
55
|
+
4. Read `gates.checkpoint_auto_resolve` from config (default: `"none"`). Values:
|
|
56
|
+
- `"none"`: STOP on all checkpoints (user must resolve)
|
|
57
|
+
- `"verify-only"`: Auto-resolve `checkpoint:human-verify` (proceed after confidence-gate passes), STOP on `checkpoint:human-action`
|
|
58
|
+
- `"verify-and-decision"`: Auto-resolve verify + decision checkpoints, STOP on `checkpoint:human-action`
|
|
59
|
+
- `"all"`: Auto-resolve all checkpoints (dangerous — only for fully automated pipelines)
|
|
60
|
+
Store as `checkpointResolveLevel` for use in Step 3c.
|
|
61
|
+
5. Read `.planning/STATE.md` to determine current phase (used as default for `--from`).
|
|
62
|
+
6. Read `.planning/ROADMAP.md` to build phase list for current milestone.
|
|
63
|
+
7. **CRITICAL (hook-enforced): Write .active-skill NOW.** Write `.planning/.active-skill` with the content `autonomous` using the Write tool. This registers the autonomous session with the workflow enforcement hooks. Child Skill() calls (plan, build, review) will overwrite this with their own skill name during execution and should restore or re-write it — but the orchestrator owns the initial write and final cleanup.
|
|
64
|
+
8. Filter to phases from `--from` through `--through` that are not yet complete.
|
|
65
|
+
8. If no phases to execute, display: "All phases in range are complete." and stop.
|
|
66
|
+
|
|
67
|
+
**If `--dry-run`:** Display the phase list with planned actions per phase, then stop without executing.
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
DRY RUN — Would execute:
|
|
71
|
+
Phase 3 (data-layer): discuss -> plan -> build -> verify
|
|
72
|
+
Phase 4 (api-endpoints): plan -> build -> verify (CONTEXT.md exists, skip discuss)
|
|
73
|
+
[speculative: plan Phase 5 during Phase 4 build]
|
|
74
|
+
Phase 5 (frontend): discuss -> plan -> build -> verify
|
|
75
|
+
Speculative depth: 2
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
When `speculativeDepth > 0`, append the speculative depth value and annotate phases where speculative planning would occur. When `speculativeDepth == 0` (speculative_planning is false), omit the speculation lines.
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## Step 2: Dynamic Phase Detection
|
|
83
|
+
|
|
84
|
+
Before each phase iteration:
|
|
85
|
+
|
|
86
|
+
1. Re-read `.planning/ROADMAP.md` (catches inserted/removed phases between iterations)
|
|
87
|
+
2. Rebuild the phase list for the current milestone
|
|
88
|
+
3. Compare with previous iteration's list — if changed, log:
|
|
89
|
+
```
|
|
90
|
+
Phase list changed: {diff}. Adjusting execution order.
|
|
91
|
+
```
|
|
92
|
+
4. Skip phases already marked as verified/complete in ROADMAP.md
|
|
93
|
+
|
|
94
|
+
**Verification tracking:** Initialize two counters at the start of the autonomous run:
|
|
95
|
+
- `phases_verified_full = 0` — count of phases that received full `/pbr:review` verification
|
|
96
|
+
- `phases_verified_total = 0` — count of phases that completed verification (any type)
|
|
97
|
+
- Read `verification.min_full_percent` from config (default: 30)
|
|
98
|
+
- Calculate `full_verify_interval`: if min_full_percent > 0, compute `Math.floor(100 / min_full_percent)` (e.g., 30% → every 3rd phase). If 0, set to Infinity (never force full).
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## Step 3: Phase Loop
|
|
103
|
+
|
|
104
|
+
For each remaining phase N:
|
|
105
|
+
|
|
106
|
+
### 3a. Discuss Phase (conditional)
|
|
107
|
+
|
|
108
|
+
- Check if `.planning/phases/{NN}-{slug}/CONTEXT.md` exists -- if so, skip (decisions already captured)
|
|
109
|
+
- Count requirements for this phase: parse the `### Phase {N}:` section in ROADMAP.md, count bullet lines under `**Requirements:**`
|
|
110
|
+
- **Auto-skip discuss** (no Skill() call) when ANY of these are true:
|
|
111
|
+
- CONTEXT.md already exists
|
|
112
|
+
- Requirement count is 0 or 1 (well-specified, no gray areas worth discussing)
|
|
113
|
+
- `--auto` mode is active AND all requirements are simple factual statements (no `[NEEDS DECISION]` markers)
|
|
114
|
+
- Log: `Phase {N}: auto-skipping discuss ({count} requirement(s), well-specified)`
|
|
115
|
+
- **Run discuss** only when: CONTEXT.md missing AND requirement count >= 2 AND at least one requirement contains ambiguous language or `[NEEDS DECISION]`
|
|
116
|
+
- Invoke: `Skill({ skill: "pbr:discuss", args: "{N} --auto" })`
|
|
117
|
+
- The `--auto` flag triggers smart discuss batching: collect ALL gray areas across the phase requirements and present them in a single batch for resolution, rather than asking one at a time.
|
|
118
|
+
|
|
119
|
+
### 3b. Plan Phase
|
|
120
|
+
|
|
121
|
+
- Check if `.planning/phases/{NN}-{slug}/PLAN-*.md` files exist
|
|
122
|
+
- If NOT exists:
|
|
123
|
+
- Invoke: `Skill({ skill: "pbr:plan", args: "{N} --auto" })`
|
|
124
|
+
- If plans exist (from speculative planning or prior run): skip planning.
|
|
125
|
+
- Log: `Phase {N}: plans already exist (speculative or prior) -- skipping plan step.`
|
|
126
|
+
- Note: even if planning is skipped, the 3b-validate gate below will verify plans are validated.
|
|
127
|
+
- If Skill returns failure: stop autonomous loop, display error, suggest: `/pbr:plan {N}`
|
|
128
|
+
|
|
129
|
+
### 3b-validate. Plan Validation Gate (always runs)
|
|
130
|
+
|
|
131
|
+
**CRITICAL -- DO NOT SKIP. No phase may enter build without passing plan validation.**
|
|
132
|
+
|
|
133
|
+
1. Check if `.planning/phases/{NN}-{slug}/.plan-check.json` exists.
|
|
134
|
+
2. If it exists: read it and verify `status === "passed"`.
|
|
135
|
+
- If passed: log `Phase {N}: plan validation passed` and proceed to 3c.
|
|
136
|
+
- If not passed: log `Phase {N}: plan validation failed -- re-running plan checker`
|
|
137
|
+
- Invoke: `Skill({ skill: "pbr:plan", args: "{N} --audit --auto" })`
|
|
138
|
+
- Re-check `.plan-check.json`. If still not passed: stop autonomous loop.
|
|
139
|
+
Display: `BLOCKED: Phase {N} plans failed validation. Fix issues with /pbr:plan {N} --audit`
|
|
140
|
+
3. If `.plan-check.json` does NOT exist (plans came from speculative planner which bypassed plan-checker):
|
|
141
|
+
- Log: `Phase {N}: no .plan-check.json -- running plan checker on existing plans`
|
|
142
|
+
- Invoke: `Skill({ skill: "pbr:plan", args: "{N} --audit --auto" })`
|
|
143
|
+
- After completion, re-check `.plan-check.json`. If missing or failed: stop autonomous loop with same BLOCKED message.
|
|
144
|
+
|
|
145
|
+
### 3c. Build Phase
|
|
146
|
+
|
|
147
|
+
- Check if all PLAN files have corresponding SUMMARY files
|
|
148
|
+
- If incomplete:
|
|
149
|
+
- Invoke: `Skill({ skill: "pbr:build", args: "{N} --auto" })`
|
|
150
|
+
- If all SUMMARYs exist: skip build
|
|
151
|
+
- **Checkpoint handling** (uses `checkpointResolveLevel` from Step 1):
|
|
152
|
+
- `checkpoint:human-action`: ALWAYS stop (regardless of config). Display: "Human action required in Phase {N}. Complete the action, then resume with: `/pbr:autonomous --from {N}`"
|
|
153
|
+
- `checkpoint:human-verify`: If `checkpointResolveLevel` is `"verify-only"`, `"verify-and-decision"`, or `"all"`: auto-resolve by running confidence gate. Otherwise STOP.
|
|
154
|
+
- `checkpoint:human-decision`: If `checkpointResolveLevel` is `"verify-and-decision"` or `"all"`: auto-resolve with default option. Otherwise STOP.
|
|
155
|
+
- Any other checkpoint type: If `checkpointResolveLevel` is `"all"`: auto-resolve. Otherwise STOP.
|
|
156
|
+
|
|
157
|
+
#### Error Classification
|
|
158
|
+
|
|
159
|
+
Before retrying any build failure, classify the error:
|
|
160
|
+
|
|
161
|
+
**Transient errors** (auto-fixable -- clean up then retry):
|
|
162
|
+
|
|
163
|
+
- Stale `.active-skill`: file exists but session that wrote it is gone (check via `ps` or absence of matching `.session-*.json`)
|
|
164
|
+
- Stale `.active-agent`: same pattern
|
|
165
|
+
- Git lock file: `.git/index.lock` or `.git/MERGE_HEAD` left by a killed process
|
|
166
|
+
- `EBUSY`/`EACCES` file lock errors on Windows
|
|
167
|
+
|
|
168
|
+
**Permanent errors** (do not retry):
|
|
169
|
+
|
|
170
|
+
- Missing PLAN-*.md files
|
|
171
|
+
- Syntax errors in plan YAML frontmatter
|
|
172
|
+
- Executor returned checkpoint:human-action
|
|
173
|
+
- Missing dependency phase SUMMARY.md (means prior phase incomplete)
|
|
174
|
+
|
|
175
|
+
**CRITICAL — DO NOT DEBUG INLINE**: When build or test failures occur, you MUST spawn a `pbr:debugger` agent via `Task()`. Do NOT read source files, edit modules, or run tests directly in orchestrator context. Inline debugging consumes main context and violates PBR's delegation principle.
|
|
176
|
+
|
|
177
|
+
If verification (Step 3d) finds test failures:
|
|
178
|
+
- Spawn: `Task({ subagent_type: "pbr:debugger", prompt: "Phase {N}: {failure description}. Fix the failing tests." })`
|
|
179
|
+
- Do NOT use Edit/Write on source files (non-.planning/ files) from the orchestrator
|
|
180
|
+
|
|
181
|
+
**Classification procedure (Step 3c on failure):**
|
|
182
|
+
|
|
183
|
+
1. Read the Skill() return value / error message
|
|
184
|
+
2. Check for known transient patterns (lock files, stale signal files)
|
|
185
|
+
3. Read `autonomous.max_retries` from config (default: 2)
|
|
186
|
+
4. Read `autonomous.error_strategy` from config (default: 'retry'): 'stop' | 'retry' | 'skip'
|
|
187
|
+
|
|
188
|
+
- If Skill returns failure:
|
|
189
|
+
a. Classify error (see Error Classification above)
|
|
190
|
+
b. **If transient error:**
|
|
191
|
+
- Auto-fix: remove stale signal file OR remove `.git/index.lock` via Bash
|
|
192
|
+
- Increment retry counter for this phase (start at 0)
|
|
193
|
+
- If retry counter < `autonomous.max_retries`: retry `Skill({ skill: "pbr:build", args: "{N} --auto" })`
|
|
194
|
+
- If retry counter >= `autonomous.max_retries`: apply error_strategy (see below)
|
|
195
|
+
c. **If permanent error:** apply error_strategy immediately (no retries)
|
|
196
|
+
d. **error_strategy application:**
|
|
197
|
+
- `stop` (safe default): stop autonomous loop, display error, suggest `/pbr:build {N}`
|
|
198
|
+
- `retry`: already handled above (retry up to max_retries, then stop)
|
|
199
|
+
- `skip`: log warning "Skipping Phase {N} due to unrecoverable error", continue to Phase N+1
|
|
200
|
+
e. **On transient auto-fix:** log: `Auto-fixed transient error in Phase {N}: {description}. Retry {n}/{max}.`
|
|
201
|
+
|
|
202
|
+
### 3c-speculative. Speculative Planning (during build)
|
|
203
|
+
|
|
204
|
+
**Gate:** Only execute this sub-step if ALL conditions are met:
|
|
205
|
+
- `speculativeDepth > 0` (from Step 1.3 -- speculative_planning is true AND depth > 0)
|
|
206
|
+
- Phase N build was just invoked (not skipped because SUMMARYs exist)
|
|
207
|
+
|
|
208
|
+
**Procedure:**
|
|
209
|
+
|
|
210
|
+
1. Determine candidate phases for speculative planning:
|
|
211
|
+
- Start from N+1, up to N+speculativeDepth
|
|
212
|
+
- For each candidate phase C:
|
|
213
|
+
a. Skip if C is beyond `--through` limit
|
|
214
|
+
b. Skip if C already has PLAN-*.md files
|
|
215
|
+
c. Skip if C already has CONTEXT.md AND the CONTEXT.md was NOT auto-generated
|
|
216
|
+
d. Read ROADMAP.md `### Phase C:` section, extract `**Depends on:**` line
|
|
217
|
+
e. Parse dependency phase numbers (same regex as build-dependency.js: `/Phase\s+(\d+)/gi`)
|
|
218
|
+
f. For each dependency D: check if D is completed (has VERIFICATION.md) OR is currently building (D == N)
|
|
219
|
+
g. If ALL dependencies are satisfied or in-flight: C is a candidate
|
|
220
|
+
h. If ANY dependency is neither completed nor in-flight: skip C AND all phases after C
|
|
221
|
+
|
|
222
|
+
2. For each candidate phase C (in order):
|
|
223
|
+
- Check agent budget: if current concurrent agents >= `parallelization.max_concurrent_agents`, skip remaining candidates
|
|
224
|
+
- Log: `Speculative planning: Phase {C} (while Phase {N} builds)`
|
|
225
|
+
- Invoke planner as background task:
|
|
226
|
+
```
|
|
227
|
+
Task({
|
|
228
|
+
subagent_type: "pbr:planner",
|
|
229
|
+
model: "sonnet",
|
|
230
|
+
run_in_background: true,
|
|
231
|
+
prompt: "Plan Phase {C} --speculative. Phase goal from ROADMAP.md. Write plans to .planning/phases/{CC}-{slug}/. This is a speculative plan -- Phase {N} is still building. Do NOT write .active-skill. Do NOT update STATE.md."
|
|
232
|
+
})
|
|
233
|
+
```
|
|
234
|
+
- After dispatching: add expected plan file paths to `.autonomous-state.json` `speculative_plan_paths["{C}"]`.
|
|
235
|
+
Paths use pattern `.planning/phases/{CC}-{slug}/PLAN-*.md`. At dispatch time, store the glob pattern as-is;
|
|
236
|
+
it will be resolved to actual paths after the planner completes.
|
|
237
|
+
- Plans are written directly to the normal phase directory (NOT .speculative/) per locked decision #2
|
|
238
|
+
|
|
239
|
+
3. After Phase N build completes (the Skill() call returns), proceed to staleness check in 3c-stale below.
|
|
240
|
+
|
|
241
|
+
Important constraints:
|
|
242
|
+
- Plan-only: Do NOT invoke discuss for speculative phases (locked decision #2). The planner only needs ROADMAP + CONTEXT.md.
|
|
243
|
+
- Exception: if a phase-level CONTEXT.md already exists from a prior manual `/pbr:discuss-phase`, that is fine -- the planner will use it.
|
|
244
|
+
- Do NOT speculate on phases that already have plans.
|
|
245
|
+
- Respect max_concurrent_agents: count the build executor as 1 agent. Speculative planners share the remaining budget.
|
|
246
|
+
- After dispatching speculative Task()s, do NOT write .active-skill — the orchestrator already owns it for the active Phase {N} build. The speculative planner receives --speculative and will skip signal file writes.
|
|
247
|
+
- **Individual Agent Calls:** Each speculative planner MUST be dispatched as a separate Task() tool call. Do NOT describe multiple spawns in prose (e.g., "launched 3 planners"). Each separate Task() call gets its own colored badge and independent status tracking in the Claude Code UI. Multiple Task() calls in one message still run concurrently.
|
|
248
|
+
|
|
249
|
+
### 3c-stale. Staleness Check (after build completes)
|
|
250
|
+
|
|
251
|
+
**Gate:** Only execute if speculative planners were dispatched in 3c-speculative for this phase N.
|
|
252
|
+
|
|
253
|
+
Note: When speculative plans are replaced (re-planned), the checkpoint manifest from a prior
|
|
254
|
+
speculative run (if any) becomes stale. Re-initialize it immediately after re-planning so
|
|
255
|
+
that the build skill does not try to skip plans that no longer exist.
|
|
256
|
+
|
|
257
|
+
**Procedure:**
|
|
258
|
+
|
|
259
|
+
1. Wait for any outstanding speculative planner tasks to complete (they run in background).
|
|
260
|
+
1.5. **Validate speculative plans:** For each speculatively-planned phase C that completed successfully:
|
|
261
|
+
- Check if `.planning/phases/{CC}-{slug}/.plan-check.json` exists (it will not -- raw planner does not write it)
|
|
262
|
+
- Run plan-checker on the speculative plans:
|
|
263
|
+
```
|
|
264
|
+
Task({
|
|
265
|
+
subagent_type: "pbr:plan-checker",
|
|
266
|
+
model: "sonnet",
|
|
267
|
+
prompt: "Validate plans in .planning/phases/{CC}-{slug}/. Read all PLAN-*.md files. Write .plan-check.json to the phase directory. Phase goal: {goal from ROADMAP}. Check structural completeness, task elements, dependency correctness."
|
|
268
|
+
})
|
|
269
|
+
```
|
|
270
|
+
- Log: `Speculative plans for Phase {C}: validated ({status})`
|
|
271
|
+
- If plan-checker finds blockers: log warning but do NOT stop the loop (plans will be re-validated at 3b-validate before build)
|
|
272
|
+
- **Design note:** Speculative planning uses raw `Task(subagent_type: "pbr:planner")` + separate plan-checker rather than `Skill("pbr:plan")` because: (a) Skill() writes .active-skill which conflicts with the orchestrator's ownership, (b) Skill() updates STATE.md which is incorrect for speculative phases, (c) the raw planner + separate checker is more appropriate for speculative context where state should not be mutated. The 3b-validate gate provides the authoritative check before build.
|
|
273
|
+
2. Read Phase N's SUMMARY.md files. For each SUMMARY.md, extract `deviations` from YAML frontmatter.
|
|
274
|
+
3. Compute total deviation count across all SUMMARY files for Phase N.
|
|
275
|
+
4. If total deviations == 0: speculative plans are fresh -- no action needed. Log:
|
|
276
|
+
`Phase {N} build: 0 deviations -- speculative plans for Phase(s) {list} are valid.`
|
|
277
|
+
5. If total deviations > 0: check each speculatively-planned phase C:
|
|
278
|
+
a. Read ROADMAP.md dependencies for Phase C
|
|
279
|
+
b. If Phase C depends on Phase N (directly):
|
|
280
|
+
- Delete the speculative PLAN-*.md files for Phase C
|
|
281
|
+
- Log: `Phase {N} had {count} deviation(s) -- re-planning Phase {C}`
|
|
282
|
+
- Re-invoke planner synchronously:
|
|
283
|
+
```
|
|
284
|
+
Skill({ skill: "pbr:plan", args: "{C} --auto" })
|
|
285
|
+
```
|
|
286
|
+
- **Verify re-plan validation:** After `Skill()` returns, confirm `.plan-check.json` exists in the phase directory with `status: "passed"`. The `/pbr:plan` skill writes this artifact. If missing (edge case -- plan skill failed to write artifact):
|
|
287
|
+
- Run: `Task({ subagent_type: "pbr:plan-checker", model: "sonnet", prompt: "Validate plans in .planning/phases/{CC}-{slug}/. Write .plan-check.json." })`
|
|
288
|
+
- Log: `Phase {C}: re-plan validation completed`
|
|
289
|
+
- Re-initialize checkpoint manifest for Phase C with the new plan IDs:
|
|
290
|
+
```bash
|
|
291
|
+
# Collect new PLAN-*.md filenames from .planning/phases/{CC}-{slug}/
|
|
292
|
+
# Extract plan IDs from frontmatter (plan: field) of each new PLAN file
|
|
293
|
+
node ${CLAUDE_PLUGIN_ROOT}/scripts/pbr-tools.js checkpoint init {CC}-{slug} --plans "{comma-separated plan IDs}"
|
|
294
|
+
```
|
|
295
|
+
This ensures the build skill starts with accurate plan tracking when Phase C is built.
|
|
296
|
+
- Note: The re-plan via `/pbr:plan` already includes plan-checker validation (Step 6 of the plan skill). The explicit check above is a safety net -- if the plan skill's checker was skipped due to depth profile, the autonomous mode enforces it independently.
|
|
297
|
+
c. If Phase C does NOT depend on Phase N: plans are still valid, no action needed.
|
|
298
|
+
|
|
299
|
+
Important: The staleness check uses deviation count from SUMMARY.md frontmatter (locked decision #3). Any deviation > 0 triggers re-plan for dependent phases. This is intentionally simple -- no partial staleness analysis.
|
|
300
|
+
|
|
301
|
+
### 3d-pre. Validate Phase (conditional)
|
|
302
|
+
|
|
303
|
+
**Gate:** Run only if ALL of these are true:
|
|
304
|
+
- `workflow.validate_phase` is `true` in config (default: `true` — read via `node ${CLAUDE_PLUGIN_ROOT}/scripts/pbr-tools.js config get workflow.validate_phase`)
|
|
305
|
+
- No `VALIDATION.md` with `status: passed` already exists in the phase directory
|
|
306
|
+
|
|
307
|
+
If gate passes:
|
|
308
|
+
- Display: `◆ Running validate-phase for Phase {N}...`
|
|
309
|
+
- Invoke: `Skill({ skill: "pbr:validate-phase", args: "{N} --auto" })`
|
|
310
|
+
- If validate-phase returns gaps (`impl_bugs: true` in VALIDATION.md frontmatter):
|
|
311
|
+
- Attempt gap closure: `Skill({ skill: "pbr:build", args: "{N} --gaps-only --auto" })`
|
|
312
|
+
- Re-run validate: `Skill({ skill: "pbr:validate-phase", args: "{N} --auto" })`
|
|
313
|
+
- If gaps persist: stop loop, display gaps, suggest manual intervention (same hard stop as verification gaps).
|
|
314
|
+
- If validate-phase passes or toggle is false: continue to step 3d.
|
|
315
|
+
|
|
316
|
+
### 3d. Verify Phase (Lightweight-First)
|
|
317
|
+
|
|
318
|
+
- Check if `VERIFICATION.md` exists with `status: passed` — if yes, skip to 3e.
|
|
319
|
+
- **Lightweight verification first** (avoid spawning heavyweight verifier agent):
|
|
320
|
+
1. **CLI-first SUMMARY validation:** For each plan in the phase, run:
|
|
321
|
+
```bash
|
|
322
|
+
node ${CLAUDE_PLUGIN_ROOT}/scripts/pbr-tools.js verify summary ".planning/phases/{NN}-{slug}/SUMMARY-{plan_id}.md" --check-files 3
|
|
323
|
+
```
|
|
324
|
+
Parse JSON result: `checks.files_created.missing` (claimed files that don't exist), `checks.commits_exist` (referenced SHAs valid), `checks.self_check` (executor self-check status). If ANY summary has `passed: false`, fail the confidence gate.
|
|
325
|
+
2. Compute aggregate completion from SUMMARY frontmatter `completion` percentage (average across all plans).
|
|
326
|
+
3. **CLI commit verification:** For all commit SHAs found in SUMMARY files:
|
|
327
|
+
```bash
|
|
328
|
+
node ${CLAUDE_PLUGIN_ROOT}/scripts/pbr-tools.js verify commits {space-separated-hashes}
|
|
329
|
+
```
|
|
330
|
+
If `valid: false` for any commit, flag as missing evidence.
|
|
331
|
+
4. **Test result caching:** Before running the test suite:
|
|
332
|
+
a. Compute cache key: the current phase directory path (e.g., `.planning/phases/23-slug`)
|
|
333
|
+
b. Check `.planning/.test-cache.json` for a fresh result (TTL: 60 seconds):
|
|
334
|
+
- If a fresh result exists (`passed: true`, timestamp within 60s): use it directly — do NOT re-run tests
|
|
335
|
+
- Log: `Tests: cached result used (age: {age}s)`
|
|
336
|
+
c. If no fresh cache: detect and run test suite (`npm test`, `pytest`, `make test`, etc.)
|
|
337
|
+
- On completion: write result to `.planning/.test-cache.json` with the phase directory as key
|
|
338
|
+
- Log: `Tests: ran fresh, result cached`
|
|
339
|
+
d. Use the result (cached or fresh) for the confidence gate check in sub-step 5
|
|
340
|
+
Note: This test run serves as both the confidence gate signal AND the regression gate. If tests fail, this is a regression — delegate to debugger agent per the CRITICAL marker above.
|
|
341
|
+
4.5. **CLI artifact + wiring check:** For each plan in the phase, run the CLI verify commands:
|
|
342
|
+
```bash
|
|
343
|
+
node ${CLAUDE_PLUGIN_ROOT}/scripts/pbr-tools.js verify artifacts ".planning/phases/{NN}-{slug}/{plan_id}-PLAN.md"
|
|
344
|
+
node ${CLAUDE_PLUGIN_ROOT}/scripts/pbr-tools.js verify key-links ".planning/phases/{NN}-{slug}/{plan_id}-PLAN.md"
|
|
345
|
+
```
|
|
346
|
+
Parse JSON results: if `all_passed: false` (artifacts) or `all_verified: false` (key-links), fail the confidence gate and fall through to full verification. As a supplementary check, for each file in SUMMARY.md key_files (excluding tests and docs), verify at least one require()/import reference exists elsewhere in the project. Use: `grep -rl "{basename}" --include="*.js" --include="*.cjs" --include="*.ts" --include="*.md" . | grep -v node_modules | grep -v "{key_file_itself}"`. If ANY key file is orphaned, fail the confidence gate.
|
|
347
|
+
5. **Verification depth selection** (round-robin enforcement):
|
|
348
|
+
- Increment `phases_verified_total`
|
|
349
|
+
- **Determine if this phase needs full verification:**
|
|
350
|
+
- If `phases_verified_total % full_verify_interval === 0`: this phase MUST get full verification
|
|
351
|
+
- If this is the LAST phase in the milestone: MUST get full verification
|
|
352
|
+
- If ANY signal failed (completion < 90%, SHAs missing, tests fail, wiring orphan): MUST get full verification
|
|
353
|
+
- Otherwise: confidence-gate is sufficient
|
|
354
|
+
|
|
355
|
+
6. **If confidence-gate is sufficient** (all signals pass AND not a forced-full phase):
|
|
356
|
+
- Display: `Phase {N}: confidence gate passed — lightweight verification (full verify on phase {next_full_phase})`
|
|
357
|
+
- Increment `phases_verified_total` but NOT `phases_verified_full`
|
|
358
|
+
- Write VERIFICATION.md with `verification_type: confidence-gate` in frontmatter
|
|
359
|
+
- Continue to 3e
|
|
360
|
+
|
|
361
|
+
**CRITICAL — DO NOT SKIP FULL VERIFICATION WHEN REQUIRED. The round-robin enforcement exists because the LLM historically skips full verification under cognitive load. If this phase is marked for full verification, you MUST invoke the review skill.**
|
|
362
|
+
|
|
363
|
+
7. **If full verification required** (forced-full phase OR any signal failed):
|
|
364
|
+
- Display: `Phase {N}: FULL VERIFICATION (enforced — {reason})`
|
|
365
|
+
- Invoke: `Skill({ skill: "pbr:review", args: "{N} --auto" })`
|
|
366
|
+
- Increment both `phases_verified_full` and `phases_verified_total`
|
|
367
|
+
- If verification finds gaps:
|
|
368
|
+
- Attempt gap closure: `Skill({ skill: "pbr:plan", args: "{N} --gaps --auto" })`
|
|
369
|
+
- Then retry build: `Skill({ skill: "pbr:build", args: "{N} --gaps-only --auto" })`
|
|
370
|
+
- Then retry verify: `Skill({ skill: "pbr:review", args: "{N} --auto" })`
|
|
371
|
+
- If gaps persist after one retry: stop loop, display gaps, suggest manual intervention.
|
|
372
|
+
- If passes: continue to 3e
|
|
373
|
+
|
|
374
|
+
**CRITICAL — DO NOT FIX FAILURES INLINE**: If test failures are detected, delegate to a debugger agent. Do NOT edit source files in orchestrator context.
|
|
375
|
+
|
|
376
|
+
### 3e. Phase Complete
|
|
377
|
+
|
|
378
|
+
- Log: "Phase {N} complete. Moving to Phase {N+1}."
|
|
379
|
+
- **Git branch (conditional):** If `git.branching: "phase"` in `.planning/config.json`:
|
|
380
|
+
1. Read `git.phase_branch_template` from config (default: `pbr/phase-{phase}-{slug}`)
|
|
381
|
+
2. Expand template: `{phase}` -> zero-padded phase number (e.g., `23`), `{slug}` -> phase slug from ROADMAP
|
|
382
|
+
3. Run `git checkout -b {branch_name}` to create branch from current HEAD
|
|
383
|
+
4. If that fails with "already exists": run `git checkout {branch_name}` instead
|
|
384
|
+
5. Log: `Branch: {branch_name}`
|
|
385
|
+
6. Write branch name to `.autonomous-state.json` under `branch_state["{N}"]`
|
|
386
|
+
**CRITICAL — DO NOT SKIP: Update STATE.md current_phase via CLI NOW. Do not skip.**
|
|
387
|
+
- Update STATE.md current_phase to next phase via CLI:
|
|
388
|
+
```bash
|
|
389
|
+
node ${CLAUDE_PLUGIN_ROOT}/scripts/pbr-tools.js state update current_phase {N+1}
|
|
390
|
+
```
|
|
391
|
+
- Update `.autonomous-state.json` with phase error metrics:
|
|
392
|
+
|
|
393
|
+
```bash
|
|
394
|
+
# Read current state, merge phase N error/retry data, write back
|
|
395
|
+
node -e "
|
|
396
|
+
const fs=require('fs');
|
|
397
|
+
const f='.planning/.autonomous-state.json';
|
|
398
|
+
const s=fs.existsSync(f)?JSON.parse(fs.readFileSync(f,'utf8')):{};
|
|
399
|
+
s.errors=s.errors||{}; s.retries=s.retries||{};
|
|
400
|
+
// phase_errors and phase_retries are substituted by orchestrator
|
|
401
|
+
if('{phase_errors}') s.errors['{N}']='{phase_errors}';
|
|
402
|
+
if('{phase_retries}'!='0') s.retries['{N}']=parseInt('{phase_retries}');
|
|
403
|
+
s.timestamp=new Date().toISOString();
|
|
404
|
+
fs.writeFileSync(f,JSON.stringify(s,null,2));
|
|
405
|
+
"
|
|
406
|
+
```
|
|
407
|
+
|
|
408
|
+
Where `{phase_errors}` and `{phase_retries}` are the accumulated error description and retry count tracked during Step 3c for phase N. If phase N had no errors, omit the errors entry.
|
|
409
|
+
|
|
410
|
+
- **Update root MILESTONE.md** — If `MILESTONE.md` exists at project root, overwrite it with updated phase statuses from ROADMAP.md progress table for the current milestone. If it doesn't exist, skip silently.
|
|
411
|
+
- Proceed to 3e-ci (CI Verification) before starting next phase.
|
|
412
|
+
- Check milestone boundary: if this was the last phase in the current milestone:
|
|
413
|
+
1. Log: `All phases in milestone complete. Invoking milestone completion...`
|
|
414
|
+
2. Invoke: `Skill({ skill: "pbr:milestone", args: "complete --auto" })`
|
|
415
|
+
3. If the milestone skill succeeds:
|
|
416
|
+
- Check if there are more milestones with unexecuted phases in ROADMAP.md
|
|
417
|
+
- If yes and within `--through` range: continue to next milestone's first phase
|
|
418
|
+
- If no more milestones or beyond `--through`: stop loop
|
|
419
|
+
- Display: "Milestone archived. {next action}"
|
|
420
|
+
4. If the milestone skill fails: stop loop.
|
|
421
|
+
Display: "Milestone completion failed. Run `/pbr:milestone complete` manually."
|
|
422
|
+
|
|
423
|
+
### 3e-ci. CI Verification (after phase complete)
|
|
424
|
+
|
|
425
|
+
**Gate:** Run only if git commits were pushed during this phase's build step.
|
|
426
|
+
|
|
427
|
+
1. Run `gh run list --limit 3` to check CI status
|
|
428
|
+
2. Parse the output for the most recent run:
|
|
429
|
+
- If status is "in_progress" or "queued": run `gh run watch {run_id} --exit-status` with a 5-minute timeout
|
|
430
|
+
- If status is "completed" and conclusion is "success": log `CI passed for Phase {N}` and continue
|
|
431
|
+
- If status is "completed" and conclusion is "failure":
|
|
432
|
+
- Display: `CI FAILED for Phase {N}. Run ID: {run_id}`
|
|
433
|
+
- Display the failed jobs: `gh run view {run_id} --log-failed | head -40`
|
|
434
|
+
- Stop autonomous loop. Suggest: `/pbr:debug {N}` or manual CI investigation
|
|
435
|
+
3. If `gh` CLI is not available or errors: log warning `gh CLI unavailable — skipping CI check` and continue (do not block)
|
|
436
|
+
|
|
437
|
+
---
|
|
438
|
+
|
|
439
|
+
## Notification Throttling
|
|
440
|
+
|
|
441
|
+
During autonomous execution, suppress routine status output to reduce noise:
|
|
442
|
+
- **Suppress**: Hook `additionalContext` messages that repeat the same content within 60 seconds (e.g., repeated "context budget" warnings)
|
|
443
|
+
- **Suppress**: Per-task progress updates during build — only show per-plan completion
|
|
444
|
+
- **Keep**: Phase-level status changes (discussing → planned → building → verified)
|
|
445
|
+
- **Keep**: Error/warning messages (always display)
|
|
446
|
+
- **Keep**: Speculative planning status (first mention only)
|
|
447
|
+
- **Batch**: When multiple speculative planners complete between phases, report them in a single line: "Speculative plans ready: Phase {list}"
|
|
448
|
+
|
|
449
|
+
Target: <100 status lines per 7-phase autonomous session (excluding agent output).
|
|
450
|
+
|
|
451
|
+
---
|
|
452
|
+
|
|
453
|
+
## Step 4: Completion
|
|
454
|
+
|
|
455
|
+
**CRITICAL — DO NOT SKIP:** Delete `.planning/.active-skill` if it exists. This must happen on all paths (success, partial, and failure) before displaying the completion summary.
|
|
456
|
+
|
|
457
|
+
Display summary:
|
|
458
|
+
|
|
459
|
+
```
|
|
460
|
+
PLAN-BUILD-RUN > AUTONOMOUS COMPLETE
|
|
461
|
+
|
|
462
|
+
Phases completed: {list}
|
|
463
|
+
Phases remaining: {list}
|
|
464
|
+
Speculative plans used: {count} (re-planned: {count})
|
|
465
|
+
Total time: {elapsed}
|
|
466
|
+
Errors encountered: {count}
|
|
467
|
+
Errors auto-fixed: {count} | Phases skipped: {count}
|
|
468
|
+
Test cache hits: {count}
|
|
469
|
+
Verification: {phases_verified_full}/{phases_verified_total} phases fully verified ({pct}%)
|
|
470
|
+
Threshold: {min_full_percent}% required
|
|
471
|
+
Status: {PASS if pct >= min_full_percent, else WARN}
|
|
472
|
+
```
|
|
473
|
+
|
|
474
|
+
If all phases completed successfully:
|
|
475
|
+
```
|
|
476
|
+
All {count} phases completed successfully.
|
|
477
|
+
```
|
|
478
|
+
|
|
479
|
+
Clean up `.planning/.autonomous-state.json` on successful completion.
|
|
480
|
+
|
|
481
|
+
---
|
|
482
|
+
|
|
483
|
+
## Hard Stops (autonomous loop MUST stop)
|
|
484
|
+
|
|
485
|
+
The autonomous loop MUST stop immediately when any of these conditions occur:
|
|
486
|
+
|
|
487
|
+
1. **human-action checkpoint** encountered — NEVER auto-resolve these
|
|
488
|
+
2. **Gap closure fails** on retry — gaps persist after one attempt
|
|
489
|
+
3. **Build fails** after exhausting retries — error_strategy is 'stop' or retries exhausted
|
|
490
|
+
4. **Milestone boundary** reached — last phase verified AND milestone archived (or archive failed)
|
|
491
|
+
5. **`--through` limit** reached — user-specified phase limit hit
|
|
492
|
+
6. **Context budget > 70%** — suggest: `/pbr:pause` then resume in new session with `/pbr:autonomous --from {N}`
|
|
493
|
+
|
|
494
|
+
On ALL hard stops: delete `.planning/.active-skill` before displaying the stop message.
|
|
495
|
+
|
|
496
|
+
---
|
|
497
|
+
|
|
498
|
+
## Error Recovery
|
|
499
|
+
|
|
500
|
+
Save execution state to `.planning/.autonomous-state.json` after each phase:
|
|
501
|
+
|
|
502
|
+
```json
|
|
503
|
+
{
|
|
504
|
+
"current_phase": 4,
|
|
505
|
+
"completed_phases": [2, 3],
|
|
506
|
+
"speculative_plans": {"5": "pending", "6": "pending"},
|
|
507
|
+
"speculative_plan_paths": {"5": [".planning/phases/05-slug/PLAN-01.md"]},
|
|
508
|
+
"branch_state": {"2": "pbr/phase-02-slug", "3": "pbr/phase-03-slug"},
|
|
509
|
+
"failed_phase": null,
|
|
510
|
+
"error": null,
|
|
511
|
+
"errors": {},
|
|
512
|
+
"retries": {},
|
|
513
|
+
"started_at": "2026-01-15T10:00:00Z",
|
|
514
|
+
"timestamp": "2026-01-15T10:30:00Z"
|
|
515
|
+
}
|
|
516
|
+
```
|
|
517
|
+
|
|
518
|
+
Where:
|
|
519
|
+
|
|
520
|
+
- `"errors"`: object mapping phase number to error description, e.g. `{"4": "stale .active-skill"}`
|
|
521
|
+
- `"retries"`: object mapping phase number to retry count, e.g. `{"4": 1}`
|
|
522
|
+
- `"speculative_plan_paths"`: maps phase number to list of plan file paths written by speculative planner
|
|
523
|
+
- `"branch_state"`: maps phase number to git branch name created for that phase build
|
|
524
|
+
|
|
525
|
+
- On `--from N`: check `.autonomous-state.json` for prior run context
|
|
526
|
+
- Re-write `.planning/.active-skill` with content `autonomous` when resuming (the prior session's .active-skill may be stale or missing).
|
|
527
|
+
- Display prior run info if available: "Resuming from prior autonomous run. Last completed: Phase {N}."
|
|
528
|
+
- Clean up `.autonomous-state.json` on successful completion of all phases
|
|
529
|
+
|
|
530
|
+
---
|
|
531
|
+
|
|
532
|
+
Reference: `skills/shared/commit-planning-docs.md` -- if `planning.commit_docs` is true, commit modified .planning/ files.
|
|
533
|
+
|
|
534
|
+
---
|
|
535
|
+
|
|
536
|
+
## Anti-Patterns
|
|
537
|
+
|
|
538
|
+
1. **DO NOT** skip the config gate — `workflow.autonomous` must be true
|
|
539
|
+
2. **DO NOT** auto-resolve human-action checkpoints — always stop
|
|
540
|
+
3. **DO NOT** retry more than once on gap closure or build failure
|
|
541
|
+
4. **DO NOT** continue past milestone boundaries — user must explicitly archive
|
|
542
|
+
5. **DO NOT** read SKILL.md files into context — use Skill() tool for delegation
|
|
543
|
+
6. **DO NOT** modify STATE.md directly — use CLI commands
|
|
544
|
+
7. **DO NOT** ignore dynamic phase detection — always re-read ROADMAP.md between iterations
|
|
545
|
+
8. **DO NOT** leave `.active-skill` set after autonomous mode exits — always clean up on every exit path
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: backlog
|
|
3
|
+
description: "Manage backlog items — ideas not ready for active planning. Add, review, promote, or remove."
|
|
4
|
+
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
|
|
5
|
+
argument-hint: "add <description> | review | promote <N>"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
**STOP — DO NOT READ THIS FILE. You are already reading it.**
|
|
9
|
+
|
|
10
|
+
# /pbr:backlog — Backlog Parking Lot
|
|
11
|
+
|
|
12
|
+
Manage ideas that aren't ready for active planning. Backlog items use 999.x numbering to stay outside the active phase sequence. They can be promoted to active phases when ready.
|
|
13
|
+
|
|
14
|
+
## Step 0 — Banner
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
╔══════════════════════════════════════════════════════════════╗
|
|
18
|
+
║ PLAN-BUILD-RUN ► BACKLOG ║
|
|
19
|
+
╚══════════════════════════════════════════════════════════════╝
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Subcommands
|
|
23
|
+
|
|
24
|
+
### `/pbr:backlog add <description>`
|
|
25
|
+
|
|
26
|
+
1. Create `.planning/phases/` directory if needed
|
|
27
|
+
2. Find next 999.x number: scan for existing `999.*` dirs, increment
|
|
28
|
+
3. Generate slug from description
|
|
29
|
+
4. Create `.planning/phases/999.{x}-{slug}/`
|
|
30
|
+
5. Write a minimal PLAN.md with just the description as objective (no tasks — this is a placeholder)
|
|
31
|
+
6. Display: `Backlog item 999.{x}: {description}`
|
|
32
|
+
|
|
33
|
+
### `/pbr:backlog review`
|
|
34
|
+
|
|
35
|
+
1. Scan `.planning/phases/999.*` directories
|
|
36
|
+
2. If none found: display "No backlog items." and exit
|
|
37
|
+
3. For each item, read its PLAN.md objective
|
|
38
|
+
4. Display all items in a numbered list
|
|
39
|
+
5. Use AskUserQuestion for each item:
|
|
40
|
+
- **Promote** — Move to active milestone (renumber into current sequence)
|
|
41
|
+
- **Keep** — Leave in backlog
|
|
42
|
+
- **Remove** — Delete the directory
|
|
43
|
+
|
|
44
|
+
### `/pbr:backlog promote <N>`
|
|
45
|
+
|
|
46
|
+
1. Find the 999.{N} directory
|
|
47
|
+
2. Determine next active phase number (highest non-999 phase + 1)
|
|
48
|
+
3. Rename directory from `999.{N}-{slug}` to `{next}-{slug}`
|
|
49
|
+
4. Update ROADMAP.md to include the new phase
|
|
50
|
+
5. Display: `Promoted backlog item to Phase {next}: {slug}`
|
|
51
|
+
|
|
52
|
+
## Anti-Patterns
|
|
53
|
+
|
|
54
|
+
1. DO NOT create backlog items for work that should be a todo — backlog is for phase-level ideas
|
|
55
|
+
2. DO NOT auto-promote items — always require user decision
|
|
56
|
+
3. DO NOT renumber existing active phases when promoting
|