gsd-opencode 1.3.33 → 1.4.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 (67) hide show
  1. package/LICENSE +21 -0
  2. package/command/gsd/add-phase.md +3 -3
  3. package/command/gsd/add-todo.md +182 -0
  4. package/command/gsd/check-todos.md +217 -0
  5. package/command/gsd/complete-milestone.md +4 -3
  6. package/command/gsd/consider-issues.md +5 -5
  7. package/command/gsd/create-roadmap.md +4 -4
  8. package/command/gsd/debug.md +58 -0
  9. package/command/gsd/discuss-phase.md +3 -4
  10. package/command/gsd/execute-phase.md +137 -0
  11. package/command/gsd/execute-plan.md +70 -95
  12. package/command/gsd/help.md +83 -6
  13. package/command/gsd/insert-phase.md +16 -16
  14. package/command/gsd/list-phase-assumptions.md +8 -8
  15. package/command/gsd/map-codebase.md +11 -11
  16. package/command/gsd/new-milestone.md +1 -1
  17. package/command/gsd/new-project.md +26 -7
  18. package/command/gsd/pause-work.md +4 -3
  19. package/command/gsd/plan-fix.md +8 -8
  20. package/command/gsd/plan-phase.md +9 -9
  21. package/command/gsd/progress.md +20 -11
  22. package/command/gsd/remove-phase.md +15 -15
  23. package/command/gsd/research-phase.md +10 -10
  24. package/command/gsd/resume-work.md +4 -5
  25. package/command/gsd/status.md +127 -0
  26. package/command/gsd/verify-work.md +8 -8
  27. package/get-shit-done/references/continuation-format.md +8 -8
  28. package/get-shit-done/references/debugging/debugging-mindset.md +253 -0
  29. package/get-shit-done/references/debugging/hypothesis-testing.md +373 -0
  30. package/get-shit-done/references/debugging/investigation-techniques.md +337 -0
  31. package/get-shit-done/references/debugging/verification-patterns.md +425 -0
  32. package/get-shit-done/references/debugging/when-to-research.md +361 -0
  33. package/get-shit-done/references/plan-format.md +68 -21
  34. package/get-shit-done/references/questioning.md +12 -12
  35. package/get-shit-done/references/research-pitfalls.md +2 -2
  36. package/get-shit-done/references/scope-estimation.md +95 -11
  37. package/get-shit-done/templates/DEBUG.md +159 -0
  38. package/get-shit-done/templates/agent-history.md +263 -0
  39. package/get-shit-done/templates/checkpoint-return.md +204 -0
  40. package/get-shit-done/templates/codebase/architecture.md +4 -4
  41. package/get-shit-done/templates/codebase/concerns.md +1 -1
  42. package/get-shit-done/templates/codebase/structure.md +11 -11
  43. package/get-shit-done/templates/config.json +8 -0
  44. package/get-shit-done/templates/context.md +0 -21
  45. package/get-shit-done/templates/continuation-prompt.md +235 -0
  46. package/get-shit-done/templates/milestone-archive.md +1 -1
  47. package/get-shit-done/templates/phase-prompt.md +289 -129
  48. package/get-shit-done/templates/roadmap.md +1 -1
  49. package/get-shit-done/templates/state.md +11 -0
  50. package/get-shit-done/templates/subagent-task-prompt.md +95 -0
  51. package/get-shit-done/templates/summary.md +2 -2
  52. package/get-shit-done/workflows/_archive/execute-phase.md +899 -0
  53. package/get-shit-done/workflows/complete-milestone.md +1 -1
  54. package/get-shit-done/workflows/create-milestone.md +1 -1
  55. package/get-shit-done/workflows/create-roadmap.md +2 -2
  56. package/get-shit-done/workflows/debug.md +426 -0
  57. package/get-shit-done/workflows/discovery-phase.md +1 -1
  58. package/get-shit-done/workflows/discuss-milestone.md +6 -6
  59. package/get-shit-done/workflows/discuss-phase.md +12 -22
  60. package/get-shit-done/workflows/execute-phase.md +272 -1504
  61. package/get-shit-done/workflows/execute-plan.md +1813 -0
  62. package/get-shit-done/workflows/map-codebase.md +9 -9
  63. package/get-shit-done/workflows/plan-phase.md +262 -49
  64. package/get-shit-done/workflows/resume-project.md +28 -2
  65. package/get-shit-done/workflows/transition.md +4 -4
  66. package/get-shit-done/workflows/verify-work.md +4 -4
  67. package/package.json +1 -1
