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,163 @@
|
|
|
1
|
+
# Security Checklist
|
|
2
|
+
|
|
3
|
+
Comprehensive security verification checklist for GoopSpec verification phase.
|
|
4
|
+
|
|
5
|
+
## Authentication & Authorization
|
|
6
|
+
|
|
7
|
+
### Authentication
|
|
8
|
+
- [ ] Password hashing uses bcrypt/argon2 with appropriate cost factor
|
|
9
|
+
- [ ] Passwords meet minimum complexity requirements
|
|
10
|
+
- [ ] Account lockout after failed attempts
|
|
11
|
+
- [ ] Secure password reset flow (time-limited tokens)
|
|
12
|
+
- [ ] Multi-factor authentication available for sensitive operations
|
|
13
|
+
- [ ] Session tokens are cryptographically secure
|
|
14
|
+
- [ ] Sessions expire after inactivity
|
|
15
|
+
- [ ] Sessions invalidated on logout
|
|
16
|
+
|
|
17
|
+
### Authorization
|
|
18
|
+
- [ ] Role-based access control implemented
|
|
19
|
+
- [ ] Principle of least privilege applied
|
|
20
|
+
- [ ] Authorization checks on every protected endpoint
|
|
21
|
+
- [ ] No authorization bypass via parameter manipulation
|
|
22
|
+
- [ ] Admin functions properly protected
|
|
23
|
+
|
|
24
|
+
## Input Validation
|
|
25
|
+
|
|
26
|
+
### General
|
|
27
|
+
- [ ] All user input validated server-side
|
|
28
|
+
- [ ] Whitelist validation preferred over blacklist
|
|
29
|
+
- [ ] Input length limits enforced
|
|
30
|
+
- [ ] Type validation on all inputs
|
|
31
|
+
- [ ] File upload restrictions (type, size, content)
|
|
32
|
+
|
|
33
|
+
### Injection Prevention
|
|
34
|
+
- [ ] SQL injection: Parameterized queries used
|
|
35
|
+
- [ ] NoSQL injection: Query sanitization
|
|
36
|
+
- [ ] Command injection: No shell execution with user input
|
|
37
|
+
- [ ] XSS: Output encoding/escaping
|
|
38
|
+
- [ ] LDAP injection: Input sanitization
|
|
39
|
+
- [ ] XML injection: Disable external entities
|
|
40
|
+
|
|
41
|
+
## Data Protection
|
|
42
|
+
|
|
43
|
+
### In Transit
|
|
44
|
+
- [ ] HTTPS enforced everywhere
|
|
45
|
+
- [ ] TLS 1.2+ only
|
|
46
|
+
- [ ] HSTS header configured
|
|
47
|
+
- [ ] Secure cookies (Secure, HttpOnly, SameSite)
|
|
48
|
+
- [ ] Certificate pinning for mobile apps
|
|
49
|
+
|
|
50
|
+
### At Rest
|
|
51
|
+
- [ ] Sensitive data encrypted
|
|
52
|
+
- [ ] Encryption keys properly managed
|
|
53
|
+
- [ ] Database encryption enabled
|
|
54
|
+
- [ ] Backup encryption
|
|
55
|
+
- [ ] No secrets in code or config files
|
|
56
|
+
|
|
57
|
+
### Privacy
|
|
58
|
+
- [ ] PII minimization
|
|
59
|
+
- [ ] Data retention policies
|
|
60
|
+
- [ ] Right to deletion supported
|
|
61
|
+
- [ ] Audit logging for data access
|
|
62
|
+
|
|
63
|
+
## API Security
|
|
64
|
+
|
|
65
|
+
### Design
|
|
66
|
+
- [ ] Rate limiting implemented
|
|
67
|
+
- [ ] Request size limits
|
|
68
|
+
- [ ] API versioning
|
|
69
|
+
- [ ] Deprecation policy
|
|
70
|
+
|
|
71
|
+
### Authentication
|
|
72
|
+
- [ ] API keys/tokens properly validated
|
|
73
|
+
- [ ] OAuth 2.0/OIDC for third-party auth
|
|
74
|
+
- [ ] JWT validation (signature, expiry, issuer)
|
|
75
|
+
- [ ] No sensitive data in URLs
|
|
76
|
+
|
|
77
|
+
### Response
|
|
78
|
+
- [ ] Appropriate error messages (no stack traces)
|
|
79
|
+
- [ ] CORS properly configured
|
|
80
|
+
- [ ] Content-Type headers set
|
|
81
|
+
- [ ] No sensitive data in responses
|
|
82
|
+
|
|
83
|
+
## Infrastructure
|
|
84
|
+
|
|
85
|
+
### Configuration
|
|
86
|
+
- [ ] Debug mode disabled in production
|
|
87
|
+
- [ ] Default credentials changed
|
|
88
|
+
- [ ] Unnecessary services disabled
|
|
89
|
+
- [ ] Security headers configured:
|
|
90
|
+
- Content-Security-Policy
|
|
91
|
+
- X-Frame-Options
|
|
92
|
+
- X-Content-Type-Options
|
|
93
|
+
- Referrer-Policy
|
|
94
|
+
|
|
95
|
+
### Dependencies
|
|
96
|
+
- [ ] Dependencies up to date
|
|
97
|
+
- [ ] No known vulnerabilities (npm audit)
|
|
98
|
+
- [ ] License compliance checked
|
|
99
|
+
- [ ] Dependency pinning
|
|
100
|
+
|
|
101
|
+
### Logging & Monitoring
|
|
102
|
+
- [ ] Security events logged
|
|
103
|
+
- [ ] No sensitive data in logs
|
|
104
|
+
- [ ] Log integrity protected
|
|
105
|
+
- [ ] Alerting on suspicious activity
|
|
106
|
+
- [ ] Incident response plan
|
|
107
|
+
|
|
108
|
+
## Code Quality
|
|
109
|
+
|
|
110
|
+
### Secure Coding
|
|
111
|
+
- [ ] No hardcoded secrets
|
|
112
|
+
- [ ] Cryptographic functions from standard libraries
|
|
113
|
+
- [ ] Proper random number generation
|
|
114
|
+
- [ ] Memory safety (bounds checking)
|
|
115
|
+
- [ ] Error handling doesn't leak info
|
|
116
|
+
|
|
117
|
+
### Review
|
|
118
|
+
- [ ] Security-focused code review
|
|
119
|
+
- [ ] Static analysis tools run
|
|
120
|
+
- [ ] Dynamic analysis/fuzzing
|
|
121
|
+
- [ ] Penetration testing (if applicable)
|
|
122
|
+
|
|
123
|
+
## Common Vulnerabilities (OWASP Top 10)
|
|
124
|
+
|
|
125
|
+
1. **Broken Access Control** - Verify authorization everywhere
|
|
126
|
+
2. **Cryptographic Failures** - Use modern crypto, protect data
|
|
127
|
+
3. **Injection** - Validate and sanitize all input
|
|
128
|
+
4. **Insecure Design** - Threat model, secure defaults
|
|
129
|
+
5. **Security Misconfiguration** - Harden everything
|
|
130
|
+
6. **Vulnerable Components** - Keep dependencies updated
|
|
131
|
+
7. **Auth Failures** - Strong auth, session management
|
|
132
|
+
8. **Data Integrity Failures** - Verify integrity, sign updates
|
|
133
|
+
9. **Logging Failures** - Log security events, monitor
|
|
134
|
+
10. **SSRF** - Validate URLs, restrict outbound requests
|
|
135
|
+
|
|
136
|
+
## Verification Commands
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
# Dependency vulnerabilities
|
|
140
|
+
npm audit
|
|
141
|
+
pip-audit
|
|
142
|
+
cargo audit
|
|
143
|
+
|
|
144
|
+
# Static analysis
|
|
145
|
+
semgrep --config auto .
|
|
146
|
+
eslint --plugin security .
|
|
147
|
+
|
|
148
|
+
# Secret scanning
|
|
149
|
+
gitleaks detect
|
|
150
|
+
trufflehog filesystem .
|
|
151
|
+
|
|
152
|
+
# SAST
|
|
153
|
+
snyk code test
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
## Risk Rating
|
|
157
|
+
|
|
158
|
+
| Severity | Response Time | Examples |
|
|
159
|
+
|----------|---------------|----------|
|
|
160
|
+
| Critical | Immediate | RCE, auth bypass, data breach |
|
|
161
|
+
| High | 24 hours | SQLi, XSS, privilege escalation |
|
|
162
|
+
| Medium | 1 week | CSRF, information disclosure |
|
|
163
|
+
| Low | Next release | Minor info leak, best practice |
|
|
@@ -0,0 +1,393 @@
|
|
|
1
|
+
# Subagent Protocol
|
|
2
|
+
|
|
3
|
+
All GoopSpec subagents follow a standardized protocol for memory usage, planning file access, and communication with the orchestrator.
|
|
4
|
+
|
|
5
|
+
## Core Principle
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
╔════════════════════════════════════════════════════════════════╗
|
|
9
|
+
║ SUBAGENTS ARE MEMORY-FIRST. ║
|
|
10
|
+
║ Search before starting. Save during work. Persist after. ║
|
|
11
|
+
║ Decisions and learnings flow through memory. ║
|
|
12
|
+
╚════════════════════════════════════════════════════════════════╝
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## The Memory-First Protocol
|
|
16
|
+
|
|
17
|
+
### Before Starting Work
|
|
18
|
+
|
|
19
|
+
Every subagent MUST:
|
|
20
|
+
|
|
21
|
+
```typescript
|
|
22
|
+
// 1. Search for relevant past decisions
|
|
23
|
+
memory_search({
|
|
24
|
+
query: "[task-specific query]",
|
|
25
|
+
concepts: ["relevant", "concepts"],
|
|
26
|
+
types: ["decision", "observation"]
|
|
27
|
+
})
|
|
28
|
+
|
|
29
|
+
// 2. Read the specification
|
|
30
|
+
Read(".goopspec/SPEC.md")
|
|
31
|
+
|
|
32
|
+
// 3. Read current state
|
|
33
|
+
Read(".goopspec/CHRONICLE.md")
|
|
34
|
+
|
|
35
|
+
// 4. Read the task details
|
|
36
|
+
Read(".goopspec/BLUEPRINT.md")
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### During Work
|
|
40
|
+
|
|
41
|
+
Every subagent SHOULD:
|
|
42
|
+
|
|
43
|
+
```typescript
|
|
44
|
+
// Update progress
|
|
45
|
+
Edit(".goopspec/CHRONICLE.md", {
|
|
46
|
+
update: "Task 2.1: [status]"
|
|
47
|
+
})
|
|
48
|
+
|
|
49
|
+
// Note important observations
|
|
50
|
+
memory_note({
|
|
51
|
+
note: "Discovered pattern: [description]"
|
|
52
|
+
})
|
|
53
|
+
|
|
54
|
+
// Record any decisions made
|
|
55
|
+
memory_decision({
|
|
56
|
+
decision: "Used approach X over Y",
|
|
57
|
+
reasoning: "[rationale]",
|
|
58
|
+
alternatives: ["Y", "Z"]
|
|
59
|
+
})
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### After Completing Work
|
|
63
|
+
|
|
64
|
+
Every subagent MUST:
|
|
65
|
+
|
|
66
|
+
```typescript
|
|
67
|
+
// 1. Update chronicle with outcome
|
|
68
|
+
Edit(".goopspec/CHRONICLE.md", {
|
|
69
|
+
update: "Task 2.1: COMPLETE (commit: abc123)"
|
|
70
|
+
})
|
|
71
|
+
|
|
72
|
+
// 2. Persist learnings
|
|
73
|
+
memory_save({
|
|
74
|
+
type: "observation",
|
|
75
|
+
title: "[task] completed",
|
|
76
|
+
content: "[summary of approach and outcome]",
|
|
77
|
+
concepts: ["patterns-used", "technologies"],
|
|
78
|
+
importance: 0.6
|
|
79
|
+
})
|
|
80
|
+
|
|
81
|
+
// 3. Return clear summary to orchestrator
|
|
82
|
+
return {
|
|
83
|
+
status: "complete",
|
|
84
|
+
summary: "[what was done]",
|
|
85
|
+
files_modified: ["path/to/file.ts"],
|
|
86
|
+
commit: "abc123",
|
|
87
|
+
notes: ["any important observations"]
|
|
88
|
+
}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Planning File Access
|
|
92
|
+
|
|
93
|
+
### SPEC.md (Read-Only for Subagents)
|
|
94
|
+
|
|
95
|
+
The specification is the contract. Subagents:
|
|
96
|
+
- MUST read to understand requirements
|
|
97
|
+
- MUST NOT modify (only orchestrator can)
|
|
98
|
+
- MUST reference when making decisions
|
|
99
|
+
|
|
100
|
+
```markdown
|
|
101
|
+
# SPEC.md - What to Build
|
|
102
|
+
|
|
103
|
+
## Must Haves
|
|
104
|
+
- Requirement 1 (guides implementation)
|
|
105
|
+
- Requirement 2 (guides implementation)
|
|
106
|
+
|
|
107
|
+
## Out of Scope
|
|
108
|
+
- Item 1 (guides what NOT to do)
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### BLUEPRINT.md (Read-Only for Subagents)
|
|
112
|
+
|
|
113
|
+
The execution plan. Subagents:
|
|
114
|
+
- MUST read to understand their task
|
|
115
|
+
- MUST NOT modify (only orchestrator/planner can)
|
|
116
|
+
- USE to understand context and dependencies
|
|
117
|
+
|
|
118
|
+
```markdown
|
|
119
|
+
# BLUEPRINT.md - How to Build
|
|
120
|
+
|
|
121
|
+
## Wave 2
|
|
122
|
+
### Task 2.1: [This is your task]
|
|
123
|
+
**Files:** src/auth/login.ts
|
|
124
|
+
**Action:** Implement login handler
|
|
125
|
+
**Verify:** npm test
|
|
126
|
+
**Done:** User can log in
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### CHRONICLE.md (Read-Write for Subagents)
|
|
130
|
+
|
|
131
|
+
The journey log. Subagents:
|
|
132
|
+
- MUST read for current state
|
|
133
|
+
- SHOULD update with progress
|
|
134
|
+
- MUST update on completion
|
|
135
|
+
|
|
136
|
+
```markdown
|
|
137
|
+
# CHRONICLE.md - What's Happening
|
|
138
|
+
|
|
139
|
+
## Current State
|
|
140
|
+
- Wave: 2
|
|
141
|
+
- Task: 2.1 [IN PROGRESS by executor]
|
|
142
|
+
|
|
143
|
+
## Progress
|
|
144
|
+
- [x] Task 1.1 (commit: abc)
|
|
145
|
+
- [ ] Task 2.1 [WORKING]
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### RESEARCH.md (Write for Research Agents)
|
|
149
|
+
|
|
150
|
+
Research findings. Research agents:
|
|
151
|
+
- WRITE findings during Research phase
|
|
152
|
+
- Other agents READ for context
|
|
153
|
+
|
|
154
|
+
```markdown
|
|
155
|
+
# RESEARCH.md - What We Learned
|
|
156
|
+
|
|
157
|
+
## Technology Options
|
|
158
|
+
- Option A: [pros, cons]
|
|
159
|
+
- Option B: [pros, cons]
|
|
160
|
+
|
|
161
|
+
## Recommendations
|
|
162
|
+
[Approach to take]
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
## Communication with Orchestrator
|
|
166
|
+
|
|
167
|
+
### Response Format
|
|
168
|
+
|
|
169
|
+
Subagents return structured results:
|
|
170
|
+
|
|
171
|
+
```typescript
|
|
172
|
+
interface SubagentResponse {
|
|
173
|
+
status: "complete" | "partial" | "blocked" | "failed";
|
|
174
|
+
summary: string; // What was accomplished
|
|
175
|
+
files_modified?: string[]; // Changed files
|
|
176
|
+
files_created?: string[]; // New files
|
|
177
|
+
commit?: string; // Commit hash if applicable
|
|
178
|
+
notes?: string[]; // Observations for orchestrator
|
|
179
|
+
blockers?: string[]; // If blocked/failed, why
|
|
180
|
+
next_steps?: string[]; // Suggestions if incomplete
|
|
181
|
+
}
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
### Status Meanings
|
|
185
|
+
|
|
186
|
+
| Status | Meaning | Orchestrator Action |
|
|
187
|
+
|--------|---------|---------------------|
|
|
188
|
+
| `complete` | Task fully done | Move to next task |
|
|
189
|
+
| `partial` | Some progress, more needed | Continue same task |
|
|
190
|
+
| `blocked` | Cannot proceed | Assess and unblock |
|
|
191
|
+
| `failed` | Task cannot be done | Apply deviation rules |
|
|
192
|
+
|
|
193
|
+
### Raising Issues
|
|
194
|
+
|
|
195
|
+
When subagents encounter problems:
|
|
196
|
+
|
|
197
|
+
```typescript
|
|
198
|
+
// Blockable issues (Rule 1-3: auto-fix)
|
|
199
|
+
memory_note({ note: "Fixed: [issue] using [approach]" })
|
|
200
|
+
// Continue working
|
|
201
|
+
|
|
202
|
+
// Architectural issues (Rule 4: ask)
|
|
203
|
+
return {
|
|
204
|
+
status: "blocked",
|
|
205
|
+
summary: "Encountered architectural decision",
|
|
206
|
+
blockers: ["Need to decide: REST vs GraphQL for new endpoint"],
|
|
207
|
+
notes: ["Options: A) REST (consistent with existing), B) GraphQL (more flexible)"]
|
|
208
|
+
}
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
## Agent-Specific Protocols
|
|
212
|
+
|
|
213
|
+
### goop-executor
|
|
214
|
+
|
|
215
|
+
Primary implementation agent.
|
|
216
|
+
|
|
217
|
+
```
|
|
218
|
+
BEFORE:
|
|
219
|
+
- Read SPEC.md for requirements
|
|
220
|
+
- Read BLUEPRINT.md for task details
|
|
221
|
+
- Check existing patterns in target files
|
|
222
|
+
|
|
223
|
+
DURING:
|
|
224
|
+
- Follow existing code conventions
|
|
225
|
+
- Write clean, tested code
|
|
226
|
+
- Commit atomically per task
|
|
227
|
+
|
|
228
|
+
AFTER:
|
|
229
|
+
- Update CHRONICLE.md
|
|
230
|
+
- Persist pattern observations
|
|
231
|
+
- Return commit hash
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
### goop-researcher
|
|
235
|
+
|
|
236
|
+
Deep domain exploration.
|
|
237
|
+
|
|
238
|
+
```
|
|
239
|
+
BEFORE:
|
|
240
|
+
- Search memory for past research
|
|
241
|
+
- Understand what information is needed
|
|
242
|
+
|
|
243
|
+
DURING:
|
|
244
|
+
- Explore multiple sources
|
|
245
|
+
- Compare alternatives
|
|
246
|
+
- Document tradeoffs
|
|
247
|
+
|
|
248
|
+
AFTER:
|
|
249
|
+
- Write to RESEARCH.md
|
|
250
|
+
- Persist key findings to memory
|
|
251
|
+
- Return research summary
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
### goop-explorer
|
|
255
|
+
|
|
256
|
+
Fast codebase mapping.
|
|
257
|
+
|
|
258
|
+
```
|
|
259
|
+
BEFORE:
|
|
260
|
+
- Understand what patterns/files to find
|
|
261
|
+
- Search memory for known areas
|
|
262
|
+
|
|
263
|
+
DURING:
|
|
264
|
+
- Map relevant code quickly
|
|
265
|
+
- Extract patterns and conventions
|
|
266
|
+
- Note integration points
|
|
267
|
+
|
|
268
|
+
AFTER:
|
|
269
|
+
- Update RESEARCH.md (codebase section)
|
|
270
|
+
- Persist patterns to memory
|
|
271
|
+
- Return map summary
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
### goop-verifier
|
|
275
|
+
|
|
276
|
+
Specification compliance checking.
|
|
277
|
+
|
|
278
|
+
```
|
|
279
|
+
BEFORE:
|
|
280
|
+
- Read SPEC.md (must-haves)
|
|
281
|
+
- Read CHRONICLE.md (what was done)
|
|
282
|
+
|
|
283
|
+
DURING:
|
|
284
|
+
- Verify each requirement
|
|
285
|
+
- Run automated checks
|
|
286
|
+
- Check security considerations
|
|
287
|
+
|
|
288
|
+
AFTER:
|
|
289
|
+
- Generate verification report
|
|
290
|
+
- Persist verification status
|
|
291
|
+
- Return pass/fail with evidence
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
### goop-debugger
|
|
295
|
+
|
|
296
|
+
Bug investigation using scientific method.
|
|
297
|
+
|
|
298
|
+
```
|
|
299
|
+
BEFORE:
|
|
300
|
+
- Understand bug report
|
|
301
|
+
- Search memory for similar issues
|
|
302
|
+
- Read relevant code
|
|
303
|
+
|
|
304
|
+
DURING:
|
|
305
|
+
- Form hypothesis
|
|
306
|
+
- Design experiment
|
|
307
|
+
- Test and iterate
|
|
308
|
+
|
|
309
|
+
AFTER:
|
|
310
|
+
- Document root cause
|
|
311
|
+
- Persist learning to memory
|
|
312
|
+
- Return fix or investigation report
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
## Memory Usage Patterns
|
|
316
|
+
|
|
317
|
+
### What to Save
|
|
318
|
+
|
|
319
|
+
| Type | When | Example |
|
|
320
|
+
|------|------|---------|
|
|
321
|
+
| `observation` | Discovering patterns | "Codebase uses repository pattern" |
|
|
322
|
+
| `decision` | Making choices | "Used jose over jsonwebtoken" |
|
|
323
|
+
| `note` | Quick captures | "Auth tests are flaky on CI" |
|
|
324
|
+
|
|
325
|
+
### Importance Levels
|
|
326
|
+
|
|
327
|
+
| Level | When | Effect |
|
|
328
|
+
|-------|------|--------|
|
|
329
|
+
| 0.9+ | Critical decisions | Always surfaced in searches |
|
|
330
|
+
| 0.7-0.8 | Important learnings | Surfaced for related queries |
|
|
331
|
+
| 0.5-0.6 | General observations | Background context |
|
|
332
|
+
| < 0.5 | Minor notes | Rarely surfaced |
|
|
333
|
+
|
|
334
|
+
### Concept Tagging
|
|
335
|
+
|
|
336
|
+
Tag memories with concepts for semantic search:
|
|
337
|
+
|
|
338
|
+
```typescript
|
|
339
|
+
memory_save({
|
|
340
|
+
title: "Auth implementation approach",
|
|
341
|
+
concepts: ["authentication", "jwt", "security", "session"],
|
|
342
|
+
// ...
|
|
343
|
+
})
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
## Anti-Patterns
|
|
347
|
+
|
|
348
|
+
### Don't: Ignore Memory
|
|
349
|
+
|
|
350
|
+
```
|
|
351
|
+
❌ Start working immediately without searching
|
|
352
|
+
❌ Forget to persist learnings
|
|
353
|
+
❌ Repeat research already done
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
### Don't: Skip Planning Files
|
|
357
|
+
|
|
358
|
+
```
|
|
359
|
+
❌ Guess requirements instead of reading SPEC.md
|
|
360
|
+
❌ Work on wrong task (didn't read BLUEPRINT.md)
|
|
361
|
+
❌ Duplicate work (didn't check CHRONICLE.md)
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
### Don't: Return Vague Responses
|
|
365
|
+
|
|
366
|
+
```
|
|
367
|
+
❌ "Done" (no details)
|
|
368
|
+
❌ "It works now" (no verification)
|
|
369
|
+
❌ "Made some changes" (no specifics)
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
### Do: Follow the Protocol
|
|
373
|
+
|
|
374
|
+
```
|
|
375
|
+
✓ Search memory → Read files → Do work → Update files → Save memory → Return structured response
|
|
376
|
+
```
|
|
377
|
+
|
|
378
|
+
## Summary Checklist
|
|
379
|
+
|
|
380
|
+
Every subagent execution:
|
|
381
|
+
|
|
382
|
+
- [ ] Searched memory for relevant context
|
|
383
|
+
- [ ] Read SPEC.md for requirements
|
|
384
|
+
- [ ] Read CHRONICLE.md for current state
|
|
385
|
+
- [ ] Read BLUEPRINT.md for task details
|
|
386
|
+
- [ ] Updated CHRONICLE.md with progress
|
|
387
|
+
- [ ] Persisted learnings to memory
|
|
388
|
+
- [ ] Returned structured response with:
|
|
389
|
+
- [ ] Clear status
|
|
390
|
+
- [ ] Summary of work
|
|
391
|
+
- [ ] Files modified
|
|
392
|
+
- [ ] Commit hash (if applicable)
|
|
393
|
+
- [ ] Any notes/blockers
|