@sienklogic/plan-build-run 2.10.0 → 2.12.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 (126) hide show
  1. package/CHANGELOG.md +51 -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/ui-formatting.md +38 -56
  14. package/plugins/copilot-pbr/skills/begin/SKILL.md +30 -7
  15. package/plugins/copilot-pbr/skills/build/SKILL.md +28 -31
  16. package/plugins/copilot-pbr/skills/config/SKILL.md +9 -12
  17. package/plugins/copilot-pbr/skills/continue/SKILL.md +6 -6
  18. package/plugins/copilot-pbr/skills/dashboard/SKILL.md +3 -3
  19. package/plugins/copilot-pbr/skills/debug/SKILL.md +23 -26
  20. package/plugins/copilot-pbr/skills/discuss/SKILL.md +20 -10
  21. package/plugins/copilot-pbr/skills/do/SKILL.md +3 -3
  22. package/plugins/copilot-pbr/skills/explore/SKILL.md +11 -14
  23. package/plugins/copilot-pbr/skills/health/SKILL.md +75 -19
  24. package/plugins/copilot-pbr/skills/help/SKILL.md +6 -6
  25. package/plugins/copilot-pbr/skills/import/SKILL.md +22 -18
  26. package/plugins/copilot-pbr/skills/milestone/SKILL.md +90 -48
  27. package/plugins/copilot-pbr/skills/note/SKILL.md +3 -3
  28. package/plugins/copilot-pbr/skills/pause/SKILL.md +11 -10
  29. package/plugins/copilot-pbr/skills/plan/SKILL.md +22 -9
  30. package/plugins/copilot-pbr/skills/plan/templates/planner-prompt.md.tmpl +1 -1
  31. package/plugins/copilot-pbr/skills/quick/SKILL.md +9 -12
  32. package/plugins/copilot-pbr/skills/resume/SKILL.md +9 -9
  33. package/plugins/copilot-pbr/skills/review/SKILL.md +17 -12
  34. package/plugins/copilot-pbr/skills/scan/SKILL.md +9 -11
  35. package/plugins/copilot-pbr/skills/setup/SKILL.md +31 -8
  36. package/plugins/copilot-pbr/skills/shared/error-reporting.md +2 -1
  37. package/plugins/copilot-pbr/skills/shared/progress-display.md +0 -1
  38. package/plugins/copilot-pbr/skills/shared/universal-anti-patterns.md +10 -6
  39. package/plugins/copilot-pbr/skills/status/SKILL.md +3 -3
  40. package/plugins/copilot-pbr/skills/statusline/SKILL.md +12 -8
  41. package/plugins/copilot-pbr/skills/todo/SKILL.md +51 -28
  42. package/plugins/cursor-pbr/.cursor-plugin/plugin.json +1 -1
  43. package/plugins/cursor-pbr/agents/codebase-mapper.md +42 -0
  44. package/plugins/cursor-pbr/agents/debugger.md +4 -1
  45. package/plugins/cursor-pbr/agents/executor.md +31 -1
  46. package/plugins/cursor-pbr/agents/integration-checker.md +33 -2
  47. package/plugins/cursor-pbr/agents/planner.md +58 -1
  48. package/plugins/cursor-pbr/agents/researcher.md +23 -0
  49. package/plugins/cursor-pbr/agents/synthesizer.md +24 -0
  50. package/plugins/cursor-pbr/agents/verifier.md +35 -1
  51. package/plugins/cursor-pbr/references/agent-contracts.md +297 -0
  52. package/plugins/cursor-pbr/references/ui-formatting.md +38 -56
  53. package/plugins/cursor-pbr/skills/begin/SKILL.md +30 -7
  54. package/plugins/cursor-pbr/skills/build/SKILL.md +28 -31
  55. package/plugins/cursor-pbr/skills/config/SKILL.md +9 -10
  56. package/plugins/cursor-pbr/skills/continue/SKILL.md +6 -6
  57. package/plugins/cursor-pbr/skills/dashboard/SKILL.md +3 -3
  58. package/plugins/cursor-pbr/skills/debug/SKILL.md +23 -23
  59. package/plugins/cursor-pbr/skills/discuss/SKILL.md +20 -10
  60. package/plugins/cursor-pbr/skills/do/SKILL.md +3 -3
  61. package/plugins/cursor-pbr/skills/explore/SKILL.md +11 -12
  62. package/plugins/cursor-pbr/skills/health/SKILL.md +75 -19
  63. package/plugins/cursor-pbr/skills/help/SKILL.md +6 -6
  64. package/plugins/cursor-pbr/skills/import/SKILL.md +22 -16
  65. package/plugins/cursor-pbr/skills/milestone/SKILL.md +90 -48
  66. package/plugins/cursor-pbr/skills/note/SKILL.md +3 -3
  67. package/plugins/cursor-pbr/skills/pause/SKILL.md +11 -9
  68. package/plugins/cursor-pbr/skills/plan/SKILL.md +22 -9
  69. package/plugins/cursor-pbr/skills/plan/templates/planner-prompt.md.tmpl +1 -1
  70. package/plugins/cursor-pbr/skills/quick/SKILL.md +9 -12
  71. package/plugins/cursor-pbr/skills/resume/SKILL.md +9 -9
  72. package/plugins/cursor-pbr/skills/review/SKILL.md +17 -12
  73. package/plugins/cursor-pbr/skills/scan/SKILL.md +9 -10
  74. package/plugins/cursor-pbr/skills/setup/SKILL.md +31 -8
  75. package/plugins/cursor-pbr/skills/shared/error-reporting.md +2 -1
  76. package/plugins/cursor-pbr/skills/shared/progress-display.md +0 -1
  77. package/plugins/cursor-pbr/skills/shared/universal-anti-patterns.md +10 -6
  78. package/plugins/cursor-pbr/skills/status/SKILL.md +3 -3
  79. package/plugins/cursor-pbr/skills/statusline/SKILL.md +12 -8
  80. package/plugins/cursor-pbr/skills/todo/SKILL.md +51 -28
  81. package/plugins/pbr/.claude-plugin/plugin.json +1 -1
  82. package/plugins/pbr/agents/codebase-mapper.md +42 -0
  83. package/plugins/pbr/agents/debugger.md +4 -1
  84. package/plugins/pbr/agents/executor.md +31 -1
  85. package/plugins/pbr/agents/integration-checker.md +34 -2
  86. package/plugins/pbr/agents/planner.md +58 -1
  87. package/plugins/pbr/agents/researcher.md +23 -0
  88. package/plugins/pbr/agents/synthesizer.md +24 -0
  89. package/plugins/pbr/agents/verifier.md +36 -1
  90. package/plugins/pbr/references/agent-contracts.md +297 -0
  91. package/plugins/pbr/references/ui-formatting.md +37 -54
  92. package/plugins/pbr/scripts/check-roadmap-sync.js +9 -1
  93. package/plugins/pbr/scripts/check-skill-workflow.js +11 -0
  94. package/plugins/pbr/scripts/check-state-sync.js +58 -0
  95. package/plugins/pbr/scripts/check-subagent-output.js +75 -6
  96. package/plugins/pbr/scripts/log-tool-failure.js +1 -1
  97. package/plugins/pbr/scripts/progress-tracker.js +14 -0
  98. package/plugins/pbr/scripts/track-context-budget.js +10 -1
  99. package/plugins/pbr/scripts/validate-task.js +81 -17
  100. package/plugins/pbr/skills/begin/SKILL.md +36 -11
  101. package/plugins/pbr/skills/build/SKILL.md +37 -25
  102. package/plugins/pbr/skills/config/SKILL.md +12 -10
  103. package/plugins/pbr/skills/continue/SKILL.md +11 -9
  104. package/plugins/pbr/skills/dashboard/SKILL.md +3 -3
  105. package/plugins/pbr/skills/debug/SKILL.md +29 -23
  106. package/plugins/pbr/skills/discuss/SKILL.md +20 -10
  107. package/plugins/pbr/skills/do/SKILL.md +3 -3
  108. package/plugins/pbr/skills/explore/SKILL.md +14 -12
  109. package/plugins/pbr/skills/health/SKILL.md +76 -20
  110. package/plugins/pbr/skills/help/SKILL.md +8 -6
  111. package/plugins/pbr/skills/import/SKILL.md +25 -16
  112. package/plugins/pbr/skills/milestone/SKILL.md +88 -45
  113. package/plugins/pbr/skills/note/SKILL.md +3 -3
  114. package/plugins/pbr/skills/pause/SKILL.md +13 -9
  115. package/plugins/pbr/skills/plan/SKILL.md +28 -13
  116. package/plugins/pbr/skills/plan/templates/planner-prompt.md.tmpl +1 -1
  117. package/plugins/pbr/skills/quick/SKILL.md +12 -10
  118. package/plugins/pbr/skills/resume/SKILL.md +11 -9
  119. package/plugins/pbr/skills/review/SKILL.md +35 -24
  120. package/plugins/pbr/skills/scan/SKILL.md +12 -10
  121. package/plugins/pbr/skills/setup/SKILL.md +30 -7
  122. package/plugins/pbr/skills/shared/error-reporting.md +2 -0
  123. package/plugins/pbr/skills/shared/universal-anti-patterns.md +10 -6
  124. package/plugins/pbr/skills/status/SKILL.md +8 -6
  125. package/plugins/pbr/skills/statusline/SKILL.md +12 -8
  126. package/plugins/pbr/skills/todo/SKILL.md +51 -28
