@sienklogic/plan-build-run 2.0.0 → 2.0.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 (225) 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/pbr/.claude-plugin/plugin.json +13 -13
  53. package/plugins/pbr/UI-CONSISTENCY-GAPS.md +61 -61
  54. package/plugins/pbr/agents/codebase-mapper.md +279 -271
  55. package/plugins/pbr/agents/debugger.md +281 -281
  56. package/plugins/pbr/agents/executor.md +428 -407
  57. package/plugins/pbr/agents/general.md +164 -164
  58. package/plugins/pbr/agents/integration-checker.md +169 -141
  59. package/plugins/pbr/agents/plan-checker.md +296 -280
  60. package/plugins/pbr/agents/planner.md +358 -358
  61. package/plugins/pbr/agents/researcher.md +363 -363
  62. package/plugins/pbr/agents/synthesizer.md +230 -230
  63. package/plugins/pbr/agents/verifier.md +489 -454
  64. package/plugins/pbr/commands/begin.md +5 -5
  65. package/plugins/pbr/commands/build.md +5 -5
  66. package/plugins/pbr/commands/config.md +5 -5
  67. package/plugins/pbr/commands/continue.md +5 -5
  68. package/plugins/pbr/commands/debug.md +5 -5
  69. package/plugins/pbr/commands/discuss.md +5 -5
  70. package/plugins/pbr/commands/explore.md +5 -5
  71. package/plugins/pbr/commands/health.md +5 -5
  72. package/plugins/pbr/commands/help.md +5 -5
  73. package/plugins/pbr/commands/import.md +5 -5
  74. package/plugins/pbr/commands/milestone.md +5 -5
  75. package/plugins/pbr/commands/note.md +5 -5
  76. package/plugins/pbr/commands/pause.md +5 -5
  77. package/plugins/pbr/commands/plan.md +5 -5
  78. package/plugins/pbr/commands/quick.md +5 -5
  79. package/plugins/pbr/commands/resume.md +5 -5
  80. package/plugins/pbr/commands/review.md +5 -5
  81. package/plugins/pbr/commands/scan.md +5 -5
  82. package/plugins/pbr/commands/setup.md +5 -5
  83. package/plugins/pbr/commands/status.md +5 -5
  84. package/plugins/pbr/commands/todo.md +5 -5
  85. package/plugins/pbr/contexts/dev.md +27 -27
  86. package/plugins/pbr/contexts/research.md +28 -28
  87. package/plugins/pbr/contexts/review.md +36 -36
  88. package/plugins/pbr/hooks/hooks.json +183 -183
  89. package/plugins/pbr/references/agent-anti-patterns.md +24 -24
  90. package/plugins/pbr/references/agent-interactions.md +134 -134
  91. package/plugins/pbr/references/agent-teams.md +54 -54
  92. package/plugins/pbr/references/checkpoints.md +157 -157
  93. package/plugins/pbr/references/common-bug-patterns.md +13 -13
  94. package/plugins/pbr/references/config-reference.md +441 -0
  95. package/plugins/pbr/references/continuation-format.md +212 -212
  96. package/plugins/pbr/references/deviation-rules.md +112 -112
  97. package/plugins/pbr/references/git-integration.md +226 -226
  98. package/plugins/pbr/references/integration-patterns.md +117 -117
  99. package/plugins/pbr/references/model-profiles.md +99 -99
  100. package/plugins/pbr/references/model-selection.md +31 -31
  101. package/plugins/pbr/references/pbr-rules.md +193 -193
  102. package/plugins/pbr/references/plan-authoring.md +181 -181
  103. package/plugins/pbr/references/plan-format.md +287 -283
  104. package/plugins/pbr/references/planning-config.md +213 -213
  105. package/plugins/pbr/references/questioning.md +214 -214
  106. package/plugins/pbr/references/reading-verification.md +127 -127
  107. package/plugins/pbr/references/stub-patterns.md +160 -160
  108. package/plugins/pbr/references/subagent-coordination.md +119 -119
  109. package/plugins/pbr/references/ui-formatting.md +461 -399
  110. package/plugins/pbr/references/verification-patterns.md +198 -198
  111. package/plugins/pbr/references/wave-execution.md +95 -95
  112. package/plugins/pbr/scripts/auto-continue.js +80 -80
  113. package/plugins/pbr/scripts/check-dangerous-commands.js +136 -136
  114. package/plugins/pbr/scripts/check-doc-sprawl.js +102 -102
  115. package/plugins/pbr/scripts/check-phase-boundary.js +196 -196
  116. package/plugins/pbr/scripts/check-plan-format.js +270 -270
  117. package/plugins/pbr/scripts/check-roadmap-sync.js +322 -252
  118. package/plugins/pbr/scripts/check-skill-workflow.js +262 -262
  119. package/plugins/pbr/scripts/check-state-sync.js +476 -476
  120. package/plugins/pbr/scripts/check-subagent-output.js +144 -144
  121. package/plugins/pbr/scripts/config-schema.json +251 -251
  122. package/plugins/pbr/scripts/context-budget-check.js +287 -287
  123. package/plugins/pbr/scripts/event-handler.js +151 -151
  124. package/plugins/pbr/scripts/event-logger.js +92 -92
  125. package/plugins/pbr/scripts/hook-logger.js +80 -76
  126. package/plugins/pbr/scripts/hooks-schema.json +79 -79
  127. package/plugins/pbr/scripts/log-subagent.js +164 -152
  128. package/plugins/pbr/scripts/log-tool-failure.js +88 -88
  129. package/plugins/pbr/scripts/pbr-tools.js +1378 -1301
  130. package/plugins/pbr/scripts/post-write-dispatch.js +66 -66
  131. package/plugins/pbr/scripts/post-write-quality.js +207 -207
  132. package/plugins/pbr/scripts/pre-bash-dispatch.js +86 -56
  133. package/plugins/pbr/scripts/pre-write-dispatch.js +97 -62
  134. package/plugins/pbr/scripts/progress-tracker.js +281 -228
  135. package/plugins/pbr/scripts/run-hook.js +92 -0
  136. package/plugins/pbr/scripts/session-cleanup.js +254 -254
  137. package/plugins/pbr/scripts/status-line.js +288 -285
  138. package/plugins/pbr/scripts/suggest-compact.js +119 -119
  139. package/plugins/pbr/scripts/task-completed.js +45 -45
  140. package/plugins/pbr/scripts/track-context-budget.js +149 -119
  141. package/plugins/pbr/scripts/validate-commit.js +200 -200
  142. package/plugins/pbr/scripts/validate-plugin-structure.js +183 -172
  143. package/plugins/pbr/scripts/validate-task.js +106 -0
  144. package/plugins/pbr/skills/begin/SKILL.md +594 -545
  145. package/plugins/pbr/skills/begin/templates/PROJECT.md.tmpl +33 -33
  146. package/plugins/pbr/skills/begin/templates/REQUIREMENTS.md.tmpl +18 -18
  147. package/plugins/pbr/skills/begin/templates/STATE.md.tmpl +49 -49
  148. package/plugins/pbr/skills/begin/templates/config.json.tmpl +64 -63
  149. package/plugins/pbr/skills/begin/templates/researcher-prompt.md.tmpl +19 -19
  150. package/plugins/pbr/skills/begin/templates/roadmap-prompt.md.tmpl +30 -30
  151. package/plugins/pbr/skills/begin/templates/synthesis-prompt.md.tmpl +16 -16
  152. package/plugins/pbr/skills/build/SKILL.md +943 -962
  153. package/plugins/pbr/skills/config/SKILL.md +256 -241
  154. package/plugins/pbr/skills/continue/SKILL.md +164 -127
  155. package/plugins/pbr/skills/debug/SKILL.md +515 -489
  156. package/plugins/pbr/skills/debug/templates/continuation-prompt.md.tmpl +16 -16
  157. package/plugins/pbr/skills/debug/templates/initial-investigation-prompt.md.tmpl +27 -27
  158. package/plugins/pbr/skills/discuss/SKILL.md +347 -338
  159. package/plugins/pbr/skills/discuss/templates/CONTEXT.md.tmpl +61 -61
  160. package/plugins/pbr/skills/discuss/templates/decision-categories.md +9 -9
  161. package/plugins/pbr/skills/explore/SKILL.md +378 -362
  162. package/plugins/pbr/skills/health/SKILL.md +221 -186
  163. package/plugins/pbr/skills/health/templates/check-pattern.md.tmpl +30 -30
  164. package/plugins/pbr/skills/health/templates/output-format.md.tmpl +63 -63
  165. package/plugins/pbr/skills/help/SKILL.md +155 -140
  166. package/plugins/pbr/skills/import/SKILL.md +504 -490
  167. package/plugins/pbr/skills/milestone/SKILL.md +704 -673
  168. package/plugins/pbr/skills/milestone/templates/audit-report.md.tmpl +48 -48
  169. package/plugins/pbr/skills/milestone/templates/stats-file.md.tmpl +30 -30
  170. package/plugins/pbr/skills/note/SKILL.md +231 -212
  171. package/plugins/pbr/skills/pause/SKILL.md +249 -235
  172. package/plugins/pbr/skills/pause/templates/continue-here.md.tmpl +71 -71
  173. package/plugins/pbr/skills/plan/SKILL.md +685 -628
  174. package/plugins/pbr/skills/plan/decimal-phase-calc.md +98 -98
  175. package/plugins/pbr/skills/plan/templates/checker-prompt.md.tmpl +21 -21
  176. package/plugins/pbr/skills/plan/templates/gap-closure-prompt.md.tmpl +32 -32
  177. package/plugins/pbr/skills/plan/templates/planner-prompt.md.tmpl +38 -38
  178. package/plugins/pbr/skills/plan/templates/researcher-prompt.md.tmpl +19 -19
  179. package/plugins/pbr/skills/plan/templates/revision-prompt.md.tmpl +23 -23
  180. package/plugins/pbr/skills/quick/SKILL.md +354 -335
  181. package/plugins/pbr/skills/resume/SKILL.md +402 -388
  182. package/plugins/pbr/skills/review/SKILL.md +686 -652
  183. package/plugins/pbr/skills/review/templates/debugger-prompt.md.tmpl +60 -60
  184. package/plugins/pbr/skills/review/templates/gap-planner-prompt.md.tmpl +40 -40
  185. package/plugins/pbr/skills/review/templates/verifier-prompt.md.tmpl +115 -115
  186. package/plugins/pbr/skills/scan/SKILL.md +304 -269
  187. package/plugins/pbr/skills/scan/templates/mapper-prompt.md.tmpl +201 -201
  188. package/plugins/pbr/skills/setup/SKILL.md +253 -227
  189. package/plugins/pbr/skills/shared/commit-planning-docs.md +35 -35
  190. package/plugins/pbr/skills/shared/config-loading.md +102 -102
  191. package/plugins/pbr/skills/shared/context-budget.md +40 -40
  192. package/plugins/pbr/skills/shared/context-loader-task.md +86 -86
  193. package/plugins/pbr/skills/shared/digest-select.md +79 -79
  194. package/plugins/pbr/skills/shared/domain-probes.md +125 -125
  195. package/plugins/pbr/skills/shared/error-reporting.md +79 -79
  196. package/plugins/pbr/skills/shared/gate-prompts.md +388 -388
  197. package/plugins/pbr/skills/shared/phase-argument-parsing.md +45 -45
  198. package/plugins/pbr/skills/shared/progress-display.md +53 -53
  199. package/plugins/pbr/skills/shared/revision-loop.md +81 -81
  200. package/plugins/pbr/skills/shared/state-loading.md +62 -62
  201. package/plugins/pbr/skills/shared/state-update.md +161 -161
  202. package/plugins/pbr/skills/shared/universal-anti-patterns.md +33 -33
  203. package/plugins/pbr/skills/status/SKILL.md +367 -353
  204. package/plugins/pbr/skills/todo/SKILL.md +198 -181
  205. package/plugins/pbr/templates/CONTEXT.md.tmpl +52 -52
  206. package/plugins/pbr/templates/INTEGRATION-REPORT.md.tmpl +151 -151
  207. package/plugins/pbr/templates/RESEARCH-SUMMARY.md.tmpl +97 -97
  208. package/plugins/pbr/templates/ROADMAP.md.tmpl +40 -40
  209. package/plugins/pbr/templates/SUMMARY.md.tmpl +81 -81
  210. package/plugins/pbr/templates/VERIFICATION-DETAIL.md.tmpl +116 -116
  211. package/plugins/pbr/templates/codebase/ARCHITECTURE.md.tmpl +98 -98
  212. package/plugins/pbr/templates/codebase/CONCERNS.md.tmpl +93 -93
  213. package/plugins/pbr/templates/codebase/CONVENTIONS.md.tmpl +104 -104
  214. package/plugins/pbr/templates/codebase/INTEGRATIONS.md.tmpl +78 -78
  215. package/plugins/pbr/templates/codebase/STACK.md.tmpl +78 -78
  216. package/plugins/pbr/templates/codebase/STRUCTURE.md.tmpl +80 -80
  217. package/plugins/pbr/templates/codebase/TESTING.md.tmpl +107 -107
  218. package/plugins/pbr/templates/continue-here.md.tmpl +73 -73
  219. package/plugins/pbr/templates/prompt-partials/phase-project-context.md.tmpl +37 -37
  220. package/plugins/pbr/templates/research/ARCHITECTURE.md.tmpl +124 -124
  221. package/plugins/pbr/templates/research/STACK.md.tmpl +71 -71
  222. package/plugins/pbr/templates/research/SUMMARY.md.tmpl +112 -112
  223. package/plugins/pbr/templates/research-outputs/phase-research.md.tmpl +81 -81
  224. package/plugins/pbr/templates/research-outputs/project-research.md.tmpl +99 -99
  225. package/plugins/pbr/templates/research-outputs/synthesis.md.tmpl +36 -36
