@sienklogic/plan-build-run 2.0.0 → 2.0.2

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 (233) hide show
  1. package/CHANGELOG.md +56 -56
  2. package/CLAUDE.md +149 -149
  3. package/LICENSE +21 -21
  4. package/README.md +247 -247
  5. package/dashboard/bin/cli.js +25 -25
  6. package/dashboard/package.json +34 -34
  7. package/dashboard/public/css/layout.css +406 -406
  8. package/dashboard/public/css/status-colors.css +98 -98
  9. package/dashboard/public/js/htmx-title.js +5 -5
  10. package/dashboard/public/js/sidebar-toggle.js +20 -20
  11. package/dashboard/src/app.js +78 -78
  12. package/dashboard/src/middleware/errorHandler.js +52 -52
  13. package/dashboard/src/middleware/notFoundHandler.js +9 -9
  14. package/dashboard/src/repositories/planning.repository.js +128 -128
  15. package/dashboard/src/routes/events.routes.js +40 -40
  16. package/dashboard/src/routes/index.routes.js +31 -31
  17. package/dashboard/src/routes/pages.routes.js +245 -195
  18. package/dashboard/src/server.js +42 -42
  19. package/dashboard/src/services/dashboard.service.js +222 -222
  20. package/dashboard/src/services/phase.service.js +220 -167
  21. package/dashboard/src/services/project.service.js +57 -57
  22. package/dashboard/src/services/roadmap.service.js +171 -171
  23. package/dashboard/src/services/sse.service.js +58 -58
  24. package/dashboard/src/services/todo.service.js +254 -254
  25. package/dashboard/src/services/watcher.service.js +48 -48
  26. package/dashboard/src/views/coming-soon.ejs +11 -11
  27. package/dashboard/src/views/error.ejs +13 -13
  28. package/dashboard/src/views/index.ejs +5 -5
  29. package/dashboard/src/views/layout.ejs +1 -1
  30. package/dashboard/src/views/partials/dashboard-content.ejs +77 -77
  31. package/dashboard/src/views/partials/footer.ejs +3 -3
  32. package/dashboard/src/views/partials/head.ejs +21 -21
  33. package/dashboard/src/views/partials/header.ejs +12 -12
  34. package/dashboard/src/views/partials/layout-bottom.ejs +15 -15
  35. package/dashboard/src/views/partials/layout-top.ejs +8 -8
  36. package/dashboard/src/views/partials/phase-content.ejs +188 -181
  37. package/dashboard/src/views/partials/phase-doc-content.ejs +38 -0
  38. package/dashboard/src/views/partials/phases-content.ejs +117 -117
  39. package/dashboard/src/views/partials/roadmap-content.ejs +142 -142
  40. package/dashboard/src/views/partials/sidebar.ejs +38 -38
  41. package/dashboard/src/views/partials/todo-create-content.ejs +53 -53
  42. package/dashboard/src/views/partials/todo-detail-content.ejs +38 -38
  43. package/dashboard/src/views/partials/todos-content.ejs +53 -53
  44. package/dashboard/src/views/phase-detail.ejs +5 -5
  45. package/dashboard/src/views/phase-doc.ejs +5 -0
  46. package/dashboard/src/views/phases.ejs +5 -5
  47. package/dashboard/src/views/roadmap.ejs +5 -5
  48. package/dashboard/src/views/todo-create.ejs +5 -5
  49. package/dashboard/src/views/todo-detail.ejs +5 -5
  50. package/dashboard/src/views/todos.ejs +5 -5
  51. package/package.json +57 -57
  52. package/plugins/cursor-pbr/.cursor-plugin/plugin.json +22 -0
  53. package/plugins/cursor-pbr/agents/.gitkeep +0 -0
  54. package/plugins/cursor-pbr/assets/.gitkeep +0 -0
  55. package/plugins/cursor-pbr/hooks/hooks.json +11 -0
  56. package/plugins/cursor-pbr/references/.gitkeep +0 -0
  57. package/plugins/cursor-pbr/rules/.gitkeep +0 -0
  58. package/plugins/cursor-pbr/skills/.gitkeep +0 -0
  59. package/plugins/cursor-pbr/templates/.gitkeep +0 -0
  60. package/plugins/pbr/.claude-plugin/plugin.json +13 -13
  61. package/plugins/pbr/UI-CONSISTENCY-GAPS.md +61 -61
  62. package/plugins/pbr/agents/codebase-mapper.md +279 -271
  63. package/plugins/pbr/agents/debugger.md +281 -281
  64. package/plugins/pbr/agents/executor.md +428 -407
  65. package/plugins/pbr/agents/general.md +164 -164
  66. package/plugins/pbr/agents/integration-checker.md +169 -141
  67. package/plugins/pbr/agents/plan-checker.md +296 -280
  68. package/plugins/pbr/agents/planner.md +358 -358
  69. package/plugins/pbr/agents/researcher.md +363 -363
  70. package/plugins/pbr/agents/synthesizer.md +230 -230
  71. package/plugins/pbr/agents/verifier.md +489 -454
  72. package/plugins/pbr/commands/begin.md +5 -5
  73. package/plugins/pbr/commands/build.md +5 -5
  74. package/plugins/pbr/commands/config.md +5 -5
  75. package/plugins/pbr/commands/continue.md +5 -5
  76. package/plugins/pbr/commands/debug.md +5 -5
  77. package/plugins/pbr/commands/discuss.md +5 -5
  78. package/plugins/pbr/commands/explore.md +5 -5
  79. package/plugins/pbr/commands/health.md +5 -5
  80. package/plugins/pbr/commands/help.md +5 -5
  81. package/plugins/pbr/commands/import.md +5 -5
  82. package/plugins/pbr/commands/milestone.md +5 -5
  83. package/plugins/pbr/commands/note.md +5 -5
  84. package/plugins/pbr/commands/pause.md +5 -5
  85. package/plugins/pbr/commands/plan.md +5 -5
  86. package/plugins/pbr/commands/quick.md +5 -5
  87. package/plugins/pbr/commands/resume.md +5 -5
  88. package/plugins/pbr/commands/review.md +5 -5
  89. package/plugins/pbr/commands/scan.md +5 -5
  90. package/plugins/pbr/commands/setup.md +5 -5
  91. package/plugins/pbr/commands/status.md +5 -5
  92. package/plugins/pbr/commands/todo.md +5 -5
  93. package/plugins/pbr/contexts/dev.md +27 -27
  94. package/plugins/pbr/contexts/research.md +28 -28
  95. package/plugins/pbr/contexts/review.md +36 -36
  96. package/plugins/pbr/hooks/hooks.json +183 -183
  97. package/plugins/pbr/references/agent-anti-patterns.md +24 -24
  98. package/plugins/pbr/references/agent-interactions.md +134 -134
  99. package/plugins/pbr/references/agent-teams.md +54 -54
  100. package/plugins/pbr/references/checkpoints.md +157 -157
  101. package/plugins/pbr/references/common-bug-patterns.md +13 -13
  102. package/plugins/pbr/references/config-reference.md +441 -0
  103. package/plugins/pbr/references/continuation-format.md +212 -212
  104. package/plugins/pbr/references/deviation-rules.md +112 -112
  105. package/plugins/pbr/references/git-integration.md +226 -226
  106. package/plugins/pbr/references/integration-patterns.md +117 -117
  107. package/plugins/pbr/references/model-profiles.md +99 -99
  108. package/plugins/pbr/references/model-selection.md +31 -31
  109. package/plugins/pbr/references/pbr-rules.md +193 -193
  110. package/plugins/pbr/references/plan-authoring.md +181 -181
  111. package/plugins/pbr/references/plan-format.md +287 -283
  112. package/plugins/pbr/references/planning-config.md +213 -213
  113. package/plugins/pbr/references/questioning.md +214 -214
  114. package/plugins/pbr/references/reading-verification.md +127 -127
  115. package/plugins/pbr/references/stub-patterns.md +160 -160
  116. package/plugins/pbr/references/subagent-coordination.md +119 -119
  117. package/plugins/pbr/references/ui-formatting.md +461 -399
  118. package/plugins/pbr/references/verification-patterns.md +198 -198
  119. package/plugins/pbr/references/wave-execution.md +95 -95
  120. package/plugins/pbr/scripts/auto-continue.js +80 -80
  121. package/plugins/pbr/scripts/check-dangerous-commands.js +136 -136
  122. package/plugins/pbr/scripts/check-doc-sprawl.js +102 -102
  123. package/plugins/pbr/scripts/check-phase-boundary.js +196 -196
  124. package/plugins/pbr/scripts/check-plan-format.js +270 -270
  125. package/plugins/pbr/scripts/check-roadmap-sync.js +322 -252
  126. package/plugins/pbr/scripts/check-skill-workflow.js +262 -262
  127. package/plugins/pbr/scripts/check-state-sync.js +476 -476
  128. package/plugins/pbr/scripts/check-subagent-output.js +144 -144
  129. package/plugins/pbr/scripts/config-schema.json +251 -251
  130. package/plugins/pbr/scripts/context-budget-check.js +287 -287
  131. package/plugins/pbr/scripts/event-handler.js +151 -151
  132. package/plugins/pbr/scripts/event-logger.js +92 -92
  133. package/plugins/pbr/scripts/hook-logger.js +80 -76
  134. package/plugins/pbr/scripts/hooks-schema.json +79 -79
  135. package/plugins/pbr/scripts/log-subagent.js +164 -152
  136. package/plugins/pbr/scripts/log-tool-failure.js +88 -88
  137. package/plugins/pbr/scripts/pbr-tools.js +1378 -1301
  138. package/plugins/pbr/scripts/post-write-dispatch.js +66 -66
  139. package/plugins/pbr/scripts/post-write-quality.js +207 -207
  140. package/plugins/pbr/scripts/pre-bash-dispatch.js +86 -56
  141. package/plugins/pbr/scripts/pre-write-dispatch.js +97 -62
  142. package/plugins/pbr/scripts/progress-tracker.js +281 -228
  143. package/plugins/pbr/scripts/run-hook.js +92 -0
  144. package/plugins/pbr/scripts/session-cleanup.js +254 -254
  145. package/plugins/pbr/scripts/status-line.js +288 -285
  146. package/plugins/pbr/scripts/suggest-compact.js +119 -119
  147. package/plugins/pbr/scripts/task-completed.js +45 -45
  148. package/plugins/pbr/scripts/track-context-budget.js +149 -119
  149. package/plugins/pbr/scripts/validate-commit.js +200 -200
  150. package/plugins/pbr/scripts/validate-plugin-structure.js +183 -172
  151. package/plugins/pbr/scripts/validate-task.js +106 -0
  152. package/plugins/pbr/skills/begin/SKILL.md +594 -545
  153. package/plugins/pbr/skills/begin/templates/PROJECT.md.tmpl +33 -33
  154. package/plugins/pbr/skills/begin/templates/REQUIREMENTS.md.tmpl +18 -18
  155. package/plugins/pbr/skills/begin/templates/STATE.md.tmpl +49 -49
  156. package/plugins/pbr/skills/begin/templates/config.json.tmpl +64 -63
  157. package/plugins/pbr/skills/begin/templates/researcher-prompt.md.tmpl +19 -19
  158. package/plugins/pbr/skills/begin/templates/roadmap-prompt.md.tmpl +30 -30
  159. package/plugins/pbr/skills/begin/templates/synthesis-prompt.md.tmpl +16 -16
  160. package/plugins/pbr/skills/build/SKILL.md +943 -962
  161. package/plugins/pbr/skills/config/SKILL.md +256 -241
  162. package/plugins/pbr/skills/continue/SKILL.md +164 -127
  163. package/plugins/pbr/skills/debug/SKILL.md +515 -489
  164. package/plugins/pbr/skills/debug/templates/continuation-prompt.md.tmpl +16 -16
  165. package/plugins/pbr/skills/debug/templates/initial-investigation-prompt.md.tmpl +27 -27
  166. package/plugins/pbr/skills/discuss/SKILL.md +347 -338
  167. package/plugins/pbr/skills/discuss/templates/CONTEXT.md.tmpl +61 -61
  168. package/plugins/pbr/skills/discuss/templates/decision-categories.md +9 -9
  169. package/plugins/pbr/skills/explore/SKILL.md +378 -362
  170. package/plugins/pbr/skills/health/SKILL.md +221 -186
  171. package/plugins/pbr/skills/health/templates/check-pattern.md.tmpl +30 -30
  172. package/plugins/pbr/skills/health/templates/output-format.md.tmpl +63 -63
  173. package/plugins/pbr/skills/help/SKILL.md +155 -140
  174. package/plugins/pbr/skills/import/SKILL.md +504 -490
  175. package/plugins/pbr/skills/milestone/SKILL.md +704 -673
  176. package/plugins/pbr/skills/milestone/templates/audit-report.md.tmpl +48 -48
  177. package/plugins/pbr/skills/milestone/templates/stats-file.md.tmpl +30 -30
  178. package/plugins/pbr/skills/note/SKILL.md +231 -212
  179. package/plugins/pbr/skills/pause/SKILL.md +249 -235
  180. package/plugins/pbr/skills/pause/templates/continue-here.md.tmpl +71 -71
  181. package/plugins/pbr/skills/plan/SKILL.md +685 -628
  182. package/plugins/pbr/skills/plan/decimal-phase-calc.md +98 -98
  183. package/plugins/pbr/skills/plan/templates/checker-prompt.md.tmpl +21 -21
  184. package/plugins/pbr/skills/plan/templates/gap-closure-prompt.md.tmpl +32 -32
  185. package/plugins/pbr/skills/plan/templates/planner-prompt.md.tmpl +38 -38
  186. package/plugins/pbr/skills/plan/templates/researcher-prompt.md.tmpl +19 -19
  187. package/plugins/pbr/skills/plan/templates/revision-prompt.md.tmpl +23 -23
  188. package/plugins/pbr/skills/quick/SKILL.md +354 -335
  189. package/plugins/pbr/skills/resume/SKILL.md +402 -388
  190. package/plugins/pbr/skills/review/SKILL.md +686 -652
  191. package/plugins/pbr/skills/review/templates/debugger-prompt.md.tmpl +60 -60
  192. package/plugins/pbr/skills/review/templates/gap-planner-prompt.md.tmpl +40 -40
  193. package/plugins/pbr/skills/review/templates/verifier-prompt.md.tmpl +115 -115
  194. package/plugins/pbr/skills/scan/SKILL.md +304 -269
  195. package/plugins/pbr/skills/scan/templates/mapper-prompt.md.tmpl +201 -201
  196. package/plugins/pbr/skills/setup/SKILL.md +253 -227
  197. package/plugins/pbr/skills/shared/commit-planning-docs.md +35 -35
  198. package/plugins/pbr/skills/shared/config-loading.md +102 -102
  199. package/plugins/pbr/skills/shared/context-budget.md +40 -40
  200. package/plugins/pbr/skills/shared/context-loader-task.md +86 -86
  201. package/plugins/pbr/skills/shared/digest-select.md +79 -79
  202. package/plugins/pbr/skills/shared/domain-probes.md +125 -125
  203. package/plugins/pbr/skills/shared/error-reporting.md +79 -79
  204. package/plugins/pbr/skills/shared/gate-prompts.md +388 -388
  205. package/plugins/pbr/skills/shared/phase-argument-parsing.md +45 -45
  206. package/plugins/pbr/skills/shared/progress-display.md +53 -53
  207. package/plugins/pbr/skills/shared/revision-loop.md +81 -81
  208. package/plugins/pbr/skills/shared/state-loading.md +62 -62
  209. package/plugins/pbr/skills/shared/state-update.md +161 -161
  210. package/plugins/pbr/skills/shared/universal-anti-patterns.md +33 -33
  211. package/plugins/pbr/skills/status/SKILL.md +367 -353
  212. package/plugins/pbr/skills/todo/SKILL.md +198 -181
  213. package/plugins/pbr/templates/CONTEXT.md.tmpl +52 -52
  214. package/plugins/pbr/templates/INTEGRATION-REPORT.md.tmpl +151 -151
  215. package/plugins/pbr/templates/RESEARCH-SUMMARY.md.tmpl +97 -97
  216. package/plugins/pbr/templates/ROADMAP.md.tmpl +40 -40
  217. package/plugins/pbr/templates/SUMMARY.md.tmpl +81 -81
  218. package/plugins/pbr/templates/VERIFICATION-DETAIL.md.tmpl +116 -116
  219. package/plugins/pbr/templates/codebase/ARCHITECTURE.md.tmpl +98 -98
  220. package/plugins/pbr/templates/codebase/CONCERNS.md.tmpl +93 -93
  221. package/plugins/pbr/templates/codebase/CONVENTIONS.md.tmpl +104 -104
  222. package/plugins/pbr/templates/codebase/INTEGRATIONS.md.tmpl +78 -78
  223. package/plugins/pbr/templates/codebase/STACK.md.tmpl +78 -78
  224. package/plugins/pbr/templates/codebase/STRUCTURE.md.tmpl +80 -80
  225. package/plugins/pbr/templates/codebase/TESTING.md.tmpl +107 -107
  226. package/plugins/pbr/templates/continue-here.md.tmpl +73 -73
  227. package/plugins/pbr/templates/prompt-partials/phase-project-context.md.tmpl +37 -37
  228. package/plugins/pbr/templates/research/ARCHITECTURE.md.tmpl +124 -124
  229. package/plugins/pbr/templates/research/STACK.md.tmpl +71 -71
  230. package/plugins/pbr/templates/research/SUMMARY.md.tmpl +112 -112
  231. package/plugins/pbr/templates/research-outputs/phase-research.md.tmpl +81 -81
  232. package/plugins/pbr/templates/research-outputs/project-research.md.tmpl +99 -99
  233. package/plugins/pbr/templates/research-outputs/synthesis.md.tmpl +36 -36