@@ -8,9 +8,9 @@ description: "File-based persistent todos. Add, list, complete — survives sess
8
8
  **Before ANY tool calls**, display this banner:
9
9
 
10
10
  ```
11
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
12
- PLAN-BUILD-RUN ► TODO
13
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
11
+ ╔══════════════════════════════════════════════════════════════╗
12
+ PLAN-BUILD-RUN ► TODO
13
+ ╚══════════════════════════════════════════════════════════════╝
14
14
  ```
15
15
 
16
16
  Then proceed to Step 1.
@@ -72,15 +72,17 @@ theme: {inferred-theme}
72
72
 
73
73
  8. Confirm with branded output:
74
74
  ```
75
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
76
- PLAN-BUILD-RUN ► TODO ADDED ✓
77
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
75
+ ╔══════════════════════════════════════════════════════════════╗
76
+ PLAN-BUILD-RUN ► TODO ADDED ✓
77
+ ╚══════════════════════════════════════════════════════════════╝
78
78
 
79
79
  **Todo {NNN}:** {description}
80
80
 
81
- ───────────────────────────────────────────────────────────────
82
81
 
83
- ## ▶ Next Up
82
+
83
+ ╔══════════════════════════════════════════════════════════════╗
84
+ ║ ▶ NEXT UP ║
85
+ ╚══════════════════════════════════════════════════════════════╝
84
86
 
85
87
  **Work on it now** or see your task list
86
88
 
@@ -88,13 +90,13 @@ theme: {inferred-theme}
88
90
 
89
91
  <sub>`/clear` first → fresh context window</sub>
90
92
 
91
- ───────────────────────────────────────────────────────────────
93
+
92
94
 
93
95
  **Also available:**
94
96
  - `/pbr:todo list` — see all pending todos
95
97
  - `/pbr:status` — see project status
96
98
 
97
- ───────────────────────────────────────────────────────────────
99
+
98
100
  ```
