@sienklogic/plan-build-run 2.1.0 → 2.2.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 CHANGED
@@ -7,6 +7,36 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [2.2.0] - 2026-02-19
11
+
12
+ ### Added
13
+ - Milestone integration into workflow lifecycle — milestones are now created automatically during `/pbr:begin` roadmap generation
14
+ - Planner agent generates milestone-grouped roadmaps (single milestone for standard projects, multiple for 8+ phase comprehensive projects)
15
+ - Milestone-aware boundary detection in `/pbr:build` and `/pbr:review` — reads ROADMAP.md phase ranges instead of just "last phase overall"
16
+ - Between-milestones state handling in `/pbr:continue`
17
+ - Audit report detection in `/pbr:status` — suggests the correct next action based on whether an audit exists and its result
18
+
19
+ ### Fixed
20
+ - "Skip audit" option in build/review completion banners now correctly says "archive milestone after audit passes" (consistent with milestone anti-pattern rules)
21
+ - `auto_advance` hard-stop message at milestone boundaries now explains why it paused
22
+
23
+ ## [2.1.0] - 2026-02-19
24
+
25
+ ### Added
26
+ - **Cursor IDE plugin** (`plugins/cursor-pbr/`) — complete port with 21 skills, 10 agents, and `.mdc` workflow rules
27
+ - Cross-plugin compatibility: shared `.planning/` state between Claude Code and Cursor plugins
28
+ - Setup scripts (`setup.sh` for macOS/Linux, `setup.ps1` for Windows) for easy Cursor plugin installation
29
+ - Summary gate hook (`check-summary-gate.js`) — enforces SUMMARY file before phase state can advance
30
+ - Cross-plugin compatibility test suite (7 tests)
31
+ - Cursor plugin validation test suite (92 tests)
32
+ - Companion web dashboard improvements: service and route enhancements
33
+
34
+ ### Changed
35
+ - Agent definitions optimized — 48% average size reduction across all 10 agents
36
+ - Hook scripts improved with better error handling and dispatch logic
37
+ - Test count increased from 758 to 1008 across 42 suites
38
+ - Removed `.gitkeep` placeholder files from `cursor-pbr/` (replaced by real content)
39
+
10
40
  ## [2.0.0] - 2026-02-17
11
41
 
12
42
  ### Added
package/README.md CHANGED
@@ -3,11 +3,11 @@
3
3
  </p>
4
4
 
5
5
  <p align="center">
6
- <strong>Context-engineered development workflow for Claude Code.</strong>
6
+ <strong>Context-engineered development workflow for Claude Code and Cursor.</strong>
7
7
  <br />
8
8
  Build ambitious multi-phase software without quality degradation.
9
9
  <br />
10
- Works with any Claude Code plan. Shines on Max.
10
+ Works with any Claude Code plan. Shines on Max. Now available for Cursor IDE.
11
11
  <br />
12
12
  <br />
13
13
  <a href="#why-plan-build-run">Why Plan-Build-Run?</a> &bull;
@@ -21,10 +21,11 @@
21
21
  <p align="center">
22
22
  <a href="https://github.com/SienkLogic/plan-build-run/actions"><img src="https://img.shields.io/github/actions/workflow/status/SienkLogic/plan-build-run/ci.yml?style=for-the-badge&label=CI&logo=github" alt="CI Status" /></a>
23
23
  <img src="https://img.shields.io/badge/Claude_Code-Plugin-7C3AED?style=for-the-badge&logo=anthropic&logoColor=white" alt="Claude Code Plugin" />
24
+ <img src="https://img.shields.io/badge/Cursor-Plugin-00A67E?style=for-the-badge&logo=cursor&logoColor=white" alt="Cursor Plugin" />
24
25
  <img src="https://img.shields.io/badge/Node.js-18%2B-339933?style=for-the-badge&logo=node.js&logoColor=white" alt="Node.js 18+" />
25
26
  <a href="LICENSE"><img src="https://img.shields.io/github/license/SienkLogic/plan-build-run?style=for-the-badge" alt="License" /></a>
26
27
  <a href="https://www.npmjs.com/package/@sienklogic/plan-build-run"><img src="https://img.shields.io/npm/v/@sienklogic/plan-build-run?style=for-the-badge&logo=npm&logoColor=white" alt="npm" /></a>
27
- <img src="https://img.shields.io/badge/Tests-780_passing-brightgreen?style=for-the-badge" alt="780 Tests" />
28
+ <img src="https://img.shields.io/badge/Tests-1008_passing-brightgreen?style=for-the-badge" alt="1008 Tests" />
28
29
  </p>
29
30
 
30
31
  ---
