@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.
- package/CHANGELOG.md +15 -0
- package/package.json +4 -2
- package/plugins/copilot-pbr/agents/audit.agent.md +2 -5
- package/plugins/copilot-pbr/agents/codebase-mapper.agent.md +1 -4
- package/plugins/copilot-pbr/agents/debugger.agent.md +1 -4
- package/plugins/copilot-pbr/agents/dev-sync.agent.md +6 -9
- package/plugins/copilot-pbr/agents/executor.agent.md +1 -4
- package/plugins/copilot-pbr/agents/general.agent.md +1 -4
- package/plugins/copilot-pbr/agents/integration-checker.agent.md +1 -4
- package/plugins/copilot-pbr/agents/plan-checker.agent.md +1 -4
- package/plugins/copilot-pbr/agents/planner.agent.md +1 -4
- package/plugins/copilot-pbr/agents/researcher.agent.md +1 -4
- package/plugins/copilot-pbr/agents/synthesizer.agent.md +1 -4
- package/plugins/copilot-pbr/agents/verifier.agent.md +2 -4
- package/plugins/copilot-pbr/commands/audit.md +5 -0
- package/plugins/copilot-pbr/commands/begin.md +5 -0
- package/plugins/copilot-pbr/commands/build.md +5 -0
- package/plugins/copilot-pbr/commands/config.md +5 -0
- package/plugins/copilot-pbr/commands/continue.md +5 -0
- package/plugins/copilot-pbr/commands/dashboard.md +5 -0
- package/plugins/copilot-pbr/commands/debug.md +5 -0
- package/plugins/copilot-pbr/commands/discuss.md +5 -0
- package/plugins/copilot-pbr/commands/do.md +5 -0
- package/plugins/copilot-pbr/commands/explore.md +5 -0
- package/plugins/copilot-pbr/commands/health.md +5 -0
- package/plugins/copilot-pbr/commands/help.md +5 -0
- package/plugins/copilot-pbr/commands/import.md +5 -0
- package/plugins/copilot-pbr/commands/milestone.md +5 -0
- package/plugins/copilot-pbr/commands/note.md +5 -0
- package/plugins/copilot-pbr/commands/pause.md +5 -0
- package/plugins/copilot-pbr/commands/plan.md +5 -0
- package/plugins/copilot-pbr/commands/quick.md +5 -0
- package/plugins/copilot-pbr/commands/resume.md +5 -0
- package/plugins/copilot-pbr/commands/review.md +5 -0
- package/plugins/copilot-pbr/commands/scan.md +5 -0
- package/plugins/copilot-pbr/commands/setup.md +5 -0
- package/plugins/copilot-pbr/commands/status.md +5 -0
- package/plugins/copilot-pbr/commands/statusline.md +5 -0
- package/plugins/copilot-pbr/commands/todo.md +5 -0
- package/plugins/copilot-pbr/plugin.json +1 -1
- package/plugins/copilot-pbr/references/agent-anti-patterns.md +0 -1
- package/plugins/copilot-pbr/references/agent-teams.md +0 -1
- package/plugins/copilot-pbr/references/common-bug-patterns.md +0 -1
- package/plugins/copilot-pbr/references/config-reference.md +0 -1
- package/plugins/copilot-pbr/references/continuation-format.md +0 -1
- package/plugins/copilot-pbr/references/deviation-rules.md +0 -1
- package/plugins/copilot-pbr/references/git-integration.md +0 -1
- package/plugins/copilot-pbr/references/integration-patterns.md +0 -1
- package/plugins/copilot-pbr/references/model-profiles.md +0 -1
- package/plugins/copilot-pbr/references/model-selection.md +0 -1
- package/plugins/copilot-pbr/references/pbr-rules.md +0 -1
- package/plugins/copilot-pbr/references/plan-authoring.md +0 -1
- package/plugins/copilot-pbr/references/plan-format.md +0 -1
- package/plugins/copilot-pbr/references/reading-verification.md +0 -1
- package/plugins/copilot-pbr/references/stub-patterns.md +0 -1
- package/plugins/copilot-pbr/references/wave-execution.md +0 -1
- package/plugins/copilot-pbr/skills/begin/SKILL.md +74 -52
- package/plugins/copilot-pbr/skills/build/SKILL.md +55 -69
- package/plugins/copilot-pbr/skills/config/SKILL.md +7 -0
- package/plugins/copilot-pbr/skills/continue/SKILL.md +31 -24
- package/plugins/copilot-pbr/skills/dashboard/SKILL.md +8 -7
- package/plugins/copilot-pbr/skills/debug/SKILL.md +11 -0
- package/plugins/copilot-pbr/skills/discuss/SKILL.md +2 -0
- package/plugins/copilot-pbr/skills/do/SKILL.md +2 -0
- package/plugins/copilot-pbr/skills/explore/SKILL.md +7 -1
- package/plugins/copilot-pbr/skills/health/SKILL.md +2 -0
- package/plugins/copilot-pbr/skills/help/SKILL.md +6 -0
- package/plugins/copilot-pbr/skills/import/SKILL.md +9 -0
- package/plugins/copilot-pbr/skills/milestone/SKILL.md +20 -196
- package/plugins/copilot-pbr/skills/note/SKILL.md +2 -0
- package/plugins/copilot-pbr/skills/pause/SKILL.md +5 -0
- package/plugins/copilot-pbr/skills/plan/SKILL.md +87 -119
- package/plugins/copilot-pbr/skills/quick/SKILL.md +13 -8
- package/plugins/copilot-pbr/skills/resume/SKILL.md +4 -0
- package/plugins/copilot-pbr/skills/review/SKILL.md +85 -47
- package/plugins/copilot-pbr/skills/scan/SKILL.md +6 -0
- package/plugins/copilot-pbr/skills/setup/SKILL.md +2 -0
- package/plugins/copilot-pbr/skills/shared/commit-planning-docs.md +0 -1
- package/plugins/copilot-pbr/skills/shared/config-loading.md +0 -1
- package/plugins/copilot-pbr/skills/shared/context-budget.md +0 -1
- package/plugins/copilot-pbr/skills/shared/context-loader-task.md +0 -1
- package/plugins/copilot-pbr/skills/shared/digest-select.md +0 -1
- package/plugins/copilot-pbr/skills/shared/domain-probes.md +0 -1
- package/plugins/copilot-pbr/skills/shared/gate-prompts.md +0 -1
- package/plugins/copilot-pbr/skills/shared/phase-argument-parsing.md +0 -1
- package/plugins/copilot-pbr/skills/shared/revision-loop.md +0 -1
- package/plugins/copilot-pbr/skills/shared/state-update.md +0 -1
- package/plugins/copilot-pbr/skills/shared/universal-anti-patterns.md +1 -2
- package/plugins/copilot-pbr/skills/status/SKILL.md +35 -26
- package/plugins/copilot-pbr/skills/test/SKILL.md +2 -2
- package/plugins/copilot-pbr/skills/todo/SKILL.md +2 -0
- package/plugins/copilot-pbr/templates/CONTEXT.md.tmpl +0 -1
- package/plugins/copilot-pbr/templates/INTEGRATION-REPORT.md.tmpl +0 -1
- package/plugins/copilot-pbr/templates/RESEARCH-SUMMARY.md.tmpl +0 -1
- package/plugins/copilot-pbr/templates/ROADMAP.md.tmpl +0 -1
- package/plugins/copilot-pbr/templates/SUMMARY.md.tmpl +0 -1
- package/plugins/copilot-pbr/templates/VERIFICATION-DETAIL.md.tmpl +0 -1
- package/plugins/copilot-pbr/templates/continue-here.md.tmpl +0 -1
- package/plugins/copilot-pbr/templates/prompt-partials/phase-project-context.md.tmpl +0 -1
- package/plugins/cursor-pbr/.cursor-plugin/plugin.json +1 -1
- package/plugins/cursor-pbr/agents/audit.md +1 -1
- package/plugins/cursor-pbr/agents/codebase-mapper.md +1 -1
- package/plugins/cursor-pbr/agents/debugger.md +1 -1
- package/plugins/cursor-pbr/agents/dev-sync.md +6 -6
- package/plugins/cursor-pbr/agents/executor.md +1 -1
- package/plugins/cursor-pbr/agents/general.md +1 -1
- package/plugins/cursor-pbr/agents/integration-checker.md +2 -2
- package/plugins/cursor-pbr/agents/plan-checker.md +2 -2
- package/plugins/cursor-pbr/agents/planner.md +1 -1
- package/plugins/cursor-pbr/agents/researcher.md +2 -2
- package/plugins/cursor-pbr/agents/synthesizer.md +1 -1
- package/plugins/cursor-pbr/agents/verifier.md +3 -2
- package/plugins/cursor-pbr/commands/audit.md +5 -0
- package/plugins/cursor-pbr/commands/begin.md +5 -0
- package/plugins/cursor-pbr/commands/build.md +5 -0
- package/plugins/cursor-pbr/commands/config.md +5 -0
- package/plugins/cursor-pbr/commands/continue.md +5 -0
- package/plugins/cursor-pbr/commands/dashboard.md +5 -0
- package/plugins/cursor-pbr/commands/debug.md +5 -0
- package/plugins/cursor-pbr/commands/discuss.md +5 -0
- package/plugins/cursor-pbr/commands/do.md +5 -0
- package/plugins/cursor-pbr/commands/explore.md +5 -0
- package/plugins/cursor-pbr/commands/health.md +5 -0
- package/plugins/cursor-pbr/commands/help.md +5 -0
- package/plugins/cursor-pbr/commands/import.md +5 -0
- package/plugins/cursor-pbr/commands/milestone.md +5 -0
- package/plugins/cursor-pbr/commands/note.md +5 -0
- package/plugins/cursor-pbr/commands/pause.md +5 -0
- package/plugins/cursor-pbr/commands/plan.md +5 -0
- package/plugins/cursor-pbr/commands/quick.md +5 -0
- package/plugins/cursor-pbr/commands/resume.md +5 -0
- package/plugins/cursor-pbr/commands/review.md +5 -0
- package/plugins/cursor-pbr/commands/scan.md +5 -0
- package/plugins/cursor-pbr/commands/setup.md +5 -0
- package/plugins/cursor-pbr/commands/status.md +5 -0
- package/plugins/cursor-pbr/commands/statusline.md +5 -0
- package/plugins/cursor-pbr/commands/todo.md +5 -0
- package/plugins/cursor-pbr/hooks/hooks.json +4 -10
- package/plugins/cursor-pbr/references/agent-anti-patterns.md +0 -1
- package/plugins/cursor-pbr/references/agent-teams.md +0 -1
- package/plugins/cursor-pbr/references/common-bug-patterns.md +0 -1
- package/plugins/cursor-pbr/references/config-reference.md +0 -1
- package/plugins/cursor-pbr/references/continuation-format.md +0 -1
- package/plugins/cursor-pbr/references/deviation-rules.md +0 -1
- package/plugins/cursor-pbr/references/git-integration.md +0 -1
- package/plugins/cursor-pbr/references/integration-patterns.md +0 -1
- package/plugins/cursor-pbr/references/model-profiles.md +0 -1
- package/plugins/cursor-pbr/references/model-selection.md +0 -1
- package/plugins/cursor-pbr/references/pbr-rules.md +0 -1
- package/plugins/cursor-pbr/references/plan-authoring.md +0 -1
- package/plugins/cursor-pbr/references/plan-format.md +0 -1
- package/plugins/cursor-pbr/references/reading-verification.md +0 -1
- package/plugins/cursor-pbr/references/stub-patterns.md +0 -1
- package/plugins/cursor-pbr/references/wave-execution.md +0 -1
- package/plugins/cursor-pbr/skills/begin/SKILL.md +74 -52
- package/plugins/cursor-pbr/skills/build/SKILL.md +58 -70
- package/plugins/cursor-pbr/skills/config/SKILL.md +5 -0
- package/plugins/cursor-pbr/skills/continue/SKILL.md +31 -24
- package/plugins/cursor-pbr/skills/dashboard/SKILL.md +8 -7
- package/plugins/cursor-pbr/skills/debug/SKILL.md +8 -0
- package/plugins/cursor-pbr/skills/discuss/SKILL.md +2 -0
- package/plugins/cursor-pbr/skills/do/SKILL.md +2 -0
- package/plugins/cursor-pbr/skills/explore/SKILL.md +5 -1
- package/plugins/cursor-pbr/skills/health/SKILL.md +2 -0
- package/plugins/cursor-pbr/skills/help/SKILL.md +6 -0
- package/plugins/cursor-pbr/skills/import/SKILL.md +7 -0
- package/plugins/cursor-pbr/skills/milestone/SKILL.md +20 -196
- package/plugins/cursor-pbr/skills/note/SKILL.md +2 -0
- package/plugins/cursor-pbr/skills/pause/SKILL.md +4 -0
- package/plugins/cursor-pbr/skills/plan/SKILL.md +87 -119
- package/plugins/cursor-pbr/skills/quick/SKILL.md +13 -8
- package/plugins/cursor-pbr/skills/resume/SKILL.md +4 -0
- package/plugins/cursor-pbr/skills/review/SKILL.md +85 -47
- package/plugins/cursor-pbr/skills/scan/SKILL.md +5 -0
- package/plugins/cursor-pbr/skills/setup/SKILL.md +2 -0
- package/plugins/cursor-pbr/skills/shared/commit-planning-docs.md +0 -1
- package/plugins/cursor-pbr/skills/shared/config-loading.md +0 -1
- package/plugins/cursor-pbr/skills/shared/context-budget.md +0 -1
- package/plugins/cursor-pbr/skills/shared/context-loader-task.md +0 -1
- package/plugins/cursor-pbr/skills/shared/digest-select.md +0 -1
- package/plugins/cursor-pbr/skills/shared/domain-probes.md +0 -1
- package/plugins/cursor-pbr/skills/shared/gate-prompts.md +0 -1
- package/plugins/cursor-pbr/skills/shared/phase-argument-parsing.md +0 -1
- package/plugins/cursor-pbr/skills/shared/revision-loop.md +0 -1
- package/plugins/cursor-pbr/skills/shared/state-update.md +0 -1
- package/plugins/cursor-pbr/skills/shared/universal-anti-patterns.md +1 -2
- package/plugins/cursor-pbr/skills/status/SKILL.md +35 -26
- package/plugins/cursor-pbr/skills/test/SKILL.md +2 -2
- package/plugins/cursor-pbr/skills/todo/SKILL.md +2 -0
- package/plugins/cursor-pbr/templates/CONTEXT.md.tmpl +0 -1
- package/plugins/cursor-pbr/templates/INTEGRATION-REPORT.md.tmpl +0 -1
- package/plugins/cursor-pbr/templates/RESEARCH-SUMMARY.md.tmpl +0 -1
- package/plugins/cursor-pbr/templates/ROADMAP.md.tmpl +0 -1
- package/plugins/cursor-pbr/templates/SUMMARY.md.tmpl +0 -1
- package/plugins/cursor-pbr/templates/VERIFICATION-DETAIL.md.tmpl +0 -1
- package/plugins/cursor-pbr/templates/continue-here.md.tmpl +0 -1
- package/plugins/cursor-pbr/templates/prompt-partials/phase-project-context.md.tmpl +0 -1
- package/plugins/pbr/.claude-plugin/plugin.json +1 -1
- package/plugins/pbr/scripts/context-budget-check.js +13 -1
- package/plugins/pbr/scripts/lib/core.js +53 -1
- package/plugins/pbr/scripts/pbr-tools.js +49 -3
- package/plugins/pbr/scripts/progress-tracker.js +13 -3
- package/plugins/pbr/scripts/session-cleanup.js +6 -0
- package/plugins/pbr/scripts/suggest-compact.js +13 -1
- package/plugins/pbr/skills/begin/SKILL.md +13 -13
- package/plugins/pbr/skills/build/SKILL.md +24 -7
- package/plugins/pbr/skills/milestone/SKILL.md +10 -10
- package/plugins/pbr/skills/plan/SKILL.md +9 -9
- package/plugins/pbr/skills/quick/SKILL.md +3 -3
- 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
|
|
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
|
|
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
|
|
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
|
|
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:
|
|
183
|
+
Display to the user: `◐ Spawning researcher...`
|
|
211
184
|
|
|
212
|
-
|
|
185
|
+
Spawn a researcher Task():
|
|
213
186
|
|
|
214
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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`
|
|
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
|
-
|
|
303
|
-
2. Display to the user: `Spawning 3 planners in parallel (architect, security, test)...`
|
|
282
|
+
#### Single-Planner Flow (default)
|
|
304
283
|
|
|
305
|
-
|
|
284
|
+
**Learnings injection (opt-in):** Check for planning and estimation learnings before spawning the planner:
|
|
306
285
|
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
286
|
+
```bash
|
|
287
|
+
node {resolved_plugin_root}/scripts/pbr-tools.js learnings query --tags "estimation,planning,process" 2>/dev/null
|
|
288
|
+
```
|
|
310
289
|
|
|
311
|
-
|
|
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
|
-
|
|
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
|
-
|
|
320
|
-
|
|
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
|
-
|
|
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
|
|
300
|
+
If no learnings or command fails: omit.
|
|
326
301
|
|
|
327
|
-
|
|
302
|
+
Display to the user: `◐ Spawning planner...`
|
|
328
303
|
|
|
329
|
-
|
|
304
|
+
Spawn the planner Task() with all context inlined:
|
|
330
305
|
|
|
331
|
-
|
|
306
|
+
```
|
|
307
|
+
Task({
|
|
308
|
+
subagent_type: "pbr:planner",
|
|
309
|
+
prompt: <planning prompt>
|
|
310
|
+
})
|
|
332
311
|
|
|
333
|
-
|
|
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
|
|
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:
|
|
376
|
+
Display to the user: `◐ Spawning plan checker...`
|
|
390
377
|
|
|
391
|
-
|
|
378
|
+
Spawn the plan checker Task():
|
|
392
379
|
|
|
393
|
-
|
|
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
|
|
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
|
|
418
|
-
- If issues found: display
|
|
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-
|
|
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
|
-
|
|
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
|
|
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
|
|
474
|
+
- **If `features.auto_advance` is `true` AND `mode` is `autonomous`:** Chain directly to build: `Skill({ skill: "pbr:build", args: "{N}" })`. This continues the build→review→plan→build 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.
|
|
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
|
|
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
|
|
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
|
|
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(
|
|
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(
|
|
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
|
|
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(
|
|
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(
|
|
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`):
|