@sienklogic/plan-build-run 2.20.0 → 2.21.1

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 (99) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/CLAUDE.md +2 -2
  3. package/package.json +1 -1
  4. package/plugins/copilot-pbr/agents/codebase-mapper.agent.md +1 -1
  5. package/plugins/copilot-pbr/agents/debugger.agent.md +2 -0
  6. package/plugins/copilot-pbr/agents/executor.agent.md +3 -1
  7. package/plugins/copilot-pbr/agents/general.agent.md +2 -1
  8. package/plugins/copilot-pbr/agents/integration-checker.agent.md +2 -0
  9. package/plugins/copilot-pbr/agents/plan-checker.agent.md +1 -1
  10. package/plugins/copilot-pbr/agents/planner.agent.md +3 -1
  11. package/plugins/copilot-pbr/agents/researcher.agent.md +5 -3
  12. package/plugins/copilot-pbr/agents/synthesizer.agent.md +1 -1
  13. package/plugins/copilot-pbr/agents/verifier.agent.md +3 -3
  14. package/plugins/copilot-pbr/hooks/hooks.json +89 -0
  15. package/plugins/copilot-pbr/plugin.json +1 -1
  16. package/plugins/copilot-pbr/skills/audit/SKILL.md +1 -1
  17. package/plugins/copilot-pbr/skills/build/SKILL.md +4 -5
  18. package/plugins/copilot-pbr/skills/config/SKILL.md +1 -1
  19. package/plugins/copilot-pbr/skills/debug/SKILL.md +1 -1
  20. package/plugins/copilot-pbr/skills/discuss/SKILL.md +1 -1
  21. package/plugins/copilot-pbr/skills/help/SKILL.md +23 -0
  22. package/plugins/copilot-pbr/skills/import/SKILL.md +1 -1
  23. package/plugins/copilot-pbr/skills/milestone/SKILL.md +61 -0
  24. package/plugins/copilot-pbr/skills/plan/SKILL.md +1 -1
  25. package/plugins/copilot-pbr/skills/review/SKILL.md +4 -4
  26. package/plugins/copilot-pbr/skills/scan/SKILL.md +4 -4
  27. package/plugins/copilot-pbr/skills/shared/config-loading.md +1 -1
  28. package/plugins/copilot-pbr/skills/shared/context-budget.md +3 -3
  29. package/plugins/copilot-pbr/skills/shared/error-recovery-strategies.md +51 -0
  30. package/plugins/copilot-pbr/skills/shared/state-loading.md +1 -1
  31. package/plugins/copilot-pbr/skills/shared/state-update.md +12 -4
  32. package/plugins/copilot-pbr/skills/shared/universal-anti-patterns.md +1 -1
  33. package/plugins/copilot-pbr/templates/ROADMAP.md.tmpl +7 -0
  34. package/plugins/cursor-pbr/.cursor-plugin/plugin.json +1 -1
  35. package/plugins/cursor-pbr/agents/codebase-mapper.md +1 -1
  36. package/plugins/cursor-pbr/agents/debugger.md +2 -0
  37. package/plugins/cursor-pbr/agents/executor.md +3 -1
  38. package/plugins/cursor-pbr/agents/general.md +2 -1
  39. package/plugins/cursor-pbr/agents/integration-checker.md +2 -0
  40. package/plugins/cursor-pbr/agents/plan-checker.md +1 -1
  41. package/plugins/cursor-pbr/agents/planner.md +3 -1
  42. package/plugins/cursor-pbr/agents/researcher.md +5 -3
  43. package/plugins/cursor-pbr/agents/synthesizer.md +1 -1
  44. package/plugins/cursor-pbr/agents/verifier.md +3 -3
  45. package/plugins/cursor-pbr/skills/audit/SKILL.md +1 -1
  46. package/plugins/cursor-pbr/skills/build/SKILL.md +4 -5
  47. package/plugins/cursor-pbr/skills/config/SKILL.md +1 -1
  48. package/plugins/cursor-pbr/skills/debug/SKILL.md +1 -1
  49. package/plugins/cursor-pbr/skills/discuss/SKILL.md +1 -1
  50. package/plugins/cursor-pbr/skills/help/SKILL.md +23 -0
  51. package/plugins/cursor-pbr/skills/import/SKILL.md +1 -1
  52. package/plugins/cursor-pbr/skills/milestone/SKILL.md +61 -0
  53. package/plugins/cursor-pbr/skills/plan/SKILL.md +1 -1
  54. package/plugins/cursor-pbr/skills/review/SKILL.md +4 -4
  55. package/plugins/cursor-pbr/skills/scan/SKILL.md +4 -4
  56. package/plugins/cursor-pbr/skills/shared/config-loading.md +1 -1
  57. package/plugins/cursor-pbr/skills/shared/context-budget.md +3 -3
  58. package/plugins/cursor-pbr/skills/shared/error-recovery-strategies.md +51 -0
  59. package/plugins/cursor-pbr/skills/shared/state-loading.md +1 -1
  60. package/plugins/cursor-pbr/skills/shared/state-update.md +12 -4
  61. package/plugins/cursor-pbr/skills/shared/universal-anti-patterns.md +1 -1
  62. package/plugins/cursor-pbr/templates/ROADMAP.md.tmpl +7 -0
  63. package/plugins/pbr/.claude-plugin/plugin.json +1 -1
  64. package/plugins/pbr/agents/codebase-mapper.md +1 -1
  65. package/plugins/pbr/agents/debugger.md +2 -0
  66. package/plugins/pbr/agents/executor.md +3 -1
  67. package/plugins/pbr/agents/general.md +2 -1
  68. package/plugins/pbr/agents/integration-checker.md +2 -0
  69. package/plugins/pbr/agents/plan-checker.md +0 -1
  70. package/plugins/pbr/agents/planner.md +2 -1
  71. package/plugins/pbr/agents/researcher.md +2 -0
  72. package/plugins/pbr/agents/synthesizer.md +0 -1
  73. package/plugins/pbr/agents/verifier.md +1 -1
  74. package/plugins/pbr/commands/do.md +5 -0
  75. package/plugins/pbr/scripts/auto-continue.js +9 -3
  76. package/plugins/pbr/scripts/check-phase-boundary.js +2 -8
  77. package/plugins/pbr/scripts/check-plan-format.js +78 -2
  78. package/plugins/pbr/scripts/check-roadmap-sync.js +8 -2
  79. package/plugins/pbr/scripts/check-skill-workflow.js +3 -11
  80. package/plugins/pbr/scripts/check-state-sync.js +18 -8
  81. package/plugins/pbr/scripts/check-subagent-output.js +78 -6
  82. package/plugins/pbr/scripts/log-tool-failure.js +1 -4
  83. package/plugins/pbr/scripts/pre-write-dispatch.js +0 -1
  84. package/plugins/pbr/scripts/progress-tracker.js +19 -4
  85. package/plugins/pbr/scripts/status-line.js +44 -11
  86. package/plugins/pbr/scripts/track-context-budget.js +5 -0
  87. package/plugins/pbr/scripts/validate-commit.js +8 -7
  88. package/plugins/pbr/scripts/validate-skill-args.js +2 -1
  89. package/plugins/pbr/scripts/validate-task.js +0 -5
  90. package/plugins/pbr/skills/build/SKILL.md +4 -5
  91. package/plugins/pbr/skills/discuss/SKILL.md +1 -1
  92. package/plugins/pbr/skills/health/SKILL.md +0 -2
  93. package/plugins/pbr/skills/help/SKILL.md +22 -0
  94. package/plugins/pbr/skills/milestone/SKILL.md +61 -0
  95. package/plugins/pbr/skills/plan/SKILL.md +1 -1
  96. package/plugins/pbr/skills/review/SKILL.md +4 -4
  97. package/plugins/pbr/skills/shared/error-recovery-strategies.md +51 -0
  98. package/plugins/pbr/skills/shared/state-update.md +10 -2
  99. package/plugins/pbr/templates/ROADMAP.md.tmpl +2 -0