@@ -0,0 +1,361 @@
1
+
2
+ <overview>
3
+ Debugging requires both reasoning about code and researching external knowledge. The skill is knowing when to use each. This guide helps you recognize signals that indicate you need external knowledge vs when you can reason through the problem with the code in front of you.
4
+ </overview>
5
+
6
+
7
+ <research_signals>
8
+
9
+ **1. Error messages you don't recognize**
10
+ - Stack traces from libraries you haven't used
11
+ - Cryptic system errors
12
+ - Framework-specific error codes
13
+
14
+ **Action**: Web search the exact error message in quotes
15
+ - Often leads to GitHub issues, Stack Overflow, or official docs
16
+ - Others have likely encountered this
17
+
18
+ <example>
19
+ Error: `EADDRINUSE: address already in use :::3000`
20
+
21
+ This is a system-level error. Research it:
22
+ - Web search: "EADDRINUSE address already in use"
23
+ - Learn: Port is already occupied by another process
24
+ - Solution: Find and kill the process, or use different port
25
+ </example>
26
+
27
+ **2. Library/framework behavior doesn't match expectations**
28
+ - You're using a library correctly (you think) but it's not working
29
+ - Documentation seems to contradict behavior
30
+ - Version-specific quirks
31
+
32
+ **Action**: Check official documentation and recent issues
33
+ - Use Context7 MCP for library docs
34
+ - Search GitHub issues for the library
35
+ - Check if there are breaking changes in recent versions
36
+
37
+ <example>
38
+ You're using `useEffect` in React but it's running on every render despite empty dependency array.
39
+
40
+ Research needed:
41
+ - Check React docs for useEffect rules
42
+ - Search: "useEffect running on every render"
43
+ - Discover: React 18 StrictMode runs effects twice in dev mode
44
+ </example>
45
+
46
+ **3. Domain knowledge gaps**
47
+ - Debugging authentication: need to understand OAuth flow
48
+ - Debugging database: need to understand indexes, query optimization
49
+ - Debugging networking: need to understand HTTP caching, CORS
50
+
51
+ **Action**: Research the domain concept, not just the specific bug
52
+ - Use MCP servers for domain knowledge
53
+ - Read official specifications
54
+ - Find authoritative guides
55
+
56
+ **4. Platform-specific behavior**
57
+ - "Works in Chrome but not Safari"
58
+ - "Works on Mac but not Windows"
59
+ - "Works in Node 16 but not Node 18"
60
+
61
+ **Action**: Research platform differences
62
+ - Browser compatibility tables
63
+ - Platform-specific documentation
64
+ - Known platform bugs
65
+
66
+ **5. Recent changes in ecosystem**
67
+ - Package update broke something
68
+ - New framework version behaves differently
69
+ - Deprecated API
70
+
71
+ **Action**: Check changelogs and migration guides
72
+ - Library CHANGELOG.md
73
+ - Migration guides
74
+ - "Breaking changes" documentation
75
+
76
+ </research_signals>
77
+
78
+
79
+ <reasoning_signals>
80
+
81
+ **1. The bug is in YOUR code**
82
+ - Not library behavior, not system issues
83
+ - Your business logic, your data structures
84
+ - Code you or your team wrote
85
+
86
+ **Approach**: Read the code, trace execution, add logging
87
+ - You have full access to the code
88
+ - You can modify it to add observability
89
+ - No external documentation will help
90
+
91
+ <example>
92
+ Bug: Shopping cart total calculates incorrectly
93
+
94
+ This is your logic:
95
+ ```javascript
96
+ function calculateTotal(items) {
97
+ return items.reduce((sum, item) => sum + item.price * item.quantity, 0);
98
+ }
99
+ ```
100
+
101
+ Don't research "shopping cart calculation bugs"
102
+ DO reason through it:
103
+ - Log each item's price and quantity
104
+ - Log the running sum
105
+ - Trace the logic step by step
106
+ </example>
107
+
108
+ **2. You have all the information needed**
109
+ - The bug is reproducible
110
+ - You can read all relevant code
111
+ - No external dependencies involved
112
+
113
+ **Approach**: Use investigation techniques
114
+ - Binary search to narrow down
115
+ - Minimal reproduction
116
+ - Working backwards
117
+ - Add observability
118
+
119
+ **3. It's a logic error, not a knowledge gap**
120
+ - Off-by-one errors
121
+ - Wrong conditional
122
+ - State management issue
123
+ - Data transformation bug
124
+
125
+ **Approach**: Trace the logic carefully
126
+ - Print intermediate values
127
+ - Check assumptions
128
+ - Verify each step
129
+
130
+ **4. The answer is in the behavior, not the documentation**
131
+ - "What is this function actually doing?"
132
+ - "Why is this value null?"
133
+ - "When does this code execute?"
134
+
135
+ **Approach**: Observe the actual behavior
136
+ - Add logging
137
+ - Use a debugger
138
+ - Test with different inputs
139
+
140
+ </reasoning_signals>
141
+
142
+
143
+ <research_how>
144
+
145
+ **Web Search - When and How**
146
+
147
+ **When**:
148
+ - Error messages
149
+ - Library-specific questions
150
+ - "How to X in framework Y"
151
+ - Troubleshooting platform issues
152
+
153
+ **How**:
154
+ - Use exact error messages in quotes: `"Cannot read property 'map' of undefined"`
155
+ - Include framework/library version: `"react 18 useEffect behavior"`
156
+ - Add "github issue" for known bugs: `"prisma connection pool github issue"`
157
+ - Add year for recent changes: `"nextjs 14 middleware 2024"`
158
+
159
+ **Good search queries**:
160
+ - `"ECONNREFUSED" node.js postgres`
161
+ - `"Maximum update depth exceeded" react hooks`
162
+ - `typescript generic constraints examples`
163
+
164
+ **Bad search queries**:
165
+ - `my code doesn't work` (too vague)
166
+ - `bug in react` (too broad)
167
+ - `help` (useless)
168
+
169
+ **Context7 MCP - When and How**
170
+
171
+ **When**:
172
+ - Need API reference
173
+ - Understanding library concepts
174
+ - Finding specific function signatures
175
+ - Learning correct usage patterns
176
+
177
+ **How**:
178
+ ```
179
+ Use mcp__context7__resolve-library-id with library name
180
+ Then mcp__context7__get-library-docs with library ID
181
+ Ask specific questions about the library
182
+ ```
183
+
184
+ **Good uses**:
185
+ - "How do I use Prisma transactions?"
186
+ - "What are the parameters for stripe.customers.create?"
187
+ - "How does Express middleware error handling work?"
188
+
189
+ **Bad uses**:
190
+ - "Fix my bug" (too vague, Context7 provides docs not debugging)
191
+ - "Why isn't my code working?" (need to research specific concepts, not general debugging)
192
+
193
+ **GitHub Issues Search**
194
+
195
+ **When**:
196
+ - Experiencing behavior that seems like a bug
197
+ - Library not working as documented
198
+ - Looking for workarounds
199
+
200
+ **How**:
201
+ - Search in the library's GitHub repo
202
+ - Include relevant keywords
203
+ - Check both open and closed issues
204
+ - Look for issues with "bug" or "regression" labels
205
+
206
+ **Official Documentation**
207
+
208
+ **When**:
209
+ - Learning how something should work
210
+ - Checking if you're using API correctly
211
+ - Understanding configuration options
212
+ - Finding migration guides
213
+
214
+ **How**:
215
+ - Start with official docs, not blog posts
216
+ - Check version-specific docs
217
+ - Read examples and guides, not just API reference
218
+ - Look for "Common Pitfalls" or "Troubleshooting" sections
219
+
220
+ </research_how>
221
+
222
+
223
+ <balance>
224
+
225
+ **The research trap**: Spending hours reading docs about topics tangential to your bug
226
+ - You think it's a caching issue, so you read all about cache invalidation
227
+ - But the actual bug is a typo in a variable name
228
+
229
+ **The reasoning trap**: Spending hours reading code when the answer is well-documented
230
+ - You're debugging why auth doesn't work
231
+ - The docs clearly explain the setup you missed
232
+ - You could have found it in 5 minutes of reading
233
+
234
+ **The balance**:
235
+
236
+ 1. **Start with quick research** (5-10 minutes)
237
+ - Search the error message
238
+ - Check official docs for the feature you're using
239
+ - Skim recent issues
240
+
241
+ 2. **If research doesn't yield answers, switch to reasoning**
242
+ - Add logging
243
+ - Trace execution
244
+ - Form hypotheses
245
+
246
+ 3. **If reasoning reveals knowledge gaps, research those specific gaps**
247
+ - "I need to understand how WebSocket reconnection works"
248
+ - "I need to know if this library supports transactions"
249
+
250
+ 4. **Alternate as needed**
251
+ - Research → reveals what to investigate
252
+ - Reasoning → reveals what to research
253
+ - Keep switching based on what you learn
254
+
255
+ <example>
256
+ **Bug**: Real-time updates stop working after 1 hour
257
+
258
+ **Start with research** (5 min):
259
+ - Search: "websocket connection drops after 1 hour"
260
+ - Find: Common issue with load balancers having connection timeouts
261
+
262
+ **Switch to reasoning**:
263
+ - Check if you're using a load balancer: YES
264
+ - Check load balancer timeout setting: 3600 seconds (1 hour)
265
+ - Hypothesis: Load balancer is killing the connection
266
+
267
+ **Quick research**:
268
+ - Search: "websocket load balancer timeout fix"
269
+ - Find: Implement heartbeat/ping to keep connection alive
270
+
271
+ **Reasoning**:
272
+ - Check if library supports heartbeat: YES
273
+ - Implement ping every 30 seconds
274
+ - Test: Connection stays alive for 3+ hours
275
+
276
+ **Total time**: 20 minutes (research: 10 min, reasoning: 10 min)
277
+ **Success**: Found and fixed the issue
278
+
279
+ vs
280
+
281
+ **Wrong approach**: Spend 2 hours reading WebSocket spec
282
+ - Learned a lot about WebSocket protocol
283
+ - Didn't solve the problem (it was a config issue)
284
+ </example>
285
+
286
+ </balance>
287
+
288
+
289
+ <decision_tree>
290
+ ```
291
+ Is this a error message I don't recognize?
292
+ ├─ YES → Web search the error message
293
+ └─ NO ↓
294
+
295
+ Is this library/framework behavior I don't understand?
296
+ ├─ YES → Check docs (Context7 or official docs)
297
+ └─ NO ↓
298
+
299
+ Is this code I/my team wrote?
300
+ ├─ YES → Reason through it (logging, tracing, hypothesis testing)
301
+ └─ NO ↓
302
+
303
+ Is this a platform/environment difference?
304
+ ├─ YES → Research platform-specific behavior
305
+ └─ NO ↓
306
+
307
+ Can I observe the behavior directly?
308
+ ├─ YES → Add observability and reason through it
309
+ └─ NO → Research the domain/concept first, then reason
310
+ ```
311
+ </decision_tree>
312
+
313
+
314
+ <red_flags>
315
+
316
+ **You're researching too much if**:
317
+ - You've read 20 blog posts but haven't looked at your code
318
+ - You understand the theory but haven't traced your actual execution
319
+ - You're learning about edge cases that don't apply to your situation
320
+ - You've been reading for 30+ minutes without testing anything
321
+
322
+ **You're reasoning too much if**:
323
+ - You've been staring at code for an hour without progress
324
+ - You keep finding things you don't understand and guessing
325
+ - You're debugging library internals (that's research territory)
326
+ - The error message is clearly from a library you don't know
327
+
328
+ **You're doing it right if**:
329
+ - You alternate between research and reasoning
330
+ - Each research session answers a specific question
331
+ - Each reasoning session tests a specific hypothesis
332
+ - You're making steady progress toward understanding
333
+
334
+ </red_flags>
335
+
336
+
337
+ <mindset>
338
+
339
+ **Good researchers ask**:
340
+ - "What specific question do I need answered?"
341
+ - "Where is the authoritative source for this?"
342
+ - "Is this a known issue or unique to my code?"
343
+ - "What version-specific information do I need?"
344
+
345
+ **Good reasoners ask**:
346
+ - "What is actually happening in my code?"
347
+ - "What am I assuming that might be wrong?"
348
+ - "How can I observe this behavior directly?"
349
+ - "What experiment would test my hypothesis?"
350
+
351
+ **Great debuggers do both**:
352
+ - Research to fill knowledge gaps
353
+ - Reason to understand actual behavior
354
+ - Switch fluidly based on what they learn
355
+ - Never stuck in one mode
356
+
357
+ **The goal**: Minimum time to maximum understanding.
358
+ - Research what you don't know
359
+ - Reason through what you can observe
360
+ - Fix what you understand
361
+ </mindset>
@@ -10,14 +10,50 @@ A plan is Claude-executable when Claude can read the PLAN.md and immediately sta
10
10
  If Claude has to guess, interpret, or make assumptions - the task is too vague.
