@sienklogic/plan-build-run 2.0.2 → 2.2.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 (166) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +25 -6
  3. package/dashboard/src/routes/pages.routes.js +11 -4
  4. package/dashboard/src/services/dashboard.service.js +81 -17
  5. package/dashboard/src/services/phase.service.js +30 -24
  6. package/dashboard/src/services/roadmap.service.js +3 -3
  7. package/dashboard/src/views/partials/phase-content.ejs +5 -4
  8. package/package.json +1 -1
  9. package/plugins/cursor-pbr/.cursor-plugin/plugin.json +1 -1
  10. package/plugins/cursor-pbr/CHANGELOG.md +15 -0
  11. package/plugins/cursor-pbr/README.md +118 -0
  12. package/plugins/cursor-pbr/agents/codebase-mapper.md +108 -0
  13. package/plugins/cursor-pbr/agents/debugger.md +168 -0
  14. package/plugins/cursor-pbr/agents/executor.md +236 -0
  15. package/plugins/cursor-pbr/agents/general.md +87 -0
  16. package/plugins/cursor-pbr/agents/integration-checker.md +87 -0
  17. package/plugins/cursor-pbr/agents/plan-checker.md +198 -0
  18. package/plugins/cursor-pbr/agents/planner.md +180 -0
  19. package/plugins/cursor-pbr/agents/researcher.md +162 -0
  20. package/plugins/cursor-pbr/agents/synthesizer.md +101 -0
  21. package/plugins/cursor-pbr/agents/verifier.md +193 -0
  22. package/plugins/cursor-pbr/assets/logo.svg +21 -0
  23. package/plugins/cursor-pbr/hooks/hooks.json +189 -7
  24. package/plugins/cursor-pbr/references/agent-anti-patterns.md +25 -0
  25. package/plugins/cursor-pbr/references/agent-interactions.md +135 -0
  26. package/plugins/cursor-pbr/references/agent-teams.md +55 -0
  27. package/plugins/cursor-pbr/references/checkpoints.md +158 -0
  28. package/plugins/cursor-pbr/references/common-bug-patterns.md +14 -0
  29. package/plugins/cursor-pbr/references/config-reference.md +442 -0
  30. package/plugins/cursor-pbr/references/continuation-format.md +213 -0
  31. package/plugins/cursor-pbr/references/deviation-rules.md +113 -0
  32. package/plugins/cursor-pbr/references/git-integration.md +227 -0
  33. package/plugins/cursor-pbr/references/integration-patterns.md +118 -0
  34. package/plugins/cursor-pbr/references/model-profiles.md +100 -0
  35. package/plugins/cursor-pbr/references/model-selection.md +32 -0
  36. package/plugins/cursor-pbr/references/pbr-rules.md +194 -0
  37. package/plugins/cursor-pbr/references/plan-authoring.md +182 -0
  38. package/plugins/cursor-pbr/references/plan-format.md +288 -0
  39. package/plugins/cursor-pbr/references/planning-config.md +214 -0
  40. package/plugins/cursor-pbr/references/questioning.md +215 -0
  41. package/plugins/cursor-pbr/references/reading-verification.md +128 -0
  42. package/plugins/cursor-pbr/references/stub-patterns.md +161 -0
  43. package/plugins/cursor-pbr/references/subagent-coordination.md +120 -0
  44. package/plugins/cursor-pbr/references/ui-formatting.md +462 -0
  45. package/plugins/cursor-pbr/references/verification-patterns.md +199 -0
  46. package/plugins/cursor-pbr/references/wave-execution.md +96 -0
  47. package/plugins/cursor-pbr/rules/pbr-workflow.mdc +48 -0
  48. package/plugins/cursor-pbr/setup.ps1 +78 -0
  49. package/plugins/cursor-pbr/setup.sh +83 -0
  50. package/plugins/cursor-pbr/skills/begin/SKILL.md +566 -0
  51. package/plugins/cursor-pbr/skills/begin/templates/PROJECT.md.tmpl +34 -0
  52. package/plugins/cursor-pbr/skills/begin/templates/REQUIREMENTS.md.tmpl +19 -0
  53. package/plugins/cursor-pbr/skills/begin/templates/STATE.md.tmpl +50 -0
  54. package/plugins/cursor-pbr/skills/begin/templates/config.json.tmpl +64 -0
  55. package/plugins/cursor-pbr/skills/begin/templates/researcher-prompt.md.tmpl +20 -0
  56. package/plugins/cursor-pbr/skills/begin/templates/roadmap-prompt.md.tmpl +31 -0
  57. package/plugins/cursor-pbr/skills/begin/templates/synthesis-prompt.md.tmpl +17 -0
  58. package/plugins/cursor-pbr/skills/build/SKILL.md +902 -0
  59. package/plugins/cursor-pbr/skills/config/SKILL.md +253 -0
  60. package/plugins/cursor-pbr/skills/continue/SKILL.md +159 -0
  61. package/plugins/cursor-pbr/skills/debug/SKILL.md +512 -0
  62. package/plugins/cursor-pbr/skills/debug/templates/continuation-prompt.md.tmpl +17 -0
  63. package/plugins/cursor-pbr/skills/debug/templates/initial-investigation-prompt.md.tmpl +28 -0
  64. package/plugins/cursor-pbr/skills/discuss/SKILL.md +344 -0
  65. package/plugins/cursor-pbr/skills/discuss/templates/CONTEXT.md.tmpl +62 -0
  66. package/plugins/cursor-pbr/skills/discuss/templates/decision-categories.md +10 -0
  67. package/plugins/cursor-pbr/skills/explore/SKILL.md +375 -0
  68. package/plugins/cursor-pbr/skills/health/SKILL.md +218 -0
  69. package/plugins/cursor-pbr/skills/health/templates/check-pattern.md.tmpl +31 -0
  70. package/plugins/cursor-pbr/skills/health/templates/output-format.md.tmpl +64 -0
  71. package/plugins/cursor-pbr/skills/help/SKILL.md +152 -0
  72. package/plugins/cursor-pbr/skills/import/SKILL.md +499 -0
  73. package/plugins/cursor-pbr/skills/milestone/SKILL.md +701 -0
  74. package/plugins/cursor-pbr/skills/milestone/templates/audit-report.md.tmpl +49 -0
  75. package/plugins/cursor-pbr/skills/milestone/templates/stats-file.md.tmpl +31 -0
  76. package/plugins/cursor-pbr/skills/note/SKILL.md +228 -0
  77. package/plugins/cursor-pbr/skills/pause/SKILL.md +246 -0
  78. package/plugins/cursor-pbr/skills/pause/templates/continue-here.md.tmpl +72 -0
  79. package/plugins/cursor-pbr/skills/plan/SKILL.md +648 -0
  80. package/plugins/cursor-pbr/skills/plan/templates/checker-prompt.md.tmpl +22 -0
  81. package/plugins/cursor-pbr/skills/plan/templates/gap-closure-prompt.md.tmpl +33 -0
  82. package/plugins/cursor-pbr/skills/plan/templates/planner-prompt.md.tmpl +39 -0
  83. package/plugins/cursor-pbr/skills/plan/templates/researcher-prompt.md.tmpl +20 -0
  84. package/plugins/cursor-pbr/skills/plan/templates/revision-prompt.md.tmpl +24 -0
  85. package/plugins/cursor-pbr/skills/quick/SKILL.md +351 -0
  86. package/plugins/cursor-pbr/skills/resume/SKILL.md +399 -0
  87. package/plugins/cursor-pbr/skills/review/SKILL.md +649 -0
  88. package/plugins/cursor-pbr/skills/review/templates/debugger-prompt.md.tmpl +61 -0
  89. package/plugins/cursor-pbr/skills/review/templates/gap-planner-prompt.md.tmpl +41 -0
  90. package/plugins/cursor-pbr/skills/review/templates/verifier-prompt.md.tmpl +116 -0
  91. package/plugins/cursor-pbr/skills/scan/SKILL.md +301 -0
  92. package/plugins/cursor-pbr/skills/scan/templates/mapper-prompt.md.tmpl +202 -0
  93. package/plugins/cursor-pbr/skills/setup/SKILL.md +250 -0
  94. package/plugins/cursor-pbr/skills/shared/commit-planning-docs.md +36 -0
  95. package/plugins/cursor-pbr/skills/shared/config-loading.md +103 -0
  96. package/plugins/cursor-pbr/skills/shared/context-budget.md +41 -0
  97. package/plugins/cursor-pbr/skills/shared/context-loader-task.md +87 -0
  98. package/plugins/cursor-pbr/skills/shared/digest-select.md +80 -0
  99. package/plugins/cursor-pbr/skills/shared/domain-probes.md +126 -0
  100. package/plugins/cursor-pbr/skills/shared/error-reporting.md +80 -0
  101. package/plugins/cursor-pbr/skills/shared/gate-prompts.md +389 -0
  102. package/plugins/cursor-pbr/skills/shared/phase-argument-parsing.md +46 -0
  103. package/plugins/cursor-pbr/skills/shared/progress-display.md +54 -0
  104. package/plugins/cursor-pbr/skills/shared/revision-loop.md +82 -0
  105. package/plugins/cursor-pbr/skills/shared/state-loading.md +63 -0
  106. package/plugins/cursor-pbr/skills/shared/state-update.md +162 -0
  107. package/plugins/cursor-pbr/skills/shared/universal-anti-patterns.md +34 -0
  108. package/plugins/cursor-pbr/skills/status/SKILL.md +362 -0
  109. package/plugins/cursor-pbr/skills/todo/SKILL.md +195 -0
  110. package/plugins/cursor-pbr/templates/CONTEXT.md.tmpl +53 -0
  111. package/plugins/cursor-pbr/templates/INTEGRATION-REPORT.md.tmpl +152 -0
  112. package/plugins/cursor-pbr/templates/RESEARCH-SUMMARY.md.tmpl +98 -0
  113. package/plugins/cursor-pbr/templates/ROADMAP.md.tmpl +41 -0
  114. package/plugins/cursor-pbr/templates/SUMMARY.md.tmpl +82 -0
  115. package/plugins/cursor-pbr/templates/VERIFICATION-DETAIL.md.tmpl +117 -0
  116. package/plugins/cursor-pbr/templates/continue-here.md.tmpl +74 -0
  117. package/plugins/cursor-pbr/templates/prompt-partials/phase-project-context.md.tmpl +38 -0
  118. package/plugins/pbr/agents/codebase-mapper.md +41 -206
  119. package/plugins/pbr/agents/debugger.md +65 -171
  120. package/plugins/pbr/agents/executor.md +90 -275
  121. package/plugins/pbr/agents/general.md +27 -97
  122. package/plugins/pbr/agents/integration-checker.md +35 -112
  123. package/plugins/pbr/agents/plan-checker.md +71 -164
  124. package/plugins/pbr/agents/planner.md +76 -245
  125. package/plugins/pbr/agents/researcher.md +63 -255
  126. package/plugins/pbr/agents/synthesizer.md +49 -174
  127. package/plugins/pbr/agents/verifier.md +75 -366
  128. package/plugins/pbr/hooks/hooks.json +14 -10
  129. package/plugins/pbr/references/ui-formatting.md +1 -1
  130. package/plugins/pbr/scripts/auto-continue.js +20 -4
  131. package/plugins/pbr/scripts/check-dangerous-commands.js +1 -1
  132. package/plugins/pbr/scripts/check-phase-boundary.js +1 -1
  133. package/plugins/pbr/scripts/check-plan-format.js +3 -3
  134. package/plugins/pbr/scripts/check-roadmap-sync.js +3 -3
  135. package/plugins/pbr/scripts/check-skill-workflow.js +1 -1
  136. package/plugins/pbr/scripts/check-state-sync.js +2 -2
  137. package/plugins/pbr/scripts/check-subagent-output.js +1 -1
  138. package/plugins/pbr/scripts/check-summary-gate.js +198 -0
  139. package/plugins/pbr/scripts/context-budget-check.js +1 -1
  140. package/plugins/pbr/scripts/event-handler.js +2 -2
  141. package/plugins/pbr/scripts/event-logger.js +1 -1
  142. package/plugins/pbr/scripts/log-subagent.js +1 -1
  143. package/plugins/pbr/scripts/pbr-tools.js +1 -1
  144. package/plugins/pbr/scripts/post-write-dispatch.js +1 -1
  145. package/plugins/pbr/scripts/post-write-quality.js +1 -1
  146. package/plugins/pbr/scripts/pre-bash-dispatch.js +1 -1
  147. package/plugins/pbr/scripts/pre-write-dispatch.js +16 -3
  148. package/plugins/pbr/scripts/session-cleanup.js +1 -1
  149. package/plugins/pbr/scripts/status-line.js +1 -1
  150. package/plugins/pbr/scripts/suggest-compact.js +1 -1
  151. package/plugins/pbr/scripts/task-completed.js +1 -1
  152. package/plugins/pbr/scripts/track-context-budget.js +11 -6
  153. package/plugins/pbr/scripts/validate-commit.js +1 -1
  154. package/plugins/pbr/scripts/validate-task.js +1 -1
  155. package/plugins/pbr/skills/begin/SKILL.md +4 -2
  156. package/plugins/pbr/skills/begin/templates/roadmap-prompt.md.tmpl +2 -0
  157. package/plugins/pbr/skills/build/SKILL.md +6 -4
  158. package/plugins/pbr/skills/continue/SKILL.md +2 -1
  159. package/plugins/pbr/skills/review/SKILL.md +4 -3
  160. package/plugins/pbr/skills/status/SKILL.md +5 -2
  161. package/plugins/pbr/templates/ROADMAP.md.tmpl +6 -1
  162. package/plugins/cursor-pbr/agents/.gitkeep +0 -0
  163. package/plugins/cursor-pbr/references/.gitkeep +0 -0
  164. package/plugins/cursor-pbr/rules/.gitkeep +0 -0
  165. package/plugins/cursor-pbr/skills/.gitkeep +0 -0
  166. package/plugins/cursor-pbr/templates/.gitkeep +0 -0