@@ -1,214 +1,214 @@
1
- # Deep Questioning Guide
2
-
3
- Techniques for understanding a user's project vision during `/pbr:begin`. The goal is to build a complete mental model of what needs to be built, not just a feature list.
4
-
5
- ---
6
-
7
- ## Core Questioning Techniques
8
-
9
- ### Challenge Vagueness
10
-
11
- When the user says something abstract or general, push for specifics.
12
-
13
- | They say | You ask |
14
- |----------|---------|
15
- | "It should be fast" | "Fast how? Page load under 1 second? API response under 200ms? What's the baseline today?" |
16
- | "A dashboard" | "What's on the dashboard? What data? What can users do with it?" |
17
- | "User management" | "What can users do? Sign up, log in, reset password? Roles? Permissions? Teams?" |
18
- | "It needs to scale" | "Scale to what? 100 users? 100,000? What's the growth timeline?" |
19
-
20
- ### Make Abstract Concrete
21
-
22
- Ask for examples and walk-throughs.
23
-
24
- - "Walk me through what a user does when they first open this."
25
- - "Give me an example of [that feature] in action."
26
- - "If I were a user right now, what would I see?"
27
- - "What does a typical session look like from start to finish?"
28
-
29
- ### Surface Assumptions
30
-
31
- Expose hidden assumptions the user hasn't stated.
32
-
33
- - "Why do you assume [X]? Is that a hard requirement?"
34
- - "Have you considered [alternative]? What made you choose [their approach]?"
35
- - "What if [assumption] turns out to be wrong?"
36
- - "Is that because of a technical constraint, or a preference?"
37
-
38
- ### Find Edges
39
-
40
- Probe for edge cases and boundary conditions.
41
-
42
- - "What happens when [unexpected input]?"
43
- - "What if two users do [action] at the same time?"
44
- - "What about offline/slow connections?"
45
- - "What if the user has [unusual state]?"
46
- - "What's the maximum [items/users/data] this needs to handle?"
47
-
48
- ### Reveal Motivation
49
-
50
- Understand the WHY behind features.
51
-
52
- - "Why does that matter?"
53
- - "What problem does that solve for the user?"
54
- - "What happens if we don't build that?"
55
- - "Who specifically needs this? Why?"
56
- - "What's the cost of getting this wrong?"
57
-
58
- ### Prioritize Ruthlessly
59
-
60
- Force ranking and trade-off decisions.
61
-
62
- - "If you could only ship three features, which three?"
63
- - "Would you rather have [A] done well or [A and B] done halfway?"
64
- - "What's the minimum that would make this useful?"
65
- - "What would you cut if you had to ship in half the time?"
66
-
67
- ### Surface Implications
68
-
69
- When the user states a preference or makes a choice, surface what it implies before moving on. This avoids surprises later and reveals whether the user has thought through the consequences.
70
-
71
- - "You want real-time updates. That typically means WebSockets, which adds deployment complexity. Are you prepared for that, or would polling work?"
72
- - "Card-based layout with sort/filter usually means client-side state management. How complex are your filtering needs?"
73
- - "You mentioned multi-tenant. That affects database design, auth, billing — have you thought through isolation boundaries?"
74
- - "Self-hosted deployment means you own uptime. Do you have monitoring and on-call plans?"
75
-
76
- The pattern: **[stated preference] implies [consequence]. Is that acceptable, or should we reconsider?**
77
-
78
- ### Frame Trade-offs, Not Menus
79
-
80
- Replace "Do you want A or B?" with trade-off framing that shows real consequences.
81
-
82
- | Instead of | Ask |
83
- |------------|-----|
84
- | "SQL or NoSQL?" | "SQL gives you strong consistency and relationships but needs schema migrations. NoSQL gives you flexible documents but makes joins painful. What matters more for your data?" |
85
- | "SSR or SPA?" | "SSR gives you better SEO and initial load, but adds server cost. SPA gives you snappier interactions but hurts discoverability. What's the priority?" |
86
- | "Monolith or microservices?" | "A monolith ships faster and is simpler to debug, but gets harder to scale independently. Microservices scale cleanly but add deployment and coordination overhead. Where are you on that spectrum?" |
87
-
88
- The pattern: **A gives you X but costs Y. B gives you Z but costs W. What matters more to you?**
89
-
90
- This produces better answers than binary choices because users reveal their actual priorities.
91
-
92
- ---
93
-
94
- ## Required Context Checklist
95
-
96
- By the end of questioning, you should have clear answers for ALL of these:
97
-
98
- ### The Problem
99
- - [ ] What problem is being solved?
100
- - [ ] Who has this problem? (specific users/personas)
101
- - [ ] How are they solving it today? (current state)
102
- - [ ] Why is the current solution inadequate?
103
-
104
- ### The Solution
105
- - [ ] What is being built? (concrete description)
106
- - [ ] What does "done" look like? (at least 3 success criteria)
107
- - [ ] What are the core features? (prioritized)
108
- - [ ] What is explicitly NOT being built? (scope boundaries)
109
-
110
- ### Constraints
111
- - [ ] Technology choices already made (language, framework, hosting)
112
- - [ ] Budget constraints (money, time, resources)
113
- - [ ] Team constraints (size, skill level, availability)
114
- - [ ] Integration constraints (existing systems, APIs, databases)
115
- - [ ] Timeline expectations (deadlines, milestones)
116
-
117
- ### Decisions Already Made
118
- - [ ] Architecture preferences or requirements
119
- - [ ] Deployment environment (cloud, self-hosted, serverless)
120
- - [ ] Authentication approach
121
- - [ ] Data storage approach
122
- - [ ] Third-party services to use
123
-
124
- ### Edge Cases and Concerns
125
- - [ ] What keeps them up at night about this project?
126
- - [ ] What's the hardest part?
127
- - [ ] What might go wrong?
128
- - [ ] What are they unsure about?
129
-
130
- ---
131
-
132
- ## Progressive Depth Layers
133
-
134
- Structure the conversation as deepening layers. Each layer builds on the previous one. You do not need to complete every layer in every project, but the order matters — do not jump to Layer 3 before Layer 1 is solid.
135
-
136
- ### Layer 1: Shape — "What are you building?"
137
- Establish the broad outline. What is it, who is it for, what does it do?
138
- - Core purpose and user personas
139
- - Primary features and workflows
140
- - Technology preferences or constraints
141
-
142
- ### Layer 2: Feel — "How should users experience this?"
143
- Move from structure to experience. How does it feel to use?
144
- - UI expectations, interaction patterns, responsiveness
145
- - Tone, branding, visual direction
146
- - Performance expectations from the user's perspective
147
-
148
- ### Layer 3: Edges — "What happens when things go wrong?"
149
- Probe failure modes, edge cases, and the unexpected.
150
- - Error handling, empty states, data conflicts
151
- - Permission boundaries, rate limits, abuse scenarios
152
- - What the user has NOT thought about yet
153
-
154
- ### Layer 4: System — "How does this fit into the bigger picture?"
155
- Zoom out to the surrounding ecosystem.
156
- - Integrations, data flows, deployment environment
157
- - Operational concerns — monitoring, backups, migrations
158
- - Future evolution and extensibility
159
-
160
- ---
161
-
162
- ## Conversation Flow
163
-
164
- The conversation should feel natural, not like an interrogation. Follow this general arc:
165
-
166
- ### Opening (1-2 exchanges)
167
- Start broad and let them paint the picture:
168
- - "What are you building?"
169
- - "Tell me about this project."
170
-
171
- ### Exploration (3-5 exchanges)
172
- Dive into specifics on each area they mention:
173
- - Follow their energy — explore what they're excited about
174
- - Circle back to areas they glossed over
175
- - Use "tell me more about..." and "what does that mean exactly?"
176
-
177
- ### Constraints (2-3 exchanges)
178
- Shift to practical matters:
179
- - "What are you working with? Language, framework, hosting?"
180
- - "Any hard constraints I should know about?"
181
- - "What's the timeline looking like?"
182
-
183
- ### Prioritization (1-2 exchanges)
184
- Force trade-offs:
185
- - "Of everything we discussed, what's the core? What MUST be in v1?"
186
- - "What can wait for v2?"
187
-
188
- ### Confirmation (1 exchange)
189
- Summarize back what you heard and confirm:
190
- - "Let me play this back: you're building [X] that [does Y] for [users Z]. The core features are [A, B, C]. You're using [stack]. The biggest risk is [concern]. Did I get that right?"
191
-
192
- ---
193
-
194
- ## Domain-Aware Probing
195
-
196
- When the user mentions a specific technology area (e.g., "React app", "REST API", "real-time chat"), use domain-specific follow-up questions to go deeper. General questions miss critical details that only matter in that domain.
197
-
198
- See **[skills/shared/domain-probes.md](../shared/domain-probes.md)** for technology-specific probing patterns organized by domain (frontend frameworks, databases, APIs, auth, deployment, etc.). Reference those patterns when the conversation enters a technology-specific area rather than relying on generic follow-ups.
199
-
200
- ---
201
-
202
- ## Anti-Patterns
203
-
204
- 1. **DO NOT** present a form and ask users to fill it in
205
- 2. **DO NOT** ask all questions at once — have a conversation
206
- 3. **DO NOT** assume you know what they want — ask
207
- 4. **DO NOT** suggest technologies before understanding the problem
208
- 5. **DO NOT** skip edge case exploration
209
- 6. **DO NOT** accept vague answers — push for specifics
210
- 7. **DO NOT** rush through questioning to get to planning
211
- 8. **DO NOT** ignore concerns or hand-wave them away
212
- 9. **DO NOT** lead the user toward a particular solution
213
- 10. **DO NOT** forget to summarize and confirm understanding
214
- 11. **DO NOT** ask what you already know — track what the user has stated and never re-ask it. If they said "I'm using React", do not later ask "Are you using a frontend framework?" If they said "PostgreSQL", do not ask "What database are you using?" Redundant questions waste exchanges and erode trust. Instead, build on what you know: "You mentioned React — are you using Next.js or plain CRA?"
1
+ # Deep Questioning Guide
2
+
3
+ Techniques for understanding a user's project vision during `/pbr:begin`. The goal is to build a complete mental model of what needs to be built, not just a feature list.
4
+
5
+ ---
6
+
7
+ ## Core Questioning Techniques
8
+
9
+ ### Challenge Vagueness
10
+
11
+ When the user says something abstract or general, push for specifics.
12
+
13
+ | They say | You ask |
14
+ |----------|---------|
15
+ | "It should be fast" | "Fast how? Page load under 1 second? API response under 200ms? What's the baseline today?" |
16
+ | "A dashboard" | "What's on the dashboard? What data? What can users do with it?" |
17
+ | "User management" | "What can users do? Sign up, log in, reset password? Roles? Permissions? Teams?" |
18
+ | "It needs to scale" | "Scale to what? 100 users? 100,000? What's the growth timeline?" |
19
+
20
+ ### Make Abstract Concrete
21
+
22
+ Ask for examples and walk-throughs.
23
+
24
+ - "Walk me through what a user does when they first open this."
25
+ - "Give me an example of [that feature] in action."
26
+ - "If I were a user right now, what would I see?"
27
+ - "What does a typical session look like from start to finish?"
28
+
29
+ ### Surface Assumptions
30
+
31
+ Expose hidden assumptions the user hasn't stated.
32
+
33
+ - "Why do you assume [X]? Is that a hard requirement?"
34
+ - "Have you considered [alternative]? What made you choose [their approach]?"
35
+ - "What if [assumption] turns out to be wrong?"
36
+ - "Is that because of a technical constraint, or a preference?"
37
+
38
+ ### Find Edges
39
+
40
+ Probe for edge cases and boundary conditions.
41
+
42
+ - "What happens when [unexpected input]?"
43
+ - "What if two users do [action] at the same time?"
44
+ - "What about offline/slow connections?"
45
+ - "What if the user has [unusual state]?"
46
+ - "What's the maximum [items/users/data] this needs to handle?"
47
+
48
+ ### Reveal Motivation
49
+
50
+ Understand the WHY behind features.
51
+
52
+ - "Why does that matter?"
53
+ - "What problem does that solve for the user?"
54
+ - "What happens if we don't build that?"
55
+ - "Who specifically needs this? Why?"
56
+ - "What's the cost of getting this wrong?"
57
+
58
+ ### Prioritize Ruthlessly
59
+
60
+ Force ranking and trade-off decisions.
61
+
62
+ - "If you could only ship three features, which three?"
63
+ - "Would you rather have [A] done well or [A and B] done halfway?"
64
+ - "What's the minimum that would make this useful?"
65
+ - "What would you cut if you had to ship in half the time?"
66
+
67
+ ### Surface Implications
68
+
69
+ When the user states a preference or makes a choice, surface what it implies before moving on. This avoids surprises later and reveals whether the user has thought through the consequences.
70
+
71
+ - "You want real-time updates. That typically means WebSockets, which adds deployment complexity. Are you prepared for that, or would polling work?"
72
+ - "Card-based layout with sort/filter usually means client-side state management. How complex are your filtering needs?"
73
+ - "You mentioned multi-tenant. That affects database design, auth, billing — have you thought through isolation boundaries?"
74
+ - "Self-hosted deployment means you own uptime. Do you have monitoring and on-call plans?"
75
+
76
+ The pattern: **[stated preference] implies [consequence]. Is that acceptable, or should we reconsider?**
77
+
78
+ ### Frame Trade-offs, Not Menus
79
+
80
+ Replace "Do you want A or B?" with trade-off framing that shows real consequences.
81
+
82
+ | Instead of | Ask |
83
+ |------------|-----|
84
+ | "SQL or NoSQL?" | "SQL gives you strong consistency and relationships but needs schema migrations. NoSQL gives you flexible documents but makes joins painful. What matters more for your data?" |
85
+ | "SSR or SPA?" | "SSR gives you better SEO and initial load, but adds server cost. SPA gives you snappier interactions but hurts discoverability. What's the priority?" |
86
+ | "Monolith or microservices?" | "A monolith ships faster and is simpler to debug, but gets harder to scale independently. Microservices scale cleanly but add deployment and coordination overhead. Where are you on that spectrum?" |
87
+
88
+ The pattern: **A gives you X but costs Y. B gives you Z but costs W. What matters more to you?**
89
+
90
+ This produces better answers than binary choices because users reveal their actual priorities.
91
+
92
+ ---
93
+
94
+ ## Required Context Checklist
95
+
96
+ By the end of questioning, you should have clear answers for ALL of these:
97
+
98
+ ### The Problem
99
+ - [ ] What problem is being solved?
100
+ - [ ] Who has this problem? (specific users/personas)
101
+ - [ ] How are they solving it today? (current state)
102
+ - [ ] Why is the current solution inadequate?
103
+
104
+ ### The Solution
105
+ - [ ] What is being built? (concrete description)
106
+ - [ ] What does "done" look like? (at least 3 success criteria)
107
+ - [ ] What are the core features? (prioritized)
108
+ - [ ] What is explicitly NOT being built? (scope boundaries)
109
+
110
+ ### Constraints
111
+ - [ ] Technology choices already made (language, framework, hosting)
112
+ - [ ] Budget constraints (money, time, resources)
113
+ - [ ] Team constraints (size, skill level, availability)
114
+ - [ ] Integration constraints (existing systems, APIs, databases)
115
+ - [ ] Timeline expectations (deadlines, milestones)
116
+
117
+ ### Decisions Already Made
118
+ - [ ] Architecture preferences or requirements
119
+ - [ ] Deployment environment (cloud, self-hosted, serverless)
120
+ - [ ] Authentication approach
121
+ - [ ] Data storage approach
122
+ - [ ] Third-party services to use
123
+
124
+ ### Edge Cases and Concerns
125
+ - [ ] What keeps them up at night about this project?
126
+ - [ ] What's the hardest part?
127
+ - [ ] What might go wrong?
128
+ - [ ] What are they unsure about?
129
+
130
+ ---
131
+
132
+ ## Progressive Depth Layers
133
+
134
+ Structure the conversation as deepening layers. Each layer builds on the previous one. You do not need to complete every layer in every project, but the order matters — do not jump to Layer 3 before Layer 1 is solid.
135
+
136
+ ### Layer 1: Shape — "What are you building?"
137
+ Establish the broad outline. What is it, who is it for, what does it do?
138
+ - Core purpose and user personas
139
+ - Primary features and workflows
140
+ - Technology preferences or constraints
141
+
142
+ ### Layer 2: Feel — "How should users experience this?"
143
+ Move from structure to experience. How does it feel to use?
144
+ - UI expectations, interaction patterns, responsiveness
145
+ - Tone, branding, visual direction
146
+ - Performance expectations from the user's perspective
147
+
148
+ ### Layer 3: Edges — "What happens when things go wrong?"
149
+ Probe failure modes, edge cases, and the unexpected.
150
+ - Error handling, empty states, data conflicts
151
+ - Permission boundaries, rate limits, abuse scenarios
152
+ - What the user has NOT thought about yet
153
+
154
+ ### Layer 4: System — "How does this fit into the bigger picture?"
155
+ Zoom out to the surrounding ecosystem.
156
+ - Integrations, data flows, deployment environment
157
+ - Operational concerns — monitoring, backups, migrations
158
+ - Future evolution and extensibility
159
+
160
+ ---
161
+
162
+ ## Conversation Flow
163
+
164
+ The conversation should feel natural, not like an interrogation. Follow this general arc:
165
+
166
+ ### Opening (1-2 exchanges)
167
+ Start broad and let them paint the picture:
168
+ - "What are you building?"
169
+ - "Tell me about this project."
170
+
171
+ ### Exploration (3-5 exchanges)
172
+ Dive into specifics on each area they mention:
173
+ - Follow their energy — explore what they're excited about
174
+ - Circle back to areas they glossed over
175
+ - Use "tell me more about..." and "what does that mean exactly?"
176
+
177
+ ### Constraints (2-3 exchanges)
178
+ Shift to practical matters:
179
+ - "What are you working with? Language, framework, hosting?"
180
+ - "Any hard constraints I should know about?"
181
+ - "What's the timeline looking like?"
182
+
183
+ ### Prioritization (1-2 exchanges)
184
+ Force trade-offs:
185
+ - "Of everything we discussed, what's the core? What MUST be in v1?"
186
+ - "What can wait for v2?"
187
+
188
+ ### Confirmation (1 exchange)
189
+ Summarize back what you heard and confirm:
190
+ - "Let me play this back: you're building [X] that [does Y] for [users Z]. The core features are [A, B, C]. You're using [stack]. The biggest risk is [concern]. Did I get that right?"
191
+
192
+ ---
193
+
194
+ ## Domain-Aware Probing
195
+
196
+ When the user mentions a specific technology area (e.g., "React app", "REST API", "real-time chat"), use domain-specific follow-up questions to go deeper. General questions miss critical details that only matter in that domain.
197
+
198
+ See **[skills/shared/domain-probes.md](../shared/domain-probes.md)** for technology-specific probing patterns organized by domain (frontend frameworks, databases, APIs, auth, deployment, etc.). Reference those patterns when the conversation enters a technology-specific area rather than relying on generic follow-ups.
199
+
200
+ ---
201
+
202
+ ## Anti-Patterns
203
+
204
+ 1. **DO NOT** present a form and ask users to fill it in
205
+ 2. **DO NOT** ask all questions at once — have a conversation
206
+ 3. **DO NOT** assume you know what they want — ask
207
+ 4. **DO NOT** suggest technologies before understanding the problem
208
+ 5. **DO NOT** skip edge case exploration
209
+ 6. **DO NOT** accept vague answers — push for specifics
210
+ 7. **DO NOT** rush through questioning to get to planning
211
+ 8. **DO NOT** ignore concerns or hand-wave them away
212
+ 9. **DO NOT** lead the user toward a particular solution
213
+ 10. **DO NOT** forget to summarize and confirm understanding
214
+ 11. **DO NOT** ask what you already know — track what the user has stated and never re-ask it. If they said "I'm using React", do not later ask "Are you using a frontend framework?" If they said "PostgreSQL", do not ask "What database are you using?" Redundant questions waste exchanges and erode trust. Instead, build on what you know: "You mentioned React — are you using Next.js or plain CRA?"