@sienklogic/plan-build-run 2.9.1 → 2.11.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 (128) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/package.json +1 -1
  3. package/plugins/copilot-pbr/agents/codebase-mapper.agent.md +42 -0
  4. package/plugins/copilot-pbr/agents/debugger.agent.md +4 -1
  5. package/plugins/copilot-pbr/agents/executor.agent.md +31 -1
  6. package/plugins/copilot-pbr/agents/integration-checker.agent.md +33 -2
  7. package/plugins/copilot-pbr/agents/planner.agent.md +58 -1
  8. package/plugins/copilot-pbr/agents/researcher.agent.md +23 -0
  9. package/plugins/copilot-pbr/agents/synthesizer.agent.md +24 -0
  10. package/plugins/copilot-pbr/agents/verifier.agent.md +35 -1
  11. package/plugins/copilot-pbr/plugin.json +1 -1
  12. package/plugins/copilot-pbr/references/agent-contracts.md +297 -0
  13. package/plugins/copilot-pbr/references/pbr-rules.md +1 -0
  14. package/plugins/copilot-pbr/references/pbr-tools-cli.md +285 -0
  15. package/plugins/copilot-pbr/references/ui-formatting.md +38 -56
  16. package/plugins/copilot-pbr/skills/begin/SKILL.md +30 -7
  17. package/plugins/copilot-pbr/skills/build/SKILL.md +28 -31
  18. package/plugins/copilot-pbr/skills/config/SKILL.md +9 -12
  19. package/plugins/copilot-pbr/skills/continue/SKILL.md +6 -6
  20. package/plugins/copilot-pbr/skills/dashboard/SKILL.md +12 -0
  21. package/plugins/copilot-pbr/skills/debug/SKILL.md +23 -26
  22. package/plugins/copilot-pbr/skills/discuss/SKILL.md +20 -10
  23. package/plugins/copilot-pbr/skills/do/SKILL.md +3 -3
  24. package/plugins/copilot-pbr/skills/explore/SKILL.md +11 -14
  25. package/plugins/copilot-pbr/skills/health/SKILL.md +75 -19
  26. package/plugins/copilot-pbr/skills/help/SKILL.md +6 -6
  27. package/plugins/copilot-pbr/skills/import/SKILL.md +22 -18
  28. package/plugins/copilot-pbr/skills/milestone/SKILL.md +90 -48
  29. package/plugins/copilot-pbr/skills/note/SKILL.md +3 -3
  30. package/plugins/copilot-pbr/skills/pause/SKILL.md +11 -10
  31. package/plugins/copilot-pbr/skills/plan/SKILL.md +22 -9
  32. package/plugins/copilot-pbr/skills/plan/templates/planner-prompt.md.tmpl +1 -1
  33. package/plugins/copilot-pbr/skills/quick/SKILL.md +9 -12
  34. package/plugins/copilot-pbr/skills/resume/SKILL.md +9 -9
  35. package/plugins/copilot-pbr/skills/review/SKILL.md +17 -12
  36. package/plugins/copilot-pbr/skills/scan/SKILL.md +9 -11
  37. package/plugins/copilot-pbr/skills/setup/SKILL.md +54 -8
  38. package/plugins/copilot-pbr/skills/shared/error-reporting.md +2 -1
  39. package/plugins/copilot-pbr/skills/shared/progress-display.md +0 -1
  40. package/plugins/copilot-pbr/skills/shared/universal-anti-patterns.md +10 -6
  41. package/plugins/copilot-pbr/skills/status/SKILL.md +3 -3
  42. package/plugins/copilot-pbr/skills/statusline/SKILL.md +12 -8
  43. package/plugins/copilot-pbr/skills/todo/SKILL.md +51 -28
  44. package/plugins/cursor-pbr/.cursor-plugin/plugin.json +1 -1
  45. package/plugins/cursor-pbr/agents/codebase-mapper.md +42 -0
  46. package/plugins/cursor-pbr/agents/debugger.md +4 -1
  47. package/plugins/cursor-pbr/agents/executor.md +31 -1
  48. package/plugins/cursor-pbr/agents/integration-checker.md +33 -2
  49. package/plugins/cursor-pbr/agents/planner.md +58 -1
  50. package/plugins/cursor-pbr/agents/researcher.md +23 -0
  51. package/plugins/cursor-pbr/agents/synthesizer.md +24 -0
  52. package/plugins/cursor-pbr/agents/verifier.md +35 -1
  53. package/plugins/cursor-pbr/references/agent-contracts.md +297 -0
  54. package/plugins/cursor-pbr/references/pbr-rules.md +1 -0
  55. package/plugins/cursor-pbr/references/pbr-tools-cli.md +285 -0
  56. package/plugins/cursor-pbr/references/ui-formatting.md +38 -56
  57. package/plugins/cursor-pbr/skills/begin/SKILL.md +30 -7
  58. package/plugins/cursor-pbr/skills/build/SKILL.md +28 -31
  59. package/plugins/cursor-pbr/skills/config/SKILL.md +9 -10
  60. package/plugins/cursor-pbr/skills/continue/SKILL.md +6 -6
  61. package/plugins/cursor-pbr/skills/dashboard/SKILL.md +12 -0
  62. package/plugins/cursor-pbr/skills/debug/SKILL.md +23 -23
  63. package/plugins/cursor-pbr/skills/discuss/SKILL.md +20 -10
  64. package/plugins/cursor-pbr/skills/do/SKILL.md +3 -3
  65. package/plugins/cursor-pbr/skills/explore/SKILL.md +11 -12
  66. package/plugins/cursor-pbr/skills/health/SKILL.md +75 -19
  67. package/plugins/cursor-pbr/skills/help/SKILL.md +6 -6
  68. package/plugins/cursor-pbr/skills/import/SKILL.md +22 -16
  69. package/plugins/cursor-pbr/skills/milestone/SKILL.md +90 -48
  70. package/plugins/cursor-pbr/skills/note/SKILL.md +3 -3
  71. package/plugins/cursor-pbr/skills/pause/SKILL.md +11 -9
  72. package/plugins/cursor-pbr/skills/plan/SKILL.md +22 -9
  73. package/plugins/cursor-pbr/skills/plan/templates/planner-prompt.md.tmpl +1 -1
  74. package/plugins/cursor-pbr/skills/quick/SKILL.md +9 -12
  75. package/plugins/cursor-pbr/skills/resume/SKILL.md +9 -9
  76. package/plugins/cursor-pbr/skills/review/SKILL.md +17 -12
  77. package/plugins/cursor-pbr/skills/scan/SKILL.md +9 -10
  78. package/plugins/cursor-pbr/skills/setup/SKILL.md +54 -8
  79. package/plugins/cursor-pbr/skills/shared/error-reporting.md +2 -1
  80. package/plugins/cursor-pbr/skills/shared/progress-display.md +0 -1
  81. package/plugins/cursor-pbr/skills/shared/universal-anti-patterns.md +10 -6
  82. package/plugins/cursor-pbr/skills/status/SKILL.md +3 -3
  83. package/plugins/cursor-pbr/skills/statusline/SKILL.md +12 -8
  84. package/plugins/cursor-pbr/skills/todo/SKILL.md +51 -28
  85. package/plugins/pbr/.claude-plugin/plugin.json +1 -1
  86. package/plugins/pbr/agents/codebase-mapper.md +42 -0
  87. package/plugins/pbr/agents/debugger.md +4 -1
  88. package/plugins/pbr/agents/executor.md +31 -1
  89. package/plugins/pbr/agents/integration-checker.md +34 -2
  90. package/plugins/pbr/agents/planner.md +58 -1
  91. package/plugins/pbr/agents/researcher.md +23 -0
  92. package/plugins/pbr/agents/synthesizer.md +24 -0
  93. package/plugins/pbr/agents/verifier.md +36 -1
  94. package/plugins/pbr/references/agent-contracts.md +297 -0
  95. package/plugins/pbr/references/pbr-rules.md +1 -0
  96. package/plugins/pbr/references/pbr-tools-cli.md +285 -0
  97. package/plugins/pbr/references/ui-formatting.md +37 -54
  98. package/plugins/pbr/scripts/check-skill-workflow.js +11 -0
  99. package/plugins/pbr/scripts/check-state-sync.js +58 -0
  100. package/plugins/pbr/scripts/check-subagent-output.js +43 -4
  101. package/plugins/pbr/scripts/validate-task.js +69 -17
  102. package/plugins/pbr/skills/begin/SKILL.md +36 -11
  103. package/plugins/pbr/skills/build/SKILL.md +37 -25
  104. package/plugins/pbr/skills/config/SKILL.md +12 -10
  105. package/plugins/pbr/skills/continue/SKILL.md +11 -9
  106. package/plugins/pbr/skills/dashboard/SKILL.md +12 -0
  107. package/plugins/pbr/skills/debug/SKILL.md +29 -23
  108. package/plugins/pbr/skills/discuss/SKILL.md +20 -10
  109. package/plugins/pbr/skills/do/SKILL.md +3 -3
  110. package/plugins/pbr/skills/explore/SKILL.md +14 -12
  111. package/plugins/pbr/skills/health/SKILL.md +76 -20
  112. package/plugins/pbr/skills/help/SKILL.md +8 -6
  113. package/plugins/pbr/skills/import/SKILL.md +25 -16
  114. package/plugins/pbr/skills/milestone/SKILL.md +88 -45
  115. package/plugins/pbr/skills/note/SKILL.md +3 -3
  116. package/plugins/pbr/skills/pause/SKILL.md +13 -9
  117. package/plugins/pbr/skills/plan/SKILL.md +28 -13
  118. package/plugins/pbr/skills/plan/templates/planner-prompt.md.tmpl +1 -1
  119. package/plugins/pbr/skills/quick/SKILL.md +12 -10
  120. package/plugins/pbr/skills/resume/SKILL.md +11 -9
  121. package/plugins/pbr/skills/review/SKILL.md +35 -24
  122. package/plugins/pbr/skills/scan/SKILL.md +12 -10
  123. package/plugins/pbr/skills/setup/SKILL.md +53 -7
  124. package/plugins/pbr/skills/shared/error-reporting.md +2 -0
  125. package/plugins/pbr/skills/shared/universal-anti-patterns.md +10 -6
  126. package/plugins/pbr/skills/status/SKILL.md +8 -6
  127. package/plugins/pbr/skills/statusline/SKILL.md +12 -8
  128. package/plugins/pbr/skills/todo/SKILL.md +51 -28
