@sienklogic/plan-build-run 2.47.0 → 2.49.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 +18 -0
- package/package.json +1 -1
- package/plugins/copilot-pbr/plugin.json +1 -1
- package/plugins/copilot-pbr/skills/milestone/SKILL.md +2 -52
- package/plugins/copilot-pbr/skills/milestone/templates/edge-cases.md +54 -0
- package/plugins/copilot-pbr/skills/plan/SKILL.md +6 -76
- package/plugins/copilot-pbr/skills/plan/templates/completion-output.md.tmpl +27 -0
- package/plugins/copilot-pbr/skills/shared/error-reporting.md +59 -0
- package/plugins/cursor-pbr/.cursor-plugin/plugin.json +1 -1
- package/plugins/cursor-pbr/skills/milestone/SKILL.md +2 -52
- package/plugins/cursor-pbr/skills/milestone/templates/edge-cases.md +54 -0
- package/plugins/cursor-pbr/skills/plan/SKILL.md +6 -76
- package/plugins/cursor-pbr/skills/plan/templates/completion-output.md.tmpl +27 -0
- package/plugins/cursor-pbr/skills/shared/error-reporting.md +59 -0
- package/plugins/pbr/.claude-plugin/plugin.json +1 -1
- package/plugins/pbr/scripts/lib/build.js +454 -0
- package/plugins/pbr/scripts/pbr-tools.js +55 -1
- package/plugins/pbr/skills/build/SKILL.md +25 -53
- package/plugins/pbr/skills/milestone/SKILL.md +2 -52
- 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/new-output.md.tmpl +29 -0
- package/plugins/pbr/skills/plan/SKILL.md +13 -93
- package/plugins/pbr/skills/plan/templates/completion-output.md.tmpl +27 -0
- package/plugins/pbr/skills/shared/error-reporting.md +59 -0
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,24 @@ 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.49.0](https://github.com/SienkLogic/plan-build-run/compare/plan-build-run-v2.48.0...plan-build-run-v2.49.0) (2026-03-01)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* **52-04:** extract 4 milestone completion banners to tmpl files ([62064af](https://github.com/SienkLogic/plan-build-run/commit/62064af63ce6fb3bd044cd807d08aeb5979be219))
|
|
14
|
+
* **52-05:** remove duplicate wave spot-checks paragraph from build SKILL.md ([6b90261](https://github.com/SienkLogic/plan-build-run/commit/6b9026193d868d1bdb0225ccf197e919c30040c9))
|
|
15
|
+
|
|
16
|
+
## [2.48.0](https://github.com/SienkLogic/plan-build-run/compare/plan-build-run-v2.47.0...plan-build-run-v2.48.0) (2026-03-01)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
### Features
|
|
20
|
+
|
|
21
|
+
* **52-02:** GREEN - implement lib/build.js and wire 5 build helper subcommands into pbr-tools.js ([3710d3e](https://github.com/SienkLogic/plan-build-run/commit/3710d3eb323b6796e1465c830166c0ed377a228d))
|
|
22
|
+
* **52-02:** replace inline staleness, checkpoint, and SUMMARY gate blocks with CLI calls in build/plan SKILL.md ([1de7081](https://github.com/SienkLogic/plan-build-run/commit/1de70810a9a4432b65c6c18ca91527e13b98de1d))
|
|
23
|
+
* **52-03:** create error-reporting.md shared fragment and completion-output.md.tmpl ([083797c](https://github.com/SienkLogic/plan-build-run/commit/083797ca45421ab1bdbe521afd1ec95428510b0b))
|
|
24
|
+
* **52-03:** extract edge cases and collapse error boxes/completion to references; sync derivatives ([2cc5718](https://github.com/SienkLogic/plan-build-run/commit/2cc5718917219454aa28b8ea719f45426f2c86d9))
|
|
25
|
+
|
|
8
26
|
## [2.47.0](https://github.com/SienkLogic/plan-build-run/compare/plan-build-run-v2.46.0...plan-build-run-v2.47.0) (2026-03-01)
|
|
9
27
|
|
|
10
28
|
|
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.49.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",
|
|
@@ -779,58 +779,8 @@ Tags (complete only):
|
|
|
779
779
|
|
|
780
780
|
## Edge Cases
|
|
781
781
|
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
- For others, display:
|
|
785
|
-
```
|
|
786
|
-
╔══════════════════════════════════════════════════════════════╗
|
|
787
|
-
║ ERROR ║
|
|
788
|
-
╚══════════════════════════════════════════════════════════════╝
|
|
789
|
-
|
|
790
|
-
No roadmap found.
|
|
791
|
-
|
|
792
|
-
**To fix:** Run `/pbr:begin` or `/pbr:milestone new` first.
|
|
793
|
-
```
|
|
794
|
-
|
|
795
|
-
### Milestone has no phases
|
|
796
|
-
Display:
|
|
797
|
-
```
|
|
798
|
-
╔══════════════════════════════════════════════════════════════╗
|
|
799
|
-
║ ERROR ║
|
|
800
|
-
╚══════════════════════════════════════════════════════════════╝
|
|
801
|
-
|
|
802
|
-
No phases found for this milestone.
|
|
803
|
-
|
|
804
|
-
**To fix:**
|
|
805
|
-
- For `complete`: Nothing to complete — add phases first.
|
|
806
|
-
- For `audit`: Nothing to audit — build phases first.
|
|
807
|
-
```
|
|
808
|
-
|
|
809
|
-
### Audit finds no gaps
|
|
810
|
-
- Status: PASSED
|
|
811
|
-
- Skip the recommendations section
|
|
812
|
-
- Suggest proceeding to complete
|
|
813
|
-
|
|
814
|
-
### Version already exists (tag collision)
|
|
815
|
-
Display:
|
|
816
|
-
```
|
|
817
|
-
╔══════════════════════════════════════════════════════════════╗
|
|
818
|
-
║ ERROR ║
|
|
819
|
-
╚══════════════════════════════════════════════════════════════╝
|
|
820
|
-
|
|
821
|
-
Git tag {version} already exists.
|
|
822
|
-
|
|
823
|
-
**To fix:** Use a different version number (e.g., {version}.1).
|
|
824
|
-
```
|
|
825
|
-
Ask for alternative via AskUserQuestion.
|
|
826
|
-
|
|
827
|
-
### Partially verified milestone
|
|
828
|
-
- `complete` warns but allows proceeding with user confirmation
|
|
829
|
-
- `audit` treats unverified phases as gaps
|
|
830
|
-
|
|
831
|
-
### Large milestone (8+ phases)
|
|
832
|
-
- `audit` may take longer due to integration checking
|
|
833
|
-
- Warn: "This milestone has {count} phases. The audit may take a few minutes."
|
|
782
|
+
For all edge case handling, see `skills/milestone/templates/edge-cases.md`.
|
|
783
|
+
Key scenarios: no ROADMAP.md, no phases, no gaps found, version collision, partially verified, large milestone (8+ phases).
|
|
834
784
|
|
|
835
785
|
---
|
|
836
786
|
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Milestone Edge Cases
|
|
2
|
+
|
|
3
|
+
## No ROADMAP.md exists
|
|
4
|
+
- For `new`: Create one from scratch (this is a fresh start)
|
|
5
|
+
- For others, display:
|
|
6
|
+
```
|
|
7
|
+
╔══════════════════════════════════════════════════════════════╗
|
|
8
|
+
║ ERROR ║
|
|
9
|
+
╚══════════════════════════════════════════════════════════════╝
|
|
10
|
+
|
|
11
|
+
No roadmap found.
|
|
12
|
+
|
|
13
|
+
**To fix:** Run `/pbr:begin` or `/pbr:milestone new` first.
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Milestone has no phases
|
|
17
|
+
Display:
|
|
18
|
+
```
|
|
19
|
+
╔══════════════════════════════════════════════════════════════╗
|
|
20
|
+
║ ERROR ║
|
|
21
|
+
╚══════════════════════════════════════════════════════════════╝
|
|
22
|
+
|
|
23
|
+
No phases found for this milestone.
|
|
24
|
+
|
|
25
|
+
**To fix:**
|
|
26
|
+
- For `complete`: Nothing to complete — add phases first.
|
|
27
|
+
- For `audit`: Nothing to audit — build phases first.
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Audit finds no gaps
|
|
31
|
+
- Status: PASSED
|
|
32
|
+
- Skip the recommendations section
|
|
33
|
+
- Suggest proceeding to complete
|
|
34
|
+
|
|
35
|
+
## Version already exists (tag collision)
|
|
36
|
+
Display:
|
|
37
|
+
```
|
|
38
|
+
╔══════════════════════════════════════════════════════════════╗
|
|
39
|
+
║ ERROR ║
|
|
40
|
+
╚══════════════════════════════════════════════════════════════╝
|
|
41
|
+
|
|
42
|
+
Git tag {version} already exists.
|
|
43
|
+
|
|
44
|
+
**To fix:** Use a different version number (e.g., {version}.1).
|
|
45
|
+
```
|
|
46
|
+
Ask for alternative via AskUserQuestion.
|
|
47
|
+
|
|
48
|
+
## Partially verified milestone
|
|
49
|
+
- `complete` warns but allows proceeding with user confirmation
|
|
50
|
+
- `audit` treats unverified phases as gaps
|
|
51
|
+
|
|
52
|
+
## Large milestone (8+ phases)
|
|
53
|
+
- `audit` may take longer due to integration checking
|
|
54
|
+
- Warn: "This milestone has {count} phases. The audit may take a few minutes."
|
|
@@ -596,24 +596,10 @@ Read `skills/plan/templates/gap-closure-prompt.md.tmpl` and use it as the prompt
|
|
|
596
596
|
## Error Handling
|
|
597
597
|
|
|
598
598
|
### Phase not found
|
|
599
|
-
If the specified phase doesn't exist in ROADMAP.md, display:
|
|
600
|
-
```
|
|
601
|
-
ERROR
|
|
602
|
-
|
|
603
|
-
Phase {N} not found in ROADMAP.md.
|
|
604
|
-
|
|
605
|
-
**To fix:** Run `/pbr:status` to see available phases.
|
|
606
|
-
```
|
|
599
|
+
If the specified phase doesn't exist in ROADMAP.md, display a branded error box — see `skills/shared/error-reporting.md`, pattern: Phase not found.
|
|
607
600
|
|
|
608
601
|
### Missing prerequisites
|
|
609
|
-
If REQUIREMENTS.md or ROADMAP.md don't exist, display:
|
|
610
|
-
```
|
|
611
|
-
ERROR
|
|
612
|
-
|
|
613
|
-
Project not initialized. Missing REQUIREMENTS.md or ROADMAP.md.
|
|
614
|
-
|
|
615
|
-
**To fix:** Run `/pbr:begin` first.
|
|
616
|
-
```
|
|
602
|
+
If REQUIREMENTS.md or ROADMAP.md don't exist, display a branded error box — see `skills/shared/error-reporting.md`, pattern: Missing prerequisites.
|
|
617
603
|
|
|
618
604
|
### Research agent fails
|
|
619
605
|
If the researcher agent fails, display:
|
|
@@ -624,29 +610,10 @@ This may result in less accurate plans.
|
|
|
624
610
|
Continue to the planning step.
|
|
625
611
|
|
|
626
612
|
### Planner agent fails
|
|
627
|
-
If the planner agent fails, display:
|
|
628
|
-
```
|
|
629
|
-
ERROR
|
|
630
|
-
|
|
631
|
-
Planner agent failed for Phase {N}.
|
|
632
|
-
|
|
633
|
-
**To fix:**
|
|
634
|
-
- Try again with `/pbr:plan {N} --skip-research`
|
|
635
|
-
- Check `.planning/CONTEXT.md` for conflicting constraints
|
|
636
|
-
```
|
|
613
|
+
If the planner agent fails, display a branded error box — see `skills/shared/error-reporting.md`, pattern: Planner agent failure.
|
|
637
614
|
|
|
638
615
|
### Checker loops forever
|
|
639
|
-
After 3 revision iterations without passing, display:
|
|
640
|
-
```
|
|
641
|
-
ERROR
|
|
642
|
-
|
|
643
|
-
Plan checker failed to pass after 3 revision iterations for Phase {N}.
|
|
644
|
-
|
|
645
|
-
**To fix:**
|
|
646
|
-
- Review the remaining issues below and decide whether to proceed or revise manually
|
|
647
|
-
- Run `/pbr:plan {N}` to restart planning from scratch
|
|
648
|
-
```
|
|
649
|
-
|
|
616
|
+
After 3 revision iterations without passing, display a branded error box — see `skills/shared/error-reporting.md`, pattern: Checker loops.
|
|
650
617
|
Present remaining issues and ask user to decide: proceed or intervene.
|
|
651
618
|
|
|
652
619
|
---
|
|
@@ -671,42 +638,5 @@ Delete `.planning/.active-skill` if it exists. This must happen on all paths (su
|
|
|
671
638
|
|
|
672
639
|
After planning completes, present:
|
|
673
640
|
|
|
674
|
-
Use the branded stage banner from `
|
|
675
|
-
|
|
676
|
-
```
|
|
677
|
-
╔══════════════════════════════════════════════════════════════╗
|
|
678
|
-
║ PLAN-BUILD-RUN ► PLANNING PHASE {N} ║
|
|
679
|
-
╚══════════════════════════════════════════════════════════════╝
|
|
680
|
-
|
|
681
|
-
**Phase {N}: {name}** — {plan_count} plans created
|
|
682
|
-
|
|
683
|
-
Plans:
|
|
684
|
-
{phase}-01: {name} (Wave 1, {task_count} tasks)
|
|
685
|
-
{phase}-02: {name} (Wave 1, {task_count} tasks)
|
|
686
|
-
{phase}-03: {name} (Wave 2, {task_count} tasks)
|
|
687
|
-
|
|
688
|
-
Wave execution:
|
|
689
|
-
Wave 1: Plans 01, 02 (parallel)
|
|
690
|
-
Wave 2: Plan 03
|
|
691
|
-
```
|
|
692
|
-
|
|
693
|
-
Then use the "Next Up" routing block:
|
|
694
|
-
```
|
|
695
|
-
---
|
|
696
|
-
|
|
697
|
-
## Next Up
|
|
698
|
-
|
|
699
|
-
**Build Phase {N}** — execute these plans
|
|
700
|
-
|
|
701
|
-
/pbr:build {N}
|
|
702
|
-
|
|
703
|
-
`/clear` first for a fresh context window
|
|
704
|
-
|
|
705
|
-
---
|
|
706
|
-
|
|
707
|
-
**Also available:**
|
|
708
|
-
- /pbr:plan {N} --assumptions — review assumptions first
|
|
709
|
-
- /pbr:discuss {N} — talk through details before building
|
|
710
|
-
|
|
711
|
-
---
|
|
712
|
-
```
|
|
641
|
+
Use the branded stage banner and next-up block from `skills/plan/templates/completion-output.md.tmpl`.
|
|
642
|
+
Fill in: `{N}` (phase number), `{phase-name}`, `{plan_count}`, `{plan_list_lines}` (one line per plan with wave and task count), `{wave_table_lines}` (one line per wave).
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
╔══════════════════════════════════════════════════════════════╗
|
|
2
|
+
║ PLAN-BUILD-RUN ► PLANNING PHASE {N} ✓ ║
|
|
3
|
+
╚══════════════════════════════════════════════════════════════╝
|
|
4
|
+
|
|
5
|
+
**Phase {N}: {phase-name}** — {plan_count} plans created
|
|
6
|
+
|
|
7
|
+
Plans:
|
|
8
|
+
{plan_list_lines}
|
|
9
|
+
|
|
10
|
+
Wave execution:
|
|
11
|
+
{wave_table_lines}
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
╔══════════════════════════════════════════════════════════════╗
|
|
16
|
+
║ ▶ NEXT UP ║
|
|
17
|
+
╚══════════════════════════════════════════════════════════════╝
|
|
18
|
+
|
|
19
|
+
**Build Phase {N}** — execute these plans
|
|
20
|
+
|
|
21
|
+
/pbr:build {N}
|
|
22
|
+
|
|
23
|
+
<sub>/clear first → fresh context window</sub>
|
|
24
|
+
|
|
25
|
+
**Also available:**
|
|
26
|
+
- /pbr:plan {N} --assumptions — review assumptions first
|
|
27
|
+
- /pbr:discuss {N} — talk through details before building
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# Error Reporting — Standard Format
|
|
2
|
+
|
|
3
|
+
Use the branded error box for all blocking errors. Present the box, explain what happened, and give a specific fix action.
|
|
4
|
+
|
|
5
|
+
## Error Box Format
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
╔══════════════════════════════════════════════════════════════╗
|
|
9
|
+
║ ERROR ║
|
|
10
|
+
╚══════════════════════════════════════════════════════════════╝
|
|
11
|
+
|
|
12
|
+
{one-line description of what went wrong}
|
|
13
|
+
|
|
14
|
+
**To fix:** {specific action the user should take}
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Warning Format (non-blocking)
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
⚠ {one-line warning}
|
|
21
|
+
{optional detail or suggestion}
|
|
22
|
+
```
|
|
23
|
+
Continue execution after showing a warning.
|
|
24
|
+
|
|
25
|
+
## Common Error Patterns
|
|
26
|
+
|
|
27
|
+
### Phase not found
|
|
28
|
+
Message: "Phase {N} not found in ROADMAP.md."
|
|
29
|
+
Fix: "Run `/pbr:status` to see available phases."
|
|
30
|
+
|
|
31
|
+
### Missing prerequisites (no REQUIREMENTS.md or ROADMAP.md)
|
|
32
|
+
Message: "Project not initialized. Missing REQUIREMENTS.md or ROADMAP.md."
|
|
33
|
+
Fix: "Run `/pbr:begin` first."
|
|
34
|
+
|
|
35
|
+
### No plans found for phase
|
|
36
|
+
Message: "Phase {N} has no plans."
|
|
37
|
+
Fix: "Run `/pbr:plan {N}` first."
|
|
38
|
+
|
|
39
|
+
### Dependency phase not complete
|
|
40
|
+
Message: "Phase {N} depends on Phase {M}, which is not complete."
|
|
41
|
+
Fix: "Build Phase {M} first with `/pbr:build {M}`."
|
|
42
|
+
|
|
43
|
+
### Planner agent failure
|
|
44
|
+
Message: "Planner agent failed for Phase {N}."
|
|
45
|
+
Fix: "Try again with `/pbr:plan {N} --skip-research`. Check `.planning/CONTEXT.md` for conflicting constraints."
|
|
46
|
+
|
|
47
|
+
### Checker loops (3+ iterations without pass)
|
|
48
|
+
Message: "Plan checker failed to pass after 3 revision iterations for Phase {N}."
|
|
49
|
+
Fix: "Review the remaining issues below and decide whether to proceed or revise manually. Run `/pbr:plan {N}` to restart planning from scratch."
|
|
50
|
+
After displaying: present remaining issues and ask user to decide (proceed or intervene).
|
|
51
|
+
|
|
52
|
+
### Research agent failure
|
|
53
|
+
Display as WARNING (non-blocking): "Research agent failed. Planning without phase-specific research. This may result in less accurate plans."
|
|
54
|
+
Continue to the planning step.
|
|
55
|
+
|
|
56
|
+
## Usage
|
|
57
|
+
|
|
58
|
+
In skill files, replace repeated error box content with:
|
|
59
|
+
"Display a branded error box — use the format from `skills/shared/error-reporting.md`, pattern: {pattern name}."
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pbr",
|
|
3
3
|
"displayName": "Plan-Build-Run",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.49.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",
|
|
@@ -780,58 +780,8 @@ Tags (complete only):
|
|
|
780
780
|
|
|
781
781
|
## Edge Cases
|
|
782
782
|
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
- For others, display:
|
|
786
|
-
```
|
|
787
|
-
╔══════════════════════════════════════════════════════════════╗
|
|
788
|
-
║ ERROR ║
|
|
789
|
-
╚══════════════════════════════════════════════════════════════╝
|
|
790
|
-
|
|
791
|
-
No roadmap found.
|
|
792
|
-
|
|
793
|
-
**To fix:** Run `/pbr:begin` or `/pbr:milestone new` first.
|
|
794
|
-
```
|
|
795
|
-
|
|
796
|
-
### Milestone has no phases
|
|
797
|
-
Display:
|
|
798
|
-
```
|
|
799
|
-
╔══════════════════════════════════════════════════════════════╗
|
|
800
|
-
║ ERROR ║
|
|
801
|
-
╚══════════════════════════════════════════════════════════════╝
|
|
802
|
-
|
|
803
|
-
No phases found for this milestone.
|
|
804
|
-
|
|
805
|
-
**To fix:**
|
|
806
|
-
- For `complete`: Nothing to complete — add phases first.
|
|
807
|
-
- For `audit`: Nothing to audit — build phases first.
|
|
808
|
-
```
|
|
809
|
-
|
|
810
|
-
### Audit finds no gaps
|
|
811
|
-
- Status: PASSED
|
|
812
|
-
- Skip the recommendations section
|
|
813
|
-
- Suggest proceeding to complete
|
|
814
|
-
|
|
815
|
-
### Version already exists (tag collision)
|
|
816
|
-
Display:
|
|
817
|
-
```
|
|
818
|
-
╔══════════════════════════════════════════════════════════════╗
|
|
819
|
-
║ ERROR ║
|
|
820
|
-
╚══════════════════════════════════════════════════════════════╝
|
|
821
|
-
|
|
822
|
-
Git tag {version} already exists.
|
|
823
|
-
|
|
824
|
-
**To fix:** Use a different version number (e.g., {version}.1).
|
|
825
|
-
```
|
|
826
|
-
Ask for alternative via AskUserQuestion.
|
|
827
|
-
|
|
828
|
-
### Partially verified milestone
|
|
829
|
-
- `complete` warns but allows proceeding with user confirmation
|
|
830
|
-
- `audit` treats unverified phases as gaps
|
|
831
|
-
|
|
832
|
-
### Large milestone (8+ phases)
|
|
833
|
-
- `audit` may take longer due to integration checking
|
|
834
|
-
- Warn: "This milestone has {count} phases. The audit may take a few minutes."
|
|
783
|
+
For all edge case handling, see `skills/milestone/templates/edge-cases.md`.
|
|
784
|
+
Key scenarios: no ROADMAP.md, no phases, no gaps found, version collision, partially verified, large milestone (8+ phases).
|
|
835
785
|
|
|
836
786
|
---
|
|
837
787
|
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Milestone Edge Cases
|
|
2
|
+
|
|
3
|
+
## No ROADMAP.md exists
|
|
4
|
+
- For `new`: Create one from scratch (this is a fresh start)
|
|
5
|
+
- For others, display:
|
|
6
|
+
```
|
|
7
|
+
╔══════════════════════════════════════════════════════════════╗
|
|
8
|
+
║ ERROR ║
|
|
9
|
+
╚══════════════════════════════════════════════════════════════╝
|
|
10
|
+
|
|
11
|
+
No roadmap found.
|
|
12
|
+
|
|
13
|
+
**To fix:** Run `/pbr:begin` or `/pbr:milestone new` first.
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Milestone has no phases
|
|
17
|
+
Display:
|
|
18
|
+
```
|
|
19
|
+
╔══════════════════════════════════════════════════════════════╗
|
|
20
|
+
║ ERROR ║
|
|
21
|
+
╚══════════════════════════════════════════════════════════════╝
|
|
22
|
+
|
|
23
|
+
No phases found for this milestone.
|
|
24
|
+
|
|
25
|
+
**To fix:**
|
|
26
|
+
- For `complete`: Nothing to complete — add phases first.
|
|
27
|
+
- For `audit`: Nothing to audit — build phases first.
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Audit finds no gaps
|
|
31
|
+
- Status: PASSED
|
|
32
|
+
- Skip the recommendations section
|
|
33
|
+
- Suggest proceeding to complete
|
|
34
|
+
|
|
35
|
+
## Version already exists (tag collision)
|
|
36
|
+
Display:
|
|
37
|
+
```
|
|
38
|
+
╔══════════════════════════════════════════════════════════════╗
|
|
39
|
+
║ ERROR ║
|
|
40
|
+
╚══════════════════════════════════════════════════════════════╝
|
|
41
|
+
|
|
42
|
+
Git tag {version} already exists.
|
|
43
|
+
|
|
44
|
+
**To fix:** Use a different version number (e.g., {version}.1).
|
|
45
|
+
```
|
|
46
|
+
Ask for alternative via AskUserQuestion.
|
|
47
|
+
|
|
48
|
+
## Partially verified milestone
|
|
49
|
+
- `complete` warns but allows proceeding with user confirmation
|
|
50
|
+
- `audit` treats unverified phases as gaps
|
|
51
|
+
|
|
52
|
+
## Large milestone (8+ phases)
|
|
53
|
+
- `audit` may take longer due to integration checking
|
|
54
|
+
- Warn: "This milestone has {count} phases. The audit may take a few minutes."
|
|
@@ -597,24 +597,10 @@ Read `skills/plan/templates/gap-closure-prompt.md.tmpl` and use it as the prompt
|
|
|
597
597
|
## Error Handling
|
|
598
598
|
|
|
599
599
|
### Phase not found
|
|
600
|
-
If the specified phase doesn't exist in ROADMAP.md, display:
|
|
601
|
-
```
|
|
602
|
-
ERROR
|
|
603
|
-
|
|
604
|
-
Phase {N} not found in ROADMAP.md.
|
|
605
|
-
|
|
606
|
-
**To fix:** Run `/pbr:status` to see available phases.
|
|
607
|
-
```
|
|
600
|
+
If the specified phase doesn't exist in ROADMAP.md, display a branded error box — see `skills/shared/error-reporting.md`, pattern: Phase not found.
|
|
608
601
|
|
|
609
602
|
### Missing prerequisites
|
|
610
|
-
If REQUIREMENTS.md or ROADMAP.md don't exist, display:
|
|
611
|
-
```
|
|
612
|
-
ERROR
|
|
613
|
-
|
|
614
|
-
Project not initialized. Missing REQUIREMENTS.md or ROADMAP.md.
|
|
615
|
-
|
|
616
|
-
**To fix:** Run `/pbr:begin` first.
|
|
617
|
-
```
|
|
603
|
+
If REQUIREMENTS.md or ROADMAP.md don't exist, display a branded error box — see `skills/shared/error-reporting.md`, pattern: Missing prerequisites.
|
|
618
604
|
|
|
619
605
|
### Research agent fails
|
|
620
606
|
If the researcher agent fails, display:
|
|
@@ -625,29 +611,10 @@ This may result in less accurate plans.
|
|
|
625
611
|
Continue to the planning step.
|
|
626
612
|
|
|
627
613
|
### Planner agent fails
|
|
628
|
-
If the planner agent fails, display:
|
|
629
|
-
```
|
|
630
|
-
ERROR
|
|
631
|
-
|
|
632
|
-
Planner agent failed for Phase {N}.
|
|
633
|
-
|
|
634
|
-
**To fix:**
|
|
635
|
-
- Try again with `/pbr:plan {N} --skip-research`
|
|
636
|
-
- Check `.planning/CONTEXT.md` for conflicting constraints
|
|
637
|
-
```
|
|
614
|
+
If the planner agent fails, display a branded error box — see `skills/shared/error-reporting.md`, pattern: Planner agent failure.
|
|
638
615
|
|
|
639
616
|
### Checker loops forever
|
|
640
|
-
After 3 revision iterations without passing, display:
|
|
641
|
-
```
|
|
642
|
-
ERROR
|
|
643
|
-
|
|
644
|
-
Plan checker failed to pass after 3 revision iterations for Phase {N}.
|
|
645
|
-
|
|
646
|
-
**To fix:**
|
|
647
|
-
- Review the remaining issues below and decide whether to proceed or revise manually
|
|
648
|
-
- Run `/pbr:plan {N}` to restart planning from scratch
|
|
649
|
-
```
|
|
650
|
-
|
|
617
|
+
After 3 revision iterations without passing, display a branded error box — see `skills/shared/error-reporting.md`, pattern: Checker loops.
|
|
651
618
|
Present remaining issues and ask user to decide: proceed or intervene.
|
|
652
619
|
|
|
653
620
|
---
|
|
@@ -672,42 +639,5 @@ Delete `.planning/.active-skill` if it exists. This must happen on all paths (su
|
|
|
672
639
|
|
|
673
640
|
After planning completes, present:
|
|
674
641
|
|
|
675
|
-
Use the branded stage banner from `
|
|
676
|
-
|
|
677
|
-
```
|
|
678
|
-
╔══════════════════════════════════════════════════════════════╗
|
|
679
|
-
║ PLAN-BUILD-RUN ► PLANNING PHASE {N} ║
|
|
680
|
-
╚══════════════════════════════════════════════════════════════╝
|
|
681
|
-
|
|
682
|
-
**Phase {N}: {name}** — {plan_count} plans created
|
|
683
|
-
|
|
684
|
-
Plans:
|
|
685
|
-
{phase}-01: {name} (Wave 1, {task_count} tasks)
|
|
686
|
-
{phase}-02: {name} (Wave 1, {task_count} tasks)
|
|
687
|
-
{phase}-03: {name} (Wave 2, {task_count} tasks)
|
|
688
|
-
|
|
689
|
-
Wave execution:
|
|
690
|
-
Wave 1: Plans 01, 02 (parallel)
|
|
691
|
-
Wave 2: Plan 03
|
|
692
|
-
```
|
|
693
|
-
|
|
694
|
-
Then use the "Next Up" routing block:
|
|
695
|
-
```
|
|
696
|
-
---
|
|
697
|
-
|
|
698
|
-
## Next Up
|
|
699
|
-
|
|
700
|
-
**Build Phase {N}** — execute these plans
|
|
701
|
-
|
|
702
|
-
/pbr:build {N}
|
|
703
|
-
|
|
704
|
-
`/clear` first for a fresh context window
|
|
705
|
-
|
|
706
|
-
---
|
|
707
|
-
|
|
708
|
-
**Also available:**
|
|
709
|
-
- /pbr:plan {N} --assumptions — review assumptions first
|
|
710
|
-
- /pbr:discuss {N} — talk through details before building
|
|
711
|
-
|
|
712
|
-
---
|
|
713
|
-
```
|
|
642
|
+
Use the branded stage banner and next-up block from `skills/plan/templates/completion-output.md.tmpl`.
|
|
643
|
+
Fill in: `{N}` (phase number), `{phase-name}`, `{plan_count}`, `{plan_list_lines}` (one line per plan with wave and task count), `{wave_table_lines}` (one line per wave).
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
╔══════════════════════════════════════════════════════════════╗
|
|
2
|
+
║ PLAN-BUILD-RUN ► PLANNING PHASE {N} ✓ ║
|
|
3
|
+
╚══════════════════════════════════════════════════════════════╝
|
|
4
|
+
|
|
5
|
+
**Phase {N}: {phase-name}** — {plan_count} plans created
|
|
6
|
+
|
|
7
|
+
Plans:
|
|
8
|
+
{plan_list_lines}
|
|
9
|
+
|
|
10
|
+
Wave execution:
|
|
11
|
+
{wave_table_lines}
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
╔══════════════════════════════════════════════════════════════╗
|
|
16
|
+
║ ▶ NEXT UP ║
|
|
17
|
+
╚══════════════════════════════════════════════════════════════╝
|
|
18
|
+
|
|
19
|
+
**Build Phase {N}** — execute these plans
|
|
20
|
+
|
|
21
|
+
/pbr:build {N}
|
|
22
|
+
|
|
23
|
+
<sub>/clear first → fresh context window</sub>
|
|
24
|
+
|
|
25
|
+
**Also available:**
|
|
26
|
+
- /pbr:plan {N} --assumptions — review assumptions first
|
|
27
|
+
- /pbr:discuss {N} — talk through details before building
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# Error Reporting — Standard Format
|
|
2
|
+
|
|
3
|
+
Use the branded error box for all blocking errors. Present the box, explain what happened, and give a specific fix action.
|
|
4
|
+
|
|
5
|
+
## Error Box Format
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
╔══════════════════════════════════════════════════════════════╗
|
|
9
|
+
║ ERROR ║
|
|
10
|
+
╚══════════════════════════════════════════════════════════════╝
|
|
11
|
+
|
|
12
|
+
{one-line description of what went wrong}
|
|
13
|
+
|
|
14
|
+
**To fix:** {specific action the user should take}
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Warning Format (non-blocking)
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
⚠ {one-line warning}
|
|
21
|
+
{optional detail or suggestion}
|
|
22
|
+
```
|
|
23
|
+
Continue execution after showing a warning.
|
|
24
|
+
|
|
25
|
+
## Common Error Patterns
|
|
26
|
+
|
|
27
|
+
### Phase not found
|
|
28
|
+
Message: "Phase {N} not found in ROADMAP.md."
|
|
29
|
+
Fix: "Run `/pbr:status` to see available phases."
|
|
30
|
+
|
|
31
|
+
### Missing prerequisites (no REQUIREMENTS.md or ROADMAP.md)
|
|
32
|
+
Message: "Project not initialized. Missing REQUIREMENTS.md or ROADMAP.md."
|
|
33
|
+
Fix: "Run `/pbr:begin` first."
|
|
34
|
+
|
|
35
|
+
### No plans found for phase
|
|
36
|
+
Message: "Phase {N} has no plans."
|
|
37
|
+
Fix: "Run `/pbr:plan {N}` first."
|
|
38
|
+
|
|
39
|
+
### Dependency phase not complete
|
|
40
|
+
Message: "Phase {N} depends on Phase {M}, which is not complete."
|
|
41
|
+
Fix: "Build Phase {M} first with `/pbr:build {M}`."
|
|
42
|
+
|
|
43
|
+
### Planner agent failure
|
|
44
|
+
Message: "Planner agent failed for Phase {N}."
|
|
45
|
+
Fix: "Try again with `/pbr:plan {N} --skip-research`. Check `.planning/CONTEXT.md` for conflicting constraints."
|
|
46
|
+
|
|
47
|
+
### Checker loops (3+ iterations without pass)
|
|
48
|
+
Message: "Plan checker failed to pass after 3 revision iterations for Phase {N}."
|
|
49
|
+
Fix: "Review the remaining issues below and decide whether to proceed or revise manually. Run `/pbr:plan {N}` to restart planning from scratch."
|
|
50
|
+
After displaying: present remaining issues and ask user to decide (proceed or intervene).
|
|
51
|
+
|
|
52
|
+
### Research agent failure
|
|
53
|
+
Display as WARNING (non-blocking): "Research agent failed. Planning without phase-specific research. This may result in less accurate plans."
|
|
54
|
+
Continue to the planning step.
|
|
55
|
+
|
|
56
|
+
## Usage
|
|
57
|
+
|
|
58
|
+
In skill files, replace repeated error box content with:
|
|
59
|
+
"Display a branded error box — use the format from `skills/shared/error-reporting.md`, pattern: {pattern name}."
|