package/CHANGELOG.md CHANGED
@@ -5,6 +5,45 @@ All notable changes to Plan-Build-Run will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [2.21.1](https://github.com/SienkLogic/plan-build-run/compare/plan-build-run-v2.21.0...plan-build-run-v2.21.1) (2026-02-23)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * **23-01:** register /pbr:do command and fix critical audit findings ([274f324](https://github.com/SienkLogic/plan-build-run/commit/274f3247ea32557954c45eb321f5551bc3d8b3de))
14
+ * **23-02:** replace CLAUDE_PLUGIN_ROOT with PLUGIN_ROOT in cursor-pbr ([7fa53be](https://github.com/SienkLogic/plan-build-run/commit/7fa53beafaba95ab4c36499e7fb333ec83c58ecc))
15
+ * **23-03:** replace CLAUDE_PLUGIN_ROOT with PLUGIN_ROOT in copilot-pbr ([071f739](https://github.com/SienkLogic/plan-build-run/commit/071f739eab3854e03a68f6b93ad7de40854c8b72))
16
+ * **23-04:** replace subagents terminology with agents in cursor-pbr ([444765f](https://github.com/SienkLogic/plan-build-run/commit/444765f3277d077fba200c6d5f5fde594abdaf9a))
17
+ * **23-05:** fix subagents terminology in copilot-pbr and sync ROADMAP template ([e019e83](https://github.com/SienkLogic/plan-build-run/commit/e019e832b4c2808cec951eda44f0f57cb8755b8c))
18
+ * **23-07:** strip hookSpecificOutput wrapper from check-phase-boundary and pre-write-dispatch ([61e4e1e](https://github.com/SienkLogic/plan-build-run/commit/61e4e1ec7a7db3bc8ac4184e58c94ab5c324eb38))
19
+ * **23-09:** reorder copilot-pbr hooks.json postToolUseFailure before preToolUse to match pbr canonical ordering ([1180c9d](https://github.com/SienkLogic/plan-build-run/commit/1180c9d4ffb2c1bbbe4bc201a5dab126aee43ded))
20
+ * **23-09:** use decision:block in validate-skill-args.js, remove orphaned JSDoc in validate-task.js ([ec8c1d2](https://github.com/SienkLogic/plan-build-run/commit/ec8c1d24f9436c1dee703ec3509eb065fb2c4c92))
21
+ * **23-10:** correct dispatch table — move check-doc-sprawl and check-skill-workflow to pre-write-dispatch ([c6acc27](https://github.com/SienkLogic/plan-build-run/commit/c6acc2791ba652d5f81da231d301afcc90ab5c57))
22
+ * **23-10:** remove dead body from checkStatuslineRules in check-skill-workflow.js ([5a518ec](https://github.com/SienkLogic/plan-build-run/commit/5a518ec4772de1cf2991201e2657f5737efe2ebd))
23
+ * **23-10:** remove redundant allowed-tools Note from health SKILL.md Auto-Fix section ([7dcd549](https://github.com/SienkLogic/plan-build-run/commit/7dcd549bbd0e11b6eb4177e5ed1d4fd5eddc7d9b))
24
+ * **23-12:** fix remaining subagents terminology in scan SKILL.md derivatives ([67b15e8](https://github.com/SienkLogic/plan-build-run/commit/67b15e881d752ad1eb66bfb31496f634cb3c1768))
25
+ * **23-12:** fix test property paths and heredoc extraction to achieve 70% branch coverage ([4b857fe](https://github.com/SienkLogic/plan-build-run/commit/4b857fe73b8d82e6efe05114a7b09737c65dee12))
26
+ * **23-12:** remove excess tool grants from synthesizer and plan-checker agents ([04432b3](https://github.com/SienkLogic/plan-build-run/commit/04432b35dde761e95d14ca98353091bc936512a6))
27
+ * **quick-001:** fix agent prompt issues from audit (items 4-7) ([2772154](https://github.com/SienkLogic/plan-build-run/commit/27721547694686e2f425e95a7257b9cc48316c86))
28
+ * **quick-001:** fix agent prompt issues from audit (items 8-10) ([1c41a8f](https://github.com/SienkLogic/plan-build-run/commit/1c41a8f29a5069f4bb7cec612875b59dc6a22b22))
29
+ * **quick-001:** fix STATE.md body drift, stale status line, and ROADMAP sync gaps ([896494d](https://github.com/SienkLogic/plan-build-run/commit/896494d1215a7aadb7aa5b28c050db282cdcd784))
30
+ * **tools:** fix CI lint errors and macOS symlink test failure ([e5294a0](https://github.com/SienkLogic/plan-build-run/commit/e5294a0e0eefde674203ef0ed587d5def5c0f865))
31
+
32
+ ## [2.21.0](https://github.com/SienkLogic/plan-build-run/compare/plan-build-run-v2.20.0...plan-build-run-v2.21.0) (2026-02-23)
33
+
34
+
35
+ ### Features
36
+
37
+ * **tools:** add help docs, concurrent tests, and discuss requirements surfacing ([02e9cc9](https://github.com/SienkLogic/plan-build-run/commit/02e9cc997d5b7d1aed3fc43cd8f8160c6e08d78b))
38
+ * **tools:** add milestone preview subcommand across all plugins ([fa6dca7](https://github.com/SienkLogic/plan-build-run/commit/fa6dca75d78adc952a5ffffd92baf17d8dd23e8e))
39
+ * **tools:** resolve exploration backlog — fix script bugs, add copilot hooks, improve recovery ([8a956dd](https://github.com/SienkLogic/plan-build-run/commit/8a956dd33a7182c402307d5569e0d8d37dbdaf1c))
40
+
41
+
42
+ ### Bug Fixes
43
+
44
+ * **tools:** handle concurrent write corruption in flaky test across platforms ([e4e9b4d](https://github.com/SienkLogic/plan-build-run/commit/e4e9b4d524e5c08665b72a3c99555452f8e09089))
45
+ * **tools:** handle empty string race in concurrent .active-skill test on Windows ([9cb294a](https://github.com/SienkLogic/plan-build-run/commit/9cb294a1c7db67c1fe80d9672d4580c8951011c4))
46
+
8
47
  ## [2.20.0](https://github.com/SienkLogic/plan-build-run/compare/plan-build-run-v2.19.0...plan-build-run-v2.20.0) (2026-02-23)
9
48
 
10
49
 
package/CLAUDE.md CHANGED
@@ -59,13 +59,13 @@ Markdown files with YAML frontmatter defining specialized subagent prompts. Agen
59
59
  |------------|-------------|-------------|
60
60
  | SessionStart | progress-tracker.js | — (injects project state) |
61
61
  | PostToolUse (Write\|Edit) | post-write-dispatch.js | check-plan-format.js, check-roadmap-sync.js, check-state-sync.js |
62
- | PostToolUse (Write\|Edit) | post-write-quality.js | check-doc-sprawl.js, check-skill-workflow.js |
62
+ | PostToolUse (Write\|Edit) | post-write-quality.js | — (autoFormat, typeCheck, detectConsoleLogs) |
63
63
  | PostToolUse (Task) | check-subagent-output.js | — (validates agent output) |
64
64
  | PostToolUse (Write\|Edit) | suggest-compact.js | — (context budget warnings) |
65
65
  | PostToolUse (Read) | track-context-budget.js | — (tracks reads for budget) |
66
66
  | PostToolUseFailure | log-tool-failure.js | — (logs failures) |
67
67
  | PreToolUse (Bash) | pre-bash-dispatch.js | validate-commit.js, check-dangerous-commands.js, check-phase-boundary.js |
68
- | PreToolUse (Write\|Edit) | pre-write-dispatch.js | (write guards) |
68
+ | PreToolUse (Write\|Edit) | pre-write-dispatch.js | check-skill-workflow.js, check-summary-gate.js, check-phase-boundary.js, check-doc-sprawl.js |
69
69
  | PreCompact | context-budget-check.js | — (preserves STATE.md) |
70
70
  | Stop | auto-continue.js | — (chains next command) |
71
71
  | SubagentStart/Stop | log-subagent.js | — (tracks lifecycle) |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sienklogic/plan-build-run",
3
- "version": "2.20.0",
3
+ "version": "2.21.1",
4
4
  "description": "Plan it, Build it, Run it — structured development workflow for Claude Code",
5
5
  "keywords": [
6
6
  "claude-code",
@@ -22,7 +22,7 @@ You are **codebase-mapper**, the codebase analysis agent for the Plan-Build-Run
22
22
 
23
23
  ### Forbidden Files
24
24
 
25
- When exploring, NEVER commit or recommend committing:
25
+ When exploring, NEVER write to or include in your output:
26
26
  - `.env` files (except `.env.example` or `.env.template`)
27
27
  - `*.key`, `*.pem`, `*.pfx`, `*.p12` — private keys and certificates
28
28
  - Files containing `credential` or `secret` in their name
@@ -8,6 +8,8 @@ target: "github-copilot"
8
8
 
9
9
  # Plan-Build-Run Debugger
10
10
 
11
+ > **Memory note:** Project memory is enabled to provide debugging continuity across investigation sessions.
12
+
11
13
  You are **debugger**, the systematic debugging agent. Investigate bugs using the scientific method: hypothesize, test, collect evidence, narrow the search space.
12
14
 
13
15
  ## Output Budget
@@ -8,6 +8,8 @@ target: "github-copilot"
8
8
 
9
9
  # Plan-Build-Run Executor
10
10
 
11
+ > **Memory note:** Project memory is enabled to provide build history context for deviation awareness.
12
+
11
13
  You are **executor**, the code execution agent for Plan-Build-Run. You receive verified plans and execute them task-by-task, producing working code with atomic commits, deviation handling, and self-verification.
12
14
 
13
15
  **You are a builder, not a designer.** Plans tell you WHAT to build. You figure out HOW at the code level. You do NOT redesign, skip, reorder, or add scope.
@@ -175,7 +177,7 @@ must_haves:
175
177
  ### Completeness Checklist
176
178
 
177
179
  Before deleting `.PROGRESS-{plan_id}`, verify SUMMARY.md has:
178
- - [ ] YAML frontmatter with `plan_id`, `status`, `tasks_completed`, `tasks_total`
180
+ - [ ] YAML frontmatter with `plan`, `status`, `tasks_completed`, `tasks_total`
179
181
  - [ ] Deviations section (use "None" if empty)
180
182
  - [ ] Files Changed listing at least one file
181
183
  - [ ] At least one commit hash reference
@@ -12,7 +12,8 @@ You are **general**, a lightweight utility agent for the Plan-Build-Run developm
12
12
 
13
13
  ## When You're Used
14
14
 
15
- - `/pbr:quick` ad-hoc task delegation
15
+ This agent is available for ad-hoc `Task()` calls from skills or custom orchestration. It is not currently spawned by any built-in PBR skill automatically — it must be invoked explicitly.
16
+
16
17
  - Simple file generation or formatting tasks
17
18
  - Tasks that need Plan-Build-Run context but not specialized methodology
18
19
  - Fallback when a specialized agent would be overkill
@@ -36,6 +36,8 @@ You MUST perform all applicable categories (skip only if zero items exist for th
36
36
  4. **E2E Flow Completeness** — Critical user workflows must trace from UI through API to data layer and back without breaks.
37
37
  5. **Cross-Phase Dependency Satisfaction** — Phase N's declared dependencies on Phase M must be actually satisfied in code.
38
38
 
39
+ > **First-phase edge case**: If no completed phases exist yet, focus on verifying the current phase's internal consistency — exports match imports within the phase, API contracts are self-consistent. Cross-phase checks are not applicable and should be skipped.
40
+
39
41
  ### Agent Contract Compliance
40
42
 
41
43
  Read `references/agent-contracts.md` to validate agent-to-agent handoffs. Verify that each agent's actual output matches its declared contract schema — especially `provides`/`consumes` fields in SUMMARY.md and status enums in VERIFICATION.md.
@@ -140,7 +140,7 @@ Code-producing tasks should include test expectations. Check that tasks creating
140
140
 
141
141
  ## Verification Process
142
142
 
143
- 1. **Load Plans** — Read all plan files. Parse YAML frontmatter and XML tasks. Use `node ${CLAUDE_PLUGIN_ROOT}/scripts/pbr-tools.js frontmatter {path}` and `plan-index {phase}` for frontmatter; read body for XML.
143
+ 1. **Load Plans** — Read all plan files. Parse YAML frontmatter and XML tasks. Use `node ${PLUGIN_ROOT}/scripts/pbr-tools.js frontmatter {path}` and `plan-index {phase}` for frontmatter; read body for XML.
144
144
  2. **Load Context** — If CONTEXT.md provided, extract locked decisions, deferred ideas, user constraints.
145
145
  3. **Load Phase Goal** — From input instruction, phase directory, or plan frontmatter must_haves.
146
146
  4. **Run All 10 Dimensions** — Evaluate each plan against all dimensions. Collect issues.
@@ -8,6 +8,8 @@ target: "github-copilot"
8
8
 
9
9
  # Plan-Build-Run Planner
10
10
 
11
+ > **Memory note:** Project memory is enabled to provide planning continuity and awareness of prior phase decisions.
12
+
11
13
  You are **planner**, the planning agent for the Plan-Build-Run development system. You transform research, phase goals, and user requirements into executable plans that the executor agent can follow mechanically.
12
14
 
13
15
  ## Core Principle: Context Fidelity
@@ -30,7 +32,7 @@ Invoked with a VERIFICATION.md containing gaps. Read the report, identify gaps,
30
32
  Invoked with plan-checker feedback containing issues. Revise flagged plan(s) to address all blockers and warnings. See Revision Mode below.
31
33
 
32
34
  ### Mode 4: Roadmap Mode
33
- Invoked with a request to create/update the project roadmap. Produce `.planning/ROADMAP.md` using the template at `${CLAUDE_PLUGIN_ROOT}/templates/ROADMAP.md.tmpl`.
35
+ Invoked with a request to create/update the project roadmap. Produce `.planning/ROADMAP.md` using the template at `${PLUGIN_ROOT}/templates/ROADMAP.md.tmpl`.
34
36
 
35
37
  #### Fallback Format: ROADMAP.md (if template unreadable)
36
38
 
@@ -52,6 +52,8 @@ All claims must be attributed to a source level. Higher levels override lower le
52
52
 
53
53
  **Attribution rules**: Every factual claim needs a source tag (`[S1]`, `[S2]`, etc.). Version-sensitive information (API signatures, config syntax) MUST come from S1-S3. When citing S2, note the version: `[S2-v14.2]`. Contradictions resolve in favor of higher source level.
54
54
 
55
+ **Offline Fallback**: If web tools are unavailable (air-gapped environment, MCP not configured), rely on local sources: codebase analysis via Glob/Grep, existing documentation, and README files. Assign these S3-S4 confidence levels. Do not attempt WebFetch or WebSearch — note in the output header that external sources were unavailable.
56
+
55
57
  ---
56
58
 
57
59
  ## Confidence Levels
@@ -101,15 +103,15 @@ Before writing output, verify: every claim has source attribution, every recomme
101
103
  ## Output Formats
102
104
 
103
105
  ### Project Research
104
- Read `${CLAUDE_PLUGIN_ROOT}/templates/research-outputs/project-research.md.tmpl` for format.
106
+ Read `${PLUGIN_ROOT}/templates/research-outputs/project-research.md.tmpl` for format.
105
107
  Key sections: User Constraints, Executive Summary, Standard Stack, Architecture Patterns, Common Pitfalls, Code Examples, Integration Points, Coverage Assessment, Open Questions, Sources.
106
108
 
107
109
  ### Phase Research
108
- Read `${CLAUDE_PLUGIN_ROOT}/templates/research-outputs/phase-research.md.tmpl` for format.
110
+ Read `${PLUGIN_ROOT}/templates/research-outputs/phase-research.md.tmpl` for format.
109
111
  Key sections: User Constraints, Phase Goal, Implementation Approach, Dependencies, Pitfalls, Testing Strategy, Coverage Assessment, Sources.
110
112
 
111
113
  ### Synthesis
112
- Read `${CLAUDE_PLUGIN_ROOT}/templates/research-outputs/synthesis.md.tmpl` for format.
114
+ Read `${PLUGIN_ROOT}/templates/research-outputs/synthesis.md.tmpl` for format.
113
115
  Key sections: Executive Summary, Key Findings, Contradictions Resolved, Recommended Approach, Risks and Mitigations, Sources.
114
116
 
115
117
  ### Fallback Format (if templates unreadable)
@@ -54,7 +54,7 @@ Output to `.planning/research/SUMMARY.md` (or specified path).
54
54
 
55
55
  ## Output Format
56
56
 
57
- Read `${CLAUDE_PLUGIN_ROOT}/templates/RESEARCH-SUMMARY.md.tmpl` for the complete output format.
57
+ Read `${PLUGIN_ROOT}/templates/RESEARCH-SUMMARY.md.tmpl` for the complete output format.
58
58
 
59
59
  Key sections: Executive Summary (3-5 sentences), Recommended Stack (table), Architecture Recommendations, Key Patterns, Pitfalls & Warnings, Contradictions Resolved, Open Questions, Sources.
60
60
 
@@ -48,8 +48,8 @@ Look for an existing `VERIFICATION.md` in the phase directory.
48
48
 
49
49
  Use `pbr-tools.js` CLI to efficiently load phase data (saves ~500-800 tokens vs. manual parsing):
50
50
  ```bash
51
- node ${CLAUDE_PLUGIN_ROOT}/scripts/pbr-tools.js must-haves {phase_number}
52
- node ${CLAUDE_PLUGIN_ROOT}/scripts/pbr-tools.js phase-info {phase_number}
51
+ node ${PLUGIN_ROOT}/scripts/pbr-tools.js must-haves {phase_number}
52
+ node ${PLUGIN_ROOT}/scripts/pbr-tools.js phase-info {phase_number}
53
53
  ```
54
54
 
55
55
  Stop and report error if pbr-tools CLI is unavailable. Also read CONTEXT.md for locked decisions and deferred ideas, and ROADMAP.md for the phase goal and dependencies.
@@ -216,7 +216,7 @@ Read `references/stub-patterns.md` for stub detection patterns by technology. Re
216
216
 
217
217
  ### Verifier-Specific Anti-Patterns
218
218
  1. DO NOT trust SUMMARY.md claims without verifying the actual codebase
219
- 2. DO NOT attempt to fix issues — you have no Write/Edit tools and that is intentional
219
+ 2. DO NOT attempt to fix issues — you have no Edit tool and that is intentional; Write access is only for VERIFICATION.md output
220
220
  3. DO NOT mark stubs as SUBSTANTIVE — if it has a TODO, it's a stub
221
221
  4. DO NOT mark orphaned code as WIRED — if nothing imports it, it's orphaned
222
222
  5. DO NOT skip Level 2 or Level 3 checks — existence alone is insufficient
@@ -77,6 +77,19 @@
77
77
  ]
78
78
  }
79
79
  ],
80
+ "postToolUseFailure": [
81
+ {
82
+ "hooks": [
83
+ {
84
+ "type": "command",
85
+ "bash": "node \"$(cd \"$(dirname \"$0\")\" && pwd)/../../pbr/scripts/run-hook.js\" log-tool-failure.js",
86
+ "powershell": "node (Join-Path (Split-Path -Parent $PSScriptRoot) 'pbr\\scripts\\run-hook.js') log-tool-failure.js",
87
+ "cwd": ".",
88
+ "timeoutSec": 15
89
+ }
90
+ ]
91
+ }
92
+ ],
80
93
  "preToolUse": [
81
94
  {
82
95
  "matcher": "Bash",
@@ -139,6 +152,82 @@
139
152
  ]
140
153
  }
141
154
  ],
155
+ "preCompact": [
156
+ {
157
+ "hooks": [
158
+ {
159
+ "type": "command",
160
+ "bash": "node \"$(cd \"$(dirname \"$0\")\" && pwd)/../../pbr/scripts/run-hook.js\" context-budget-check.js",
161
+ "powershell": "node (Join-Path (Split-Path -Parent $PSScriptRoot) 'pbr\\scripts\\run-hook.js') context-budget-check.js",
162
+ "cwd": ".",
163
+ "timeoutSec": 15
164
+ }
165
+ ]
166
+ }
167
+ ],
168
+ "stop": [
169
+ {
170
+ "hooks": [
171
+ {
172
+ "type": "command",
173
+ "bash": "node \"$(cd \"$(dirname \"$0\")\" && pwd)/../../pbr/scripts/run-hook.js\" auto-continue.js",
174
+ "powershell": "node (Join-Path (Split-Path -Parent $PSScriptRoot) 'pbr\\scripts\\run-hook.js') auto-continue.js",
175
+ "cwd": ".",
176
+ "timeoutSec": 15
177
+ }
178
+ ]
179
+ }
180
+ ],
181
+ "subagentStart": [
182
+ {
183
+ "hooks": [
184
+ {
185
+ "type": "command",
186
+ "bash": "node \"$(cd \"$(dirname \"$0\")\" && pwd)/../../pbr/scripts/run-hook.js\" log-subagent.js start",
187
+ "powershell": "node (Join-Path (Split-Path -Parent $PSScriptRoot) 'pbr\\scripts\\run-hook.js') log-subagent.js start",
188
+ "cwd": ".",
189
+ "timeoutSec": 15
190
+ }
191
+ ]
192
+ }
193
+ ],
194
+ "subagentStop": [
195
+ {
196
+ "hooks": [
197
+ {
198
+ "type": "command",
199
+ "bash": "node \"$(cd \"$(dirname \"$0\")\" && pwd)/../../pbr/scripts/run-hook.js\" log-subagent.js stop",
200
+ "powershell": "node (Join-Path (Split-Path -Parent $PSScriptRoot) 'pbr\\scripts\\run-hook.js') log-subagent.js stop",
201
+ "cwd": ".",
202
+ "timeoutSec": 15
203
+ }
204
+ ]
205
+ },
206
+ {
207
+ "hooks": [
208
+ {
209
+ "type": "command",
210
+ "bash": "node \"$(cd \"$(dirname \"$0\")\" && pwd)/../../pbr/scripts/run-hook.js\" event-handler.js",
211
+ "powershell": "node (Join-Path (Split-Path -Parent $PSScriptRoot) 'pbr\\scripts\\run-hook.js') event-handler.js",
212
+ "cwd": ".",
213
+ "timeoutSec": 15
214
+ }
215
+ ]
216
+ }
217
+ ],
218
+ "taskCompleted": [
219
+ {
220
+ "hooks": [
221
+ {
222
+ "type": "command",
223
+ "bash": "node \"$(cd \"$(dirname \"$0\")\" && pwd)/../../pbr/scripts/run-hook.js\" task-completed.js",
224
+ "powershell": "node (Join-Path (Split-Path -Parent $PSScriptRoot) 'pbr\\scripts\\run-hook.js') task-completed.js",
225
+ "cwd": ".",
226
+ "timeoutSec": 15
227
+ }
228
+ ]
229
+ }
230
+ ],
142
231
  "configChange": [
143
232
  {
144
233
  "hooks": [
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "pbr",
3
3
  "displayName": "Plan-Build-Run",
4
- "version": "2.20.0",
4
+ "version": "2.21.1",
5
5
  "description": "Plan-Build-Run — Structured development workflow for GitHub Copilot CLI. Solves context rot through disciplined agent delegation, structured planning, atomic execution, and goal-backward verification.",
6
6
  "author": {
7
7
  "name": "SienkLogic",
@@ -85,7 +85,7 @@ find ~/.claude/projects/{encoded-path}/ -name "*.jsonl" -maxdepth 1 \
85
85
 
86
86
  For each session file found, also check for subagent logs:
87
87
  ```bash
88
- ls ~/.claude/projects/{encoded-path}/{session-id}/subagents/*.jsonl 2>/dev/null
88
+ ls ~/.claude/projects/{encoded-path}/{session-id}/agents/*.jsonl 2>/dev/null
89
89
  ```
90
90
 
91
91
  Display discovery results:
@@ -718,11 +718,10 @@ These return `{ success, old_status, new_status }` or `{ success, old_plans, new
718
718
 
719
719
  **CRITICAL: Update STATE.md NOW with phase completion status. Do NOT skip this step.**
720
720
 
721
- **8b. Update STATE.md:**
722
- - Phase status: {final_status from Step 8-pre}
723
- - Plan completion count
724
- - Last activity timestamp
725
- - Progress bar
721
+ **8b. Update STATE.md (CRITICAL — update BOTH frontmatter AND body):**
722
+ - Frontmatter: `status`, `plans_complete`, `last_activity`, `progress_percent`, `last_command`
723
+ - Body `## Current Position`: `Phase:` line, `Plan:` line, `Status:` line, `Last activity:` line, `Progress:` bar
724
+ - These MUST stay in sync — the status line reads frontmatter, humans read the body
726
725
 
727
726
  **8c. Commit planning docs (if configured):**
728
727
  Reference: `skills/shared/commit-planning-docs.md` for the standard commit pattern.
@@ -133,7 +133,7 @@ After setting depth, the profile is automatically resolved. Show the user the ef
133
133
  "Depth set to {value}. Effective profile:"
134
134
  Then display the profile summary (research, plan-check, verify, scan mappers, debug rounds, inline verify).
135
135
 
136
- To resolve the profile, run: `node ${CLAUDE_PLUGIN_ROOT}/scripts/pbr-tools.js config resolve-depth`
136
+ To resolve the profile, run: `node ${PLUGIN_ROOT}/scripts/pbr-tools.js config resolve-depth`
137
137
 
138
138
  If the user wants to override a specific profile setting, they can set `depth_profiles.{depth}.{key}` directly.
139
139
  For example: to use quick mode but keep plan-checking, the user would set depth to quick and then override:
@@ -54,7 +54,7 @@ This handles the case where neither `.planning/` nor `.planning/debug/` exist ye
54
54
 
55
55
  ### Step 2: Check for Active Debug Sessions
56
56
 
57
- **Load depth profile:** Run `node ${CLAUDE_PLUGIN_ROOT}/scripts/pbr-tools.js config resolve-depth` to get `debug.max_hypothesis_rounds`. If the command fails (no config.json or CLI error), default to 5 rounds. Initialize a round counter at 0. This counter increments each time a continuation debugger is spawned.
57
+ **Load depth profile:** Run `node ${PLUGIN_ROOT}/scripts/pbr-tools.js config resolve-depth` to get `debug.max_hypothesis_rounds`. If the command fails (no config.json or CLI error), default to 5 rounds. Initialize a round counter at 0. This counter increments each time a continuation debugger is spawned.
58
58
 
59
59
  Scan `.planning/debug/` for existing debug files:
60
60
 
@@ -78,7 +78,7 @@ Read the following files to understand what this phase needs to accomplish:
78
78
  - What patterns have been established (`patterns` field)
79
79
  - What decisions were already made (`key_decisions` field)
80
80
 
81
- 3. **REQUIREMENTS.md** (if exists) — Read project requirements relevant to this phase
81
+ 3. **REQUIREMENTS.md** (if exists) — Read project requirements relevant to this phase. **CRITICAL**: After reading, display to the user which specific requirements map to this phase. Flag any requirements that could constrain decisions. If the user's discussion decisions later contradict a stated requirement, surface the contradiction immediately — don't wait until planning.
82
82
 
83
83
  4. **CONTEXT.md** (if exists in the phase directory) — Check if a prior discussion already happened
84
84
  - If CONTEXT.md exists, inform the user and use the **context-handling** pattern from `skills/shared/gate-prompts.md`:
@@ -91,6 +91,7 @@ Display the following reference to the user:
91
91
  |---------|-------------|
92
92
  | `/pbr:milestone new` | Start a new milestone cycle. |
93
93
  | `/pbr:milestone complete` | Archive completed milestone. |
94
+ | `/pbr:milestone preview` | Dry-run of complete — show what would happen. |
94
95
  | `/pbr:milestone audit` | Verify milestone completion. |
95
96
  | `/pbr:milestone gaps` | Create phases to close audit gaps. |
96
97
  | `/pbr:todo add\|list\|done` | Persistent file-based todos. |
@@ -135,6 +136,7 @@ Display the following reference to the user:
135
136
  - **Depth**: `quick` (skip research, ~50% cheaper) | `standard` | `comprehensive` (~2x cost)
136
137
  - **State files**: `.planning/STATE.md` (position), `.planning/ROADMAP.md` (phases), `.planning/config.json` (settings)
137
138
  - **Configure**: `/pbr:config` to change depth, models, gates, parallelization
139
+ - **List agents**: Run `claude agents` in your terminal to see all registered PBR agents and verify loading
138
140
  - **Tip**: Use `/pbr:quick` for creative/visual work where structured planning adds overhead without benefit.
139
141
  - **PR hygiene**: When creating PRs from a Plan-Build-Run project, `.planning/` commits can be filtered using phase branching (`git.branching: phase`) which squash-merges code-only changes to main.
140
142
  - **Seeds**: `/pbr:explore` can create seed files (`.planning/seeds/`) with trigger conditions. Seeds auto-inject into planning when their trigger phase is reached.
@@ -149,6 +151,27 @@ Plan-Build-Run includes three behavioral contexts in `contexts/` that adjust how
149
151
 
150
152
  Skills automatically activate the appropriate context: `/pbr:build` uses dev context, `/pbr:discuss` uses research context, `/pbr:review` uses review context.
151
153
 
154
+ ## When to Use Quick vs Plan+Build
155
+
156
+ | Use `/pbr:quick` when... | Use `/pbr:plan` + `/pbr:build` when... |
157
+ |--------------------------|----------------------------------------|
158
+ | Change touches ≤3 files | Change touches 4+ files |
159
+ | ≤100 lines of code | 100+ lines of code |
160
+ | Single subsystem | Multiple subsystems or cross-cutting |
161
+ | No architectural decisions | Requires design choices |
162
+ | Bug fix, small feature, docs | New feature, refactor, migration |
163
+
164
+ ## Setup vs Begin
165
+
166
+ - **`/pbr:begin`** — Use this to start a new project. It handles everything: questioning, research, requirements, roadmap, AND config initialization. This is the standard entry point.
167
+ - **`/pbr:setup`** — Use this only to reconfigure an existing project's settings (model profiles, gates, depth, parallelization) without re-running the full begin flow.
168
+
169
+ If you're unsure, start with `/pbr:begin`. It will detect existing config and offer to reuse or overwrite.
170
+
171
+ ## Team Discussions
172
+
173
+ The `features.team_discussions` config flag (and `/pbr:build --team`) enables **Agent Teams** for complex builds. When enabled, executor agents can coordinate with each other during parallel wave execution — sharing context about what they've built, resolving interface conflicts, and avoiding duplicate work. Best for phases where multiple plans have shared dependencies. Configure via `/pbr:config`.
174
+
152
175
  ## Getting Started
153
176
 
154
177
  ```
@@ -359,7 +359,7 @@ If the import process surfaced new locked decisions (from blocker resolutions in
359
359
  **8e. Emit workflow event (conditional):**
360
360
  If the event-logger script is available:
361
361
  ```bash
362
- node ${CLAUDE_PLUGIN_ROOT}/scripts/pbr-tools.js event workflow plan-import --phase {N} --plans {count} --source {filepath_or_user_input}
362
+ node ${PLUGIN_ROOT}/scripts/pbr-tools.js event workflow plan-import --phase {N} --plans {count} --source {filepath_or_user_input}
363
363
  ```
364
364
  Falls back silently if the command is not available.
365
365
 
@@ -52,6 +52,7 @@ Examples:
52
52
  "new User Auth" → subcommand=new, arg="User Auth"
53
53
  "complete v1.0" → subcommand=complete, arg="v1.0"
54
54
  "complete 1.0" → subcommand=complete, arg="v1.0" (auto-prefix v)
55
+ "preview v1.0" → subcommand=preview, arg="v1.0"
55
56
  "audit v1.0" → subcommand=audit, arg="v1.0"
56
57
  "audit" → subcommand=audit, arg=current milestone
57
58
  "gaps" → subcommand=gaps, arg=most recent audit
@@ -64,6 +65,7 @@ Usage: /pbr:milestone <subcommand> [version]
64
65
  Subcommands:
65
66
  new [name] — Start a new milestone cycle
66
67
  complete [ver] — Archive completed milestone
68
+ preview [ver] — Dry-run of complete (show what would happen)
67
69
  audit [ver] — Verify milestone completion
68
70
  gaps — Create phases to close audit gaps
69
71
  ```
@@ -189,6 +191,65 @@ Start a new milestone cycle with new phases.
189
191
 
190
192
  ---
191
193
 
194
+ ## Subcommand: `preview`
195
+
196
+ Dry-run of milestone completion — shows what would happen without making any changes.
197
+
198
+ ### Flow
199
+
200
+ 1. **Determine version:**
201
+ - Same logic as `complete`: use `$ARGUMENTS` or ask via AskUserQuestion
202
+
203
+ 2. **Identify milestone phases:**
204
+ - Read ROADMAP.md to find phases belonging to this milestone
205
+ - List each phase with its current status (from STATE.md or VERIFICATION.md)
206
+
207
+ 3. **Verification status check:**
208
+ - For each milestone phase, check if VERIFICATION.md exists and its `result` frontmatter
209
+ - Flag phases that are unverified or have stale verification (SUMMARY.md newer than VERIFICATION.md)
210
+
211
+ 4. **Preview archive structure:**
212
+ - Show what the archive directory would look like:
213
+ ```
214
+ .planning/milestones/v{version}/
215
+ ├── ROADMAP.md (snapshot)
216
+ ├── STATS.md (would be generated)
217
+ ├── REQUIREMENTS.md (snapshot)
218
+ └── phases/
219
+ ├── {NN}-{slug}/ (moved from .planning/phases/)
220
+ │ ├── PLAN-01.md
221
+ │ ├── SUMMARY.md
222
+ │ └── VERIFICATION.md
223
+ └── ...
224
+ ```
225
+
226
+ 5. **Show what would change:**
227
+ - Which phase directories would be moved
228
+ - What ROADMAP.md section would be collapsed
229
+ - What STATE.md updates would occur
230
+ - What git tag would be created
231
+
232
+ 6. **Display summary:**
233
+ ```
234
+ ╔══════════════════════════════════════════════════════════════╗
235
+ ║ MILESTONE PREVIEW — v{version} ║
236
+ ╚══════════════════════════════════════════════════════════════╝
237
+
238
+ Phases to archive: {count}
239
+ ✓ Verified: {verified_count}
240
+ ⚠ Unverified: {unverified_count}
241
+ ⚠ Stale verification: {stale_count}
242
+
243
+ Archive location: .planning/milestones/v{version}/
244
+ Git tag: v{version}
245
+
246
+ Ready to complete? Run: /pbr:milestone complete v{version}
247
+ ```
248
+
249
+ **CRITICAL**: This subcommand is READ-ONLY. Do not create directories, move files, modify STATE.md, modify ROADMAP.md, or create git tags. Only read and display.
250
+
251
+ ---
252
+
192
253
  ## Subcommand: `complete`
193
254
 
194
255
  Archive a completed milestone and prepare for the next one.
@@ -462,7 +462,7 @@ Use the approve-revise-abort pattern from `skills/shared/gate-prompts.md`:
462
462
  4. Update the `Plans Complete` column to `0/{N}` where N = number of plan files just created
463
463
  5. Update the `Status` column to `planned`
464
464
  6. Save the file — do NOT skip this step
465
- - Update STATE.md: set current phase plan status to "planned"
465
+ - Update STATE.md **(CRITICAL update BOTH frontmatter AND body)**: set `status: "planned"`, `plans_total`, `last_command` in frontmatter AND update `Status:`, `Plan:` lines in body `## Current Position`
466
466
  - **If `features.auto_advance` is `true` AND `mode` is `autonomous`:** Chain directly to build. This continues the build->review->plan->build cycle automatically.
467
467
  - **Otherwise:** Suggest next action: `/pbr:build {N}`
468
468
 
@@ -311,10 +311,10 @@ If all automated checks and UAT items passed:
311
311
  4. Update the `Status` column to `verified`
312
312
  5. Update the `Completed` column to the current date (YYYY-MM-DD)
313
313
  6. Save the file — do NOT skip this step
314
- 2. Update `.planning/STATE.md`:
315
- - Phase status: "verified"
316
- - Progress updated
317
- - Last activity timestamp
314
+ 2. Update `.planning/STATE.md` **(CRITICAL — update BOTH frontmatter AND body):**
315
+ - Frontmatter: `status: "verified"`, `progress_percent`, `last_activity`, `last_command`
316
+ - Body `## Current Position`: `Status:` line, `Last activity:` line, `Progress:` bar
317
+ - These MUST stay in sync — see `skills/shared/state-update.md`
318
318
  - **STATE.md size limit:** Follow size limit enforcement rules in `skills/shared/state-update.md` (150 lines max).
319
319
  3. Update VERIFICATION.md with UAT results (append UAT section)
320
320
  3. Present completion:
@@ -28,9 +28,9 @@ This skill **spawns 4 parallel Task(subagent_type: "pbr:codebase-mapper")** agen
28
28
  Reference: `skills/shared/context-budget.md` for the universal orchestrator rules.
29
29
 
30
30
  Additionally for this skill:
31
- - **Never** analyze the codebase yourself — delegate ALL analysis to the 4 parallel codebase-mapper subagents
31
+ - **Never** analyze the codebase yourself — delegate ALL analysis to the 4 parallel codebase-mapper agents
32
32
  - **Minimize** reading mapper outputs — read only frontmatter or first 20 lines of each output document
33
- - **Delegate** all file reading, pattern analysis, and architecture mapping to the codebase-mapper subagents
33
+ - **Delegate** all file reading, pattern analysis, and architecture mapping to the codebase-mapper agents
34
34
 
35
35
  ---
36
36
 
@@ -50,7 +50,7 @@ Check if `.planning/codebase/` directory exists:
50
50
 
51
51
  First, resolve the depth profile so you know which areas are available:
52
52
  ```bash
53
- node ${CLAUDE_PLUGIN_ROOT}/scripts/pbr-tools.js config resolve-depth
53
+ node ${PLUGIN_ROOT}/scripts/pbr-tools.js config resolve-depth
54
54
  ```
55
55
  Read `profile["scan.mapper_areas"]` to determine available areas (quick: tech, arch; standard/comprehensive: tech, arch, quality, concerns).
56
56
 
@@ -93,7 +93,7 @@ Refer to the "Reconnaissance Detection Reference" section of `skills/scan/templa
93
93
 
94
94
  **Resolve mapper configuration:** Before spawning, resolve the depth profile:
95
95
  ```bash
96
- node ${CLAUDE_PLUGIN_ROOT}/scripts/pbr-tools.js config resolve-depth
96
+ node ${PLUGIN_ROOT}/scripts/pbr-tools.js config resolve-depth
97
97
  ```
98
98
 
99
99
  Read `profile["scan.mapper_count"]` and `profile["scan.mapper_areas"]` to determine how many mappers to spawn and which focus areas to cover.
@@ -11,7 +11,7 @@ Standard pattern for loading `.planning/config.json` fields at the start of a sk
11
11
 
12
12
  Instead of reading and parsing STATE.md, ROADMAP.md, and config.json manually, run:
13
13
  ```bash
14
- node ${CLAUDE_PLUGIN_ROOT}/scripts/pbr-tools.js state load
14
+ node ${PLUGIN_ROOT}/scripts/pbr-tools.js state load
15
15
  ```
16
16
  This returns a JSON object with `config`, `state`, `roadmap`, `current_phase`, and `progress`. Falls back gracefully if the script is missing -- parse files manually in that case.
17
17
 
@@ -1,7 +1,7 @@
1
1
  <!-- canonical: ../../../pbr/skills/shared/context-budget.md -->
2
2
  # Context Budget Rules
3
3
 
4
- Standard rules for keeping orchestrator context lean. Reference this fragment in skills that spawn Task() subagents.
4
+ Standard rules for keeping orchestrator context lean. Reference this fragment in skills that spawn Task() agents.
5
5
 
6
6
  See also: `skills/shared/universal-anti-patterns.md` for the complete set of universal rules (context budget + file reading + behavioral rules).
7
7
 
@@ -14,7 +14,7 @@ Every skill that spawns agents or reads significant content must follow these ru
14
14
  1. **Never** read agent definition files (`agents/*.md`) — `subagent_type` auto-loads them
15
15
  2. **Never** inline large files into Task() prompts — tell agents to read files from disk instead
16
16
  3. **Minimize** reading subagent output into main context — read only frontmatter, not full content
17
- 4. **Delegate** heavy work to subagents — the orchestrator routes, it doesn't execute
17
+ 4. **Delegate** heavy work to agents — the orchestrator routes, it doesn't execute
18
18
  5. **Before spawning agents**: If you've already consumed significant context (large file reads, multiple subagent results), warn the user: "Context budget is getting heavy. Consider running `/pbr:pause` to checkpoint progress." Suggest pause proactively rather than waiting for compaction.
19
19
 
20
20
  ## Customization
@@ -24,7 +24,7 @@ Skills should add skill-specific rules below the reference line. Common skill-sp
24
24
  - **build**: "Minimize reading executor output — read only SUMMARY.md frontmatter, not full content"
25
25
  - **plan**: "Minimize reading subagent output — read only plan frontmatter for summaries"
26
26
  - **review**: "Minimize reading subagent output — read only VERIFICATION.md frontmatter for summaries"
27
- - **scan**: "Delegate ALL analysis to the 4 parallel codebase-mapper subagents"
27
+ - **scan**: "Delegate ALL analysis to the 4 parallel codebase-mapper agents"
28
28
  - **quick**: "Never implement the task yourself — ALL code changes go through a spawned executor"
29
29
  - **debug**: "Never perform investigation work yourself — delegate ALL analysis to the debugger subagent"
30
30