99
101
 
100
102
  ### `list [theme]`
@@ -114,21 +116,23 @@ Pending Todos:
114
116
 
115
117
  5. Offer actions with branded routing:
116
118
  ```
117
- ───────────────────────────────────────────────────────────────
118
119
 
119
- ## ▶ Next Up
120
+
121
+ ╔══════════════════════════════════════════════════════════════╗
122
+ ║ ▶ NEXT UP ║
123
+ ╚══════════════════════════════════════════════════════════════╝
120
124
 
121
125
  **Pick a todo** — mark one done or start working
122
126
 
123
127
  `/pbr:todo work <NNN>` — start working on a todo
124
128
  `/pbr:todo done <NNN>` — mark a todo as complete
125
129
 
126
- ───────────────────────────────────────────────────────────────
130
+
127
131
 
128
132
  **Also available:**
129
133
  - `/pbr:status` — see project status
130
134
 
131
- ───────────────────────────────────────────────────────────────
135
+
132
136
  ```
133
137
 
134
138
  ### `done <NNN>`
@@ -147,20 +151,37 @@ Todo {NNN} not found in pending todos.
147
151
  3. Ensure `.planning/todos/done/` directory exists (create if needed)
148
152
  4. Read the pending file content
149
153
  5. Update frontmatter in the content: set `status: done` and add `completed: {YYYY-MM-DD}`
154
+
155
+ **CRITICAL: Write to done/ FIRST, verify it exists, THEN delete from pending/. Do NOT delete pending before confirming done/ write succeeded.**
156
+
150
157
  6. Write the updated content to `.planning/todos/done/{NNN}-{slug}.md`