11
11
  </core_principle>
12
12
 
13
+ <frontmatter>
14
+ Every PLAN.md starts with YAML frontmatter:
15
+
16
+ ```yaml
17
+ ---
18
+ phase: XX-name
19
+ plan: NN
20
+ type: execute
21
+ wave: N # Execution wave (1, 2, 3...). Pre-computed at plan time.
22
+ depends_on: [] # Plan IDs this plan requires (e.g., ["01-01"])
23
+ files_modified: [] # Files this plan modifies
24
+ autonomous: true # false if plan has checkpoints
25
+ domain: [optional] # Domain skill if loaded
26
+ ---
27
+ ```
28
+
29
+ | Field | Required | Purpose |
30
+ |-------|----------|---------|
31
+ | `phase` | Yes | Phase identifier (e.g., `01-foundation`) |
32
+ | `plan` | Yes | Plan number within phase (e.g., `01`, `02`) |
33
+ | `type` | Yes | `execute` for standard plans, `tdd` for TDD plans |
34
+ | `wave` | Yes | Execution wave number (1, 2, 3...). Pre-computed during planning. |
35
+ | `depends_on` | Yes | Array of plan IDs this plan requires. |
36
+ | `files_modified` | Yes | Files this plan touches. |
37
+ | `autonomous` | Yes | `true` if no checkpoints, `false` if has checkpoints |
38
+ | `domain` | No | Domain skill if loaded (e.g., `next-js`) |
39
+
40
+ **Wave is pre-computed:** `/gsd:plan-phase` assigns wave numbers based on `depends_on`. `/gsd:execute-phase` reads `wave` directly from frontmatter and groups plans by wave number. No runtime dependency analysis needed.
41
+
42
+ **Checkpoint handling:** Plans with `autonomous: false` require user interaction. They run in their assigned wave but pause at checkpoints.
43
+ </frontmatter>
44
+
13
45
  <prompt_structure>