@@ -1,335 +1,354 @@
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
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
+ **STOPDO NOT READ THIS FILE. You are already reading it. This prompt was injected into your context by Claude Code's plugin system. Using the Read tool on this SKILL.md file wastes ~7,600 tokens. Begin executing Step 1 immediately.**
8
+
9
+ # /pbr:quick Quick Ad-Hoc Task Execution
10
+
11
+ 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.
12
+
13
+ This skill **spawns a single Task(subagent_type: "pbr:executor")** for execution.
14
+
15
+ ---
16
+
17
+ ## Step 0 Immediate Output
18
+
19
+ **Before ANY tool calls**, display this banner:
20
+
21
+ ```
22
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
23
+ PLAN-BUILD-RUN ► QUICK TASK
24
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
25
+ ```
26
+
27
+ Then proceed to Step 1.
28
+
29
+ ## Context Budget
30
+
31
+ Reference: `skills/shared/context-budget.md` for the universal orchestrator rules.
32
+
33
+ Additionally for this skill:
34
+ - **Never** implement the task yourself — you are a router, not a builder. ALL code changes go through a spawned `Task(subagent_type: "pbr:executor")`
35
+ - **Never** skip creating `.planning/quick/{NNN}-{slug}/` and writing PLAN.md even trivial tasks need tracking artifacts
36
+ - **Minimize** reading executor output into main context read only SUMMARY.md frontmatter
37
+
38
+ ## Core Principle
39
+
40
+ **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.
41
+
42
+ ---
43
+
44
+ ## Flow
45
+
46
+ ### Step 1: Check Project Context
47
+
48
+ 1. Check if `.planning/` directory exists
49
+ - If yes: read config.json for settings
50
+ - If no: create `.planning/` directory first, then warn "No Plan-Build-Run project found. This will create a standalone quick task. Consider running `/pbr:begin` first for full project tracking."
51
+
52
+ 2. **After** confirming `.planning/` directory exists (created in step 1 if needed), 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.
53
+
54
+ 3. Check if ROADMAP.md exists
55
+ - If yes: note the current phase context (quick tasks may relate to the active phase)
56
+ - If no: proceed without phase context
57
+
58
+ ### Step 2: Get Task Description
59
+
60
+ If `$ARGUMENTS` is provided and non-empty:
61
+ - Use `$ARGUMENTS` as the task description
62
+
63
+ If `$ARGUMENTS` is empty:
64
+ - Ask the user: "What do you need done? Describe the task in a sentence or two."
65
+ This is a freeform text prompt — do NOT use AskUserQuestion here. Task descriptions require arbitrary text input, not option selection.
66
+
67
+ ### Step 3: Validate Scope
68
+
69
+ Analyze the task description. If it appears to involve:
70
+ - More than ~5 files
71
+ - Multiple independent subsystems
72
+ - Significant architectural decisions
73
+ - Complex multi-step workflows
74
+
75
+ Then use the **scope-confirm** pattern (see `skills/shared/gate-prompts.md`):
76
+
77
+ Use AskUserQuestion:
78
+ 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?"
79
+ header: "Scope"
80
+ options:
81
+ - label: "Quick task" description: "Execute as lightweight task"
82
+ - label: "Full plan" description: "Switch to /pbr:plan for proper planning"
83
+ - label: "Revise" description: "Let me rewrite the task description"
84
+ multiSelect: false
85
+
86
+ If user selects "Quick task": continue to Step 4.
87
+ If user selects "Full plan": respond "Use `/pbr:plan` to create a full planning cycle for this task." and stop.
88
+ If user selects "Revise": go back to Step 2 to get a new task description.
89
+ If user types something else (freeform): interpret their response and proceed accordingly.
90
+
91
+ ### Step 4: Generate Slug and Task Number
92
+
93
+ **Generate slug:**
94
+ - Take the first 4-5 meaningful words from the description
95
+ - Lowercase, hyphen-separated
96
+ - Remove articles (a, an, the) and prepositions
97
+ - Example: "Fix auth bug in login flow" -> "fix-auth-bug-login"
98
+
99
+ **Find next task number:**
100
+ 1. Scan `.planning/quick/` directory for existing quick task directories
101
+ 2. Extract the NNN prefix from directory names (pattern: `{NNN}-{slug}/`)
102
+ 3. Next number = highest existing NNN + 1
103
+ 4. If no existing tasks: start at 001
104
+ 5. Zero-pad to 3 digits
105
+
106
+ ### Step 5: Create Quick Task Directory
107
+
108
+ Create: `.planning/quick/{NNN}-{slug}/`
109
+
110
+ ### Step 6: Create Minimal PLAN.md
111
+
112
+ Write `.planning/quick/{NNN}-{slug}/PLAN.md`:
113
+
114
+ 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.
115
+
116
+ **Plan generation rules:**
117
+ - Break the task into 1-3 tasks maximum (prefer fewer)
118
+ - Each task should be atomic (one commit per task)
119
+ - Infer file paths from the description and project context
120
+ - Include concrete verification commands
121
+ - If verification is unclear, use `echo "Manual verification needed"` and add a note
122
+
123
+ **For multi-task quick tasks**, add sequential tasks:
124
+
125
+ ```markdown
126
+ <task name="{task 1}" type="auto">
127
+ ...
128
+ </task>
129
+
130
+ <task name="{task 2}" type="auto">
131
+ ...
132
+ </task>
133
+ ```
134
+
135
+ **PLANNING GATE verify before spawning executor:**
136
+
137
+ Before proceeding to Step 7, confirm these exist on disk:
138
+ 1. `.planning/quick/{NNN}-{slug}/` directory exists
139
+ 2. `.planning/quick/{NNN}-{slug}/PLAN.md` exists, is non-empty, and contains at least one `<task>` block
140
+
141
+ If either check fails, you have skipped steps. Go back and complete Steps 4-6. Do NOT proceed to spawning an executor.
142
+
143
+ ### Step 7: Spawn Executor
144
+
145
+ **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.
146
+
147
+ Display to the user: `◐ Spawning executor...`
148
+
149
+ Spawn a `Task(subagent_type: "pbr:executor")` with the following prompt:
150
+
151
+ ```
152
+ You are executor. Execute the following quick task plan.
153
+
154
+ Plan file: .planning/quick/{NNN}-{slug}/PLAN.md
155
+ Phase: quick
156
+ Plan ID: {NNN}
157
+
158
+ Read the plan file and execute all tasks sequentially. Follow all executor protocols:
159
+ - Atomic commits per task
160
+ - Commit format: fix(quick-{NNN}): {description} (or feat/refactor/test as appropriate)
161
+ - Run verify commands
162
+ - Create SUMMARY.md at .planning/quick/{NNN}-{slug}/SUMMARY.md
163
+
164
+ Execute now.
165
+ ```
166
+
167
+ ### Step 8: Read Results
168
+
169
+ After the executor completes:
170
+ 1. Read `.planning/quick/{NNN}-{slug}/SUMMARY.md`
171
+ 2. Check the status field:
172
+ - `completed` — task succeeded
173
+ - `partial` — some tasks completed, others failed
174
+ - `failed` — task failed entirely
175
+
176
+ ### Step 9: Update STATE.md
177
+
178
+ If STATE.md exists, update the Quick Tasks section.
179
+
180
+ **If the section doesn't exist, create it:**
181
+
182
+ ```markdown
183
+ ### Quick Tasks
184
+
185
+ | # | Description | Status | Commit |
186
+ |---|-------------|--------|--------|
187
+ ```
188
+
189
+ **Add the new entry:**
190
+
191
+ ```markdown
192
+ | {NNN} | {description} | {status indicator} | {commit hash or "N/A"} |
193
+ ```
194
+
195
+ Status indicators:
196
+ - Completed: checkmark
197
+ - Partial: warning indicator
198
+ - Failed: X indicator
199
+
200
+ ### Step 10: Clean Up Active Skill
201
+
202
+ Delete `.planning/.active-skill` if it exists. This must happen on all paths (success, partial, and failure) before reporting results.
203
+
204
+ ### Step 11: Commit Planning Docs
205
+
206
+ Reference: `skills/shared/commit-planning-docs.md` for the standard commit pattern.
207
+
208
+ If `planning.commit_docs: true` in config.json:
209
+ - Stage the quick task directory files (PLAN.md, SUMMARY.md)
210
+ - Stage STATE.md changes
211
+ - Commit: `docs(planning): quick task {NNN} - {slug}`
212
+
213
+ ### Step 12: Report Results
214
+
215
+ **Artifact check** Before reporting, verify all required artifacts exist:
216
+ 1. `.planning/quick/{NNN}-{slug}/PLAN.md` exists
217
+ 2. `.planning/quick/{NNN}-{slug}/SUMMARY.md` exists and is non-empty
218
+ 3. STATE.md contains a quick task entry for {NNN} (if STATE.md exists)
219
+
220
+ If SUMMARY.md is missing: the executor may have failed — re-read executor output and report the failure.
221
+ If STATE.md entry is missing: write it now (Step 9 was skipped).
222
+
223
+ Display results to the user with branded output:
224
+
225
+ **If completed:**
226
+ ```
227
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
228
+ PLAN-BUILD-RUN ► QUICK TASK COMPLETE ✓
229
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
230
+
231
+ **Quick Task {NNN}:** {description}
232
+ Commit: {hash} — {commit message}
233
+ Files: {list of files changed}
234
+
235
+ ───────────────────────────────────────────────────────────────
236
+
237
+ ## ▶ Next Up
238
+
239
+ **Continue your workflow** task complete
240
+
241
+ `/pbr:status`
242
+
243
+ <sub>`/clear` first fresh context window</sub>
244
+
245
+ ───────────────────────────────────────────────────────────────
246
+
247
+ **Also available:**
248
+ - `/pbr:continue` — execute next logical step
249
+ - `/pbr:todo list` — see pending todos
250
+
251
+ ───────────────────────────────────────────────────────────────
252
+ ```
253
+
254
+ **If partial:**
255
+ ```
256
+ ⚠ Quick Task {NNN}: {description}
257
+ Completed: {N} of {M} tasks
258
+ Failed task: {task name} — {failure reason}
259
+
260
+ → Re-run with `/pbr:quick` to retry
261
+ `/pbr:debug` to investigate the failure
262
+ ```
263
+
264
+ **If failed:**
265
+ ```
266
+ ╔══════════════════════════════════════════════════════════════╗
267
+ ║ ERROR ║
268
+ ╚══════════════════════════════════════════════════════════════╝
269
+
270
+ Quick Task {NNN} failed: {failure details}
271
+
272
+ **To fix:** {what to try next}
273
+ ```
274
+
275
+ ---
276
+
277
+ ## Quick Task Plan Generation
278
+
279
+ ### Inferring File Paths
280
+
281
+ When the user describes a task, infer file paths from:
282
+ 1. The project structure (use Glob to find existing files matching keywords)
283
+ 2. The tech stack (from prior SUMMARY.md files or package.json/requirements.txt)
284
+ 3. Naming conventions in the codebase
285
+ 4. Explicit file mentions in the description
286
+
287
+ ### Inferring Verification
288
+
289
+ Choose verification based on context:
290
+
291
+ | Context | Verification Command |
292
+ |---------|---------------------|
293
+ | TypeScript project | `npx tsc --noEmit` |
294
+ | Has test files | `npm test` or `pytest` |
295
+ | Has ESLint | `npx eslint {files}` |
296
+ | Python project | `python -c "import {module}"` |
297
+ | Config change | `cat {file}` to verify content |
298
+ | Script | Run the script with safe args |
299
+ | Unknown | `echo "Manual verification needed"` |
300
+
301
+ ### Commit Type Selection
302
+
303
+ | Task Nature | Commit Type |
304
+ |-------------|-------------|
305
+ | Bug fix | `fix` |
306
+ | New feature/functionality | `feat` |
307
+ | Code restructuring | `refactor` |
308
+ | Adding tests | `test` |
309
+ | Config/tooling changes | `chore` |
310
+ | Documentation | `docs` |
311
+
312
+ ---
313
+
314
+ ## Edge Cases
315
+
316
+ ### No `.planning/` directory
317
+ - Create `.planning/quick/` directory
318
+ - Proceed without STATE.md integration
319
+ - Warn user about limited tracking
320
+
321
+ ### Executor fails entirely
322
+ - Delete `.planning/.active-skill` before reporting the error
323
+ - Read error output
324
+ - Present to user with suggestion
325
+ - Do NOT auto-retrylet the user decide
326
+
327
+ ### Task description is too vague
328
+ - Ask clarifying questions as plain text prompts (do NOT use AskUserQuestion these require freeform text answers):
329
+ - "Which file(s) need to change?"
330
+ - "What should the end result look like?"
331
+ - "Is there a specific error to fix?"
332
+
333
+ ### User provides a file path in the description
334
+ - Use it directly in the plan
335
+ - Read the file first to understand its context
336
+ - Tailor the plan to the specific file
337
+
338
+ ---
339
+
340
+ ## Anti-Patterns
341
+
342
+ **These are the most common failure modes. If you violate any of these, the skill has not executed correctly.**
343
+
344
+ 1. **DO NOT** implement the task yourself — you MUST spawn a `Task(subagent_type: "pbr:executor")`. This is the single most important rule.
345
+ 2. **DO NOT** skip creating `.planning/quick/{NNN}-{slug}/` — every quick task gets a tracking directory
346
+ 3. **DO NOT** skip writing PLAN.md — the executor needs a plan file to follow
347
+ 4. **DO NOT** create elaborate multi-wave plans — quick tasks should be 1-3 tasks max
348
+ 5. **DO NOT** spawn multiple executors — one executor for the whole quick task
349
+ 6. **DO NOT** skip the SUMMARY.md — even quick tasks need documentation
350
+ 7. **DO NOT** use `git add .` — stage specific files only
351
+ 8. **DO NOT** skip verification — every task needs a verify step
352
+ 9. **DO NOT** create a quick task for something that needs planning — suggest `/pbr:plan`
353
+ 10. **DO NOT** modify STATE.md if it doesn't exist (other than warning)
354
+ 11. **DO NOT** break the numbering sequence — always find the next number