@sienklogic/plan-build-run 2.1.0 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +51 -49
- package/CLAUDE.md +48 -32
- package/LICENSE +2 -1
- package/README.md +771 -87
- package/agents/pbr-audit.md +266 -0
- package/agents/pbr-codebase-mapper.md +236 -0
- package/agents/pbr-debugger.md +312 -0
- package/agents/pbr-dev-sync.md +220 -0
- package/agents/pbr-executor.md +559 -0
- package/agents/pbr-general.md +191 -0
- package/agents/pbr-integration-checker.md +237 -0
- package/agents/pbr-nyquist-auditor.md +252 -0
- package/agents/pbr-plan-checker.md +312 -0
- package/agents/pbr-planner.md +495 -0
- package/agents/pbr-researcher.md +314 -0
- package/agents/pbr-roadmapper.md +346 -0
- package/agents/pbr-synthesizer.md +271 -0
- package/agents/pbr-verifier.md +495 -0
- package/bin/install.js +2752 -0
- package/commands/pbr/add-phase.md +75 -0
- package/commands/pbr/add-todo.md +8 -0
- package/commands/pbr/audit-milestone.md +8 -0
- package/commands/pbr/audit.md +5 -0
- package/commands/pbr/check-todos.md +8 -0
- package/commands/pbr/complete-milestone.md +8 -0
- package/commands/pbr/config.md +5 -0
- package/commands/pbr/continue.md +5 -0
- package/commands/pbr/dashboard.md +5 -0
- package/commands/pbr/debug.md +5 -0
- package/commands/pbr/discuss-phase.md +6 -0
- package/commands/pbr/do.md +5 -0
- package/commands/pbr/execute-phase.md +6 -0
- package/commands/pbr/explore.md +5 -0
- package/commands/pbr/health.md +5 -0
- package/commands/pbr/help.md +5 -0
- package/commands/pbr/import.md +5 -0
- package/commands/pbr/insert-phase.md +65 -0
- package/commands/pbr/join-discord.md +11 -0
- package/commands/pbr/list-phase-assumptions.md +69 -0
- package/commands/pbr/map-codebase.md +6 -0
- package/commands/pbr/new-milestone.md +8 -0
- package/commands/pbr/new-project.md +6 -0
- package/commands/pbr/note.md +5 -0
- package/commands/pbr/pause-work.md +5 -0
- package/commands/pbr/plan-milestone-gaps.md +7 -0
- package/commands/pbr/plan-phase.md +6 -0
- package/commands/pbr/progress.md +6 -0
- package/commands/pbr/quick.md +5 -0
- package/commands/pbr/reapply-patches.md +40 -0
- package/commands/pbr/remove-phase.md +66 -0
- package/commands/pbr/research-phase.md +59 -0
- package/commands/pbr/resume-work.md +5 -0
- package/commands/pbr/set-profile.md +6 -0
- package/commands/pbr/settings.md +5 -0
- package/commands/pbr/setup.md +5 -0
- package/commands/pbr/statusline.md +5 -0
- package/commands/pbr/test.md +5 -0
- package/commands/pbr/undo.md +5 -0
- package/commands/pbr/update.md +37 -0
- package/commands/pbr/verify-work.md +6 -0
- package/dashboard/bin/cli.cjs +85 -0
- package/dashboard/eslint.config.js +37 -0
- package/dashboard/index.html +20 -0
- package/dashboard/package.json +28 -23
- package/dashboard/server/index.js +134 -0
- package/dashboard/server/lib/frontmatter.js +92 -0
- package/dashboard/server/middleware/static.js +35 -0
- package/dashboard/server/package.json +16 -0
- package/dashboard/server/routes/agents.js +213 -0
- package/dashboard/server/routes/config.js +64 -0
- package/dashboard/server/routes/health.js +21 -0
- package/dashboard/server/routes/memory.js +107 -0
- package/dashboard/server/routes/planning.js +234 -0
- package/dashboard/server/routes/projects.js +36 -0
- package/dashboard/server/routes/requirements.js +40 -0
- package/dashboard/server/routes/roadmap.js +69 -0
- package/dashboard/server/routes/status.js +25 -0
- package/dashboard/server/routes/telemetry.js +171 -0
- package/dashboard/server/services/file-watcher.js +105 -0
- package/dashboard/server/services/planning-reader.js +679 -0
- package/dashboard/server/test/cli.test.js +34 -0
- package/dashboard/server/test/frontmatter.test.js +104 -0
- package/dashboard/server/test/isolation.test.js +32 -0
- package/dashboard/server/test/planning-reader.test.js +151 -0
- package/dashboard/server/test/routes.test.js +91 -0
- package/dashboard/server/test/ws.test.js +81 -0
- package/dashboard/server/ws.js +96 -0
- package/dashboard/src/App.jsx +147 -0
- package/dashboard/src/components/charts/BudgetBars.jsx +42 -0
- package/dashboard/src/components/charts/ContextRadar.jsx +34 -0
- package/dashboard/src/components/charts/PhaseDonut.jsx +66 -0
- package/dashboard/src/components/charts/SuccessTrend.jsx +45 -0
- package/dashboard/src/components/charts/TokenChart.jsx +55 -0
- package/dashboard/src/components/charts/index.js +5 -0
- package/dashboard/src/components/config/CfgSection.jsx +93 -0
- package/dashboard/src/components/layout/Header.jsx +89 -0
- package/dashboard/src/components/layout/ProjectSwitcher.jsx +160 -0
- package/dashboard/src/components/layout/Sidebar.jsx +161 -0
- package/dashboard/src/components/ui/AutoModeBanner.jsx +138 -0
- package/dashboard/src/components/ui/BackButton.jsx +27 -0
- package/dashboard/src/components/ui/Badge.jsx +27 -0
- package/dashboard/src/components/ui/Card.jsx +23 -0
- package/dashboard/src/components/ui/ChartTooltip.jsx +48 -0
- package/dashboard/src/components/ui/CheckpointBox.jsx +110 -0
- package/dashboard/src/components/ui/CodeBlock.jsx +27 -0
- package/dashboard/src/components/ui/ConfidenceBadge.jsx +20 -0
- package/dashboard/src/components/ui/ConfirmModal.jsx +161 -0
- package/dashboard/src/components/ui/ConnectionBanner.jsx +60 -0
- package/dashboard/src/components/ui/ErrorBoundary.jsx +106 -0
- package/dashboard/src/components/ui/ErrorBox.jsx +107 -0
- package/dashboard/src/components/ui/KeyValue.jsx +33 -0
- package/dashboard/src/components/ui/LoadingSkeleton.jsx +84 -0
- package/dashboard/src/components/ui/MetricCard.jsx +58 -0
- package/dashboard/src/components/ui/NextUpBlock.jsx +92 -0
- package/dashboard/src/components/ui/NumberInput.jsx +44 -0
- package/dashboard/src/components/ui/PBRBanner.jsx +47 -0
- package/dashboard/src/components/ui/PipelineView.jsx +130 -0
- package/dashboard/src/components/ui/ProgressBar.jsx +28 -0
- package/dashboard/src/components/ui/ProgressDisplay.jsx +47 -0
- package/dashboard/src/components/ui/QualityGateBadge.jsx +15 -0
- package/dashboard/src/components/ui/SectionTitle.jsx +35 -0
- package/dashboard/src/components/ui/SelectInput.jsx +45 -0
- package/dashboard/src/components/ui/StatusDot.jsx +51 -0
- package/dashboard/src/components/ui/StatusSymbol.jsx +49 -0
- package/dashboard/src/components/ui/TabBar.jsx +41 -0
- package/dashboard/src/components/ui/TextInput.jsx +42 -0
- package/dashboard/src/components/ui/Toast.jsx +117 -0
- package/dashboard/src/components/ui/Toggle.jsx +70 -0
- package/dashboard/src/components/ui/index.js +29 -0
- package/dashboard/src/hooks/useDocumentTitle.js +16 -0
- package/dashboard/src/hooks/useFetch.js +50 -0
- package/dashboard/src/hooks/useToast.jsx +43 -0
- package/dashboard/src/hooks/useWebSocket.js +103 -0
- package/dashboard/src/lib/api.js +112 -0
- package/dashboard/src/lib/configSchema.js +189 -0
- package/dashboard/src/lib/constants.js +16 -0
- package/dashboard/src/main.jsx +15 -0
- package/dashboard/src/pages/AgentsPage.jsx +191 -0
- package/dashboard/src/pages/ConfigPage.jsx +298 -0
- package/dashboard/src/pages/HooksPage.jsx +412 -0
- package/dashboard/src/pages/LiveFeed.jsx +274 -0
- package/dashboard/src/pages/MemoryPage.jsx +107 -0
- package/dashboard/src/pages/Overview.jsx +360 -0
- package/dashboard/src/pages/PhaseDetailView.jsx +216 -0
- package/dashboard/src/pages/PlanningPage.jsx +181 -0
- package/dashboard/src/pages/RoadmapPage.jsx +251 -0
- package/dashboard/src/pages/Telemetry.jsx +113 -0
- package/dashboard/src/pages/planning/DecisionsTab.jsx +153 -0
- package/dashboard/src/pages/planning/FilesTab.jsx +420 -0
- package/dashboard/src/pages/planning/MilestoneDetail.jsx +319 -0
- package/dashboard/src/pages/planning/MilestonesTab.jsx +151 -0
- package/dashboard/src/pages/planning/NotesTab.jsx +251 -0
- package/dashboard/src/pages/planning/PhasesTab.jsx +218 -0
- package/dashboard/src/pages/planning/QuickTab.jsx +50 -0
- package/dashboard/src/pages/planning/ResearchTab.jsx +103 -0
- package/dashboard/src/pages/planning/TodosTab.jsx +297 -0
- package/dashboard/src/theme/ThemeProvider.jsx +38 -0
- package/dashboard/src/theme/tokens.js +17 -0
- package/dashboard/tests/components/ConfirmModal.test.jsx +179 -0
- package/dashboard/tests/components/ConnectionBanner.test.jsx +37 -0
- package/dashboard/tests/components/ErrorBoundary.test.jsx +59 -0
- package/dashboard/tests/components/LoadingSkeleton.test.jsx +46 -0
- package/dashboard/tests/components/ToastContainer.test.jsx +47 -0
- package/dashboard/tests/components/Toggle.test.jsx +61 -0
- package/dashboard/tests/hooks/useFetch.test.jsx +77 -0
- package/dashboard/tests/hooks/useToast.test.jsx +78 -0
- package/dashboard/tests/hooks/useWebSocket.test.jsx +128 -0
- package/dashboard/tests/pages/ConfigPage.test.jsx +199 -0
- package/dashboard/tests/pages/PlanningPage.test.jsx +119 -0
- package/dashboard/tests/pages/planning/FilesTab.test.jsx +198 -0
- package/dashboard/tests/pages/planning/NotesTab.test.jsx +178 -0
- package/dashboard/tests/pages/planning/TodosTab.test.jsx +188 -0
- package/dashboard/tests/performance.test.jsx +46 -0
- package/dashboard/tests/routes/config.test.js +98 -0
- package/dashboard/tests/routes/health.test.js +40 -0
- package/dashboard/tests/routes/planning.test.js +112 -0
- package/dashboard/tests/routes/roadmap.test.js +91 -0
- package/dashboard/tests/routes/status.test.js +131 -0
- package/dashboard/tests/server/planning-reader.test.js +153 -0
- package/dashboard/tests/setup.js +7 -0
- package/dashboard/vite.config.js +41 -0
- package/hooks/dist/auto-continue.js +201 -0
- package/hooks/dist/block-skill-self-read.js +77 -0
- package/hooks/dist/branding-audit.js +232 -0
- package/hooks/dist/check-agent-state-write.js +63 -0
- package/hooks/dist/check-config-change.js +188 -0
- package/hooks/dist/check-dangerous-commands.js +184 -0
- package/hooks/dist/check-doc-sprawl.js +102 -0
- package/hooks/dist/check-phase-boundary.js +190 -0
- package/hooks/dist/check-plan-format.js +654 -0
- package/hooks/dist/check-roadmap-sync.js +491 -0
- package/hooks/dist/check-skill-workflow.js +353 -0
- package/hooks/dist/check-state-sync.js +612 -0
- package/hooks/dist/check-subagent-output.js +754 -0
- package/hooks/dist/check-summary-gate.js +198 -0
- package/hooks/dist/context-bridge.js +342 -0
- package/hooks/dist/context-budget-check.js +441 -0
- package/hooks/dist/enforce-pbr-workflow.js +277 -0
- package/hooks/dist/event-handler.js +217 -0
- package/hooks/dist/event-logger.js +92 -0
- package/hooks/dist/hook-logger.js +80 -0
- package/hooks/dist/hook-server-client.js +341 -0
- package/hooks/dist/hook-server.js +336 -0
- package/hooks/dist/hooks-schema.json +85 -0
- package/hooks/dist/hooks.json +288 -0
- package/hooks/dist/instructions-loaded.js +107 -0
- package/hooks/dist/intercept-plan-mode.js +48 -0
- package/hooks/dist/log-notification.js +87 -0
- package/hooks/dist/log-subagent.js +303 -0
- package/hooks/dist/log-tool-failure.js +140 -0
- package/hooks/dist/milestone-learnings.js +290 -0
- package/hooks/dist/post-bash-triage.js +151 -0
- package/hooks/dist/post-write-dispatch.js +227 -0
- package/hooks/dist/post-write-quality.js +207 -0
- package/hooks/dist/pre-bash-dispatch.js +137 -0
- package/hooks/dist/pre-write-dispatch.js +156 -0
- package/hooks/dist/progress-tracker.js +742 -0
- package/hooks/dist/prompt-routing.js +152 -0
- package/hooks/dist/run-hook.js +144 -0
- package/hooks/dist/session-cleanup.js +455 -0
- package/hooks/dist/session-tracker.js +78 -0
- package/hooks/dist/status-line.js +471 -0
- package/hooks/dist/suggest-compact.js +220 -0
- package/hooks/dist/sync-context-to-claude.js +100 -0
- package/hooks/dist/task-completed.js +167 -0
- package/hooks/dist/track-context-budget.js +317 -0
- package/hooks/dist/validate-commit.js +265 -0
- package/hooks/dist/validate-plugin-structure.js +193 -0
- package/hooks/dist/validate-skill-args.js +219 -0
- package/hooks/dist/validate-task.js +256 -0
- package/hooks/dist/worktree-create.js +144 -0
- package/hooks/dist/worktree-remove.js +147 -0
- package/package.json +53 -40
- package/plan-build-run/bin/config-schema.json +406 -0
- package/plan-build-run/bin/dashboard-launch.cjs +114 -0
- package/plan-build-run/bin/event-logger.cjs +92 -0
- package/plan-build-run/bin/lib/alternatives.cjs +198 -0
- package/plan-build-run/bin/lib/build.cjs +717 -0
- package/plan-build-run/bin/lib/circuit-state.cjs +133 -0
- package/plan-build-run/bin/lib/commands.cjs +482 -0
- package/plan-build-run/bin/lib/config.cjs +681 -0
- package/plan-build-run/bin/lib/context.cjs +216 -0
- package/plan-build-run/bin/lib/core.cjs +1548 -0
- package/plan-build-run/bin/lib/frontmatter.cjs +299 -0
- package/plan-build-run/bin/lib/gates/advisories.cjs +129 -0
- package/plan-build-run/bin/lib/gates/build-dependency.cjs +100 -0
- package/plan-build-run/bin/lib/gates/build-executor.cjs +79 -0
- package/plan-build-run/bin/lib/gates/doc-existence.cjs +46 -0
- package/plan-build-run/bin/lib/gates/helpers.cjs +74 -0
- package/plan-build-run/bin/lib/gates/milestone-complete.cjs +120 -0
- package/plan-build-run/bin/lib/gates/plan-executor.cjs +36 -0
- package/plan-build-run/bin/lib/gates/quick-executor.cjs +76 -0
- package/plan-build-run/bin/lib/gates/review-planner.cjs +61 -0
- package/plan-build-run/bin/lib/gates/review-verifier.cjs +69 -0
- package/plan-build-run/bin/lib/history.cjs +147 -0
- package/plan-build-run/bin/lib/init.cjs +304 -0
- package/plan-build-run/bin/lib/learnings.cjs +312 -0
- package/plan-build-run/bin/lib/local-llm/health.cjs +12 -0
- package/plan-build-run/bin/lib/local-llm/index.cjs +89 -0
- package/plan-build-run/bin/lib/local-llm/metrics.cjs +20 -0
- package/plan-build-run/bin/lib/local-llm/operations/classify-artifact.cjs +4 -0
- package/plan-build-run/bin/lib/local-llm/operations/classify-commit.cjs +4 -0
- package/plan-build-run/bin/lib/local-llm/operations/classify-error.cjs +4 -0
- package/plan-build-run/bin/lib/local-llm/operations/classify-file-intent.cjs +4 -0
- package/plan-build-run/bin/lib/local-llm/operations/triage-test-output.cjs +12 -0
- package/plan-build-run/bin/lib/local-llm/operations/validate-task.cjs +4 -0
- package/plan-build-run/bin/lib/migrate.cjs +248 -0
- package/plan-build-run/bin/lib/milestone.cjs +245 -0
- package/plan-build-run/bin/lib/phase.cjs +1021 -0
- package/plan-build-run/bin/lib/preview.cjs +174 -0
- package/plan-build-run/bin/lib/reference.cjs +234 -0
- package/plan-build-run/bin/lib/roadmap.cjs +909 -0
- package/plan-build-run/bin/lib/skill-section.cjs +98 -0
- package/plan-build-run/bin/lib/spot-check.cjs +116 -0
- package/plan-build-run/bin/lib/state.cjs +641 -0
- package/plan-build-run/bin/lib/step-verify.cjs +149 -0
- package/plan-build-run/bin/lib/template.cjs +222 -0
- package/plan-build-run/bin/lib/todo.cjs +300 -0
- package/plan-build-run/bin/lib/verify.cjs +820 -0
- package/plan-build-run/bin/pbr-tools.cjs +1287 -0
- package/plan-build-run/references/CLAUDE.md +7 -0
- package/plan-build-run/references/agent-contracts.md +324 -0
- package/plan-build-run/references/agent-teams.md +54 -0
- package/plan-build-run/references/behavioral-contexts.md +53 -0
- package/plan-build-run/references/checkpoints.md +776 -0
- package/plan-build-run/references/config-reference.md +363 -0
- package/plan-build-run/references/continuation-format.md +249 -0
- package/plan-build-run/references/debugging/CLAUDE.md +7 -0
- package/plan-build-run/references/decimal-phase-calculation.md +65 -0
- package/plan-build-run/references/git-integration.md +248 -0
- package/plan-build-run/references/git-planning-commit.md +38 -0
- package/plan-build-run/references/model-profile-resolution.md +34 -0
- package/plan-build-run/references/model-profiles.md +92 -0
- package/plan-build-run/references/model-selection.md +53 -0
- package/plan-build-run/references/phase-argument-parsing.md +61 -0
- package/plan-build-run/references/plan-authoring.md +246 -0
- package/plan-build-run/references/plan-format.md +351 -0
- package/plan-build-run/references/planning-config.md +200 -0
- package/plan-build-run/references/questioning.md +162 -0
- package/plan-build-run/references/reading-verification.md +93 -0
- package/plan-build-run/references/stub-patterns.md +160 -0
- package/plan-build-run/references/tdd.md +263 -0
- package/plan-build-run/references/ui-brand.md +187 -0
- package/plan-build-run/references/verification-overrides.md +38 -0
- package/plan-build-run/references/verification-patterns.md +612 -0
- package/plan-build-run/references/wave-execution.md +52 -0
- package/plan-build-run/skills/audit/SKILL.md +348 -0
- package/plan-build-run/skills/begin/SKILL.md +891 -0
- package/{plugins/cursor-pbr → plan-build-run}/skills/begin/templates/PROJECT.md.tmpl +0 -1
- package/{plugins/cursor-pbr → plan-build-run}/skills/begin/templates/REQUIREMENTS.md.tmpl +0 -1
- package/{plugins/cursor-pbr → plan-build-run}/skills/begin/templates/STATE.md.tmpl +1 -3
- package/{plugins/cursor-pbr → plan-build-run}/skills/begin/templates/config.json.tmpl +7 -2
- package/plan-build-run/skills/begin/templates/project-CONTEXT.md.tmpl +19 -0
- package/plan-build-run/skills/begin/templates/researcher-prompt.md.tmpl +47 -0
- package/plan-build-run/skills/begin/templates/roadmap-prompt.md.tmpl +49 -0
- package/plan-build-run/skills/begin/templates/synthesis-prompt.md.tmpl +44 -0
- package/plan-build-run/skills/build/SKILL.md +1007 -0
- package/plan-build-run/skills/build/templates/continuation-prompt.md.tmpl +26 -0
- package/plan-build-run/skills/build/templates/executor-prompt.md.tmpl +70 -0
- package/plan-build-run/skills/build/templates/inline-verifier-prompt.md.tmpl +33 -0
- package/plan-build-run/skills/config/SKILL.md +342 -0
- package/plan-build-run/skills/continue/SKILL.md +190 -0
- package/plan-build-run/skills/dashboard/SKILL.md +12 -0
- package/plan-build-run/skills/debug/SKILL.md +539 -0
- package/plan-build-run/skills/debug/templates/continuation-prompt.md.tmpl +27 -0
- package/plan-build-run/skills/debug/templates/initial-investigation-prompt.md.tmpl +34 -0
- package/plan-build-run/skills/discuss/SKILL.md +440 -0
- package/{plugins/cursor-pbr → plan-build-run}/skills/discuss/templates/CONTEXT.md.tmpl +1 -2
- package/{plugins/cursor-pbr → plan-build-run}/skills/discuss/templates/decision-categories.md +0 -1
- package/plan-build-run/skills/discuss/templates/project-CONTEXT.md.tmpl +19 -0
- package/plan-build-run/skills/do/SKILL.md +70 -0
- package/plan-build-run/skills/explore/SKILL.md +443 -0
- package/plan-build-run/skills/health/SKILL.md +332 -0
- package/{plugins/cursor-pbr → plan-build-run}/skills/health/templates/check-pattern.md.tmpl +0 -1
- package/{plugins/cursor-pbr → plan-build-run}/skills/health/templates/output-format.md.tmpl +0 -1
- package/plan-build-run/skills/help/SKILL.md +236 -0
- package/plan-build-run/skills/import/SKILL.md +816 -0
- package/plan-build-run/skills/milestone/SKILL.md +659 -0
- package/plan-build-run/skills/milestone/templates/audit-output.md.tmpl +76 -0
- package/{plugins/cursor-pbr → plan-build-run}/skills/milestone/templates/audit-report.md.tmpl +0 -1
- package/plan-build-run/skills/milestone/templates/complete-output.md.tmpl +32 -0
- package/plan-build-run/skills/milestone/templates/edge-cases.md +54 -0
- package/plan-build-run/skills/milestone/templates/gaps-output.md.tmpl +25 -0
- package/plan-build-run/skills/milestone/templates/integration-checker-prompt.md.tmpl +25 -0
- package/plan-build-run/skills/milestone/templates/new-output.md.tmpl +29 -0
- package/{plugins/cursor-pbr → plan-build-run}/skills/milestone/templates/stats-file.md.tmpl +0 -1
- package/plan-build-run/skills/note/SKILL.md +221 -0
- package/plan-build-run/skills/pause/SKILL.md +259 -0
- package/{plugins/cursor-pbr → plan-build-run}/skills/pause/templates/continue-here.md.tmpl +0 -1
- package/plan-build-run/skills/plan/SKILL.md +700 -0
- package/plan-build-run/skills/plan/decimal-phase-calc.md +98 -0
- package/{plugins/cursor-pbr → plan-build-run}/skills/plan/templates/checker-prompt.md.tmpl +0 -1
- package/plan-build-run/skills/plan/templates/completion-output.md.tmpl +27 -0
- package/{plugins/cursor-pbr → plan-build-run}/skills/plan/templates/gap-closure-prompt.md.tmpl +0 -1
- package/{plugins/cursor-pbr → plan-build-run}/skills/plan/templates/planner-prompt.md.tmpl +1 -2
- package/plan-build-run/skills/plan/templates/prompt-partials/phase-project-context.md.tmpl +21 -0
- package/{plugins/cursor-pbr → plan-build-run}/skills/plan/templates/researcher-prompt.md.tmpl +0 -1
- package/{plugins/cursor-pbr → plan-build-run}/skills/plan/templates/revision-prompt.md.tmpl +0 -1
- package/plan-build-run/skills/profile/SKILL.md +173 -0
- package/plan-build-run/skills/quick/SKILL.md +440 -0
- package/plan-build-run/skills/resume/SKILL.md +404 -0
- package/plan-build-run/skills/review/SKILL.md +711 -0
- package/{plugins/cursor-pbr → plan-build-run}/skills/review/templates/debugger-prompt.md.tmpl +0 -1
- package/{plugins/cursor-pbr → plan-build-run}/skills/review/templates/gap-planner-prompt.md.tmpl +0 -1
- package/{plugins/cursor-pbr → plan-build-run}/skills/review/templates/verifier-prompt.md.tmpl +0 -1
- package/plan-build-run/skills/scan/SKILL.md +326 -0
- package/{plugins/cursor-pbr → plan-build-run}/skills/scan/templates/mapper-prompt.md.tmpl +1 -2
- package/plan-build-run/skills/setup/SKILL.md +236 -0
- package/plan-build-run/skills/shared/commit-planning-docs.md +43 -0
- package/plan-build-run/skills/shared/config-loading.md +102 -0
- package/plan-build-run/skills/shared/context-budget.md +92 -0
- package/plan-build-run/skills/shared/context-loader-task.md +93 -0
- package/plan-build-run/skills/shared/digest-select.md +79 -0
- package/plan-build-run/skills/shared/domain-probes.md +125 -0
- package/plan-build-run/skills/shared/error-reporting.md +67 -0
- package/plan-build-run/skills/shared/gate-prompts.md +390 -0
- package/plan-build-run/skills/shared/phase-argument-parsing.md +45 -0
- package/plan-build-run/skills/shared/revision-loop.md +81 -0
- package/plan-build-run/skills/shared/state-update.md +153 -0
- package/plan-build-run/skills/shared/universal-anti-patterns.md +59 -0
- package/plan-build-run/skills/status/SKILL.md +485 -0
- package/plan-build-run/skills/statusline/SKILL.md +151 -0
- package/plan-build-run/skills/test/SKILL.md +212 -0
- package/plan-build-run/skills/todo/SKILL.md +301 -0
- package/plan-build-run/skills/undo/SKILL.md +216 -0
- package/plan-build-run/templates/CLAUDE.md +7 -0
- package/plan-build-run/templates/DEBUG.md +164 -0
- package/plan-build-run/templates/UAT.md +247 -0
- package/plan-build-run/templates/VALIDATION.md +76 -0
- package/plan-build-run/templates/codebase/architecture.md +255 -0
- package/plan-build-run/templates/codebase/concerns.md +310 -0
- package/plan-build-run/templates/codebase/conventions.md +307 -0
- package/plan-build-run/templates/codebase/integrations.md +280 -0
- package/plan-build-run/templates/codebase/stack.md +186 -0
- package/plan-build-run/templates/codebase/structure.md +285 -0
- package/plan-build-run/templates/codebase/testing.md +480 -0
- package/plan-build-run/templates/config.json +37 -0
- package/plan-build-run/templates/context.md +297 -0
- package/plan-build-run/templates/continue-here.md +78 -0
- package/plan-build-run/templates/crud-flow-verification.md +277 -0
- package/plan-build-run/templates/debug-subagent-prompt.md +91 -0
- package/plan-build-run/templates/deferred-items.md +19 -0
- package/plan-build-run/templates/discovery.md +146 -0
- package/plan-build-run/templates/milestone-archive.md +123 -0
- package/plan-build-run/templates/milestone.md +115 -0
- package/plan-build-run/templates/phase-prompt.md +569 -0
- package/plan-build-run/templates/planner-subagent-prompt.md +117 -0
- package/plan-build-run/templates/project.md +184 -0
- package/plan-build-run/templates/requirements.md +231 -0
- package/plan-build-run/templates/research-outputs/ARCHITECTURE.md.tmpl +86 -0
- package/plan-build-run/templates/research-outputs/FEATURES.md.tmpl +77 -0
- package/plan-build-run/templates/research-outputs/PITFALLS.md.tmpl +65 -0
- package/plan-build-run/templates/research-outputs/STACK.md.tmpl +80 -0
- package/plan-build-run/templates/research-project/ARCHITECTURE.md +204 -0
- package/plan-build-run/templates/research-project/FEATURES.md +147 -0
- package/plan-build-run/templates/research-project/PITFALLS.md +200 -0
- package/plan-build-run/templates/research-project/STACK.md +120 -0
- package/plan-build-run/templates/research-project/SUMMARY.md +170 -0
- package/plan-build-run/templates/research.md +552 -0
- package/plan-build-run/templates/retrospective.md +54 -0
- package/plan-build-run/templates/roadmap.md +202 -0
- package/plan-build-run/templates/seed.md +16 -0
- package/plan-build-run/templates/state.md +176 -0
- package/plan-build-run/templates/summary-complex.md +59 -0
- package/plan-build-run/templates/summary-minimal.md +41 -0
- package/plan-build-run/templates/summary-standard.md +48 -0
- package/plan-build-run/templates/summary.md +248 -0
- package/plan-build-run/templates/user-setup.md +311 -0
- package/plan-build-run/templates/verification-report.md +322 -0
- package/plan-build-run/workflows/add-phase.md +111 -0
- package/plan-build-run/workflows/add-todo.md +157 -0
- package/plan-build-run/workflows/audit-milestone.md +241 -0
- package/plan-build-run/workflows/check-todos.md +176 -0
- package/plan-build-run/workflows/complete-milestone.md +644 -0
- package/plan-build-run/workflows/diagnose-issues.md +219 -0
- package/plan-build-run/workflows/discovery-phase.md +289 -0
- package/plan-build-run/workflows/discuss-phase.md +429 -0
- package/plan-build-run/workflows/execute-phase.md +439 -0
- package/plan-build-run/workflows/execute-plan.md +437 -0
- package/plan-build-run/workflows/explore.md +150 -0
- package/plan-build-run/workflows/help.md +470 -0
- package/plan-build-run/workflows/insert-phase.md +129 -0
- package/plan-build-run/workflows/list-phase-assumptions.md +178 -0
- package/plan-build-run/workflows/map-codebase.md +327 -0
- package/plan-build-run/workflows/new-milestone.md +373 -0
- package/plan-build-run/workflows/new-project.md +1009 -0
- package/plan-build-run/workflows/note.md +90 -0
- package/plan-build-run/workflows/pause-work.md +122 -0
- package/plan-build-run/workflows/plan-milestone-gaps.md +256 -0
- package/plan-build-run/workflows/plan-phase.md +376 -0
- package/plan-build-run/workflows/progress.md +431 -0
- package/plan-build-run/workflows/quick.md +230 -0
- package/plan-build-run/workflows/remove-phase.md +154 -0
- package/plan-build-run/workflows/research-phase.md +74 -0
- package/plan-build-run/workflows/resume-project.md +306 -0
- package/plan-build-run/workflows/set-profile.md +80 -0
- package/plan-build-run/workflows/settings.md +145 -0
- package/plan-build-run/workflows/transition.md +539 -0
- package/plan-build-run/workflows/update.md +212 -0
- package/plan-build-run/workflows/verify-phase.md +226 -0
- package/plan-build-run/workflows/verify-work.md +465 -0
- package/plugins/codex-pbr/.codex/config.toml +101 -0
- package/plugins/codex-pbr/AGENTS.md +653 -0
- package/plugins/codex-pbr/README.md +116 -0
- package/plugins/codex-pbr/agents/audit.md +240 -0
- package/plugins/codex-pbr/agents/codebase-mapper.md +225 -0
- package/plugins/codex-pbr/agents/debugger.md +300 -0
- package/plugins/codex-pbr/agents/dev-sync.md +198 -0
- package/plugins/codex-pbr/agents/executor.md +549 -0
- package/plugins/codex-pbr/agents/general.md +151 -0
- package/plugins/codex-pbr/agents/integration-checker.md +230 -0
- package/plugins/codex-pbr/agents/nyquist-auditor.md +244 -0
- package/plugins/codex-pbr/agents/plan-checker.md +306 -0
- package/plugins/codex-pbr/agents/planner.md +464 -0
- package/plugins/codex-pbr/agents/researcher.md +304 -0
- package/plugins/codex-pbr/agents/roadmapper.md +339 -0
- package/plugins/codex-pbr/agents/synthesizer.md +267 -0
- package/plugins/codex-pbr/agents/verifier.md +488 -0
- package/plugins/codex-pbr/commands/add-phase.md +75 -0
- package/plugins/codex-pbr/commands/add-todo.md +8 -0
- package/plugins/codex-pbr/commands/audit-milestone.md +8 -0
- package/plugins/codex-pbr/commands/audit.md +5 -0
- package/plugins/codex-pbr/commands/check-todos.md +8 -0
- package/plugins/codex-pbr/commands/complete-milestone.md +8 -0
- package/plugins/codex-pbr/commands/config.md +5 -0
- package/plugins/codex-pbr/commands/continue.md +5 -0
- package/plugins/codex-pbr/commands/dashboard.md +5 -0
- package/plugins/codex-pbr/commands/debug.md +5 -0
- package/plugins/codex-pbr/commands/discuss-phase.md +6 -0
- package/plugins/codex-pbr/commands/do.md +5 -0
- package/plugins/codex-pbr/commands/execute-phase.md +6 -0
- package/plugins/codex-pbr/commands/explore.md +5 -0
- package/plugins/codex-pbr/commands/health.md +5 -0
- package/plugins/codex-pbr/commands/help.md +5 -0
- package/plugins/codex-pbr/commands/import.md +5 -0
- package/plugins/codex-pbr/commands/insert-phase.md +65 -0
- package/plugins/codex-pbr/commands/join-discord.md +11 -0
- package/plugins/codex-pbr/commands/list-phase-assumptions.md +69 -0
- package/plugins/codex-pbr/commands/map-codebase.md +6 -0
- package/plugins/codex-pbr/commands/new-milestone.md +8 -0
- package/plugins/codex-pbr/commands/new-project.md +6 -0
- package/plugins/codex-pbr/commands/note.md +5 -0
- package/plugins/codex-pbr/commands/pause-work.md +5 -0
- package/plugins/codex-pbr/commands/plan-milestone-gaps.md +7 -0
- package/plugins/codex-pbr/commands/plan-phase.md +6 -0
- package/plugins/codex-pbr/commands/progress.md +6 -0
- package/plugins/codex-pbr/commands/quick.md +5 -0
- package/plugins/codex-pbr/commands/reapply-patches.md +40 -0
- package/plugins/codex-pbr/commands/remove-phase.md +66 -0
- package/plugins/codex-pbr/commands/research-phase.md +59 -0
- package/plugins/codex-pbr/commands/resume-work.md +5 -0
- package/plugins/codex-pbr/commands/set-profile.md +6 -0
- package/plugins/codex-pbr/commands/settings.md +5 -0
- package/plugins/codex-pbr/commands/setup.md +5 -0
- package/plugins/codex-pbr/commands/statusline.md +5 -0
- package/plugins/codex-pbr/commands/test.md +5 -0
- package/plugins/codex-pbr/commands/undo.md +5 -0
- package/plugins/codex-pbr/commands/update.md +37 -0
- package/plugins/codex-pbr/commands/verify-work.md +6 -0
- package/plugins/codex-pbr/references/agent-contracts.md +324 -0
- package/plugins/codex-pbr/references/agent-teams.md +54 -0
- package/plugins/codex-pbr/references/common-bug-patterns.md +13 -0
- package/plugins/codex-pbr/references/config-reference.md +587 -0
- package/plugins/codex-pbr/references/continuation-format.md +212 -0
- package/plugins/codex-pbr/references/deviation-rules.md +112 -0
- package/plugins/codex-pbr/references/git-integration.md +284 -0
- package/plugins/codex-pbr/references/integration-patterns.md +117 -0
- package/plugins/codex-pbr/references/model-profiles.md +143 -0
- package/plugins/codex-pbr/references/model-selection.md +31 -0
- package/plugins/codex-pbr/references/pbr-tools-cli.md +400 -0
- package/plugins/codex-pbr/references/plan-authoring.md +246 -0
- package/plugins/codex-pbr/references/plan-format.md +351 -0
- package/plugins/codex-pbr/references/questioning.md +303 -0
- package/plugins/codex-pbr/references/reading-verification.md +127 -0
- package/plugins/codex-pbr/references/signal-files.md +41 -0
- package/plugins/codex-pbr/references/stub-patterns.md +160 -0
- package/plugins/codex-pbr/references/tmux-setup.md +286 -0
- package/plugins/codex-pbr/references/ui-formatting.md +449 -0
- package/plugins/codex-pbr/references/wave-execution.md +95 -0
- package/plugins/codex-pbr/skills/audit/SKILL.md +346 -0
- package/plugins/codex-pbr/skills/begin/SKILL.md +886 -0
- package/plugins/codex-pbr/skills/build/SKILL.md +992 -0
- package/plugins/codex-pbr/skills/config/SKILL.md +341 -0
- package/plugins/codex-pbr/skills/continue/SKILL.md +172 -0
- package/plugins/codex-pbr/skills/dashboard/SKILL.md +56 -0
- package/plugins/codex-pbr/skills/debug/SKILL.md +537 -0
- package/plugins/codex-pbr/skills/discuss/SKILL.md +438 -0
- package/plugins/codex-pbr/skills/do/SKILL.md +68 -0
- package/plugins/codex-pbr/skills/explore/SKILL.md +441 -0
- package/plugins/codex-pbr/skills/health/SKILL.md +330 -0
- package/plugins/codex-pbr/skills/help/SKILL.md +231 -0
- package/plugins/codex-pbr/skills/import/SKILL.md +814 -0
- package/plugins/codex-pbr/skills/milestone/SKILL.md +637 -0
- package/plugins/codex-pbr/skills/note/SKILL.md +219 -0
- package/plugins/codex-pbr/skills/pause/SKILL.md +258 -0
- package/plugins/codex-pbr/skills/plan/SKILL.md +689 -0
- package/plugins/codex-pbr/skills/profile/SKILL.md +171 -0
- package/plugins/codex-pbr/skills/quick/SKILL.md +437 -0
- package/plugins/codex-pbr/skills/resume/SKILL.md +403 -0
- package/plugins/codex-pbr/skills/review/SKILL.md +693 -0
- package/plugins/codex-pbr/skills/scan/SKILL.md +325 -0
- package/plugins/codex-pbr/skills/setup/SKILL.md +235 -0
- package/plugins/codex-pbr/skills/shared/commit-planning-docs.md +43 -0
- package/plugins/codex-pbr/skills/shared/config-loading.md +102 -0
- package/plugins/codex-pbr/skills/shared/context-budget.md +92 -0
- package/plugins/codex-pbr/skills/shared/context-loader-task.md +93 -0
- package/plugins/codex-pbr/skills/shared/digest-select.md +79 -0
- package/plugins/codex-pbr/skills/shared/domain-probes.md +125 -0
- package/plugins/codex-pbr/skills/shared/error-reporting.md +59 -0
- package/plugins/codex-pbr/skills/shared/gate-prompts.md +390 -0
- package/plugins/codex-pbr/skills/shared/phase-argument-parsing.md +45 -0
- package/plugins/codex-pbr/skills/shared/revision-loop.md +81 -0
- package/plugins/codex-pbr/skills/shared/state-update.md +153 -0
- package/plugins/codex-pbr/skills/shared/universal-anti-patterns.md +59 -0
- package/plugins/codex-pbr/skills/status/SKILL.md +484 -0
- package/plugins/codex-pbr/skills/statusline/SKILL.md +149 -0
- package/plugins/codex-pbr/skills/test/SKILL.md +210 -0
- package/plugins/codex-pbr/skills/todo/SKILL.md +281 -0
- package/plugins/codex-pbr/skills/undo/SKILL.md +214 -0
- package/plugins/codex-pbr/templates/CONTEXT.md.tmpl +52 -0
- package/plugins/codex-pbr/templates/INTEGRATION-REPORT.md.tmpl +167 -0
- package/plugins/codex-pbr/templates/PROJECT.md.tmpl +111 -0
- package/plugins/codex-pbr/templates/REQUIREMENTS.md.tmpl +96 -0
- package/plugins/codex-pbr/templates/ROADMAP.md.tmpl +105 -0
- package/plugins/codex-pbr/templates/SUMMARY-complex.md.tmpl +112 -0
- package/plugins/codex-pbr/templates/SUMMARY-minimal.md.tmpl +48 -0
- package/plugins/codex-pbr/templates/SUMMARY.md.tmpl +81 -0
- package/plugins/codex-pbr/templates/VERIFICATION-DETAIL.md.tmpl +119 -0
- package/plugins/codex-pbr/templates/codebase/ARCHITECTURE.md.tmpl +98 -0
- package/plugins/codex-pbr/templates/codebase/CONCERNS.md.tmpl +93 -0
- package/plugins/codex-pbr/templates/codebase/CONVENTIONS.md.tmpl +104 -0
- package/plugins/codex-pbr/templates/codebase/INTEGRATIONS.md.tmpl +78 -0
- package/plugins/codex-pbr/templates/codebase/STACK.md.tmpl +78 -0
- package/plugins/codex-pbr/templates/codebase/STRUCTURE.md.tmpl +80 -0
- package/plugins/codex-pbr/templates/codebase/TESTING.md.tmpl +107 -0
- package/plugins/codex-pbr/templates/continue-here.md.tmpl +73 -0
- package/plugins/codex-pbr/templates/pr-body.md.tmpl +22 -0
- package/plugins/codex-pbr/templates/project-CONTEXT.md.tmpl +43 -0
- package/plugins/codex-pbr/templates/prompt-partials/phase-project-context.md.tmpl +37 -0
- package/plugins/codex-pbr/templates/research-outputs/ARCHITECTURE.md.tmpl +91 -0
- package/plugins/codex-pbr/templates/research-outputs/FEATURES.md.tmpl +64 -0
- package/plugins/codex-pbr/templates/research-outputs/PITFALLS.md.tmpl +50 -0
- package/plugins/codex-pbr/templates/research-outputs/STACK.md.tmpl +63 -0
- package/plugins/codex-pbr/templates/research-outputs/SUMMARY.md.tmpl +98 -0
- package/plugins/copilot-pbr/CHANGELOG.md +19 -0
- package/plugins/copilot-pbr/README.md +139 -0
- package/plugins/copilot-pbr/agents/audit.agent.md +240 -0
- package/plugins/copilot-pbr/agents/codebase-mapper.agent.md +225 -0
- package/plugins/copilot-pbr/agents/debugger.agent.md +300 -0
- package/plugins/copilot-pbr/agents/dev-sync.agent.md +198 -0
- package/plugins/copilot-pbr/agents/executor.agent.md +549 -0
- package/plugins/copilot-pbr/agents/general.agent.md +151 -0
- package/plugins/copilot-pbr/agents/integration-checker.agent.md +230 -0
- package/plugins/copilot-pbr/agents/nyquist-auditor.agent.md +244 -0
- package/plugins/copilot-pbr/agents/plan-checker.agent.md +306 -0
- package/plugins/copilot-pbr/agents/planner.agent.md +464 -0
- package/plugins/copilot-pbr/agents/researcher.agent.md +304 -0
- package/plugins/copilot-pbr/agents/roadmapper.agent.md +339 -0
- package/plugins/copilot-pbr/agents/synthesizer.agent.md +267 -0
- package/plugins/copilot-pbr/agents/verifier.agent.md +488 -0
- package/plugins/copilot-pbr/commands/add-phase.md +75 -0
- package/plugins/copilot-pbr/commands/add-todo.md +8 -0
- package/plugins/copilot-pbr/commands/audit-milestone.md +8 -0
- package/plugins/copilot-pbr/commands/audit.md +5 -0
- package/plugins/copilot-pbr/commands/check-todos.md +8 -0
- package/plugins/copilot-pbr/commands/complete-milestone.md +8 -0
- package/plugins/copilot-pbr/commands/config.md +5 -0
- package/plugins/copilot-pbr/commands/continue.md +5 -0
- package/plugins/copilot-pbr/commands/dashboard.md +5 -0
- package/plugins/copilot-pbr/commands/debug.md +5 -0
- package/plugins/copilot-pbr/commands/discuss-phase.md +6 -0
- package/plugins/copilot-pbr/commands/do.md +5 -0
- package/plugins/copilot-pbr/commands/execute-phase.md +6 -0
- package/plugins/copilot-pbr/commands/explore.md +5 -0
- package/plugins/copilot-pbr/commands/health.md +5 -0
- package/plugins/copilot-pbr/commands/help.md +5 -0
- package/plugins/copilot-pbr/commands/import.md +5 -0
- package/plugins/copilot-pbr/commands/insert-phase.md +65 -0
- package/plugins/copilot-pbr/commands/join-discord.md +11 -0
- package/plugins/copilot-pbr/commands/list-phase-assumptions.md +69 -0
- package/plugins/copilot-pbr/commands/map-codebase.md +6 -0
- package/plugins/copilot-pbr/commands/new-milestone.md +8 -0
- package/plugins/copilot-pbr/commands/new-project.md +6 -0
- package/plugins/copilot-pbr/commands/note.md +5 -0
- package/plugins/copilot-pbr/commands/pause-work.md +5 -0
- package/plugins/copilot-pbr/commands/plan-milestone-gaps.md +7 -0
- package/plugins/copilot-pbr/commands/plan-phase.md +6 -0
- package/plugins/copilot-pbr/commands/progress.md +6 -0
- package/plugins/copilot-pbr/commands/quick.md +5 -0
- package/plugins/copilot-pbr/commands/reapply-patches.md +40 -0
- package/plugins/copilot-pbr/commands/remove-phase.md +66 -0
- package/plugins/copilot-pbr/commands/research-phase.md +59 -0
- package/plugins/copilot-pbr/commands/resume-work.md +5 -0
- package/plugins/copilot-pbr/commands/set-profile.md +6 -0
- package/plugins/copilot-pbr/commands/settings.md +5 -0
- package/plugins/copilot-pbr/commands/setup.md +5 -0
- package/plugins/copilot-pbr/commands/statusline.md +5 -0
- package/plugins/copilot-pbr/commands/test.md +5 -0
- package/plugins/copilot-pbr/commands/undo.md +5 -0
- package/plugins/copilot-pbr/commands/update.md +37 -0
- package/plugins/copilot-pbr/commands/verify-work.md +6 -0
- package/plugins/copilot-pbr/hooks/hooks.json +309 -0
- package/plugins/copilot-pbr/plugin.json +30 -0
- package/plugins/copilot-pbr/references/agent-contracts.md +324 -0
- package/plugins/copilot-pbr/references/agent-teams.md +54 -0
- package/plugins/copilot-pbr/references/common-bug-patterns.md +13 -0
- package/plugins/copilot-pbr/references/config-reference.md +587 -0
- package/plugins/copilot-pbr/references/continuation-format.md +212 -0
- package/plugins/copilot-pbr/references/deviation-rules.md +112 -0
- package/plugins/copilot-pbr/references/git-integration.md +284 -0
- package/plugins/copilot-pbr/references/integration-patterns.md +117 -0
- package/plugins/copilot-pbr/references/model-profiles.md +143 -0
- package/plugins/copilot-pbr/references/model-selection.md +31 -0
- package/plugins/copilot-pbr/references/pbr-tools-cli.md +400 -0
- package/plugins/copilot-pbr/references/plan-authoring.md +246 -0
- package/plugins/copilot-pbr/references/plan-format.md +351 -0
- package/plugins/copilot-pbr/references/questioning.md +303 -0
- package/plugins/copilot-pbr/references/reading-verification.md +127 -0
- package/plugins/copilot-pbr/references/signal-files.md +41 -0
- package/plugins/copilot-pbr/references/stub-patterns.md +160 -0
- package/plugins/copilot-pbr/references/tmux-setup.md +286 -0
- package/plugins/copilot-pbr/references/ui-formatting.md +449 -0
- package/plugins/copilot-pbr/references/wave-execution.md +95 -0
- package/plugins/copilot-pbr/rules/pbr-workflow.mdc +48 -0
- package/plugins/copilot-pbr/setup.ps1 +93 -0
- package/plugins/copilot-pbr/setup.sh +93 -0
- package/plugins/copilot-pbr/skills/audit/SKILL.md +346 -0
- package/plugins/copilot-pbr/skills/begin/SKILL.md +886 -0
- package/plugins/copilot-pbr/skills/build/SKILL.md +992 -0
- package/plugins/copilot-pbr/skills/config/SKILL.md +341 -0
- package/plugins/copilot-pbr/skills/continue/SKILL.md +172 -0
- package/plugins/copilot-pbr/skills/dashboard/SKILL.md +56 -0
- package/plugins/copilot-pbr/skills/debug/SKILL.md +537 -0
- package/plugins/copilot-pbr/skills/discuss/SKILL.md +438 -0
- package/plugins/copilot-pbr/skills/do/SKILL.md +68 -0
- package/plugins/copilot-pbr/skills/explore/SKILL.md +441 -0
- package/plugins/copilot-pbr/skills/health/SKILL.md +330 -0
- package/plugins/copilot-pbr/skills/help/SKILL.md +231 -0
- package/plugins/copilot-pbr/skills/import/SKILL.md +814 -0
- package/plugins/copilot-pbr/skills/milestone/SKILL.md +637 -0
- package/plugins/copilot-pbr/skills/note/SKILL.md +219 -0
- package/plugins/copilot-pbr/skills/pause/SKILL.md +258 -0
- package/plugins/copilot-pbr/skills/plan/SKILL.md +689 -0
- package/plugins/copilot-pbr/skills/profile/SKILL.md +171 -0
- package/plugins/copilot-pbr/skills/quick/SKILL.md +437 -0
- package/plugins/copilot-pbr/skills/resume/SKILL.md +403 -0
- package/plugins/copilot-pbr/skills/review/SKILL.md +693 -0
- package/plugins/copilot-pbr/skills/scan/SKILL.md +325 -0
- package/plugins/copilot-pbr/skills/setup/SKILL.md +235 -0
- package/plugins/copilot-pbr/skills/shared/commit-planning-docs.md +43 -0
- package/plugins/copilot-pbr/skills/shared/config-loading.md +102 -0
- package/plugins/copilot-pbr/skills/shared/context-budget.md +92 -0
- package/plugins/copilot-pbr/skills/shared/context-loader-task.md +93 -0
- package/plugins/copilot-pbr/skills/shared/digest-select.md +79 -0
- package/plugins/copilot-pbr/skills/shared/domain-probes.md +125 -0
- package/plugins/copilot-pbr/skills/shared/error-reporting.md +59 -0
- package/plugins/copilot-pbr/skills/shared/gate-prompts.md +390 -0
- package/plugins/copilot-pbr/skills/shared/phase-argument-parsing.md +45 -0
- package/plugins/copilot-pbr/skills/shared/revision-loop.md +81 -0
- package/plugins/copilot-pbr/skills/shared/state-update.md +153 -0
- package/plugins/copilot-pbr/skills/shared/universal-anti-patterns.md +59 -0
- package/plugins/copilot-pbr/skills/status/SKILL.md +484 -0
- package/plugins/copilot-pbr/skills/statusline/SKILL.md +149 -0
- package/plugins/copilot-pbr/skills/test/SKILL.md +210 -0
- package/plugins/copilot-pbr/skills/todo/SKILL.md +281 -0
- package/plugins/copilot-pbr/skills/undo/SKILL.md +214 -0
- package/plugins/copilot-pbr/templates/CONTEXT.md.tmpl +52 -0
- package/plugins/copilot-pbr/templates/INTEGRATION-REPORT.md.tmpl +167 -0
- package/plugins/copilot-pbr/templates/PROJECT.md.tmpl +111 -0
- package/plugins/copilot-pbr/templates/REQUIREMENTS.md.tmpl +96 -0
- package/plugins/copilot-pbr/templates/ROADMAP.md.tmpl +105 -0
- package/plugins/copilot-pbr/templates/SUMMARY-complex.md.tmpl +112 -0
- package/plugins/copilot-pbr/templates/SUMMARY-minimal.md.tmpl +48 -0
- package/plugins/copilot-pbr/templates/SUMMARY.md.tmpl +81 -0
- package/plugins/copilot-pbr/templates/VERIFICATION-DETAIL.md.tmpl +119 -0
- package/plugins/copilot-pbr/templates/codebase/ARCHITECTURE.md.tmpl +98 -0
- package/plugins/copilot-pbr/templates/codebase/CONCERNS.md.tmpl +93 -0
- package/plugins/copilot-pbr/templates/codebase/CONVENTIONS.md.tmpl +104 -0
- package/plugins/copilot-pbr/templates/codebase/INTEGRATIONS.md.tmpl +78 -0
- package/plugins/copilot-pbr/templates/codebase/STACK.md.tmpl +78 -0
- package/plugins/copilot-pbr/templates/codebase/STRUCTURE.md.tmpl +80 -0
- package/plugins/copilot-pbr/templates/codebase/TESTING.md.tmpl +107 -0
- package/plugins/copilot-pbr/templates/continue-here.md.tmpl +73 -0
- package/plugins/copilot-pbr/templates/pr-body.md.tmpl +22 -0
- package/plugins/copilot-pbr/templates/project-CONTEXT.md.tmpl +43 -0
- package/plugins/copilot-pbr/templates/prompt-partials/phase-project-context.md.tmpl +37 -0
- package/plugins/copilot-pbr/templates/research-outputs/ARCHITECTURE.md.tmpl +91 -0
- package/plugins/copilot-pbr/templates/research-outputs/FEATURES.md.tmpl +64 -0
- package/plugins/copilot-pbr/templates/research-outputs/PITFALLS.md.tmpl +50 -0
- package/plugins/copilot-pbr/templates/research-outputs/STACK.md.tmpl +63 -0
- package/plugins/copilot-pbr/templates/research-outputs/SUMMARY.md.tmpl +98 -0
- package/plugins/cursor-pbr/.cursor-plugin/plugin.json +13 -3
- package/plugins/cursor-pbr/README.md +32 -7
- package/plugins/cursor-pbr/agents/audit.md +242 -0
- package/plugins/cursor-pbr/agents/codebase-mapper.md +134 -15
- package/plugins/cursor-pbr/agents/debugger.md +160 -26
- package/plugins/cursor-pbr/agents/dev-sync.md +200 -0
- package/plugins/cursor-pbr/agents/executor.md +354 -39
- package/plugins/cursor-pbr/agents/general.md +70 -4
- package/plugins/cursor-pbr/agents/integration-checker.md +171 -26
- package/plugins/cursor-pbr/agents/nyquist-auditor.md +246 -0
- package/plugins/cursor-pbr/agents/plan-checker.md +152 -42
- package/plugins/cursor-pbr/agents/planner.md +315 -29
- package/plugins/cursor-pbr/agents/researcher.md +174 -30
- package/plugins/cursor-pbr/agents/roadmapper.md +341 -0
- package/plugins/cursor-pbr/agents/synthesizer.md +191 -23
- package/plugins/cursor-pbr/agents/verifier.md +320 -23
- package/plugins/cursor-pbr/commands/add-phase.md +75 -0
- package/plugins/cursor-pbr/commands/add-todo.md +8 -0
- package/plugins/cursor-pbr/commands/audit-milestone.md +8 -0
- package/plugins/cursor-pbr/commands/audit.md +5 -0
- package/plugins/cursor-pbr/commands/check-todos.md +8 -0
- package/plugins/cursor-pbr/commands/complete-milestone.md +8 -0
- package/plugins/cursor-pbr/commands/config.md +5 -0
- package/plugins/cursor-pbr/commands/continue.md +5 -0
- package/plugins/cursor-pbr/commands/dashboard.md +5 -0
- package/plugins/cursor-pbr/commands/debug.md +5 -0
- package/plugins/cursor-pbr/commands/discuss-phase.md +6 -0
- package/plugins/cursor-pbr/commands/do.md +5 -0
- package/plugins/cursor-pbr/commands/execute-phase.md +6 -0
- package/plugins/cursor-pbr/commands/explore.md +5 -0
- package/plugins/cursor-pbr/commands/health.md +5 -0
- package/plugins/cursor-pbr/commands/help.md +5 -0
- package/plugins/cursor-pbr/commands/import.md +5 -0
- package/plugins/cursor-pbr/commands/insert-phase.md +65 -0
- package/plugins/cursor-pbr/commands/join-discord.md +11 -0
- package/plugins/cursor-pbr/commands/list-phase-assumptions.md +69 -0
- package/plugins/cursor-pbr/commands/map-codebase.md +6 -0
- package/plugins/cursor-pbr/commands/new-milestone.md +8 -0
- package/plugins/cursor-pbr/commands/new-project.md +6 -0
- package/plugins/cursor-pbr/commands/note.md +5 -0
- package/plugins/cursor-pbr/commands/pause-work.md +5 -0
- package/plugins/cursor-pbr/commands/plan-milestone-gaps.md +7 -0
- package/plugins/cursor-pbr/commands/plan-phase.md +6 -0
- package/plugins/cursor-pbr/commands/progress.md +6 -0
- package/plugins/cursor-pbr/commands/quick.md +5 -0
- package/plugins/cursor-pbr/commands/reapply-patches.md +40 -0
- package/plugins/cursor-pbr/commands/remove-phase.md +66 -0
- package/plugins/cursor-pbr/commands/research-phase.md +59 -0
- package/plugins/cursor-pbr/commands/resume-work.md +5 -0
- package/plugins/cursor-pbr/commands/set-profile.md +6 -0
- package/plugins/cursor-pbr/commands/settings.md +5 -0
- package/plugins/cursor-pbr/commands/setup.md +5 -0
- package/plugins/cursor-pbr/commands/statusline.md +5 -0
- package/plugins/cursor-pbr/commands/test.md +5 -0
- package/plugins/cursor-pbr/commands/undo.md +5 -0
- package/plugins/cursor-pbr/commands/update.md +37 -0
- package/plugins/cursor-pbr/commands/verify-work.md +6 -0
- package/plugins/cursor-pbr/hooks/hooks.json +96 -28
- package/plugins/cursor-pbr/references/agent-contracts.md +324 -0
- package/plugins/cursor-pbr/references/agent-teams.md +3 -4
- package/plugins/cursor-pbr/references/common-bug-patterns.md +0 -1
- package/plugins/cursor-pbr/references/config-reference.md +155 -10
- package/plugins/cursor-pbr/references/continuation-format.md +0 -1
- package/plugins/cursor-pbr/references/deviation-rules.md +0 -1
- package/plugins/cursor-pbr/references/git-integration.md +80 -23
- package/plugins/cursor-pbr/references/integration-patterns.md +0 -1
- package/plugins/cursor-pbr/references/model-profiles.md +51 -8
- package/plugins/cursor-pbr/references/model-selection.md +1 -2
- package/plugins/cursor-pbr/references/pbr-tools-cli.md +400 -0
- package/plugins/cursor-pbr/references/plan-authoring.md +65 -1
- package/plugins/cursor-pbr/references/plan-format.md +72 -9
- package/plugins/cursor-pbr/references/questioning.md +138 -50
- package/plugins/cursor-pbr/references/reading-verification.md +3 -4
- package/plugins/cursor-pbr/references/signal-files.md +41 -0
- package/plugins/cursor-pbr/references/stub-patterns.md +0 -1
- package/plugins/cursor-pbr/references/tmux-setup.md +286 -0
- package/plugins/cursor-pbr/references/ui-formatting.md +67 -80
- package/plugins/cursor-pbr/references/wave-execution.md +0 -1
- package/plugins/cursor-pbr/rules/pbr-workflow.mdc +6 -6
- package/plugins/cursor-pbr/setup.ps1 +1 -1
- package/plugins/cursor-pbr/setup.sh +1 -1
- package/plugins/cursor-pbr/skills/audit/SKILL.md +347 -0
- package/plugins/cursor-pbr/skills/begin/SKILL.md +461 -141
- package/plugins/cursor-pbr/skills/build/SKILL.md +420 -329
- package/plugins/cursor-pbr/skills/config/SKILL.md +107 -19
- package/plugins/cursor-pbr/skills/continue/SKILL.md +49 -36
- package/plugins/cursor-pbr/skills/dashboard/SKILL.md +57 -0
- package/plugins/cursor-pbr/skills/debug/SKILL.md +60 -34
- package/plugins/cursor-pbr/skills/discuss/SKILL.md +125 -30
- package/plugins/cursor-pbr/skills/do/SKILL.md +69 -0
- package/plugins/cursor-pbr/skills/explore/SKILL.md +90 -23
- package/plugins/cursor-pbr/skills/health/SKILL.md +144 -31
- package/plugins/cursor-pbr/skills/help/SKILL.md +124 -45
- package/plugins/cursor-pbr/skills/import/SKILL.md +346 -30
- package/plugins/cursor-pbr/skills/milestone/SKILL.md +189 -252
- package/plugins/cursor-pbr/skills/note/SKILL.md +47 -55
- package/plugins/cursor-pbr/skills/pause/SKILL.md +28 -16
- package/plugins/cursor-pbr/skills/plan/SKILL.md +305 -263
- package/plugins/cursor-pbr/skills/profile/SKILL.md +172 -0
- package/plugins/cursor-pbr/skills/quick/SKILL.md +106 -20
- package/plugins/cursor-pbr/skills/resume/SKILL.md +31 -27
- package/plugins/cursor-pbr/skills/review/SKILL.md +212 -167
- package/plugins/cursor-pbr/skills/scan/SKILL.md +47 -23
- package/plugins/cursor-pbr/skills/setup/SKILL.md +158 -173
- package/plugins/cursor-pbr/skills/shared/commit-planning-docs.md +8 -1
- package/plugins/cursor-pbr/skills/shared/config-loading.md +1 -2
- package/plugins/cursor-pbr/skills/shared/context-budget.md +56 -5
- package/plugins/cursor-pbr/skills/shared/context-loader-task.md +9 -3
- package/plugins/cursor-pbr/skills/shared/digest-select.md +2 -3
- package/plugins/cursor-pbr/skills/shared/domain-probes.md +1 -2
- package/plugins/cursor-pbr/skills/shared/error-reporting.md +38 -59
- package/plugins/cursor-pbr/skills/shared/gate-prompts.md +4 -3
- package/plugins/cursor-pbr/skills/shared/phase-argument-parsing.md +6 -7
- package/plugins/cursor-pbr/skills/shared/revision-loop.md +0 -1
- package/plugins/cursor-pbr/skills/shared/state-update.md +38 -47
- package/plugins/cursor-pbr/skills/shared/universal-anti-patterns.md +34 -9
- package/plugins/cursor-pbr/skills/status/SKILL.md +174 -52
- package/plugins/cursor-pbr/skills/statusline/SKILL.md +150 -0
- package/plugins/cursor-pbr/skills/test/SKILL.md +211 -0
- package/plugins/cursor-pbr/skills/todo/SKILL.md +118 -31
- package/plugins/cursor-pbr/skills/undo/SKILL.md +215 -0
- package/plugins/cursor-pbr/templates/CONTEXT.md.tmpl +1 -2
- package/plugins/cursor-pbr/templates/INTEGRATION-REPORT.md.tmpl +18 -3
- package/plugins/cursor-pbr/templates/PROJECT.md.tmpl +111 -0
- package/plugins/cursor-pbr/templates/REQUIREMENTS.md.tmpl +96 -0
- package/plugins/cursor-pbr/templates/ROADMAP.md.tmpl +80 -16
- package/plugins/cursor-pbr/templates/SUMMARY-complex.md.tmpl +112 -0
- package/plugins/cursor-pbr/templates/SUMMARY-minimal.md.tmpl +48 -0
- package/plugins/cursor-pbr/templates/SUMMARY.md.tmpl +0 -1
- package/plugins/cursor-pbr/templates/VERIFICATION-DETAIL.md.tmpl +13 -11
- package/plugins/cursor-pbr/templates/codebase/ARCHITECTURE.md.tmpl +98 -0
- package/plugins/cursor-pbr/templates/codebase/CONCERNS.md.tmpl +93 -0
- package/plugins/cursor-pbr/templates/codebase/CONVENTIONS.md.tmpl +104 -0
- package/plugins/cursor-pbr/templates/codebase/INTEGRATIONS.md.tmpl +78 -0
- package/plugins/cursor-pbr/templates/codebase/STACK.md.tmpl +78 -0
- package/plugins/cursor-pbr/templates/codebase/STRUCTURE.md.tmpl +80 -0
- package/plugins/cursor-pbr/templates/codebase/TESTING.md.tmpl +107 -0
- package/plugins/cursor-pbr/templates/continue-here.md.tmpl +0 -1
- package/plugins/cursor-pbr/templates/pr-body.md.tmpl +22 -0
- package/plugins/cursor-pbr/templates/project-CONTEXT.md.tmpl +43 -0
- package/plugins/cursor-pbr/templates/prompt-partials/phase-project-context.md.tmpl +0 -1
- package/plugins/cursor-pbr/templates/research-outputs/ARCHITECTURE.md.tmpl +91 -0
- package/plugins/cursor-pbr/templates/research-outputs/FEATURES.md.tmpl +64 -0
- package/plugins/cursor-pbr/templates/research-outputs/PITFALLS.md.tmpl +50 -0
- package/plugins/cursor-pbr/templates/research-outputs/STACK.md.tmpl +63 -0
- package/plugins/cursor-pbr/templates/research-outputs/SUMMARY.md.tmpl +98 -0
- package/plugins/pbr/.claude-plugin/plugin.json +7 -2
- package/plugins/pbr/UI-CONSISTENCY-GAPS.md +1 -1
- package/plugins/pbr/agents/audit.md +247 -0
- package/plugins/pbr/agents/codebase-mapper.md +151 -18
- package/plugins/pbr/agents/debugger.md +180 -28
- package/plugins/pbr/agents/dev-sync.md +206 -0
- package/plugins/pbr/agents/executor.md +365 -40
- package/plugins/pbr/agents/general.md +70 -5
- package/plugins/pbr/agents/integration-checker.md +174 -27
- package/plugins/pbr/agents/nyquist-auditor.md +252 -0
- package/plugins/pbr/agents/plan-checker.md +153 -43
- package/plugins/pbr/agents/planner.md +340 -28
- package/plugins/pbr/agents/researcher.md +210 -34
- package/plugins/pbr/agents/roadmapper.md +346 -0
- package/plugins/pbr/agents/synthesizer.md +193 -26
- package/plugins/pbr/agents/verifier.md +402 -23
- package/plugins/pbr/commands/add-phase.md +75 -0
- package/plugins/pbr/commands/add-todo.md +8 -0
- package/plugins/pbr/commands/audit-milestone.md +8 -0
- package/plugins/pbr/commands/audit.md +5 -0
- package/plugins/pbr/commands/check-todos.md +8 -0
- package/plugins/pbr/commands/complete-milestone.md +8 -0
- package/plugins/pbr/commands/config.md +2 -2
- package/plugins/pbr/commands/continue.md +1 -1
- package/plugins/pbr/commands/dashboard.md +5 -0
- package/plugins/pbr/commands/debug.md +1 -1
- package/plugins/pbr/commands/discuss-phase.md +6 -0
- package/plugins/pbr/commands/do.md +5 -0
- package/plugins/pbr/commands/execute-phase.md +6 -0
- package/plugins/pbr/commands/explore.md +1 -1
- package/plugins/pbr/commands/health.md +1 -1
- package/plugins/pbr/commands/help.md +1 -1
- package/plugins/pbr/commands/import.md +1 -1
- package/plugins/pbr/commands/insert-phase.md +65 -0
- package/plugins/pbr/commands/join-discord.md +11 -0
- package/plugins/pbr/commands/list-phase-assumptions.md +69 -0
- package/plugins/pbr/commands/map-codebase.md +6 -0
- package/plugins/pbr/commands/new-milestone.md +8 -0
- package/plugins/pbr/commands/new-project.md +6 -0
- package/plugins/pbr/commands/note.md +1 -1
- package/plugins/pbr/commands/pause-work.md +5 -0
- package/plugins/pbr/commands/plan-milestone-gaps.md +7 -0
- package/plugins/pbr/commands/plan-phase.md +6 -0
- package/plugins/pbr/commands/progress.md +6 -0
- package/plugins/pbr/commands/quick.md +1 -1
- package/plugins/pbr/commands/reapply-patches.md +40 -0
- package/plugins/pbr/commands/remove-phase.md +66 -0
- package/plugins/pbr/commands/research-phase.md +59 -0
- package/plugins/pbr/commands/resume-work.md +5 -0
- package/plugins/pbr/commands/set-profile.md +6 -0
- package/plugins/pbr/commands/settings.md +5 -0
- package/plugins/pbr/commands/setup.md +2 -2
- package/plugins/pbr/commands/statusline.md +5 -0
- package/plugins/pbr/commands/test.md +5 -0
- package/plugins/pbr/commands/undo.md +5 -0
- package/plugins/pbr/commands/update.md +37 -0
- package/plugins/pbr/commands/verify-work.md +6 -0
- package/plugins/pbr/dashboard/package-lock.json +6 -0
- package/plugins/pbr/hooks/hooks.json +97 -18
- package/plugins/pbr/references/agent-contracts.md +324 -0
- package/plugins/pbr/references/agent-teams.md +3 -3
- package/plugins/pbr/references/{checkpoints.md → archive/checkpoints.md} +32 -0
- package/plugins/pbr/references/archive/context-quality-tiers.md +45 -0
- package/plugins/{cursor-pbr/references → pbr/references/archive}/pbr-rules.md +4 -4
- package/plugins/pbr/references/archive/verification-patterns.md +277 -0
- package/plugins/pbr/references/config-reference.md +179 -9
- package/plugins/pbr/references/git-integration.md +80 -22
- package/plugins/pbr/references/model-profiles.md +62 -7
- package/plugins/pbr/references/model-selection.md +1 -1
- package/plugins/pbr/references/pbr-tools-cli.md +400 -0
- package/plugins/pbr/references/plan-authoring.md +65 -0
- package/plugins/pbr/references/plan-format.md +72 -8
- package/plugins/pbr/references/questioning.md +138 -49
- package/plugins/pbr/references/reading-verification.md +3 -3
- package/plugins/pbr/references/signal-files.md +41 -0
- package/plugins/pbr/references/tmux-setup.md +286 -0
- package/plugins/pbr/references/ui-formatting.md +67 -79
- package/plugins/pbr/scripts/auto-continue.js +113 -6
- package/plugins/pbr/scripts/block-skill-self-read.js +77 -0
- package/plugins/pbr/scripts/branding-audit.js +231 -0
- package/plugins/pbr/scripts/check-agent-state-write.js +63 -0
- package/plugins/pbr/scripts/check-config-change.js +188 -0
- package/plugins/pbr/scripts/check-cross-plugin-sync.js +93 -0
- package/plugins/pbr/scripts/check-dangerous-commands.js +49 -1
- package/plugins/pbr/scripts/check-phase-boundary.js +2 -8
- package/plugins/pbr/scripts/check-plan-format.js +414 -30
- package/plugins/pbr/scripts/check-roadmap-sync.js +178 -9
- package/plugins/pbr/scripts/check-skill-workflow.js +109 -18
- package/plugins/pbr/scripts/check-state-sync.js +156 -20
- package/plugins/pbr/scripts/check-subagent-output.js +581 -14
- package/plugins/pbr/scripts/check-summary-gate.js +1 -1
- package/plugins/pbr/scripts/config-schema.json +157 -2
- package/plugins/pbr/scripts/context-bridge.js +342 -0
- package/plugins/pbr/scripts/context-budget-check.js +89 -9
- package/plugins/pbr/scripts/enforce-pbr-workflow.js +277 -0
- package/plugins/pbr/scripts/event-handler.js +72 -6
- package/plugins/pbr/scripts/hook-server-client.js +258 -0
- package/plugins/pbr/scripts/hook-server.js +334 -0
- package/plugins/pbr/scripts/hooks-schema.json +5 -1
- package/plugins/pbr/scripts/instructions-loaded.js +107 -0
- package/plugins/pbr/scripts/intercept-plan-mode.js +47 -0
- package/plugins/pbr/scripts/lib/alternatives.js +203 -0
- package/plugins/pbr/scripts/lib/build.js +719 -0
- package/plugins/pbr/scripts/lib/circuit-state.js +133 -0
- package/plugins/pbr/scripts/lib/config.js +288 -0
- package/plugins/pbr/scripts/lib/context.js +246 -0
- package/plugins/pbr/scripts/lib/core.js +934 -0
- package/plugins/pbr/scripts/lib/gates/advisories.js +129 -0
- package/plugins/pbr/scripts/lib/gates/build-dependency.js +100 -0
- package/plugins/pbr/scripts/lib/gates/build-executor.js +79 -0
- package/plugins/pbr/scripts/lib/gates/doc-existence.js +46 -0
- package/plugins/pbr/scripts/lib/gates/helpers.js +74 -0
- package/plugins/pbr/scripts/lib/gates/milestone-complete.js +120 -0
- package/plugins/pbr/scripts/lib/gates/plan-executor.js +36 -0
- package/plugins/pbr/scripts/lib/gates/quick-executor.js +76 -0
- package/plugins/pbr/scripts/lib/gates/review-planner.js +61 -0
- package/plugins/pbr/scripts/lib/gates/review-verifier.js +69 -0
- package/plugins/pbr/scripts/lib/history.js +150 -0
- package/plugins/pbr/scripts/lib/init.js +302 -0
- package/plugins/pbr/scripts/lib/learnings.js +312 -0
- package/plugins/pbr/scripts/lib/migrate.js +169 -0
- package/plugins/pbr/scripts/lib/phase.js +935 -0
- package/plugins/pbr/scripts/lib/preview.js +174 -0
- package/plugins/pbr/scripts/lib/reference.js +236 -0
- package/plugins/pbr/scripts/lib/roadmap.js +784 -0
- package/plugins/pbr/scripts/lib/skill-section.js +99 -0
- package/plugins/pbr/scripts/lib/spot-check.js +118 -0
- package/plugins/pbr/scripts/lib/state.js +534 -0
- package/plugins/pbr/scripts/lib/step-verify.js +149 -0
- package/plugins/pbr/scripts/lib/todo.js +300 -0
- package/plugins/pbr/scripts/local-llm/client.js +237 -0
- package/plugins/pbr/scripts/local-llm/health.js +220 -0
- package/plugins/pbr/scripts/local-llm/metrics.js +340 -0
- package/plugins/pbr/scripts/local-llm/operations/classify-artifact.js +76 -0
- package/plugins/pbr/scripts/local-llm/operations/classify-commit.js +137 -0
- package/plugins/pbr/scripts/local-llm/operations/classify-error.js +75 -0
- package/plugins/pbr/scripts/local-llm/operations/classify-file-intent.js +171 -0
- package/plugins/pbr/scripts/local-llm/operations/score-source.js +72 -0
- package/plugins/pbr/scripts/local-llm/operations/summarize-context.js +62 -0
- package/plugins/pbr/scripts/local-llm/operations/triage-test-output.js +72 -0
- package/plugins/pbr/scripts/local-llm/operations/validate-task.js +59 -0
- package/plugins/pbr/scripts/local-llm/router.js +101 -0
- package/plugins/pbr/scripts/local-llm/shadow.js +60 -0
- package/plugins/pbr/scripts/local-llm/threshold-tuner.js +118 -0
- package/plugins/pbr/scripts/log-subagent.js +90 -13
- package/plugins/pbr/scripts/log-tool-failure.js +39 -5
- package/plugins/pbr/scripts/milestone-learnings.js +290 -0
- package/plugins/pbr/scripts/package.json +1 -0
- package/plugins/pbr/scripts/pbr-tools.js +1143 -1232
- package/plugins/pbr/scripts/post-bash-triage.js +151 -0
- package/plugins/pbr/scripts/post-write-dispatch.js +181 -25
- package/plugins/pbr/scripts/post-write-quality.js +3 -3
- package/plugins/pbr/scripts/pre-bash-dispatch.js +56 -2
- package/plugins/pbr/scripts/pre-write-dispatch.js +69 -19
- package/plugins/pbr/scripts/progress-tracker.js +428 -19
- package/plugins/pbr/scripts/run-hook.js +49 -8
- package/plugins/pbr/scripts/session-cleanup.js +99 -5
- package/plugins/pbr/scripts/session-tracker.js +78 -0
- package/plugins/pbr/scripts/status-line.js +179 -27
- package/plugins/pbr/scripts/suggest-compact.js +108 -7
- package/plugins/pbr/scripts/sync-context-to-claude.js +100 -0
- package/plugins/pbr/scripts/task-completed.js +123 -1
- package/plugins/pbr/scripts/test/config.test.js +126 -0
- package/plugins/pbr/scripts/test/cross-platform.test.js +131 -0
- package/plugins/pbr/scripts/test/fixtures/config.json +20 -0
- package/plugins/pbr/scripts/test/fixtures/plan.md +54 -0
- package/plugins/pbr/scripts/test/fixtures/project.md +30 -0
- package/plugins/pbr/scripts/test/fixtures/roadmap.md +55 -0
- package/plugins/pbr/scripts/test/fixtures/state.md +60 -0
- package/plugins/pbr/scripts/test/fixtures/summary.md +35 -0
- package/plugins/pbr/scripts/test/fixtures.test.js +184 -0
- package/plugins/pbr/scripts/test/phase.test.js +142 -0
- package/plugins/pbr/scripts/test/roadmap.test.js +96 -0
- package/plugins/pbr/scripts/test/state.test.js +163 -0
- package/plugins/pbr/scripts/track-context-budget.js +237 -89
- package/plugins/pbr/scripts/validate-commit.js +76 -11
- package/plugins/pbr/scripts/validate-skill-args.js +151 -0
- package/plugins/pbr/scripts/validate-task.js +167 -17
- package/plugins/pbr/scripts/worktree-create.js +144 -0
- package/plugins/pbr/scripts/worktree-remove.js +147 -0
- package/plugins/pbr/skills/audit/SKILL.md +348 -0
- package/plugins/pbr/skills/begin/SKILL.md +412 -118
- package/plugins/pbr/skills/begin/templates/STATE.md.tmpl +1 -2
- package/plugins/pbr/skills/begin/templates/config.json.tmpl +8 -2
- package/plugins/pbr/skills/begin/templates/researcher-prompt.md.tmpl +28 -0
- package/plugins/pbr/skills/begin/templates/roadmap-prompt.md.tmpl +19 -0
- package/plugins/pbr/skills/begin/templates/synthesis-prompt.md.tmpl +33 -5
- package/plugins/pbr/skills/build/SKILL.md +503 -307
- package/plugins/pbr/skills/build/templates/continuation-prompt.md.tmpl +26 -0
- package/plugins/pbr/skills/build/templates/executor-prompt.md.tmpl +70 -0
- package/plugins/pbr/skills/build/templates/inline-verifier-prompt.md.tmpl +33 -0
- package/plugins/pbr/skills/config/SKILL.md +104 -18
- package/plugins/pbr/skills/continue/SKILL.md +92 -22
- package/plugins/pbr/skills/dashboard/SKILL.md +58 -0
- package/plugins/pbr/skills/debug/SKILL.md +57 -33
- package/plugins/pbr/skills/debug/templates/continuation-prompt.md.tmpl +12 -1
- package/plugins/pbr/skills/debug/templates/initial-investigation-prompt.md.tmpl +12 -5
- package/plugins/pbr/skills/discuss/SKILL.md +123 -30
- package/plugins/pbr/skills/discuss/templates/CONTEXT.md.tmpl +1 -1
- package/plugins/pbr/skills/do/SKILL.md +70 -0
- package/plugins/pbr/skills/explore/SKILL.md +92 -24
- package/plugins/pbr/skills/health/SKILL.md +143 -32
- package/plugins/pbr/skills/help/SKILL.md +122 -45
- package/plugins/pbr/skills/import/SKILL.md +341 -29
- package/plugins/pbr/skills/milestone/SKILL.md +187 -252
- package/plugins/pbr/skills/milestone/templates/audit-output.md.tmpl +76 -0
- package/plugins/pbr/skills/milestone/templates/complete-output.md.tmpl +32 -0
- package/plugins/pbr/skills/milestone/templates/edge-cases.md +54 -0
- package/plugins/pbr/skills/milestone/templates/gaps-output.md.tmpl +25 -0
- package/plugins/pbr/skills/milestone/templates/integration-checker-prompt.md.tmpl +25 -0
- package/plugins/pbr/skills/milestone/templates/new-output.md.tmpl +29 -0
- package/plugins/pbr/skills/note/SKILL.md +45 -55
- package/plugins/pbr/skills/pause/SKILL.md +26 -16
- package/plugins/pbr/skills/plan/SKILL.md +264 -258
- package/plugins/pbr/skills/plan/templates/completion-output.md.tmpl +27 -0
- package/plugins/pbr/skills/plan/templates/planner-prompt.md.tmpl +1 -1
- package/plugins/pbr/skills/profile/SKILL.md +173 -0
- package/plugins/pbr/skills/quick/SKILL.md +104 -20
- package/plugins/pbr/skills/resume/SKILL.md +29 -27
- package/plugins/pbr/skills/review/SKILL.md +172 -136
- package/plugins/pbr/skills/scan/SKILL.md +41 -19
- package/plugins/pbr/skills/scan/templates/mapper-prompt.md.tmpl +1 -1
- package/plugins/pbr/skills/setup/SKILL.md +160 -177
- package/plugins/pbr/skills/shared/commit-planning-docs.md +8 -0
- package/plugins/pbr/skills/shared/context-budget.md +67 -2
- package/plugins/pbr/skills/shared/context-loader-task.md +9 -2
- package/plugins/pbr/skills/shared/digest-select.md +2 -2
- package/plugins/pbr/skills/shared/domain-probes.md +1 -1
- package/plugins/pbr/skills/shared/error-reporting.md +38 -58
- package/plugins/pbr/skills/shared/gate-prompts.md +4 -2
- package/plugins/pbr/skills/shared/phase-argument-parsing.md +6 -6
- package/plugins/pbr/skills/shared/state-update.md +36 -44
- package/plugins/pbr/skills/shared/universal-anti-patterns.md +36 -10
- package/plugins/pbr/skills/status/SKILL.md +161 -43
- package/plugins/pbr/skills/statusline/SKILL.md +151 -0
- package/plugins/pbr/skills/test/SKILL.md +212 -0
- package/plugins/pbr/skills/todo/SKILL.md +117 -32
- package/plugins/pbr/skills/undo/SKILL.md +216 -0
- package/plugins/pbr/templates/CONTEXT.md.tmpl +1 -1
- package/plugins/pbr/templates/INTEGRATION-REPORT.md.tmpl +18 -2
- package/plugins/pbr/templates/PROJECT.md.tmpl +111 -0
- package/plugins/pbr/templates/REQUIREMENTS.md.tmpl +96 -0
- package/plugins/pbr/templates/ROADMAP.md.tmpl +80 -15
- package/plugins/pbr/templates/SUMMARY-complex.md.tmpl +112 -0
- package/plugins/pbr/templates/SUMMARY-minimal.md.tmpl +48 -0
- package/plugins/pbr/templates/VERIFICATION-DETAIL.md.tmpl +13 -10
- package/plugins/pbr/templates/pr-body.md.tmpl +22 -0
- package/plugins/pbr/templates/project-CONTEXT.md.tmpl +43 -0
- package/plugins/pbr/templates/research-outputs/ARCHITECTURE.md.tmpl +91 -0
- package/plugins/pbr/templates/research-outputs/FEATURES.md.tmpl +64 -0
- package/plugins/pbr/templates/research-outputs/PITFALLS.md.tmpl +50 -0
- package/plugins/pbr/templates/research-outputs/STACK.md.tmpl +63 -0
- package/plugins/pbr/templates/research-outputs/SUMMARY.md.tmpl +98 -0
- package/scripts/build-hooks.js +61 -0
- package/scripts/generate-derivatives.js +581 -0
- package/scripts/run-tests.cjs +29 -0
- package/dashboard/bin/cli.js +0 -25
- package/dashboard/public/css/layout.css +0 -406
- package/dashboard/public/css/status-colors.css +0 -98
- package/dashboard/public/js/htmx-title.js +0 -5
- package/dashboard/public/js/sidebar-toggle.js +0 -20
- package/dashboard/src/app.js +0 -78
- package/dashboard/src/middleware/errorHandler.js +0 -52
- package/dashboard/src/middleware/notFoundHandler.js +0 -9
- package/dashboard/src/repositories/planning.repository.js +0 -128
- package/dashboard/src/routes/events.routes.js +0 -40
- package/dashboard/src/routes/index.routes.js +0 -31
- package/dashboard/src/routes/pages.routes.js +0 -252
- package/dashboard/src/server.js +0 -42
- package/dashboard/src/services/dashboard.service.js +0 -286
- package/dashboard/src/services/phase.service.js +0 -226
- package/dashboard/src/services/project.service.js +0 -57
- package/dashboard/src/services/roadmap.service.js +0 -171
- package/dashboard/src/services/sse.service.js +0 -58
- package/dashboard/src/services/todo.service.js +0 -254
- package/dashboard/src/services/watcher.service.js +0 -48
- package/dashboard/src/views/coming-soon.ejs +0 -11
- package/dashboard/src/views/error.ejs +0 -13
- package/dashboard/src/views/index.ejs +0 -5
- package/dashboard/src/views/layout.ejs +0 -1
- package/dashboard/src/views/partials/dashboard-content.ejs +0 -77
- package/dashboard/src/views/partials/footer.ejs +0 -3
- package/dashboard/src/views/partials/head.ejs +0 -21
- package/dashboard/src/views/partials/header.ejs +0 -12
- package/dashboard/src/views/partials/layout-bottom.ejs +0 -15
- package/dashboard/src/views/partials/layout-top.ejs +0 -8
- package/dashboard/src/views/partials/phase-content.ejs +0 -189
- package/dashboard/src/views/partials/phase-doc-content.ejs +0 -38
- package/dashboard/src/views/partials/phases-content.ejs +0 -117
- package/dashboard/src/views/partials/roadmap-content.ejs +0 -142
- package/dashboard/src/views/partials/sidebar.ejs +0 -38
- package/dashboard/src/views/partials/todo-create-content.ejs +0 -53
- package/dashboard/src/views/partials/todo-detail-content.ejs +0 -38
- package/dashboard/src/views/partials/todos-content.ejs +0 -53
- package/dashboard/src/views/phase-detail.ejs +0 -5
- package/dashboard/src/views/phase-doc.ejs +0 -5
- package/dashboard/src/views/phases.ejs +0 -5
- package/dashboard/src/views/roadmap.ejs +0 -5
- package/dashboard/src/views/todo-create.ejs +0 -5
- package/dashboard/src/views/todo-detail.ejs +0 -5
- package/dashboard/src/views/todos.ejs +0 -5
- package/plugins/cursor-pbr/references/agent-anti-patterns.md +0 -25
- package/plugins/cursor-pbr/references/agent-interactions.md +0 -135
- package/plugins/cursor-pbr/references/checkpoints.md +0 -158
- package/plugins/cursor-pbr/references/planning-config.md +0 -214
- package/plugins/cursor-pbr/references/subagent-coordination.md +0 -120
- package/plugins/cursor-pbr/references/verification-patterns.md +0 -199
- package/plugins/cursor-pbr/skills/begin/templates/researcher-prompt.md.tmpl +0 -20
- package/plugins/cursor-pbr/skills/begin/templates/roadmap-prompt.md.tmpl +0 -31
- package/plugins/cursor-pbr/skills/begin/templates/synthesis-prompt.md.tmpl +0 -17
- package/plugins/cursor-pbr/skills/debug/templates/continuation-prompt.md.tmpl +0 -17
- package/plugins/cursor-pbr/skills/debug/templates/initial-investigation-prompt.md.tmpl +0 -28
- package/plugins/cursor-pbr/skills/shared/progress-display.md +0 -54
- package/plugins/cursor-pbr/skills/shared/state-loading.md +0 -63
- package/plugins/cursor-pbr/templates/RESEARCH-SUMMARY.md.tmpl +0 -98
- package/plugins/pbr/commands/begin.md +0 -5
- package/plugins/pbr/commands/build.md +0 -5
- package/plugins/pbr/commands/discuss.md +0 -5
- package/plugins/pbr/commands/milestone.md +0 -5
- package/plugins/pbr/commands/pause.md +0 -5
- package/plugins/pbr/commands/plan.md +0 -5
- package/plugins/pbr/commands/resume.md +0 -5
- package/plugins/pbr/commands/review.md +0 -5
- package/plugins/pbr/commands/scan.md +0 -5
- package/plugins/pbr/commands/status.md +0 -5
- package/plugins/pbr/commands/todo.md +0 -5
- package/plugins/pbr/references/agent-interactions.md +0 -134
- package/plugins/pbr/references/pbr-rules.md +0 -193
- package/plugins/pbr/references/planning-config.md +0 -213
- package/plugins/pbr/references/subagent-coordination.md +0 -119
- package/plugins/pbr/references/verification-patterns.md +0 -198
- package/plugins/pbr/skills/shared/progress-display.md +0 -53
- package/plugins/pbr/skills/shared/state-loading.md +0 -62
- package/plugins/pbr/templates/RESEARCH-SUMMARY.md.tmpl +0 -97
- package/plugins/pbr/templates/research/ARCHITECTURE.md.tmpl +0 -124
- package/plugins/pbr/templates/research/STACK.md.tmpl +0 -71
- package/plugins/pbr/templates/research/SUMMARY.md.tmpl +0 -112
- package/plugins/pbr/templates/research-outputs/phase-research.md.tmpl +0 -81
- package/plugins/pbr/templates/research-outputs/project-research.md.tmpl +0 -99
- package/plugins/pbr/templates/research-outputs/synthesis.md.tmpl +0 -36
- /package/plugins/pbr/references/{agent-anti-patterns.md → archive/agent-anti-patterns.md} +0 -0
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
<planning_config>
|
|
2
|
+
|
|
3
|
+
Configuration options for `.planning/` directory behavior.
|
|
4
|
+
|
|
5
|
+
<config_schema>
|
|
6
|
+
```json
|
|
7
|
+
"planning": {
|
|
8
|
+
"commit_docs": true,
|
|
9
|
+
"search_gitignored": false
|
|
10
|
+
},
|
|
11
|
+
"git": {
|
|
12
|
+
"branching_strategy": "none",
|
|
13
|
+
"phase_branch_template": "pbr/phase-{phase}-{slug}",
|
|
14
|
+
"milestone_branch_template": "pbr/{milestone}-{slug}"
|
|
15
|
+
}
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
| Option | Default | Description |
|
|
19
|
+
|--------|---------|-------------|
|
|
20
|
+
| `commit_docs` | `true` | Whether to commit planning artifacts to git |
|
|
21
|
+
| `search_gitignored` | `false` | Add `--no-ignore` to broad rg searches |
|
|
22
|
+
| `git.branching_strategy` | `"none"` | Git branching approach: `"none"`, `"phase"`, or `"milestone"` |
|
|
23
|
+
| `git.phase_branch_template` | `"pbr/phase-{phase}-{slug}"` | Branch template for phase strategy |
|
|
24
|
+
| `git.milestone_branch_template` | `"pbr/{milestone}-{slug}"` | Branch template for milestone strategy |
|
|
25
|
+
</config_schema>
|
|
26
|
+
|
|
27
|
+
<commit_docs_behavior>
|
|
28
|
+
|
|
29
|
+
**When `commit_docs: true` (default):**
|
|
30
|
+
- Planning files committed normally
|
|
31
|
+
- SUMMARY.md, STATE.md, ROADMAP.md tracked in git
|
|
32
|
+
- Full history of planning decisions preserved
|
|
33
|
+
|
|
34
|
+
**When `commit_docs: false`:**
|
|
35
|
+
- Skip all `git add`/`git commit` for `.planning/` files
|
|
36
|
+
- User must add `.planning/` to `.gitignore`
|
|
37
|
+
- Useful for: OSS contributions, client projects, keeping planning private
|
|
38
|
+
|
|
39
|
+
**Using pbr-tools.cjs (preferred):**
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
# Commit with automatic commit_docs + gitignore checks:
|
|
43
|
+
node "$HOME/.claude/plan-build-run/bin/pbr-tools.cjs" commit "docs: update state" --files .planning/STATE.md
|
|
44
|
+
|
|
45
|
+
# Load config via state load (returns JSON):
|
|
46
|
+
INIT=$(node "$HOME/.claude/plan-build-run/bin/pbr-tools.cjs" state load)
|
|
47
|
+
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
48
|
+
# commit_docs is available in the JSON output
|
|
49
|
+
|
|
50
|
+
# Or use init commands which include commit_docs:
|
|
51
|
+
INIT=$(node "$HOME/.claude/plan-build-run/bin/pbr-tools.cjs" init execute-phase "1")
|
|
52
|
+
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
53
|
+
# commit_docs is included in all init command outputs
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
**Auto-detection:** If `.planning/` is gitignored, `commit_docs` is automatically `false` regardless of config.json. This prevents git errors when users have `.planning/` in `.gitignore`.
|
|
57
|
+
|
|
58
|
+
**Commit via CLI (handles checks automatically):**
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
node "$HOME/.claude/plan-build-run/bin/pbr-tools.cjs" commit "docs: update state" --files .planning/STATE.md
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
The CLI checks `commit_docs` config and gitignore status internally — no manual conditionals needed.
|
|
65
|
+
|
|
66
|
+
</commit_docs_behavior>
|
|
67
|
+
|
|
68
|
+
<search_behavior>
|
|
69
|
+
|
|
70
|
+
**When `search_gitignored: false` (default):**
|
|
71
|
+
- Standard rg behavior (respects .gitignore)
|
|
72
|
+
- Direct path searches work: `rg "pattern" .planning/` finds files
|
|
73
|
+
- Broad searches skip gitignored: `rg "pattern"` skips `.planning/`
|
|
74
|
+
|
|
75
|
+
**When `search_gitignored: true`:**
|
|
76
|
+
- Add `--no-ignore` to broad rg searches that should include `.planning/`
|
|
77
|
+
- Only needed when searching entire repo and expecting `.planning/` matches
|
|
78
|
+
|
|
79
|
+
**Note:** Most PBR operations use direct file reads or explicit paths, which work regardless of gitignore status.
|
|
80
|
+
|
|
81
|
+
</search_behavior>
|
|
82
|
+
|
|
83
|
+
<setup_uncommitted_mode>
|
|
84
|
+
|
|
85
|
+
To use uncommitted mode:
|
|
86
|
+
|
|
87
|
+
1. **Set config:**
|
|
88
|
+
```json
|
|
89
|
+
"planning": {
|
|
90
|
+
"commit_docs": false,
|
|
91
|
+
"search_gitignored": true
|
|
92
|
+
}
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
2. **Add to .gitignore:**
|
|
96
|
+
```
|
|
97
|
+
.planning/
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
3. **Existing tracked files:** If `.planning/` was previously tracked:
|
|
101
|
+
```bash
|
|
102
|
+
git rm -r --cached .planning/
|
|
103
|
+
git commit -m "chore: stop tracking planning docs"
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
4. **Branch merges:** When using `branching_strategy: phase` or `milestone`, the `complete-milestone` workflow automatically strips `.planning/` files from staging before merge commits when `commit_docs: false`.
|
|
107
|
+
|
|
108
|
+
</setup_uncommitted_mode>
|
|
109
|
+
|
|
110
|
+
<branching_strategy_behavior>
|
|
111
|
+
|
|
112
|
+
**Branching Strategies:**
|
|
113
|
+
|
|
114
|
+
| Strategy | When branch created | Branch scope | Merge point |
|
|
115
|
+
|----------|---------------------|--------------|-------------|
|
|
116
|
+
| `none` | Never | N/A | N/A |
|
|
117
|
+
| `phase` | At `execute-phase` start | Single phase | User merges after phase |
|
|
118
|
+
| `milestone` | At first `execute-phase` of milestone | Entire milestone | At `complete-milestone` |
|
|
119
|
+
|
|
120
|
+
**When `git.branching_strategy: "none"` (default):**
|
|
121
|
+
- All work commits to current branch
|
|
122
|
+
- Standard PBR behavior
|
|
123
|
+
|
|
124
|
+
**When `git.branching_strategy: "phase"`:**
|
|
125
|
+
- `execute-phase` creates/switches to a branch before execution
|
|
126
|
+
- Branch name from `phase_branch_template` (e.g., `pbr/phase-03-authentication`)
|
|
127
|
+
- All plan commits go to that branch
|
|
128
|
+
- User merges branches manually after phase completion
|
|
129
|
+
- `complete-milestone` offers to merge all phase branches
|
|
130
|
+
|
|
131
|
+
**When `git.branching_strategy: "milestone"`:**
|
|
132
|
+
- First `execute-phase` of milestone creates the milestone branch
|
|
133
|
+
- Branch name from `milestone_branch_template` (e.g., `pbr/v1.0-mvp`)
|
|
134
|
+
- All phases in milestone commit to same branch
|
|
135
|
+
- `complete-milestone` offers to merge milestone branch to main
|
|
136
|
+
|
|
137
|
+
**Template variables:**
|
|
138
|
+
|
|
139
|
+
| Variable | Available in | Description |
|
|
140
|
+
|----------|--------------|-------------|
|
|
141
|
+
| `{phase}` | phase_branch_template | Zero-padded phase number (e.g., "03") |
|
|
142
|
+
| `{slug}` | Both | Lowercase, hyphenated name |
|
|
143
|
+
| `{milestone}` | milestone_branch_template | Milestone version (e.g., "v1.0") |
|
|
144
|
+
|
|
145
|
+
**Checking the config:**
|
|
146
|
+
|
|
147
|
+
Use `init execute-phase` which returns all config as JSON:
|
|
148
|
+
```bash
|
|
149
|
+
INIT=$(node "$HOME/.claude/plan-build-run/bin/pbr-tools.cjs" init execute-phase "1")
|
|
150
|
+
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
151
|
+
# JSON output includes: branching_strategy, phase_branch_template, milestone_branch_template
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
Or use `state load` for the config values:
|
|
155
|
+
```bash
|
|
156
|
+
INIT=$(node "$HOME/.claude/plan-build-run/bin/pbr-tools.cjs" state load)
|
|
157
|
+
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
158
|
+
# Parse branching_strategy, phase_branch_template, milestone_branch_template from JSON
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
**Branch creation:**
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
# For phase strategy
|
|
165
|
+
if [ "$BRANCHING_STRATEGY" = "phase" ]; then
|
|
166
|
+
PHASE_SLUG=$(echo "$PHASE_NAME" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9]/-/g' | sed 's/--*/-/g' | sed 's/^-//;s/-$//')
|
|
167
|
+
BRANCH_NAME=$(echo "$PHASE_BRANCH_TEMPLATE" | sed "s/{phase}/$PADDED_PHASE/g" | sed "s/{slug}/$PHASE_SLUG/g")
|
|
168
|
+
git checkout -b "$BRANCH_NAME" 2>/dev/null || git checkout "$BRANCH_NAME"
|
|
169
|
+
fi
|
|
170
|
+
|
|
171
|
+
# For milestone strategy
|
|
172
|
+
if [ "$BRANCHING_STRATEGY" = "milestone" ]; then
|
|
173
|
+
MILESTONE_SLUG=$(echo "$MILESTONE_NAME" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9]/-/g' | sed 's/--*/-/g' | sed 's/^-//;s/-$//')
|
|
174
|
+
BRANCH_NAME=$(echo "$MILESTONE_BRANCH_TEMPLATE" | sed "s/{milestone}/$MILESTONE_VERSION/g" | sed "s/{slug}/$MILESTONE_SLUG/g")
|
|
175
|
+
git checkout -b "$BRANCH_NAME" 2>/dev/null || git checkout "$BRANCH_NAME"
|
|
176
|
+
fi
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
**Merge options at complete-milestone:**
|
|
180
|
+
|
|
181
|
+
| Option | Git command | Result |
|
|
182
|
+
|--------|-------------|--------|
|
|
183
|
+
| Squash merge (recommended) | `git merge --squash` | Single clean commit per branch |
|
|
184
|
+
| Merge with history | `git merge --no-ff` | Preserves all individual commits |
|
|
185
|
+
| Delete without merging | `git branch -D` | Discard branch work |
|
|
186
|
+
| Keep branches | (none) | Manual handling later |
|
|
187
|
+
|
|
188
|
+
Squash merge is recommended — keeps main branch history clean while preserving the full development history in the branch (until deleted).
|
|
189
|
+
|
|
190
|
+
**Use cases:**
|
|
191
|
+
|
|
192
|
+
| Strategy | Best for |
|
|
193
|
+
|----------|----------|
|
|
194
|
+
| `none` | Solo development, simple projects |
|
|
195
|
+
| `phase` | Code review per phase, granular rollback, team collaboration |
|
|
196
|
+
| `milestone` | Release branches, staging environments, PR per version |
|
|
197
|
+
|
|
198
|
+
</branching_strategy_behavior>
|
|
199
|
+
|
|
200
|
+
</planning_config>
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
<questioning_guide>
|
|
2
|
+
|
|
3
|
+
Project initialization is dream extraction, not requirements gathering. You're helping the user discover and articulate what they want to build. This isn't a contract negotiation — it's collaborative thinking.
|
|
4
|
+
|
|
5
|
+
<philosophy>
|
|
6
|
+
|
|
7
|
+
**You are a thinking partner, not an interviewer.**
|
|
8
|
+
|
|
9
|
+
The user often has a fuzzy idea. Your job is to help them sharpen it. Ask questions that make them think "oh, I hadn't considered that" or "yes, that's exactly what I mean."
|
|
10
|
+
|
|
11
|
+
Don't interrogate. Collaborate. Don't follow a script. Follow the thread.
|
|
12
|
+
|
|
13
|
+
</philosophy>
|
|
14
|
+
|
|
15
|
+
<the_goal>
|
|
16
|
+
|
|
17
|
+
By the end of questioning, you need enough clarity to write a PROJECT.md that downstream phases can act on:
|
|
18
|
+
|
|
19
|
+
- **Research** needs: what domain to research, what the user already knows, what unknowns exist
|
|
20
|
+
- **Requirements** needs: clear enough vision to scope v1 features
|
|
21
|
+
- **Roadmap** needs: clear enough vision to decompose into phases, what "done" looks like
|
|
22
|
+
- **plan-phase** needs: specific requirements to break into tasks, context for implementation choices
|
|
23
|
+
- **execute-phase** needs: success criteria to verify against, the "why" behind requirements
|
|
24
|
+
|
|
25
|
+
A vague PROJECT.md forces every downstream phase to guess. The cost compounds.
|
|
26
|
+
|
|
27
|
+
</the_goal>
|
|
28
|
+
|
|
29
|
+
<how_to_question>
|
|
30
|
+
|
|
31
|
+
**Start open.** Let them dump their mental model. Don't interrupt with structure.
|
|
32
|
+
|
|
33
|
+
**Follow energy.** Whatever they emphasized, dig into that. What excited them? What problem sparked this?
|
|
34
|
+
|
|
35
|
+
**Challenge vagueness.** Never accept fuzzy answers. "Good" means what? "Users" means who? "Simple" means how?
|
|
36
|
+
|
|
37
|
+
**Make the abstract concrete.** "Walk me through using this." "What does that actually look like?"
|
|
38
|
+
|
|
39
|
+
**Clarify ambiguity.** "When you say Z, do you mean A or B?" "You mentioned X — tell me more."
|
|
40
|
+
|
|
41
|
+
**Know when to stop.** When you understand what they want, why they want it, who it's for, and what done looks like — offer to proceed.
|
|
42
|
+
|
|
43
|
+
</how_to_question>
|
|
44
|
+
|
|
45
|
+
<question_types>
|
|
46
|
+
|
|
47
|
+
Use these as inspiration, not a checklist. Pick what's relevant to the thread.
|
|
48
|
+
|
|
49
|
+
**Motivation — why this exists:**
|
|
50
|
+
- "What prompted this?"
|
|
51
|
+
- "What are you doing today that this replaces?"
|
|
52
|
+
- "What would you do if this existed?"
|
|
53
|
+
|
|
54
|
+
**Concreteness — what it actually is:**
|
|
55
|
+
- "Walk me through using this"
|
|
56
|
+
- "You said X — what does that actually look like?"
|
|
57
|
+
- "Give me an example"
|
|
58
|
+
|
|
59
|
+
**Clarification — what they mean:**
|
|
60
|
+
- "When you say Z, do you mean A or B?"
|
|
61
|
+
- "You mentioned X — tell me more about that"
|
|
62
|
+
|
|
63
|
+
**Success — how you'll know it's working:**
|
|
64
|
+
- "How will you know this is working?"
|
|
65
|
+
- "What does done look like?"
|
|
66
|
+
|
|
67
|
+
</question_types>
|
|
68
|
+
|
|
69
|
+
<using_askuserquestion>
|
|
70
|
+
|
|
71
|
+
Use AskUserQuestion to help users think by presenting concrete options to react to.
|
|
72
|
+
|
|
73
|
+
**Good options:**
|
|
74
|
+
- Interpretations of what they might mean
|
|
75
|
+
- Specific examples to confirm or deny
|
|
76
|
+
- Concrete choices that reveal priorities
|
|
77
|
+
|
|
78
|
+
**Bad options:**
|
|
79
|
+
- Generic categories ("Technical", "Business", "Other")
|
|
80
|
+
- Leading options that presume an answer
|
|
81
|
+
- Too many options (2-4 is ideal)
|
|
82
|
+
- Headers longer than 12 characters (hard limit — validation will reject them)
|
|
83
|
+
|
|
84
|
+
**Example — vague answer:**
|
|
85
|
+
User says "it should be fast"
|
|
86
|
+
|
|
87
|
+
- header: "Fast"
|
|
88
|
+
- question: "Fast how?"
|
|
89
|
+
- options: ["Sub-second response", "Handles large datasets", "Quick to build", "Let me explain"]
|
|
90
|
+
|
|
91
|
+
**Example — following a thread:**
|
|
92
|
+
User mentions "frustrated with current tools"
|
|
93
|
+
|
|
94
|
+
- header: "Frustration"
|
|
95
|
+
- question: "What specifically frustrates you?"
|
|
96
|
+
- options: ["Too many clicks", "Missing features", "Unreliable", "Let me explain"]
|
|
97
|
+
|
|
98
|
+
**Tip for users — modifying an option:**
|
|
99
|
+
Users who want a slightly modified version of an option can select "Other" and reference the option by number: `#1 but for finger joints only` or `#2 with pagination disabled`. This avoids retyping the full option text.
|
|
100
|
+
|
|
101
|
+
</using_askuserquestion>
|
|
102
|
+
|
|
103
|
+
<freeform_rule>
|
|
104
|
+
|
|
105
|
+
**When the user wants to explain freely, STOP using AskUserQuestion.**
|
|
106
|
+
|
|
107
|
+
If a user selects "Other" and their response signals they want to describe something in their own words (e.g., "let me describe it", "I'll explain", "something else", or any open-ended reply that isn't choosing/modifying an existing option), you MUST:
|
|
108
|
+
|
|
109
|
+
1. **Ask your follow-up as plain text** — NOT via AskUserQuestion
|
|
110
|
+
2. **Wait for them to type at the normal prompt**
|
|
111
|
+
3. **Resume AskUserQuestion** only after processing their freeform response
|
|
112
|
+
|
|
113
|
+
The same applies if YOU include a freeform-indicating option (like "Let me explain" or "Describe in detail") and the user selects it.
|
|
114
|
+
|
|
115
|
+
**Wrong:** User says "let me describe it" → AskUserQuestion("What feature?", ["Feature A", "Feature B", "Describe in detail"])
|
|
116
|
+
**Right:** User says "let me describe it" → "Go ahead — what are you thinking?"
|
|
117
|
+
|
|
118
|
+
</freeform_rule>
|
|
119
|
+
|
|
120
|
+
<context_checklist>
|
|
121
|
+
|
|
122
|
+
Use this as a **background checklist**, not a conversation structure. Check these mentally as you go. If gaps remain, weave questions naturally.
|
|
123
|
+
|
|
124
|
+
- [ ] What they're building (concrete enough to explain to a stranger)
|
|
125
|
+
- [ ] Why it needs to exist (the problem or desire driving it)
|
|
126
|
+
- [ ] Who it's for (even if just themselves)
|
|
127
|
+
- [ ] What "done" looks like (observable outcomes)
|
|
128
|
+
|
|
129
|
+
Four things. If they volunteer more, capture it.
|
|
130
|
+
|
|
131
|
+
</context_checklist>
|
|
132
|
+
|
|
133
|
+
<decision_gate>
|
|
134
|
+
|
|
135
|
+
When you could write a clear PROJECT.md, offer to proceed:
|
|
136
|
+
|
|
137
|
+
- header: "Ready?"
|
|
138
|
+
- question: "I think I understand what you're after. Ready to create PROJECT.md?"
|
|
139
|
+
- options:
|
|
140
|
+
- "Create PROJECT.md" — Let's move forward
|
|
141
|
+
- "Keep exploring" — I want to share more / ask me more
|
|
142
|
+
|
|
143
|
+
If "Keep exploring" — ask what they want to add or identify gaps and probe naturally.
|
|
144
|
+
|
|
145
|
+
Loop until "Create PROJECT.md" selected.
|
|
146
|
+
|
|
147
|
+
</decision_gate>
|
|
148
|
+
|
|
149
|
+
<anti_patterns>
|
|
150
|
+
|
|
151
|
+
- **Checklist walking** — Going through domains regardless of what they said
|
|
152
|
+
- **Canned questions** — "What's your core value?" "What's out of scope?" regardless of context
|
|
153
|
+
- **Corporate speak** — "What are your success criteria?" "Who are your stakeholders?"
|
|
154
|
+
- **Interrogation** — Firing questions without building on answers
|
|
155
|
+
- **Rushing** — Minimizing questions to get to "the work"
|
|
156
|
+
- **Shallow acceptance** — Taking vague answers without probing
|
|
157
|
+
- **Premature constraints** — Asking about tech stack before understanding the idea
|
|
158
|
+
- **User skills** — NEVER ask about user's technical experience. Claude builds.
|
|
159
|
+
|
|
160
|
+
</anti_patterns>
|
|
161
|
+
|
|
162
|
+
</questioning_guide>
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# Reading Verification Results
|
|
2
|
+
|
|
3
|
+
Reference card for interpreting VERIFICATION.md files produced by the verifier agent.
|
|
4
|
+
|
|
5
|
+
## Overall Status
|
|
6
|
+
|
|
7
|
+
| Status | Meaning | Next Action |
|
|
8
|
+
|--------|---------|-------------|
|
|
9
|
+
| `passed` | All must-haves verified at all levels | Phase complete — proceed to next phase |
|
|
10
|
+
| `gaps_found` | One or more must-haves failed | Gap closure needed — run `/pbr:verify-work N --auto-fix` or fix manually |
|
|
11
|
+
| `human_needed` | Automated checks pass but items require manual verification | User must verify listed items, then re-run |
|
|
12
|
+
|
|
13
|
+
Priority: `gaps_found` > `human_needed` > `passed`. Any single failure forces `gaps_found`.
|
|
14
|
+
|
|
15
|
+
## Must-Have Categories
|
|
16
|
+
|
|
17
|
+
| Category | What It Checks | Example |
|
|
18
|
+
|----------|---------------|---------|
|
|
19
|
+
| **Truths** | Observable conditions — can this behavior be observed? | "Login redirects to dashboard" |
|
|
20
|
+
| **Artifacts** | Files/exports that must exist, be substantive, and not be stubs | "src/auth/middleware.ts" |
|
|
21
|
+
| **Key Links** | Connections wired between components | "Auth middleware applied to /api routes" |
|
|
22
|
+
|
|
23
|
+
## Verification Levels (Artifacts)
|
|
24
|
+
|
|
25
|
+
| Level | Check | Pass | Fail |
|
|
26
|
+
|-------|-------|------|------|
|
|
27
|
+
| L1 — Existence | File exists on disk | `EXISTS` | `MISSING` |
|
|
28
|
+
| L2 — Substantive | Not a stub or placeholder | `SUBSTANTIVE` | `STUB` / `PARTIAL` |
|
|
29
|
+
| L3 — Wired | Imported and used by other code | `WIRED` | `IMPORTED-UNUSED` / `ORPHANED` |
|
|
30
|
+
| L4 — Functional | Produces correct results when run | `FUNCTIONAL` | `RUNTIME_ERROR` / `LOGIC_ERROR` |
|
|
31
|
+
|
|
32
|
+
L4 is optional — only applied when automated tests or build commands exist. Items passing L1-L3 without L4 show `PASSED (L3 only)`.
|
|
33
|
+
|
|
34
|
+
## Truth Statuses
|
|
35
|
+
|
|
36
|
+
| Status | Meaning |
|
|
37
|
+
|--------|---------|
|
|
38
|
+
| `VERIFIED` | Truth holds, with evidence |
|
|
39
|
+
| `FAILED` | Truth does not hold |
|
|
40
|
+
| `PARTIAL` | Truth partially holds |
|
|
41
|
+
| `HUMAN_NEEDED` | Cannot verify programmatically |
|
|
42
|
+
|
|
43
|
+
## Key Link Statuses
|
|
44
|
+
|
|
45
|
+
| Status | Meaning |
|
|
46
|
+
|--------|---------|
|
|
47
|
+
| `WIRED` | Correct function called with correct arguments |
|
|
48
|
+
| `ARGS_WRONG` | Correct function called but arguments are incorrect or missing |
|
|
49
|
+
| `IMPORTED-UNUSED` | Symbol imported but never called |
|
|
50
|
+
| `ORPHANED` | No import exists |
|
|
51
|
+
|
|
52
|
+
## Gap Analysis
|
|
53
|
+
|
|
54
|
+
Each gap in the `gaps` frontmatter array contains:
|
|
55
|
+
|
|
56
|
+
- **must_have** — which must-have failed
|
|
57
|
+
- **level** — which verification level failed (existence, substantive, wired, functional)
|
|
58
|
+
- **evidence** — what the verifier found
|
|
59
|
+
- **recommendation** — suggested fix action
|
|
60
|
+
|
|
61
|
+
### Gap Annotations (Re-verification)
|
|
62
|
+
|
|
63
|
+
| Annotation | Meaning |
|
|
64
|
+
|------------|---------|
|
|
65
|
+
| `[PREVIOUSLY KNOWN]` | Gap existed in prior verification run |
|
|
66
|
+
| `[NEW]` | Gap appeared for the first time |
|
|
67
|
+
| `[REGRESSION]` | Previously passing item now fails — high priority |
|
|
68
|
+
|
|
69
|
+
## Acting on Results
|
|
70
|
+
|
|
71
|
+
| Result | Action |
|
|
72
|
+
|--------|--------|
|
|
73
|
+
| All passed | Run `/pbr:verify-work N` to complete UAT, then advance |
|
|
74
|
+
| Gaps found | Run `/pbr:verify-work N --auto-fix` for automated diagnosis and fix plans |
|
|
75
|
+
| Human needed | Verify listed items manually, then re-run verification |
|
|
76
|
+
| Override false positive | Use the override flow in `/pbr:verify-work` to accept specific gaps |
|
|
77
|
+
| Persistent gaps (3+ attempts) | Escalation options: accept gaps, re-plan, debug, or retry |
|
|
78
|
+
|
|
79
|
+
## Frontmatter Fields
|
|
80
|
+
|
|
81
|
+
| Field | Type | Description |
|
|
82
|
+
|-------|------|-------------|
|
|
83
|
+
| `status` | string | Overall result: passed, gaps_found, human_needed |
|
|
84
|
+
| `checked_at` | ISO date | When verification ran |
|
|
85
|
+
| `attempt` | integer | Verification attempt number (increments on re-verification) |
|
|
86
|
+
| `must_haves_checked` | integer | Total must-haves evaluated |
|
|
87
|
+
| `must_haves_passed` | integer | Must-haves that passed all levels |
|
|
88
|
+
| `must_haves_failed` | integer | Must-haves that failed at any level |
|
|
89
|
+
| `gaps` | array | List of gap objects (must_have, level, evidence, recommendation) |
|
|
90
|
+
| `overrides` | array | Must-haves accepted as false positives by user |
|
|
91
|
+
| `satisfied` | array | REQ-IDs satisfied by this phase |
|
|
92
|
+
| `unsatisfied` | array | REQ-IDs not satisfied |
|
|
93
|
+
| `is_re_verification` | boolean | Whether this is a re-verification run |
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
# Stub Detection Patterns
|
|
2
|
+
|
|
3
|
+
Technology-aware patterns for detecting incomplete implementations. Used by the verifier during Layer 2 (Substantiveness) checks.
|
|
4
|
+
|
|
5
|
+
Read the project's stack from `.planning/codebase/STACK.md` or `.planning/research/STACK.md` to determine which technology-specific patterns to apply. If no stack file exists, use universal patterns only.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Universal Patterns (always check)
|
|
10
|
+
|
|
11
|
+
- TODO, FIXME, HACK, PLACEHOLDER, "not implemented"
|
|
12
|
+
- `return null`, `return {}`, `return []`, `return undefined`
|
|
13
|
+
- Empty function bodies, functions that only console.log
|
|
14
|
+
- `throw new Error('Not implemented')` or similar
|
|
15
|
+
- Placeholder strings ("lorem ipsum", "sample data", "example")
|
|
16
|
+
|
|
17
|
+
## React/Next.js Patterns (when stack includes React/Next)
|
|
18
|
+
|
|
19
|
+
- `<div>ComponentName</div>` — component returning only its name
|
|
20
|
+
- `onClick={() => {}}` — empty event handlers
|
|
21
|
+
- `fetch()` without error handling or response processing
|
|
22
|
+
- `useState` with no state updates
|
|
23
|
+
- Components returning `null`, `<></>`, or single placeholder div
|
|
24
|
+
|
|
25
|
+
## API/Express Patterns (when stack includes Express/Fastify/Koa)
|
|
26
|
+
|
|
27
|
+
- `res.json({ message: "Not implemented" })`
|
|
28
|
+
- Empty middleware: `(req, res, next) => next()`
|
|
29
|
+
- Routes returning hardcoded test data
|
|
30
|
+
- `res.status(501)` responses
|
|
31
|
+
|
|
32
|
+
## Database Patterns (when stack includes any ORM/database)
|
|
33
|
+
|
|
34
|
+
- Empty migration files
|
|
35
|
+
- Models/schemas with no fields beyond id
|
|
36
|
+
- Repository methods that return empty arrays
|
|
37
|
+
|
|
38
|
+
## Python Patterns (when stack includes Python)
|
|
39
|
+
|
|
40
|
+
- `pass` in function bodies
|
|
41
|
+
- `raise NotImplementedError`
|
|
42
|
+
- Functions returning `None` without logic
|
|
43
|
+
- `# TODO` in function bodies
|
|
44
|
+
|
|
45
|
+
## Go Patterns (when stack includes Go)
|
|
46
|
+
|
|
47
|
+
- Functions returning zero values without logic
|
|
48
|
+
- `panic("not implemented")`
|
|
49
|
+
- Empty interface implementations
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## Detailed Examples
|
|
54
|
+
|
|
55
|
+
### TypeScript/JavaScript Stubs
|
|
56
|
+
|
|
57
|
+
```typescript
|
|
58
|
+
// STUB PATTERN: Empty function body
|
|
59
|
+
export function processData() { }
|
|
60
|
+
export function processData() { return; }
|
|
61
|
+
export function processData() { return null; }
|
|
62
|
+
export const processData = () => {};
|
|
63
|
+
|
|
64
|
+
// STUB PATTERN: Placeholder implementation
|
|
65
|
+
export function processData() {
|
|
66
|
+
throw new Error('Not implemented');
|
|
67
|
+
}
|
|
68
|
+
export function processData() {
|
|
69
|
+
throw new Error('TODO');
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// STUB PATTERN: Hardcoded return value
|
|
73
|
+
export function getUsers(): User[] {
|
|
74
|
+
return [];
|
|
75
|
+
}
|
|
76
|
+
export function getConfig(): Config {
|
|
77
|
+
return {} as Config;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// STUB PATTERN: Console.log instead of implementation
|
|
81
|
+
export function saveUser(user: User): void {
|
|
82
|
+
console.log('TODO: implement saveUser', user);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// STUB PATTERN: Pass-through without logic
|
|
86
|
+
export function validateInput(input: unknown): boolean {
|
|
87
|
+
return true; // Always passes - no real validation
|
|
88
|
+
}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### React Component Stubs
|
|
92
|
+
|
|
93
|
+
```tsx
|
|
94
|
+
// STUB: Null return
|
|
95
|
+
export function Dashboard() { return null; }
|
|
96
|
+
|
|
97
|
+
// STUB: Empty fragment
|
|
98
|
+
export function Dashboard() { return <></>; }
|
|
99
|
+
|
|
100
|
+
// STUB: Placeholder text
|
|
101
|
+
export function Dashboard() { return <div>Dashboard</div>; }
|
|
102
|
+
export function Dashboard() { return <div>Coming soon</div>; }
|
|
103
|
+
|
|
104
|
+
// STUB: Div with just the name
|
|
105
|
+
export function UserProfile() { return <div>UserProfile</div>; }
|
|
106
|
+
|
|
107
|
+
// REAL (NOT a stub): Has actual JSX structure with data binding
|
|
108
|
+
export function Dashboard({ data }: Props) {
|
|
109
|
+
return (
|
|
110
|
+
<div className="dashboard">
|
|
111
|
+
<h1>{data.title}</h1>
|
|
112
|
+
<MetricsGrid metrics={data.metrics} />
|
|
113
|
+
</div>
|
|
114
|
+
);
|
|
115
|
+
}
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### API Route/Handler Stubs
|
|
119
|
+
|
|
120
|
+
```typescript
|
|
121
|
+
// STUB: Empty response
|
|
122
|
+
app.get('/api/users', (req, res) => { res.json({}); });
|
|
123
|
+
|
|
124
|
+
// STUB: Not implemented status
|
|
125
|
+
app.get('/api/users', (req, res) => { res.status(501).json({ error: 'Not implemented' }); });
|
|
126
|
+
|
|
127
|
+
// STUB: Hardcoded test data
|
|
128
|
+
app.get('/api/users', (req, res) => {
|
|
129
|
+
res.json([{ id: 1, name: 'Test User' }]);
|
|
130
|
+
});
|
|
131
|
+
|
|
132
|
+
// REAL: Database query, error handling, response
|
|
133
|
+
app.get('/api/users', async (req, res) => {
|
|
134
|
+
const { page = 1, limit = 20 } = req.query;
|
|
135
|
+
const users = await db.users.findMany({ skip: (page - 1) * limit, take: limit });
|
|
136
|
+
res.json({ data: users, page, limit });
|
|
137
|
+
});
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### Test Stubs
|
|
141
|
+
|
|
142
|
+
```typescript
|
|
143
|
+
// STUB: No assertions
|
|
144
|
+
it('should process data', () => {});
|
|
145
|
+
|
|
146
|
+
// STUB: Trivial assertion
|
|
147
|
+
it('should process data', () => { expect(true).toBe(true); });
|
|
148
|
+
|
|
149
|
+
// STUB: Skipped
|
|
150
|
+
it.skip('should process data', () => { /* ... */ });
|
|
151
|
+
xit('should process data', () => { /* ... */ });
|
|
152
|
+
|
|
153
|
+
// REAL: Actual test with meaningful assertions
|
|
154
|
+
it('should process data and return transformed result', () => {
|
|
155
|
+
const input = createTestData();
|
|
156
|
+
const result = processData(input);
|
|
157
|
+
expect(result.items).toHaveLength(3);
|
|
158
|
+
expect(result.total).toBe(150);
|
|
159
|
+
});
|
|
160
|
+
```
|