@@ -87,6 +88,24 @@ All `/pbr:*` commands are now available globally.
87
88
 
88
89
  </details>
89
90
 
91
+ ### Install for Cursor IDE
92
+
93
+ Plan-Build-Run also works in Cursor. The setup script symlinks rules and agents into your project's `.cursor/` directory.
94
+
95
+ **macOS / Linux:**
96
+ ```bash
97
+ cd /path/to/your/project
98
+ bash /path/to/plan-build-run/plugins/cursor-pbr/setup.sh
99
+ ```
100
+
101
+ **Windows (PowerShell):**
102
+ ```powershell
103
+ cd C:\path\to\your\project
104
+ powershell -ExecutionPolicy Bypass -File C:\path\to\plan-build-run\plugins\cursor-pbr\setup.ps1
105
+ ```
106
+
107
+ Both plugins share the same `.planning/` directory — start a project in Claude Code, continue in Cursor, or vice versa. See [`plugins/cursor-pbr/README.md`](plugins/cursor-pbr/README.md) for full details.
108
+
90
109
  ### Dashboard (Optional)
91
110
 
92
111
  Plan-Build-Run ships with a companion web dashboard for browsing your project's planning state in a browser. To set it up:
@@ -212,7 +231,7 @@ git clone https://github.com/SienkLogic/plan-build-run.git
212
231
  cd plan-build-run
213
232
  npm install
214
233
 
215
- # Run tests (758 tests, 36 suites)
234
+ # Run tests (1008 tests, 42 suites)
216
235
  npm test
217
236
 
218
237
  # Lint
@@ -236,8 +255,8 @@ CI runs on Node 18/20/22 across Windows, macOS, and Linux. See [CONTRIBUTING.md]
236
255
  | Skills (slash commands) | 21 |
237
256
  | Specialized agents | 10 |
238
257
  | Hook scripts | 28 |
239
- | Tests | 758 |
240
- | Test suites | 36 |
258
+ | Tests | 1008 |
259
+ | Test suites | 42 |
241
260
  | Config toggles | 12 top-level keys |
242
261
 
243
262
  ---
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sienklogic/plan-build-run",
3
- "version": "2.1.0",
3
+ "version": "2.2.0",
4
4
  "description": "Plan it, Build it, Run it — structured development workflow for Claude Code",
