@sienklogic/plan-build-run 2.51.0 → 2.52.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 (210) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/package.json +4 -2
  3. package/plugins/copilot-pbr/agents/audit.agent.md +2 -5
  4. package/plugins/copilot-pbr/agents/codebase-mapper.agent.md +1 -4
  5. package/plugins/copilot-pbr/agents/debugger.agent.md +1 -4
  6. package/plugins/copilot-pbr/agents/dev-sync.agent.md +6 -9
  7. package/plugins/copilot-pbr/agents/executor.agent.md +1 -4
  8. package/plugins/copilot-pbr/agents/general.agent.md +1 -4
  9. package/plugins/copilot-pbr/agents/integration-checker.agent.md +1 -4
  10. package/plugins/copilot-pbr/agents/plan-checker.agent.md +1 -4
  11. package/plugins/copilot-pbr/agents/planner.agent.md +1 -4
  12. package/plugins/copilot-pbr/agents/researcher.agent.md +1 -4
  13. package/plugins/copilot-pbr/agents/synthesizer.agent.md +1 -4
  14. package/plugins/copilot-pbr/agents/verifier.agent.md +2 -4
  15. package/plugins/copilot-pbr/commands/audit.md +5 -0
  16. package/plugins/copilot-pbr/commands/begin.md +5 -0
  17. package/plugins/copilot-pbr/commands/build.md +5 -0
  18. package/plugins/copilot-pbr/commands/config.md +5 -0
  19. package/plugins/copilot-pbr/commands/continue.md +5 -0
  20. package/plugins/copilot-pbr/commands/dashboard.md +5 -0
  21. package/plugins/copilot-pbr/commands/debug.md +5 -0
  22. package/plugins/copilot-pbr/commands/discuss.md +5 -0
  23. package/plugins/copilot-pbr/commands/do.md +5 -0
  24. package/plugins/copilot-pbr/commands/explore.md +5 -0
  25. package/plugins/copilot-pbr/commands/health.md +5 -0
  26. package/plugins/copilot-pbr/commands/help.md +5 -0
  27. package/plugins/copilot-pbr/commands/import.md +5 -0
  28. package/plugins/copilot-pbr/commands/milestone.md +5 -0
  29. package/plugins/copilot-pbr/commands/note.md +5 -0
  30. package/plugins/copilot-pbr/commands/pause.md +5 -0
  31. package/plugins/copilot-pbr/commands/plan.md +5 -0
  32. package/plugins/copilot-pbr/commands/quick.md +5 -0
  33. package/plugins/copilot-pbr/commands/resume.md +5 -0
  34. package/plugins/copilot-pbr/commands/review.md +5 -0
  35. package/plugins/copilot-pbr/commands/scan.md +5 -0
  36. package/plugins/copilot-pbr/commands/setup.md +5 -0
  37. package/plugins/copilot-pbr/commands/status.md +5 -0
  38. package/plugins/copilot-pbr/commands/statusline.md +5 -0
  39. package/plugins/copilot-pbr/commands/todo.md +5 -0
  40. package/plugins/copilot-pbr/plugin.json +1 -1
  41. package/plugins/copilot-pbr/references/agent-anti-patterns.md +0 -1
  42. package/plugins/copilot-pbr/references/agent-teams.md +0 -1
  43. package/plugins/copilot-pbr/references/common-bug-patterns.md +0 -1
  44. package/plugins/copilot-pbr/references/config-reference.md +0 -1
  45. package/plugins/copilot-pbr/references/continuation-format.md +0 -1
  46. package/plugins/copilot-pbr/references/deviation-rules.md +0 -1
  47. package/plugins/copilot-pbr/references/git-integration.md +0 -1
  48. package/plugins/copilot-pbr/references/integration-patterns.md +0 -1
  49. package/plugins/copilot-pbr/references/model-profiles.md +0 -1
  50. package/plugins/copilot-pbr/references/model-selection.md +0 -1
  51. package/plugins/copilot-pbr/references/pbr-rules.md +0 -1
  52. package/plugins/copilot-pbr/references/plan-authoring.md +0 -1
  53. package/plugins/copilot-pbr/references/plan-format.md +0 -1
  54. package/plugins/copilot-pbr/references/reading-verification.md +0 -1
  55. package/plugins/copilot-pbr/references/stub-patterns.md +0 -1
  56. package/plugins/copilot-pbr/references/wave-execution.md +0 -1
  57. package/plugins/copilot-pbr/skills/begin/SKILL.md +74 -52
  58. package/plugins/copilot-pbr/skills/build/SKILL.md +55 -69
  59. package/plugins/copilot-pbr/skills/config/SKILL.md +7 -0
  60. package/plugins/copilot-pbr/skills/continue/SKILL.md +31 -24
  61. package/plugins/copilot-pbr/skills/dashboard/SKILL.md +8 -7
  62. package/plugins/copilot-pbr/skills/debug/SKILL.md +11 -0
  63. package/plugins/copilot-pbr/skills/discuss/SKILL.md +2 -0
  64. package/plugins/copilot-pbr/skills/do/SKILL.md +2 -0
  65. package/plugins/copilot-pbr/skills/explore/SKILL.md +7 -1
  66. package/plugins/copilot-pbr/skills/health/SKILL.md +2 -0
  67. package/plugins/copilot-pbr/skills/help/SKILL.md +6 -0
  68. package/plugins/copilot-pbr/skills/import/SKILL.md +9 -0
  69. package/plugins/copilot-pbr/skills/milestone/SKILL.md +20 -196
  70. package/plugins/copilot-pbr/skills/note/SKILL.md +2 -0
  71. package/plugins/copilot-pbr/skills/pause/SKILL.md +5 -0
  72. package/plugins/copilot-pbr/skills/plan/SKILL.md +87 -119
  73. package/plugins/copilot-pbr/skills/quick/SKILL.md +13 -8
  74. package/plugins/copilot-pbr/skills/resume/SKILL.md +4 -0
  75. package/plugins/copilot-pbr/skills/review/SKILL.md +85 -47
  76. package/plugins/copilot-pbr/skills/scan/SKILL.md +6 -0
  77. package/plugins/copilot-pbr/skills/setup/SKILL.md +2 -0
  78. package/plugins/copilot-pbr/skills/shared/commit-planning-docs.md +0 -1
  79. package/plugins/copilot-pbr/skills/shared/config-loading.md +0 -1
  80. package/plugins/copilot-pbr/skills/shared/context-budget.md +0 -1
  81. package/plugins/copilot-pbr/skills/shared/context-loader-task.md +0 -1
  82. package/plugins/copilot-pbr/skills/shared/digest-select.md +0 -1
  83. package/plugins/copilot-pbr/skills/shared/domain-probes.md +0 -1
  84. package/plugins/copilot-pbr/skills/shared/gate-prompts.md +0 -1
  85. package/plugins/copilot-pbr/skills/shared/phase-argument-parsing.md +0 -1
  86. package/plugins/copilot-pbr/skills/shared/revision-loop.md +0 -1
  87. package/plugins/copilot-pbr/skills/shared/state-update.md +0 -1
  88. package/plugins/copilot-pbr/skills/shared/universal-anti-patterns.md +1 -2
  89. package/plugins/copilot-pbr/skills/status/SKILL.md +35 -26
  90. package/plugins/copilot-pbr/skills/test/SKILL.md +2 -2
  91. package/plugins/copilot-pbr/skills/todo/SKILL.md +2 -0
  92. package/plugins/copilot-pbr/templates/CONTEXT.md.tmpl +0 -1
  93. package/plugins/copilot-pbr/templates/INTEGRATION-REPORT.md.tmpl +0 -1
  94. package/plugins/copilot-pbr/templates/RESEARCH-SUMMARY.md.tmpl +0 -1
  95. package/plugins/copilot-pbr/templates/ROADMAP.md.tmpl +0 -1
  96. package/plugins/copilot-pbr/templates/SUMMARY.md.tmpl +0 -1
  97. package/plugins/copilot-pbr/templates/VERIFICATION-DETAIL.md.tmpl +0 -1
  98. package/plugins/copilot-pbr/templates/continue-here.md.tmpl +0 -1
  99. package/plugins/copilot-pbr/templates/prompt-partials/phase-project-context.md.tmpl +0 -1
  100. package/plugins/cursor-pbr/.cursor-plugin/plugin.json +1 -1
  101. package/plugins/cursor-pbr/agents/audit.md +1 -1
  102. package/plugins/cursor-pbr/agents/codebase-mapper.md +1 -1
  103. package/plugins/cursor-pbr/agents/debugger.md +1 -1
  104. package/plugins/cursor-pbr/agents/dev-sync.md +6 -6
  105. package/plugins/cursor-pbr/agents/executor.md +1 -1
  106. package/plugins/cursor-pbr/agents/general.md +1 -1
  107. package/plugins/cursor-pbr/agents/integration-checker.md +2 -2
  108. package/plugins/cursor-pbr/agents/plan-checker.md +2 -2
  109. package/plugins/cursor-pbr/agents/planner.md +1 -1
  110. package/plugins/cursor-pbr/agents/researcher.md +2 -2
  111. package/plugins/cursor-pbr/agents/synthesizer.md +1 -1
  112. package/plugins/cursor-pbr/agents/verifier.md +3 -2
  113. package/plugins/cursor-pbr/commands/audit.md +5 -0
  114. package/plugins/cursor-pbr/commands/begin.md +5 -0
  115. package/plugins/cursor-pbr/commands/build.md +5 -0
  116. package/plugins/cursor-pbr/commands/config.md +5 -0
  117. package/plugins/cursor-pbr/commands/continue.md +5 -0
  118. package/plugins/cursor-pbr/commands/dashboard.md +5 -0
  119. package/plugins/cursor-pbr/commands/debug.md +5 -0
  120. package/plugins/cursor-pbr/commands/discuss.md +5 -0
  121. package/plugins/cursor-pbr/commands/do.md +5 -0
  122. package/plugins/cursor-pbr/commands/explore.md +5 -0
  123. package/plugins/cursor-pbr/commands/health.md +5 -0
  124. package/plugins/cursor-pbr/commands/help.md +5 -0
  125. package/plugins/cursor-pbr/commands/import.md +5 -0
  126. package/plugins/cursor-pbr/commands/milestone.md +5 -0
  127. package/plugins/cursor-pbr/commands/note.md +5 -0
  128. package/plugins/cursor-pbr/commands/pause.md +5 -0
  129. package/plugins/cursor-pbr/commands/plan.md +5 -0
  130. package/plugins/cursor-pbr/commands/quick.md +5 -0
  131. package/plugins/cursor-pbr/commands/resume.md +5 -0
  132. package/plugins/cursor-pbr/commands/review.md +5 -0
  133. package/plugins/cursor-pbr/commands/scan.md +5 -0
  134. package/plugins/cursor-pbr/commands/setup.md +5 -0
  135. package/plugins/cursor-pbr/commands/status.md +5 -0
  136. package/plugins/cursor-pbr/commands/statusline.md +5 -0
  137. package/plugins/cursor-pbr/commands/todo.md +5 -0
  138. package/plugins/cursor-pbr/hooks/hooks.json +4 -10
  139. package/plugins/cursor-pbr/references/agent-anti-patterns.md +0 -1
  140. package/plugins/cursor-pbr/references/agent-teams.md +0 -1
  141. package/plugins/cursor-pbr/references/common-bug-patterns.md +0 -1
  142. package/plugins/cursor-pbr/references/config-reference.md +0 -1
  143. package/plugins/cursor-pbr/references/continuation-format.md +0 -1
  144. package/plugins/cursor-pbr/references/deviation-rules.md +0 -1
  145. package/plugins/cursor-pbr/references/git-integration.md +0 -1
  146. package/plugins/cursor-pbr/references/integration-patterns.md +0 -1
  147. package/plugins/cursor-pbr/references/model-profiles.md +0 -1
  148. package/plugins/cursor-pbr/references/model-selection.md +0 -1
  149. package/plugins/cursor-pbr/references/pbr-rules.md +0 -1
  150. package/plugins/cursor-pbr/references/plan-authoring.md +0 -1
  151. package/plugins/cursor-pbr/references/plan-format.md +0 -1
  152. package/plugins/cursor-pbr/references/reading-verification.md +0 -1
  153. package/plugins/cursor-pbr/references/stub-patterns.md +0 -1
  154. package/plugins/cursor-pbr/references/wave-execution.md +0 -1
  155. package/plugins/cursor-pbr/skills/begin/SKILL.md +74 -52
  156. package/plugins/cursor-pbr/skills/build/SKILL.md +58 -70
  157. package/plugins/cursor-pbr/skills/config/SKILL.md +5 -0
  158. package/plugins/cursor-pbr/skills/continue/SKILL.md +31 -24
  159. package/plugins/cursor-pbr/skills/dashboard/SKILL.md +8 -7
  160. package/plugins/cursor-pbr/skills/debug/SKILL.md +8 -0
  161. package/plugins/cursor-pbr/skills/discuss/SKILL.md +2 -0
  162. package/plugins/cursor-pbr/skills/do/SKILL.md +2 -0
  163. package/plugins/cursor-pbr/skills/explore/SKILL.md +5 -1
  164. package/plugins/cursor-pbr/skills/health/SKILL.md +2 -0
  165. package/plugins/cursor-pbr/skills/help/SKILL.md +6 -0
  166. package/plugins/cursor-pbr/skills/import/SKILL.md +7 -0
  167. package/plugins/cursor-pbr/skills/milestone/SKILL.md +20 -196
  168. package/plugins/cursor-pbr/skills/note/SKILL.md +2 -0
  169. package/plugins/cursor-pbr/skills/pause/SKILL.md +4 -0
  170. package/plugins/cursor-pbr/skills/plan/SKILL.md +87 -119
  171. package/plugins/cursor-pbr/skills/quick/SKILL.md +13 -8
  172. package/plugins/cursor-pbr/skills/resume/SKILL.md +4 -0
  173. package/plugins/cursor-pbr/skills/review/SKILL.md +85 -47
  174. package/plugins/cursor-pbr/skills/scan/SKILL.md +5 -0
  175. package/plugins/cursor-pbr/skills/setup/SKILL.md +2 -0
  176. package/plugins/cursor-pbr/skills/shared/commit-planning-docs.md +0 -1
  177. package/plugins/cursor-pbr/skills/shared/config-loading.md +0 -1
  178. package/plugins/cursor-pbr/skills/shared/context-budget.md +0 -1
  179. package/plugins/cursor-pbr/skills/shared/context-loader-task.md +0 -1
  180. package/plugins/cursor-pbr/skills/shared/digest-select.md +0 -1
  181. package/plugins/cursor-pbr/skills/shared/domain-probes.md +0 -1
  182. package/plugins/cursor-pbr/skills/shared/gate-prompts.md +0 -1
  183. package/plugins/cursor-pbr/skills/shared/phase-argument-parsing.md +0 -1
  184. package/plugins/cursor-pbr/skills/shared/revision-loop.md +0 -1
  185. package/plugins/cursor-pbr/skills/shared/state-update.md +0 -1
  186. package/plugins/cursor-pbr/skills/shared/universal-anti-patterns.md +1 -2
  187. package/plugins/cursor-pbr/skills/status/SKILL.md +35 -26
  188. package/plugins/cursor-pbr/skills/test/SKILL.md +2 -2
  189. package/plugins/cursor-pbr/skills/todo/SKILL.md +2 -0
  190. package/plugins/cursor-pbr/templates/CONTEXT.md.tmpl +0 -1
  191. package/plugins/cursor-pbr/templates/INTEGRATION-REPORT.md.tmpl +0 -1
  192. package/plugins/cursor-pbr/templates/RESEARCH-SUMMARY.md.tmpl +0 -1
  193. package/plugins/cursor-pbr/templates/ROADMAP.md.tmpl +0 -1
  194. package/plugins/cursor-pbr/templates/SUMMARY.md.tmpl +0 -1
  195. package/plugins/cursor-pbr/templates/VERIFICATION-DETAIL.md.tmpl +0 -1
  196. package/plugins/cursor-pbr/templates/continue-here.md.tmpl +0 -1
  197. package/plugins/cursor-pbr/templates/prompt-partials/phase-project-context.md.tmpl +0 -1
  198. package/plugins/pbr/.claude-plugin/plugin.json +1 -1
  199. package/plugins/pbr/scripts/context-budget-check.js +13 -1
  200. package/plugins/pbr/scripts/lib/core.js +53 -1
  201. package/plugins/pbr/scripts/pbr-tools.js +49 -3
  202. package/plugins/pbr/scripts/progress-tracker.js +13 -3
  203. package/plugins/pbr/scripts/session-cleanup.js +6 -0
  204. package/plugins/pbr/scripts/suggest-compact.js +13 -1
  205. package/plugins/pbr/skills/begin/SKILL.md +13 -13
  206. package/plugins/pbr/skills/build/SKILL.md +24 -7
  207. package/plugins/pbr/skills/milestone/SKILL.md +10 -10
  208. package/plugins/pbr/skills/plan/SKILL.md +9 -9
  209. package/plugins/pbr/skills/quick/SKILL.md +3 -3
  210. package/plugins/pbr/skills/review/SKILL.md +6 -6
