opencode-goopspec 0.1.2 → 0.1.4

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 (60) hide show
  1. package/README.md +255 -331
  2. package/agents/goop-debugger.md +175 -172
  3. package/agents/goop-designer.md +232 -160
  4. package/agents/goop-executor.md +197 -127
  5. package/agents/goop-explorer.md +148 -150
  6. package/agents/goop-librarian.md +218 -164
  7. package/agents/goop-orchestrator.md +392 -280
  8. package/agents/goop-planner.md +331 -153
  9. package/agents/goop-researcher.md +198 -126
  10. package/agents/goop-tester.md +277 -202
  11. package/agents/goop-verifier.md +191 -201
  12. package/agents/goop-writer.md +241 -133
  13. package/agents/memory-distiller.md +228 -136
  14. package/commands/goop-accept.md +434 -160
  15. package/commands/goop-amend.md +35 -151
  16. package/commands/goop-complete.md +39 -183
  17. package/commands/goop-debug.md +33 -298
  18. package/commands/goop-discuss.md +381 -85
  19. package/commands/goop-execute.md +391 -108
  20. package/commands/goop-help.md +11 -0
  21. package/commands/goop-map-codebase.md +16 -3
  22. package/commands/goop-memory.md +11 -0
  23. package/commands/goop-milestone.md +29 -192
  24. package/commands/goop-pause.md +31 -40
  25. package/commands/goop-plan.md +458 -46
  26. package/commands/goop-quick.md +38 -142
  27. package/commands/goop-recall.md +11 -0
  28. package/commands/goop-remember.md +12 -0
  29. package/commands/goop-research.md +52 -73
  30. package/commands/goop-resume.md +28 -37
  31. package/commands/goop-setup.md +225 -124
  32. package/commands/goop-specify.md +321 -121
  33. package/commands/goop-status.md +256 -110
  34. package/dist/index.js +6289 -2820
  35. package/package.json +1 -1
  36. package/references/context-injection.md +307 -0
  37. package/references/discovery-interview.md +278 -0
  38. package/references/enforcement-system.md +213 -0
  39. package/references/handoff-protocol.md +290 -0
  40. package/references/interactive-questioning.md +122 -0
  41. package/references/model-profiles.md +1 -1
  42. package/references/phase-gates.md +360 -0
  43. package/references/plugin-architecture.md +212 -0
  44. package/references/response-format.md +41 -9
  45. package/references/subagent-protocol.md +83 -33
  46. package/references/ui-interaction-patterns.md +133 -0
  47. package/references/visual-style.md +199 -0
  48. package/references/workflow-accept.md +60 -273
  49. package/references/workflow-execute.md +63 -274
  50. package/references/workflow-plan.md +86 -133
  51. package/references/workflow-research.md +78 -186
  52. package/references/workflow-specify.md +64 -221
  53. package/references/xml-response-schema.md +236 -0
  54. package/templates/blueprint.md +88 -41
  55. package/templates/chronicle.md +130 -16
  56. package/templates/handoff.md +140 -0
  57. package/templates/project.md +114 -0
  58. package/templates/requirements.md +121 -0
  59. package/templates/spec.md +85 -20
  60. package/templates/state.md +103 -0
@@ -1,138 +1,434 @@
1
1
  ---
2
2
  name: goop-discuss
3
- description: Capture user vision before planning - the discovery conversation
3
+ description: Capture user vision through discovery interview before planning
4
+ phase: discuss
5
+ next-step: "When discovery is complete, create the blueprint"
6
+ next-command: /goop-plan
7
+ alternatives:
8
+ - command: /goop-research
9
+ when: "If there are unknowns to investigate first"
10
+ - command: /goop-quick
11
+ when: "For small, single-file tasks that don't need planning"
4
12
  ---
5
13
 
6
- # GoopSpec Discuss
14
+ # /goop-discuss
7
15
 
8
- Capture user vision and gather requirements through structured conversation before formal planning.
16
+ **Start the Discovery Interview.** Capture vision, requirements, constraints, and risks before planning begins.
9
17
 
10
18
  ## Usage
11
19
 
20
+ ```bash
21
+ /goop-discuss [brief description of what you want to build]
12
22
  ```
13
- /goop-discuss [brief description]
23
+
24
+ ## Core Purpose
25
+
26
+ The Discovery Interview is a **mandatory gate** before planning. It ensures requirements are "nailed down" before any work begins.
27
+
28
+ ```
29
+ +================================================================+
30
+ | NO PLANNING WITHOUT DISCOVERY. |
31
+ | The interview ensures we build the RIGHT thing. |
32
+ | Skipping discovery leads to scope creep and rework. |
33
+ +================================================================+
14
34
  ```