151
- 7. Delete the original file from `.planning/todos/pending/` (use `rm` via Bash)
158
+ 7. Verify the done/ file was written successfully: check that `.planning/todos/done/{NNN}-{slug}.md` exists and has content (use `ls` or Glob)
159
+ - If the done/ write failed, abort and display:
160
+ ```
161
+ ╔══════════════════════════════════════════════════════════════╗
162
+ ║ ERROR ║
163
+ ╚══════════════════════════════════════════════════════════════╝
164
+
165
+ Failed to write to done/. Pending file preserved.
166
+
167
+ **To fix:** Check that `.planning/todos/done/` exists and is writable.
168
+ ```
169
+ Do NOT proceed to delete the pending file.
170
+ 8. Only THEN delete the original file from `.planning/todos/pending/` (use `rm` via Bash)
152
171
  8. Update STATE.md
153
172
  9. Confirm with branded output:
154
173
  ```
155
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
156
- PLAN-BUILD-RUN ► TODO COMPLETED ✓
157
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
174
+ ╔══════════════════════════════════════════════════════════════╗
175
+ PLAN-BUILD-RUN ► TODO COMPLETED ✓
176
+ ╚══════════════════════════════════════════════════════════════╝
158
177
 
159
178
  **Todo {NNN}:** {title}
160
179
 
161
- ───────────────────────────────────────────────────────────────
162
180
 
163
- ## ▶ Next Up
181
+
182
+ ╔══════════════════════════════════════════════════════════════╗
183
+ ║ ▶ NEXT UP ║
184
+ ╚══════════════════════════════════════════════════════════════╝
164
185
 
165
186
  **See remaining tasks**
166
187
 
@@ -168,13 +189,13 @@ Todo {NNN} not found in pending todos.
168
189
 
169
190
  <sub>`/clear` first → fresh context window</sub>
170
191
 
171
- ───────────────────────────────────────────────────────────────
192
+
172
193
 
173
194
  **Also available:**
174
195
  - `/pbr:continue` — execute next logical step
175
196
  - `/pbr:status` — see project status
176
197
 
177
- ───────────────────────────────────────────────────────────────
198
+
178
199
  ```
179
200
 
180
201
  ### `work <NNN>`
@@ -206,9 +227,9 @@ Which approach?
206
227
 
207
228
  6. Display branded output:
208
229
  ```
209
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
210
- PLAN-BUILD-RUN ► WORKING ON TODO {NNN}
211
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
230
+ ╔══════════════════════════════════════════════════════════════╗
231
+ PLAN-BUILD-RUN ► WORKING ON TODO {NNN}
232
+ ╚══════════════════════════════════════════════════════════════╝
212
233
 
213
234
  **Todo {NNN}:** {title}
214
235
  **Routing to:** /pbr:{chosen-skill}
@@ -228,15 +249,17 @@ For `/pbr:plan`, if no phase exists for this work yet, suggest the user run `/pb
228
249
  8. When the skill completes, remind the user:
229
250
 
230
251
  ```
231
- ───────────────────────────────────────────────────────────────
232
252
 
233
- ## ▶ Next Up
253
+
254
+ ╔══════════════════════════════════════════════════════════════╗
255
+ ║ ▶ NEXT UP ║
256
+ ╚══════════════════════════════════════════════════════════════╝
234
257
 
235
258
  **Mark this todo as done if the work is complete**
236
259
 
237
260
  `/pbr:todo done {NNN}`
238
261
 
239
- ───────────────────────────────────────────────────────────────
262
+
240
263
  ```
241
264
 
242
265
  ### No arguments
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "pbr",
3
3
  "displayName": "Plan-Build-Run",
4
- "version": "2.10.0",
4
+ "version": "2.12.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",
@@ -45,6 +45,48 @@ You receive ONE focus area per invocation. All output is written to `.planning/c
45
45
 
46
46
  Read the relevant `.tmpl` file(s) and fill in all placeholder fields with data from your analysis.
47
47
 
48
+ ### Fallback Format (if templates unreadable)
49
+
50
+ If the template files cannot be read, use these minimum viable structures:
51
+
52
+ **STACK.md:**
53
+ ```markdown
54
+ ## Tech Stack
55
+ | Category | Technology | Version | Config File |
56
+ |----------|-----------|---------|-------------|
57
+ ## Package Manager
58
+ {name} — lock file: {path}
59
+ ```
60
+
61
+ **ARCHITECTURE.md:**
62
+ ```markdown
63
+ ## Architecture Overview
64
+ **Pattern:** {pattern name}
65
+ ## Key Components
66
+ | Component | Path | Responsibility |
67
+ |-----------|------|---------------|
68
+ ## Data Flow
69
+ {entry point} -> {processing} -> {output}
70
+ ```
71
+
72
+ **CONVENTIONS.md:**
73
+ ```markdown
74
+ ## Code Conventions
75
+ | Convention | Pattern | Example File |
76
+ |-----------|---------|-------------|
77
+ ## Naming Patterns
78
+ {description with file path evidence}
79
+ ```
80
+
81
+ **CONCERNS.md:**
82
+ ```markdown
83
+ ## Concerns
84
+ | Severity | Area | Description | File |
85
+ |----------|------|-------------|------|
86
+ ## Security Considerations
87
+ {findings}
88
+ ```
89
+
48
90
  ---
49
91
 
50
92
  ## Exploration Process
@@ -38,7 +38,8 @@ You are **debugger**, the systematic debugging agent. Investigate bugs using the
38
38
  ```yaml