14
46
  Every PLAN.md follows this XML structure:
15
47
 
16
48
  ```markdown
17
49
  ---
18
50
  phase: XX-name
51
+ plan: NN
19
52
  type: execute
20
- domain: [optional]
53
+ wave: N
54
+ depends_on: []
55
+ files_modified: [path/to/file.ts]
56
+ autonomous: true
21
57
  ---
22
58
 
23
59
  <objective>
@@ -26,9 +62,19 @@ Purpose: [...]
26
62
  Output: [...]
27
63
  </objective>
28
64
 
65
+ <execution_context>
66
+ @~/.config/opencode/get-shit-done/workflows/execute-plan.md
67
+ @~/.config/opencode/get-shit-done/templates/summary.md
68
+ [If checkpoints exist:]
69
+ @~/.config/opencode/get-shit-done/references/checkpoints.md
70
+ </execution_context>
71
+
29
72
  <context>
30
73
  @.planning/PROJECT.md
31
74
  @.planning/ROADMAP.md
75
+ @.planning/STATE.md
76
+ [Only if genuinely needed:]
77
+ @.planning/phases/XX-name/XX-YY-SUMMARY.md
32
78
  @relevant/source/files.ts
33
79
  </context>
34
80
 
@@ -240,6 +286,14 @@ Use for: Technology selection, architecture decisions, design choices, feature p
240
286
 
241
287
  **Golden rule:** If Claude CAN automate it, Claude MUST automate it.
242
288
 
289
+ **Checkpoint impact on parallelization:**
290
+ - Plans with checkpoints set `autonomous: false` in frontmatter
291
+ - Non-autonomous plans execute after parallel wave or in main context
292
+ - Subagent pauses at checkpoint, returns to orchestrator
293
+ - Orchestrator presents checkpoint to user
294
+ - User responds
295
+ - Orchestrator resumes agent with `resume: agent_id`
296
+
243
297
  See `./checkpoints.md` for comprehensive checkpoint guidance.
244
298
  </task_types>
245
299
 
@@ -274,14 +328,22 @@ Use @file references to load context for the prompt:
274
328
  ```markdown
