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.
Files changed (92) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +650 -0
  3. package/agents/goop-debugger.md +265 -0
  4. package/agents/goop-designer.md +244 -0
  5. package/agents/goop-executor.md +217 -0
  6. package/agents/goop-explorer.md +252 -0
  7. package/agents/goop-librarian.md +197 -0
  8. package/agents/goop-orchestrator.md +224 -0
  9. package/agents/goop-planner.md +231 -0
  10. package/agents/goop-researcher.md +246 -0
  11. package/agents/goop-tester.md +245 -0
  12. package/agents/goop-verifier.md +266 -0
  13. package/agents/goop-writer.md +293 -0
  14. package/agents/memory-distiller.md +226 -0
  15. package/commands/goop-accept.md +183 -0
  16. package/commands/goop-amend.md +175 -0
  17. package/commands/goop-complete.md +206 -0
  18. package/commands/goop-debug.md +318 -0
  19. package/commands/goop-discuss.md +138 -0
  20. package/commands/goop-execute.md +137 -0
  21. package/commands/goop-help.md +82 -0
  22. package/commands/goop-map-codebase.md +501 -0
  23. package/commands/goop-memory.md +66 -0
  24. package/commands/goop-milestone.md +213 -0
  25. package/commands/goop-pause.md +61 -0
  26. package/commands/goop-plan.md +78 -0
  27. package/commands/goop-quick.md +165 -0
  28. package/commands/goop-recall.md +48 -0
  29. package/commands/goop-remember.md +71 -0
  30. package/commands/goop-research.md +98 -0
  31. package/commands/goop-resume.md +57 -0
  32. package/commands/goop-setup.md +208 -0
  33. package/commands/goop-specify.md +145 -0
  34. package/commands/goop-status.md +153 -0
  35. package/dist/index.js +31017 -0
  36. package/dist/memory/index.js +48752 -0
  37. package/package.json +73 -0
  38. package/references/agent-patterns.md +334 -0
  39. package/references/boundary-system.md +141 -0
  40. package/references/deviation-rules.md +80 -0
  41. package/references/dispatch-patterns.md +176 -0
  42. package/references/model-profiles.md +109 -0
  43. package/references/orchestrator-philosophy.md +280 -0
  44. package/references/security-checklist.md +163 -0
  45. package/references/subagent-protocol.md +393 -0
  46. package/references/tdd.md +231 -0
  47. package/references/ui-brand.md +261 -0
  48. package/references/workflow-accept.md +325 -0
  49. package/references/workflow-execute.md +315 -0
  50. package/references/workflow-plan.md +179 -0
  51. package/references/workflow-research.md +234 -0
  52. package/references/workflow-specify.md +278 -0
  53. package/skills/README.md +362 -0
  54. package/skills/accessibility/skill.md +41 -0
  55. package/skills/accessibility-testing/skill.md +47 -0
  56. package/skills/api-docs/skill.md +50 -0
  57. package/skills/architecture-design/skill.md +168 -0
  58. package/skills/atomic-commits/skill.md +53 -0
  59. package/skills/code-review/skill.md +59 -0
  60. package/skills/codebase-mapping/skill.md +54 -0
  61. package/skills/convention-detection/skill.md +68 -0
  62. package/skills/debugging/skill.md +59 -0
  63. package/skills/deviation-handling/skill.md +187 -0
  64. package/skills/documentation/skill.md +213 -0
  65. package/skills/goop-core/skill.md +383 -0
  66. package/skills/memory-usage/skill.md +208 -0
  67. package/skills/parallel-planning/skill.md +170 -0
  68. package/skills/pattern-extraction/skill.md +73 -0
  69. package/skills/performance-optimization/skill.md +188 -0
  70. package/skills/playwright/skill.md +69 -0
  71. package/skills/playwright-testing/skill.md +93 -0
  72. package/skills/progress-tracking/skill.md +155 -0
  73. package/skills/readme-generation/skill.md +87 -0
  74. package/skills/research/skill.md +161 -0
  75. package/skills/responsive-design/skill.md +76 -0
  76. package/skills/scientific-method/skill.md +67 -0
  77. package/skills/security-audit/skill.md +152 -0
  78. package/skills/task-decomposition/skill.md +153 -0
  79. package/skills/task-delegation/skill.md +127 -0
  80. package/skills/technical-writing/skill.md +69 -0
  81. package/skills/testing/skill.md +202 -0
  82. package/skills/ui-design/skill.md +73 -0
  83. package/skills/ux-patterns/skill.md +82 -0
  84. package/skills/verification/skill.md +178 -0
  85. package/skills/visual-regression/skill.md +86 -0
  86. package/templates/blueprint.md +141 -0
  87. package/templates/chronicle.md +156 -0
  88. package/templates/milestone.md +131 -0
  89. package/templates/research.md +117 -0
  90. package/templates/retrospective.md +188 -0
  91. package/templates/spec.md +103 -0
  92. 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