39
39
  ---
40
40
  slug: "{slug}"
41
- status: "gathering" # gathering → investigating → fixing → verifying → resolved
41
+ status: "gathering" # gathering → investigating → fixing → verifying → resolved (resolution: fixed | abandoned)
42
+ # resolution: "fixed" or "abandoned" (set when status = resolved; abandoned = user ended without fix)
42
43
  created: "{ISO}"
43
44
  updated: "{ISO}"
44
45
  mode: "find_and_fix"
@@ -115,6 +116,8 @@ When you need human input, emit a checkpoint block. Always include `Debug file:`
115
116
 
116
117
  ## Fixing Protocol
117
118
 
119
+ **CRITICAL — DO NOT SKIP steps 5-8. Uncommitted fixes and unupdated debug files cause state corruption on resume.**
120
+
118
121
  **Steps**: Verify root cause → plan minimal fix → predict outcome → implement → verify → check regressions → commit → update debug file.
119
122
 
120
123
  **Guidelines**: Minimal change (root cause, not symptoms). One atomic commit. No refactoring or features. Test the fix.
@@ -28,6 +28,7 @@ You are **executor**, the code execution agent for Plan-Build-Run. You receive v
28
28
  e. If verify fails: apply deviation rules
29
29
  f. If checkpoint: STOP and return
30
30
  g. Update .PROGRESS-{plan_id} file (task number, commit SHA, timestamp)
31
+ ** CRITICAL — DO NOT SKIP STEPS 6-9. The SUMMARY.md artifact is REQUIRED for phase verification. Returning without it causes downstream failures. **
31
32
  6. Create SUMMARY.md
32
33
  7. Validate SUMMARY.md completeness
33
34
  8. Delete .PROGRESS-{plan_id} file (normal completion)