5
5
  "keywords": [
6
6
  "claude-code",
@@ -38,6 +38,8 @@ Invoked with plan-checker feedback containing issues. Revise flagged plan(s) to
38
38
  ### Mode 4: Roadmap Mode
39
39
  Invoked with a request to create/update the project roadmap. Produce `.planning/ROADMAP.md` using the template at `${CLAUDE_PLUGIN_ROOT}/templates/ROADMAP.md.tmpl`.
40
40
 
41
+ **Milestone grouping:** All phases in the initial roadmap MUST be wrapped in a `## Milestone: {project name} v1.0` section. This section includes `**Goal:**` and `**Phases:** 1 - {N}`, followed by the `### Phase NN:` details. For comprehensive-depth projects (8+ phases), consider splitting into multiple milestones if there are natural delivery boundaries (e.g., "Core Platform" phases 1-5, "Advanced Features" phases 6-10). Each milestone section follows the format defined in the roadmap template.
42
+
41
43
  ---
42
44
 
43
45
  ## Goal-Backward Methodology
@@ -387,7 +387,7 @@ All phase goals verified ✓
387
387
 
388
388
  **Also available:**
389
389
  - /pbr:review — manual acceptance testing
390
- - /pbr:milestone complete — skip audit, archive directly
390
+ - /pbr:milestone complete — archive milestone after audit passes
391
391
 
392
392
  ───────────────────────────────────────────────────────────────
393
393
  ```
@@ -379,10 +379,11 @@ Read `skills/begin/templates/roadmap-prompt.md.tmpl` for the prompt structure.
379
379
 
380
380
  **After the planner completes:**
381
381
  - Read `.planning/ROADMAP.md`
382
- - Count the phases and milestones from the roadmap content
382
+ - Count the phases from the roadmap content
383
+ - Verify the roadmap contains a `## Milestone:` section wrapping the phases (the planner should generate this). If not, the initial set of phases constitutes the first milestone — add the section header yourself.
383
384
  - Display:
384
385
  ```
385
- ✓ Roadmap created — {N} phases across {M} milestones
386
+ ✓ Roadmap created — {N} phases in milestone "{name}"
386
387
  ```
387
388
  - If `gates.confirm_roadmap` is true in config, use the **approve-revise-abort** pattern from `skills/shared/gate-prompts.md`:
388
389
  question: "Approve this roadmap?"
@@ -544,6 +545,7 @@ Then use the "Next Up" routing block:
544
545
  **Also available:**
545
546
  - `/pbr:explore` — open-ended exploration before planning
546
547
  - `/pbr:plan 1` — jump straight to planning Phase 1
548
+ - `/pbr:milestone new` — add a second milestone with new phases
547
549
  - `/pbr:config` — adjust workflow settings
548
550
 
549
551
  ───────────────────────────────────────────────────────────────
@@ -24,6 +24,8 @@ Each phase should:
24
24
  3. Build on prior phases logically
25
25
  4. Be independently verifiable
26
26
 
27
+ **Milestone structure:** Wrap all phases in a `## Milestone:` section. For comprehensive-depth projects with 8+ phases, consider splitting into multiple milestones at natural delivery boundaries. Use the milestone section format from the roadmap template (`## Milestone: {name}` with `**Goal:**` and `**Phases:** start - end`).
28
+
27
29
  Write the roadmap to .planning/ROADMAP.md using the roadmap format from your agent definition.
28
30
  </roadmap_instructions>
29
31
 
@@ -744,7 +744,7 @@ Chain to the next skill directly within this session. This eliminates manual pha
744
744
  | Verification passed, more phases | Plan next phase | `Skill({ skill: "pbr:plan", args: "{N+1}" })` |
745
745
  | Verification skipped | Run review | `Skill({ skill: "pbr:review", args: "{N}" })` |
746
746
  | Verification gaps found | **HARD STOP** — present gaps to user | Do NOT auto-advance past failures |
747
- | Last phase complete | **HARD STOP** — milestone boundary | Suggest `/pbr:milestone audit` |
747
+ | Last phase in current milestone | **HARD STOP** — milestone boundary | Suggest `/pbr:milestone audit`. Explain: "auto_advance pauses at milestone boundaries — your sign-off is required." |
748
748
  | Build errors occurred | **HARD STOP** — errors need human review | Do NOT auto-advance past errors |
749
749
 
750
750
  After invoking the chained skill, it runs within the same session. When it completes, the chained skill may itself chain further (review→plan, plan→build) if auto_advance remains true. This creates the full cycle: build→review→plan→build→...
@@ -759,8 +759,10 @@ Use the branded output templates from `references/ui-formatting.md`. Route based
759
759
 
760
760
  | Status | Template |
761
761
  |--------|----------|
762
- | `passed` + more phases | "Phase Complete" template |
763
- | `passed` + last phase | "Milestone Complete" template |
762
+ | `passed` + more phases in current milestone | "Phase Complete" template |
763
+ | `passed` + last phase in current milestone | "Milestone Complete" template |
764
+
765
+ **Milestone boundary detection:** To determine "last phase in current milestone", read ROADMAP.md and find the `## Milestone:` section containing the current phase. Check its `**Phases:** start - end` range. If the current phase equals `end`, this is the last phase in the milestone. For projects with a single milestone or no explicit milestone sections, "last phase in ROADMAP" is equivalent.
764
766
  | `gaps_found` | "Gaps Found" template |
765
767
 
766
768
  Before the branded banner, include the results table:
@@ -838,7 +840,7 @@ All phase goals verified ✓
838
840
 
839
841
  **Also available:**
840
842
  - `/pbr:review` — manual acceptance testing
841
- - `/pbr:milestone complete` — skip audit, archive directly
843
+ - `/pbr:milestone complete` — archive milestone after audit passes
842
844
 
843
845
  ───────────────────────────────────────────────────────────────
844
846
  ```
@@ -95,7 +95,8 @@ Check the resumption priority hierarchy (same as /pbr:resume):
95
95
  4. **Incomplete build**: PLAN.md files without SUMMARY.md → Execute `/pbr:build {N}`
96
96
  5. **Unverified phase**: All plans complete, no VERIFICATION.md → Execute `/pbr:review {N}`
97
97
  6. **Phase complete, more phases exist**: Verification passed → Execute `/pbr:plan {N+1}`
98
- 7. **All phases complete**: Verification passed on final phase, no more phases in ROADMAP.md → Stop. Display: "All phases are complete. Run `/pbr:milestone audit` to verify cross-phase integration, or `/pbr:milestone complete` to archive this milestone."
98
+ 7. **Last phase in current milestone complete**: Verification passed on the last phase of the current milestone's phase range → Stop. Display: "Milestone complete! Run `/pbr:milestone audit` to verify cross-phase integration, then `/pbr:milestone complete` to archive."
99
+ 8. **Between milestones**: Current milestone is marked complete in STATE.md, but more milestones exist or user needs to create the next one → Stop. Display: "Current milestone is complete. Run `/pbr:milestone new` to start the next milestone, or `/pbr:milestone audit` if not yet audited."
99
100
 
100
101
  ### Step 3: Execute
101
102
 
@@ -340,7 +340,8 @@ If all automated checks and UAT items passed:
340
340
 
341
341
  Use the branded output from `references/ui-formatting.md`:
342
342
  - If more phases remain: use the "Phase Complete" banner template
343
- - If this was the last phase: use the "Milestone Complete" banner template
343
+ - If this was the last phase in the current milestone: use the "Milestone Complete" banner template
344
+ - **Milestone boundary detection:** Read ROADMAP.md and find the `## Milestone:` section containing the current phase. Check its `**Phases:** start - end` range. If the current phase equals `end`, this is the last phase in the milestone.
344
345
  - Always include the "Next Up" routing block
345
346
 
346
347
  4. If `gates.confirm_transition` is true in config AND `features.auto_advance` is NOT true:
@@ -356,7 +357,7 @@ Use the branded output from `references/ui-formatting.md`:
356
357
  5. **If `features.auto_advance` is `true` AND `mode` is `autonomous` AND more phases remain:**
357
358
  - Chain directly to plan: `Skill({ skill: "pbr:plan", args: "{N+1}" })`
358
359
  - This continues the build→review→plan cycle automatically
359
- - **If this is the last phase:** HARD STOP — do NOT auto-advance past milestone boundaries
360
+ - **If this is the last phase in the current milestone:** HARD STOP — do NOT auto-advance past milestone boundaries. Display: "auto_advance pauses at milestone boundaries — your sign-off is required."
360
361
 
361
362
  #### Gaps Found WITH `--auto-fix`
362
363
 
@@ -666,7 +667,7 @@ Then:
666
667
  ───────────────────────────────────────────────────────────────
667
668
 
668
669
  **Also available:**
669
- - `/pbr:milestone complete` — archive this milestone and tag it
670
+ - `/pbr:milestone complete` — archive milestone after audit passes
670
671
  - `/pbr:milestone new` — start planning next features
671
672
  - `/pbr:status` — see final project status
672
673
 
@@ -251,7 +251,7 @@ Based on the project state, suggest the single most logical next action:
251
251
  YES → "Re-plan with updated context: `/pbr:plan {N+1}`"
252
252
  NO → "Build the next phase: `/pbr:build {N+1}`"
253
253
  NO → "Plan the next phase: `/pbr:plan {N+1}`"
254
- NO → "All phases complete! Your next steps:\n -> /pbr:milestone audit verify cross-phase integration (recommended)\n -> /pbr:milestone complete archive this milestone and create a git tag\n -> /pbr:milestone new start planning the next set of features"
254
+ NO → Check for existing `*-MILESTONE-AUDIT.md` in `.planning/`:\n IF audit passed → "All phases complete and audited! `/pbr:milestone complete` to archive and tag."\n IF audit has gaps "Audit found gaps. `/pbr:milestone gaps` to address them."\n IF no audit → "All phases complete! `/pbr:milestone audit` to verify cross-phase integration (recommended), then `/pbr:milestone complete`."
255
255
 
256
256
  6. Is the current phase not started?
257
257
  YES → Has it been discussed?
@@ -317,7 +317,10 @@ Build options dynamically from the decision tree results. Always include "Someth
317
317
 
318
318
  ### All phases complete
319
319
  - Celebrate briefly: "All phases complete!"
320
- - Suggest: `/pbr:milestone audit` to verify cross-phase integration (recommended first)
320
+ - Check for existing audit report: look for `*-MILESTONE-AUDIT.md` in `.planning/`
321
+ - **If audit exists and passed:** Suggest `/pbr:milestone complete` to archive (audit already done)
322
+ - **If audit exists with gaps:** Suggest `/pbr:milestone gaps` to address issues
323
+ - **If no audit exists:** Suggest `/pbr:milestone audit` to verify cross-phase integration (recommended first)
321
324
  - Then: `/pbr:milestone complete` to archive the milestone and tag it
322
325
  - Or: `/pbr:milestone new` to start the next set of features
323
326
 
@@ -21,7 +21,12 @@ Phase 01 ──→ Phase 02 ──→ Phase 04
21
21
  └──→ Phase 04
22
22
  ```
23
23
 
24
- ## Phase Details
24
+ ---
25
+
26
+ ## Milestone: {project name} v1.0
27
+
28
+ **Goal:** {overall project goal from requirements}
29
+ **Phases:** 1 - {n}
25
30
 
26
31
  ### Phase 01: Project Setup
27
32