@sienklogic/plan-build-run 2.3.0 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/README.md +54 -20
  3. package/dashboard/src/services/dashboard.service.js +24 -1
  4. package/dashboard/src/services/milestone.service.js +68 -17
  5. package/package.json +1 -1
  6. package/plugins/copilot-pbr/CHANGELOG.md +19 -0
  7. package/plugins/copilot-pbr/README.md +129 -0
  8. package/plugins/copilot-pbr/agents/codebase-mapper.agent.md +109 -0
  9. package/plugins/copilot-pbr/agents/debugger.agent.md +169 -0
  10. package/plugins/copilot-pbr/agents/executor.agent.md +237 -0
  11. package/plugins/copilot-pbr/agents/general.agent.md +88 -0
  12. package/plugins/copilot-pbr/agents/integration-checker.agent.md +88 -0
  13. package/plugins/copilot-pbr/agents/plan-checker.agent.md +199 -0
  14. package/plugins/copilot-pbr/agents/planner.agent.md +181 -0
  15. package/plugins/copilot-pbr/agents/researcher.agent.md +163 -0
  16. package/plugins/copilot-pbr/agents/synthesizer.agent.md +102 -0
  17. package/plugins/copilot-pbr/agents/verifier.agent.md +194 -0
  18. package/plugins/copilot-pbr/hooks/hooks.json +144 -0
  19. package/plugins/copilot-pbr/plugin.json +30 -0
  20. package/plugins/copilot-pbr/references/agent-anti-patterns.md +25 -0
  21. package/plugins/copilot-pbr/references/agent-interactions.md +135 -0
  22. package/plugins/copilot-pbr/references/agent-teams.md +55 -0
  23. package/plugins/copilot-pbr/references/checkpoints.md +158 -0
  24. package/plugins/copilot-pbr/references/common-bug-patterns.md +14 -0
  25. package/plugins/copilot-pbr/references/config-reference.md +442 -0
  26. package/plugins/copilot-pbr/references/continuation-format.md +213 -0
  27. package/plugins/copilot-pbr/references/deviation-rules.md +113 -0
  28. package/plugins/copilot-pbr/references/git-integration.md +227 -0
  29. package/plugins/copilot-pbr/references/integration-patterns.md +118 -0
  30. package/plugins/copilot-pbr/references/model-profiles.md +100 -0
  31. package/plugins/copilot-pbr/references/model-selection.md +32 -0
  32. package/plugins/copilot-pbr/references/pbr-rules.md +194 -0
  33. package/plugins/copilot-pbr/references/plan-authoring.md +182 -0
  34. package/plugins/copilot-pbr/references/plan-format.md +288 -0
  35. package/plugins/copilot-pbr/references/planning-config.md +214 -0
  36. package/plugins/copilot-pbr/references/questioning.md +215 -0
  37. package/plugins/copilot-pbr/references/reading-verification.md +128 -0
  38. package/plugins/copilot-pbr/references/stub-patterns.md +161 -0
  39. package/plugins/copilot-pbr/references/subagent-coordination.md +120 -0
  40. package/plugins/copilot-pbr/references/ui-formatting.md +462 -0
  41. package/plugins/copilot-pbr/references/verification-patterns.md +199 -0
  42. package/plugins/copilot-pbr/references/wave-execution.md +96 -0
  43. package/plugins/copilot-pbr/rules/pbr-workflow.mdc +48 -0
  44. package/plugins/copilot-pbr/setup.ps1 +93 -0
  45. package/plugins/copilot-pbr/setup.sh +92 -0
  46. package/plugins/copilot-pbr/skills/begin/SKILL.md +566 -0
  47. package/plugins/copilot-pbr/skills/begin/templates/PROJECT.md.tmpl +34 -0
  48. package/plugins/copilot-pbr/skills/begin/templates/REQUIREMENTS.md.tmpl +19 -0
  49. package/plugins/copilot-pbr/skills/begin/templates/STATE.md.tmpl +50 -0
  50. package/plugins/copilot-pbr/skills/begin/templates/config.json.tmpl +64 -0
  51. package/plugins/copilot-pbr/skills/begin/templates/researcher-prompt.md.tmpl +20 -0
  52. package/plugins/copilot-pbr/skills/begin/templates/roadmap-prompt.md.tmpl +31 -0
  53. package/plugins/copilot-pbr/skills/begin/templates/synthesis-prompt.md.tmpl +17 -0
  54. package/plugins/copilot-pbr/skills/build/SKILL.md +901 -0
  55. package/plugins/copilot-pbr/skills/config/SKILL.md +253 -0
  56. package/plugins/copilot-pbr/skills/continue/SKILL.md +159 -0
  57. package/plugins/copilot-pbr/skills/dashboard/SKILL.md +31 -0
  58. package/plugins/copilot-pbr/skills/debug/SKILL.md +511 -0
  59. package/plugins/copilot-pbr/skills/debug/templates/continuation-prompt.md.tmpl +17 -0
  60. package/plugins/copilot-pbr/skills/debug/templates/initial-investigation-prompt.md.tmpl +28 -0
  61. package/plugins/copilot-pbr/skills/discuss/SKILL.md +343 -0
  62. package/plugins/copilot-pbr/skills/discuss/templates/CONTEXT.md.tmpl +62 -0
  63. package/plugins/copilot-pbr/skills/discuss/templates/decision-categories.md +10 -0
  64. package/plugins/copilot-pbr/skills/do/SKILL.md +66 -0
  65. package/plugins/copilot-pbr/skills/explore/SKILL.md +374 -0
  66. package/plugins/copilot-pbr/skills/health/SKILL.md +218 -0
  67. package/plugins/copilot-pbr/skills/health/templates/check-pattern.md.tmpl +31 -0
  68. package/plugins/copilot-pbr/skills/health/templates/output-format.md.tmpl +64 -0
  69. package/plugins/copilot-pbr/skills/help/SKILL.md +152 -0
  70. package/plugins/copilot-pbr/skills/import/SKILL.md +498 -0
  71. package/plugins/copilot-pbr/skills/milestone/SKILL.md +703 -0
  72. package/plugins/copilot-pbr/skills/milestone/templates/audit-report.md.tmpl +49 -0
  73. package/plugins/copilot-pbr/skills/milestone/templates/stats-file.md.tmpl +31 -0
  74. package/plugins/copilot-pbr/skills/note/SKILL.md +227 -0
  75. package/plugins/copilot-pbr/skills/pause/SKILL.md +246 -0
  76. package/plugins/copilot-pbr/skills/pause/templates/continue-here.md.tmpl +72 -0
  77. package/plugins/copilot-pbr/skills/plan/SKILL.md +649 -0
  78. package/plugins/copilot-pbr/skills/plan/templates/checker-prompt.md.tmpl +22 -0
  79. package/plugins/copilot-pbr/skills/plan/templates/gap-closure-prompt.md.tmpl +33 -0
  80. package/plugins/copilot-pbr/skills/plan/templates/planner-prompt.md.tmpl +39 -0
  81. package/plugins/copilot-pbr/skills/plan/templates/researcher-prompt.md.tmpl +20 -0
  82. package/plugins/copilot-pbr/skills/plan/templates/revision-prompt.md.tmpl +24 -0
  83. package/plugins/copilot-pbr/skills/quick/SKILL.md +351 -0
  84. package/plugins/copilot-pbr/skills/resume/SKILL.md +399 -0
  85. package/plugins/copilot-pbr/skills/review/SKILL.md +648 -0
  86. package/plugins/copilot-pbr/skills/review/templates/debugger-prompt.md.tmpl +61 -0
  87. package/plugins/copilot-pbr/skills/review/templates/gap-planner-prompt.md.tmpl +41 -0
  88. package/plugins/copilot-pbr/skills/review/templates/verifier-prompt.md.tmpl +116 -0
  89. package/plugins/copilot-pbr/skills/scan/SKILL.md +301 -0
  90. package/plugins/copilot-pbr/skills/scan/templates/mapper-prompt.md.tmpl +202 -0
  91. package/plugins/copilot-pbr/skills/setup/SKILL.md +250 -0
  92. package/plugins/copilot-pbr/skills/shared/commit-planning-docs.md +36 -0
  93. package/plugins/copilot-pbr/skills/shared/config-loading.md +103 -0
  94. package/plugins/copilot-pbr/skills/shared/context-budget.md +41 -0
  95. package/plugins/copilot-pbr/skills/shared/context-loader-task.md +87 -0
  96. package/plugins/copilot-pbr/skills/shared/digest-select.md +80 -0
  97. package/plugins/copilot-pbr/skills/shared/domain-probes.md +126 -0
  98. package/plugins/copilot-pbr/skills/shared/error-reporting.md +80 -0
  99. package/plugins/copilot-pbr/skills/shared/gate-prompts.md +389 -0
  100. package/plugins/copilot-pbr/skills/shared/phase-argument-parsing.md +46 -0
  101. package/plugins/copilot-pbr/skills/shared/progress-display.md +54 -0
  102. package/plugins/copilot-pbr/skills/shared/revision-loop.md +82 -0
  103. package/plugins/copilot-pbr/skills/shared/state-loading.md +63 -0
  104. package/plugins/copilot-pbr/skills/shared/state-update.md +162 -0
  105. package/plugins/copilot-pbr/skills/shared/universal-anti-patterns.md +34 -0
  106. package/plugins/copilot-pbr/skills/status/SKILL.md +362 -0
  107. package/plugins/copilot-pbr/skills/todo/SKILL.md +256 -0
  108. package/plugins/copilot-pbr/templates/CONTEXT.md.tmpl +53 -0
  109. package/plugins/copilot-pbr/templates/INTEGRATION-REPORT.md.tmpl +152 -0
  110. package/plugins/copilot-pbr/templates/RESEARCH-SUMMARY.md.tmpl +98 -0
  111. package/plugins/copilot-pbr/templates/ROADMAP.md.tmpl +41 -0
  112. package/plugins/copilot-pbr/templates/SUMMARY.md.tmpl +82 -0
  113. package/plugins/copilot-pbr/templates/VERIFICATION-DETAIL.md.tmpl +117 -0
  114. package/plugins/copilot-pbr/templates/codebase/ARCHITECTURE.md.tmpl +98 -0
  115. package/plugins/copilot-pbr/templates/codebase/CONCERNS.md.tmpl +93 -0
  116. package/plugins/copilot-pbr/templates/codebase/CONVENTIONS.md.tmpl +104 -0
  117. package/plugins/copilot-pbr/templates/codebase/INTEGRATIONS.md.tmpl +78 -0
  118. package/plugins/copilot-pbr/templates/codebase/STACK.md.tmpl +78 -0
  119. package/plugins/copilot-pbr/templates/codebase/STRUCTURE.md.tmpl +80 -0
  120. package/plugins/copilot-pbr/templates/codebase/TESTING.md.tmpl +107 -0
  121. package/plugins/copilot-pbr/templates/continue-here.md.tmpl +74 -0
  122. package/plugins/copilot-pbr/templates/prompt-partials/phase-project-context.md.tmpl +38 -0
  123. package/plugins/copilot-pbr/templates/research/ARCHITECTURE.md.tmpl +124 -0
  124. package/plugins/copilot-pbr/templates/research/STACK.md.tmpl +71 -0
  125. package/plugins/copilot-pbr/templates/research/SUMMARY.md.tmpl +112 -0
  126. package/plugins/copilot-pbr/templates/research-outputs/phase-research.md.tmpl +81 -0
  127. package/plugins/copilot-pbr/templates/research-outputs/project-research.md.tmpl +99 -0
  128. package/plugins/copilot-pbr/templates/research-outputs/synthesis.md.tmpl +36 -0
  129. package/plugins/cursor-pbr/.cursor-plugin/plugin.json +13 -3
  130. package/plugins/cursor-pbr/skills/dashboard/SKILL.md +14 -4
  131. package/plugins/cursor-pbr/skills/do/SKILL.md +67 -0
  132. package/plugins/cursor-pbr/skills/milestone/SKILL.md +10 -7
  133. package/plugins/cursor-pbr/skills/todo/SKILL.md +28 -5
  134. package/plugins/cursor-pbr/templates/codebase/ARCHITECTURE.md.tmpl +98 -0
  135. package/plugins/cursor-pbr/templates/codebase/CONCERNS.md.tmpl +93 -0
  136. package/plugins/cursor-pbr/templates/codebase/CONVENTIONS.md.tmpl +104 -0
  137. package/plugins/cursor-pbr/templates/codebase/INTEGRATIONS.md.tmpl +78 -0
  138. package/plugins/cursor-pbr/templates/codebase/STACK.md.tmpl +78 -0
  139. package/plugins/cursor-pbr/templates/codebase/STRUCTURE.md.tmpl +80 -0
  140. package/plugins/cursor-pbr/templates/codebase/TESTING.md.tmpl +107 -0
  141. package/plugins/cursor-pbr/templates/research/ARCHITECTURE.md.tmpl +124 -0
  142. package/plugins/cursor-pbr/templates/research/STACK.md.tmpl +71 -0
  143. package/plugins/cursor-pbr/templates/research/SUMMARY.md.tmpl +112 -0
  144. package/plugins/cursor-pbr/templates/research-outputs/phase-research.md.tmpl +81 -0
  145. package/plugins/cursor-pbr/templates/research-outputs/project-research.md.tmpl +99 -0
  146. package/plugins/cursor-pbr/templates/research-outputs/synthesis.md.tmpl +36 -0
  147. package/plugins/pbr/.claude-plugin/plugin.json +7 -2
  148. package/plugins/pbr/scripts/validate-skill-args.js +54 -10
  149. package/plugins/pbr/skills/do/SKILL.md +70 -0
  150. package/plugins/pbr/skills/milestone/SKILL.md +10 -7
  151. package/plugins/pbr/skills/todo/SKILL.md +29 -6