@@ -143,6 +144,33 @@ After all tasks (or at checkpoint), create `.planning/phases/{phase_dir}/SUMMARY
143
144
 
144
145
  Read `templates/SUMMARY.md.tmpl` for full structure. Status values: `complete`, `partial`, `checkpoint`.
145
146
 
147
+ ### Fallback Format (if template unreadable)
148
+
149
+ If the template file cannot be read, use this minimum viable structure:
150
+
151
+ ```yaml
152
+ ---
153
+ plan: "{plan_id}"
154
+ status: complete|partial|checkpoint
155
+ commits: ["{sha1}", "{sha2}"]
156
+ provides: ["exported item 1"]
157
+ must_haves:
158
+ - "{must-have}: DONE|PARTIAL|SKIPPED"
159
+ ---
160
+ ```
161
+
162
+ ```markdown
163
+ ## Task Results
164
+
165
+ | Task | Status | Notes |
166
+ |------|--------|-------|
167
+ | T1 | done | ... |
168
+
169
+ ## Deviations
170
+
171
+ (list any deviations from plan, or "None")
172
+ ```
173
+
146
174
  ### Completeness Checklist
147
175
 
148
176
  Before deleting `.PROGRESS-{plan_id}`, verify SUMMARY.md has:
@@ -163,6 +191,8 @@ If the plan introduced external setup requirements (env vars, API keys, system d
163
191
 
164
192
  ## Self-Check
165
193
 
194
+ **CRITICAL — Run the self-check. Skipping it means undetected failures reach the verifier.**
195
+
166
196
  After SUMMARY.md, before returning:
167
197
  1. `ls -la {path}` for each `key_files` entry
168
198
  2. `git log --oneline -n {expected_count}` — verify commit count
@@ -174,7 +204,7 @@ If ANY fails: set status to `partial`, add `self_check_failures` to frontmatter.
174
204
 
175
205
  ## Time Tracking
176
206
 
177
- Record `date +%s` at start and end. Write to SUMMARY.md frontmatter as `metrics.duration_minutes`, `metrics.start_time`, `metrics.end_time`.
207
+ Record timestamps at start and end using `node -e "console.log(new Date().toISOString())"`. To compute duration: `node -e "const s=new Date('START').getTime(),e=new Date('END').getTime(); console.log(((e-s)/60000).toFixed(1))"` (replacing START and END with the recorded ISO strings). Write to SUMMARY.md frontmatter as `metrics.duration_minutes`, `metrics.start_time`, `metrics.end_time`.
178
208
 
179
209
  ---
180
210
 
@@ -35,9 +35,13 @@ You MUST perform all applicable categories (skip only if zero items exist for th
35
35
  4. **E2E Flow Completeness** — Critical user workflows must trace from UI through API to data layer and back without breaks.
36
36
  5. **Cross-Phase Dependency Satisfaction** — Phase N's declared dependencies on Phase M must be actually satisfied in code.
37
37
 
38
+ ### Agent Contract Compliance
39
+
40
+ Read `references/agent-contracts.md` to validate agent-to-agent handoffs. Verify that each agent's actual output matches its declared contract schema — especially `provides`/`consumes` fields in SUMMARY.md and status enums in VERIFICATION.md.
41
+
38
42
  ## Critical Constraints
39
43
 
40
- - **Read-only agent** — you have NO Write or Edit tools. Report problems; other agents fix them.
44
+ - **Write access for output artifact only** — you have Write access for your output artifact only. You CANNOT fix source code — you REPORT issues.
41
45
  - **Cross-phase scope** — unlike verifier (single phase), you check across phases.
42
46
 
43
47
  ## 6-Step Verification Process
@@ -53,6 +57,33 @@ You MUST perform all applicable categories (skip only if zero items exist for th
53
57
 
54
58
  Read `templates/INTEGRATION-REPORT.md.tmpl` (relative to `plugins/pbr/`). Keep output concise: one row per check, evidence column brief. INTEGRATION-REPORT.md target 1,500 tokens (hard limit 2,500). Omit empty sections. Console output: score + critical issue count only.
55
59
 
60
+ ### Fallback Format (if template unreadable)
61
+
62
+ If the template file cannot be read, use this minimum viable structure:
63
+
64
+ ```yaml
65
+ ---
66
+ status: passed|issues_found
67
+ checks_total: N
68
+ checks_passed: M
69
+ critical_issues: K
70
+ ---
71
+ ```
72
+
73
+ ```markdown
74
+ ## Integration Checks
75
+
76
+ | Check | Status | Evidence |
77
+ |-------|--------|----------|
78
+
79
+ ## E2E Flows
80
+
81
+ | Flow | Status | Broken Link |
82
+ |------|--------|-------------|
83
+
84
+ ## Critical Issues
85
+ ```
86
+
56
87
  ## When This Agent Is Spawned
57
88
 
58
89
  - **Milestone Audit** (`/pbr:milestone audit`): Full check across ALL completed phases.
@@ -80,7 +111,7 @@ See `references/integration-patterns.md` for grep/search patterns by framework.
80
111
  12. DO NOT read agent .md files from agents/ — auto-loaded via subagent_type
81
112
 
82
113
  ### Agent-Specific
83
- - Never attempt to fix issues — you are read-only
114
+ - Never attempt to fix issues — you REPORT them
84
115
  - Imports are not usage — verify symbols are actually called
85
116
  - "File exists" is not "component is integrated"
86
117
  - Auth middleware existing somewhere does not mean routes are protected
@@ -20,7 +20,7 @@ You are **planner**, the planning agent for the Plan-Build-Run development syste
20
20
  ## Operating Modes
21
21
 
22
22
  ### Mode 1: Standard Planning
23
- Invoked with a phase goal, research, and/or planning request. Produce executable plan files at `.planning/phases/{NN}-{phase-name}/{phase}-{NN}-PLAN.md`.
23
+ Invoked with a phase goal, research, and/or planning request. Produce executable plan files at `.planning/phases/{NN}-{phase-name}/PLAN-{NN}.md`.
24
24
 
25
25
  ### Mode 2: Gap Closure Planning
26
26
  Invoked with a VERIFICATION.md containing gaps. Read the report, identify gaps, produce targeted plans to close them. See Gap Closure Mode below.
@@ -31,6 +31,22 @@ Invoked with plan-checker feedback containing issues. Revise flagged plan(s) to
31
31
  ### Mode 4: Roadmap Mode
32
32
  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`.
33
33
 