@@ -7,14 +7,14 @@ description: "Create a detailed plan for a phase. Research, plan, and verify bef
7
7
 
8
8
  # /pbr:plan — Phase Planning
9
9
 
10
- You are the orchestrator for `/pbr:plan`. This skill creates detailed, executable plans for a specific phase. Plans are the bridge between the roadmap and actual code — they must be specific enough for an executor agent to follow mechanically. Your job is to stay lean, delegate heavy work to agents, and keep the user's main context window clean.
10
+ You are the orchestrator for `/pbr:plan`. This skill creates detailed, executable plans for a specific phase. Plans are the bridge between the roadmap and actual code — they must be specific enough for an executor agent to follow mechanically. Your job is to stay lean, delegate heavy work to Task() agents, and keep the user's main context window clean.
11
11
 
12
12
  ## Context Budget
13
13
 
14
14
  Reference: `skills/shared/context-budget.md` for the universal orchestrator rules.
15
15
 
16
16
  Additionally for this skill:
17
- - **Minimize** reading agent output — read only plan frontmatter for summaries
17
+ - **Minimize** reading subagent output — read only plan frontmatter for summaries
18
18
  - **Delegate** all research and planning work to agents — the orchestrator routes, it doesn't plan
19
19
 
20
20
  ## Step 0 — Immediate Output