15
35
 
16
- ## Workflow Position
36
+ ## Orchestrator Role
37
+
38
+ **YOU conduct the interview directly.** Do NOT spawn agents for conversation.
39
+
40
+ Why: The interview builds shared understanding. That understanding stays in YOUR context and informs how you delegate. Spawning for conversation fragments knowledge.
41
+
42
+ ## The Six Questions
43
+
44
+ Every discovery interview MUST answer these questions:
45
+
46
+ ### 1. Vision (The What)
47
+ - What are you trying to build?
48
+ - What problem does this solve?
49
+ - Who is this for?
50
+
51
+ ### 2. Must-Haves (The Contract)
52
+ - What are the non-negotiable requirements?
53
+ - What MUST be delivered for this to be complete?
54
+ - What are the acceptance criteria?
55
+
56
+ ### 3. Constraints (The Boundaries)
57
+ - What stack/frameworks are we using?
58
+ - What are the performance requirements?
59
+ - What existing code must we integrate with?
60
+
61
+ ### 4. Out of Scope (The Guardrails)
62
+ - What are we explicitly NOT building?
63
+ - What features are deferred to later?
64
+
65
+ ### 5. Assumptions (The Baseline)
66
+ - What existing functionality are we relying on?
67
+ - What decisions have already been made?
68
+
69
+ ### 6. Risks (The Unknowns)
70
+ - What could go wrong?
71
+ - What are we uncertain about?
72
+ - What dependencies could block us?
73
+
74
+ ## Tools Used
17
75
 
76
+ | Tool | Purpose in This Command |
77
+ |------|------------------------|
78
+ | `goop_status` | Check current phase and project state |
79
+ | `memory_search` | Find prior context about the project |
80
+ | `memory_save` | Persist discovery interview results |
81
+ | `goop_reference` | Load discovery-interview protocol |
82
+
83
+ **Hook Support:** `system.transform` injects relevant memories before execution.
84
+
85
+ ---
86
+
87
+ ## Process
88
+
89
+ ### Phase 1: Setup
90
+
91
+ **Execute these checks BEFORE any user interaction:**
92
+
93
+ **1.1 Check current state:**
18
94
  ```
19
- ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
20
- │ DISCUSS │ ──▶ │ PLAN │ ──▶ │ RESEARCH │
21
- (Vision) │ │ (Intent) │ │ (Explore) │
22
- └─────────────┘ └─────────────┘ └─────────────┘
23
-
24
- (You are here)
95
+ goop_status()
96
+ goop_state({ action: "get" }) # NEVER read state.json directly
97
+ Read(".goopspec/REQUIREMENTS.md") # If exists, interview was done
25
98
  ```
26
99
 
27
- The Discuss phase answers: **What does the user really want?**
100
+ **CRITICAL: Never read or edit .goopspec/state.json directly. Always use `goop_state` tool.**
28
101
 
29
- ## What Happens
102
+ **1.2 If REQUIREMENTS.md exists:**
30
103
 