@@ -8,9 +8,9 @@ description: "Manage milestones: new, complete, audit, gaps."
8
8
  **Before ANY tool calls**, display this banner:
9
9
 
10
10
  ```
11
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
12
- PLAN-BUILD-RUN ► MILESTONE
13
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
11
+ ╔══════════════════════════════════════════════════════════════╗
12
+ PLAN-BUILD-RUN ► MILESTONE
13
+ ╚══════════════════════════════════════════════════════════════╝
14
14
  ```
15
15
 
16
16
  Then proceed to Step 1.
@@ -28,9 +28,9 @@ This skill runs **inline** for most subcommands, but spawns agents for `audit`.
28
28
  Reference: `skills/shared/context-budget.md` for the universal orchestrator rules.
29
29
 
30
30
  Additionally for this skill:
31
- - **Never** perform integration checks yourself — delegate to the integration-checker subagent
31
+ - **Never** perform integration checks yourself — delegate to the integration-checker agent
32
32
  - **Minimize** reading audit and verification outputs — read only frontmatter and status fields
33
- - **Delegate** all cross-phase integration analysis to the integration-checker subagent
33
+ - **Delegate** all cross-phase integration analysis to the integration-checker agent
34
34
 
35
35
  ---
36
36
 
@@ -155,9 +155,9 @@ Start a new milestone cycle with new phases.
155
155
 
