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.
Step 0 — Immediate Output
Before ANY tool calls, display this banner:
╔══════════════════════════════════════════════════════════════╗
║ PLAN-BUILD-RUN ► CONFIGURATION ║
╚══════════════════════════════════════════════════════════════╝
Then proceed to Step 1.
/pbr:settings — Configure Plan-Build-Run
Overview
Reads and writes .planning/config.json. Interactive configuration with AskUserQuestion.
References
references/config-reference.md— Full config.json schema (54 fields, 16 feature toggles, validation rules)references/model-profiles.md— Model selection guide for agent spawningreferences/questioning.md— Questioning philosophy for config decision guidancereferences/ui-brand.md— Status symbols, banners, formatting for config display output
Flow
1. Load Current Config
Read .planning/config.json. If it doesn't exist, display:
╔══════════════════════════════════════════════════════════════╗
║ ERROR ║
╚══════════════════════════════════════════════════════════════╝
No Plan-Build-Run project found.
**To fix:** Run `/pbr:new-project` first.
1b. Quick Start Path (no arguments, first-time configuration)
If no $ARGUMENTS provided and this is the first time running /pbr:settings interactively (no prior config changes detected), present:
Use AskUserQuestion: question: "How would you like to configure?" header: "Setup" options: - label: "Quick Start (recommended)" description: "Answer 4 essential questions, sensible defaults for everything else" - label: "Advanced (all fields)" description: "Full config with 54 fields for granular customization"
If user selects "Quick Start":
First, check for global defaults: pbr-tools config load-defaults
If defaults exist, use them as pre-populated values. Otherwise, use hardcoded defaults shown below.
Present 4 essential questions sequentially:
Q1. Mode: Use AskUserQuestion: question: "How do you want to work?" header: "Mode" options: - label: "Interactive (default)" description: "Pause at key gates for your approval" - label: "Autonomous" description: "Auto-proceed, only stop for critical decisions"
Q2. Depth: Use AskUserQuestion: question: "How thorough should planning be?" header: "Depth" options: - label: "Standard (default)" description: "5-8 phases, includes research" - label: "Quick" description: "3-5 phases, skip research, ~50% cheaper" - label: "Comprehensive" description: "8-12 phases, full deep research, ~2x cost"
Q3. Parallel agents: Use AskUserQuestion: question: "Run agents in parallel when possible?" header: "Parallel" options: - label: "Yes (default)" description: "Parallel execution of independent plans" - label: "No" description: "Sequential execution only"
Q4. Git branching: Use AskUserQuestion: question: "Git branching strategy?" header: "Branching" options: - label: "Phase (default, recommended)" description: "Branch per phase for safe undo" - label: "None" description: "All work on current branch"
After 4 answers, write config.json with all other fields set to sensible defaults.
Quick Start defaults: mode=interactive, depth=standard, parallel=true, git.branching=phase
After writing config, offer: "Save these as your global defaults for future projects? (y/n)"
If yes, run: pbr-tools config save-defaults
Display: "Config written. For full field reference, see references/config-reference.md."
Skip to Step 4 (Apply Changes confirmation).
If user selects "Advanced": proceed to Step 3 (Interactive Mode) below.
2. Parse Arguments
If $ARGUMENTS is provided, handle direct setting:
depth quick|standard|comprehensive— set depth directlymodel <agent> <model>— set model for specific agent (e.g.,model executor sonnet)model-profile quality|balanced|budget|adaptive— set all models at once using a presetgate <gate-name> on|off— toggle a gatefeature <feature-name> on|off— toggle a feature (e.g.,feature auto_continue on). When the user specifies a feature name without thefeatures.prefix, automatically prependfeatures.before writing to config.session_phase_limit <N>— set the session phase limit directly (e.g.,/pbr:settings session_phase_limit 5). Validate N is an integer between 0 and 20. Write to config.json at top level:"session_phase_limit": N. Display: "Session phase limit set to {N}. PBR will suggest pausing after {N} phases per session. (0 = disabled)"git branching none|phase|milestone|disabled— set branching strategygit mode disabled— disable git integration entirelyshow— display current config (default when no args)
3. Interactive Mode (no arguments or just show)
Display current configuration in a readable format:
Plan-Build-Run Configuration
=====================
Workflow:
Depth: standard (balanced)
Research: on Plan-check: on Verify: on
Scan mappers: 4 Debug rounds: 5 Inline verify: off
Mode: interactive
Context Strategy: aggressive
Session Phase Limit: 3 (pause after 3 phases)
# When session_phase_limit is 0, display: "Session Phase Limit: disabled"
Features:
✓ Structured planning ✓ Goal verification
✓ Context isolation ✓ Atomic commits
✓ Session persistence ✓ Research phase
✓ Plan checking ✗ TDD mode
✓ Status line ✗ Auto-continue
✗ Auto-advance ✗ Team discussions
Models:
Researcher: sonnet Planner: inherit Executor: inherit
Verifier: sonnet Int-Checker: sonnet Debugger: inherit
Mapper: sonnet Synthesizer: haiku
Parallelization:
Enabled: true Max concurrent: 3
Plan-level: true Task-level: false
Use Teams: false
Git:
Mode: enabled Branching: none
Commit docs: true
Commit format: {type}({phase}-{plan}): {description}
Gates:
✓ Confirm project ✓ Confirm roadmap ✓ Confirm plan
✗ Confirm execute ✓ Confirm transition ✓ Issues review
Status Line:
Sections: [phase, plan, status, context]
Brand: PLAN-BUILD-RUN
Context bar: 20 chars, green<50%, yellow<80%
Spinner Tips: (none configured — using defaults)
CRITICAL -- DO NOT SKIP: Present the following choice to the user via AskUserQuestion before proceeding:
Then present the configuration menu using the settings-category-select pattern (see skills/shared/gate-prompts.md):
Use AskUserQuestion: question: "What would you like to configure?" header: "Configure" options: - label: "Depth" description: "quick/standard/comprehensive" - label: "Model profile" description: "quality/balanced/budget/adaptive" - label: "Features" description: "Toggle workflow features, gates, status line" - label: "Git settings" description: "branching strategy, commit mode" - label: "Save as defaults" description: "Save current config as user-level defaults for new projects" multiSelect: false
Note: The original 7 categories are condensed to 5. "Models" (per-agent) is accessible through "Model profile" with a follow-up option. "Gates", "Parallelization", and "Status Line" are grouped under "Features". "Save as defaults" exports to ~/.claude/pbr-defaults.json.
Follow-up based on selection:
If user selects "Depth": Use AskUserQuestion: question: "Select workflow depth" header: "Depth" options: - label: "Quick" description: "Budget mode: skip research/plan-check/verifier, 2 scan mappers, ~1-3 fewer spawns per phase" - label: "Standard" description: "Balanced mode: conditional research, full plan-check and verification, 4 scan mappers (default)" - label: "Comprehensive" description: "Thorough mode: always research, always verify, inline verification, 4 scan mappers" multiSelect: false
After setting depth, the profile is automatically resolved. Show the user the effective settings: "Depth set to {value}. Effective profile:" Then display the profile summary (research, plan-check, verify, scan mappers, debug rounds, inline verify).
To resolve the profile, run: pbr-tools config resolve-depth
If the user wants to override a specific profile setting, they can set depth_profiles.{depth}.{key} directly.
For example: to use quick mode but keep plan-checking, the user would set depth to quick and then override:
/pbr:settings -> Features -> Plan checking -> Enable
This writes depth_profiles.quick.features.plan_checking: true to config.json.
If user selects "Model profile": CRITICAL -- DO NOT SKIP: Present the following choice to the user via AskUserQuestion before proceeding: Use the model-profile-select pattern: Use AskUserQuestion: question: "Select model profile" header: "Profile" options: - label: "Quality" description: "opus for all agents (highest cost)" - label: "Balanced" description: "sonnet/inherit mix (default)" - label: "Budget" description: "haiku for all agents (lowest cost)" - label: "Adaptive" description: "sonnet planning, haiku execution" multiSelect: false
If user asks for per-agent model selection (typed "models" or "per-agent"), present individual agent selection as plain text: list the agents and ask which one to change, then ask for the model. This is a freeform flow because agent names are dynamic.
If user selects "Features":
List all features and gates with current status, then use the toggle-confirm pattern for each change.
Feature name normalization: When toggling a feature, if the user specifies a bare name (e.g., inline_verify), normalize it to features.inline_verify before writing to config. All feature flags live under the features.* namespace in config.json.
CRITICAL -- DO NOT SKIP: Present the following choice to the user via AskUserQuestion before proceeding:
Use AskUserQuestion:
question: "Enable {feature_name}?"
header: "Toggle"
options:
- label: "Enable" description: "Turn this feature on"
- label: "Disable" description: "Turn this feature off"
multiSelect: false
Repeat for each feature the user wants to change. Show updated status after each toggle.
For numeric settings like session_phase_limit, use the direct command: /pbr:settings session_phase_limit <N>
If user selects "Git settings": Use AskUserQuestion: question: "Select branching strategy" header: "Branching" options: - label: "None" description: "All work on current branch" - label: "Phase" description: "New branch per phase" - label: "Milestone" description: "New branch per milestone" - label: "Disabled" description: "No git integration" multiSelect: false
If user selects "Save as defaults": Save current project config as user-level defaults for future projects:
pbr-tools" config save-defaults
Display: "Saved your preferences to ~/.claude/pbr-defaults.json. New projects created with /pbr:setup will use these as starting values."
If user types something else (freeform): interpret as a direct setting command and handle via Step 2 argument parsing logic.
4. Apply Changes
CRITICAL (no hook) -- DO NOT SKIP: Write updated config.json to disk.
Update config.json with new values.
4b. Commit Config Changes
Reference: skills/shared/commit-planning-docs.md for the commit pattern.
Read .planning/config.json and check planning.commit_docs (or git.commit_docs).
If true, commit the modified config.json:
docs(config): update config — {changed_fields}
Show what changed with a branded completion:
╔══════════════════════════════════════════════════════════════╗
║ PLAN-BUILD-RUN ► CONFIG UPDATED ✓ ║
╚══════════════════════════════════════════════════════════════╝
Updated:
depth: standard → quick
models.executor: inherit → sonnet
╔══════════════════════════════════════════════════════════════╗
║ ▶ NEXT UP ║
╚══════════════════════════════════════════════════════════════╝
**Continue your workflow** — settings saved
`/pbr:progress`
<sub>`/clear` first → fresh context window</sub>
**Also available:**
- `/pbr:continue` — execute next logical step
- `/pbr:settings` — change more settings
Config Schema
See skills/begin/templates/config.json.tmpl for the full schema with defaults.
Version Migration
If config version is older than current (2), run migration:
- v1 → v2: Add missing fields with defaults, rename
model_profile→ per-agentmodelsobject
Model Profile Presets
The model-profile command sets all agent models at once:
| Profile | researcher | planner | executor | verifier | int-checker | debugger | mapper | synthesizer |
|---|---|---|---|---|---|---|---|---|
quality |
opus | opus | opus | opus | sonnet | opus | sonnet | sonnet |
balanced |
sonnet | inherit | inherit | sonnet | sonnet | inherit | sonnet | haiku |
budget |
haiku | haiku | haiku | haiku | haiku | haiku | haiku | haiku |
adaptive |
sonnet | sonnet | inherit | sonnet | haiku | inherit | haiku | haiku |
balanced is the default and matches the initial config template. adaptive front-loads intelligence in research/planning and uses lighter models for mechanical work.
Feature Reference
| Feature | Key | Default | Description |
|---|---|---|---|
| Auto-continue | features.auto_continue |
false |
Automatically spawn continuation agents without user prompt |
| Auto-advance | features.auto_advance |
false |
Chain build→review→plan automatically in autonomous mode |
| Session phase limit | session_phase_limit |
3 |
Maximum phases per session before auto-pause. 0 disables. Requires auto_continue: true. |
| Team discussions | features.team_discussions |
false |
Enable team-based discussion workflows |
Team boundaries: Teams are NEVER used for execution, planning, or verification. Teams are only for discussion and brainstorming workflows. All execution, planning, and verification use single-agent Task() spawns with proper subagent types.
Validation
depthmust be one of: quick, standard, comprehensivemodels.*must be one of: sonnet, inherit, haiku, opuscontext_strategymust be one of: aggressive, balanced, minimalgit.branchingmust be one of: none, phase, milestone, disabledgit.modemust be one of: enabled, disabled. Whendisabled, no git commands are run (no commits, no branching). Useful for prototyping or non-git projects.- Boolean fields must be true/false