275
329
  <context>
276
330
  @.planning/PROJECT.md # Project vision
277
- @.planning/ROADMAP.md # Phase structure
278
- @.planning/phases/02-auth/DISCOVERY.md # Discovery results
279
- @src/lib/db.ts # Existing database setup
280
- @src/types/user.ts # Existing type definitions
331
+ @.planning/ROADMAP.md # Phase structure
332
+ @.planning/STATE.md # Current position
333
+
334
+ # Only include prior SUMMARY if genuinely needed:
335
+ # - This plan imports types from prior plan
336
+ # - Prior plan made decision affecting this plan
337
+ # Independent plans need NO prior SUMMARY references.
338
+
339
+ @src/lib/db.ts # Existing database setup
340
+ @src/types/user.ts # Existing type definitions
281
341
  </context>
282
342
  ```
283
343
 
284
344
  Reference files that Claude needs to understand before implementing.
345
+
346
+ **Anti-pattern:** Reflexive chaining (02 refs 01, 03 refs 02). Only reference what you actually need.
285
347
  </context_references>
286
348
 
287
349
  <verification_section>
@@ -320,22 +382,7 @@ Specify the SUMMARY.md structure:
320
382
 
321
383
  ```markdown
322
384
  <output>
323
- After completion, create `.planning/phases/XX-name/SUMMARY.md`:
324
-
325
- # Phase X: Name Summary
326
-
327
- **[Substantive one-liner]**
328
-
329
- ## Accomplishments
330
-
331
- ## Files Created/Modified
332
-
333
- ## Decisions Made
334
-
335
- ## Issues Encountered
336
-
337
- ## Next Phase Readiness
338
-
385
+ After completion, create `.planning/phases/XX-name/{phase}-{plan}-SUMMARY.md`
339
386
  </output>