156
156
  10. **Confirm** with branded output:
157
157
  ```
158
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
159
- PLAN-BUILD-RUN ► MILESTONE CREATED ✓
160
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
158
+ ╔══════════════════════════════════════════════════════════════╗
159
+ PLAN-BUILD-RUN ► MILESTONE CREATED ✓
160
+ ╚══════════════════════════════════════════════════════════════╝
161
161
 
162
162
  **Milestone: {name}** — {count} phases
163
163
 
@@ -166,9 +166,11 @@ Start a new milestone cycle with new phases.
166
166
  {N+1}. {name}
167
167
  ...
168
168
 
169
- ───────────────────────────────────────────────────────────────
170
169
 
171
- ## ▶ Next Up
170
+
171
+ ╔══════════════════════════════════════════════════════════════╗
172
+ ║ ▶ NEXT UP ║
173
+ ╚══════════════════════════════════════════════════════════════╝
172
174
 
173
175
  **Phase {N}: {name}** — start with discussion or planning
174
176
 
@@ -176,13 +178,13 @@ Start a new milestone cycle with new phases.
176
178
 
177
179
  <sub>`/clear` first → fresh context window</sub>
178
180
 
179
- ───────────────────────────────────────────────────────────────
181
+
180
182
 
181
183
  **Also available:**
182
184
  - `/pbr:plan {N}` — skip discussion, plan directly
183
185
  - `/pbr:status` — see project status
184
186
 
185
- ───────────────────────────────────────────────────────────────
187
+
186
188
  ```
187
189
 
188
190
  ---
@@ -259,14 +261,40 @@ Archive a completed milestone and prepare for the next one.
259
261
 
260
262
  5. **Archive milestone documents:**
261
263
 
264
+ **CRITICAL: Pre-flight safety checks BEFORE archiving. Do NOT skip this step.**
265
+
266
+ Before creating or moving anything, verify the destination is safe:
267
+ - Check if `.planning/milestones/{version}/` already exists
268
+ - If it exists AND contains files (phases/, STATS.md, etc.), STOP and display:
269
+ ```
270
+ ╔══════════════════════════════════════════════════════════════╗
271
+ ║ ERROR ║
272
+ ╚══════════════════════════════════════════════════════════════╝
273
+
274
+ Archive destination `.planning/milestones/{version}/` already contains files.
275
+ Completing this milestone would overwrite the existing archive.
276
+
277
+ **To fix:** Run `/pbr:health` or manually inspect `.planning/milestones/{version}/`.
278
+ Use a different version number (e.g., {version}.1) or remove the existing archive first.
279
+ ```
280
+ Ask the user via AskUserQuestion whether to use a different version or abort.
281
+ - Verify each source phase directory exists before attempting to move it
282
+ - If any source phase directory is missing, warn but continue with the phases that do exist
283
+
284
+ **CRITICAL: Create the archive directory .planning/milestones/{version}/ NOW. Do NOT skip this step.**
285
+
262
286
  Create a versioned archive directory and move phase directories into it:
263
287
  - `.planning/milestones/{version}/ROADMAP.md` — snapshot of ROADMAP.md at completion
264
- - `.planning/milestones/{version}/REQUIREMENTS.md` — snapshot of REQUIREMENTS.md
288
+ - `.planning/milestones/{version}/REQUIREMENTS.md` — **CRITICAL: Copy REQUIREMENTS.md to archive NOW. Do NOT skip this step.** Snapshot of REQUIREMENTS.md
265
289
  - `.planning/milestones/{version}/STATS.md` — milestone statistics
266
290
  - `.planning/milestones/{version}/phases/{NN}-{slug}/` — move each milestone phase directory from `.planning/phases/` into the archive
267
291
 
292
+ **CRITICAL: Move phase directories from .planning/phases/ to archive NOW. Do NOT skip this step.**
293
+
268
294
  **Move phases:** For each phase belonging to this milestone, move (not copy) its directory from `.planning/phases/{NN}-{slug}/` to `.planning/milestones/{version}/phases/{NN}-{slug}/`. This keeps the active phases directory clean for the next milestone.
269
295
 
296
+ **CRITICAL: Write STATS.md to .planning/milestones/{version}/STATS.md NOW. Do NOT skip this step.**
297
+
270
298
  **Stats file content:**
271
299
 
272
300
  Read `skills/milestone/templates/stats-file.md.tmpl` for the stats file format. Fill in all `{variable}` placeholders with actual data gathered in Steps 3-4.
@@ -286,6 +314,8 @@ Archive a completed milestone and prepare for the next one.
286
314
 
287
315
  - Move validated requirements from active to completed section
288
316
 
317
+ **CRITICAL: Update ROADMAP.md with collapsed milestone section NOW. Do NOT skip this step.**
318
+
289
319
  7. **Collapse completed phases in ROADMAP.md:**
290
320
  Replace detailed phase entries with collapsed summaries:
291
321
 
@@ -300,6 +330,8 @@ Archive a completed milestone and prepare for the next one.
300
330
  | {N+1}. {name} | Completed |
301
331
  ```
302
332
 
333
+ **CRITICAL: Update STATE.md to mark milestone as complete NOW. Do NOT skip this step.**
334
+
303
335
  7b. **Update STATE.md:**
304
336
  - Update `.planning/STATE.md` to mark the milestone as complete
305
337
  - Clear the current milestone field or set status to "completed"
@@ -330,9 +362,9 @@ Archive a completed milestone and prepare for the next one.
330
362
 
331
363
  10. **Confirm** with branded output:
332
364
  ```
333
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
334
- PLAN-BUILD-RUN ► MILESTONE COMPLETE 🎉
335
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
365
+ ╔══════════════════════════════════════════════════════════════╗
366
+ PLAN-BUILD-RUN ► MILESTONE COMPLETE 🎉
367
+ ╚══════════════════════════════════════════════════════════════╝
336
368
 
337
369
  **{version}**
338
370
 
@@ -344,9 +376,11 @@ Archive a completed milestone and prepare for the next one.
344
376
  Archived to: .planning/milestones/{version}/
345
377
  Git tag: {version}
346
378
 
347
- ───────────────────────────────────────────────────────────────
348
379
 
349
- ## ▶ Next Up
380
+
381
+ ╔══════════════════════════════════════════════════════════════╗
382
+ ║ ▶ NEXT UP ║
383
+ ╚══════════════════════════════════════════════════════════════╝
350
384
 
351
385
  **Start the next milestone** — plan new features
352
386
 
@@ -354,13 +388,13 @@ Archive a completed milestone and prepare for the next one.
354
388
 
355
389
  <sub>`/clear` first → fresh context window</sub>
356
390
 
357
- ───────────────────────────────────────────────────────────────
391
+
358
392
 
359
393
  **Also available:**
360
394
  - `/pbr:status` — see project status
361
395
  - `/pbr:help` — see all commands
362
396
 
363
- ───────────────────────────────────────────────────────────────
397
+
364
398
  ```
365
399
 
366
400
  ---
@@ -384,7 +418,7 @@ Verify milestone completion with cross-phase integration checks.
384
418
 
385
419
  Display to the user: `◐ Spawning integration checker...`
386
420
 
387
- Spawn `Task(subagent_type: "pbr:integration-checker")` with:
421
+ Spawn `Task(agent_type: "pbr:integration-checker")` with:
388
422
 
389
423
  ```
390
424
  You are integration-checker. Perform cross-phase integration verification.
@@ -425,15 +459,17 @@ Verify milestone completion with cross-phase integration checks.
425
459
 
