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
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
# Workflow: Plan Phase
|
|
2
|
+
|
|
3
|
+
The Plan phase captures user intent and establishes the foundation for all subsequent work.
|
|
4
|
+
|
|
5
|
+
## Position in Workflow
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
|
|
9
|
+
│ PLAN │ ──▶ │ RESEARCH │ ──▶ │ SPECIFY │
|
|
10
|
+
│ (Intent) │ │ (Explore) │ │ (Contract) │
|
|
11
|
+
└─────────────┘ └─────────────┘ └─────────────┘
|
|
12
|
+
↑
|
|
13
|
+
(You are here)
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Purpose
|
|
17
|
+
|
|
18
|
+
The Plan phase answers: **What does the user want and why?**
|
|
19
|
+
|
|
20
|
+
This is NOT about HOW to build it - that comes later. The Plan phase focuses purely on understanding intent, constraints, and success criteria.
|
|
21
|
+
|
|
22
|
+
## Entry Criteria
|
|
23
|
+
|
|
24
|
+
- User has expressed a need or request
|
|
25
|
+
- Orchestrator has classified the work (Quick, Standard, Comprehensive, Milestone)
|
|
26
|
+
|
|
27
|
+
## Activities
|
|
28
|
+
|
|
29
|
+
### 1. Intent Capture
|
|
30
|
+
|
|
31
|
+
Extract the core intent from the user's request:
|
|
32
|
+
|
|
33
|
+
```markdown
|
|
34
|
+
## Intent
|
|
35
|
+
|
|
36
|
+
**User wants to:** [Action] [Target] [Context]
|
|
37
|
+
**Because:** [Motivation/Problem being solved]
|
|
38
|
+
**Success looks like:** [Observable outcome]
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### 2. Clarifying Questions
|
|
42
|
+
|
|
43
|
+
Ask questions to resolve ambiguity:
|
|
44
|
+
|
|
45
|
+
- **Scope questions:** "Should this include X or just Y?"
|
|
46
|
+
- **Priority questions:** "Is A more important than B?"
|
|
47
|
+
- **Constraint questions:** "Are there performance/security requirements?"
|
|
48
|
+
- **Integration questions:** "How should this work with existing feature Z?"
|
|
49
|
+
|
|
50
|
+
**Rule:** If ambiguity could lead to 2x+ effort difference, MUST ask before proceeding.
|
|
51
|
+
|
|
52
|
+
### 3. Requirements Gathering
|
|
53
|
+
|
|
54
|
+
Categorize requirements:
|
|
55
|
+
|
|
56
|
+
```markdown
|
|
57
|
+
## Requirements
|
|
58
|
+
|
|
59
|
+
### Must Have (Non-negotiable)
|
|
60
|
+
- Requirement 1
|
|
61
|
+
- Requirement 2
|
|
62
|
+
|
|
63
|
+
### Should Have (Important)
|
|
64
|
+
- Requirement 3
|
|
65
|
+
- Requirement 4
|
|
66
|
+
|
|
67
|
+
### Could Have (Nice to have)
|
|
68
|
+
- Requirement 5
|
|
69
|
+
|
|
70
|
+
### Won't Have (Explicitly excluded)
|
|
71
|
+
- Out of scope item 1
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### 4. Constraint Identification
|
|
75
|
+
|
|
76
|
+
Document known constraints:
|
|
77
|
+
|
|
78
|
+
- Technical constraints (existing stack, compatibility)
|
|
79
|
+
- Time constraints (deadlines, urgency)
|
|
80
|
+
- Resource constraints (budget, team)
|
|
81
|
+
- Business constraints (compliance, brand)
|
|
82
|
+
|
|
83
|
+
### 5. Success Criteria Definition
|
|
84
|
+
|
|
85
|
+
Define how we'll know when we're done:
|
|
86
|
+
|
|
87
|
+
```markdown
|
|
88
|
+
## Success Criteria
|
|
89
|
+
|
|
90
|
+
1. [Observable behavior 1]
|
|
91
|
+
2. [Observable behavior 2]
|
|
92
|
+
3. [Measurable outcome]
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## Artifacts Produced
|
|
96
|
+
|
|
97
|
+
| Artifact | Purpose |
|
|
98
|
+
|----------|---------|
|
|
99
|
+
| Intent statement | Clear understanding of what and why |
|
|
100
|
+
| Requirements list | Categorized list of needs |
|
|
101
|
+
| Constraints | Known limitations |
|
|
102
|
+
| Success criteria | Acceptance conditions |
|
|
103
|
+
|
|
104
|
+
## Transition to Research Phase
|
|
105
|
+
|
|
106
|
+
The Plan phase is complete when:
|
|
107
|
+
|
|
108
|
+
- [ ] Intent is clearly understood and documented
|
|
109
|
+
- [ ] All critical ambiguities resolved
|
|
110
|
+
- [ ] Requirements categorized (must/should/could/won't)
|
|
111
|
+
- [ ] Success criteria defined
|
|
112
|
+
- [ ] User confirms understanding is correct
|
|
113
|
+
|
|
114
|
+
**Transition prompt:**
|
|
115
|
+
```
|
|
116
|
+
"I understand you want to [intent summary].
|
|
117
|
+
|
|
118
|
+
Must haves:
|
|
119
|
+
- [list]
|
|
120
|
+
|
|
121
|
+
Success looks like:
|
|
122
|
+
- [criteria]
|
|
123
|
+
|
|
124
|
+
Is this understanding correct? Ready to research implementation approaches?"
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## Quick Mode Shortcut
|
|
128
|
+
|
|
129
|
+
For Quick tasks, Plan phase is abbreviated:
|
|
130
|
+
- Capture intent in 1-2 sentences
|
|
131
|
+
- Skip detailed requirements (scope is small)
|
|
132
|
+
- Define one clear success criterion
|
|
133
|
+
- Proceed directly to Execute
|
|
134
|
+
|
|
135
|
+
## Common Pitfalls
|
|
136
|
+
|
|
137
|
+
### Over-planning
|
|
138
|
+
**Symptom:** Spending hours documenting a 30-minute fix
|
|
139
|
+
**Fix:** Match planning depth to task complexity
|
|
140
|
+
|
|
141
|
+
### Under-planning
|
|
142
|
+
**Symptom:** Starting work without clear success criteria
|
|
143
|
+
**Fix:** Always define at least one observable success criterion
|
|
144
|
+
|
|
145
|
+
### Assumption accumulation
|
|
146
|
+
**Symptom:** Making multiple assumptions without noting them
|
|
147
|
+
**Fix:** Document assumptions explicitly, validate critical ones
|
|
148
|
+
|
|
149
|
+
### Scope creep during planning
|
|
150
|
+
**Symptom:** Requirements keep growing
|
|
151
|
+
**Fix:** Establish must-haves first, push additions to could-have
|
|
152
|
+
|
|
153
|
+
## Memory Protocol
|
|
154
|
+
|
|
155
|
+
### Before Starting
|
|
156
|
+
```
|
|
157
|
+
memory_search({ query: "similar features, past requirements" })
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### During Planning
|
|
161
|
+
```
|
|
162
|
+
memory_note({ note: "User prefers X approach over Y" })
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### After Completing
|
|
166
|
+
```
|
|
167
|
+
memory_save({
|
|
168
|
+
type: "note",
|
|
169
|
+
title: "Project Intent: [name]",
|
|
170
|
+
content: "[intent summary]"
|
|
171
|
+
})
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
## Commands
|
|
175
|
+
|
|
176
|
+
| Command | Effect |
|
|
177
|
+
|---------|--------|
|
|
178
|
+
| `/goop-plan [intent]` | Start Plan phase with initial intent |
|
|
179
|
+
| `/goop-status` | Check current phase status |
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
# Workflow: Research Phase
|
|
2
|
+
|
|
3
|
+
The Research phase gathers context and explores implementation approaches before committing to a specification.
|
|
4
|
+
|
|
5
|
+
## Position in Workflow
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
|
|
9
|
+
│ PLAN │ ──▶ │ RESEARCH │ ──▶ │ SPECIFY │
|
|
10
|
+
│ (Intent) │ │ (Explore) │ │ (Contract) │
|
|
11
|
+
└─────────────┘ └─────────────┘ └─────────────┘
|
|
12
|
+
↑
|
|
13
|
+
(You are here)
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Purpose
|
|
17
|
+
|
|
18
|
+
The Research phase answers: **How should we build this?**
|
|
19
|
+
|
|
20
|
+
It explores the problem space, gathers context, evaluates approaches, and informs specification decisions.
|
|
21
|
+
|
|
22
|
+
## Entry Criteria
|
|
23
|
+
|
|
24
|
+
- Plan phase complete
|
|
25
|
+
- Intent and requirements documented
|
|
26
|
+
- User has confirmed understanding
|
|
27
|
+
|
|
28
|
+
## Parallel Research Agents
|
|
29
|
+
|
|
30
|
+
Research phase spawns multiple agents working simultaneously:
|
|
31
|
+
|
|
32
|
+
| Agent | Focus |
|
|
33
|
+
|-------|-------|
|
|
34
|
+
| **Researcher** | Deep domain research - technologies, patterns, best practices |
|
|
35
|
+
| **Explorer** | Codebase analysis - existing patterns, conventions, integration points |
|
|
36
|
+
| **Librarian** | Documentation gathering - API docs, library guides, examples |
|
|
37
|
+
| **Designer** | (For UI tasks) Visual research - patterns, components, UX |
|
|
38
|
+
|
|
39
|
+
### Research Delegation
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
task({
|
|
43
|
+
subagent_type: "general",
|
|
44
|
+
description: "Research topic",
|
|
45
|
+
prompt: "Research [topic] for [project intent]. Focus on: ..."
|
|
46
|
+
})
|
|
47
|
+
|
|
48
|
+
task({
|
|
49
|
+
subagent_type: "explore",
|
|
50
|
+
description: "Explore codebase",
|
|
51
|
+
prompt: "Explore codebase for patterns related to [feature]. Map: ..."
|
|
52
|
+
})
|
|
53
|
+
|
|
54
|
+
task({
|
|
55
|
+
subagent_type: "general",
|
|
56
|
+
description: "Gather documentation",
|
|
57
|
+
prompt: "Gather documentation for [library/API]. Find: ..."
|
|
58
|
+
})
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Research Areas
|
|
62
|
+
|
|
63
|
+
### 1. Technology Research
|
|
64
|
+
|
|
65
|
+
- Available libraries/frameworks
|
|
66
|
+
- Tradeoffs between approaches
|
|
67
|
+
- Performance characteristics
|
|
68
|
+
- Security considerations
|
|
69
|
+
- Community support/maturity
|
|
70
|
+
|
|
71
|
+
### 2. Codebase Exploration
|
|
72
|
+
|
|
73
|
+
- Existing patterns and conventions
|
|
74
|
+
- Related implementations
|
|
75
|
+
- Integration points
|
|
76
|
+
- Potential conflicts
|
|
77
|
+
- Test coverage gaps
|
|
78
|
+
|
|
79
|
+
### 3. Domain Knowledge
|
|
80
|
+
|
|
81
|
+
- Business rules
|
|
82
|
+
- Edge cases
|
|
83
|
+
- User expectations
|
|
84
|
+
- Industry standards
|
|
85
|
+
- Compliance requirements
|
|
86
|
+
|
|
87
|
+
### 4. Visual Research (UI Tasks)
|
|
88
|
+
|
|
89
|
+
- Design patterns
|
|
90
|
+
- Component libraries
|
|
91
|
+
- Accessibility requirements
|
|
92
|
+
- Responsive considerations
|
|
93
|
+
- Animation/interaction patterns
|
|
94
|
+
|
|
95
|
+
## RESEARCH.md Output
|
|
96
|
+
|
|
97
|
+
Research findings are consolidated into RESEARCH.md:
|
|
98
|
+
|
|
99
|
+
```markdown
|
|
100
|
+
# Research: [Feature Name]
|
|
101
|
+
|
|
102
|
+
## Domain Analysis
|
|
103
|
+
|
|
104
|
+
### Technology Options
|
|
105
|
+
| Option | Pros | Cons | Recommendation |
|
|
106
|
+
|--------|------|------|----------------|
|
|
107
|
+
| Option A | ... | ... | Recommended |
|
|
108
|
+
| Option B | ... | ... | Alternative |
|
|
109
|
+
|
|
110
|
+
### Relevant Documentation
|
|
111
|
+
- [Link 1]: Key insight
|
|
112
|
+
- [Link 2]: Key insight
|
|
113
|
+
|
|
114
|
+
## Codebase Analysis
|
|
115
|
+
|
|
116
|
+
### Existing Patterns
|
|
117
|
+
- Pattern 1: Used in [files], suitable for [use case]
|
|
118
|
+
- Pattern 2: Used in [files], suitable for [use case]
|
|
119
|
+
|
|
120
|
+
### Integration Points
|
|
121
|
+
- Component A: Will need [modification]
|
|
122
|
+
- Service B: Already supports [capability]
|
|
123
|
+
|
|
124
|
+
### Conventions Discovered
|
|
125
|
+
- Naming: [convention]
|
|
126
|
+
- Structure: [convention]
|
|
127
|
+
- Testing: [convention]
|
|
128
|
+
|
|
129
|
+
## Recommendations
|
|
130
|
+
|
|
131
|
+
### Approach
|
|
132
|
+
[Recommended implementation approach]
|
|
133
|
+
|
|
134
|
+
### Key Decisions Needed
|
|
135
|
+
- Decision 1: [options]
|
|
136
|
+
- Decision 2: [options]
|
|
137
|
+
|
|
138
|
+
### Risks
|
|
139
|
+
- Risk 1: [description, mitigation]
|
|
140
|
+
- Risk 2: [description, mitigation]
|
|
141
|
+
|
|
142
|
+
### Estimated Complexity
|
|
143
|
+
[Low / Medium / High] - [rationale]
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
## Research Quality Criteria
|
|
147
|
+
|
|
148
|
+
### Good Research
|
|
149
|
+
- Multiple sources consulted
|
|
150
|
+
- Alternatives considered
|
|
151
|
+
- Tradeoffs explicitly stated
|
|
152
|
+
- Recommendations justified
|
|
153
|
+
- Risks identified
|
|
154
|
+
|
|
155
|
+
### Bad Research
|
|
156
|
+
- Single source only
|
|
157
|
+
- First option accepted
|
|
158
|
+
- No alternatives considered
|
|
159
|
+
- Recommendations without rationale
|
|
160
|
+
- No risk assessment
|
|
161
|
+
|
|
162
|
+
## Transition to Specify Phase
|
|
163
|
+
|
|
164
|
+
Research phase is complete when:
|
|
165
|
+
|
|
166
|
+
- [ ] All parallel agents have reported findings
|
|
167
|
+
- [ ] RESEARCH.md consolidated and saved
|
|
168
|
+
- [ ] Key decisions identified
|
|
169
|
+
- [ ] Recommended approach documented
|
|
170
|
+
- [ ] Risks catalogued
|
|
171
|
+
|
|
172
|
+
**Transition prompt:**
|
|
173
|
+
```
|
|
174
|
+
"Research complete. Key findings:
|
|
175
|
+
|
|
176
|
+
Recommended approach: [summary]
|
|
177
|
+
Key decisions needed: [list]
|
|
178
|
+
Main risks: [list]
|
|
179
|
+
|
|
180
|
+
Ready to lock the specification?"
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
## Quick Mode Shortcut
|
|
184
|
+
|
|
185
|
+
For Quick tasks, Research phase is SKIPPED entirely:
|
|
186
|
+
- Assume existing patterns are sufficient
|
|
187
|
+
- No parallel agent spawning
|
|
188
|
+
- Jump directly from Plan to Execute
|
|
189
|
+
|
|
190
|
+
## Comprehensive Mode Extension
|
|
191
|
+
|
|
192
|
+
For Comprehensive tasks:
|
|
193
|
+
- Deeper research per agent
|
|
194
|
+
- More alternatives explored
|
|
195
|
+
- Extended timeframe
|
|
196
|
+
- User reviews RESEARCH.md before Specify
|
|
197
|
+
|
|
198
|
+
## Memory Protocol
|
|
199
|
+
|
|
200
|
+
### Before Starting
|
|
201
|
+
```
|
|
202
|
+
memory_search({
|
|
203
|
+
query: "past research on [topic]",
|
|
204
|
+
concepts: ["technology", "pattern"]
|
|
205
|
+
})
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
### During Research
|
|
209
|
+
Each agent saves findings:
|
|
210
|
+
```
|
|
211
|
+
memory_save({
|
|
212
|
+
type: "observation",
|
|
213
|
+
title: "Research: [specific finding]",
|
|
214
|
+
concepts: ["relevant", "concepts"]
|
|
215
|
+
})
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
### After Completing
|
|
219
|
+
```
|
|
220
|
+
memory_save({
|
|
221
|
+
type: "observation",
|
|
222
|
+
title: "Research Summary: [feature]",
|
|
223
|
+
content: "[key findings]",
|
|
224
|
+
concepts: ["tech-choices", "patterns"]
|
|
225
|
+
})
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
## Commands
|
|
229
|
+
|
|
230
|
+
| Command | Effect |
|
|
231
|
+
|---------|--------|
|
|
232
|
+
| `/goop-research` | Start Research phase |
|
|
233
|
+
| `/goop-status` | Check research progress |
|
|
234
|
+
| `/goop-recall [query]` | Search past research |
|
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
# Workflow: Specify Phase
|
|
2
|
+
|
|
3
|
+
The Specify phase locks the specification - the CONTRACT between user and agent.
|
|
4
|
+
|
|
5
|
+
## Position in Workflow
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
|
|
9
|
+
│ PLAN │ ──▶ │ RESEARCH │ ──▶ │ SPECIFY │
|
|
10
|
+
│ (Intent) │ │ (Explore) │ │ (Contract) │
|
|
11
|
+
└─────────────┘ └─────────────┘ └─────────────┘
|
|
12
|
+
↑
|
|
13
|
+
(You are here)
|
|
14
|
+
|
|
15
|
+
╔══════════════════════════════════════════════╗
|
|
16
|
+
║ CONTRACT GATE ║
|
|
17
|
+
║ User MUST confirm before execution begins ║
|
|
18
|
+
╚══════════════════════════════════════════════╝
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Purpose
|
|
22
|
+
|
|
23
|
+
The Specify phase answers: **What exactly will we deliver?**
|
|
24
|
+
|
|
25
|
+
This is the CONTRACT phase. Once locked, the specification becomes the binding agreement:
|
|
26
|
+
- Agent commits to delivering must-haves
|
|
27
|
+
- User commits to accepting if must-haves are met
|
|
28
|
+
- Changes require explicit amendment
|
|
29
|
+
|
|
30
|
+
## Entry Criteria
|
|
31
|
+
|
|
32
|
+
- Plan phase complete (intent captured)
|
|
33
|
+
- Research phase complete (approach researched)
|
|
34
|
+
- RESEARCH.md available with recommendations
|
|
35
|
+
|
|
36
|
+
## The Contract Concept
|
|
37
|
+
|
|
38
|
+
### Why Contracts Matter
|
|
39
|
+
|
|
40
|
+
Without a locked spec:
|
|
41
|
+
- Scope creeps silently
|
|
42
|
+
- "Almost done" never ends
|
|
43
|
+
- Success criteria shift
|
|
44
|
+
- Both parties frustrated
|
|
45
|
+
|
|
46
|
+
With a locked spec:
|
|
47
|
+
- Clear deliverables
|
|
48
|
+
- Measurable completion
|
|
49
|
+
- Explicit change process
|
|
50
|
+
- Satisfied expectations
|
|
51
|
+
|
|
52
|
+
### Contract Terms
|
|
53
|
+
|
|
54
|
+
```markdown
|
|
55
|
+
## Specification Contract
|
|
56
|
+
|
|
57
|
+
### Must Haves (Guaranteed)
|
|
58
|
+
If these aren't delivered, the work is incomplete.
|
|
59
|
+
- [ ] Must-have 1
|
|
60
|
+
- [ ] Must-have 2
|
|
61
|
+
|
|
62
|
+
### Nice to Haves (Best Effort)
|
|
63
|
+
Will attempt if time permits after must-haves.
|
|
64
|
+
- [ ] Nice-to-have 1
|
|
65
|
+
- [ ] Nice-to-have 2
|
|
66
|
+
|
|
67
|
+
### Out of Scope (Explicitly Excluded)
|
|
68
|
+
These are NOT part of this work.
|
|
69
|
+
- Excluded item 1
|
|
70
|
+
- Excluded item 2
|
|
71
|
+
|
|
72
|
+
### Acceptance Criteria
|
|
73
|
+
How we'll verify completion.
|
|
74
|
+
1. Criterion 1
|
|
75
|
+
2. Criterion 2
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## SPEC.md Structure
|
|
79
|
+
|
|
80
|
+
```markdown
|
|
81
|
+
# Specification: [Feature Name]
|
|
82
|
+
|
|
83
|
+
**Status:** LOCKED | DRAFT
|
|
84
|
+
**Locked At:** [timestamp]
|
|
85
|
+
**Locked By:** [user confirmation]
|
|
86
|
+
|
|
87
|
+
## Intent
|
|
88
|
+
[Summary from Plan phase]
|
|
89
|
+
|
|
90
|
+
## Requirements
|
|
91
|
+
|
|
92
|
+
### Must Haves
|
|
93
|
+
- [ ] Requirement 1
|
|
94
|
+
- Acceptance: [how to verify]
|
|
95
|
+
- [ ] Requirement 2
|
|
96
|
+
- Acceptance: [how to verify]
|
|
97
|
+
|
|
98
|
+
### Nice to Haves
|
|
99
|
+
- [ ] Requirement 3
|
|
100
|
+
- [ ] Requirement 4
|
|
101
|
+
|
|
102
|
+
### Out of Scope
|
|
103
|
+
- Item 1 (reason: ...)
|
|
104
|
+
- Item 2 (reason: ...)
|
|
105
|
+
|
|
106
|
+
## Technical Approach
|
|
107
|
+
[Summary from Research phase]
|
|
108
|
+
|
|
109
|
+
## Target Files
|
|
110
|
+
- `path/to/file1.ts` - [change description]
|
|
111
|
+
- `path/to/file2.ts` - [change description]
|
|
112
|
+
|
|
113
|
+
## Dependencies
|
|
114
|
+
- Depends on: [list]
|
|
115
|
+
- Blocks: [list]
|
|
116
|
+
|
|
117
|
+
## Risks
|
|
118
|
+
- Risk 1: [description, mitigation]
|
|
119
|
+
|
|
120
|
+
## Estimated Effort
|
|
121
|
+
[T-shirt size: XS, S, M, L, XL]
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## Specify Activities
|
|
125
|
+
|
|
126
|
+
### 1. Synthesize Plan + Research
|
|
127
|
+
|
|
128
|
+
Combine intent (Plan) with approach (Research):
|
|
129
|
+
- Match requirements to technical solutions
|
|
130
|
+
- Identify which must-haves are feasible
|
|
131
|
+
- Determine what should be nice-to-have vs out-of-scope
|
|
132
|
+
|
|
133
|
+
### 2. Define Must-Haves
|
|
134
|
+
|
|
135
|
+
Critical: Must-haves should be:
|
|
136
|
+
- **Observable** - Can be seen/tested
|
|
137
|
+
- **Achievable** - Within scope of work
|
|
138
|
+
- **Specific** - No ambiguity
|
|
139
|
+
- **Limited** - Keep list short (3-7 items)
|
|
140
|
+
|
|
141
|
+
### 3. Set Boundaries
|
|
142
|
+
|
|
143
|
+
Explicitly define what's out:
|
|
144
|
+
- Features that seem related but aren't included
|
|
145
|
+
- Edge cases that won't be handled
|
|
146
|
+
- Future enhancements
|
|
147
|
+
|
|
148
|
+
### 4. Create BLUEPRINT.md
|
|
149
|
+
|
|
150
|
+
Transform spec into executable plan:
|
|
151
|
+
|
|
152
|
+
```markdown
|
|
153
|
+
# Blueprint: [Feature Name]
|
|
154
|
+
|
|
155
|
+
## Wave 1: [Foundation]
|
|
156
|
+
|
|
157
|
+
### Task 1.1: [Name]
|
|
158
|
+
**Files:** path/to/file.ts
|
|
159
|
+
**Action:** [What to do]
|
|
160
|
+
**Verify:** [How to verify]
|
|
161
|
+
**Done:** [Acceptance criterion]
|
|
162
|
+
|
|
163
|
+
### Task 1.2: [Name]
|
|
164
|
+
...
|
|
165
|
+
|
|
166
|
+
## Wave 2: [Core]
|
|
167
|
+
...
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
## Contract Gate
|
|
171
|
+
|
|
172
|
+
**CRITICAL**: User MUST explicitly confirm the specification.
|
|
173
|
+
|
|
174
|
+
### Confirmation Prompt
|
|
175
|
+
|
|
176
|
+
```
|
|
177
|
+
╭─ ⬢ GoopSpec ───────────────────────────────────────╮
|
|
178
|
+
│ │
|
|
179
|
+
│ 🔒 CONTRACT GATE │
|
|
180
|
+
│ │
|
|
181
|
+
│ I'm ready to lock the specification. │
|
|
182
|
+
│ │
|
|
183
|
+
│ MUST HAVES (I commit to delivering): │
|
|
184
|
+
│ • Must-have 1 │
|
|
185
|
+
│ • Must-have 2 │
|
|
186
|
+
│ │
|
|
187
|
+
│ NICE TO HAVES (Best effort): │
|
|
188
|
+
│ • Nice-to-have 1 │
|
|
189
|
+
│ │
|
|
190
|
+
│ OUT OF SCOPE: │
|
|
191
|
+
│ • Excluded 1 │
|
|
192
|
+
│ │
|
|
193
|
+
│ ACCEPTANCE CRITERIA: │
|
|
194
|
+
│ 1. Criterion 1 │
|
|
195
|
+
│ 2. Criterion 2 │
|
|
196
|
+
│ │
|
|
197
|
+
│ ───────────────────────────────────────────── │
|
|
198
|
+
│ Type "confirm" to lock and proceed. │
|
|
199
|
+
│ Type "amend" to request changes. │
|
|
200
|
+
│ │
|
|
201
|
+
╰────────────────────────────────────────────────────╯
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
### After Confirmation
|
|
205
|
+
|
|
206
|
+
- SPEC.md status changes to LOCKED
|
|
207
|
+
- Timestamp recorded
|
|
208
|
+
- Execution phase can begin
|
|
209
|
+
- Changes require `/goop-amend` command
|
|
210
|
+
|
|
211
|
+
## Amendments
|
|
212
|
+
|
|
213
|
+
If spec needs to change after locking:
|
|
214
|
+
|
|
215
|
+
```
|
|
216
|
+
/goop-amend "Add support for X"
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
Amendment process:
|
|
220
|
+
1. Stop current execution
|
|
221
|
+
2. Document the change request
|
|
222
|
+
3. Assess impact on existing work
|
|
223
|
+
4. User confirms amendment
|
|
224
|
+
5. Update SPEC.md
|
|
225
|
+
6. Resume or restart execution
|
|
226
|
+
|
|
227
|
+
## Transition to Execute Phase
|
|
228
|
+
|
|
229
|
+
Specify phase is complete when:
|
|
230
|
+
|
|
231
|
+
- [ ] SPEC.md written with all sections
|
|
232
|
+
- [ ] Must-haves clearly defined
|
|
233
|
+
- [ ] Out-of-scope explicitly stated
|
|
234
|
+
- [ ] BLUEPRINT.md created with waves/tasks
|
|
235
|
+
- [ ] **User has confirmed the specification**
|
|
236
|
+
|
|
237
|
+
## Quick Mode Shortcut
|
|
238
|
+
|
|
239
|
+
For Quick tasks, Specify phase is SKIPPED:
|
|
240
|
+
- Intent from Plan phase serves as implicit spec
|
|
241
|
+
- No formal SPEC.md
|
|
242
|
+
- Jump directly to Execute
|
|
243
|
+
|
|
244
|
+
## Memory Protocol
|
|
245
|
+
|
|
246
|
+
### Before Starting
|
|
247
|
+
```
|
|
248
|
+
memory_search({
|
|
249
|
+
query: "past specs for similar features",
|
|
250
|
+
types: ["decision"]
|
|
251
|
+
})
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
### During Specifying
|
|
255
|
+
```
|
|
256
|
+
memory_decision({
|
|
257
|
+
decision: "Feature X out of scope",
|
|
258
|
+
reasoning: "User confirmed focus on core functionality"
|
|
259
|
+
})
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
### After Locking
|
|
263
|
+
```
|
|
264
|
+
memory_save({
|
|
265
|
+
type: "decision",
|
|
266
|
+
title: "Spec Locked: [feature]",
|
|
267
|
+
content: "[must-haves summary]",
|
|
268
|
+
importance: 0.8
|
|
269
|
+
})
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
## Commands
|
|
273
|
+
|
|
274
|
+
| Command | Effect |
|
|
275
|
+
|---------|--------|
|
|
276
|
+
| `/goop-specify` | Create and present spec for confirmation |
|
|
277
|
+
| `/goop-amend [change]` | Request spec amendment |
|
|
278
|
+
| `/goop-status` | Check spec lock status |
|