@@ -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 |
@@ -0,0 +1,213 @@
1
+ <!-- canonical: ../../pbr/references/continuation-format.md -->
2
+ # Continuation Protocol
3
+
4
+ How to spawn a fresh executor agent to continue from a checkpoint or partial completion.
5
+
6
+ ---
7
+
8
+ ## Why Fresh Agents
9
+
10
+ When an executor hits a checkpoint, it STOPS and returns. A new, fresh agent must be spawned to continue because:
11
+ 1. The checkpoint may require user input that changes the execution path
12
+ 2. Context isolation prevents accumulated state from causing issues
13
+ 3. Fresh agents have full context budget for remaining work
14
+
15
+ ---
16
+
17
+ ## Lean Continuation State File
18
+
19
+ Instead of inlining all prior context into the continuation prompt, the build skill writes a compact state file to disk. The continuation executor reads this file + the original PLAN.md, keeping the prompt lean.
20
+
21
+ ### File Location
22
+
23
+ ```
24
+ .planning/phases/{NN}-{slug}/.continuation-state.json
25
+ ```
26
+
27
+ ### Schema
28
+
29
+ ```json
30
+ {
31
+ "plan_id": "02-01",
32
+ "completed_tasks": [
33
+ {
34
+ "id": "02-01-T1",
35
+ "commit": "abc1234",
36
+ "files": ["src/auth/discord.ts", "src/auth/types.ts"]
37
+ },
38
+ {
39
+ "id": "02-01-T2",
40
+ "commit": "def5678",
41
+ "files": ["src/middleware/auth.ts"]
42
+ }
43
+ ],
44
+ "checkpoint": {
45
+ "task": "02-01-T3",
46
+ "type": "human-verify",
47
+ "resolution": "passed"
48
+ },
49
+ "resume_at": "02-01-T3"
50
+ }
51
+ ```
52
+
53
+ ### Fields
54
+
55
+ | Field | Type | Description |
56
+ |-------|------|-------------|
57
+ | `plan_id` | string | The plan being executed |
58
+ | `completed_tasks` | array | Tasks completed before checkpoint. Each has `id`, `commit` hash, and `files` changed. |
59
+ | `checkpoint` | object | The checkpoint that triggered continuation. `task` = task ID, `type` = checkpoint type, `resolution` = user's response. |
60
+ | `resume_at` | string | Task ID to resume execution from |
61
+
62
+ ### How the Build Skill Uses It
63
+
64
+ **Writing** (when executor hits a checkpoint):
65
+ 1. Executor returns checkpoint info to the build orchestrator
66
+ 2. Build orchestrator writes `.continuation-state.json` with completed tasks, checkpoint details, and resume point
67
+ 3. Build orchestrator prompts user for checkpoint resolution
68
+ 4. Build orchestrator updates `checkpoint.resolution` with user's response
69
+
70
+ **Reading** (when spawning continuation executor):
71
+ 1. Build orchestrator reads `.continuation-state.json` from disk
72
+ 2. Build orchestrator reads the original PLAN.md from disk
73
+ 3. Build orchestrator constructs a lean continuation prompt referencing both files
74
+ 4. Continuation executor reads `.continuation-state.json` itself to verify prior commits
75
+
76
+ This approach replaces inlining the full completed-tasks table into the prompt, saving significant context budget on plans with many tasks or multiple checkpoints.
77
+
78
+ ---
79
+
80
+ ## Continuation Context Structure
81
+
82
+ The continuation prompt must include:
83
+
84
+ ### 1. Completed Tasks Table
85
+
86
+ A table of all tasks completed before the checkpoint, with their commit hashes:
87
+
88
+ ```markdown
89
+ | Task ID | Task Name | Commit | Files Changed | Status |
90
+ |---------|-----------|--------|---------------|--------|
91
+ | 02-01-T1 | Create auth module | abc1234 | src/auth/discord.ts, src/auth/types.ts | complete |
92
+ | 02-01-T2 | Add auth middleware | def5678 | src/middleware/auth.ts | complete |
93
+ | 02-01-T3 | Wire OAuth callback | — | — | checkpoint |
94
+ ```
95
+
96
+ ### 2. Resume Task Number
97
+
98
+ Which task to resume from:
99
+ - If the checkpoint task needs to be RE-EXECUTED with user input: resume at the checkpoint task
100
+ - If the checkpoint task was completed and the next task is blocked: resume at the NEXT task
101
+
102
+ ### 3. User Response
103
+
104
+ The user's response to the checkpoint:
105
+ - For `decision`: which option they chose
106
+ - For `human-verify`: whether they passed or failed each item
107
+ - For `human-action`: confirmation that the action was taken
108
+
109
+ ---
110
+
111
+ ## Continuation Prompt Template
112
+
113
+ ```
114
+ You are the executor agent. Continue executing a plan from a checkpoint.
115
+
116
+ <plan>
117
+ [Inline the FULL PLAN.md content — all tasks, not just remaining ones]
118
+ </plan>
119
+
120
+ <completed_tasks>
121
+ The following tasks have already been completed. DO NOT re-execute them.
122
+ Verify their commits exist before proceeding.
123
+
124
+ | Task ID | Task Name | Commit | Status |
125
+ |---------|-----------|--------|--------|
126
+ | {id} | {name} | {hash} | complete |
127
+ | {id} | {name} | {hash} | complete |
128
+ | {id} | {name} | — | checkpoint |
129
+ </completed_tasks>
130
+
131
+ <checkpoint_resolution>
132
+ Checkpoint type: {human-verify | decision | human-action | architectural-change}
133
+ User response: {the user's response to the checkpoint}
134
+
135
+ {For decision: "User chose Option {X}: {description}"}
136
+ {For human-verify: "User confirmed: {pass/fail per item}"}
137
+ {For human-action: "User confirms action completed: {what they did}"}
138
+ {For architectural-change: "User approved approach: {new approach}"}
139
+ </checkpoint_resolution>
140
+
141
+ <resume_instructions>
142
+ Resume execution at Task {N}.
143
+ {If checkpoint task should be re-executed: "Re-execute Task {N} with the user's input."}
144
+ {If checkpoint task is done: "Skip Task {N} and continue from Task {N+1}."}
145
+ </resume_instructions>
146
+
147
+ <project_context>
148
+ [Same project context as original spawn — config, CONTEXT.md, STATE.md]
149
+ </project_context>
150
+
151
+ <prior_work_this_phase>
152
+ [Include all SUMMARY.md files from other completed plans in this phase]
153
+ </prior_work_this_phase>
154
+
155
+ Instructions:
156
+ 1. Verify completed task commits exist: git log --oneline -n {count}
157
+ 2. If commits are missing, STOP and return error
158
+ 3. Resume execution at Task {N}
159
+ 4. Create atomic commits for each remaining task
160
+ 5. Write SUMMARY.md when complete (include ALL tasks — completed and newly executed)
161
+ 6. Run self-check
162
+ ```
163
+
164
+ ---
165
+
166
+ ## Verification Before Resuming
167
+
168
+ The continuation agent MUST verify prior work before continuing:
169
+
170
+ ```bash
171
+ # Check that expected commits exist
172
+ git log --oneline -n {expected_commit_count}
173
+
174
+ # Check that expected files exist
175
+ ls -la {each file from completed tasks}
176
+ ```
177
+
178
+ If verification fails:
179
+ - STOP immediately
180
+ - Report which commits/files are missing
181
+ - DO NOT attempt to re-create them (that's the orchestrator's job)
182
+
183
+ ---
184
+
185
+ ## SUMMARY.md for Continued Plans
186
+
187
+ The final SUMMARY.md must include ALL tasks — both pre-checkpoint and post-checkpoint:
188
+
189
+ ```markdown
190
+ ## Task Results
191
+
192
+ ### Task 1: {name}
193
+ - **Commit**: `{hash}` - {message}
194
+ - **Status**: complete (pre-checkpoint)
195
+
196
+ ### Task 2: {name}
197
+ - **Commit**: `{hash}` - {message}
198
+ - **Status**: complete (pre-checkpoint)
199
+
200
+ ### Task 3: {name} (checkpoint: {type})
201
+ - **Checkpoint resolution**: {user response}
202
+ - **Commit**: `{hash}` - {message}
203
+ - **Status**: complete (post-checkpoint)
204
+ ```
205
+
206
+ ---
207
+
208
+ ## Multiple Checkpoints
209
+
210
+ If a plan has multiple checkpoint tasks:
211
+ - Each checkpoint requires a separate continuation agent spawn
212
+ - The completed_tasks table grows with each continuation
213
+ - Each continuation verifies ALL prior commits, not just the most recent