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.
- package/README.md +255 -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 +392 -280
- 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 +434 -160
- package/commands/goop-amend.md +35 -151
- package/commands/goop-complete.md +39 -183
- package/commands/goop-debug.md +33 -298
- package/commands/goop-discuss.md +381 -85
- package/commands/goop-execute.md +391 -108
- package/commands/goop-help.md +11 -0
- package/commands/goop-map-codebase.md +16 -3
- package/commands/goop-memory.md +11 -0
- package/commands/goop-milestone.md +29 -192
- package/commands/goop-pause.md +31 -40
- package/commands/goop-plan.md +458 -46
- package/commands/goop-quick.md +38 -142
- package/commands/goop-recall.md +11 -0
- package/commands/goop-remember.md +12 -0
- package/commands/goop-research.md +52 -73
- package/commands/goop-resume.md +28 -37
- package/commands/goop-setup.md +225 -124
- package/commands/goop-specify.md +321 -121
- package/commands/goop-status.md +256 -110
- package/dist/index.js +6289 -2820
- 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/interactive-questioning.md +122 -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/ui-interaction-patterns.md +133 -0
- package/references/visual-style.md +199 -0
- package/references/workflow-accept.md +60 -273
- package/references/workflow-execute.md +63 -274
- package/references/workflow-plan.md +86 -133
- package/references/workflow-research.md +78 -186
- package/references/workflow-specify.md +64 -221
- 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/README.md
CHANGED
|
@@ -1,248 +1,198 @@
|
|
|
1
|
-
# GoopSpec
|
|
1
|
+
# GoopSpec
|
|
2
2
|
|
|
3
|
-
<
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
*The Orchestrator that turns vague ideas into shipped software*
|
|
3
|
+
<p align="center">
|
|
4
|
+
<img src=".github/assets/banner.png" alt="GoopSpec - Spec-Driven Development for AI" width="100%" />
|
|
5
|
+
</p>
|
|
8
6
|
|
|
9
|
-
|
|
10
|
-
[](https://www.typescriptlang.org/)
|
|
11
|
-
[](./TEST-SUMMARY.md)
|
|
12
|
-
[](./LICENSE)
|
|
7
|
+
**Stop the AI chaos. Ship what you actually want.**
|
|
13
8
|
|
|
14
|
-
|
|
9
|
+
[](https://github.com/hffmnnj/opencode-goopspec)
|
|
10
|
+
[](https://opencode.ai)
|
|
11
|
+
[](https://bun.sh)
|
|
12
|
+
[](https://www.typescriptlang.org/)
|
|
13
|
+
[](./TEST-SUMMARY.md)
|
|
14
|
+
[](./LICENSE)
|
|
15
15
|
|
|
16
16
|
---
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
You've been there. You ask an AI to build a feature. It starts coding immediately, misses half your requirements, forgets context mid-conversation, and delivers something that... works? But isn't what you wanted.
|
|
19
19
|
|
|
20
|
-
GoopSpec
|
|
20
|
+
**GoopSpec fixes this.**
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
It's a spec-driven workflow for [OpenCode](https://opencode.ai) that forces clarity *before* code. You describe what you want, GoopSpec interviews you to uncover the edge cases, locks a specification you both agree on, then executes against that contract.
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
No more "that's not what I meant." No more scope creep. No more AI amnesia.
|
|
25
25
|
|
|
26
26
|
```
|
|
27
|
-
|
|
27
|
+
Discuss → Plan → Specify (lock it) → Execute → Accept (verify it)
|
|
28
28
|
```
|
|
29
29
|
|
|
30
30
|
---
|
|
31
31
|
|
|
32
|
-
##
|
|
32
|
+
## Philosophy
|
|
33
|
+
|
|
34
|
+
- **Ask, Don't Assume** — Interview first, code second
|
|
35
|
+
- **Spec as Contract** — Lock requirements before execution
|
|
36
|
+
- **Memory-First** — Learn from every project
|
|
37
|
+
- **Scale to the Task** — Quick fixes skip gates, big features get the full workflow
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## The Workflow
|
|
33
42
|
|
|
34
|
-
|
|
35
|
-
|
|
43
|
+
```
|
|
44
|
+
DISCUSS PLAN EXECUTE AUDIT CONFIRM
|
|
45
|
+
┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐
|
|
46
|
+
│ What │ │ How │ │ Build │ │ Verify │ │ Accept │
|
|
47
|
+
│ do │ ──▶ │ will │ ──▶ │ it │ ──▶ │ it │ ──▶ │ it │
|
|
48
|
+
│ you │ │ we │ │ │ │ │ │ │
|
|
49
|
+
│ want? │ │ do it?│ │ │ │ │ │ │
|
|
50
|
+
└────────┘ └────────┘ └────────┘ └────────┘ └────────┘
|
|
51
|
+
│ │ │ │ │
|
|
52
|
+
Interview Create Waves of Check vs. You sign
|
|
53
|
+
to uncover locked atomic the spec off on it
|
|
54
|
+
requirements spec commits
|
|
55
|
+
│ │
|
|
56
|
+
└─────── CONTRACT GATE ─────────────────────────┘
|
|
57
|
+
(You confirm before and after)
|
|
58
|
+
```
|
|
36
59
|
|
|
37
|
-
###
|
|
38
|
-
|
|
60
|
+
### Phase 1: Discuss
|
|
61
|
+
GoopSpec interviews you like a product manager. It asks questions, uncovers edge cases, and makes sure it actually understands what you want before touching any code.
|
|
39
62
|
|
|
40
|
-
###
|
|
41
|
-
|
|
63
|
+
### Phase 2: Plan
|
|
64
|
+
Your requirements become a locked specification (SPEC.md) and execution blueprint (BLUEPRINT.md). This is the contract — both sides agree on what will be delivered.
|
|
42
65
|
|
|
43
|
-
###
|
|
44
|
-
|
|
66
|
+
### Phase 3: Execute
|
|
67
|
+
Wave-based implementation. Tasks run in ordered waves, each with atomic commits. Progress tracked in real-time. Pause and resume anytime.
|
|
45
68
|
|
|
46
|
-
|
|
69
|
+
### Phase 4: Audit
|
|
70
|
+
The Verifier agent checks every requirement against the actual implementation. Did we build what we said we'd build? Tests run, code reviewed.
|
|
47
71
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
```
|
|
51
|
-
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
|
|
52
|
-
│ PLAN │ ──▶ │ RESEARCH │ ──▶ │ SPECIFY │
|
|
53
|
-
│ (Intent) │ │ (Explore) │ │ (CONTRACT) │
|
|
54
|
-
└─────────────┘ └─────────────┘ └─────────────┘
|
|
55
|
-
│
|
|
56
|
-
┌──────────────────────────────────────┘
|
|
57
|
-
▼
|
|
58
|
-
┌─────────────┐ ┌─────────────┐
|
|
59
|
-
│ EXECUTE │ ──▶ │ ACCEPT │
|
|
60
|
-
│ (Build) │ │ (VERIFY) │
|
|
61
|
-
└─────────────┘ └─────────────┘
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
### Phase 1: Plan
|
|
65
|
-
Capture your intent. What do you want to build and why? GoopSpec asks clarifying questions, identifies requirements, and ensures nothing is ambiguous before moving forward.
|
|
66
|
-
|
|
67
|
-
### Phase 2: Research
|
|
68
|
-
Multiple agents explore in parallel:
|
|
69
|
-
- **Researcher** - Deep domain knowledge, technology options, best practices
|
|
70
|
-
- **Explorer** - Existing codebase patterns, conventions, integration points
|
|
71
|
-
- **Librarian** - Documentation, API references, code examples
|
|
72
|
-
|
|
73
|
-
### Phase 3: Specify (CONTRACT GATE)
|
|
74
|
-
Lock the specification. This is the contract between you and the AI:
|
|
75
|
-
- **Must-Haves** - Non-negotiable requirements (guaranteed delivery)
|
|
76
|
-
- **Nice-to-Haves** - Best effort if time permits
|
|
77
|
-
- **Out of Scope** - Explicitly excluded items
|
|
78
|
-
|
|
79
|
-
**You must confirm before execution begins.**
|
|
80
|
-
|
|
81
|
-
### Phase 4: Execute
|
|
82
|
-
Wave-based implementation with atomic commits:
|
|
83
|
-
- Tasks grouped into sequential waves
|
|
84
|
-
- Each task = one commit
|
|
85
|
-
- Progress tracked in real-time
|
|
86
|
-
- Checkpoints for pausing/resuming
|
|
87
|
-
|
|
88
|
-
### Phase 5: Accept (ACCEPTANCE GATE)
|
|
89
|
-
Verify the implementation:
|
|
90
|
-
- All must-haves checked against spec
|
|
91
|
-
- Automated tests run
|
|
92
|
-
- Security audit performed
|
|
93
|
-
- **You must confirm completion**
|
|
72
|
+
### Phase 5: Confirm
|
|
73
|
+
You verify the results and accept the work. The AI can't declare itself done — you have to sign off.
|
|
94
74
|
|
|
95
75
|
---
|
|
96
76
|
|
|
97
77
|
## Quick Start
|
|
98
78
|
|
|
99
|
-
|
|
79
|
+
**60 seconds to your first spec-driven feature.**
|
|
80
|
+
|
|
81
|
+
### 1. Install
|
|
100
82
|
|
|
101
|
-
Add
|
|
83
|
+
Add to your OpenCode config (`opencode.json`):
|
|
102
84
|
|
|
103
85
|
```json
|
|
104
|
-
{
|
|
105
|
-
"plugins": ["opencode-goopspec"]
|
|
106
|
-
}
|
|
86
|
+
{ "plugins": ["opencode-goopspec"] }
|
|
107
87
|
```
|
|
108
88
|
|
|
109
|
-
|
|
89
|
+
Or build from source:
|
|
110
90
|
|
|
111
91
|
```bash
|
|
112
|
-
# Clone the repository
|
|
113
92
|
git clone https://github.com/hffmnnj/opencode-goopspec.git
|
|
114
|
-
cd opencode-goopspec
|
|
115
|
-
|
|
116
|
-
# Install dependencies
|
|
117
|
-
bun install
|
|
118
|
-
|
|
119
|
-
# Build
|
|
120
|
-
bun run build
|
|
93
|
+
cd opencode-goopspec && bun install && bun run build
|
|
121
94
|
```
|
|
122
95
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
```json
|
|
126
|
-
{
|
|
127
|
-
"plugins": ["./path/to/opencode-goopspec"]
|
|
128
|
-
}
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
### First-Time Setup
|
|
96
|
+
### 2. Setup
|
|
132
97
|
|
|
133
98
|
```
|
|
134
99
|
/goop-setup
|
|
135
100
|
```
|
|
136
101
|
|
|
137
|
-
|
|
138
|
-
- Model preferences for orchestrator and agents
|
|
139
|
-
- MCP server connections
|
|
140
|
-
- Memory system settings
|
|
141
|
-
|
|
142
|
-
### Start Your First Project
|
|
102
|
+
### 3. Start Building
|
|
143
103
|
|
|
144
104
|
```
|
|
145
|
-
/goop-
|
|
105
|
+
/goop-discuss "Add dark mode to the settings page"
|
|
146
106
|
```
|
|
147
107
|
|
|
148
|
-
GoopSpec
|
|
108
|
+
GoopSpec interviews you, creates a locked spec, executes in waves, and asks you to verify. Done.
|
|
149
109
|
|
|
150
110
|
---
|
|
151
111
|
|
|
152
|
-
##
|
|
153
|
-
|
|
154
|
-
GoopSpec scales to any task size:
|
|
112
|
+
## Commands Reference
|
|
155
113
|
|
|
156
|
-
|
|
157
|
-
|------|-------------|----------|
|
|
158
|
-
| **Quick** | Bug fixes, typos, small tweaks | Plan → Execute → Accept |
|
|
159
|
-
| **Standard** | Features, moderate complexity | Full 5-phase workflow |
|
|
160
|
-
| **Comprehensive** | System redesigns, major refactors | Extended research + multiple waves |
|
|
161
|
-
| **Milestone** | Major releases, multi-feature work | Multiple cycles + archive with learnings |
|
|
114
|
+
All 20 commands, organized by what you're doing.
|
|
162
115
|
|
|
163
|
-
###
|
|
164
|
-
```
|
|
165
|
-
/goop-quick "Fix the typo in the login button"
|
|
166
|
-
```
|
|
167
|
-
Skip Research and Specify phases. Ship fast.
|
|
116
|
+
### Workflow Commands
|
|
168
117
|
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
118
|
+
| Command | Description |
|
|
119
|
+
|---------|-------------|
|
|
120
|
+
| `/goop-discuss` | Start discussion — interview to gather requirements |
|
|
121
|
+
| `/goop-plan` | Create SPEC.md and BLUEPRINT.md from requirements |
|
|
122
|
+
| `/goop-specify` | Lock the specification (CONTRACT GATE) |
|
|
123
|
+
| `/goop-execute` | Begin wave-based implementation |
|
|
124
|
+
| `/goop-accept` | Verify and accept work (ACCEPTANCE GATE) |
|
|
174
125
|
|
|
175
|
-
|
|
126
|
+
### Task Mode Commands
|
|
176
127
|
|
|
177
|
-
|
|
128
|
+
| Command | Description |
|
|
129
|
+
|---------|-------------|
|
|
130
|
+
| `/goop-quick [task]` | Fast-track a small task (skip gates) |
|
|
131
|
+
| `/goop-milestone [name]` | Start a versioned milestone |
|
|
132
|
+
| `/goop-complete` | Complete and archive current milestone |
|
|
178
133
|
|
|
179
|
-
###
|
|
134
|
+
### Research & Debug
|
|
180
135
|
|
|
181
136
|
| Command | Description |
|
|
182
137
|
|---------|-------------|
|
|
183
|
-
| `/goop-
|
|
184
|
-
| `/goop-
|
|
185
|
-
| `/goop-
|
|
186
|
-
| `/goop-execute` | Start Execute phase - wave-based implementation |
|
|
187
|
-
| `/goop-accept` | Verify and accept (ACCEPTANCE GATE) |
|
|
138
|
+
| `/goop-research` | Deep research on unknowns or risks |
|
|
139
|
+
| `/goop-debug` | Scientific debugging workflow |
|
|
140
|
+
| `/goop-map-codebase` | Analyze existing codebase structure |
|
|
188
141
|
|
|
189
|
-
###
|
|
142
|
+
### Memory Commands
|
|
190
143
|
|
|
191
144
|
| Command | Description |
|
|
192
145
|
|---------|-------------|
|
|
193
|
-
| `/goop-
|
|
194
|
-
| `/goop-
|
|
195
|
-
| `/goop-
|
|
146
|
+
| `/goop-recall [query]` | Search past work and memory |
|
|
147
|
+
| `/goop-remember [note]` | Save important context to memory |
|
|
148
|
+
| `/goop-memory` | View memory system status |
|
|
196
149
|
|
|
197
150
|
### Utility Commands
|
|
198
151
|
|
|
199
152
|
| Command | Description |
|
|
200
153
|
|---------|-------------|
|
|
201
|
-
| `/goop-status` | Show
|
|
154
|
+
| `/goop-status` | Show current workflow state |
|
|
155
|
+
| `/goop-setup` | First-time setup wizard |
|
|
202
156
|
| `/goop-amend [change]` | Propose spec changes after lock |
|
|
203
|
-
| `/goop-pause` | Save checkpoint
|
|
204
|
-
| `/goop-resume [id]` | Resume from checkpoint |
|
|
205
|
-
| `/goop-
|
|
206
|
-
| `/goop-debug` | Scientific debugging workflow |
|
|
207
|
-
| `/goop-map-codebase` | Analyze existing codebase |
|
|
157
|
+
| `/goop-pause` | Save checkpoint and pause work |
|
|
158
|
+
| `/goop-resume [id]` | Resume from a checkpoint |
|
|
159
|
+
| `/goop-help` | Show help and available commands |
|
|
208
160
|
|
|
209
161
|
---
|
|
210
162
|
|
|
211
|
-
## The
|
|
163
|
+
## The Agents
|
|
164
|
+
|
|
165
|
+
GoopSpec uses an orchestrator + specialist model. The Orchestrator (**The Conductor**) never writes code — it coordinates work by delegating to 11 specialized agents.
|
|
166
|
+
|
|
167
|
+
Each agent has a default model optimized for its task. **All models are configurable via `/goop-setup`.**
|
|
168
|
+
|
|
169
|
+
### The Orchestrator
|
|
212
170
|
|
|
213
|
-
|
|
171
|
+
**goop-orchestrator** — *The Conductor* (`anthropic/claude-opus-4-5`)
|
|
214
172
|
|
|
215
|
-
### What It Does
|
|
216
173
|
- Coordinates all work through delegation
|
|
217
|
-
- Maintains clean context
|
|
218
|
-
- Tracks progress
|
|
174
|
+
- Maintains clean context across tasks
|
|
175
|
+
- Tracks progress in CHRONICLE.md
|
|
219
176
|
- Applies deviation rules automatically
|
|
220
|
-
- Presents gates for
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
The
|
|
231
|
-
|
|
232
|
-
|
|
|
233
|
-
|
|
234
|
-
| `goop-
|
|
235
|
-
| `goop-
|
|
236
|
-
| `goop-
|
|
237
|
-
| `goop-
|
|
238
|
-
| `
|
|
239
|
-
| `goop-verifier` | The Auditor | Spec compliance checking |
|
|
240
|
-
| `goop-debugger` | The Detective | Scientific debugging |
|
|
241
|
-
| `goop-designer` | The Artisan | UI/UX design |
|
|
242
|
-
| `goop-tester` | The Guardian | Test writing |
|
|
243
|
-
| `goop-writer` | The Scribe | Documentation |
|
|
244
|
-
| `goop-librarian` | The Archivist | Code/doc search |
|
|
245
|
-
| `memory-distiller` | The Curator | Knowledge extraction |
|
|
177
|
+
- Presents contract gates for your confirmation
|
|
178
|
+
|
|
179
|
+
The Conductor never writes implementation code. It directs specialists.
|
|
180
|
+
|
|
181
|
+
### The Specialists
|
|
182
|
+
|
|
183
|
+
| Agent | Alias | Default Model | What They Do |
|
|
184
|
+
|-------|-------|---------------|--------------|
|
|
185
|
+
| `goop-executor` | The Builder | `openai/gpt-5.2-codex` | Writes implementation code |
|
|
186
|
+
| `goop-planner` | The Architect | `anthropic/claude-opus-4-5` | Creates specs and blueprints |
|
|
187
|
+
| `goop-researcher` | The Scholar | `openai/gpt-5.2` | Deep domain research |
|
|
188
|
+
| `goop-explorer` | The Scout | `google/gemini-3-flash` | Fast codebase mapping |
|
|
189
|
+
| `goop-verifier` | The Auditor | `openai/gpt-5.2-codex` | Verifies against spec |
|
|
190
|
+
| `goop-debugger` | The Detective | `openai/gpt-5.2-codex` | Scientific debugging |
|
|
191
|
+
| `goop-designer` | The Artisan | `anthropic/claude-opus-4-5` | UI/UX design |
|
|
192
|
+
| `goop-tester` | The Guardian | `kimi-for-coding/k2p5` | Test writing |
|
|
193
|
+
| `goop-writer` | The Scribe | `google/gemini-3-pro-high` | Documentation |
|
|
194
|
+
| `goop-librarian` | The Archivist | `openai/gpt-5.2` | Code and doc search |
|
|
195
|
+
| `memory-distiller` | The Curator | `zai-coding-plan/glm-4.7` | Extracts learnings to memory |
|
|
246
196
|
|
|
247
197
|
---
|
|
248
198
|
|
|
@@ -349,213 +299,186 @@ When milestones complete:
|
|
|
349
299
|
|
|
350
300
|
## Contract Gates
|
|
351
301
|
|
|
352
|
-
Two
|
|
353
|
-
|
|
354
|
-
### Specify Gate (
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
│ │
|
|
387
|
-
│ Tests: 24/24 passing │
|
|
388
|
-
│ Build: Successful │
|
|
389
|
-
│ │
|
|
390
|
-
│ ───────────────────────────────────────────── │
|
|
391
|
-
│ Type "accept" to confirm completion. │
|
|
392
|
-
│ │
|
|
393
|
-
╰────────────────────────────────────────────────────╯
|
|
302
|
+
Two points where you must confirm. This is what makes GoopSpec different — the AI can't just declare itself done.
|
|
303
|
+
|
|
304
|
+
### Specify Gate (Before Execution)
|
|
305
|
+
|
|
306
|
+
```
|
|
307
|
+
+-------------------------------------------------------+
|
|
308
|
+
| CONTRACT GATE |
|
|
309
|
+
+-------------------------------------------------------+
|
|
310
|
+
| MUST-HAVES: | OUT OF SCOPE: |
|
|
311
|
+
| • Login with email | • OAuth (future) |
|
|
312
|
+
| • Session persistence | • Password reset |
|
|
313
|
+
| • Error messages | |
|
|
314
|
+
+-------------------------------------------------------+
|
|
315
|
+
| Type "confirm" to lock. Changes require /goop-amend. |
|
|
316
|
+
+-------------------------------------------------------+
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
Once locked, this is the contract. Both you and the AI know exactly what will be built.
|
|
320
|
+
|
|
321
|
+
### Accept Gate (After Execution)
|
|
322
|
+
|
|
323
|
+
```
|
|
324
|
+
+-------------------------------------------------------+
|
|
325
|
+
| ACCEPTANCE GATE |
|
|
326
|
+
+-------------------------------------------------------+
|
|
327
|
+
| VERIFIED: |
|
|
328
|
+
| ✓ Login with email (test: auth.test.ts:15) |
|
|
329
|
+
| ✓ Session persistence (test: session.test.ts:42) |
|
|
330
|
+
| ✓ Error messages (manual check) |
|
|
331
|
+
| |
|
|
332
|
+
| Tests: 24/24 | Build: OK |
|
|
333
|
+
+-------------------------------------------------------+
|
|
334
|
+
| Type "accept" to confirm completion. |
|
|
335
|
+
+-------------------------------------------------------+
|
|
394
336
|
```
|
|
395
337
|
|
|
338
|
+
The AI can't mark itself done. You verify, you accept.
|
|
339
|
+
|
|
396
340
|
---
|
|
397
341
|
|
|
398
|
-
##
|
|
342
|
+
## Example: Building a Feature
|
|
399
343
|
|
|
400
|
-
|
|
344
|
+
Here's what it actually looks like to build a feature with GoopSpec.
|
|
401
345
|
|
|
346
|
+
**You want:** Add user notifications to your app.
|
|
347
|
+
|
|
348
|
+
### Step 1: Discuss
|
|
349
|
+
|
|
350
|
+
```
|
|
351
|
+
/goop-discuss "Add user notifications"
|
|
402
352
|
```
|
|
403
|
-
You: "I need to add a notification system to my app"
|
|
404
353
|
|
|
405
|
-
GoopSpec
|
|
406
|
-
→ Asks about notification types, delivery methods, UI
|
|
407
|
-
→ Creates SPEC.md with must-haves
|
|
408
|
-
→ Researches best practices
|
|
409
|
-
→ Presents plan for approval
|
|
410
|
-
→ Implements in waves with atomic commits
|
|
411
|
-
→ Verifies against spec
|
|
412
|
-
→ You confirm completion
|
|
354
|
+
GoopSpec asks questions:
|
|
413
355
|
```
|
|
356
|
+
> What triggers notifications? (new messages, mentions, system alerts?)
|
|
357
|
+
> How should they be delivered? (in-app, email, push?)
|
|
358
|
+
> Do users need to configure notification preferences?
|
|
359
|
+
> What happens when a notification is clicked?
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
You answer. GoopSpec builds understanding.
|
|
414
363
|
|
|
415
|
-
### 2
|
|
364
|
+
### Step 2: Plan
|
|
416
365
|
|
|
417
366
|
```
|
|
418
|
-
/goop-
|
|
367
|
+
/goop-plan
|
|
419
368
|
```
|
|
420
369
|
|
|
421
|
-
|
|
370
|
+
GoopSpec creates:
|
|
371
|
+
- **SPEC.md** — Must-haves and out-of-scope
|
|
372
|
+
- **BLUEPRINT.md** — Waves of tasks with acceptance criteria
|
|
422
373
|
|
|
423
|
-
### 3
|
|
374
|
+
### Step 3: Specify (Contract Gate)
|
|
424
375
|
|
|
425
376
|
```
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
377
|
+
+--------------------------------------------------------+
|
|
378
|
+
| CONTRACT GATE |
|
|
379
|
+
+--------------------------------------------------------+
|
|
380
|
+
| MUST-HAVES: |
|
|
381
|
+
| • In-app notification badge on header |
|
|
382
|
+
| • Notification dropdown with mark-as-read |
|
|
383
|
+
| • User preferences page for notification types |
|
|
384
|
+
| |
|
|
385
|
+
| OUT OF SCOPE: Email notifications, push notifications |
|
|
386
|
+
+--------------------------------------------------------+
|
|
387
|
+
| Type "confirm" to lock this specification. |
|
|
388
|
+
+--------------------------------------------------------+
|
|
434
389
|
```
|
|
435
390
|
|
|
436
|
-
|
|
391
|
+
You type `confirm`. The spec is now locked.
|
|
392
|
+
|
|
393
|
+
### Step 4: Execute
|
|
437
394
|
|
|
438
395
|
```
|
|
439
|
-
/goop-
|
|
396
|
+
/goop-execute
|
|
440
397
|
```
|
|
441
398
|
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
399
|
+
GoopSpec executes in waves:
|
|
400
|
+
```
|
|
401
|
+
Wave 1: Foundation (DB schema, types)
|
|
402
|
+
✓ Task 1.1: Create notifications table
|
|
403
|
+
✓ Task 1.2: Add TypeScript interfaces
|
|
447
404
|
|
|
448
|
-
|
|
405
|
+
Wave 2: Core (business logic)
|
|
406
|
+
✓ Task 2.1: Notification service
|
|
407
|
+
✓ Task 2.2: Mark-as-read endpoint
|
|
449
408
|
|
|
409
|
+
Wave 3: UI (components)
|
|
410
|
+
✓ Task 3.1: NotificationBadge component
|
|
411
|
+
✓ Task 3.2: NotificationDropdown component
|
|
412
|
+
✓ Task 3.3: Preferences page
|
|
450
413
|
```
|
|
451
|
-
|
|
414
|
+
|
|
415
|
+
Each task gets an atomic commit.
|
|
416
|
+
|
|
417
|
+
### Step 5: Accept (Acceptance Gate)
|
|
418
|
+
|
|
419
|
+
```
|
|
420
|
+
+--------------------------------------------------------+
|
|
421
|
+
| ACCEPTANCE GATE |
|
|
422
|
+
+--------------------------------------------------------+
|
|
423
|
+
| VERIFIED: |
|
|
424
|
+
| ✓ In-app notification badge — test: header.test.ts |
|
|
425
|
+
| ✓ Notification dropdown — test: dropdown.test.ts |
|
|
426
|
+
| ✓ User preferences page — manual verification |
|
|
427
|
+
| |
|
|
428
|
+
| Tests: 12/12 passing | Build: Successful |
|
|
429
|
+
+--------------------------------------------------------+
|
|
430
|
+
| Type "accept" to confirm completion. |
|
|
431
|
+
+--------------------------------------------------------+
|
|
452
432
|
```
|
|
453
433
|
|
|
454
|
-
|
|
455
|
-
1. Form hypothesis
|
|
456
|
-
2. Design experiment
|
|
457
|
-
3. Execute test
|
|
458
|
-
4. Analyze results
|
|
459
|
-
5. Iterate until root cause found
|
|
434
|
+
You type `accept`. Done.
|
|
460
435
|
|
|
461
436
|
---
|
|
462
437
|
|
|
463
|
-
##
|
|
438
|
+
## Other Use Cases
|
|
464
439
|
|
|
465
|
-
###
|
|
440
|
+
### Quick Bug Fix
|
|
466
441
|
|
|
467
|
-
|
|
442
|
+
```
|
|
443
|
+
/goop-quick "Fix the date formatting bug in the dashboard"
|
|
444
|
+
```
|
|
468
445
|
|
|
469
|
-
|
|
470
|
-
{
|
|
471
|
-
"version": "0.1.0",
|
|
472
|
-
"projectName": "my-project",
|
|
473
|
-
"enforcement": "warn",
|
|
474
|
-
"orchestrator": {
|
|
475
|
-
"enableAsDefault": true,
|
|
476
|
-
"model": "anthropic/claude-opus-4-5",
|
|
477
|
-
"thinkingBudget": 32000,
|
|
478
|
-
"phaseGates": "ask",
|
|
479
|
-
"waveExecution": "sequential"
|
|
480
|
-
},
|
|
481
|
-
"memory": {
|
|
482
|
-
"enabled": true,
|
|
483
|
-
"capture": {
|
|
484
|
-
"captureToolUse": true,
|
|
485
|
-
"capturePhaseChanges": true
|
|
486
|
-
}
|
|
487
|
-
},
|
|
488
|
-
"agents": {
|
|
489
|
-
"goop-executor": { "model": "anthropic/claude-sonnet-4-5" },
|
|
490
|
-
"goop-researcher": { "model": "anthropic/claude-sonnet-4-5" }
|
|
491
|
-
}
|
|
492
|
-
}
|
|
493
|
-
```
|
|
494
|
-
|
|
495
|
-
### Enforcement Levels
|
|
496
|
-
|
|
497
|
-
| Level | Behavior |
|
|
498
|
-
|-------|----------|
|
|
499
|
-
| `assist` | Suggestions only |
|
|
500
|
-
| `warn` | Warn on scope violations |
|
|
501
|
-
| `strict` | Block modifications outside spec |
|
|
446
|
+
Skips gates, ships fast, still makes atomic commit.
|
|
502
447
|
|
|
503
|
-
|
|
448
|
+
### Major Refactor
|
|
504
449
|
|
|
505
|
-
|
|
450
|
+
```
|
|
451
|
+
/goop-milestone "v2.0 Database Migration"
|
|
452
|
+
```
|
|
506
453
|
|
|
507
|
-
|
|
454
|
+
Full workflow with deep research, locked spec with rollback plan, multi-wave execution, and archived learnings.
|
|
508
455
|
|
|
509
|
-
|
|
510
|
-
|------|---------|
|
|
511
|
-
| `continuation-enforcer` | Prevents stopping with incomplete todos |
|
|
512
|
-
| `comment-checker` | Detects excessive AI comments in code |
|
|
513
|
-
| `system-transform` | Injects context into conversations |
|
|
514
|
-
| `tool-lifecycle` | Tracks tool usage and modifications |
|
|
456
|
+
### Brownfield Project
|
|
515
457
|
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|------|---------|
|
|
520
|
-
| `goop_status` | Show workflow state, phases, progress |
|
|
521
|
-
| `goop_checkpoint` | Save/load/list execution checkpoints |
|
|
522
|
-
| `task` | Delegate tasks to specialized subagents |
|
|
523
|
-
| `goop_skill` | Load domain knowledge |
|
|
524
|
-
| `goop_adl` | Read/append Automated Decision Log |
|
|
525
|
-
| `goop_spec` | Read/validate spec and plan files |
|
|
526
|
-
| `session_search` | Search past session history |
|
|
527
|
-
| `memory_*` | Save, search, note, decision, forget |
|
|
458
|
+
```
|
|
459
|
+
/goop-map-codebase
|
|
460
|
+
```
|
|
528
461
|
|
|
529
|
-
|
|
462
|
+
Maps existing codebase: stack detection, pattern discovery, integration points.
|
|
530
463
|
|
|
531
|
-
|
|
464
|
+
### Systematic Debugging
|
|
532
465
|
|
|
533
|
-
|
|
534
|
-
-
|
|
535
|
-
|
|
536
|
-
- Review the spec before confirming
|
|
537
|
-
- Use checkpoints for long tasks
|
|
538
|
-
- Let it learn from completed work
|
|
466
|
+
```
|
|
467
|
+
/goop-debug "Users are getting logged out randomly"
|
|
468
|
+
```
|
|
539
469
|
|
|
540
|
-
|
|
541
|
-
- Skip the Plan phase for non-trivial work
|
|
542
|
-
- Approve specs you haven't read
|
|
543
|
-
- Interrupt during wave execution
|
|
544
|
-
- Ignore deviation warnings
|
|
545
|
-
- Forget to confirm at gates
|
|
470
|
+
Scientific method: hypothesis → experiment → analyze → iterate.
|
|
546
471
|
|
|
547
472
|
---
|
|
548
473
|
|
|
549
|
-
##
|
|
474
|
+
## Configuration
|
|
475
|
+
|
|
476
|
+
Configure via `.goopspec/config.json` after running `/goop-setup`. Key settings:
|
|
550
477
|
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
| Verification | Manual | Automated + gates |
|
|
556
|
-
| Memory | Per-session | Persistent |
|
|
557
|
-
| Context | Degrading | Fresh per agent |
|
|
558
|
-
| Commits | Variable | Atomic per task |
|
|
478
|
+
- **orchestrator.model** — Model for the Conductor (default: claude-opus-4-5)
|
|
479
|
+
- **agents.{name}.model** — Model for specific agents
|
|
480
|
+
- **enforcement** — `assist`, `warn`, or `strict`
|
|
481
|
+
- **memory.enabled** — Persistent memory on/off
|
|
559
482
|
|
|
560
483
|
---
|
|
561
484
|
|
|
@@ -593,6 +516,7 @@ opencode-goopspec/
|
|
|
593
516
|
├── core/ # Core types and config
|
|
594
517
|
├── features/ # Feature modules
|
|
595
518
|
│ ├── archive/
|
|
519
|
+
│ ├── enforcement/
|
|
596
520
|
│ ├── memory/
|
|
597
521
|
│ ├── mode-detection/
|
|
598
522
|
│ ├── parallel-research/
|