@@ -0,0 +1,158 @@
1
+ <!-- canonical: ../../pbr/references/checkpoints.md -->
2
+ # Checkpoints Reference
3
+
4
+ How Plan-Build-Run uses checkpoint tasks to pause execution and involve the human.
5
+
6
+ ---
7
+
8
+ ## What Are Checkpoints?
9
+
10
+ Checkpoints are special task types that cause the executor agent to **stop execution** and return control to the orchestrator (or the human). They exist because some tasks require human judgment, manual action, or verification that cannot be automated.
11
+
12
+ Checkpoints are defined in plan task XML via the `type` attribute. When the executor encounters a checkpoint task, it follows a specific protocol depending on the checkpoint type.
13
+
14
+ ---
15
+
16
+ ## Checkpoint Types
17
+
18
+ Plan-Build-Run supports three checkpoint types:
19
+
20
+ ### checkpoint:human-verify
21
+
22
+ **Purpose**: The executor has completed work, but a human needs to visually inspect or manually test the result before proceeding.
23
+
24
+ **Executor behavior**:
25
+ 1. Execute the task's `<action>` steps normally
26
+ 2. Commit the changes
27
+ 3. **STOP execution**
28
+ 4. Return a structured `CHECKPOINT: HUMAN-VERIFY` response containing:
29
+ - What was done (summary of action taken)
30
+ - What to verify (from the task's `<done>` condition)
31
+ - How to verify (instructions derived from `<verify>`)
32
+ - Completed tasks table
33
+ - Remaining tasks list
34
+
35
+ **Use when**: The result requires subjective judgment (UI looks correct, behavior feels right, output makes sense) that automated verification cannot cover.
36
+
37
+ **Example scenario**: A template was created and needs visual review in the browser, or an API integration needs manual testing with real credentials.
38
+
39
+ ### checkpoint:decision
40
+
41
+ **Purpose**: The plan reaches a point where a human decision is needed before the executor can continue. The task is NOT executed — execution pauses before the task starts.
42
+
43
+ **Executor behavior**:
44
+ 1. **STOP before executing the task**
45
+ 2. Return a structured `CHECKPOINT: DECISION` response containing:
46
+ - The decision that needs to be made (from `<action>`)
47
+ - Available options
48
+ - Context to help the human decide
49
+ - Completed tasks table
50
+
51
+ **Use when**: The plan has a fork point where different approaches are possible and the right choice depends on human preference, business context, or information the planner could not determine.
52
+
53
+ **Example scenario**: Choosing between two authentication providers, deciding whether to use a specific third-party library or build in-house.
54
+
55
+ ### checkpoint:human-action
56
+
57
+ **Purpose**: The task requires something the executor cannot do — a manual step that involves the human interacting with external systems, creating accounts, or performing physical actions.
58
+
59
+ **Executor behavior**:
60
+ 1. **STOP before executing the task**
61
+ 2. Return a structured `CHECKPOINT: HUMAN-ACTION` response containing:
62
+ - What the human needs to do (from `<action>`)
63
+ - Step-by-step instructions
64
+ - Prompt to tell the executor when done
65
+ - Completed tasks table
66
+
67
+ **Use when**: External setup is required — creating API keys, configuring DNS, setting up OAuth applications, or any action that requires credentials or permissions the agent does not have.
68
+
69
+ **Example scenario**: The human needs to create a Discord application in the Developer Portal and paste the client ID and secret into `.env`.
70
+
71
+ ---
72
+
73
+ ## Checkpoint in Plan Format
74
+
75
+ Checkpoints are declared in the task's `type` attribute in the plan XML:
76
+
77
+ ```xml
78
+ <task id="02-01-T3" type="checkpoint:human-verify" tdd="false">
79
+ <name>Verify OAuth login flow in browser</name>
80
+ <files>...</files>
81
+ <action>...</action>
82
+ <verify>Open browser to localhost:3000/auth/login and complete the flow</verify>
83
+ <done>User can log in via Discord OAuth and see their profile</done>
84
+ </task>
85
+ ```
86
+
87
+ Valid checkpoint type values:
88
+ - `checkpoint:human-verify`
89
+ - `checkpoint:decision`
90
+ - `checkpoint:human-action`
91
+
92
+ Non-checkpoint task types use `type="auto"`.
93
+
94
+ ---
95
+
96
+ ## Autonomous vs Non-Autonomous Plans
97
+
98
+ The plan frontmatter field `autonomous: true|false` indicates whether a plan contains checkpoint tasks:
99
+
100
+ | Value | Meaning |
101
+ |-------|---------|
102
+ | `autonomous: true` | No checkpoint tasks. The executor can complete all tasks without human intervention. |
103
+ | `autonomous: false` | Contains at least one checkpoint task. Execution will pause at some point. |
104
+
105
+ The build orchestrator uses this field to determine execution strategy:
106
+ - Autonomous plans can be executed in parallel with other autonomous plans in the same wave
107
+ - Non-autonomous plans may block the wave while waiting for human input
108
+ - The orchestrator tracks checkpoint state in `.checkpoint-manifest.json`
109
+
110
+ ---
111
+
112
+ ## Continuation Protocol
113
+
114
+ After a checkpoint is resolved (human provides their answer, completes their action, or confirms verification), the orchestrator spawns a **fresh continuation executor** to resume from where the checkpoint paused.
115
+
116
+ The continuation executor receives:
117
+ 1. The full plan content
118
+ 2. A table of completed tasks with their commit hashes
119
+ 3. The checkpoint resolution (what the human decided or confirmed)
120
+ 4. The task number to resume from
121
+ 5. The same project context as the original executor
122
+
123
+ **Key rules for continuation**:
124
+ - The continuation executor does NOT re-execute completed tasks
125
+ - It reads the partial SUMMARY.md if one exists
126
+ - It verifies prior commits exist via `git log`
127
+ - It resumes from the next uncompleted task after the checkpoint
128
+
129
+ ---
130
+
131
+ ## Authentication Gate (Implicit Checkpoint)
132
+
133
+ The executor also supports an implicit checkpoint for authentication failures. If the executor encounters an authentication error (missing API key, expired token, invalid credentials) during any task, it immediately stops and returns a `CHECKPOINT: AUTH-GATE` response.
134
+
135
+ This is not declared in the plan — it triggers automatically when an auth error is detected. The response includes:
136
+ - Which task was blocked
137
+ - What credential is needed
138
+ - Where to configure it
139
+ - The actual error message
140
+
141
+ ---
142
+
143
+ ## Architectural Deviation (Implicit Checkpoint)
144
+
145
+ Similarly, if the executor discovers that the plan's approach cannot work (API changed, framework limitation, dependency conflict), it stops with a `CHECKPOINT: ARCHITECTURAL-DEVIATION` response. This follows Deviation Rule 4 from the executor's deviation handling protocol.
146
+
147
+ ---
148
+
149
+ ## Best Practices for Planners
150
+
151
+ When creating plans that include checkpoints:
152
+
153
+ 1. **Minimize checkpoint tasks** — each one pauses execution and requires human attention
154
+ 2. **Place checkpoints at natural boundaries** — after a feature is complete, not in the middle of wiring
155
+ 3. **Group manual actions** — combine related human actions into a single checkpoint rather than multiple stops
156
+ 4. **Provide clear instructions** — the `<action>` and `<verify>` elements should give the human everything they need
157
+ 5. **Consider autonomous alternatives** — if a task CAN be verified automatically, prefer `type="auto"` with a robust `<verify>` command
158
+ 6. **Set `autonomous: false`** in the plan frontmatter when any task is a checkpoint
@@ -0,0 +1,14 @@
1
+ <!-- canonical: ../../pbr/references/common-bug-patterns.md -->
2
+ # Common Bug Patterns
3
+
4
+ Quick reference for the debugger agent. Check these patterns early — they cover ~80% of bugs.
5
+
6
+ | Category | Patterns to Check |
7
+ |----------|------------------|
8
+ | **Off-by-one** | Loop bounds (`<` vs `<=`), 0-based vs 1-based indexing, string slice boundaries |
9
+ | **Null/undefined** | Missing optional chaining (`?.`), default params, DB query returning null, OOB array access |
10
+ | **Async/timing** | Missing `await`, race conditions, stale closures, handlers registered before element exists |
11
+ | **State management** | Direct mutation vs new object, update not triggering re-render, duplicated sources of truth, stale state in closures |
12
+ | **Import/module** | Circular imports, default vs named export mismatch, wrong file (similar names), resolution path |
13
+ | **Environment** | Missing/wrong env var, dev vs prod differences, case sensitivity (Windows vs Linux paths) |
14
+ | **Data shape** | API response format changed, schema/model mismatch, type mismatch between layers, missing field |
@@ -0,0 +1,442 @@
1
+ <!-- canonical: ../../pbr/references/config-reference.md -->
2
+ # Config Reference Guide
3
+
4
+ Complete reference for `.planning/config.json` -- the file that controls all Plan-Build-Run workflow behavior. Created by `/pbr:begin`, modifiable via `/pbr:config` or direct editing. Validated against `config-schema.json`.
5
+
6
+ ---
7
+
8
+ ## Top-Level Fields
9
+
10
+ | Property | Type | Allowed Values | Default | Description |
11
+ |----------|------|---------------|---------|-------------|
12
+ | `version` | integer | `1`, `2` | `2` | Schema version; v1 configs are auto-migrated to v2 on load |
13
+ | `context_strategy` | string | `aggressive`, `conservative`, `balanced` | `aggressive` | How aggressively PBR manages the context budget |
14
+ | `mode` | string | `interactive`, `autonomous` | `interactive` | Whether PBR pauses for user input or runs hands-free |
15
+ | `depth` | string | `quick`, `standard`, `comprehensive` | `standard` | Controls thoroughness of research, planning, and verification |
16
+
17
+ ### context_strategy
18
+
19
+ | Value | Behavior |
20
+ |-------|----------|
21
+ | `aggressive` | Proactive compaction warnings, strict context isolation, minimal file reads in main context |
22
+ | `balanced` | Moderate context management with some inline reads |
23
+ | `conservative` | Relaxed context management, more inline content allowed |
24
+
25
+ ### mode
26
+
27
+ | Value | Behavior |
28
+ |-------|----------|
29
+ | `interactive` | Pauses at gates, asks for confirmation, waits for user decisions |
30
+ | `autonomous` | Skips all gates, chains phases automatically, no user prompts |
31
+
32
+ ### depth
33
+
34
+ | Value | Behavior |
35
+ |-------|----------|
36
+ | `quick` | Skips research, plan-checking, and verification; 2 mapper areas; 3 debug rounds max |
37
+ | `standard` | Research + plan-checking + verification enabled; 4 mapper areas; 5 debug rounds max |
38
+ | `comprehensive` | Everything from standard plus inline per-task verification; 10 debug rounds max |
39
+
40
+ See [depth_profiles](#depth_profiles) for the exact feature overrides each depth level applies.
41
+
42
+ ---
43
+
44
+ ## features
45
+
46
+ Boolean toggles that enable or disable specific workflow capabilities. All default to the value shown unless overridden by the active depth profile.
47
+
48
+ | Property | Default | Description |
49
+ |----------|---------|-------------|
50
+ | `structured_planning` | `true` | Use phased planning with ROADMAP and plan files |
51
+ | `goal_verification` | `true` | Run verifier agent after builds to check goals are met |
52
+ | `integration_verification` | `true` | Run cross-phase integration checks |
53
+ | `context_isolation` | `true` | Isolate heavy work into subagents to protect main context |
54
+ | `atomic_commits` | `true` | One commit per task rather than batched commits |
55
+ | `session_persistence` | `true` | Persist state across sessions via STATE.md |
56
+ | `research_phase` | `true` | Run researcher agent before planning |
57
+ | `plan_checking` | `true` | Run plan-checker agent to validate plans before execution |
58
+ | `tdd_mode` | `false` | Red-Green-Refactor for all tasks (3 commits per task instead of 1) |
59
+ | `status_line` | `true` | Show status line in session UI |
60
+ | `auto_continue` | `false` | Write `.auto-next` signal on phase completion for chaining |
61
+ | `auto_advance` | `false` | Chain build, review, and plan automatically (requires `mode: autonomous`) |
62
+ | `team_discussions` | `false` | Enable team-based discussion workflows (never used for execution) |
63
+ | `inline_verify` | `false` | Per-task verification after each executor commit; adds ~10-20s latency per plan |
64
+
65
+ **Notable interactions:**
66
+ - `goal_verification: false` skips post-build verification; the build skill suggests running `/pbr:review` manually.
67
+ - `auto_continue: true` writes `.planning/.auto-next` containing the next command (e.g., `/pbr:plan 4`).
68
+ - `auto_advance: true` requires `mode: autonomous` to function. Hard stops at checkpoints, verification gaps, errors, and milestone boundaries.
69
+ - `inline_verify: true` spawns a haiku-model verifier after each plan within a wave, catching issues before dependent plans run.
70
+
71
+ ---
72
+
73
+ ## models
74
+
75
+ Per-agent model selection. Valid values for all fields: `sonnet`, `opus`, `haiku`, `inherit`.
76
+
77
+ | Property | Default | Description |
78
+ |----------|---------|-------------|
79
+ | `researcher` | `sonnet` | Model for the researcher agent |
80
+ | `planner` | `inherit` | Model for the planner agent |
81
+ | `executor` | `inherit` | Model for the executor agent |
82
+ | `verifier` | `sonnet` | Model for the verifier agent |
83
+ | `integration_checker` | `sonnet` | Model for the integration-checker agent |
84
+ | `debugger` | `inherit` | Model for the debugger agent |
85
+ | `mapper` | `sonnet` | Model for the codebase-mapper agent |
86
+ | `synthesizer` | `haiku` | Model for the synthesizer agent (combines team outputs) |
87
+
88
+ ### models.complexity_map
89
+
90
+ Maps task complexity to model tiers. Used when agents auto-select models based on task difficulty.
91
+
92
+ | Property | Default | Description |
93
+ |----------|---------|-------------|
94
+ | `simple` | `haiku` | Model for simple tasks |
95
+ | `medium` | `sonnet` | Model for medium-complexity tasks |
96
+ | `complex` | `inherit` | Model for high-complexity tasks |
97
+
98
+ ---
99
+
100
+ ## parallelization
101
+
102
+ Controls whether and how plans execute concurrently within a wave.
103
+
104
+ | Property | Type | Default | Description |
105
+ |----------|------|---------|-------------|
106
+ | `enabled` | boolean | `true` | Enable parallel plan execution |
107
+ | `plan_level` | boolean | `true` | Parallelize at plan level (multiple plans in same wave) |
108
+ | `task_level` | boolean | `false` | Parallelize at task level within a plan (not currently used) |
109
+ | `max_concurrent_agents` | integer | `3` | Maximum simultaneous executor subagents (1-10) |
110
+ | `min_plans_for_parallel` | integer | `2` | Minimum plans in a wave to trigger parallel execution (min: 1) |
111
+ | `use_teams` | boolean | `false` | Use Agent Teams for coordination (discussion only, never execution) |
112
+
113
+ **Behavior notes:**
114
+ - When `enabled: true` and a wave has >= `min_plans_for_parallel` plans, the build orchestrator spawns executors in parallel using `run_in_background: true`.
115
+ - Git lock conflicts can occur with parallel execution. Executors retry with 2s waits (max 3 attempts). If conflicts persist, reduce `max_concurrent_agents`.
116
+
117
+ ---
118
+
119
+ ## teams
120
+
121
+ Configures Agent Teams for multi-perspective planning and review discussions.
122
+
123
+ | Property | Type | Default | Description |
124
+ |----------|------|---------|-------------|
125
+ | `planning_roles` | string[] | `["architect", "security-reviewer", "test-designer"]` | Roles used during team planning discussions |
126
+ | `review_roles` | string[] | `["functional-reviewer", "security-auditor", "performance-analyst"]` | Roles used during team review discussions |
127
+ | `synthesis_model` | string | `sonnet` | Model used for the synthesizer agent that combines team outputs |
128
+ | `coordination` | string | `file-based` | How team members coordinate: `file-based` (parallel writes) or `sequential` |
129
+
130
+ **Interaction with parallelization:** Teams require `parallelization.max_concurrent_agents` > 1 to be useful. Setting `max_concurrent_agents: 1` with teams configured is a validation error.
131
+
132
+ ---
133
+
134
+ ## planning
135
+
136
+ Controls planning behavior and documentation.
137
+
138
+ | Property | Type | Default | Description |
139
+ |----------|------|---------|-------------|
140
+ | `commit_docs` | boolean | `true` | Commit planning docs (SUMMARY, VERIFICATION) after builds |
141
+ | `max_tasks_per_plan` | integer | `3` | Maximum tasks per plan; keeps plans focused and atomic (1-10) |
142
+ | `search_gitignored` | boolean | `false` | Include gitignored files in codebase scanning |
143
+
144
+ When `commit_docs: true`, after all plans in a phase complete, the build orchestrator stages and commits planning artifacts with the message format `docs({phase}): add build summaries and verification`.
145
+
146
+ ---
147
+
148
+ ## git
149
+
150
+ Controls git integration and branching strategy.
151
+
152
+ | Property | Type | Default | Description |
153
+ |----------|------|---------|-------------|
154
+ | `branching` | string | `none` | Branching strategy: `none`, `phase`, `milestone`, `disabled` |
155
+ | `commit_format` | string | `{type}({phase}-{plan}): {description}` | Commit message template |
156
+ | `phase_branch_template` | string | `plan-build-run/phase-{phase}-{slug}` | Phase branch name pattern |
157
+ | `milestone_branch_template` | string | `plan-build-run/{milestone}-{slug}` | Milestone branch name pattern |
158
+ | `mode` | string | `enabled` | Git mode: `enabled` or `disabled` |
159
+
160
+ When `git.mode` is `disabled`, no git commands run at all -- no commits, branching, or hook validation. Useful for prototyping or non-git projects. See `references/git-integration.md` for full branching strategy details.
161
+
162
+ ---
163
+
164
+ ## gates
165
+
166
+ Confirmation gates that pause execution to ask the user before proceeding. Setting a gate to `false` makes that step automatic.
167
+
168
+ | Property | Default | When Triggered |
169
+ |----------|---------|----------------|
170
+ | `confirm_project` | `true` | Before creating a new PBR project (`/pbr:begin`) |
171
+ | `confirm_roadmap` | `true` | Before finalizing a roadmap |
172
+ | `confirm_plan` | `true` | Before finalizing plans for a phase |
173
+ | `confirm_execute` | `false` | Before starting phase execution (`/pbr:build`) |
174
+ | `confirm_transition` | `true` | Before transitioning to the next phase |
175
+ | `issues_review` | `true` | Before proceeding when issues are detected |
176
+
177
+ **Key interaction:** Gates are unreachable in `mode: autonomous`. Setting `mode: autonomous` with any gates enabled is a validation error.
178
+
179
+ ---
180
+
181
+ ## safety
182
+
183
+ Safety controls for destructive or external operations.
184
+
185
+ | Property | Type | Default | Description |
186
+ |----------|------|---------|-------------|
187
+ | `always_confirm_destructive` | boolean | `true` | Always ask before destructive git operations |
188
+ | `always_confirm_external_services` | boolean | `true` | Always ask before calling external APIs or services |
189
+ | `enforce_phase_boundaries` | boolean | `true` | Prevent agents from working outside their assigned phase scope |
190
+
191
+ The `always_confirm_destructive` and `always_confirm_external_services` flags cannot be disabled via `/pbr:config`; they require direct editing of `config.json` as a deliberate action.
192
+
193
+ ---
194
+
195
+ ## hooks
196
+
197
+ Controls behavior of hook scripts that fire during Claude Code lifecycle events.
198
+
199
+ | Property | Type | Default | Description |
200
+ |----------|------|---------|-------------|
201
+ | `autoFormat` | boolean | `false` | Run auto-formatting after file writes |
202
+ | `typeCheck` | boolean | `false` | Run type checking after file writes |
203
+ | `detectConsoleLogs` | boolean | `false` | Warn when console.log statements are added |
204
+ | `blockDocSprawl` | boolean | `false` | Block creation of excessive documentation files |
205
+ | `compactThreshold` | integer | `50` | Context budget percentage at which to suggest compaction (10-200) |
206
+
207
+ All hook checks are disabled by default and must be opted into via config.
208
+
209
+ ---
210
+
211
+ ## debug
212
+
213
+ Controls debug workflow behavior.
214
+
215
+ | Property | Type | Default | Description |
216
+ |----------|------|---------|-------------|
217
+ | `max_hypothesis_rounds` | integer | `5` | Maximum hypothesis-test cycles the debugger agent runs (1-20) |
218
+
219
+ This value is overridden by the active depth profile if a `depth_profiles` entry sets `debug.max_hypothesis_rounds`.
220
+
221
+ ---
222
+
223
+ ## depth_profiles
224
+
225
+ Override the built-in depth profile defaults. Each key (`quick`, `standard`, `comprehensive`) maps to an object of settings that take effect when that depth is active.
226
+
227
+ **Built-in defaults:**
228
+
229
+ | Setting | quick | standard | comprehensive |
230
+ |---------|-------|----------|---------------|
231
+ | `features.research_phase` | `false` | `true` | `true` |
232
+ | `features.plan_checking` | `false` | `true` | `true` |
233
+ | `features.goal_verification` | `false` | `true` | `true` |
234
+ | `features.inline_verify` | `false` | `false` | `true` |
235
+ | `scan.mapper_count` | `2` | `4` | `4` |
236
+ | `scan.mapper_areas` | `["tech", "arch"]` | `["tech", "arch", "quality", "concerns"]` | `["tech", "arch", "quality", "concerns"]` |
237
+ | `debug.max_hypothesis_rounds` | `3` | `5` | `10` |
238
+
239
+ User overrides in `depth_profiles` merge on top of these defaults. For example, to keep standard depth but increase debug rounds:
240
+
241
+ ```json
242
+ {
243
+ "depth": "standard",
244
+ "depth_profiles": {
245
+ "standard": {
246
+ "debug.max_hypothesis_rounds": 8
247
+ }
248
+ }
249
+ }
250
+ ```
251
+
252
+ ---
253
+
254
+ ## spinner_tips
255
+
256
+ Custom spinner tips shown during agent execution. Requires Claude Code 2.1.45+.
257
+
258
+ | Property | Type | Default | Description |
259
+ |----------|------|---------|-------------|
260
+ | `tips` | string[] | `[]` | Array of custom tip strings to display in the spinner |
261
+ | `exclude_defaults` | boolean | `false` | When true, only show custom tips (suppress default Claude Code tips) |
262
+
263
+ ---
264
+
265
+ ## status_line
266
+
267
+ Controls the status line displayed in the session UI.
268
+
269
+ | Property | Type | Default | Description |
270
+ |----------|------|---------|-------------|
271
+ | `sections` | string[] | `["phase", "plan", "status", "context"]` | Which sections to display; allowed values: `phase`, `plan`, `status`, `context` |
272
+ | `brand_text` | string | -- | Custom brand text for the status line |
273
+ | `max_status_length` | integer | -- | Maximum character length for the status section (10-200) |
274
+
275
+ ### status_line.context_bar
276
+
277
+ Controls the visual context budget bar.
278
+
279
+ | Property | Type | Default | Description |
280
+ |----------|------|---------|-------------|
281
+ | `width` | integer | -- | Width of the context bar in characters (1-50) |
282
+ | `thresholds.green` | integer | -- | Percentage threshold for green indicator (0-100) |
283
+ | `thresholds.yellow` | integer | -- | Percentage threshold for yellow indicator (0-100) |
284
+ | `chars.filled` | string | -- | Character used for the filled portion of the bar |
285
+ | `chars.empty` | string | -- | Character used for the empty portion of the bar |
286
+
287
+ ---
288
+
289
+ ## Common Configurations
290
+
291
+ ### Quick Solo Development
292
+
293
+ Minimal overhead for small fixes or solo prototyping. Skips research, plan-checking, and verification. No gates, no branching.
294
+
295
+ ```json
296
+ {
297
+ "version": 2,
298
+ "depth": "quick",
299
+ "mode": "interactive",
300
+ "features": {
301
+ "structured_planning": true,
302
+ "goal_verification": false,
303
+ "integration_verification": false,
304
+ "context_isolation": true,
305
+ "atomic_commits": true,
306
+ "research_phase": false,
307
+ "plan_checking": false
308
+ },
309
+ "gates": {
310
+ "confirm_project": false,
311
+ "confirm_roadmap": false,
312
+ "confirm_plan": false,
313
+ "confirm_execute": false,
314
+ "confirm_transition": false,
315
+ "issues_review": false
316
+ },
317
+ "git": {
318
+ "branching": "none",
319
+ "mode": "enabled"
320
+ }
321
+ }
322
+ ```
323
+
324
+ ### Comprehensive Team Workflow
325
+
326
+ Full verification, team discussions, parallel execution, and all gates enabled. Good for multi-phase projects with code review requirements.
327
+
328
+ ```json
329
+ {
330
+ "version": 2,
331
+ "depth": "comprehensive",
332
+ "mode": "interactive",
333
+ "features": {
334
+ "structured_planning": true,
335
+ "goal_verification": true,
336
+ "integration_verification": true,
337
+ "context_isolation": true,
338
+ "atomic_commits": true,
339
+ "research_phase": true,
340
+ "plan_checking": true,
341
+ "tdd_mode": true,
342
+ "inline_verify": true,
343
+ "team_discussions": true
344
+ },
345
+ "parallelization": {
346
+ "enabled": true,
347
+ "plan_level": true,
348
+ "max_concurrent_agents": 3,
349
+ "use_teams": true
350
+ },
351
+ "teams": {
352
+ "planning_roles": ["architect", "security-reviewer", "test-designer"],
353
+ "review_roles": ["functional-reviewer", "security-auditor", "performance-analyst"],
354
+ "coordination": "file-based"
355
+ },
356
+ "gates": {
357
+ "confirm_project": true,
358
+ "confirm_roadmap": true,
359
+ "confirm_plan": true,
360
+ "confirm_execute": true,
361
+ "confirm_transition": true,
362
+ "issues_review": true
363
+ },
364
+ "git": {
365
+ "branching": "phase",
366
+ "mode": "enabled"
367
+ }
368
+ }
369
+ ```
370
+
371
+ ### Autonomous CI/CD Mode
372
+
373
+ Hands-free execution with no gates and automatic phase chaining. Suitable for CI pipelines or unattended runs.
374
+
375
+ ```json
376
+ {
377
+ "version": 2,
378
+ "depth": "standard",
379
+ "mode": "autonomous",
380
+ "features": {
381
+ "structured_planning": true,
382
+ "goal_verification": true,
383
+ "integration_verification": true,
384
+ "context_isolation": true,
385
+ "atomic_commits": true,
386
+ "research_phase": true,
387
+ "plan_checking": true,
388
+ "auto_continue": true,
389
+ "auto_advance": true
390
+ },
391
+ "gates": {
392
+ "confirm_project": false,
393
+ "confirm_roadmap": false,
394
+ "confirm_plan": false,
395
+ "confirm_execute": false,
396
+ "confirm_transition": false,
397
+ "issues_review": false
398
+ },
399
+ "git": {
400
+ "branching": "phase",
401
+ "mode": "enabled"
402
+ },
403
+ "planning": {
404
+ "commit_docs": true
405
+ }
406
+ }
407
+ ```
408
+
409
+ ---
410
+
411
+ ## Troubleshooting
412
+
413
+ ### Validation Errors
414
+
415
+ Run validation with: `node plugins/pbr/scripts/pbr-tools.js config validate`
416
+
417
+ **"config.json not found"** -- No `.planning/config.json` exists. Run `/pbr:begin` to create one, or create the file manually.
418
+
419
+ **"config.json is not valid JSON"** -- Syntax error in the JSON file. Check for trailing commas, missing quotes, or unescaped characters.
420
+
421
+ **"mode=autonomous with active gates: gates are unreachable in autonomous mode"** -- You set `mode: autonomous` but left one or more gates enabled. Autonomous mode never pauses for confirmation, so enabled gates are contradictory. Set all gates to `false` or switch back to `mode: interactive`.
422
+
423
+ **"parallelization.max_concurrent_agents=1 with teams.coordination set: teams require concurrent agents to be useful"** -- Teams need multiple agents running in parallel. Either increase `max_concurrent_agents` above 1 or remove the `teams` configuration.
424
+
425
+ ### Validation Warnings
426
+
427
+ **"features.auto_continue=true with mode=interactive"** -- `auto_continue` only fires in autonomous mode. It has no effect in interactive mode. Either switch to `mode: autonomous` or disable `auto_continue`.
428
+
429
+ **"parallelization.enabled=false with plan_level=true"** -- `plan_level` is ignored when parallelization is disabled. Either enable parallelization or remove the `plan_level` setting.
430
+
431
+ ### Contradictory Configurations to Avoid
432
+
433
+ | Configuration | Problem |
434
+ |---------------|---------|
435
+ | `mode: autonomous` + any gate `true` | Gates never fire in autonomous mode (validation error) |
436
+ | `max_concurrent_agents: 1` + `teams.coordination` set | Teams cannot coordinate with only one agent (validation error) |
437
+ | `auto_continue: true` + `mode: interactive` | auto_continue is ignored in interactive mode (warning) |
438
+ | `parallelization.enabled: false` + `plan_level: true` | plan_level has no effect when parallelization is off (warning) |
439
+ | `auto_advance: true` + `mode: interactive` | auto_advance requires autonomous mode to chain phases |
440
+ | `tdd_mode: true` + `depth: quick` | quick depth skips verification, which conflicts with TDD's verify-first approach |
441
+ | `git.mode: disabled` + `atomic_commits: true` | atomic_commits has no effect when git is disabled |
442
+ | `git.branching: phase` + `git.mode: disabled` | Branching settings are ignored when git is disabled |