@sienklogic/plan-build-run 2.19.0 → 2.19.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1287 -303
- package/CLAUDE.md +74 -39
- package/LICENSE +2 -1
- package/README.md +412 -177
- package/bin/install.js +2752 -0
- package/dashboard/bin/cli.cjs +96 -0
- package/dashboard/bin/stop.cjs +129 -0
- package/dashboard/eslint.config.js +37 -0
- package/dashboard/index.html +20 -0
- package/dashboard/package.json +27 -25
- package/dashboard/server/index.js +151 -0
- package/dashboard/server/lib/frontmatter.js +92 -0
- package/dashboard/server/middleware/static.js +35 -0
- package/dashboard/server/package.json +16 -0
- package/dashboard/server/routes/agents.js +234 -0
- package/dashboard/server/routes/config.js +64 -0
- package/dashboard/server/routes/health.js +98 -0
- package/dashboard/server/routes/incidents.js +78 -0
- package/dashboard/server/routes/intel.js +69 -0
- package/dashboard/server/routes/memory.js +107 -0
- package/dashboard/server/routes/planning.js +234 -0
- package/dashboard/server/routes/progress.js +77 -0
- package/dashboard/server/routes/projects.js +36 -0
- package/dashboard/server/routes/requirements.js +40 -0
- package/dashboard/server/routes/roadmap.js +69 -0
- package/dashboard/server/routes/sessions.js +70 -0
- package/dashboard/server/routes/status.js +25 -0
- package/dashboard/server/routes/telemetry.js +233 -0
- package/dashboard/server/services/file-watcher.js +105 -0
- package/dashboard/server/services/planning-reader.js +727 -0
- package/dashboard/server/test/cli.test.js +34 -0
- package/dashboard/server/test/frontmatter.test.js +104 -0
- package/dashboard/server/test/isolation.test.js +32 -0
- package/dashboard/server/test/planning-reader.test.js +151 -0
- package/dashboard/server/test/routes.test.js +91 -0
- package/dashboard/server/test/ws.test.js +81 -0
- package/dashboard/server/ws.js +96 -0
- package/dashboard/src/App.jsx +165 -0
- package/dashboard/src/components/charts/BudgetBars.jsx +42 -0
- package/dashboard/src/components/charts/ContextRadar.jsx +34 -0
- package/dashboard/src/components/charts/PhaseDonut.jsx +66 -0
- package/dashboard/src/components/charts/SuccessTrend.jsx +45 -0
- package/dashboard/src/components/charts/TokenChart.jsx +55 -0
- package/dashboard/src/components/charts/index.js +5 -0
- package/dashboard/src/components/config/CfgSection.jsx +93 -0
- package/dashboard/src/components/layout/Header.jsx +89 -0
- package/dashboard/src/components/layout/ProjectSwitcher.jsx +160 -0
- package/dashboard/src/components/layout/Sidebar.jsx +161 -0
- package/dashboard/src/components/ui/AutoModeBanner.jsx +138 -0
- package/dashboard/src/components/ui/BackButton.jsx +27 -0
- package/dashboard/src/components/ui/Badge.jsx +27 -0
- package/dashboard/src/components/ui/Card.jsx +23 -0
- package/dashboard/src/components/ui/ChartTooltip.jsx +48 -0
- package/dashboard/src/components/ui/CheckpointBox.jsx +110 -0
- package/dashboard/src/components/ui/CodeBlock.jsx +27 -0
- package/dashboard/src/components/ui/ConfidenceBadge.jsx +20 -0
- package/dashboard/src/components/ui/ConfirmModal.jsx +161 -0
- package/dashboard/src/components/ui/ConnectionBanner.jsx +60 -0
- package/dashboard/src/components/ui/ErrorBoundary.jsx +106 -0
- package/dashboard/src/components/ui/ErrorBox.jsx +107 -0
- package/dashboard/src/components/ui/KeyValue.jsx +33 -0
- package/dashboard/src/components/ui/LoadingSkeleton.jsx +84 -0
- package/dashboard/src/components/ui/MetricCard.jsx +58 -0
- package/dashboard/src/components/ui/NextUpBlock.jsx +92 -0
- package/dashboard/src/components/ui/NumberInput.jsx +44 -0
- package/dashboard/src/components/ui/PBRBanner.jsx +47 -0
- package/dashboard/src/components/ui/PipelineView.jsx +130 -0
- package/dashboard/src/components/ui/ProgressBar.jsx +28 -0
- package/dashboard/src/components/ui/ProgressDisplay.jsx +47 -0
- package/dashboard/src/components/ui/QualityGateBadge.jsx +15 -0
- package/dashboard/src/components/ui/SectionTitle.jsx +35 -0
- package/dashboard/src/components/ui/SelectInput.jsx +45 -0
- package/dashboard/src/components/ui/StatusDot.jsx +51 -0
- package/dashboard/src/components/ui/StatusSymbol.jsx +49 -0
- package/dashboard/src/components/ui/TabBar.jsx +41 -0
- package/dashboard/src/components/ui/TextInput.jsx +42 -0
- package/dashboard/src/components/ui/Toast.jsx +117 -0
- package/dashboard/src/components/ui/Toggle.jsx +70 -0
- package/dashboard/src/components/ui/index.js +29 -0
- package/dashboard/src/hooks/useDocumentTitle.js +16 -0
- package/dashboard/src/hooks/useFetch.js +50 -0
- package/dashboard/src/hooks/useToast.jsx +43 -0
- package/dashboard/src/hooks/useWebSocket.js +103 -0
- package/dashboard/src/lib/api.js +112 -0
- package/dashboard/src/lib/configSchema.js +189 -0
- package/dashboard/src/lib/constants.js +22 -0
- package/dashboard/src/main.jsx +15 -0
- package/dashboard/src/pages/AgentsPage.jsx +191 -0
- package/dashboard/src/pages/ConfigPage.jsx +298 -0
- package/dashboard/src/pages/HooksPage.jsx +412 -0
- package/dashboard/src/pages/IncidentsPage.jsx +135 -0
- package/dashboard/src/pages/IntelPage.jsx +193 -0
- package/dashboard/src/pages/LiveFeed.jsx +274 -0
- package/dashboard/src/pages/MemoryPage.jsx +107 -0
- package/dashboard/src/pages/OnboardingPage.jsx +117 -0
- package/dashboard/src/pages/Overview.jsx +360 -0
- package/dashboard/src/pages/PhaseDetailView.jsx +216 -0
- package/dashboard/src/pages/PlanningPage.jsx +181 -0
- package/dashboard/src/pages/ProgressPage.jsx +249 -0
- package/dashboard/src/pages/ResearchPage.jsx +129 -0
- package/dashboard/src/pages/RoadmapPage.jsx +251 -0
- package/dashboard/src/pages/SessionsPage.jsx +117 -0
- package/dashboard/src/pages/Telemetry.jsx +166 -0
- package/dashboard/src/pages/planning/DecisionsTab.jsx +153 -0
- package/dashboard/src/pages/planning/FilesTab.jsx +420 -0
- package/dashboard/src/pages/planning/MilestoneDetail.jsx +319 -0
- package/dashboard/src/pages/planning/MilestonesTab.jsx +151 -0
- package/dashboard/src/pages/planning/NotesTab.jsx +251 -0
- package/dashboard/src/pages/planning/PhasesTab.jsx +218 -0
- package/dashboard/src/pages/planning/QuickTab.jsx +50 -0
- package/dashboard/src/pages/planning/ResearchTab.jsx +103 -0
- package/dashboard/src/pages/planning/TodosTab.jsx +297 -0
- package/dashboard/src/theme/ThemeProvider.jsx +38 -0
- package/dashboard/src/theme/tokens.js +17 -0
- package/dashboard/tests/components/ConfirmModal.test.jsx +179 -0
- package/dashboard/tests/components/ConnectionBanner.test.jsx +37 -0
- package/dashboard/tests/components/ErrorBoundary.test.jsx +59 -0
- package/dashboard/tests/components/LoadingSkeleton.test.jsx +46 -0
- package/dashboard/tests/components/ToastContainer.test.jsx +47 -0
- package/dashboard/tests/components/Toggle.test.jsx +61 -0
- package/dashboard/tests/hooks/useFetch.test.jsx +77 -0
- package/dashboard/tests/hooks/useToast.test.jsx +78 -0
- package/dashboard/tests/hooks/useWebSocket.test.jsx +128 -0
- package/dashboard/tests/pages/ConfigPage.test.jsx +199 -0
- package/dashboard/tests/pages/PlanningPage.test.jsx +119 -0
- package/dashboard/tests/pages/planning/FilesTab.test.jsx +198 -0
- package/dashboard/tests/pages/planning/NotesTab.test.jsx +178 -0
- package/dashboard/tests/pages/planning/TodosTab.test.jsx +188 -0
- package/dashboard/tests/performance.test.jsx +46 -0
- package/dashboard/tests/routes/config.test.js +98 -0
- package/dashboard/tests/routes/health.test.js +40 -0
- package/dashboard/tests/routes/planning.test.js +112 -0
- package/dashboard/tests/routes/roadmap.test.js +91 -0
- package/dashboard/tests/routes/status.test.js +131 -0
- package/dashboard/tests/server/planning-reader.test.js +153 -0
- package/dashboard/tests/setup.js +7 -0
- package/dashboard/vite.config.js +41 -0
- package/package.json +55 -40
- package/plan-build-run/bin/config-schema.json +1298 -0
- package/plugins/pbr/.claude-plugin/plugin.json +1 -1
- package/plugins/pbr/CLAUDE.md +19 -0
- package/plugins/pbr/UI-CONSISTENCY-GAPS.md +1 -1
- package/plugins/pbr/agents/advisor-researcher.md +101 -0
- package/plugins/pbr/agents/audit.md +205 -89
- package/plugins/pbr/agents/codebase-mapper.md +158 -23
- package/plugins/pbr/agents/debugger.md +212 -34
- package/plugins/pbr/agents/dev-sync.md +206 -0
- package/plugins/pbr/agents/executor.md +717 -39
- package/plugins/pbr/agents/general.md +71 -6
- package/plugins/pbr/agents/integration-checker.md +146 -30
- package/plugins/pbr/agents/intel-updater.md +332 -0
- package/plugins/pbr/agents/nyquist-auditor.md +253 -0
- package/plugins/pbr/agents/plan-checker.md +265 -65
- package/plugins/pbr/agents/planner.md +440 -42
- package/plugins/pbr/agents/researcher.md +219 -36
- package/plugins/pbr/agents/roadmapper.md +397 -0
- package/plugins/pbr/agents/synthesizer.md +166 -26
- package/plugins/pbr/agents/ui-checker.md +203 -0
- package/plugins/pbr/agents/ui-researcher.md +224 -0
- package/plugins/pbr/agents/verifier.md +495 -47
- package/plugins/pbr/commands/add-phase.md +75 -0
- package/plugins/pbr/commands/add-todo.md +8 -0
- package/plugins/pbr/commands/audit-fix.md +5 -0
- package/plugins/pbr/commands/audit-milestone.md +8 -0
- package/plugins/pbr/commands/autonomous.md +5 -0
- package/plugins/pbr/commands/backlog.md +6 -0
- package/plugins/pbr/commands/check-todos.md +8 -0
- package/plugins/pbr/commands/complete-milestone.md +8 -0
- package/plugins/pbr/commands/config.md +1 -1
- package/plugins/pbr/commands/discuss-phase.md +6 -0
- package/plugins/pbr/commands/do.md +5 -0
- package/plugins/pbr/commands/execute-phase.md +6 -0
- package/plugins/pbr/commands/fast.md +6 -0
- package/plugins/pbr/commands/forensics.md +6 -0
- package/plugins/pbr/commands/import.md +1 -1
- package/plugins/pbr/commands/insert-phase.md +65 -0
- package/plugins/pbr/commands/intel.md +5 -0
- package/plugins/pbr/commands/join-discord.md +11 -0
- package/plugins/pbr/commands/list-phase-assumptions.md +5 -0
- package/plugins/pbr/commands/map-codebase.md +6 -0
- package/plugins/pbr/commands/milestone-summary.md +6 -0
- package/plugins/pbr/commands/new-milestone.md +8 -0
- package/plugins/pbr/commands/new-project.md +6 -0
- package/plugins/pbr/commands/pause-work.md +5 -0
- package/plugins/pbr/commands/plan-milestone-gaps.md +7 -0
- package/plugins/pbr/commands/plan-phase.md +6 -0
- package/plugins/pbr/commands/plant-seed.md +6 -0
- package/plugins/pbr/commands/profile-user.md +5 -0
- package/plugins/pbr/commands/profile.md +5 -0
- package/plugins/pbr/commands/progress.md +6 -0
- package/plugins/pbr/commands/quick.md +1 -1
- package/plugins/pbr/commands/reapply-patches.md +47 -0
- package/plugins/pbr/commands/release.md +6 -0
- package/plugins/pbr/commands/remove-phase.md +66 -0
- package/plugins/pbr/commands/research-phase.md +59 -0
- package/plugins/pbr/commands/resume-work.md +5 -0
- package/plugins/pbr/commands/seed.md +6 -0
- package/plugins/pbr/commands/session-report.md +5 -0
- package/plugins/pbr/commands/set-profile.md +6 -0
- package/plugins/pbr/commands/settings.md +5 -0
- package/plugins/pbr/commands/setup.md +1 -1
- package/plugins/pbr/commands/ship.md +5 -0
- package/plugins/pbr/commands/stats.md +6 -0
- package/plugins/pbr/commands/test.md +5 -0
- package/plugins/pbr/commands/thread.md +6 -0
- package/plugins/pbr/commands/todo.md +1 -1
- package/plugins/pbr/commands/ui-phase.md +5 -0
- package/plugins/pbr/commands/ui-review.md +5 -0
- package/plugins/pbr/commands/undo.md +5 -0
- package/plugins/pbr/commands/update.md +37 -0
- package/plugins/pbr/commands/validate-phase.md +5 -0
- package/plugins/pbr/commands/verify-work.md +6 -0
- package/plugins/pbr/dashboard/package-lock.json +6 -0
- package/plugins/pbr/dist/architecture-guard.js +59 -0
- package/plugins/pbr/dist/audit-dimensions.js +556 -0
- package/plugins/pbr/dist/auto-continue.js +277 -0
- package/plugins/pbr/dist/block-skill-self-read.js +124 -0
- package/plugins/pbr/dist/check-agent-state-write.js +63 -0
- package/plugins/pbr/dist/check-config-change.js +155 -0
- package/plugins/pbr/dist/check-cross-plugin-sync.js +93 -0
- package/plugins/pbr/dist/check-dangerous-commands.js +193 -0
- package/plugins/pbr/dist/check-direct-state-write.js +37 -0
- package/plugins/pbr/dist/check-doc-sprawl.js +102 -0
- package/plugins/pbr/dist/check-phase-boundary.js +191 -0
- package/plugins/pbr/dist/check-plan-format.js +209 -0
- package/plugins/pbr/dist/check-read-first.js +345 -0
- package/plugins/pbr/dist/check-roadmap-sync.js +507 -0
- package/plugins/pbr/dist/check-skill-workflow.js +354 -0
- package/plugins/pbr/dist/check-state-sync.js +658 -0
- package/plugins/pbr/dist/check-subagent-output.js +396 -0
- package/plugins/pbr/dist/check-summary-gate.js +188 -0
- package/plugins/pbr/dist/context-bridge.js +425 -0
- package/plugins/pbr/dist/context-budget-check.js +442 -0
- package/plugins/pbr/dist/context-quality.js +271 -0
- package/plugins/pbr/dist/enforce-context-budget.js +138 -0
- package/plugins/pbr/dist/enforce-pbr-workflow.js +277 -0
- package/plugins/pbr/dist/event-handler.js +202 -0
- package/plugins/pbr/dist/event-logger.js +125 -0
- package/plugins/pbr/dist/feedback-loop.js +155 -0
- package/plugins/pbr/dist/graph-update.js +422 -0
- package/plugins/pbr/dist/hook-logger.js +114 -0
- package/plugins/pbr/dist/hook-server-client.js +361 -0
- package/plugins/pbr/dist/hook-server.js +658 -0
- package/plugins/pbr/dist/hooks-schema.json +87 -0
- package/plugins/pbr/dist/instructions-loaded.js +173 -0
- package/plugins/pbr/dist/intercept-plan-mode.js +81 -0
- package/plugins/pbr/dist/log-notification.js +131 -0
- package/plugins/pbr/dist/log-subagent.js +349 -0
- package/plugins/pbr/dist/log-tool-failure.js +140 -0
- package/plugins/pbr/dist/milestone-learnings.js +519 -0
- package/plugins/pbr/dist/pbr-tools.js +1961 -0
- package/plugins/pbr/dist/post-bash-triage.js +96 -0
- package/plugins/pbr/dist/post-compact.js +135 -0
- package/plugins/pbr/dist/post-hoc.js +237 -0
- package/plugins/pbr/dist/post-write-dispatch.js +243 -0
- package/plugins/pbr/dist/post-write-quality.js +208 -0
- package/plugins/pbr/dist/pre-bash-dispatch.js +212 -0
- package/plugins/pbr/dist/pre-skill-dispatch.js +114 -0
- package/plugins/pbr/dist/pre-task-dispatch.js +269 -0
- package/plugins/pbr/dist/pre-write-dispatch.js +234 -0
- package/plugins/pbr/dist/progress-tracker.js +173 -0
- package/plugins/pbr/dist/prompt-guard.js +114 -0
- package/plugins/pbr/dist/prompt-routing.js +209 -0
- package/plugins/pbr/dist/quick-status.js +179 -0
- package/plugins/pbr/dist/record-incident.js +37 -0
- package/plugins/pbr/dist/run-hook.js +144 -0
- package/plugins/pbr/dist/session-cleanup.js +653 -0
- package/plugins/pbr/dist/session-tracker.js +124 -0
- package/plugins/pbr/dist/status-line.js +849 -0
- package/plugins/pbr/dist/suggest-compact.js +307 -0
- package/plugins/pbr/dist/sync-context-to-claude.js +100 -0
- package/plugins/pbr/dist/task-completed.js +206 -0
- package/plugins/pbr/dist/track-context-budget.js +432 -0
- package/plugins/pbr/dist/track-user-gates.js +88 -0
- package/plugins/pbr/dist/trust-tracker.js +193 -0
- package/plugins/pbr/dist/validate-commit.js +215 -0
- package/plugins/pbr/dist/validate-skill-args.js +222 -0
- package/plugins/pbr/dist/validate-task.js +271 -0
- package/plugins/pbr/dist/worktree-create.js +144 -0
- package/plugins/pbr/dist/worktree-remove.js +147 -0
- package/plugins/pbr/hooks/hooks.json +143 -60
- package/plugins/pbr/references/agent-contracts.md +39 -8
- package/plugins/pbr/references/agent-teams.md +3 -3
- package/plugins/pbr/references/archive/checkpoints.md +189 -0
- package/plugins/pbr/references/archive/context-quality-tiers.md +45 -0
- package/plugins/pbr/references/archive/hook-ordering.md +89 -0
- package/plugins/pbr/references/archive/limitations.md +106 -0
- package/plugins/pbr/references/archive/pbr-rules.md +194 -0
- package/plugins/pbr/references/archive/pbr-tools-cli.md +415 -0
- package/plugins/pbr/references/archive/pretooluse-jsonl-behavior.md +58 -0
- package/plugins/pbr/references/archive/signal-files.md +41 -0
- package/plugins/pbr/references/archive/tmux-setup.md +288 -0
- package/plugins/pbr/references/archive/verification-matrix.md +34 -0
- package/plugins/pbr/references/archive/verification-patterns.md +277 -0
- package/plugins/pbr/references/archive/worktree-sparse-checkout.md +86 -0
- package/plugins/pbr/references/checkpoints.md +723 -104
- package/plugins/pbr/references/config-reference.md +376 -10
- package/plugins/pbr/references/continuation-format.md +1 -0
- package/plugins/pbr/references/decimal-phase-calculation.md +65 -0
- package/plugins/pbr/references/deviation-rules.md +12 -0
- package/plugins/pbr/references/git-integration.md +110 -27
- package/plugins/pbr/references/git-planning-commit.md +35 -0
- package/plugins/pbr/references/model-profile-resolution.md +34 -0
- package/plugins/pbr/references/model-profiles.md +90 -7
- package/plugins/pbr/references/model-selection.md +1 -1
- package/plugins/pbr/references/node-repair.md +48 -0
- package/plugins/pbr/references/plan-authoring.md +65 -0
- package/plugins/pbr/references/plan-format.md +161 -10
- package/plugins/pbr/references/questioning.md +138 -49
- package/plugins/pbr/references/reading-verification.md +4 -4
- package/plugins/pbr/references/tdd.md +263 -0
- package/plugins/pbr/references/ui-brand.md +449 -0
- package/plugins/pbr/references/verification-overrides.md +39 -0
- package/plugins/pbr/references/verification-patterns.md +529 -113
- package/plugins/pbr/scripts/architecture-guard.js +59 -0
- package/plugins/pbr/scripts/audit-checks/behavioral-compliance.js +2098 -0
- package/plugins/pbr/scripts/audit-checks/error-analysis.js +989 -0
- package/plugins/pbr/scripts/audit-checks/feature-verification.js +723 -0
- package/plugins/pbr/scripts/audit-checks/index.js +433 -0
- package/plugins/pbr/scripts/audit-checks/infrastructure.js +816 -0
- package/plugins/pbr/scripts/audit-checks/quality-metrics.js +452 -0
- package/plugins/pbr/scripts/audit-checks/session-quality.js +980 -0
- package/plugins/pbr/scripts/audit-checks/si-agent-hook-config-checks.js +396 -0
- package/plugins/pbr/scripts/audit-checks/si-cross-cutting-checks.js +272 -0
- package/plugins/pbr/scripts/audit-checks/si-skill-checks.js +424 -0
- package/plugins/pbr/scripts/audit-checks/workflow-compliance.js +1175 -0
- package/plugins/pbr/scripts/audit-dimensions.js +556 -0
- package/plugins/pbr/scripts/auto-continue.js +192 -31
- package/plugins/pbr/scripts/block-skill-self-read.js +124 -0
- package/plugins/pbr/scripts/check-agent-state-write.js +63 -0
- package/plugins/pbr/scripts/check-config-change.js +155 -0
- package/plugins/pbr/scripts/check-cross-plugin-sync.js +93 -0
- package/plugins/pbr/scripts/check-dangerous-commands.js +18 -5
- package/plugins/pbr/scripts/check-direct-state-write.js +37 -0
- package/plugins/pbr/scripts/check-phase-boundary.js +3 -8
- package/plugins/pbr/scripts/check-plan-format.js +135 -278
- package/plugins/pbr/scripts/check-read-first.js +345 -0
- package/plugins/pbr/scripts/check-roadmap-sync.js +182 -21
- package/plugins/pbr/scripts/check-skill-workflow.js +24 -27
- package/plugins/pbr/scripts/check-state-sync.js +339 -215
- package/plugins/pbr/scripts/check-subagent-output.js +281 -275
- package/plugins/pbr/scripts/check-summary-gate.js +5 -15
- package/plugins/pbr/scripts/config-schema.json +1134 -95
- package/plugins/pbr/scripts/context-bridge.js +425 -0
- package/plugins/pbr/scripts/context-budget-check.js +169 -14
- package/plugins/pbr/scripts/context-quality.js +271 -0
- package/plugins/pbr/scripts/enforce-context-budget.js +138 -0
- package/plugins/pbr/scripts/enforce-pbr-workflow.js +277 -0
- package/plugins/pbr/scripts/event-handler.js +127 -87
- package/plugins/pbr/scripts/event-logger.js +58 -25
- package/plugins/pbr/scripts/feedback-loop.js +155 -0
- package/plugins/pbr/scripts/graph-update.js +422 -0
- package/plugins/pbr/scripts/hook-logger.js +69 -35
- package/plugins/pbr/scripts/hook-server-client.js +361 -0
- package/plugins/pbr/scripts/hook-server.js +658 -0
- package/plugins/pbr/scripts/hooks-schema.json +13 -5
- package/plugins/pbr/scripts/instructions-loaded.js +173 -0
- package/plugins/pbr/scripts/intent-router.cjs +147 -0
- package/plugins/pbr/scripts/intercept-plan-mode.js +52 -18
- package/plugins/pbr/scripts/lib/alternatives.js +203 -0
- package/plugins/pbr/scripts/lib/audit.js +65 -0
- package/plugins/pbr/scripts/lib/auto-cleanup.js +221 -0
- package/plugins/pbr/scripts/lib/auto-verify.js +103 -0
- package/plugins/pbr/scripts/lib/build.js +719 -0
- package/plugins/pbr/scripts/lib/ci-fix-loop.js +228 -0
- package/plugins/pbr/scripts/lib/commands.js +483 -0
- package/plugins/pbr/scripts/lib/compound.js +216 -0
- package/plugins/pbr/scripts/lib/config.js +1308 -0
- package/plugins/pbr/scripts/lib/context.js +254 -0
- package/plugins/pbr/scripts/lib/contextual-help.js +183 -0
- package/plugins/pbr/scripts/lib/convention-detector.js +413 -0
- package/plugins/pbr/scripts/lib/core.js +1569 -0
- package/plugins/pbr/scripts/lib/dashboard-launch.js +364 -0
- package/plugins/pbr/scripts/lib/data-hygiene.js +179 -0
- package/plugins/pbr/scripts/lib/decision-extraction.js +183 -0
- package/plugins/pbr/scripts/lib/decisions.js +194 -0
- package/plugins/pbr/scripts/lib/dependency-break.js +147 -0
- package/plugins/pbr/scripts/lib/format-validators.js +1025 -0
- package/plugins/pbr/scripts/lib/frontmatter.js +302 -0
- package/plugins/pbr/scripts/lib/gates/advisories.js +129 -0
- package/plugins/pbr/scripts/lib/gates/build-dependency.js +115 -0
- package/plugins/pbr/scripts/lib/gates/build-executor.js +104 -0
- package/plugins/pbr/scripts/lib/gates/doc-existence.js +46 -0
- package/plugins/pbr/scripts/lib/gates/helpers.js +93 -0
- package/plugins/pbr/scripts/lib/gates/inline-execution.js +185 -0
- package/plugins/pbr/scripts/lib/gates/milestone-complete.js +136 -0
- package/plugins/pbr/scripts/lib/gates/milestone-summary.js +119 -0
- package/plugins/pbr/scripts/lib/gates/multi-phase-loader.js +147 -0
- package/plugins/pbr/scripts/lib/gates/plan-executor.js +36 -0
- package/plugins/pbr/scripts/lib/gates/plan-validation.js +114 -0
- package/plugins/pbr/scripts/lib/gates/quick-executor.js +76 -0
- package/plugins/pbr/scripts/lib/gates/review-planner.js +61 -0
- package/plugins/pbr/scripts/lib/gates/review-verifier.js +69 -0
- package/plugins/pbr/scripts/lib/gates/rich-agent-context.js +137 -0
- package/plugins/pbr/scripts/lib/gates/user-confirmation.js +93 -0
- package/plugins/pbr/scripts/lib/graph-cli.js +89 -0
- package/plugins/pbr/scripts/lib/graph.js +553 -0
- package/plugins/pbr/scripts/lib/health-checks.js +107 -0
- package/plugins/pbr/scripts/lib/health-phase06.js +120 -0
- package/plugins/pbr/scripts/lib/health.js +132 -0
- package/plugins/pbr/scripts/lib/help.js +100 -0
- package/plugins/pbr/scripts/lib/history.js +150 -0
- package/plugins/pbr/scripts/lib/impact-analysis.js +319 -0
- package/plugins/pbr/scripts/lib/incidents.js +190 -0
- package/plugins/pbr/scripts/lib/init.js +643 -0
- package/plugins/pbr/scripts/lib/insights-parser.js +320 -0
- package/plugins/pbr/scripts/lib/intel.js +653 -0
- package/plugins/pbr/scripts/lib/learnings.js +511 -0
- package/plugins/pbr/scripts/lib/migrate.js +298 -0
- package/plugins/pbr/scripts/lib/milestone.js +306 -0
- package/plugins/pbr/scripts/lib/negative-knowledge.js +194 -0
- package/plugins/pbr/scripts/lib/notification-throttle.js +141 -0
- package/plugins/pbr/scripts/lib/onboarding-generator.js +288 -0
- package/plugins/pbr/scripts/lib/parse-args.js +134 -0
- package/plugins/pbr/scripts/lib/pattern-routing.js +55 -0
- package/plugins/pbr/scripts/lib/patterns.js +272 -0
- package/plugins/pbr/scripts/lib/perf.js +190 -0
- package/plugins/pbr/scripts/lib/phase.js +1025 -0
- package/plugins/pbr/scripts/lib/pid-lock.js +154 -0
- package/plugins/pbr/scripts/lib/post-hoc.js +160 -0
- package/plugins/pbr/scripts/lib/pre-commit-checks.js +220 -0
- package/plugins/pbr/scripts/lib/pre-research.js +126 -0
- package/plugins/pbr/scripts/lib/preview.js +174 -0
- package/plugins/pbr/scripts/lib/progress-visualization.js +296 -0
- package/plugins/pbr/scripts/lib/quick-init.js +131 -0
- package/plugins/pbr/scripts/lib/reference.js +236 -0
- package/plugins/pbr/scripts/lib/requirements.js +153 -0
- package/plugins/pbr/scripts/lib/resolve-root.js +66 -0
- package/plugins/pbr/scripts/lib/reverse-spec.js +259 -0
- package/plugins/pbr/scripts/lib/roadmap.js +1089 -0
- package/plugins/pbr/scripts/lib/security-scan.js +200 -0
- package/plugins/pbr/scripts/lib/session-briefing.js +895 -0
- package/plugins/pbr/scripts/lib/skill-section.js +99 -0
- package/plugins/pbr/scripts/lib/smart-next-task.js +198 -0
- package/plugins/pbr/scripts/lib/snapshot-manager.js +232 -0
- package/plugins/pbr/scripts/lib/spec-diff.js +209 -0
- package/plugins/pbr/scripts/lib/spec-engine.js +189 -0
- package/plugins/pbr/scripts/lib/spot-check.js +539 -0
- package/plugins/pbr/scripts/lib/state-queue.js +171 -0
- package/plugins/pbr/scripts/lib/state.js +1082 -0
- package/plugins/pbr/scripts/lib/status-render.js +511 -0
- package/plugins/pbr/scripts/lib/step-verify.js +149 -0
- package/plugins/pbr/scripts/lib/subagent-validators.js +1059 -0
- package/plugins/pbr/scripts/lib/suggest-next.js +435 -0
- package/plugins/pbr/scripts/lib/tech-debt-scanner.js +116 -0
- package/plugins/pbr/scripts/lib/templates.js +362 -0
- package/plugins/pbr/scripts/lib/test-selection.js +163 -0
- package/plugins/pbr/scripts/lib/todo.js +300 -0
- package/plugins/pbr/scripts/lib/verify.js +1483 -0
- package/plugins/pbr/scripts/log-notification.js +131 -0
- package/plugins/pbr/scripts/log-subagent.js +203 -18
- package/plugins/pbr/scripts/log-tool-failure.js +60 -8
- package/plugins/pbr/scripts/milestone-learnings.js +519 -0
- package/plugins/pbr/scripts/package.json +1 -1
- package/plugins/pbr/scripts/pbr-tools.js +1754 -1171
- package/plugins/pbr/scripts/post-bash-triage.js +96 -0
- package/plugins/pbr/scripts/post-compact.js +135 -0
- package/plugins/pbr/scripts/post-hoc.js +237 -0
- package/plugins/pbr/scripts/post-write-dispatch.js +201 -31
- package/plugins/pbr/scripts/post-write-quality.js +4 -3
- package/plugins/pbr/scripts/pre-bash-dispatch.js +147 -51
- package/plugins/pbr/scripts/pre-skill-dispatch.js +114 -0
- package/plugins/pbr/scripts/pre-task-dispatch.js +269 -0
- package/plugins/pbr/scripts/pre-write-dispatch.js +170 -73
- package/plugins/pbr/scripts/progress-tracker.js +122 -310
- package/plugins/pbr/scripts/prompt-guard.js +114 -0
- package/plugins/pbr/scripts/prompt-routing.js +209 -0
- package/plugins/pbr/scripts/quick-status.js +179 -0
- package/plugins/pbr/scripts/record-incident.js +37 -0
- package/plugins/pbr/scripts/risk-classifier.cjs +123 -0
- package/plugins/pbr/scripts/run-hook.js +62 -10
- package/plugins/pbr/scripts/session-cleanup.js +428 -29
- package/plugins/pbr/scripts/session-tracker.js +124 -0
- package/plugins/pbr/scripts/status-line.js +593 -32
- package/plugins/pbr/scripts/suggest-compact.js +201 -13
- package/plugins/pbr/scripts/sync-context-to-claude.js +100 -0
- package/plugins/pbr/scripts/task-completed.js +165 -4
- package/plugins/pbr/scripts/test/config.test.js +126 -0
- package/plugins/pbr/scripts/test/cross-platform.test.js +131 -0
- package/plugins/pbr/scripts/test/fixtures/config.json +20 -0
- package/plugins/pbr/scripts/test/fixtures/plan.md +54 -0
- package/plugins/pbr/scripts/test/fixtures/project.md +30 -0
- package/plugins/pbr/scripts/test/fixtures/roadmap.md +55 -0
- package/plugins/pbr/scripts/test/fixtures/state.md +60 -0
- package/plugins/pbr/scripts/test/fixtures/summary.md +35 -0
- package/plugins/pbr/scripts/test/fixtures.test.js +184 -0
- package/plugins/pbr/scripts/test/phase.test.js +142 -0
- package/plugins/pbr/scripts/test/roadmap.test.js +96 -0
- package/plugins/pbr/scripts/test/state.test.js +155 -0
- package/plugins/pbr/scripts/track-context-budget.js +368 -99
- package/plugins/pbr/scripts/track-user-gates.js +88 -0
- package/plugins/pbr/scripts/trust-tracker.js +193 -0
- package/plugins/pbr/scripts/validate-commit.js +41 -26
- package/plugins/pbr/scripts/validate-skill-args.js +87 -15
- package/plugins/pbr/scripts/validate-task.js +83 -627
- package/plugins/pbr/scripts/worktree-create.js +144 -0
- package/plugins/pbr/scripts/worktree-remove.js +147 -0
- package/plugins/pbr/skills/audit/SKILL.md +195 -24
- package/plugins/pbr/skills/audit-fix/SKILL.md +326 -0
- package/plugins/pbr/skills/autonomous/SKILL.md +545 -0
- package/plugins/pbr/skills/backlog/SKILL.md +56 -0
- package/plugins/pbr/skills/begin/SKILL.md +508 -153
- package/plugins/pbr/skills/begin/templates/STATE.md.tmpl +1 -2
- package/plugins/pbr/skills/begin/templates/config.json.tmpl +411 -36
- package/plugins/pbr/skills/begin/templates/researcher-prompt.md.tmpl +28 -0
- package/plugins/pbr/skills/begin/templates/roadmap-prompt.md.tmpl +28 -3
- package/plugins/pbr/skills/begin/templates/synthesis-prompt.md.tmpl +33 -5
- package/plugins/pbr/skills/build/SKILL.md +1040 -354
- package/plugins/pbr/skills/build/templates/continuation-prompt.md.tmpl +26 -0
- package/plugins/pbr/skills/build/templates/executor-prompt.md.tmpl +77 -0
- package/plugins/pbr/skills/build/templates/inline-verifier-prompt.md.tmpl +33 -0
- package/plugins/pbr/skills/config/SKILL.md +112 -9
- package/plugins/pbr/skills/continue/SKILL.md +113 -33
- package/plugins/pbr/skills/dashboard/SKILL.md +21 -9
- package/plugins/pbr/skills/debug/SKILL.md +70 -12
- package/plugins/pbr/skills/debug/templates/continuation-prompt.md.tmpl +12 -1
- package/plugins/pbr/skills/debug/templates/initial-investigation-prompt.md.tmpl +12 -5
- package/plugins/pbr/skills/discuss/SKILL.md +206 -25
- package/plugins/pbr/skills/discuss/templates/CONTEXT.md.tmpl +21 -1
- package/plugins/pbr/skills/do/SKILL.md +119 -24
- package/plugins/pbr/skills/explore/SKILL.md +95 -20
- package/plugins/pbr/skills/fast/SKILL.md +94 -0
- package/plugins/pbr/skills/forensics/SKILL.md +144 -0
- package/plugins/pbr/skills/health/SKILL.md +35 -117
- package/plugins/pbr/skills/help/SKILL.md +84 -101
- package/plugins/pbr/skills/import/SKILL.md +332 -13
- package/plugins/pbr/skills/intel/SKILL.md +131 -0
- package/plugins/pbr/skills/list-phase-assumptions/SKILL.md +231 -0
- package/plugins/pbr/skills/milestone/SKILL.md +421 -263
- package/plugins/pbr/skills/milestone/templates/audit-output.md.tmpl +76 -0
- package/plugins/pbr/skills/milestone/templates/complete-output.md.tmpl +32 -0
- package/plugins/pbr/skills/milestone/templates/edge-cases.md +54 -0
- package/plugins/pbr/skills/milestone/templates/gaps-output.md.tmpl +25 -0
- package/plugins/pbr/skills/milestone/templates/integration-checker-prompt.md.tmpl +25 -0
- package/plugins/pbr/skills/milestone/templates/new-output.md.tmpl +29 -0
- package/plugins/pbr/skills/milestone-summary/SKILL.md +86 -0
- package/plugins/pbr/skills/note/SKILL.md +20 -4
- package/plugins/pbr/skills/pause/SKILL.md +54 -14
- package/plugins/pbr/skills/pause/templates/continue-here.md.tmpl +33 -52
- package/plugins/pbr/skills/plan/SKILL.md +526 -280
- package/plugins/pbr/skills/plan/templates/checker-prompt.md.tmpl +5 -2
- package/plugins/pbr/skills/plan/templates/completion-output.md.tmpl +27 -0
- package/plugins/pbr/skills/plan/templates/planner-prompt.md.tmpl +27 -1
- package/plugins/pbr/skills/plan/templates/revision-prompt.md.tmpl +21 -5
- package/plugins/pbr/skills/profile/SKILL.md +185 -0
- package/plugins/pbr/skills/profile-user/SKILL.md +227 -0
- package/plugins/pbr/skills/quick/SKILL.md +435 -100
- package/plugins/pbr/skills/release/SKILL.md +206 -0
- package/plugins/pbr/skills/resume/SKILL.md +170 -46
- package/plugins/pbr/skills/review/SKILL.md +217 -164
- package/plugins/pbr/skills/review/templates/verifier-prompt.md.tmpl +7 -0
- package/plugins/pbr/skills/scan/SKILL.md +152 -106
- package/plugins/pbr/skills/scan/templates/mapper-prompt.md.tmpl +5 -56
- package/plugins/pbr/skills/seed/SKILL.md +87 -0
- package/plugins/pbr/skills/session-report/SKILL.md +130 -0
- package/plugins/pbr/skills/setup/SKILL.md +150 -202
- package/plugins/pbr/skills/shared/agent-context-enrichment.md +21 -0
- package/plugins/pbr/skills/shared/agent-type-resolution.md +32 -0
- package/plugins/pbr/skills/shared/commit-planning-docs.md +8 -0
- package/plugins/pbr/skills/shared/context-budget.md +66 -1
- package/plugins/pbr/skills/shared/context-loader-task.md +18 -11
- package/plugins/pbr/skills/shared/digest-select.md +2 -2
- package/plugins/pbr/skills/shared/domain-probes.md +1 -1
- package/plugins/pbr/skills/shared/error-reporting.md +38 -60
- package/plugins/pbr/skills/shared/gate-prompts.md +4 -2
- package/plugins/pbr/skills/shared/memory-capture.md +48 -0
- package/plugins/pbr/skills/shared/phase-argument-parsing.md +4 -4
- package/plugins/pbr/skills/shared/revision-loop.md +24 -6
- package/plugins/pbr/skills/shared/state-update.md +49 -56
- package/plugins/pbr/skills/shared/universal-anti-patterns.md +27 -4
- package/plugins/pbr/skills/ship/SKILL.md +155 -0
- package/plugins/pbr/skills/stats/SKILL.md +80 -0
- package/plugins/pbr/skills/status/SKILL.md +185 -119
- package/plugins/pbr/skills/test/SKILL.md +254 -0
- package/plugins/pbr/skills/thread/SKILL.md +73 -0
- package/plugins/pbr/skills/todo/SKILL.md +28 -72
- package/plugins/pbr/skills/ui-phase/SKILL.md +180 -0
- package/plugins/pbr/skills/ui-review/SKILL.md +206 -0
- package/plugins/pbr/skills/undo/SKILL.md +221 -0
- package/plugins/pbr/skills/validate-phase/SKILL.md +362 -0
- package/plugins/pbr/templates/CONTEXT.md.tmpl +45 -20
- package/plugins/pbr/templates/DISCOVERY.md.tmpl +29 -0
- package/plugins/pbr/templates/DISCUSSION-LOG.md.tmpl +49 -0
- package/plugins/pbr/templates/HANDOFF.json.tmpl +30 -0
- package/plugins/pbr/templates/INTEGRATION-REPORT.md.tmpl +18 -2
- package/plugins/pbr/templates/MILESTONE-AUDIT.md.tmpl +44 -0
- package/plugins/pbr/templates/PROJECT.md.tmpl +126 -0
- package/plugins/pbr/templates/REQUIREMENTS.md.tmpl +96 -0
- package/plugins/pbr/templates/RETROSPECTIVE.md.tmpl +43 -0
- package/plugins/pbr/templates/ROADMAP.md.tmpl +108 -14
- package/plugins/pbr/templates/SUMMARY-complex.md.tmpl +133 -0
- package/plugins/pbr/templates/SUMMARY-minimal.md.tmpl +55 -0
- package/plugins/pbr/templates/SUMMARY.md.tmpl +21 -0
- package/plugins/pbr/templates/UAT.md.tmpl +94 -0
- package/plugins/pbr/templates/UI-SPEC.md.tmpl +144 -0
- package/plugins/pbr/templates/VALIDATION.md.tmpl +94 -0
- package/plugins/pbr/templates/VERIFICATION-DETAIL.md.tmpl +49 -13
- package/plugins/pbr/templates/project-CONTEXT.md.tmpl +59 -0
- package/plugins/pbr/templates/research-outputs/ARCHITECTURE.md.tmpl +91 -0
- package/plugins/pbr/templates/research-outputs/FEATURES.md.tmpl +64 -0
- package/plugins/pbr/templates/research-outputs/PITFALLS.md.tmpl +50 -0
- package/plugins/pbr/templates/research-outputs/STACK.md.tmpl +63 -0
- package/plugins/pbr/templates/research-outputs/SUMMARY.md.tmpl +98 -0
- package/scripts/build-hooks.js +61 -0
- package/scripts/check-ci.js +100 -0
- package/scripts/clean-changelog.js +364 -0
- package/scripts/generate-derivatives.js +581 -0
- package/scripts/posttest.js +93 -0
- package/scripts/release.js +262 -0
- package/scripts/run-tests.cjs +29 -0
- package/scripts/test-wrapper.js +43 -0
- package/dashboard/bin/cli.js +0 -25
- package/dashboard/public/css/layout.css +0 -704
- package/dashboard/public/css/status-colors.css +0 -98
- package/dashboard/public/css/tokens.css +0 -59
- package/dashboard/public/js/htmx-title.js +0 -5
- package/dashboard/public/js/sidebar-toggle.js +0 -34
- package/dashboard/public/js/sse-client.js +0 -100
- package/dashboard/public/js/theme-toggle.js +0 -46
- package/dashboard/src/app.js +0 -91
- package/dashboard/src/middleware/current-phase.js +0 -24
- package/dashboard/src/middleware/errorHandler.js +0 -52
- package/dashboard/src/middleware/notFoundHandler.js +0 -9
- package/dashboard/src/repositories/planning.repository.js +0 -130
- package/dashboard/src/routes/events.routes.js +0 -45
- package/dashboard/src/routes/index.routes.js +0 -35
- package/dashboard/src/routes/pages.routes.js +0 -426
- package/dashboard/src/server.js +0 -42
- package/dashboard/src/services/analytics.service.js +0 -141
- package/dashboard/src/services/dashboard.service.js +0 -309
- package/dashboard/src/services/milestone.service.js +0 -222
- package/dashboard/src/services/notes.service.js +0 -50
- package/dashboard/src/services/phase.service.js +0 -232
- package/dashboard/src/services/project.service.js +0 -57
- package/dashboard/src/services/roadmap.service.js +0 -258
- package/dashboard/src/services/sse.service.js +0 -58
- package/dashboard/src/services/todo.service.js +0 -272
- package/dashboard/src/services/watcher.service.js +0 -48
- package/dashboard/src/utils/cache.js +0 -55
- package/dashboard/src/views/analytics.ejs +0 -5
- package/dashboard/src/views/coming-soon.ejs +0 -11
- package/dashboard/src/views/dependencies.ejs +0 -5
- package/dashboard/src/views/error.ejs +0 -20
- package/dashboard/src/views/index.ejs +0 -5
- package/dashboard/src/views/milestone-detail.ejs +0 -5
- package/dashboard/src/views/milestones.ejs +0 -5
- package/dashboard/src/views/notes.ejs +0 -5
- package/dashboard/src/views/partials/analytics-content.ejs +0 -90
- package/dashboard/src/views/partials/breadcrumbs.ejs +0 -14
- package/dashboard/src/views/partials/dashboard-content.ejs +0 -84
- package/dashboard/src/views/partials/dependencies-content.ejs +0 -48
- package/dashboard/src/views/partials/empty-state.ejs +0 -7
- package/dashboard/src/views/partials/footer.ejs +0 -3
- package/dashboard/src/views/partials/head.ejs +0 -30
- package/dashboard/src/views/partials/header.ejs +0 -21
- package/dashboard/src/views/partials/layout-bottom.ejs +0 -43
- package/dashboard/src/views/partials/layout-top.ejs +0 -16
- package/dashboard/src/views/partials/milestone-detail-content.ejs +0 -20
- package/dashboard/src/views/partials/milestones-content.ejs +0 -88
- package/dashboard/src/views/partials/notes-content.ejs +0 -23
- package/dashboard/src/views/partials/phase-content.ejs +0 -193
- package/dashboard/src/views/partials/phase-doc-content.ejs +0 -38
- package/dashboard/src/views/partials/phases-content.ejs +0 -124
- package/dashboard/src/views/partials/roadmap-content.ejs +0 -180
- package/dashboard/src/views/partials/sidebar.ejs +0 -99
- package/dashboard/src/views/partials/todo-create-content.ejs +0 -54
- package/dashboard/src/views/partials/todo-detail-content.ejs +0 -42
- package/dashboard/src/views/partials/todos-content.ejs +0 -97
- package/dashboard/src/views/phase-detail.ejs +0 -5
- package/dashboard/src/views/phase-doc.ejs +0 -5
- package/dashboard/src/views/phases.ejs +0 -5
- package/dashboard/src/views/roadmap.ejs +0 -5
- package/dashboard/src/views/todo-create.ejs +0 -5
- package/dashboard/src/views/todo-detail.ejs +0 -5
- package/dashboard/src/views/todos.ejs +0 -5
- package/plugins/copilot-pbr/CHANGELOG.md +0 -19
- package/plugins/copilot-pbr/README.md +0 -139
- package/plugins/copilot-pbr/agents/audit.agent.md +0 -113
- package/plugins/copilot-pbr/agents/codebase-mapper.agent.md +0 -151
- package/plugins/copilot-pbr/agents/debugger.agent.md +0 -182
- package/plugins/copilot-pbr/agents/executor.agent.md +0 -267
- package/plugins/copilot-pbr/agents/general.agent.md +0 -88
- package/plugins/copilot-pbr/agents/integration-checker.agent.md +0 -119
- package/plugins/copilot-pbr/agents/plan-checker.agent.md +0 -208
- package/plugins/copilot-pbr/agents/planner.agent.md +0 -238
- package/plugins/copilot-pbr/agents/researcher.agent.md +0 -186
- package/plugins/copilot-pbr/agents/synthesizer.agent.md +0 -126
- package/plugins/copilot-pbr/agents/verifier.agent.md +0 -228
- package/plugins/copilot-pbr/hooks/hooks.json +0 -156
- package/plugins/copilot-pbr/plugin.json +0 -30
- package/plugins/copilot-pbr/references/agent-anti-patterns.md +0 -25
- package/plugins/copilot-pbr/references/agent-contracts.md +0 -297
- package/plugins/copilot-pbr/references/agent-interactions.md +0 -135
- package/plugins/copilot-pbr/references/agent-teams.md +0 -55
- package/plugins/copilot-pbr/references/checkpoints.md +0 -158
- package/plugins/copilot-pbr/references/common-bug-patterns.md +0 -14
- package/plugins/copilot-pbr/references/config-reference.md +0 -442
- package/plugins/copilot-pbr/references/continuation-format.md +0 -213
- package/plugins/copilot-pbr/references/deviation-rules.md +0 -113
- package/plugins/copilot-pbr/references/git-integration.md +0 -227
- package/plugins/copilot-pbr/references/integration-patterns.md +0 -118
- package/plugins/copilot-pbr/references/model-profiles.md +0 -100
- package/plugins/copilot-pbr/references/model-selection.md +0 -32
- package/plugins/copilot-pbr/references/pbr-rules.md +0 -195
- package/plugins/copilot-pbr/references/pbr-tools-cli.md +0 -285
- package/plugins/copilot-pbr/references/plan-authoring.md +0 -182
- package/plugins/copilot-pbr/references/plan-format.md +0 -288
- package/plugins/copilot-pbr/references/planning-config.md +0 -214
- package/plugins/copilot-pbr/references/questioning.md +0 -215
- package/plugins/copilot-pbr/references/reading-verification.md +0 -128
- package/plugins/copilot-pbr/references/stub-patterns.md +0 -161
- package/plugins/copilot-pbr/references/subagent-coordination.md +0 -120
- package/plugins/copilot-pbr/references/ui-formatting.md +0 -444
- package/plugins/copilot-pbr/references/verification-patterns.md +0 -199
- package/plugins/copilot-pbr/references/wave-execution.md +0 -96
- package/plugins/copilot-pbr/rules/pbr-workflow.mdc +0 -48
- package/plugins/copilot-pbr/setup.ps1 +0 -93
- package/plugins/copilot-pbr/setup.sh +0 -93
- package/plugins/copilot-pbr/skills/audit/SKILL.md +0 -330
- package/plugins/copilot-pbr/skills/begin/SKILL.md +0 -589
- package/plugins/copilot-pbr/skills/begin/templates/PROJECT.md.tmpl +0 -34
- package/plugins/copilot-pbr/skills/begin/templates/REQUIREMENTS.md.tmpl +0 -19
- package/plugins/copilot-pbr/skills/begin/templates/STATE.md.tmpl +0 -50
- package/plugins/copilot-pbr/skills/begin/templates/config.json.tmpl +0 -64
- package/plugins/copilot-pbr/skills/begin/templates/researcher-prompt.md.tmpl +0 -20
- package/plugins/copilot-pbr/skills/begin/templates/roadmap-prompt.md.tmpl +0 -31
- package/plugins/copilot-pbr/skills/begin/templates/synthesis-prompt.md.tmpl +0 -17
- package/plugins/copilot-pbr/skills/build/SKILL.md +0 -960
- package/plugins/copilot-pbr/skills/config/SKILL.md +0 -250
- package/plugins/copilot-pbr/skills/continue/SKILL.md +0 -159
- package/plugins/copilot-pbr/skills/dashboard/SKILL.md +0 -43
- package/plugins/copilot-pbr/skills/debug/SKILL.md +0 -508
- package/plugins/copilot-pbr/skills/debug/templates/continuation-prompt.md.tmpl +0 -17
- package/plugins/copilot-pbr/skills/debug/templates/initial-investigation-prompt.md.tmpl +0 -28
- package/plugins/copilot-pbr/skills/discuss/SKILL.md +0 -353
- package/plugins/copilot-pbr/skills/discuss/templates/CONTEXT.md.tmpl +0 -62
- package/plugins/copilot-pbr/skills/discuss/templates/decision-categories.md +0 -10
- package/plugins/copilot-pbr/skills/do/SKILL.md +0 -66
- package/plugins/copilot-pbr/skills/explore/SKILL.md +0 -373
- package/plugins/copilot-pbr/skills/health/SKILL.md +0 -283
- package/plugins/copilot-pbr/skills/health/templates/check-pattern.md.tmpl +0 -31
- package/plugins/copilot-pbr/skills/health/templates/output-format.md.tmpl +0 -64
- package/plugins/copilot-pbr/skills/help/SKILL.md +0 -170
- package/plugins/copilot-pbr/skills/import/SKILL.md +0 -502
- package/plugins/copilot-pbr/skills/milestone/SKILL.md +0 -745
- package/plugins/copilot-pbr/skills/milestone/templates/audit-report.md.tmpl +0 -49
- package/plugins/copilot-pbr/skills/milestone/templates/stats-file.md.tmpl +0 -31
- package/plugins/copilot-pbr/skills/note/SKILL.md +0 -213
- package/plugins/copilot-pbr/skills/pause/SKILL.md +0 -247
- package/plugins/copilot-pbr/skills/pause/templates/continue-here.md.tmpl +0 -72
- package/plugins/copilot-pbr/skills/plan/SKILL.md +0 -662
- package/plugins/copilot-pbr/skills/plan/templates/checker-prompt.md.tmpl +0 -22
- package/plugins/copilot-pbr/skills/plan/templates/gap-closure-prompt.md.tmpl +0 -33
- package/plugins/copilot-pbr/skills/plan/templates/planner-prompt.md.tmpl +0 -39
- package/plugins/copilot-pbr/skills/plan/templates/researcher-prompt.md.tmpl +0 -20
- package/plugins/copilot-pbr/skills/plan/templates/revision-prompt.md.tmpl +0 -24
- package/plugins/copilot-pbr/skills/quick/SKILL.md +0 -376
- package/plugins/copilot-pbr/skills/resume/SKILL.md +0 -399
- package/plugins/copilot-pbr/skills/review/SKILL.md +0 -653
- package/plugins/copilot-pbr/skills/review/templates/debugger-prompt.md.tmpl +0 -61
- package/plugins/copilot-pbr/skills/review/templates/gap-planner-prompt.md.tmpl +0 -41
- package/plugins/copilot-pbr/skills/review/templates/verifier-prompt.md.tmpl +0 -116
- package/plugins/copilot-pbr/skills/scan/SKILL.md +0 -299
- package/plugins/copilot-pbr/skills/scan/templates/mapper-prompt.md.tmpl +0 -202
- package/plugins/copilot-pbr/skills/setup/SKILL.md +0 -296
- package/plugins/copilot-pbr/skills/shared/commit-planning-docs.md +0 -36
- package/plugins/copilot-pbr/skills/shared/config-loading.md +0 -103
- package/plugins/copilot-pbr/skills/shared/context-budget.md +0 -41
- package/plugins/copilot-pbr/skills/shared/context-loader-task.md +0 -87
- package/plugins/copilot-pbr/skills/shared/digest-select.md +0 -80
- package/plugins/copilot-pbr/skills/shared/domain-probes.md +0 -126
- package/plugins/copilot-pbr/skills/shared/error-reporting.md +0 -81
- package/plugins/copilot-pbr/skills/shared/gate-prompts.md +0 -389
- package/plugins/copilot-pbr/skills/shared/phase-argument-parsing.md +0 -46
- package/plugins/copilot-pbr/skills/shared/progress-display.md +0 -53
- package/plugins/copilot-pbr/skills/shared/revision-loop.md +0 -82
- package/plugins/copilot-pbr/skills/shared/state-loading.md +0 -63
- package/plugins/copilot-pbr/skills/shared/state-update.md +0 -162
- package/plugins/copilot-pbr/skills/shared/universal-anti-patterns.md +0 -38
- package/plugins/copilot-pbr/skills/status/SKILL.md +0 -362
- package/plugins/copilot-pbr/skills/statusline/SKILL.md +0 -149
- package/plugins/copilot-pbr/skills/todo/SKILL.md +0 -279
- package/plugins/copilot-pbr/templates/CONTEXT.md.tmpl +0 -53
- package/plugins/copilot-pbr/templates/INTEGRATION-REPORT.md.tmpl +0 -152
- package/plugins/copilot-pbr/templates/RESEARCH-SUMMARY.md.tmpl +0 -98
- package/plugins/copilot-pbr/templates/ROADMAP.md.tmpl +0 -41
- package/plugins/copilot-pbr/templates/SUMMARY.md.tmpl +0 -82
- package/plugins/copilot-pbr/templates/VERIFICATION-DETAIL.md.tmpl +0 -117
- package/plugins/copilot-pbr/templates/codebase/ARCHITECTURE.md.tmpl +0 -98
- package/plugins/copilot-pbr/templates/codebase/CONCERNS.md.tmpl +0 -93
- package/plugins/copilot-pbr/templates/codebase/CONVENTIONS.md.tmpl +0 -104
- package/plugins/copilot-pbr/templates/codebase/INTEGRATIONS.md.tmpl +0 -78
- package/plugins/copilot-pbr/templates/codebase/STACK.md.tmpl +0 -78
- package/plugins/copilot-pbr/templates/codebase/STRUCTURE.md.tmpl +0 -80
- package/plugins/copilot-pbr/templates/codebase/TESTING.md.tmpl +0 -107
- package/plugins/copilot-pbr/templates/continue-here.md.tmpl +0 -74
- package/plugins/copilot-pbr/templates/prompt-partials/phase-project-context.md.tmpl +0 -38
- package/plugins/copilot-pbr/templates/research/ARCHITECTURE.md.tmpl +0 -124
- package/plugins/copilot-pbr/templates/research/STACK.md.tmpl +0 -71
- package/plugins/copilot-pbr/templates/research/SUMMARY.md.tmpl +0 -112
- package/plugins/copilot-pbr/templates/research-outputs/phase-research.md.tmpl +0 -81
- package/plugins/copilot-pbr/templates/research-outputs/project-research.md.tmpl +0 -99
- package/plugins/copilot-pbr/templates/research-outputs/synthesis.md.tmpl +0 -36
- package/plugins/cursor-pbr/.cursor-plugin/plugin.json +0 -32
- package/plugins/cursor-pbr/CHANGELOG.md +0 -15
- package/plugins/cursor-pbr/README.md +0 -123
- package/plugins/cursor-pbr/agents/audit.md +0 -178
- package/plugins/cursor-pbr/agents/codebase-mapper.md +0 -150
- package/plugins/cursor-pbr/agents/debugger.md +0 -181
- package/plugins/cursor-pbr/agents/executor.md +0 -266
- package/plugins/cursor-pbr/agents/general.md +0 -87
- package/plugins/cursor-pbr/agents/integration-checker.md +0 -118
- package/plugins/cursor-pbr/agents/plan-checker.md +0 -207
- package/plugins/cursor-pbr/agents/planner.md +0 -237
- package/plugins/cursor-pbr/agents/researcher.md +0 -185
- package/plugins/cursor-pbr/agents/synthesizer.md +0 -125
- package/plugins/cursor-pbr/agents/verifier.md +0 -227
- package/plugins/cursor-pbr/assets/.gitkeep +0 -0
- package/plugins/cursor-pbr/assets/logo.svg +0 -21
- package/plugins/cursor-pbr/hooks/hooks.json +0 -213
- package/plugins/cursor-pbr/references/agent-anti-patterns.md +0 -25
- package/plugins/cursor-pbr/references/agent-contracts.md +0 -297
- package/plugins/cursor-pbr/references/agent-interactions.md +0 -135
- package/plugins/cursor-pbr/references/agent-teams.md +0 -55
- package/plugins/cursor-pbr/references/checkpoints.md +0 -158
- package/plugins/cursor-pbr/references/common-bug-patterns.md +0 -14
- package/plugins/cursor-pbr/references/config-reference.md +0 -442
- package/plugins/cursor-pbr/references/continuation-format.md +0 -213
- package/plugins/cursor-pbr/references/deviation-rules.md +0 -113
- package/plugins/cursor-pbr/references/git-integration.md +0 -227
- package/plugins/cursor-pbr/references/integration-patterns.md +0 -118
- package/plugins/cursor-pbr/references/model-profiles.md +0 -100
- package/plugins/cursor-pbr/references/model-selection.md +0 -32
- package/plugins/cursor-pbr/references/pbr-rules.md +0 -195
- package/plugins/cursor-pbr/references/pbr-tools-cli.md +0 -285
- package/plugins/cursor-pbr/references/plan-authoring.md +0 -182
- package/plugins/cursor-pbr/references/plan-format.md +0 -288
- package/plugins/cursor-pbr/references/planning-config.md +0 -214
- package/plugins/cursor-pbr/references/questioning.md +0 -215
- package/plugins/cursor-pbr/references/reading-verification.md +0 -128
- package/plugins/cursor-pbr/references/stub-patterns.md +0 -161
- package/plugins/cursor-pbr/references/subagent-coordination.md +0 -120
- package/plugins/cursor-pbr/references/ui-formatting.md +0 -444
- package/plugins/cursor-pbr/references/verification-patterns.md +0 -199
- package/plugins/cursor-pbr/references/wave-execution.md +0 -96
- package/plugins/cursor-pbr/rules/pbr-workflow.mdc +0 -48
- package/plugins/cursor-pbr/setup.ps1 +0 -78
- package/plugins/cursor-pbr/setup.sh +0 -83
- package/plugins/cursor-pbr/skills/audit/SKILL.md +0 -331
- package/plugins/cursor-pbr/skills/begin/SKILL.md +0 -589
- package/plugins/cursor-pbr/skills/begin/templates/PROJECT.md.tmpl +0 -34
- package/plugins/cursor-pbr/skills/begin/templates/REQUIREMENTS.md.tmpl +0 -19
- package/plugins/cursor-pbr/skills/begin/templates/STATE.md.tmpl +0 -50
- package/plugins/cursor-pbr/skills/begin/templates/config.json.tmpl +0 -64
- package/plugins/cursor-pbr/skills/begin/templates/researcher-prompt.md.tmpl +0 -20
- package/plugins/cursor-pbr/skills/begin/templates/roadmap-prompt.md.tmpl +0 -31
- package/plugins/cursor-pbr/skills/begin/templates/synthesis-prompt.md.tmpl +0 -17
- package/plugins/cursor-pbr/skills/build/SKILL.md +0 -961
- package/plugins/cursor-pbr/skills/config/SKILL.md +0 -252
- package/plugins/cursor-pbr/skills/continue/SKILL.md +0 -159
- package/plugins/cursor-pbr/skills/dashboard/SKILL.md +0 -44
- package/plugins/cursor-pbr/skills/debug/SKILL.md +0 -512
- package/plugins/cursor-pbr/skills/debug/templates/continuation-prompt.md.tmpl +0 -17
- package/plugins/cursor-pbr/skills/debug/templates/initial-investigation-prompt.md.tmpl +0 -28
- package/plugins/cursor-pbr/skills/discuss/SKILL.md +0 -354
- package/plugins/cursor-pbr/skills/discuss/templates/CONTEXT.md.tmpl +0 -62
- package/plugins/cursor-pbr/skills/discuss/templates/decision-categories.md +0 -10
- package/plugins/cursor-pbr/skills/do/SKILL.md +0 -67
- package/plugins/cursor-pbr/skills/explore/SKILL.md +0 -376
- package/plugins/cursor-pbr/skills/health/SKILL.md +0 -283
- package/plugins/cursor-pbr/skills/health/templates/check-pattern.md.tmpl +0 -31
- package/plugins/cursor-pbr/skills/health/templates/output-format.md.tmpl +0 -64
- package/plugins/cursor-pbr/skills/help/SKILL.md +0 -170
- package/plugins/cursor-pbr/skills/import/SKILL.md +0 -505
- package/plugins/cursor-pbr/skills/milestone/SKILL.md +0 -746
- package/plugins/cursor-pbr/skills/milestone/templates/audit-report.md.tmpl +0 -49
- package/plugins/cursor-pbr/skills/milestone/templates/stats-file.md.tmpl +0 -31
- package/plugins/cursor-pbr/skills/note/SKILL.md +0 -214
- package/plugins/cursor-pbr/skills/pause/SKILL.md +0 -248
- package/plugins/cursor-pbr/skills/pause/templates/continue-here.md.tmpl +0 -72
- package/plugins/cursor-pbr/skills/plan/SKILL.md +0 -663
- package/plugins/cursor-pbr/skills/plan/templates/checker-prompt.md.tmpl +0 -22
- package/plugins/cursor-pbr/skills/plan/templates/gap-closure-prompt.md.tmpl +0 -33
- package/plugins/cursor-pbr/skills/plan/templates/planner-prompt.md.tmpl +0 -39
- package/plugins/cursor-pbr/skills/plan/templates/researcher-prompt.md.tmpl +0 -20
- package/plugins/cursor-pbr/skills/plan/templates/revision-prompt.md.tmpl +0 -24
- package/plugins/cursor-pbr/skills/quick/SKILL.md +0 -376
- package/plugins/cursor-pbr/skills/resume/SKILL.md +0 -399
- package/plugins/cursor-pbr/skills/review/SKILL.md +0 -654
- package/plugins/cursor-pbr/skills/review/templates/debugger-prompt.md.tmpl +0 -61
- package/plugins/cursor-pbr/skills/review/templates/gap-planner-prompt.md.tmpl +0 -41
- package/plugins/cursor-pbr/skills/review/templates/verifier-prompt.md.tmpl +0 -116
- package/plugins/cursor-pbr/skills/scan/SKILL.md +0 -300
- package/plugins/cursor-pbr/skills/scan/templates/mapper-prompt.md.tmpl +0 -202
- package/plugins/cursor-pbr/skills/setup/SKILL.md +0 -296
- package/plugins/cursor-pbr/skills/shared/commit-planning-docs.md +0 -36
- package/plugins/cursor-pbr/skills/shared/config-loading.md +0 -103
- package/plugins/cursor-pbr/skills/shared/context-budget.md +0 -41
- package/plugins/cursor-pbr/skills/shared/context-loader-task.md +0 -87
- package/plugins/cursor-pbr/skills/shared/digest-select.md +0 -80
- package/plugins/cursor-pbr/skills/shared/domain-probes.md +0 -126
- package/plugins/cursor-pbr/skills/shared/error-reporting.md +0 -81
- package/plugins/cursor-pbr/skills/shared/gate-prompts.md +0 -389
- package/plugins/cursor-pbr/skills/shared/phase-argument-parsing.md +0 -46
- package/plugins/cursor-pbr/skills/shared/progress-display.md +0 -53
- package/plugins/cursor-pbr/skills/shared/revision-loop.md +0 -82
- package/plugins/cursor-pbr/skills/shared/state-loading.md +0 -63
- package/plugins/cursor-pbr/skills/shared/state-update.md +0 -162
- package/plugins/cursor-pbr/skills/shared/universal-anti-patterns.md +0 -38
- package/plugins/cursor-pbr/skills/status/SKILL.md +0 -362
- package/plugins/cursor-pbr/skills/statusline/SKILL.md +0 -150
- package/plugins/cursor-pbr/skills/todo/SKILL.md +0 -280
- package/plugins/cursor-pbr/templates/CONTEXT.md.tmpl +0 -53
- package/plugins/cursor-pbr/templates/INTEGRATION-REPORT.md.tmpl +0 -152
- package/plugins/cursor-pbr/templates/RESEARCH-SUMMARY.md.tmpl +0 -98
- package/plugins/cursor-pbr/templates/ROADMAP.md.tmpl +0 -41
- package/plugins/cursor-pbr/templates/SUMMARY.md.tmpl +0 -82
- package/plugins/cursor-pbr/templates/VERIFICATION-DETAIL.md.tmpl +0 -117
- package/plugins/cursor-pbr/templates/codebase/ARCHITECTURE.md.tmpl +0 -98
- package/plugins/cursor-pbr/templates/codebase/CONCERNS.md.tmpl +0 -93
- package/plugins/cursor-pbr/templates/codebase/CONVENTIONS.md.tmpl +0 -104
- package/plugins/cursor-pbr/templates/codebase/INTEGRATIONS.md.tmpl +0 -78
- package/plugins/cursor-pbr/templates/codebase/STACK.md.tmpl +0 -78
- package/plugins/cursor-pbr/templates/codebase/STRUCTURE.md.tmpl +0 -80
- package/plugins/cursor-pbr/templates/codebase/TESTING.md.tmpl +0 -107
- package/plugins/cursor-pbr/templates/continue-here.md.tmpl +0 -74
- package/plugins/cursor-pbr/templates/prompt-partials/phase-project-context.md.tmpl +0 -38
- package/plugins/cursor-pbr/templates/research/ARCHITECTURE.md.tmpl +0 -124
- package/plugins/cursor-pbr/templates/research/STACK.md.tmpl +0 -71
- package/plugins/cursor-pbr/templates/research/SUMMARY.md.tmpl +0 -112
- package/plugins/cursor-pbr/templates/research-outputs/phase-research.md.tmpl +0 -81
- package/plugins/cursor-pbr/templates/research-outputs/project-research.md.tmpl +0 -99
- package/plugins/cursor-pbr/templates/research-outputs/synthesis.md.tmpl +0 -36
- package/plugins/pbr/references/agent-interactions.md +0 -134
- package/plugins/pbr/references/pbr-rules.md +0 -194
- package/plugins/pbr/references/pbr-tools-cli.md +0 -285
- package/plugins/pbr/references/planning-config.md +0 -213
- package/plugins/pbr/references/subagent-coordination.md +0 -119
- package/plugins/pbr/references/ui-formatting.md +0 -444
- package/plugins/pbr/scripts/validate-plugin-structure.js +0 -183
- package/plugins/pbr/skills/milestone/templates/audit-report.md.tmpl +0 -48
- package/plugins/pbr/skills/shared/progress-display.md +0 -53
- package/plugins/pbr/skills/shared/state-loading.md +0 -62
- package/plugins/pbr/templates/RESEARCH-SUMMARY.md.tmpl +0 -97
- package/plugins/pbr/templates/research/ARCHITECTURE.md.tmpl +0 -124
- package/plugins/pbr/templates/research/STACK.md.tmpl +0 -71
- package/plugins/pbr/templates/research/SUMMARY.md.tmpl +0 -112
- package/plugins/pbr/templates/research-outputs/phase-research.md.tmpl +0 -81
- package/plugins/pbr/templates/research-outputs/project-research.md.tmpl +0 -99
- package/plugins/pbr/templates/research-outputs/synthesis.md.tmpl +0 -36
- /package/plugins/pbr/references/{agent-anti-patterns.md → archive/agent-anti-patterns.md} +0 -0
|
@@ -2,17 +2,21 @@
|
|
|
2
2
|
name: begin
|
|
3
3
|
description: "Start a new project. Deep questioning, research, requirements, and roadmap."
|
|
4
4
|
allowed-tools: Read, Write, Bash, Glob, Grep, WebFetch, WebSearch, Task, AskUserQuestion
|
|
5
|
+
argument-hint: "[--auto]"
|
|
5
6
|
---
|
|
6
7
|
|
|
7
8
|
**STOP — DO NOT READ THIS FILE. You are already reading it. This prompt was injected into your context by Claude Code's plugin system. Using the Read tool on this SKILL.md file wastes ~7,600 tokens. Begin executing Step 1 immediately.**
|
|
8
9
|
|
|
9
|
-
# /pbr:
|
|
10
|
+
# /pbr:new-project — Project Initialization
|
|
10
11
|
|
|
11
|
-
|
|
12
|
+
**References:** `@references/questioning.md`, `@references/ui-brand.md`
|
|
13
|
+
|
|
14
|
+
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
15
|
|
|
13
16
|
## Context Budget
|
|
14
17
|
|
|
15
18
|
Reference: `skills/shared/context-budget.md` for the universal orchestrator rules.
|
|
19
|
+
Reference: `skills/shared/agent-type-resolution.md` for agent type fallback when spawning Task() subagents.
|
|
16
20
|
|
|
17
21
|
Additionally for this skill:
|
|
18
22
|
- **Minimize** reading subagent output — read only summaries, not full research docs
|
|
@@ -30,6 +34,22 @@ Additionally for this skill:
|
|
|
30
34
|
|
|
31
35
|
Then proceed to Step 1.
|
|
32
36
|
|
|
37
|
+
## Multi-Session Sync
|
|
38
|
+
|
|
39
|
+
Before any phase-modifying operations, this skill acquires a claim on the project:
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
acquireClaim(planningDir, sessionId)
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
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."
|
|
46
|
+
|
|
47
|
+
On completion or error, release the claim:
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
releaseClaim(planningDir, sessionId)
|
|
51
|
+
```
|
|
52
|
+
|
|
33
53
|
## Prerequisites
|
|
34
54
|
|
|
35
55
|
- Working directory should be the project root
|
|
@@ -45,29 +65,35 @@ Execute these steps in order. Each step specifies whether it runs inline (in you
|
|
|
45
65
|
|
|
46
66
|
### Step 1: Detect Brownfield (inline)
|
|
47
67
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
Check if the current directory has existing code:
|
|
68
|
+
**CRITICAL — Run init command FIRST before any Glob calls or manual file checks:**
|
|
51
69
|
|
|
70
|
+
```bash
|
|
71
|
+
node plugins/pbr/scripts/pbr-tools.js init begin
|
|
52
72
|
```
|
|
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
73
|
|
|
61
|
-
|
|
74
|
+
Store the JSON result as `blob`. This single call replaces multiple Glob/filesystem checks with a pre-computed payload:
|
|
75
|
+
- `blob.has_planning` — whether .planning/ directory exists
|
|
76
|
+
- `blob.has_existing_code` — whether brownfield indicators were found
|
|
77
|
+
- `blob.brownfield_indicators` — array of detected indicators (package.json, src/, etc.)
|
|
78
|
+
- `blob.has_git` — whether .git directory exists
|
|
79
|
+
- `blob.existing_phases` — count of existing phase directories
|
|
80
|
+
- `blob.state` — existing STATE.md frontmatter (or null if no project)
|
|
81
|
+
- `blob.config` — existing config.json contents (or null)
|
|
82
|
+
|
|
83
|
+
> **Cross-platform note**: The init command handles all filesystem checks cross-platform. No Glob or Bash file discovery needed.
|
|
84
|
+
|
|
85
|
+
**If `blob.has_existing_code` is true:**
|
|
86
|
+
**CRITICAL -- DO NOT SKIP**: Present the following choice to the user via AskUserQuestion before proceeding:
|
|
62
87
|
Use the **yes-no** pattern from `skills/shared/gate-prompts.md`:
|
|
63
|
-
question: "This looks like an existing codebase. Run /pbr:
|
|
88
|
+
question: "This looks like an existing codebase. Run /pbr:map-codebase to analyze what's here first?"
|
|
64
89
|
options:
|
|
65
|
-
- label: "Yes, scan" description: "Run /pbr:
|
|
66
|
-
- label: "No, begin" description: "Proceed with /pbr:
|
|
67
|
-
- If user selects "Yes, scan": suggest `/pbr:
|
|
90
|
+
- label: "Yes, scan" description: "Run /pbr:map-codebase first to analyze existing code"
|
|
91
|
+
- label: "No, begin" description: "Proceed with /pbr:new-project on top of existing code"
|
|
92
|
+
- If user selects "Yes, scan": suggest `/pbr:map-codebase` and stop
|
|
68
93
|
- If user selects "No, begin": proceed to Step 2
|
|
69
94
|
|
|
70
|
-
**If
|
|
95
|
+
**If `blob.has_planning` is true:**
|
|
96
|
+
**CRITICAL -- DO NOT SKIP**: Present the following choice to the user via AskUserQuestion before proceeding:
|
|
71
97
|
Use the **yes-no** pattern from `skills/shared/gate-prompts.md`:
|
|
72
98
|
question: "A .planning/ directory already exists. This will overwrite it. Continue?"
|
|
73
99
|
options:
|
|
@@ -75,7 +101,7 @@ Use the **yes-no** pattern from `skills/shared/gate-prompts.md`:
|
|
|
75
101
|
- label: "No" description: "Cancel — keep existing planning"
|
|
76
102
|
- If user selects "No": **STOP IMMEDIATELY. Do not ask again. Do not proceed to Step 2. End the skill with this message:**
|
|
77
103
|
```
|
|
78
|
-
Keeping existing .planning/ directory. Use `/pbr:
|
|
104
|
+
Keeping existing .planning/ directory. Use `/pbr:progress` to see current project state, or `/pbr:plan-phase` to continue planning.
|
|
79
105
|
```
|
|
80
106
|
**Do NOT re-prompt the same question or any other question. The skill is finished.**
|
|
81
107
|
- If user selects "Yes": proceed (existing directory will be overwritten during state initialization)
|
|
@@ -119,11 +145,144 @@ Have a natural conversation to understand the user's vision. Do NOT present a fo
|
|
|
119
145
|
|
|
120
146
|
---
|
|
121
147
|
|
|
148
|
+
### Step 2.5: Fast-Path Offer (inline)
|
|
149
|
+
|
|
150
|
+
Before asking any workflow preference questions, offer the user a quick-start option:
|
|
151
|
+
|
|
152
|
+
Use AskUserQuestion:
|
|
153
|
+
question: "How do you want to configure this project?"
|
|
154
|
+
header: "Setup mode"
|
|
155
|
+
options:
|
|
156
|
+
- label: "Quick start"
|
|
157
|
+
description: "Use all defaults — model balanced, depth standard, interactive mode, parallel on. Writes config in seconds."
|
|
158
|
+
- label: "Custom setup"
|
|
159
|
+
description: "Walk through model selection, features, and preferences step by step."
|
|
160
|
+
|
|
161
|
+
**If user selects "Quick start":**
|
|
162
|
+
- 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."
|
|
163
|
+
- Write `.planning/config.json` immediately using the default config below (no further questions):
|
|
164
|
+
```json
|
|
165
|
+
{
|
|
166
|
+
"version": 2,
|
|
167
|
+
"context_strategy": "aggressive",
|
|
168
|
+
"mode": "interactive",
|
|
169
|
+
"depth": "standard",
|
|
170
|
+
"context_window_tokens": 200000,
|
|
171
|
+
"features": {
|
|
172
|
+
"structured_planning": true,
|
|
173
|
+
"goal_verification": true,
|
|
174
|
+
"integration_verification": true,
|
|
175
|
+
"context_isolation": true,
|
|
176
|
+
"atomic_commits": true,
|
|
177
|
+
"session_persistence": true,
|
|
178
|
+
"research_phase": true,
|
|
179
|
+
"plan_checking": true,
|
|
180
|
+
"tdd_mode": false,
|
|
181
|
+
"status_line": true,
|
|
182
|
+
"auto_continue": false,
|
|
183
|
+
"auto_advance": false,
|
|
184
|
+
"team_discussions": false,
|
|
185
|
+
"inline_verify": false
|
|
186
|
+
},
|
|
187
|
+
"models": {
|
|
188
|
+
"researcher": "sonnet",
|
|
189
|
+
"planner": "inherit",
|
|
190
|
+
"executor": "inherit",
|
|
191
|
+
"verifier": "sonnet",
|
|
192
|
+
"integration_checker": "sonnet",
|
|
193
|
+
"debugger": "inherit",
|
|
194
|
+
"mapper": "sonnet",
|
|
195
|
+
"synthesizer": "haiku"
|
|
196
|
+
},
|
|
197
|
+
"parallelization": {
|
|
198
|
+
"enabled": true,
|
|
199
|
+
"plan_level": true,
|
|
200
|
+
"task_level": false,
|
|
201
|
+
"max_concurrent_agents": 3,
|
|
202
|
+
"min_plans_for_parallel": 2,
|
|
203
|
+
"use_teams": false
|
|
204
|
+
},
|
|
205
|
+
"planning": {
|
|
206
|
+
"commit_docs": true,
|
|
207
|
+
"max_tasks_per_plan": 3,
|
|
208
|
+
"search_gitignored": false
|
|
209
|
+
},
|
|
210
|
+
"git": {
|
|
211
|
+
"branching": "none",
|
|
212
|
+
"commit_format": "{type}({phase}-{plan}): {description}",
|
|
213
|
+
"phase_branch_template": "plan-build-run/phase-{phase}-{slug}",
|
|
214
|
+
"milestone_branch_template": "plan-build-run/{milestone}-{slug}",
|
|
215
|
+
"mode": "enabled"
|
|
216
|
+
},
|
|
217
|
+
"gates": {
|
|
218
|
+
"confirm_project": true,
|
|
219
|
+
"confirm_roadmap": true,
|
|
220
|
+
"confirm_plan": true,
|
|
221
|
+
"confirm_execute": false,
|
|
222
|
+
"confirm_transition": true,
|
|
223
|
+
"issues_review": true
|
|
224
|
+
},
|
|
225
|
+
"safety": {
|
|
226
|
+
"always_confirm_destructive": true,
|
|
227
|
+
"always_confirm_external_services": true
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
```
|
|
231
|
+
**CRITICAL — DO NOT SKIP: Write .active-skill NOW.** Write `.planning/.active-skill` with text "begin"
|
|
232
|
+
- Write CLAUDE.md integration block (see Step 3d-claude below) using the project name gathered in Step 2
|
|
233
|
+
- Skip to Step 4 (Research Decision)
|
|
234
|
+
- Tell the user: "Quick start selected. Using all defaults — you can adjust later with `/pbr:settings`."
|
|
235
|
+
|
|
236
|
+
**If user selects "Custom setup":** proceed to Step 3 normally.
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
122
240
|
### Step 3: Workflow Preferences (inline)
|
|
123
241
|
|
|
124
242
|
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
243
|
|
|
244
|
+
**3-model. Model Profile:**
|
|
245
|
+
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`.
|
|
246
|
+
|
|
247
|
+
Use AskUserQuestion:
|
|
248
|
+
question: "Which model profile should agents use?"
|
|
249
|
+
header: "Models"
|
|
250
|
+
options:
|
|
251
|
+
- label: "Balanced (Recommended)"
|
|
252
|
+
description: "Sonnet for most agents, Haiku for synthesizer. Good quality/cost tradeoff."
|
|
253
|
+
- label: "Quality"
|
|
254
|
+
description: "Opus for executor and planner, Sonnet for others. Best results, highest cost."
|
|
255
|
+
- label: "Budget"
|
|
256
|
+
description: "Haiku for most agents. Fastest and cheapest, but lower quality."
|
|
257
|
+
|
|
258
|
+
Apply the selected profile to the models block in config.json:
|
|
259
|
+
- **Balanced**: executor=sonnet, researcher=sonnet, planner=sonnet, verifier=sonnet, synthesizer=haiku, context_window_tokens=200000, agent_checkpoint_pct=50, extended_context=false
|
|
260
|
+
- **Quality**: executor=opus, researcher=sonnet, planner=opus, verifier=sonnet, synthesizer=sonnet, context_window_tokens=1000000, agent_checkpoint_pct=65, extended_context=true
|
|
261
|
+
- **Budget**: executor=haiku, researcher=haiku, planner=sonnet, verifier=haiku, synthesizer=haiku, context_window_tokens=200000, agent_checkpoint_pct=50, extended_context=false
|
|
262
|
+
|
|
263
|
+
**3-features. Workflow Features:**
|
|
264
|
+
Use AskUserQuestion:
|
|
265
|
+
question: "Any extra workflow features?"
|
|
266
|
+
header: "Features"
|
|
267
|
+
multiSelect: true
|
|
268
|
+
options:
|
|
269
|
+
- label: "Auto-continue"
|
|
270
|
+
description: "Automatically chain commands (build → review → next phase) without prompting"
|
|
271
|
+
- label: "TDD mode"
|
|
272
|
+
description: "Write tests before implementation in executor agents"
|
|
273
|
+
- label: "Strict gates"
|
|
274
|
+
description: "Require verification AND review to pass before advancing phases"
|
|
275
|
+
- label: "Git branching"
|
|
276
|
+
description: "Create a branch per phase for cleaner PR history"
|
|
277
|
+
|
|
278
|
+
Apply selections:
|
|
279
|
+
- **Auto-continue**: Set `features.auto_continue: true`
|
|
280
|
+
- **TDD mode**: Set `features.tdd_mode: true`
|
|
281
|
+
- **Strict gates**: Set `gates.verification: true`, `gates.review: true`, `gates.plan_approval: true`
|
|
282
|
+
- **Git branching**: Set `git.branching: "phase"`
|
|
283
|
+
|
|
126
284
|
**3a. Mode:**
|
|
285
|
+
**CRITICAL -- DO NOT SKIP**: Present the following choice to the user via AskUserQuestion before proceeding:
|
|
127
286
|
Use the **toggle-confirm** pattern from `skills/shared/gate-prompts.md`:
|
|
128
287
|
question: "How do you want to work?"
|
|
129
288
|
header: "Mode"
|
|
@@ -134,6 +293,7 @@ Use the **toggle-confirm** pattern from `skills/shared/gate-prompts.md`:
|
|
|
134
293
|
- `autonomous` — auto-proceed, only stop for critical decisions
|
|
135
294
|
|
|
136
295
|
**3b. Depth:**
|
|
296
|
+
**CRITICAL -- DO NOT SKIP**: Present the following choice to the user via AskUserQuestion before proceeding:
|
|
137
297
|
Use the **depth-select** pattern from `skills/shared/gate-prompts.md`:
|
|
138
298
|
question: "How thorough should planning be?"
|
|
139
299
|
- `quick` — 3-5 phases, skip research, ~50% cheaper
|
|
@@ -141,6 +301,7 @@ Use the **depth-select** pattern from `skills/shared/gate-prompts.md`:
|
|
|
141
301
|
- `comprehensive` — 8-12 phases, full deep research, ~2x cost
|
|
142
302
|
|
|
143
303
|
**3c. Parallelization:**
|
|
304
|
+
**CRITICAL -- DO NOT SKIP**: Present the following choice to the user via AskUserQuestion before proceeding:
|
|
144
305
|
Use the **toggle-confirm** pattern from `skills/shared/gate-prompts.md`:
|
|
145
306
|
question: "Run multiple agents in parallel when plans are independent?"
|
|
146
307
|
header: "Parallel"
|
|
@@ -151,6 +312,7 @@ Use the **toggle-confirm** pattern from `skills/shared/gate-prompts.md`:
|
|
|
151
312
|
- `disabled` — sequential execution
|
|
152
313
|
|
|
153
314
|
**3d. Git Branching:**
|
|
315
|
+
**CRITICAL -- DO NOT SKIP**: Present the following choice to the user via AskUserQuestion before proceeding:
|
|
154
316
|
Use the **git-strategy-select** pattern from `skills/shared/gate-prompts.md`:
|
|
155
317
|
question: "Git branching strategy?"
|
|
156
318
|
- `none` (default) — commit to current branch
|
|
@@ -158,6 +320,7 @@ Use the **git-strategy-select** pattern from `skills/shared/gate-prompts.md`:
|
|
|
158
320
|
- `milestone` — create branch per milestone
|
|
159
321
|
|
|
160
322
|
**3e. Commit Planning Docs:**
|
|
323
|
+
**CRITICAL -- DO NOT SKIP**: Present the following choice to the user via AskUserQuestion before proceeding:
|
|
161
324
|
Use the **yes-no** pattern from `skills/shared/gate-prompts.md`:
|
|
162
325
|
question: "Should planning documents (.planning/ directory) be committed to git?"
|
|
163
326
|
options:
|
|
@@ -166,18 +329,69 @@ Use the **yes-no** pattern from `skills/shared/gate-prompts.md`:
|
|
|
166
329
|
- `yes` (default) — commit planning docs
|
|
167
330
|
- `no` — add .planning/ to .gitignore
|
|
168
331
|
|
|
332
|
+
**3d-claude. CLAUDE.md Integration:**
|
|
333
|
+
|
|
334
|
+
Check if a `CLAUDE.md` file exists in the project root.
|
|
335
|
+
|
|
336
|
+
**If it exists**: Read it. If it does NOT already contain a "Plan-Build-Run" section, append the block below.
|
|
337
|
+
**If it does NOT exist**: Create `CLAUDE.md` with the block below.
|
|
338
|
+
|
|
339
|
+
Append/create:
|
|
340
|
+
|
|
341
|
+
```markdown
|
|
342
|
+
## Plan-Build-Run
|
|
343
|
+
|
|
344
|
+
This project uses [Plan-Build-Run](https://github.com/SienkLogic/plan-build-run) for structured development.
|
|
345
|
+
|
|
346
|
+
- Project state: `.planning/STATE.md` (source of truth for current phase and progress)
|
|
347
|
+
- Configuration: `.planning/config.json`
|
|
348
|
+
- Run `/pbr:progress` to see current project state and suggested next action.
|
|
349
|
+
|
|
350
|
+
**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.
|
|
351
|
+
```
|
|
352
|
+
|
|
169
353
|
**After gathering preferences:**
|
|
170
354
|
|
|
171
|
-
**CRITICAL: You MUST create the .planning/ directory and write config.json NOW. Do not proceed without this.**
|
|
355
|
+
**CRITICAL (no hook): You MUST create the .planning/ directory and write config.json NOW. Do not proceed without this.**
|
|
172
356
|
|
|
173
|
-
1. Read the config template from
|
|
174
|
-
2. Apply the user's choices to the template
|
|
357
|
+
1. Read the config template from `${CLAUDE_SKILL_DIR}/templates/config.json.tmpl`
|
|
358
|
+
2. Apply the user's choices to the template (including 3d-claude CLAUDE.md integration)
|
|
175
359
|
3. Create `.planning/` directory
|
|
176
360
|
4. Write `.planning/config.json` with the user's preferences
|
|
177
361
|
|
|
178
362
|
**IMPORTANT**: This step MUST happen BEFORE research (Step 5) because depth controls how many researchers to spawn.
|
|
179
363
|
|
|
180
|
-
**CRITICAL: Write .active-skill NOW.** Write the text "begin" to `.planning/.active-skill` using the Write tool. Verify the file exists before proceeding.
|
|
364
|
+
**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.
|
|
365
|
+
|
|
366
|
+
### Step 3e: Early PROJECT.md Write (durability checkpoint)
|
|
367
|
+
|
|
368
|
+
**CRITICAL: Write a preliminary PROJECT.md NOW to preserve the user's vision on disk.**
|
|
369
|
+
|
|
370
|
+
Write `.planning/PROJECT.md` with the information gathered so far:
|
|
371
|
+
- Project name, description, and type (from Step 2 questioning)
|
|
372
|
+
- Key constraints and technology preferences (from Step 2)
|
|
373
|
+
- Workflow preferences (from Step 3: depth, model profile, ceremony level)
|
|
374
|
+
- Mark it as `status: preliminary` in a comment at the top
|
|
375
|
+
|
|
376
|
+
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:
|
|
377
|
+
|
|
378
|
+
```markdown
|
|
379
|
+
<!-- status: preliminary — will be overwritten in Step 9 with full version -->
|
|
380
|
+
# {Project Name}
|
|
381
|
+
|
|
382
|
+
{Project description from Step 2}
|
|
383
|
+
|
|
384
|
+
## Constraints
|
|
385
|
+
{Key constraints from questioning}
|
|
386
|
+
|
|
387
|
+
## Technology Preferences
|
|
388
|
+
{Tech choices mentioned during questioning}
|
|
389
|
+
|
|
390
|
+
## Workflow Config
|
|
391
|
+
Depth: {depth} | Profile: {model_profile} | Ceremony: {ceremony_level}
|
|
392
|
+
```
|
|
393
|
+
|
|
394
|
+
If `planning.commit_docs` is true, commit: `docs(planning): preliminary PROJECT.md from questioning`
|
|
181
395
|
|
|
182
396
|
---
|
|
183
397
|
|
|
@@ -199,13 +413,24 @@ Based on the depth setting from Step 3, determine the research approach:
|
|
|
199
413
|
- Tell user: "Skipping research phase (depth: quick). Moving straight to requirements."
|
|
200
414
|
|
|
201
415
|
**If depth is `standard` or `comprehensive`:**
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
-
|
|
208
|
-
|
|
416
|
+
|
|
417
|
+
**Auto-mode bypass:** If the `--auto` flag is active or `config.mode === 'autonomous'`:
|
|
418
|
+
- Default to `standard` depth (2 researchers: STACK, FEATURES) unless depth was explicitly set to `comprehensive`
|
|
419
|
+
- Set `gates.confirm_research` to `false` (skip the depth selection gate)
|
|
420
|
+
- Display: "PBR > Auto-mode: advancing to research (standard depth)..."
|
|
421
|
+
- Proceed directly to Step 5
|
|
422
|
+
|
|
423
|
+
**Interactive mode (default):**
|
|
424
|
+
- If `gates.confirm_research` is `true` in config:
|
|
425
|
+
**CRITICAL -- DO NOT SKIP**: Present the following choice to the user via AskUserQuestion before proceeding:
|
|
426
|
+
Use the **yes-no** pattern from `skills/shared/gate-prompts.md`:
|
|
427
|
+
question: "I'd like to research the technology landscape before planning. This helps create better plans. Proceed with research?"
|
|
428
|
+
options:
|
|
429
|
+
- label: "Yes" description: "Run research agents (recommended for standard/comprehensive)"
|
|
430
|
+
- label: "No" description: "Skip research, move straight to requirements"
|
|
431
|
+
- If user selects "No": skip to Step 7
|
|
432
|
+
- If user selects "Yes": proceed to Step 5
|
|
433
|
+
- If `gates.confirm_research` is `false` (default): proceed directly to Step 5 (research runs automatically)
|
|
209
434
|
|
|
210
435
|
---
|
|
211
436
|
|
|
@@ -213,13 +438,33 @@ Use the **yes-no** pattern from `skills/shared/gate-prompts.md`:
|
|
|
213
438
|
|
|
214
439
|
Spawn parallel Task() subagents for research. Each researcher writes to `.planning/research/`.
|
|
215
440
|
|
|
216
|
-
**CRITICAL: Create .planning/research/ directory NOW before spawning researchers. Do NOT skip this step.**
|
|
441
|
+
**CRITICAL (no hook): Create .planning/research/ directory NOW before spawning researchers. Do NOT skip this step.**
|
|
442
|
+
|
|
443
|
+
**Learnings injection (opt-in):** Before spawning researchers, check if global learnings exist:
|
|
444
|
+
|
|
445
|
+
```bash
|
|
446
|
+
node ${CLAUDE_PLUGIN_ROOT}/scripts/pbr-tools.js learnings query --tags "stack,tech" 2>/dev/null
|
|
447
|
+
```
|
|
448
|
+
|
|
449
|
+
If the command succeeds AND returns a non-empty JSON array:
|
|
450
|
+
|
|
451
|
+
- Write the results to a temp file:
|
|
452
|
+
|
|
453
|
+
```bash
|
|
454
|
+
node ${CLAUDE_PLUGIN_ROOT}/scripts/pbr-tools.js learnings query --tags "stack,tech" > /tmp/pbr-learnings-$$.md
|
|
455
|
+
```
|
|
456
|
+
|
|
457
|
+
- Note the temp file path as `{learnings_temp_path}`
|
|
458
|
+
- Add this file to the researcher's `files_to_read` block (see below)
|
|
459
|
+
|
|
460
|
+
If no learnings exist or the command fails: skip injection silently.
|
|
217
461
|
|
|
218
462
|
**For each research topic, spawn a Task():**
|
|
219
463
|
|
|
220
464
|
```
|
|
221
465
|
Task({
|
|
222
466
|
subagent_type: "pbr:researcher",
|
|
467
|
+
// After researcher: check for ## RESEARCH COMPLETE or ## RESEARCH BLOCKED
|
|
223
468
|
prompt: <see researcher prompt template below>
|
|
224
469
|
})
|
|
225
470
|
```
|
|
@@ -232,7 +477,19 @@ Task({
|
|
|
232
477
|
|
|
233
478
|
For each researcher, construct the prompt by reading the template and filling in placeholders:
|
|
234
479
|
|
|
235
|
-
Read
|
|
480
|
+
Read `${CLAUDE_SKILL_DIR}/templates/researcher-prompt.md.tmpl` for the prompt structure.
|
|
481
|
+
|
|
482
|
+
**Prepend this block to the researcher prompt before sending:**
|
|
483
|
+
|
|
484
|
+
```
|
|
485
|
+
<files_to_read>
|
|
486
|
+
CRITICAL (no hook): Read these files BEFORE any other action:
|
|
487
|
+
1. .planning/REQUIREMENTS.md — scoped requirements (if exists)
|
|
488
|
+
{if learnings_temp_path exists}2. {learnings_temp_path} — cross-project learnings (tech stack patterns from past PBR projects){/if}
|
|
489
|
+
</files_to_read>
|
|
490
|
+
```
|
|
491
|
+
|
|
492
|
+
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
493
|
|
|
237
494
|
**Placeholders to fill:**
|
|
238
495
|
- `{project name from questioning}` — project name gathered in Step 2
|
|
@@ -269,10 +526,24 @@ Read `skills/begin/templates/researcher-prompt.md.tmpl` for the prompt structure
|
|
|
269
526
|
- What performance issues are typical?
|
|
270
527
|
- What security concerns exist?
|
|
271
528
|
|
|
529
|
+
**Domain-specific template injection:**
|
|
530
|
+
|
|
531
|
+
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:
|
|
532
|
+
|
|
533
|
+
| Topic | Template Path |
|
|
534
|
+
|-------|--------------|
|
|
535
|
+
| STACK | `${CLAUDE_PLUGIN_ROOT}/templates/research-outputs/STACK.md.tmpl` |
|
|
536
|
+
| FEATURES | `${CLAUDE_PLUGIN_ROOT}/templates/research-outputs/FEATURES.md.tmpl` |
|
|
537
|
+
| ARCHITECTURE | `${CLAUDE_PLUGIN_ROOT}/templates/research-outputs/ARCHITECTURE.md.tmpl` |
|
|
538
|
+
| PITFALLS | `${CLAUDE_PLUGIN_ROOT}/templates/research-outputs/PITFALLS.md.tmpl` |
|
|
539
|
+
|
|
540
|
+
Include the resolved absolute path in the researcher prompt (resolve `${CLAUDE_PLUGIN_ROOT}` before sending).
|
|
541
|
+
|
|
272
542
|
**Parallelization:**
|
|
273
543
|
- Spawn ALL researchers in parallel (multiple Task() calls in one response)
|
|
274
544
|
- Use `run_in_background: true` for each researcher
|
|
275
|
-
-
|
|
545
|
+
- **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.
|
|
546
|
+
- Before spawning, display to the user: `◆ Spawning {N} researchers in parallel...`
|
|
276
547
|
- While waiting, display progress to the user:
|
|
277
548
|
- After spawning: list of topics being researched
|
|
278
549
|
- Periodically (every ~30s): check `TaskOutput` with `block: false` for each agent and report status
|
|
@@ -280,11 +551,55 @@ Read `skills/begin/templates/researcher-prompt.md.tmpl` for the prompt structure
|
|
|
280
551
|
- When all complete: "All {N} researchers finished. Proceeding to synthesis."
|
|
281
552
|
- Wait for all to complete before proceeding
|
|
282
553
|
|
|
554
|
+
#### Partial Failure Detection
|
|
555
|
+
|
|
556
|
+
After all researchers complete (or timeout), check which research files were actually produced:
|
|
557
|
+
|
|
558
|
+
1. List files in `.planning/research/` (excluding SUMMARY.md)
|
|
559
|
+
2. Map against expected files for the current depth level:
|
|
560
|
+
- **standard**: expect STACK.md, FEATURES.md (2 files)
|
|
561
|
+
- **comprehensive**: expect STACK.md, FEATURES.md, ARCHITECTURE.md, PITFALLS.md (4 files)
|
|
562
|
+
3. Count successes and failures
|
|
563
|
+
4. For files that exist, also check for `## RESEARCH BLOCKED` marker -- count these as "completed with issues" (still pass to synthesizer, which handles them)
|
|
564
|
+
|
|
565
|
+
**If all expected files present:** proceed to Step 6.
|
|
566
|
+
|
|
567
|
+
**If some files missing (partial failure):**
|
|
568
|
+
|
|
569
|
+
Display: "Research partially complete: {N} of {M} researchers succeeded."
|
|
570
|
+
List the missing dimensions.
|
|
571
|
+
|
|
572
|
+
**Auto-mode:** Display "Continuing with gaps (auto-mode). Gaps will be noted in synthesis." and proceed to Step 6.
|
|
573
|
+
|
|
574
|
+
**Interactive mode:**
|
|
575
|
+
**CRITICAL -- DO NOT SKIP**: Present the following choice to the user via AskUserQuestion before proceeding:
|
|
576
|
+
Use AskUserQuestion with 3 options:
|
|
577
|
+
|
|
578
|
+
```
|
|
579
|
+
question: "Research partially complete. {N} of {M} researchers succeeded. How would you like to proceed?"
|
|
580
|
+
header: "Partial Research"
|
|
581
|
+
options:
|
|
582
|
+
- label: "Continue with gaps"
|
|
583
|
+
description: "Proceed to synthesis -- gaps will be noted in SUMMARY.md"
|
|
584
|
+
- label: "Retry failed"
|
|
585
|
+
description: "Re-spawn only the failed researchers, then re-check"
|
|
586
|
+
- label: "Abort research"
|
|
587
|
+
description: "Skip research entirely and move to requirements"
|
|
588
|
+
```
|
|
589
|
+
|
|
590
|
+
- If "Continue with gaps": proceed to Step 6
|
|
591
|
+
- If "Retry failed": re-spawn only the failed researchers (same Task() pattern), then re-run partial failure detection
|
|
592
|
+
- If "Abort research": skip to Step 7 (Requirements Scoping)
|
|
593
|
+
|
|
283
594
|
---
|
|
284
595
|
|
|
285
596
|
### Step 6: Synthesis (delegated to subagent)
|
|
286
597
|
|
|
287
|
-
|
|
598
|
+
**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.
|
|
599
|
+
|
|
600
|
+
**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.
|
|
601
|
+
|
|
602
|
+
After all researchers complete (and review gate passed or bypassed), display to the user: `◆ Spawning synthesizer...`
|
|
288
603
|
|
|
289
604
|
Spawn a synthesis agent:
|
|
290
605
|
|
|
@@ -301,12 +616,43 @@ Task({
|
|
|
301
616
|
|
|
302
617
|
#### Synthesis Prompt Template
|
|
303
618
|
|
|
304
|
-
Read
|
|
619
|
+
Read `${CLAUDE_SKILL_DIR}/templates/synthesis-prompt.md.tmpl` for the prompt structure.
|
|
620
|
+
|
|
621
|
+
**Prepend this block to the synthesizer prompt before sending:**
|
|
622
|
+
```
|
|
623
|
+
<files_to_read>
|
|
624
|
+
CRITICAL (no hook): Read these files BEFORE any other action:
|
|
625
|
+
1. .planning/research/*.md — all research output files from Step 5
|
|
626
|
+
</files_to_read>
|
|
627
|
+
```
|
|
628
|
+
|
|
629
|
+
**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.
|
|
630
|
+
|
|
631
|
+
**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
632
|
|
|
306
633
|
**Placeholders to fill:**
|
|
307
|
-
- `{List all .planning/research/*.md files that were created}` — list the research files produced in Step 5
|
|
634
|
+
- `{List all .planning/research/*.md files that were created}` — list the research files produced in Step 5 (for reference, but synthesizer uses dynamic discovery)
|
|
635
|
+
|
|
636
|
+
**After the synthesizer completes**, check for completion markers in the Task() output:
|
|
308
637
|
|
|
309
|
-
|
|
638
|
+
- If `## SYNTHESIS COMPLETE` is present: proceed normally
|
|
639
|
+
- If `## SYNTHESIS BLOCKED` is present: warn the user and offer to proceed without synthesis:
|
|
640
|
+
```
|
|
641
|
+
⚠ Synthesizer reported BLOCKED: {reason from output}
|
|
642
|
+
Research files are still available individually in .planning/research/.
|
|
643
|
+
```
|
|
644
|
+
**CRITICAL -- DO NOT SKIP**: Present the following choice to the user via AskUserQuestion before proceeding:
|
|
645
|
+
Use AskUserQuestion (pattern: yes-no from `skills/shared/gate-prompts.md`):
|
|
646
|
+
question: "Synthesis was blocked. Continue without synthesis?"
|
|
647
|
+
header: "Blocked"
|
|
648
|
+
options:
|
|
649
|
+
- label: "Yes" description: "Proceed to requirements — use individual research files"
|
|
650
|
+
- label: "No" description: "Stop and investigate"
|
|
651
|
+
- If "Yes": proceed to Step 7 without SUMMARY.md
|
|
652
|
+
- If "No": stop and suggest reviewing .planning/research/ files
|
|
653
|
+
- If neither marker is found: warn the user that the synthesizer may not have completed successfully, but proceed if SUMMARY.md exists on disk
|
|
654
|
+
|
|
655
|
+
If synthesis succeeded, display:
|
|
310
656
|
```
|
|
311
657
|
✓ Research synthesis complete — see .planning/research/SUMMARY.md
|
|
312
658
|
```
|
|
@@ -315,6 +661,8 @@ Read `skills/begin/templates/synthesis-prompt.md.tmpl` for the prompt structure.
|
|
|
315
661
|
|
|
316
662
|
### Step 7: Requirements Scoping (inline)
|
|
317
663
|
|
|
664
|
+
**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.
|
|
665
|
+
|
|
318
666
|
Present research findings (if any) and interactively scope requirements with the user.
|
|
319
667
|
|
|
320
668
|
**7a. Present findings:**
|
|
@@ -335,11 +683,10 @@ For each category, present the features and ask the user to classify each:
|
|
|
335
683
|
- **Out of scope** — Will NOT be built
|
|
336
684
|
|
|
337
685
|
**7d. Assign REQ-IDs:**
|
|
338
|
-
For each committed requirement, assign an ID
|
|
339
|
-
- `
|
|
340
|
-
- `
|
|
341
|
-
- `
|
|
342
|
-
- `UI-02`: Mobile-responsive layout
|
|
686
|
+
For each committed requirement, assign an ID using the REQ-F/REQ-NF schema:
|
|
687
|
+
- Functional requirements: `REQ-F-xxx` numbered sequentially within each category (REQ-F-001, REQ-F-002, ...)
|
|
688
|
+
- Non-functional requirements: `REQ-NF-xxx` numbered sequentially across all NFR categories (REQ-NF-001, REQ-NF-002, ...)
|
|
689
|
+
- Examples: `REQ-F-001: User can log in with Discord OAuth`, `REQ-NF-001: Page loads in <2s on 4G`
|
|
343
690
|
|
|
344
691
|
Each requirement must be:
|
|
345
692
|
- **User-centric** — describes a capability from the user's perspective
|
|
@@ -348,9 +695,9 @@ Each requirement must be:
|
|
|
348
695
|
|
|
349
696
|
**7e. Write REQUIREMENTS.md:**
|
|
350
697
|
|
|
351
|
-
**CRITICAL: Write REQUIREMENTS.md NOW. The roadmap planner depends on this file.**
|
|
698
|
+
**CRITICAL (no hook): Write REQUIREMENTS.md NOW. The roadmap planner depends on this file.**
|
|
352
699
|
|
|
353
|
-
Read the template from
|
|
700
|
+
Read the template from `${CLAUDE_SKILL_DIR}/templates/REQUIREMENTS.md.tmpl` and write `.planning/REQUIREMENTS.md` with:
|
|
354
701
|
- All v1 requirements grouped by category
|
|
355
702
|
- All v2 requirements with deferral reasons
|
|
356
703
|
- Out-of-scope items with rationale
|
|
@@ -360,39 +707,55 @@ Read the template from `skills/begin/templates/REQUIREMENTS.md.tmpl` and write `
|
|
|
360
707
|
|
|
361
708
|
### Step 8: Roadmap Generation (delegated to subagent)
|
|
362
709
|
|
|
363
|
-
Display to the user:
|
|
710
|
+
Display to the user: `◆ Spawning roadmapper...`
|
|
364
711
|
|
|
365
|
-
Spawn the
|
|
712
|
+
Spawn the roadmapper agent:
|
|
366
713
|
|
|
367
714
|
```
|
|
368
715
|
Task({
|
|
369
|
-
subagent_type: "pbr:
|
|
716
|
+
subagent_type: "pbr:roadmapper",
|
|
717
|
+
// After roadmapper: check for ## ROADMAP CREATED or ## ROADMAP BLOCKED
|
|
370
718
|
prompt: <roadmap prompt>
|
|
371
719
|
})
|
|
372
720
|
```
|
|
373
721
|
|
|
374
|
-
**NOTE**: The `pbr:
|
|
722
|
+
**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
723
|
|
|
376
724
|
**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
725
|
|
|
378
726
|
#### Roadmap Prompt Template
|
|
379
727
|
|
|
380
|
-
Read
|
|
728
|
+
Read `${CLAUDE_SKILL_DIR}/templates/roadmap-prompt.md.tmpl` for the prompt structure.
|
|
729
|
+
|
|
730
|
+
**Prepend this block to the roadmap planner prompt before sending:**
|
|
731
|
+
```
|
|
732
|
+
<files_to_read>
|
|
733
|
+
CRITICAL (no hook): Read these files BEFORE any other action:
|
|
734
|
+
1. .planning/REQUIREMENTS.md — scoped requirements for phase planning
|
|
735
|
+
2. .planning/research/SUMMARY.md — research synthesis (if exists)
|
|
736
|
+
</files_to_read>
|
|
737
|
+
```
|
|
381
738
|
|
|
382
739
|
**Placeholders to fill:**
|
|
383
740
|
- `{project name}` — project name from Step 2
|
|
384
741
|
- `{description}` — project description from Step 2
|
|
385
742
|
- `{quick|standard|comprehensive}` — depth setting from Step 3
|
|
386
743
|
|
|
387
|
-
**After the
|
|
744
|
+
**After the roadmapper completes:**
|
|
745
|
+
- **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
746
|
- Read `.planning/ROADMAP.md`
|
|
389
747
|
- Count the phases from the roadmap content
|
|
390
748
|
- 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.
|
|
749
|
+
- Verify each phase section includes `**Requirements:**` and `**Success Criteria:**` fields.
|
|
750
|
+
- Verify a `## Milestones` index section exists near the top of the roadmap.
|
|
391
751
|
- Display:
|
|
392
752
|
```
|
|
393
753
|
✓ Roadmap created — {N} phases in milestone "{name}"
|
|
394
754
|
```
|
|
395
|
-
- If `
|
|
755
|
+
- **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.
|
|
756
|
+
- If `gates.confirm_roadmap` is true in config (interactive mode):
|
|
757
|
+
**CRITICAL -- DO NOT SKIP**: Present the following choice to the user via AskUserQuestion before proceeding:
|
|
758
|
+
Use the **approve-revise-abort** pattern from `skills/shared/gate-prompts.md`:
|
|
396
759
|
question: "Approve this roadmap?"
|
|
397
760
|
options:
|
|
398
761
|
- label: "Approve" description: "Proceed with this roadmap"
|
|
@@ -408,26 +771,35 @@ Read `skills/begin/templates/roadmap-prompt.md.tmpl` for the prompt structure.
|
|
|
408
771
|
|
|
409
772
|
Write the project state files from templates:
|
|
410
773
|
|
|
411
|
-
**CRITICAL: You MUST write all 5 state initialization files (Steps 9a-9e). Do NOT skip any.**
|
|
774
|
+
**CRITICAL (no hook): You MUST write all 5 state initialization files (Steps 9a-9e). Do NOT skip any.**
|
|
412
775
|
|
|
413
|
-
**CRITICAL: Write PROJECT.md NOW. Do NOT skip this step.**
|
|
776
|
+
**CRITICAL (no hook): Write PROJECT.md NOW. Do NOT skip this step.**
|
|
414
777
|
|
|
415
778
|
**9a. Write PROJECT.md:**
|
|
416
|
-
1. Read
|
|
779
|
+
1. Read `${CLAUDE_SKILL_DIR}/templates/PROJECT.md.tmpl`
|
|
417
780
|
2. Fill in:
|
|
418
781
|
- `{project_name}` — from questioning
|
|
419
782
|
- `{2-3 sentences}` — project description from questioning
|
|
420
783
|
- `{ONE sentence}` — core value statement
|
|
421
|
-
-
|
|
784
|
+
- **Requirements** section with three lifecycle categories:
|
|
785
|
+
- `### Active` — v1 requirements committed for this milestone
|
|
786
|
+
- `### Validated` — requirements completed and verified (empty at project start)
|
|
787
|
+
- `### Out of Scope` — deferred and excluded items with rationale
|
|
788
|
+
- **Key Decisions** table with Outcome column:
|
|
789
|
+
```markdown
|
|
790
|
+
| Decision | Rationale | Date | Outcome |
|
|
791
|
+
|----------|-----------|------|---------|
|
|
792
|
+
| {decision} | {why} | {date} | Pending |
|
|
793
|
+
```
|
|
794
|
+
All initial decisions start with Outcome = `Pending`. Updated to `Good`, `Revisit`, or `Pending` during `/pbr:milestone complete` (see PROJECT.md Evolution Review step).
|
|
422
795
|
- Technical context and constraints
|
|
423
|
-
- Initial key decisions from the questioning conversation
|
|
424
796
|
3. Write to `.planning/PROJECT.md`
|
|
425
797
|
4. Ensure the `## Milestones` section is filled in with the project name and phase count from the roadmap
|
|
426
798
|
|
|
427
|
-
**CRITICAL: Write STATE.md NOW. Do NOT skip this step.**
|
|
799
|
+
**CRITICAL (no hook): Write STATE.md NOW. Do NOT skip this step.**
|
|
428
800
|
|
|
429
801
|
**9b. Write STATE.md:**
|
|
430
|
-
1. Read
|
|
802
|
+
1. Read `${CLAUDE_SKILL_DIR}/templates/STATE.md.tmpl`
|
|
431
803
|
2. Fill in:
|
|
432
804
|
- `{date}` — today's date
|
|
433
805
|
- `{total}` — total phase count from roadmap
|
|
@@ -438,59 +810,77 @@ Write the project state files from templates:
|
|
|
438
810
|
4. Fill in the `## Milestone` section with the project name and total phase count
|
|
439
811
|
5. **STATE.md size limit**: Follow size limit enforcement rules in `skills/shared/state-update.md` (150 lines max).
|
|
440
812
|
|
|
441
|
-
**CRITICAL: Write
|
|
813
|
+
**CRITICAL (no hook): Write context to PROJECT.md NOW. Do NOT skip this step.**
|
|
814
|
+
|
|
815
|
+
**9c. Write context to PROJECT.md ## Context section:**
|
|
816
|
+
1. Read `${CLAUDE_SKILL_DIR}/templates/project-CONTEXT.md.tmpl`
|
|
817
|
+
2. Fill in from the questioning conversation:
|
|
818
|
+
- Locked Decisions: all technology choices and architecture decisions from Step 2
|
|
819
|
+
- User Constraints: budget, timeline, skill level, hosting, team
|
|
820
|
+
- Deferred Ideas: out-of-scope items identified in Step 7c scoping
|
|
821
|
+
- Claude's Discretion: any areas where user said "you decide"
|
|
822
|
+
3. Append to `.planning/PROJECT.md` under a `## Context` section with subsections:
|
|
823
|
+
- `### Locked Decisions`
|
|
824
|
+
- `### User Constraints`
|
|
825
|
+
- `### Deferred Ideas`
|
|
826
|
+
4. Do NOT write a separate CONTEXT.md file. All context lives in PROJECT.md now.
|
|
827
|
+
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"
|
|
828
|
+
|
|
829
|
+
**9d. Initialize velocity and session fields in STATE.md frontmatter:**
|
|
830
|
+
Add these fields to the STATE.md YAML frontmatter during initialization:
|
|
831
|
+
- `velocity: {}` — empty object, populated as plans are executed
|
|
832
|
+
- `session_last: ""` — set when `/pbr:pause-work` is run
|
|
833
|
+
- `session_stopped_at: ""` — set when `/pbr:pause-work` is run
|
|
834
|
+
- `session_resume: ""` — set when `/pbr:pause-work` is run
|
|
835
|
+
|
|
836
|
+
**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.
|
|
837
|
+
**Backwards compat:** If `.planning/HISTORY.md` exists from a prior project, it is ignored during new project initialization.
|
|
838
|
+
|
|
839
|
+
**CRITICAL (no hook): Create phase directories NOW. Do NOT skip this step.**
|
|
442
840
|
|
|
443
|
-
**
|
|
444
|
-
|
|
841
|
+
**9e. Create phase directories:**
|
|
842
|
+
For each phase in the roadmap, create the directory structure:
|
|
843
|
+
```
|
|
844
|
+
.planning/phases/01-{slug}/
|
|
845
|
+
.planning/phases/02-{slug}/
|
|
846
|
+
...
|
|
847
|
+
```
|
|
445
848
|
|
|
446
|
-
|
|
447
|
-
# Project Context
|
|
849
|
+
Where `{slug}` is the phase name in kebab-case (e.g., `project-setup`, `authentication`).
|
|
448
850
|
|
|
449
|
-
|
|
450
|
-
|
|
851
|
+
**9f. Create KNOWLEDGE.md:**
|
|
852
|
+
Write `.planning/KNOWLEDGE.md` with empty knowledge base tables:
|
|
451
853
|
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
854
|
+
```markdown
|
|
855
|
+
---
|
|
856
|
+
updated: "{today's date}"
|
|
857
|
+
---
|
|
858
|
+
# Project Knowledge Base
|
|
455
859
|
|
|
456
|
-
|
|
457
|
-
{Budget, timeline, skill level, hosting, team size}
|
|
860
|
+
Aggregated knowledge from milestone completions. Auto-maintained by milestone-learnings.js.
|
|
458
861
|
|
|
459
|
-
##
|
|
460
|
-
{Features explicitly moved to v2 or out-of-scope}
|
|
862
|
+
## Key Rules
|
|
461
863
|
|
|
462
|
-
|
|
463
|
-
|------|----------------|
|
|
464
|
-
| {feature} | {reason} |
|
|
465
|
-
```
|
|
864
|
+
Architectural rules and constraints discovered during development.
|
|
466
865
|
|
|
467
|
-
|
|
866
|
+
| ID | Rule | Source | Date |
|
|
867
|
+
|----|------|--------|------|
|
|
468
868
|
|
|
469
|
-
|
|
470
|
-
Create `.planning/HISTORY.md` with an initial entry:
|
|
869
|
+
## Patterns
|
|
471
870
|
|
|
472
|
-
|
|
473
|
-
# Project History
|
|
871
|
+
Reusable patterns and conventions established across phases.
|
|
474
872
|
|
|
475
|
-
|
|
873
|
+
| ID | Pattern | Source | Date |
|
|
874
|
+
|----|---------|--------|------|
|
|
476
875
|
|
|
477
|
-
|
|
478
|
-
- Depth: {depth}, Mode: {mode}
|
|
479
|
-
- Roadmap: {N} phases planned
|
|
480
|
-
```
|
|
876
|
+
## Lessons Learned
|
|
481
877
|
|
|
482
|
-
|
|
878
|
+
What worked, what didn't, and deferred items for future consideration.
|
|
483
879
|
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
```
|
|
487
|
-
.planning/phases/01-{slug}/
|
|
488
|
-
.planning/phases/02-{slug}/
|
|
489
|
-
...
|
|
880
|
+
| ID | Lesson | Type | Source | Date |
|
|
881
|
+
|----|--------|------|--------|------|
|
|
490
882
|
```
|
|
491
883
|
|
|
492
|
-
Where `{slug}` is the phase name in kebab-case (e.g., `project-setup`, `authentication`).
|
|
493
|
-
|
|
494
884
|
---
|
|
495
885
|
|
|
496
886
|
### Step 10: Git Setup (inline)
|
|
@@ -512,15 +902,18 @@ If `gates.confirm_project` is true in config:
|
|
|
512
902
|
- Phases: {count} phases in roadmap
|
|
513
903
|
- Requirements: {count} v1 requirements
|
|
514
904
|
- Config: depth={depth}, mode={mode}
|
|
515
|
-
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
-
|
|
521
|
-
|
|
522
|
-
-
|
|
523
|
-
-
|
|
905
|
+
- If `gates.confirm_commit_docs` is `true` OR this is a **brownfield** project (existing code detected in Step 1):
|
|
906
|
+
**CRITICAL -- DO NOT SKIP**: Present the following choice to the user via AskUserQuestion before proceeding:
|
|
907
|
+
Use the **yes-no** pattern from `skills/shared/gate-prompts.md`:
|
|
908
|
+
question: "Everything look good? Commit the planning docs?"
|
|
909
|
+
options:
|
|
910
|
+
- label: "Yes" description: "Stage and commit .planning/ files"
|
|
911
|
+
- label: "No" description: "Let me review and adjust first"
|
|
912
|
+
- If user selects "Yes" and `planning.commit_docs` is true:
|
|
913
|
+
- Stage `.planning/` files (excluding research/ if gitignored)
|
|
914
|
+
- Commit: `chore: initialize plan-build-run project planning`
|
|
915
|
+
- If user selects "No": let user review and adjust
|
|
916
|
+
- If `gates.confirm_commit_docs` is `false` AND greenfield: skip the question and commit automatically if `planning.commit_docs` is true
|
|
524
917
|
|
|
525
918
|
---
|
|
526
919
|
|
|
@@ -530,51 +923,14 @@ Delete `.planning/.active-skill` if it exists. This must happen on all paths (su
|
|
|
530
923
|
|
|
531
924
|
## Completion
|
|
532
925
|
|
|
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}**
|
|
926
|
+
After all steps complete, present the final summary using the stage banner format from Read `references/ui-brand.md`:
|
|
543
927
|
|
|
544
|
-
|
|
928
|
+
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
929
|
|
|
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
|
-
```
|
|
930
|
+
**Auto-mode chaining to first phase discussion:** If `config.mode === 'autonomous'`, after displaying the completion banner, automatically chain to the first phase discussion:
|
|
931
|
+
- Display: "PBR > Auto-mode: advancing to phase 1 discussion..."
|
|
932
|
+
- Write `.planning/.auto-next` with `/pbr:discuss-phase 1` to trigger auto-continue hook
|
|
933
|
+
- 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
934
|
|
|
579
935
|
---
|
|
580
936
|
|
|
@@ -584,7 +940,7 @@ Then use the "Next Up" routing block:
|
|
|
584
940
|
If a researcher Task() fails or times out:
|
|
585
941
|
- Note which topic wasn't researched
|
|
586
942
|
- Continue with available research
|
|
587
|
-
- Display: `⚠ Research on {topic} failed. Proceeding without it. You can re-research during /pbr:plan.`
|
|
943
|
+
- Display: `⚠ Research on {topic} failed. Proceeding without it. You can re-research during /pbr:plan-phase.`
|
|
588
944
|
|
|
589
945
|
### User wants to restart
|
|
590
946
|
If user says they want to start over mid-flow:
|
|
@@ -605,7 +961,7 @@ Cannot create .planning/ directory.
|
|
|
605
961
|
|
|
606
962
|
---
|
|
607
963
|
|
|
608
|
-
## Files Created by /pbr:
|
|
964
|
+
## Files Created by /pbr:new-project
|
|
609
965
|
|
|
610
966
|
| File | Purpose | When |
|
|
611
967
|
|------|---------|------|
|
|
@@ -614,8 +970,7 @@ Cannot create .planning/ directory.
|
|
|
614
970
|
| `.planning/research/SUMMARY.md` | Research synthesis | Step 6 (if research enabled) |
|
|
615
971
|
| `.planning/REQUIREMENTS.md` | Scoped requirements | Step 7 |
|
|
616
972
|
| `.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 |
|
|
973
|
+
| `.planning/PROJECT.md` | Project overview + context (locked decisions, constraints, deferred ideas) | Step 9 |
|
|
974
|
+
| `.planning/STATE.md` | Current state tracker + history log | Step 9 |
|
|
975
|
+
| `.planning/KNOWLEDGE.md` | Project knowledge base (rules, patterns, lessons) | Step 9 |
|
|
621
976
|
| `.planning/phases/NN-*/` | Phase directories | Step 9 |
|