@sienklogic/plan-build-run 2.0.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 (221) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/CLAUDE.md +149 -0
  3. package/LICENSE +21 -0
  4. package/README.md +247 -0
  5. package/dashboard/bin/cli.js +25 -0
  6. package/dashboard/package.json +34 -0
  7. package/dashboard/public/.gitkeep +0 -0
  8. package/dashboard/public/css/layout.css +406 -0
  9. package/dashboard/public/css/status-colors.css +98 -0
  10. package/dashboard/public/js/htmx-title.js +5 -0
  11. package/dashboard/public/js/sidebar-toggle.js +20 -0
  12. package/dashboard/src/app.js +78 -0
  13. package/dashboard/src/middleware/errorHandler.js +52 -0
  14. package/dashboard/src/middleware/notFoundHandler.js +9 -0
  15. package/dashboard/src/repositories/planning.repository.js +128 -0
  16. package/dashboard/src/routes/events.routes.js +40 -0
  17. package/dashboard/src/routes/index.routes.js +31 -0
  18. package/dashboard/src/routes/pages.routes.js +195 -0
  19. package/dashboard/src/server.js +42 -0
  20. package/dashboard/src/services/dashboard.service.js +222 -0
  21. package/dashboard/src/services/phase.service.js +167 -0
  22. package/dashboard/src/services/project.service.js +57 -0
  23. package/dashboard/src/services/roadmap.service.js +171 -0
  24. package/dashboard/src/services/sse.service.js +58 -0
  25. package/dashboard/src/services/todo.service.js +254 -0
  26. package/dashboard/src/services/watcher.service.js +48 -0
  27. package/dashboard/src/views/coming-soon.ejs +11 -0
  28. package/dashboard/src/views/error.ejs +13 -0
  29. package/dashboard/src/views/index.ejs +5 -0
  30. package/dashboard/src/views/layout.ejs +1 -0
  31. package/dashboard/src/views/partials/dashboard-content.ejs +77 -0
  32. package/dashboard/src/views/partials/footer.ejs +3 -0
  33. package/dashboard/src/views/partials/head.ejs +21 -0
  34. package/dashboard/src/views/partials/header.ejs +12 -0
  35. package/dashboard/src/views/partials/layout-bottom.ejs +15 -0
  36. package/dashboard/src/views/partials/layout-top.ejs +8 -0
  37. package/dashboard/src/views/partials/phase-content.ejs +181 -0
  38. package/dashboard/src/views/partials/phases-content.ejs +117 -0
  39. package/dashboard/src/views/partials/roadmap-content.ejs +142 -0
  40. package/dashboard/src/views/partials/sidebar.ejs +38 -0
  41. package/dashboard/src/views/partials/todo-create-content.ejs +53 -0
  42. package/dashboard/src/views/partials/todo-detail-content.ejs +38 -0
  43. package/dashboard/src/views/partials/todos-content.ejs +53 -0
  44. package/dashboard/src/views/phase-detail.ejs +5 -0
  45. package/dashboard/src/views/phases.ejs +5 -0
  46. package/dashboard/src/views/roadmap.ejs +5 -0
  47. package/dashboard/src/views/todo-create.ejs +5 -0
  48. package/dashboard/src/views/todo-detail.ejs +5 -0
  49. package/dashboard/src/views/todos.ejs +5 -0
  50. package/package.json +57 -0
  51. package/plugins/pbr/.claude-plugin/plugin.json +13 -0
  52. package/plugins/pbr/UI-CONSISTENCY-GAPS.md +61 -0
  53. package/plugins/pbr/agents/codebase-mapper.md +271 -0
  54. package/plugins/pbr/agents/debugger.md +281 -0
  55. package/plugins/pbr/agents/executor.md +407 -0
  56. package/plugins/pbr/agents/general.md +164 -0
  57. package/plugins/pbr/agents/integration-checker.md +141 -0
  58. package/plugins/pbr/agents/plan-checker.md +280 -0
  59. package/plugins/pbr/agents/planner.md +358 -0
  60. package/plugins/pbr/agents/researcher.md +363 -0
  61. package/plugins/pbr/agents/synthesizer.md +230 -0
  62. package/plugins/pbr/agents/verifier.md +454 -0
  63. package/plugins/pbr/commands/begin.md +5 -0
  64. package/plugins/pbr/commands/build.md +5 -0
  65. package/plugins/pbr/commands/config.md +5 -0
  66. package/plugins/pbr/commands/continue.md +5 -0
  67. package/plugins/pbr/commands/debug.md +5 -0
  68. package/plugins/pbr/commands/discuss.md +5 -0
  69. package/plugins/pbr/commands/explore.md +5 -0
  70. package/plugins/pbr/commands/health.md +5 -0
  71. package/plugins/pbr/commands/help.md +5 -0
  72. package/plugins/pbr/commands/import.md +5 -0
  73. package/plugins/pbr/commands/milestone.md +5 -0
  74. package/plugins/pbr/commands/note.md +5 -0
  75. package/plugins/pbr/commands/pause.md +5 -0
  76. package/plugins/pbr/commands/plan.md +5 -0
  77. package/plugins/pbr/commands/quick.md +5 -0
  78. package/plugins/pbr/commands/resume.md +5 -0
  79. package/plugins/pbr/commands/review.md +5 -0
  80. package/plugins/pbr/commands/scan.md +5 -0
  81. package/plugins/pbr/commands/setup.md +5 -0
  82. package/plugins/pbr/commands/status.md +5 -0
  83. package/plugins/pbr/commands/todo.md +5 -0
  84. package/plugins/pbr/contexts/dev.md +27 -0
  85. package/plugins/pbr/contexts/research.md +28 -0
  86. package/plugins/pbr/contexts/review.md +36 -0
  87. package/plugins/pbr/hooks/hooks.json +183 -0
  88. package/plugins/pbr/references/agent-anti-patterns.md +24 -0
  89. package/plugins/pbr/references/agent-interactions.md +134 -0
  90. package/plugins/pbr/references/agent-teams.md +54 -0
  91. package/plugins/pbr/references/checkpoints.md +157 -0
  92. package/plugins/pbr/references/common-bug-patterns.md +13 -0
  93. package/plugins/pbr/references/continuation-format.md +212 -0
  94. package/plugins/pbr/references/deviation-rules.md +112 -0
  95. package/plugins/pbr/references/git-integration.md +226 -0
  96. package/plugins/pbr/references/integration-patterns.md +117 -0
  97. package/plugins/pbr/references/model-profiles.md +99 -0
  98. package/plugins/pbr/references/model-selection.md +31 -0
  99. package/plugins/pbr/references/pbr-rules.md +193 -0
  100. package/plugins/pbr/references/plan-authoring.md +181 -0
  101. package/plugins/pbr/references/plan-format.md +283 -0
  102. package/plugins/pbr/references/planning-config.md +213 -0
  103. package/plugins/pbr/references/questioning.md +214 -0
  104. package/plugins/pbr/references/reading-verification.md +127 -0
  105. package/plugins/pbr/references/stub-patterns.md +160 -0
  106. package/plugins/pbr/references/subagent-coordination.md +119 -0
  107. package/plugins/pbr/references/ui-formatting.md +399 -0
  108. package/plugins/pbr/references/verification-patterns.md +198 -0
  109. package/plugins/pbr/references/wave-execution.md +95 -0
  110. package/plugins/pbr/scripts/auto-continue.js +80 -0
  111. package/plugins/pbr/scripts/check-dangerous-commands.js +136 -0
  112. package/plugins/pbr/scripts/check-doc-sprawl.js +102 -0
  113. package/plugins/pbr/scripts/check-phase-boundary.js +196 -0
  114. package/plugins/pbr/scripts/check-plan-format.js +270 -0
  115. package/plugins/pbr/scripts/check-roadmap-sync.js +252 -0
  116. package/plugins/pbr/scripts/check-skill-workflow.js +262 -0
  117. package/plugins/pbr/scripts/check-state-sync.js +476 -0
  118. package/plugins/pbr/scripts/check-subagent-output.js +144 -0
  119. package/plugins/pbr/scripts/config-schema.json +251 -0
  120. package/plugins/pbr/scripts/context-budget-check.js +287 -0
  121. package/plugins/pbr/scripts/event-handler.js +151 -0
  122. package/plugins/pbr/scripts/event-logger.js +92 -0
  123. package/plugins/pbr/scripts/hook-logger.js +76 -0
  124. package/plugins/pbr/scripts/hooks-schema.json +79 -0
  125. package/plugins/pbr/scripts/log-subagent.js +152 -0
  126. package/plugins/pbr/scripts/log-tool-failure.js +88 -0
  127. package/plugins/pbr/scripts/pbr-tools.js +1301 -0
  128. package/plugins/pbr/scripts/post-write-dispatch.js +66 -0
  129. package/plugins/pbr/scripts/post-write-quality.js +207 -0
  130. package/plugins/pbr/scripts/pre-bash-dispatch.js +56 -0
  131. package/plugins/pbr/scripts/pre-write-dispatch.js +62 -0
  132. package/plugins/pbr/scripts/progress-tracker.js +228 -0
  133. package/plugins/pbr/scripts/session-cleanup.js +254 -0
  134. package/plugins/pbr/scripts/status-line.js +285 -0
  135. package/plugins/pbr/scripts/suggest-compact.js +119 -0
  136. package/plugins/pbr/scripts/task-completed.js +45 -0
  137. package/plugins/pbr/scripts/track-context-budget.js +119 -0
  138. package/plugins/pbr/scripts/validate-commit.js +200 -0
  139. package/plugins/pbr/scripts/validate-plugin-structure.js +172 -0
  140. package/plugins/pbr/skills/begin/SKILL.md +545 -0
  141. package/plugins/pbr/skills/begin/templates/PROJECT.md.tmpl +33 -0
  142. package/plugins/pbr/skills/begin/templates/REQUIREMENTS.md.tmpl +18 -0
  143. package/plugins/pbr/skills/begin/templates/STATE.md.tmpl +49 -0
  144. package/plugins/pbr/skills/begin/templates/config.json.tmpl +63 -0
  145. package/plugins/pbr/skills/begin/templates/researcher-prompt.md.tmpl +19 -0
  146. package/plugins/pbr/skills/begin/templates/roadmap-prompt.md.tmpl +30 -0
  147. package/plugins/pbr/skills/begin/templates/synthesis-prompt.md.tmpl +16 -0
  148. package/plugins/pbr/skills/build/SKILL.md +962 -0
  149. package/plugins/pbr/skills/config/SKILL.md +241 -0
  150. package/plugins/pbr/skills/continue/SKILL.md +127 -0
  151. package/plugins/pbr/skills/debug/SKILL.md +489 -0
  152. package/plugins/pbr/skills/debug/templates/continuation-prompt.md.tmpl +16 -0
  153. package/plugins/pbr/skills/debug/templates/initial-investigation-prompt.md.tmpl +27 -0
  154. package/plugins/pbr/skills/discuss/SKILL.md +338 -0
  155. package/plugins/pbr/skills/discuss/templates/CONTEXT.md.tmpl +61 -0
  156. package/plugins/pbr/skills/discuss/templates/decision-categories.md +9 -0
  157. package/plugins/pbr/skills/explore/SKILL.md +362 -0
  158. package/plugins/pbr/skills/health/SKILL.md +186 -0
  159. package/plugins/pbr/skills/health/templates/check-pattern.md.tmpl +30 -0
  160. package/plugins/pbr/skills/health/templates/output-format.md.tmpl +63 -0
  161. package/plugins/pbr/skills/help/SKILL.md +140 -0
  162. package/plugins/pbr/skills/import/SKILL.md +490 -0
  163. package/plugins/pbr/skills/milestone/SKILL.md +673 -0
  164. package/plugins/pbr/skills/milestone/templates/audit-report.md.tmpl +48 -0
  165. package/plugins/pbr/skills/milestone/templates/stats-file.md.tmpl +30 -0
  166. package/plugins/pbr/skills/note/SKILL.md +212 -0
  167. package/plugins/pbr/skills/pause/SKILL.md +235 -0
  168. package/plugins/pbr/skills/pause/templates/continue-here.md.tmpl +71 -0
  169. package/plugins/pbr/skills/plan/SKILL.md +628 -0
  170. package/plugins/pbr/skills/plan/decimal-phase-calc.md +98 -0
  171. package/plugins/pbr/skills/plan/templates/checker-prompt.md.tmpl +21 -0
  172. package/plugins/pbr/skills/plan/templates/gap-closure-prompt.md.tmpl +32 -0
  173. package/plugins/pbr/skills/plan/templates/planner-prompt.md.tmpl +38 -0
  174. package/plugins/pbr/skills/plan/templates/researcher-prompt.md.tmpl +19 -0
  175. package/plugins/pbr/skills/plan/templates/revision-prompt.md.tmpl +23 -0
  176. package/plugins/pbr/skills/quick/SKILL.md +335 -0
  177. package/plugins/pbr/skills/resume/SKILL.md +388 -0
  178. package/plugins/pbr/skills/review/SKILL.md +652 -0
  179. package/plugins/pbr/skills/review/templates/debugger-prompt.md.tmpl +60 -0
  180. package/plugins/pbr/skills/review/templates/gap-planner-prompt.md.tmpl +40 -0
  181. package/plugins/pbr/skills/review/templates/verifier-prompt.md.tmpl +115 -0
  182. package/plugins/pbr/skills/scan/SKILL.md +269 -0
  183. package/plugins/pbr/skills/scan/templates/mapper-prompt.md.tmpl +201 -0
  184. package/plugins/pbr/skills/setup/SKILL.md +227 -0
  185. package/plugins/pbr/skills/shared/commit-planning-docs.md +35 -0
  186. package/plugins/pbr/skills/shared/config-loading.md +102 -0
  187. package/plugins/pbr/skills/shared/context-budget.md +40 -0
  188. package/plugins/pbr/skills/shared/context-loader-task.md +86 -0
  189. package/plugins/pbr/skills/shared/digest-select.md +79 -0
  190. package/plugins/pbr/skills/shared/domain-probes.md +125 -0
  191. package/plugins/pbr/skills/shared/error-reporting.md +79 -0
  192. package/plugins/pbr/skills/shared/gate-prompts.md +388 -0
  193. package/plugins/pbr/skills/shared/phase-argument-parsing.md +45 -0
  194. package/plugins/pbr/skills/shared/progress-display.md +53 -0
  195. package/plugins/pbr/skills/shared/revision-loop.md +81 -0
  196. package/plugins/pbr/skills/shared/state-loading.md +62 -0
  197. package/plugins/pbr/skills/shared/state-update.md +161 -0
  198. package/plugins/pbr/skills/shared/universal-anti-patterns.md +33 -0
  199. package/plugins/pbr/skills/status/SKILL.md +353 -0
  200. package/plugins/pbr/skills/todo/SKILL.md +181 -0
  201. package/plugins/pbr/templates/CONTEXT.md.tmpl +52 -0
  202. package/plugins/pbr/templates/INTEGRATION-REPORT.md.tmpl +151 -0
  203. package/plugins/pbr/templates/RESEARCH-SUMMARY.md.tmpl +97 -0
  204. package/plugins/pbr/templates/ROADMAP.md.tmpl +40 -0
  205. package/plugins/pbr/templates/SUMMARY.md.tmpl +81 -0
  206. package/plugins/pbr/templates/VERIFICATION-DETAIL.md.tmpl +116 -0
  207. package/plugins/pbr/templates/codebase/ARCHITECTURE.md.tmpl +98 -0
  208. package/plugins/pbr/templates/codebase/CONCERNS.md.tmpl +93 -0
  209. package/plugins/pbr/templates/codebase/CONVENTIONS.md.tmpl +104 -0
  210. package/plugins/pbr/templates/codebase/INTEGRATIONS.md.tmpl +78 -0
  211. package/plugins/pbr/templates/codebase/STACK.md.tmpl +78 -0
  212. package/plugins/pbr/templates/codebase/STRUCTURE.md.tmpl +80 -0
  213. package/plugins/pbr/templates/codebase/TESTING.md.tmpl +107 -0
  214. package/plugins/pbr/templates/continue-here.md.tmpl +73 -0
  215. package/plugins/pbr/templates/prompt-partials/phase-project-context.md.tmpl +37 -0
  216. package/plugins/pbr/templates/research/ARCHITECTURE.md.tmpl +124 -0
  217. package/plugins/pbr/templates/research/STACK.md.tmpl +71 -0
  218. package/plugins/pbr/templates/research/SUMMARY.md.tmpl +112 -0
  219. package/plugins/pbr/templates/research-outputs/phase-research.md.tmpl +81 -0
  220. package/plugins/pbr/templates/research-outputs/project-research.md.tmpl +99 -0
  221. package/plugins/pbr/templates/research-outputs/synthesis.md.tmpl +36 -0
