Plan it. Build it. Run it. A Claude Code plugin for structured development with context-engineered agents.
FAQ
plan-build-run is a Claude Code plugin with 47 hand-picked skills for development work, indexed on Flowy. Install it with the command on its page. It includes thinking-partner, audit-fix, audit. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.
$ npx -y skills add SienkLogic/plan-build-run --agent claude-code
Repo: SienkLogic/plan-build-run
Claude Code is remarkably capable โ until your context window fills up. As tokens accumulate, reasoning quality degrades, hallucinations increase, and the model loses track of earlier decisions. This is context rot.
Plan-Build-Run solves this. It keeps your orchestrator lean by delegating heavy work to fresh subagent contexts. All state lives on disk. Sessions are killable without data loss. Whether you're on Free or Max 5x, wasted context means wasted budget.
Use PBR for: Multi-phase projects โ new features spanning 5+ files, large refactors, greenfield builds. Use
depth: quickon Free/Pro,depth: standardon Max,depth: comprehensiveon Max 5x.Skip PBR for: Single-file fixes, quick questions, one-off scripts. Use
/pbr:quickfor atomic commits without full workflow overhead.
Claude Code Plugin (recommended):
claude plugin marketplace add SienkLogic/plan-build-run
claude plugin install pbr@plan-build-run
Verify: /pbr:help
npx (alternative):
npx @sienklogic/plan-build-run@latest
The installer prompts for runtime (Claude Code, OpenCode, Gemini, Codex) and location (global/local).
Non-interactive (Docker, CI, Scripts):
npx @sienklogic/plan-build-run --claude --global # Claude Code
npx @sienklogic/plan-build-run --opencode --global # OpenCode
npx @sienklogic/plan-build-run --gemini --global # Gemini CLI
npx @sienklogic/plan-build-run --codex --global # Codex CLI
npx @sienklogic/plan-build-run --all --global # All runtimes
Plugin install scopes:
| Scope | Command | Effect |
|---|---|---|
| Global (default) | claude plugin install pbr@plan-build-run | Available in all projects |
| Project only | claude plugin install pbr@plan-build-run --scope local | This project only |
| Team project | claude plugin install pbr@plan-build-run --scope project | Shared via git |
Cursor IDE: See Cursor Plugin wiki page.
GitHub Copilot:
npx @sienklogic/plan-build-run --copilot --local # Install to .github/ in current project
npx @sienklogic/plan-build-run --copilot --global # Install to ~/.copilot/ for all projects
This installs PBR agents, skills, references, and a minimal preToolUse hook guard into Copilot's directory structure. A copilot-instructions.md file is generated to bootstrap the workflow.
Note: Copilot runs PBR in degraded mode โ lightweight skills (
pbr-status,pbr-todo,pbr-note,pbr-health,pbr-quick,pbr-explore, etc.) work fully. Advanced workflow skills (pbr-plan,pbr-build,pbr-review) require subagent spawning (Task()), which Copilot doesn't support yet. For the full PBR workflow, use Claude Code.See Copilot Integration for details on what's supported.
Codex CLI: See Codex plugin README.
Development install:
git clone https://github.com/SienkLogic/plan-build-run.git
cd plan-build-run && npm install
claude --plugin-dir . # Load as local plugin
cd your-project && claude
/pbr:new-project # Questions โ research โ requirements โ roadmap
/pbr:plan-phase 1 # Research + plan the first phase
/pbr:execute-phase 1 # Build with parallel agents, atomic commits
/pbr:verify-work 1 # Confirm the codebase matches requirements
Repeat plan โ execute โ verify for each phase. Kill your terminal anytime โ /pbr:resume-work picks up where you left off.
Already have code? Run
/pbr:map-codebasefirst to analyze your existing stack, then/pbr:new-project.
PBR is a thin orchestrator that delegates heavy work to fresh subagent contexts via Task(). Data flows through files on disk, not through messages.
Main Session (~15% context)
โ
โโโ Task(researcher) โ writes .planning/research/
โโโ Task(planner) โ writes PLAN.md files
โโโ Task(executor) โ builds code, creates commits
โโโ Task(executor) โ (parallel, same wave)
โโโ Task(verifier) โ checks codebase against must-haves
Plans are grouped into waves based on dependencies. Within each wave, plans run in parallel. Waves run sequentially. Each executor gets a fresh context window โ zero accumulated garbage.
Markdown files with YAML frontmatter defining /pbr:* slash commands. Each skill is a complete prompt that reads state, interacts with the user, and spawns agents. Skills are the user-facing interface.
Markdown files defining agent prompts that run in fresh Task() contexts with clean 200k token windows. Each agent type has a specific role:
| Agent | Role |
|---|---|
researcher | Domain research before planning |
planner | Create execution plans with task breakdown |
plan-checker | Validate plans across 10 dimensions before build |
executor | Build code, write tests, create atomic commits |
verifier | Goal-backward verification against must-haves |
debugger | Hypothesis-driven systematic debugging |
codebase-mapper | Parallel codebase analysis |
integration-checker | Cross-phase integration and E2E flow verification |
Node.js scripts that fire on Claude Code lifecycle events โ enforcing commit format, validating agent dispatch, tracking context budget, syncing state files, and more. Hooks provide deterministic guardrails that don't rely on the LLM remembering to follow rules.
PBR runs a persistent HTTP server (hook-server.js) on localhost:19836 that handles hook dispatch. Instead of spawning a new Node.js process for every hook event, Claude Code sends HTTP POST requests to the server, which routes them to the appropriate handler.
Why a hook server?
initRoutes() functionHow it works:
Claude Code Hook Server (localhost:19836)
โ โ
โโโ POST /hook/PreToolUse/Bash โ โโโ pre-bash-dispatch.js
โ โ { decision: "allow" } โ โโโ validate-commit.js
โ โ โโโ check-dangerous-commands.js
โ โ
โโโ POST /hook/PostToolUse/Write โ โโโ post-write-dispatch.js
โ โ { additionalContext: ... } โ โโโ check-plan-format.js
โ โ โโโ check-roadmap-sync.js
โ โ โโโ check-state-sync.js
โ โ
โโโ POST /hook/PostToolUse/Read โ โโโ track-context-budget.js
โ โ { } โ
โ โ
โโโ GET /health โ โโโ { status: "ok", uptime: ... }
Lifecycle events handled:
| Event | Hooks | Purpose |
|---|---|---|
PreToolUse | 6 routes | Commit validation, dangerous command blocking, write policies, agent dispatch gates, context budget enforcement |
PostToolUse | 10 routes | Context tracking, plan/state sync, architecture guard, subagent output validation, test result analysis |
PostToolUseFailure | 1 route | Tool failure logging |
SubagentStart/Stop | 2 routes | Agent lifecycle tracking, auto-verification triggers |
TaskCompleted | 1 route | Task result processing |
PreCompact/PostCompact | 2 routes | State preservation across context compaction |
ConfigChange | 1 route | Config validation |
SessionEnd | 1 route | Cleanup and graceful server shutdown |
UserPromptSubmit | 1 route | Prompt routing |
Notification | 1 route | Notification logging |
5 hooks remain as command-type (process-spawned): SessionStart, Stop, InstructionsLoaded, WorktreeCreate, WorktreeRemove โ these need stdin/stdout interaction that HTTP can't provide.
Server reliability features:
.hook-server.pid)hooks perf CLI for analysisSkills and agents communicate through files on disk, not messages:
.planning/
โโโ STATE.md โ source of truth for current position
โโโ ROADMAP.md โ phase structure, goals, dependencies
โโโ PROJECT.md โ project metadata, locked decisions
โโโ REQUIREMENTS.md โ requirements with completion tracking
โโโ config.json โ workflow settings
โโโ phases/NN-slug/
โโโ PLAN.md โ written by planner, read by executor
โโโ SUMMARY.md โ written by executor, read by orchestrator
โโโ VERIFICATION.md โ written by verifier, read by review skill
Every task gets its own atomic commit immediately after completion:
abc123f docs(08-02): complete user registration plan
def456g feat(08-02): add email confirmation flow
hij789k feat(08-02): implement password hashing
The orchestrator never does heavy lifting. It spawns agents, waits, integrates results. Your main context stays at 30-40% while thousands of lines of code are written in parallel fresh contexts.
| Command | What it does |
|---|---|
/pbr:new-project | Full init: questions โ research โ requirements โ roadmap |
/pbr:discuss-phase [N] | Capture implementation decisions before planning |
/pbr:plan-phase [N] | Research + plan + verify for a phase |
/pbr:execute-phase <N> | Execute all plans in parallel waves |
/pbr:verify-work [N] | User acceptance testing with auto-diagnosis |
/pbr:continue | Auto-advance to the next logical step |
/pbr:quick | Ad-hoc task with atomic commit (no full workflow) |
| Command | What it does |
|---|---|
/pbr:progress | Where am I? What's next? |
/pbr:resume-work | Restore from last session |
/pbr:pause-work | Create handoff when stopping mid-phase |
/pbr:map-codebase | Analyze existing codebase before new-project |
Milestone Management:
| Command | What it does |
|---|---|
/pbr:audit-milestone | Verify milestone achieved its definition of done |
/pbr:complete-milestone | Archive milestone, tag release |
/pbr:new-milestone | Start next version |
/pbr:plan-milestone-gaps | Create phases to close gaps from audit |
Phase Management:
| Command | What it does |
|---|---|
/pbr:add-phase | Append phase to roadmap |
/pbr:insert-phase [N] | Insert urgent work between phases |
/pbr:remove-phase [N] | Remove future phase, renumber |
/pbr:list-phase-assumptions [N] | See Claude's intended approach before planning |
Autonomous Mode:
| Command | What it does |
|---|---|
/pbr:autonomous | Run multiple phases hands-free (discuss โ plan โ build โ verify) |
/pbr:do [text] | Route freeform text to the right PBR skill automatically |
Quality & Debugging:
| Command | What it does |
|---|---|
/pbr:debug [desc] | Systematic debugging with persistent hypothesis tracking |
/pbr:test | Generate tests for completed phase code |
/pbr:validate-phase | Post-build quality gate with test gap detection |
/pbr:audit [--today] | Review past sessions for workflow compliance |
/pbr:health [--repair] | Validate .planning/ integrity |
Knowledge & Ideas:
| Command | What it does |
|---|---|
/pbr:note [text] | Quick idea capture (persists across sessions) |
/pbr:todo [text] | File-based persistent todos |
/pbr:explore [topic] | Think through approaches, route insights |
/pbr:intel | Refresh or query codebase intelligence |
Utilities:
| Command | What it does |
|---|---|
/pbr:settings | Configure model profile and workflow |
/pbr:set-profile <profile> | Switch model profile (quality/balanced/budget) |
/pbr:dashboard | Launch web dashboard (Vite + React) |
/pbr:statusline | Install terminal status line |
/pbr:scan | Analyze an existing codebase |
/pbr:ship | Create a rich PR from planning artifacts |
/pbr:release | Generate changelog and release notes |
/pbr:help | Show all commands and usage |
/pbr:update | Update PBR with changelog preview |
See the User Guide for all flags, cost-by-depth tables, and detailed descriptions.
PBR stores settings in .planning/config.json. Configure during /pbr:new-project or update with /pbr:settings.
| Setting | Options | Default | What it controls |
|---|---|---|---|
mode | autonomous, interactive | interactive | Auto-approve vs confirm at each step |
depth | quick, standard, comprehensive | standard | Agent spawn count and research scope |
context_window_tokens | 100000-2000000 | 200000 | Context window size โ set to 1000000 for Opus 1M |
| Profile | Planning | Execution | Verification |
|---|---|---|---|
quality | Opus | Opus | Sonnet |
balanced (default) | Opus | Sonnet | Sonnet |
budget | Sonnet | Sonnet | Haiku |
/pbr:set-profile quality
Workflow Agents:
| Setting | Default | What it does |
|---|---|---|
features.research_phase | true | Research domain before planning each phase |
features.plan_checking | true | Verify plans before execution (always-on, lighter check for quick depth) |
features.goal_verification | true | Confirm must-haves after execution |
features.auto_advance | false | Auto-chain discuss โ plan โ execute |
features.inline_simple_tasks | true | Simple tasks run inline without subagent overhead |
features.self_verification | true | Executor self-checks before presenting output |
Override per-invocation: /pbr:plan-phase --skip-research or --skip-verify
Parallelization:
| Setting | Default | What it does |
|---|---|---|
parallelization.enabled | true | Parallel plan execution within waves |
parallelization.max_concurrent_agents | 5 | Max simultaneous executor subagents |
parallelization.min_plans_for_parallel | 2 | Minimum plans in a wave to trigger parallel execution |
Git Branching:
| Strategy | Behavior |
|---|---|
none (default) | Commits to current branch |
phase | Branch per phase, merge at completion |
milestone | One branch for entire milestone |
Hook Server:
| Setting | Default | What it does |
|---|---|---|
hook_server.enabled | true | Route hooks through persistent HTTP server |
hook_server.port | 19836 | TCP port for hook server (localhost only) |
hook_server.event_log | true | Log all hook events to .hook-events.jsonl |
See the User Guide for the full config schema.
PBR reads files to understand your project. Protect secrets with Claude Code's deny list:
{
"permissions": {
"deny": [
"Read(.env)", "Read(.env.*)", "Read(**/secrets/*)",
"Read(**/*credential*)", "Read(**/*.pem)", "Read(**/*.key)"
]
}
}
PBR works best with frictionless automation:
claude --dangerously-skip-permissions
Or configure granular permissions in .claude/settings.json:
{
"permissions": {
"allow": [
"Bash(date:*)", "Bash(echo:*)", "Bash(cat:*)", "Bash(ls:*)",
"Bash(mkdir:*)", "Bash(wc:*)", "Bash(head:*)", "Bash(tail:*)",
"Bash(sort:*)", "Bash(grep:*)", "Bash(tr:*)",
"Bash(git add:*)", "Bash(git commit:*)", "Bash(git status:*)",
"Bash(git log:*)", "Bash(git diff:*)", "Bash(git tag:*)"
]
}
}
Commands not found after install?
claude plugin list~/.claude/commands/pbr/Using Docker? Set CLAUDE_CONFIG_DIR before installing:
CLAUDE_CONFIG_DIR=/home/youruser/.claude npx @sienklogic/plan-build-run --global
Hook server not starting?
curl http://localhost:19836/health.planning/.hook-events.jsonlhooks perf via pbr-tools for timing analysisUninstalling:
# Plugin
claude plugin uninstall pbr@plan-build-run
# npx
npx @sienklogic/plan-build-run --claude --global --uninstall
| Resource | Description |
|---|---|
| User Guide | Full configuration reference, all command flags, cost tables |
| Wiki | Agents, hooks, project structure, philosophy, platform details |
| Contributing | Development setup, testing, contribution guidelines |
| Dashboard | Web UI for browsing .planning/ state |
| Changelog | Release history grouped by component |
git clone https://github.com/SienkLogic/plan-build-run.git
cd plan-build-run && npm install
npm test # 6500+ tests across 296 suites
claude --plugin-dir . # Load locally for testing
CI runs on Node 18/20/22 across Windows, macOS, and Linux (9 platform combinations).
46 skills โข 18 agents โข 26 hooks โข 38 server routes โข 4 platforms
Claude Code is powerful. PBR makes it reliable.
.agents/
skills/
thinking-partner/
references/
model-catalog.md
thinking-diagnostics.md
SKILL.md
.claude/
skills/
thinking-partner/
references/
model-catalog.md
thinking-diagnostics.md
SKILL.md
.github/
CODEOWNERS
CONTRIBUTING.md
FUNDING.yml
ISSUE_TEMPLATE/
bug_report.yml
feature_request.yml
pull_request_template.md
SECURITY.md
workflows/
auto-label-issues.yml
release-please.yml
test.yml
.gitignore
.markdownlint.json
.planning/
notes/
2026-03-25-initialprompt-research-findings.md
.windsurf/
skills/
thinking-partner/
references/
model-catalog.md
thinking-diagnostics.md
SKILL.md
bin/
install-copilot.js
CHANGELOG.md
CLAUDE.md
dashboard/
.gitignore
bin/
cli.cjs
stop.cjs
eslint.config.js
index.html
package.json
public/
.gitkeep
server/
index.js
lib/
frontmatter.js
middleware/
static.js
package.json
routes/
agents.js
config.js
health.js
incidents.js
intel.js
memory.js
planning.js
progress.js
projects.js
requirements.js
roadmap.js
sessions.js
status.js
telemetry.js
services/
file-watcher.js
planning-reader.js
test/
cli.test.js
frontmatter.test.js
isolation.test.js
planning-reader.test.js
routes.test.js
ws.test.js
ws.js
src/
App.jsx
components/
charts/
BudgetBars.jsx
ContextRadar.jsx
index.js
PhaseDonut.jsx
SuccessTrend.jsx
TokenChart.jsx
config/
CfgSection.jsx
layout/
Header.jsx
ProjectSwitcher.jsx
Sidebar.jsx
ui/
AutoModeBanner.jsx
BackButton.jsx
Badge.jsx
Card.jsx
ChartTooltip.jsx
CheckpointBox.jsx
CodeBlock.jsx
ConfidenceBadge.jsx
ConfirmModal.jsx
ConnectionBanner.jsx
ErrorBoundary.jsx
ErrorBox.jsx
index.js
KeyValue.jsx
LoadingSkeleton.jsx
MetricCard.jsx
NextUpBlock.jsx
NumberInput.jsx
PBRBanner.jsx
PipelineView.jsx
ProgressBar.jsx
ProgressDisplay.jsx
QualityGateBadge.jsx
SectionTitle.jsx
SelectInput.jsx
StatusDot.jsx
StatusSymbol.jsx
TabBar.jsx
TextInput.jsx
Toast.jsx
Toggle.jsx
hooks/
useDocumentTitle.js
useFetch.js
useToast.jsx
useWebSocket.js
lib/
api.js
configSchema.js
constants.js
main.jsx
pages/
AgentsPage.jsx
ConfigPage.jsx
HooksPage.jsx
IncidentsPage.jsx
IntelPage.jsx
LiveFeed.jsx
MemoryPage.jsx
OnboardingPage.jsx
Overview.jsx
PhaseDetailView.jsx
planning/
DecisionsTab.jsx
FilesTab.jsx
MilestoneDetail.jsx
MilestonesTab.jsx
NotesTab.jsx
PhasesTab.jsx
QuickTab.jsx
ResearchTab.jsx
TodosTab.jsx
PlanningPage.jsx
ProgressPage.jsx
ResearchPage.jsx
RoadmapPage.jsx
SessionsPage.jsx
Telemetry.jsx
theme/
ThemeProvider.jsx
tokens.js
tests/
components/
ConfirmModal.test.jsx
ConnectionBanner.test.jsx
ErrorBoundary.test.jsx
LoadingSkeleton.test.jsx
ToastContainer.test.jsx
Toggle.test.jsx
hooks/
useFetch.test.jsx
useToast.test.jsx
useWebSocket.test.jsx
pages/
ConfigPage.test.jsx
planning/
FilesTab.test.jsx
NotesTab.test.jsx
TodosTab.test.jsx
PlanningPage.test.jsx
performance.test.jsx
routes/
config.test.js
health.test.js
planning.test.js
roadmap.test.js
status.test.js
server/
planning-reader.test.js
setup.js
vite.config.js
docs/
AGENTS.md
ARCHITECTURE.md
assets/
github_social_pbr_2.png
github_social_pbr_3.png
github_social_pbr.png
gsd-logo-2000-transparent.png
gsd-logo-2000-transparent.svg
gsd-logo-2000.png
gsd-logo-2000.svg
pbr_banner_logo.png
pbr-demo.gif
terminal.svg
CLI-TOOLS.md
COMMANDS.md
CONFIGURATION.md
context-monitor.md
COPILOT.md
FEATURES.md
PBR-STYLE.md
README.md
USER-GUIDE.md
eslint.config.js
jest.config.cjs
LICENSE
package-lock.json
package.json
plugins/
pbr/
.claude-plugin/
plugin.json
agents/
advisor-researcher.md
audit.md
codebase-mapper.md
debugger.md
dev-sync.md
executor.md
general.md
integration-checker.md
intel-updater.md
nyquist-auditor.md
plan-checker.md
planner.md
researcher.md
roadmapper.md
synthesizer.md
ui-checker.md
ui-researcher.md
verifier.md
bin/
pbr-tools
CLAUDE.md
commands/
add-phase.md
add-todo.md
audit-fix.md
audit-milestone.md
audit.md
autonomous.md
backlog.md
begin.md
build.md
check-todos.md
complete-milestone.md
config.md
continue.md
dashboard.md
debug.md
discuss-phase.md
discuss.md
do.md
execute-phase.md
explore.md
fast.md
forensics.md
health.md
help.md
import.md
insert-phase.md
intel.md
join-discord.md
list-phase-assumptions.md
map-codebase.md
milestone-summary.md
milestone.md
new-milestone.md
new-project.md
note.md
pause-work.md
pause.md
plan-milestone-gaps.md
plan-phase.md
plan.md
plant-seed.md
profile-user.md
profile.md
progress.md
quick.md
reapply-patches.md
release.md
remove-phase.md
research-phase.md
resume-work.md
resume.md
review.md
scan.md
seed.md
session-report.md
set-profile.md
settings.md
setup.md
ship.md
stats.md
status.md
statusline.md
test.md
thread.md
todo.md
ui-phase.md
ui-review.md
undo.md
update.md
validate-phase.md
verify-work.md
contexts/
dev.md
research.md
review.md
dashboard/
package-lock.json
hooks/
hooks.json
references/
agent-contracts.md
agent-teams.md
archive/
agent-anti-patterns.md
checkpoints.md
context-quality-tiers.md
hook-ordering.md
limitations.md
pbr-rules.md
pbr-tools-cli.md
pretooluse-jsonl-behavior.md
signal-files.md
tmux-setup.md
verification-matrix.md
verification-patterns.md
worktree-sparse-checkout.md
assumptions.md
checkpoints.md
common-bug-patterns.md
config-reference.md
continuation-format.md
decimal-phase-calculation.md
deviation-rules.md
few-shot-examples/
audit.md
check-plan-format.md
check-subagent-output.md
integration-checker.md
nyquist-auditor.md
plan-checker.md
ui-checker.md
verifier.md
git-integration.md
git-planning-commit.md
integration-patterns.md
model-profile-resolution.md
model-profiles.md
model-selection.md
node-repair.md
plan-authoring.md
plan-format.md
questioning.md
reading-verification.md
stub-patterns.md
tdd.md
thinking-models-debug.md
thinking-models-execution.md
thinking-models-planning.md
thinking-models-research.md
thinking-models-verification.md
ui-brand.md
verification-overrides.md
verification-patterns.md
wave-execution.md
scripts/
architecture-guard.js
audit-checks/
behavioral-compliance.js
error-analysis.js
feature-verification.js
index.js
... 790 moreยฉ 2026 Flowy ยท Free and open source
Built for Claude Code ยท Not affiliated with Anthropic