@sienklogic/plan-build-run 2.21.0 → 2.21.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1331 -299
- package/CLAUDE.md +75 -40
- package/LICENSE +2 -1
- package/README.md +412 -177
- package/bin/install.js +2752 -0
- package/dashboard/bin/cli.cjs +96 -0
- package/dashboard/bin/stop.cjs +129 -0
- package/dashboard/eslint.config.js +37 -0
- package/dashboard/index.html +20 -0
- package/dashboard/package.json +27 -25
- package/dashboard/server/index.js +151 -0
- package/dashboard/server/lib/frontmatter.js +92 -0
- package/dashboard/server/middleware/static.js +35 -0
- package/dashboard/server/package.json +16 -0
- package/dashboard/server/routes/agents.js +234 -0
- package/dashboard/server/routes/config.js +64 -0
- package/dashboard/server/routes/health.js +98 -0
- package/dashboard/server/routes/incidents.js +78 -0
- package/dashboard/server/routes/intel.js +69 -0
- package/dashboard/server/routes/memory.js +107 -0
- package/dashboard/server/routes/planning.js +234 -0
- package/dashboard/server/routes/progress.js +77 -0
- package/dashboard/server/routes/projects.js +36 -0
- package/dashboard/server/routes/requirements.js +40 -0
- package/dashboard/server/routes/roadmap.js +69 -0
- package/dashboard/server/routes/sessions.js +70 -0
- package/dashboard/server/routes/status.js +25 -0
- package/dashboard/server/routes/telemetry.js +233 -0
- package/dashboard/server/services/file-watcher.js +105 -0
- package/dashboard/server/services/planning-reader.js +727 -0
- package/dashboard/server/test/cli.test.js +34 -0
- package/dashboard/server/test/frontmatter.test.js +104 -0
- package/dashboard/server/test/isolation.test.js +32 -0
- package/dashboard/server/test/planning-reader.test.js +151 -0
- package/dashboard/server/test/routes.test.js +91 -0
- package/dashboard/server/test/ws.test.js +81 -0
- package/dashboard/server/ws.js +96 -0
- package/dashboard/src/App.jsx +165 -0
- package/dashboard/src/components/charts/BudgetBars.jsx +42 -0
- package/dashboard/src/components/charts/ContextRadar.jsx +34 -0
- package/dashboard/src/components/charts/PhaseDonut.jsx +66 -0
- package/dashboard/src/components/charts/SuccessTrend.jsx +45 -0
- package/dashboard/src/components/charts/TokenChart.jsx +55 -0
- package/dashboard/src/components/charts/index.js +5 -0
- package/dashboard/src/components/config/CfgSection.jsx +93 -0
- package/dashboard/src/components/layout/Header.jsx +89 -0
- package/dashboard/src/components/layout/ProjectSwitcher.jsx +160 -0
- package/dashboard/src/components/layout/Sidebar.jsx +161 -0
- package/dashboard/src/components/ui/AutoModeBanner.jsx +138 -0
- package/dashboard/src/components/ui/BackButton.jsx +27 -0
- package/dashboard/src/components/ui/Badge.jsx +27 -0
- package/dashboard/src/components/ui/Card.jsx +23 -0
- package/dashboard/src/components/ui/ChartTooltip.jsx +48 -0
- package/dashboard/src/components/ui/CheckpointBox.jsx +110 -0
- package/dashboard/src/components/ui/CodeBlock.jsx +27 -0
- package/dashboard/src/components/ui/ConfidenceBadge.jsx +20 -0
- package/dashboard/src/components/ui/ConfirmModal.jsx +161 -0
- package/dashboard/src/components/ui/ConnectionBanner.jsx +60 -0
- package/dashboard/src/components/ui/ErrorBoundary.jsx +106 -0
- package/dashboard/src/components/ui/ErrorBox.jsx +107 -0
- package/dashboard/src/components/ui/KeyValue.jsx +33 -0
- package/dashboard/src/components/ui/LoadingSkeleton.jsx +84 -0
- package/dashboard/src/components/ui/MetricCard.jsx +58 -0
- package/dashboard/src/components/ui/NextUpBlock.jsx +92 -0
- package/dashboard/src/components/ui/NumberInput.jsx +44 -0
- package/dashboard/src/components/ui/PBRBanner.jsx +47 -0
- package/dashboard/src/components/ui/PipelineView.jsx +130 -0
- package/dashboard/src/components/ui/ProgressBar.jsx +28 -0
- package/dashboard/src/components/ui/ProgressDisplay.jsx +47 -0
- package/dashboard/src/components/ui/QualityGateBadge.jsx +15 -0
- package/dashboard/src/components/ui/SectionTitle.jsx +35 -0
- package/dashboard/src/components/ui/SelectInput.jsx +45 -0
- package/dashboard/src/components/ui/StatusDot.jsx +51 -0
- package/dashboard/src/components/ui/StatusSymbol.jsx +49 -0
- package/dashboard/src/components/ui/TabBar.jsx +41 -0
- package/dashboard/src/components/ui/TextInput.jsx +42 -0
- package/dashboard/src/components/ui/Toast.jsx +117 -0
- package/dashboard/src/components/ui/Toggle.jsx +70 -0
- package/dashboard/src/components/ui/index.js +29 -0
- package/dashboard/src/hooks/useDocumentTitle.js +16 -0
- package/dashboard/src/hooks/useFetch.js +50 -0
- package/dashboard/src/hooks/useToast.jsx +43 -0
- package/dashboard/src/hooks/useWebSocket.js +103 -0
- package/dashboard/src/lib/api.js +112 -0
- package/dashboard/src/lib/configSchema.js +189 -0
- package/dashboard/src/lib/constants.js +22 -0
- package/dashboard/src/main.jsx +15 -0
- package/dashboard/src/pages/AgentsPage.jsx +191 -0
- package/dashboard/src/pages/ConfigPage.jsx +298 -0
- package/dashboard/src/pages/HooksPage.jsx +412 -0
- package/dashboard/src/pages/IncidentsPage.jsx +135 -0
- package/dashboard/src/pages/IntelPage.jsx +193 -0
- package/dashboard/src/pages/LiveFeed.jsx +274 -0
- package/dashboard/src/pages/MemoryPage.jsx +107 -0
- package/dashboard/src/pages/OnboardingPage.jsx +117 -0
- package/dashboard/src/pages/Overview.jsx +360 -0
- package/dashboard/src/pages/PhaseDetailView.jsx +216 -0
- package/dashboard/src/pages/PlanningPage.jsx +181 -0
- package/dashboard/src/pages/ProgressPage.jsx +249 -0
- package/dashboard/src/pages/ResearchPage.jsx +129 -0
- package/dashboard/src/pages/RoadmapPage.jsx +251 -0
- package/dashboard/src/pages/SessionsPage.jsx +117 -0
- package/dashboard/src/pages/Telemetry.jsx +166 -0
- package/dashboard/src/pages/planning/DecisionsTab.jsx +153 -0
- package/dashboard/src/pages/planning/FilesTab.jsx +420 -0
- package/dashboard/src/pages/planning/MilestoneDetail.jsx +319 -0
- package/dashboard/src/pages/planning/MilestonesTab.jsx +151 -0
- package/dashboard/src/pages/planning/NotesTab.jsx +251 -0
- package/dashboard/src/pages/planning/PhasesTab.jsx +218 -0
- package/dashboard/src/pages/planning/QuickTab.jsx +50 -0
- package/dashboard/src/pages/planning/ResearchTab.jsx +103 -0
- package/dashboard/src/pages/planning/TodosTab.jsx +297 -0
- package/dashboard/src/theme/ThemeProvider.jsx +38 -0
- package/dashboard/src/theme/tokens.js +17 -0
- package/dashboard/tests/components/ConfirmModal.test.jsx +179 -0
- package/dashboard/tests/components/ConnectionBanner.test.jsx +37 -0
- package/dashboard/tests/components/ErrorBoundary.test.jsx +59 -0
- package/dashboard/tests/components/LoadingSkeleton.test.jsx +46 -0
- package/dashboard/tests/components/ToastContainer.test.jsx +47 -0
- package/dashboard/tests/components/Toggle.test.jsx +61 -0
- package/dashboard/tests/hooks/useFetch.test.jsx +77 -0
- package/dashboard/tests/hooks/useToast.test.jsx +78 -0
- package/dashboard/tests/hooks/useWebSocket.test.jsx +128 -0
- package/dashboard/tests/pages/ConfigPage.test.jsx +199 -0
- package/dashboard/tests/pages/PlanningPage.test.jsx +119 -0
- package/dashboard/tests/pages/planning/FilesTab.test.jsx +198 -0
- package/dashboard/tests/pages/planning/NotesTab.test.jsx +178 -0
- package/dashboard/tests/pages/planning/TodosTab.test.jsx +188 -0
- package/dashboard/tests/performance.test.jsx +46 -0
- package/dashboard/tests/routes/config.test.js +98 -0
- package/dashboard/tests/routes/health.test.js +40 -0
- package/dashboard/tests/routes/planning.test.js +112 -0
- package/dashboard/tests/routes/roadmap.test.js +91 -0
- package/dashboard/tests/routes/status.test.js +131 -0
- package/dashboard/tests/server/planning-reader.test.js +153 -0
- package/dashboard/tests/setup.js +7 -0
- package/dashboard/vite.config.js +41 -0
- package/package.json +56 -41
- package/plan-build-run/bin/config-schema.json +1298 -0
- package/plugins/pbr/.claude-plugin/plugin.json +1 -1
- package/plugins/pbr/CLAUDE.md +19 -0
- package/plugins/pbr/UI-CONSISTENCY-GAPS.md +1 -1
- package/plugins/pbr/agents/advisor-researcher.md +101 -0
- package/plugins/pbr/agents/audit.md +207 -89
- package/plugins/pbr/agents/codebase-mapper.md +158 -23
- package/plugins/pbr/agents/debugger.md +212 -34
- package/plugins/pbr/agents/dev-sync.md +206 -0
- package/plugins/pbr/agents/executor.md +737 -39
- package/plugins/pbr/agents/general.md +71 -6
- package/plugins/pbr/agents/integration-checker.md +148 -30
- package/plugins/pbr/agents/intel-updater.md +332 -0
- package/plugins/pbr/agents/nyquist-auditor.md +254 -0
- package/plugins/pbr/agents/plan-checker.md +268 -66
- package/plugins/pbr/agents/planner.md +451 -42
- package/plugins/pbr/agents/researcher.md +219 -36
- package/plugins/pbr/agents/roadmapper.md +398 -0
- package/plugins/pbr/agents/synthesizer.md +166 -26
- package/plugins/pbr/agents/ui-checker.md +204 -0
- package/plugins/pbr/agents/ui-researcher.md +224 -0
- package/plugins/pbr/agents/verifier.md +571 -47
- package/plugins/pbr/commands/add-phase.md +75 -0
- package/plugins/pbr/commands/add-todo.md +8 -0
- package/plugins/pbr/commands/audit-fix.md +5 -0
- package/plugins/pbr/commands/audit-milestone.md +8 -0
- package/plugins/pbr/commands/autonomous.md +5 -0
- package/plugins/pbr/commands/backlog.md +6 -0
- package/plugins/pbr/commands/check-todos.md +8 -0
- package/plugins/pbr/commands/complete-milestone.md +8 -0
- package/plugins/pbr/commands/config.md +1 -1
- package/plugins/pbr/commands/discuss-phase.md +6 -0
- package/plugins/pbr/commands/do.md +5 -0
- package/plugins/pbr/commands/execute-phase.md +6 -0
- package/plugins/pbr/commands/fast.md +6 -0
- package/plugins/pbr/commands/forensics.md +6 -0
- package/plugins/pbr/commands/import.md +1 -1
- package/plugins/pbr/commands/insert-phase.md +65 -0
- package/plugins/pbr/commands/intel.md +5 -0
- package/plugins/pbr/commands/join-discord.md +11 -0
- package/plugins/pbr/commands/list-phase-assumptions.md +5 -0
- package/plugins/pbr/commands/map-codebase.md +6 -0
- package/plugins/pbr/commands/milestone-summary.md +6 -0
- package/plugins/pbr/commands/new-milestone.md +8 -0
- package/plugins/pbr/commands/new-project.md +6 -0
- package/plugins/pbr/commands/pause-work.md +5 -0
- package/plugins/pbr/commands/plan-milestone-gaps.md +7 -0
- package/plugins/pbr/commands/plan-phase.md +6 -0
- package/plugins/pbr/commands/plant-seed.md +6 -0
- package/plugins/pbr/commands/profile-user.md +5 -0
- package/plugins/pbr/commands/profile.md +5 -0
- package/plugins/pbr/commands/progress.md +6 -0
- package/plugins/pbr/commands/quick.md +1 -1
- package/plugins/pbr/commands/reapply-patches.md +47 -0
- package/plugins/pbr/commands/release.md +6 -0
- package/plugins/pbr/commands/remove-phase.md +66 -0
- package/plugins/pbr/commands/research-phase.md +59 -0
- package/plugins/pbr/commands/resume-work.md +5 -0
- package/plugins/pbr/commands/seed.md +6 -0
- package/plugins/pbr/commands/session-report.md +5 -0
- package/plugins/pbr/commands/set-profile.md +6 -0
- package/plugins/pbr/commands/settings.md +5 -0
- package/plugins/pbr/commands/setup.md +1 -1
- package/plugins/pbr/commands/ship.md +5 -0
- package/plugins/pbr/commands/stats.md +6 -0
- package/plugins/pbr/commands/test.md +5 -0
- package/plugins/pbr/commands/thread.md +6 -0
- package/plugins/pbr/commands/todo.md +1 -1
- package/plugins/pbr/commands/ui-phase.md +5 -0
- package/plugins/pbr/commands/ui-review.md +5 -0
- package/plugins/pbr/commands/undo.md +5 -0
- package/plugins/pbr/commands/update.md +37 -0
- package/plugins/pbr/commands/validate-phase.md +5 -0
- package/plugins/pbr/commands/verify-work.md +6 -0
- package/plugins/pbr/dashboard/package-lock.json +6 -0
- package/plugins/pbr/dist/architecture-guard.js +76 -0
- package/plugins/pbr/dist/audit-dimensions.js +556 -0
- package/plugins/pbr/dist/auto-continue.js +277 -0
- package/plugins/pbr/dist/block-skill-self-read.js +124 -0
- package/plugins/pbr/dist/check-agent-state-write.js +63 -0
- package/plugins/pbr/dist/check-config-change.js +213 -0
- package/plugins/pbr/dist/check-cross-plugin-sync.js +93 -0
- package/plugins/pbr/dist/check-dangerous-commands.js +193 -0
- package/plugins/pbr/dist/check-direct-state-write.js +37 -0
- package/plugins/pbr/dist/check-doc-sprawl.js +102 -0
- package/plugins/pbr/dist/check-phase-boundary.js +191 -0
- package/plugins/pbr/dist/check-plan-format.js +227 -0
- package/plugins/pbr/dist/check-read-first.js +345 -0
- package/plugins/pbr/dist/check-roadmap-sync.js +507 -0
- package/plugins/pbr/dist/check-skill-workflow.js +354 -0
- package/plugins/pbr/dist/check-state-sync.js +676 -0
- package/plugins/pbr/dist/check-subagent-output.js +425 -0
- package/plugins/pbr/dist/check-summary-gate.js +188 -0
- package/plugins/pbr/dist/context-bridge.js +425 -0
- package/plugins/pbr/dist/context-budget-check.js +442 -0
- package/plugins/pbr/dist/context-quality.js +271 -0
- package/plugins/pbr/dist/enforce-context-budget.js +138 -0
- package/plugins/pbr/dist/enforce-pbr-workflow.js +277 -0
- package/plugins/pbr/dist/event-handler.js +212 -0
- package/plugins/pbr/dist/event-logger.js +125 -0
- package/plugins/pbr/dist/feedback-loop.js +155 -0
- package/plugins/pbr/dist/graph-update.js +422 -0
- package/plugins/pbr/dist/hook-logger.js +114 -0
- package/plugins/pbr/dist/hook-server-client.js +361 -0
- package/plugins/pbr/dist/hook-server.js +664 -0
- package/plugins/pbr/dist/hooks-schema.json +87 -0
- package/plugins/pbr/dist/instructions-loaded.js +173 -0
- package/plugins/pbr/dist/intercept-plan-mode.js +81 -0
- package/plugins/pbr/dist/log-notification.js +131 -0
- package/plugins/pbr/dist/log-subagent.js +367 -0
- package/plugins/pbr/dist/log-tool-failure.js +140 -0
- package/plugins/pbr/dist/milestone-learnings.js +519 -0
- package/plugins/pbr/dist/pbr-tools.js +493 -0
- package/plugins/pbr/dist/post-bash-triage.js +96 -0
- package/plugins/pbr/dist/post-compact.js +135 -0
- package/plugins/pbr/dist/post-hoc.js +237 -0
- package/plugins/pbr/dist/post-write-dispatch.js +243 -0
- package/plugins/pbr/dist/post-write-quality.js +208 -0
- package/plugins/pbr/dist/pre-bash-dispatch.js +212 -0
- package/plugins/pbr/dist/pre-skill-dispatch.js +114 -0
- package/plugins/pbr/dist/pre-task-dispatch.js +269 -0
- package/plugins/pbr/dist/pre-write-dispatch.js +234 -0
- package/plugins/pbr/dist/progress-tracker.js +173 -0
- package/plugins/pbr/dist/prompt-guard.js +114 -0
- package/plugins/pbr/dist/prompt-routing.js +209 -0
- package/plugins/pbr/dist/quick-status.js +179 -0
- package/plugins/pbr/dist/record-incident.js +37 -0
- package/plugins/pbr/dist/run-hook.js +132 -0
- package/plugins/pbr/dist/session-cleanup.js +653 -0
- package/plugins/pbr/dist/session-tracker.js +124 -0
- package/plugins/pbr/dist/status-line.js +849 -0
- package/plugins/pbr/dist/suggest-compact.js +307 -0
- package/plugins/pbr/dist/sync-context-to-claude.js +100 -0
- package/plugins/pbr/dist/task-completed.js +206 -0
- package/plugins/pbr/dist/track-context-budget.js +432 -0
- package/plugins/pbr/dist/track-user-gates.js +88 -0
- package/plugins/pbr/dist/trust-tracker.js +193 -0
- package/plugins/pbr/dist/validate-commit.js +233 -0
- package/plugins/pbr/dist/validate-skill-args.js +222 -0
- package/plugins/pbr/dist/validate-task.js +271 -0
- package/plugins/pbr/dist/worktree-create.js +144 -0
- package/plugins/pbr/dist/worktree-remove.js +147 -0
- package/plugins/pbr/hooks/hooks.json +137 -65
- package/plugins/pbr/references/agent-contracts.md +39 -8
- package/plugins/pbr/references/agent-teams.md +3 -3
- package/plugins/pbr/references/archive/checkpoints.md +189 -0
- package/plugins/pbr/references/archive/context-quality-tiers.md +45 -0
- package/plugins/pbr/references/archive/hook-ordering.md +89 -0
- package/plugins/pbr/references/archive/limitations.md +106 -0
- package/plugins/pbr/references/archive/pbr-rules.md +194 -0
- package/plugins/pbr/references/archive/pbr-tools-cli.md +415 -0
- package/plugins/pbr/references/archive/pretooluse-jsonl-behavior.md +58 -0
- package/plugins/pbr/references/archive/signal-files.md +41 -0
- package/plugins/pbr/references/archive/tmux-setup.md +288 -0
- package/plugins/pbr/references/archive/verification-matrix.md +34 -0
- package/plugins/pbr/references/archive/verification-patterns.md +277 -0
- package/plugins/pbr/references/archive/worktree-sparse-checkout.md +86 -0
- package/plugins/pbr/references/assumptions.md +42 -0
- package/plugins/pbr/references/checkpoints.md +723 -104
- package/plugins/pbr/references/config-reference.md +387 -10
- package/plugins/pbr/references/continuation-format.md +1 -0
- package/plugins/pbr/references/decimal-phase-calculation.md +65 -0
- package/plugins/pbr/references/deviation-rules.md +12 -0
- package/plugins/pbr/references/few-shot-examples/audit.md +77 -0
- package/plugins/pbr/references/few-shot-examples/check-plan-format.md +172 -0
- package/plugins/pbr/references/few-shot-examples/check-subagent-output.md +118 -0
- package/plugins/pbr/references/few-shot-examples/integration-checker.md +70 -0
- package/plugins/pbr/references/few-shot-examples/nyquist-auditor.md +83 -0
- package/plugins/pbr/references/few-shot-examples/plan-checker.md +73 -0
- package/plugins/pbr/references/few-shot-examples/ui-checker.md +71 -0
- package/plugins/pbr/references/few-shot-examples/verifier.md +109 -0
- package/plugins/pbr/references/git-integration.md +110 -27
- package/plugins/pbr/references/git-planning-commit.md +35 -0
- package/plugins/pbr/references/model-profile-resolution.md +34 -0
- package/plugins/pbr/references/model-profiles.md +90 -7
- package/plugins/pbr/references/model-selection.md +1 -1
- package/plugins/pbr/references/node-repair.md +48 -0
- package/plugins/pbr/references/plan-authoring.md +65 -0
- package/plugins/pbr/references/plan-format.md +184 -10
- package/plugins/pbr/references/questioning.md +138 -49
- package/plugins/pbr/references/reading-verification.md +4 -4
- package/plugins/pbr/references/tdd.md +263 -0
- package/plugins/pbr/references/thinking-models-planning.md +47 -0
- package/plugins/pbr/references/thinking-models-verification.md +44 -0
- package/plugins/pbr/references/ui-brand.md +449 -0
- package/plugins/pbr/references/verification-overrides.md +39 -0
- package/plugins/pbr/references/verification-patterns.md +529 -113
- package/plugins/pbr/scripts/architecture-guard.js +76 -0
- package/plugins/pbr/scripts/audit-checks/behavioral-compliance.js +2098 -0
- package/plugins/pbr/scripts/audit-checks/error-analysis.js +989 -0
- package/plugins/pbr/scripts/audit-checks/feature-verification.js +723 -0
- package/plugins/pbr/scripts/audit-checks/index.js +433 -0
- package/plugins/pbr/scripts/audit-checks/infrastructure.js +816 -0
- package/plugins/pbr/scripts/audit-checks/quality-metrics.js +455 -0
- package/plugins/pbr/scripts/audit-checks/session-quality.js +980 -0
- package/plugins/pbr/scripts/audit-checks/si-agent-hook-config-checks.js +396 -0
- package/plugins/pbr/scripts/audit-checks/si-cross-cutting-checks.js +272 -0
- package/plugins/pbr/scripts/audit-checks/si-skill-checks.js +424 -0
- package/plugins/pbr/scripts/audit-checks/workflow-compliance.js +1175 -0
- package/plugins/pbr/scripts/audit-dimensions.js +556 -0
- package/plugins/pbr/scripts/auto-continue.js +192 -37
- package/plugins/pbr/scripts/block-skill-self-read.js +124 -0
- package/plugins/pbr/scripts/check-agent-state-write.js +63 -0
- package/plugins/pbr/scripts/check-config-change.js +84 -1
- package/plugins/pbr/scripts/check-cross-plugin-sync.js +93 -0
- package/plugins/pbr/scripts/check-dangerous-commands.js +18 -5
- package/plugins/pbr/scripts/check-direct-state-write.js +37 -0
- package/plugins/pbr/scripts/check-phase-boundary.js +3 -8
- package/plugins/pbr/scripts/check-plan-format.js +153 -278
- package/plugins/pbr/scripts/check-read-first.js +345 -0
- package/plugins/pbr/scripts/check-roadmap-sync.js +174 -19
- package/plugins/pbr/scripts/check-skill-workflow.js +24 -27
- package/plugins/pbr/scripts/check-state-sync.js +360 -218
- package/plugins/pbr/scripts/check-subagent-output.js +308 -273
- package/plugins/pbr/scripts/check-summary-gate.js +5 -15
- package/plugins/pbr/scripts/commands/benchmarks.js +195 -0
- package/plugins/pbr/scripts/commands/calibrate.js +530 -0
- package/plugins/pbr/scripts/commands/config.js +72 -0
- package/plugins/pbr/scripts/commands/misc.js +779 -0
- package/plugins/pbr/scripts/commands/phase.js +293 -0
- package/plugins/pbr/scripts/commands/roadmap.js +75 -0
- package/plugins/pbr/scripts/commands/state.js +84 -0
- package/plugins/pbr/scripts/commands/stress-test.js +349 -0
- package/plugins/pbr/scripts/commands/todo.js +191 -0
- package/plugins/pbr/scripts/commands/verify.js +169 -0
- package/plugins/pbr/scripts/config-schema.json +1183 -95
- package/plugins/pbr/scripts/context-bridge.js +425 -0
- package/plugins/pbr/scripts/context-budget-check.js +171 -16
- package/plugins/pbr/scripts/context-quality.js +271 -0
- package/plugins/pbr/scripts/enforce-context-budget.js +138 -0
- package/plugins/pbr/scripts/enforce-pbr-workflow.js +277 -0
- package/plugins/pbr/scripts/event-handler.js +137 -87
- package/plugins/pbr/scripts/event-logger.js +58 -25
- package/plugins/pbr/scripts/feedback-loop.js +155 -0
- package/plugins/pbr/scripts/graph-update.js +422 -0
- package/plugins/pbr/scripts/hook-logger.js +69 -35
- package/plugins/pbr/scripts/hook-server-client.js +361 -0
- package/plugins/pbr/scripts/hook-server.js +664 -0
- package/plugins/pbr/scripts/hooks-schema.json +12 -5
- package/plugins/pbr/scripts/instructions-loaded.js +173 -0
- package/plugins/pbr/scripts/intent-router.cjs +147 -0
- package/plugins/pbr/scripts/intercept-plan-mode.js +52 -18
- package/plugins/pbr/scripts/lib/alternatives.js +203 -0
- package/plugins/pbr/scripts/lib/audit.js +65 -0
- package/plugins/pbr/scripts/lib/auto-cleanup.js +221 -0
- package/plugins/pbr/scripts/lib/auto-verify.js +123 -0
- package/plugins/pbr/scripts/lib/benchmark.js +190 -0
- package/plugins/pbr/scripts/lib/build.js +719 -0
- package/plugins/pbr/scripts/lib/ci-fix-loop.js +228 -0
- package/plugins/pbr/scripts/lib/commands.js +483 -0
- package/plugins/pbr/scripts/lib/compound.js +222 -0
- package/plugins/pbr/scripts/lib/config-cache.js +83 -0
- package/plugins/pbr/scripts/lib/config.js +1469 -0
- package/plugins/pbr/scripts/lib/context.js +254 -0
- package/plugins/pbr/scripts/lib/contextual-help.js +183 -0
- package/plugins/pbr/scripts/lib/convention-detector.js +413 -0
- package/plugins/pbr/scripts/lib/core.js +1585 -0
- package/plugins/pbr/scripts/lib/dashboard-launch.js +364 -0
- package/plugins/pbr/scripts/lib/data-hygiene.js +179 -0
- package/plugins/pbr/scripts/lib/decision-extraction.js +183 -0
- package/plugins/pbr/scripts/lib/decisions.js +194 -0
- package/plugins/pbr/scripts/lib/dependency-break.js +147 -0
- package/plugins/pbr/scripts/lib/format-validators.js +1049 -0
- package/plugins/pbr/scripts/lib/frontmatter.js +302 -0
- package/plugins/pbr/scripts/lib/gates/advisories.js +133 -0
- package/plugins/pbr/scripts/lib/gates/build-dependency.js +118 -0
- package/plugins/pbr/scripts/lib/gates/build-executor.js +106 -0
- package/plugins/pbr/scripts/lib/gates/doc-existence.js +46 -0
- package/plugins/pbr/scripts/lib/gates/helpers.js +98 -0
- package/plugins/pbr/scripts/lib/gates/inline-execution.js +187 -0
- package/plugins/pbr/scripts/lib/gates/milestone-complete.js +139 -0
- package/plugins/pbr/scripts/lib/gates/milestone-summary.js +121 -0
- package/plugins/pbr/scripts/lib/gates/multi-phase-loader.js +149 -0
- package/plugins/pbr/scripts/lib/gates/plan-executor.js +36 -0
- package/plugins/pbr/scripts/lib/gates/plan-validation.js +115 -0
- package/plugins/pbr/scripts/lib/gates/quick-executor.js +78 -0
- package/plugins/pbr/scripts/lib/gates/review-planner.js +63 -0
- package/plugins/pbr/scripts/lib/gates/review-verifier.js +71 -0
- package/plugins/pbr/scripts/lib/gates/rich-agent-context.js +148 -0
- package/plugins/pbr/scripts/lib/gates/sprint-preflight.js +30 -0
- package/plugins/pbr/scripts/lib/gates/user-confirmation.js +95 -0
- package/plugins/pbr/scripts/lib/graph-cli.js +89 -0
- package/plugins/pbr/scripts/lib/graph.js +553 -0
- package/plugins/pbr/scripts/lib/handoff-validators.js +224 -0
- package/plugins/pbr/scripts/lib/health-checks.js +107 -0
- package/plugins/pbr/scripts/lib/health-phase06.js +120 -0
- package/plugins/pbr/scripts/lib/health.js +132 -0
- package/plugins/pbr/scripts/lib/help.js +100 -0
- package/plugins/pbr/scripts/lib/history.js +150 -0
- package/plugins/pbr/scripts/lib/impact-analysis.js +319 -0
- package/plugins/pbr/scripts/lib/incidents.js +190 -0
- package/plugins/pbr/scripts/lib/init.js +643 -0
- package/plugins/pbr/scripts/lib/insights-parser.js +320 -0
- package/plugins/pbr/scripts/lib/intel.js +653 -0
- package/plugins/pbr/scripts/lib/learnings.js +511 -0
- package/plugins/pbr/scripts/lib/migrate.js +309 -0
- package/plugins/pbr/scripts/lib/milestone.js +306 -0
- package/plugins/pbr/scripts/lib/msys-path.js +20 -0
- package/plugins/pbr/scripts/lib/negative-knowledge.js +194 -0
- package/plugins/pbr/scripts/lib/notification-throttle.js +141 -0
- package/plugins/pbr/scripts/lib/onboarding-generator.js +288 -0
- package/plugins/pbr/scripts/lib/parse-args.js +134 -0
- package/plugins/pbr/scripts/lib/pattern-routing.js +55 -0
- package/plugins/pbr/scripts/lib/patterns.js +272 -0
- package/plugins/pbr/scripts/lib/perf.js +190 -0
- package/plugins/pbr/scripts/lib/phase.js +1043 -0
- package/plugins/pbr/scripts/lib/pid-lock.js +156 -0
- package/plugins/pbr/scripts/lib/post-hoc.js +160 -0
- package/plugins/pbr/scripts/lib/pre-commit-checks.js +220 -0
- package/plugins/pbr/scripts/lib/pre-research.js +126 -0
- package/plugins/pbr/scripts/lib/premature-completion.js +312 -0
- package/plugins/pbr/scripts/lib/preview.js +174 -0
- package/plugins/pbr/scripts/lib/progress-visualization.js +296 -0
- package/plugins/pbr/scripts/lib/quick-init.js +131 -0
- package/plugins/pbr/scripts/lib/reference.js +236 -0
- package/plugins/pbr/scripts/lib/requirements.js +153 -0
- package/plugins/pbr/scripts/lib/resolve-root.js +66 -0
- package/plugins/pbr/scripts/lib/reverse-spec.js +259 -0
- package/plugins/pbr/scripts/lib/roadmap.js +1089 -0
- package/plugins/pbr/scripts/lib/security-scan.js +200 -0
- package/plugins/pbr/scripts/lib/session-briefing.js +918 -0
- package/plugins/pbr/scripts/lib/skill-section.js +99 -0
- package/plugins/pbr/scripts/lib/smart-next-task.js +198 -0
- package/plugins/pbr/scripts/lib/snapshot-manager.js +232 -0
- package/plugins/pbr/scripts/lib/spec-diff.js +209 -0
- package/plugins/pbr/scripts/lib/spec-engine.js +189 -0
- package/plugins/pbr/scripts/lib/spot-check.js +539 -0
- package/plugins/pbr/scripts/lib/state-queue.js +171 -0
- package/plugins/pbr/scripts/lib/state.js +1082 -0
- package/plugins/pbr/scripts/lib/status-render.js +511 -0
- package/plugins/pbr/scripts/lib/step-verify.js +149 -0
- package/plugins/pbr/scripts/lib/subagent-validators.js +1119 -0
- package/plugins/pbr/scripts/lib/suggest-next.js +435 -0
- package/plugins/pbr/scripts/lib/tech-debt-scanner.js +116 -0
- package/plugins/pbr/scripts/lib/templates.js +362 -0
- package/plugins/pbr/scripts/lib/test-selection.js +163 -0
- package/plugins/pbr/scripts/lib/todo.js +300 -0
- package/plugins/pbr/scripts/lib/verify.js +1561 -0
- package/plugins/pbr/scripts/log-notification.js +131 -0
- package/plugins/pbr/scripts/log-subagent.js +221 -18
- package/plugins/pbr/scripts/log-tool-failure.js +60 -8
- package/plugins/pbr/scripts/milestone-learnings.js +519 -0
- package/plugins/pbr/scripts/package.json +1 -1
- package/plugins/pbr/scripts/pbr-tools.js +362 -1247
- package/plugins/pbr/scripts/post-bash-triage.js +96 -0
- package/plugins/pbr/scripts/post-compact.js +135 -0
- package/plugins/pbr/scripts/post-hoc.js +237 -0
- package/plugins/pbr/scripts/post-write-dispatch.js +201 -31
- package/plugins/pbr/scripts/post-write-quality.js +4 -3
- package/plugins/pbr/scripts/pre-bash-dispatch.js +147 -51
- package/plugins/pbr/scripts/pre-skill-dispatch.js +114 -0
- package/plugins/pbr/scripts/pre-task-dispatch.js +269 -0
- package/plugins/pbr/scripts/pre-write-dispatch.js +170 -73
- package/plugins/pbr/scripts/progress-tracker.js +121 -324
- package/plugins/pbr/scripts/prompt-guard.js +114 -0
- package/plugins/pbr/scripts/prompt-routing.js +209 -0
- package/plugins/pbr/scripts/quick-status.js +179 -0
- package/plugins/pbr/scripts/record-incident.js +37 -0
- package/plugins/pbr/scripts/risk-classifier.cjs +123 -0
- package/plugins/pbr/scripts/run-hook.js +63 -23
- package/plugins/pbr/scripts/session-cleanup.js +428 -29
- package/plugins/pbr/scripts/session-tracker.js +124 -0
- package/plugins/pbr/scripts/status-line.js +593 -32
- package/plugins/pbr/scripts/suggest-compact.js +201 -13
- package/plugins/pbr/scripts/sync-context-to-claude.js +100 -0
- package/plugins/pbr/scripts/task-completed.js +165 -4
- package/plugins/pbr/scripts/test/config.test.js +126 -0
- package/plugins/pbr/scripts/test/cross-platform.test.js +120 -0
- package/plugins/pbr/scripts/test/fixtures/config.json +20 -0
- package/plugins/pbr/scripts/test/fixtures/plan.md +54 -0
- package/plugins/pbr/scripts/test/fixtures/project.md +30 -0
- package/plugins/pbr/scripts/test/fixtures/roadmap.md +55 -0
- package/plugins/pbr/scripts/test/fixtures/state.md +60 -0
- package/plugins/pbr/scripts/test/fixtures/summary.md +35 -0
- package/plugins/pbr/scripts/test/fixtures.test.js +184 -0
- package/plugins/pbr/scripts/test/phase.test.js +142 -0
- package/plugins/pbr/scripts/test/roadmap.test.js +96 -0
- package/plugins/pbr/scripts/test/state.test.js +155 -0
- package/plugins/pbr/scripts/track-context-budget.js +368 -104
- package/plugins/pbr/scripts/track-user-gates.js +88 -0
- package/plugins/pbr/scripts/trust-tracker.js +193 -0
- package/plugins/pbr/scripts/validate-commit.js +59 -26
- package/plugins/pbr/scripts/validate-skill-args.js +87 -15
- package/plugins/pbr/scripts/validate-task.js +83 -627
- package/plugins/pbr/scripts/worktree-create.js +144 -0
- package/plugins/pbr/scripts/worktree-remove.js +147 -0
- package/plugins/pbr/skills/audit/SKILL.md +195 -24
- package/plugins/pbr/skills/audit-fix/SKILL.md +326 -0
- package/plugins/pbr/skills/autonomous/SKILL.md +551 -0
- package/plugins/pbr/skills/backlog/SKILL.md +56 -0
- package/plugins/pbr/skills/begin/SKILL.md +508 -153
- package/plugins/pbr/skills/begin/templates/STATE.md.tmpl +1 -2
- package/plugins/pbr/skills/begin/templates/config.json.tmpl +419 -36
- package/plugins/pbr/skills/begin/templates/researcher-prompt.md.tmpl +28 -0
- package/plugins/pbr/skills/begin/templates/roadmap-prompt.md.tmpl +28 -3
- package/plugins/pbr/skills/begin/templates/synthesis-prompt.md.tmpl +33 -5
- package/plugins/pbr/skills/build/SKILL.md +1180 -358
- package/plugins/pbr/skills/build/templates/continuation-prompt.md.tmpl +26 -0
- package/plugins/pbr/skills/build/templates/executor-prompt.md.tmpl +77 -0
- package/plugins/pbr/skills/build/templates/inline-verifier-prompt.md.tmpl +33 -0
- package/plugins/pbr/skills/build/templates/qa-round-context.md.tmpl +16 -0
- package/plugins/pbr/skills/config/SKILL.md +112 -9
- package/plugins/pbr/skills/continue/SKILL.md +113 -33
- package/plugins/pbr/skills/dashboard/SKILL.md +21 -9
- package/plugins/pbr/skills/debug/SKILL.md +70 -12
- package/plugins/pbr/skills/debug/templates/continuation-prompt.md.tmpl +12 -1
- package/plugins/pbr/skills/debug/templates/initial-investigation-prompt.md.tmpl +12 -5
- package/plugins/pbr/skills/discuss/SKILL.md +205 -24
- package/plugins/pbr/skills/discuss/templates/CONTEXT.md.tmpl +21 -1
- package/plugins/pbr/skills/do/SKILL.md +119 -24
- package/plugins/pbr/skills/explore/SKILL.md +95 -20
- package/plugins/pbr/skills/fast/SKILL.md +94 -0
- package/plugins/pbr/skills/forensics/SKILL.md +144 -0
- package/plugins/pbr/skills/health/SKILL.md +35 -117
- package/plugins/pbr/skills/help/SKILL.md +83 -123
- package/plugins/pbr/skills/import/SKILL.md +332 -13
- package/plugins/pbr/skills/intel/SKILL.md +131 -0
- package/plugins/pbr/skills/list-phase-assumptions/SKILL.md +231 -0
- package/plugins/pbr/skills/milestone/SKILL.md +383 -274
- package/plugins/pbr/skills/milestone/templates/audit-output.md.tmpl +76 -0
- package/plugins/pbr/skills/milestone/templates/complete-output.md.tmpl +32 -0
- package/plugins/pbr/skills/milestone/templates/edge-cases.md +54 -0
- package/plugins/pbr/skills/milestone/templates/gaps-output.md.tmpl +25 -0
- package/plugins/pbr/skills/milestone/templates/integration-checker-prompt.md.tmpl +25 -0
- package/plugins/pbr/skills/milestone/templates/new-output.md.tmpl +29 -0
- package/plugins/pbr/skills/milestone-summary/SKILL.md +86 -0
- package/plugins/pbr/skills/note/SKILL.md +20 -4
- package/plugins/pbr/skills/pause/SKILL.md +54 -14
- package/plugins/pbr/skills/pause/templates/continue-here.md.tmpl +33 -52
- package/plugins/pbr/skills/plan/SKILL.md +526 -280
- package/plugins/pbr/skills/plan/templates/checker-prompt.md.tmpl +20 -2
- package/plugins/pbr/skills/plan/templates/completion-output.md.tmpl +27 -0
- package/plugins/pbr/skills/plan/templates/planner-prompt.md.tmpl +43 -1
- package/plugins/pbr/skills/plan/templates/revision-prompt.md.tmpl +21 -5
- package/plugins/pbr/skills/profile/SKILL.md +185 -0
- package/plugins/pbr/skills/profile-user/SKILL.md +227 -0
- package/plugins/pbr/skills/quick/SKILL.md +435 -100
- package/plugins/pbr/skills/release/SKILL.md +206 -0
- package/plugins/pbr/skills/resume/SKILL.md +170 -46
- package/plugins/pbr/skills/review/SKILL.md +233 -165
- package/plugins/pbr/skills/review/templates/verifier-prompt.md.tmpl +7 -0
- package/plugins/pbr/skills/scan/SKILL.md +152 -106
- package/plugins/pbr/skills/scan/templates/mapper-prompt.md.tmpl +5 -56
- package/plugins/pbr/skills/seed/SKILL.md +87 -0
- package/plugins/pbr/skills/session-report/SKILL.md +130 -0
- package/plugins/pbr/skills/setup/SKILL.md +150 -202
- package/plugins/pbr/skills/shared/agent-context-enrichment.md +21 -0
- package/plugins/pbr/skills/shared/agent-type-resolution.md +32 -0
- package/plugins/pbr/skills/shared/commit-planning-docs.md +8 -0
- package/plugins/pbr/skills/shared/context-budget.md +66 -1
- package/plugins/pbr/skills/shared/context-loader-task.md +18 -11
- package/plugins/pbr/skills/shared/criterion-writing.md +58 -0
- package/plugins/pbr/skills/shared/digest-select.md +2 -2
- package/plugins/pbr/skills/shared/domain-probes.md +1 -1
- package/plugins/pbr/skills/shared/error-reporting.md +38 -60
- package/plugins/pbr/skills/shared/gate-prompts.md +4 -2
- package/plugins/pbr/skills/shared/memory-capture.md +48 -0
- package/plugins/pbr/skills/shared/phase-argument-parsing.md +4 -4
- package/plugins/pbr/skills/shared/revision-loop.md +24 -6
- package/plugins/pbr/skills/shared/state-update.md +49 -56
- package/plugins/pbr/skills/shared/universal-anti-patterns.md +27 -4
- package/plugins/pbr/skills/ship/SKILL.md +155 -0
- package/plugins/pbr/skills/stats/SKILL.md +110 -0
- package/plugins/pbr/skills/status/SKILL.md +185 -119
- package/plugins/pbr/skills/test/SKILL.md +254 -0
- package/plugins/pbr/skills/thread/SKILL.md +73 -0
- package/plugins/pbr/skills/todo/SKILL.md +28 -72
- package/plugins/pbr/skills/ui-phase/SKILL.md +180 -0
- package/plugins/pbr/skills/ui-review/SKILL.md +206 -0
- package/plugins/pbr/skills/undo/SKILL.md +221 -0
- package/plugins/pbr/skills/validate-phase/SKILL.md +362 -0
- package/plugins/pbr/templates/CONTEXT.md.tmpl +45 -20
- package/plugins/pbr/templates/DISCOVERY.md.tmpl +29 -0
- package/plugins/pbr/templates/DISCUSSION-LOG.md.tmpl +49 -0
- package/plugins/pbr/templates/HANDOFF.json.tmpl +30 -0
- package/plugins/pbr/templates/INTEGRATION-REPORT.md.tmpl +18 -2
- package/plugins/pbr/templates/MILESTONE-AUDIT.md.tmpl +44 -0
- package/plugins/pbr/templates/PROJECT.md.tmpl +126 -0
- package/plugins/pbr/templates/REQUIREMENTS.md.tmpl +96 -0
- package/plugins/pbr/templates/RETROSPECTIVE.md.tmpl +43 -0
- package/plugins/pbr/templates/ROADMAP.md.tmpl +108 -14
- package/plugins/pbr/templates/SUMMARY-complex.md.tmpl +133 -0
- package/plugins/pbr/templates/SUMMARY-minimal.md.tmpl +55 -0
- package/plugins/pbr/templates/SUMMARY.md.tmpl +21 -0
- package/plugins/pbr/templates/UAT.md.tmpl +94 -0
- package/plugins/pbr/templates/UI-SPEC.md.tmpl +144 -0
- package/plugins/pbr/templates/VALIDATION.md.tmpl +94 -0
- package/plugins/pbr/templates/VERIFICATION-DETAIL.md.tmpl +54 -13
- package/plugins/pbr/templates/project-CONTEXT.md.tmpl +59 -0
- package/plugins/pbr/templates/research-outputs/ARCHITECTURE.md.tmpl +91 -0
- package/plugins/pbr/templates/research-outputs/FEATURES.md.tmpl +64 -0
- package/plugins/pbr/templates/research-outputs/PITFALLS.md.tmpl +50 -0
- package/plugins/pbr/templates/research-outputs/STACK.md.tmpl +63 -0
- package/plugins/pbr/templates/research-outputs/SUMMARY.md.tmpl +98 -0
- package/scripts/build-hooks.js +61 -0
- package/scripts/check-ci.js +100 -0
- package/scripts/clean-changelog.js +364 -0
- package/scripts/generate-derivatives.js +581 -0
- package/scripts/posttest.js +93 -0
- package/scripts/release.js +262 -0
- package/scripts/run-tests.cjs +29 -0
- package/scripts/test-wrapper.js +43 -0
- package/dashboard/bin/cli.js +0 -25
- package/dashboard/public/css/layout.css +0 -704
- package/dashboard/public/css/status-colors.css +0 -98
- package/dashboard/public/css/tokens.css +0 -59
- package/dashboard/public/js/htmx-title.js +0 -5
- package/dashboard/public/js/sidebar-toggle.js +0 -34
- package/dashboard/public/js/sse-client.js +0 -100
- package/dashboard/public/js/theme-toggle.js +0 -46
- package/dashboard/src/app.js +0 -91
- package/dashboard/src/middleware/current-phase.js +0 -24
- package/dashboard/src/middleware/errorHandler.js +0 -52
- package/dashboard/src/middleware/notFoundHandler.js +0 -9
- package/dashboard/src/repositories/planning.repository.js +0 -130
- package/dashboard/src/routes/events.routes.js +0 -45
- package/dashboard/src/routes/index.routes.js +0 -35
- package/dashboard/src/routes/pages.routes.js +0 -426
- package/dashboard/src/server.js +0 -42
- package/dashboard/src/services/analytics.service.js +0 -141
- package/dashboard/src/services/dashboard.service.js +0 -309
- package/dashboard/src/services/milestone.service.js +0 -222
- package/dashboard/src/services/notes.service.js +0 -50
- package/dashboard/src/services/phase.service.js +0 -232
- package/dashboard/src/services/project.service.js +0 -57
- package/dashboard/src/services/roadmap.service.js +0 -258
- package/dashboard/src/services/sse.service.js +0 -58
- package/dashboard/src/services/todo.service.js +0 -272
- package/dashboard/src/services/watcher.service.js +0 -48
- package/dashboard/src/utils/cache.js +0 -55
- package/dashboard/src/views/analytics.ejs +0 -5
- package/dashboard/src/views/coming-soon.ejs +0 -11
- package/dashboard/src/views/dependencies.ejs +0 -5
- package/dashboard/src/views/error.ejs +0 -20
- package/dashboard/src/views/index.ejs +0 -5
- package/dashboard/src/views/milestone-detail.ejs +0 -5
- package/dashboard/src/views/milestones.ejs +0 -5
- package/dashboard/src/views/notes.ejs +0 -5
- package/dashboard/src/views/partials/analytics-content.ejs +0 -90
- package/dashboard/src/views/partials/breadcrumbs.ejs +0 -14
- package/dashboard/src/views/partials/dashboard-content.ejs +0 -84
- package/dashboard/src/views/partials/dependencies-content.ejs +0 -48
- package/dashboard/src/views/partials/empty-state.ejs +0 -7
- package/dashboard/src/views/partials/footer.ejs +0 -3
- package/dashboard/src/views/partials/head.ejs +0 -30
- package/dashboard/src/views/partials/header.ejs +0 -21
- package/dashboard/src/views/partials/layout-bottom.ejs +0 -43
- package/dashboard/src/views/partials/layout-top.ejs +0 -16
- package/dashboard/src/views/partials/milestone-detail-content.ejs +0 -20
- package/dashboard/src/views/partials/milestones-content.ejs +0 -88
- package/dashboard/src/views/partials/notes-content.ejs +0 -23
- package/dashboard/src/views/partials/phase-content.ejs +0 -193
- package/dashboard/src/views/partials/phase-doc-content.ejs +0 -38
- package/dashboard/src/views/partials/phases-content.ejs +0 -124
- package/dashboard/src/views/partials/roadmap-content.ejs +0 -180
- package/dashboard/src/views/partials/sidebar.ejs +0 -99
- package/dashboard/src/views/partials/todo-create-content.ejs +0 -54
- package/dashboard/src/views/partials/todo-detail-content.ejs +0 -42
- package/dashboard/src/views/partials/todos-content.ejs +0 -97
- package/dashboard/src/views/phase-detail.ejs +0 -5
- package/dashboard/src/views/phase-doc.ejs +0 -5
- package/dashboard/src/views/phases.ejs +0 -5
- package/dashboard/src/views/roadmap.ejs +0 -5
- package/dashboard/src/views/todo-create.ejs +0 -5
- package/dashboard/src/views/todo-detail.ejs +0 -5
- package/dashboard/src/views/todos.ejs +0 -5
- package/plugins/copilot-pbr/CHANGELOG.md +0 -19
- package/plugins/copilot-pbr/README.md +0 -139
- package/plugins/copilot-pbr/agents/audit.agent.md +0 -113
- package/plugins/copilot-pbr/agents/codebase-mapper.agent.md +0 -151
- package/plugins/copilot-pbr/agents/debugger.agent.md +0 -182
- package/plugins/copilot-pbr/agents/executor.agent.md +0 -267
- package/plugins/copilot-pbr/agents/general.agent.md +0 -88
- package/plugins/copilot-pbr/agents/integration-checker.agent.md +0 -119
- package/plugins/copilot-pbr/agents/plan-checker.agent.md +0 -208
- package/plugins/copilot-pbr/agents/planner.agent.md +0 -238
- package/plugins/copilot-pbr/agents/researcher.agent.md +0 -186
- package/plugins/copilot-pbr/agents/synthesizer.agent.md +0 -126
- package/plugins/copilot-pbr/agents/verifier.agent.md +0 -228
- package/plugins/copilot-pbr/hooks/hooks.json +0 -258
- package/plugins/copilot-pbr/plugin.json +0 -30
- package/plugins/copilot-pbr/references/agent-anti-patterns.md +0 -25
- package/plugins/copilot-pbr/references/agent-contracts.md +0 -297
- package/plugins/copilot-pbr/references/agent-interactions.md +0 -135
- package/plugins/copilot-pbr/references/agent-teams.md +0 -55
- package/plugins/copilot-pbr/references/checkpoints.md +0 -158
- package/plugins/copilot-pbr/references/common-bug-patterns.md +0 -14
- package/plugins/copilot-pbr/references/config-reference.md +0 -442
- package/plugins/copilot-pbr/references/continuation-format.md +0 -213
- package/plugins/copilot-pbr/references/deviation-rules.md +0 -113
- package/plugins/copilot-pbr/references/git-integration.md +0 -227
- package/plugins/copilot-pbr/references/integration-patterns.md +0 -118
- package/plugins/copilot-pbr/references/model-profiles.md +0 -100
- package/plugins/copilot-pbr/references/model-selection.md +0 -32
- package/plugins/copilot-pbr/references/pbr-rules.md +0 -195
- package/plugins/copilot-pbr/references/pbr-tools-cli.md +0 -285
- package/plugins/copilot-pbr/references/plan-authoring.md +0 -182
- package/plugins/copilot-pbr/references/plan-format.md +0 -288
- package/plugins/copilot-pbr/references/planning-config.md +0 -214
- package/plugins/copilot-pbr/references/questioning.md +0 -215
- package/plugins/copilot-pbr/references/reading-verification.md +0 -128
- package/plugins/copilot-pbr/references/stub-patterns.md +0 -161
- package/plugins/copilot-pbr/references/subagent-coordination.md +0 -120
- package/plugins/copilot-pbr/references/ui-formatting.md +0 -444
- package/plugins/copilot-pbr/references/verification-patterns.md +0 -199
- package/plugins/copilot-pbr/references/wave-execution.md +0 -96
- package/plugins/copilot-pbr/rules/pbr-workflow.mdc +0 -48
- package/plugins/copilot-pbr/setup.ps1 +0 -93
- package/plugins/copilot-pbr/setup.sh +0 -93
- package/plugins/copilot-pbr/skills/audit/SKILL.md +0 -330
- package/plugins/copilot-pbr/skills/begin/SKILL.md +0 -589
- package/plugins/copilot-pbr/skills/begin/templates/PROJECT.md.tmpl +0 -34
- package/plugins/copilot-pbr/skills/begin/templates/REQUIREMENTS.md.tmpl +0 -19
- package/plugins/copilot-pbr/skills/begin/templates/STATE.md.tmpl +0 -50
- package/plugins/copilot-pbr/skills/begin/templates/config.json.tmpl +0 -64
- package/plugins/copilot-pbr/skills/begin/templates/researcher-prompt.md.tmpl +0 -20
- package/plugins/copilot-pbr/skills/begin/templates/roadmap-prompt.md.tmpl +0 -31
- package/plugins/copilot-pbr/skills/begin/templates/synthesis-prompt.md.tmpl +0 -17
- package/plugins/copilot-pbr/skills/build/SKILL.md +0 -960
- package/plugins/copilot-pbr/skills/config/SKILL.md +0 -250
- package/plugins/copilot-pbr/skills/continue/SKILL.md +0 -159
- package/plugins/copilot-pbr/skills/dashboard/SKILL.md +0 -43
- package/plugins/copilot-pbr/skills/debug/SKILL.md +0 -508
- package/plugins/copilot-pbr/skills/debug/templates/continuation-prompt.md.tmpl +0 -17
- package/plugins/copilot-pbr/skills/debug/templates/initial-investigation-prompt.md.tmpl +0 -28
- package/plugins/copilot-pbr/skills/discuss/SKILL.md +0 -353
- package/plugins/copilot-pbr/skills/discuss/templates/CONTEXT.md.tmpl +0 -62
- package/plugins/copilot-pbr/skills/discuss/templates/decision-categories.md +0 -10
- package/plugins/copilot-pbr/skills/do/SKILL.md +0 -66
- package/plugins/copilot-pbr/skills/explore/SKILL.md +0 -373
- package/plugins/copilot-pbr/skills/health/SKILL.md +0 -283
- package/plugins/copilot-pbr/skills/health/templates/check-pattern.md.tmpl +0 -31
- package/plugins/copilot-pbr/skills/health/templates/output-format.md.tmpl +0 -64
- package/plugins/copilot-pbr/skills/help/SKILL.md +0 -193
- package/plugins/copilot-pbr/skills/import/SKILL.md +0 -502
- package/plugins/copilot-pbr/skills/milestone/SKILL.md +0 -806
- package/plugins/copilot-pbr/skills/milestone/templates/audit-report.md.tmpl +0 -49
- package/plugins/copilot-pbr/skills/milestone/templates/stats-file.md.tmpl +0 -31
- package/plugins/copilot-pbr/skills/note/SKILL.md +0 -213
- package/plugins/copilot-pbr/skills/pause/SKILL.md +0 -247
- package/plugins/copilot-pbr/skills/pause/templates/continue-here.md.tmpl +0 -72
- package/plugins/copilot-pbr/skills/plan/SKILL.md +0 -662
- package/plugins/copilot-pbr/skills/plan/templates/checker-prompt.md.tmpl +0 -22
- package/plugins/copilot-pbr/skills/plan/templates/gap-closure-prompt.md.tmpl +0 -33
- package/plugins/copilot-pbr/skills/plan/templates/planner-prompt.md.tmpl +0 -39
- package/plugins/copilot-pbr/skills/plan/templates/researcher-prompt.md.tmpl +0 -20
- package/plugins/copilot-pbr/skills/plan/templates/revision-prompt.md.tmpl +0 -24
- package/plugins/copilot-pbr/skills/quick/SKILL.md +0 -376
- package/plugins/copilot-pbr/skills/resume/SKILL.md +0 -399
- package/plugins/copilot-pbr/skills/review/SKILL.md +0 -653
- package/plugins/copilot-pbr/skills/review/templates/debugger-prompt.md.tmpl +0 -61
- package/plugins/copilot-pbr/skills/review/templates/gap-planner-prompt.md.tmpl +0 -41
- package/plugins/copilot-pbr/skills/review/templates/verifier-prompt.md.tmpl +0 -116
- package/plugins/copilot-pbr/skills/scan/SKILL.md +0 -299
- package/plugins/copilot-pbr/skills/scan/templates/mapper-prompt.md.tmpl +0 -202
- package/plugins/copilot-pbr/skills/setup/SKILL.md +0 -296
- package/plugins/copilot-pbr/skills/shared/commit-planning-docs.md +0 -36
- package/plugins/copilot-pbr/skills/shared/config-loading.md +0 -103
- package/plugins/copilot-pbr/skills/shared/context-budget.md +0 -41
- package/plugins/copilot-pbr/skills/shared/context-loader-task.md +0 -87
- package/plugins/copilot-pbr/skills/shared/digest-select.md +0 -80
- package/plugins/copilot-pbr/skills/shared/domain-probes.md +0 -126
- package/plugins/copilot-pbr/skills/shared/error-recovery-strategies.md +0 -51
- package/plugins/copilot-pbr/skills/shared/error-reporting.md +0 -81
- package/plugins/copilot-pbr/skills/shared/gate-prompts.md +0 -389
- package/plugins/copilot-pbr/skills/shared/phase-argument-parsing.md +0 -46
- package/plugins/copilot-pbr/skills/shared/progress-display.md +0 -53
- package/plugins/copilot-pbr/skills/shared/revision-loop.md +0 -82
- package/plugins/copilot-pbr/skills/shared/state-loading.md +0 -63
- package/plugins/copilot-pbr/skills/shared/state-update.md +0 -162
- package/plugins/copilot-pbr/skills/shared/universal-anti-patterns.md +0 -38
- package/plugins/copilot-pbr/skills/status/SKILL.md +0 -362
- package/plugins/copilot-pbr/skills/statusline/SKILL.md +0 -149
- package/plugins/copilot-pbr/skills/todo/SKILL.md +0 -279
- package/plugins/copilot-pbr/templates/CONTEXT.md.tmpl +0 -53
- package/plugins/copilot-pbr/templates/INTEGRATION-REPORT.md.tmpl +0 -152
- package/plugins/copilot-pbr/templates/RESEARCH-SUMMARY.md.tmpl +0 -98
- package/plugins/copilot-pbr/templates/ROADMAP.md.tmpl +0 -41
- package/plugins/copilot-pbr/templates/SUMMARY.md.tmpl +0 -82
- package/plugins/copilot-pbr/templates/VERIFICATION-DETAIL.md.tmpl +0 -117
- package/plugins/copilot-pbr/templates/codebase/ARCHITECTURE.md.tmpl +0 -98
- package/plugins/copilot-pbr/templates/codebase/CONCERNS.md.tmpl +0 -93
- package/plugins/copilot-pbr/templates/codebase/CONVENTIONS.md.tmpl +0 -104
- package/plugins/copilot-pbr/templates/codebase/INTEGRATIONS.md.tmpl +0 -78
- package/plugins/copilot-pbr/templates/codebase/STACK.md.tmpl +0 -78
- package/plugins/copilot-pbr/templates/codebase/STRUCTURE.md.tmpl +0 -80
- package/plugins/copilot-pbr/templates/codebase/TESTING.md.tmpl +0 -107
- package/plugins/copilot-pbr/templates/continue-here.md.tmpl +0 -74
- package/plugins/copilot-pbr/templates/prompt-partials/phase-project-context.md.tmpl +0 -38
- package/plugins/copilot-pbr/templates/research/ARCHITECTURE.md.tmpl +0 -124
- package/plugins/copilot-pbr/templates/research/STACK.md.tmpl +0 -71
- package/plugins/copilot-pbr/templates/research/SUMMARY.md.tmpl +0 -112
- package/plugins/copilot-pbr/templates/research-outputs/phase-research.md.tmpl +0 -81
- package/plugins/copilot-pbr/templates/research-outputs/project-research.md.tmpl +0 -99
- package/plugins/copilot-pbr/templates/research-outputs/synthesis.md.tmpl +0 -36
- package/plugins/cursor-pbr/.cursor-plugin/plugin.json +0 -32
- package/plugins/cursor-pbr/CHANGELOG.md +0 -15
- package/plugins/cursor-pbr/README.md +0 -123
- package/plugins/cursor-pbr/agents/audit.md +0 -178
- package/plugins/cursor-pbr/agents/codebase-mapper.md +0 -150
- package/plugins/cursor-pbr/agents/debugger.md +0 -181
- package/plugins/cursor-pbr/agents/executor.md +0 -266
- package/plugins/cursor-pbr/agents/general.md +0 -87
- package/plugins/cursor-pbr/agents/integration-checker.md +0 -118
- package/plugins/cursor-pbr/agents/plan-checker.md +0 -207
- package/plugins/cursor-pbr/agents/planner.md +0 -237
- package/plugins/cursor-pbr/agents/researcher.md +0 -185
- package/plugins/cursor-pbr/agents/synthesizer.md +0 -125
- package/plugins/cursor-pbr/agents/verifier.md +0 -227
- package/plugins/cursor-pbr/assets/.gitkeep +0 -0
- package/plugins/cursor-pbr/assets/logo.svg +0 -21
- package/plugins/cursor-pbr/hooks/hooks.json +0 -224
- package/plugins/cursor-pbr/references/agent-anti-patterns.md +0 -25
- package/plugins/cursor-pbr/references/agent-contracts.md +0 -297
- package/plugins/cursor-pbr/references/agent-interactions.md +0 -135
- package/plugins/cursor-pbr/references/agent-teams.md +0 -55
- package/plugins/cursor-pbr/references/checkpoints.md +0 -158
- package/plugins/cursor-pbr/references/common-bug-patterns.md +0 -14
- package/plugins/cursor-pbr/references/config-reference.md +0 -442
- package/plugins/cursor-pbr/references/continuation-format.md +0 -213
- package/plugins/cursor-pbr/references/deviation-rules.md +0 -113
- package/plugins/cursor-pbr/references/git-integration.md +0 -227
- package/plugins/cursor-pbr/references/integration-patterns.md +0 -118
- package/plugins/cursor-pbr/references/model-profiles.md +0 -100
- package/plugins/cursor-pbr/references/model-selection.md +0 -32
- package/plugins/cursor-pbr/references/pbr-rules.md +0 -195
- package/plugins/cursor-pbr/references/pbr-tools-cli.md +0 -285
- package/plugins/cursor-pbr/references/plan-authoring.md +0 -182
- package/plugins/cursor-pbr/references/plan-format.md +0 -288
- package/plugins/cursor-pbr/references/planning-config.md +0 -214
- package/plugins/cursor-pbr/references/questioning.md +0 -215
- package/plugins/cursor-pbr/references/reading-verification.md +0 -128
- package/plugins/cursor-pbr/references/stub-patterns.md +0 -161
- package/plugins/cursor-pbr/references/subagent-coordination.md +0 -120
- package/plugins/cursor-pbr/references/ui-formatting.md +0 -444
- package/plugins/cursor-pbr/references/verification-patterns.md +0 -199
- package/plugins/cursor-pbr/references/wave-execution.md +0 -96
- package/plugins/cursor-pbr/rules/pbr-workflow.mdc +0 -48
- package/plugins/cursor-pbr/setup.ps1 +0 -78
- package/plugins/cursor-pbr/setup.sh +0 -83
- package/plugins/cursor-pbr/skills/audit/SKILL.md +0 -331
- package/plugins/cursor-pbr/skills/begin/SKILL.md +0 -589
- package/plugins/cursor-pbr/skills/begin/templates/PROJECT.md.tmpl +0 -34
- package/plugins/cursor-pbr/skills/begin/templates/REQUIREMENTS.md.tmpl +0 -19
- package/plugins/cursor-pbr/skills/begin/templates/STATE.md.tmpl +0 -50
- package/plugins/cursor-pbr/skills/begin/templates/config.json.tmpl +0 -64
- package/plugins/cursor-pbr/skills/begin/templates/researcher-prompt.md.tmpl +0 -20
- package/plugins/cursor-pbr/skills/begin/templates/roadmap-prompt.md.tmpl +0 -31
- package/plugins/cursor-pbr/skills/begin/templates/synthesis-prompt.md.tmpl +0 -17
- package/plugins/cursor-pbr/skills/build/SKILL.md +0 -961
- package/plugins/cursor-pbr/skills/config/SKILL.md +0 -252
- package/plugins/cursor-pbr/skills/continue/SKILL.md +0 -159
- package/plugins/cursor-pbr/skills/dashboard/SKILL.md +0 -44
- package/plugins/cursor-pbr/skills/debug/SKILL.md +0 -512
- package/plugins/cursor-pbr/skills/debug/templates/continuation-prompt.md.tmpl +0 -17
- package/plugins/cursor-pbr/skills/debug/templates/initial-investigation-prompt.md.tmpl +0 -28
- package/plugins/cursor-pbr/skills/discuss/SKILL.md +0 -354
- package/plugins/cursor-pbr/skills/discuss/templates/CONTEXT.md.tmpl +0 -62
- package/plugins/cursor-pbr/skills/discuss/templates/decision-categories.md +0 -10
- package/plugins/cursor-pbr/skills/do/SKILL.md +0 -67
- package/plugins/cursor-pbr/skills/explore/SKILL.md +0 -376
- package/plugins/cursor-pbr/skills/health/SKILL.md +0 -283
- package/plugins/cursor-pbr/skills/health/templates/check-pattern.md.tmpl +0 -31
- package/plugins/cursor-pbr/skills/health/templates/output-format.md.tmpl +0 -64
- package/plugins/cursor-pbr/skills/help/SKILL.md +0 -193
- package/plugins/cursor-pbr/skills/import/SKILL.md +0 -505
- package/plugins/cursor-pbr/skills/milestone/SKILL.md +0 -807
- package/plugins/cursor-pbr/skills/milestone/templates/audit-report.md.tmpl +0 -49
- package/plugins/cursor-pbr/skills/milestone/templates/stats-file.md.tmpl +0 -31
- package/plugins/cursor-pbr/skills/note/SKILL.md +0 -214
- package/plugins/cursor-pbr/skills/pause/SKILL.md +0 -248
- package/plugins/cursor-pbr/skills/pause/templates/continue-here.md.tmpl +0 -72
- package/plugins/cursor-pbr/skills/plan/SKILL.md +0 -663
- package/plugins/cursor-pbr/skills/plan/templates/checker-prompt.md.tmpl +0 -22
- package/plugins/cursor-pbr/skills/plan/templates/gap-closure-prompt.md.tmpl +0 -33
- package/plugins/cursor-pbr/skills/plan/templates/planner-prompt.md.tmpl +0 -39
- package/plugins/cursor-pbr/skills/plan/templates/researcher-prompt.md.tmpl +0 -20
- package/plugins/cursor-pbr/skills/plan/templates/revision-prompt.md.tmpl +0 -24
- package/plugins/cursor-pbr/skills/quick/SKILL.md +0 -376
- package/plugins/cursor-pbr/skills/resume/SKILL.md +0 -399
- package/plugins/cursor-pbr/skills/review/SKILL.md +0 -654
- package/plugins/cursor-pbr/skills/review/templates/debugger-prompt.md.tmpl +0 -61
- package/plugins/cursor-pbr/skills/review/templates/gap-planner-prompt.md.tmpl +0 -41
- package/plugins/cursor-pbr/skills/review/templates/verifier-prompt.md.tmpl +0 -116
- package/plugins/cursor-pbr/skills/scan/SKILL.md +0 -300
- package/plugins/cursor-pbr/skills/scan/templates/mapper-prompt.md.tmpl +0 -202
- package/plugins/cursor-pbr/skills/setup/SKILL.md +0 -296
- package/plugins/cursor-pbr/skills/shared/commit-planning-docs.md +0 -36
- package/plugins/cursor-pbr/skills/shared/config-loading.md +0 -103
- package/plugins/cursor-pbr/skills/shared/context-budget.md +0 -41
- package/plugins/cursor-pbr/skills/shared/context-loader-task.md +0 -87
- package/plugins/cursor-pbr/skills/shared/digest-select.md +0 -80
- package/plugins/cursor-pbr/skills/shared/domain-probes.md +0 -126
- package/plugins/cursor-pbr/skills/shared/error-recovery-strategies.md +0 -51
- package/plugins/cursor-pbr/skills/shared/error-reporting.md +0 -81
- package/plugins/cursor-pbr/skills/shared/gate-prompts.md +0 -389
- package/plugins/cursor-pbr/skills/shared/phase-argument-parsing.md +0 -46
- package/plugins/cursor-pbr/skills/shared/progress-display.md +0 -53
- package/plugins/cursor-pbr/skills/shared/revision-loop.md +0 -82
- package/plugins/cursor-pbr/skills/shared/state-loading.md +0 -63
- package/plugins/cursor-pbr/skills/shared/state-update.md +0 -162
- package/plugins/cursor-pbr/skills/shared/universal-anti-patterns.md +0 -38
- package/plugins/cursor-pbr/skills/status/SKILL.md +0 -362
- package/plugins/cursor-pbr/skills/statusline/SKILL.md +0 -150
- package/plugins/cursor-pbr/skills/todo/SKILL.md +0 -280
- package/plugins/cursor-pbr/templates/CONTEXT.md.tmpl +0 -53
- package/plugins/cursor-pbr/templates/INTEGRATION-REPORT.md.tmpl +0 -152
- package/plugins/cursor-pbr/templates/RESEARCH-SUMMARY.md.tmpl +0 -98
- package/plugins/cursor-pbr/templates/ROADMAP.md.tmpl +0 -41
- package/plugins/cursor-pbr/templates/SUMMARY.md.tmpl +0 -82
- package/plugins/cursor-pbr/templates/VERIFICATION-DETAIL.md.tmpl +0 -117
- package/plugins/cursor-pbr/templates/codebase/ARCHITECTURE.md.tmpl +0 -98
- package/plugins/cursor-pbr/templates/codebase/CONCERNS.md.tmpl +0 -93
- package/plugins/cursor-pbr/templates/codebase/CONVENTIONS.md.tmpl +0 -104
- package/plugins/cursor-pbr/templates/codebase/INTEGRATIONS.md.tmpl +0 -78
- package/plugins/cursor-pbr/templates/codebase/STACK.md.tmpl +0 -78
- package/plugins/cursor-pbr/templates/codebase/STRUCTURE.md.tmpl +0 -80
- package/plugins/cursor-pbr/templates/codebase/TESTING.md.tmpl +0 -107
- package/plugins/cursor-pbr/templates/continue-here.md.tmpl +0 -74
- package/plugins/cursor-pbr/templates/prompt-partials/phase-project-context.md.tmpl +0 -38
- package/plugins/cursor-pbr/templates/research/ARCHITECTURE.md.tmpl +0 -124
- package/plugins/cursor-pbr/templates/research/STACK.md.tmpl +0 -71
- package/plugins/cursor-pbr/templates/research/SUMMARY.md.tmpl +0 -112
- package/plugins/cursor-pbr/templates/research-outputs/phase-research.md.tmpl +0 -81
- package/plugins/cursor-pbr/templates/research-outputs/project-research.md.tmpl +0 -99
- package/plugins/cursor-pbr/templates/research-outputs/synthesis.md.tmpl +0 -36
- package/plugins/pbr/references/agent-interactions.md +0 -134
- package/plugins/pbr/references/pbr-rules.md +0 -194
- package/plugins/pbr/references/pbr-tools-cli.md +0 -285
- package/plugins/pbr/references/planning-config.md +0 -213
- package/plugins/pbr/references/subagent-coordination.md +0 -119
- package/plugins/pbr/references/ui-formatting.md +0 -444
- package/plugins/pbr/scripts/validate-plugin-structure.js +0 -183
- package/plugins/pbr/skills/milestone/templates/audit-report.md.tmpl +0 -48
- package/plugins/pbr/skills/shared/error-recovery-strategies.md +0 -51
- 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,172 @@
|
|
|
1
|
+
---
|
|
2
|
+
component: check-plan-format
|
|
3
|
+
version: 1
|
|
4
|
+
last_calibrated: 2026-03-24
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# check-plan-format Few-Shot Examples
|
|
8
|
+
|
|
9
|
+
These examples document structural patterns for reference and calibration. The hook uses JavaScript validation, not LLM judgment.
|
|
10
|
+
|
|
11
|
+
## Positive Examples
|
|
12
|
+
|
|
13
|
+
### Example 1: Well-formed PLAN.md with all required frontmatter and task elements
|
|
14
|
+
|
|
15
|
+
**Input:** Write to `.planning/phases/42-auth-refactor/PLAN-01.md`
|
|
16
|
+
|
|
17
|
+
**Content:**
|
|
18
|
+
|
|
19
|
+
```yaml
|
|
20
|
+
---
|
|
21
|
+
phase: "42-auth-refactor"
|
|
22
|
+
plan: "42-01"
|
|
23
|
+
type: "feature"
|
|
24
|
+
wave: 1
|
|
25
|
+
depends_on: []
|
|
26
|
+
files_modified:
|
|
27
|
+
- "src/auth/middleware.js"
|
|
28
|
+
- "src/auth/session.js"
|
|
29
|
+
autonomous: true
|
|
30
|
+
must_haves:
|
|
31
|
+
truths:
|
|
32
|
+
- "Session tokens are encrypted at rest"
|
|
33
|
+
artifacts:
|
|
34
|
+
- "src/auth/middleware.js: >50 lines"
|
|
35
|
+
key_links:
|
|
36
|
+
- "middleware.js imported by server.js"
|
|
37
|
+
implements:
|
|
38
|
+
- "REQ-AUTH-01"
|
|
39
|
+
---
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
```xml
|
|
43
|
+
<task id="42-01-T1" type="auto" tdd="false" complexity="simple">
|
|
44
|
+
<name>Implement encrypted session storage</name>
|
|
45
|
+
<read_first>
|
|
46
|
+
src/auth/session.js
|
|
47
|
+
</read_first>
|
|
48
|
+
<files>
|
|
49
|
+
src/auth/middleware.js
|
|
50
|
+
src/auth/session.js
|
|
51
|
+
</files>
|
|
52
|
+
<action>
|
|
53
|
+
1. Add AES-256-GCM encryption to session.save()
|
|
54
|
+
2. Add decryption to session.load()
|
|
55
|
+
</action>
|
|
56
|
+
<acceptance_criteria>
|
|
57
|
+
grep -n "createCipheriv" src/auth/session.js
|
|
58
|
+
</acceptance_criteria>
|
|
59
|
+
<verify>
|
|
60
|
+
node -e "require('./src/auth/session').save({test:1}); console.log('OK')"
|
|
61
|
+
</verify>
|
|
62
|
+
<done>Session tokens encrypted at rest using AES-256-GCM.</done>
|
|
63
|
+
</task>
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
**Hook result:** No errors, no warnings. All 7 required frontmatter fields present (`phase`, `plan`, `wave`, `type`, `depends_on`, `files_modified`, `autonomous`). `must_haves` has all 3 sub-fields (`truths`, `artifacts`, `key_links`). `implements` present. Task has all 7 required elements (`name`, `read_first`, `files`, `action`, `acceptance_criteria`, `verify`, `done`).
|
|
67
|
+
|
|
68
|
+
### Example 2: Well-formed SUMMARY.md with required fields and Self-Check section
|
|
69
|
+
|
|
70
|
+
**Input:** Write to `.planning/phases/42-auth-refactor/SUMMARY-01.md`
|
|
71
|
+
|
|
72
|
+
**Content:**
|
|
73
|
+
|
|
74
|
+
```yaml
|
|
75
|
+
---
|
|
76
|
+
phase: "42-auth-refactor"
|
|
77
|
+
plan: "42-01"
|
|
78
|
+
status: "complete"
|
|
79
|
+
provides:
|
|
80
|
+
- "Encrypted session storage"
|
|
81
|
+
requires: []
|
|
82
|
+
key_files:
|
|
83
|
+
- "src/auth/middleware.js: AES-256-GCM encryption middleware"
|
|
84
|
+
- "src/auth/session.js: session save/load with encryption"
|
|
85
|
+
deferred:
|
|
86
|
+
- "Session key rotation (out of scope for this plan)"
|
|
87
|
+
duration: 12
|
|
88
|
+
requirements-completed:
|
|
89
|
+
- "REQ-AUTH-01"
|
|
90
|
+
---
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
```markdown
|
|
94
|
+
## Self-Check: PASSED
|
|
95
|
+
|
|
96
|
+
- [x] middleware.js encrypts session data (verified: grep shows createCipheriv)
|
|
97
|
+
- [x] session.js decrypts on load (verified: test script exits 0)
|
|
98
|
+
- [x] No plaintext tokens in storage
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
**Hook result:** No errors. All required fields present (`phase`, `plan`, `status`, `provides`, `requires`, `key_files`). `deferred` field present (avoids warning). `duration` and `requirements-completed` present (avoids advisory warnings).
|
|
102
|
+
|
|
103
|
+
## Negative Examples
|
|
104
|
+
|
|
105
|
+
### Example 1: PLAN.md missing must_haves and task missing verify element
|
|
106
|
+
|
|
107
|
+
**Input:** Write to `.planning/phases/42-auth-refactor/PLAN-01.md`
|
|
108
|
+
|
|
109
|
+
**Content:**
|
|
110
|
+
|
|
111
|
+
```yaml
|
|
112
|
+
---
|
|
113
|
+
phase: "42-auth-refactor"
|
|
114
|
+
plan: "42-01"
|
|
115
|
+
type: "feature"
|
|
116
|
+
wave: 1
|
|
117
|
+
depends_on: []
|
|
118
|
+
files_modified:
|
|
119
|
+
- "src/auth/middleware.js"
|
|
120
|
+
autonomous: true
|
|
121
|
+
implements: []
|
|
122
|
+
---
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
```xml
|
|
126
|
+
<task id="42-01-T1" type="auto" tdd="false" complexity="simple">
|
|
127
|
+
<name>Implement encrypted session storage</name>
|
|
128
|
+
<read_first>
|
|
129
|
+
src/auth/session.js
|
|
130
|
+
</read_first>
|
|
131
|
+
<files>
|
|
132
|
+
src/auth/middleware.js
|
|
133
|
+
</files>
|
|
134
|
+
<action>
|
|
135
|
+
1. Add encryption to session storage
|
|
136
|
+
</action>
|
|
137
|
+
<acceptance_criteria>
|
|
138
|
+
grep -n "encrypt" src/auth/session.js
|
|
139
|
+
</acceptance_criteria>
|
|
140
|
+
<done>Session encryption added.</done>
|
|
141
|
+
</task>
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
**Hook result:** 2 errors:
|
|
145
|
+
|
|
146
|
+
- `Frontmatter missing "must_haves" field (truths/artifacts/key_links required)` -- format-validators.js `validatePlan()` checks for `must_haves:` in frontmatter. Without it, there is nothing for the verifier to check against.
|
|
147
|
+
- `Task 1: missing <verify> element` -- Every task must include a `<verify>` command that the executor runs post-implementation. Without it, the self-check step has no verification command to run.
|
|
148
|
+
|
|
149
|
+
### Example 2: SUMMARY.md missing requires and key_files fields
|
|
150
|
+
|
|
151
|
+
**Input:** Write to `.planning/phases/42-auth-refactor/SUMMARY-01.md`
|
|
152
|
+
|
|
153
|
+
**Content:**
|
|
154
|
+
|
|
155
|
+
```yaml
|
|
156
|
+
---
|
|
157
|
+
phase: "42-auth-refactor"
|
|
158
|
+
plan: "42-01"
|
|
159
|
+
status: "complete"
|
|
160
|
+
provides:
|
|
161
|
+
- "Encrypted session storage"
|
|
162
|
+
---
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
**Hook result:** 2 blocking errors:
|
|
166
|
+
|
|
167
|
+
- `Frontmatter missing "requires" field` -- Even if there are no dependencies, `requires: []` must be explicitly stated. The build skill uses this field to check inter-plan dependencies.
|
|
168
|
+
- `Frontmatter missing "key_files" field` -- Even if empty, `key_files: []` must be present. The dashboard and status skill read this field to show what was produced.
|
|
169
|
+
|
|
170
|
+
Additionally, 1 warning:
|
|
171
|
+
|
|
172
|
+
- `Frontmatter missing "deferred" field` -- The `deferred` field forces the executor to consciously record any scope creep. Omitting it means out-of-scope work may go untracked.
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
---
|
|
2
|
+
component: check-subagent-output
|
|
3
|
+
version: 1
|
|
4
|
+
last_calibrated: 2026-03-24
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# check-subagent-output Few-Shot Examples
|
|
8
|
+
|
|
9
|
+
These examples document output sufficiency patterns. The hook checks file existence and structure, not content quality.
|
|
10
|
+
|
|
11
|
+
## Positive Examples
|
|
12
|
+
|
|
13
|
+
### Example 1: Executor produces SUMMARY.md with required fields and completion marker
|
|
14
|
+
|
|
15
|
+
**Scenario:** Build skill spawns `pbr:executor` for plan 42-01. Executor writes SUMMARY-01.md and returns completion marker.
|
|
16
|
+
|
|
17
|
+
**SUMMARY-01.md on disk:**
|
|
18
|
+
|
|
19
|
+
```yaml
|
|
20
|
+
---
|
|
21
|
+
phase: "42-auth-refactor"
|
|
22
|
+
plan: "42-01"
|
|
23
|
+
status: "complete"
|
|
24
|
+
provides:
|
|
25
|
+
- "Encrypted session storage"
|
|
26
|
+
requires: []
|
|
27
|
+
key_files:
|
|
28
|
+
- "src/auth/middleware.js: AES-256-GCM encryption"
|
|
29
|
+
deferred: []
|
|
30
|
+
---
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
```markdown
|
|
34
|
+
## Self-Check: PASSED
|
|
35
|
+
|
|
36
|
+
- [x] middleware.js has createCipheriv call
|
|
37
|
+
- [x] Tests pass with `npm test`
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
**Task tool_output contains:** `## PLAN COMPLETE`
|
|
41
|
+
|
|
42
|
+
**Hook result:** Verified. The hook finds SUMMARY-01.md in the phase directory (mtime within last 15 minutes), confirms the file exists, and sees the completion marker in `tool_output`. No warnings emitted. The build skill can route to the next step (verification or next plan).
|
|
43
|
+
|
|
44
|
+
### Example 2: Verifier produces VERIFICATION.md with status and per-criterion evidence
|
|
45
|
+
|
|
46
|
+
**Scenario:** Review skill spawns `pbr:verifier` for phase 42. Verifier writes VERIFICATION.md.
|
|
47
|
+
|
|
48
|
+
**VERIFICATION.md on disk:**
|
|
49
|
+
|
|
50
|
+
```yaml
|
|
51
|
+
---
|
|
52
|
+
phase: "42-auth-refactor"
|
|
53
|
+
status: "passed"
|
|
54
|
+
must_haves_checked: 3
|
|
55
|
+
must_haves_passed: 3
|
|
56
|
+
must_haves_total: 3
|
|
57
|
+
---
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
```markdown
|
|
61
|
+
## Must-Have Verification
|
|
62
|
+
|
|
63
|
+
### Truth 1: Session tokens are encrypted at rest
|
|
64
|
+
**L1 (Existence):** grep shows `createCipheriv` in middleware.js line 23.
|
|
65
|
+
**L2 (Substantive):** AES-256-GCM with 32-byte key, IV generation per write.
|
|
66
|
+
**L3 (Wired):** middleware.js required by server.js line 8, session.save() calls encrypt().
|
|
67
|
+
**Status: PASSED**
|
|
68
|
+
|
|
69
|
+
### Artifact 1: src/auth/middleware.js: >50 lines
|
|
70
|
+
**L1 (Existence):** File exists, 87 lines.
|
|
71
|
+
**L2 (Substantive):** 3 exported functions, no TODO/FIXME stubs.
|
|
72
|
+
**L3 (Wired):** Imported by server.js and tested in middleware.test.js.
|
|
73
|
+
**Status: PASSED**
|
|
74
|
+
|
|
75
|
+
### Key Link 1: middleware.js imported by server.js
|
|
76
|
+
**Evidence:** `grep -n "require.*middleware" src/server.js` shows line 8.
|
|
77
|
+
**Status: PASSED**
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
**Hook result:** Verified. The hook finds VERIFICATION.md in the phase directory. No warnings emitted. The `status: "passed"` frontmatter field and per-criterion evidence rows confirm the verifier did substantive work.
|
|
81
|
+
|
|
82
|
+
## Negative Examples
|
|
83
|
+
|
|
84
|
+
### Example 1: Executor completes but no SUMMARY.md exists on disk
|
|
85
|
+
|
|
86
|
+
**Scenario:** Build skill spawns `pbr:executor` for plan 42-01. The executor hits a tool error mid-run (e.g., a Bash command timeout) and returns without writing SUMMARY.md.
|
|
87
|
+
|
|
88
|
+
**Phase directory contents:** `PLAN-01.md` only. No `SUMMARY-01.md` or `SUMMARY.md`.
|
|
89
|
+
|
|
90
|
+
**Task tool_output contains:** (error trace or partial output, no completion marker)
|
|
91
|
+
|
|
92
|
+
**Hook result:** Warning emitted via `additionalContext`:
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
[WARN] Agent pbr:executor completed but no SUMMARY-{plan_id}.md (or SUMMARY.md) was found.
|
|
96
|
+
Likely causes: (1) agent hit an error mid-run, (2) wrong working directory.
|
|
97
|
+
To fix: re-run the parent skill -- the executor gate will block until the output is present.
|
|
98
|
+
Check the Task() output above for error details.
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
**Why this matters:** Without SUMMARY.md, the build skill has no artifact to pass to the verifier. The warning tells the orchestrator to re-run rather than proceeding to verification with missing data.
|
|
102
|
+
|
|
103
|
+
### Example 2: Executor produces SUMMARY.md but no completion marker in tool_output
|
|
104
|
+
|
|
105
|
+
**Scenario:** Build skill spawns `pbr:executor` for plan 42-01. The executor writes SUMMARY-01.md to disk but its final output text does not include `## PLAN COMPLETE`, `## PLAN FAILED`, or `## CHECKPOINT:`.
|
|
106
|
+
|
|
107
|
+
**SUMMARY-01.md on disk:** Exists with valid frontmatter.
|
|
108
|
+
|
|
109
|
+
**Task tool_output contains:** `"All tasks completed successfully."` (no structured marker)
|
|
110
|
+
|
|
111
|
+
**Hook result:** Skill-specific warning emitted:
|
|
112
|
+
|
|
113
|
+
```
|
|
114
|
+
Executor did not return a completion marker (expected ## PLAN COMPLETE, ## PLAN FAILED, or ## CHECKPOINT:).
|
|
115
|
+
Build skill may not route correctly.
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
**Why this matters:** The build skill pattern-matches on completion markers to decide the next action: advance to verification (`PLAN COMPLETE`), handle failure (`PLAN FAILED`), or checkpoint (`CHECKPOINT:`). Without a marker, the build skill cannot route and may stall or take the wrong branch. The SUMMARY.md file exists, so the generic "missing output" warning does not fire -- only this marker-specific warning catches the problem.
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
component: integration-checker
|
|
3
|
+
version: 1
|
|
4
|
+
last_calibrated: 2026-03-24
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Integration-Checker Few-Shot Examples
|
|
8
|
+
|
|
9
|
+
## Positive Examples
|
|
10
|
+
|
|
11
|
+
### Example 1: Cross-phase export/import case mismatch detected
|
|
12
|
+
|
|
13
|
+
**Input:** Phase 5 SUMMARY.md declares `provides: ["AuthService class in src/services/auth.js"]`. Phase 6 code imports `const { authService } = require('./services/auth')`.
|
|
14
|
+
|
|
15
|
+
**Output:**
|
|
16
|
+
|
|
17
|
+
> **Check: Export/Import Wiring**
|
|
18
|
+
> Status: MISMATCHED
|
|
19
|
+
> Evidence: Phase 5 exports `AuthService` (PascalCase class, `src/services/auth.js` line 45: `module.exports = { AuthService }`). Phase 6 imports `authService` (camelCase, `src/routes/api.js` line 3: `const { authService } = require('./services/auth')`). Destructuring will yield `undefined` because the export key is `AuthService`, not `authService`.
|
|
20
|
+
> Recommendation: Change Phase 6 import to `const { AuthService } = require('./services/auth')` or add a camelCase alias in Phase 5 exports.
|
|
21
|
+
|
|
22
|
+
**Why this is good:** The checker traced the exact export and import statements with file paths and line numbers. It identified the root cause (JavaScript destructuring is case-sensitive) and explained the runtime consequence (`undefined`). The recommendation is specific and gives two options.
|
|
23
|
+
|
|
24
|
+
### Example 2: Missing database migration for new column
|
|
25
|
+
|
|
26
|
+
**Input:** Phase 8 adds `user_preferences` column reference in `src/models/user.js` (line 23: `this.preferences = row.user_preferences`). No migration file exists in `migrations/` directory.
|
|
27
|
+
|
|
28
|
+
**Output:**
|
|
29
|
+
|
|
30
|
+
> **Check: Cross-Phase Dependency Satisfaction**
|
|
31
|
+
> Status: ERROR
|
|
32
|
+
> Evidence: `src/models/user.js` line 23 reads `row.user_preferences` but no migration file in `migrations/` creates this column. `ls migrations/` shows latest migration is `20260320_add_sessions_table.js`. Grep for `user_preferences` across all migrations returns 0 matches.
|
|
33
|
+
> Impact: Runtime `SELECT` queries will return `undefined` for `row.user_preferences` on any existing database. New deployments will fail if the ORM enforces column existence.
|
|
34
|
+
> Recommendation: Create migration `20260324_add_user_preferences_column.js` adding `user_preferences TEXT` to the users table.
|
|
35
|
+
|
|
36
|
+
**Why this is good:** The checker went beyond code structure to check data layer dependencies. It verified the column does not exist in any migration file using grep, identified the runtime impact, and provided a specific migration file recommendation with naming convention that matches the existing pattern.
|
|
37
|
+
|
|
38
|
+
## Negative Examples
|
|
39
|
+
|
|
40
|
+
### Example 1: No cross-phase boundary checks performed
|
|
41
|
+
|
|
42
|
+
**Input:** 4 completed phases with SUMMARY.md provides/requires declared. Phase 3 requires `configLoad` from Phase 2.
|
|
43
|
+
|
|
44
|
+
**Output:**
|
|
45
|
+
|
|
46
|
+
> ## Integration Checks
|
|
47
|
+
>
|
|
48
|
+
> | Check | Status | Evidence |
|
|
49
|
+
> |-------|--------|----------|
|
|
50
|
+
> | Export/Import Wiring | PASSED | All phases have provides/requires declared |
|
|
51
|
+
> | API Route Coverage | N/A | No API routes |
|
|
52
|
+
> | Auth Protection | N/A | No auth |
|
|
53
|
+
> | E2E Flows | N/A | No user flows |
|
|
54
|
+
>
|
|
55
|
+
> Status: passed, checks_total: 4, checks_passed: 4
|
|
56
|
+
|
|
57
|
+
**Why this is bad:** The checker reported "PASSED" for Export/Import Wiring by only verifying that SUMMARY.md frontmatter fields exist -- it never checked whether the actual code matches the declarations. Having `provides: ["configLoad"]` in a SUMMARY.md does not mean `configLoad` is actually exported or that Phase 3 actually imports it. No grep commands, no file reads, no line numbers.
|
|
58
|
+
|
|
59
|
+
### Example 2: False positive from incomplete scope analysis
|
|
60
|
+
|
|
61
|
+
**Input:** Phase 4 exports `logHook()` from `plugins/pbr/scripts/hook-logger.js`. Checker reports it as ORPHANED because no standard `import` or `require` references it in Phase 5-7 source files.
|
|
62
|
+
|
|
63
|
+
**Output:**
|
|
64
|
+
|
|
65
|
+
> **Check: Export/Import Wiring**
|
|
66
|
+
> Status: ORPHANED (WARNING)
|
|
67
|
+
> Evidence: `logHook` exported from `plugins/pbr/scripts/hook-logger.js` line 12. Grep for `require.*hook-logger` in phases 5-7 files returns 0 matches. Export appears unused.
|
|
68
|
+
> Recommendation: Remove unused export or add consumer.
|
|
69
|
+
|
|
70
|
+
**Why this is bad:** The checker only searched phases 5-7 source files but `logHook` is consumed by hook scripts loaded dynamically via `hooks.json` -- not through standard `require()` imports in application code. Hook scripts use `const { logHook } = require('./hook-logger')` but live in `plugins/pbr/scripts/`, which the checker excluded from its search scope. A thorough integration check would search ALL files that could consume the export, including hook scripts and config-referenced modules.
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
---
|
|
2
|
+
component: nyquist-auditor
|
|
3
|
+
version: 1
|
|
4
|
+
last_calibrated: 2026-03-24
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Nyquist-Auditor Few-Shot Examples
|
|
8
|
+
|
|
9
|
+
## Positive Examples
|
|
10
|
+
|
|
11
|
+
### Example 1: Unvalidated code path identified with specific line range and fix
|
|
12
|
+
|
|
13
|
+
**Input:** Gap: Task T2 requires "post-write-dispatch.js validates STATE.md writes" but no test covers the STATE.md branch.
|
|
14
|
+
|
|
15
|
+
**Output:**
|
|
16
|
+
|
|
17
|
+
> **Gap: T2 -- STATE.md write validation**
|
|
18
|
+
> **Analysis:** Read `plugins/pbr/scripts/post-write-dispatch.js` lines 45-78. The `checkSync` function handles ROADMAP.md (line 52) and PLAN.md (line 61) but returns `null` for STATE.md writes (line 71: `if (file.includes('STATE.md')) return null`). This means STATE.md writes bypass all validation in the dispatch chain.
|
|
19
|
+
> **Test created:** `tests/post-write-dispatch-state.test.js`
|
|
20
|
+
> ```javascript
|
|
21
|
+
> test('STATE.md writes trigger checkStateWrite validation', () => {
|
|
22
|
+
> const result = dispatch({ file_path: '.planning/STATE.md', content: '---\nstatus: building\n---' });
|
|
23
|
+
> expect(result).not.toBeNull();
|
|
24
|
+
> expect(result.additionalContext).toContain('STATE.md');
|
|
25
|
+
> });
|
|
26
|
+
> ```
|
|
27
|
+
> **Run:** `npx jest tests/post-write-dispatch-state.test.js` -- FAILED (expected: not null, received: null)
|
|
28
|
+
> **Classification:** IMPLEMENTATION BUG -- The dispatch function intentionally returns null for STATE.md, meaning no validation occurs. Escalating to executor.
|
|
29
|
+
> **Status:** ESCALATED -- implementation gap, not test gap
|
|
30
|
+
|
|
31
|
+
**Why this is good:** The auditor read the actual implementation, identified the specific line where the gap exists (line 71), wrote a behavioral test that verifies the observable requirement (STATE.md writes get validated), ran the test, and correctly classified the failure as an implementation bug rather than trying to fix the source code. The escalation includes all context needed for the executor to fix it.
|
|
32
|
+
|
|
33
|
+
### Example 2: Hook ordering race condition identified with evidence
|
|
34
|
+
|
|
35
|
+
**Input:** Gap: Task T3 requires "context tier is current when suggest-compact.js runs"
|
|
36
|
+
|
|
37
|
+
**Output:**
|
|
38
|
+
|
|
39
|
+
> **Gap: T3 -- Context tier freshness for suggest-compact**
|
|
40
|
+
> **Analysis:** Both `context-bridge.js` and `suggest-compact.js` are registered as PostToolUse handlers for Write|Edit events in `hooks.json`. `context-bridge.js` updates `.context-budget.json` with the current tier. `suggest-compact.js` reads `.context-budget.json` to decide whether to suggest compaction.
|
|
41
|
+
> **Evidence:** `hooks.json` lines 23-24 register both on the same event. Execution order is not guaranteed (documented in `references/archive/hook-ordering.md` line 8: "execution order is not guaranteed for same-event hooks").
|
|
42
|
+
> **Test created:** `tests/hook-ordering-context.test.js`
|
|
43
|
+
> ```javascript
|
|
44
|
+
> test('context-bridge writes tier before suggest-compact reads it', async () => {
|
|
45
|
+
> // Simulate: suggest-compact reads stale tier
|
|
46
|
+
> fs.writeFileSync(budgetPath, JSON.stringify({ tier: 'PEAK', chars_read: 0 }));
|
|
47
|
+
> await runHook('suggest-compact', { tool: 'Write', chars: 180000 });
|
|
48
|
+
> const budget = JSON.parse(fs.readFileSync(budgetPath));
|
|
49
|
+
> expect(budget.tier).not.toBe('PEAK'); // Should have been updated by context-bridge first
|
|
50
|
+
> });
|
|
51
|
+
> ```
|
|
52
|
+
> **Run:** `npx jest tests/hook-ordering-context.test.js` -- PASSED (context-bridge runs first in practice due to hooks.json array order)
|
|
53
|
+
> **Note:** Test passes currently but relies on implicit array ordering, not a guaranteed contract. Documented as fragile.
|
|
54
|
+
> **Status:** green (with fragility note)
|
|
55
|
+
|
|
56
|
+
**Why this is good:** The auditor identified a real architectural concern (race condition between two hooks on the same event), cited the documentation that confirms ordering is not guaranteed, wrote a test that verifies the current behavior, and honestly noted the fragility even though the test passes. This gives the team actionable information about a latent risk.
|
|
57
|
+
|
|
58
|
+
## Negative Examples
|
|
59
|
+
|
|
60
|
+
### Example 1: Partial coverage claimed after checking only 3 of 28 hook scripts
|
|
61
|
+
|
|
62
|
+
**Input:** Gaps list contains 8 items across different hook scripts. Auditor checks 3.
|
|
63
|
+
|
|
64
|
+
**Output:**
|
|
65
|
+
|
|
66
|
+
> **Validation Summary**
|
|
67
|
+
> All hooks look correct. Checked context-bridge.js, suggest-compact.js, and validate-commit.js. No issues found.
|
|
68
|
+
> Resolved: 8/8, Escalated: 0/8
|
|
69
|
+
|
|
70
|
+
**Why this is bad:** The auditor claimed 8/8 gaps resolved but only examined 3 hook scripts. The other 5 gaps (covering post-bash-triage.js, check-plan-format.js, auto-continue.js, track-context-budget.js, and pre-write-dispatch.js) were never read or tested. Marking untested gaps as resolved violates the core rule: "Never mark untested tests as passing." Each gap must have its own test execution evidence.
|
|
71
|
+
|
|
72
|
+
### Example 2: Theoretical performance concern without measurement
|
|
73
|
+
|
|
74
|
+
**Input:** Gap: Task T1 requires "hook-logger.js handles high-frequency events without blocking"
|
|
75
|
+
|
|
76
|
+
**Output:**
|
|
77
|
+
|
|
78
|
+
> **Gap: T1 -- hook-logger performance**
|
|
79
|
+
> **Analysis:** `hook-logger.js` uses synchronous `fs.appendFileSync` for every log entry (line 34). This could be slow under high-frequency hook events because synchronous I/O blocks the Node.js event loop.
|
|
80
|
+
> **Recommendation:** Switch to `fs.appendFile` (async) or batch writes.
|
|
81
|
+
> **Status:** ESCALATED -- potential performance issue
|
|
82
|
+
|
|
83
|
+
**Why this is bad:** The auditor flagged a theoretical concern ("could be slow") without any measurement. No benchmark test was written, no timing data was collected, no evidence of actual performance degradation was provided. The gap requires verification of "handles high-frequency events without blocking" -- the correct approach is to write a test that fires 100+ log calls and measures elapsed time, then compare against a threshold. Speculation about synchronous I/O is not evidence.
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
component: plan-checker
|
|
3
|
+
version: 1
|
|
4
|
+
last_calibrated: 2026-03-24
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Plan-Checker Few-Shot Examples
|
|
8
|
+
|
|
9
|
+
## Positive Examples
|
|
10
|
+
|
|
11
|
+
### Example 1: BLOCKER flagged for vague task action missing file and function names
|
|
12
|
+
|
|
13
|
+
**Input:** Plan task with action: "Implement the authentication feature for the API routes."
|
|
14
|
+
|
|
15
|
+
**Output:**
|
|
16
|
+
|
|
17
|
+
> ```yaml
|
|
18
|
+
> issues:
|
|
19
|
+
> - dimension: D2
|
|
20
|
+
> severity: BLOCKER
|
|
21
|
+
> finding: "Task T1 action says 'implement the authentication feature' without naming target files, functions to create, or middleware to apply. Executor cannot determine what to build."
|
|
22
|
+
> affected_field: "<action>"
|
|
23
|
+
> suggested_fix: "Specify: create authMiddleware in src/middleware/auth.js, apply to routes in src/routes/api.js lines 12-45, verify with integration test"
|
|
24
|
+
> ```
|
|
25
|
+
|
|
26
|
+
**Why this is good:** The checker cited the specific dimension (D2: Task Completeness), quoted the problematic text, explained why it is a blocker (executor cannot determine what to build), and gave a concrete fix with file paths and function names. The finding is actionable -- the planner knows exactly what to add.
|
|
27
|
+
|
|
28
|
+
### Example 2: BLOCKER for same-wave file conflict between two plans
|
|
29
|
+
|
|
30
|
+
**Input:** Two plans in wave 1 -- Plan 01 modifies `plugins/pbr/scripts/post-write-dispatch.js`, Plan 02 also modifies `plugins/pbr/scripts/post-write-dispatch.js`. No `depends_on` declared.
|
|
31
|
+
|
|
32
|
+
**Output:**
|
|
33
|
+
|
|
34
|
+
> ```yaml
|
|
35
|
+
> issues:
|
|
36
|
+
> - dimension: D3
|
|
37
|
+
> severity: BLOCKER
|
|
38
|
+
> finding: "Plans 01 and 02 both modify plugins/pbr/scripts/post-write-dispatch.js in wave 1 with no depends_on relationship. Concurrent execution will cause merge conflicts or lost changes."
|
|
39
|
+
> affected_field: "files_modified"
|
|
40
|
+
> suggested_fix: "Either move Plan 02 to wave 2 with depends_on: ['01'] or consolidate the file changes into a single plan"
|
|
41
|
+
> ```
|
|
42
|
+
|
|
43
|
+
**Why this is good:** The checker identified a real structural problem -- two plans modifying the same file in the same wave without a dependency relationship. It cited D3 (Dependency Correctness), named both plans, the conflicting file, and provided two alternative fixes.
|
|
44
|
+
|
|
45
|
+
## Negative Examples
|
|
46
|
+
|
|
47
|
+
### Example 1: All dimensions pass when verify commands are missing
|
|
48
|
+
|
|
49
|
+
**Input:** Plan with 3 tasks. Task T2 has `<verify></verify>` (empty). Task T3 has `<verify>echo "done"</verify>` (trivial, cannot distinguish pass from fail).
|
|
50
|
+
|
|
51
|
+
**Output:**
|
|
52
|
+
|
|
53
|
+
> ## CHECK PASSED
|
|
54
|
+
> Plans: 1 | Tasks: 3 | Dimensions: 10 | Issues: 0
|
|
55
|
+
|
|
56
|
+
**Why this is bad:** The checker missed two violations. D6 (Must-Haves Derivation) requires verify commands to be runnable and test actual output -- an empty verify block is a BLOCKER. D8 (Nyquist Compliance) requires verify to distinguish pass from fail -- `echo "done"` always returns 0 regardless of implementation state. Both should have been flagged.
|
|
57
|
+
|
|
58
|
+
### Example 2: False positive INFO for a correctly-sized plan
|
|
59
|
+
|
|
60
|
+
**Input:** Plan with 3 tasks, 6 unique files, 1 dependency. All within limits.
|
|
61
|
+
|
|
62
|
+
**Output:**
|
|
63
|
+
|
|
64
|
+
> ```yaml
|
|
65
|
+
> issues:
|
|
66
|
+
> - dimension: D5
|
|
67
|
+
> severity: INFO
|
|
68
|
+
> finding: "Plan has 3 tasks -- consider splitting into smaller plans for faster iteration"
|
|
69
|
+
> affected_field: "task count"
|
|
70
|
+
> suggested_fix: "Split tasks into separate plans"
|
|
71
|
+
> ```
|
|
72
|
+
|
|
73
|
+
**Why this is bad:** The checker flagged a non-issue. D5 (Scope Sanity) allows 2-3 tasks per plan -- 3 tasks is within limits. The checker applied a personal preference ("smaller is better") rather than the documented threshold. This wastes planner time on false positives and erodes trust in the checker's judgment. A correct check would produce no issue for this plan.
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
component: ui-checker
|
|
3
|
+
version: 1
|
|
4
|
+
last_calibrated: 2026-03-24
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# UI-Checker Few-Shot Examples
|
|
8
|
+
|
|
9
|
+
## Positive Examples
|
|
10
|
+
|
|
11
|
+
### Example 1: Interactive flow bug found through actual button click testing
|
|
12
|
+
|
|
13
|
+
**Input:** UI-SPEC.md requires "Refresh button updates phase data without full page reload." Dashboard running at localhost:3141.
|
|
14
|
+
|
|
15
|
+
**Output:**
|
|
16
|
+
|
|
17
|
+
> **Dimension: Experience**
|
|
18
|
+
> Score: 2 (Partial)
|
|
19
|
+
> Evidence: Navigated to `localhost:3141` via `mcp__claude-in-chrome__navigate`. Clicked "Refresh" button in the phase list header using `mcp__claude-in-chrome__computer` (coordinates: 845, 62). Page performed a full browser reload (URL bar showed loading indicator, all components re-mounted). Verified via `mcp__claude-in-chrome__read_page` -- the entire DOM tree was replaced, not just the phase data section.
|
|
20
|
+
> Code reference: `dashboard/src/components/PhaseList.jsx` line 34: `onClick={() => window.location.reload()}` -- uses `window.location.reload()` instead of calling the data fetch function.
|
|
21
|
+
> Spec violation: UI-SPEC.md section 4.2 states "Refresh must use targeted API call to update data in-place without unmounting components."
|
|
22
|
+
> Suggestion: Replace `window.location.reload()` with `fetchPhaseData()` call (already defined at line 18 in the same component).
|
|
23
|
+
|
|
24
|
+
**Why this is good:** The checker actually interacted with the running application, observed the behavior (full page reload vs targeted update), traced the cause to a specific line of code, and cited the exact spec section being violated. The fix is concrete -- replace one function call with another that already exists in the same file.
|
|
25
|
+
|
|
26
|
+
### Example 2: Accessibility gap with specific affected components listed
|
|
27
|
+
|
|
28
|
+
**Input:** UI-SPEC.md requires "All form inputs must have associated labels or aria-label attributes." Dashboard settings page at localhost:3141/settings.
|
|
29
|
+
|
|
30
|
+
**Output:**
|
|
31
|
+
|
|
32
|
+
> **Dimension: Experience**
|
|
33
|
+
> Score: 2 (Partial)
|
|
34
|
+
> Evidence: Used `mcp__claude-in-chrome__read_page` on `/settings`. Found 4 form inputs missing `aria-label` or associated `<label>` elements:
|
|
35
|
+
> 1. `dashboard/src/components/Settings.jsx` line 45: `<input type="text" placeholder="Port number" />` -- no aria-label, no htmlFor label
|
|
36
|
+
> 2. `dashboard/src/components/Settings.jsx` line 52: `<input type="text" placeholder="Planning directory" />` -- same issue
|
|
37
|
+
> 3. `dashboard/src/components/Settings.jsx` line 67: `<select>` for depth profile -- no aria-label
|
|
38
|
+
> 4. `dashboard/src/components/ConfigEditor.jsx` line 23: `<textarea>` for JSON config -- no aria-label
|
|
39
|
+
> Verified with `mcp__claude-in-chrome__get_page_text` -- screen reader would announce these as unlabeled inputs.
|
|
40
|
+
> Spec violation: UI-SPEC.md section 6.1 accessibility requirements.
|
|
41
|
+
> Suggestion: Add `aria-label` attributes: `aria-label="Server port"`, `aria-label="Planning directory path"`, `aria-label="Depth profile selector"`, `aria-label="Configuration JSON editor"`.
|
|
42
|
+
|
|
43
|
+
**Why this is good:** The checker enumerated every affected component with file paths and line numbers, checked both HTML attributes and the rendered DOM, cited the specific spec section, and provided concrete aria-label values for each input rather than a generic "add labels" recommendation.
|
|
44
|
+
|
|
45
|
+
## Negative Examples
|
|
46
|
+
|
|
47
|
+
### Example 1: Landing page only checked with no interactive flow testing
|
|
48
|
+
|
|
49
|
+
**Input:** UI-SPEC.md covers 6 pages with interactive forms, navigation, and data visualizations. Dashboard running at localhost:3141.
|
|
50
|
+
|
|
51
|
+
**Output:**
|
|
52
|
+
|
|
53
|
+
> **Overall Score: 3.5/4.0**
|
|
54
|
+
> All dimensions scored 3 or above. The dashboard looks clean and professional. Navigation bar is present. Color scheme matches the spec. Typography is consistent.
|
|
55
|
+
> Visual verification: Yes (viewed landing page)
|
|
56
|
+
> Recommendation: Minor spacing adjustments on the sidebar.
|
|
57
|
+
|
|
58
|
+
**Why this is bad:** The checker only viewed the landing page and scored 3.5 based on first impressions. No navigation to settings, phase detail, or milestone pages was performed. No button clicks, no form interactions, no responsive breakpoint checks. The spec covers 6 pages but only 1 was checked. "Looks clean and professional" is subjective assessment, not evidence-based scoring against spec criteria.
|
|
59
|
+
|
|
60
|
+
### Example 2: Passing score for a feature that returns 404
|
|
61
|
+
|
|
62
|
+
**Input:** UI-SPEC.md requires a "/milestones" page showing archived milestone data. Checker verifies route exists in router config.
|
|
63
|
+
|
|
64
|
+
**Output:**
|
|
65
|
+
|
|
66
|
+
> **Dimension: Experience**
|
|
67
|
+
> Score: 3 (Compliant)
|
|
68
|
+
> Evidence: `dashboard/src/App.jsx` line 28 contains `<Route path="/milestones" element={<MilestonePage />} />`. Route is correctly registered in the React Router configuration.
|
|
69
|
+
> All navigation spec requirements met.
|
|
70
|
+
|
|
71
|
+
**Why this is bad:** The checker verified the route exists in code but never navigated to `/milestones` to confirm it actually renders. If `MilestonePage` component throws an error, imports a missing module, or the page shows "No data" because the API endpoint is not connected, the route registration means nothing. The checker should have navigated to the URL and verified the page renders the expected content. A 404 or error page with a valid route config is still a broken feature.
|