@sienklogic/plan-build-run 2.18.1 → 2.19.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1265 -296
- package/CLAUDE.md +56 -34
- package/LICENSE +2 -1
- package/README.md +412 -177
- package/bin/install.js +2752 -0
- package/dashboard/bin/cli.cjs +96 -0
- package/dashboard/bin/stop.cjs +129 -0
- package/dashboard/eslint.config.js +37 -0
- package/dashboard/index.html +20 -0
- package/dashboard/package.json +27 -25
- package/dashboard/server/index.js +142 -0
- package/dashboard/server/lib/frontmatter.js +92 -0
- package/dashboard/server/middleware/static.js +35 -0
- package/dashboard/server/package.json +16 -0
- package/dashboard/server/routes/agents.js +213 -0
- package/dashboard/server/routes/config.js +64 -0
- package/dashboard/server/routes/health.js +95 -0
- package/dashboard/server/routes/incidents.js +78 -0
- package/dashboard/server/routes/intel.js +69 -0
- package/dashboard/server/routes/memory.js +107 -0
- package/dashboard/server/routes/planning.js +234 -0
- package/dashboard/server/routes/progress.js +77 -0
- package/dashboard/server/routes/projects.js +36 -0
- package/dashboard/server/routes/requirements.js +40 -0
- package/dashboard/server/routes/roadmap.js +69 -0
- package/dashboard/server/routes/sessions.js +70 -0
- package/dashboard/server/routes/status.js +25 -0
- package/dashboard/server/routes/telemetry.js +214 -0
- package/dashboard/server/services/file-watcher.js +105 -0
- package/dashboard/server/services/planning-reader.js +741 -0
- package/dashboard/server/test/cli.test.js +34 -0
- package/dashboard/server/test/frontmatter.test.js +104 -0
- package/dashboard/server/test/isolation.test.js +32 -0
- package/dashboard/server/test/planning-reader.test.js +151 -0
- package/dashboard/server/test/routes.test.js +91 -0
- package/dashboard/server/test/ws.test.js +81 -0
- package/dashboard/server/ws.js +96 -0
- package/dashboard/src/App.jsx +165 -0
- package/dashboard/src/components/charts/BudgetBars.jsx +42 -0
- package/dashboard/src/components/charts/ContextRadar.jsx +34 -0
- package/dashboard/src/components/charts/PhaseDonut.jsx +66 -0
- package/dashboard/src/components/charts/SuccessTrend.jsx +45 -0
- package/dashboard/src/components/charts/TokenChart.jsx +55 -0
- package/dashboard/src/components/charts/index.js +5 -0
- package/dashboard/src/components/config/CfgSection.jsx +93 -0
- package/dashboard/src/components/layout/Header.jsx +89 -0
- package/dashboard/src/components/layout/ProjectSwitcher.jsx +160 -0
- package/dashboard/src/components/layout/Sidebar.jsx +161 -0
- package/dashboard/src/components/ui/AutoModeBanner.jsx +138 -0
- package/dashboard/src/components/ui/BackButton.jsx +27 -0
- package/dashboard/src/components/ui/Badge.jsx +27 -0
- package/dashboard/src/components/ui/Card.jsx +23 -0
- package/dashboard/src/components/ui/ChartTooltip.jsx +48 -0
- package/dashboard/src/components/ui/CheckpointBox.jsx +110 -0
- package/dashboard/src/components/ui/CodeBlock.jsx +27 -0
- package/dashboard/src/components/ui/ConfidenceBadge.jsx +20 -0
- package/dashboard/src/components/ui/ConfirmModal.jsx +161 -0
- package/dashboard/src/components/ui/ConnectionBanner.jsx +60 -0
- package/dashboard/src/components/ui/ErrorBoundary.jsx +106 -0
- package/dashboard/src/components/ui/ErrorBox.jsx +107 -0
- package/dashboard/src/components/ui/KeyValue.jsx +33 -0
- package/dashboard/src/components/ui/LoadingSkeleton.jsx +84 -0
- package/dashboard/src/components/ui/MetricCard.jsx +58 -0
- package/dashboard/src/components/ui/NextUpBlock.jsx +92 -0
- package/dashboard/src/components/ui/NumberInput.jsx +44 -0
- package/dashboard/src/components/ui/PBRBanner.jsx +47 -0
- package/dashboard/src/components/ui/PipelineView.jsx +130 -0
- package/dashboard/src/components/ui/ProgressBar.jsx +28 -0
- package/dashboard/src/components/ui/ProgressDisplay.jsx +47 -0
- package/dashboard/src/components/ui/QualityGateBadge.jsx +15 -0
- package/dashboard/src/components/ui/SectionTitle.jsx +35 -0
- package/dashboard/src/components/ui/SelectInput.jsx +45 -0
- package/dashboard/src/components/ui/StatusDot.jsx +51 -0
- package/dashboard/src/components/ui/StatusSymbol.jsx +49 -0
- package/dashboard/src/components/ui/TabBar.jsx +41 -0
- package/dashboard/src/components/ui/TextInput.jsx +42 -0
- package/dashboard/src/components/ui/Toast.jsx +117 -0
- package/dashboard/src/components/ui/Toggle.jsx +70 -0
- package/dashboard/src/components/ui/index.js +29 -0
- package/dashboard/src/hooks/useDocumentTitle.js +16 -0
- package/dashboard/src/hooks/useFetch.js +50 -0
- package/dashboard/src/hooks/useToast.jsx +43 -0
- package/dashboard/src/hooks/useWebSocket.js +103 -0
- package/dashboard/src/lib/api.js +112 -0
- package/dashboard/src/lib/configSchema.js +189 -0
- package/dashboard/src/lib/constants.js +22 -0
- package/dashboard/src/main.jsx +15 -0
- package/dashboard/src/pages/AgentsPage.jsx +191 -0
- package/dashboard/src/pages/ConfigPage.jsx +298 -0
- package/dashboard/src/pages/HooksPage.jsx +412 -0
- package/dashboard/src/pages/IncidentsPage.jsx +135 -0
- package/dashboard/src/pages/IntelPage.jsx +193 -0
- package/dashboard/src/pages/LiveFeed.jsx +274 -0
- package/dashboard/src/pages/MemoryPage.jsx +107 -0
- package/dashboard/src/pages/OnboardingPage.jsx +117 -0
- package/dashboard/src/pages/Overview.jsx +360 -0
- package/dashboard/src/pages/PhaseDetailView.jsx +216 -0
- package/dashboard/src/pages/PlanningPage.jsx +181 -0
- package/dashboard/src/pages/ProgressPage.jsx +249 -0
- package/dashboard/src/pages/ResearchPage.jsx +129 -0
- package/dashboard/src/pages/RoadmapPage.jsx +251 -0
- package/dashboard/src/pages/SessionsPage.jsx +117 -0
- package/dashboard/src/pages/Telemetry.jsx +166 -0
- package/dashboard/src/pages/planning/DecisionsTab.jsx +153 -0
- package/dashboard/src/pages/planning/FilesTab.jsx +420 -0
- package/dashboard/src/pages/planning/MilestoneDetail.jsx +319 -0
- package/dashboard/src/pages/planning/MilestonesTab.jsx +151 -0
- package/dashboard/src/pages/planning/NotesTab.jsx +251 -0
- package/dashboard/src/pages/planning/PhasesTab.jsx +218 -0
- package/dashboard/src/pages/planning/QuickTab.jsx +50 -0
- package/dashboard/src/pages/planning/ResearchTab.jsx +103 -0
- package/dashboard/src/pages/planning/TodosTab.jsx +297 -0
- package/dashboard/src/theme/ThemeProvider.jsx +38 -0
- package/dashboard/src/theme/tokens.js +17 -0
- package/dashboard/tests/components/ConfirmModal.test.jsx +179 -0
- package/dashboard/tests/components/ConnectionBanner.test.jsx +37 -0
- package/dashboard/tests/components/ErrorBoundary.test.jsx +59 -0
- package/dashboard/tests/components/LoadingSkeleton.test.jsx +46 -0
- package/dashboard/tests/components/ToastContainer.test.jsx +47 -0
- package/dashboard/tests/components/Toggle.test.jsx +61 -0
- package/dashboard/tests/hooks/useFetch.test.jsx +77 -0
- package/dashboard/tests/hooks/useToast.test.jsx +78 -0
- package/dashboard/tests/hooks/useWebSocket.test.jsx +128 -0
- package/dashboard/tests/pages/ConfigPage.test.jsx +199 -0
- package/dashboard/tests/pages/PlanningPage.test.jsx +119 -0
- package/dashboard/tests/pages/planning/FilesTab.test.jsx +198 -0
- package/dashboard/tests/pages/planning/NotesTab.test.jsx +178 -0
- package/dashboard/tests/pages/planning/TodosTab.test.jsx +188 -0
- package/dashboard/tests/performance.test.jsx +46 -0
- package/dashboard/tests/routes/config.test.js +98 -0
- package/dashboard/tests/routes/health.test.js +40 -0
- package/dashboard/tests/routes/planning.test.js +112 -0
- package/dashboard/tests/routes/roadmap.test.js +91 -0
- package/dashboard/tests/routes/status.test.js +131 -0
- package/dashboard/tests/server/planning-reader.test.js +153 -0
- package/dashboard/tests/setup.js +7 -0
- package/dashboard/vite.config.js +41 -0
- package/package.json +55 -40
- package/plan-build-run/bin/config-schema.json +1420 -0
- package/plugins/pbr/.claude-plugin/plugin.json +1 -1
- package/plugins/pbr/CLAUDE.md +19 -0
- package/plugins/pbr/UI-CONSISTENCY-GAPS.md +1 -1
- package/plugins/pbr/agents/advisor-researcher.md +100 -0
- package/plugins/pbr/agents/audit.md +205 -89
- package/plugins/pbr/agents/codebase-mapper.md +158 -23
- package/plugins/pbr/agents/debugger.md +222 -30
- package/plugins/pbr/agents/dev-sync.md +206 -0
- package/plugins/pbr/agents/executor.md +717 -39
- package/plugins/pbr/agents/general.md +71 -6
- package/plugins/pbr/agents/integration-checker.md +146 -30
- package/plugins/pbr/agents/intel-updater.md +332 -0
- package/plugins/pbr/agents/nyquist-auditor.md +253 -0
- package/plugins/pbr/agents/plan-checker.md +270 -61
- package/plugins/pbr/agents/planner.md +440 -42
- package/plugins/pbr/agents/researcher.md +223 -36
- package/plugins/pbr/agents/roadmapper.md +397 -0
- package/plugins/pbr/agents/synthesizer.md +170 -26
- package/plugins/pbr/agents/ui-checker.md +203 -0
- package/plugins/pbr/agents/ui-researcher.md +224 -0
- package/plugins/pbr/agents/verifier.md +495 -47
- package/plugins/pbr/commands/add-phase.md +75 -0
- package/plugins/pbr/commands/add-todo.md +8 -0
- package/plugins/pbr/commands/audit-fix.md +5 -0
- package/plugins/pbr/commands/audit-milestone.md +8 -0
- package/plugins/pbr/commands/autonomous.md +5 -0
- package/plugins/pbr/commands/backlog.md +6 -0
- package/plugins/pbr/commands/check-todos.md +8 -0
- package/plugins/pbr/commands/complete-milestone.md +8 -0
- package/plugins/pbr/commands/config.md +1 -1
- package/plugins/pbr/commands/discuss-phase.md +6 -0
- package/plugins/pbr/commands/do.md +5 -0
- package/plugins/pbr/commands/execute-phase.md +6 -0
- package/plugins/pbr/commands/fast.md +6 -0
- package/plugins/pbr/commands/forensics.md +6 -0
- package/plugins/pbr/commands/import.md +1 -1
- package/plugins/pbr/commands/insert-phase.md +65 -0
- package/plugins/pbr/commands/intel.md +5 -0
- package/plugins/pbr/commands/join-discord.md +11 -0
- package/plugins/pbr/commands/list-phase-assumptions.md +5 -0
- package/plugins/pbr/commands/map-codebase.md +6 -0
- package/plugins/pbr/commands/milestone-summary.md +6 -0
- package/plugins/pbr/commands/new-milestone.md +8 -0
- package/plugins/pbr/commands/new-project.md +6 -0
- package/plugins/pbr/commands/pause-work.md +5 -0
- package/plugins/pbr/commands/plan-milestone-gaps.md +7 -0
- package/plugins/pbr/commands/plan-phase.md +6 -0
- package/plugins/pbr/commands/plant-seed.md +6 -0
- package/plugins/pbr/commands/profile-user.md +5 -0
- package/plugins/pbr/commands/profile.md +5 -0
- package/plugins/pbr/commands/progress.md +6 -0
- package/plugins/pbr/commands/quick.md +1 -1
- package/plugins/pbr/commands/reapply-patches.md +47 -0
- package/plugins/pbr/commands/release.md +6 -0
- package/plugins/pbr/commands/remove-phase.md +66 -0
- package/plugins/pbr/commands/research-phase.md +59 -0
- package/plugins/pbr/commands/resume-work.md +5 -0
- package/plugins/pbr/commands/seed.md +6 -0
- package/plugins/pbr/commands/session-report.md +5 -0
- package/plugins/pbr/commands/set-profile.md +6 -0
- package/plugins/pbr/commands/settings.md +5 -0
- package/plugins/pbr/commands/setup.md +1 -1
- package/plugins/pbr/commands/ship.md +5 -0
- package/plugins/pbr/commands/stats.md +6 -0
- package/plugins/pbr/commands/test.md +5 -0
- package/plugins/pbr/commands/thread.md +6 -0
- package/plugins/pbr/commands/todo.md +1 -1
- package/plugins/pbr/commands/ui-phase.md +5 -0
- package/plugins/pbr/commands/ui-review.md +5 -0
- package/plugins/pbr/commands/undo.md +5 -0
- package/plugins/pbr/commands/update.md +37 -0
- package/plugins/pbr/commands/validate-phase.md +5 -0
- package/plugins/pbr/commands/verify-work.md +6 -0
- package/plugins/pbr/dashboard/package-lock.json +6 -0
- package/plugins/pbr/dist/architecture-guard.js +59 -0
- package/plugins/pbr/dist/audit-dimensions.js +556 -0
- package/plugins/pbr/dist/auto-continue.js +277 -0
- package/plugins/pbr/dist/block-skill-self-read.js +124 -0
- package/plugins/pbr/dist/check-agent-state-write.js +63 -0
- package/plugins/pbr/dist/check-config-change.js +162 -0
- package/plugins/pbr/dist/check-cross-plugin-sync.js +93 -0
- package/plugins/pbr/dist/check-dangerous-commands.js +193 -0
- package/plugins/pbr/dist/check-direct-state-write.js +37 -0
- package/plugins/pbr/dist/check-doc-sprawl.js +102 -0
- package/plugins/pbr/dist/check-phase-boundary.js +191 -0
- package/plugins/pbr/dist/check-plan-format.js +241 -0
- package/plugins/pbr/dist/check-read-first.js +345 -0
- package/plugins/pbr/dist/check-roadmap-sync.js +503 -0
- package/plugins/pbr/dist/check-skill-workflow.js +354 -0
- package/plugins/pbr/dist/check-state-sync.js +658 -0
- package/plugins/pbr/dist/check-subagent-output.js +452 -0
- package/plugins/pbr/dist/check-summary-gate.js +199 -0
- package/plugins/pbr/dist/context-bridge.js +425 -0
- package/plugins/pbr/dist/context-budget-check.js +442 -0
- package/plugins/pbr/dist/context-quality.js +271 -0
- package/plugins/pbr/dist/enforce-context-budget.js +138 -0
- package/plugins/pbr/dist/enforce-pbr-workflow.js +277 -0
- package/plugins/pbr/dist/event-handler.js +202 -0
- package/plugins/pbr/dist/event-logger.js +125 -0
- package/plugins/pbr/dist/feedback-loop.js +172 -0
- package/plugins/pbr/dist/graph-update.js +422 -0
- package/plugins/pbr/dist/hook-logger.js +114 -0
- package/plugins/pbr/dist/hook-server-client.js +361 -0
- package/plugins/pbr/dist/hook-server.js +606 -0
- package/plugins/pbr/dist/hooks-schema.json +87 -0
- package/plugins/pbr/dist/instructions-loaded.js +173 -0
- package/plugins/pbr/dist/intercept-plan-mode.js +81 -0
- package/plugins/pbr/dist/log-notification.js +131 -0
- package/plugins/pbr/dist/log-subagent.js +349 -0
- package/plugins/pbr/dist/log-tool-failure.js +140 -0
- package/plugins/pbr/dist/milestone-learnings.js +569 -0
- package/plugins/pbr/dist/pbr-tools.js +2044 -0
- package/plugins/pbr/dist/post-bash-triage.js +154 -0
- package/plugins/pbr/dist/post-compact.js +135 -0
- package/plugins/pbr/dist/post-hoc.js +286 -0
- package/plugins/pbr/dist/post-write-dispatch.js +279 -0
- package/plugins/pbr/dist/post-write-quality.js +208 -0
- package/plugins/pbr/dist/pre-bash-dispatch.js +218 -0
- package/plugins/pbr/dist/pre-skill-dispatch.js +114 -0
- package/plugins/pbr/dist/pre-task-dispatch.js +297 -0
- package/plugins/pbr/dist/pre-write-dispatch.js +234 -0
- package/plugins/pbr/dist/progress-tracker.js +198 -0
- package/plugins/pbr/dist/prompt-guard.js +114 -0
- package/plugins/pbr/dist/prompt-routing.js +209 -0
- package/plugins/pbr/dist/quick-status.js +179 -0
- package/plugins/pbr/dist/record-incident.js +37 -0
- package/plugins/pbr/dist/run-hook.js +144 -0
- package/plugins/pbr/dist/session-cleanup.js +683 -0
- package/plugins/pbr/dist/session-tracker.js +124 -0
- package/plugins/pbr/dist/status-line.js +847 -0
- package/plugins/pbr/dist/suggest-compact.js +315 -0
- package/plugins/pbr/dist/sync-context-to-claude.js +100 -0
- package/plugins/pbr/dist/task-completed.js +206 -0
- package/plugins/pbr/dist/track-context-budget.js +432 -0
- package/plugins/pbr/dist/track-user-gates.js +88 -0
- package/plugins/pbr/dist/trust-tracker.js +193 -0
- package/plugins/pbr/dist/validate-commit.js +271 -0
- package/plugins/pbr/dist/validate-skill-args.js +222 -0
- package/plugins/pbr/dist/validate-task.js +301 -0
- package/plugins/pbr/dist/worktree-create.js +144 -0
- package/plugins/pbr/dist/worktree-remove.js +147 -0
- package/plugins/pbr/hooks/hooks.json +143 -60
- package/plugins/pbr/references/agent-contracts.md +40 -9
- package/plugins/pbr/references/agent-teams.md +3 -3
- package/plugins/pbr/references/archive/checkpoints.md +189 -0
- package/plugins/pbr/references/archive/context-quality-tiers.md +45 -0
- package/plugins/pbr/references/archive/hook-ordering.md +89 -0
- package/plugins/pbr/references/archive/limitations.md +106 -0
- package/plugins/pbr/references/archive/pbr-rules.md +194 -0
- package/plugins/pbr/references/archive/pbr-tools-cli.md +415 -0
- package/plugins/pbr/references/archive/pretooluse-jsonl-behavior.md +58 -0
- package/plugins/pbr/references/archive/signal-files.md +41 -0
- package/plugins/pbr/references/archive/tmux-setup.md +288 -0
- package/plugins/pbr/references/archive/verification-matrix.md +34 -0
- package/plugins/pbr/references/archive/verification-patterns.md +277 -0
- package/plugins/pbr/references/archive/worktree-sparse-checkout.md +86 -0
- package/plugins/pbr/references/behavioral-contexts.md +53 -0
- package/plugins/pbr/references/checkpoints.md +723 -104
- package/plugins/pbr/references/config-reference.md +472 -10
- package/plugins/pbr/references/continuation-format.md +1 -0
- package/plugins/pbr/references/decimal-phase-calculation.md +65 -0
- package/plugins/pbr/references/deviation-rules.md +12 -0
- package/plugins/pbr/references/git-integration.md +110 -27
- package/plugins/pbr/references/git-planning-commit.md +35 -0
- package/plugins/pbr/references/model-profile-resolution.md +34 -0
- package/plugins/pbr/references/model-profiles.md +90 -7
- package/plugins/pbr/references/model-selection.md +1 -1
- package/plugins/pbr/references/node-repair.md +48 -0
- package/plugins/pbr/references/plan-authoring.md +65 -0
- package/plugins/pbr/references/plan-format.md +161 -10
- package/plugins/pbr/references/questioning.md +138 -49
- package/plugins/pbr/references/reading-verification.md +4 -4
- package/plugins/pbr/references/tdd.md +263 -0
- package/plugins/pbr/references/ui-brand.md +449 -0
- package/plugins/pbr/references/verification-overrides.md +39 -0
- package/plugins/pbr/references/verification-patterns.md +529 -113
- package/plugins/pbr/scripts/architecture-guard.js +59 -0
- package/plugins/pbr/scripts/audit-checks/behavioral-compliance.js +2098 -0
- package/plugins/pbr/scripts/audit-checks/error-analysis.js +989 -0
- package/plugins/pbr/scripts/audit-checks/feature-verification.js +723 -0
- package/plugins/pbr/scripts/audit-checks/index.js +433 -0
- package/plugins/pbr/scripts/audit-checks/infrastructure.js +816 -0
- package/plugins/pbr/scripts/audit-checks/quality-metrics.js +452 -0
- package/plugins/pbr/scripts/audit-checks/session-quality.js +980 -0
- package/plugins/pbr/scripts/audit-checks/si-agent-hook-config-checks.js +466 -0
- package/plugins/pbr/scripts/audit-checks/si-cross-cutting-checks.js +272 -0
- package/plugins/pbr/scripts/audit-checks/si-skill-checks.js +424 -0
- package/plugins/pbr/scripts/audit-checks/workflow-compliance.js +1211 -0
- package/plugins/pbr/scripts/audit-dimensions.js +556 -0
- package/plugins/pbr/scripts/auto-continue.js +198 -31
- package/plugins/pbr/scripts/block-skill-self-read.js +124 -0
- package/plugins/pbr/scripts/check-agent-state-write.js +63 -0
- package/plugins/pbr/scripts/check-config-change.js +162 -0
- package/plugins/pbr/scripts/check-cross-plugin-sync.js +93 -0
- package/plugins/pbr/scripts/check-dangerous-commands.js +18 -5
- package/plugins/pbr/scripts/check-direct-state-write.js +37 -0
- package/plugins/pbr/scripts/check-phase-boundary.js +3 -8
- package/plugins/pbr/scripts/check-plan-format.js +166 -277
- package/plugins/pbr/scripts/check-read-first.js +345 -0
- package/plugins/pbr/scripts/check-roadmap-sync.js +167 -10
- package/plugins/pbr/scripts/check-skill-workflow.js +24 -27
- package/plugins/pbr/scripts/check-state-sync.js +339 -215
- package/plugins/pbr/scripts/check-subagent-output.js +338 -276
- package/plugins/pbr/scripts/check-summary-gate.js +2 -1
- package/plugins/pbr/scripts/config-schema.json +1247 -95
- package/plugins/pbr/scripts/context-bridge.js +425 -0
- package/plugins/pbr/scripts/context-budget-check.js +169 -14
- package/plugins/pbr/scripts/context-quality.js +271 -0
- package/plugins/pbr/scripts/enforce-context-budget.js +138 -0
- package/plugins/pbr/scripts/enforce-pbr-workflow.js +277 -0
- package/plugins/pbr/scripts/event-handler.js +128 -77
- package/plugins/pbr/scripts/event-logger.js +58 -25
- package/plugins/pbr/scripts/feedback-loop.js +172 -0
- package/plugins/pbr/scripts/graph-update.js +422 -0
- package/plugins/pbr/scripts/hook-logger.js +69 -35
- package/plugins/pbr/scripts/hook-server-client.js +361 -0
- package/plugins/pbr/scripts/hook-server.js +606 -0
- package/plugins/pbr/scripts/hooks-schema.json +13 -5
- package/plugins/pbr/scripts/instructions-loaded.js +173 -0
- package/plugins/pbr/scripts/intent-router.cjs +147 -0
- package/plugins/pbr/scripts/intercept-plan-mode.js +52 -18
- package/plugins/pbr/scripts/lib/alternatives.js +203 -0
- package/plugins/pbr/scripts/lib/audit.js +65 -0
- package/plugins/pbr/scripts/lib/auto-cleanup.js +221 -0
- package/plugins/pbr/scripts/lib/auto-verify.js +103 -0
- package/plugins/pbr/scripts/lib/autonomy.js +91 -0
- package/plugins/pbr/scripts/lib/build.js +719 -0
- package/plugins/pbr/scripts/lib/ci-fix-loop.js +228 -0
- package/plugins/pbr/scripts/lib/circuit-state.js +133 -0
- package/plugins/pbr/scripts/lib/commands.js +483 -0
- package/plugins/pbr/scripts/lib/completion.js +377 -0
- package/plugins/pbr/scripts/lib/compound.js +216 -0
- package/plugins/pbr/scripts/lib/config.js +1315 -0
- package/plugins/pbr/scripts/lib/context.js +254 -0
- package/plugins/pbr/scripts/lib/contextual-help.js +207 -0
- package/plugins/pbr/scripts/lib/convention-detector.js +413 -0
- package/plugins/pbr/scripts/lib/core.js +1569 -0
- package/plugins/pbr/scripts/lib/dashboard-launch.js +364 -0
- package/plugins/pbr/scripts/lib/data-hygiene.js +179 -0
- package/plugins/pbr/scripts/lib/decision-extraction.js +183 -0
- package/plugins/pbr/scripts/lib/decisions.js +194 -0
- package/plugins/pbr/scripts/lib/dependency-break.js +147 -0
- package/plugins/pbr/scripts/lib/format-validators.js +1050 -0
- package/plugins/pbr/scripts/lib/frontmatter.js +302 -0
- package/plugins/pbr/scripts/lib/gates/advisories.js +129 -0
- package/plugins/pbr/scripts/lib/gates/build-dependency.js +115 -0
- package/plugins/pbr/scripts/lib/gates/build-executor.js +104 -0
- package/plugins/pbr/scripts/lib/gates/doc-existence.js +46 -0
- package/plugins/pbr/scripts/lib/gates/helpers.js +93 -0
- package/plugins/pbr/scripts/lib/gates/inline-execution.js +185 -0
- package/plugins/pbr/scripts/lib/gates/milestone-complete.js +136 -0
- package/plugins/pbr/scripts/lib/gates/milestone-summary.js +119 -0
- package/plugins/pbr/scripts/lib/gates/multi-phase-loader.js +147 -0
- package/plugins/pbr/scripts/lib/gates/plan-executor.js +36 -0
- package/plugins/pbr/scripts/lib/gates/plan-validation.js +114 -0
- package/plugins/pbr/scripts/lib/gates/quick-executor.js +76 -0
- package/plugins/pbr/scripts/lib/gates/review-planner.js +61 -0
- package/plugins/pbr/scripts/lib/gates/review-verifier.js +69 -0
- package/plugins/pbr/scripts/lib/gates/rich-agent-context.js +143 -0
- package/plugins/pbr/scripts/lib/gates/user-confirmation.js +93 -0
- package/plugins/pbr/scripts/lib/graph-cli.js +89 -0
- package/plugins/pbr/scripts/lib/graph.js +553 -0
- package/plugins/pbr/scripts/lib/health-checks.js +107 -0
- package/plugins/pbr/scripts/lib/health-phase06.js +120 -0
- package/plugins/pbr/scripts/lib/health.js +133 -0
- package/plugins/pbr/scripts/lib/help.js +151 -0
- package/plugins/pbr/scripts/lib/history.js +150 -0
- package/plugins/pbr/scripts/lib/hypothesis-runner.js +127 -0
- package/plugins/pbr/scripts/lib/impact-analysis.js +319 -0
- package/plugins/pbr/scripts/lib/incidents.js +190 -0
- package/plugins/pbr/scripts/lib/init.js +643 -0
- package/plugins/pbr/scripts/lib/insights-parser.js +320 -0
- package/plugins/pbr/scripts/lib/intel.js +653 -0
- package/plugins/pbr/scripts/lib/learnings.js +511 -0
- package/plugins/pbr/scripts/lib/local-llm/client.js +237 -0
- package/plugins/pbr/scripts/lib/local-llm/health.js +12 -0
- package/plugins/pbr/scripts/lib/local-llm/index.js +89 -0
- package/plugins/pbr/scripts/lib/local-llm/metrics.js +20 -0
- package/plugins/pbr/scripts/lib/local-llm/operations/classify-artifact.js +4 -0
- package/plugins/pbr/scripts/lib/local-llm/operations/classify-commit.js +4 -0
- package/plugins/pbr/scripts/lib/local-llm/operations/classify-error.js +4 -0
- package/plugins/pbr/scripts/lib/local-llm/operations/classify-file-intent.js +4 -0
- package/plugins/pbr/scripts/lib/local-llm/operations/score-source.js +72 -0
- package/plugins/pbr/scripts/lib/local-llm/operations/summarize-context.js +62 -0
- package/plugins/pbr/scripts/lib/local-llm/operations/triage-test-output.js +12 -0
- package/plugins/pbr/scripts/lib/local-llm/operations/validate-task.js +4 -0
- package/plugins/pbr/scripts/lib/local-llm/router.js +101 -0
- package/plugins/pbr/scripts/lib/local-llm/shadow.js +60 -0
- package/plugins/pbr/scripts/lib/local-llm/threshold-tuner.js +118 -0
- package/plugins/pbr/scripts/lib/migrate.js +298 -0
- package/plugins/pbr/scripts/lib/milestone.js +306 -0
- package/plugins/pbr/scripts/lib/negative-knowledge.js +194 -0
- package/plugins/pbr/scripts/lib/notification-throttle.js +141 -0
- package/plugins/pbr/scripts/lib/onboarding-generator.js +288 -0
- package/plugins/pbr/scripts/lib/parse-args.js +134 -0
- package/plugins/pbr/scripts/lib/pattern-routing.js +55 -0
- package/plugins/pbr/scripts/lib/patterns.js +272 -0
- package/plugins/pbr/scripts/lib/perf.js +190 -0
- package/plugins/pbr/scripts/lib/phase.js +1027 -0
- package/plugins/pbr/scripts/lib/pid-lock.js +154 -0
- package/plugins/pbr/scripts/lib/post-hoc.js +160 -0
- package/plugins/pbr/scripts/lib/pre-commit-checks.js +220 -0
- package/plugins/pbr/scripts/lib/pre-research.js +133 -0
- package/plugins/pbr/scripts/lib/preview.js +174 -0
- package/plugins/pbr/scripts/lib/progress-visualization.js +296 -0
- package/plugins/pbr/scripts/lib/quick-init.js +131 -0
- package/plugins/pbr/scripts/lib/reference.js +236 -0
- package/plugins/pbr/scripts/lib/requirements.js +153 -0
- package/plugins/pbr/scripts/lib/resolve-root.js +66 -0
- package/plugins/pbr/scripts/lib/reverse-spec.js +259 -0
- package/plugins/pbr/scripts/lib/roadmap.js +1113 -0
- package/plugins/pbr/scripts/lib/security-scan.js +200 -0
- package/plugins/pbr/scripts/lib/session-briefing.js +895 -0
- package/plugins/pbr/scripts/lib/skill-section.js +99 -0
- package/plugins/pbr/scripts/lib/smart-next-task.js +207 -0
- package/plugins/pbr/scripts/lib/snapshot-manager.js +232 -0
- package/plugins/pbr/scripts/lib/spec-diff.js +209 -0
- package/plugins/pbr/scripts/lib/spec-engine.js +189 -0
- package/plugins/pbr/scripts/lib/spot-check.js +642 -0
- package/plugins/pbr/scripts/lib/state-queue.js +171 -0
- package/plugins/pbr/scripts/lib/state.js +1187 -0
- package/plugins/pbr/scripts/lib/status-render.js +511 -0
- package/plugins/pbr/scripts/lib/step-verify.js +149 -0
- package/plugins/pbr/scripts/lib/subagent-validators.js +1059 -0
- package/plugins/pbr/scripts/lib/suggest-next.js +435 -0
- package/plugins/pbr/scripts/lib/team-composer.js +87 -0
- package/plugins/pbr/scripts/lib/team-coordinator.js +153 -0
- package/plugins/pbr/scripts/lib/tech-debt-scanner.js +116 -0
- package/plugins/pbr/scripts/lib/template.js +222 -0
- package/plugins/pbr/scripts/lib/templates.js +362 -0
- package/plugins/pbr/scripts/lib/test-cache.js +54 -0
- package/plugins/pbr/scripts/lib/test-selection.js +163 -0
- package/plugins/pbr/scripts/lib/todo.js +300 -0
- package/plugins/pbr/scripts/lib/trust-gate.js +84 -0
- package/plugins/pbr/scripts/lib/verify.js +1473 -0
- package/plugins/pbr/scripts/lib/wiring-check.js +196 -0
- package/plugins/pbr/scripts/log-notification.js +131 -0
- package/plugins/pbr/scripts/log-subagent.js +203 -18
- package/plugins/pbr/scripts/log-tool-failure.js +60 -8
- package/plugins/pbr/scripts/milestone-learnings.js +569 -0
- package/plugins/pbr/scripts/package.json +1 -0
- package/plugins/pbr/scripts/pbr-tools.js +1833 -1167
- package/plugins/pbr/scripts/post-bash-triage.js +154 -0
- package/plugins/pbr/scripts/post-compact.js +135 -0
- package/plugins/pbr/scripts/post-hoc.js +286 -0
- package/plugins/pbr/scripts/post-write-dispatch.js +237 -31
- package/plugins/pbr/scripts/post-write-quality.js +4 -3
- package/plugins/pbr/scripts/pre-bash-dispatch.js +155 -23
- package/plugins/pbr/scripts/pre-skill-dispatch.js +114 -0
- package/plugins/pbr/scripts/pre-task-dispatch.js +297 -0
- package/plugins/pbr/scripts/pre-write-dispatch.js +171 -47
- package/plugins/pbr/scripts/progress-tracker.js +144 -307
- package/plugins/pbr/scripts/prompt-guard.js +114 -0
- package/plugins/pbr/scripts/prompt-routing.js +209 -0
- package/plugins/pbr/scripts/quick-status.js +179 -0
- package/plugins/pbr/scripts/record-incident.js +37 -0
- package/plugins/pbr/scripts/risk-classifier.cjs +123 -0
- package/plugins/pbr/scripts/run-hook.js +62 -10
- package/plugins/pbr/scripts/session-cleanup.js +458 -29
- package/plugins/pbr/scripts/session-tracker.js +124 -0
- package/plugins/pbr/scripts/status-line.js +591 -32
- package/plugins/pbr/scripts/suggest-compact.js +203 -7
- package/plugins/pbr/scripts/sync-context-to-claude.js +100 -0
- package/plugins/pbr/scripts/task-completed.js +165 -4
- package/plugins/pbr/scripts/test/config.test.js +126 -0
- package/plugins/pbr/scripts/test/cross-platform.test.js +131 -0
- package/plugins/pbr/scripts/test/fixtures/config.json +20 -0
- package/plugins/pbr/scripts/test/fixtures/plan.md +54 -0
- package/plugins/pbr/scripts/test/fixtures/project.md +30 -0
- package/plugins/pbr/scripts/test/fixtures/roadmap.md +55 -0
- package/plugins/pbr/scripts/test/fixtures/state.md +60 -0
- package/plugins/pbr/scripts/test/fixtures/summary.md +35 -0
- package/plugins/pbr/scripts/test/fixtures.test.js +184 -0
- package/plugins/pbr/scripts/test/phase.test.js +142 -0
- package/plugins/pbr/scripts/test/roadmap.test.js +96 -0
- package/plugins/pbr/scripts/test/state.test.js +163 -0
- package/plugins/pbr/scripts/track-context-budget.js +368 -99
- package/plugins/pbr/scripts/track-user-gates.js +88 -0
- package/plugins/pbr/scripts/trust-tracker.js +193 -0
- package/plugins/pbr/scripts/validate-commit.js +97 -26
- package/plugins/pbr/scripts/validate-skill-args.js +87 -15
- package/plugins/pbr/scripts/validate-task.js +112 -626
- package/plugins/pbr/scripts/worktree-create.js +144 -0
- package/plugins/pbr/scripts/worktree-remove.js +147 -0
- package/plugins/pbr/skills/audit/SKILL.md +195 -24
- package/plugins/pbr/skills/audit-fix/SKILL.md +326 -0
- package/plugins/pbr/skills/autonomous/SKILL.md +545 -0
- package/plugins/pbr/skills/backlog/SKILL.md +56 -0
- package/plugins/pbr/skills/begin/SKILL.md +507 -153
- package/plugins/pbr/skills/begin/templates/STATE.md.tmpl +1 -2
- package/plugins/pbr/skills/begin/templates/config.json.tmpl +415 -36
- package/plugins/pbr/skills/begin/templates/researcher-prompt.md.tmpl +28 -0
- package/plugins/pbr/skills/begin/templates/roadmap-prompt.md.tmpl +28 -3
- package/plugins/pbr/skills/begin/templates/synthesis-prompt.md.tmpl +33 -5
- package/plugins/pbr/skills/build/SKILL.md +1040 -354
- package/plugins/pbr/skills/build/templates/continuation-prompt.md.tmpl +26 -0
- package/plugins/pbr/skills/build/templates/executor-prompt.md.tmpl +77 -0
- package/plugins/pbr/skills/build/templates/inline-verifier-prompt.md.tmpl +33 -0
- package/plugins/pbr/skills/config/SKILL.md +111 -9
- package/plugins/pbr/skills/continue/SKILL.md +113 -33
- package/plugins/pbr/skills/dashboard/SKILL.md +21 -9
- package/plugins/pbr/skills/debug/SKILL.md +70 -12
- package/plugins/pbr/skills/debug/templates/continuation-prompt.md.tmpl +12 -1
- package/plugins/pbr/skills/debug/templates/initial-investigation-prompt.md.tmpl +12 -5
- package/plugins/pbr/skills/discuss/SKILL.md +206 -25
- package/plugins/pbr/skills/discuss/templates/CONTEXT.md.tmpl +21 -1
- package/plugins/pbr/skills/do/SKILL.md +119 -24
- package/plugins/pbr/skills/explore/SKILL.md +95 -20
- package/plugins/pbr/skills/fast/SKILL.md +94 -0
- package/plugins/pbr/skills/forensics/SKILL.md +144 -0
- package/plugins/pbr/skills/health/SKILL.md +44 -117
- package/plugins/pbr/skills/help/SKILL.md +83 -101
- package/plugins/pbr/skills/import/SKILL.md +332 -13
- package/plugins/pbr/skills/intel/SKILL.md +131 -0
- package/plugins/pbr/skills/list-phase-assumptions/SKILL.md +231 -0
- package/plugins/pbr/skills/milestone/SKILL.md +421 -263
- package/plugins/pbr/skills/milestone/templates/audit-output.md.tmpl +76 -0
- package/plugins/pbr/skills/milestone/templates/complete-output.md.tmpl +32 -0
- package/plugins/pbr/skills/milestone/templates/edge-cases.md +54 -0
- package/plugins/pbr/skills/milestone/templates/gaps-output.md.tmpl +25 -0
- package/plugins/pbr/skills/milestone/templates/integration-checker-prompt.md.tmpl +25 -0
- package/plugins/pbr/skills/milestone/templates/new-output.md.tmpl +29 -0
- package/plugins/pbr/skills/milestone-summary/SKILL.md +86 -0
- package/plugins/pbr/skills/note/SKILL.md +20 -4
- package/plugins/pbr/skills/pause/SKILL.md +53 -14
- package/plugins/pbr/skills/pause/templates/continue-here.md.tmpl +33 -52
- package/plugins/pbr/skills/plan/SKILL.md +526 -280
- package/plugins/pbr/skills/plan/templates/checker-prompt.md.tmpl +5 -2
- package/plugins/pbr/skills/plan/templates/completion-output.md.tmpl +27 -0
- package/plugins/pbr/skills/plan/templates/planner-prompt.md.tmpl +27 -1
- package/plugins/pbr/skills/plan/templates/revision-prompt.md.tmpl +21 -5
- package/plugins/pbr/skills/profile/SKILL.md +185 -0
- package/plugins/pbr/skills/profile-user/SKILL.md +226 -0
- package/plugins/pbr/skills/quick/SKILL.md +434 -100
- package/plugins/pbr/skills/release/SKILL.md +206 -0
- package/plugins/pbr/skills/resume/SKILL.md +169 -46
- package/plugins/pbr/skills/review/SKILL.md +217 -164
- package/plugins/pbr/skills/review/templates/verifier-prompt.md.tmpl +7 -0
- package/plugins/pbr/skills/scan/SKILL.md +151 -106
- package/plugins/pbr/skills/scan/templates/mapper-prompt.md.tmpl +5 -56
- package/plugins/pbr/skills/seed/SKILL.md +87 -0
- package/plugins/pbr/skills/session-report/SKILL.md +130 -0
- package/plugins/pbr/skills/setup/SKILL.md +149 -202
- package/plugins/pbr/skills/shared/agent-context-enrichment.md +21 -0
- package/plugins/pbr/skills/shared/agent-type-resolution.md +32 -0
- package/plugins/pbr/skills/shared/commit-planning-docs.md +8 -0
- package/plugins/pbr/skills/shared/context-budget.md +66 -1
- package/plugins/pbr/skills/shared/context-loader-task.md +18 -11
- package/plugins/pbr/skills/shared/digest-select.md +2 -2
- package/plugins/pbr/skills/shared/domain-probes.md +1 -1
- package/plugins/pbr/skills/shared/error-reporting.md +38 -60
- package/plugins/pbr/skills/shared/gate-prompts.md +4 -2
- package/plugins/pbr/skills/shared/memory-capture.md +48 -0
- package/plugins/pbr/skills/shared/phase-argument-parsing.md +4 -4
- package/plugins/pbr/skills/shared/revision-loop.md +24 -6
- package/plugins/pbr/skills/shared/state-update.md +47 -54
- package/plugins/pbr/skills/shared/universal-anti-patterns.md +27 -4
- package/plugins/pbr/skills/ship/SKILL.md +155 -0
- package/plugins/pbr/skills/stats/SKILL.md +80 -0
- package/plugins/pbr/skills/status/SKILL.md +184 -119
- package/plugins/pbr/skills/test/SKILL.md +254 -0
- package/plugins/pbr/skills/thread/SKILL.md +73 -0
- package/plugins/pbr/skills/todo/SKILL.md +28 -72
- package/plugins/pbr/skills/ui-phase/SKILL.md +180 -0
- package/plugins/pbr/skills/ui-review/SKILL.md +206 -0
- package/plugins/pbr/skills/undo/SKILL.md +221 -0
- package/plugins/pbr/skills/validate-phase/SKILL.md +362 -0
- package/plugins/pbr/templates/CONTEXT.md.tmpl +45 -20
- package/plugins/pbr/templates/DISCOVERY.md.tmpl +29 -0
- package/plugins/pbr/templates/DISCUSSION-LOG.md.tmpl +49 -0
- package/plugins/pbr/templates/HANDOFF.json.tmpl +30 -0
- package/plugins/pbr/templates/INTEGRATION-REPORT.md.tmpl +18 -2
- package/plugins/pbr/templates/MILESTONE-AUDIT.md.tmpl +44 -0
- package/plugins/pbr/templates/PROJECT.md.tmpl +126 -0
- package/plugins/pbr/templates/REQUIREMENTS.md.tmpl +96 -0
- package/plugins/pbr/templates/RETROSPECTIVE.md.tmpl +43 -0
- package/plugins/pbr/templates/ROADMAP.md.tmpl +108 -14
- package/plugins/pbr/templates/SUMMARY-complex.md.tmpl +133 -0
- package/plugins/pbr/templates/SUMMARY-minimal.md.tmpl +55 -0
- package/plugins/pbr/templates/SUMMARY.md.tmpl +21 -0
- package/plugins/pbr/templates/UAT.md.tmpl +94 -0
- package/plugins/pbr/templates/UI-SPEC.md.tmpl +144 -0
- package/plugins/pbr/templates/VALIDATION.md.tmpl +94 -0
- package/plugins/pbr/templates/VERIFICATION-DETAIL.md.tmpl +49 -13
- package/plugins/pbr/templates/project-CONTEXT.md.tmpl +59 -0
- package/plugins/pbr/templates/research-outputs/ARCHITECTURE.md.tmpl +91 -0
- package/plugins/pbr/templates/research-outputs/FEATURES.md.tmpl +64 -0
- package/plugins/pbr/templates/research-outputs/PITFALLS.md.tmpl +50 -0
- package/plugins/pbr/templates/research-outputs/STACK.md.tmpl +63 -0
- package/plugins/pbr/templates/research-outputs/SUMMARY.md.tmpl +98 -0
- package/scripts/build-hooks.js +61 -0
- package/scripts/check-ci.js +100 -0
- package/scripts/clean-changelog.js +364 -0
- package/scripts/generate-derivatives.js +581 -0
- package/scripts/posttest.js +93 -0
- package/scripts/release.js +262 -0
- package/scripts/run-tests.cjs +29 -0
- package/scripts/test-wrapper.js +43 -0
- package/dashboard/bin/cli.js +0 -25
- package/dashboard/public/css/layout.css +0 -636
- package/dashboard/public/css/status-colors.css +0 -98
- package/dashboard/public/css/tokens.css +0 -59
- package/dashboard/public/js/htmx-title.js +0 -5
- package/dashboard/public/js/sidebar-toggle.js +0 -34
- package/dashboard/public/js/sse-client.js +0 -100
- package/dashboard/public/js/theme-toggle.js +0 -46
- package/dashboard/src/app.js +0 -91
- package/dashboard/src/middleware/current-phase.js +0 -24
- package/dashboard/src/middleware/errorHandler.js +0 -52
- package/dashboard/src/middleware/notFoundHandler.js +0 -9
- package/dashboard/src/repositories/planning.repository.js +0 -130
- package/dashboard/src/routes/events.routes.js +0 -45
- package/dashboard/src/routes/index.routes.js +0 -35
- package/dashboard/src/routes/pages.routes.js +0 -426
- package/dashboard/src/server.js +0 -42
- package/dashboard/src/services/analytics.service.js +0 -141
- package/dashboard/src/services/dashboard.service.js +0 -309
- package/dashboard/src/services/milestone.service.js +0 -222
- package/dashboard/src/services/notes.service.js +0 -50
- package/dashboard/src/services/phase.service.js +0 -232
- package/dashboard/src/services/project.service.js +0 -57
- package/dashboard/src/services/roadmap.service.js +0 -244
- package/dashboard/src/services/sse.service.js +0 -58
- package/dashboard/src/services/todo.service.js +0 -263
- package/dashboard/src/services/watcher.service.js +0 -48
- package/dashboard/src/utils/cache.js +0 -55
- package/dashboard/src/views/analytics.ejs +0 -5
- package/dashboard/src/views/coming-soon.ejs +0 -11
- package/dashboard/src/views/dependencies.ejs +0 -5
- package/dashboard/src/views/error.ejs +0 -20
- package/dashboard/src/views/index.ejs +0 -5
- package/dashboard/src/views/milestone-detail.ejs +0 -5
- package/dashboard/src/views/milestones.ejs +0 -5
- package/dashboard/src/views/notes.ejs +0 -5
- package/dashboard/src/views/partials/analytics-content.ejs +0 -90
- package/dashboard/src/views/partials/breadcrumbs.ejs +0 -14
- package/dashboard/src/views/partials/dashboard-content.ejs +0 -84
- package/dashboard/src/views/partials/dependencies-content.ejs +0 -48
- package/dashboard/src/views/partials/empty-state.ejs +0 -7
- package/dashboard/src/views/partials/footer.ejs +0 -3
- package/dashboard/src/views/partials/head.ejs +0 -30
- package/dashboard/src/views/partials/header.ejs +0 -21
- package/dashboard/src/views/partials/layout-bottom.ejs +0 -6
- package/dashboard/src/views/partials/layout-top.ejs +0 -15
- package/dashboard/src/views/partials/milestone-detail-content.ejs +0 -20
- package/dashboard/src/views/partials/milestones-content.ejs +0 -88
- package/dashboard/src/views/partials/notes-content.ejs +0 -23
- package/dashboard/src/views/partials/phase-content.ejs +0 -193
- package/dashboard/src/views/partials/phase-doc-content.ejs +0 -38
- package/dashboard/src/views/partials/phases-content.ejs +0 -124
- package/dashboard/src/views/partials/roadmap-content.ejs +0 -155
- package/dashboard/src/views/partials/sidebar.ejs +0 -99
- package/dashboard/src/views/partials/todo-create-content.ejs +0 -54
- package/dashboard/src/views/partials/todo-detail-content.ejs +0 -42
- package/dashboard/src/views/partials/todos-content.ejs +0 -94
- package/dashboard/src/views/phase-detail.ejs +0 -5
- package/dashboard/src/views/phase-doc.ejs +0 -5
- package/dashboard/src/views/phases.ejs +0 -5
- package/dashboard/src/views/roadmap.ejs +0 -5
- package/dashboard/src/views/todo-create.ejs +0 -5
- package/dashboard/src/views/todo-detail.ejs +0 -5
- package/dashboard/src/views/todos.ejs +0 -5
- package/plugins/copilot-pbr/CHANGELOG.md +0 -19
- package/plugins/copilot-pbr/README.md +0 -139
- package/plugins/copilot-pbr/agents/audit.agent.md +0 -113
- package/plugins/copilot-pbr/agents/codebase-mapper.agent.md +0 -151
- package/plugins/copilot-pbr/agents/debugger.agent.md +0 -172
- package/plugins/copilot-pbr/agents/executor.agent.md +0 -267
- package/plugins/copilot-pbr/agents/general.agent.md +0 -88
- package/plugins/copilot-pbr/agents/integration-checker.agent.md +0 -119
- package/plugins/copilot-pbr/agents/plan-checker.agent.md +0 -199
- package/plugins/copilot-pbr/agents/planner.agent.md +0 -238
- package/plugins/copilot-pbr/agents/researcher.agent.md +0 -186
- package/plugins/copilot-pbr/agents/synthesizer.agent.md +0 -126
- package/plugins/copilot-pbr/agents/verifier.agent.md +0 -228
- package/plugins/copilot-pbr/hooks/hooks.json +0 -156
- package/plugins/copilot-pbr/plugin.json +0 -30
- package/plugins/copilot-pbr/references/agent-anti-patterns.md +0 -25
- package/plugins/copilot-pbr/references/agent-contracts.md +0 -297
- package/plugins/copilot-pbr/references/agent-interactions.md +0 -135
- package/plugins/copilot-pbr/references/agent-teams.md +0 -55
- package/plugins/copilot-pbr/references/checkpoints.md +0 -158
- package/plugins/copilot-pbr/references/common-bug-patterns.md +0 -14
- package/plugins/copilot-pbr/references/config-reference.md +0 -442
- package/plugins/copilot-pbr/references/continuation-format.md +0 -213
- package/plugins/copilot-pbr/references/deviation-rules.md +0 -113
- package/plugins/copilot-pbr/references/git-integration.md +0 -227
- package/plugins/copilot-pbr/references/integration-patterns.md +0 -118
- package/plugins/copilot-pbr/references/model-profiles.md +0 -100
- package/plugins/copilot-pbr/references/model-selection.md +0 -32
- package/plugins/copilot-pbr/references/pbr-rules.md +0 -195
- package/plugins/copilot-pbr/references/pbr-tools-cli.md +0 -285
- package/plugins/copilot-pbr/references/plan-authoring.md +0 -182
- package/plugins/copilot-pbr/references/plan-format.md +0 -288
- package/plugins/copilot-pbr/references/planning-config.md +0 -214
- package/plugins/copilot-pbr/references/questioning.md +0 -215
- package/plugins/copilot-pbr/references/reading-verification.md +0 -128
- package/plugins/copilot-pbr/references/stub-patterns.md +0 -161
- package/plugins/copilot-pbr/references/subagent-coordination.md +0 -120
- package/plugins/copilot-pbr/references/ui-formatting.md +0 -444
- package/plugins/copilot-pbr/references/verification-patterns.md +0 -199
- package/plugins/copilot-pbr/references/wave-execution.md +0 -96
- package/plugins/copilot-pbr/rules/pbr-workflow.mdc +0 -48
- package/plugins/copilot-pbr/setup.ps1 +0 -93
- package/plugins/copilot-pbr/setup.sh +0 -93
- package/plugins/copilot-pbr/skills/audit/SKILL.md +0 -330
- package/plugins/copilot-pbr/skills/begin/SKILL.md +0 -589
- package/plugins/copilot-pbr/skills/begin/templates/PROJECT.md.tmpl +0 -34
- package/plugins/copilot-pbr/skills/begin/templates/REQUIREMENTS.md.tmpl +0 -19
- package/plugins/copilot-pbr/skills/begin/templates/STATE.md.tmpl +0 -50
- package/plugins/copilot-pbr/skills/begin/templates/config.json.tmpl +0 -64
- package/plugins/copilot-pbr/skills/begin/templates/researcher-prompt.md.tmpl +0 -20
- package/plugins/copilot-pbr/skills/begin/templates/roadmap-prompt.md.tmpl +0 -31
- package/plugins/copilot-pbr/skills/begin/templates/synthesis-prompt.md.tmpl +0 -17
- package/plugins/copilot-pbr/skills/build/SKILL.md +0 -960
- package/plugins/copilot-pbr/skills/config/SKILL.md +0 -250
- package/plugins/copilot-pbr/skills/continue/SKILL.md +0 -159
- package/plugins/copilot-pbr/skills/dashboard/SKILL.md +0 -43
- package/plugins/copilot-pbr/skills/debug/SKILL.md +0 -508
- package/plugins/copilot-pbr/skills/debug/templates/continuation-prompt.md.tmpl +0 -17
- package/plugins/copilot-pbr/skills/debug/templates/initial-investigation-prompt.md.tmpl +0 -28
- package/plugins/copilot-pbr/skills/discuss/SKILL.md +0 -353
- package/plugins/copilot-pbr/skills/discuss/templates/CONTEXT.md.tmpl +0 -62
- package/plugins/copilot-pbr/skills/discuss/templates/decision-categories.md +0 -10
- package/plugins/copilot-pbr/skills/do/SKILL.md +0 -66
- package/plugins/copilot-pbr/skills/explore/SKILL.md +0 -373
- package/plugins/copilot-pbr/skills/health/SKILL.md +0 -274
- package/plugins/copilot-pbr/skills/health/templates/check-pattern.md.tmpl +0 -31
- package/plugins/copilot-pbr/skills/health/templates/output-format.md.tmpl +0 -64
- package/plugins/copilot-pbr/skills/help/SKILL.md +0 -170
- package/plugins/copilot-pbr/skills/import/SKILL.md +0 -502
- package/plugins/copilot-pbr/skills/milestone/SKILL.md +0 -745
- package/plugins/copilot-pbr/skills/milestone/templates/audit-report.md.tmpl +0 -49
- package/plugins/copilot-pbr/skills/milestone/templates/stats-file.md.tmpl +0 -31
- package/plugins/copilot-pbr/skills/note/SKILL.md +0 -213
- package/plugins/copilot-pbr/skills/pause/SKILL.md +0 -247
- package/plugins/copilot-pbr/skills/pause/templates/continue-here.md.tmpl +0 -72
- package/plugins/copilot-pbr/skills/plan/SKILL.md +0 -662
- package/plugins/copilot-pbr/skills/plan/templates/checker-prompt.md.tmpl +0 -22
- package/plugins/copilot-pbr/skills/plan/templates/gap-closure-prompt.md.tmpl +0 -33
- package/plugins/copilot-pbr/skills/plan/templates/planner-prompt.md.tmpl +0 -39
- package/plugins/copilot-pbr/skills/plan/templates/researcher-prompt.md.tmpl +0 -20
- package/plugins/copilot-pbr/skills/plan/templates/revision-prompt.md.tmpl +0 -24
- package/plugins/copilot-pbr/skills/quick/SKILL.md +0 -376
- package/plugins/copilot-pbr/skills/resume/SKILL.md +0 -399
- package/plugins/copilot-pbr/skills/review/SKILL.md +0 -653
- package/plugins/copilot-pbr/skills/review/templates/debugger-prompt.md.tmpl +0 -61
- package/plugins/copilot-pbr/skills/review/templates/gap-planner-prompt.md.tmpl +0 -41
- package/plugins/copilot-pbr/skills/review/templates/verifier-prompt.md.tmpl +0 -116
- package/plugins/copilot-pbr/skills/scan/SKILL.md +0 -299
- package/plugins/copilot-pbr/skills/scan/templates/mapper-prompt.md.tmpl +0 -202
- package/plugins/copilot-pbr/skills/setup/SKILL.md +0 -296
- package/plugins/copilot-pbr/skills/shared/commit-planning-docs.md +0 -36
- package/plugins/copilot-pbr/skills/shared/config-loading.md +0 -103
- package/plugins/copilot-pbr/skills/shared/context-budget.md +0 -41
- package/plugins/copilot-pbr/skills/shared/context-loader-task.md +0 -87
- package/plugins/copilot-pbr/skills/shared/digest-select.md +0 -80
- package/plugins/copilot-pbr/skills/shared/domain-probes.md +0 -126
- package/plugins/copilot-pbr/skills/shared/error-reporting.md +0 -81
- package/plugins/copilot-pbr/skills/shared/gate-prompts.md +0 -389
- package/plugins/copilot-pbr/skills/shared/phase-argument-parsing.md +0 -46
- package/plugins/copilot-pbr/skills/shared/progress-display.md +0 -53
- package/plugins/copilot-pbr/skills/shared/revision-loop.md +0 -82
- package/plugins/copilot-pbr/skills/shared/state-loading.md +0 -63
- package/plugins/copilot-pbr/skills/shared/state-update.md +0 -162
- package/plugins/copilot-pbr/skills/shared/universal-anti-patterns.md +0 -38
- package/plugins/copilot-pbr/skills/status/SKILL.md +0 -362
- package/plugins/copilot-pbr/skills/statusline/SKILL.md +0 -149
- package/plugins/copilot-pbr/skills/todo/SKILL.md +0 -279
- package/plugins/copilot-pbr/templates/CONTEXT.md.tmpl +0 -53
- package/plugins/copilot-pbr/templates/INTEGRATION-REPORT.md.tmpl +0 -152
- package/plugins/copilot-pbr/templates/RESEARCH-SUMMARY.md.tmpl +0 -98
- package/plugins/copilot-pbr/templates/ROADMAP.md.tmpl +0 -41
- package/plugins/copilot-pbr/templates/SUMMARY.md.tmpl +0 -82
- package/plugins/copilot-pbr/templates/VERIFICATION-DETAIL.md.tmpl +0 -117
- package/plugins/copilot-pbr/templates/codebase/ARCHITECTURE.md.tmpl +0 -98
- package/plugins/copilot-pbr/templates/codebase/CONCERNS.md.tmpl +0 -93
- package/plugins/copilot-pbr/templates/codebase/CONVENTIONS.md.tmpl +0 -104
- package/plugins/copilot-pbr/templates/codebase/INTEGRATIONS.md.tmpl +0 -78
- package/plugins/copilot-pbr/templates/codebase/STACK.md.tmpl +0 -78
- package/plugins/copilot-pbr/templates/codebase/STRUCTURE.md.tmpl +0 -80
- package/plugins/copilot-pbr/templates/codebase/TESTING.md.tmpl +0 -107
- package/plugins/copilot-pbr/templates/continue-here.md.tmpl +0 -74
- package/plugins/copilot-pbr/templates/prompt-partials/phase-project-context.md.tmpl +0 -38
- package/plugins/copilot-pbr/templates/research/ARCHITECTURE.md.tmpl +0 -124
- package/plugins/copilot-pbr/templates/research/STACK.md.tmpl +0 -71
- package/plugins/copilot-pbr/templates/research/SUMMARY.md.tmpl +0 -112
- package/plugins/copilot-pbr/templates/research-outputs/phase-research.md.tmpl +0 -81
- package/plugins/copilot-pbr/templates/research-outputs/project-research.md.tmpl +0 -99
- package/plugins/copilot-pbr/templates/research-outputs/synthesis.md.tmpl +0 -36
- package/plugins/cursor-pbr/.cursor-plugin/plugin.json +0 -32
- package/plugins/cursor-pbr/CHANGELOG.md +0 -15
- package/plugins/cursor-pbr/README.md +0 -123
- package/plugins/cursor-pbr/agents/audit.md +0 -178
- package/plugins/cursor-pbr/agents/codebase-mapper.md +0 -150
- package/plugins/cursor-pbr/agents/debugger.md +0 -171
- package/plugins/cursor-pbr/agents/executor.md +0 -266
- package/plugins/cursor-pbr/agents/general.md +0 -87
- package/plugins/cursor-pbr/agents/integration-checker.md +0 -118
- package/plugins/cursor-pbr/agents/plan-checker.md +0 -198
- package/plugins/cursor-pbr/agents/planner.md +0 -237
- package/plugins/cursor-pbr/agents/researcher.md +0 -185
- package/plugins/cursor-pbr/agents/synthesizer.md +0 -125
- package/plugins/cursor-pbr/agents/verifier.md +0 -227
- package/plugins/cursor-pbr/assets/.gitkeep +0 -0
- package/plugins/cursor-pbr/assets/logo.svg +0 -21
- package/plugins/cursor-pbr/hooks/hooks.json +0 -213
- package/plugins/cursor-pbr/references/agent-anti-patterns.md +0 -25
- package/plugins/cursor-pbr/references/agent-contracts.md +0 -297
- package/plugins/cursor-pbr/references/agent-interactions.md +0 -135
- package/plugins/cursor-pbr/references/agent-teams.md +0 -55
- package/plugins/cursor-pbr/references/checkpoints.md +0 -158
- package/plugins/cursor-pbr/references/common-bug-patterns.md +0 -14
- package/plugins/cursor-pbr/references/config-reference.md +0 -442
- package/plugins/cursor-pbr/references/continuation-format.md +0 -213
- package/plugins/cursor-pbr/references/deviation-rules.md +0 -113
- package/plugins/cursor-pbr/references/git-integration.md +0 -227
- package/plugins/cursor-pbr/references/integration-patterns.md +0 -118
- package/plugins/cursor-pbr/references/model-profiles.md +0 -100
- package/plugins/cursor-pbr/references/model-selection.md +0 -32
- package/plugins/cursor-pbr/references/pbr-rules.md +0 -195
- package/plugins/cursor-pbr/references/pbr-tools-cli.md +0 -285
- package/plugins/cursor-pbr/references/plan-authoring.md +0 -182
- package/plugins/cursor-pbr/references/plan-format.md +0 -288
- package/plugins/cursor-pbr/references/planning-config.md +0 -214
- package/plugins/cursor-pbr/references/questioning.md +0 -215
- package/plugins/cursor-pbr/references/reading-verification.md +0 -128
- package/plugins/cursor-pbr/references/stub-patterns.md +0 -161
- package/plugins/cursor-pbr/references/subagent-coordination.md +0 -120
- package/plugins/cursor-pbr/references/ui-formatting.md +0 -444
- package/plugins/cursor-pbr/references/verification-patterns.md +0 -199
- package/plugins/cursor-pbr/references/wave-execution.md +0 -96
- package/plugins/cursor-pbr/rules/pbr-workflow.mdc +0 -48
- package/plugins/cursor-pbr/setup.ps1 +0 -78
- package/plugins/cursor-pbr/setup.sh +0 -83
- package/plugins/cursor-pbr/skills/audit/SKILL.md +0 -331
- package/plugins/cursor-pbr/skills/begin/SKILL.md +0 -589
- package/plugins/cursor-pbr/skills/begin/templates/PROJECT.md.tmpl +0 -34
- package/plugins/cursor-pbr/skills/begin/templates/REQUIREMENTS.md.tmpl +0 -19
- package/plugins/cursor-pbr/skills/begin/templates/STATE.md.tmpl +0 -50
- package/plugins/cursor-pbr/skills/begin/templates/config.json.tmpl +0 -64
- package/plugins/cursor-pbr/skills/begin/templates/researcher-prompt.md.tmpl +0 -20
- package/plugins/cursor-pbr/skills/begin/templates/roadmap-prompt.md.tmpl +0 -31
- package/plugins/cursor-pbr/skills/begin/templates/synthesis-prompt.md.tmpl +0 -17
- package/plugins/cursor-pbr/skills/build/SKILL.md +0 -961
- package/plugins/cursor-pbr/skills/config/SKILL.md +0 -252
- package/plugins/cursor-pbr/skills/continue/SKILL.md +0 -159
- package/plugins/cursor-pbr/skills/dashboard/SKILL.md +0 -44
- package/plugins/cursor-pbr/skills/debug/SKILL.md +0 -512
- package/plugins/cursor-pbr/skills/debug/templates/continuation-prompt.md.tmpl +0 -17
- package/plugins/cursor-pbr/skills/debug/templates/initial-investigation-prompt.md.tmpl +0 -28
- package/plugins/cursor-pbr/skills/discuss/SKILL.md +0 -354
- package/plugins/cursor-pbr/skills/discuss/templates/CONTEXT.md.tmpl +0 -62
- package/plugins/cursor-pbr/skills/discuss/templates/decision-categories.md +0 -10
- package/plugins/cursor-pbr/skills/do/SKILL.md +0 -67
- package/plugins/cursor-pbr/skills/explore/SKILL.md +0 -376
- package/plugins/cursor-pbr/skills/health/SKILL.md +0 -274
- package/plugins/cursor-pbr/skills/health/templates/check-pattern.md.tmpl +0 -31
- package/plugins/cursor-pbr/skills/health/templates/output-format.md.tmpl +0 -64
- package/plugins/cursor-pbr/skills/help/SKILL.md +0 -170
- package/plugins/cursor-pbr/skills/import/SKILL.md +0 -505
- package/plugins/cursor-pbr/skills/milestone/SKILL.md +0 -746
- package/plugins/cursor-pbr/skills/milestone/templates/audit-report.md.tmpl +0 -49
- package/plugins/cursor-pbr/skills/milestone/templates/stats-file.md.tmpl +0 -31
- package/plugins/cursor-pbr/skills/note/SKILL.md +0 -214
- package/plugins/cursor-pbr/skills/pause/SKILL.md +0 -248
- package/plugins/cursor-pbr/skills/pause/templates/continue-here.md.tmpl +0 -72
- package/plugins/cursor-pbr/skills/plan/SKILL.md +0 -663
- package/plugins/cursor-pbr/skills/plan/templates/checker-prompt.md.tmpl +0 -22
- package/plugins/cursor-pbr/skills/plan/templates/gap-closure-prompt.md.tmpl +0 -33
- package/plugins/cursor-pbr/skills/plan/templates/planner-prompt.md.tmpl +0 -39
- package/plugins/cursor-pbr/skills/plan/templates/researcher-prompt.md.tmpl +0 -20
- package/plugins/cursor-pbr/skills/plan/templates/revision-prompt.md.tmpl +0 -24
- package/plugins/cursor-pbr/skills/quick/SKILL.md +0 -376
- package/plugins/cursor-pbr/skills/resume/SKILL.md +0 -399
- package/plugins/cursor-pbr/skills/review/SKILL.md +0 -654
- package/plugins/cursor-pbr/skills/review/templates/debugger-prompt.md.tmpl +0 -61
- package/plugins/cursor-pbr/skills/review/templates/gap-planner-prompt.md.tmpl +0 -41
- package/plugins/cursor-pbr/skills/review/templates/verifier-prompt.md.tmpl +0 -116
- package/plugins/cursor-pbr/skills/scan/SKILL.md +0 -300
- package/plugins/cursor-pbr/skills/scan/templates/mapper-prompt.md.tmpl +0 -202
- package/plugins/cursor-pbr/skills/setup/SKILL.md +0 -296
- package/plugins/cursor-pbr/skills/shared/commit-planning-docs.md +0 -36
- package/plugins/cursor-pbr/skills/shared/config-loading.md +0 -103
- package/plugins/cursor-pbr/skills/shared/context-budget.md +0 -41
- package/plugins/cursor-pbr/skills/shared/context-loader-task.md +0 -87
- package/plugins/cursor-pbr/skills/shared/digest-select.md +0 -80
- package/plugins/cursor-pbr/skills/shared/domain-probes.md +0 -126
- package/plugins/cursor-pbr/skills/shared/error-reporting.md +0 -81
- package/plugins/cursor-pbr/skills/shared/gate-prompts.md +0 -389
- package/plugins/cursor-pbr/skills/shared/phase-argument-parsing.md +0 -46
- package/plugins/cursor-pbr/skills/shared/progress-display.md +0 -53
- package/plugins/cursor-pbr/skills/shared/revision-loop.md +0 -82
- package/plugins/cursor-pbr/skills/shared/state-loading.md +0 -63
- package/plugins/cursor-pbr/skills/shared/state-update.md +0 -162
- package/plugins/cursor-pbr/skills/shared/universal-anti-patterns.md +0 -38
- package/plugins/cursor-pbr/skills/status/SKILL.md +0 -362
- package/plugins/cursor-pbr/skills/statusline/SKILL.md +0 -150
- package/plugins/cursor-pbr/skills/todo/SKILL.md +0 -280
- package/plugins/cursor-pbr/templates/CONTEXT.md.tmpl +0 -53
- package/plugins/cursor-pbr/templates/INTEGRATION-REPORT.md.tmpl +0 -152
- package/plugins/cursor-pbr/templates/RESEARCH-SUMMARY.md.tmpl +0 -98
- package/plugins/cursor-pbr/templates/ROADMAP.md.tmpl +0 -41
- package/plugins/cursor-pbr/templates/SUMMARY.md.tmpl +0 -82
- package/plugins/cursor-pbr/templates/VERIFICATION-DETAIL.md.tmpl +0 -117
- package/plugins/cursor-pbr/templates/codebase/ARCHITECTURE.md.tmpl +0 -98
- package/plugins/cursor-pbr/templates/codebase/CONCERNS.md.tmpl +0 -93
- package/plugins/cursor-pbr/templates/codebase/CONVENTIONS.md.tmpl +0 -104
- package/plugins/cursor-pbr/templates/codebase/INTEGRATIONS.md.tmpl +0 -78
- package/plugins/cursor-pbr/templates/codebase/STACK.md.tmpl +0 -78
- package/plugins/cursor-pbr/templates/codebase/STRUCTURE.md.tmpl +0 -80
- package/plugins/cursor-pbr/templates/codebase/TESTING.md.tmpl +0 -107
- package/plugins/cursor-pbr/templates/continue-here.md.tmpl +0 -74
- package/plugins/cursor-pbr/templates/prompt-partials/phase-project-context.md.tmpl +0 -38
- package/plugins/cursor-pbr/templates/research/ARCHITECTURE.md.tmpl +0 -124
- package/plugins/cursor-pbr/templates/research/STACK.md.tmpl +0 -71
- package/plugins/cursor-pbr/templates/research/SUMMARY.md.tmpl +0 -112
- package/plugins/cursor-pbr/templates/research-outputs/phase-research.md.tmpl +0 -81
- package/plugins/cursor-pbr/templates/research-outputs/project-research.md.tmpl +0 -99
- package/plugins/cursor-pbr/templates/research-outputs/synthesis.md.tmpl +0 -36
- package/plugins/pbr/references/agent-interactions.md +0 -134
- package/plugins/pbr/references/pbr-rules.md +0 -194
- package/plugins/pbr/references/pbr-tools-cli.md +0 -285
- package/plugins/pbr/references/planning-config.md +0 -213
- package/plugins/pbr/references/subagent-coordination.md +0 -119
- package/plugins/pbr/references/ui-formatting.md +0 -444
- package/plugins/pbr/scripts/validate-plugin-structure.js +0 -183
- package/plugins/pbr/skills/milestone/templates/audit-report.md.tmpl +0 -48
- package/plugins/pbr/skills/shared/progress-display.md +0 -53
- package/plugins/pbr/skills/shared/state-loading.md +0 -62
- package/plugins/pbr/templates/RESEARCH-SUMMARY.md.tmpl +0 -97
- package/plugins/pbr/templates/research/ARCHITECTURE.md.tmpl +0 -124
- package/plugins/pbr/templates/research/STACK.md.tmpl +0 -71
- package/plugins/pbr/templates/research/SUMMARY.md.tmpl +0 -112
- package/plugins/pbr/templates/research-outputs/phase-research.md.tmpl +0 -81
- package/plugins/pbr/templates/research-outputs/project-research.md.tmpl +0 -99
- package/plugins/pbr/templates/research-outputs/synthesis.md.tmpl +0 -36
- /package/plugins/pbr/references/{agent-anti-patterns.md → archive/agent-anti-patterns.md} +0 -0
|
@@ -26,11 +26,17 @@ You are running the **milestone** skill. Milestones represent significant projec
|
|
|
26
26
|
|
|
27
27
|
This skill runs **inline** for most subcommands, but spawns agents for `audit`.
|
|
28
28
|
|
|
29
|
+
## References
|
|
30
|
+
|
|
31
|
+
- `references/questioning.md` — Questioning patterns for milestone review decisions
|
|
32
|
+
- `references/ui-brand.md` — Status symbols, banners, milestone celebration format
|
|
33
|
+
|
|
29
34
|
---
|
|
30
35
|
|
|
31
36
|
## Context Budget
|
|
32
37
|
|
|
33
38
|
Reference: `skills/shared/context-budget.md` for the universal orchestrator rules.
|
|
39
|
+
Reference: `skills/shared/agent-type-resolution.md` for agent type fallback when spawning Task() subagents.
|
|
34
40
|
|
|
35
41
|
Additionally for this skill:
|
|
36
42
|
- **Never** perform integration checks yourself — delegate to the integration-checker subagent
|
|
@@ -39,6 +45,22 @@ Additionally for this skill:
|
|
|
39
45
|
|
|
40
46
|
---
|
|
41
47
|
|
|
48
|
+
## Multi-Session Sync
|
|
49
|
+
|
|
50
|
+
Before any phase-modifying operations (archiving phases, updating ROADMAP.md/STATE.md/PROJECT.md), acquire a claim:
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
acquireClaim(planningDir, sessionId)
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
If the claim fails (another session owns this project), display: "Another session owns this project. Use `/pbr:progress` to see active claims."
|
|
57
|
+
|
|
58
|
+
On completion or error (including all exit paths), release the claim:
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
releaseClaim(planningDir, sessionId)
|
|
62
|
+
```
|
|
63
|
+
|
|
42
64
|
## Core Principle
|
|
43
65
|
|
|
44
66
|
**Milestones are the rhythm of the project.** They force you to step back, verify everything works together, and create a clean snapshot before moving on. Never skip the audit — integration issues hide at milestone boundaries.
|
|
@@ -57,6 +79,7 @@ Examples:
|
|
|
57
79
|
"new User Auth" → subcommand=new, arg="User Auth"
|
|
58
80
|
"complete v1.0" → subcommand=complete, arg="v1.0"
|
|
59
81
|
"complete 1.0" → subcommand=complete, arg="v1.0" (auto-prefix v)
|
|
82
|
+
"preview v1.0" → subcommand=preview, arg="v1.0"
|
|
60
83
|
"audit v1.0" → subcommand=audit, arg="v1.0"
|
|
61
84
|
"audit" → subcommand=audit, arg=current milestone
|
|
62
85
|
"gaps" → subcommand=gaps, arg=most recent audit
|
|
@@ -69,10 +92,29 @@ Usage: /pbr:milestone <subcommand> [version]
|
|
|
69
92
|
Subcommands:
|
|
70
93
|
new [name] — Start a new milestone cycle
|
|
71
94
|
complete [ver] — Archive completed milestone
|
|
95
|
+
preview [ver] — Dry-run of complete (show what would happen)
|
|
72
96
|
audit [ver] — Verify milestone completion
|
|
73
97
|
gaps — Create phases to close audit gaps
|
|
74
98
|
```
|
|
75
99
|
|
|
100
|
+
**CRITICAL — After parsing the subcommand, run init command before any manual state reads:**
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
node plugins/pbr/scripts/pbr-tools.js init milestone
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Store the JSON result as `blob`. This single call replaces multiple file reads across all subcommands:
|
|
107
|
+
- `blob.state.current_phase`, `blob.state.status` — current phase and status from STATE.md
|
|
108
|
+
- `blob.state.last_milestone_version`, `blob.state.last_milestone_completed` — milestone history
|
|
109
|
+
- `blob.has_roadmap` — whether ROADMAP.md exists
|
|
110
|
+
- `blob.has_project` — whether PROJECT.md exists
|
|
111
|
+
- `blob.milestones` — array of milestone sections parsed from ROADMAP.md (each with `name` and `phases_range`)
|
|
112
|
+
- `blob.existing_archives` — array of existing archive directory names
|
|
113
|
+
- `blob.phase_count` — total phase count
|
|
114
|
+
- `blob.config.mode`, `blob.config.planning`, `blob.config.git` — config settings
|
|
115
|
+
|
|
116
|
+
If `blob.error` is set, display the error banner and stop (no project found).
|
|
117
|
+
|
|
76
118
|
---
|
|
77
119
|
|
|
78
120
|
## Subcommand: `new`
|
|
@@ -81,10 +123,11 @@ Start a new milestone cycle with new phases.
|
|
|
81
123
|
|
|
82
124
|
### Flow
|
|
83
125
|
|
|
84
|
-
1. **Read current state:**
|
|
85
|
-
-
|
|
86
|
-
-
|
|
87
|
-
-
|
|
126
|
+
1. **Read current state from init blob:**
|
|
127
|
+
- `blob.milestones` for existing milestone sections from ROADMAP.md
|
|
128
|
+
- `blob.state.current_phase` and `blob.state.status` for current position
|
|
129
|
+
- `blob.has_project` to check if PROJECT.md exists (read it for milestone history if needed)
|
|
130
|
+
- `blob.phase_count` for total phase count
|
|
88
131
|
|
|
89
132
|
2. **Get milestone details** via AskUserQuestion:
|
|
90
133
|
- "What's the name/goal for this new milestone?"
|
|
@@ -97,7 +140,7 @@ Start a new milestone cycle with new phases.
|
|
|
97
140
|
- Example: if phases 1-5 exist, new milestone starts at phase 6
|
|
98
141
|
|
|
99
142
|
4. **Mini roadmap session:**
|
|
100
|
-
Run a condensed version of the `/pbr:
|
|
143
|
+
Run a condensed version of the `/pbr:new-project` questioning flow:
|
|
101
144
|
|
|
102
145
|
a. Ask about major components needed (via AskUserQuestion):
|
|
103
146
|
- "What are the 2-5 major areas of work for this milestone?"
|
|
@@ -123,8 +166,8 @@ Start a new milestone cycle with new phases.
|
|
|
123
166
|
|
|
124
167
|
### Phase {N}: {name}
|
|
125
168
|
**Goal:** {goal}
|
|
126
|
-
**Requirements:** {
|
|
127
|
-
**Success
|
|
169
|
+
**Requirements:** {REQ-IDs mapped to this phase}
|
|
170
|
+
**Success Criteria:** {verifiable conditions for phase completion}
|
|
128
171
|
**Depends on:** {prior phases}
|
|
129
172
|
|
|
130
173
|
### Phase {N+1}: {name}
|
|
@@ -149,48 +192,107 @@ Start a new milestone cycle with new phases.
|
|
|
149
192
|
- **Status:** In progress
|
|
150
193
|
```
|
|
151
194
|
|
|
195
|
+
**CRITICAL (no hook) -- DO NOT SKIP: Update STATE.md frontmatter AND body with new milestone info.**
|
|
196
|
+
|
|
152
197
|
8. **Update STATE.md:**
|
|
153
198
|
- Set current phase to the first new phase
|
|
154
199
|
- Update milestone info
|
|
155
200
|
|
|
201
|
+
**CRITICAL (no hook) -- DO NOT SKIP: Generate root MILESTONE.md file.**
|
|
202
|
+
|
|
203
|
+
8b. **Generate root MILESTONE.md:**
|
|
204
|
+
Read the current milestone section from ROADMAP.md (the `## Milestone:` section just created in Step 5) and STATE.md for current phase and status. Write `MILESTONE.md` at the project root with:
|
|
205
|
+
|
|
206
|
+
```markdown
|
|
207
|
+
# Current Milestone: {name}
|
|
208
|
+
**Version:** {version} | **Status:** In Progress | **Created:** {date}
|
|
209
|
+
|
|
210
|
+
**Goal:** {goal}
|
|
211
|
+
|
|
212
|
+
## Phases
|
|
213
|
+
| Phase | Goal | Status |
|
|
214
|
+
|-------|------|--------|
|
|
215
|
+
| {N}. {name} | {goal} | Pending |
|
|
216
|
+
...
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
*Auto-generated by `/pbr:milestone new`. Updated by `/pbr:autonomous`.*
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
- Read the phase list from the ROADMAP.md section just written in Step 5
|
|
223
|
+
- Status column: "Pending" for all new phases
|
|
224
|
+
|
|
225
|
+
**Milestone branch creation (when git.branching is 'milestone'):**
|
|
226
|
+
When starting a new milestone and `git.branching` is `milestone`:
|
|
227
|
+
- Create branch: `git switch -c pbr/milestone-v{version}`
|
|
228
|
+
- All phase work happens on this branch
|
|
229
|
+
- Branch is merged when `/pbr:milestone complete` is run
|
|
230
|
+
|
|
156
231
|
9. **Commit** if `planning.commit_docs: true`:
|
|
157
232
|
```
|
|
158
233
|
docs(planning): start milestone "{name}" (phases {start}-{end})
|
|
159
234
|
```
|
|
160
235
|
|
|
161
|
-
10. **Confirm** with branded output
|
|
162
|
-
```
|
|
163
|
-
╔══════════════════════════════════════════════════════════════╗
|
|
164
|
-
║ PLAN-BUILD-RUN ► MILESTONE CREATED ✓ ║
|
|
165
|
-
╚══════════════════════════════════════════════════════════════╝
|
|
236
|
+
10. **Confirm** with branded output — read `${CLAUDE_SKILL_DIR}/templates/new-output.md.tmpl` and fill in `{name}` (milestone name), `{count}` (phase count), `{N}` (first phase number).
|
|
166
237
|
|
|
167
|
-
|
|
238
|
+
---
|
|
168
239
|
|
|
169
|
-
|
|
170
|
-
{N}. {name}
|
|
171
|
-
{N+1}. {name}
|
|
172
|
-
...
|
|
240
|
+
## Subcommand: `preview`
|
|
173
241
|
|
|
242
|
+
Dry-run of milestone completion — shows what would happen without making any changes.
|
|
174
243
|
|
|
244
|
+
### Flow
|
|
175
245
|
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
╚══════════════════════════════════════════════════════════════╝
|
|
246
|
+
1. **Determine version:**
|
|
247
|
+
- Same logic as `complete`: use `$ARGUMENTS` or ask via AskUserQuestion
|
|
179
248
|
|
|
180
|
-
|
|
249
|
+
2. **Identify milestone phases:**
|
|
250
|
+
- Read ROADMAP.md to find phases belonging to this milestone
|
|
251
|
+
- List each phase with its current status (from STATE.md or VERIFICATION.md)
|
|
181
252
|
|
|
182
|
-
|
|
253
|
+
3. **Verification status check:**
|
|
254
|
+
- For each milestone phase, check if VERIFICATION.md exists and its `result` frontmatter
|
|
255
|
+
- Flag phases that are unverified or have stale verification (SUMMARY.md newer than VERIFICATION.md)
|
|
256
|
+
|
|
257
|
+
4. **Preview archive structure:**
|
|
258
|
+
- Show what the archive directory would look like:
|
|
259
|
+
```
|
|
260
|
+
.planning/milestones/v{version}/
|
|
261
|
+
├── ROADMAP.md (snapshot)
|
|
262
|
+
├── STATS.md (would be generated)
|
|
263
|
+
├── REQUIREMENTS.md (snapshot)
|
|
264
|
+
└── phases/
|
|
265
|
+
├── {NN}-{slug}/ (moved from .planning/phases/)
|
|
266
|
+
│ ├── PLAN-01.md
|
|
267
|
+
│ ├── SUMMARY.md
|
|
268
|
+
│ └── VERIFICATION.md
|
|
269
|
+
└── ...
|
|
270
|
+
```
|
|
183
271
|
|
|
184
|
-
|
|
272
|
+
5. **Show what would change:**
|
|
273
|
+
- Which phase directories would be moved
|
|
274
|
+
- What ROADMAP.md section would be collapsed
|
|
275
|
+
- What STATE.md updates would occur
|
|
276
|
+
- What git tag would be created
|
|
185
277
|
|
|
278
|
+
6. **Display summary:**
|
|
279
|
+
```
|
|
280
|
+
╔══════════════════════════════════════════════════════════════╗
|
|
281
|
+
║ PLAN-BUILD-RUN ► MILESTONE PREVIEW — v{version} ║
|
|
282
|
+
╚══════════════════════════════════════════════════════════════╝
|
|
186
283
|
|
|
284
|
+
Phases to archive: {count}
|
|
285
|
+
✓ Verified: {verified_count}
|
|
286
|
+
⚠ Unverified: {unverified_count}
|
|
287
|
+
⚠ Stale verification: {stale_count}
|
|
187
288
|
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
- `/pbr:status` — see project status
|
|
289
|
+
Archive location: .planning/milestones/v{version}/
|
|
290
|
+
Git tag: v{version}
|
|
191
291
|
|
|
292
|
+
Ready to complete? Run: /pbr:complete-milestone v{version}
|
|
293
|
+
```
|
|
192
294
|
|
|
193
|
-
|
|
295
|
+
**CRITICAL (no hook)**: This subcommand is READ-ONLY. Do not create directories, move files, modify STATE.md, modify ROADMAP.md, or create git tags. Only read and display.
|
|
194
296
|
|
|
195
297
|
---
|
|
196
298
|
|
|
@@ -204,9 +306,19 @@ Archive a completed milestone and prepare for the next one.
|
|
|
204
306
|
- If provided in `$ARGUMENTS`: use it (auto-prefix `v` if missing)
|
|
205
307
|
- If not provided: ask via AskUserQuestion: "What version number for this milestone? (e.g., v1.0)"
|
|
206
308
|
|
|
207
|
-
2. **
|
|
208
|
-
-
|
|
209
|
-
- For each phase, check
|
|
309
|
+
2. **Check verification debt across ALL phases:**
|
|
310
|
+
- Use `blob.milestones` to find the target milestone's phase range
|
|
311
|
+
- For each phase in the range, check VERIFICATION.md status:
|
|
312
|
+
- `gaps_found` or `human_needed` or `partial` → verification debt exists
|
|
313
|
+
- If verification debt found, display warning:
|
|
314
|
+
```
|
|
315
|
+
Verification Debt:
|
|
316
|
+
- Phase {N}: {status} ({count} outstanding items)
|
|
317
|
+
```
|
|
318
|
+
- This is non-blocking but prominently displayed before the completion decision
|
|
319
|
+
|
|
320
|
+
3. **Verify all phases are complete:**
|
|
321
|
+
- For each phase in the range, check for VERIFICATION.md
|
|
210
322
|
- If any phase lacks VERIFICATION.md:
|
|
211
323
|
|
|
212
324
|
Present the warning context:
|
|
@@ -214,12 +326,13 @@ Archive a completed milestone and prepare for the next one.
|
|
|
214
326
|
- Phase {N}: {name}
|
|
215
327
|
- Phase {M}: {name}
|
|
216
328
|
|
|
329
|
+
**CRITICAL -- DO NOT SKIP**: Present the following choice to the user via AskUserQuestion before proceeding:
|
|
217
330
|
Use AskUserQuestion (pattern: yes-no from `skills/shared/gate-prompts.md`):
|
|
218
331
|
question: "{count} phases haven't been verified. Continue with milestone completion?"
|
|
219
332
|
header: "Unverified"
|
|
220
333
|
options:
|
|
221
334
|
- label: "Continue anyway" description: "Proceed despite unverified phases (not recommended)"
|
|
222
|
-
- label: "Stop and review" description: "Run /pbr:
|
|
335
|
+
- label: "Stop and review" description: "Run /pbr:verify-work for unverified phases first"
|
|
223
336
|
- If "Stop and review" or "Other": stop and suggest the review commands for each unverified phase
|
|
224
337
|
- If "Continue anyway": proceed with warning noted
|
|
225
338
|
|
|
@@ -229,11 +342,12 @@ Archive a completed milestone and prepare for the next one.
|
|
|
229
342
|
- Warn: "Phase {N} ({name}) was modified after verification. The VERIFICATION.md may not reflect the current code state."
|
|
230
343
|
- List affected phases with their freshness details
|
|
231
344
|
|
|
345
|
+
**CRITICAL -- DO NOT SKIP**: Present the following choice to the user via AskUserQuestion before proceeding:
|
|
232
346
|
Use AskUserQuestion (pattern: stale-continue from `skills/shared/gate-prompts.md`):
|
|
233
347
|
question: "{count} phases were modified after verification. Re-verify or continue?"
|
|
234
348
|
header: "Stale"
|
|
235
349
|
options:
|
|
236
|
-
- label: "Re-verify" description: "Run /pbr:
|
|
350
|
+
- label: "Re-verify" description: "Run /pbr:verify-work for affected phases (recommended)"
|
|
237
351
|
- label: "Continue anyway" description: "Proceed with potentially outdated verification"
|
|
238
352
|
- If "Re-verify" or "Other": suggest the review commands for affected phases and stop
|
|
239
353
|
- If "Continue anyway": proceed with warning noted
|
|
@@ -264,12 +378,32 @@ Archive a completed milestone and prepare for the next one.
|
|
|
264
378
|
- Collect `patterns` fields
|
|
265
379
|
- Collect `tech_stack` union
|
|
266
380
|
|
|
381
|
+
**Milestone branching (config-gated):**
|
|
382
|
+
Read `blob.config.git.branching` (or fall back to reading config if blob unavailable).
|
|
383
|
+
- If `milestone`:
|
|
384
|
+
a. Check if milestone branch exists: `git branch --list pbr/milestone-v{version}`
|
|
385
|
+
b. If branch exists:
|
|
386
|
+
- Use AskUserQuestion:
|
|
387
|
+
question: "Milestone v{version} complete. Merge branch `pbr/milestone-v{version}` to main?"
|
|
388
|
+
header: "Merge milestone branch?"
|
|
389
|
+
options:
|
|
390
|
+
- label: "Yes, merge" description: "Merge milestone branch to main and delete it"
|
|
391
|
+
- label: "No, keep" description: "Keep the branch for manual review"
|
|
392
|
+
- If "Yes, merge":
|
|
393
|
+
1. `git switch main`
|
|
394
|
+
2. `git merge --no-ff pbr/milestone-v{version}` (no-ff to preserve milestone history)
|
|
395
|
+
3. `git branch -d pbr/milestone-v{version}`
|
|
396
|
+
4. Log: "Milestone branch merged and deleted"
|
|
397
|
+
- If "No, keep": leave branch as-is
|
|
398
|
+
c. If branch does not exist: no action (phases were on main or individual phase branches)
|
|
399
|
+
- If `none`, `phase`, or `disabled`: no milestone branch operations
|
|
400
|
+
|
|
267
401
|
5. **Archive milestone documents:**
|
|
268
402
|
|
|
269
|
-
**CRITICAL: Pre-flight safety checks BEFORE archiving. Do NOT skip this step.**
|
|
403
|
+
**CRITICAL (no hook): Pre-flight safety checks BEFORE archiving. Do NOT skip this step.**
|
|
270
404
|
|
|
271
405
|
Before creating or moving anything, verify the destination is safe:
|
|
272
|
-
- Check if
|
|
406
|
+
- Check `blob.existing_archives` to see if the version directory already exists
|
|
273
407
|
- If it exists AND contains files (phases/, STATS.md, etc.), STOP and display:
|
|
274
408
|
```
|
|
275
409
|
╔══════════════════════════════════════════════════════════════╗
|
|
@@ -286,23 +420,43 @@ Archive a completed milestone and prepare for the next one.
|
|
|
286
420
|
- Verify each source phase directory exists before attempting to move it
|
|
287
421
|
- If any source phase directory is missing, warn but continue with the phases that do exist
|
|
288
422
|
|
|
289
|
-
**CRITICAL
|
|
423
|
+
**CRITICAL (no hook): Back up ROADMAP.md BEFORE any destructive operations. Do NOT skip this step.**
|
|
424
|
+
|
|
425
|
+
Use the compound init-milestone command to atomically create the archive directory, copy ROADMAP.md, copy REQUIREMENTS.md (if present), and update STATE.md:
|
|
426
|
+
|
|
427
|
+
```bash
|
|
428
|
+
node ${CLAUDE_PLUGIN_ROOT}/scripts/pbr-tools.js compound init-milestone {version} --name "{milestone_name}" --phases "{start}-{end}"
|
|
429
|
+
```
|
|
430
|
+
|
|
431
|
+
This MUST happen before any of the following: moving phase directories, collapsing ROADMAP.md sections, or further STATE.md updates.
|
|
290
432
|
|
|
291
|
-
|
|
292
|
-
- `.planning/milestones/{version}/ROADMAP.md` — snapshot of ROADMAP.md at completion
|
|
293
|
-
- `.planning/milestones/{version}/REQUIREMENTS.md` — **CRITICAL: Copy REQUIREMENTS.md to archive NOW. Do NOT skip this step.** Snapshot of REQUIREMENTS.md
|
|
433
|
+
The compound command creates the archive directory and copies ROADMAP.md + REQUIREMENTS.md. Now move phase directories and create STATS.md:
|
|
294
434
|
- `.planning/milestones/{version}/STATS.md` — milestone statistics
|
|
295
435
|
- `.planning/milestones/{version}/phases/{NN}-{slug}/` — move each milestone phase directory from `.planning/phases/` into the archive
|
|
296
436
|
|
|
297
|
-
**CRITICAL: Move phase directories from .planning/phases/ to archive NOW. Do NOT skip this step.**
|
|
437
|
+
**CRITICAL (no hook): Move phase directories from .planning/phases/ to archive NOW. Do NOT skip this step.**
|
|
298
438
|
|
|
299
439
|
**Move phases:** For each phase belonging to this milestone, move (not copy) its directory from `.planning/phases/{NN}-{slug}/` to `.planning/milestones/{version}/phases/{NN}-{slug}/`. This keeps the active phases directory clean for the next milestone.
|
|
300
440
|
|
|
301
|
-
**CRITICAL: Write STATS.md to .planning/milestones/{version}/STATS.md NOW. Do NOT skip this step.**
|
|
441
|
+
**CRITICAL (no hook): Write STATS.md to .planning/milestones/{version}/STATS.md NOW. Do NOT skip this step.**
|
|
302
442
|
|
|
303
443
|
**Stats file content:**
|
|
304
444
|
|
|
305
|
-
Read
|
|
445
|
+
Read `${CLAUDE_SKILL_DIR}/templates/stats-file.md.tmpl` for the stats file format. Fill in all `{variable}` placeholders with actual data gathered in Steps 3-4.
|
|
446
|
+
|
|
447
|
+
5b. **Archive stale research data:**
|
|
448
|
+
|
|
449
|
+
After archiving phase directories, prune stale research/intel/codebase data that predates the milestone:
|
|
450
|
+
|
|
451
|
+
```bash
|
|
452
|
+
node ${CLAUDE_PLUGIN_ROOT}/scripts/pbr-tools.js data prune --before {milestone_start_date}
|
|
453
|
+
```
|
|
454
|
+
|
|
455
|
+
Where `{milestone_start_date}` is the earliest phase start date from the milestone (derived from the first SUMMARY.md `start_time` or the milestone creation date).
|
|
456
|
+
|
|
457
|
+
- Log the count of archived files (e.g., "Archived 12 stale research files")
|
|
458
|
+
- If no files to archive, log "No stale research files to archive"
|
|
459
|
+
- Note: SUMMARY.md, STACK.md, and FEATURES.md are preserved (never pruned) since they are canonical references for active work
|
|
306
460
|
|
|
307
461
|
6. **Update PROJECT.md:**
|
|
308
462
|
- Move milestone from "Active" to "Completed"
|
|
@@ -319,232 +473,311 @@ Archive a completed milestone and prepare for the next one.
|
|
|
319
473
|
|
|
320
474
|
- Move validated requirements from active to completed section
|
|
321
475
|
|
|
322
|
-
**CRITICAL:
|
|
476
|
+
**CRITICAL (no hook): Run PROJECT.md evolution review NOW. Do NOT skip this step.**
|
|
477
|
+
|
|
478
|
+
6b. **PROJECT.md Evolution Review:**
|
|
479
|
+
After moving the milestone to completed status, review and evolve the project definition:
|
|
480
|
+
|
|
481
|
+
1. **Move completed Active Requirements to Validated** — Any requirement from the completed milestone that was satisfied (per VERIFICATION.md) should move from Active to Validated section
|
|
482
|
+
2. **Review Out of Scope** — Check if any previously out-of-scope items are now unblocked by the completed milestone's deliverables. If so, note them for the user's consideration (do not move them automatically)
|
|
483
|
+
3. **Annotate Key Decisions with outcomes** — For each Key Decision in PROJECT.md that relates to the completed milestone, add an Outcome column value: `Good` (decision worked well), `Revisit` (decision caused issues), or `Pending` (outcome not yet clear)
|
|
484
|
+
4. **Update Constraints** — Remove or update any constraints that changed during the milestone (e.g., a technology constraint that was relaxed)
|
|
485
|
+
5. **Refresh Core Value** — If the project direction shifted meaningfully during the milestone, suggest an updated Core Value statement to the user via AskUserQuestion
|
|
486
|
+
|
|
487
|
+
**CRITICAL (no hook): Update ROADMAP.md with collapsed milestone section NOW. Do NOT skip this step.**
|
|
323
488
|
|
|
324
489
|
7. **Collapse completed phases in ROADMAP.md:**
|
|
325
|
-
Replace detailed phase entries with collapsed
|
|
490
|
+
Replace detailed phase entries with a `<details>` collapsed summary (backward compat: also recognized by `-- COMPLETED` text):
|
|
326
491
|
|
|
327
492
|
```markdown
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
Phases {start}-{end} completed on {date}. See `.planning/milestones/{version}/ROADMAP.md` for details.
|
|
493
|
+
<details>
|
|
494
|
+
<summary>## Milestone: {name} ({version}) — SHIPPED {date}</summary>
|
|
331
495
|
|
|
332
496
|
| Phase | Status |
|
|
333
497
|
|-------|--------|
|
|
334
498
|
| {N}. {name} | Completed |
|
|
335
499
|
| {N+1}. {name} | Completed |
|
|
500
|
+
|
|
501
|
+
Completed: {date} | Archive: `.planning/milestones/{version}/`
|
|
502
|
+
|
|
503
|
+
</details>
|
|
336
504
|
```
|
|
337
505
|
|
|
338
|
-
**
|
|
506
|
+
7a. **Update milestone index:**
|
|
507
|
+
After collapsing the milestone, update or create a `## Milestones` index section near the top of ROADMAP.md (after the title, before the first active milestone). Each entry is one line:
|
|
339
508
|
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
- Clear the current milestone field or set status to "completed"
|
|
343
|
-
- Update last activity timestamp
|
|
344
|
-
- Record the milestone version in the history/completed section
|
|
345
|
-
|
|
346
|
-
7c. **Update HISTORY.md:**
|
|
347
|
-
- Append a milestone completion entry to `.planning/HISTORY.md`:
|
|
348
|
-
```markdown
|
|
349
|
-
## {date} — Milestone {version} Completed
|
|
350
|
-
|
|
351
|
-
- Milestone: {name}
|
|
352
|
-
- Phases: {start} - {end}
|
|
353
|
-
- Duration: {duration} days
|
|
354
|
-
- Key deliverables: {summary from Step 4}
|
|
355
|
-
```
|
|
509
|
+
```markdown
|
|
510
|
+
## Milestones
|
|
356
511
|
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
512
|
+
| Version | Name | Status | Date |
|
|
513
|
+
|---------|------|--------|------|
|
|
514
|
+
| {version} | {name} | SHIPPED | {date} |
|
|
360
515
|
```
|
|
361
516
|
|
|
362
|
-
|
|
363
|
-
```bash
|
|
364
|
-
git add .planning/milestones/ .planning/phases/ .planning/ROADMAP.md .planning/PROJECT.md .planning/STATE.md .planning/HISTORY.md
|
|
365
|
-
git commit -m "docs(planning): complete milestone {version}"
|
|
366
|
-
```
|
|
517
|
+
If the section already exists, append a row. If it does not exist, create it.
|
|
367
518
|
|
|
368
|
-
|
|
369
|
-
```
|
|
370
|
-
╔══════════════════════════════════════════════════════════════╗
|
|
371
|
-
║ PLAN-BUILD-RUN ► MILESTONE COMPLETE 🎉 ║
|
|
372
|
-
╚══════════════════════════════════════════════════════════════╝
|
|
519
|
+
**CRITICAL (no hook): Update STATE.md to mark milestone as complete NOW. Do NOT skip this step.**
|
|
373
520
|
|
|
374
|
-
|
|
521
|
+
7b. **Update STATE.md:**
|
|
522
|
+
- Update `.planning/STATE.md` frontmatter to reset to idle state:
|
|
523
|
+
- `current_phase: null`
|
|
524
|
+
- `phase_slug: null`
|
|
525
|
+
- `phase_name: null`
|
|
526
|
+
- `phases_total: 0`
|
|
527
|
+
- `status: "idle"`
|
|
528
|
+
- `progress_percent: 0`
|
|
529
|
+
- `plans_total: 0`
|
|
530
|
+
- `plans_complete: 0`
|
|
531
|
+
- `last_activity: "{date} Milestone {version} complete"`
|
|
532
|
+
- Update the body section to reflect idle state (no active phase)
|
|
533
|
+
|
|
534
|
+
7c. **Record milestone completion in STATE.md frontmatter:**
|
|
535
|
+
- Update STATE.md frontmatter with milestone completion data:
|
|
536
|
+
- Set `last_milestone_version: "{version}"`
|
|
537
|
+
- Set `last_milestone_completed: "{ISO datetime}"`
|
|
538
|
+
- **Do NOT write to a ## History section in STATE.md** — History has been removed from STATE.md to keep it lean. Milestone completion records are preserved in the archive's STATS.md and ROADMAP.md snapshot.
|
|
539
|
+
- If a ## History section exists in STATE.md (from a prior version), remove it during milestone completion to enforce the new format.
|
|
540
|
+
|
|
541
|
+
**Run state reconcile after archival** to reset phases_total and current_phase to reflect the next milestone's phases:
|
|
542
|
+
|
|
543
|
+
```bash
|
|
544
|
+
node ${CLAUDE_PLUGIN_ROOT}/scripts/pbr-tools.js state reconcile
|
|
545
|
+
```
|
|
375
546
|
|
|
376
|
-
|
|
377
|
-
- {count} phases, {count} plans
|
|
378
|
-
- {count} commits, {lines} lines of code
|
|
379
|
-
- {duration} days
|
|
547
|
+
This command re-derives phase counts from ROADMAP.md and reports any phantom phase rows (progress table rows with no corresponding directory on disk). Review and remove phantom rows manually if no longer needed.
|
|
380
548
|
|
|
381
|
-
|
|
382
|
-
Git tag: {version}
|
|
549
|
+
**CRITICAL (no hook): Reconcile ROADMAP phase statuses NOW. Do NOT skip this step.**
|
|
383
550
|
|
|
551
|
+
7c2. **ROADMAP Reconciliation:**
|
|
552
|
+
After state reconcile, run a full reconciliation pass to fix any stale phase statuses across the entire ROADMAP:
|
|
384
553
|
|
|
554
|
+
```bash
|
|
555
|
+
node ${CLAUDE_PLUGIN_ROOT}/scripts/pbr-tools.js roadmap reconcile
|
|
556
|
+
```
|
|
385
557
|
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
558
|
+
- Log the output (number of entries fixed)
|
|
559
|
+
- This catches phase status mismatches that accumulated during the milestone lifecycle
|
|
560
|
+
- Covers both the just-completed milestone and any prior stale entries
|
|
389
561
|
|
|
390
|
-
|
|
562
|
+
7d. **Aggregate learnings into KNOWLEDGE.md from milestone phases:**
|
|
391
563
|
|
|
392
|
-
|
|
564
|
+
**CRITICAL (no hook): Run learnings aggregation NOW. Do NOT skip this step.**
|
|
393
565
|
|
|
394
|
-
|
|
566
|
+
```bash
|
|
567
|
+
node ${CLAUDE_PLUGIN_ROOT}/scripts/milestone-learnings.js .planning/milestones/{version} --project {project-name-from-STATE.md}
|
|
568
|
+
```
|
|
395
569
|
|
|
570
|
+
This script aggregates SUMMARY.md patterns, decisions, and deferred items into the project-scoped `.planning/KNOWLEDGE.md` (table format with K/P/L-prefixed IDs). It also writes to the global `~/.claude/learnings.jsonl` for cross-project use.
|
|
396
571
|
|
|
572
|
+
- If the script outputs an error, log it but do NOT abort milestone completion — learnings aggregation is advisory.
|
|
573
|
+
- Display the aggregation summary line to the user (e.g., "KNOWLEDGE.md: 5 new entries, 2 duplicates skipped").
|
|
574
|
+
- After aggregation, check for triggered deferral thresholds:
|
|
397
575
|
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
576
|
+
```bash
|
|
577
|
+
node ${CLAUDE_PLUGIN_ROOT}/scripts/pbr-tools.js learnings check-thresholds
|
|
578
|
+
```
|
|
401
579
|
|
|
580
|
+
If any thresholds are triggered, display each as a notification:
|
|
402
581
|
|
|
403
|
-
|
|
582
|
+
```
|
|
583
|
+
Note: Learnings threshold met — {key}: {trigger}. Consider implementing the deferred feature.
|
|
584
|
+
```
|
|
404
585
|
|
|
405
|
-
|
|
586
|
+
8. **Git tag:**
|
|
587
|
+
```bash
|
|
588
|
+
git tag -a {version} -m "Milestone: {name}"
|
|
589
|
+
```
|
|
406
590
|
|
|
407
|
-
|
|
591
|
+
9. **Generate RETROSPECTIVE.md:**
|
|
408
592
|
|
|
409
|
-
|
|
593
|
+
The CLI (`pbr-tools.js milestone complete`) auto-generates a RETROSPECTIVE.md entry. Verify it exists at `.planning/RETROSPECTIVE.md`. If the CLI was not used (manual completion), create the entry using `${CLAUDE_PLUGIN_ROOT}/templates/RETROSPECTIVE.md.tmpl` as the format reference. Fill in `{version}`, `{name}`, `{date}`, and the "What Was Built" section from MILESTONES.md accomplishments. Leave other sections as placeholders for the user to fill.
|
|
410
594
|
|
|
411
|
-
|
|
595
|
+
9aa. **Insights integration:**
|
|
412
596
|
|
|
413
|
-
|
|
414
|
-
- If version provided: audit that specific milestone
|
|
415
|
-
- If no version: audit the current milestone (most recent active)
|
|
597
|
+
Check for a recent /insights HTML report:
|
|
416
598
|
|
|
417
|
-
|
|
418
|
-
-
|
|
419
|
-
|
|
420
|
-
- Note any phases without verification
|
|
599
|
+
```bash
|
|
600
|
+
find ~/.claude/insights/ -name "*.html" -mtime -7 2>/dev/null | head -1
|
|
601
|
+
```
|
|
421
602
|
|
|
422
|
-
|
|
603
|
+
**If a recent report exists (modified within 7 days):**
|
|
604
|
+
1. Read the HTML file and extract key workflow findings (friction patterns, efficiency suggestions, recurring issues)
|
|
605
|
+
2. Append a "## Workflow Insights" section to `.planning/RETROSPECTIVE.md` with 3-5 bullet points summarizing the most relevant insights for this milestone's work
|
|
606
|
+
3. Add the RETROSPECTIVE.md to the git staging area
|
|
423
607
|
|
|
424
|
-
|
|
608
|
+
**If no recent report exists:**
|
|
609
|
+
Display this suggestion after the RETROSPECTIVE.md is generated:
|
|
425
610
|
|
|
426
|
-
|
|
611
|
+
```
|
|
612
|
+
Tip: Run /insights to capture workflow patterns from this milestone's sessions.
|
|
613
|
+
Insights feed into future audits and help the planner avoid repeated friction.
|
|
614
|
+
```
|
|
427
615
|
|
|
616
|
+
9a. **Commit:**
|
|
617
|
+
```bash
|
|
618
|
+
git add .planning/milestones/ .planning/phases/ .planning/ROADMAP.md .planning/PROJECT.md .planning/STATE.md .planning/RETROSPECTIVE.md
|
|
619
|
+
git commit -m "docs(planning): complete milestone {version}"
|
|
428
620
|
```
|
|
429
|
-
You are integration-checker. Perform cross-phase integration verification.
|
|
430
621
|
|
|
431
|
-
|
|
432
|
-
Phases to check: {list of phase directories}
|
|
622
|
+
**CRITICAL (no hook): Generate changelog entry NOW. Do NOT skip this step.**
|
|
433
623
|
|
|
434
|
-
|
|
435
|
-
1. Read all SUMMARY.md files for the milestone phases
|
|
436
|
-
2. Build a dependency graph from provides/affects/requires fields
|
|
437
|
-
3. Verify integration points:
|
|
438
|
-
a. Every "requires" in a later phase is "provided" by an earlier phase
|
|
439
|
-
b. Every "affects" target still exists and hasn't been broken
|
|
440
|
-
c. No circular dependencies
|
|
441
|
-
d. No orphaned provides (things built but never consumed)
|
|
442
|
-
4. Check for:
|
|
443
|
-
- Broken imports/references between phases
|
|
444
|
-
- API contract mismatches
|
|
445
|
-
- Missing error handling at integration points
|
|
446
|
-
- Configuration inconsistencies
|
|
447
|
-
5. Return findings as a structured report
|
|
448
|
-
```
|
|
624
|
+
9b. **Generate changelog entry:**
|
|
449
625
|
|
|
450
|
-
|
|
451
|
-
- Read REQUIREMENTS.md
|
|
452
|
-
- For each requirement tagged for this milestone:
|
|
453
|
-
- Search VERIFICATION.md files for coverage
|
|
454
|
-
- Search SUMMARY.md `provides` fields
|
|
455
|
-
- Flag uncovered requirements
|
|
626
|
+
Generate a user-facing changelog entry for this milestone. Read all SUMMARY.md files from the milestone phases (now in `.planning/milestones/{version}/phases/`) and categorize deliverables into Keep a Changelog sections:
|
|
456
627
|
|
|
457
|
-
|
|
628
|
+
- **Added** — New features, commands, capabilities (from SUMMARY.md `provides` fields)
|
|
629
|
+
- **Changed** — Modifications to existing behavior, UI updates, performance improvements
|
|
630
|
+
- **Fixed** — Bug fixes, error corrections (from commits with `fix:` type)
|
|
458
631
|
|
|
459
|
-
|
|
632
|
+
Format each entry with a **bolded feature name** followed by an em-dash and description:
|
|
633
|
+
```markdown
|
|
634
|
+
### Added
|
|
635
|
+
- **Feature name** — What it does and why it matters
|
|
636
|
+
- **Another feature** — Description focusing on user impact
|
|
637
|
+
```
|
|
460
638
|
|
|
461
|
-
|
|
639
|
+
Rules for good entries:
|
|
640
|
+
- Lead with the user-visible impact, not the implementation detail
|
|
641
|
+
- Group related commits into a single entry (e.g., 5 commits for "auth" become one "Authentication system" entry)
|
|
642
|
+
- Use bold feature names, not commit scopes
|
|
643
|
+
- No commit hashes — this is prose, not a git log
|
|
644
|
+
- No internal scopes (phase-plan numbers, TDD markers)
|
|
645
|
+
- End with install line: `Install/upgrade: \`npx @sienklogic/plan-build-run@latest\``
|
|
462
646
|
|
|
463
|
-
|
|
647
|
+
Draft the full entry and present it to the user for review:
|
|
464
648
|
|
|
465
|
-
|
|
649
|
+
Use AskUserQuestion:
|
|
650
|
+
```
|
|
651
|
+
question: "Here's the draft changelog for {version}. Want to edit it before writing?"
|
|
652
|
+
header: "Changelog"
|
|
653
|
+
options:
|
|
654
|
+
- label: "Looks good" description: "Write this to CHANGELOG.md as-is"
|
|
655
|
+
- label: "Edit" description: "I'll provide corrections"
|
|
656
|
+
- label: "Skip changelog" description: "Don't update the changelog for this release"
|
|
657
|
+
```
|
|
658
|
+
|
|
659
|
+
- If "Looks good": write the entry to CHANGELOG.md (insert after the header, before any existing version entries)
|
|
660
|
+
- If "Edit" or "Other": apply the user's corrections, then present again for final confirmation
|
|
661
|
+
- If "Skip changelog": proceed without changelog update
|
|
662
|
+
|
|
663
|
+
If writing to CHANGELOG.md:
|
|
664
|
+
```bash
|
|
665
|
+
git add CHANGELOG.md
|
|
666
|
+
git commit -m "docs: update changelog for {version}"
|
|
466
667
|
```
|
|
467
|
-
╔══════════════════════════════════════════════════════════════╗
|
|
468
|
-
║ PLAN-BUILD-RUN ► MILESTONE AUDIT PASSED ✓ ║
|
|
469
|
-
╚══════════════════════════════════════════════════════════════╝
|
|
470
668
|
|
|
471
|
-
|
|
669
|
+
9c. **Push milestone to remote:**
|
|
472
670
|
|
|
671
|
+
Use AskUserQuestion to ask the user how they want to publish the milestone:
|
|
473
672
|
|
|
673
|
+
```
|
|
674
|
+
question: "How should this milestone be published to GitHub?"
|
|
675
|
+
header: "Publish"
|
|
676
|
+
options:
|
|
677
|
+
- label: "Push tag + commits" description: "Push the v{version} tag and any unpushed commits to origin"
|
|
678
|
+
- label: "Skip for now" description: "Keep everything local — push later manually"
|
|
679
|
+
```
|
|
474
680
|
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
681
|
+
- If "Push tag + commits": run `git push origin main --follow-tags` to push both commits and the annotated tag in one command. Display success or error.
|
|
682
|
+
- If "Skip for now": display reminder: "Tag v{version} is local only. Push when ready: `git push origin main --follow-tags`"
|
|
683
|
+
- If "Other": follow user instructions (e.g., create a PR, push to a different branch, etc.)
|
|
478
684
|
|
|
479
|
-
|
|
685
|
+
9d. **Automatic npm release:**
|
|
480
686
|
|
|
481
|
-
|
|
687
|
+
After pushing, automatically run the npm release to publish this milestone:
|
|
482
688
|
|
|
483
|
-
|
|
689
|
+
```bash
|
|
690
|
+
npm run release -- --minor
|
|
691
|
+
```
|
|
484
692
|
|
|
693
|
+
Display the output to the user. The `--minor` flag is used because milestone completions always represent new features.
|
|
485
694
|
|
|
695
|
+
- If the release succeeds: display the new version number and GitHub Release URL
|
|
696
|
+
- If the release fails: show the error as an advisory warning — the milestone is already archived. Suggest the user run `npm run release` manually after fixing the issue.
|
|
486
697
|
|
|
487
|
-
|
|
488
|
-
- `/pbr:milestone gaps` — address any minor issues first
|
|
489
|
-
- `/pbr:status` — see project status
|
|
698
|
+
### Post-Completion Smoke Test
|
|
490
699
|
|
|
700
|
+
If `config.deployment.smoke_test_command` is set and non-empty:
|
|
491
701
|
|
|
492
|
-
|
|
702
|
+
1. Run the command via Bash
|
|
703
|
+
2. If exit code 0: display "Smoke test passed" with command output
|
|
704
|
+
3. If exit code non-zero: display advisory warning:
|
|
493
705
|
|
|
494
|
-
**If GAPS FOUND:**
|
|
495
706
|
```
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
707
|
+
⚠ Smoke test failed (exit code {N})
|
|
708
|
+
Command: {smoke_test_command}
|
|
709
|
+
Output: {first 20 lines of output}
|
|
710
|
+
```
|
|
499
711
|
|
|
500
|
-
|
|
501
|
-
- {gap 1}
|
|
502
|
-
- {gap 2}
|
|
712
|
+
This is advisory only — the milestone is already archived. Surface it as a potential issue for the user to investigate.
|
|
503
713
|
|
|
714
|
+
10. **Confirm** with branded output — read `${CLAUDE_SKILL_DIR}/templates/complete-output.md.tmpl` and fill in `{version}`, `{count}` (phases, plans, commits), `{lines}`, `{duration}`.
|
|
504
715
|
|
|
716
|
+
**NEXT UP block after milestone complete:**
|
|
505
717
|
|
|
506
|
-
|
|
718
|
+
After displaying the branded complete-output banner, always display a NEXT UP routing block:
|
|
719
|
+
|
|
720
|
+
```
|
|
721
|
+
╔══════════════════════════════════════════════════════════════╗
|
|
507
722
|
║ ▶ NEXT UP ║
|
|
508
723
|
╚══════════════════════════════════════════════════════════════╝
|
|
509
724
|
|
|
510
|
-
|
|
725
|
+
**Start the next milestone** — continue development with new phases
|
|
511
726
|
|
|
512
|
-
|
|
727
|
+
`/pbr:milestone new`
|
|
513
728
|
|
|
514
|
-
|
|
729
|
+
**Also available:**
|
|
730
|
+
- `/pbr:release` — tag and publish this milestone as a GitHub Release
|
|
731
|
+
- `/pbr:status` — review project state before continuing
|
|
515
732
|
|
|
733
|
+
<sub>`/clear` first → fresh context window</sub>
|
|
734
|
+
```
|
|
516
735
|
|
|
736
|
+
This ensures the milestone complete subcommand never ends in a routing dead end.
|
|
517
737
|
|
|
518
|
-
|
|
519
|
-
- `/pbr:milestone complete` — proceed despite gaps
|
|
520
|
-
- `/pbr:status` — see project status
|
|
738
|
+
---
|
|
521
739
|
|
|
740
|
+
## Subcommand: `audit`
|
|
522
741
|
|
|
523
|
-
|
|
742
|
+
Verify milestone completion with cross-phase integration checks.
|
|
524
743
|
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
744
|
+
### Flow
|
|
745
|
+
|
|
746
|
+
1. **Determine target:**
|
|
747
|
+
- If version provided: audit that specific milestone
|
|
748
|
+
- If no version: audit the current milestone (use `blob.milestones` to identify the most recent active milestone)
|
|
749
|
+
|
|
750
|
+
2. **Read all VERIFICATION.md files** for milestone phases (use `blob.milestones` to identify the phase range):
|
|
751
|
+
- Collect verification results
|
|
752
|
+
- Note any `gaps_found` statuses
|
|
753
|
+
- Note any phases without verification
|
|
530
754
|
|
|
531
|
-
|
|
755
|
+
3. **Spawn integration checker:**
|
|
532
756
|
|
|
757
|
+
Display to the user: `◆ Spawning integration checker...`
|
|
533
758
|
|
|
759
|
+
Spawn `Task(subagent_type: "pbr:integration-checker")`. Read `${CLAUDE_SKILL_DIR}/templates/integration-checker-prompt.md.tmpl`, fill in `{version or "current"}`, `{list of phase directories}`, and `{phase SUMMARY.md paths}`, then use the filled template as the Task() prompt.
|
|
534
760
|
|
|
535
|
-
|
|
536
|
-
║ ▶ NEXT UP ║
|
|
537
|
-
╚══════════════════════════════════════════════════════════════╝
|
|
761
|
+
4. **Check integration-checker completion:**
|
|
538
762
|
|
|
539
|
-
|
|
763
|
+
After the integration-checker completes, check for `## INTEGRATION CHECK COMPLETE` in the Task() output. If the marker is absent, warn: `⚠ Integration checker did not return completion marker — results may be incomplete.` Proceed with whatever findings were returned but note the incomplete status in the audit report.
|
|
540
764
|
|
|
541
|
-
|
|
542
|
-
|
|
765
|
+
5. **Check requirements coverage:**
|
|
766
|
+
- Read REQUIREMENTS.md
|
|
767
|
+
- For each requirement tagged for this milestone:
|
|
768
|
+
- Search VERIFICATION.md files for coverage
|
|
769
|
+
- Search SUMMARY.md `provides` fields
|
|
770
|
+
- Flag uncovered requirements
|
|
543
771
|
|
|
544
|
-
|
|
772
|
+
6. **Write audit report:**
|
|
545
773
|
|
|
774
|
+
Create `.planning/{version}-MILESTONE-AUDIT.md` using the structured template:
|
|
546
775
|
|
|
547
|
-
|
|
776
|
+
Read `${CLAUDE_PLUGIN_ROOT}/templates/MILESTONE-AUDIT.md.tmpl` for the audit report format with YAML frontmatter scores. Fill in all `{variable}` placeholders with actual data from the audit. The YAML frontmatter MUST include `scores` (requirements, phases, integration, flows), `gaps` array, and `tech_debt` array.
|
|
777
|
+
|
|
778
|
+
**Spot-check:** After writing, verify `.planning/{version}-MILESTONE-AUDIT.md` exists on disk using Glob. If missing, re-attempt the write. If still missing, display an error and include findings inline.
|
|
779
|
+
|
|
780
|
+
7. **Report to user** using branded banners — read `${CLAUDE_SKILL_DIR}/templates/audit-output.md.tmpl`. The template contains all 3 variants (PASSED, GAPS FOUND, TECH DEBT). Select the appropriate section based on audit result. Fill in `{version}`, `{count}`, `{gap 1}`, `{gap 2}` as applicable.
|
|
548
781
|
|
|
549
782
|
---
|
|
550
783
|
|
|
@@ -557,7 +790,7 @@ Create phases to close gaps found during an audit.
|
|
|
557
790
|
1. **Find most recent audit:**
|
|
558
791
|
- Search for `*-MILESTONE-AUDIT.md` in `.planning/`
|
|
559
792
|
- If multiple, use the most recent
|
|
560
|
-
- If none: "No audit found. Run `/pbr:milestone
|
|
793
|
+
- If none: "No audit found. Run `/pbr:audit-milestone` first."
|
|
561
794
|
|
|
562
795
|
2. **Read audit report:**
|
|
563
796
|
- Extract all gaps and tech debt items
|
|
@@ -584,6 +817,7 @@ Create phases to close gaps found during an audit.
|
|
|
584
817
|
Nice to fix ({count}):
|
|
585
818
|
- {gap}: {description}
|
|
586
819
|
|
|
820
|
+
**CRITICAL -- DO NOT SKIP**: Present the following choice to the user via AskUserQuestion before proceeding:
|
|
587
821
|
Use AskUserQuestion (pattern: multi-option-priority from `skills/shared/gate-prompts.md`):
|
|
588
822
|
question: "Which gaps should we address? ({must_count} must-fix, {should_count} should-fix, {nice_count} nice-to-fix)"
|
|
589
823
|
header: "Priority"
|
|
@@ -624,41 +858,13 @@ Create phases to close gaps found during an audit.
|
|
|
624
858
|
docs(planning): add gap-closure phases from milestone audit
|
|
625
859
|
```
|
|
626
860
|
|
|
627
|
-
9. **Confirm** with branded output
|
|
628
|
-
```
|
|
629
|
-
╔══════════════════════════════════════════════════════════════╗
|
|
630
|
-
║ PLAN-BUILD-RUN ► GAP PHASES CREATED ✓ ║
|
|
631
|
-
╚══════════════════════════════════════════════════════════════╝
|
|
632
|
-
|
|
633
|
-
Created {count} gap-closure phase(s):
|
|
634
|
-
- Phase {N}: {name}
|
|
635
|
-
- Phase {N+1}: {name}
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
╔══════════════════════════════════════════════════════════════╗
|
|
640
|
-
║ ▶ NEXT UP ║
|
|
641
|
-
╚══════════════════════════════════════════════════════════════╝
|
|
642
|
-
|
|
643
|
-
**Plan the first gap-closure phase**
|
|
644
|
-
|
|
645
|
-
`/pbr:plan {N}`
|
|
646
|
-
|
|
647
|
-
<sub>`/clear` first → fresh context window</sub>
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
**Also available:**
|
|
652
|
-
- `/pbr:status` — see project status
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
```
|
|
861
|
+
9. **Confirm** with branded output — read `${CLAUDE_SKILL_DIR}/templates/gaps-output.md.tmpl` and fill in `{count}` (gap-closure phases created), `{N}` (first gap phase number), `{name}` (phase name).
|
|
656
862
|
|
|
657
863
|
---
|
|
658
864
|
|
|
659
865
|
## State Integration
|
|
660
866
|
|
|
661
|
-
All subcommands update STATE.md:
|
|
867
|
+
All subcommands use `blob.state` and `blob.config` from the init call for reading state. All subcommands update STATE.md on write:
|
|
662
868
|
- `new`: Sets current milestone, resets phase
|
|
663
869
|
- `complete`: Clears current milestone, updates history
|
|
664
870
|
- `audit`: Notes audit status and date
|
|
@@ -670,7 +876,7 @@ All subcommands update STATE.md:
|
|
|
670
876
|
|
|
671
877
|
Reference: `skills/shared/commit-planning-docs.md` for the standard commit pattern.
|
|
672
878
|
|
|
673
|
-
All subcommands commit if `planning.commit_docs
|
|
879
|
+
All subcommands commit if `blob.config.planning.commit_docs` is true:
|
|
674
880
|
- `new`: `docs(planning): start milestone "{name}" (phases {start}-{end})`
|
|
675
881
|
- `complete`: `docs(planning): complete milestone {version}`
|
|
676
882
|
- `audit`: `docs(planning): audit milestone {version} - {status}`
|
|
@@ -681,60 +887,12 @@ Tags (complete only):
|
|
|
681
887
|
|
|
682
888
|
---
|
|
683
889
|
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
### No ROADMAP.md exists
|
|
687
|
-
- For `new`: Create one from scratch (this is a fresh start)
|
|
688
|
-
- For others, display:
|
|
689
|
-
```
|
|
690
|
-
╔══════════════════════════════════════════════════════════════╗
|
|
691
|
-
║ ERROR ║
|
|
692
|
-
╚══════════════════════════════════════════════════════════════╝
|
|
693
|
-
|
|
694
|
-
No roadmap found.
|
|
695
|
-
|
|
696
|
-
**To fix:** Run `/pbr:begin` or `/pbr:milestone new` first.
|
|
697
|
-
```
|
|
698
|
-
|
|
699
|
-
### Milestone has no phases
|
|
700
|
-
Display:
|
|
701
|
-
```
|
|
702
|
-
╔══════════════════════════════════════════════════════════════╗
|
|
703
|
-
║ ERROR ║
|
|
704
|
-
╚══════════════════════════════════════════════════════════════╝
|
|
890
|
+
Reference: `skills/shared/error-reporting.md` for branded error output patterns.
|
|
705
891
|
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
**To fix:**
|
|
709
|
-
- For `complete`: Nothing to complete — add phases first.
|
|
710
|
-
- For `audit`: Nothing to audit — build phases first.
|
|
711
|
-
```
|
|
712
|
-
|
|
713
|
-
### Audit finds no gaps
|
|
714
|
-
- Status: PASSED
|
|
715
|
-
- Skip the recommendations section
|
|
716
|
-
- Suggest proceeding to complete
|
|
717
|
-
|
|
718
|
-
### Version already exists (tag collision)
|
|
719
|
-
Display:
|
|
720
|
-
```
|
|
721
|
-
╔══════════════════════════════════════════════════════════════╗
|
|
722
|
-
║ ERROR ║
|
|
723
|
-
╚══════════════════════════════════════════════════════════════╝
|
|
724
|
-
|
|
725
|
-
Git tag {version} already exists.
|
|
726
|
-
|
|
727
|
-
**To fix:** Use a different version number (e.g., {version}.1).
|
|
728
|
-
```
|
|
729
|
-
Ask for alternative via AskUserQuestion.
|
|
730
|
-
|
|
731
|
-
### Partially verified milestone
|
|
732
|
-
- `complete` warns but allows proceeding with user confirmation
|
|
733
|
-
- `audit` treats unverified phases as gaps
|
|
892
|
+
## Edge Cases
|
|
734
893
|
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
- Warn: "This milestone has {count} phases. The audit may take a few minutes."
|
|
894
|
+
For all edge case handling, see `${CLAUDE_SKILL_DIR}/templates/edge-cases.md`.
|
|
895
|
+
Key scenarios: no ROADMAP.md, no phases, no gaps found, version collision, partially verified, large milestone (8+ phases).
|
|
738
896
|
|
|
739
897
|
---
|
|
740
898
|
|