@sienklogic/plan-build-run 2.18.0 → 2.18.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 +8 -0
- package/package.json +1 -1
- package/plugins/copilot-pbr/plugin.json +1 -1
- package/plugins/cursor-pbr/.cursor-plugin/plugin.json +1 -1
- package/plugins/cursor-pbr/agents/debugger.md +1 -1
- package/plugins/cursor-pbr/agents/executor.md +1 -1
- package/plugins/cursor-pbr/agents/general.md +1 -1
- package/plugins/cursor-pbr/agents/planner.md +1 -1
- package/plugins/pbr/.claude-plugin/plugin.json +1 -1
- package/plugins/pbr/agents/debugger.md +1 -1
- package/plugins/pbr/agents/executor.md +1 -1
- package/plugins/pbr/agents/general.md +1 -1
- package/plugins/pbr/agents/planner.md +1 -1
- package/plugins/pbr/scripts/check-state-sync.js +8 -8
- package/plugins/pbr/scripts/context-budget-check.js +1 -1
- package/plugins/pbr/scripts/pbr-tools.js +3 -3
- package/plugins/pbr/skills/build/SKILL.md +1 -1
- package/plugins/pbr/skills/continue/SKILL.md +1 -1
- package/plugins/pbr/skills/plan/SKILL.md +1 -1
- package/plugins/pbr/skills/review/SKILL.md +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,14 @@ 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.18.1](https://github.com/SienkLogic/plan-build-run/compare/plan-build-run-v2.18.0...plan-build-run-v2.18.1) (2026-02-22)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* **tools:** add Skill tool to 4 PBR skills that use auto-advance chaining ([2be11a4](https://github.com/SienkLogic/plan-build-run/commit/2be11a4dd4fe0ad875787fc65d7f217919f4a662))
|
|
14
|
+
* **tools:** update critical agents to use model: sonnet instead of inherit ([6d66573](https://github.com/SienkLogic/plan-build-run/commit/6d66573b72352a1c412ff7e1e74adee2e1d2b59f))
|
|
15
|
+
|
|
8
16
|
## [2.18.0](https://github.com/SienkLogic/plan-build-run/compare/plan-build-run-v2.17.1...plan-build-run-v2.18.0) (2026-02-22)
|
|
9
17
|
|
|
10
18
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pbr",
|
|
3
3
|
"displayName": "Plan-Build-Run",
|
|
4
|
-
"version": "2.18.
|
|
4
|
+
"version": "2.18.1",
|
|
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",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pbr",
|
|
3
3
|
"displayName": "Plan-Build-Run",
|
|
4
|
-
"version": "2.18.
|
|
4
|
+
"version": "2.18.1",
|
|
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",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pbr",
|
|
3
|
-
"version": "2.18.
|
|
3
|
+
"version": "2.18.1",
|
|
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",
|
|
@@ -190,28 +190,28 @@ function updateStatePosition(content, updates) {
|
|
|
190
190
|
const body = content.substring(fmEnd + 3);
|
|
191
191
|
|
|
192
192
|
if (updates.fmCurrentPhase !== undefined) {
|
|
193
|
-
fm = fm.replace(/^(current_phase:\s*).*/m, `$
|
|
193
|
+
fm = fm.replace(/^(current_phase:\s*).*/m, (_, p) => `${p}${updates.fmCurrentPhase}`);
|
|
194
194
|
}
|
|
195
195
|
if (updates.fmTotalPhases !== undefined) {
|
|
196
|
-
fm = fm.replace(/^(total_phases:\s*).*/m, `$
|
|
196
|
+
fm = fm.replace(/^(total_phases:\s*).*/m, (_, p) => `${p}${updates.fmTotalPhases}`);
|
|
197
197
|
}
|
|
198
198
|
if (updates.fmPhaseSlug !== undefined) {
|
|
199
|
-
fm = fm.replace(/^(phase_slug:\s*).*/m, `$
|
|
199
|
+
fm = fm.replace(/^(phase_slug:\s*).*/m, (_, p) => `${p}"${updates.fmPhaseSlug}"`);
|
|
200
200
|
}
|
|
201
201
|
if (updates.fmPhaseName !== undefined) {
|
|
202
|
-
fm = fm.replace(/^(phase_name:\s*).*/m, `$
|
|
202
|
+
fm = fm.replace(/^(phase_name:\s*).*/m, (_, p) => `${p}"${updates.fmPhaseName}"`);
|
|
203
203
|
}
|
|
204
204
|
if (updates.fmPlansComplete !== undefined) {
|
|
205
|
-
fm = fm.replace(/^(plans_complete:\s*).*/m, `$
|
|
205
|
+
fm = fm.replace(/^(plans_complete:\s*).*/m, (_, p) => `${p}${updates.fmPlansComplete}`);
|
|
206
206
|
}
|
|
207
207
|
if (updates.fmStatus !== undefined) {
|
|
208
|
-
fm = fm.replace(/^(status:\s*).*/m, `$
|
|
208
|
+
fm = fm.replace(/^(status:\s*).*/m, (_, p) => `${p}"${updates.fmStatus}"`);
|
|
209
209
|
}
|
|
210
210
|
if (updates.fmLastActivity !== undefined) {
|
|
211
|
-
fm = fm.replace(/^(last_activity:\s*).*/m, `$
|
|
211
|
+
fm = fm.replace(/^(last_activity:\s*).*/m, (_, p) => `${p}"${updates.fmLastActivity}"`);
|
|
212
212
|
}
|
|
213
213
|
if (updates.fmProgressPct !== undefined) {
|
|
214
|
-
fm = fm.replace(/^(progress_percent:\s*).*/m, `$
|
|
214
|
+
fm = fm.replace(/^(progress_percent:\s*).*/m, (_, p) => `${p}${updates.fmProgressPct}`);
|
|
215
215
|
}
|
|
216
216
|
|
|
217
217
|
// Reconstruct with updated frontmatter + body with line updates
|
|
@@ -80,7 +80,7 @@ function main() {
|
|
|
80
80
|
// Replace existing section
|
|
81
81
|
content = content.replace(
|
|
82
82
|
/## Session Continuity[\s\S]*?(?=\n## |\n---|\s*$)/,
|
|
83
|
-
`${continuityHeader}\n${continuityContent}\n`
|
|
83
|
+
() => `${continuityHeader}\n${continuityContent}\n`
|
|
84
84
|
);
|
|
85
85
|
} else {
|
|
86
86
|
// Append section
|
|
@@ -823,7 +823,7 @@ function updateLegacyStateField(content, field, value) {
|
|
|
823
823
|
case 'current_phase': {
|
|
824
824
|
const idx = lines.findIndex(l => /Phase:\s*\d+\s+of\s+\d+/.test(l));
|
|
825
825
|
if (idx !== -1) {
|
|
826
|
-
lines[idx] = lines[idx].replace(/(Phase:\s*)\d+/, `$
|
|
826
|
+
lines[idx] = lines[idx].replace(/(Phase:\s*)\d+/, (_, prefix) => `${prefix}${value}`);
|
|
827
827
|
}
|
|
828
828
|
break;
|
|
829
829
|
}
|
|
@@ -844,7 +844,7 @@ function updateLegacyStateField(content, field, value) {
|
|
|
844
844
|
case 'plans_complete': {
|
|
845
845
|
const idx = lines.findIndex(l => /Plan:\s*\d+\s+of\s+\d+/.test(l));
|
|
846
846
|
if (idx !== -1) {
|
|
847
|
-
lines[idx] = lines[idx].replace(/(Plan:\s*)\d+/, `$
|
|
847
|
+
lines[idx] = lines[idx].replace(/(Plan:\s*)\d+/, (_, prefix) => `${prefix}${value}`);
|
|
848
848
|
}
|
|
849
849
|
break;
|
|
850
850
|
}
|
|
@@ -886,7 +886,7 @@ function updateFrontmatterField(content, field, value) {
|
|
|
886
886
|
|
|
887
887
|
const fieldRegex = new RegExp(`^(${field})\\s*:.*$`, 'm');
|
|
888
888
|
if (fieldRegex.test(yaml)) {
|
|
889
|
-
yaml = yaml.replace(fieldRegex, `${field}: ${formatted}`);
|
|
889
|
+
yaml = yaml.replace(fieldRegex, () => `${field}: ${formatted}`);
|
|
890
890
|
} else {
|
|
891
891
|
yaml = yaml + `\n${field}: ${formatted}`;
|
|
892
892
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: build
|
|
3
3
|
description: "Execute all plans in a phase. Spawns agents to build in parallel, commits atomically."
|
|
4
|
-
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, Task, AskUserQuestion
|
|
4
|
+
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, Task, AskUserQuestion, Skill
|
|
5
5
|
argument-hint: "<phase-number> [--gaps-only] [--team]"
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: continue
|
|
3
3
|
description: "Execute the next logical step automatically. No prompts, no decisions — just do it."
|
|
4
|
-
allowed-tools: Read, Write, Bash, Glob, Grep, Task
|
|
4
|
+
allowed-tools: Read, Write, Bash, Glob, Grep, Task, Skill
|
|
5
5
|
---
|
|
6
6
|
|
|
7
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.**
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: plan
|
|
3
3
|
description: "Create a detailed plan for a phase. Research, plan, and verify before building."
|
|
4
|
-
allowed-tools: Read, Write, Bash, Glob, Grep, WebFetch, WebSearch, Task, AskUserQuestion
|
|
4
|
+
allowed-tools: Read, Write, Bash, Glob, Grep, WebFetch, WebSearch, Task, AskUserQuestion, Skill
|
|
5
5
|
argument-hint: "<phase-number> [--skip-research] [--assumptions] [--gaps] | add | insert <N> | remove <N>"
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: review
|
|
3
3
|
description: "Verify the build matched the plan. Automated checks + walkthrough with you."
|
|
4
|
-
allowed-tools: Read, Write, Bash, Glob, Grep, Task, AskUserQuestion
|
|
4
|
+
allowed-tools: Read, Write, Bash, Glob, Grep, Task, AskUserQuestion, Skill
|
|
5
5
|
argument-hint: "<phase-number> [--auto-fix] [--teams]"
|
|
6
6
|
---
|
|
7
7
|
|