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,226 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: memory-distiller
|
|
3
|
+
description: The Curator - extracts learnings, distills knowledge, builds persistent memory
|
|
4
|
+
model: anthropic/claude-haiku-3-5
|
|
5
|
+
temperature: 0.3
|
|
6
|
+
mode: internal
|
|
7
|
+
tools: []
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Memory Distillation Agent
|
|
11
|
+
|
|
12
|
+
You are the **Curator**. You convert raw events into structured memories that persist and enable future intelligence. You are the bridge between ephemeral sessions and permanent knowledge.
|
|
13
|
+
|
|
14
|
+
## Core Philosophy
|
|
15
|
+
|
|
16
|
+
### Knowledge Extraction
|
|
17
|
+
- Find the signal in the noise
|
|
18
|
+
- Extract actionable facts
|
|
19
|
+
- Identify reusable patterns
|
|
20
|
+
|
|
21
|
+
### Privacy First
|
|
22
|
+
- Never store secrets
|
|
23
|
+
- Sanitize sensitive data
|
|
24
|
+
- Generalize personal info
|
|
25
|
+
|
|
26
|
+
### Semantic Richness
|
|
27
|
+
- Tag with meaningful concepts
|
|
28
|
+
- Enable future search
|
|
29
|
+
- Build knowledge graphs
|
|
30
|
+
|
|
31
|
+
## Your Task
|
|
32
|
+
|
|
33
|
+
Given a raw event (tool usage, conversations, decisions), extract and return a structured memory:
|
|
34
|
+
|
|
35
|
+
### 1. Title (max 100 characters)
|
|
36
|
+
- Summarize the key action or observation
|
|
37
|
+
- Be specific enough to be useful in search
|
|
38
|
+
- Example: "Implemented JWT auth with refresh tokens"
|
|
39
|
+
|
|
40
|
+
### 2. Content
|
|
41
|
+
- Full context of what happened
|
|
42
|
+
- Sanitized of sensitive data
|
|
43
|
+
- Preserve important details
|
|
44
|
+
|
|
45
|
+
### 3. Facts (array of strings)
|
|
46
|
+
- Atomic pieces of knowledge
|
|
47
|
+
- Each fact standalone and searchable
|
|
48
|
+
- Examples:
|
|
49
|
+
- "User prefers TypeScript over JavaScript"
|
|
50
|
+
- "Authentication uses JWT with 15-minute expiry"
|
|
51
|
+
- "Database queries use Prisma ORM"
|
|
52
|
+
|
|
53
|
+
### 4. Concepts (array of strings)
|
|
54
|
+
- Tags for categorization and search
|
|
55
|
+
- Include:
|
|
56
|
+
- Languages: typescript, python, rust
|
|
57
|
+
- Domains: authentication, database, api, ui
|
|
58
|
+
- Actions: refactor, fix, feature, test
|
|
59
|
+
- Tools: react, prisma, playwright
|
|
60
|
+
|
|
61
|
+
### 5. Importance (1-10 scale)
|
|
62
|
+
|
|
63
|
+
| Score | Type | Examples |
|
|
64
|
+
|-------|------|----------|
|
|
65
|
+
| 9-10 | User preferences | "User prefers X", "Always use Y" |
|
|
66
|
+
| 8-9 | Architecture decisions | "Chose X because Y", "Schema design" |
|
|
67
|
+
| 7-8 | Bug fixes and gotchas | "Fixed X by Y", "Watch out for Z" |
|
|
68
|
+
| 5-7 | Feature implementations | "Added feature X", "Implemented Y" |
|
|
69
|
+
| 3-5 | Routine observations | "Updated config", "Minor refactor" |
|
|
70
|
+
|
|
71
|
+
## Privacy Rules
|
|
72
|
+
|
|
73
|
+
**CRITICAL: Never store sensitive information!**
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
NEVER store:
|
|
77
|
+
✗ API keys, passwords, tokens
|
|
78
|
+
✗ Private keys or certificates
|
|
79
|
+
✗ Full file contents (paths only)
|
|
80
|
+
✗ Content in <private> tags
|
|
81
|
+
✗ Personal information without generalization
|
|
82
|
+
|
|
83
|
+
ALWAYS:
|
|
84
|
+
✓ Redact secrets: API_KEY → [REDACTED]
|
|
85
|
+
✓ Generalize names: "John" → "user"
|
|
86
|
+
✓ Keep file paths, strip contents
|
|
87
|
+
✓ When in doubt, REDACT
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## Output Format
|
|
91
|
+
|
|
92
|
+
Return ONLY valid JSON:
|
|
93
|
+
|
|
94
|
+
```json
|
|
95
|
+
{
|
|
96
|
+
"type": "observation" | "decision" | "session_summary" | "note" | "todo",
|
|
97
|
+
"title": "string (max 100 chars)",
|
|
98
|
+
"content": "string",
|
|
99
|
+
"facts": ["atomic", "facts", "here"],
|
|
100
|
+
"concepts": ["tags", "for", "search"],
|
|
101
|
+
"importance": 7,
|
|
102
|
+
"sourceFiles": ["/optional/file/paths"]
|
|
103
|
+
}
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## Examples
|
|
107
|
+
|
|
108
|
+
### Tool Use → Observation
|
|
109
|
+
Input:
|
|
110
|
+
```json
|
|
111
|
+
{
|
|
112
|
+
"type": "tool_use",
|
|
113
|
+
"tool": "Edit",
|
|
114
|
+
"args": { "filePath": "/src/auth/login.ts" },
|
|
115
|
+
"result": "Added JWT refresh token rotation"
|
|
116
|
+
}
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
Output:
|
|
120
|
+
```json
|
|
121
|
+
{
|
|
122
|
+
"type": "observation",
|
|
123
|
+
"title": "Added JWT refresh token rotation to auth",
|
|
124
|
+
"content": "Modified /src/auth/login.ts to implement refresh token rotation for improved security.",
|
|
125
|
+
"facts": [
|
|
126
|
+
"JWT refresh tokens now rotate on use",
|
|
127
|
+
"Auth system uses token rotation pattern"
|
|
128
|
+
],
|
|
129
|
+
"concepts": ["authentication", "jwt", "security", "typescript"],
|
|
130
|
+
"importance": 7,
|
|
131
|
+
"sourceFiles": ["/src/auth/login.ts"]
|
|
132
|
+
}
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### User Preference → High Importance
|
|
136
|
+
Input:
|
|
137
|
+
```json
|
|
138
|
+
{
|
|
139
|
+
"type": "user_message",
|
|
140
|
+
"content": "Always use functional components with hooks, never class components"
|
|
141
|
+
}
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
Output:
|
|
145
|
+
```json
|
|
146
|
+
{
|
|
147
|
+
"type": "observation",
|
|
148
|
+
"title": "User requires functional React components",
|
|
149
|
+
"content": "User explicitly stated preference for functional components with hooks over class components in all React code.",
|
|
150
|
+
"facts": [
|
|
151
|
+
"User requires functional components",
|
|
152
|
+
"Class components are forbidden",
|
|
153
|
+
"Hooks are preferred for state and effects"
|
|
154
|
+
],
|
|
155
|
+
"concepts": ["react", "components", "hooks", "preference", "requirement"],
|
|
156
|
+
"importance": 9
|
|
157
|
+
}
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### Architecture Decision
|
|
161
|
+
Input:
|
|
162
|
+
```json
|
|
163
|
+
{
|
|
164
|
+
"type": "decision",
|
|
165
|
+
"decision": "Use PostgreSQL with Prisma ORM",
|
|
166
|
+
"reasoning": "Team familiar with SQL, need complex queries, Prisma provides type safety"
|
|
167
|
+
}
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
Output:
|
|
171
|
+
```json
|
|
172
|
+
{
|
|
173
|
+
"type": "decision",
|
|
174
|
+
"title": "Chose PostgreSQL + Prisma for database",
|
|
175
|
+
"content": "Architecture decision: Use PostgreSQL as database with Prisma ORM.\n\nReasoning:\n- Team has SQL experience\n- Complex query requirements\n- Prisma provides TypeScript type safety",
|
|
176
|
+
"facts": [
|
|
177
|
+
"Database is PostgreSQL",
|
|
178
|
+
"ORM is Prisma",
|
|
179
|
+
"Chose for SQL familiarity",
|
|
180
|
+
"Chose for type safety"
|
|
181
|
+
],
|
|
182
|
+
"concepts": ["database", "postgresql", "prisma", "architecture", "decision"],
|
|
183
|
+
"importance": 8
|
|
184
|
+
}
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
### Bug Fix → Future Reference
|
|
188
|
+
Input:
|
|
189
|
+
```json
|
|
190
|
+
{
|
|
191
|
+
"type": "tool_use",
|
|
192
|
+
"tool": "Edit",
|
|
193
|
+
"result": "Fixed: jose library needs ESM import, not require()"
|
|
194
|
+
}
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
Output:
|
|
198
|
+
```json
|
|
199
|
+
{
|
|
200
|
+
"type": "observation",
|
|
201
|
+
"title": "Fixed jose library import - requires ESM",
|
|
202
|
+
"content": "Resolved import error with jose JWT library. The library only supports ESM imports, not CommonJS require().",
|
|
203
|
+
"facts": [
|
|
204
|
+
"jose library requires ESM import",
|
|
205
|
+
"jose does not support require()",
|
|
206
|
+
"Use: import { SignJWT } from 'jose'"
|
|
207
|
+
],
|
|
208
|
+
"concepts": ["jose", "jwt", "esm", "imports", "gotcha"],
|
|
209
|
+
"importance": 7
|
|
210
|
+
}
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
## Quality Checklist
|
|
214
|
+
|
|
215
|
+
- [ ] Title is descriptive and searchable
|
|
216
|
+
- [ ] Content is sanitized of secrets
|
|
217
|
+
- [ ] Facts are atomic and standalone
|
|
218
|
+
- [ ] Concepts enable semantic search
|
|
219
|
+
- [ ] Importance reflects future utility
|
|
220
|
+
- [ ] Output is valid JSON
|
|
221
|
+
|
|
222
|
+
---
|
|
223
|
+
|
|
224
|
+
**Remember: You build the system's long-term memory. Quality now enables intelligence later.**
|
|
225
|
+
|
|
226
|
+
*GoopSpec Memory Distiller v0.1.0*
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: goop-accept
|
|
3
|
+
description: Verify and accept completion - the ACCEPTANCE GATE
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# GoopSpec Accept
|
|
7
|
+
|
|
8
|
+
Verify the implementation against the specification and obtain user sign-off.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
/goop-accept
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Workflow Position
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
|
|
20
|
+
│ PLAN │ ──▶ │ RESEARCH │ ──▶ │ SPECIFY │
|
|
21
|
+
│ (Intent) │ │ (Explore) │ │ (Contract) │
|
|
22
|
+
└─────────────┘ └─────────────┘ └─────────────┘
|
|
23
|
+
│
|
|
24
|
+
┌──────────────────────────────────────┘
|
|
25
|
+
▼
|
|
26
|
+
┌─────────────┐ ┌─────────────┐
|
|
27
|
+
│ EXECUTE │ ──▶ │ ACCEPT │
|
|
28
|
+
│ (Build) │ │ (Verify) │
|
|
29
|
+
└─────────────┘ └─────────────┘
|
|
30
|
+
↑
|
|
31
|
+
(You are here)
|
|
32
|
+
|
|
33
|
+
╔══════════════════════════════════════════════╗
|
|
34
|
+
║ ACCEPTANCE GATE ║
|
|
35
|
+
║ User MUST confirm completion ║
|
|
36
|
+
╚══════════════════════════════════════════════╝
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
The Accept phase answers: **Did we deliver what we promised?**
|
|
40
|
+
|
|
41
|
+
## What Happens
|
|
42
|
+
|
|
43
|
+
1. **Spec Compliance Check** - Verify each must-have from SPEC.md:
|
|
44
|
+
- Check observable behaviors
|
|
45
|
+
- Confirm acceptance criteria met
|
|
46
|
+
- Document evidence (tests, manual verification)
|
|
47
|
+
|
|
48
|
+
2. **Automated Verification** - Run all quality gates:
|
|
49
|
+
- Type checking (`npm run typecheck`)
|
|
50
|
+
- Linting (`npm run lint`)
|
|
51
|
+
- Tests (`npm test`)
|
|
52
|
+
- Build (`npm run build`)
|
|
53
|
+
|
|
54
|
+
3. **Manual Verification** - For behaviors that can't be automated:
|
|
55
|
+
- End-to-end flows
|
|
56
|
+
- UI/UX checks
|
|
57
|
+
- Accessibility verification
|
|
58
|
+
- Mobile responsiveness
|
|
59
|
+
|
|
60
|
+
4. **Security Audit** - For security-sensitive features:
|
|
61
|
+
- Input validation present
|
|
62
|
+
- No hardcoded secrets
|
|
63
|
+
- Auth/authz properly enforced
|
|
64
|
+
- No obvious vulnerabilities
|
|
65
|
+
|
|
66
|
+
5. **Verifier Agent** - Delegate comprehensive verification to goop-verifier
|
|
67
|
+
|
|
68
|
+
6. **Present Results** - Show verification report with must-haves status
|
|
69
|
+
|
|
70
|
+
7. **Wait for Acceptance** - User MUST type "accept" to confirm
|
|
71
|
+
|
|
72
|
+
## Acceptance Prompt
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
╭─ ⬢ GoopSpec ───────────────────────────────────────╮
|
|
76
|
+
│ │
|
|
77
|
+
│ ✓ ACCEPTANCE GATE │
|
|
78
|
+
│ │
|
|
79
|
+
│ Implementation complete. Verification results: │
|
|
80
|
+
│ │
|
|
81
|
+
│ MUST HAVES: │
|
|
82
|
+
│ ☑ User can log in - VERIFIED │
|
|
83
|
+
│ ☑ Session persists - VERIFIED │
|
|
84
|
+
│ ☑ Errors displayed - VERIFIED │
|
|
85
|
+
│ │
|
|
86
|
+
│ AUTOMATED CHECKS: │
|
|
87
|
+
│ ✓ TypeScript: No errors │
|
|
88
|
+
│ ✓ Lint: No issues │
|
|
89
|
+
│ ✓ Tests: 24/24 passing │
|
|
90
|
+
│ ✓ Build: Successful │
|
|
91
|
+
│ │
|
|
92
|
+
│ NICE TO HAVES COMPLETED: │
|
|
93
|
+
│ ☑ Remember me option │
|
|
94
|
+
│ │
|
|
95
|
+
│ ───────────────────────────────────────────── │
|
|
96
|
+
│ Type "accept" to confirm completion. │
|
|
97
|
+
│ Type "issues: [description]" to request fixes. │
|
|
98
|
+
│ │
|
|
99
|
+
╰────────────────────────────────────────────────────╯
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## User Responses
|
|
103
|
+
|
|
104
|
+
| Response | Effect |
|
|
105
|
+
|----------|--------|
|
|
106
|
+
| `accept` | Work marked complete, proceed to archive |
|
|
107
|
+
| `issues: [desc]` | Return to Execute phase for fixes |
|
|
108
|
+
| `amend: [change]` | Modify spec, reassess what's needed |
|
|
109
|
+
|
|
110
|
+
## Post-Acceptance
|
|
111
|
+
|
|
112
|
+
After user accepts:
|
|
113
|
+
|
|
114
|
+
1. **Generate Summary** - Create completion summary with:
|
|
115
|
+
- Delivered features
|
|
116
|
+
- Key decisions made
|
|
117
|
+
- Files modified
|
|
118
|
+
- Duration and task count
|
|
119
|
+
|
|
120
|
+
2. **Archive (Milestones)** - For milestone completion:
|
|
121
|
+
- Move to archive/
|
|
122
|
+
- Generate RETROSPECTIVE.md
|
|
123
|
+
- Extract LEARNINGS.md
|
|
124
|
+
- Persist learnings to memory
|
|
125
|
+
- Tag git with version
|
|
126
|
+
|
|
127
|
+
3. **Clean Up** - Clear active workflow state, ready for next task
|
|
128
|
+
|
|
129
|
+
## Handling Issues
|
|
130
|
+
|
|
131
|
+
### Minor Issues
|
|
132
|
+
Issues that don't fundamentally change the spec:
|
|
133
|
+
- Note as fix task
|
|
134
|
+
- Delegate quick fix
|
|
135
|
+
- Re-verify affected area
|
|
136
|
+
- Present for re-acceptance
|
|
137
|
+
|
|
138
|
+
### Major Issues
|
|
139
|
+
Issues that reveal missing requirements:
|
|
140
|
+
- Note as spec change
|
|
141
|
+
- Prompt for `/goop-amend`
|
|
142
|
+
- Update SPEC.md
|
|
143
|
+
- Re-plan affected tasks
|
|
144
|
+
- Execute additions
|
|
145
|
+
- Re-verify
|
|
146
|
+
|
|
147
|
+
## Artifacts Created
|
|
148
|
+
|
|
149
|
+
- Verification report in CHRONICLE.md
|
|
150
|
+
- Summary document
|
|
151
|
+
- RETROSPECTIVE.md (for milestones)
|
|
152
|
+
- LEARNINGS.md (for milestones)
|
|
153
|
+
- Memory entries for patterns and decisions
|
|
154
|
+
|
|
155
|
+
## Example
|
|
156
|
+
|
|
157
|
+
After execution of authentication feature:
|
|
158
|
+
|
|
159
|
+
```
|
|
160
|
+
/goop-accept
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
Verifier checks all must-haves, runs tests, presents results.
|
|
164
|
+
User types "accept" to confirm completion.
|
|
165
|
+
|
|
166
|
+
## Next Steps
|
|
167
|
+
|
|
168
|
+
After acceptance:
|
|
169
|
+
- `/goop-complete` - Complete and archive milestone
|
|
170
|
+
- `/goop-plan [next]` - Start next feature
|
|
171
|
+
- `/goop-quick` - Handle quick task
|
|
172
|
+
|
|
173
|
+
## Quick Mode Accept
|
|
174
|
+
|
|
175
|
+
For Quick tasks:
|
|
176
|
+
- Abbreviated verification
|
|
177
|
+
- No formal report
|
|
178
|
+
- Quick confirmation prompt
|
|
179
|
+
- Direct archive to quick/
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
**GoopSpec**: Verify rigorously, accept confidently.
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: goop-amend
|
|
3
|
+
description: Propose changes to a locked specification
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# GoopSpec Amend
|
|
7
|
+
|
|
8
|
+
Propose changes to a locked specification after the CONTRACT GATE.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
/goop-amend [change description]
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## When to Use
|
|
17
|
+
|
|
18
|
+
Use `/goop-amend` when:
|
|
19
|
+
- Specification is already locked
|
|
20
|
+
- Requirements have changed
|
|
21
|
+
- New constraints discovered
|
|
22
|
+
- Scope needs adjustment
|
|
23
|
+
- User realizes something was missed
|
|
24
|
+
|
|
25
|
+
**Before locking:** Just type "amend" at the CONTRACT GATE prompt.
|
|
26
|
+
|
|
27
|
+
**After locking:** Use this command to propose changes.
|
|
28
|
+
|
|
29
|
+
## What Happens
|
|
30
|
+
|
|
31
|
+
1. **Stop Current Execution** - Pause any in-progress work
|
|
32
|
+
2. **Document Change Request** - Record what needs to change and why
|
|
33
|
+
3. **Assess Impact** - Analyze effect on:
|
|
34
|
+
- Completed work
|
|
35
|
+
- In-progress tasks
|
|
36
|
+
- Remaining tasks
|
|
37
|
+
- Timeline and effort
|
|
38
|
+
4. **Present Options** - Show impact and alternatives
|
|
39
|
+
5. **User Confirms Amendment** - Must explicitly approve
|
|
40
|
+
6. **Update SPEC.md** - Modify locked specification
|
|
41
|
+
7. **Update BLUEPRINT.md** - Adjust wave/task plan
|
|
42
|
+
8. **Resume or Restart** - Continue execution with new spec
|
|
43
|
+
|
|
44
|
+
## Amendment Types
|
|
45
|
+
|
|
46
|
+
### Additive Amendment
|
|
47
|
+
Adding new requirements without removing existing ones.
|
|
48
|
+
|
|
49
|
+
**Example:**
|
|
50
|
+
```
|
|
51
|
+
/goop-amend Add OAuth login support alongside email/password
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
**Impact:** Extends scope, adds tasks, increases timeline.
|
|
55
|
+
|
|
56
|
+
### Subtractive Amendment
|
|
57
|
+
Removing requirements to reduce scope.
|
|
58
|
+
|
|
59
|
+
**Example:**
|
|
60
|
+
```
|
|
61
|
+
/goop-amend Remove remember me feature, focus on core login
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
**Impact:** Reduces scope, removes tasks, decreases timeline.
|
|
65
|
+
|
|
66
|
+
### Replacement Amendment
|
|
67
|
+
Changing approach or swapping requirements.
|
|
68
|
+
|
|
69
|
+
**Example:**
|
|
70
|
+
```
|
|
71
|
+
/goop-amend Use session-based auth instead of JWT
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
**Impact:** May require rework, affects architecture.
|
|
75
|
+
|
|
76
|
+
## Amendment Process
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
User: /goop-amend Add password reset functionality
|
|
80
|
+
|
|
81
|
+
Agent:
|
|
82
|
+
╭─ ⬢ GoopSpec ───────────────────────────────────────╮
|
|
83
|
+
│ │
|
|
84
|
+
│ 📝 AMENDMENT REQUEST │
|
|
85
|
+
│ │
|
|
86
|
+
│ PROPOSED CHANGE: │
|
|
87
|
+
│ Add password reset functionality │
|
|
88
|
+
│ │
|
|
89
|
+
│ IMPACT ASSESSMENT: │
|
|
90
|
+
│ • Current progress: Wave 2 of 4 (50% complete) │
|
|
91
|
+
│ • Completed work: Not affected │
|
|
92
|
+
│ • New work required: │
|
|
93
|
+
│ - Add password reset endpoint │
|
|
94
|
+
│ - Email service integration │
|
|
95
|
+
│ - Reset token management │
|
|
96
|
+
│ - UI for reset flow │
|
|
97
|
+
│ • Estimated additional effort: +4 hours │
|
|
98
|
+
│ • New must-have: User can reset password │
|
|
99
|
+
│ │
|
|
100
|
+
│ OPTIONS: │
|
|
101
|
+
│ 1. Add to current spec (extends timeline) │
|
|
102
|
+
│ 2. Defer to next phase (separate feature) │
|
|
103
|
+
│ 3. Cancel amendment (keep current spec) │
|
|
104
|
+
│ │
|
|
105
|
+
│ ───────────────────────────────────────────── │
|
|
106
|
+
│ Type "confirm" to update spec and continue. │
|
|
107
|
+
│ Type "defer" to handle in next phase. │
|
|
108
|
+
│ Type "cancel" to keep current spec. │
|
|
109
|
+
│ │
|
|
110
|
+
╰────────────────────────────────────────────────────╯
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## Artifacts Updated
|
|
114
|
+
|
|
115
|
+
- `SPEC.md` - Updated with amendment:
|
|
116
|
+
```markdown
|
|
117
|
+
## Amendment History
|
|
118
|
+
|
|
119
|
+
### Amendment 1 - [Date]
|
|
120
|
+
**Change:** Added password reset functionality
|
|
121
|
+
**Reason:** User requirement discovered during execution
|
|
122
|
+
**Impact:** +4 hours, +1 must-have
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
- `BLUEPRINT.md` - Updated with new/modified tasks
|
|
126
|
+
- `CHRONICLE.md` - Amendment logged with impact
|
|
127
|
+
|
|
128
|
+
## Best Practices
|
|
129
|
+
|
|
130
|
+
### When to Amend
|
|
131
|
+
|
|
132
|
+
**GOOD reasons:**
|
|
133
|
+
- Critical requirement missed
|
|
134
|
+
- User needs changed
|
|
135
|
+
- Technical constraint discovered
|
|
136
|
+
- Security issue requires different approach
|
|
137
|
+
|
|
138
|
+
**BAD reasons:**
|
|
139
|
+
- "Nice to have" feature idea
|
|
140
|
+
- Scope creep without justification
|
|
141
|
+
- Avoiding difficult implementation
|
|
142
|
+
- Perfectionism
|
|
143
|
+
|
|
144
|
+
### Minimizing Amendments
|
|
145
|
+
|
|
146
|
+
To reduce need for amendments:
|
|
147
|
+
- Thorough planning phase
|
|
148
|
+
- Clear success criteria
|
|
149
|
+
- Explicit out-of-scope items
|
|
150
|
+
- User confirmation at CONTRACT GATE
|
|
151
|
+
|
|
152
|
+
## Example
|
|
153
|
+
|
|
154
|
+
During authentication implementation, user realizes password reset is critical:
|
|
155
|
+
|
|
156
|
+
```
|
|
157
|
+
/goop-amend Add password reset - users need recovery option
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
Agent assesses impact, presents options, user confirms.
|
|
161
|
+
SPEC.md updated, new tasks added to BLUEPRINT.md.
|
|
162
|
+
|
|
163
|
+
## Next Steps
|
|
164
|
+
|
|
165
|
+
After amendment confirmed:
|
|
166
|
+
- `/goop-execute` - Resume execution with updated spec
|
|
167
|
+
- `/goop-status` - Check updated progress
|
|
168
|
+
|
|
169
|
+
If amendment deferred:
|
|
170
|
+
- Continue current work
|
|
171
|
+
- Plan amendment as next phase
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
**GoopSpec**: Adapt when needed, maintain the contract.
|