@sienklogic/plan-build-run 2.0.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +56 -56
- package/CLAUDE.md +149 -149
- package/LICENSE +21 -21
- package/README.md +247 -247
- package/dashboard/bin/cli.js +25 -25
- package/dashboard/package.json +34 -34
- package/dashboard/public/css/layout.css +406 -406
- package/dashboard/public/css/status-colors.css +98 -98
- package/dashboard/public/js/htmx-title.js +5 -5
- package/dashboard/public/js/sidebar-toggle.js +20 -20
- package/dashboard/src/app.js +78 -78
- package/dashboard/src/middleware/errorHandler.js +52 -52
- package/dashboard/src/middleware/notFoundHandler.js +9 -9
- package/dashboard/src/repositories/planning.repository.js +128 -128
- package/dashboard/src/routes/events.routes.js +40 -40
- package/dashboard/src/routes/index.routes.js +31 -31
- package/dashboard/src/routes/pages.routes.js +245 -195
- package/dashboard/src/server.js +42 -42
- package/dashboard/src/services/dashboard.service.js +222 -222
- package/dashboard/src/services/phase.service.js +220 -167
- package/dashboard/src/services/project.service.js +57 -57
- package/dashboard/src/services/roadmap.service.js +171 -171
- package/dashboard/src/services/sse.service.js +58 -58
- package/dashboard/src/services/todo.service.js +254 -254
- package/dashboard/src/services/watcher.service.js +48 -48
- package/dashboard/src/views/coming-soon.ejs +11 -11
- package/dashboard/src/views/error.ejs +13 -13
- package/dashboard/src/views/index.ejs +5 -5
- package/dashboard/src/views/layout.ejs +1 -1
- package/dashboard/src/views/partials/dashboard-content.ejs +77 -77
- package/dashboard/src/views/partials/footer.ejs +3 -3
- package/dashboard/src/views/partials/head.ejs +21 -21
- package/dashboard/src/views/partials/header.ejs +12 -12
- package/dashboard/src/views/partials/layout-bottom.ejs +15 -15
- package/dashboard/src/views/partials/layout-top.ejs +8 -8
- package/dashboard/src/views/partials/phase-content.ejs +188 -181
- package/dashboard/src/views/partials/phase-doc-content.ejs +38 -0
- package/dashboard/src/views/partials/phases-content.ejs +117 -117
- package/dashboard/src/views/partials/roadmap-content.ejs +142 -142
- package/dashboard/src/views/partials/sidebar.ejs +38 -38
- package/dashboard/src/views/partials/todo-create-content.ejs +53 -53
- package/dashboard/src/views/partials/todo-detail-content.ejs +38 -38
- package/dashboard/src/views/partials/todos-content.ejs +53 -53
- package/dashboard/src/views/phase-detail.ejs +5 -5
- package/dashboard/src/views/phase-doc.ejs +5 -0
- package/dashboard/src/views/phases.ejs +5 -5
- package/dashboard/src/views/roadmap.ejs +5 -5
- package/dashboard/src/views/todo-create.ejs +5 -5
- package/dashboard/src/views/todo-detail.ejs +5 -5
- package/dashboard/src/views/todos.ejs +5 -5
- package/package.json +57 -57
- package/plugins/pbr/.claude-plugin/plugin.json +13 -13
- package/plugins/pbr/UI-CONSISTENCY-GAPS.md +61 -61
- package/plugins/pbr/agents/codebase-mapper.md +279 -271
- package/plugins/pbr/agents/debugger.md +281 -281
- package/plugins/pbr/agents/executor.md +428 -407
- package/plugins/pbr/agents/general.md +164 -164
- package/plugins/pbr/agents/integration-checker.md +169 -141
- package/plugins/pbr/agents/plan-checker.md +296 -280
- package/plugins/pbr/agents/planner.md +358 -358
- package/plugins/pbr/agents/researcher.md +363 -363
- package/plugins/pbr/agents/synthesizer.md +230 -230
- package/plugins/pbr/agents/verifier.md +489 -454
- package/plugins/pbr/commands/begin.md +5 -5
- package/plugins/pbr/commands/build.md +5 -5
- package/plugins/pbr/commands/config.md +5 -5
- package/plugins/pbr/commands/continue.md +5 -5
- package/plugins/pbr/commands/debug.md +5 -5
- package/plugins/pbr/commands/discuss.md +5 -5
- package/plugins/pbr/commands/explore.md +5 -5
- package/plugins/pbr/commands/health.md +5 -5
- package/plugins/pbr/commands/help.md +5 -5
- package/plugins/pbr/commands/import.md +5 -5
- package/plugins/pbr/commands/milestone.md +5 -5
- package/plugins/pbr/commands/note.md +5 -5
- package/plugins/pbr/commands/pause.md +5 -5
- package/plugins/pbr/commands/plan.md +5 -5
- package/plugins/pbr/commands/quick.md +5 -5
- package/plugins/pbr/commands/resume.md +5 -5
- package/plugins/pbr/commands/review.md +5 -5
- package/plugins/pbr/commands/scan.md +5 -5
- package/plugins/pbr/commands/setup.md +5 -5
- package/plugins/pbr/commands/status.md +5 -5
- package/plugins/pbr/commands/todo.md +5 -5
- package/plugins/pbr/contexts/dev.md +27 -27
- package/plugins/pbr/contexts/research.md +28 -28
- package/plugins/pbr/contexts/review.md +36 -36
- package/plugins/pbr/hooks/hooks.json +183 -183
- package/plugins/pbr/references/agent-anti-patterns.md +24 -24
- package/plugins/pbr/references/agent-interactions.md +134 -134
- package/plugins/pbr/references/agent-teams.md +54 -54
- package/plugins/pbr/references/checkpoints.md +157 -157
- package/plugins/pbr/references/common-bug-patterns.md +13 -13
- package/plugins/pbr/references/config-reference.md +441 -0
- package/plugins/pbr/references/continuation-format.md +212 -212
- package/plugins/pbr/references/deviation-rules.md +112 -112
- package/plugins/pbr/references/git-integration.md +226 -226
- package/plugins/pbr/references/integration-patterns.md +117 -117
- package/plugins/pbr/references/model-profiles.md +99 -99
- package/plugins/pbr/references/model-selection.md +31 -31
- package/plugins/pbr/references/pbr-rules.md +193 -193
- package/plugins/pbr/references/plan-authoring.md +181 -181
- package/plugins/pbr/references/plan-format.md +287 -283
- package/plugins/pbr/references/planning-config.md +213 -213
- package/plugins/pbr/references/questioning.md +214 -214
- package/plugins/pbr/references/reading-verification.md +127 -127
- package/plugins/pbr/references/stub-patterns.md +160 -160
- package/plugins/pbr/references/subagent-coordination.md +119 -119
- package/plugins/pbr/references/ui-formatting.md +461 -399
- package/plugins/pbr/references/verification-patterns.md +198 -198
- package/plugins/pbr/references/wave-execution.md +95 -95
- package/plugins/pbr/scripts/auto-continue.js +80 -80
- package/plugins/pbr/scripts/check-dangerous-commands.js +136 -136
- package/plugins/pbr/scripts/check-doc-sprawl.js +102 -102
- package/plugins/pbr/scripts/check-phase-boundary.js +196 -196
- package/plugins/pbr/scripts/check-plan-format.js +270 -270
- package/plugins/pbr/scripts/check-roadmap-sync.js +322 -252
- package/plugins/pbr/scripts/check-skill-workflow.js +262 -262
- package/plugins/pbr/scripts/check-state-sync.js +476 -476
- package/plugins/pbr/scripts/check-subagent-output.js +144 -144
- package/plugins/pbr/scripts/config-schema.json +251 -251
- package/plugins/pbr/scripts/context-budget-check.js +287 -287
- package/plugins/pbr/scripts/event-handler.js +151 -151
- package/plugins/pbr/scripts/event-logger.js +92 -92
- package/plugins/pbr/scripts/hook-logger.js +80 -76
- package/plugins/pbr/scripts/hooks-schema.json +79 -79
- package/plugins/pbr/scripts/log-subagent.js +164 -152
- package/plugins/pbr/scripts/log-tool-failure.js +88 -88
- package/plugins/pbr/scripts/pbr-tools.js +1378 -1301
- package/plugins/pbr/scripts/post-write-dispatch.js +66 -66
- package/plugins/pbr/scripts/post-write-quality.js +207 -207
- package/plugins/pbr/scripts/pre-bash-dispatch.js +86 -56
- package/plugins/pbr/scripts/pre-write-dispatch.js +97 -62
- package/plugins/pbr/scripts/progress-tracker.js +281 -228
- package/plugins/pbr/scripts/run-hook.js +92 -0
- package/plugins/pbr/scripts/session-cleanup.js +254 -254
- package/plugins/pbr/scripts/status-line.js +288 -285
- package/plugins/pbr/scripts/suggest-compact.js +119 -119
- package/plugins/pbr/scripts/task-completed.js +45 -45
- package/plugins/pbr/scripts/track-context-budget.js +149 -119
- package/plugins/pbr/scripts/validate-commit.js +200 -200
- package/plugins/pbr/scripts/validate-plugin-structure.js +183 -172
- package/plugins/pbr/scripts/validate-task.js +106 -0
- package/plugins/pbr/skills/begin/SKILL.md +594 -545
- package/plugins/pbr/skills/begin/templates/PROJECT.md.tmpl +33 -33
- package/plugins/pbr/skills/begin/templates/REQUIREMENTS.md.tmpl +18 -18
- package/plugins/pbr/skills/begin/templates/STATE.md.tmpl +49 -49
- package/plugins/pbr/skills/begin/templates/config.json.tmpl +64 -63
- package/plugins/pbr/skills/begin/templates/researcher-prompt.md.tmpl +19 -19
- package/plugins/pbr/skills/begin/templates/roadmap-prompt.md.tmpl +30 -30
- package/plugins/pbr/skills/begin/templates/synthesis-prompt.md.tmpl +16 -16
- package/plugins/pbr/skills/build/SKILL.md +943 -962
- package/plugins/pbr/skills/config/SKILL.md +256 -241
- package/plugins/pbr/skills/continue/SKILL.md +164 -127
- package/plugins/pbr/skills/debug/SKILL.md +515 -489
- package/plugins/pbr/skills/debug/templates/continuation-prompt.md.tmpl +16 -16
- package/plugins/pbr/skills/debug/templates/initial-investigation-prompt.md.tmpl +27 -27
- package/plugins/pbr/skills/discuss/SKILL.md +347 -338
- package/plugins/pbr/skills/discuss/templates/CONTEXT.md.tmpl +61 -61
- package/plugins/pbr/skills/discuss/templates/decision-categories.md +9 -9
- package/plugins/pbr/skills/explore/SKILL.md +378 -362
- package/plugins/pbr/skills/health/SKILL.md +221 -186
- package/plugins/pbr/skills/health/templates/check-pattern.md.tmpl +30 -30
- package/plugins/pbr/skills/health/templates/output-format.md.tmpl +63 -63
- package/plugins/pbr/skills/help/SKILL.md +155 -140
- package/plugins/pbr/skills/import/SKILL.md +504 -490
- package/plugins/pbr/skills/milestone/SKILL.md +704 -673
- package/plugins/pbr/skills/milestone/templates/audit-report.md.tmpl +48 -48
- package/plugins/pbr/skills/milestone/templates/stats-file.md.tmpl +30 -30
- package/plugins/pbr/skills/note/SKILL.md +231 -212
- package/plugins/pbr/skills/pause/SKILL.md +249 -235
- package/plugins/pbr/skills/pause/templates/continue-here.md.tmpl +71 -71
- package/plugins/pbr/skills/plan/SKILL.md +685 -628
- package/plugins/pbr/skills/plan/decimal-phase-calc.md +98 -98
- package/plugins/pbr/skills/plan/templates/checker-prompt.md.tmpl +21 -21
- package/plugins/pbr/skills/plan/templates/gap-closure-prompt.md.tmpl +32 -32
- package/plugins/pbr/skills/plan/templates/planner-prompt.md.tmpl +38 -38
- package/plugins/pbr/skills/plan/templates/researcher-prompt.md.tmpl +19 -19
- package/plugins/pbr/skills/plan/templates/revision-prompt.md.tmpl +23 -23
- package/plugins/pbr/skills/quick/SKILL.md +354 -335
- package/plugins/pbr/skills/resume/SKILL.md +402 -388
- package/plugins/pbr/skills/review/SKILL.md +686 -652
- package/plugins/pbr/skills/review/templates/debugger-prompt.md.tmpl +60 -60
- package/plugins/pbr/skills/review/templates/gap-planner-prompt.md.tmpl +40 -40
- package/plugins/pbr/skills/review/templates/verifier-prompt.md.tmpl +115 -115
- package/plugins/pbr/skills/scan/SKILL.md +304 -269
- package/plugins/pbr/skills/scan/templates/mapper-prompt.md.tmpl +201 -201
- package/plugins/pbr/skills/setup/SKILL.md +253 -227
- package/plugins/pbr/skills/shared/commit-planning-docs.md +35 -35
- package/plugins/pbr/skills/shared/config-loading.md +102 -102
- package/plugins/pbr/skills/shared/context-budget.md +40 -40
- package/plugins/pbr/skills/shared/context-loader-task.md +86 -86
- package/plugins/pbr/skills/shared/digest-select.md +79 -79
- package/plugins/pbr/skills/shared/domain-probes.md +125 -125
- package/plugins/pbr/skills/shared/error-reporting.md +79 -79
- package/plugins/pbr/skills/shared/gate-prompts.md +388 -388
- package/plugins/pbr/skills/shared/phase-argument-parsing.md +45 -45
- package/plugins/pbr/skills/shared/progress-display.md +53 -53
- package/plugins/pbr/skills/shared/revision-loop.md +81 -81
- package/plugins/pbr/skills/shared/state-loading.md +62 -62
- package/plugins/pbr/skills/shared/state-update.md +161 -161
- package/plugins/pbr/skills/shared/universal-anti-patterns.md +33 -33
- package/plugins/pbr/skills/status/SKILL.md +367 -353
- package/plugins/pbr/skills/todo/SKILL.md +198 -181
- package/plugins/pbr/templates/CONTEXT.md.tmpl +52 -52
- package/plugins/pbr/templates/INTEGRATION-REPORT.md.tmpl +151 -151
- package/plugins/pbr/templates/RESEARCH-SUMMARY.md.tmpl +97 -97
- package/plugins/pbr/templates/ROADMAP.md.tmpl +40 -40
- package/plugins/pbr/templates/SUMMARY.md.tmpl +81 -81
- package/plugins/pbr/templates/VERIFICATION-DETAIL.md.tmpl +116 -116
- package/plugins/pbr/templates/codebase/ARCHITECTURE.md.tmpl +98 -98
- package/plugins/pbr/templates/codebase/CONCERNS.md.tmpl +93 -93
- package/plugins/pbr/templates/codebase/CONVENTIONS.md.tmpl +104 -104
- package/plugins/pbr/templates/codebase/INTEGRATIONS.md.tmpl +78 -78
- package/plugins/pbr/templates/codebase/STACK.md.tmpl +78 -78
- package/plugins/pbr/templates/codebase/STRUCTURE.md.tmpl +80 -80
- package/plugins/pbr/templates/codebase/TESTING.md.tmpl +107 -107
- package/plugins/pbr/templates/continue-here.md.tmpl +73 -73
- package/plugins/pbr/templates/prompt-partials/phase-project-context.md.tmpl +37 -37
- package/plugins/pbr/templates/research/ARCHITECTURE.md.tmpl +124 -124
- package/plugins/pbr/templates/research/STACK.md.tmpl +71 -71
- package/plugins/pbr/templates/research/SUMMARY.md.tmpl +112 -112
- package/plugins/pbr/templates/research-outputs/phase-research.md.tmpl +81 -81
- package/plugins/pbr/templates/research-outputs/project-research.md.tmpl +99 -99
- package/plugins/pbr/templates/research-outputs/synthesis.md.tmpl +36 -36
|
@@ -1,186 +1,221 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: health
|
|
3
|
-
description: "Check planning directory integrity. Find and fix corrupted state."
|
|
4
|
-
allowed-tools: Read, Bash, Glob, Grep
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
-
|
|
110
|
-
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
───────────────────────────────────────────────────────────────
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
1
|
+
---
|
|
2
|
+
name: health
|
|
3
|
+
description: "Check planning directory integrity. Find and fix corrupted state."
|
|
4
|
+
allowed-tools: Read, Bash, Glob, Grep
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
**STOP — DO NOT READ THIS FILE. You are already reading it. This prompt was injected into your context by Claude Code's plugin system. Using the Read tool on this SKILL.md file wastes ~7,600 tokens. Begin executing Step 1 immediately.**
|
|
8
|
+
|
|
9
|
+
## Step 0 — Immediate Output
|
|
10
|
+
|
|
11
|
+
**Before ANY tool calls**, display this banner:
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
15
|
+
PLAN-BUILD-RUN ► HEALTH CHECK
|
|
16
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Then proceed to Step 1.
|
|
20
|
+
|
|
21
|
+
# /pbr:health — Planning Directory Diagnostics
|
|
22
|
+
|
|
23
|
+
You are running the **health** skill. Your job is to validate the integrity of the `.planning/` directory, report problems, and suggest targeted fixes. You never auto-repair anything.
|
|
24
|
+
|
|
25
|
+
This skill runs **inline** and is **read-only** — it never modifies any files.
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## How Checks Work
|
|
30
|
+
|
|
31
|
+
Each check follows the common pattern. Read `skills/health/templates/check-pattern.md.tmpl` for the shared execution flow: target files, validate against rules, classify as PASS/FAIL/WARN/INFO, and record the result with a fix suggestion for any failures.
|
|
32
|
+
|
|
33
|
+
Read `skills/health/templates/output-format.md.tmpl` for the output format: summary table, status indicators, issues list, optional recent decisions, and final result line.
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Checks
|
|
38
|
+
|
|
39
|
+
Run all 10 checks in order. Collect results and present them together at the end.
|
|
40
|
+
|
|
41
|
+
### Check 1: Structure
|
|
42
|
+
|
|
43
|
+
Validate `.planning/` exists with required scaffolding: `STATE.md`, `config.json`, `ROADMAP.md`.
|
|
44
|
+
|
|
45
|
+
- If `.planning/` is missing: FAIL the entire health check immediately. Display:
|
|
46
|
+
```
|
|
47
|
+
╔══════════════════════════════════════════════════════════════╗
|
|
48
|
+
║ ERROR ║
|
|
49
|
+
╚══════════════════════════════════════════════════════════════╝
|
|
50
|
+
|
|
51
|
+
No .planning/ directory found.
|
|
52
|
+
|
|
53
|
+
**To fix:** Run `/pbr:begin` to initialize.
|
|
54
|
+
```
|
|
55
|
+
Stop all further checks.
|
|
56
|
+
- PASS: All three required files exist
|
|
57
|
+
- FAIL: List each missing file — "Run `/pbr:begin` to re-initialize, or create the file manually."
|
|
58
|
+
|
|
59
|
+
### Check 2: Config Validity
|
|
60
|
+
|
|
61
|
+
Parse `.planning/config.json` as JSON. Check required fields: `version`, `depth`. Check recommended fields: `features`, `models`.
|
|
62
|
+
|
|
63
|
+
- PASS: Valid JSON with all required fields
|
|
64
|
+
- FAIL (parse error): Report the parse error message — "Open the file and correct the syntax."
|
|
65
|
+
- FAIL (missing required field): Report which field — "Add the field to config.json."
|
|
66
|
+
- WARN (missing recommended field): Report which field — "This may cause issues with some skills."
|
|
67
|
+
|
|
68
|
+
### Check 3: Phase Consistency
|
|
69
|
+
|
|
70
|
+
Compare directories in `.planning/phases/` against phases defined in `ROADMAP.md`.
|
|
71
|
+
|
|
72
|
+
- PASS: Every directory matches a ROADMAP.md phase; no started phases are missing directories
|
|
73
|
+
- FAIL (orphan directory): Directory exists but not in ROADMAP.md — "Add to ROADMAP.md or remove the directory."
|
|
74
|
+
- FAIL (missing directory): ROADMAP.md lists phase as in-progress but directory missing — "Create the directory or update ROADMAP.md."
|
|
75
|
+
- Note: Future phases without directories are normal (not a failure).
|
|
76
|
+
|
|
77
|
+
### Check 4: Plan/Summary Pairing
|
|
78
|
+
|
|
79
|
+
Glob all `PLAN*.md` and `SUMMARY*.md` in `.planning/phases/`. Match by plan number. A PLAN without SUMMARY is normal unless the phase is marked complete.
|
|
80
|
+
|
|
81
|
+
- PASS: All pairings valid, no orphaned summaries
|
|
82
|
+
- FAIL (orphaned summary): SUMMARY has no matching PLAN — "Verify and remove or re-pair."
|
|
83
|
+
- WARN (missing summary in complete phase): Phase marked complete but plan has no SUMMARY — "Execute with `/pbr:build` or mark phase incomplete."
|
|
84
|
+
|
|
85
|
+
### Check 5: STATE.md Accuracy
|
|
86
|
+
|
|
87
|
+
Extract current phase, plan identifier, and progress percentage from `STATE.md`. Verify each against the file system.
|
|
88
|
+
|
|
89
|
+
- PASS: All STATE.md references match the file system
|
|
90
|
+
- FAIL (stale phase): Referenced phase directory does not exist — "Update STATE.md to reflect the actual current phase."
|
|
91
|
+
- FAIL (stale plan): Referenced plan file does not exist — "Update STATE.md to the correct current plan."
|
|
92
|
+
- FAIL (wrong progress): Stated progress does not match actual plan/summary counts — "Update the progress in STATE.md."
|
|
93
|
+
- WARN (no position): No current phase or plan specified — "Fine for new projects but may indicate lost state."
|
|
94
|
+
|
|
95
|
+
### Check 6: Frontmatter Validity
|
|
96
|
+
|
|
97
|
+
Glob all `PLAN*.md` and `SUMMARY*.md` in `.planning/phases/`. Each file must start with `---`, have a closing `---`, contain valid YAML, and include required fields: `title`, `status`.
|
|
98
|
+
|
|
99
|
+
- PASS: All files have valid frontmatter with required fields
|
|
100
|
+
- FAIL (no frontmatter): "Add frontmatter block starting with `---` at the top of the file."
|
|
101
|
+
- FAIL (malformed): Report the YAML error — "Correct the YAML syntax between the `---` delimiters."
|
|
102
|
+
- FAIL (missing field): Report which field — "Add `{field}: {suggested value}` to the frontmatter."
|
|
103
|
+
|
|
104
|
+
### Check 7: ROADMAP/STATE Sync
|
|
105
|
+
|
|
106
|
+
Compare ROADMAP.md phase statuses against STATE.md current position. Flag if ROADMAP says a phase is "verified" but STATE says it is "building", or if phases after current are marked complete.
|
|
107
|
+
|
|
108
|
+
- PASS: ROADMAP and STATE are consistent
|
|
109
|
+
- FAIL (mismatch): Report both statuses — "Update STATE.md to match ROADMAP.md, or vice versa."
|
|
110
|
+
- WARN (drift): Current phase in STATE.md is behind phases marked complete in ROADMAP.md.
|
|
111
|
+
|
|
112
|
+
### Check 8: Hook Execution Log
|
|
113
|
+
|
|
114
|
+
Check if `.planning/logs/hooks.jsonl` exists. Also check the legacy path `.planning/.hook-log` (the logger migrates this automatically, but it may still exist if hooks haven't fired since the migration was added). Use whichever file exists (prefer `hooks.jsonl`). If found, scan last 20 entries for `decision: "error"` or `decision: "unlink-failed"`.
|
|
115
|
+
|
|
116
|
+
- PASS: Log exists with no recent errors
|
|
117
|
+
- WARN (errors found): Report error count and most recent error description — "Hooks may not be firing correctly."
|
|
118
|
+
- INFO (no log): "No hook log found. Normal if no hooks have fired yet."
|
|
119
|
+
|
|
120
|
+
### Check 9: Config Completeness
|
|
121
|
+
|
|
122
|
+
Read `.planning/config.json` and check for fields referenced by skills:
|
|
123
|
+
- `features.auto_continue` (build skill, auto-continue.js hook)
|
|
124
|
+
- `features.team_discussions` (config skill)
|
|
125
|
+
- `features.goal_verification` (build, review skills)
|
|
126
|
+
- `features.integration_verification` (review skill)
|
|
127
|
+
- `git.mode` (config skill)
|
|
128
|
+
- `planning.commit_docs` (import, discuss, quick skills) — must be a boolean; validate that the value is strictly `true` or `false`, not a string or number
|
|
129
|
+
|
|
130
|
+
- PASS: All expected fields present with correct types
|
|
131
|
+
- WARN (missing fields): Report each missing field and which skill uses it — "Run `/pbr:config` to set all options."
|
|
132
|
+
|
|
133
|
+
### Check 10: Orphaned Crash Recovery Files
|
|
134
|
+
|
|
135
|
+
The executor creates `.PROGRESS-{plan_id}` files as crash recovery breadcrumbs during builds and deletes them after `SUMMARY.md` is written. Similarly, `.checkpoint-manifest.json` files track checkpoint state during execution. If the executor crashes mid-build, these files remain and could confuse future runs.
|
|
136
|
+
|
|
137
|
+
Glob for `.planning/phases/**/.PROGRESS-*` and `.planning/phases/**/.checkpoint-manifest.json`.
|
|
138
|
+
|
|
139
|
+
- PASS: No orphaned files found
|
|
140
|
+
- WARN (orphaned progress files): List each file with its parent phase directory:
|
|
141
|
+
```
|
|
142
|
+
Orphaned progress files detected:
|
|
143
|
+
- .planning/phases/02-auth/.PROGRESS-02-01 (executor may have crashed)
|
|
144
|
+
```
|
|
145
|
+
Fix suggestion: "These are crash recovery breadcrumbs from interrupted builds. Safe to delete if no `/pbr:build` is currently running. Remove with `rm <path>`."
|
|
146
|
+
- WARN (orphaned checkpoint manifests): List each file:
|
|
147
|
+
```
|
|
148
|
+
Orphaned checkpoint manifests detected:
|
|
149
|
+
- .planning/phases/02-auth/.checkpoint-manifest.json (stale build checkpoint)
|
|
150
|
+
```
|
|
151
|
+
Fix suggestion: "Checkpoint manifests are leftover from interrupted builds. Safe to delete if no `/pbr:build` is currently running. Remove with `rm <path>`."
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## Bonus: Recent Decisions
|
|
156
|
+
|
|
157
|
+
After all checks, look for `.planning/logs/decisions.jsonl`. If it exists, display the last 5 entries as `- {date}: {summary} (phase {N})`. If it does not exist, skip silently.
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## Completion
|
|
162
|
+
|
|
163
|
+
After all checks complete, display the branded result:
|
|
164
|
+
|
|
165
|
+
**If all checks passed (0 failures):**
|
|
166
|
+
```
|
|
167
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
168
|
+
PLAN-BUILD-RUN ► HEALTH CHECK PASSED ✓
|
|
169
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
170
|
+
|
|
171
|
+
{N} checks passed, {M} warnings
|
|
172
|
+
|
|
173
|
+
───────────────────────────────────────────────────────────────
|
|
174
|
+
|
|
175
|
+
## ▶ Next Up
|
|
176
|
+
|
|
177
|
+
**Continue your workflow** — planning directory is healthy
|
|
178
|
+
|
|
179
|
+
`/pbr:status`
|
|
180
|
+
|
|
181
|
+
<sub>`/clear` first → fresh context window</sub>
|
|
182
|
+
|
|
183
|
+
───────────────────────────────────────────────────────────────
|
|
184
|
+
|
|
185
|
+
**Also available:**
|
|
186
|
+
- `/pbr:continue` — execute next logical step
|
|
187
|
+
- `/pbr:config` — adjust settings
|
|
188
|
+
|
|
189
|
+
───────────────────────────────────────────────────────────────
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
**If failures found:**
|
|
193
|
+
```
|
|
194
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
195
|
+
PLAN-BUILD-RUN ► HEALTH CHECK FAILED ⚠
|
|
196
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
197
|
+
|
|
198
|
+
{N} checks passed, {F} failures, {M} warnings
|
|
199
|
+
|
|
200
|
+
───────────────────────────────────────────────────────────────
|
|
201
|
+
|
|
202
|
+
## ▶ Next Up
|
|
203
|
+
|
|
204
|
+
**Fix the failures** listed above, then re-run
|
|
205
|
+
|
|
206
|
+
`/pbr:health`
|
|
207
|
+
|
|
208
|
+
───────────────────────────────────────────────────────────────
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
---
|
|
212
|
+
|
|
213
|
+
## Anti-Patterns
|
|
214
|
+
|
|
215
|
+
1. **DO NOT** modify any files — this is strictly read-only
|
|
216
|
+
2. **DO NOT** auto-repair anything — present fixes and let the user decide
|
|
217
|
+
3. **DO NOT** skip checks that depend on missing files — report the dependency failure and continue
|
|
218
|
+
4. **DO NOT** treat warnings as failures in the summary count — only count FAIL items
|
|
219
|
+
5. **DO NOT** read full plan/summary contents — frontmatter and existence checks are sufficient
|
|
220
|
+
6. **DO NOT** fail silently — every check must produce an explicit PASS, WARN, or FAIL
|
|
221
|
+
7. **DO NOT** suggest running destructive commands — fixes should be safe, targeted edits
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
# Health Check Execution Pattern
|
|
2
|
-
|
|
3
|
-
Each of the 9 checks follows this common pattern. The check-specific details (what to read, what to validate, what constitutes PASS/FAIL) are defined in SKILL.md — this template describes only the shared execution flow.
|
|
4
|
-
|
|
5
|
-
## Pattern
|
|
6
|
-
|
|
7
|
-
```
|
|
8
|
-
For check {check_number} ({check_name}):
|
|
9
|
-
|
|
10
|
-
1. READ — Read the target file(s): {target_files}
|
|
11
|
-
2. VALIDATE — Apply the check-specific rules: {validation_rules}
|
|
12
|
-
3. CLASSIFY — Determine result:
|
|
13
|
-
- PASS: Validation succeeded, no issues found
|
|
14
|
-
- FAIL: A required condition is violated (counts toward issue total)
|
|
15
|
-
- WARN: A recommended condition is violated (does NOT count toward issue total)
|
|
16
|
-
- INFO: Informational note, not a problem
|
|
17
|
-
4. RECORD — Store the result with:
|
|
18
|
-
- Status: [PASS], [FAIL], [WARN], or [INFO]
|
|
19
|
-
- Check name (short label)
|
|
20
|
-
- One-line summary of finding
|
|
21
|
-
- For FAIL/WARN: the specific file, the problem, and a concrete fix suggestion
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
## Rules
|
|
25
|
-
|
|
26
|
-
- Every check MUST produce exactly one status line (PASS, FAIL, WARN, or INFO)
|
|
27
|
-
- FAIL results MUST include: file path, problem description, and fix suggestion
|
|
28
|
-
- Multiple failures within a single check produce multiple entries in the "Issues Found" section
|
|
29
|
-
- Checks never auto-repair — they report only
|
|
30
|
-
- If a check depends on a prior check's file (e.g., Check 2 needs config.json which Check 1 validates exists), and that file is missing, report the dependency failure and move on
|
|
1
|
+
# Health Check Execution Pattern
|
|
2
|
+
|
|
3
|
+
Each of the 9 checks follows this common pattern. The check-specific details (what to read, what to validate, what constitutes PASS/FAIL) are defined in SKILL.md — this template describes only the shared execution flow.
|
|
4
|
+
|
|
5
|
+
## Pattern
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
For check {check_number} ({check_name}):
|
|
9
|
+
|
|
10
|
+
1. READ — Read the target file(s): {target_files}
|
|
11
|
+
2. VALIDATE — Apply the check-specific rules: {validation_rules}
|
|
12
|
+
3. CLASSIFY — Determine result:
|
|
13
|
+
- PASS: Validation succeeded, no issues found
|
|
14
|
+
- FAIL: A required condition is violated (counts toward issue total)
|
|
15
|
+
- WARN: A recommended condition is violated (does NOT count toward issue total)
|
|
16
|
+
- INFO: Informational note, not a problem
|
|
17
|
+
4. RECORD — Store the result with:
|
|
18
|
+
- Status: [PASS], [FAIL], [WARN], or [INFO]
|
|
19
|
+
- Check name (short label)
|
|
20
|
+
- One-line summary of finding
|
|
21
|
+
- For FAIL/WARN: the specific file, the problem, and a concrete fix suggestion
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Rules
|
|
25
|
+
|
|
26
|
+
- Every check MUST produce exactly one status line (PASS, FAIL, WARN, or INFO)
|
|
27
|
+
- FAIL results MUST include: file path, problem description, and fix suggestion
|
|
28
|
+
- Multiple failures within a single check produce multiple entries in the "Issues Found" section
|
|
29
|
+
- Checks never auto-repair — they report only
|
|
30
|
+
- If a check depends on a prior check's file (e.g., Check 2 needs config.json which Check 1 validates exists), and that file is missing, report the dependency failure and move on
|
|
@@ -1,63 +1,63 @@
|
|
|
1
|
-
# Health Check Output Format
|
|
2
|
-
|
|
3
|
-
Present results as a single report after all checks complete.
|
|
4
|
-
|
|
5
|
-
## Summary Table
|
|
6
|
-
|
|
7
|
-
```
|
|
8
|
-
Planning Health Check
|
|
9
|
-
=====================
|
|
10
|
-
|
|
11
|
-
[PASS] Structure .planning/ exists, all required files present
|
|
12
|
-
[FAIL] Config config.json missing required field `
|
|
13
|
-
[PASS] Phase consistency Directories match ROADMAP.md phases
|
|
14
|
-
[PASS] Plan/Summary All pairings valid
|
|
15
|
-
[FAIL] STATE.md accuracy Phase reference is stale
|
|
16
|
-
[PASS] Frontmatter All PLAN/SUMMARY files have valid frontmatter
|
|
17
|
-
[PASS] ROADMAP/STATE sync ROADMAP and STATE phase statuses are consistent
|
|
18
|
-
[PASS] Hook log No recent hook errors
|
|
19
|
-
[PASS] Config completeness All expected fields present
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
## Status Indicators
|
|
23
|
-
|
|
24
|
-
| Indicator | Meaning | Counts as Issue? |
|
|
25
|
-
|-----------|---------|-----------------|
|
|
26
|
-
| `[PASS]` | Check passed, no problems | No |
|
|
27
|
-
| `[FAIL]` | Required condition violated | **Yes** |
|
|
28
|
-
| `[WARN]` | Recommended condition violated | No |
|
|
29
|
-
| `[INFO]` | Informational note | No |
|
|
30
|
-
|
|
31
|
-
## Issues Section
|
|
32
|
-
|
|
33
|
-
Only shown when at least one FAIL exists:
|
|
34
|
-
|
|
35
|
-
```
|
|
36
|
-
Issues Found: {count}
|
|
37
|
-
---------------
|
|
38
|
-
|
|
39
|
-
1. {problem description}
|
|
40
|
-
File: {file path}
|
|
41
|
-
Fix: {concrete fix suggestion}
|
|
42
|
-
|
|
43
|
-
2. {problem description}
|
|
44
|
-
File: {file path}
|
|
45
|
-
Fix: {concrete fix suggestion}
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
## Recent Decisions (Bonus)
|
|
49
|
-
|
|
50
|
-
If `.planning/logs/decisions.jsonl` exists, show the last 5 entries:
|
|
51
|
-
|
|
52
|
-
```
|
|
53
|
-
Recent Decisions:
|
|
54
|
-
- {date}: {summary} (phase {N})
|
|
55
|
-
- {date}: {summary} (phase {N})
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
If the file does not exist, skip silently.
|
|
59
|
-
|
|
60
|
-
## Final Line
|
|
61
|
-
|
|
62
|
-
- With issues: `Result: {N} issues found. Review and apply fixes manually.`
|
|
63
|
-
- All passed: `Result: All checks passed. Planning directory is healthy.`
|
|
1
|
+
# Health Check Output Format
|
|
2
|
+
|
|
3
|
+
Present results as a single report after all checks complete.
|
|
4
|
+
|
|
5
|
+
## Summary Table
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
Planning Health Check
|
|
9
|
+
=====================
|
|
10
|
+
|
|
11
|
+
[PASS] Structure .planning/ exists, all required files present
|
|
12
|
+
[FAIL] Config config.json missing required field `depth`
|
|
13
|
+
[PASS] Phase consistency Directories match ROADMAP.md phases
|
|
14
|
+
[PASS] Plan/Summary All pairings valid
|
|
15
|
+
[FAIL] STATE.md accuracy Phase reference is stale
|
|
16
|
+
[PASS] Frontmatter All PLAN/SUMMARY files have valid frontmatter
|
|
17
|
+
[PASS] ROADMAP/STATE sync ROADMAP and STATE phase statuses are consistent
|
|
18
|
+
[PASS] Hook log No recent hook errors
|
|
19
|
+
[PASS] Config completeness All expected fields present
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Status Indicators
|
|
23
|
+
|
|
24
|
+
| Indicator | Meaning | Counts as Issue? |
|
|
25
|
+
|-----------|---------|-----------------|
|
|
26
|
+
| `[PASS]` | Check passed, no problems | No |
|
|
27
|
+
| `[FAIL]` | Required condition violated | **Yes** |
|
|
28
|
+
| `[WARN]` | Recommended condition violated | No |
|
|
29
|
+
| `[INFO]` | Informational note | No |
|
|
30
|
+
|
|
31
|
+
## Issues Section
|
|
32
|
+
|
|
33
|
+
Only shown when at least one FAIL exists:
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
Issues Found: {count}
|
|
37
|
+
---------------
|
|
38
|
+
|
|
39
|
+
1. {problem description}
|
|
40
|
+
File: {file path}
|
|
41
|
+
Fix: {concrete fix suggestion}
|
|
42
|
+
|
|
43
|
+
2. {problem description}
|
|
44
|
+
File: {file path}
|
|
45
|
+
Fix: {concrete fix suggestion}
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Recent Decisions (Bonus)
|
|
49
|
+
|
|
50
|
+
If `.planning/logs/decisions.jsonl` exists, show the last 5 entries:
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
Recent Decisions:
|
|
54
|
+
- {date}: {summary} (phase {N})
|
|
55
|
+
- {date}: {summary} (phase {N})
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
If the file does not exist, skip silently.
|
|
59
|
+
|
|
60
|
+
## Final Line
|
|
61
|
+
|
|
62
|
+
- With issues: `Result: {N} issues found. Review and apply fixes manually.`
|
|
63
|
+
- All passed: `Result: All checks passed. Planning directory is healthy.`
|