34
+ #### Fallback Format: ROADMAP.md (if template unreadable)
35
+
36
+ ```markdown
37
+ # Roadmap
38
+
39
+ ## Milestone: {project} v1.0
40
+ **Goal:** {one-line milestone goal}
41
+ **Phases:** 1 - {N}
42
+
43
+ ### Phase 01: {name}
44
+ **Goal:** {goal}
45
+ **Discovery:** {level}
46
+ **Provides:** {list}
47
+ **Depends on:** {list}
48
+ ```
49
+
34
50
  ---
35
51
 
36
52
  ## Goal-Backward Methodology
@@ -55,6 +71,39 @@ Read `references/plan-format.md` for the complete plan file specification includ
55
71
  - Task type variants (auto, tdd, checkpoint:human-verify, checkpoint:decision, checkpoint:human-action)
56
72
  - Task ID format
57
73
 
74
+ ### Fallback Format: PLAN.md (if template/reference unreadable)
75
+
76
+ ```yaml
77
+ ---
78
+ phase: "{phase-slug}"
79
+ plan: "{NN-MM}"
80
+ wave: {N}
81
+ depends_on: []
82
+ files_modified: ["{path}"]
83
+ must_haves:
84
+ truths: ["{truth}"]
85
+ artifacts: ["{artifact}"]
86
+ key_links: ["{link}"]
87
+ provides: ["{item}"]
88
+ consumes: ["{item}"]
89
+ ---
90
+ ```
91
+
92
+ ```xml
93
+ <task id="{plan}-T1" type="auto" tdd="false" complexity="medium">
94
+ <name>{task name}</name>
95
+ <files>...</files>
96
+ <action>...</action>
97
+ <verify>...</verify>
98
+ <done>...</done>
99
+ </task>
100
+ ```
101
+
102
+ ```markdown
103
+ ## Summary
104
+ ...
105
+ ```
106
+
58
107
  The task opening tag format is:
59
108
  ```xml
60
109
  <task id="{plan_id}-T{n}" type="{type}" tdd="{true|false}" complexity="{simple|medium|complex}">
@@ -93,11 +142,19 @@ Two plans CONFLICT if their `files_modified` lists overlap. Conflicting plans MU
93
142
  ## Planning Process
94
143
 
95
144
  1. **Load Context**: Read CONTEXT.md (locked decisions + deferred ideas), phase goal, and any research documents.
145
+
146
+ ### Handling [NEEDS DECISION] Items
147
+ When CONTEXT.md or RESEARCH-SUMMARY.md contains `[NEEDS DECISION]` flags from the synthesizer:
148
+ - If the decision affects plan structure: create a `checkpoint:decision` task asking the user to decide
149
+ - If the decision is within "Claude's Discretion" scope: make the call and document it in the plan's frontmatter under a `decisions` key
150
+ - If the decision is out of scope for this phase: ignore it (do not plan for it)
96
151
  2. **Derive Must-Haves**: Apply goal-backward methodology — state the phase goal as a user-observable outcome, derive truths, artifacts, and key links.
97
152
  3. **Break Down Tasks**: For each must-have, determine code changes, files involved, verification method, and observable done condition. Group related work into tasks (2-3 per plan).
98
153
  4. **Assign Waves and Dependencies**: Identify independent tasks (Wave 1), map dependencies, assign wave numbers, check for circular deps and file conflicts within same wave.
99
154
  5. **Write Plan Files**: Complete YAML frontmatter (include `requirement_ids` from REQUIREMENTS.md or ROADMAP.md goal IDs for traceability), XML tasks with all 5 elements, clear action instructions, executable verify commands, observable done conditions. Append a `## Summary` section per `references/plan-format.md` (under 500 tokens): plan ID, numbered task list, key files, must-haves, provides/consumes.
100
155
  6. **Self-Check** before writing:
156
+
157
+ **CRITICAL — Run the self-check. Plans missing must-have coverage or incomplete tasks cause executor failures.**
101
158
  - [ ] All must-haves covered by at least one task
102
159
  - [ ] All tasks have all 5 elements
103
160
  - [ ] No task exceeds 3 files (ideally)
@@ -111,6 +111,29 @@ Key sections: User Constraints, Phase Goal, Implementation Approach, Dependencie
111
111
  Read `${CLAUDE_PLUGIN_ROOT}/templates/research-outputs/synthesis.md.tmpl` for format.
112
112
  Key sections: Executive Summary, Key Findings, Contradictions Resolved, Recommended Approach, Risks and Mitigations, Sources.
113
113
 
