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/README.md
CHANGED
|
@@ -1,250 +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
|
|
33
38
|
|
|
34
|
-
|
|
35
|
-
GoopSpec is interactive by default. It interviews you to uncover hidden requirements and ambiguities. If something is unclear, it asks clarifying questions rather than guessing.
|
|
39
|
+
---
|
|
36
40
|
|
|
37
|
-
|
|
38
|
-
The specification is a binding agreement. Once locked, both you and the AI know exactly what will be delivered. No scope creep. No surprises.
|
|
41
|
+
## The Workflow
|
|
39
42
|
|
|
40
|
-
|
|
41
|
-
|
|
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
|
+
```
|
|
42
59
|
|
|
43
|
-
###
|
|
44
|
-
|
|
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.
|
|
45
62
|
|
|
46
|
-
###
|
|
47
|
-
|
|
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.
|
|
48
65
|
|
|
49
|
-
|
|
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.
|
|
50
68
|
|
|
51
|
-
|
|
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.
|
|
52
71
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
│ PLAN │ ◀──▶ │ RESEARCH │
|
|
56
|
-
│ (Interview) │ │ (Opt-in) │
|
|
57
|
-
└─────────────┘ └─────────────┘
|
|
58
|
-
│
|
|
59
|
-
▼
|
|
60
|
-
┌─────────────┐ ┌─────────────┐
|
|
61
|
-
│ SPECIFY │ ──▶ │ EXECUTE │ ──▶ │ ACCEPT │
|
|
62
|
-
│ (Contract) │ │ (Build) │ │ (Verify) │
|
|
63
|
-
└─────────────┘ └─────────────┘ └─────────────┘
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
### Phase 1: Plan (Interactive)
|
|
67
|
-
Capture your intent. GoopSpec acts as a product manager, conducting an interview to:
|
|
68
|
-
- Clarify ambiguous requirements
|
|
69
|
-
- Identify edge cases
|
|
70
|
-
- Suggest technical approaches
|
|
71
|
-
- confirm the "Definition of Done"
|
|
72
|
-
|
|
73
|
-
### Phase 2: Research (Opt-in)
|
|
74
|
-
Triggered only when needed or requested. Specialized agents explore:
|
|
75
|
-
- **Researcher** - Deep domain knowledge & options
|
|
76
|
-
- **Explorer** - Existing codebase patterns
|
|
77
|
-
- **Librarian** - Documentation & APIs
|
|
78
|
-
|
|
79
|
-
### Phase 3: Specify (CONTRACT GATE)
|
|
80
|
-
Lock the specification. This is the contract:
|
|
81
|
-
- **Must-Haves** - Non-negotiable requirements
|
|
82
|
-
- **Out of Scope** - Explicit exclusions
|
|
83
|
-
- **You must confirm before execution begins.**
|
|
84
|
-
|
|
85
|
-
### Phase 4: Execute
|
|
86
|
-
Wave-based implementation with atomic commits:
|
|
87
|
-
- Tasks grouped into sequential waves
|
|
88
|
-
- Real-time progress tracking via Unified UI
|
|
89
|
-
- Checkpoints for pausing/resuming
|
|
90
|
-
|
|
91
|
-
### Phase 5: Accept (ACCEPTANCE GATE)
|
|
92
|
-
Verify the implementation:
|
|
93
|
-
- Automated tests run
|
|
94
|
-
- Security audit performed
|
|
95
|
-
- **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.
|
|
96
74
|
|
|
97
75
|
---
|
|
98
76
|
|
|
99
77
|
## Quick Start
|
|
100
78
|
|
|
101
|
-
|
|
79
|
+
**60 seconds to your first spec-driven feature.**
|
|
102
80
|
|
|
103
|
-
|
|
81
|
+
### 1. Install
|
|
82
|
+
|
|
83
|
+
Add to your OpenCode config (`opencode.json`):
|
|
104
84
|
|
|
105
85
|
```json
|
|
106
|
-
{
|
|
107
|
-
"plugins": ["opencode-goopspec"]
|
|
108
|
-
}
|
|
86
|
+
{ "plugins": ["opencode-goopspec"] }
|
|
109
87
|
```
|
|
110
88
|
|
|
111
|
-
|
|
89
|
+
Or build from source:
|
|
112
90
|
|
|
113
91
|
```bash
|
|
114
|
-
# Clone the repository
|
|
115
92
|
git clone https://github.com/hffmnnj/opencode-goopspec.git
|
|
116
|
-
cd opencode-goopspec
|
|
117
|
-
|
|
118
|
-
# Install dependencies
|
|
119
|
-
bun install
|
|
120
|
-
|
|
121
|
-
# Build
|
|
122
|
-
bun run build
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
Then add the local path to your OpenCode configuration:
|
|
126
|
-
|
|
127
|
-
```json
|
|
128
|
-
{
|
|
129
|
-
"plugins": ["./path/to/opencode-goopspec"]
|
|
130
|
-
}
|
|
93
|
+
cd opencode-goopspec && bun install && bun run build
|
|
131
94
|
```
|
|
132
95
|
|
|
133
|
-
###
|
|
96
|
+
### 2. Setup
|
|
134
97
|
|
|
135
98
|
```
|
|
136
99
|
/goop-setup
|
|
137
100
|
```
|
|
138
101
|
|
|
139
|
-
|
|
140
|
-
- Model preferences for orchestrator and agents
|
|
141
|
-
- MCP server connections
|
|
142
|
-
- Memory system settings
|
|
143
|
-
|
|
144
|
-
### Start Your First Project
|
|
102
|
+
### 3. Start Building
|
|
145
103
|
|
|
146
104
|
```
|
|
147
|
-
/goop-
|
|
105
|
+
/goop-discuss "Add dark mode to the settings page"
|
|
148
106
|
```
|
|
149
107
|
|
|
150
|
-
GoopSpec
|
|
108
|
+
GoopSpec interviews you, creates a locked spec, executes in waves, and asks you to verify. Done.
|
|
151
109
|
|
|
152
110
|
---
|
|
153
111
|
|
|
154
|
-
##
|
|
155
|
-
|
|
156
|
-
GoopSpec scales to any task size:
|
|
112
|
+
## Commands Reference
|
|
157
113
|
|
|
158
|
-
|
|
159
|
-
|------|-------------|----------|
|
|
160
|
-
| **Quick** | Bug fixes, typos, small tweaks | Plan → Execute → Accept |
|
|
161
|
-
| **Standard** | Features, moderate complexity | Full 5-phase workflow |
|
|
162
|
-
| **Comprehensive** | System redesigns, major refactors | Extended research + multiple waves |
|
|
163
|
-
| **Milestone** | Major releases, multi-feature work | Multiple cycles + archive with learnings |
|
|
114
|
+
All 20 commands, organized by what you're doing.
|
|
164
115
|
|
|
165
|
-
###
|
|
166
|
-
```
|
|
167
|
-
/goop-quick "Fix the typo in the login button"
|
|
168
|
-
```
|
|
169
|
-
Skip Research and Specify phases. Ship fast.
|
|
116
|
+
### Workflow Commands
|
|
170
117
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
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) |
|
|
176
125
|
|
|
177
|
-
|
|
126
|
+
### Task Mode Commands
|
|
178
127
|
|
|
179
|
-
|
|
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 |
|
|
180
133
|
|
|
181
|
-
###
|
|
134
|
+
### Research & Debug
|
|
182
135
|
|
|
183
136
|
| Command | Description |
|
|
184
137
|
|---------|-------------|
|
|
185
|
-
| `/goop-
|
|
186
|
-
| `/goop-
|
|
187
|
-
| `/goop-
|
|
188
|
-
| `/goop-execute` | Start Execute phase - wave-based implementation |
|
|
189
|
-
| `/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 |
|
|
190
141
|
|
|
191
|
-
###
|
|
142
|
+
### Memory Commands
|
|
192
143
|
|
|
193
144
|
| Command | Description |
|
|
194
145
|
|---------|-------------|
|
|
195
|
-
| `/goop-
|
|
196
|
-
| `/goop-
|
|
197
|
-
| `/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 |
|
|
198
149
|
|
|
199
150
|
### Utility Commands
|
|
200
151
|
|
|
201
152
|
| Command | Description |
|
|
202
153
|
|---------|-------------|
|
|
203
|
-
| `/goop-status` | Show
|
|
154
|
+
| `/goop-status` | Show current workflow state |
|
|
155
|
+
| `/goop-setup` | First-time setup wizard |
|
|
204
156
|
| `/goop-amend [change]` | Propose spec changes after lock |
|
|
205
|
-
| `/goop-pause` | Save checkpoint
|
|
206
|
-
| `/goop-resume [id]` | Resume from checkpoint |
|
|
207
|
-
| `/goop-
|
|
208
|
-
| `/goop-debug` | Scientific debugging workflow |
|
|
209
|
-
| `/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 |
|
|
210
160
|
|
|
211
161
|
---
|
|
212
162
|
|
|
213
|
-
## 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
|
|
214
170
|
|
|
215
|
-
|
|
171
|
+
**goop-orchestrator** — *The Conductor* (`anthropic/claude-opus-4-5`)
|
|
216
172
|
|
|
217
|
-
### What It Does
|
|
218
173
|
- Coordinates all work through delegation
|
|
219
|
-
- Maintains clean context
|
|
220
|
-
- Tracks progress
|
|
174
|
+
- Maintains clean context across tasks
|
|
175
|
+
- Tracks progress in CHRONICLE.md
|
|
221
176
|
- Applies deviation rules automatically
|
|
222
|
-
- Presents gates for
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
The
|
|
233
|
-
|
|
234
|
-
|
|
|
235
|
-
|
|
236
|
-
| `goop-
|
|
237
|
-
| `goop-
|
|
238
|
-
| `goop-
|
|
239
|
-
| `goop-
|
|
240
|
-
| `
|
|
241
|
-
| `goop-verifier` | The Auditor | Spec compliance checking |
|
|
242
|
-
| `goop-debugger` | The Detective | Scientific debugging |
|
|
243
|
-
| `goop-designer` | The Artisan | UI/UX design |
|
|
244
|
-
| `goop-tester` | The Guardian | Test writing |
|
|
245
|
-
| `goop-writer` | The Scribe | Documentation |
|
|
246
|
-
| `goop-librarian` | The Archivist | Code/doc search |
|
|
247
|
-
| `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 |
|
|
248
196
|
|
|
249
197
|
---
|
|
250
198
|
|
|
@@ -351,213 +299,186 @@ When milestones complete:
|
|
|
351
299
|
|
|
352
300
|
## Contract Gates
|
|
353
301
|
|
|
354
|
-
Two
|
|
355
|
-
|
|
356
|
-
### Specify Gate (
|
|
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
|
-
|
|
388
|
-
│ │
|
|
389
|
-
│ Tests: 24/24 passing │
|
|
390
|
-
│ Build: Successful │
|
|
391
|
-
│ │
|
|
392
|
-
│ ───────────────────────────────────────────── │
|
|
393
|
-
│ Type "accept" to confirm completion. │
|
|
394
|
-
│ │
|
|
395
|
-
╰────────────────────────────────────────────────────╯
|
|
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
|
+
+-------------------------------------------------------+
|
|
396
336
|
```
|
|
397
337
|
|
|
338
|
+
The AI can't mark itself done. You verify, you accept.
|
|
339
|
+
|
|
398
340
|
---
|
|
399
341
|
|
|
400
|
-
##
|
|
342
|
+
## Example: Building a Feature
|
|
401
343
|
|
|
402
|
-
|
|
344
|
+
Here's what it actually looks like to build a feature with GoopSpec.
|
|
403
345
|
|
|
346
|
+
**You want:** Add user notifications to your app.
|
|
347
|
+
|
|
348
|
+
### Step 1: Discuss
|
|
349
|
+
|
|
350
|
+
```
|
|
351
|
+
/goop-discuss "Add user notifications"
|
|
404
352
|
```
|
|
405
|
-
You: "I need to add a notification system to my app"
|
|
406
353
|
|
|
407
|
-
GoopSpec
|
|
408
|
-
→ Asks about notification types, delivery methods, UI
|
|
409
|
-
→ Creates SPEC.md with must-haves
|
|
410
|
-
→ Researches best practices
|
|
411
|
-
→ Presents plan for approval
|
|
412
|
-
→ Implements in waves with atomic commits
|
|
413
|
-
→ Verifies against spec
|
|
414
|
-
→ You confirm completion
|
|
354
|
+
GoopSpec asks questions:
|
|
415
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.
|
|
416
363
|
|
|
417
|
-
### 2
|
|
364
|
+
### Step 2: Plan
|
|
418
365
|
|
|
419
366
|
```
|
|
420
|
-
/goop-
|
|
367
|
+
/goop-plan
|
|
421
368
|
```
|
|
422
369
|
|
|
423
|
-
|
|
370
|
+
GoopSpec creates:
|
|
371
|
+
- **SPEC.md** — Must-haves and out-of-scope
|
|
372
|
+
- **BLUEPRINT.md** — Waves of tasks with acceptance criteria
|
|
424
373
|
|
|
425
|
-
### 3
|
|
374
|
+
### Step 3: Specify (Contract Gate)
|
|
426
375
|
|
|
427
376
|
```
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
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
|
+
+--------------------------------------------------------+
|
|
436
389
|
```
|
|
437
390
|
|
|
438
|
-
|
|
391
|
+
You type `confirm`. The spec is now locked.
|
|
392
|
+
|
|
393
|
+
### Step 4: Execute
|
|
439
394
|
|
|
440
395
|
```
|
|
441
|
-
/goop-
|
|
396
|
+
/goop-execute
|
|
442
397
|
```
|
|
443
398
|
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
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
|
|
449
404
|
|
|
450
|
-
|
|
405
|
+
Wave 2: Core (business logic)
|
|
406
|
+
✓ Task 2.1: Notification service
|
|
407
|
+
✓ Task 2.2: Mark-as-read endpoint
|
|
451
408
|
|
|
409
|
+
Wave 3: UI (components)
|
|
410
|
+
✓ Task 3.1: NotificationBadge component
|
|
411
|
+
✓ Task 3.2: NotificationDropdown component
|
|
412
|
+
✓ Task 3.3: Preferences page
|
|
452
413
|
```
|
|
453
|
-
|
|
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
|
+
+--------------------------------------------------------+
|
|
454
432
|
```
|
|
455
433
|
|
|
456
|
-
|
|
457
|
-
1. Form hypothesis
|
|
458
|
-
2. Design experiment
|
|
459
|
-
3. Execute test
|
|
460
|
-
4. Analyze results
|
|
461
|
-
5. Iterate until root cause found
|
|
434
|
+
You type `accept`. Done.
|
|
462
435
|
|
|
463
436
|
---
|
|
464
437
|
|
|
465
|
-
##
|
|
438
|
+
## Other Use Cases
|
|
466
439
|
|
|
467
|
-
###
|
|
440
|
+
### Quick Bug Fix
|
|
468
441
|
|
|
469
|
-
|
|
442
|
+
```
|
|
443
|
+
/goop-quick "Fix the date formatting bug in the dashboard"
|
|
444
|
+
```
|
|
470
445
|
|
|
471
|
-
|
|
472
|
-
{
|
|
473
|
-
"version": "0.1.0",
|
|
474
|
-
"projectName": "my-project",
|
|
475
|
-
"enforcement": "warn",
|
|
476
|
-
"orchestrator": {
|
|
477
|
-
"enableAsDefault": true,
|
|
478
|
-
"model": "anthropic/claude-opus-4-5",
|
|
479
|
-
"thinkingBudget": 32000,
|
|
480
|
-
"phaseGates": "ask",
|
|
481
|
-
"waveExecution": "sequential"
|
|
482
|
-
},
|
|
483
|
-
"memory": {
|
|
484
|
-
"enabled": true,
|
|
485
|
-
"capture": {
|
|
486
|
-
"captureToolUse": true,
|
|
487
|
-
"capturePhaseChanges": true
|
|
488
|
-
}
|
|
489
|
-
},
|
|
490
|
-
"agents": {
|
|
491
|
-
"goop-executor": { "model": "anthropic/claude-sonnet-4-5" },
|
|
492
|
-
"goop-researcher": { "model": "anthropic/claude-sonnet-4-5" }
|
|
493
|
-
}
|
|
494
|
-
}
|
|
495
|
-
```
|
|
496
|
-
|
|
497
|
-
### Enforcement Levels
|
|
498
|
-
|
|
499
|
-
| Level | Behavior |
|
|
500
|
-
|-------|----------|
|
|
501
|
-
| `assist` | Suggestions only |
|
|
502
|
-
| `warn` | Warn on scope violations |
|
|
503
|
-
| `strict` | Block modifications outside spec |
|
|
446
|
+
Skips gates, ships fast, still makes atomic commit.
|
|
504
447
|
|
|
505
|
-
|
|
448
|
+
### Major Refactor
|
|
506
449
|
|
|
507
|
-
|
|
450
|
+
```
|
|
451
|
+
/goop-milestone "v2.0 Database Migration"
|
|
452
|
+
```
|
|
508
453
|
|
|
509
|
-
|
|
454
|
+
Full workflow with deep research, locked spec with rollback plan, multi-wave execution, and archived learnings.
|
|
510
455
|
|
|
511
|
-
|
|
512
|
-
|------|---------|
|
|
513
|
-
| `continuation-enforcer` | Prevents stopping with incomplete todos |
|
|
514
|
-
| `comment-checker` | Detects excessive AI comments in code |
|
|
515
|
-
| `system-transform` | Injects context into conversations |
|
|
516
|
-
| `tool-lifecycle` | Tracks tool usage and modifications |
|
|
456
|
+
### Brownfield Project
|
|
517
457
|
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|------|---------|
|
|
522
|
-
| `goop_status` | Show workflow state, phases, progress |
|
|
523
|
-
| `goop_checkpoint` | Save/load/list execution checkpoints |
|
|
524
|
-
| `task` | Delegate tasks to specialized subagents |
|
|
525
|
-
| `goop_skill` | Load domain knowledge |
|
|
526
|
-
| `goop_adl` | Read/append Automated Decision Log |
|
|
527
|
-
| `goop_spec` | Read/validate spec and plan files |
|
|
528
|
-
| `session_search` | Search past session history |
|
|
529
|
-
| `memory_*` | Save, search, note, decision, forget |
|
|
458
|
+
```
|
|
459
|
+
/goop-map-codebase
|
|
460
|
+
```
|
|
530
461
|
|
|
531
|
-
|
|
462
|
+
Maps existing codebase: stack detection, pattern discovery, integration points.
|
|
532
463
|
|
|
533
|
-
|
|
464
|
+
### Systematic Debugging
|
|
534
465
|
|
|
535
|
-
|
|
536
|
-
-
|
|
537
|
-
|
|
538
|
-
- Review the spec before confirming
|
|
539
|
-
- Use checkpoints for long tasks
|
|
540
|
-
- Let it learn from completed work
|
|
466
|
+
```
|
|
467
|
+
/goop-debug "Users are getting logged out randomly"
|
|
468
|
+
```
|
|
541
469
|
|
|
542
|
-
|
|
543
|
-
- Skip the Plan phase for non-trivial work
|
|
544
|
-
- Approve specs you haven't read
|
|
545
|
-
- Interrupt during wave execution
|
|
546
|
-
- Ignore deviation warnings
|
|
547
|
-
- Forget to confirm at gates
|
|
470
|
+
Scientific method: hypothesis → experiment → analyze → iterate.
|
|
548
471
|
|
|
549
472
|
---
|
|
550
473
|
|
|
551
|
-
##
|
|
474
|
+
## Configuration
|
|
475
|
+
|
|
476
|
+
Configure via `.goopspec/config.json` after running `/goop-setup`. Key settings:
|
|
552
477
|
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
| Verification | Manual | Automated + gates |
|
|
558
|
-
| Memory | Per-session | Persistent |
|
|
559
|
-
| Context | Degrading | Fresh per agent |
|
|
560
|
-
| 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
|
|
561
482
|
|
|
562
483
|
---
|
|
563
484
|
|
|
@@ -595,6 +516,7 @@ opencode-goopspec/
|
|
|
595
516
|
├── core/ # Core types and config
|
|
596
517
|
├── features/ # Feature modules
|
|
597
518
|
│ ├── archive/
|
|
519
|
+
│ ├── enforcement/
|
|
598
520
|
│ ├── memory/
|
|
599
521
|
│ ├── mode-detection/
|
|
600
522
|
│ ├── parallel-research/
|