426
460
  **If PASSED:**
427
461
  ```
428
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
429
- PLAN-BUILD-RUN ► MILESTONE AUDIT PASSED ✓
430
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
462
+ ╔══════════════════════════════════════════════════════════════╗
463
+ PLAN-BUILD-RUN ► MILESTONE AUDIT PASSED ✓
464
+ ╚══════════════════════════════════════════════════════════════╝
431
465
 
432
466
  All phases verified, integration checks passed, requirements covered.
433
467
 
434
- ───────────────────────────────────────────────────────────────
435
468
 
436
- ## ▶ Next Up
469
+
470
+ ╔══════════════════════════════════════════════════════════════╗
471
+ ║ ▶ NEXT UP ║
472
+ ╚══════════════════════════════════════════════════════════════╝
437
473
 
438
474
  **Complete the milestone** — archive and tag
439
475
 
@@ -441,28 +477,30 @@ Verify milestone completion with cross-phase integration checks.
441
477
 
442
478
  <sub>`/clear` first → fresh context window</sub>
443
479
 
444
- ───────────────────────────────────────────────────────────────
480
+
445
481
 
446
482
  **Also available:**
447
483
  - `/pbr:milestone gaps` — address any minor issues first
448
484
  - `/pbr:status` — see project status
449
485
 
450
- ───────────────────────────────────────────────────────────────
486
+
451
487
  ```
452
488
 
453
489
  **If GAPS FOUND:**
454
490
  ```
455
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
456
- PLAN-BUILD-RUN ► MILESTONE AUDIT — GAPS FOUND ⚠
457
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
491
+ ╔══════════════════════════════════════════════════════════════╗
492
+ PLAN-BUILD-RUN ► MILESTONE AUDIT — GAPS FOUND ⚠
493
+ ╚══════════════════════════════════════════════════════════════╝
458
494
 
459
495
  Found {count} gaps:
460
496
  - {gap 1}
461
497
  - {gap 2}
462
498
 
463
- ───────────────────────────────────────────────────────────────
464
499
 
465
- ## ▶ Next Up
500
+
501
+ ╔══════════════════════════════════════════════════════════════╗
502
+ ║ ▶ NEXT UP ║
503
+ ╚══════════════════════════════════════════════════════════════╝
466
504
 
467
505
  **Close the gaps** — create fix phases
468
506
 
@@ -470,26 +508,28 @@ Verify milestone completion with cross-phase integration checks.
470
508
 
471
509
  <sub>`/clear` first → fresh context window</sub>
472
510
 
473
- ───────────────────────────────────────────────────────────────
511
+
474
512
 
475
513
  **Also available:**
476
514
  - `/pbr:milestone complete` — proceed despite gaps
477
515
  - `/pbr:status` — see project status
478
516
 
479
- ───────────────────────────────────────────────────────────────
517
+
480
518
  ```
481
519
 
482
520
  **If TECH DEBT:**
483
521
  ```
484
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
485
- PLAN-BUILD-RUN ► MILESTONE AUDIT — TECH DEBT ⚠
486
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
522
+ ╔══════════════════════════════════════════════════════════════╗
523
+ PLAN-BUILD-RUN ► MILESTONE AUDIT — TECH DEBT ⚠
524
+ ╚══════════════════════════════════════════════════════════════╝
487
525
 
488
526
  Milestone functional but has {count} tech debt items.
489
527
 
490
- ───────────────────────────────────────────────────────────────
491
528
 
492
- ## ▶ Next Up
529
+
530
+ ╔══════════════════════════════════════════════════════════════╗
531
+ ║ ▶ NEXT UP ║
532
+ ╚══════════════════════════════════════════════════════════════╝
493
533
 
494
534
  **Address tech debt or proceed**
495
535
 
@@ -498,7 +538,7 @@ Verify milestone completion with cross-phase integration checks.
498
538
 
499
539
  <sub>`/clear` first → fresh context window</sub>
500
540
 
501
- ───────────────────────────────────────────────────────────────
541
+
502
542
  ```
503
543
 
504
544
  ---
@@ -581,17 +621,19 @@ Create phases to close gaps found during an audit.
581
621
 
582
622
  9. **Confirm** with branded output:
583
623
  ```
584
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
585
- PLAN-BUILD-RUN ► GAP PHASES CREATED ✓
586
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
624
+ ╔══════════════════════════════════════════════════════════════╗
625
+ PLAN-BUILD-RUN ► GAP PHASES CREATED ✓
626
+ ╚══════════════════════════════════════════════════════════════╝
587
627
 
588
628
  Created {count} gap-closure phase(s):
589
629
  - Phase {N}: {name}
590
630
  - Phase {N+1}: {name}
591
631
 
592
- ───────────────────────────────────────────────────────────────
593
632
 
594
- ## ▶ Next Up
633
+
634
+ ╔══════════════════════════════════════════════════════════════╗
635
+ ║ ▶ NEXT UP ║
636
+ ╚══════════════════════════════════════════════════════════════╝
595
637
 
596
638
  **Plan the first gap-closure phase**
597
639
 
@@ -599,12 +641,12 @@ Create phases to close gaps found during an audit.
599
641
 
600
642
  <sub>`/clear` first → fresh context window</sub>
601
643
 
602
- ───────────────────────────────────────────────────────────────
644
+
603
645
 
604
646
  **Also available:**
605
647
  - `/pbr:status` — see project status
606
648
 
607
- ───────────────────────────────────────────────────────────────
649
+
608
650
  ```