@@ -114,7 +114,7 @@ Reference: `skills/shared/config-loading.md` for the tooling shortcut (`state lo
114
114
 
115
115
  1. Parse `$ARGUMENTS` for phase number and flags
116
116
  2. Read `.planning/config.json` for settings (see config-loading.md for field reference)
117
- **CRITICAL: Write .active-skill NOW.** Write the text "plan" to `.planning/.active-skill` using the Write tool.
117
+ **CRITICAL (hook-enforced): Write .active-skill NOW.** Write the text "plan" to `.planning/.active-skill` using the Write tool.
118
118
  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.
119
119
  4. Validate:
120
120
  - Phase exists in ROADMAP.md
@@ -124,7 +124,7 @@ Reference: `skills/shared/config-loading.md` for the tooling shortcut (`state lo
124
124
  6. **CONTEXT.md existence check**: If the phase is non-trivial (has 2+ requirements or success criteria), check whether a CONTEXT.md exists at EITHER `.planning/CONTEXT.md` (project-level) OR `.planning/phases/{NN}-{slug}/CONTEXT.md` (phase-level). If NEITHER exists, warn: "Phase {N} has no CONTEXT.md. Consider running `/pbr:discuss {N}` first to capture your preferences. Continue anyway?" If user says no, stop. If yes, continue. If at least one exists, proceed without warning.
125
125
 
126
126
  **If phase already has plans:**
127
- - Use the yes-no pattern from `skills/shared/gate-prompts.md`:
127
+ - Use AskUserQuestion (pattern: yes-no from `skills/shared/gate-prompts.md`):
128
128
  question: "Phase {N} already has plans. Re-plan from scratch?"
129
129
  header: "Re-plan?"
130
130
  options:
@@ -139,7 +139,7 @@ Reference: `skills/shared/config-loading.md` for the tooling shortcut (`state lo
139
139
 
140
140
  **Init-first pattern**: When spawning agents, pass the output of `node plugins/pbr/scripts/pbr-tools.js init plan-phase {N}` as context rather than having the agent read multiple files separately. This reduces file reads and prevents context-loading failures.
141
141
 
142
- Read context file PATHS and metadata. Build lean context bundles for agent prompts — include paths and one-line descriptions, NOT full file bodies. Agents have the Read tool and will pull file contents on-demand.
142
+ Read context file PATHS and metadata. Build lean context bundles for subagent prompts — include paths and one-line descriptions, NOT full file bodies. Agents have the Read tool and will pull file contents on-demand.
143
143
 
144
144
  ```
145
145
  1. Read .planning/ROADMAP.md — extract current phase goal, dependencies, requirements
@@ -163,34 +163,7 @@ Collect all of this into a context bundle that will be passed to agents.
163
163
 
164
164
  **IMPORTANT**: This step is FREE (no agents). It happens entirely inline.
165
165
 
166
- Before spawning any agents, present your assumptions about how this phase should be approached:
167
-
168
- ```
169
- Phase {N}: {Name}
170
- Goal: {from roadmap}
171
-
172
- My assumptions about this phase:
173
-
174
- 1. **Approach**: I'm assuming we'll {approach}
175
- - Correct? [yes/no/adjust]
176
-
177
- 2. **Key technology**: I'm assuming we'll use {tech}
178
- - Correct? [yes/no/adjust]
179
-
180
- 3. **Architecture**: I'm assuming {architectural assumption}
181
- - Correct? [yes/no/adjust]
182
-
183
- 4. **Scope boundary**: I'm assuming {scope assumption}
184
- - Correct? [yes/no/adjust]
185
- ```
186
-
187
- For each assumption the user corrects:
188
- - Record the correction
189
- - These corrections become additional CONTEXT.md entries
190
-
191
- After all assumptions are confirmed/corrected:
192
- - Update `.planning/CONTEXT.md` with any new locked decisions
193
- - Continue to Step 4
166
+ Before spawning any agents, present 4 assumptions to the user — one each for: approach (how the phase will be implemented), key technology, architecture, and scope boundary. For each, ask the user to confirm or correct. Record corrections as new CONTEXT.md locked decisions. After all assumptions are confirmed/corrected, continue to Step 4.
194
167
 
195
168
  ---
196
169
 
@@ -207,17 +180,24 @@ To check: run `node ${PLUGIN_ROOT}/scripts/pbr-tools.js config resolve-depth` an
207
180
 
208
181
  **If research is needed:**
209
182
 
210
- Display to the user: `Spawning researcher...`
183
+ Display to the user: `◐ Spawning researcher...`
211
184
 
212
- Invoke the `@researcher` agent with the phase research prompt.
185
+ Spawn a researcher Task():
213
186
 
214
- **NOTE**: The `@researcher` agent is defined in `agents/researcher.md`. Do NOT inline it.
187
+ ```
188
+ Task({
189
+ subagent_type: "pbr:researcher",
190
+ prompt: <phase research prompt>
191
+ })
192
+
193
+ NOTE: The pbr:researcher subagent type auto-loads the agent definition. Do NOT inline it.
194
+ ```
215
195
 
216
- **Path resolution**: Before constructing the agent prompt, resolve plugin root to its absolute path. Do not pass the variable literally in prompts. Use the resolved absolute path for any pbr-tools.js or template references included in the prompt.
196
+ **Path resolution**: Before constructing the agent prompt, resolve `${PLUGIN_ROOT}` to its absolute path. Do not pass the variable literally in prompts — Task() contexts may not expand it. Use the resolved absolute path for any pbr-tools.js or template references included in the prompt.
217
197
 
218
198
  #### Phase Research Prompt Template
219
199
 
220
- Read `skills/plan/templates/researcher-prompt.md.tmpl` and use it as the prompt template for the researcher agent. Fill in the placeholders with phase-specific context:
200
+ Read `skills/plan/templates/researcher-prompt.md.tmpl` and use it as the prompt template for spawning the researcher agent. Fill in the placeholders with phase-specific context:
221
201
  - `{NN}` - phase number (zero-padded)
222
202
  - `{phase name}` - phase name from roadmap
223
203
  - `{goal from roadmap}` - phase goal statement
@@ -228,7 +208,7 @@ Read `skills/plan/templates/researcher-prompt.md.tmpl` and use it as the prompt
228
208
  **Prepend this block to the researcher prompt before sending:**
229
209
  ```
230
210
  <files_to_read>
231
- CRITICAL: Read these files BEFORE any other action:
211
+ CRITICAL (no hook): Read these files BEFORE any other action:
232
212
  1. .planning/ROADMAP.md — phase goals, dependencies, and structure
233
213
  2. .planning/REQUIREMENTS.md — scoped requirements for this phase (if exists)
234
214
  </files_to_read>
@@ -236,7 +216,7 @@ CRITICAL: Read these files BEFORE any other action:
236
216
 
237
217
  Wait for the researcher to complete before proceeding.
238
218
 
239
- After the researcher completes, check the agent output for a completion marker:
219
+ After the researcher completes, check the Task() output for a completion marker:
240
220
  - If `## RESEARCH COMPLETE` is present: proceed to planner
241
221
  - If `## RESEARCH BLOCKED` is present: warn the user that research could not complete, ask if they want to proceed with limited context or stop
242
222
  - If neither marker is present: warn that researcher may not have completed successfully, but proceed
@@ -271,7 +251,7 @@ Output format: Return both sections as markdown. End with ## BRIEFING COMPLETE."
271
251
  ```
272
252
 
273
253
  After the Task() completes:
274
- - If `## Seeds` section contains matches: present them to the user via the yes-no-pick pattern from `skills/shared/gate-prompts.md`:
254
+ - If `## Seeds` section contains matches: present them to the user via AskUserQuestion (pattern: yes-no-pick from `skills/shared/gate-prompts.md`):
275
255
  question: "Include these {N} seeds in planning?"
276
256
  header: "Seeds?"
277
257
  options:
@@ -282,7 +262,7 @@ After the Task() completes:
282
262
  - If "Let me pick": present individual seeds for selection
283
263
  - If "No": proceed without seeds
284
264
 
285
- - If `## Deferred Ideas` section has items: present via the yes-no pattern from `skills/shared/gate-prompts.md`:
265
+ - If `## Deferred Ideas` section has items: present via AskUserQuestion (pattern: yes-no from `skills/shared/gate-prompts.md`):
286
266
  question: "Include these deferred ideas in planning context?"
287
267
  - If "Yes": append to planner context under `Deferred ideas to consider:`
288
268
  - If "No": proceed without changes
@@ -295,48 +275,51 @@ After the Task() completes:
295
275
 
296
276
  #### Team Mode (--teams)
297
277
 
298
- Reference: `references/agent-teams.md` for team role definitions and coordination details.
278
+ If `--teams` flag is set OR `config.parallelization.use_teams` is true, spawn 3 parallel planner agents (architect, security, test) then a synthesizer to merge their outputs. See `references/agent-teams.md` for agent role definitions, output paths (`.planning/phases/{NN}-{slug}/team/`), and prompt content for each role.
299
279
 
300
- If `--teams` flag is set OR `config.parallelization.use_teams` is true:
280
+ If `--teams` is NOT set and `config.parallelization.use_teams` is false or unset, proceed with the single-planner flow below.
301
281
 
302
- 1. Create the team output directory: `.planning/phases/{NN}-{slug}/team/`
303
- 2. Display to the user: `Spawning 3 planners in parallel (architect, security, test)...`
282
+ #### Single-Planner Flow (default)
304
283
 
305
- Invoke THREE `@planner` agents in parallel:
284
+ **Learnings injection (opt-in):** Check for planning and estimation learnings before spawning the planner:
306
285
 
307
- **Agent 1 -- Architect**:
308
- - Invoke `@planner` with: "You are the ARCHITECT role in a planning team. Focus on: structure, file boundaries, dependency ordering, wave assignment. Write your output to `.planning/phases/{NN}-{slug}/team/architect-PLAN.md`. Do NOT write final PLAN.md files -- your output will be synthesized."
309
- - Include phase goal, research doc paths, CONTEXT.md path in the prompt
286
+ ```bash
287
+ node {resolved_plugin_root}/scripts/pbr-tools.js learnings query --tags "estimation,planning,process" 2>/dev/null
288
+ ```
310
289
 
311
- **Agent 2 -- Security Reviewer**:
312
- - Invoke `@planner` with: "You are the SECURITY REVIEWER role in a planning team. Focus on: authentication checks, input validation tasks, secrets handling, permission boundaries. Write your output to `.planning/phases/{NN}-{slug}/team/security-PLAN.md`. Do NOT write final PLAN.md files."
313
- - Include same context as Agent 1
290
+ If non-empty JSON array returned:
314
291
 
315
- **Agent 3 -- Test Designer**:
316
- - Invoke `@planner` with: "You are the TEST DESIGNER role in a planning team. Focus on: test strategy, coverage targets, edge cases, which tasks should use TDD, integration test boundaries. Write your output to `.planning/phases/{NN}-{slug}/team/test-PLAN.md`. Do NOT write final PLAN.md files."
317
- - Include same context as Agent 1
292
+ - Write to temp file and note as `{learnings_temp_path}`:
318
293
 
319
- 3. Wait for all three to complete
320
- 4. Display to the user: `Spawning synthesizer...`
294
+ ```bash
295
+ node {resolved_plugin_root}/scripts/pbr-tools.js learnings query --tags "estimation,planning,process" > /tmp/pbr-learnings-$$.md
296
+ ```
321
297
 
322
- Invoke `@synthesizer` with: "Read all files in `.planning/phases/{NN}-{slug}/team/`. Synthesize them into unified PLAN.md files in `.planning/phases/{NN}-{slug}/`. The architect output provides structure, the security output adds security-related tasks or checks, and the test output informs TDD flags and test tasks. Resolve any contradictions by preferring the architect's structure with security and test additions."
323
- 5. Proceed to plan checking as normal
298
+ - Add as an additional `files_to_read` item in the planner prompt below
324
299
 
325
- If `--teams` is NOT set and `config.parallelization.use_teams` is false or unset, proceed with the existing single-planner flow below.
300
+ If no learnings or command fails: omit.
326
301
 
327
- #### Single-Planner Flow (default)
302
+ Display to the user: `◐ Spawning planner...`
328
303
 
329
- Display to the user: `Spawning planner...`
304
+ Spawn the planner Task() with all context inlined:
330
305
 
331
- Invoke the `@planner` agent with all context inlined.
306
+ ```
307
+ Task({
308
+ subagent_type: "pbr:planner",
309
+ prompt: <planning prompt>
310
+ })
332
311
 
333
- **NOTE**: The `@planner` agent is defined in `agents/planner.md`. Do NOT inline it.
312
+ NOTE: The pbr:planner subagent type auto-loads the agent definition.
313
+
314
+ After planner completes, check for completion markers: `## PLANNING COMPLETE`, `## PLANNING FAILED`, or `## PLANNING INCONCLUSIVE`. Route accordingly. Do NOT inline it.
315
+ ```
334
316
 
335
- **Path resolution**: Before constructing the agent prompt, resolve plugin root to its absolute path. Do not pass the variable literally in prompts. Use the resolved absolute path for any pbr-tools.js or template references included in the prompt.
317
+ **Path resolution**: Before constructing the agent prompt, resolve `${PLUGIN_ROOT}` to its absolute path. Do not pass the variable literally in prompts — Task() contexts may not expand it. Use the resolved absolute path for any pbr-tools.js or template references included in the prompt.
336
318
 
337
319
  #### Planning Prompt Template
338
320
 
339
- Read `skills/plan/templates/planner-prompt.md.tmpl` and use it as the prompt template for the planner agent. Fill in all placeholder blocks with phase-specific context:
321
+ Read `skills/plan/templates/planner-prompt.md.tmpl` and use it as the prompt template for spawning the planner agent. Fill in all placeholder blocks with phase-specific context:
322
+
340
323
  - `<phase_context>` - phase number, directory, goal, requirements, dependencies, success criteria
341
324
  - `<project_context>` - locked decisions, user constraints, deferred ideas, phase-specific decisions
342
325
  - `<prior_work>` - manifest table of preceding phase SUMMARY.md file paths with status and one-line exports (NOT full bodies)
@@ -345,28 +328,32 @@ Read `skills/plan/templates/planner-prompt.md.tmpl` and use it as the prompt tem
345
328
  - `<planning_instructions>` - phase-specific planning rules and output path
346
329
 
347
330
  **Prepend this block to the planner prompt before sending:**
331
+
348
332
  ```
349
333
  <files_to_read>
350
- CRITICAL: Read these files BEFORE any other action:
334
+ CRITICAL (no hook): Read these files BEFORE any other action:
351
335
  1. .planning/CONTEXT.md — locked decisions and constraints (if exists)
352
336
  2. .planning/ROADMAP.md — phase goals, dependencies, and structure
353
337
  3. .planning/phases/{NN}-{slug}/RESEARCH.md — research findings (if exists)
338
+ {if learnings_temp_path exists}4. {learnings_temp_path} — cross-project learnings (estimation and planning patterns from past PBR projects){/if}
354
339
  </files_to_read>
355
340
  ```
356
341
 
342
+ If `{learnings_temp_path}` was produced in the learnings injection step above, replace `{if...}{/if}` with the actual line. If no learnings were found, omit item 4 entirely.
343
+
357
344
  Wait for the planner to complete.
358
345
 
359
346
  After the planner returns, read the plan files it created to extract counts. Display a completion summary:
360
347
 
361
348
  ```
362
- Planner created {N} plan(s) across {M} wave(s)
349
+ Planner created {N} plan(s) across {M} wave(s)
363
350
  ```
364
351
 
365
352
  Where `{N}` is the number of PLAN.md files written and `{M}` is the number of distinct wave values across those plans (from frontmatter).
366
353
 
367
354
  ### Step 5b: Spot-Check Planner Output
368
355
 
369
- CRITICAL: Verify planner output before proceeding.
356
+ CRITICAL (no hook): Verify planner output before proceeding.
370
357
 
371
358
  1. **PLAN files exist**: Check `.planning/phases/{NN}-{slug}/PLAN-*.md` files exist on disk
372
359
  2. **Valid frontmatter**: Read first 20 lines of each PLAN file — verify `depends_on`, `files_modified`, `must_haves` fields present
@@ -386,17 +373,24 @@ To check: use the resolved depth profile from Step 1. The profile consolidates t
386
373
 
387
374
  **If validation is enabled:**
388
375
 
389
- Display to the user: `Spawning plan checker...`
376
+ Display to the user: `◐ Spawning plan checker...`
390
377
 
391
- Invoke the `@plan-checker` agent with the checker prompt.
378
+ Spawn the plan checker Task():
392
379
 
393
- **NOTE**: The `@plan-checker` agent is defined in `agents/plan-checker.md`. Do NOT inline it.
380
+ ```
381
+ Task({
382
+ subagent_type: "pbr:plan-checker",
383
+ prompt: <checker prompt>
384
+ })
385
+
386
+ NOTE: The pbr:plan-checker subagent type auto-loads the agent definition. Do NOT inline it.
387
+ ```
394
388
 
395
- **Path resolution**: Before constructing the agent prompt, resolve plugin root to its absolute path. Do not pass the variable literally in prompts. Use the resolved absolute path for any pbr-tools.js or template references included in the prompt.
389
+ **Path resolution**: Before constructing the agent prompt, resolve `${PLUGIN_ROOT}` to its absolute path. Do not pass the variable literally in prompts — Task() contexts may not expand it. Use the resolved absolute path for any pbr-tools.js or template references included in the prompt.
396
390
 
397
391
  #### Checker Prompt Template
398
392
 
399
- Read `skills/plan/templates/checker-prompt.md.tmpl` and use it as the prompt template for the plan checker agent. Fill in the placeholders:
393
+ Read `skills/plan/templates/checker-prompt.md.tmpl` and use it as the prompt template for spawning the plan checker agent. Fill in the placeholders:
400
394
  - `<plans_to_check>` - manifest table of PLAN.md file paths (checker reads each via Read tool)
401
395
  - `<phase_context>` - phase goal and requirement IDs
402
396
  - `<context>` - file paths to project-level and phase-level CONTEXT.md files (checker reads via Read tool)
@@ -404,7 +398,7 @@ Read `skills/plan/templates/checker-prompt.md.tmpl` and use it as the prompt tem
404
398
  **Prepend this block to the checker prompt before sending:**
405
399
  ```
406
400
  <files_to_read>
407
- CRITICAL: Read these files BEFORE any other action:
401
+ CRITICAL (no hook): Read these files BEFORE any other action:
408
402
  1. .planning/phases/{NN}-{slug}/PLAN-*.md — plan files to validate
409
403
  2. .planning/CONTEXT.md — locked decisions to check against (if exists)
410
404
  </files_to_read>
@@ -414,8 +408,8 @@ CRITICAL: Read these files BEFORE any other action:
414
408
 
415
409
  After the plan checker returns, display its result:
416
410
 
417
- - If `VERIFICATION PASSED`: display `Plan checker: all plans passed` and proceed to Step 8
418
- - If issues found: display `Plan checker found {N} issue(s) — entering revision loop` and proceed to Step 7
411
+ - If `VERIFICATION PASSED`: display `✓ Plan checker: all plans passed` and proceed to Step 8
412
+ - If issues found: display `⚠ Plan checker found {N} issue(s) — entering revision loop` and proceed to Step 7
419
413
 
420
414
  ---
421
415
 
@@ -424,7 +418,7 @@ After the plan checker returns, display its result:
424
418
  Reference: `skills/shared/revision-loop.md` for the full Check-Revise-Escalate pattern.
425
419
 
426
420
  Follow the revision loop pattern with:
427
- - **Producer**: planner (re-invoked with `skills/plan/templates/revision-prompt.md.tmpl`)
421
+ - **Producer**: planner (re-spawned with `skills/plan/templates/revision-prompt.md.tmpl`)
428
422
  - **Checker**: plan-checker (back to Step 6)
429
423
  - **Escalation**: present issues to user, offer "Proceed anyway" or "Adjust approach" (re-enter Step 5)
430
424
 
@@ -438,34 +432,15 @@ Follow the revision loop pattern with:
438
432
 
439
433
  **If approval is needed:**
440
434
 
441
- Present a summary of all plans to the user:
442
-
443
- ```
444
- Phase {N}: {name}
445
- Plans: {count}
435
+ Present a summary of all plans to the user. For each plan include: plan name, wave, task count, must-haves, files_modified. For each task include the task name. Add a wave execution order summary (Wave 1: Plan 01, 02 (parallel), Wave 2: Plan 03, etc.).
446
436
 
447
- Plan {phase}-01: {plan name} (Wave {W}, {task_count} tasks)
448
- Must-haves: {list truths}
449
- Files: {list files_modified}
450
- Tasks:
451
- 1. {task name}
452
- 2. {task name}
453
-
454
- Plan {phase}-02: {plan name} (Wave {W}, {task_count} tasks)
455
- ...
456
-
457
- Wave execution order:
458
- Wave 1: Plan 01, Plan 02 (parallel)
459
- Wave 2: Plan 03 (depends on 01, 02)
460
-
461
- Use the approve-revise-abort pattern from `skills/shared/gate-prompts.md`:
437
+ Use AskUserQuestion (pattern: approve-revise-abort from `skills/shared/gate-prompts.md`):
462
438
  question: "Approve these {count} plans for Phase {N}?"
463
439
  header: "Approve?"
464
440
  options:
465
441
  - label: "Approve" description: "Proceed to build phase"
466
442
  - label: "Request changes" description: "Discuss adjustments before proceeding"
467
443
  - label: "Abort" description: "Cancel planning for this phase"
468
- ```
469
444
 
470
445
  **If user selects 'Request changes' or 'Other':**
471
446
  - Discuss what needs to change
@@ -476,14 +451,7 @@ Use the approve-revise-abort pattern from `skills/shared/gate-prompts.md`:
476
451
  - **CONTEXT.md compliance reporting**: If `.planning/CONTEXT.md` exists, compare all locked decisions against the generated plans. Print: "CONTEXT.md compliance: {M}/{N} locked decisions mapped to tasks" where M = locked decisions that are reflected in at least one task, N = total locked decisions. If any locked decisions are unmapped, list them as warnings.
477
452
  - **Dependency fingerprinting**: For each dependency phase (phases that this phase depends on, per ROADMAP.md):
478
453
  1. Find all SUMMARY.md files in the dependency phase directory
479
- 2. Compute a simple hash of each SUMMARY.md file (e.g., first 8 chars of a SHA-256 of the file content, or a simpler approach: use the file's byte length + last-modified timestamp as a fingerprint string)
480
- 3. Add a `dependency_fingerprints` field to each plan's YAML frontmatter:
481
- ```yaml
482
- dependency_fingerprints:
483
- "01-01": "len:4856-mod:2025-02-08T09:40"
484
- "01-02": "len:4375-mod:2025-02-08T09:43"
485
- ```
486
- 4. This allows the build skill to detect if dependency phases were re-built after this plan was created
454
+ 2. Compute a fingerprint string for each: `"len:{bytes}-mod:{mtime}"` and add as a `dependency_fingerprints` map in each plan's YAML frontmatter this allows the build skill to detect stale plans if dependencies were rebuilt.
487
455
  - **Update ROADMAP.md Progress table** (REQUIRED — do this BEFORE updating STATE.md):
488
456
 
489
457
  **Tooling shortcut**: Use the CLI for atomic updates:
@@ -500,10 +468,10 @@ Use the approve-revise-abort pattern from `skills/shared/gate-prompts.md`:
500
468
  4. Update the `Plans Complete` column to `0/{N}` where N = number of plan files just created
501
469
  5. Update the `Status` column to `planned`
502
470
  6. Save the file — do NOT skip this step
503
- - Update STATE.md **(CRITICAL — update BOTH frontmatter AND body)**: set `status: "planned"`, `plans_total`, `last_command` in frontmatter AND update `Status:`, `Plan:` lines in body `## Current Position`
471
+ - Update STATE.md via CLI **(CRITICAL (no hook) — update BOTH frontmatter AND body)**: set `status: "planned"`, `plans_total`, `last_command` in frontmatter AND update `Status:`, `Plan:` lines in body `## Current Position`
504
472
 
505
473
  **Tooling shortcut**: `node ${PLUGIN_ROOT}/scripts/pbr-tools.js state patch '{"status":"planned","last_command":"/pbr:plan {N}"}'`
506
- - **If `features.auto_advance` is `true` AND `mode` is `autonomous`:** Chain directly to build. This continues the build->review->plan->build cycle automatically.
474
+ - **If `features.auto_advance` is `true` AND `mode` is `autonomous`:** Chain directly to build: `Skill({ skill: "pbr:build", args: "{N}" })`. This continues the buildreviewplanbuild cycle automatically.
507
475
  - **Otherwise:** Suggest next action: `/pbr:build {N}`
508
476
 
509
477
  ---
@@ -512,7 +480,7 @@ Use the approve-revise-abort pattern from `skills/shared/gate-prompts.md`:
512
480
 
513
481
  ### Subcommand: `add`
514
482
 
515
- **CRITICAL: Write .active-skill NOW.** Write the text "plan" to `.planning/.active-skill` using the Write tool.
483
+ **CRITICAL (hook-enforced): Write .active-skill NOW.** Write the text "plan" to `.planning/.active-skill` using the Write tool.
516
484
 
517
485
  1. Read `.planning/ROADMAP.md`
518
486
  2. Calculate next phase number (last phase + 1)
@@ -529,7 +497,7 @@ Use the approve-revise-abort pattern from `skills/shared/gate-prompts.md`:
529
497
 
530
498
  Reference: `skills/plan/decimal-phase-calc.md` for decimal numbering rules.
531
499
 
532
- **CRITICAL: Write .active-skill NOW.** Write the text "plan" to `.planning/.active-skill` using the Write tool.
500
+ **CRITICAL (hook-enforced): Write .active-skill NOW.** Write the text "plan" to `.planning/.active-skill` using the Write tool.
533
501
 
534
502
  1. Read `.planning/ROADMAP.md`
535
503
  2. Calculate decimal phase number:
@@ -550,7 +518,7 @@ Reference: `skills/plan/decimal-phase-calc.md` for decimal numbering rules.
550
518
  - Phase must exist
551
519
  - Phase must be in `pending` or `not started` status (cannot remove completed/in-progress phases)
552
520
  - No other phases depend on this phase (or user confirms breaking dependencies)
553
- 3. **CRITICAL: Write .active-skill NOW.** Write the text "plan" to `.planning/.active-skill` using the Write tool.
521
+ 3. **CRITICAL (hook-enforced): Write .active-skill NOW.** Write the text "plan" to `.planning/.active-skill` using the Write tool.
554
522
  4. Confirm with user: "Remove Phase {N}: {name}? This will delete the phase directory and renumber subsequent phases."
555
523
  5. If confirmed:
556
524
  - Delete `.planning/phases/{NN}-{slug}/` directory
@@ -569,7 +537,7 @@ When invoked with `--gaps`:
569
537
  1. Read `.planning/phases/{NN}-{slug}/VERIFICATION.md`
570
538
  - If no VERIFICATION.md exists: tell user "No verification report found. Run `/pbr:review {N}` first."
571
539
  2. Extract all gaps from the verification report
572
- 3. Invoke `@planner` in Gap Closure mode:
540
+ 3. Spawn planner Task() in Gap Closure mode:
573
541
 
574
542
  Read `skills/plan/templates/gap-closure-prompt.md.tmpl` and use it as the prompt template for the gap closure planner. Fill in the placeholders:
575
543
  - `<verification_report>` - inline the FULL VERIFICATION.md content
@@ -592,15 +560,15 @@ If the specified phase doesn't exist in ROADMAP.md, display a branded error box
592
560
  If REQUIREMENTS.md or ROADMAP.md don't exist, display a branded error box — see `skills/shared/error-reporting.md`, pattern: Missing prerequisites.
593
561
 
594
562
  ### Research agent fails
595
- If the researcher agent fails, display:
563
+ If the researcher Task() fails, display:
596
564
  ```
597
- Research agent failed. Planning without phase-specific research.
598
- This may result in less accurate plans.
565
+ Research agent failed. Planning without phase-specific research.
566
+ This may result in less accurate plans.
599
567
  ```
600
568
  Continue to the planning step.
601
569
 
602
570
  ### Planner agent fails
603
- If the planner agent fails, display a branded error box — see `skills/shared/error-reporting.md`, pattern: Planner agent failure.
571
+ If the planner Task() fails, display a branded error box — see `skills/shared/error-reporting.md`, pattern: Planner agent failure.
604
572
 
605
573
  ### Checker loops forever
606
574
  After 3 revision iterations without passing, display a branded error box — see `skills/shared/error-reporting.md`, pattern: Checker loops.
@@ -615,7 +583,7 @@ Present remaining issues and ask user to decide: proceed or intervene.
615
583
  | `.planning/phases/{NN}-{slug}/RESEARCH.md` | Phase-specific research | Step 4 |
616
584
  | `.planning/phases/{NN}-{slug}/PLAN-{NN}.md` | Executable plan files | Step 5 |
617
585
  | `.planning/CONTEXT.md` | Updated with assumptions | Step 3 (--assumptions) |
618
- | `.planning/ROADMAP.md` | Plans Complete + Status -> `planned`; updated for add/insert/remove | Step 8, Subcommands |
586
+ | `.planning/ROADMAP.md` | Plans Complete + Status `planned`; updated for add/insert/remove | Step 8, Subcommands |
619
587
  | `.planning/STATE.md` | Updated with plan status | Step 8 |
620
588
 
621
589
  ---
@@ -9,7 +9,7 @@ description: "Execute an ad-hoc task with atomic commits. Skips full plan/review
9
9
 
10
10
  You are running the **quick** skill. Your job is to execute a small, self-contained task outside the normal plan/build/review cycle. Quick tasks get their own tracking, atomic commits, and state integration, but skip the overhead of full planning.
11
11
 
12
- This skill **spawns a single Task(agent_type: "pbr:executor")** for execution.
12
+ This skill **spawns a single Task(subagent_type: "pbr:executor")** for execution.
13
13
 
14
14
  ---
15
15
 
@@ -30,7 +30,7 @@ Then proceed to Step 1.
30
30
  Reference: `skills/shared/context-budget.md` for the universal orchestrator rules.
31
31
 
32
32
  Additionally for this skill:
33
- - **Never** implement the task yourself — you are a router, not a builder. ALL code changes go through a spawned `Task(agent_type: "pbr:executor")`
33
+ - **Never** implement the task yourself — you are a router, not a builder. ALL code changes go through a spawned `Task(subagent_type: "pbr:executor")`
34
34
  - **Never** skip creating `.planning/quick/{NNN}-{slug}/` and writing PLAN.md — even trivial tasks need tracking artifacts
35
35
  - **Minimize** reading executor output into main context — read only SUMMARY.md frontmatter
36
36
 
@@ -87,13 +87,13 @@ Use AskUserQuestion:
87
87
  multiSelect: false
88
88
 
89
89
  If user selects "Quick task": continue to Step 4.
90
- If user selects "Full plan": clean up `.active-skill` if it exists, then chain directly to the plan skill. The user's task description carries over in conversation context — the plan skill will pick it up.
90
+ If user selects "Full plan": clean up `.active-skill` if it exists, then chain directly: `Skill({ skill: "pbr:plan", args: "" })`. The user's task description carries over in conversation context — the plan skill will pick it up.
91
91
  If user selects "Revise": go back to Step 2 to get a new task description.
92
92
  If user types something else (freeform): interpret their response and proceed accordingly.
93
93
 
94
94
  ### Step 4: Generate Slug and Task Number
95
95
 
96
- **CRITICAL: You MUST complete Steps 4, 5, and 6 before any executor is spawned. If you skip these steps, the quick task will have no tracking artifacts and no PLAN.md for the executor to follow. This is the #1 failure mode of this skill.**
96
+ **CRITICAL (no hook): You MUST complete Steps 4, 5, and 6 before any executor is spawned. If you skip these steps, the quick task will have no tracking artifacts and no PLAN.md for the executor to follow. This is the #1 failure mode of this skill.**
97
97
 
98
98
  **Generate slug:**
99
99
  - Take the first 4-5 meaningful words from the description
@@ -167,7 +167,7 @@ node ${PLUGIN_ROOT}/scripts/pbr-tools.js llm classify PLAN ".planning/quick/{NNN
167
167
 
168
168
  Display to the user: `◐ Spawning executor...`
169
169
 
170
- Spawn a `Task(agent_type: "pbr:executor")` with the following prompt:
170
+ Spawn a `Task(subagent_type: "pbr:executor")` with the following prompt:
171
171
 
172
172
  > **Completion markers**: After executor completes, check for `## PLAN COMPLETE` or `## PLAN FAILED`. Route accordingly.
173
173
 
@@ -175,7 +175,7 @@ Spawn a `Task(agent_type: "pbr:executor")` with the following prompt:
175
175
  You are executor. Execute the following quick task plan.
176
176
 
177
177
  <files_to_read>
178
- CRITICAL: Read these files BEFORE any other action:
178
+ CRITICAL (no hook): Read these files BEFORE any other action:
179
179
  1. .planning/quick/{NNN}-{slug}/PLAN.md — the quick task plan with task details
180
180
  2. .planning/STATE.md — current project state and progress (if exists)
181
181
  </files_to_read>
@@ -204,7 +204,7 @@ After the executor completes:
204
204
 
205
205
  ### Step 8b: Spot-Check Executor Output
206
206
 
207
- CRITICAL: Verify executor output before proceeding.
207
+ CRITICAL (no hook): Verify executor output before proceeding.
208
208
 
209
209
  1. **SUMMARY.md exists**: Check `.planning/quick/{NNN}-{slug}/SUMMARY.md` exists
210
210
  2. **Key files exist**: Verify first 2 files from SUMMARY.md `key_files` frontmatter exist on disk
@@ -290,6 +290,8 @@ Display results to the user with branded output:
290
290
  Commit: {hash} — {commit message}
291
291
  Files: {list of files changed}
292
292
 
293
+
294
+
293
295
  ╔══════════════════════════════════════════════════════════════╗
294
296
  ║ ▶ NEXT UP ║
295
297
  ╚══════════════════════════════════════════════════════════════╝
@@ -300,10 +302,13 @@ Files: {list of files changed}
300
302
 
301
303
  <sub>`/clear` first → fresh context window</sub>
302
304
 
305
+
306
+
303
307
  **Also available:**
304
308
  - `/pbr:continue` — execute next logical step
305
309
  - `/pbr:todo list` — see pending todos
306
310
 
311
+
307
312
  ```
308
313
 
309
314
  **If partial:**
@@ -399,7 +404,7 @@ Choose verification based on context:
399
404
 
400
405
  **These are the most common failure modes. If you violate any of these, the skill has not executed correctly.**
401
406
 
402
- 1. **DO NOT** implement the task yourself — you MUST spawn a `Task(agent_type: "pbr:executor")`. This is the single most important rule.
407
+ 1. **DO NOT** implement the task yourself — you MUST spawn a `Task(subagent_type: "pbr:executor")`. This is the single most important rule.
403
408
  2. **DO NOT** skip creating `.planning/quick/{NNN}-{slug}/` — every quick task gets a tracking directory
404
409
  3. **DO NOT** skip writing PLAN.md — the executor needs a plan file to follow
405
410
  4. **DO NOT** create elaborate multi-wave plans — quick tasks should be 1-3 tasks max
@@ -3,6 +3,8 @@ name: resume
3
3
  description: "Pick up where you left off. Restores context and suggests next action."
4
4
  ---
5
5
 
6
+ **STOP — DO NOT READ THIS FILE. You are already reading it. This prompt was injected into your context by Claude Code's plugin system. Using the Read tool on this SKILL.md file wastes ~7,600 tokens. Begin executing Step 1 immediately.**
7
+
6
8
  ## Step 0 — Immediate Output
7
9
 
8
10
  **Before ANY tool calls**, display this banner:
@@ -180,6 +182,7 @@ Blockers:
180
182
  **If only one clear next action exists**, present it with branded routing:
181
183
  ```
182
184
 
185
+
183
186
  ╔══════════════════════════════════════════════════════════════╗
184
187
  ║ ▶ NEXT UP ║
185
188
  ╚══════════════════════════════════════════════════════════════╝
@@ -190,6 +193,7 @@ Blockers:
190
193
 
191
194
  <sub>`/clear` first → fresh context window</sub>
192
195
 
196
+
193
197
  ```
194
198
 
195
199
  **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`):