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,383 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: goop-core
|
|
3
|
+
description: Core GoopSpec 0.1.0 operations - the 5-phase spec-driven workflow
|
|
4
|
+
category: core
|
|
5
|
+
triggers:
|
|
6
|
+
- goop
|
|
7
|
+
- spec
|
|
8
|
+
- workflow
|
|
9
|
+
- plan
|
|
10
|
+
- execute
|
|
11
|
+
version: 0.1.0
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# GoopSpec 0.1.0 Core Operations
|
|
15
|
+
|
|
16
|
+
## The 5-Phase Workflow
|
|
17
|
+
|
|
18
|
+
GoopSpec follows a disciplined spec-driven development cycle:
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
|
|
22
|
+
│ Phase 1 │ │ Phase 2 │ │ Phase 3 │
|
|
23
|
+
│ DISCUSS │ ──▶ │ PLAN │ ──▶ │ EXECUTE │
|
|
24
|
+
│ (Gather │ │ (Create │ │ (Wave-based │
|
|
25
|
+
│ reqs) │ │ PLAN.md) │ │ impl) │
|
|
26
|
+
└─────────────┘ └─────────────┘ └─────────────┘
|
|
27
|
+
│
|
|
28
|
+
▼
|
|
29
|
+
┌─────────────┐ ┌─────────────┐
|
|
30
|
+
│ Phase 5 │ │ Phase 4 │
|
|
31
|
+
│ CONFIRM │ ◀── │ AUDIT │
|
|
32
|
+
│ (User │ │ (Verify │
|
|
33
|
+
│ approval) │ │ against │
|
|
34
|
+
└─────────────┘ │ spec) │
|
|
35
|
+
└─────────────┘
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
**Phase 0**: Intent Gate (classify every incoming request)
|
|
39
|
+
**Phase 1**: Discuss (gather requirements, clarify scope)
|
|
40
|
+
**Phase 2**: Plan (create detailed execution plan)
|
|
41
|
+
**Phase 3**: Execute (wave-based implementation)
|
|
42
|
+
**Phase 4**: Audit (verify against requirements)
|
|
43
|
+
**Phase 5**: Confirm (get user approval)
|
|
44
|
+
|
|
45
|
+
### Phase 1: Discuss
|
|
46
|
+
- Gather requirements through conversation
|
|
47
|
+
- Ask clarifying questions
|
|
48
|
+
- Identify edge cases and constraints
|
|
49
|
+
- Challenge assumptions respectfully
|
|
50
|
+
- Output: Clear understanding of what to build
|
|
51
|
+
|
|
52
|
+
### Phase 2: Plan
|
|
53
|
+
- Create detailed PLAN.md with waves and tasks
|
|
54
|
+
- Break work into atomic, verifiable tasks
|
|
55
|
+
- Identify dependencies between tasks
|
|
56
|
+
- Define acceptance criteria for each task
|
|
57
|
+
- Output: PLAN.md ready for execution
|
|
58
|
+
|
|
59
|
+
### Phase 3: Execute
|
|
60
|
+
- Wave-based implementation
|
|
61
|
+
- Atomic commits per task
|
|
62
|
+
- Track progress with checkpoints
|
|
63
|
+
- Apply deviation rules (auto-fix vs ask)
|
|
64
|
+
- Output: Working code
|
|
65
|
+
|
|
66
|
+
### Phase 4: Audit
|
|
67
|
+
- Verify implementation against requirements
|
|
68
|
+
- Check all acceptance criteria are met
|
|
69
|
+
- Review code quality and security
|
|
70
|
+
- Identify any gaps or issues
|
|
71
|
+
- Output: Audit report
|
|
72
|
+
|
|
73
|
+
### Phase 5: Confirm (ACCEPTANCE GATE)
|
|
74
|
+
- Present summary to user
|
|
75
|
+
- Get explicit user approval
|
|
76
|
+
- Handle change requests if needed
|
|
77
|
+
- Archive completed work
|
|
78
|
+
- Output: Accepted deliverable
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## Planning Markdown Files
|
|
83
|
+
|
|
84
|
+
GoopSpec uses markdown files for state and coordination:
|
|
85
|
+
|
|
86
|
+
| File | Purpose |
|
|
87
|
+
|------|---------|
|
|
88
|
+
| `SPEC.md` | Locked specification with must-haves and nice-to-haves |
|
|
89
|
+
| `BLUEPRINT.md` | Execution plan with waves and tasks |
|
|
90
|
+
| `CHRONICLE.md` | Journey log tracking progress and decisions |
|
|
91
|
+
| `RESEARCH.md` | Research findings from exploration phase |
|
|
92
|
+
| `RETROSPECTIVE.md` | Post-completion analysis (for milestones) |
|
|
93
|
+
| `LEARNINGS.md` | Extracted patterns and insights (archived) |
|
|
94
|
+
|
|
95
|
+
### Directory Structure
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
.goopspec/
|
|
99
|
+
├── SPEC.md # Current specification
|
|
100
|
+
├── BLUEPRINT.md # Current execution plan
|
|
101
|
+
├── CHRONICLE.md # Current journey log
|
|
102
|
+
├── RESEARCH.md # Current research findings
|
|
103
|
+
├── quick/ # Quick task history
|
|
104
|
+
│ └── 001-task-name/
|
|
105
|
+
│ └── SUMMARY.md
|
|
106
|
+
├── milestones/ # Active milestones
|
|
107
|
+
│ └── v1.0-feature/
|
|
108
|
+
└── archive/ # Completed milestones
|
|
109
|
+
└── v0.9-setup/
|
|
110
|
+
├── RETROSPECTIVE.md
|
|
111
|
+
└── LEARNINGS.md
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## Task Modes
|
|
117
|
+
|
|
118
|
+
GoopSpec scales to the task size:
|
|
119
|
+
|
|
120
|
+
| Mode | When | Workflow |
|
|
121
|
+
|------|------|----------|
|
|
122
|
+
| **Quick** | Bug fixes, small changes | Plan → Execute → Accept |
|
|
123
|
+
| **Standard** | Features, moderate work | Full 5-phase workflow |
|
|
124
|
+
| **Comprehensive** | Complex systems | Full workflow + deep research |
|
|
125
|
+
| **Milestone** | Major releases | Multiple cycles + archive |
|
|
126
|
+
|
|
127
|
+
### Quick Mode
|
|
128
|
+
- Skip Research and Specify phases
|
|
129
|
+
- For tasks under ~30 minutes
|
|
130
|
+
- Still uses memory and atomic commits
|
|
131
|
+
- Tracked in `.goopspec/quick/`
|
|
132
|
+
|
|
133
|
+
### Standard Mode
|
|
134
|
+
- Full 5-phase workflow
|
|
135
|
+
- For features taking hours to a day
|
|
136
|
+
- Contract gate at Specify
|
|
137
|
+
- Acceptance gate at end
|
|
138
|
+
|
|
139
|
+
### Comprehensive Mode
|
|
140
|
+
- Extended research phase
|
|
141
|
+
- Multiple parallel research agents
|
|
142
|
+
- Detailed specification
|
|
143
|
+
- Multiple execution waves
|
|
144
|
+
|
|
145
|
+
### Milestone Mode
|
|
146
|
+
- Groups related work into versioned milestone
|
|
147
|
+
- Archives on completion
|
|
148
|
+
- Extracts learnings to memory
|
|
149
|
+
- Tags git with version
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
## Task Format
|
|
154
|
+
|
|
155
|
+
GoopSpec uses markdown for task definitions (not XML):
|
|
156
|
+
|
|
157
|
+
```markdown
|
|
158
|
+
### Task 1.1: [Action-oriented name]
|
|
159
|
+
|
|
160
|
+
**Files**: path/to/file.ext, other/file.ext
|
|
161
|
+
**Action**: [What to do, how, and why]
|
|
162
|
+
**Verify**: [Command or check to prove completion]
|
|
163
|
+
**Done**: [Measurable acceptance criteria]
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### Wave Structure
|
|
167
|
+
|
|
168
|
+
```markdown
|
|
169
|
+
## Wave 1: [Theme]
|
|
170
|
+
|
|
171
|
+
### Task 1.1: [Name]
|
|
172
|
+
...
|
|
173
|
+
|
|
174
|
+
### Task 1.2: [Name]
|
|
175
|
+
...
|
|
176
|
+
|
|
177
|
+
## Wave 2: [Theme]
|
|
178
|
+
...
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## Contract Gates
|
|
184
|
+
|
|
185
|
+
Two mandatory confirmation points:
|
|
186
|
+
|
|
187
|
+
### Specify Gate (Pre-Execution)
|
|
188
|
+
```
|
|
189
|
+
"I've captured the requirements in SPEC.md:
|
|
190
|
+
- Must have: [list]
|
|
191
|
+
- Nice to have: [list]
|
|
192
|
+
- Out of scope: [list]
|
|
193
|
+
|
|
194
|
+
Please confirm this specification before I proceed."
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
User must explicitly confirm before execution begins.
|
|
198
|
+
|
|
199
|
+
### Accept Gate (Post-Execution)
|
|
200
|
+
```
|
|
201
|
+
"Implementation complete. Verification against spec:
|
|
202
|
+
- [Requirement 1]: ✓ Implemented
|
|
203
|
+
- [Requirement 2]: ✓ Implemented
|
|
204
|
+
|
|
205
|
+
Please confirm acceptance or request changes."
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
User must explicitly accept before marking complete.
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## Core Principles
|
|
213
|
+
|
|
214
|
+
### The Continuation Mandate
|
|
215
|
+
The agent continues until spec tasks are complete. If todos remain incomplete, enforced task continuation keeps work moving. Checkpoints allow pausing, but completion requires all must-haves delivered.
|
|
216
|
+
|
|
217
|
+
### Goal-Backward Verification
|
|
218
|
+
Don't just complete tasks - verify that the code delivers what was promised. Task completion ≠ Goal achievement. Always trace back to the original intent.
|
|
219
|
+
|
|
220
|
+
### Vertical Slices Over Horizontal Layers
|
|
221
|
+
```
|
|
222
|
+
PREFER: Wave 1 = Complete User Feature (model + API + UI)
|
|
223
|
+
AVOID: Wave 1 = All Models, Wave 2 = All APIs, Wave 3 = All UIs
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
### Memory-First Protocol
|
|
227
|
+
All agents follow the memory protocol:
|
|
228
|
+
1. Search memory for relevant past decisions before starting
|
|
229
|
+
2. Save important observations and decisions during work
|
|
230
|
+
3. Persist learnings to memory after completion
|
|
231
|
+
|
|
232
|
+
### Orchestrator as Conductor
|
|
233
|
+
The orchestrator NEVER writes code. It coordinates, delegates, and maintains context. All implementation is delegated to specialized subagents.
|
|
234
|
+
|
|
235
|
+
---
|
|
236
|
+
|
|
237
|
+
## Deviation Rules
|
|
238
|
+
|
|
239
|
+
### Rule 1: Auto-fix Bugs
|
|
240
|
+
Fix immediately without asking:
|
|
241
|
+
- Wrong logic, type errors, infinite loops
|
|
242
|
+
- Security vulnerabilities (SQL injection, XSS)
|
|
243
|
+
- Broken validation, race conditions
|
|
244
|
+
- Memory/resource leaks
|
|
245
|
+
|
|
246
|
+
### Rule 2: Auto-add Missing Critical Functionality
|
|
247
|
+
Add immediately without asking:
|
|
248
|
+
- Error handling (try-catch, promise rejection)
|
|
249
|
+
- Input validation and sanitization
|
|
250
|
+
- Null/undefined checks
|
|
251
|
+
- Authentication/authorization checks
|
|
252
|
+
- Rate limiting on public APIs
|
|
253
|
+
|
|
254
|
+
### Rule 3: Auto-fix Blocking Issues
|
|
255
|
+
Fix immediately without asking:
|
|
256
|
+
- Missing dependencies
|
|
257
|
+
- Broken import paths
|
|
258
|
+
- Missing environment variables
|
|
259
|
+
- Config errors
|
|
260
|
+
- Circular dependencies
|
|
261
|
+
|
|
262
|
+
### Rule 4: Ask About Architectural Changes
|
|
263
|
+
STOP and ask user for:
|
|
264
|
+
- New database tables (not just columns)
|
|
265
|
+
- Schema changes (primary keys, table splits)
|
|
266
|
+
- Framework/library switches
|
|
267
|
+
- New infrastructure (queues, caches, CDNs)
|
|
268
|
+
- Breaking API changes
|
|
269
|
+
- New deployment environments
|
|
270
|
+
|
|
271
|
+
---
|
|
272
|
+
|
|
273
|
+
## Commands
|
|
274
|
+
|
|
275
|
+
### Workflow Commands
|
|
276
|
+
| Command | Description |
|
|
277
|
+
|---------|-------------|
|
|
278
|
+
| `/goop-discuss [description]` | Capture user vision, gather requirements |
|
|
279
|
+
| `/goop-plan [description]` | Create detailed execution plan |
|
|
280
|
+
| `/goop-execute` | Begin wave-based execution |
|
|
281
|
+
| `/goop-accept` | Verify and accept completion |
|
|
282
|
+
|
|
283
|
+
### Task Mode Commands
|
|
284
|
+
| Command | Description |
|
|
285
|
+
|---------|-------------|
|
|
286
|
+
| `/goop-quick [task]` | Fast-track small task |
|
|
287
|
+
| `/goop-milestone [name]` | Start versioned milestone |
|
|
288
|
+
| `/goop-complete` | Complete and archive milestone |
|
|
289
|
+
|
|
290
|
+
### Utility Commands
|
|
291
|
+
| Command | Description |
|
|
292
|
+
|---------|-------------|
|
|
293
|
+
| `/goop-status` | Show workflow status |
|
|
294
|
+
| `/goop-amend` | Propose spec changes |
|
|
295
|
+
| `/goop-recall [query]` | Search persistent memory |
|
|
296
|
+
| `/goop-remember [content]` | Save to persistent memory |
|
|
297
|
+
| `/goop-pause [name]` | Save checkpoint |
|
|
298
|
+
| `/goop-resume [id]` | Resume from checkpoint |
|
|
299
|
+
|
|
300
|
+
---
|
|
301
|
+
|
|
302
|
+
## Commit Format
|
|
303
|
+
|
|
304
|
+
```
|
|
305
|
+
type(wave-task): description
|
|
306
|
+
|
|
307
|
+
- Detail 1
|
|
308
|
+
- Detail 2
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
Types: `feat`, `fix`, `test`, `refactor`, `docs`, `perf`, `chore`
|
|
312
|
+
|
|
313
|
+
Example:
|
|
314
|
+
```
|
|
315
|
+
feat(w1-t2): implement user authentication API
|
|
316
|
+
|
|
317
|
+
- Add /auth/login and /auth/logout endpoints
|
|
318
|
+
- Integrate JWT token generation
|
|
319
|
+
- Add refresh token rotation
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
---
|
|
323
|
+
|
|
324
|
+
## Status Indicators
|
|
325
|
+
|
|
326
|
+
| Symbol | Meaning |
|
|
327
|
+
|--------|---------|
|
|
328
|
+
| `[OK]` | Complete/Passed |
|
|
329
|
+
| `[FAIL]` | Failed/Error |
|
|
330
|
+
| `[WARN]` | Warning/Attention Required |
|
|
331
|
+
| `[INFO]` | Informational |
|
|
332
|
+
| `[WORK]` | In Progress |
|
|
333
|
+
| `[WAIT]` | Waiting/Blocked |
|
|
334
|
+
| `[GATE]` | User Confirmation Required |
|
|
335
|
+
|
|
336
|
+
---
|
|
337
|
+
|
|
338
|
+
## Archive System
|
|
339
|
+
|
|
340
|
+
When a milestone completes:
|
|
341
|
+
|
|
342
|
+
1. **Move** milestone to `archive/`
|
|
343
|
+
2. **Generate** RETROSPECTIVE.md (what worked, what didn't)
|
|
344
|
+
3. **Extract** LEARNINGS.md (patterns, decisions, gotchas)
|
|
345
|
+
4. **Persist** learnings to memory for future recall
|
|
346
|
+
5. **Tag** git with milestone version
|
|
347
|
+
|
|
348
|
+
### Learning Extraction
|
|
349
|
+
|
|
350
|
+
Learnings are persisted with semantic concepts for search:
|
|
351
|
+
|
|
352
|
+
```
|
|
353
|
+
memory_save({
|
|
354
|
+
type: "observation",
|
|
355
|
+
title: "Milestone Learning: [name]",
|
|
356
|
+
concepts: ["auth", "jwt", "security"],
|
|
357
|
+
facts: ["jose library better than jsonwebtoken for ESM"],
|
|
358
|
+
importance: 0.8
|
|
359
|
+
})
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
### Recall
|
|
363
|
+
|
|
364
|
+
Use `/goop-recall` to search past work:
|
|
365
|
+
|
|
366
|
+
```
|
|
367
|
+
/goop-recall "how did we handle auth?"
|
|
368
|
+
→ Returns relevant learnings from archived milestones
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
---
|
|
372
|
+
|
|
373
|
+
## Quick Reference
|
|
374
|
+
|
|
375
|
+
```
|
|
376
|
+
WORKFLOW: Discuss → Plan → Execute → Audit → Confirm
|
|
377
|
+
FILES: PLAN.md, SPEC.md, ADL.md (decisions), checkpoints
|
|
378
|
+
MODES: Quick, Standard, Comprehensive, Milestone
|
|
379
|
+
GATES: Confirm (user approval required)
|
|
380
|
+
RULES: Auto-fix bugs/blocking, Ask for architecture
|
|
381
|
+
AGENTS: Orchestrator coordinates, Subagents execute
|
|
382
|
+
MEMORY: Search before, save during, persist after
|
|
383
|
+
```
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: memory-usage
|
|
3
|
+
description: How to effectively use the memory system to remember and recall information
|
|
4
|
+
category: core
|
|
5
|
+
triggers:
|
|
6
|
+
- memory
|
|
7
|
+
- remember
|
|
8
|
+
- recall
|
|
9
|
+
- save for later
|
|
10
|
+
- persistent
|
|
11
|
+
version: 0.1.0
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Memory System Usage Guide
|
|
15
|
+
|
|
16
|
+
You have access to a persistent memory system that allows you to save and retrieve information across sessions. Use it wisely to provide better context-aware assistance.
|
|
17
|
+
|
|
18
|
+
## Available Tools
|
|
19
|
+
|
|
20
|
+
### `memory_save`
|
|
21
|
+
Save important information to persistent memory.
|
|
22
|
+
|
|
23
|
+
**When to use:**
|
|
24
|
+
- User expresses a preference ("I prefer TypeScript")
|
|
25
|
+
- You make an architectural decision
|
|
26
|
+
- You discover important patterns in the codebase
|
|
27
|
+
- You learn something that should persist
|
|
28
|
+
|
|
29
|
+
**Example:**
|
|
30
|
+
```
|
|
31
|
+
memory_save(
|
|
32
|
+
title="User prefers functional React components",
|
|
33
|
+
content="User explicitly stated preference for functional components with hooks over class components.",
|
|
34
|
+
type="observation",
|
|
35
|
+
facts=["User prefers functional components", "Hooks preferred over class lifecycle"],
|
|
36
|
+
concepts=["react", "components", "preference"],
|
|
37
|
+
importance=8
|
|
38
|
+
)
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### `memory_search`
|
|
42
|
+
Search your memory for relevant information.
|
|
43
|
+
|
|
44
|
+
**When to use:**
|
|
45
|
+
- Before making decisions that might have prior context
|
|
46
|
+
- When user asks about previous work
|
|
47
|
+
- When you need to recall preferences or patterns
|
|
48
|
+
- At the start of new conversations about familiar topics
|
|
49
|
+
|
|
50
|
+
**Example:**
|
|
51
|
+
```
|
|
52
|
+
memory_search(
|
|
53
|
+
query="user preferences for React components",
|
|
54
|
+
limit=5,
|
|
55
|
+
types=["observation", "decision"]
|
|
56
|
+
)
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### `memory_note`
|
|
60
|
+
Quick way to save brief notes.
|
|
61
|
+
|
|
62
|
+
**When to use:**
|
|
63
|
+
- Quick observations that might be useful later
|
|
64
|
+
- Temporary reminders
|
|
65
|
+
- Brief insights
|
|
66
|
+
|
|
67
|
+
**Example:**
|
|
68
|
+
```
|
|
69
|
+
memory_note(
|
|
70
|
+
note="The authentication service is in /src/services/auth.ts",
|
|
71
|
+
concepts=["auth", "services"]
|
|
72
|
+
)
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### `memory_decision`
|
|
76
|
+
Record important decisions with reasoning.
|
|
77
|
+
|
|
78
|
+
**When to use:**
|
|
79
|
+
- Architecture decisions
|
|
80
|
+
- Technology choices
|
|
81
|
+
- Design trade-offs
|
|
82
|
+
- Any decision that might need to be referenced later
|
|
83
|
+
|
|
84
|
+
**Example:**
|
|
85
|
+
```
|
|
86
|
+
memory_decision(
|
|
87
|
+
decision="Use PostgreSQL for the database",
|
|
88
|
+
reasoning="Better JSON support needed for storing user preferences, and we anticipate complex analytical queries",
|
|
89
|
+
alternatives=["MySQL", "MongoDB"],
|
|
90
|
+
impact="high",
|
|
91
|
+
concepts=["database", "architecture"]
|
|
92
|
+
)
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### `memory_forget`
|
|
96
|
+
Delete memories that are outdated or incorrect.
|
|
97
|
+
|
|
98
|
+
**When to use:**
|
|
99
|
+
- Information becomes outdated
|
|
100
|
+
- You stored something incorrect
|
|
101
|
+
- Cleaning up temporary notes
|
|
102
|
+
|
|
103
|
+
**Example:**
|
|
104
|
+
```
|
|
105
|
+
memory_forget(id=123) // Delete by ID
|
|
106
|
+
memory_forget(query="outdated API endpoint", confirm=true) // Delete by search
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## Best Practices
|
|
110
|
+
|
|
111
|
+
### What to Remember
|
|
112
|
+
|
|
113
|
+
**HIGH PRIORITY (importance 8-10):**
|
|
114
|
+
- User preferences and coding style
|
|
115
|
+
- Project-specific decisions
|
|
116
|
+
- Architecture patterns
|
|
117
|
+
- Technology choices
|
|
118
|
+
|
|
119
|
+
**MEDIUM PRIORITY (importance 5-7):**
|
|
120
|
+
- Codebase patterns discovered
|
|
121
|
+
- Bug fixes and their solutions
|
|
122
|
+
- Feature implementation details
|
|
123
|
+
- Configuration details
|
|
124
|
+
|
|
125
|
+
**LOW PRIORITY (importance 3-4):**
|
|
126
|
+
- Routine observations
|
|
127
|
+
- Temporary context
|
|
128
|
+
- Session-specific notes
|
|
129
|
+
|
|
130
|
+
### What NOT to Remember
|
|
131
|
+
|
|
132
|
+
**NEVER store:**
|
|
133
|
+
- API keys, passwords, tokens
|
|
134
|
+
- Private keys or secrets
|
|
135
|
+
- Personal information
|
|
136
|
+
- Content inside `<private>` tags
|
|
137
|
+
- Large code blocks (store file paths instead)
|
|
138
|
+
|
|
139
|
+
### Memory Hygiene
|
|
140
|
+
|
|
141
|
+
1. **Be specific with titles** - They show up in search results
|
|
142
|
+
2. **Extract atomic facts** - Each fact should stand alone
|
|
143
|
+
3. **Use consistent concepts** - Helps with future searches
|
|
144
|
+
4. **Set appropriate importance** - Higher importance = more likely to surface
|
|
145
|
+
5. **Include source files** - Helps locate related code
|
|
146
|
+
|
|
147
|
+
## Search Strategy
|
|
148
|
+
|
|
149
|
+
1. **Before starting work:** Search for relevant context
|
|
150
|
+
```
|
|
151
|
+
memory_search(query="<topic I'm about to work on>")
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
2. **After learning something:** Save it for later
|
|
155
|
+
```
|
|
156
|
+
memory_save(title="...", content="...", ...)
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
3. **When asked about history:** Search first
|
|
160
|
+
```
|
|
161
|
+
memory_search(query="previous work on <topic>")
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
## Integration with Goop Workflow
|
|
165
|
+
|
|
166
|
+
Memory integrates with the Goop workflow phases:
|
|
167
|
+
|
|
168
|
+
- **Discuss:** Search for relevant prior context
|
|
169
|
+
- **Plan:** Save important decisions and constraints
|
|
170
|
+
- **Execute:** Save observations about the codebase
|
|
171
|
+
- **Audit:** Note any issues discovered
|
|
172
|
+
- **Confirm:** Save summary of what was accomplished
|
|
173
|
+
|
|
174
|
+
## Privacy
|
|
175
|
+
|
|
176
|
+
Always respect privacy:
|
|
177
|
+
- Content in `<private>...</private>` tags is never stored
|
|
178
|
+
- Sensitive patterns (API keys, etc.) are automatically redacted
|
|
179
|
+
- When in doubt, ask before storing
|
|
180
|
+
|
|
181
|
+
## Examples of Good Memories
|
|
182
|
+
|
|
183
|
+
**User Preference:**
|
|
184
|
+
```
|
|
185
|
+
Title: User prefers tabs over spaces
|
|
186
|
+
Content: User explicitly stated preference for tabs (width 2) for indentation in all code.
|
|
187
|
+
Facts: ["Use tabs for indentation", "Tab width should be 2"]
|
|
188
|
+
Concepts: ["formatting", "preference", "style"]
|
|
189
|
+
Importance: 9
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
**Architecture Decision:**
|
|
193
|
+
```
|
|
194
|
+
Title: Chose event sourcing for order system
|
|
195
|
+
Content: Decided to use event sourcing pattern for the order management system to maintain complete audit history.
|
|
196
|
+
Facts: ["Order system uses event sourcing", "Full audit history required"]
|
|
197
|
+
Concepts: ["architecture", "event-sourcing", "orders"]
|
|
198
|
+
Importance: 8
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
**Codebase Pattern:**
|
|
202
|
+
```
|
|
203
|
+
Title: API routes follow RESTful naming convention
|
|
204
|
+
Content: All API routes in /src/api/ follow strict RESTful naming: GET /resources, GET /resources/:id, POST /resources, etc.
|
|
205
|
+
Facts: ["RESTful API naming", "Routes in /src/api/"]
|
|
206
|
+
Concepts: ["api", "rest", "conventions"]
|
|
207
|
+
Importance: 6
|
|
208
|
+
```
|