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