@sienklogic/plan-build-run 2.18.1 → 2.19.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1265 -296
- package/CLAUDE.md +56 -34
- 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 +142 -0
- package/dashboard/server/lib/frontmatter.js +92 -0
- package/dashboard/server/middleware/static.js +35 -0
- package/dashboard/server/package.json +16 -0
- package/dashboard/server/routes/agents.js +213 -0
- package/dashboard/server/routes/config.js +64 -0
- package/dashboard/server/routes/health.js +95 -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 +214 -0
- package/dashboard/server/services/file-watcher.js +105 -0
- package/dashboard/server/services/planning-reader.js +741 -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 +1420 -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 +100 -0
- package/plugins/pbr/agents/audit.md +205 -89
- package/plugins/pbr/agents/codebase-mapper.md +158 -23
- package/plugins/pbr/agents/debugger.md +222 -30
- 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 +270 -61
- package/plugins/pbr/agents/planner.md +440 -42
- package/plugins/pbr/agents/researcher.md +223 -36
- package/plugins/pbr/agents/roadmapper.md +397 -0
- package/plugins/pbr/agents/synthesizer.md +170 -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 +162 -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 +241 -0
- package/plugins/pbr/dist/check-read-first.js +345 -0
- package/plugins/pbr/dist/check-roadmap-sync.js +503 -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 +452 -0
- package/plugins/pbr/dist/check-summary-gate.js +199 -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 +172 -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 +606 -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 +569 -0
- package/plugins/pbr/dist/pbr-tools.js +2044 -0
- package/plugins/pbr/dist/post-bash-triage.js +154 -0
- package/plugins/pbr/dist/post-compact.js +135 -0
- package/plugins/pbr/dist/post-hoc.js +286 -0
- package/plugins/pbr/dist/post-write-dispatch.js +279 -0
- package/plugins/pbr/dist/post-write-quality.js +208 -0
- package/plugins/pbr/dist/pre-bash-dispatch.js +218 -0
- package/plugins/pbr/dist/pre-skill-dispatch.js +114 -0
- package/plugins/pbr/dist/pre-task-dispatch.js +297 -0
- package/plugins/pbr/dist/pre-write-dispatch.js +234 -0
- package/plugins/pbr/dist/progress-tracker.js +198 -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 +683 -0
- package/plugins/pbr/dist/session-tracker.js +124 -0
- package/plugins/pbr/dist/status-line.js +847 -0
- package/plugins/pbr/dist/suggest-compact.js +315 -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 +271 -0
- package/plugins/pbr/dist/validate-skill-args.js +222 -0
- package/plugins/pbr/dist/validate-task.js +301 -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 +40 -9
- 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/behavioral-contexts.md +53 -0
- package/plugins/pbr/references/checkpoints.md +723 -104
- package/plugins/pbr/references/config-reference.md +472 -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 +466 -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 +1211 -0
- package/plugins/pbr/scripts/audit-dimensions.js +556 -0
- package/plugins/pbr/scripts/auto-continue.js +198 -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 +162 -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 +166 -277
- package/plugins/pbr/scripts/check-read-first.js +345 -0
- package/plugins/pbr/scripts/check-roadmap-sync.js +167 -10
- 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 +338 -276
- package/plugins/pbr/scripts/check-summary-gate.js +2 -1
- package/plugins/pbr/scripts/config-schema.json +1247 -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 +128 -77
- package/plugins/pbr/scripts/event-logger.js +58 -25
- package/plugins/pbr/scripts/feedback-loop.js +172 -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 +606 -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/autonomy.js +91 -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/circuit-state.js +133 -0
- package/plugins/pbr/scripts/lib/commands.js +483 -0
- package/plugins/pbr/scripts/lib/completion.js +377 -0
- package/plugins/pbr/scripts/lib/compound.js +216 -0
- package/plugins/pbr/scripts/lib/config.js +1315 -0
- package/plugins/pbr/scripts/lib/context.js +254 -0
- package/plugins/pbr/scripts/lib/contextual-help.js +207 -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 +1050 -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 +143 -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 +133 -0
- package/plugins/pbr/scripts/lib/help.js +151 -0
- package/plugins/pbr/scripts/lib/history.js +150 -0
- package/plugins/pbr/scripts/lib/hypothesis-runner.js +127 -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/local-llm/client.js +237 -0
- package/plugins/pbr/scripts/lib/local-llm/health.js +12 -0
- package/plugins/pbr/scripts/lib/local-llm/index.js +89 -0
- package/plugins/pbr/scripts/lib/local-llm/metrics.js +20 -0
- package/plugins/pbr/scripts/lib/local-llm/operations/classify-artifact.js +4 -0
- package/plugins/pbr/scripts/lib/local-llm/operations/classify-commit.js +4 -0
- package/plugins/pbr/scripts/lib/local-llm/operations/classify-error.js +4 -0
- package/plugins/pbr/scripts/lib/local-llm/operations/classify-file-intent.js +4 -0
- package/plugins/pbr/scripts/lib/local-llm/operations/score-source.js +72 -0
- package/plugins/pbr/scripts/lib/local-llm/operations/summarize-context.js +62 -0
- package/plugins/pbr/scripts/lib/local-llm/operations/triage-test-output.js +12 -0
- package/plugins/pbr/scripts/lib/local-llm/operations/validate-task.js +4 -0
- package/plugins/pbr/scripts/lib/local-llm/router.js +101 -0
- package/plugins/pbr/scripts/lib/local-llm/shadow.js +60 -0
- package/plugins/pbr/scripts/lib/local-llm/threshold-tuner.js +118 -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 +1027 -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 +133 -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 +1113 -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 +207 -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 +642 -0
- package/plugins/pbr/scripts/lib/state-queue.js +171 -0
- package/plugins/pbr/scripts/lib/state.js +1187 -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/team-composer.js +87 -0
- package/plugins/pbr/scripts/lib/team-coordinator.js +153 -0
- package/plugins/pbr/scripts/lib/tech-debt-scanner.js +116 -0
- package/plugins/pbr/scripts/lib/template.js +222 -0
- package/plugins/pbr/scripts/lib/templates.js +362 -0
- package/plugins/pbr/scripts/lib/test-cache.js +54 -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/trust-gate.js +84 -0
- package/plugins/pbr/scripts/lib/verify.js +1473 -0
- package/plugins/pbr/scripts/lib/wiring-check.js +196 -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 +569 -0
- package/plugins/pbr/scripts/package.json +1 -0
- package/plugins/pbr/scripts/pbr-tools.js +1833 -1167
- package/plugins/pbr/scripts/post-bash-triage.js +154 -0
- package/plugins/pbr/scripts/post-compact.js +135 -0
- package/plugins/pbr/scripts/post-hoc.js +286 -0
- package/plugins/pbr/scripts/post-write-dispatch.js +237 -31
- package/plugins/pbr/scripts/post-write-quality.js +4 -3
- package/plugins/pbr/scripts/pre-bash-dispatch.js +155 -23
- package/plugins/pbr/scripts/pre-skill-dispatch.js +114 -0
- package/plugins/pbr/scripts/pre-task-dispatch.js +297 -0
- package/plugins/pbr/scripts/pre-write-dispatch.js +171 -47
- package/plugins/pbr/scripts/progress-tracker.js +144 -307
- 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 +458 -29
- package/plugins/pbr/scripts/session-tracker.js +124 -0
- package/plugins/pbr/scripts/status-line.js +591 -32
- package/plugins/pbr/scripts/suggest-compact.js +203 -7
- 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 +163 -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 +97 -26
- package/plugins/pbr/scripts/validate-skill-args.js +87 -15
- package/plugins/pbr/scripts/validate-task.js +112 -626
- 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 +507 -153
- package/plugins/pbr/skills/begin/templates/STATE.md.tmpl +1 -2
- package/plugins/pbr/skills/begin/templates/config.json.tmpl +415 -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 +111 -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 +44 -117
- package/plugins/pbr/skills/help/SKILL.md +83 -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 +53 -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 +226 -0
- package/plugins/pbr/skills/quick/SKILL.md +434 -100
- package/plugins/pbr/skills/release/SKILL.md +206 -0
- package/plugins/pbr/skills/resume/SKILL.md +169 -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 +151 -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 +149 -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 +47 -54
- 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 +184 -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 -636
- 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 -244
- package/dashboard/src/services/sse.service.js +0 -58
- package/dashboard/src/services/todo.service.js +0 -263
- 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 -6
- package/dashboard/src/views/partials/layout-top.ejs +0 -15
- 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 -155
- 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 -94
- 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 -172
- 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 -199
- 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 -274
- 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 -171
- 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 -198
- 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 -274
- 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
|
@@ -6,13 +6,16 @@ allowed-tools: Read, Write, Bash, Glob, Grep, WebFetch, WebSearch, Task, AskUser
|
|
|
6
6
|
|
|
7
7
|
**STOP — DO NOT READ THIS FILE. You are already reading it. This prompt was injected into your context by Claude Code's plugin system. Using the Read tool on this SKILL.md file wastes ~7,600 tokens. Begin executing Step 1 immediately.**
|
|
8
8
|
|
|
9
|
-
# /pbr:
|
|
9
|
+
# /pbr:new-project — Project Initialization
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
**References:** `@references/questioning.md`, `@references/ui-brand.md`
|
|
12
|
+
|
|
13
|
+
You are the orchestrator for `/pbr:new-project`. This skill initializes a new Plan-Build-Run project through deep questioning, optional research, requirements scoping, and roadmap generation. Your job is to stay lean — delegate heavy work to Task() subagents and keep the user's main context window clean.
|
|
12
14
|
|
|
13
15
|
## Context Budget
|
|
14
16
|
|
|
15
17
|
Reference: `skills/shared/context-budget.md` for the universal orchestrator rules.
|
|
18
|
+
Reference: `skills/shared/agent-type-resolution.md` for agent type fallback when spawning Task() subagents.
|
|
16
19
|
|
|
17
20
|
Additionally for this skill:
|
|
18
21
|
- **Minimize** reading subagent output — read only summaries, not full research docs
|
|
@@ -30,6 +33,22 @@ Additionally for this skill:
|
|
|
30
33
|
|
|
31
34
|
Then proceed to Step 1.
|
|
32
35
|
|
|
36
|
+
## Multi-Session Sync
|
|
37
|
+
|
|
38
|
+
Before any phase-modifying operations, this skill acquires a claim on the project:
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
acquireClaim(planningDir, sessionId)
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Where `planningDir` is the `.planning/` directory and `sessionId` is the current session identifier. If the claim fails (another session owns it), display: "Another session owns this project. Use `/pbr:progress` to see active claims."
|
|
45
|
+
|
|
46
|
+
On completion or error, release the claim:
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
releaseClaim(planningDir, sessionId)
|
|
50
|
+
```
|
|
51
|
+
|
|
33
52
|
## Prerequisites
|
|
34
53
|
|
|
35
54
|
- Working directory should be the project root
|
|
@@ -45,29 +64,35 @@ Execute these steps in order. Each step specifies whether it runs inline (in you
|
|
|
45
64
|
|
|
46
65
|
### Step 1: Detect Brownfield (inline)
|
|
47
66
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
Check if the current directory has existing code:
|
|
67
|
+
**CRITICAL — Run init command FIRST before any Glob calls or manual file checks:**
|
|
51
68
|
|
|
69
|
+
```bash
|
|
70
|
+
node plugins/pbr/scripts/pbr-tools.js init begin
|
|
52
71
|
```
|
|
53
|
-
1. Use Glob to check directory contents (e.g., pattern "*" at project root)
|
|
54
|
-
2. Look for indicators of existing code:
|
|
55
|
-
- package.json, requirements.txt, CMakeLists.txt, go.mod, Cargo.toml
|
|
56
|
-
- src/, lib/, app/ directories
|
|
57
|
-
- .git/ directory with commits
|
|
58
|
-
3. Use Glob to check if .planning/ already exists (e.g., pattern ".planning/*")
|
|
59
|
-
```
|
|
60
72
|
|
|
61
|
-
|
|
73
|
+
Store the JSON result as `blob`. This single call replaces multiple Glob/filesystem checks with a pre-computed payload:
|
|
74
|
+
- `blob.has_planning` — whether .planning/ directory exists
|
|
75
|
+
- `blob.has_existing_code` — whether brownfield indicators were found
|
|
76
|
+
- `blob.brownfield_indicators` — array of detected indicators (package.json, src/, etc.)
|
|
77
|
+
- `blob.has_git` — whether .git directory exists
|
|
78
|
+
- `blob.existing_phases` — count of existing phase directories
|
|
79
|
+
- `blob.state` — existing STATE.md frontmatter (or null if no project)
|
|
80
|
+
- `blob.config` — existing config.json contents (or null)
|
|
81
|
+
|
|
82
|
+
> **Cross-platform note**: The init command handles all filesystem checks cross-platform. No Glob or Bash file discovery needed.
|
|
83
|
+
|
|
84
|
+
**If `blob.has_existing_code` is true:**
|
|
85
|
+
**CRITICAL -- DO NOT SKIP**: Present the following choice to the user via AskUserQuestion before proceeding:
|
|
62
86
|
Use the **yes-no** pattern from `skills/shared/gate-prompts.md`:
|
|
63
|
-
question: "This looks like an existing codebase. Run /pbr:
|
|
87
|
+
question: "This looks like an existing codebase. Run /pbr:map-codebase to analyze what's here first?"
|
|
64
88
|
options:
|
|
65
|
-
- label: "Yes, scan" description: "Run /pbr:
|
|
66
|
-
- label: "No, begin" description: "Proceed with /pbr:
|
|
67
|
-
- If user selects "Yes, scan": suggest `/pbr:
|
|
89
|
+
- label: "Yes, scan" description: "Run /pbr:map-codebase first to analyze existing code"
|
|
90
|
+
- label: "No, begin" description: "Proceed with /pbr:new-project on top of existing code"
|
|
91
|
+
- If user selects "Yes, scan": suggest `/pbr:map-codebase` and stop
|
|
68
92
|
- If user selects "No, begin": proceed to Step 2
|
|
69
93
|
|
|
70
|
-
**If
|
|
94
|
+
**If `blob.has_planning` is true:**
|
|
95
|
+
**CRITICAL -- DO NOT SKIP**: Present the following choice to the user via AskUserQuestion before proceeding:
|
|
71
96
|
Use the **yes-no** pattern from `skills/shared/gate-prompts.md`:
|
|
72
97
|
question: "A .planning/ directory already exists. This will overwrite it. Continue?"
|
|
73
98
|
options:
|
|
@@ -75,7 +100,7 @@ Use the **yes-no** pattern from `skills/shared/gate-prompts.md`:
|
|
|
75
100
|
- label: "No" description: "Cancel — keep existing planning"
|
|
76
101
|
- If user selects "No": **STOP IMMEDIATELY. Do not ask again. Do not proceed to Step 2. End the skill with this message:**
|
|
77
102
|
```
|
|
78
|
-
Keeping existing .planning/ directory. Use `/pbr:
|
|
103
|
+
Keeping existing .planning/ directory. Use `/pbr:progress` to see current project state, or `/pbr:plan-phase` to continue planning.
|
|
79
104
|
```
|
|
80
105
|
**Do NOT re-prompt the same question or any other question. The skill is finished.**
|
|
81
106
|
- If user selects "Yes": proceed (existing directory will be overwritten during state initialization)
|
|
@@ -119,11 +144,144 @@ Have a natural conversation to understand the user's vision. Do NOT present a fo
|
|
|
119
144
|
|
|
120
145
|
---
|
|
121
146
|
|
|
147
|
+
### Step 2.5: Fast-Path Offer (inline)
|
|
148
|
+
|
|
149
|
+
Before asking any workflow preference questions, offer the user a quick-start option:
|
|
150
|
+
|
|
151
|
+
Use AskUserQuestion:
|
|
152
|
+
question: "How do you want to configure this project?"
|
|
153
|
+
header: "Setup mode"
|
|
154
|
+
options:
|
|
155
|
+
- label: "Quick start"
|
|
156
|
+
description: "Use all defaults — model balanced, depth standard, interactive mode, parallel on. Writes config in seconds."
|
|
157
|
+
- label: "Custom setup"
|
|
158
|
+
description: "Walk through model selection, features, and preferences step by step."
|
|
159
|
+
|
|
160
|
+
**If user selects "Quick start":**
|
|
161
|
+
- Tell the user: "Tip: Agents set to `inherit` use your Claude Code session model. For cost savings, run on Sonnet -- orchestration and inherit agents work well at that tier. See `references/model-profiles.md` for details."
|
|
162
|
+
- Write `.planning/config.json` immediately using the default config below (no further questions):
|
|
163
|
+
```json
|
|
164
|
+
{
|
|
165
|
+
"version": 2,
|
|
166
|
+
"context_strategy": "aggressive",
|
|
167
|
+
"mode": "interactive",
|
|
168
|
+
"depth": "standard",
|
|
169
|
+
"context_window_tokens": 200000,
|
|
170
|
+
"features": {
|
|
171
|
+
"structured_planning": true,
|
|
172
|
+
"goal_verification": true,
|
|
173
|
+
"integration_verification": true,
|
|
174
|
+
"context_isolation": true,
|
|
175
|
+
"atomic_commits": true,
|
|
176
|
+
"session_persistence": true,
|
|
177
|
+
"research_phase": true,
|
|
178
|
+
"plan_checking": true,
|
|
179
|
+
"tdd_mode": false,
|
|
180
|
+
"status_line": true,
|
|
181
|
+
"auto_continue": false,
|
|
182
|
+
"auto_advance": false,
|
|
183
|
+
"team_discussions": false,
|
|
184
|
+
"inline_verify": false
|
|
185
|
+
},
|
|
186
|
+
"models": {
|
|
187
|
+
"researcher": "sonnet",
|
|
188
|
+
"planner": "inherit",
|
|
189
|
+
"executor": "inherit",
|
|
190
|
+
"verifier": "sonnet",
|
|
191
|
+
"integration_checker": "sonnet",
|
|
192
|
+
"debugger": "inherit",
|
|
193
|
+
"mapper": "sonnet",
|
|
194
|
+
"synthesizer": "haiku"
|
|
195
|
+
},
|
|
196
|
+
"parallelization": {
|
|
197
|
+
"enabled": true,
|
|
198
|
+
"plan_level": true,
|
|
199
|
+
"task_level": false,
|
|
200
|
+
"max_concurrent_agents": 3,
|
|
201
|
+
"min_plans_for_parallel": 2,
|
|
202
|
+
"use_teams": false
|
|
203
|
+
},
|
|
204
|
+
"planning": {
|
|
205
|
+
"commit_docs": true,
|
|
206
|
+
"max_tasks_per_plan": 3,
|
|
207
|
+
"search_gitignored": false
|
|
208
|
+
},
|
|
209
|
+
"git": {
|
|
210
|
+
"branching": "none",
|
|
211
|
+
"commit_format": "{type}({phase}-{plan}): {description}",
|
|
212
|
+
"phase_branch_template": "plan-build-run/phase-{phase}-{slug}",
|
|
213
|
+
"milestone_branch_template": "plan-build-run/{milestone}-{slug}",
|
|
214
|
+
"mode": "enabled"
|
|
215
|
+
},
|
|
216
|
+
"gates": {
|
|
217
|
+
"confirm_project": true,
|
|
218
|
+
"confirm_roadmap": true,
|
|
219
|
+
"confirm_plan": true,
|
|
220
|
+
"confirm_execute": false,
|
|
221
|
+
"confirm_transition": true,
|
|
222
|
+
"issues_review": true
|
|
223
|
+
},
|
|
224
|
+
"safety": {
|
|
225
|
+
"always_confirm_destructive": true,
|
|
226
|
+
"always_confirm_external_services": true
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
```
|
|
230
|
+
**CRITICAL — DO NOT SKIP: Write .active-skill NOW.** Write `.planning/.active-skill` with text "begin"
|
|
231
|
+
- Write CLAUDE.md integration block (see Step 3d-claude below) using the project name gathered in Step 2
|
|
232
|
+
- Skip to Step 4 (Research Decision)
|
|
233
|
+
- Tell the user: "Quick start selected. Using all defaults — you can adjust later with `/pbr:settings`."
|
|
234
|
+
|
|
235
|
+
**If user selects "Custom setup":** proceed to Step 3 normally.
|
|
236
|
+
|
|
237
|
+
---
|
|
238
|
+
|
|
122
239
|
### Step 3: Workflow Preferences (inline)
|
|
123
240
|
|
|
124
241
|
After understanding the project, configure the Plan-Build-Run workflow. Use AskUserQuestion for each preference below. Present them sequentially with conversational bridging (e.g., "Great. Next...") to keep the flow natural.
|
|
125
242
|
|
|
243
|
+
**3-model. Model Profile:**
|
|
244
|
+
Note: These profiles control agent models. The orchestrator uses your Claude Code session model. For cost optimization, consider running on Sonnet -- agents with `inherit` will follow. See `references/model-profiles.md`.
|
|
245
|
+
|
|
246
|
+
Use AskUserQuestion:
|
|
247
|
+
question: "Which model profile should agents use?"
|
|
248
|
+
header: "Models"
|
|
249
|
+
options:
|
|
250
|
+
- label: "Balanced (Recommended)"
|
|
251
|
+
description: "Sonnet for most agents, Haiku for synthesizer. Good quality/cost tradeoff."
|
|
252
|
+
- label: "Quality"
|
|
253
|
+
description: "Opus for executor and planner, Sonnet for others. Best results, highest cost."
|
|
254
|
+
- label: "Budget"
|
|
255
|
+
description: "Haiku for most agents. Fastest and cheapest, but lower quality."
|
|
256
|
+
|
|
257
|
+
Apply the selected profile to the models block in config.json:
|
|
258
|
+
- **Balanced**: executor=sonnet, researcher=sonnet, planner=sonnet, verifier=sonnet, synthesizer=haiku, context_window_tokens=200000, agent_checkpoint_pct=50, extended_context=false
|
|
259
|
+
- **Quality**: executor=opus, researcher=sonnet, planner=opus, verifier=sonnet, synthesizer=sonnet, context_window_tokens=1000000, agent_checkpoint_pct=65, extended_context=true
|
|
260
|
+
- **Budget**: executor=haiku, researcher=haiku, planner=sonnet, verifier=haiku, synthesizer=haiku, context_window_tokens=200000, agent_checkpoint_pct=50, extended_context=false
|
|
261
|
+
|
|
262
|
+
**3-features. Workflow Features:**
|
|
263
|
+
Use AskUserQuestion:
|
|
264
|
+
question: "Any extra workflow features?"
|
|
265
|
+
header: "Features"
|
|
266
|
+
multiSelect: true
|
|
267
|
+
options:
|
|
268
|
+
- label: "Auto-continue"
|
|
269
|
+
description: "Automatically chain commands (build → review → next phase) without prompting"
|
|
270
|
+
- label: "TDD mode"
|
|
271
|
+
description: "Write tests before implementation in executor agents"
|
|
272
|
+
- label: "Strict gates"
|
|
273
|
+
description: "Require verification AND review to pass before advancing phases"
|
|
274
|
+
- label: "Git branching"
|
|
275
|
+
description: "Create a branch per phase for cleaner PR history"
|
|
276
|
+
|
|
277
|
+
Apply selections:
|
|
278
|
+
- **Auto-continue**: Set `features.auto_continue: true`
|
|
279
|
+
- **TDD mode**: Set `features.tdd_mode: true`
|
|
280
|
+
- **Strict gates**: Set `gates.verification: true`, `gates.review: true`, `gates.plan_approval: true`
|
|
281
|
+
- **Git branching**: Set `git.branching: "phase"`
|
|
282
|
+
|
|
126
283
|
**3a. Mode:**
|
|
284
|
+
**CRITICAL -- DO NOT SKIP**: Present the following choice to the user via AskUserQuestion before proceeding:
|
|
127
285
|
Use the **toggle-confirm** pattern from `skills/shared/gate-prompts.md`:
|
|
128
286
|
question: "How do you want to work?"
|
|
129
287
|
header: "Mode"
|
|
@@ -134,6 +292,7 @@ Use the **toggle-confirm** pattern from `skills/shared/gate-prompts.md`:
|
|
|
134
292
|
- `autonomous` — auto-proceed, only stop for critical decisions
|
|
135
293
|
|
|
136
294
|
**3b. Depth:**
|
|
295
|
+
**CRITICAL -- DO NOT SKIP**: Present the following choice to the user via AskUserQuestion before proceeding:
|
|
137
296
|
Use the **depth-select** pattern from `skills/shared/gate-prompts.md`:
|
|
138
297
|
question: "How thorough should planning be?"
|
|
139
298
|
- `quick` — 3-5 phases, skip research, ~50% cheaper
|
|
@@ -141,6 +300,7 @@ Use the **depth-select** pattern from `skills/shared/gate-prompts.md`:
|
|
|
141
300
|
- `comprehensive` — 8-12 phases, full deep research, ~2x cost
|
|
142
301
|
|
|
143
302
|
**3c. Parallelization:**
|
|
303
|
+
**CRITICAL -- DO NOT SKIP**: Present the following choice to the user via AskUserQuestion before proceeding:
|
|
144
304
|
Use the **toggle-confirm** pattern from `skills/shared/gate-prompts.md`:
|
|
145
305
|
question: "Run multiple agents in parallel when plans are independent?"
|
|
146
306
|
header: "Parallel"
|
|
@@ -151,6 +311,7 @@ Use the **toggle-confirm** pattern from `skills/shared/gate-prompts.md`:
|
|
|
151
311
|
- `disabled` — sequential execution
|
|
152
312
|
|
|
153
313
|
**3d. Git Branching:**
|
|
314
|
+
**CRITICAL -- DO NOT SKIP**: Present the following choice to the user via AskUserQuestion before proceeding:
|
|
154
315
|
Use the **git-strategy-select** pattern from `skills/shared/gate-prompts.md`:
|
|
155
316
|
question: "Git branching strategy?"
|
|
156
317
|
- `none` (default) — commit to current branch
|
|
@@ -158,6 +319,7 @@ Use the **git-strategy-select** pattern from `skills/shared/gate-prompts.md`:
|
|
|
158
319
|
- `milestone` — create branch per milestone
|
|
159
320
|
|
|
160
321
|
**3e. Commit Planning Docs:**
|
|
322
|
+
**CRITICAL -- DO NOT SKIP**: Present the following choice to the user via AskUserQuestion before proceeding:
|
|
161
323
|
Use the **yes-no** pattern from `skills/shared/gate-prompts.md`:
|
|
162
324
|
question: "Should planning documents (.planning/ directory) be committed to git?"
|
|
163
325
|
options:
|
|
@@ -166,18 +328,69 @@ Use the **yes-no** pattern from `skills/shared/gate-prompts.md`:
|
|
|
166
328
|
- `yes` (default) — commit planning docs
|
|
167
329
|
- `no` — add .planning/ to .gitignore
|
|
168
330
|
|
|
331
|
+
**3d-claude. CLAUDE.md Integration:**
|
|
332
|
+
|
|
333
|
+
Check if a `CLAUDE.md` file exists in the project root.
|
|
334
|
+
|
|
335
|
+
**If it exists**: Read it. If it does NOT already contain a "Plan-Build-Run" section, append the block below.
|
|
336
|
+
**If it does NOT exist**: Create `CLAUDE.md` with the block below.
|
|
337
|
+
|
|
338
|
+
Append/create:
|
|
339
|
+
|
|
340
|
+
```markdown
|
|
341
|
+
## Plan-Build-Run
|
|
342
|
+
|
|
343
|
+
This project uses [Plan-Build-Run](https://github.com/SienkLogic/plan-build-run) for structured development.
|
|
344
|
+
|
|
345
|
+
- Project state: `.planning/STATE.md` (source of truth for current phase and progress)
|
|
346
|
+
- Configuration: `.planning/config.json`
|
|
347
|
+
- Run `/pbr:progress` to see current project state and suggested next action.
|
|
348
|
+
|
|
349
|
+
**After compaction or context recovery**: Read `.planning/STATE.md` (especially the `## Session Continuity` section) before proceeding with any work. The PreCompact hook writes recovery state there automatically.
|
|
350
|
+
```
|
|
351
|
+
|
|
169
352
|
**After gathering preferences:**
|
|
170
353
|
|
|
171
|
-
**CRITICAL: You MUST create the .planning/ directory and write config.json NOW. Do not proceed without this.**
|
|
354
|
+
**CRITICAL (no hook): You MUST create the .planning/ directory and write config.json NOW. Do not proceed without this.**
|
|
172
355
|
|
|
173
|
-
1. Read the config template from
|
|
174
|
-
2. Apply the user's choices to the template
|
|
356
|
+
1. Read the config template from `${CLAUDE_SKILL_DIR}/templates/config.json.tmpl`
|
|
357
|
+
2. Apply the user's choices to the template (including 3d-claude CLAUDE.md integration)
|
|
175
358
|
3. Create `.planning/` directory
|
|
176
359
|
4. Write `.planning/config.json` with the user's preferences
|
|
177
360
|
|
|
178
361
|
**IMPORTANT**: This step MUST happen BEFORE research (Step 5) because depth controls how many researchers to spawn.
|
|
179
362
|
|
|
180
|
-
**CRITICAL: Write .active-skill NOW.** Write the text "begin" to `.planning/.active-skill` using the Write tool. Verify the file exists before proceeding.
|
|
363
|
+
**CRITICAL (hook-enforced): Write .active-skill NOW.** Write the text "begin" to `.planning/.active-skill` using the Write tool. Verify the file exists before proceeding.
|
|
364
|
+
|
|
365
|
+
### Step 3e: Early PROJECT.md Write (durability checkpoint)
|
|
366
|
+
|
|
367
|
+
**CRITICAL: Write a preliminary PROJECT.md NOW to preserve the user's vision on disk.**
|
|
368
|
+
|
|
369
|
+
Write `.planning/PROJECT.md` with the information gathered so far:
|
|
370
|
+
- Project name, description, and type (from Step 2 questioning)
|
|
371
|
+
- Key constraints and technology preferences (from Step 2)
|
|
372
|
+
- Workflow preferences (from Step 3: depth, model profile, ceremony level)
|
|
373
|
+
- Mark it as `status: preliminary` in a comment at the top
|
|
374
|
+
|
|
375
|
+
This file will be overwritten with the full version in Step 9, but if context is lost between Steps 4-8 (research, synthesis, requirements, roadmap), the user's vision is preserved on disk. Format:
|
|
376
|
+
|
|
377
|
+
```markdown
|
|
378
|
+
<!-- status: preliminary — will be overwritten in Step 9 with full version -->
|
|
379
|
+
# {Project Name}
|
|
380
|
+
|
|
381
|
+
{Project description from Step 2}
|
|
382
|
+
|
|
383
|
+
## Constraints
|
|
384
|
+
{Key constraints from questioning}
|
|
385
|
+
|
|
386
|
+
## Technology Preferences
|
|
387
|
+
{Tech choices mentioned during questioning}
|
|
388
|
+
|
|
389
|
+
## Workflow Config
|
|
390
|
+
Depth: {depth} | Profile: {model_profile} | Ceremony: {ceremony_level}
|
|
391
|
+
```
|
|
392
|
+
|
|
393
|
+
If `planning.commit_docs` is true, commit: `docs(planning): preliminary PROJECT.md from questioning`
|
|
181
394
|
|
|
182
395
|
---
|
|
183
396
|
|
|
@@ -199,13 +412,24 @@ Based on the depth setting from Step 3, determine the research approach:
|
|
|
199
412
|
- Tell user: "Skipping research phase (depth: quick). Moving straight to requirements."
|
|
200
413
|
|
|
201
414
|
**If depth is `standard` or `comprehensive`:**
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
-
|
|
208
|
-
|
|
415
|
+
|
|
416
|
+
**Auto-mode bypass:** If the `--auto` flag is active or `config.mode === 'autonomous'`:
|
|
417
|
+
- Default to `standard` depth (2 researchers: STACK, FEATURES) unless depth was explicitly set to `comprehensive`
|
|
418
|
+
- Set `gates.confirm_research` to `false` (skip the depth selection gate)
|
|
419
|
+
- Display: "PBR > Auto-mode: advancing to research (standard depth)..."
|
|
420
|
+
- Proceed directly to Step 5
|
|
421
|
+
|
|
422
|
+
**Interactive mode (default):**
|
|
423
|
+
- If `gates.confirm_research` is `true` in config:
|
|
424
|
+
**CRITICAL -- DO NOT SKIP**: Present the following choice to the user via AskUserQuestion before proceeding:
|
|
425
|
+
Use the **yes-no** pattern from `skills/shared/gate-prompts.md`:
|
|
426
|
+
question: "I'd like to research the technology landscape before planning. This helps create better plans. Proceed with research?"
|
|
427
|
+
options:
|
|
428
|
+
- label: "Yes" description: "Run research agents (recommended for standard/comprehensive)"
|
|
429
|
+
- label: "No" description: "Skip research, move straight to requirements"
|
|
430
|
+
- If user selects "No": skip to Step 7
|
|
431
|
+
- If user selects "Yes": proceed to Step 5
|
|
432
|
+
- If `gates.confirm_research` is `false` (default): proceed directly to Step 5 (research runs automatically)
|
|
209
433
|
|
|
210
434
|
---
|
|
211
435
|
|
|
@@ -213,13 +437,33 @@ Use the **yes-no** pattern from `skills/shared/gate-prompts.md`:
|
|
|
213
437
|
|
|
214
438
|
Spawn parallel Task() subagents for research. Each researcher writes to `.planning/research/`.
|
|
215
439
|
|
|
216
|
-
**CRITICAL: Create .planning/research/ directory NOW before spawning researchers. Do NOT skip this step.**
|
|
440
|
+
**CRITICAL (no hook): Create .planning/research/ directory NOW before spawning researchers. Do NOT skip this step.**
|
|
441
|
+
|
|
442
|
+
**Learnings injection (opt-in):** Before spawning researchers, check if global learnings exist:
|
|
443
|
+
|
|
444
|
+
```bash
|
|
445
|
+
node ${CLAUDE_PLUGIN_ROOT}/scripts/pbr-tools.js learnings query --tags "stack,tech" 2>/dev/null
|
|
446
|
+
```
|
|
447
|
+
|
|
448
|
+
If the command succeeds AND returns a non-empty JSON array:
|
|
449
|
+
|
|
450
|
+
- Write the results to a temp file:
|
|
451
|
+
|
|
452
|
+
```bash
|
|
453
|
+
node ${CLAUDE_PLUGIN_ROOT}/scripts/pbr-tools.js learnings query --tags "stack,tech" > /tmp/pbr-learnings-$$.md
|
|
454
|
+
```
|
|
455
|
+
|
|
456
|
+
- Note the temp file path as `{learnings_temp_path}`
|
|
457
|
+
- Add this file to the researcher's `files_to_read` block (see below)
|
|
458
|
+
|
|
459
|
+
If no learnings exist or the command fails: skip injection silently.
|
|
217
460
|
|
|
218
461
|
**For each research topic, spawn a Task():**
|
|
219
462
|
|
|
220
463
|
```
|
|
221
464
|
Task({
|
|
222
465
|
subagent_type: "pbr:researcher",
|
|
466
|
+
// After researcher: check for ## RESEARCH COMPLETE or ## RESEARCH BLOCKED
|
|
223
467
|
prompt: <see researcher prompt template below>
|
|
224
468
|
})
|
|
225
469
|
```
|
|
@@ -232,7 +476,19 @@ Task({
|
|
|
232
476
|
|
|
233
477
|
For each researcher, construct the prompt by reading the template and filling in placeholders:
|
|
234
478
|
|
|
235
|
-
Read
|
|
479
|
+
Read `${CLAUDE_SKILL_DIR}/templates/researcher-prompt.md.tmpl` for the prompt structure.
|
|
480
|
+
|
|
481
|
+
**Prepend this block to the researcher prompt before sending:**
|
|
482
|
+
|
|
483
|
+
```
|
|
484
|
+
<files_to_read>
|
|
485
|
+
CRITICAL (no hook): Read these files BEFORE any other action:
|
|
486
|
+
1. .planning/REQUIREMENTS.md — scoped requirements (if exists)
|
|
487
|
+
{if learnings_temp_path exists}2. {learnings_temp_path} — cross-project learnings (tech stack patterns from past PBR projects){/if}
|
|
488
|
+
</files_to_read>
|
|
489
|
+
```
|
|
490
|
+
|
|
491
|
+
If `{learnings_temp_path}` was produced in the learnings injection step above, replace `{if...}{/if}` with the actual line. If no learnings were found, omit line 2 entirely.
|
|
236
492
|
|
|
237
493
|
**Placeholders to fill:**
|
|
238
494
|
- `{project name from questioning}` — project name gathered in Step 2
|
|
@@ -269,10 +525,24 @@ Read `skills/begin/templates/researcher-prompt.md.tmpl` for the prompt structure
|
|
|
269
525
|
- What performance issues are typical?
|
|
270
526
|
- What security concerns exist?
|
|
271
527
|
|
|
528
|
+
**Domain-specific template injection:**
|
|
529
|
+
|
|
530
|
+
Each researcher must be told which domain-specific template to follow. When constructing the researcher prompt, inject the correct template path for the assigned topic:
|
|
531
|
+
|
|
532
|
+
| Topic | Template Path |
|
|
533
|
+
|-------|--------------|
|
|
534
|
+
| STACK | `${CLAUDE_PLUGIN_ROOT}/templates/research-outputs/STACK.md.tmpl` |
|
|
535
|
+
| FEATURES | `${CLAUDE_PLUGIN_ROOT}/templates/research-outputs/FEATURES.md.tmpl` |
|
|
536
|
+
| ARCHITECTURE | `${CLAUDE_PLUGIN_ROOT}/templates/research-outputs/ARCHITECTURE.md.tmpl` |
|
|
537
|
+
| PITFALLS | `${CLAUDE_PLUGIN_ROOT}/templates/research-outputs/PITFALLS.md.tmpl` |
|
|
538
|
+
|
|
539
|
+
Include the resolved absolute path in the researcher prompt (resolve `${CLAUDE_PLUGIN_ROOT}` before sending).
|
|
540
|
+
|
|
272
541
|
**Parallelization:**
|
|
273
542
|
- Spawn ALL researchers in parallel (multiple Task() calls in one response)
|
|
274
543
|
- Use `run_in_background: true` for each researcher
|
|
275
|
-
-
|
|
544
|
+
- **Individual Agent Calls:** Each researcher MUST be a separate Task() tool call in a single response message. Do NOT describe the batch in prose (e.g., "4 researchers launched"). Each separate Task() call gets its own colored badge and independent ctrl+o expansion in the Claude Code UI. Multiple Task() calls in one message still run concurrently — no parallelism is lost.
|
|
545
|
+
- Before spawning, display to the user: `◆ Spawning {N} researchers in parallel...`
|
|
276
546
|
- While waiting, display progress to the user:
|
|
277
547
|
- After spawning: list of topics being researched
|
|
278
548
|
- Periodically (every ~30s): check `TaskOutput` with `block: false` for each agent and report status
|
|
@@ -280,11 +550,55 @@ Read `skills/begin/templates/researcher-prompt.md.tmpl` for the prompt structure
|
|
|
280
550
|
- When all complete: "All {N} researchers finished. Proceeding to synthesis."
|
|
281
551
|
- Wait for all to complete before proceeding
|
|
282
552
|
|
|
553
|
+
#### Partial Failure Detection
|
|
554
|
+
|
|
555
|
+
After all researchers complete (or timeout), check which research files were actually produced:
|
|
556
|
+
|
|
557
|
+
1. List files in `.planning/research/` (excluding SUMMARY.md)
|
|
558
|
+
2. Map against expected files for the current depth level:
|
|
559
|
+
- **standard**: expect STACK.md, FEATURES.md (2 files)
|
|
560
|
+
- **comprehensive**: expect STACK.md, FEATURES.md, ARCHITECTURE.md, PITFALLS.md (4 files)
|
|
561
|
+
3. Count successes and failures
|
|
562
|
+
4. For files that exist, also check for `## RESEARCH BLOCKED` marker -- count these as "completed with issues" (still pass to synthesizer, which handles them)
|
|
563
|
+
|
|
564
|
+
**If all expected files present:** proceed to Step 6.
|
|
565
|
+
|
|
566
|
+
**If some files missing (partial failure):**
|
|
567
|
+
|
|
568
|
+
Display: "Research partially complete: {N} of {M} researchers succeeded."
|
|
569
|
+
List the missing dimensions.
|
|
570
|
+
|
|
571
|
+
**Auto-mode:** Display "Continuing with gaps (auto-mode). Gaps will be noted in synthesis." and proceed to Step 6.
|
|
572
|
+
|
|
573
|
+
**Interactive mode:**
|
|
574
|
+
**CRITICAL -- DO NOT SKIP**: Present the following choice to the user via AskUserQuestion before proceeding:
|
|
575
|
+
Use AskUserQuestion with 3 options:
|
|
576
|
+
|
|
577
|
+
```
|
|
578
|
+
question: "Research partially complete. {N} of {M} researchers succeeded. How would you like to proceed?"
|
|
579
|
+
header: "Partial Research"
|
|
580
|
+
options:
|
|
581
|
+
- label: "Continue with gaps"
|
|
582
|
+
description: "Proceed to synthesis -- gaps will be noted in SUMMARY.md"
|
|
583
|
+
- label: "Retry failed"
|
|
584
|
+
description: "Re-spawn only the failed researchers, then re-check"
|
|
585
|
+
- label: "Abort research"
|
|
586
|
+
description: "Skip research entirely and move to requirements"
|
|
587
|
+
```
|
|
588
|
+
|
|
589
|
+
- If "Continue with gaps": proceed to Step 6
|
|
590
|
+
- If "Retry failed": re-spawn only the failed researchers (same Task() pattern), then re-run partial failure detection
|
|
591
|
+
- If "Abort research": skip to Step 7 (Requirements Scoping)
|
|
592
|
+
|
|
283
593
|
---
|
|
284
594
|
|
|
285
595
|
### Step 6: Synthesis (delegated to subagent)
|
|
286
596
|
|
|
287
|
-
|
|
597
|
+
**Auto-mode bypass:** If the `--auto` flag is active or `config.mode === 'autonomous'`, skip the "Research complete. Review findings?" gate and proceed directly to synthesizer spawning.
|
|
598
|
+
|
|
599
|
+
**Interactive mode:** If a review gate is configured (e.g., `gates.confirm_research_review`), present the research findings and ask the user to review before synthesis. Preserve the existing review gate behavior.
|
|
600
|
+
|
|
601
|
+
After all researchers complete (and review gate passed or bypassed), display to the user: `◆ Spawning synthesizer...`
|
|
288
602
|
|
|
289
603
|
Spawn a synthesis agent:
|
|
290
604
|
|
|
@@ -301,12 +615,43 @@ Task({
|
|
|
301
615
|
|
|
302
616
|
#### Synthesis Prompt Template
|
|
303
617
|
|
|
304
|
-
Read
|
|
618
|
+
Read `${CLAUDE_SKILL_DIR}/templates/synthesis-prompt.md.tmpl` for the prompt structure.
|
|
619
|
+
|
|
620
|
+
**Prepend this block to the synthesizer prompt before sending:**
|
|
621
|
+
```
|
|
622
|
+
<files_to_read>
|
|
623
|
+
CRITICAL (no hook): Read these files BEFORE any other action:
|
|
624
|
+
1. .planning/research/*.md — all research output files from Step 5
|
|
625
|
+
</files_to_read>
|
|
626
|
+
```
|
|
627
|
+
|
|
628
|
+
**Dynamic file discovery:** Do NOT pass a hardcoded list of research files. Instead, instruct the synthesizer to "Read ALL .md files in the `.planning/research/` directory (excluding SUMMARY.md). These are your research inputs." The synthesizer discovers available files at runtime, which handles partial failure gracefully.
|
|
629
|
+
|
|
630
|
+
**Commit instruction:** Instruct the synthesizer to commit all research files together after producing SUMMARY.md: "After writing SUMMARY.md, commit ALL files in `.planning/research/` together with message: `docs(research): complete research synthesis`"
|
|
305
631
|
|
|
306
632
|
**Placeholders to fill:**
|
|
307
|
-
- `{List all .planning/research/*.md files that were created}` — list the research files produced in Step 5
|
|
633
|
+
- `{List all .planning/research/*.md files that were created}` — list the research files produced in Step 5 (for reference, but synthesizer uses dynamic discovery)
|
|
634
|
+
|
|
635
|
+
**After the synthesizer completes**, check for completion markers in the Task() output:
|
|
308
636
|
|
|
309
|
-
|
|
637
|
+
- If `## SYNTHESIS COMPLETE` is present: proceed normally
|
|
638
|
+
- If `## SYNTHESIS BLOCKED` is present: warn the user and offer to proceed without synthesis:
|
|
639
|
+
```
|
|
640
|
+
⚠ Synthesizer reported BLOCKED: {reason from output}
|
|
641
|
+
Research files are still available individually in .planning/research/.
|
|
642
|
+
```
|
|
643
|
+
**CRITICAL -- DO NOT SKIP**: Present the following choice to the user via AskUserQuestion before proceeding:
|
|
644
|
+
Use AskUserQuestion (pattern: yes-no from `skills/shared/gate-prompts.md`):
|
|
645
|
+
question: "Synthesis was blocked. Continue without synthesis?"
|
|
646
|
+
header: "Blocked"
|
|
647
|
+
options:
|
|
648
|
+
- label: "Yes" description: "Proceed to requirements — use individual research files"
|
|
649
|
+
- label: "No" description: "Stop and investigate"
|
|
650
|
+
- If "Yes": proceed to Step 7 without SUMMARY.md
|
|
651
|
+
- If "No": stop and suggest reviewing .planning/research/ files
|
|
652
|
+
- If neither marker is found: warn the user that the synthesizer may not have completed successfully, but proceed if SUMMARY.md exists on disk
|
|
653
|
+
|
|
654
|
+
If synthesis succeeded, display:
|
|
310
655
|
```
|
|
311
656
|
✓ Research synthesis complete — see .planning/research/SUMMARY.md
|
|
312
657
|
```
|
|
@@ -315,6 +660,8 @@ Read `skills/begin/templates/synthesis-prompt.md.tmpl` for the prompt structure.
|
|
|
315
660
|
|
|
316
661
|
### Step 7: Requirements Scoping (inline)
|
|
317
662
|
|
|
663
|
+
**Auto-mode chaining:** If `config.mode === 'autonomous'`, display "PBR > Auto-mode: advancing to requirements scoping..." and proceed through this step without interactive gates. Auto-derive requirements from research findings and questioning context. Classify all identified features as v1 (committed) unless they clearly belong in a later phase.
|
|
664
|
+
|
|
318
665
|
Present research findings (if any) and interactively scope requirements with the user.
|
|
319
666
|
|
|
320
667
|
**7a. Present findings:**
|
|
@@ -335,11 +682,10 @@ For each category, present the features and ask the user to classify each:
|
|
|
335
682
|
- **Out of scope** — Will NOT be built
|
|
336
683
|
|
|
337
684
|
**7d. Assign REQ-IDs:**
|
|
338
|
-
For each committed requirement, assign an ID
|
|
339
|
-
- `
|
|
340
|
-
- `
|
|
341
|
-
- `
|
|
342
|
-
- `UI-02`: Mobile-responsive layout
|
|
685
|
+
For each committed requirement, assign an ID using the REQ-F/REQ-NF schema:
|
|
686
|
+
- Functional requirements: `REQ-F-xxx` numbered sequentially within each category (REQ-F-001, REQ-F-002, ...)
|
|
687
|
+
- Non-functional requirements: `REQ-NF-xxx` numbered sequentially across all NFR categories (REQ-NF-001, REQ-NF-002, ...)
|
|
688
|
+
- Examples: `REQ-F-001: User can log in with Discord OAuth`, `REQ-NF-001: Page loads in <2s on 4G`
|
|
343
689
|
|
|
344
690
|
Each requirement must be:
|
|
345
691
|
- **User-centric** — describes a capability from the user's perspective
|
|
@@ -348,9 +694,9 @@ Each requirement must be:
|
|
|
348
694
|
|
|
349
695
|
**7e. Write REQUIREMENTS.md:**
|
|
350
696
|
|
|
351
|
-
**CRITICAL: Write REQUIREMENTS.md NOW. The roadmap planner depends on this file.**
|
|
697
|
+
**CRITICAL (no hook): Write REQUIREMENTS.md NOW. The roadmap planner depends on this file.**
|
|
352
698
|
|
|
353
|
-
Read the template from
|
|
699
|
+
Read the template from `${CLAUDE_SKILL_DIR}/templates/REQUIREMENTS.md.tmpl` and write `.planning/REQUIREMENTS.md` with:
|
|
354
700
|
- All v1 requirements grouped by category
|
|
355
701
|
- All v2 requirements with deferral reasons
|
|
356
702
|
- Out-of-scope items with rationale
|
|
@@ -360,39 +706,55 @@ Read the template from `skills/begin/templates/REQUIREMENTS.md.tmpl` and write `
|
|
|
360
706
|
|
|
361
707
|
### Step 8: Roadmap Generation (delegated to subagent)
|
|
362
708
|
|
|
363
|
-
Display to the user:
|
|
709
|
+
Display to the user: `◆ Spawning roadmapper...`
|
|
364
710
|
|
|
365
|
-
Spawn the
|
|
711
|
+
Spawn the roadmapper agent:
|
|
366
712
|
|
|
367
713
|
```
|
|
368
714
|
Task({
|
|
369
|
-
subagent_type: "pbr:
|
|
715
|
+
subagent_type: "pbr:roadmapper",
|
|
716
|
+
// After roadmapper: check for ## ROADMAP CREATED or ## ROADMAP BLOCKED
|
|
370
717
|
prompt: <roadmap prompt>
|
|
371
718
|
})
|
|
372
719
|
```
|
|
373
720
|
|
|
374
|
-
**NOTE**: The `pbr:
|
|
721
|
+
**NOTE**: The `pbr:roadmapper` subagent type auto-loads the agent definition. Do NOT inline it. The roadmapper agent will read REQUIREMENTS.md and SUMMARY.md from disk — you only need to tell it what to do and where files are.
|
|
375
722
|
|
|
376
723
|
**Path resolution**: Before constructing the agent prompt, resolve `${CLAUDE_PLUGIN_ROOT}` to its absolute path. Do not pass the variable literally in prompts — Task() contexts may not expand it.
|
|
377
724
|
|
|
378
725
|
#### Roadmap Prompt Template
|
|
379
726
|
|
|
380
|
-
Read
|
|
727
|
+
Read `${CLAUDE_SKILL_DIR}/templates/roadmap-prompt.md.tmpl` for the prompt structure.
|
|
728
|
+
|
|
729
|
+
**Prepend this block to the roadmap planner prompt before sending:**
|
|
730
|
+
```
|
|
731
|
+
<files_to_read>
|
|
732
|
+
CRITICAL (no hook): Read these files BEFORE any other action:
|
|
733
|
+
1. .planning/REQUIREMENTS.md — scoped requirements for phase planning
|
|
734
|
+
2. .planning/research/SUMMARY.md — research synthesis (if exists)
|
|
735
|
+
</files_to_read>
|
|
736
|
+
```
|
|
381
737
|
|
|
382
738
|
**Placeholders to fill:**
|
|
383
739
|
- `{project name}` — project name from Step 2
|
|
384
740
|
- `{description}` — project description from Step 2
|
|
385
741
|
- `{quick|standard|comprehensive}` — depth setting from Step 3
|
|
386
742
|
|
|
387
|
-
**After the
|
|
743
|
+
**After the roadmapper completes:**
|
|
744
|
+
- **Spot-check:** Verify `.planning/ROADMAP.md` exists on disk using Glob before attempting to read it. If missing, the roadmapper may have failed silently — warn: `⚠ ROADMAP.md not found after roadmapper completed. Re-spawning roadmapper...` and retry once.
|
|
388
745
|
- Read `.planning/ROADMAP.md`
|
|
389
746
|
- Count the phases from the roadmap content
|
|
390
747
|
- Verify the roadmap contains a `## Milestone:` section wrapping the phases (the planner should generate this). If not, the initial set of phases constitutes the first milestone — add the section header yourself.
|
|
748
|
+
- Verify each phase section includes `**Requirements:**` and `**Success Criteria:**` fields.
|
|
749
|
+
- Verify a `## Milestones` index section exists near the top of the roadmap.
|
|
391
750
|
- Display:
|
|
392
751
|
```
|
|
393
752
|
✓ Roadmap created — {N} phases in milestone "{name}"
|
|
394
753
|
```
|
|
395
|
-
- If `
|
|
754
|
+
- **Auto-mode bypass:** If `config.mode === 'autonomous'`, display "PBR > Auto-mode: advancing to state initialization..." and skip the roadmap approval gate. Proceed directly to Step 9.
|
|
755
|
+
- If `gates.confirm_roadmap` is true in config (interactive mode):
|
|
756
|
+
**CRITICAL -- DO NOT SKIP**: Present the following choice to the user via AskUserQuestion before proceeding:
|
|
757
|
+
Use the **approve-revise-abort** pattern from `skills/shared/gate-prompts.md`:
|
|
396
758
|
question: "Approve this roadmap?"
|
|
397
759
|
options:
|
|
398
760
|
- label: "Approve" description: "Proceed with this roadmap"
|
|
@@ -408,26 +770,35 @@ Read `skills/begin/templates/roadmap-prompt.md.tmpl` for the prompt structure.
|
|
|
408
770
|
|
|
409
771
|
Write the project state files from templates:
|
|
410
772
|
|
|
411
|
-
**CRITICAL: You MUST write all 5 state initialization files (Steps 9a-9e). Do NOT skip any.**
|
|
773
|
+
**CRITICAL (no hook): You MUST write all 5 state initialization files (Steps 9a-9e). Do NOT skip any.**
|
|
412
774
|
|
|
413
|
-
**CRITICAL: Write PROJECT.md NOW. Do NOT skip this step.**
|
|
775
|
+
**CRITICAL (no hook): Write PROJECT.md NOW. Do NOT skip this step.**
|
|
414
776
|
|
|
415
777
|
**9a. Write PROJECT.md:**
|
|
416
|
-
1. Read
|
|
778
|
+
1. Read `${CLAUDE_SKILL_DIR}/templates/PROJECT.md.tmpl`
|
|
417
779
|
2. Fill in:
|
|
418
780
|
- `{project_name}` — from questioning
|
|
419
781
|
- `{2-3 sentences}` — project description from questioning
|
|
420
782
|
- `{ONE sentence}` — core value statement
|
|
421
|
-
-
|
|
783
|
+
- **Requirements** section with three lifecycle categories:
|
|
784
|
+
- `### Active` — v1 requirements committed for this milestone
|
|
785
|
+
- `### Validated` — requirements completed and verified (empty at project start)
|
|
786
|
+
- `### Out of Scope` — deferred and excluded items with rationale
|
|
787
|
+
- **Key Decisions** table with Outcome column:
|
|
788
|
+
```markdown
|
|
789
|
+
| Decision | Rationale | Date | Outcome |
|
|
790
|
+
|----------|-----------|------|---------|
|
|
791
|
+
| {decision} | {why} | {date} | Pending |
|
|
792
|
+
```
|
|
793
|
+
All initial decisions start with Outcome = `Pending`. Updated to `Good`, `Revisit`, or `Pending` during `/pbr:milestone complete` (see PROJECT.md Evolution Review step).
|
|
422
794
|
- Technical context and constraints
|
|
423
|
-
- Initial key decisions from the questioning conversation
|
|
424
795
|
3. Write to `.planning/PROJECT.md`
|
|
425
796
|
4. Ensure the `## Milestones` section is filled in with the project name and phase count from the roadmap
|
|
426
797
|
|
|
427
|
-
**CRITICAL: Write STATE.md NOW. Do NOT skip this step.**
|
|
798
|
+
**CRITICAL (no hook): Write STATE.md NOW. Do NOT skip this step.**
|
|
428
799
|
|
|
429
800
|
**9b. Write STATE.md:**
|
|
430
|
-
1. Read
|
|
801
|
+
1. Read `${CLAUDE_SKILL_DIR}/templates/STATE.md.tmpl`
|
|
431
802
|
2. Fill in:
|
|
432
803
|
- `{date}` — today's date
|
|
433
804
|
- `{total}` — total phase count from roadmap
|
|
@@ -438,59 +809,77 @@ Write the project state files from templates:
|
|
|
438
809
|
4. Fill in the `## Milestone` section with the project name and total phase count
|
|
439
810
|
5. **STATE.md size limit**: Follow size limit enforcement rules in `skills/shared/state-update.md` (150 lines max).
|
|
440
811
|
|
|
441
|
-
**CRITICAL: Write
|
|
812
|
+
**CRITICAL (no hook): Write context to PROJECT.md NOW. Do NOT skip this step.**
|
|
813
|
+
|
|
814
|
+
**9c. Write context to PROJECT.md ## Context section:**
|
|
815
|
+
1. Read `${CLAUDE_SKILL_DIR}/templates/project-CONTEXT.md.tmpl`
|
|
816
|
+
2. Fill in from the questioning conversation:
|
|
817
|
+
- Locked Decisions: all technology choices and architecture decisions from Step 2
|
|
818
|
+
- User Constraints: budget, timeline, skill level, hosting, team
|
|
819
|
+
- Deferred Ideas: out-of-scope items identified in Step 7c scoping
|
|
820
|
+
- Claude's Discretion: any areas where user said "you decide"
|
|
821
|
+
3. Append to `.planning/PROJECT.md` under a `## Context` section with subsections:
|
|
822
|
+
- `### Locked Decisions`
|
|
823
|
+
- `### User Constraints`
|
|
824
|
+
- `### Deferred Ideas`
|
|
825
|
+
4. Do NOT write a separate CONTEXT.md file. All context lives in PROJECT.md now.
|
|
826
|
+
5. **Backwards compat migration:** If `.planning/CONTEXT.md` exists (from a prior project version), read its content and merge into PROJECT.md ## Context section. Log: "PBR > Migrated CONTEXT.md into PROJECT.md"
|
|
827
|
+
|
|
828
|
+
**9d. Initialize velocity and session fields in STATE.md frontmatter:**
|
|
829
|
+
Add these fields to the STATE.md YAML frontmatter during initialization:
|
|
830
|
+
- `velocity: {}` — empty object, populated as plans are executed
|
|
831
|
+
- `session_last: ""` — set when `/pbr:pause-work` is run
|
|
832
|
+
- `session_stopped_at: ""` — set when `/pbr:pause-work` is run
|
|
833
|
+
- `session_resume: ""` — set when `/pbr:pause-work` is run
|
|
834
|
+
|
|
835
|
+
**Do NOT write a ## History section to STATE.md.** History has been removed from STATE.md to keep it lean. Milestone completion records are preserved in milestone archives.
|
|
836
|
+
**Backwards compat:** If `.planning/HISTORY.md` exists from a prior project, it is ignored during new project initialization.
|
|
837
|
+
|
|
838
|
+
**CRITICAL (no hook): Create phase directories NOW. Do NOT skip this step.**
|
|
442
839
|
|
|
443
|
-
**
|
|
444
|
-
|
|
840
|
+
**9e. Create phase directories:**
|
|
841
|
+
For each phase in the roadmap, create the directory structure:
|
|
842
|
+
```
|
|
843
|
+
.planning/phases/01-{slug}/
|
|
844
|
+
.planning/phases/02-{slug}/
|
|
845
|
+
...
|
|
846
|
+
```
|
|
445
847
|
|
|
446
|
-
|
|
447
|
-
# Project Context
|
|
848
|
+
Where `{slug}` is the phase name in kebab-case (e.g., `project-setup`, `authentication`).
|
|
448
849
|
|
|
449
|
-
|
|
450
|
-
|
|
850
|
+
**9f. Create KNOWLEDGE.md:**
|
|
851
|
+
Write `.planning/KNOWLEDGE.md` with empty knowledge base tables:
|
|
451
852
|
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
853
|
+
```markdown
|
|
854
|
+
---
|
|
855
|
+
updated: "{today's date}"
|
|
856
|
+
---
|
|
857
|
+
# Project Knowledge Base
|
|
455
858
|
|
|
456
|
-
|
|
457
|
-
{Budget, timeline, skill level, hosting, team size}
|
|
859
|
+
Aggregated knowledge from milestone completions. Auto-maintained by milestone-learnings.js.
|
|
458
860
|
|
|
459
|
-
##
|
|
460
|
-
{Features explicitly moved to v2 or out-of-scope}
|
|
861
|
+
## Key Rules
|
|
461
862
|
|
|
462
|
-
|
|
463
|
-
|------|----------------|
|
|
464
|
-
| {feature} | {reason} |
|
|
465
|
-
```
|
|
863
|
+
Architectural rules and constraints discovered during development.
|
|
466
864
|
|
|
467
|
-
|
|
865
|
+
| ID | Rule | Source | Date |
|
|
866
|
+
|----|------|--------|------|
|
|
468
867
|
|
|
469
|
-
|
|
470
|
-
Create `.planning/HISTORY.md` with an initial entry:
|
|
868
|
+
## Patterns
|
|
471
869
|
|
|
472
|
-
|
|
473
|
-
# Project History
|
|
870
|
+
Reusable patterns and conventions established across phases.
|
|
474
871
|
|
|
475
|
-
|
|
872
|
+
| ID | Pattern | Source | Date |
|
|
873
|
+
|----|---------|--------|------|
|
|
476
874
|
|
|
477
|
-
|
|
478
|
-
- Depth: {depth}, Mode: {mode}
|
|
479
|
-
- Roadmap: {N} phases planned
|
|
480
|
-
```
|
|
875
|
+
## Lessons Learned
|
|
481
876
|
|
|
482
|
-
|
|
877
|
+
What worked, what didn't, and deferred items for future consideration.
|
|
483
878
|
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
```
|
|
487
|
-
.planning/phases/01-{slug}/
|
|
488
|
-
.planning/phases/02-{slug}/
|
|
489
|
-
...
|
|
879
|
+
| ID | Lesson | Type | Source | Date |
|
|
880
|
+
|----|--------|------|--------|------|
|
|
490
881
|
```
|
|
491
882
|
|
|
492
|
-
Where `{slug}` is the phase name in kebab-case (e.g., `project-setup`, `authentication`).
|
|
493
|
-
|
|
494
883
|
---
|
|
495
884
|
|
|
496
885
|
### Step 10: Git Setup (inline)
|
|
@@ -512,15 +901,18 @@ If `gates.confirm_project` is true in config:
|
|
|
512
901
|
- Phases: {count} phases in roadmap
|
|
513
902
|
- Requirements: {count} v1 requirements
|
|
514
903
|
- Config: depth={depth}, mode={mode}
|
|
515
|
-
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
-
|
|
521
|
-
|
|
522
|
-
-
|
|
523
|
-
-
|
|
904
|
+
- If `gates.confirm_commit_docs` is `true` OR this is a **brownfield** project (existing code detected in Step 1):
|
|
905
|
+
**CRITICAL -- DO NOT SKIP**: Present the following choice to the user via AskUserQuestion before proceeding:
|
|
906
|
+
Use the **yes-no** pattern from `skills/shared/gate-prompts.md`:
|
|
907
|
+
question: "Everything look good? Commit the planning docs?"
|
|
908
|
+
options:
|
|
909
|
+
- label: "Yes" description: "Stage and commit .planning/ files"
|
|
910
|
+
- label: "No" description: "Let me review and adjust first"
|
|
911
|
+
- If user selects "Yes" and `planning.commit_docs` is true:
|
|
912
|
+
- Stage `.planning/` files (excluding research/ if gitignored)
|
|
913
|
+
- Commit: `chore: initialize plan-build-run project planning`
|
|
914
|
+
- If user selects "No": let user review and adjust
|
|
915
|
+
- If `gates.confirm_commit_docs` is `false` AND greenfield: skip the question and commit automatically if `planning.commit_docs` is true
|
|
524
916
|
|
|
525
917
|
---
|
|
526
918
|
|
|
@@ -530,51 +922,14 @@ Delete `.planning/.active-skill` if it exists. This must happen on all paths (su
|
|
|
530
922
|
|
|
531
923
|
## Completion
|
|
532
924
|
|
|
533
|
-
After all steps complete, present the final summary
|
|
534
|
-
|
|
535
|
-
Use the branded stage banner from `references/ui-formatting.md`:
|
|
536
|
-
|
|
537
|
-
```
|
|
538
|
-
╔══════════════════════════════════════════════════════════════╗
|
|
539
|
-
║ PLAN-BUILD-RUN ► PROJECT INITIALIZED ✓ ║
|
|
540
|
-
╚══════════════════════════════════════════════════════════════╝
|
|
541
|
-
|
|
542
|
-
**{name}**
|
|
925
|
+
After all steps complete, present the final summary using the stage banner format from Read `references/ui-brand.md`:
|
|
543
926
|
|
|
544
|
-
|
|
927
|
+
Display the `PROJECT INITIALIZED ✓` banner with project name, core value, phase list, and requirement counts. Then display the "Next Up" block (see § "Next Up Block" in ui-brand.md) pointing to `/pbr:discuss-phase 1` with alternatives: `/pbr:explore`, `/pbr:plan-phase 1`, `/pbr:new-milestone`, `/pbr:settings`, `/pbr:intel` (if codebase scan results exist in `.planning/codebase/`). Include `<sub>/clear first → fresh context window</sub>` inside the Next Up routing block.
|
|
545
928
|
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
Requirements: {N} committed, {M} deferred, {K} out-of-scope
|
|
552
|
-
```
|
|
553
|
-
|
|
554
|
-
Then use the "Next Up" routing block:
|
|
555
|
-
```
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
╔══════════════════════════════════════════════════════════════╗
|
|
559
|
-
║ ▶ NEXT UP ║
|
|
560
|
-
╚══════════════════════════════════════════════════════════════╝
|
|
561
|
-
|
|
562
|
-
**Phase 1: {Name}** — {one-line goal}
|
|
563
|
-
|
|
564
|
-
`/pbr:discuss 1`
|
|
565
|
-
|
|
566
|
-
<sub>`/clear` first → fresh context window</sub>
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
**Also available:**
|
|
571
|
-
- `/pbr:explore` — open-ended exploration before planning
|
|
572
|
-
- `/pbr:plan 1` — jump straight to planning Phase 1
|
|
573
|
-
- `/pbr:milestone new` — add a second milestone with new phases
|
|
574
|
-
- `/pbr:config` — adjust workflow settings
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
```
|
|
929
|
+
**Auto-mode chaining to first phase discussion:** If `config.mode === 'autonomous'`, after displaying the completion banner, automatically chain to the first phase discussion:
|
|
930
|
+
- Display: "PBR > Auto-mode: advancing to phase 1 discussion..."
|
|
931
|
+
- Write `.planning/.auto-next` with `/pbr:discuss-phase 1` to trigger auto-continue hook
|
|
932
|
+
- If any stage in the auto-mode chain fails, stop the chain and report: "PBR > Auto-mode chain stopped: {stage} failed. Resume manually with `/pbr:{next_command}`."
|
|
578
933
|
|
|
579
934
|
---
|
|
580
935
|
|
|
@@ -584,7 +939,7 @@ Then use the "Next Up" routing block:
|
|
|
584
939
|
If a researcher Task() fails or times out:
|
|
585
940
|
- Note which topic wasn't researched
|
|
586
941
|
- Continue with available research
|
|
587
|
-
- Display: `⚠ Research on {topic} failed. Proceeding without it. You can re-research during /pbr:plan.`
|
|
942
|
+
- Display: `⚠ Research on {topic} failed. Proceeding without it. You can re-research during /pbr:plan-phase.`
|
|
588
943
|
|
|
589
944
|
### User wants to restart
|
|
590
945
|
If user says they want to start over mid-flow:
|
|
@@ -605,7 +960,7 @@ Cannot create .planning/ directory.
|
|
|
605
960
|
|
|
606
961
|
---
|
|
607
962
|
|
|
608
|
-
## Files Created by /pbr:
|
|
963
|
+
## Files Created by /pbr:new-project
|
|
609
964
|
|
|
610
965
|
| File | Purpose | When |
|
|
611
966
|
|------|---------|------|
|
|
@@ -614,8 +969,7 @@ Cannot create .planning/ directory.
|
|
|
614
969
|
| `.planning/research/SUMMARY.md` | Research synthesis | Step 6 (if research enabled) |
|
|
615
970
|
| `.planning/REQUIREMENTS.md` | Scoped requirements | Step 7 |
|
|
616
971
|
| `.planning/ROADMAP.md` | Phase roadmap | Step 8 |
|
|
617
|
-
| `.planning/PROJECT.md` | Project overview | Step 9 |
|
|
618
|
-
| `.planning/STATE.md` | Current state tracker | Step 9 |
|
|
619
|
-
| `.planning/
|
|
620
|
-
| `.planning/HISTORY.md` | Project history log | Step 9 |
|
|
972
|
+
| `.planning/PROJECT.md` | Project overview + context (locked decisions, constraints, deferred ideas) | Step 9 |
|
|
973
|
+
| `.planning/STATE.md` | Current state tracker + history log | Step 9 |
|
|
974
|
+
| `.planning/KNOWLEDGE.md` | Project knowledge base (rules, patterns, lessons) | Step 9 |
|
|
621
975
|
| `.planning/phases/NN-*/` | Phase directories | Step 9 |
|