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,231 @@
1
+ # Test-Driven Development (TDD) Reference
2
+
3
+ GoopSpec supports TDD-style planning and execution. This reference covers how to use TDD effectively within the GoopSpec workflow.
4
+
5
+ ## TDD Cycle
6
+
7
+ ```
8
+ ┌─────────────────┐
9
+ │ RED │
10
+ │ Write a │
11
+ │ failing test │
12
+ └────────┬────────┘
13
+
14
+
15
+ ┌─────────────────┐
16
+ │ GREEN │
17
+ │ Minimum code │
18
+ │ to pass │
19
+ └────────┬────────┘
20
+
21
+
22
+ ┌─────────────────┐
23
+ │ REFACTOR │
24
+ │ Clean up │
25
+ │ Keep green │
26
+ └────────┬────────┘
27
+
28
+ └──────────► Repeat
29
+ ```
30
+
31
+ ## TDD in GoopSpec
32
+
33
+ ### Plan Configuration
34
+
35
+ Enable TDD mode in plan frontmatter:
36
+
37
+ ```yaml
38
+ ---
39
+ phase: 1
40
+ plan: auth-feature
41
+ type: tdd
42
+ wave: 1
43
+ autonomous: true
44
+ ---
45
+ ```
46
+
47
+ ### Task Structure
48
+
49
+ ```markdown
50
+ <task type="auto" tdd="true">
51
+ ### Task 1: User Login
52
+
53
+ **Test First:**
54
+ ```typescript
55
+ // src/auth/__tests__/login.test.ts
56
+ import { login } from '../login';
57
+
58
+ describe('login', () => {
59
+ it('should return user on valid credentials', async () => {
60
+ const result = await login('test@example.com', 'password123');
61
+ expect(result.user).toBeDefined();
62
+ expect(result.user.email).toBe('test@example.com');
63
+ });
64
+
65
+ it('should throw on invalid credentials', async () => {
66
+ await expect(login('test@example.com', 'wrong'))
67
+ .rejects.toThrow('Invalid credentials');
68
+ });
69
+ });
70
+ ```
71
+
72
+ **Implementation:**
73
+ ```typescript
74
+ // src/auth/login.ts
75
+ export async function login(email: string, password: string) {
76
+ const user = await db.users.findByEmail(email);
77
+ if (!user || !await verifyPassword(password, user.passwordHash)) {
78
+ throw new Error('Invalid credentials');
79
+ }
80
+ return { user };
81
+ }
82
+ ```
83
+
84
+ **Refactor:**
85
+ - Extract password verification to separate module
86
+ - Add input validation
87
+ - Add logging
88
+
89
+ **Done:**
90
+ - Tests pass: `npm test src/auth/__tests__/login.test.ts`
91
+ - Coverage > 80%
92
+ </task>
93
+ ```
94
+
95
+ ## TDD Execution Flow
96
+
97
+ ### Step 1: RED Phase
98
+
99
+ 1. Write the test file first
100
+ 2. Run tests to confirm they fail
101
+ 3. Commit the failing test
102
+
103
+ ```bash
104
+ # Write test
105
+ edit src/auth/__tests__/login.test.ts
106
+
107
+ # Verify it fails
108
+ npm test -- --testPathPattern=login
109
+
110
+ # Commit
111
+ git commit -m "test(auth): add login tests (red)"
112
+ ```
113
+
114
+ ### Step 2: GREEN Phase
115
+
116
+ 1. Write minimum code to pass
117
+ 2. Run tests to confirm they pass
118
+ 3. Commit the implementation
119
+
120
+ ```bash
121
+ # Write implementation
122
+ edit src/auth/login.ts
123
+
124
+ # Verify it passes
125
+ npm test -- --testPathPattern=login
126
+
127
+ # Commit
128
+ git commit -m "feat(auth): implement login (green)"
129
+ ```
130
+
131
+ ### Step 3: REFACTOR Phase
132
+
133
+ 1. Improve code quality
134
+ 2. Keep tests passing
135
+ 3. Commit refactoring
136
+
137
+ ```bash
138
+ # Refactor
139
+ edit src/auth/login.ts
140
+
141
+ # Verify still passes
142
+ npm test -- --testPathPattern=login
143
+
144
+ # Commit
145
+ git commit -m "refactor(auth): extract password verification"
146
+ ```
147
+
148
+ ## Context Budget for TDD
149
+
150
+ TDD requires more context due to test code. Allocate accordingly:
151
+
152
+ | Phase | Context Budget |
153
+ |-------|---------------|
154
+ | RED (tests) | 20% |
155
+ | GREEN (impl) | 40% |
156
+ | REFACTOR | 20% |
157
+ | Buffer | 20% |
158
+
159
+ **Total per TDD cycle:** ~40% context
160
+
161
+ **Recommendation:** 2-3 TDD tasks per plan maximum.
162
+
163
+ ## Test Categories
164
+
165
+ ### Unit Tests
166
+
167
+ Test individual functions/modules in isolation.
168
+
169
+ ```typescript
170
+ describe('validateEmail', () => {
171
+ it('should accept valid emails', () => {
172
+ expect(validateEmail('user@example.com')).toBe(true);
173
+ });
174
+ });
175
+ ```
176
+
177
+ ### Integration Tests
178
+
179
+ Test module interactions.
180
+
181
+ ```typescript
182
+ describe('auth flow', () => {
183
+ it('should login and create session', async () => {
184
+ const result = await login('user@example.com', 'pass');
185
+ const session = await getSession(result.sessionId);
186
+ expect(session.userId).toBe(result.user.id);
187
+ });
188
+ });
189
+ ```
190
+
191
+ ### E2E Tests
192
+
193
+ Test complete user flows (use sparingly, high cost).
194
+
195
+ ```typescript
196
+ describe('login page', () => {
197
+ it('should redirect to dashboard on success', async () => {
198
+ await page.goto('/login');
199
+ await page.fill('#email', 'user@example.com');
200
+ await page.fill('#password', 'password');
201
+ await page.click('button[type="submit"]');
202
+ await expect(page).toHaveURL('/dashboard');
203
+ });
204
+ });
205
+ ```
206
+
207
+ ## Best Practices
208
+
209
+ 1. **One assertion per test:** Clear failure messages
210
+ 2. **Descriptive names:** `should_do_X_when_Y`
211
+ 3. **Arrange-Act-Assert:** Clear test structure
212
+ 4. **No test interdependence:** Each test isolated
213
+ 5. **Fast tests:** Mock external dependencies
214
+ 6. **Coverage targets:** Aim for 80%+ on critical paths
215
+
216
+ ## When NOT to Use TDD
217
+
218
+ - Exploratory/prototyping work
219
+ - UI/visual components (use snapshot tests instead)
220
+ - Configuration/setup code
221
+ - Third-party integrations (use integration tests)
222
+ - Performance-critical inner loops (profile first)
223
+
224
+ ## TDD Tools
225
+
226
+ | Language | Framework | Runner |
227
+ |----------|-----------|--------|
228
+ | TypeScript/JS | Jest, Vitest | npm test |
229
+ | Python | pytest | pytest |
230
+ | Go | testing | go test |
231
+ | Rust | built-in | cargo test |
@@ -0,0 +1,261 @@
1
+ # GoopSpec UI Brand Guide
2
+
3
+ GoopSpec has a distinctive visual identity that differs from other AI development tools. Our aesthetic is **clean**, **organic**, and **professional**.
4
+
5
+ ## Brand Symbol
6
+
7
+ The **hexagon** `⬢` represents GoopSpec - evoking molecules, honeycombs, and interconnected systems. It appears at the start of all GoopSpec UI elements.
8
+
9
+ ## Message Formats
10
+
11
+ ### Standard Header (Gates, Major Sections)
12
+
13
+ ```
14
+ ╭─ ⬢ GoopSpec ───────────────────────────────────────╮
15
+ │ │
16
+ │ SECTION TITLE │
17
+ │ │
18
+ ╰────────────────────────────────────────────────────╯
19
+ ```
20
+
21
+ ### Compact Header (Status, Progress)
22
+
23
+ ```
24
+ ⬢ GoopSpec · Section Title
25
+ ──────────────────────────────────────────────────────
26
+ ```
27
+
28
+ ### Inline Indicator
29
+
30
+ ```
31
+ ⬢ message here
32
+ ```
33
+
34
+ ## Gate Messages
35
+
36
+ ### Contract Gate (Specify Phase)
37
+
38
+ ```
39
+ ╭─ ⬢ GoopSpec ───────────────────────────────────────╮
40
+ │ │
41
+ │ 🔒 CONTRACT GATE │
42
+ │ │
43
+ │ The specification is ready to lock. │
44
+ │ │
45
+ │ MUST HAVES: │
46
+ │ • Requirement 1 │
47
+ │ • Requirement 2 │
48
+ │ │
49
+ │ OUT OF SCOPE: │
50
+ │ • Excluded item │
51
+ │ │
52
+ │ ───────────────────────────────────────────── │
53
+ │ Type "confirm" to lock and proceed. │
54
+ │ │
55
+ ╰────────────────────────────────────────────────────╯
56
+ ```
57
+
58
+ ### Acceptance Gate (Accept Phase)
59
+
60
+ ```
61
+ ╭─ ⬢ GoopSpec ───────────────────────────────────────╮
62
+ │ │
63
+ │ ✓ ACCEPTANCE GATE │
64
+ │ │
65
+ │ Implementation complete. Verification: │
66
+ │ │
67
+ │ ☑ Requirement 1 - verified │
68
+ │ ☑ Requirement 2 - verified │
69
+ │ │
70
+ │ Tests: 24/24 passing │
71
+ │ Build: Successful │
72
+ │ │
73
+ │ ───────────────────────────────────────────── │
74
+ │ Type "accept" to confirm completion. │
75
+ │ │
76
+ ╰────────────────────────────────────────────────────╯
77
+ ```
78
+
79
+ ## Status Messages
80
+
81
+ ### Workflow Status
82
+
83
+ ```
84
+ ⬢ GoopSpec · Status
85
+ ──────────────────────────────────────────────────────
86
+
87
+ Project: my-project
88
+ Phase: ⬢ execute (wave 2/4)
89
+ Mode: standard
90
+
91
+ Progress: [████████░░░░] 67%
92
+
93
+ Tasks:
94
+ ☑ Task 1.1 - complete
95
+ ☑ Task 1.2 - complete
96
+ ◉ Task 2.1 - in progress
97
+ ○ Task 2.2 - pending
98
+
99
+ ──────────────────────────────────────────────────────
100
+ ```
101
+
102
+ ### Phase Transition
103
+
104
+ ```
105
+ ⬢ GoopSpec · Phase Complete
106
+ ──────────────────────────────────────────────────────
107
+
108
+ ✓ Research phase complete
109
+
110
+ Findings saved to RESEARCH.md
111
+ 3 recommendations identified
112
+ 2 risks documented
113
+
114
+ Ready for: /goop-specify
115
+
116
+ ──────────────────────────────────────────────────────
117
+ ```
118
+
119
+ ## Progress Indicators
120
+
121
+ ### Task Status Icons
122
+
123
+ | Icon | Meaning |
124
+ |------|---------|
125
+ | `○` | Pending |
126
+ | `◉` | In Progress |
127
+ | `☑` | Complete |
128
+ | `☒` | Failed |
129
+ | `◌` | Skipped |
130
+
131
+ ### Phase Icons
132
+
133
+ | Icon | Phase |
134
+ |------|-------|
135
+ | `📝` | Plan |
136
+ | `🔍` | Research |
137
+ | `📋` | Specify |
138
+ | `🔨` | Execute |
139
+ | `✓` | Accept |
140
+
141
+ ### Mode Icons
142
+
143
+ | Icon | Mode |
144
+ |------|------|
145
+ | `⚡` | Quick |
146
+ | `📦` | Standard |
147
+ | `🏗️` | Comprehensive |
148
+ | `🎯` | Milestone |
149
+
150
+ ## Completion Messages
151
+
152
+ ### Task Complete
153
+
154
+ ```
155
+ ⬢ Task 2.1 complete (commit: abc123)
156
+ ```
157
+
158
+ ### Wave Complete
159
+
160
+ ```
161
+ ⬢ GoopSpec · Wave Complete
162
+ ──────────────────────────────────────────────────────
163
+
164
+ Wave 2 of 4 complete
165
+
166
+ Tasks: 3/3 ☑
167
+ Commits: 3 atomic commits
168
+ Time: 4m 32s
169
+
170
+ Ready for Wave 3
171
+
172
+ ──────────────────────────────────────────────────────
173
+ ```
174
+
175
+ ### Milestone Complete
176
+
177
+ ```
178
+ ╭─ ⬢ GoopSpec ───────────────────────────────────────╮
179
+ │ │
180
+ │ 🎯 MILESTONE COMPLETE │
181
+ │ │
182
+ │ v1.0 Authentication System │
183
+ │ │
184
+ │ Delivered: │
185
+ │ • User login/logout │
186
+ │ • Session management │
187
+ │ • OAuth integration │
188
+ │ │
189
+ │ Archived: .goopspec/archive/v1.0-auth/ │
190
+ │ Learnings: 5 patterns extracted │
191
+ │ │
192
+ ╰────────────────────────────────────────────────────╯
193
+ ```
194
+
195
+ ## Error & Warning Messages
196
+
197
+ ### Warning
198
+
199
+ ```
200
+ ⬢ Warning: High comment density (35%)
201
+ Consider reducing comments in src/auth/login.ts
202
+ ```
203
+
204
+ ### Error
205
+
206
+ ```
207
+ ⬢ Error: Phase transition blocked
208
+ Cannot skip from 'plan' to 'execute'
209
+ Required: Complete 'research' phase first
210
+ ```
211
+
212
+ ### Deviation
213
+
214
+ ```
215
+ ⬢ Deviation (Rule 2): Added missing error handling
216
+ File: src/api/users.ts
217
+ Logged to ADL
218
+ ```
219
+
220
+ ## Character Reference
221
+
222
+ | Character | Use |
223
+ |-----------|-----|
224
+ | `⬢` | GoopSpec brand symbol |
225
+ | `╭╮╰╯` | Rounded box corners |
226
+ | `─` | Horizontal lines |
227
+ | `│` | Vertical lines |
228
+ | `·` | Separator dot |
229
+ | `○◉☑☒◌` | Task status |
230
+ | `►` | Action prompt |
231
+
232
+ ## Color Guidelines
233
+
234
+ When color is available:
235
+ - **Green** `#65f463` - GoopSpec brand, success
236
+ - **Blue** - Information, links
237
+ - **Yellow** - Warnings, attention
238
+ - **Red** - Errors, failures
239
+ - **Gray** - Secondary info, disabled
240
+
241
+ ## Anti-Patterns
242
+
243
+ ### Don't Use
244
+
245
+ ```
246
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
247
+ GOOPSPEC > SECTION
248
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
249
+ ```
250
+
251
+ This heavy style with `━` characters and `>` separator is used by other tools.
252
+
253
+ ### Do Use
254
+
255
+ ```
256
+ ╭─ ⬢ GoopSpec ───────────────────────────────────────╮
257
+ │ SECTION │
258
+ ╰────────────────────────────────────────────────────╯
259
+ ```
260
+
261
+ The rounded box with hexagon symbol is uniquely GoopSpec.