@sienklogic/plan-build-run 2.26.2 → 2.27.0
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 +7 -0
- package/README.md +29 -0
- package/package.json +1 -1
- package/plugins/copilot-pbr/plugin.json +1 -1
- package/plugins/copilot-pbr/skills/build/SKILL.md +12 -0
- package/plugins/copilot-pbr/skills/quick/SKILL.md +12 -0
- package/plugins/copilot-pbr/skills/review/SKILL.md +14 -0
- package/plugins/cursor-pbr/.cursor-plugin/plugin.json +1 -1
- package/plugins/cursor-pbr/README.md +20 -0
- package/plugins/cursor-pbr/skills/build/SKILL.md +12 -0
- package/plugins/cursor-pbr/skills/quick/SKILL.md +12 -0
- package/plugins/cursor-pbr/skills/review/SKILL.md +14 -0
- package/plugins/pbr/.claude-plugin/plugin.json +1 -1
- package/plugins/pbr/skills/build/SKILL.md +12 -0
- package/plugins/pbr/skills/quick/SKILL.md +12 -0
- package/plugins/pbr/skills/review/SKILL.md +14 -0
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,13 @@ All notable changes to Plan-Build-Run will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [2.27.0](https://github.com/SienkLogic/plan-build-run/compare/plan-build-run-v2.26.2...plan-build-run-v2.27.0) (2026-02-24)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* **tools:** add local LLM skill-level fallbacks and platform compatibility docs ([d6d1242](https://github.com/SienkLogic/plan-build-run/commit/d6d1242d79eb924525761e0bc6ac65e1a2d51375))
|
|
14
|
+
|
|
8
15
|
## [2.26.2](https://github.com/SienkLogic/plan-build-run/compare/plan-build-run-v2.26.1...plan-build-run-v2.26.2) (2026-02-24)
|
|
9
16
|
|
|
10
17
|
|
package/README.md
CHANGED
|
@@ -304,6 +304,35 @@ Requires a GPU with 6+ GB VRAM for best performance. CPU-only works but adds lat
|
|
|
304
304
|
|
|
305
305
|
---
|
|
306
306
|
|
|
307
|
+
## Platform Compatibility
|
|
308
|
+
|
|
309
|
+
Plan-Build-Run works across three platforms with varying levels of hook support. Hooks are the mechanism that fires validation scripts on every tool call — they power local LLM offloading, commit format enforcement, context budget tracking, and workflow gates.
|
|
310
|
+
|
|
311
|
+
| Feature | Claude Code | Copilot CLI | Cursor IDE |
|
|
312
|
+
|---------|:-----------:|:-----------:|:----------:|
|
|
313
|
+
| Skills (slash commands) | All 26 | All 26 | All 26 |
|
|
314
|
+
| Agents (subagent delegation) | All 12 | All 12 | All 12 |
|
|
315
|
+
| `.planning/` state management | Full | Full | Full |
|
|
316
|
+
| **Hook support** | **Full (14 events)** | **Partial (4 events)** | **Unverified** |
|
|
317
|
+
| Commit format enforcement | Hook-enforced | Hook-enforced | Manual |
|
|
318
|
+
| PLAN/SUMMARY quality classification | Hook + skill fallback | Hook + skill fallback | Skill fallback only |
|
|
319
|
+
| Test failure triage | Automatic (hook) | Automatic (hook) | Not available |
|
|
320
|
+
| Context budget tracking | Automatic (hook) | Not available | Not available |
|
|
321
|
+
| Auto-continue between skills | Automatic (hook) | Not available | Not available |
|
|
322
|
+
| Subagent lifecycle logging | Automatic (hook) | Not available | Not available |
|
|
323
|
+
| **Local LLM offloading** | **Full (8 operations)** | **Mostly (6-7 operations)** | **CLI only** |
|
|
324
|
+
| `pbr-tools.js llm` CLI commands | Full | Full | Full |
|
|
325
|
+
|
|
326
|
+
**Key differences:**
|
|
327
|
+
|
|
328
|
+
- **Claude Code** has full hook support — all local LLM operations fire automatically on every tool call
|
|
329
|
+
- **Copilot CLI** supports `sessionStart`, `preToolUse`, `postToolUse`, and `sessionEnd` — covers most validation hooks but misses lifecycle events (`SubagentStop`, `PreCompact`, `Stop`)
|
|
330
|
+
- **Cursor IDE** hook support is unverified — hooks.json is configured but whether Cursor actually fires them is unknown. Skills include `pbr-tools.js llm` fallback calls for key operations (plan quality, verification quality) so local LLM classification is available even without hooks
|
|
331
|
+
|
|
332
|
+
All platforms share the same scripts via relative paths — no code duplication. See the [Copilot CLI](plugins/copilot-pbr/README.md) and [Cursor IDE](plugins/cursor-pbr/README.md) READMEs for platform-specific details.
|
|
333
|
+
|
|
334
|
+
---
|
|
335
|
+
|
|
307
336
|
## Local Development
|
|
308
337
|
|
|
309
338
|
```bash
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pbr",
|
|
3
3
|
"displayName": "Plan-Build-Run",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.27.0",
|
|
5
5
|
"description": "Plan-Build-Run — Structured development workflow for GitHub Copilot CLI. Solves context rot through disciplined agent delegation, structured planning, atomic execution, and goal-backward verification.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "SienkLogic",
|
|
@@ -242,6 +242,18 @@ For each wave, in order (Wave 1, then Wave 2, etc.):
|
|
|
242
242
|
|
|
243
243
|
For each plan in the current wave (excluding skipped plans):
|
|
244
244
|
|
|
245
|
+
**Local LLM plan quality check (optional, advisory):**
|
|
246
|
+
|
|
247
|
+
Before spawning executors for this wave, if `config.local_llm.enabled` is `true`, run a quick classification on each plan to catch stubs before wasting an executor spawn:
|
|
248
|
+
|
|
249
|
+
```bash
|
|
250
|
+
node ${PLUGIN_ROOT}/scripts/pbr-tools.js llm classify PLAN ".planning/phases/{NN}-{slug}/{plan_id}-PLAN.md"
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
- If classification is `"stub"` or `"partial"` with confidence >= 0.7: warn the user before spawning: `"⚠ Plan {plan_id} classified as {classification} (confidence {conf}) — consider refining before building."`
|
|
254
|
+
- If the command fails or returns null: skip silently (local LLM unavailable — not an error)
|
|
255
|
+
- This is advisory only — never block on the result
|
|
256
|
+
|
|
245
257
|
**Present plan narrative before spawning:**
|
|
246
258
|
|
|
247
259
|
Display to the user before spawning:
|
|
@@ -147,6 +147,18 @@ Before proceeding to Step 7, confirm these exist on disk:
|
|
|
147
147
|
|
|
148
148
|
If either check fails, you have skipped steps. Go back and complete Steps 4-6. Do NOT proceed to spawning an executor.
|
|
149
149
|
|
|
150
|
+
### Step 6b: Local LLM Task Validation (optional, advisory)
|
|
151
|
+
|
|
152
|
+
If `config.local_llm.enabled` is `true`, run a quick scope validation before spawning:
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
node ${PLUGIN_ROOT}/scripts/pbr-tools.js llm classify PLAN ".planning/quick/{NNN}-{slug}/PLAN.md"
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
- If classification is `"stub"` with confidence >= 0.7: warn `"⚠ Plan looks like a stub — executor may struggle. Consider adding more detail to task descriptions."`
|
|
159
|
+
- If the command fails or returns null: skip silently (local LLM unavailable)
|
|
160
|
+
- This is advisory only — never block on the result
|
|
161
|
+
|
|
150
162
|
### Step 7: Spawn Executor
|
|
151
163
|
|
|
152
164
|
**Pre-spawn check** — Verify `.planning/quick/{NNN}-{slug}/PLAN.md` exists and contains at least one `<task>` block. If missing, STOP and complete Steps 4-6 first.
|
|
@@ -182,6 +182,20 @@ Then display the overall verdict (`PASSED`, `GAPS FOUND`, or `HUMAN NEEDED`) bef
|
|
|
182
182
|
|
|
183
183
|
---
|
|
184
184
|
|
|
185
|
+
### Step 3b: Local LLM Verification Quality Check (optional, advisory)
|
|
186
|
+
|
|
187
|
+
After the verifier completes and writes VERIFICATION.md, if `config.local_llm.enabled` is `true`, run a quality classification:
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
node ${PLUGIN_ROOT}/scripts/pbr-tools.js llm classify SUMMARY ".planning/phases/{NN}-{slug}/VERIFICATION.md"
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
- If classification is `"thin"` with confidence >= 0.7: warn `"⚠ Verification report appears thin on details — UAT may not catch all gaps. Consider re-running with /pbr:review {N}."`
|
|
194
|
+
- If the command fails or returns null: skip silently (local LLM unavailable)
|
|
195
|
+
- This is advisory only — never block on the result
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
185
199
|
### Step 4: Present Verification Results (inline)
|
|
186
200
|
|
|
187
201
|
Read the VERIFICATION.md frontmatter. Check the `attempt` counter.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pbr",
|
|
3
3
|
"displayName": "Plan-Build-Run",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.27.0",
|
|
5
5
|
"description": "Plan-Build-Run — Structured development workflow for Cursor. Solves context rot through disciplined subagent delegation, structured planning, atomic execution, and goal-backward verification.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "SienkLogic",
|
|
@@ -113,6 +113,26 @@ Plan-Build-Run stores all state in a `.planning/` directory at your project root
|
|
|
113
113
|
|
|
114
114
|
Run `/pbr:config` to interactively adjust settings like depth, model profiles, and gate behavior.
|
|
115
115
|
|
|
116
|
+
## Hook Compatibility
|
|
117
|
+
|
|
118
|
+
Cursor's plugin hooks.json is configured with all 14 hook events matching Claude Code. However, **whether Cursor IDE actually fires these hooks is unverified** — no integration testing has confirmed hook execution in real Cursor sessions.
|
|
119
|
+
|
|
120
|
+
**If hooks DO fire**, Cursor gets the full hook experience identical to Claude Code:
|
|
121
|
+
- Commit format enforcement (PreToolUse)
|
|
122
|
+
- PLAN/SUMMARY quality classification via local LLM (PostToolUse)
|
|
123
|
+
- Test failure triage (PostToolUse)
|
|
124
|
+
- Context budget tracking (PostToolUse)
|
|
125
|
+
- Auto-continue between skills (Stop)
|
|
126
|
+
|
|
127
|
+
**If hooks do NOT fire**, the following are unavailable:
|
|
128
|
+
- Commit format enforcement — commits won't be validated automatically
|
|
129
|
+
- Automatic local LLM classification on writes — but skills include explicit `pbr-tools.js llm` fallback calls for plan quality (build Step 6a), task validation (quick Step 6b), and verification quality (review Step 3b)
|
|
130
|
+
- Context budget tracking — no automatic warnings when context is filling up
|
|
131
|
+
- Auto-continue — you must manually run the next command
|
|
132
|
+
- Subagent lifecycle logging — agent spawn/completion events aren't tracked
|
|
133
|
+
|
|
134
|
+
**Local LLM via CLI (always works):** Regardless of hook support, skills and agents can call `pbr-tools.js llm` commands directly via Bash. The `/pbr:status` skill displays local LLM metrics, and agents (debugger, researcher, synthesizer) use CLI commands for error classification, source scoring, and summarization.
|
|
135
|
+
|
|
116
136
|
## Cross-Plugin Compatibility
|
|
117
137
|
|
|
118
138
|
This plugin works alongside the Claude Code version of Plan-Build-Run. Both plugins share the same `.planning/` directory and file formats, so you can switch between Cursor and Claude Code without losing state. Hook scripts under `plugins/pbr/scripts/` are shared between both plugins via relative paths.
|
|
@@ -243,6 +243,18 @@ For each wave, in order (Wave 1, then Wave 2, etc.):
|
|
|
243
243
|
|
|
244
244
|
For each plan in the current wave (excluding skipped plans):
|
|
245
245
|
|
|
246
|
+
**Local LLM plan quality check (optional, advisory):**
|
|
247
|
+
|
|
248
|
+
Before spawning executors for this wave, if `config.local_llm.enabled` is `true`, run a quick classification on each plan to catch stubs before wasting an executor spawn:
|
|
249
|
+
|
|
250
|
+
```bash
|
|
251
|
+
node ${PLUGIN_ROOT}/scripts/pbr-tools.js llm classify PLAN ".planning/phases/{NN}-{slug}/{plan_id}-PLAN.md"
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
- If classification is `"stub"` or `"partial"` with confidence >= 0.7: warn the user before spawning: `"⚠ Plan {plan_id} classified as {classification} (confidence {conf}) — consider refining before building."`
|
|
255
|
+
- If the command fails or returns null: skip silently (local LLM unavailable — not an error)
|
|
256
|
+
- This is advisory only — never block on the result
|
|
257
|
+
|
|
246
258
|
**Present plan narrative before spawning:**
|
|
247
259
|
|
|
248
260
|
Display to the user before spawning:
|
|
@@ -147,6 +147,18 @@ Before proceeding to Step 7, confirm these exist on disk:
|
|
|
147
147
|
|
|
148
148
|
If either check fails, you have skipped steps. Go back and complete Steps 4-6. Do NOT proceed to spawning an executor.
|
|
149
149
|
|
|
150
|
+
### Step 6b: Local LLM Task Validation (optional, advisory)
|
|
151
|
+
|
|
152
|
+
If `config.local_llm.enabled` is `true`, run a quick scope validation before spawning:
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
node ${PLUGIN_ROOT}/scripts/pbr-tools.js llm classify PLAN ".planning/quick/{NNN}-{slug}/PLAN.md"
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
- If classification is `"stub"` with confidence >= 0.7: warn `"⚠ Plan looks like a stub — executor may struggle. Consider adding more detail to task descriptions."`
|
|
159
|
+
- If the command fails or returns null: skip silently (local LLM unavailable)
|
|
160
|
+
- This is advisory only — never block on the result
|
|
161
|
+
|
|
150
162
|
### Step 7: Spawn Executor
|
|
151
163
|
|
|
152
164
|
**Pre-spawn check** — Verify `.planning/quick/{NNN}-{slug}/PLAN.md` exists and contains at least one `<task>` block. If missing, STOP and complete Steps 4-6 first.
|
|
@@ -183,6 +183,20 @@ Then display the overall verdict (`PASSED`, `GAPS FOUND`, or `HUMAN NEEDED`) bef
|
|
|
183
183
|
|
|
184
184
|
---
|
|
185
185
|
|
|
186
|
+
### Step 3b: Local LLM Verification Quality Check (optional, advisory)
|
|
187
|
+
|
|
188
|
+
After the verifier completes and writes VERIFICATION.md, if `config.local_llm.enabled` is `true`, run a quality classification:
|
|
189
|
+
|
|
190
|
+
```bash
|
|
191
|
+
node ${PLUGIN_ROOT}/scripts/pbr-tools.js llm classify SUMMARY ".planning/phases/{NN}-{slug}/VERIFICATION.md"
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
- If classification is `"thin"` with confidence >= 0.7: warn `"⚠ Verification report appears thin on details — UAT may not catch all gaps. Consider re-running with /pbr:review {N}."`
|
|
195
|
+
- If the command fails or returns null: skip silently (local LLM unavailable)
|
|
196
|
+
- This is advisory only — never block on the result
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
186
200
|
### Step 4: Present Verification Results (inline)
|
|
187
201
|
|
|
188
202
|
Read the VERIFICATION.md frontmatter. Check the `attempt` counter.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pbr",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.27.0",
|
|
4
4
|
"description": "Plan-Build-Run — Structured development workflow for Claude Code. Solves context rot through disciplined subagent delegation, structured planning, atomic execution, and goal-backward verification.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "SienkLogic",
|
|
@@ -244,6 +244,18 @@ For each wave, in order (Wave 1, then Wave 2, etc.):
|
|
|
244
244
|
|
|
245
245
|
For each plan in the current wave (excluding skipped plans):
|
|
246
246
|
|
|
247
|
+
**Local LLM plan quality check (optional, advisory):**
|
|
248
|
+
|
|
249
|
+
Before spawning executors for this wave, if `config.local_llm.enabled` is `true`, run a quick classification on each plan to catch stubs before wasting an executor spawn:
|
|
250
|
+
|
|
251
|
+
```bash
|
|
252
|
+
node ${CLAUDE_PLUGIN_ROOT}/scripts/pbr-tools.js llm classify PLAN ".planning/phases/{NN}-{slug}/{plan_id}-PLAN.md"
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
- If classification is `"stub"` or `"partial"` with confidence >= 0.7: warn the user before spawning: `"⚠ Plan {plan_id} classified as {classification} (confidence {conf}) — consider refining before building."`
|
|
256
|
+
- If the command fails or returns null: skip silently (local LLM unavailable — not an error)
|
|
257
|
+
- This is advisory only — never block on the result
|
|
258
|
+
|
|
247
259
|
**Present plan narrative before spawning:**
|
|
248
260
|
|
|
249
261
|
Display to the user before spawning:
|
|
@@ -148,6 +148,18 @@ Before proceeding to Step 7, confirm these exist on disk:
|
|
|
148
148
|
|
|
149
149
|
If either check fails, you have skipped steps. Go back and complete Steps 4-6. Do NOT proceed to spawning an executor.
|
|
150
150
|
|
|
151
|
+
### Step 6b: Local LLM Task Validation (optional, advisory)
|
|
152
|
+
|
|
153
|
+
If `config.local_llm.enabled` is `true`, run a quick scope validation before spawning:
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
node ${CLAUDE_PLUGIN_ROOT}/scripts/pbr-tools.js llm classify PLAN ".planning/quick/{NNN}-{slug}/PLAN.md"
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
- If classification is `"stub"` with confidence >= 0.7: warn `"⚠ Plan looks like a stub — executor may struggle. Consider adding more detail to task descriptions."`
|
|
160
|
+
- If the command fails or returns null: skip silently (local LLM unavailable)
|
|
161
|
+
- This is advisory only — never block on the result
|
|
162
|
+
|
|
151
163
|
### Step 7: Spawn Executor
|
|
152
164
|
|
|
153
165
|
**Pre-spawn check** — Verify `.planning/quick/{NNN}-{slug}/PLAN.md` exists and contains at least one `<task>` block. If missing, STOP and complete Steps 4-6 first.
|
|
@@ -202,6 +202,20 @@ Then display the overall verdict (`PASSED`, `GAPS FOUND`, or `HUMAN NEEDED`) bef
|
|
|
202
202
|
|
|
203
203
|
---
|
|
204
204
|
|
|
205
|
+
### Step 3b: Local LLM Verification Quality Check (optional, advisory)
|
|
206
|
+
|
|
207
|
+
After the verifier completes and writes VERIFICATION.md, if `config.local_llm.enabled` is `true`, run a quality classification:
|
|
208
|
+
|
|
209
|
+
```bash
|
|
210
|
+
node ${CLAUDE_PLUGIN_ROOT}/scripts/pbr-tools.js llm classify SUMMARY ".planning/phases/{NN}-{slug}/VERIFICATION.md"
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
- If classification is `"thin"` with confidence >= 0.7: warn `"⚠ Verification report appears thin on details — UAT may not catch all gaps. Consider re-running with /pbr:review {N}."`
|
|
214
|
+
- If the command fails or returns null: skip silently (local LLM unavailable)
|
|
215
|
+
- This is advisory only — never block on the result
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
205
219
|
### Step 4: Present Verification Results (inline)
|
|
206
220
|
|
|
207
221
|
Read the VERIFICATION.md frontmatter. Check the `attempt` counter.
|