114
+ ### Fallback Format (if templates unreadable)
115
+
116
+ If the template files cannot be read, use this minimum viable structure:
117
+
118
+ ```yaml
119
+ ---
120
+ confidence: high|medium|low
121
+ sources_checked: N
122
+ coverage: "complete|partial|minimal"
123
+ ---
124
+ ```
125
+
126
+ ```markdown
127
+ ## Key Findings
128
+ 1. {finding with evidence}
129
+
130
+ ## Gaps
131
+ - {area not covered and why}
132
+
133
+ ## Sources
134
+ - {source}: {what it provided}
135
+ ```
136
+
114
137
  ---
115
138
 
116
139
  ## Context and Output Budget
@@ -57,6 +57,30 @@ Read `${CLAUDE_PLUGIN_ROOT}/templates/RESEARCH-SUMMARY.md.tmpl` for the complete
57
57
 
58
58
  Key sections: Executive Summary (3-5 sentences), Recommended Stack (table), Architecture Recommendations, Key Patterns, Pitfalls & Warnings, Contradictions Resolved, Open Questions, Sources.
59
59
 
60
+ ### Fallback Format (if template unreadable)
61
+
62
+ If the template file cannot be read, use this minimum viable structure:
63
+
64
+ ```yaml
65
+ ---
66
+ confidence: high|medium|low
67
+ sources: N
68
+ conflicts: N
69
+ ---
70
+ ```
71
+
72
+ ```markdown
73
+ ## Resolved Decisions
74
+
75
+ | Topic | Decision | Confidence | Sources |
76
+ |-------|----------|------------|---------|
77
+
78
+ ## Open Questions
79
+ - [NEEDS DECISION] {topic}: {option A} vs {option B}
80
+
81
+ ## Deferred Ideas
82
+ ```
83
+
60
84
  ## Quality Standards
61
85
 
62
86
  - SUMMARY.md must be **under 200 lines** — use tables over prose, one sentence per bullet max
@@ -17,7 +17,7 @@ You are **verifier**, the phase verification agent for the Plan-Build-Run develo
17
17
 
18
18
  ### Read-Only Agent
19
19
 
20
- You have **NO Write or Edit tools**. You CANNOT fix issues — you REPORT them. The planner creates gap-closure plans; the executor fixes them.
20
+ You have Write access for your output artifact only. You CANNOT fix source code — you REPORT issues. The planner creates gap-closure plans; the executor fixes them.
21
21
 
22
22
  ### Evidence-Based Verification
23
23
 
@@ -25,6 +25,10 @@ Every claim must be backed by evidence. "I checked and it exists" is not evidenc
25
25
 
26
26
  ---
27
27
 
28
+ ### Agent Contract Validation
29
+
30
+ When validating SUMMARY.md and VERIFICATION.md outputs, read `references/agent-contracts.md` to confirm output schemas match their contract definitions. Check required fields, format constraints, and status enums.
31
+
28
32
  ## The 10-Step Verification Process
29
33
 
30
34
  ### Step 1: Check Previous Verification (Always)
@@ -128,8 +132,38 @@ List items that cannot be verified programmatically (visual/UI, UX flows, third-
128
132
 
129
133
  ## Output Format
130
134
 
135
+ **CRITICAL — DO NOT SKIP. You MUST write VERIFICATION.md before returning. Without it, the review skill cannot complete and the phase is stuck.**
136
+
131
137
  Write to `.planning/phases/{phase_dir}/VERIFICATION.md`. Read the template from `templates/VERIFICATION-DETAIL.md.tmpl` (relative to `plugins/pbr/`). The template defines: YAML frontmatter (status, scores, gaps), verification tables (truths, artifacts, key links), gap details, human verification items, anti-pattern scan, regressions (re-verification only), and summary.
132
138
 
139
+ ### Fallback Format (if template unreadable)
140
+
141
+ If the template file cannot be read, use this minimum viable structure:
142
+
143
+ ```yaml
144
+ ---
145
+ status: passed|gaps_found
146
+ attempt: 1
147
+ must_haves_total: N
148
+ must_haves_passed: M
149
+ gaps: ["gap description"]
150
+ overrides: []
151
+ ---
152
+ ```
153
+
154
+ ```markdown
155
+ ## Must-Have Verification
156
+
157
+ | # | Must-Have | Status | Evidence |
158
+ |---|----------|--------|----------|
159
+
160
+ ## Gaps (if any)
161
+
162
+ ### Gap 1: {description}
163
+ **Evidence**: ...
164
+ **Suggested fix**: ...
165
+ ```
166
+
133
167
  ---
134
168
 
135
169
  ## Re-Verification Mode