@@ -0,0 +1,98 @@
1
+ # Decimal Phase Numbering
2
+
3
+ Rules for calculating decimal phase numbers when inserting phases into an existing roadmap.
4
+
5
+ ---
6
+
7
+ ## Core Rule
8
+
9
+ Inserted phases get decimal numbers based on their insertion position. The integer part indicates where in the sequence the phase falls, and the decimal part indicates it was inserted.
10
+
11
+ ---
12
+
13
+ ## Calculation
14
+
15
+ ### Insert at position N
16
+
17
+ ```
18
+ 1. Find phase N in the roadmap
19
+ 2. Check if N.1 already exists
20
+ 3. If not: new phase is N.1
21
+ 4. If yes: check N.2, N.3, etc. until an unused number is found
22
+ ```
23
+
24
+ ### Examples
25
+
26
+ **Insert between Phase 3 and Phase 4:**
27
+ ```
28
+ Before: Phase 1, Phase 2, Phase 3, Phase 4, Phase 5
29
+ After: Phase 1, Phase 2, Phase 3, Phase 3.1, Phase 4, Phase 5
30
+ ```
31
+
32
+ **Insert another between Phase 3 and Phase 4:**
33
+ ```
34
+ Before: Phase 1, Phase 2, Phase 3, Phase 3.1, Phase 4, Phase 5
35
+ After: Phase 1, Phase 2, Phase 3, Phase 3.1, Phase 3.2, Phase 4, Phase 5
36
+ ```
37
+
38
+ **Insert between Phase 3.1 and Phase 3.2:**
39
+ This is NOT supported. Maximum one level of decimal insertion. If you need to insert between decimal phases, renumber the entire sequence first.
40
+
41
+ ---
42
+
43
+ ## Directory Naming
44
+
45
+ ```
46
+ Phase 3 → .planning/phases/03-{slug}/
47
+ Phase 3.1 → .planning/phases/03.1-{slug}/
48
+ Phase 3.2 → .planning/phases/03.2-{slug}/
49
+ ```
50
+
51
+ ---
52
+
53
+ ## Plan ID Format
54
+
55
+ Plans in decimal phases use the decimal in their ID:
56
+
57
+ ```
58
+ Phase 3.1, Plan 01 → Plan ID: 3.1-01
59
+ Phase 3.1, Plan 02 → Plan ID: 3.1-02
60
+ ```
61
+
62
+ ---
63
+
64
+ ## Execution Order
65
+
66
+ Decimal phases execute AFTER their integer parent and BEFORE the next integer:
67
+
68
+ ```
69
+ Execution order: 1, 2, 3, 3.1, 3.2, 4, 5
70
+ ```
71
+
72
+ Dependencies:
73
+ - Decimal phases inherit the dependencies of their integer parent by default
74
+ - Additional dependencies can be declared explicitly
75
+ - A decimal phase at N.M depends on phase N unless overridden
76
+
77
+ ---
78
+
79
+ ## Renumbering After Remove
80
+
81
+ When a phase is removed, subsequent phases are renumbered:
82
+
83
+ ```
84
+ Before: Phase 1, Phase 2, Phase 3, Phase 3.1, Phase 4
85
+ Remove Phase 2:
86
+ After: Phase 1, Phase 2 (was 3), Phase 2.1 (was 3.1), Phase 3 (was 4)
87
+ ```
88
+
89
+ All internal references (depends_on, plan IDs, directory names) must be updated during renumbering.
90
+
91
+ ---
92
+
93
+ ## Constraints
94
+
95
+ 1. Maximum one level of decimal numbering (no 3.1.1)
96
+ 2. Decimal part is always a single digit (3.1 through 3.9)
97
+ 3. Maximum 9 insertions at any position (3.1 through 3.9)
98
+ 4. If 9 insertions are needed, renumber the entire roadmap instead
@@ -0,0 +1,21 @@
1
+ <!-- Source: plan/SKILL.md | Purpose: Prompt template for spawning plan checker agent -->
2
+ <!-- Depends on: templates/prompt-partials/phase-project-context.md.tmpl -->
3
+
4
+ You are the plan-checker agent.
5
+
6
+ <plans_to_check>
7
+ Read and check each of these plan files:
8
+
9
+ | Plan | File Path |
10
+ |------|-----------|
11
+ {For each PLAN.md file in .planning/phases/{NN}-{slug}/:}
12
+ | {plan_id} | {absolute path to PLAN.md} |
13
+
14
+ Read each plan file using the Read tool. Verify all 7 dimensions against each plan.
15
+ </plans_to_check>
16
+
17
+ <!-- Context blocks: Read and fill templates/prompt-partials/phase-project-context.md.tmpl -->
18
+ <!-- Omit <prior_work> -- checker only needs plans and context -->
19
+
20
+ Run all 7 verification dimensions on these plans. Return your structured report.
21
+ Do NOT write any files. Return your findings as your response text.
@@ -0,0 +1,32 @@
1
+ <!-- Source: plan/SKILL.md | Purpose: Prompt template for planner gap closure mode -->
2
+
3
+ You are the planner agent operating in Gap Closure mode.
4
+
5
+ <verification_report>
6
+ Read the verification report for gap details:
7
+ File: {absolute path to VERIFICATION.md}
8
+ </verification_report>
9
+
10
+ <existing_plans>
11
+ Read existing plans for context on what was already built:
12
+
13
+ | Plan | File Path |
14
+ |------|-----------|
15
+ {For each PLAN.md in the phase directory:}
16
+ | {plan_id} | {absolute path to PLAN.md} |
17
+ </existing_plans>
18
+
19
+ <project_context>
20
+ {If CONTEXT.md exists:}
21
+ Project context (locked decisions, constraints): {absolute path to CONTEXT.md}
22
+ Read this file for locked decisions that must be honored in gap-closure plans.
23
+ {If not: "No CONTEXT.md found."}
24
+ </project_context>
25
+
26
+ <gap_closure_instructions>
27
+ Read the verification report and create targeted plans to close each gap.
28
+ Follow your Gap Closure Mode instructions.
29
+ Number new plans starting after the last existing plan number.
30
+ Set gap_closure: true in the frontmatter of each new plan.
31
+ Write gap-closure plan files to: .planning/phases/{NN}-{slug}/
32
+ </gap_closure_instructions>
@@ -0,0 +1,38 @@
1
+ <!-- Source: plan/SKILL.md | Purpose: Prompt template for spawning planner agent during phase planning -->
2
+ <!-- Depends on: templates/prompt-partials/phase-project-context.md.tmpl -->
3
+
4
+ You are the planner agent operating in Standard Planning mode.
5
+
6
+ <!-- Context blocks: Read and fill templates/prompt-partials/phase-project-context.md.tmpl -->
7
+ <!-- Include all 3 blocks: phase_context, project_context, prior_work -->
8
+
9
+ <research>
10
+ {If RESEARCH.md exists:}
11
+ Phase research available at: {absolute path to RESEARCH.md}
12
+ Read this file for technology recommendations, implementation patterns, and pitfalls.
13
+ {If not: "No phase-specific research conducted."}
14
+ {If research SUMMARY.md exists:}
15
+ Research summary available at: {absolute path to research SUMMARY.md}
16
+ </research>
17
+
18
+ <config>
19
+ Max tasks per plan: {from config.json}
20
+ Parallelization enabled: {from config.json}
21
+ TDD mode: {from config.json}
22
+ </config>
23
+
24
+ <planning_instructions>
25
+ Create executable plans for this phase following your Standard Planning mode instructions.
26
+
27
+ Key rules:
28
+ 1. Apply goal-backward methodology — derive must-haves first
29
+ 2. 2-3 tasks per plan, 5-8 files per plan maximum
30
+ 3. Assign wave numbers for parallel execution
31
+ 4. Every task needs all 5 elements: name, files, action, verify, done
32
+ 5. Honor all locked decisions from CONTEXT.md
33
+ 6. Do NOT include deferred ideas
34
+ 7. Write plan files to: .planning/phases/{NN}-{slug}/{phase}-{plan_num}-PLAN.md
35
+ 8. If any task requires env vars, API keys, or external service setup, note it in the task's <action> — the executor will generate USER-SETUP.md automatically
36
+
37
+ Use the Write tool to create each plan file.
38
+ </planning_instructions>
@@ -0,0 +1,19 @@
1
+ <!-- Source: plan/SKILL.md | Purpose: Prompt template for spawning researcher agent during phase planning -->
2
+ <!-- Depends on: templates/prompt-partials/phase-project-context.md.tmpl -->
3
+
4
+ You are the researcher agent operating in Phase Research mode.
5
+
6
+ <!-- Context blocks: Read and fill templates/prompt-partials/phase-project-context.md.tmpl -->
7
+ <!-- Include the filled <phase_context> and <project_context> blocks here. -->
8
+ <!-- Omit <prior_work> and deferred ideas -- researcher doesn't need them -->
9
+
10
+ <research_questions>
11
+ Research these specific questions for this phase:
12
+ 1. What is the best implementation approach for {phase goal}?
13
+ 2. What libraries/packages are needed?
14
+ 3. What are the common pitfalls for this type of work?
15
+ 4. What configuration is needed?
16
+ 5. How does this integrate with what's already been built?
17
+ </research_questions>
18
+
19
+ Write your findings to .planning/phases/{NN}-{slug}/RESEARCH.md using the Phase Research output format. Use the Write tool.
@@ -0,0 +1,23 @@
1
+ <!-- Source: plan/SKILL.md | Purpose: Prompt template for planner revision mode when checker finds issues -->
2
+
3
+ You are the planner agent operating in Revision Mode.
4
+
5
+ <original_plans>
6
+ Read the current plan files that need revision:
7
+
8
+ | Plan | File Path |
9
+ |------|-----------|
10
+ {For each PLAN.md in the phase directory:}
11
+ | {plan_id} | {absolute path to PLAN.md} |
12
+
13
+ Read each plan file using the Read tool before revising.
14
+ </original_plans>
15
+
16
+ <checker_feedback>
17
+ [Inline the checker's issue report]
18
+ </checker_feedback>
19
+
20
+ <revision_instructions>
21
+ Revise the plans to address all BLOCKER and WARNING issues. Follow your Revision Mode instructions.
22
+ Preserve task IDs that don't need changes. Write updated plan files to the same paths.
23
+ </revision_instructions>
@@ -0,0 +1,335 @@
1
+ ---
2
+ name: quick
3
+ description: "Execute an ad-hoc task with atomic commits. Skips full plan/review."
4
+ allowed-tools: Read, Write, Edit, Bash, Glob, Grep, Task, AskUserQuestion
5
+ ---
6
+
7
+ # /pbr:quick — Quick Ad-Hoc Task Execution
8
+
9
+ You are running the **quick** skill. Your job is to execute a small, self-contained task outside the normal plan/build/review cycle. Quick tasks get their own tracking, atomic commits, and state integration, but skip the overhead of full planning.
10
+
11
+ This skill **spawns a single Task(subagent_type: "pbr:executor")** for execution.
12
+
13
+ ---
14
+
15
+ ## Context Budget
16
+
17
+ Reference: `skills/shared/context-budget.md` for the universal orchestrator rules.
18
+
19
+ Additionally for this skill:
20
+ - **Never** implement the task yourself — you are a router, not a builder. ALL code changes go through a spawned `Task(subagent_type: "pbr:executor")`
21
+ - **Never** skip creating `.planning/quick/{NNN}-{slug}/` and writing PLAN.md — even trivial tasks need tracking artifacts
22
+ - **Minimize** reading executor output into main context — read only SUMMARY.md frontmatter
23
+
24
+ ## Core Principle
25
+
26
+ **Quick tasks are for small, well-defined work.** If the user describes something that would take more than 3-5 tasks or touches multiple subsystems, suggest using the full plan/build cycle instead.
27
+
28
+ ---
29
+
30
+ ## Flow
31
+
32
+ ### Step 1: Check Project Context
33
+
34
+ 1. Check if `.planning/` directory exists
35
+ - If yes: read config.json for settings
36
+ - If no: warn "No Plan-Build-Run project found. This will create a standalone quick task. Consider running `/pbr:begin` first for full project tracking."
37
+
38
+ 2. Write `.planning/.active-skill` with the content `quick` (single word, no newline). This registers you with the workflow enforcement hook — it will block source code writes until PLAN.md exists.
39
+
40
+ 3. Check if ROADMAP.md exists
41
+ - If yes: note the current phase context (quick tasks may relate to the active phase)
42
+ - If no: proceed without phase context
43
+
44
+ ### Step 2: Get Task Description
45
+
46
+ If `$ARGUMENTS` is provided and non-empty:
47
+ - Use `$ARGUMENTS` as the task description
48
+
49
+ If `$ARGUMENTS` is empty:
50
+ - Ask the user: "What do you need done? Describe the task in a sentence or two."
51
+ This is a freeform text prompt — do NOT use AskUserQuestion here. Task descriptions require arbitrary text input, not option selection.
52
+
53
+ ### Step 3: Validate Scope
54
+
55
+ Analyze the task description. If it appears to involve:
56
+ - More than ~5 files
57
+ - Multiple independent subsystems
58
+ - Significant architectural decisions
59
+ - Complex multi-step workflows
60
+
61
+ Then use the **scope-confirm** pattern (see `skills/shared/gate-prompts.md`):
62
+
63
+ Use AskUserQuestion:
64
+ question: "This task looks complex. Quick tasks work best for bug fixes, small features, config changes, and single-module refactors. How would you like to proceed?"
65
+ header: "Scope"
66
+ options:
67
+ - label: "Quick task" description: "Execute as lightweight task"
68
+ - label: "Full plan" description: "Switch to /pbr:plan for proper planning"
69
+ - label: "Revise" description: "Let me rewrite the task description"
70
+ multiSelect: false
71
+
72
+ If user selects "Quick task": continue to Step 4.
73
+ If user selects "Full plan": respond "Use `/pbr:plan` to create a full planning cycle for this task." and stop.
74
+ If user selects "Revise": go back to Step 2 to get a new task description.
75
+ If user types something else (freeform): interpret their response and proceed accordingly.
76
+
77
+ ### Step 4: Generate Slug and Task Number
78
+
79
+ **Generate slug:**
80
+ - Take the first 4-5 meaningful words from the description
81
+ - Lowercase, hyphen-separated
82
+ - Remove articles (a, an, the) and prepositions
83
+ - Example: "Fix auth bug in login flow" -> "fix-auth-bug-login"
84
+
85
+ **Find next task number:**
86
+ 1. Scan `.planning/quick/` directory for existing quick task directories
87
+ 2. Extract the NNN prefix from directory names (pattern: `{NNN}-{slug}/`)
88
+ 3. Next number = highest existing NNN + 1
89
+ 4. If no existing tasks: start at 001
90
+ 5. Zero-pad to 3 digits
91
+
92
+ ### Step 5: Create Quick Task Directory
93
+
94
+ Create: `.planning/quick/{NNN}-{slug}/`
95
+
96
+ ### Step 6: Create Minimal PLAN.md
97
+
98
+ Write `.planning/quick/{NNN}-{slug}/PLAN.md`:
99
+
100
+ Read `references/plan-format.md` for the plan file format. Fill in all `{variable}` placeholders with actual task data from the user's description and project context.
101
+
102
+ **Plan generation rules:**
103
+ - Break the task into 1-3 tasks maximum (prefer fewer)
104
+ - Each task should be atomic (one commit per task)
105
+ - Infer file paths from the description and project context
106
+ - Include concrete verification commands
107
+ - If verification is unclear, use `echo "Manual verification needed"` and add a note
108
+
109
+ **For multi-task quick tasks**, add sequential tasks:
110
+
111
+ ```markdown
112
+ <task name="{task 1}" type="auto">
113
+ ...
114
+ </task>
115
+
116
+ <task name="{task 2}" type="auto">
117
+ ...
118
+ </task>
119
+ ```
120
+
121
+ **PLANNING GATE — verify before spawning executor:**
122
+
123
+ Before proceeding to Step 7, confirm these exist on disk:
124
+ 1. `.planning/quick/{NNN}-{slug}/` directory exists
125
+ 2. `.planning/quick/{NNN}-{slug}/PLAN.md` exists, is non-empty, and contains at least one `<task>` block
126
+
127
+ If either check fails, you have skipped steps. Go back and complete Steps 4-6. Do NOT proceed to spawning an executor.
128
+
129
+ ### Step 7: Spawn Executor
130
+
131
+ **Pre-spawn check** — Verify `.planning/quick/{NNN}-{slug}/PLAN.md` exists and contains at least one `<task>` block. If missing, STOP and complete Steps 4-6 first.
132
+
133
+ Display to the user: `◐ Spawning executor...`
134
+
135
+ Spawn a `Task(subagent_type: "pbr:executor")` with the following prompt:
136
+
137
+ ```
138
+ You are executor. Execute the following quick task plan.
139
+
140
+ Plan file: .planning/quick/{NNN}-{slug}/PLAN.md
141
+ Phase: quick
142
+ Plan ID: {NNN}
143
+
144
+ Read the plan file and execute all tasks sequentially. Follow all executor protocols:
145
+ - Atomic commits per task
146
+ - Commit format: fix(quick-{NNN}): {description} (or feat/refactor/test as appropriate)
147
+ - Run verify commands
148
+ - Create SUMMARY.md at .planning/quick/{NNN}-{slug}/SUMMARY.md
149
+
150
+ Execute now.
151
+ ```
152
+
153
+ ### Step 8: Read Results
154
+
155
+ After the executor completes:
156
+ 1. Read `.planning/quick/{NNN}-{slug}/SUMMARY.md`
157
+ 2. Check the status field:
158
+ - `completed` — task succeeded
159
+ - `partial` — some tasks completed, others failed
160
+ - `failed` — task failed entirely
161
+
162
+ ### Step 9: Update STATE.md
163
+
164
+ If STATE.md exists, update the Quick Tasks section.
165
+
166
+ **If the section doesn't exist, create it:**
167
+
168
+ ```markdown
169
+ ### Quick Tasks
170
+
171
+ | # | Description | Status | Commit |
172
+ |---|-------------|--------|--------|
173
+ ```
174
+
175
+ **Add the new entry:**
176
+
177
+ ```markdown
178
+ | {NNN} | {description} | {status indicator} | {commit hash or "N/A"} |
179
+ ```
180
+
181
+ Status indicators:
182
+ - Completed: checkmark
183
+ - Partial: warning indicator
184
+ - Failed: X indicator
185
+
186
+ ### Step 10: Commit Planning Docs
187
+
188
+ Reference: `skills/shared/commit-planning-docs.md` for the standard commit pattern.
189
+
190
+ If `planning.commit_docs: true` in config.json:
191
+ - Stage the quick task directory files (PLAN.md, SUMMARY.md)
192
+ - Stage STATE.md changes
193
+ - Commit: `docs(planning): quick task {NNN} - {slug}`
194
+
195
+ ### Step 11: Report Results
196
+
197
+ **Artifact check** — Before reporting, verify all required artifacts exist:
198
+ 1. `.planning/quick/{NNN}-{slug}/PLAN.md` exists
199
+ 2. `.planning/quick/{NNN}-{slug}/SUMMARY.md` exists and is non-empty
200
+ 3. STATE.md contains a quick task entry for {NNN} (if STATE.md exists)
201
+
202
+ If SUMMARY.md is missing: the executor may have failed — re-read executor output and report the failure.
203
+ If STATE.md entry is missing: write it now (Step 9 was skipped).
204
+
205
+ Display results to the user with branded output:
206
+
207
+ **If completed:**
208
+ ```
209
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
210
+ PLAN-BUILD-RUN ► QUICK TASK COMPLETE ✓
211
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
212
+
213
+ **Quick Task {NNN}:** {description}
214
+ Commit: {hash} — {commit message}
215
+ Files: {list of files changed}
216
+
217
+ ───────────────────────────────────────────────────────────────
218
+
219
+ ## ▶ Next Up
220
+
221
+ **Continue your workflow** — task complete
222
+
223
+ `/pbr:status`
224
+
225
+ <sub>`/clear` first → fresh context window</sub>
226
+
227
+ ───────────────────────────────────────────────────────────────
228
+
229
+ **Also available:**
230
+ - `/pbr:continue` — execute next logical step
231
+ - `/pbr:todo list` — see pending todos
232
+
233
+ ───────────────────────────────────────────────────────────────
234
+ ```
235
+
236
+ **If partial:**
237
+ ```
238
+ ⚠ Quick Task {NNN}: {description}
239
+ Completed: {N} of {M} tasks
240
+ Failed task: {task name} — {failure reason}
241
+
242
+ → Re-run with `/pbr:quick` to retry
243
+ → `/pbr:debug` to investigate the failure
244
+ ```
245
+
246
+ **If failed:**
247
+ ```
248
+ ╔══════════════════════════════════════════════════════════════╗
249
+ ║ ERROR ║
250
+ ╚══════════════════════════════════════════════════════════════╝
251
+
252
+ Quick Task {NNN} failed: {failure details}
253
+
254
+ **To fix:** {what to try next}
255
+ ```
256
+
257
+ ---
258
+
259
+ ## Quick Task Plan Generation
260
+
261
+ ### Inferring File Paths
262
+
263
+ When the user describes a task, infer file paths from:
264
+ 1. The project structure (use Glob to find existing files matching keywords)
265
+ 2. The tech stack (from prior SUMMARY.md files or package.json/requirements.txt)
266
+ 3. Naming conventions in the codebase
267
+ 4. Explicit file mentions in the description
268
+
269
+ ### Inferring Verification
270
+
271
+ Choose verification based on context:
272
+
273
+ | Context | Verification Command |
274
+ |---------|---------------------|
275
+ | TypeScript project | `npx tsc --noEmit` |
276
+ | Has test files | `npm test` or `pytest` |
277
+ | Has ESLint | `npx eslint {files}` |
278
+ | Python project | `python -c "import {module}"` |
279
+ | Config change | `cat {file}` to verify content |
280
+ | Script | Run the script with safe args |
281
+ | Unknown | `echo "Manual verification needed"` |
282
+
283
+ ### Commit Type Selection
284
+
285
+ | Task Nature | Commit Type |
286
+ |-------------|-------------|
287
+ | Bug fix | `fix` |
288
+ | New feature/functionality | `feat` |
289
+ | Code restructuring | `refactor` |
290
+ | Adding tests | `test` |
291
+ | Config/tooling changes | `chore` |
292
+ | Documentation | `docs` |
293
+
294
+ ---
295
+
296
+ ## Edge Cases
297
+
298
+ ### No `.planning/` directory
299
+ - Create `.planning/quick/` directory
300
+ - Proceed without STATE.md integration
301
+ - Warn user about limited tracking
302
+
303
+ ### Executor fails entirely
304
+ - Read error output
305
+ - Present to user with suggestion
306
+ - Do NOT auto-retry — let the user decide
307
+
308
+ ### Task description is too vague
309
+ - Ask clarifying questions as plain text prompts (do NOT use AskUserQuestion — these require freeform text answers):
310
+ - "Which file(s) need to change?"
311
+ - "What should the end result look like?"
312
+ - "Is there a specific error to fix?"
313
+
314
+ ### User provides a file path in the description
315
+ - Use it directly in the plan
316
+ - Read the file first to understand its context
317
+ - Tailor the plan to the specific file
318
+
319
+ ---
320
+
321
+ ## Anti-Patterns
322
+
323
+ **These are the most common failure modes. If you violate any of these, the skill has not executed correctly.**
324
+
325
+ 1. **DO NOT** implement the task yourself — you MUST spawn a `Task(subagent_type: "pbr:executor")`. This is the single most important rule.
326
+ 2. **DO NOT** skip creating `.planning/quick/{NNN}-{slug}/` — every quick task gets a tracking directory
327
+ 3. **DO NOT** skip writing PLAN.md — the executor needs a plan file to follow
328
+ 4. **DO NOT** create elaborate multi-wave plans — quick tasks should be 1-3 tasks max
329
+ 5. **DO NOT** spawn multiple executors — one executor for the whole quick task
330
+ 6. **DO NOT** skip the SUMMARY.md — even quick tasks need documentation
331
+ 7. **DO NOT** use `git add .` — stage specific files only
332
+ 8. **DO NOT** skip verification — every task needs a verify step
333
+ 9. **DO NOT** create a quick task for something that needs planning — suggest `/pbr:plan`
334
+ 10. **DO NOT** modify STATE.md if it doesn't exist (other than warning)
335
+ 11. **DO NOT** break the numbering sequence — always find the next number