From pbr
Executes ad-hoc tasks via spawned executor subagent with atomic commits and .planning/quick/ tracking. For small self-contained work, skips full plan/review.
How this skill is triggered — by the user, by Claude, or both
Slash command
/pbr:quickThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
**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.**
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.
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.
This skill spawns a single Task(subagent_type: "pbr:executor") for execution.
Before ANY tool calls, display this banner:
╔══════════════════════════════════════════════════════════════╗
║ PLAN-BUILD-RUN ► QUICK TASK ║
╚══════════════════════════════════════════════════════════════╝
Then proceed to Step 1.
Reference: skills/shared/context-budget.md for the universal orchestrator rules.
Additionally for this skill:
Task(subagent_type: "pbr:executor").planning/quick/{NNN}-{slug}/ and writing PLAN.md — even trivial tasks need tracking artifactsQuick tasks are for small, well-defined work. If the user describes something that would take more than 3-5 tasks or touches multiple subsystems, suggest using the full plan/build cycle instead.
Init-first pattern: When spawning agents, pass the output of node plugins/pbr/scripts/pbr-tools.js init quick "{description}" as context rather than having the agent read multiple files separately. This reduces file reads and prevents context-loading failures.
Check if .planning/ directory exists
.planning/ and .planning/quick/ directories, then warn "No Plan-Build-Run project found. This will create a standalone quick task. Consider running /pbr:begin first for full project tracking."If .planning/ exists but .planning/quick/ does not: create .planning/quick/ now. Every quick task gets tracked in .planning/quick/ — this directory MUST exist before Step 4.
After confirming both directories exist, write .planning/.active-skill with the content quick (single word, no newline). This registers you with the workflow enforcement hook — it will block source code writes until PLAN.md exists.
Check if ROADMAP.md exists
If $ARGUMENTS is provided and non-empty:
$ARGUMENTS as the task descriptionIf $ARGUMENTS is empty:
Analyze the task description. If it appears to involve:
Then use the scope-confirm pattern (see skills/shared/gate-prompts.md):
Use AskUserQuestion: question: "This task looks complex. Quick tasks work best for bug fixes, small features, config changes, and single-module refactors. How would you like to proceed?" header: "Scope" options: - label: "Quick task" description: "Execute as lightweight task" - label: "Full plan" description: "Switch to /pbr:plan for proper planning" - label: "Revise" description: "Let me rewrite the task description" multiSelect: false
If user selects "Quick task": continue to Step 4.
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.
If user selects "Revise": go back to Step 2 to get a new task description.
If user types something else (freeform): interpret their response and proceed accordingly.
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.
Generate slug:
Find next task number:
.planning/quick/ directory for existing quick task directories{NNN}-{slug}/)STOP — Use the Write or Bash tool RIGHT NOW to create this directory. Do not skip this step.
Create: .planning/quick/{NNN}-{slug}/
Verify the directory exists with ls .planning/quick/{NNN}-{slug}/ before proceeding. If the directory doesn't exist, you have a bug — go back and create it.
Write .planning/quick/{NNN}-{slug}/PLAN.md:
Read references/plan-format.md for the plan file format. Fill in all {variable} placeholders with actual task data from the user's description and project context.
Plan generation rules:
echo "Manual verification needed" and add a noteFor multi-task quick tasks, add sequential tasks:
<task name="{task 1}" type="auto">
...
</task>
<task name="{task 2}" type="auto">
...
</task>
PLANNING GATE — verify before spawning executor:
Before proceeding to Step 7, confirm these exist on disk:
.planning/quick/{NNN}-{slug}/ directory exists.planning/quick/{NNN}-{slug}/PLAN.md exists, is non-empty, and contains at least one <task> blockIf either check fails, you have skipped steps. Go back and complete Steps 4-6. Do NOT proceed to spawning an executor.
If config.local_llm.enabled is true, run a quick scope validation before spawning:
node ${CLAUDE_PLUGIN_ROOT}/scripts/pbr-tools.js llm classify PLAN ".planning/quick/{NNN}-{slug}/PLAN.md"
"stub" with confidence >= 0.7: warn "⚠ Plan looks like a stub — executor may struggle. Consider adding more detail to task descriptions."Pre-spawn check — Verify .planning/quick/{NNN}-{slug}/PLAN.md exists and contains at least one <task> block. If missing, STOP and complete Steps 4-6 first.
Display to the user: ◐ Spawning executor...
Spawn a Task(subagent_type: "pbr:executor") with the following prompt:
Completion markers: After executor completes, check for
## PLAN COMPLETEor## PLAN FAILED. Route accordingly.
You are executor. Execute the following quick task plan.
<files_to_read>
CRITICAL (no hook): Read these files BEFORE any other action:
1. .planning/quick/{NNN}-{slug}/PLAN.md — the quick task plan with task details
2. .planning/STATE.md — current project state and progress (if exists)
</files_to_read>
Plan file: .planning/quick/{NNN}-{slug}/PLAN.md
Phase: quick
Plan ID: {NNN}
Read the plan file and execute all tasks sequentially. Follow all executor protocols:
- Atomic commits per task
- Commit format: fix(quick-{NNN}): {description} (or feat/refactor/test as appropriate)
- Run verify commands
- Create SUMMARY.md at .planning/quick/{NNN}-{slug}/SUMMARY.md
Execute now.
After the executor completes:
.planning/quick/{NNN}-{slug}/SUMMARY.mdcompleted — task succeededpartial — some tasks completed, others failedfailed — task failed entirelyCRITICAL (no hook): Verify executor output before proceeding.
.planning/quick/{NNN}-{slug}/SUMMARY.md existskey_files frontmatter exist on diskgit log --oneline -5 and verify at least one commit matches the task scope## Self-Check: FAILED in SUMMARY.md — if present, warn the userIf ANY spot-check fails, present the user with options: Retry / Continue anyway / Abort
If STATE.md exists, update the Quick Tasks section.
If the section doesn't exist, create it:
### Quick Tasks
| # | Description | Status | Commit |
|---|-------------|--------|--------|
Add the new entry:
| {NNN} | {description} | {status indicator} | {commit hash or "N/A"} |
Status indicators:
Delete .planning/.active-skill if it exists. This must happen on all paths (success, partial, and failure) before reporting results.
Reference: skills/shared/commit-planning-docs.md for the standard commit pattern.
If planning.commit_docs: true in config.json:
docs(planning): quick task {NNN} - {slug}After completing work, check if any pending todos are now satisfied:
.planning/todos/pending/ exists and contains filesstatus: done, add completed: {YYYY-MM-DD}, write to .planning/todos/done/{filename}, delete from pending/ via Bash rm✓ Auto-closed todo {NNN}: {title} (satisfied by quick task {NNN})
d. If a todo is partially related but not fully satisfied: do NOT close it, but mention it:ℹ Related pending todo {NNN}: {title} — may be partially addressed
e. If a todo is unrelated: skip silentlyImportant: Only auto-close todos where the match is unambiguous. When in doubt, leave it open — false closures are worse than missed closures.
Artifact check — Before reporting, verify all required artifacts exist:
.planning/quick/{NNN}-{slug}/PLAN.md exists.planning/quick/{NNN}-{slug}/SUMMARY.md exists and is non-emptyIf SUMMARY.md is missing: the executor may have failed — re-read executor output and report the failure. If STATE.md entry is missing: write it now (Step 9 was skipped).
Display results to the user with branded output:
If completed:
╔══════════════════════════════════════════════════════════════╗
║ PLAN-BUILD-RUN ► QUICK TASK COMPLETE ✓ ║
╚══════════════════════════════════════════════════════════════╝
**Quick Task {NNN}:** {description}
Commit: {hash} — {commit message}
Files: {list of files changed}
╔══════════════════════════════════════════════════════════════╗
║ ▶ NEXT UP ║
╚══════════════════════════════════════════════════════════════╝
**Continue your workflow** — task complete
`/pbr:status`
<sub>`/clear` first → fresh context window</sub>
**Also available:**
- `/pbr:continue` — execute next logical step
- `/pbr:todo list` — see pending todos
If partial:
╔══════════════════════════════════════════════════════════════╗
║ PLAN-BUILD-RUN ► QUICK TASK {NNN} PARTIAL ⚠ ║
╚══════════════════════════════════════════════════════════════╝
Completed: {N} of {M} tasks
Failed task: {task name} — {failure reason}
→ Re-run with `/pbr:quick` to retry
→ `/pbr:debug` to investigate the failure
If failed:
╔══════════════════════════════════════════════════════════════╗
║ ERROR ║
╚══════════════════════════════════════════════════════════════╝
Quick Task {NNN} failed: {failure details}
**To fix:** {what to try next}
When the user describes a task, infer file paths from:
Choose verification based on context:
| Context | Verification Command |
|---|---|
| TypeScript project | npx tsc --noEmit |
| Has test files | npm test or pytest |
| Has ESLint | npx eslint {files} |
| Python project | python -c "import {module}" |
| Config change | cat {file} to verify content |
| Script | Run the script with safe args |
| Unknown | echo "Manual verification needed" |
| Task Nature | Commit Type |
|---|---|
| Bug fix | fix |
| New feature/functionality | feat |
| Code restructuring | refactor |
| Adding tests | test |
| Config/tooling changes | chore |
| Documentation | docs |
.planning/ directory.planning/quick/ directory.planning/.active-skill before reporting the errorThese are the most common failure modes. If you violate any of these, the skill has not executed correctly.
Task(subagent_type: "pbr:executor"). This is the single most important rule..planning/quick/{NNN}-{slug}/ — every quick task gets a tracking directorygit add . — stage specific files only/pbr:plannpx claudepluginhub p/sienklogic-pbr-plugins-pbrExecutes a small-task plan from chat or a TASK-*.md file, making code changes, running commands, and verifying acceptance criteria. Ends with commit or commit-and-push options.
Executes small, self-contained tasks like bug fixes, config changes, and dependency updates without full workflow overhead. Skips multi-AI research and validation for fast turnaround.
Executes tasks from PLAN.md sequentially with human oversight, handling task splitting, clarifying questions, tests, and learning persistence. Useful for deliberate progress on planned work.