31
- 1. **Vision Capture** - Understand the high-level goal
32
- 2. **Requirements Gathering** - Ask clarifying questions to understand:
33
- - Functional requirements (what it should do)
34
- - Non-functional requirements (performance, security, accessibility)
35
- - Constraints (time, technology, compatibility)
36
- - Success criteria (how to know it's done)
37
- 3. **Scope Definition** - Identify boundaries
38
- 4. **Priority Clarification** - Understand what matters most
39
- 5. **Memory Search** - Check for relevant past context
104
+ Use `question` tool:
105
+ - header: "Existing Discovery"
106
+ - question: "I found an existing discovery interview. How would you like to proceed?"
107
+ - options:
108
+ - "Start fresh (Recommended)" — Clear previous discovery, start new interview
109
+ - "Review and update" Load previous answers, modify as needed
110
+ - "Use existing" Skip interview, go straight to /goop-plan
40
111
 
41
- ## Discussion Techniques
112
+ **1.3 Initialize if needed:**
113
+ ```bash
114
+ mkdir -p .goopspec
115
+ ```
42
116
 
43
- **Ask Open-Ended Questions:**
117
+ **1.4 Search memory for context:**
44
118
  ```
45
- "Can you walk me through how a user would interact with this?"
46
- "What happens if [edge case]?"
47
- "Are there any existing patterns in the codebase we should follow?"
119
+ memory_search({ query: "project preferences architecture [user's topic]", limit: 5 })
48
120
  ```
49
121
 
50
- **Validate Understanding:**
122
+ Store relevant findings - use them to skip questions you already know answers to.
123
+
124
+ ### Phase 2: Discovery Interview
125
+
126
+ **Display stage banner:**
51
127
  ```
52
- "Let me make sure I understand correctly:
53
- - The feature should [summary]
54
- - It needs to handle [edge cases]
55
- - Success looks like [acceptance criteria]
128
+ ## 🔮 GoopSpec · Discovery Interview
129
+
130
+ Let's nail down the requirements before planning.
131
+ I'll ask six key questions to understand your needs.
56
132
 
57
- Is that accurate?"
133
+ ---
58
134
  ```
59
135
 
60
- **Challenge Assumptions:**
136
+ **2.1 Open the conversation:**
137
+
138
+ If `$ARGUMENTS` provided:
139
+ > "You want to **[argument]**. Let me understand this better."
140
+
141
+ Otherwise:
142
+ > "What do you want to build?"
143
+
144
+ **2.2 Work through the six questions:**
145
+
146
+ Ask naturally, not as a checklist. Weave questions based on their responses.
147
+
148
+ **Memory-first protocol:**
149
+ Before asking ANYTHING:
150
+ 1. Check memory: `memory_search({ query: "[topic] preference" })`
151
+ 2. If found: "I recall you prefer X for this. Still true? [Y/n]"
152
+ 3. If not found: Ask, then SAVE the answer with `memory_note`
153
+
154
+ **2.3 Probe for specifics:**
155
+
156
+ | Vague Answer | Follow-up |
157
+ |--------------|-----------|
158
+ | "It should be fast" | "What's the target? Sub-100ms? Sub-1s?" |
159
+ | "Standard auth" | "JWT? Sessions? OAuth? What's the token TTL?" |
160
+ | "Good UX" | "What does that mean for this feature? Animations? Accessibility level?" |
161
+
162
+ **2.4 Checklist tracker (internal):**
163
+
164
+ Track progress through the six questions:
165
+ - [ ] Vision defined (goal, problem, users)
166
+ - [ ] Must-haves listed (at least 1)
167
+ - [ ] Constraints documented (stack, performance)
168
+ - [ ] Out of scope defined (at least 1 item)
169
+ - [ ] Assumptions listed
170
+ - [ ] Risks identified (at least 1 with mitigation)
171
+
172
+ **2.5 Completion check:**
173
+
174
+ When all six questions are answered, confirm:
175
+
176
+ Use `question` tool:
177
+ - header: "Discovery Check"
178
+ - question: "I think I have what I need. Let me summarize..."
179
+ - options:
180
+ - "Looks good, proceed" — Generate REQUIREMENTS.md
181
+ - "I want to add more" — Continue discussion
182
+ - "Start over" — Clear and restart interview
183
+
184
+ ### Phase 3: Generate REQUIREMENTS.md
185
+
186
+ **Display stage banner:**
61
187
  ```
62
- "I notice you mentioned X. Have you considered Y as an alternative?
63
- It might be simpler because [reason]."
188
+ ## 🔮 GoopSpec · Saving Discovery
189
+
190
+ ⏳ Generating REQUIREMENTS.md...
191
+
192
+ ---
64
193
  ```
65
194
 
66
- ## What to Gather
195
+ **3.1 Create REQUIREMENTS.md:**
196
+
197
+ Write directly (orchestrator can write planning docs):
198
+
199
+ ```markdown
200
+ # REQUIREMENTS: [Feature Name]
201
+
202
+ **Generated:** [timestamp]
203
+ **Interview Status:** Complete
204
+ **Ready for Planning:** Yes
205
+
206
+ ---
207
+
208
+ ## Vision
67
209
 
68
- ### Functional Requirements
69
- - What should the feature DO?
70
- - What are the inputs and outputs?
71
- - What are the edge cases?
72
- - What happens on errors?
210
+ [Vision statement from interview]
73
211
 
74
- ### Non-Functional Requirements
75
- - Performance expectations?
76
- - Security considerations?
77
- - Accessibility needs?
78
- - Compatibility requirements?
212
+ **Problem Solved:** [From interview]
79
213
 
80
- ### Context & Constraints
81
- - Why is this needed? What problem does it solve?
82
- - What existing code/patterns should be followed?
83
- - Any technical constraints or limitations?
84
- - Timeline or priority considerations?
214
+ **Why Now:** [From interview]
85
215
 
86
- ### Acceptance Criteria
87
- - How will we know it's "done"?
88
- - What tests should pass?
89
- - What should the user experience be?
216
+ ---
217
+
218
+ ## Must-Haves (The Contract)
90
219
 
91
- ## Artifacts Created
220
+ - [ ] **MH1**: [Title]
221
+ - [Description]
222
+ - **Acceptance:** [Criteria]
92
223
 
93
- - Understanding of requirements (informal)
94
- - Identified edge cases
95
- - Agreement on acceptance criteria
96
- - Technical research notes (if needed)
224
+ - [ ] **MH2**: [Title]
225
+ - [Description]
226
+ - **Acceptance:** [Criteria]
227
+
228
+ ---
97
229
 
98
- ## Example
230
+ ## Out of Scope
231
+
232
+ - **[Item]** — [Reason]
233
+ - **[Item]** — [Reason]
234
+
235
+ ---
99
236
 
237
+ ## Constraints
238
+
239
+ ### Technical Constraints
240
+ - [Stack, frameworks, versions]
241
+
242
+ ### Practical Constraints
243
+ - [Timeline, resources]
244
+
245
+ ---
246
+
247
+ ## Assumptions
248
+
249
+ - **[Assumption]** — If false: [Impact]
250
+
251
+ ---
252
+
253
+ ## Risks & Mitigations
254
+
255
+ | Risk | Impact | Likelihood | Mitigation |
256
+ |------|--------|------------|------------|
257
+ | [Risk] | [H/M/L] | [H/M/L] | [Plan] |
258
+
259
+ ---
260
+
261
+ *Discovery interview completed. Ready for /goop-plan.*
262
+ ```
263
+
264
+ **3.2 Mark interview complete (using goop_state tool):**
265
+
266
+ ```
267
+ goop_state({ action: "complete-interview" })
268
+ ```
269
+
270
+ This atomically updates the workflow state. **NEVER edit state.json directly.**
271
+
272
+ **3.3 Save to memory:**
273
+
274
+ ```
275
+ memory_save({
276
+ type: "note",
277
+ title: "Discovery: [Feature Name]",
278
+ content: "[Summary of key requirements and constraints]",
279
+ concepts: ["discovery", "requirements", "[domain]"],
280
+ importance: 0.7
281
+ })
282
+ ```
283
+
284
+ ### Phase 4: Completion
285
+
286
+ **Display completion banner:**
287
+
288
+ ```
289
+ ## 🔮 GoopSpec · Discovery Complete
290
+
291
+ ✨ Requirements captured successfully
292
+
293
+ **Feature:** [Name]
294
+
295
+ | Question | Status |
296
+ |----------|--------|
297
+ | Vision | ✓ Defined |
298
+ | Must-Haves | ✓ [N] items |
299
+ | Constraints | ✓ Documented |
300
+ | Out of Scope | ✓ [M] items |
301
+ | Assumptions | ✓ Listed |
302
+ | Risks | ✓ [P] identified |
303
+
304
+ ### Next Step
305
+
306
+ **Create the blueprint** — Transform requirements into an execution plan
307
+
308
+ → `/goop-plan`
309
+
310
+ ---
311
+
312
+ **Also available:**
313
+ - `cat .goopspec/REQUIREMENTS.md` — Review discovery output
314
+ - `/goop-research [topic]` — Investigate unknowns first
100
315
  ```
101
- /goop-discuss Add user authentication
316
+
317
+ ## Output
318
+
319
+ | File | Purpose |
320
+ |------|---------|
321
+ | `.goopspec/REQUIREMENTS.md` | Discovery interview output |
322
+ | State (via goop_state) | Updated with `interviewComplete: true` |
323
+
324
+ ## Transitions
325
+
326
+ | Outcome | Next Step |
327
+ |---------|-----------|
328
+ | Discovery complete | `/goop-plan` to create blueprint |
329
+ | Unknowns found | `/goop-research` to investigate |
330
+ | Small task | `/goop-quick` to skip planning |
331
+
332
+ ## Bypass Conditions
333
+
334
+ Discovery MAY be skipped only for:
335
+ - `/goop-quick` small tasks (single file, < 30 min work)
336
+ - Bug fixes with clear reproduction steps
337
+ - Documentation-only changes
338
+
339
+ ## Examples
340
+
341
+ **Simple Feature:**
102
342
  ```
343
+ User: /goop-discuss add dark mode toggle
344
+
345
+ Orchestrator: "Dark mode toggle. Let me understand what you need.
346
+
347
+ **Vision:** What's the goal here?
348
+ - Toggle in settings that switches the app theme
349
+ - Persist preference across sessions
350
+ - Respect system preference as default
351
+
352
+ **Must-haves:** What MUST work?
353
+ - Toggle UI in settings
354
+ - Theme actually changes
355
+ - Persists to localStorage
356
+
357
+ **Out of scope?**
358
+ - Per-component theme overrides
359
+ - Multiple theme options beyond light/dark
360
+
361
+ **Constraints?**
362
+ - Using existing Tailwind dark: classes
363
+ - No new dependencies
103
364
 
104
- Agent asks:
105
- - "What authentication methods? Email/password? OAuth?"
106
- - "Should sessions persist across browser closes?"
107
- - "Any specific security requirements?"
108
- - "How should errors be displayed?"
365
+ **Assumptions?**
366
+ - CSS already has dark variants (will verify)
109
367
 
110
- After discussion, agent summarizes understanding and asks for confirmation.
368
+ **Risks?**
369
+ - Some components may not have dark styles → will audit first
111
370
 
112
- ## Transition to Plan
371
+ Great, I have what I need. Creating REQUIREMENTS.md..."
372
+ ```
113
373
 
114
- When requirements are clear:
374
+ **Complex Feature:**
115
375
  ```
116
- "I have a clear picture of what we need:
117
- [Summary of requirements]
376
+ User: /goop-discuss rebuild the payment system
377
+
378
+ Orchestrator: "Payment system rebuild - that's significant.
379
+ Let me understand the scope.
380
+
381
+ **Vision:** What's driving this?
382
+ - Current system uses deprecated Stripe API
383
+ - Need to add PayPal as alternative
384
+ - Improve error handling and retry logic
385
+
386
+ **Must-haves:**
387
+ - Migrate to Stripe v2 API
388
+ - Add PayPal integration
389
+ - Unified payment interface
390
+ - Retry with exponential backoff
391
+ - Webhook handling for async payments
118
392
 
119
- Ready to move to planning? I'll capture the formal intent
120
- and requirements in the Plan phase."
393
+ **Out of scope:**
394
+ - Cryptocurrency payments (future)
395
+ - Subscription management (separate project)
396
+
397
+ **Risks:**
398
+ - Stripe migration may have breaking changes → research first
399
+ - PayPal integration complexity unknown → estimate 2x buffer
400
+
401
+ I'd recommend running `/goop-research stripe v2 migration` before
402
+ planning. Want to do that first?"
121
403
  ```
122
404
 
123
- ## Next Steps
405
+ ## Success Criteria
406
+
407
+ - [ ] All six questions answered with specifics
408
+ - [ ] At least 1 must-have defined
409
+ - [ ] At least 1 out-of-scope item defined
410
+ - [ ] At least 1 risk with mitigation
411
+ - [ ] REQUIREMENTS.md created
412
+ - [ ] State updated via `goop_state({ action: "complete-interview" })`
413
+ - [ ] User knows next step is `/goop-plan`
124
414
 
125
- After discussion:
126
- - `/goop-plan [description]` - Capture formal intent and requirements
415
+ ## Anti-Patterns
127
416
 
128
- ## Tips
417
+ **DON'T:**
418
+ - Accept vague answers ("it should be good")
419
+ - Skip the risks question ("nothing could go wrong")
420
+ - Rush through to get to coding
421
+ - Spawn agents to conduct the interview
422
+ - Create SPEC.md directly (that's /goop-plan's job)
129
423
 
130
- - Don't rush to planning - thorough discussion prevents rework
131
- - Ask about edge cases early
132
- - Validate understanding frequently
133
- - Challenge assumptions respectfully
134
- - Search memory for relevant past context
424
+ **DO:**
425
+ - Probe vague answers for specifics
426
+ - Challenge "no risks" with scenarios
427
+ - Take time - discovery is highest leverage
428
+ - Conduct interview yourself (keeps context)
429
+ - Save answers to memory for future reference
135
430
 
136
431
  ---
137
432
 
138
- **GoopSpec**: Understand deeply, build correctly.
433
+ *Discovery Interview Protocol v0.1.4*
434
+ *"Nail the spec before you write the code."*