609
651
 
610
652
  ---
@@ -8,9 +8,9 @@ description: "Zero-friction idea capture. Append, list, or promote notes to todo
8
8
  **Before ANY tool calls**, display this banner:
9
9
 
10
10
  ```
11
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
12
- PLAN-BUILD-RUN ► NOTE
13
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
11
+ ╔══════════════════════════════════════════════════════════════╗
12
+ PLAN-BUILD-RUN ► NOTE
13
+ ╚══════════════════════════════════════════════════════════════╝
14
14
  ```
15
15
 
16
16
  Then proceed to Step 1.
@@ -8,9 +8,9 @@ description: "Save your current session state for later resumption."
8
8
  **Before ANY tool calls**, display this banner:
9
9
 
10
10
  ```
11
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
12
- PLAN-BUILD-RUN ► PAUSING SESSION
13
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
11
+ ╔══════════════════════════════════════════════════════════════╗
12
+ PLAN-BUILD-RUN ► PAUSING SESSION
13
+ ╚══════════════════════════════════════════════════════════════╝
14
14
  ```
15
15
 
16
16
  Then proceed to Step 1.
@@ -118,6 +118,8 @@ Determine the logical next action (same routing logic as `/pbr:status`):
118
118
 
119
119
  ### Step 4: Write .continue-here.md
120
120
 
121
+ **CRITICAL: Write pause state NOW before displaying confirmation. Do NOT skip this step.**
122
+
121
123
  Write the handoff file to the current phase directory:
122
124
 
123
125
  **Path:** `.planning/phases/{NN}-{phase-name}/.continue-here.md`
@@ -164,17 +166,17 @@ git commit -m "wip(planning): save session state — phase {N} plan {M}"
164
166
  Display branded confirmation:
165
167
 
166
168
  ```
167
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
168
- PLAN-BUILD-RUN ► SESSION SAVED ✓
169
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
169
+ ╔══════════════════════════════════════════════════════════════╗
170
+ PLAN-BUILD-RUN ► SESSION SAVED ✓
171
+ ╚══════════════════════════════════════════════════════════════╝
170
172
 
171
173
  Position: Phase {N} — {phase name}, Plan {M}
172
174
  Completed: {count} plans this session
173
175
  Remaining: {count} plans in this phase
174
176
 
175
- ───────────────────────────────────────────────────────────────
176
-
177
- ## ▶ Next Up
177
+ ╔══════════════════════════════════════════════════════════════╗
178
+ ║ ▶ NEXT UP ║
179
+ ╚══════════════════════════════════════════════════════════════╝
178
180
 
179
181
  **Resume in your next session**
180
182
 
@@ -182,7 +184,6 @@ Remaining: {count} plans in this phase
182
184
 
183
185
  <sub>`/clear` first → fresh context window</sub>
184
186
 
185
- ───────────────────────────────────────────────────────────────
186
187
  ```
187
188
 
188
189
  ---
@@ -20,9 +20,9 @@ Additionally for this skill:
20
20
  **Before ANY tool calls**, display this banner:
21
21
 
22
22
  ```
23
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
24
- PLAN-BUILD-RUN ► PLANNING PHASE {N}
25
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
23
+ ╔══════════════════════════════════════════════════════════════╗
24
+ PLAN-BUILD-RUN ► PLANNING PHASE {N}
25
+ ╚══════════════════════════════════════════════════════════════╝
26
26
  ```
27
27
 
28
28
  Where `{N}` is the phase number from `$ARGUMENTS`. Then proceed to Step 1.
