opencode-goopspec 0.1.3 → 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.
- package/README.md +253 -331
- package/agents/goop-debugger.md +175 -172
- package/agents/goop-designer.md +232 -160
- package/agents/goop-executor.md +197 -127
- package/agents/goop-explorer.md +148 -150
- package/agents/goop-librarian.md +218 -164
- package/agents/goop-orchestrator.md +364 -338
- package/agents/goop-planner.md +331 -153
- package/agents/goop-researcher.md +198 -126
- package/agents/goop-tester.md +277 -202
- package/agents/goop-verifier.md +191 -201
- package/agents/goop-writer.md +241 -133
- package/agents/memory-distiller.md +228 -136
- package/commands/goop-accept.md +430 -36
- package/commands/goop-amend.md +13 -0
- package/commands/goop-complete.md +13 -0
- package/commands/goop-debug.md +13 -0
- package/commands/goop-discuss.md +419 -7
- package/commands/goop-execute.md +386 -37
- package/commands/goop-help.md +11 -0
- package/commands/goop-map-codebase.md +13 -0
- package/commands/goop-memory.md +11 -0
- package/commands/goop-milestone.md +13 -0
- package/commands/goop-pause.md +12 -0
- package/commands/goop-plan.md +320 -266
- package/commands/goop-quick.md +12 -0
- package/commands/goop-recall.md +11 -0
- package/commands/goop-remember.md +12 -0
- package/commands/goop-research.md +13 -0
- package/commands/goop-resume.md +12 -0
- package/commands/goop-setup.md +18 -8
- package/commands/goop-specify.md +315 -39
- package/commands/goop-status.md +276 -28
- package/dist/index.js +328 -15
- package/package.json +1 -1
- package/references/context-injection.md +307 -0
- package/references/discovery-interview.md +278 -0
- package/references/enforcement-system.md +213 -0
- package/references/handoff-protocol.md +290 -0
- package/references/model-profiles.md +1 -1
- package/references/phase-gates.md +360 -0
- package/references/plugin-architecture.md +212 -0
- package/references/response-format.md +41 -9
- package/references/subagent-protocol.md +83 -33
- package/references/visual-style.md +199 -0
- package/references/xml-response-schema.md +236 -0
- package/templates/blueprint.md +88 -41
- package/templates/chronicle.md +130 -16
- package/templates/handoff.md +140 -0
- package/templates/project.md +114 -0
- package/templates/requirements.md +121 -0
- package/templates/spec.md +85 -20
- package/templates/state.md +103 -0
package/commands/goop-plan.md
CHANGED
|
@@ -1,184 +1,185 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: goop-plan
|
|
3
|
-
description:
|
|
3
|
+
description: Create specification and blueprint from discovery interview
|
|
4
4
|
phase: plan
|
|
5
|
-
|
|
5
|
+
requires: interview_complete
|
|
6
|
+
next-step: "When planning is complete, lock the specification"
|
|
6
7
|
next-command: /goop-specify
|
|
7
8
|
alternatives:
|
|
9
|
+
- command: /goop-discuss
|
|
10
|
+
when: "If discovery interview was not completed"
|
|
8
11
|
- command: /goop-research
|
|
9
|
-
when: "If there are unknowns
|
|
12
|
+
when: "If there are unknowns to investigate"
|
|
10
13
|
- command: /goop-pause
|
|
11
14
|
when: "To save progress and continue later"
|
|
12
15
|
---
|
|
13
16
|
|
|
14
17
|
# /goop-plan
|
|
15
18
|
|
|
16
|
-
**
|
|
19
|
+
**Create Specification and Blueprint.** Transform discovery interview into executable plans.
|
|
17
20
|
|
|
18
21
|
## Usage
|
|
19
22
|
|
|
20
23
|
```bash
|
|
21
|
-
/goop-plan
|
|
24
|
+
/goop-plan
|
|
22
25
|
```
|
|
23
26
|
|
|
24
|
-
##
|
|
27
|
+
## Gate Requirement
|
|
25
28
|
|
|
26
|
-
|
|
29
|
+
```
|
|
30
|
+
+================================================================+
|
|
31
|
+
| DISCOVERY GATE: Interview must be complete before planning. |
|
|
32
|
+
| This ensures we build the RIGHT thing. |
|
|
33
|
+
+================================================================+
|
|
34
|
+
```
|
|
27
35
|
|
|
28
|
-
|
|
36
|
+
**Required before this command:**
|
|
37
|
+
- `interviewComplete: true` (check via `goop_state({ action: "get" })`)
|
|
38
|
+
- `.goopspec/REQUIREMENTS.md` exists
|
|
29
39
|
|
|
30
|
-
|
|
40
|
+
**If not satisfied:** Refuse and redirect to `/goop-discuss`
|
|
31
41
|
|
|
32
|
-
|
|
42
|
+
**CRITICAL: Never read or edit .goopspec/state.json directly. Always use `goop_state` tool.**
|
|
33
43
|
|
|
34
|
-
|
|
44
|
+
## Orchestrator Role
|
|
35
45
|
|
|
36
|
-
**
|
|
37
|
-
```
|
|
38
|
-
goop_status()
|
|
39
|
-
Read(".goopspec/SPEC.md")
|
|
40
|
-
Read(".goopspec/BLUEPRINT.md")
|
|
41
|
-
Read(".goopspec/CHRONICLE.md")
|
|
42
|
-
```
|
|
46
|
+
**You check the gate, then spawn the planner.** The planner creates SPEC.md and BLUEPRINT.md.
|
|
43
47
|
|
|
44
|
-
|
|
48
|
+
## Tools Used
|
|
45
49
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
50
|
+
| Tool | Purpose in This Command |
|
|
51
|
+
|------|------------------------|
|
|
52
|
+
| `goop_status` | Check current phase and gate requirements |
|
|
53
|
+
| `goop_spec` | Validate interview complete, load existing specs |
|
|
54
|
+
| `memory_search` | Find prior architecture decisions |
|
|
55
|
+
| `memory_decision` | Record new planning decisions |
|
|
56
|
+
| `goop_reference` | Load spec/blueprint templates |
|
|
53
57
|
|
|
54
|
-
**
|
|
55
|
-
```
|
|
56
|
-
task({
|
|
57
|
-
subagent_type: "goop-writer",
|
|
58
|
-
description: "Archive current milestone",
|
|
59
|
-
prompt: `
|
|
60
|
-
Archive the current project:
|
|
61
|
-
1. Read .goopspec/SPEC.md and .goopspec/CHRONICLE.md
|
|
62
|
-
2. Generate RETROSPECTIVE.md summarizing:
|
|
63
|
-
- What was built
|
|
64
|
-
- Key decisions made
|
|
65
|
-
- Learnings for next time
|
|
66
|
-
3. Move all documents to .goopspec/archive/[milestone-name]/
|
|
67
|
-
4. Clear working documents (keep archive/)
|
|
68
|
-
5. Return ARCHIVE COMPLETE with summary
|
|
69
|
-
`
|
|
70
|
-
})
|
|
71
|
-
```
|
|
72
|
-
Then continue to Phase 2.
|
|
58
|
+
**Hook Support:** `tool.execute.after` may auto-transition to specify phase.
|
|
73
59
|
|
|
74
|
-
|
|
60
|
+
---
|
|
75
61
|
|
|
76
|
-
|
|
62
|
+
## Process
|
|
77
63
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
```
|
|
64
|
+
### Phase 1: Gate Check
|
|
65
|
+
|
|
66
|
+
**Execute BEFORE anything else:**
|
|
82
67
|
|
|
83
|
-
**1.4 Search memory for context:**
|
|
84
68
|
```
|
|
85
|
-
|
|
69
|
+
goop_status()
|
|
70
|
+
goop_state({ action: "get" }) # NEVER read state.json directly
|
|
71
|
+
Read(".goopspec/REQUIREMENTS.md")
|
|
86
72
|
```
|
|
87
73
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
### Phase 2: Deep Questioning
|
|
74
|
+
**1.1 Check interviewComplete:**
|
|
91
75
|
|
|
92
|
-
**Display stage banner:**
|
|
93
76
|
```
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
77
|
+
IF state.interviewComplete != true:
|
|
78
|
+
REFUSE with:
|
|
79
|
+
|
|
80
|
+
## 🔮 GoopSpec · Gate Blocked
|
|
81
|
+
|
|
82
|
+
✗ Discovery interview required before planning.
|
|
83
|
+
|
|
84
|
+
→ Run: `/goop-discuss`
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
EXIT command.
|
|
97
89
|
```
|
|
98
90
|
|
|
99
|
-
**2
|
|
91
|
+
**1.2 Check REQUIREMENTS.md exists:**
|
|
100
92
|
|
|
101
|
-
|
|
102
|
-
|
|
93
|
+
```
|
|
94
|
+
IF .goopspec/REQUIREMENTS.md does not exist:
|
|
95
|
+
REFUSE with:
|
|
96
|
+
|
|
97
|
+
## 🔮 GoopSpec · Gate Blocked
|
|
98
|
+
|
|
99
|
+
✗ No discovery output found.
|
|
100
|
+
|
|
101
|
+
→ Run: `/goop-discuss`
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
EXIT command.
|
|
106
|
+
```
|
|
103
107
|
|
|
104
|
-
|
|
105
|
-
> "What do you want to build?"
|
|
108
|
+
**1.3 Gate passed:**
|
|
106
109
|
|
|
107
|
-
|
|
110
|
+
```
|
|
111
|
+
## 🔮 GoopSpec · Planning
|
|
108
112
|
|
|
109
|
-
|
|
113
|
+
✓ Discovery gate passed
|
|
110
114
|
|
|
111
|
-
|
|
115
|
+
⏳ Creating specification and blueprint...
|
|
112
116
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
- What problem sparked it
|
|
116
|
-
- What vague terms mean concretely
|
|
117
|
-
- What it would look like in use
|
|
118
|
-
- What's already decided vs open
|
|
117
|
+
---
|
|
118
|
+
```
|
|
119
119
|
|
|
120
|
-
|
|
120
|
+
### Phase 2: Check for Existing Documents
|
|
121
121
|
|
|
122
|
-
|
|
123
|
-
1. Check memory: `memory_search({ query: "[topic] preference" })`
|
|
124
|
-
2. If found with high confidence: "I recall you prefer X for this. Still true? [Y/n]"
|
|
125
|
-
3. If not found: Ask, then SAVE the answer with `memory_note`
|
|
122
|
+
**2.1 Check for existing SPEC.md/BLUEPRINT.md:**
|
|
126
123
|
|
|
127
|
-
|
|
124
|
+
```
|
|
125
|
+
Read(".goopspec/SPEC.md")
|
|
126
|
+
Read(".goopspec/BLUEPRINT.md")
|
|
127
|
+
```
|
|
128
128
|
|
|
129
|
-
**2.
|
|
129
|
+
**2.2 If documents exist:**
|
|
130
130
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
| **UI/UX** | Visual direction? Key patterns? States to handle? |
|
|
131
|
+
Use `question` tool:
|
|
132
|
+
- header: "Existing Project"
|
|
133
|
+
- question: "I found existing project documents. How would you like to proceed?"
|
|
134
|
+
- options:
|
|
135
|
+
- "Archive and start fresh (Recommended)" — Move current docs to archive, create new
|
|
136
|
+
- "Continue existing project" — Resume work (exit, run /goop-status)
|
|
137
|
+
- "Overwrite without archiving" — Replace documents (loses history)
|
|
139
138
|
|
|
140
|
-
|
|
139
|
+
**On "Archive":** Spawn writer to archive, then continue.
|
|
140
|
+
**On "Continue":** Exit, suggest `/goop-status`.
|
|
141
|
+
**On "Overwrite":** Warn, then continue.
|
|
141
142
|
|
|
142
|
-
|
|
143
|
+
### Phase 3: Load Context
|
|
143
144
|
|
|
144
|
-
|
|
145
|
+
**3.1 Load discovery interview:**
|
|
145
146
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
147
|
+
```
|
|
148
|
+
Read(".goopspec/REQUIREMENTS.md")
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
Extract:
|
|
152
|
+
- Vision
|
|
153
|
+
- Must-haves (with acceptance criteria)
|
|
154
|
+
- Constraints
|
|
155
|
+
- Out of scope
|
|
156
|
+
- Assumptions
|
|
157
|
+
- Risks
|
|
153
158
|
|
|
154
|
-
**
|
|
159
|
+
**3.2 Search memory:**
|
|
155
160
|
|
|
156
|
-
**On "Research first":**
|
|
157
161
|
```
|
|
158
|
-
|
|
162
|
+
memory_search({ query: "[feature] architecture decisions patterns", limit: 5 })
|
|
159
163
|
```
|
|
160
|
-
Exit command.
|
|
161
164
|
|
|
162
|
-
**
|
|
165
|
+
**3.3 Load project knowledge:**
|
|
166
|
+
|
|
163
167
|
```
|
|
164
|
-
|
|
168
|
+
Read(".goopspec/PROJECT_KNOWLEDGE_BASE.md") # If exists
|
|
165
169
|
```
|
|
166
|
-
Exit command.
|
|
167
|
-
|
|
168
|
-
**On "Create specification":** Continue to Phase 3.
|
|
169
170
|
|
|
170
|
-
### Phase
|
|
171
|
+
### Phase 4: Spawn Planner
|
|
171
172
|
|
|
172
|
-
**Display
|
|
173
|
+
**Display banner:**
|
|
173
174
|
```
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
175
|
+
## 🔮 GoopSpec · Creating Documents
|
|
176
|
+
|
|
177
|
+
⏳ Spawning planner to create SPEC.md and BLUEPRINT.md...
|
|
177
178
|
|
|
178
|
-
|
|
179
|
+
---
|
|
179
180
|
```
|
|
180
181
|
|
|
181
|
-
**Spawn goop-planner with full
|
|
182
|
+
**Spawn goop-planner with full context:**
|
|
182
183
|
|
|
183
184
|
```
|
|
184
185
|
task({
|
|
@@ -186,147 +187,203 @@ task({
|
|
|
186
187
|
description: "Create SPEC and BLUEPRINT",
|
|
187
188
|
prompt: `
|
|
188
189
|
## TASK
|
|
189
|
-
Create specification and blueprint
|
|
190
|
-
|
|
191
|
-
## CONTEXT FROM INTERVIEW
|
|
190
|
+
Create specification and blueprint from discovery interview.
|
|
192
191
|
|
|
193
|
-
|
|
194
|
-
[
|
|
192
|
+
## PROJECT CONTEXT
|
|
193
|
+
[From PROJECT_KNOWLEDGE_BASE.md if exists]
|
|
194
|
+
- Stack: [technologies]
|
|
195
|
+
- Conventions: [naming, patterns]
|
|
195
196
|
|
|
196
|
-
|
|
197
|
+
## DISCOVERY INTERVIEW OUTPUT
|
|
198
|
+
[Full content of REQUIREMENTS.md]
|
|
197
199
|
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
- [Requirement 2 from interview]
|
|
201
|
-
- [Requirement 3 from interview]
|
|
200
|
+
### Vision
|
|
201
|
+
[Vision section]
|
|
202
202
|
|
|
203
|
-
|
|
204
|
-
-
|
|
203
|
+
### Must-Haves
|
|
204
|
+
[Must-haves with acceptance criteria]
|
|
205
205
|
|
|
206
|
-
|
|
207
|
-
|
|
206
|
+
### Constraints
|
|
207
|
+
[Technical and practical constraints]
|
|
208
208
|
|
|
209
|
-
###
|
|
210
|
-
|
|
211
|
-
- Performance: [from interview]
|
|
212
|
-
- Security: [from interview]
|
|
209
|
+
### Out of Scope
|
|
210
|
+
[Explicit exclusions]
|
|
213
211
|
|
|
214
|
-
###
|
|
215
|
-
|
|
216
|
-
- [Observable outcome 2]
|
|
212
|
+
### Assumptions
|
|
213
|
+
[Baseline assumptions]
|
|
217
214
|
|
|
218
|
-
###
|
|
219
|
-
|
|
220
|
-
- Key patterns: [from interview]
|
|
221
|
-
- States to handle: [loading, empty, error, success]
|
|
215
|
+
### Risks
|
|
216
|
+
[Identified risks with mitigations]
|
|
222
217
|
|
|
223
218
|
## INSTRUCTIONS
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
-
|
|
236
|
-
-
|
|
237
|
-
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
219
|
+
|
|
220
|
+
1. **Verify discovery completeness:**
|
|
221
|
+
- Vision defined?
|
|
222
|
+
- Must-haves listed with acceptance criteria?
|
|
223
|
+
- Out of scope defined?
|
|
224
|
+
- Risks identified?
|
|
225
|
+
|
|
226
|
+
If missing critical info, return BLOCKED.
|
|
227
|
+
|
|
228
|
+
2. **Create .goopspec/SPEC.md:**
|
|
229
|
+
- Transform must-haves into formal requirements (MH1, MH2, etc.)
|
|
230
|
+
- Include acceptance criteria for each
|
|
231
|
+
- Add traceability section (will be filled after blueprint)
|
|
232
|
+
- Mark status as "Draft"
|
|
233
|
+
|
|
234
|
+
3. **Create .goopspec/BLUEPRINT.md:**
|
|
235
|
+
- Design wave architecture
|
|
236
|
+
- Create tasks that cover ALL must-haves
|
|
237
|
+
- Add spec coverage to each task
|
|
238
|
+
- Build traceability matrix
|
|
239
|
+
|
|
240
|
+
4. **Update .goopspec/SPEC.md:**
|
|
241
|
+
- Fill traceability matrix (must-have → tasks)
|
|
242
|
+
- Verify 100% coverage
|
|
243
|
+
|
|
244
|
+
5. **Initialize .goopspec/CHRONICLE.md:**
|
|
241
245
|
- Phase: plan → ready for specify
|
|
242
246
|
- Documents created with timestamps
|
|
243
247
|
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
248
|
+
6. **Save to memory:**
|
|
249
|
+
- Key architectural decisions
|
|
250
|
+
- Technology choices with rationale
|
|
251
|
+
|
|
252
|
+
7. **Return XML response envelope** with:
|
|
253
|
+
- BLUEPRINT COMPLETE status
|
|
254
|
+
- Wave summary
|
|
255
|
+
- Traceability summary
|
|
256
|
+
- Handoff instructions
|
|
257
|
+
|
|
258
|
+
## VERIFICATION
|
|
259
|
+
Before returning COMPLETE:
|
|
260
|
+
- [ ] Every must-have has mapped tasks
|
|
261
|
+
- [ ] Every task has spec coverage
|
|
262
|
+
- [ ] Traceability matrix shows 100%
|
|
263
|
+
- [ ] SPEC.md has all sections filled
|
|
264
|
+
- [ ] BLUEPRINT.md has verification commands
|
|
254
265
|
`
|
|
255
266
|
})
|
|
256
267
|
```
|
|
257
268
|
|
|
258
|
-
### Phase
|
|
269
|
+
### Phase 5: Handle Response
|
|
259
270
|
|
|
260
|
-
**
|
|
271
|
+
**Parse XML response from planner.**
|
|
261
272
|
|
|
262
|
-
|
|
273
|
+
**On `COMPLETE` status:**
|
|
274
|
+
|
|
275
|
+
Read created documents:
|
|
276
|
+
```
|
|
277
|
+
Read(".goopspec/SPEC.md")
|
|
278
|
+
Read(".goopspec/BLUEPRINT.md")
|
|
279
|
+
```
|
|
263
280
|
|
|
281
|
+
Display completion:
|
|
264
282
|
```
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
283
|
+
## 🔮 GoopSpec · Planning Complete
|
|
284
|
+
|
|
285
|
+
✨ Blueprint created successfully
|
|
268
286
|
|
|
269
287
|
**Feature:** [Name from SPEC.md]
|
|
270
288
|
|
|
271
|
-
|
|
|
272
|
-
|
|
273
|
-
| Spec
|
|
274
|
-
| Blueprint
|
|
275
|
-
| Chronicle
|
|
289
|
+
| Document | Status | Location |
|
|
290
|
+
|----------|--------|----------|
|
|
291
|
+
| Spec | ✓ Created | .goopspec/SPEC.md |
|
|
292
|
+
| Blueprint | ✓ Created | .goopspec/BLUEPRINT.md |
|
|
293
|
+
| Chronicle | ✓ Created | .goopspec/CHRONICLE.md |
|
|
276
294
|
|
|
277
295
|
**[N] must-haves** | **[M] waves** | **[P] tasks**
|
|
278
296
|
|
|
279
|
-
|
|
297
|
+
### Traceability
|
|
298
|
+
| Must-Have | Covered By |
|
|
299
|
+
|-----------|------------|
|
|
300
|
+
| MH1 | Wave X, Tasks Y |
|
|
301
|
+
| MH2 | Wave X, Tasks Y |
|
|
302
|
+
|
|
303
|
+
✓ Coverage: 100%
|
|
280
304
|
|
|
281
|
-
|
|
305
|
+
### Next Step
|
|
282
306
|
|
|
283
307
|
**Lock the specification** — Confirm requirements before execution
|
|
284
308
|
|
|
285
|
-
`/goop-specify`
|
|
309
|
+
→ `/goop-specify`
|
|
286
310
|
|
|
287
311
|
---
|
|
288
312
|
|
|
313
|
+
Start a **new session** for fresh context, then run the command.
|
|
314
|
+
|
|
289
315
|
**Also available:**
|
|
290
|
-
-
|
|
291
|
-
- `cat .goopspec/
|
|
292
|
-
-
|
|
316
|
+
- `cat .goopspec/SPEC.md` — Review specification
|
|
317
|
+
- `cat .goopspec/BLUEPRINT.md` — Review execution plan
|
|
318
|
+
- `/goop-research [topic]` — Investigate unknowns first
|
|
319
|
+
```
|
|
293
320
|
|
|
294
|
-
|
|
321
|
+
**Generate HANDOFF.md:**
|
|
322
|
+
|
|
323
|
+
```
|
|
324
|
+
Write(".goopspec/HANDOFF.md", `
|
|
325
|
+
# Session Handoff
|
|
326
|
+
|
|
327
|
+
**Generated:** [timestamp]
|
|
328
|
+
**Phase:** plan
|
|
329
|
+
|
|
330
|
+
## Accomplished
|
|
331
|
+
- [x] Discovery interview completed
|
|
332
|
+
- [x] SPEC.md created with [N] must-haves
|
|
333
|
+
- [x] BLUEPRINT.md created with [M] waves, [P] tasks
|
|
334
|
+
- [x] 100% traceability achieved
|
|
335
|
+
|
|
336
|
+
## Current State
|
|
337
|
+
- Phase: plan
|
|
338
|
+
- Interview: complete
|
|
339
|
+
- Spec: draft (not locked)
|
|
340
|
+
|
|
341
|
+
## Next Session
|
|
342
|
+
Run: /goop-specify
|
|
343
|
+
|
|
344
|
+
## Files to Read
|
|
345
|
+
1. .goopspec/SPEC.md — Requirements
|
|
346
|
+
2. .goopspec/BLUEPRINT.md — Execution plan
|
|
347
|
+
|
|
348
|
+
## Context Summary
|
|
349
|
+
Planning complete for [feature]. [N] must-haves mapped to [P] tasks
|
|
350
|
+
across [M] waves. Ready to lock specification.
|
|
351
|
+
`)
|
|
295
352
|
```
|
|
296
353
|
|
|
297
|
-
**On
|
|
354
|
+
**On `BLOCKED` status:**
|
|
298
355
|
|
|
299
|
-
Present blocker to user:
|
|
300
356
|
```
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
357
|
+
## 🔮 GoopSpec · Planning Blocked
|
|
358
|
+
|
|
359
|
+
✗ Cannot proceed
|
|
304
360
|
|
|
305
361
|
**Blocker:** [From planner response]
|
|
306
362
|
|
|
307
363
|
**Options:**
|
|
308
|
-
1. Provide more context →
|
|
309
|
-
2. Research the unknown →
|
|
310
|
-
|
|
364
|
+
1. Provide more context → `/goop-discuss`
|
|
365
|
+
2. Research the unknown → `/goop-research [topic]`
|
|
366
|
+
|
|
367
|
+
---
|
|
311
368
|
```
|
|
312
369
|
|
|
313
370
|
Use `question` tool to get user choice.
|
|
314
371
|
|
|
315
|
-
**On
|
|
372
|
+
**On `PARTIAL` status:**
|
|
316
373
|
|
|
317
374
|
Present what was created, explain gaps, offer to continue or restart.
|
|
318
375
|
|
|
319
|
-
### Phase
|
|
376
|
+
### Phase 6: Memory Persistence
|
|
320
377
|
|
|
321
|
-
After successful planning
|
|
378
|
+
After successful planning:
|
|
322
379
|
|
|
323
380
|
```
|
|
324
381
|
memory_save({
|
|
325
382
|
type: "note",
|
|
326
|
-
title: "
|
|
327
|
-
content: "
|
|
328
|
-
concepts: ["
|
|
329
|
-
importance: 0.
|
|
383
|
+
title: "Plan: [Feature Name]",
|
|
384
|
+
content: "Created [N]-wave blueprint. Key decisions: [list]. Must-haves: [summary].",
|
|
385
|
+
concepts: ["planning", "blueprint", "[domain]"],
|
|
386
|
+
importance: 0.7
|
|
330
387
|
})
|
|
331
388
|
```
|
|
332
389
|
|
|
@@ -334,103 +391,100 @@ memory_save({
|
|
|
334
391
|
|
|
335
392
|
| File | Purpose |
|
|
336
393
|
|------|---------|
|
|
337
|
-
| `.goopspec/SPEC.md` |
|
|
394
|
+
| `.goopspec/SPEC.md` | Specification (Draft) |
|
|
338
395
|
| `.goopspec/BLUEPRINT.md` | Wave-based execution plan |
|
|
339
396
|
| `.goopspec/CHRONICLE.md` | Progress tracking |
|
|
340
|
-
| `.goopspec/
|
|
397
|
+
| `.goopspec/HANDOFF.md` | Session handoff |
|
|
398
|
+
| State (via goop_state) | Workflow state (phase transitions) |
|
|
341
399
|
|
|
342
400
|
## Transitions
|
|
343
401
|
|
|
344
402
|
| Outcome | Next Step |
|
|
345
403
|
|---------|-----------|
|
|
346
|
-
| Planning complete | `/goop-specify` to lock
|
|
404
|
+
| Planning complete | `/goop-specify` to lock |
|
|
405
|
+
| Missing discovery | `/goop-discuss` to interview |
|
|
347
406
|
| Unknowns remain | `/goop-research` to investigate |
|
|
348
|
-
| Need to pause | `/goop-pause` to
|
|
349
|
-
| Existing project | `/goop-status` to see current state |
|
|
407
|
+
| Need to pause | `/goop-pause` to checkpoint |
|
|
350
408
|
|
|
351
409
|
## Examples
|
|
352
410
|
|
|
353
|
-
**
|
|
411
|
+
**Gate Passed:**
|
|
354
412
|
```
|
|
355
|
-
User: /goop-plan
|
|
356
|
-
|
|
357
|
-
Orchestrator: "Dark mode toggle. A few questions:
|
|
358
|
-
|
|
359
|
-
1. Should it persist to localStorage across sessions?
|
|
360
|
-
2. Auto-detect system preference (prefers-color-scheme)?
|
|
361
|
-
3. Animate the transition, or instant switch?
|
|
413
|
+
User: /goop-plan
|
|
362
414
|
|
|
363
|
-
|
|
415
|
+
Orchestrator:
|
|
416
|
+
+--------------------------------------------------------+
|
|
417
|
+
| GOOPSPEC > PLANNING |
|
|
418
|
+
+--------------------------------------------------------+
|
|
419
|
+
| Discovery gate: PASSED |
|
|
420
|
+
| Creating specification and blueprint... |
|
|
421
|
+
+--------------------------------------------------------+
|
|
364
422
|
|
|
365
|
-
... gathers answers ...
|
|
366
|
-
|
|
367
|
-
Orchestrator: "Got it. Creating specification..."
|
|
368
423
|
[Spawns goop-planner]
|
|
369
|
-
```
|
|
370
424
|
|
|
371
|
-
|
|
372
|
-
```
|
|
373
|
-
User: /goop-plan refactor the authentication system
|
|
425
|
+
...
|
|
374
426
|
|
|
375
|
-
|
|
427
|
+
+--------------------------------------------------------+
|
|
428
|
+
| GOOPSPEC > PLANNING COMPLETE |
|
|
429
|
+
+--------------------------------------------------------+
|
|
376
430
|
|
|
377
|
-
|
|
378
|
-
- src/auth/ (main auth logic)
|
|
379
|
-
- src/middleware/auth.ts (route protection)
|
|
380
|
-
- src/utils/jwt.ts (token handling)
|
|
431
|
+
**Feature:** Dark Mode Toggle
|
|
381
432
|
|
|
382
|
-
|
|
433
|
+
| Document | Status |
|
|
434
|
+
|------------|---------|
|
|
435
|
+
| Spec | Created |
|
|
436
|
+
| Blueprint | Created |
|
|
383
437
|
|
|
384
|
-
|
|
385
|
-
- Security vulnerability found
|
|
386
|
-
- Adding new auth method (OAuth, SSO)
|
|
387
|
-
- Performance issues
|
|
388
|
-
- Technical debt cleanup
|
|
389
|
-
- Other (describe)"
|
|
390
|
-
```
|
|
438
|
+
**3 must-haves** | **2 waves** | **5 tasks**
|
|
391
439
|
|
|
392
|
-
|
|
440
|
+
## > Next Step
|
|
441
|
+
`/goop-specify`
|
|
393
442
|
```
|
|
394
|
-
User: /goop-plan new dashboard widgets
|
|
395
443
|
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
444
|
+
**Gate Blocked:**
|
|
445
|
+
```
|
|
446
|
+
User: /goop-plan
|
|
447
|
+
|
|
448
|
+
Orchestrator:
|
|
449
|
+
+--------------------------------------------------------+
|
|
450
|
+
| GOOPSPEC > GATE BLOCKED |
|
|
451
|
+
+--------------------------------------------------------+
|
|
452
|
+
| Discovery interview required before planning. |
|
|
453
|
+
| |
|
|
454
|
+
| Run: /goop-discuss |
|
|
455
|
+
+--------------------------------------------------------+
|
|
404
456
|
```
|
|
405
457
|
|
|
406
458
|
## Success Criteria
|
|
407
459
|
|
|
408
|
-
- [ ]
|
|
409
|
-
- [ ]
|
|
410
|
-
- [ ]
|
|
411
|
-
- [ ]
|
|
412
|
-
- [ ]
|
|
413
|
-
- [ ]
|
|
414
|
-
- [ ]
|
|
415
|
-
- [ ]
|
|
416
|
-
- [ ] CHRONICLE.md initialized
|
|
417
|
-
- [ ] Key decisions saved to memory
|
|
460
|
+
- [ ] Gate check performed (interview_complete + REQUIREMENTS.md)
|
|
461
|
+
- [ ] If gate fails, refused with clear redirect to /goop-discuss
|
|
462
|
+
- [ ] Existing documents handled (archive/continue/overwrite)
|
|
463
|
+
- [ ] goop-planner spawned with full discovery context
|
|
464
|
+
- [ ] SPEC.md created with traceability
|
|
465
|
+
- [ ] BLUEPRINT.md created with spec coverage
|
|
466
|
+
- [ ] 100% must-have coverage achieved
|
|
467
|
+
- [ ] HANDOFF.md generated
|
|
418
468
|
- [ ] User knows next step is `/goop-specify`
|
|
469
|
+
- [ ] Suggested to start new session for fresh context
|
|
419
470
|
|
|
420
471
|
## Anti-Patterns
|
|
421
472
|
|
|
422
473
|
**DON'T:**
|
|
423
|
-
-
|
|
424
|
-
-
|
|
425
|
-
-
|
|
426
|
-
-
|
|
427
|
-
-
|
|
428
|
-
- Rush through questioning to get to document creation
|
|
474
|
+
- Skip the discovery gate check
|
|
475
|
+
- Conduct interview in /goop-plan (that's /goop-discuss)
|
|
476
|
+
- Create documents without traceability
|
|
477
|
+
- Leave user without next steps
|
|
478
|
+
- Skip handoff generation
|
|
429
479
|
|
|
430
480
|
**DO:**
|
|
431
|
-
-
|
|
432
|
-
-
|
|
433
|
-
-
|
|
434
|
-
-
|
|
435
|
-
-
|
|
436
|
-
|
|
481
|
+
- Enforce the gate strictly
|
|
482
|
+
- Spawn planner with complete context
|
|
483
|
+
- Verify 100% traceability
|
|
484
|
+
- Generate HANDOFF.md
|
|
485
|
+
- Suggest new session for clean context
|
|
486
|
+
|
|
487
|
+
---
|
|
488
|
+
|
|
489
|
+
*Planning Protocol v0.1.4*
|
|
490
|
+
*"Every must-have traces to tasks."*
|