@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.
Files changed (27) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/package.json +1 -1
  3. package/plugins/copilot-pbr/plugin.json +1 -1
  4. package/plugins/copilot-pbr/skills/milestone/SKILL.md +2 -52
  5. package/plugins/copilot-pbr/skills/milestone/templates/edge-cases.md +54 -0
  6. package/plugins/copilot-pbr/skills/plan/SKILL.md +6 -76
  7. package/plugins/copilot-pbr/skills/plan/templates/completion-output.md.tmpl +27 -0
  8. package/plugins/copilot-pbr/skills/shared/error-reporting.md +59 -0
  9. package/plugins/cursor-pbr/.cursor-plugin/plugin.json +1 -1
  10. package/plugins/cursor-pbr/skills/milestone/SKILL.md +2 -52
  11. package/plugins/cursor-pbr/skills/milestone/templates/edge-cases.md +54 -0
  12. package/plugins/cursor-pbr/skills/plan/SKILL.md +6 -76
  13. package/plugins/cursor-pbr/skills/plan/templates/completion-output.md.tmpl +27 -0
  14. package/plugins/cursor-pbr/skills/shared/error-reporting.md +59 -0
  15. package/plugins/pbr/.claude-plugin/plugin.json +1 -1
  16. package/plugins/pbr/scripts/lib/build.js +454 -0
  17. package/plugins/pbr/scripts/pbr-tools.js +55 -1
  18. package/plugins/pbr/skills/build/SKILL.md +25 -53
  19. package/plugins/pbr/skills/milestone/SKILL.md +2 -52
  20. package/plugins/pbr/skills/milestone/templates/audit-output.md.tmpl +76 -0
  21. package/plugins/pbr/skills/milestone/templates/complete-output.md.tmpl +32 -0
  22. package/plugins/pbr/skills/milestone/templates/edge-cases.md +54 -0
  23. package/plugins/pbr/skills/milestone/templates/gaps-output.md.tmpl +25 -0
  24. package/plugins/pbr/skills/milestone/templates/new-output.md.tmpl +29 -0
  25. package/plugins/pbr/skills/plan/SKILL.md +13 -93
  26. package/plugins/pbr/skills/plan/templates/completion-output.md.tmpl +27 -0
  27. 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,6 +1,6 @@
1
1
  {
2
2
  "name": "@sienklogic/plan-build-run",
3
- "version": "2.47.0",
3
+ "version": "2.49.0",
4
4
  "description": "Plan it, Build it, Run it — structured development workflow for Claude Code",
5
5
  "keywords": [
6
6
  "claude-code",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "pbr",
3
3
  "displayName": "Plan-Build-Run",
4
- "version": "2.47.0",
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
- ### No ROADMAP.md exists
783
- - For `new`: Create one from scratch (this is a fresh start)
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 `references/ui-formatting.md`:
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.47.0",
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
- ### No ROADMAP.md exists
784
- - For `new`: Create one from scratch (this is a fresh start)
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 `references/ui-formatting.md`:
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}."