opencode-goopspec 0.1.0
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/LICENSE +21 -0
- package/README.md +650 -0
- package/agents/goop-debugger.md +265 -0
- package/agents/goop-designer.md +244 -0
- package/agents/goop-executor.md +217 -0
- package/agents/goop-explorer.md +252 -0
- package/agents/goop-librarian.md +197 -0
- package/agents/goop-orchestrator.md +224 -0
- package/agents/goop-planner.md +231 -0
- package/agents/goop-researcher.md +246 -0
- package/agents/goop-tester.md +245 -0
- package/agents/goop-verifier.md +266 -0
- package/agents/goop-writer.md +293 -0
- package/agents/memory-distiller.md +226 -0
- package/commands/goop-accept.md +183 -0
- package/commands/goop-amend.md +175 -0
- package/commands/goop-complete.md +206 -0
- package/commands/goop-debug.md +318 -0
- package/commands/goop-discuss.md +138 -0
- package/commands/goop-execute.md +137 -0
- package/commands/goop-help.md +82 -0
- package/commands/goop-map-codebase.md +501 -0
- package/commands/goop-memory.md +66 -0
- package/commands/goop-milestone.md +213 -0
- package/commands/goop-pause.md +61 -0
- package/commands/goop-plan.md +78 -0
- package/commands/goop-quick.md +165 -0
- package/commands/goop-recall.md +48 -0
- package/commands/goop-remember.md +71 -0
- package/commands/goop-research.md +98 -0
- package/commands/goop-resume.md +57 -0
- package/commands/goop-setup.md +208 -0
- package/commands/goop-specify.md +145 -0
- package/commands/goop-status.md +153 -0
- package/dist/index.js +31017 -0
- package/dist/memory/index.js +48752 -0
- package/package.json +73 -0
- package/references/agent-patterns.md +334 -0
- package/references/boundary-system.md +141 -0
- package/references/deviation-rules.md +80 -0
- package/references/dispatch-patterns.md +176 -0
- package/references/model-profiles.md +109 -0
- package/references/orchestrator-philosophy.md +280 -0
- package/references/security-checklist.md +163 -0
- package/references/subagent-protocol.md +393 -0
- package/references/tdd.md +231 -0
- package/references/ui-brand.md +261 -0
- package/references/workflow-accept.md +325 -0
- package/references/workflow-execute.md +315 -0
- package/references/workflow-plan.md +179 -0
- package/references/workflow-research.md +234 -0
- package/references/workflow-specify.md +278 -0
- package/skills/README.md +362 -0
- package/skills/accessibility/skill.md +41 -0
- package/skills/accessibility-testing/skill.md +47 -0
- package/skills/api-docs/skill.md +50 -0
- package/skills/architecture-design/skill.md +168 -0
- package/skills/atomic-commits/skill.md +53 -0
- package/skills/code-review/skill.md +59 -0
- package/skills/codebase-mapping/skill.md +54 -0
- package/skills/convention-detection/skill.md +68 -0
- package/skills/debugging/skill.md +59 -0
- package/skills/deviation-handling/skill.md +187 -0
- package/skills/documentation/skill.md +213 -0
- package/skills/goop-core/skill.md +383 -0
- package/skills/memory-usage/skill.md +208 -0
- package/skills/parallel-planning/skill.md +170 -0
- package/skills/pattern-extraction/skill.md +73 -0
- package/skills/performance-optimization/skill.md +188 -0
- package/skills/playwright/skill.md +69 -0
- package/skills/playwright-testing/skill.md +93 -0
- package/skills/progress-tracking/skill.md +155 -0
- package/skills/readme-generation/skill.md +87 -0
- package/skills/research/skill.md +161 -0
- package/skills/responsive-design/skill.md +76 -0
- package/skills/scientific-method/skill.md +67 -0
- package/skills/security-audit/skill.md +152 -0
- package/skills/task-decomposition/skill.md +153 -0
- package/skills/task-delegation/skill.md +127 -0
- package/skills/technical-writing/skill.md +69 -0
- package/skills/testing/skill.md +202 -0
- package/skills/ui-design/skill.md +73 -0
- package/skills/ux-patterns/skill.md +82 -0
- package/skills/verification/skill.md +178 -0
- package/skills/visual-regression/skill.md +86 -0
- package/templates/blueprint.md +141 -0
- package/templates/chronicle.md +156 -0
- package/templates/milestone.md +131 -0
- package/templates/research.md +117 -0
- package/templates/retrospective.md +188 -0
- package/templates/spec.md +103 -0
- package/templates/summary.md +202 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 James (opencode-goopspec)
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,650 @@
|
|
|
1
|
+
# GoopSpec v0.1.0-beta
|
|
2
|
+
|
|
3
|
+
<div align="center">
|
|
4
|
+
|
|
5
|
+
**Spec-Driven Development for AI-Assisted Coding**
|
|
6
|
+
|
|
7
|
+
*The Orchestrator that turns vague ideas into shipped software*
|
|
8
|
+
|
|
9
|
+
[](https://github.com/james/opencode-goopspec)
|
|
10
|
+
[](https://www.typescriptlang.org/)
|
|
11
|
+
[](./TEST-SUMMARY.md)
|
|
12
|
+
[](./LICENSE)
|
|
13
|
+
|
|
14
|
+
</div>
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## What is GoopSpec?
|
|
19
|
+
|
|
20
|
+
GoopSpec is a plugin for [OpenCode](https://opencode.ai) that transforms how you work with AI coding assistants. Instead of chaotic back-and-forth, GoopSpec enforces a disciplined **spec-driven workflow** that captures your intent, creates binding specifications, and delivers verified results.
|
|
21
|
+
|
|
22
|
+
**The Problem:** AI assistants are powerful but unpredictable. They start coding before understanding requirements, miss edge cases, forget context, and deliver work that doesn't match what you actually wanted.
|
|
23
|
+
|
|
24
|
+
**The Solution:** GoopSpec introduces **contracts**, **phases**, and **verification gates** that ensure the AI understands what you want before it writes a single line of code.
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
Your Idea → Plan → Research → Specify (CONTRACT) → Execute → Accept (VERIFY)
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Core Philosophy
|
|
33
|
+
|
|
34
|
+
### "Spec as Contract"
|
|
35
|
+
The specification is a binding agreement. Once locked, both you and the AI know exactly what will be delivered. No scope creep. No surprises.
|
|
36
|
+
|
|
37
|
+
### "Orchestrator as Conductor"
|
|
38
|
+
The GoopSpec Orchestrator never writes code itself. It coordinates specialized sub-agents, maintains clean context, and ensures quality. Like a conductor leading an orchestra - directing, not playing.
|
|
39
|
+
|
|
40
|
+
### "Memory-First"
|
|
41
|
+
Every agent searches memory before starting work, saves decisions during work, and persists learnings after. GoopSpec gets smarter with every project you complete.
|
|
42
|
+
|
|
43
|
+
### "Scale to the Task"
|
|
44
|
+
Quick bug fix? Use Quick Mode. Major feature? Use Standard Mode. Full system overhaul? Use Comprehensive Mode. GoopSpec adapts to your task size.
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## The 5-Phase Workflow
|
|
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**
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Quick Start
|
|
98
|
+
|
|
99
|
+
### Installation
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
# Clone the repository
|
|
103
|
+
git clone https://github.com/james/opencode-goopspec.git
|
|
104
|
+
cd opencode-goopspec
|
|
105
|
+
|
|
106
|
+
# Install dependencies
|
|
107
|
+
bun install
|
|
108
|
+
|
|
109
|
+
# Build
|
|
110
|
+
bun run build
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### Add to OpenCode
|
|
114
|
+
|
|
115
|
+
Add to your OpenCode configuration (`~/.config/opencode/opencode.json`):
|
|
116
|
+
|
|
117
|
+
```json
|
|
118
|
+
{
|
|
119
|
+
"plugin": ["path/to/opencode-goopspec"]
|
|
120
|
+
}
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
### First-Time Setup
|
|
124
|
+
|
|
125
|
+
```
|
|
126
|
+
/goop-setup
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
This wizard configures:
|
|
130
|
+
- Model preferences for orchestrator and agents
|
|
131
|
+
- MCP server connections
|
|
132
|
+
- Memory system settings
|
|
133
|
+
|
|
134
|
+
### Start Your First Project
|
|
135
|
+
|
|
136
|
+
```
|
|
137
|
+
/goop-plan "Add user authentication with OAuth"
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
GoopSpec will guide you through the entire workflow.
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## Task Modes
|
|
145
|
+
|
|
146
|
+
GoopSpec scales to any task size:
|
|
147
|
+
|
|
148
|
+
| Mode | When to Use | Workflow |
|
|
149
|
+
|------|-------------|----------|
|
|
150
|
+
| **Quick** | Bug fixes, typos, small tweaks | Plan → Execute → Accept |
|
|
151
|
+
| **Standard** | Features, moderate complexity | Full 5-phase workflow |
|
|
152
|
+
| **Comprehensive** | System redesigns, major refactors | Extended research + multiple waves |
|
|
153
|
+
| **Milestone** | Major releases, multi-feature work | Multiple cycles + archive with learnings |
|
|
154
|
+
|
|
155
|
+
### Quick Mode Example
|
|
156
|
+
```
|
|
157
|
+
/goop-quick "Fix the typo in the login button"
|
|
158
|
+
```
|
|
159
|
+
Skip Research and Specify phases. Ship fast.
|
|
160
|
+
|
|
161
|
+
### Milestone Mode Example
|
|
162
|
+
```
|
|
163
|
+
/goop-milestone "v1.0 Authentication System"
|
|
164
|
+
```
|
|
165
|
+
Groups related work, archives on completion, extracts learnings.
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## Commands Reference
|
|
170
|
+
|
|
171
|
+
### Workflow Commands
|
|
172
|
+
|
|
173
|
+
| Command | Description |
|
|
174
|
+
|---------|-------------|
|
|
175
|
+
| `/goop-plan [intent]` | Start Plan phase - capture intent and requirements |
|
|
176
|
+
| `/goop-research` | Start Research phase - parallel exploration |
|
|
177
|
+
| `/goop-specify` | Lock specification (CONTRACT GATE) |
|
|
178
|
+
| `/goop-execute` | Start Execute phase - wave-based implementation |
|
|
179
|
+
| `/goop-accept` | Verify and accept (ACCEPTANCE GATE) |
|
|
180
|
+
|
|
181
|
+
### Task Mode Commands
|
|
182
|
+
|
|
183
|
+
| Command | Description |
|
|
184
|
+
|---------|-------------|
|
|
185
|
+
| `/goop-quick [task]` | Fast-track small tasks |
|
|
186
|
+
| `/goop-milestone [name]` | Start versioned milestone |
|
|
187
|
+
| `/goop-complete` | Complete and archive milestone |
|
|
188
|
+
|
|
189
|
+
### Utility Commands
|
|
190
|
+
|
|
191
|
+
| Command | Description |
|
|
192
|
+
|---------|-------------|
|
|
193
|
+
| `/goop-status` | Show comprehensive workflow status |
|
|
194
|
+
| `/goop-amend [change]` | Propose spec changes after lock |
|
|
195
|
+
| `/goop-pause` | Save checkpoint to pause work |
|
|
196
|
+
| `/goop-resume [id]` | Resume from checkpoint |
|
|
197
|
+
| `/goop-recall [query]` | Search past work and memory |
|
|
198
|
+
| `/goop-debug` | Scientific debugging workflow |
|
|
199
|
+
| `/goop-map-codebase` | Analyze existing codebase |
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
## The Orchestrator
|
|
204
|
+
|
|
205
|
+
The GoopSpec Orchestrator is your primary interface. It's a **conductor**, not a player:
|
|
206
|
+
|
|
207
|
+
### What It Does
|
|
208
|
+
- Coordinates all work through delegation
|
|
209
|
+
- Maintains clean context for consistent quality
|
|
210
|
+
- Tracks progress via CHRONICLE.md
|
|
211
|
+
- Applies deviation rules automatically
|
|
212
|
+
- Presents gates for user confirmation
|
|
213
|
+
|
|
214
|
+
### What It Never Does
|
|
215
|
+
- Write implementation code directly
|
|
216
|
+
- Make architectural decisions alone
|
|
217
|
+
- "Quickly fix" things itself
|
|
218
|
+
- Modify files outside spec scope
|
|
219
|
+
|
|
220
|
+
### Delegation to Specialists
|
|
221
|
+
|
|
222
|
+
The Orchestrator delegates to 12 specialized agents:
|
|
223
|
+
|
|
224
|
+
| Agent | Role | Use Case |
|
|
225
|
+
|-------|------|----------|
|
|
226
|
+
| `goop-executor` | The Builder | Implementation tasks |
|
|
227
|
+
| `goop-planner` | The Architect | Creating blueprints |
|
|
228
|
+
| `goop-researcher` | The Scholar | Deep domain research |
|
|
229
|
+
| `goop-explorer` | The Scout | Fast codebase mapping |
|
|
230
|
+
| `goop-librarian` | The Archivist | Documentation lookup |
|
|
231
|
+
| `goop-verifier` | The Auditor | Spec compliance checking |
|
|
232
|
+
| `goop-debugger` | The Detective | Scientific debugging |
|
|
233
|
+
| `goop-designer` | The Artisan | UI/UX design |
|
|
234
|
+
| `goop-tester` | The Guardian | Test writing |
|
|
235
|
+
| `goop-writer` | The Scribe | Documentation |
|
|
236
|
+
| `goop-librarian` | The Archivist | Code/doc search |
|
|
237
|
+
| `memory-distiller` | The Curator | Knowledge extraction |
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
## Planning Files
|
|
242
|
+
|
|
243
|
+
GoopSpec uses markdown files to track state:
|
|
244
|
+
|
|
245
|
+
| File | Purpose |
|
|
246
|
+
|------|---------|
|
|
247
|
+
| `SPEC.md` | Locked specification with must-haves |
|
|
248
|
+
| `BLUEPRINT.md` | Execution plan with waves and tasks |
|
|
249
|
+
| `CHRONICLE.md` | Journey log tracking progress |
|
|
250
|
+
| `RESEARCH.md` | Research findings from exploration |
|
|
251
|
+
| `RETROSPECTIVE.md` | Post-completion analysis |
|
|
252
|
+
| `LEARNINGS.md` | Extracted patterns and insights |
|
|
253
|
+
|
|
254
|
+
### Directory Structure
|
|
255
|
+
|
|
256
|
+
```
|
|
257
|
+
.goopspec/
|
|
258
|
+
├── SPEC.md # Current specification
|
|
259
|
+
├── BLUEPRINT.md # Current execution plan
|
|
260
|
+
├── CHRONICLE.md # Current journey log
|
|
261
|
+
├── RESEARCH.md # Current research findings
|
|
262
|
+
├── config.json # Project configuration
|
|
263
|
+
├── quick/ # Quick task history
|
|
264
|
+
│ └── 001-fix-typo/
|
|
265
|
+
│ └── SUMMARY.md
|
|
266
|
+
├── milestones/ # Active milestones
|
|
267
|
+
│ └── v1.0-auth/
|
|
268
|
+
└── archive/ # Completed milestones
|
|
269
|
+
└── v0.9-setup/
|
|
270
|
+
├── RETROSPECTIVE.md
|
|
271
|
+
└── LEARNINGS.md
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
---
|
|
275
|
+
|
|
276
|
+
## Deviation Rules
|
|
277
|
+
|
|
278
|
+
GoopSpec uses a 4-rule system for handling unexpected situations:
|
|
279
|
+
|
|
280
|
+
### Rule 1: Auto-Fix Bugs
|
|
281
|
+
Fix immediately without asking:
|
|
282
|
+
- Type errors, logic bugs, runtime errors
|
|
283
|
+
- Security vulnerabilities (SQL injection, XSS)
|
|
284
|
+
- Memory leaks, race conditions
|
|
285
|
+
|
|
286
|
+
### Rule 2: Auto-Add Critical Functionality
|
|
287
|
+
Add immediately without asking:
|
|
288
|
+
- Error handling (try-catch, promise rejection)
|
|
289
|
+
- Input validation and sanitization
|
|
290
|
+
- Authentication/authorization checks
|
|
291
|
+
|
|
292
|
+
### Rule 3: Auto-Fix Blocking Issues
|
|
293
|
+
Fix immediately without asking:
|
|
294
|
+
- Missing dependencies
|
|
295
|
+
- Broken import paths
|
|
296
|
+
- Configuration errors
|
|
297
|
+
|
|
298
|
+
### Rule 4: Ask About Architectural Changes
|
|
299
|
+
**STOP and ask** before:
|
|
300
|
+
- Database schema changes
|
|
301
|
+
- Framework/library switches
|
|
302
|
+
- Breaking API changes
|
|
303
|
+
- New infrastructure
|
|
304
|
+
|
|
305
|
+
All deviations are logged to the Automated Decision Log (ADL).
|
|
306
|
+
|
|
307
|
+
---
|
|
308
|
+
|
|
309
|
+
## Memory System
|
|
310
|
+
|
|
311
|
+
GoopSpec remembers everything important:
|
|
312
|
+
|
|
313
|
+
### Automatic Capture
|
|
314
|
+
- Decisions and their reasoning
|
|
315
|
+
- Patterns that worked well
|
|
316
|
+
- Gotchas and pitfalls encountered
|
|
317
|
+
- User preferences discovered
|
|
318
|
+
|
|
319
|
+
### Recall
|
|
320
|
+
```
|
|
321
|
+
/goop-recall "how did we handle auth before?"
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
Returns relevant learnings from past projects.
|
|
325
|
+
|
|
326
|
+
### Archive-to-Memory Pipeline
|
|
327
|
+
When milestones complete:
|
|
328
|
+
1. Generate RETROSPECTIVE.md
|
|
329
|
+
2. Extract LEARNINGS.md (patterns, decisions, gotchas)
|
|
330
|
+
3. Persist learnings to memory with semantic concepts
|
|
331
|
+
4. Future projects benefit from past experience
|
|
332
|
+
|
|
333
|
+
---
|
|
334
|
+
|
|
335
|
+
## Known Limitations
|
|
336
|
+
|
|
337
|
+
- Memory system is disabled by default; the worker architecture needs rework for bundled plugins
|
|
338
|
+
- Parallel research is planned for v0.2; current implementation does not spawn agents yet
|
|
339
|
+
|
|
340
|
+
---
|
|
341
|
+
|
|
342
|
+
## Contract Gates
|
|
343
|
+
|
|
344
|
+
Two mandatory confirmation points ensure alignment:
|
|
345
|
+
|
|
346
|
+
### Specify Gate (Pre-Execution)
|
|
347
|
+
```
|
|
348
|
+
╭─ ⬢ GoopSpec ───────────────────────────────────────╮
|
|
349
|
+
│ │
|
|
350
|
+
│ 🔒 CONTRACT GATE │
|
|
351
|
+
│ │
|
|
352
|
+
│ MUST HAVES (I commit to delivering): │
|
|
353
|
+
│ • User can log in with email/password │
|
|
354
|
+
│ • Session persists across refresh │
|
|
355
|
+
│ • Error messages shown on failure │
|
|
356
|
+
│ │
|
|
357
|
+
│ OUT OF SCOPE: │
|
|
358
|
+
│ • OAuth integration (future milestone) │
|
|
359
|
+
│ │
|
|
360
|
+
│ ───────────────────────────────────────────── │
|
|
361
|
+
│ Type "confirm" to lock the specification. │
|
|
362
|
+
│ │
|
|
363
|
+
╰────────────────────────────────────────────────────╯
|
|
364
|
+
```
|
|
365
|
+
|
|
366
|
+
### Accept Gate (Post-Execution)
|
|
367
|
+
```
|
|
368
|
+
╭─ ⬢ GoopSpec ───────────────────────────────────────╮
|
|
369
|
+
│ │
|
|
370
|
+
│ ✓ ACCEPTANCE GATE │
|
|
371
|
+
│ │
|
|
372
|
+
│ VERIFICATION RESULTS: │
|
|
373
|
+
│ ☑ User can log in - VERIFIED │
|
|
374
|
+
│ (test: auth.test.ts:15) │
|
|
375
|
+
│ ☑ Session persists - VERIFIED │
|
|
376
|
+
│ (test: session.test.ts:42) │
|
|
377
|
+
│ ☑ Error messages - VERIFIED (manual) │
|
|
378
|
+
│ │
|
|
379
|
+
│ Tests: 24/24 passing │
|
|
380
|
+
│ Build: Successful │
|
|
381
|
+
│ │
|
|
382
|
+
│ ───────────────────────────────────────────── │
|
|
383
|
+
│ Type "accept" to confirm completion. │
|
|
384
|
+
│ │
|
|
385
|
+
╰────────────────────────────────────────────────────╯
|
|
386
|
+
```
|
|
387
|
+
|
|
388
|
+
---
|
|
389
|
+
|
|
390
|
+
## Use Cases
|
|
391
|
+
|
|
392
|
+
### 1. Building a New Feature
|
|
393
|
+
|
|
394
|
+
```
|
|
395
|
+
You: "I need to add a notification system to my app"
|
|
396
|
+
|
|
397
|
+
GoopSpec: "Let me understand what you need..."
|
|
398
|
+
→ Asks about notification types, delivery methods, UI
|
|
399
|
+
→ Creates SPEC.md with must-haves
|
|
400
|
+
→ Researches best practices
|
|
401
|
+
→ Presents plan for approval
|
|
402
|
+
→ Implements in waves with atomic commits
|
|
403
|
+
→ Verifies against spec
|
|
404
|
+
→ You confirm completion
|
|
405
|
+
```
|
|
406
|
+
|
|
407
|
+
### 2. Quick Bug Fix
|
|
408
|
+
|
|
409
|
+
```
|
|
410
|
+
/goop-quick "Fix the date formatting bug in the dashboard"
|
|
411
|
+
```
|
|
412
|
+
|
|
413
|
+
Skips research/specify, ships the fix fast, still creates atomic commit.
|
|
414
|
+
|
|
415
|
+
### 3. Major Refactor
|
|
416
|
+
|
|
417
|
+
```
|
|
418
|
+
/goop-milestone "v2.0 Database Migration"
|
|
419
|
+
|
|
420
|
+
GoopSpec: Creates milestone tracking
|
|
421
|
+
→ Deep research on migration strategies
|
|
422
|
+
→ Locked spec with rollback plan
|
|
423
|
+
→ Multi-wave execution with checkpoints
|
|
424
|
+
→ Comprehensive verification
|
|
425
|
+
→ Archives with extracted learnings
|
|
426
|
+
```
|
|
427
|
+
|
|
428
|
+
### 4. Brownfield Project
|
|
429
|
+
|
|
430
|
+
```
|
|
431
|
+
/goop-map-codebase
|
|
432
|
+
```
|
|
433
|
+
|
|
434
|
+
Analyzes existing codebase:
|
|
435
|
+
- Stack detection (frameworks, libraries)
|
|
436
|
+
- Pattern discovery (conventions, architecture)
|
|
437
|
+
- Integration point mapping
|
|
438
|
+
- Technical debt identification
|
|
439
|
+
|
|
440
|
+
### 5. Systematic Debugging
|
|
441
|
+
|
|
442
|
+
```
|
|
443
|
+
/goop-debug "Users are getting logged out randomly"
|
|
444
|
+
```
|
|
445
|
+
|
|
446
|
+
Scientific method approach:
|
|
447
|
+
1. Form hypothesis
|
|
448
|
+
2. Design experiment
|
|
449
|
+
3. Execute test
|
|
450
|
+
4. Analyze results
|
|
451
|
+
5. Iterate until root cause found
|
|
452
|
+
|
|
453
|
+
---
|
|
454
|
+
|
|
455
|
+
## Configuration
|
|
456
|
+
|
|
457
|
+
### Project Configuration
|
|
458
|
+
|
|
459
|
+
`.goopspec/config.json`:
|
|
460
|
+
|
|
461
|
+
```json
|
|
462
|
+
{
|
|
463
|
+
"version": "0.1.0",
|
|
464
|
+
"projectName": "my-project",
|
|
465
|
+
"enforcement": "warn",
|
|
466
|
+
"orchestrator": {
|
|
467
|
+
"enableAsDefault": true,
|
|
468
|
+
"model": "anthropic/claude-opus-4-5",
|
|
469
|
+
"thinkingBudget": 32000,
|
|
470
|
+
"phaseGates": "ask",
|
|
471
|
+
"waveExecution": "sequential"
|
|
472
|
+
},
|
|
473
|
+
"memory": {
|
|
474
|
+
"enabled": true,
|
|
475
|
+
"capture": {
|
|
476
|
+
"captureToolUse": true,
|
|
477
|
+
"capturePhaseChanges": true
|
|
478
|
+
}
|
|
479
|
+
},
|
|
480
|
+
"agents": {
|
|
481
|
+
"goop-executor": { "model": "anthropic/claude-sonnet-4-5" },
|
|
482
|
+
"goop-researcher": { "model": "anthropic/claude-sonnet-4-5" }
|
|
483
|
+
}
|
|
484
|
+
}
|
|
485
|
+
```
|
|
486
|
+
|
|
487
|
+
### Enforcement Levels
|
|
488
|
+
|
|
489
|
+
| Level | Behavior |
|
|
490
|
+
|-------|----------|
|
|
491
|
+
| `assist` | Suggestions only |
|
|
492
|
+
| `warn` | Warn on scope violations |
|
|
493
|
+
| `strict` | Block modifications outside spec |
|
|
494
|
+
|
|
495
|
+
---
|
|
496
|
+
|
|
497
|
+
## Hooks & Tools
|
|
498
|
+
|
|
499
|
+
### Hooks
|
|
500
|
+
|
|
501
|
+
| Hook | Purpose |
|
|
502
|
+
|------|---------|
|
|
503
|
+
| `continuation-enforcer` | Prevents stopping with incomplete todos |
|
|
504
|
+
| `comment-checker` | Detects excessive AI comments in code |
|
|
505
|
+
| `system-transform` | Injects context into conversations |
|
|
506
|
+
| `tool-lifecycle` | Tracks tool usage and modifications |
|
|
507
|
+
|
|
508
|
+
### Tools
|
|
509
|
+
|
|
510
|
+
| Tool | Purpose |
|
|
511
|
+
|------|---------|
|
|
512
|
+
| `goop_status` | Show workflow state, phases, progress |
|
|
513
|
+
| `goop_checkpoint` | Save/load/list execution checkpoints |
|
|
514
|
+
| `task` | Delegate tasks to specialized subagents |
|
|
515
|
+
| `goop_skill` | Load domain knowledge |
|
|
516
|
+
| `goop_adl` | Read/append Automated Decision Log |
|
|
517
|
+
| `goop_spec` | Read/validate spec and plan files |
|
|
518
|
+
| `session_search` | Search past session history |
|
|
519
|
+
| `memory_*` | Save, search, note, decision, forget |
|
|
520
|
+
|
|
521
|
+
---
|
|
522
|
+
|
|
523
|
+
## Best Practices
|
|
524
|
+
|
|
525
|
+
### Do
|
|
526
|
+
- Let GoopSpec ask clarifying questions
|
|
527
|
+
- Define clear success criteria
|
|
528
|
+
- Review the spec before confirming
|
|
529
|
+
- Use checkpoints for long tasks
|
|
530
|
+
- Let it learn from completed work
|
|
531
|
+
|
|
532
|
+
### Don't
|
|
533
|
+
- Skip the Plan phase for non-trivial work
|
|
534
|
+
- Approve specs you haven't read
|
|
535
|
+
- Interrupt during wave execution
|
|
536
|
+
- Ignore deviation warnings
|
|
537
|
+
- Forget to confirm at gates
|
|
538
|
+
|
|
539
|
+
---
|
|
540
|
+
|
|
541
|
+
## Comparison
|
|
542
|
+
|
|
543
|
+
| Feature | Traditional AI | GoopSpec |
|
|
544
|
+
|---------|---------------|----------|
|
|
545
|
+
| Requirements | Inferred/assumed | Explicitly captured |
|
|
546
|
+
| Scope | Often creeps | Locked in spec |
|
|
547
|
+
| Verification | Manual | Automated + gates |
|
|
548
|
+
| Memory | Per-session | Persistent |
|
|
549
|
+
| Context | Degrading | Fresh per agent |
|
|
550
|
+
| Commits | Variable | Atomic per task |
|
|
551
|
+
|
|
552
|
+
---
|
|
553
|
+
|
|
554
|
+
## Roadmap
|
|
555
|
+
|
|
556
|
+
### v0.1.0-beta (Current)
|
|
557
|
+
- [x] 5-phase workflow
|
|
558
|
+
- [x] 12 specialized agents
|
|
559
|
+
- [x] Contract gates
|
|
560
|
+
- [x] Memory system
|
|
561
|
+
- [x] Archive-to-memory pipeline
|
|
562
|
+
- [x] Mode detection
|
|
563
|
+
- [x] Category routing
|
|
564
|
+
|
|
565
|
+
### v0.2.0 (Planned)
|
|
566
|
+
- [ ] Visual workflow dashboard
|
|
567
|
+
- [ ] PR integration
|
|
568
|
+
- [ ] Team collaboration
|
|
569
|
+
- [ ] Custom agent definitions
|
|
570
|
+
- [ ] Plugin marketplace
|
|
571
|
+
|
|
572
|
+
### v1.0.0 (Future)
|
|
573
|
+
- [ ] Self-improving agents
|
|
574
|
+
- [ ] Cross-project learning
|
|
575
|
+
- [ ] Enterprise features
|
|
576
|
+
- [ ] SaaS offering
|
|
577
|
+
|
|
578
|
+
---
|
|
579
|
+
|
|
580
|
+
## Contributing
|
|
581
|
+
|
|
582
|
+
We welcome contributions! Please read our [Contributing Guide](./CONTRIBUTING.md) for details.
|
|
583
|
+
|
|
584
|
+
### Development
|
|
585
|
+
|
|
586
|
+
```bash
|
|
587
|
+
# Install dependencies
|
|
588
|
+
bun install
|
|
589
|
+
|
|
590
|
+
# Run tests
|
|
591
|
+
bun test
|
|
592
|
+
|
|
593
|
+
# Type check
|
|
594
|
+
bun run typecheck
|
|
595
|
+
|
|
596
|
+
# Build
|
|
597
|
+
bun run build
|
|
598
|
+
```
|
|
599
|
+
|
|
600
|
+
### Project Structure
|
|
601
|
+
|
|
602
|
+
```
|
|
603
|
+
opencode-goopspec/
|
|
604
|
+
├── agents/ # Agent markdown definitions
|
|
605
|
+
├── commands/ # Command markdown definitions
|
|
606
|
+
├── references/ # Reference documentation
|
|
607
|
+
├── skills/ # Loadable skill modules
|
|
608
|
+
├── templates/ # File templates
|
|
609
|
+
└── src/
|
|
610
|
+
├── agents/ # Agent factory
|
|
611
|
+
├── core/ # Core types and config
|
|
612
|
+
├── features/ # Feature modules
|
|
613
|
+
│ ├── archive/
|
|
614
|
+
│ ├── memory/
|
|
615
|
+
│ ├── mode-detection/
|
|
616
|
+
│ ├── parallel-research/
|
|
617
|
+
│ ├── routing/
|
|
618
|
+
│ ├── setup/
|
|
619
|
+
│ ├── state-manager/
|
|
620
|
+
│ └── workflow-memory/
|
|
621
|
+
├── hooks/ # OpenCode hooks
|
|
622
|
+
├── plugin-handlers/
|
|
623
|
+
├── shared/ # Utilities
|
|
624
|
+
└── tools/ # MCP tools
|
|
625
|
+
```
|
|
626
|
+
|
|
627
|
+
---
|
|
628
|
+
|
|
629
|
+
## License
|
|
630
|
+
|
|
631
|
+
MIT License. See [LICENSE](./LICENSE) for details.
|
|
632
|
+
|
|
633
|
+
---
|
|
634
|
+
|
|
635
|
+
## Acknowledgments
|
|
636
|
+
|
|
637
|
+
GoopSpec builds on ideas from:
|
|
638
|
+
- [OpenCode](https://opencode.ai) - The AI coding assistant platform
|
|
639
|
+
- GSD (Get Stuff Done) - Structured task execution patterns
|
|
640
|
+
- oh-my-opencode - Plugin architecture patterns
|
|
641
|
+
|
|
642
|
+
---
|
|
643
|
+
|
|
644
|
+
<div align="center">
|
|
645
|
+
|
|
646
|
+
**Built with care by developers, for developers.**
|
|
647
|
+
|
|
648
|
+
[Documentation](./docs) | [Issues](https://github.com/james/opencode-goopspec/issues) | [Discussions](https://github.com/james/opencode-goopspec/discussions)
|
|
649
|
+
|
|
650
|
+
</div>
|