@@ -112,6 +112,7 @@ Reference: `skills/shared/config-loading.md` for the tooling shortcut (`state lo
112
112
 
113
113
  1. Parse `$ARGUMENTS` for phase number and flags
114
114
  2. Read `.planning/config.json` for settings (see config-loading.md for field reference)
115
+ **CRITICAL: Write .active-skill NOW.** Write the text "plan" to `.planning/.active-skill` using the Write tool.
115
116
  3. Resolve depth profile: run `node ${PLUGIN_ROOT}/scripts/pbr-tools.js config resolve-depth` to get the effective feature/gate settings for the current depth. Store the result for use in later gating decisions.
116
117
  4. Validate:
117
118
  - Phase exists in ROADMAP.md
@@ -471,6 +472,8 @@ Use the approve-revise-abort pattern from `skills/shared/gate-prompts.md`:
471
472
 
472
473
  ### Subcommand: `add`
473
474
 
475
+ **CRITICAL: Write .active-skill NOW.** Write the text "plan" to `.planning/.active-skill` using the Write tool.
476
+
474
477
  1. Read `.planning/ROADMAP.md`
475
478
  2. Calculate next phase number (last phase + 1)
476
479
  3. Ask user: "What's the goal for this new phase?"
@@ -480,11 +483,14 @@ Use the approve-revise-abort pattern from `skills/shared/gate-prompts.md`:
480
483
  7. Create phase directory: `.planning/phases/{NN}-{slug}/`
481
484
  8. Update STATE.md if needed
482
485
  9. Suggest: `/pbr:plan {N}` to plan the new phase
486
+ 10. Delete `.planning/.active-skill` if it exists.
483
487
 
484
488
  ### Subcommand: `insert <N>`
485
489
 
486
490
  Reference: `skills/plan/decimal-phase-calc.md` for decimal numbering rules.
487
491
 
492
+ **CRITICAL: Write .active-skill NOW.** Write the text "plan" to `.planning/.active-skill` using the Write tool.
493
+
488
494
  1. Read `.planning/ROADMAP.md`
489
495
  2. Calculate decimal phase number:
490
496
  - If inserting at position 3: becomes 3.1
@@ -495,6 +501,7 @@ Reference: `skills/plan/decimal-phase-calc.md` for decimal numbering rules.
495
501
  5. Create phase directory: `.planning/phases/{NN.M}-{slug}/`
496
502
  6. Update dependencies of subsequent phases if affected
497
503
  7. Suggest: `/pbr:plan {N.M}` to plan the new phase
504
+ 8. Delete `.planning/.active-skill` if it exists.
498
505
 
499
506
  ### Subcommand: `remove <N>`
500
507
 
@@ -503,13 +510,15 @@ Reference: `skills/plan/decimal-phase-calc.md` for decimal numbering rules.
503
510
  - Phase must exist
504
511
  - Phase must be in `pending` or `not started` status (cannot remove completed/in-progress phases)
505
512
  - No other phases depend on this phase (or user confirms breaking dependencies)
506
- 3. Confirm with user: "Remove Phase {N}: {name}? This will delete the phase directory and renumber subsequent phases."
507
- 4. If confirmed:
513
+ 3. **CRITICAL: Write .active-skill NOW.** Write the text "plan" to `.planning/.active-skill` using the Write tool.
514
+ 4. Confirm with user: "Remove Phase {N}: {name}? This will delete the phase directory and renumber subsequent phases."
515
+ 5. If confirmed:
508
516
  - Delete `.planning/phases/{NN}-{slug}/` directory
509
517
  - Remove phase from ROADMAP.md
510
518
  - Renumber subsequent phases (N+1 becomes N, etc.)
511
519
  - Update all `depends_on` references in ROADMAP.md
512
520
  - Update STATE.md if needed
521
+ 6. Delete `.planning/.active-skill` if it exists.
513
522
 
514
523
  ---
515
524
 
@@ -597,13 +606,17 @@ Present remaining issues and ask user to decide: proceed or intervene.
597
606
  | File | Purpose | When |
598
607
  |------|---------|------|
599
608
  | `.planning/phases/{NN}-{slug}/RESEARCH.md` | Phase-specific research | Step 4 |
600
- | `.planning/phases/{NN}-{slug}/{phase}-{NN}-PLAN.md` | Executable plan files | Step 5 |
609
+ | `.planning/phases/{NN}-{slug}/PLAN-{NN}.md` | Executable plan files | Step 5 |
601
610
  | `.planning/CONTEXT.md` | Updated with assumptions | Step 3 (--assumptions) |
602
611
  | `.planning/ROADMAP.md` | Plans Complete + Status -> `planned`; updated for add/insert/remove | Step 8, Subcommands |
603
612
  | `.planning/STATE.md` | Updated with plan status | Step 8 |
604
613
 
605
614
  ---
606
615
 
616
+ ## Cleanup
617
+
618
+ Delete `.planning/.active-skill` if it exists. This must happen on all paths (success, partial, and failure) before reporting results.
619
+
607
620
  ## Completion
608
621
 
609
622
  After planning completes, present:
@@ -611,9 +624,9 @@ After planning completes, present:
611
624
  Use the branded stage banner from `references/ui-formatting.md`:
612
625
 
613
626
  ```
614
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
615
- PLAN-BUILD-RUN ► PLANNING PHASE {N}
616
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
627
+ ╔══════════════════════════════════════════════════════════════╗
628
+ PLAN-BUILD-RUN ► PLANNING PHASE {N}
629
+ ╚══════════════════════════════════════════════════════════════╝
617
630
 
618
631
  **Phase {N}: {name}** — {plan_count} plans created
619
632
 
@@ -32,7 +32,7 @@ Key rules:
32
32
  4. Every task needs all 5 elements: name, files, action, verify, done
33
33
  5. Honor all locked decisions from CONTEXT.md
34
34
  6. Do NOT include deferred ideas
35
- 7. Write plan files to: .planning/phases/{NN}-{slug}/{phase}-{plan_num}-PLAN.md
35
+ 7. Write plan files to: .planning/phases/{NN}-{slug}/PLAN-{plan_num}.md
36
36
  8. If any task requires env vars, API keys, or external service setup, note it in the task's <action> — the executor will generate USER-SETUP.md automatically
37
37
 
38
38
  Use the Write tool to create each plan file.
@@ -18,9 +18,9 @@ This skill **spawns a single Task(agent_type: "pbr:executor")** for execution.
18
18
  **Before ANY tool calls**, display this banner:
19
19
 
20
20
  ```
21
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
22
- PLAN-BUILD-RUN ► QUICK TASK
23
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
21
+ ╔══════════════════════════════════════════════════════════════╗
22
+ PLAN-BUILD-RUN ► QUICK TASK
23
+ ╚══════════════════════════════════════════════════════════════╝
24
24
  ```
25
25
 
26
26
  Then proceed to Step 1.
@@ -249,17 +249,17 @@ Display results to the user with branded output:
249
249
 
250
250
  **If completed:**
251
251
  ```
252
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
253
- PLAN-BUILD-RUN ► QUICK TASK COMPLETE ✓
254
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
252
+ ╔══════════════════════════════════════════════════════════════╗
253
+ PLAN-BUILD-RUN ► QUICK TASK COMPLETE ✓
254
+ ╚══════════════════════════════════════════════════════════════╝
255
255
 
256
256
  **Quick Task {NNN}:** {description}
257
257
  Commit: {hash} — {commit message}
258
258
  Files: {list of files changed}
259
259
 
260
- ───────────────────────────────────────────────────────────────
261
-
262
- ## ▶ Next Up
260
+ ╔══════════════════════════════════════════════════════════════╗
261
+ ║ ▶ NEXT UP ║
262
+ ╚══════════════════════════════════════════════════════════════╝
263
263
 
264
264
  **Continue your workflow** — task complete
265
265
 
@@ -267,13 +267,10 @@ Files: {list of files changed}
267
267
 
268
268
  <sub>`/clear` first → fresh context window</sub>
269
269
 
270
- ───────────────────────────────────────────────────────────────
271
-
272
270
  **Also available:**
273
271
  - `/pbr:continue` — execute next logical step
274
272
  - `/pbr:todo list` — see pending todos
275
273
 
276
- ───────────────────────────────────────────────────────────────
277
274
  ```
278
275
 
279
276
  **If partial:**
@@ -8,9 +8,9 @@ description: "Pick up where you left off. Restores context and suggests next act
8
8
  **Before ANY tool calls**, display this banner:
9
9
 
10
10
  ```
11
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
12
- PLAN-BUILD-RUN ► RESUMING SESSION
13
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
11
+ ╔══════════════════════════════════════════════════════════════╗
12
+ PLAN-BUILD-RUN ► RESUMING SESSION
13
+ ╚══════════════════════════════════════════════════════════════╝
14
14
  ```
15
15
 
16
16
  Then proceed to Step 1.
@@ -144,9 +144,9 @@ Use the selected pause point for the rest of the resume flow.
144
144
  3. Display the resume context using the branded banner:
145
145
 
146
146
  ```
147
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
148
- PLAN-BUILD-RUN ► SESSION RESTORED ✓
149
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
147
+ ╔══════════════════════════════════════════════════════════════╗
148
+ PLAN-BUILD-RUN ► SESSION RESTORED ✓
149
+ ╚══════════════════════════════════════════════════════════════╝
150
150
 
151
151
  Resuming session from {pause date}
152
152
 
@@ -179,9 +179,10 @@ Blockers:
179
179
 
180
180
  **If only one clear next action exists**, present it with branded routing:
181
181
  ```
182
- ───────────────────────────────────────────────────────────────
183
182
 
184
- ## ▶ Next Up
183
+ ╔══════════════════════════════════════════════════════════════╗
184
+ ║ ▶ NEXT UP ║
185
+ ╚══════════════════════════════════════════════════════════════╝
185
186
 
186
187
  **{explanation from continue-here}**
187
188
 
@@ -189,7 +190,6 @@ Blockers:
189
190
 
190
191
  <sub>`/clear` first → fresh context window</sub>
191
192
 
192
- ───────────────────────────────────────────────────────────────
193
193
  ```
194
194
 
195
195
  **If multiple reasonable actions exist** (e.g., the continue-here suggests one thing but the filesystem state suggests another), use the **action-routing** pattern (see `skills/shared/gate-prompts.md`):