340
387
  ```
341
388
 
@@ -10,9 +10,9 @@ Don't interrogate. Collaborate.
10
10
  </philosophy>
11
11
 
12
12
  <critical_rule>
13
- **ALL questions MUST use AskUserQuestion.**
13
+ **ALL questions MUST use question.**
14
14
 
15
- Never ask questions inline as plain text. Every exploration question uses the AskUserQuestion tool with thoughtful options that help the user articulate their vision.
15
+ Never ask questions inline as plain text. Every exploration question uses the question tool with thoughtful options that help the user articulate their vision.
16
16
 
17
17
  This applies to:
18
18
  - Opening questions ("What do you want to build?")
@@ -21,13 +21,13 @@ This applies to:
21
21
  - Boundary questions ("What's out of scope?")
22
22
  - Decision gates ("Ready to proceed?")
23
23
 
24
- The AskUserQuestion format helps users think by presenting concrete options to react to, rather than facing a blank text field.
24
+ The question format helps users think by presenting concrete options to react to, rather than facing a blank text field.
25
25
  </critical_rule>
26
26
 
27
27
  <conversation_arc>
28
28
  **1. Open**
29
29
 
30
- Use AskUserQuestion:
30
+ Use question:
31
31
  - header: "Vision"
32
32
  - question: "What do you want to build?"
33
33
  - options: Contextual starting points if available, otherwise broad categories + "Let me describe it"
@@ -38,7 +38,7 @@ Let them respond. Then follow up based on what they said.
38
38
 
39
39
  Whatever they said — dig into it. What excited them? What problem sparked this?
40
40
 
41
- Use AskUserQuestion with options that probe what they mentioned:
41
+ Use question with options that probe what they mentioned:
42
42
  - header: "[Topic they mentioned]"
43
43
  - question: "You mentioned [X] — what would that actually look like?"
44
44
  - options: 2-3 interpretations of what they might mean + "Something else"
@@ -47,7 +47,7 @@ Use AskUserQuestion with options that probe what they mentioned:
47
47
 
48
48
  Help them distinguish the essential from the nice-to-have.
49
49
 
50
- Use AskUserQuestion:
50
+ Use question:
51
51
  - header: "Core"
52
52
  - question: "If you could only nail one thing, what would it be?"
53
53
  - options: Key features/aspects they've mentioned + "All equally important" + "Something else"
@@ -56,7 +56,7 @@ Use AskUserQuestion:
56
56
 
57
57
  What is this NOT? Explicit exclusions prevent scope creep later.
58
58
 
59
- Use AskUserQuestion:
59
+ Use question:
60
60
  - header: "Scope"
61
61
  - question: "What's explicitly NOT in v1?"
62
62
  - options: Things that might be tempting to include + "Nothing specific" + "Let me list them"
@@ -65,7 +65,7 @@ Use AskUserQuestion:
65
65
 
66
66
  Only ask about constraints that actually exist. Don't invent concerns.
67
67
 
68
- Use AskUserQuestion:
68
+ Use question:
69
69
  - header: "Constraints"
70
70
  - question: "Any hard constraints?"
71
71
  - options: Common constraint types relevant to context + "None" + "Yes, let me explain"
@@ -77,7 +77,7 @@ Use AskUserQuestion:
77
77
  - Free-form "Tell me more about X" without options
78
78
  - Any question that leaves the user staring at a blank input
79
79
 
80
- **GOOD — AskUserQuestion with options:**
80
+ **GOOD — question with options:**
81
81
  - header: "Audience"
82
82
  - question: "Who is this for?"
83
83
  - options: ["Just me", "My team", "Public users", "Let me describe"]
@@ -96,11 +96,11 @@ Use AskUserQuestion:
96
96
  - Ask about audience → ask about constraints → ask about tech stack (regardless of what user said)
97
97
 
98
98
  **GOOD — Following threads with targeted options:**
99
- - User mentions frustration → AskUserQuestion with specific frustration interpretations as options → their selection reveals the core value prop
99
+ - User mentions frustration → question with specific frustration interpretations as options → their selection reveals the core value prop
100
100
  </good_vs_bad>
101
101
 
102
102
  <probing_techniques>
103
- When answers are vague, don't accept them. Probe with AskUserQuestion:
103
+ When answers are vague, don't accept them. Probe with question:
104
104
 
105
105
  **"Make it good"** →
106
106
  - header: "Good"
@@ -135,7 +135,7 @@ If gaps remain, weave questions naturally into the conversation. Don't suddenly
135
135
  </coverage_check>
136
136
 
137
137
  <decision_gate>
138
- When you feel you understand the vision, use AskUserQuestion:
138
+ When you feel you understand the vision, use question:
139
139
 
140
140
  - header: "Ready?"
141
141
  - question: "Ready to create PROJECT.md, or explore more?"
@@ -58,13 +58,13 @@ Search queries (use WebSearch):
58
58
 
59
59
  <pitfall_tool_variations>
60
60
  **What**: Conflating capabilities across different tools/environments
61
- **Example**: "Claude Desktop supports X" ≠ "Claude Code supports X"
61
+ **Example**: "Claude Desktop supports X" ≠ "OpenCode supports X"
62
62
  **Why it happens**: Not explicitly checking each environment separately
63
63
  **Prevention**:
64
64
  ```xml
65
65
  <verification_checklist>
66
66
  □ Claude Desktop capabilities
67
- Claude Code capabilities
67
+ OpenCode capabilities
68
68
  □ VS Code extension capabilities
69
69
  □ API/SDK capabilities
70
70
  Document which environment supports which features