opencodekit 0.3.1 → 0.3.2

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/dist/index.js CHANGED
@@ -750,7 +750,7 @@ var cac = (name = "") => new CAC(name);
750
750
  // package.json
751
751
  var package_default = {
752
752
  name: "opencodekit",
753
- version: "0.3.1",
753
+ version: "0.3.2",
754
754
  description: "CLI tool for bootstrapping and managing OpenCodeKit projects",
755
755
  type: "module",
756
756
  repository: {
@@ -21,7 +21,7 @@
21
21
  | External research | @scout | research, compare, docs for, API for, best practices |
22
22
  | Code review/debug | @review | review, audit, debug, why broken, root cause |
23
23
  | Architecture | @planner | design, architect, plan, structure, phases |
24
- | UI/UX design | @designer | mockup, UI review, accessibility, aesthetics, visual |
24
+ | UI/UX design | @vision | mockup, UI review, accessibility, aesthetics, visual |
25
25
 
26
26
  **Execute directly**: Single-file edits, explicit commands, answering from loaded context.
27
27
 
@@ -77,4 +77,4 @@ Before claiming completion:
77
77
  - Library docs/patterns → @scout
78
78
  - Code review/debugging → @review
79
79
  - Architecture planning → @planner
80
- - UI/UX analysis, mockups → @designer
80
+ - UI/UX analysis, mockups → @vision
@@ -77,7 +77,7 @@ Before mutations (edit, write, delete):
77
77
  | Library docs, patterns | @scout |
78
78
  | Code review, debugging | @review |
79
79
  | Architecture, 3+ phases | @planner |
80
- | UI/UX, mockups, visuals | @designer |
80
+ | UI/UX, mockups, visuals | @vision |
81
81
 
82
82
  ## Execute Directly
83
83
 
@@ -0,0 +1,125 @@
1
+ ---
2
+ description: Visual content specialist for multimodal analysis, mockups, PDFs, diagrams, and UI/UX guidance. Use this agent for image analysis, accessibility audits, and anti-AI-slop design recommendations.
3
+ mode: subagent
4
+ temperature: 0.3
5
+ tools:
6
+ bash: true
7
+ edit: false
8
+ write: false
9
+ patch: false
10
+ glob: true
11
+ grep: true
12
+ read: true
13
+ list: true
14
+ webfetch: true
15
+ websearch: true
16
+ task: true
17
+ todowrite: true
18
+ todoread: true
19
+ gkg*: true
20
+ context7*: true
21
+ codesearch: true
22
+ gh_grep*: true
23
+ memory-read: true
24
+ memory-update: true
25
+ ---
26
+
27
+ # Vision Agent
28
+
29
+ Visual content specialist for multimodal analysis: images, mockups, PDFs, diagrams, and UI/UX.
30
+
31
+ ## Strengths
32
+
33
+ - Image and screenshot analysis via Gemini CLI
34
+ - PDF and document extraction
35
+ - Diagram interpretation (architecture, flowcharts, ERDs)
36
+ - Design system audit and consistency review
37
+ - Accessibility assessment (WCAG compliance)
38
+ - Anti-AI-slop aesthetic recommendations
39
+
40
+ ## Guidelines
41
+
42
+ - Use `gemini` CLI with `-m gemini-2.5-flash` for all visual analysis
43
+ - Apply `frontend-aesthetics` skill to avoid generic AI aesthetics
44
+ - Apply `ui-ux-research` skill for systematic design analysis
45
+ - Read-only role: analyze and recommend, don't implement
46
+ - Delegate implementation to @build agent
47
+
48
+ ## Gemini CLI Usage
49
+
50
+ **Always use gemini-2.5-flash model:**
51
+
52
+ ### Image Analysis (Mockups, Screenshots)
53
+
54
+ ```bash
55
+ gemini -m gemini-2.5-flash
56
+ @mockup.png Analyze this UI design for:
57
+ 1. Typography choices and hierarchy
58
+ 2. Color palette and contrast
59
+ 3. Spacing and layout consistency
60
+ 4. Accessibility concerns
61
+ ```
62
+
63
+ ### PDF/Document Analysis
64
+
65
+ ```bash
66
+ gemini -m gemini-2.5-flash
67
+ @document.pdf Extract key information and summarize
68
+ ```
69
+
70
+ ### Diagram Interpretation
71
+
72
+ ```bash
73
+ gemini -m gemini-2.5-flash
74
+ @architecture.png Explain this system architecture diagram
75
+ ```
76
+
77
+ ### Codebase-Wide Design Audit
78
+
79
+ ```bash
80
+ gemini -m gemini-2.5-flash -p "@src/components/ Audit design system consistency"
81
+ ```
82
+
83
+ ## Design Principles
84
+
85
+ ### Avoid AI Slop
86
+
87
+ - Inter/Roboto as primary fonts
88
+ - Purple/blue gradients everywhere
89
+ - Flat white backgrounds with no texture
90
+ - Stock illustration style
91
+ - Cookie-cutter card layouts
92
+
93
+ ### Recommend Instead
94
+
95
+ - Distinctive typography (GT Walsheim, Söhne, custom fonts)
96
+ - Purposeful color with texture and depth
97
+ - Meaningful animations and transitions
98
+ - Layout variety and visual hierarchy
99
+
100
+ ## Accessibility Checklist
101
+
102
+ - [ ] Color contrast meets WCAG AA (4.5:1 for text)
103
+ - [ ] Focus indicators visible
104
+ - [ ] Touch targets >= 44px
105
+ - [ ] Motion respects prefers-reduced-motion
106
+ - [ ] Keyboard navigation works
107
+
108
+ ## Tool Priority
109
+
110
+ 1. **Gemini CLI** (`-m gemini-2.5-flash`) for image, PDF, and codebase analysis
111
+ 2. **Read/Glob** for component and style inspection
112
+ 3. **Webfetch/Websearch** for design inspiration
113
+
114
+ ## Output Format
115
+
116
+ 1. **Summary**: Overall assessment (1-2 sentences)
117
+ 2. **Findings**: Specific observations with details
118
+ 3. **Recommendations**: Actionable next steps
119
+ 4. **References**: Links to patterns if relevant
120
+
121
+ ## Delegation
122
+
123
+ - Implementation work → @build
124
+ - External library research → @scout
125
+ - Code review after changes → @review
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  description: UI/UX visual design and aesthetics
3
3
  argument-hint: "[topic or task-id]"
4
- agent: designer
4
+ agent: vision
5
5
  ---
6
6
 
7
7
  # Design: $ARGUMENTS
@@ -8,10 +8,10 @@ agent: build
8
8
 
9
9
  use_skill("frontend-aesthetics")
10
10
 
11
- 1. **Analyze:** Delegate to @designer for initial assessment
12
- - If screenshots/videos provided, @designer describes issue in detail
13
- - For large UI analysis, @designer uses Gemini CLI: `gemini` then `@[image] Analyze issue`
14
- 2. **Research:** @designer checks design guidelines, component patterns
11
+ 1. **Analyze:** Delegate to @vision for initial assessment
12
+ - If screenshots/videos provided, @vision describes issue in detail
13
+ - For large UI analysis, @vision uses Gemini CLI: `gemini -m gemini-2.5-flash` then `@[image] Analyze issue`
14
+ 2. **Research:** @vision checks design guidelines, component patterns
15
15
  - Apply `frontend-aesthetics` criteria (typography, color, motion, backgrounds)
16
16
  3. **Fix:** Implement step by step
17
17
  - Avoid generic AI aesthetics (Inter font, purple gradients, flat backgrounds)
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  description: Large-scale UI/UX research using Gemini CLI with bead artifact storage
3
3
  argument-hint: "[bead-id] [research topic or path]"
4
- agent: designer
4
+ agent: vision
5
5
  ---
6
6
 
7
7
  # Research UI: $ARGUMENTS
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  description: Review UI/UX design or mockup with optional bead tracking
3
3
  argument-hint: "[bead-id] [path to image or component]"
4
- agent: designer
4
+ agent: vision
5
5
  ---
6
6
 
7
7
  # UI Review: $ARGUMENTS
@@ -0,0 +1,59 @@
1
+ # Design Document
2
+
3
+ **Bead ID:** [bead-id]
4
+ **Created:** [date]
5
+ **Status:** Draft | Validated
6
+
7
+ ## Problem Statement
8
+
9
+ What we're solving and why it matters:
10
+
11
+ ## Approaches Considered
12
+
13
+ ### Option A: [Name]
14
+
15
+ - **Pros:** [advantages]
16
+ - **Cons:** [drawbacks]
17
+
18
+ ### Option B: [Name]
19
+
20
+ - **Pros:** [advantages]
21
+ - **Cons:** [drawbacks]
22
+
23
+ ### Chosen Approach
24
+
25
+ [Which option and why]
26
+
27
+ ## Architecture
28
+
29
+ High-level structure and how components fit together:
30
+
31
+ ### Components
32
+
33
+ - [Component 1]: [purpose]
34
+ - [Component 2]: [purpose]
35
+
36
+ ### Data Flow
37
+
38
+ [How data moves through the system]
39
+
40
+ ## Error Handling
41
+
42
+ How the design handles failure cases:
43
+
44
+ - [Error scenario 1]: [handling approach]
45
+ - [Error scenario 2]: [handling approach]
46
+
47
+ ## Testing Strategy
48
+
49
+ How we'll validate this design works:
50
+
51
+ - [Testing approach 1]
52
+ - [Testing approach 2]
53
+
54
+ ## Open Questions
55
+
56
+ Unresolved items to address during implementation:
57
+
58
+ - [ ] [Question 1]
59
+ - [ ] [Question 2]
@@ -1,445 +1,445 @@
1
1
  {
2
- "$schema": "https://opencode.ai/config.json",
3
- "agent": {
4
- "build": {
5
- "description": "Primary development agent with full codebase access",
6
- "model": "proxypal/gemini-claude-opus-4-5-thinking"
7
- },
8
- "designer": {
9
- "description": "UI/UX design specialist for mockup analysis and aesthetic guidance",
10
- "model": "proxypal/gmeini-3-pro-preview"
11
- },
12
- "explore": {
13
- "description": "Fast codebase search specialist",
14
- "model": "opencode/grok-code"
15
- },
16
- "general": {
17
- "disable": true
18
- },
19
- "plan": {
20
- "disable": true
21
- },
22
- "planner": {
23
- "description": "Strategic planning agent for architecture and design",
24
- "model": "proxypal/gpt-5.2"
25
- },
26
- "review": {
27
- "description": "Code review, debugging, and security audit specialist",
28
- "model": "proxypal/gpt-5.2"
29
- },
30
- "rush": {
31
- "description": "Fast primary agent for small, well-defined tasks",
32
- "model": "zai-coding-plan/glm-4.6"
33
- },
34
- "scout": {
35
- "description": "External research specialist for library docs and patterns",
36
- "model": "proxypal/gemini-claude-sonnet-4-5"
37
- }
38
- },
39
- "autoupdate": false,
40
- "experimental": {
41
- "batch_tool": true,
42
- "chatMaxRetries": 2,
43
- "primary_tools": ["edit", "write", "bash", "prune"]
44
- },
45
- "formatter": {
46
- "biome": {
47
- "command": ["npx", "@biomejs/biome", "check", "--write", "$FILE"],
48
- "extensions": [".js", ".jsx", ".ts", ".tsx", ".json", ".jsonc"]
49
- },
50
- "java-formatter": {
51
- "command": ["google-java-format", "--replace", "$FILE"],
52
- "environment": {
53
- "JAVA_HOME": "{env:JAVA_HOME}"
54
- },
55
- "extensions": [".java"]
56
- },
57
- "prettier": {
58
- "command": ["npx", "prettier", "--write", "$FILE"],
59
- "extensions": [".html", ".css", ".scss", ".sass", ".md", ".yaml", ".yml"]
60
- }
61
- },
62
- "keybinds": {
63
- "command_list": ";",
64
- "leader": "`",
65
- "session_child_cycle": "ctrl+alt+right",
66
- "session_child_cycle_reverse": "ctrl+alt+left"
67
- },
68
- "mcp": {
69
- "Framelink MCP for Figma": {
70
- "command": [
71
- "npx",
72
- "-y",
73
- "figma-developer-mcp",
74
- "--figma-api-key={env:FIGMA_API_KEY}",
75
- "--stdio"
76
- ],
77
- "enabled": false,
78
- "type": "local"
79
- },
80
- "context7": {
81
- "enabled": true,
82
- "type": "local",
83
- "command": [
84
- "npx",
85
- "-y",
86
- "@upstash/context7-mcp",
87
- "--api-key",
88
- "{env:CONTEXT7_API_KEY}"
89
- ]
90
- },
91
- "gh_grep": {
92
- "enabled": true,
93
- "type": "remote",
94
- "url": "https://mcp.grep.app"
95
- },
96
- "gkg": {
97
- "enabled": true,
98
- "type": "remote",
99
- "url": "http://localhost:27495/mcp"
100
- },
101
- "playwright": {
102
- "command": ["npx", "@playwright/mcp@latest"],
103
- "enabled": false,
104
- "type": "local"
105
- }
106
- },
107
- "model": "proxypal/gemini-claude-opus-4-5-thinking",
108
- "permission": {
109
- "bash": {
110
- "git commit *": "ask",
111
- "git push *": "ask",
112
- "rm *": "ask",
113
- "rm -rf *": "ask"
114
- },
115
- "doom_loop": "ask",
116
- "edit": "allow",
117
- "external_directory": "allow"
118
- },
119
- "plugin": [
120
- "opencode-gemini-auth",
121
- "@tarquinen/opencode-dcp@latest",
122
- "@howaboua/pickle-thinker@0.1.3",
123
- "@franlol/opencode-md-table-formatter@0.0.3"
124
- ],
125
- "provider": {
126
- "github-copilot": {
127
- "models": {
128
- "claude-haiku-4.5": {
129
- "attachment": true,
130
- "options": {
131
- "thinking": {
132
- "budgetTokens": 16000,
133
- "type": "enabled"
134
- }
135
- },
136
- "reasoning": true,
137
- "temperature": true,
138
- "tool_call": true
139
- },
140
- "claude-opus-4.5": {
141
- "attachment": true,
142
- "options": {
143
- "thinking": {
144
- "budgetTokens": 32000,
145
- "type": "enabled"
146
- }
147
- },
148
- "reasoning": true,
149
- "temperature": true,
150
- "tool_call": true
151
- },
152
- "claude-sonnet-4.5": {
153
- "attachment": true,
154
- "options": {
155
- "thinking": {
156
- "budgetTokens": 16000,
157
- "type": "enabled"
158
- }
159
- },
160
- "reasoning": true,
161
- "temperature": true,
162
- "tool_call": true
163
- },
164
- "gpt-5.1": {
165
- "attachment": true,
166
- "options": {
167
- "reasoning": {
168
- "effort": "high"
169
- }
170
- },
171
- "reasoning": true,
172
- "temperature": true,
173
- "tool_call": true
174
- },
175
- "gpt-5.1-codex": {
176
- "attachment": true,
177
- "options": {
178
- "reasoning": {
179
- "effort": "high"
180
- }
181
- },
182
- "reasoning": true,
183
- "temperature": true,
184
- "tool_call": true
185
- }
186
- },
187
- "npm": "@ai-sdk/anthropic"
188
- },
189
- "proxypal": {
190
- "models": {
191
- "claude-opus-4-5-20251101": {
192
- "limit": {
193
- "context": 200000,
194
- "output": 64000
195
- },
196
- "name": "Claude Opus 4 5 20251101"
197
- },
198
- "gemini-2.5-computer-use-preview-10-2025": {
199
- "limit": {
200
- "context": 1048576,
201
- "output": 65536
202
- },
203
- "name": "Gemini 2 5 Computer Use Preview 10 2025"
204
- },
205
- "gemini-2.5-flash": {
206
- "limit": {
207
- "context": 1048576,
208
- "output": 65536
209
- },
210
- "name": "Gemini 2 5 Flash"
211
- },
212
- "gemini-2.5-flash-lite": {
213
- "limit": {
214
- "context": 1048576,
215
- "output": 65536
216
- },
217
- "name": "Gemini 2 5 Flash Lite"
218
- },
219
- "gemini-3-pro-image-preview": {
220
- "limit": {
221
- "context": 1048576,
222
- "output": 65536
223
- },
224
- "name": "Gemini 3 Pro Image Preview"
225
- },
226
- "gemini-3-pro-preview": {
227
- "limit": {
228
- "context": 1048576,
229
- "output": 65536
230
- },
231
- "name": "Gemini 3 Pro Preview"
232
- },
233
- "gemini-claude-opus-4-5-thinking": {
234
- "limit": {
235
- "context": 200000,
236
- "output": 64000
237
- },
238
- "name": "Gemini Claude Opus 4 5 Thinking",
239
- "options": {
240
- "thinking": {
241
- "budgetTokens": 32768,
242
- "type": "enabled"
243
- }
244
- },
245
- "reasoning": true
246
- },
247
- "gemini-claude-sonnet-4-5": {
248
- "limit": {
249
- "context": 200000,
250
- "output": 64000
251
- },
252
- "name": "Gemini Claude Sonnet 4 5"
253
- },
254
- "gemini-claude-sonnet-4-5-thinking": {
255
- "limit": {
256
- "context": 200000,
257
- "output": 64000
258
- },
259
- "name": "Gemini Claude Sonnet 4 5 Thinking",
260
- "options": {
261
- "thinking": {
262
- "budgetTokens": 32768,
263
- "type": "enabled"
264
- }
265
- },
266
- "reasoning": true
267
- },
268
- "gpt-5": {
269
- "limit": {
270
- "context": 128000,
271
- "output": 16384
272
- },
273
- "name": "Gpt 5",
274
- "options": {
275
- "reasoning": {
276
- "effort": "medium"
277
- }
278
- },
279
- "reasoning": true
280
- },
281
- "gpt-5-codex": {
282
- "limit": {
283
- "context": 128000,
284
- "output": 16384
285
- },
286
- "name": "Gpt 5 Codex",
287
- "options": {
288
- "reasoning": {
289
- "effort": "medium"
290
- }
291
- },
292
- "reasoning": true
293
- },
294
- "gpt-5-codex-mini": {
295
- "limit": {
296
- "context": 128000,
297
- "output": 16384
298
- },
299
- "name": "Gpt 5 Codex Mini",
300
- "options": {
301
- "reasoning": {
302
- "effort": "medium"
303
- }
304
- },
305
- "reasoning": true
306
- },
307
- "gpt-5.1": {
308
- "limit": {
309
- "context": 128000,
310
- "output": 16384
311
- },
312
- "name": "Gpt 5 1",
313
- "options": {
314
- "reasoning": {
315
- "effort": "medium"
316
- }
317
- },
318
- "reasoning": true
319
- },
320
- "gpt-5.1-codex": {
321
- "limit": {
322
- "context": 128000,
323
- "output": 16384
324
- },
325
- "name": "Gpt 5 1 Codex",
326
- "options": {
327
- "reasoning": {
328
- "effort": "medium"
329
- }
330
- },
331
- "reasoning": true
332
- },
333
- "gpt-5.1-codex-max": {
334
- "limit": {
335
- "context": 128000,
336
- "output": 16384
337
- },
338
- "name": "Gpt 5 1 Codex Max",
339
- "options": {
340
- "reasoning": {
341
- "effort": "medium"
342
- }
343
- },
344
- "reasoning": true
345
- },
346
- "gpt-5.1-codex-mini": {
347
- "limit": {
348
- "context": 128000,
349
- "output": 16384
350
- },
351
- "name": "Gpt 5 1 Codex Mini",
352
- "options": {
353
- "reasoning": {
354
- "effort": "medium"
355
- }
356
- },
357
- "reasoning": true
358
- },
359
- "gpt-5.2": {
360
- "limit": {
361
- "context": 128000,
362
- "output": 16384
363
- },
364
- "name": "Gpt 5 2",
365
- "options": {
366
- "reasoning": {
367
- "effort": "medium"
368
- }
369
- },
370
- "reasoning": true
371
- },
372
- "gpt-oss-120b-medium": {
373
- "limit": {
374
- "context": 128000,
375
- "output": 16384
376
- },
377
- "name": "Gpt Oss 120b Medium"
378
- }
379
- },
380
- "name": "ProxyPal",
381
- "npm": "@ai-sdk/anthropic",
382
- "options": {
383
- "apiKey": "proxypal-local",
384
- "baseURL": "http://127.0.0.1:8317/v1"
385
- }
386
- },
387
- "opencode": {
388
- "models": {
389
- "big-pickle": {
390
- "reasoning": true,
391
- "options": {
392
- "temperature": 1,
393
- "top_k": 40,
394
- "top_p": 0.95,
395
- "reasoningEffort": "high"
396
- }
397
- }
398
- }
399
- },
400
- "zai-coding-plan": {
401
- "models": {
402
- "glm-4.6": {
403
- "attachment": true,
404
- "options": {
405
- "reasoningEffort": "high",
406
- "temperature": 1,
407
- "top_k": 40,
408
- "top_p": 0.95,
409
- "thinking": {
410
- "type": "enabled"
411
- }
412
- },
413
- "reasoning": true,
414
- "temperature": true,
415
- "tool_call": true
416
- }
417
- }
418
- }
419
- },
420
- "share": "manual",
421
- "small_model": "opencode/gpt-5-nano",
422
- "theme": "system",
423
- "tools": {
424
- "context7*": true,
425
- "gh_grep*": true,
426
- "gkg*": true
427
- },
428
- "tui": {
429
- "diff_style": "auto",
430
- "scroll_acceleration": {
431
- "enabled": true
432
- },
433
- "scroll_speed": 3
434
- },
435
- "watcher": {
436
- "ignore": [
437
- "node_modules/**",
438
- ".git/**",
439
- "dist/**",
440
- "build/**",
441
- "*.log",
442
- ".DS_Store"
443
- ]
444
- }
2
+ "$schema": "https://opencode.ai/config.json",
3
+ "agent": {
4
+ "build": {
5
+ "description": "Primary development agent with full codebase access",
6
+ "model": "proxypal/gemini-claude-opus-4-5-thinking"
7
+ },
8
+ "vision": {
9
+ "description": "Visual content specialist for multimodal analysis and UI/UX guidance",
10
+ "model": "proxypal/gemini-2.5-flash"
11
+ },
12
+ "explore": {
13
+ "description": "Fast codebase search specialist",
14
+ "model": "opencode/grok-code"
15
+ },
16
+ "general": {
17
+ "disable": true
18
+ },
19
+ "plan": {
20
+ "disable": true
21
+ },
22
+ "planner": {
23
+ "description": "Strategic planning agent for architecture and design",
24
+ "model": "proxypal/gpt-5.2"
25
+ },
26
+ "review": {
27
+ "description": "Code review, debugging, and security audit specialist",
28
+ "model": "proxypal/gpt-5.2"
29
+ },
30
+ "rush": {
31
+ "description": "Fast primary agent for small, well-defined tasks",
32
+ "model": "zai-coding-plan/glm-4.6"
33
+ },
34
+ "scout": {
35
+ "description": "External research specialist for library docs and patterns",
36
+ "model": "proxypal/gemini-claude-sonnet-4-5"
37
+ }
38
+ },
39
+ "autoupdate": false,
40
+ "experimental": {
41
+ "batch_tool": true,
42
+ "chatMaxRetries": 2,
43
+ "primary_tools": ["edit", "write", "bash", "prune"]
44
+ },
45
+ "formatter": {
46
+ "biome": {
47
+ "command": ["npx", "@biomejs/biome", "check", "--write", "$FILE"],
48
+ "extensions": [".js", ".jsx", ".ts", ".tsx", ".json", ".jsonc"]
49
+ },
50
+ "java-formatter": {
51
+ "command": ["google-java-format", "--replace", "$FILE"],
52
+ "environment": {
53
+ "JAVA_HOME": "{env:JAVA_HOME}"
54
+ },
55
+ "extensions": [".java"]
56
+ },
57
+ "prettier": {
58
+ "command": ["npx", "prettier", "--write", "$FILE"],
59
+ "extensions": [".html", ".css", ".scss", ".sass", ".md", ".yaml", ".yml"]
60
+ }
61
+ },
62
+ "keybinds": {
63
+ "command_list": ";",
64
+ "leader": "`",
65
+ "session_child_cycle": "ctrl+alt+right",
66
+ "session_child_cycle_reverse": "ctrl+alt+left"
67
+ },
68
+ "mcp": {
69
+ "Framelink MCP for Figma": {
70
+ "command": [
71
+ "npx",
72
+ "-y",
73
+ "figma-developer-mcp",
74
+ "--figma-api-key={env:FIGMA_API_KEY}",
75
+ "--stdio"
76
+ ],
77
+ "enabled": false,
78
+ "type": "local"
79
+ },
80
+ "context7": {
81
+ "enabled": true,
82
+ "type": "local",
83
+ "command": [
84
+ "npx",
85
+ "-y",
86
+ "@upstash/context7-mcp",
87
+ "--api-key",
88
+ "{env:CONTEXT7_API_KEY}"
89
+ ]
90
+ },
91
+ "gh_grep": {
92
+ "enabled": true,
93
+ "type": "remote",
94
+ "url": "https://mcp.grep.app"
95
+ },
96
+ "gkg": {
97
+ "enabled": true,
98
+ "type": "remote",
99
+ "url": "http://localhost:27495/mcp"
100
+ },
101
+ "playwright": {
102
+ "command": ["npx", "@playwright/mcp@latest"],
103
+ "enabled": false,
104
+ "type": "local"
105
+ }
106
+ },
107
+ "model": "proxypal/gemini-claude-opus-4-5-thinking",
108
+ "permission": {
109
+ "bash": {
110
+ "git commit *": "ask",
111
+ "git push *": "ask",
112
+ "rm *": "ask",
113
+ "rm -rf *": "ask"
114
+ },
115
+ "doom_loop": "ask",
116
+ "edit": "allow",
117
+ "external_directory": "allow"
118
+ },
119
+ "plugin": [
120
+ "opencode-gemini-auth",
121
+ "@tarquinen/opencode-dcp@latest",
122
+ "@howaboua/pickle-thinker@0.1.3",
123
+ "@franlol/opencode-md-table-formatter@0.0.3"
124
+ ],
125
+ "provider": {
126
+ "github-copilot": {
127
+ "models": {
128
+ "claude-haiku-4.5": {
129
+ "attachment": true,
130
+ "options": {
131
+ "thinking": {
132
+ "budgetTokens": 16000,
133
+ "type": "enabled"
134
+ }
135
+ },
136
+ "reasoning": true,
137
+ "temperature": true,
138
+ "tool_call": true
139
+ },
140
+ "claude-opus-4.5": {
141
+ "attachment": true,
142
+ "options": {
143
+ "thinking": {
144
+ "budgetTokens": 32000,
145
+ "type": "enabled"
146
+ }
147
+ },
148
+ "reasoning": true,
149
+ "temperature": true,
150
+ "tool_call": true
151
+ },
152
+ "claude-sonnet-4.5": {
153
+ "attachment": true,
154
+ "options": {
155
+ "thinking": {
156
+ "budgetTokens": 16000,
157
+ "type": "enabled"
158
+ }
159
+ },
160
+ "reasoning": true,
161
+ "temperature": true,
162
+ "tool_call": true
163
+ },
164
+ "gpt-5.1": {
165
+ "attachment": true,
166
+ "options": {
167
+ "reasoning": {
168
+ "effort": "high"
169
+ }
170
+ },
171
+ "reasoning": true,
172
+ "temperature": true,
173
+ "tool_call": true
174
+ },
175
+ "gpt-5.1-codex": {
176
+ "attachment": true,
177
+ "options": {
178
+ "reasoning": {
179
+ "effort": "high"
180
+ }
181
+ },
182
+ "reasoning": true,
183
+ "temperature": true,
184
+ "tool_call": true
185
+ }
186
+ },
187
+ "npm": "@ai-sdk/anthropic"
188
+ },
189
+ "proxypal": {
190
+ "models": {
191
+ "claude-opus-4-5-20251101": {
192
+ "limit": {
193
+ "context": 200000,
194
+ "output": 64000
195
+ },
196
+ "name": "Claude Opus 4 5 20251101"
197
+ },
198
+ "gemini-2.5-computer-use-preview-10-2025": {
199
+ "limit": {
200
+ "context": 1048576,
201
+ "output": 65536
202
+ },
203
+ "name": "Gemini 2 5 Computer Use Preview 10 2025"
204
+ },
205
+ "gemini-2.5-flash": {
206
+ "limit": {
207
+ "context": 1048576,
208
+ "output": 65536
209
+ },
210
+ "name": "Gemini 2 5 Flash"
211
+ },
212
+ "gemini-2.5-flash-lite": {
213
+ "limit": {
214
+ "context": 1048576,
215
+ "output": 65536
216
+ },
217
+ "name": "Gemini 2 5 Flash Lite"
218
+ },
219
+ "gemini-3-pro-image-preview": {
220
+ "limit": {
221
+ "context": 1048576,
222
+ "output": 65536
223
+ },
224
+ "name": "Gemini 3 Pro Image Preview"
225
+ },
226
+ "gemini-3-pro-preview": {
227
+ "limit": {
228
+ "context": 1048576,
229
+ "output": 65536
230
+ },
231
+ "name": "Gemini 3 Pro Preview"
232
+ },
233
+ "gemini-claude-opus-4-5-thinking": {
234
+ "limit": {
235
+ "context": 200000,
236
+ "output": 64000
237
+ },
238
+ "name": "Gemini Claude Opus 4 5 Thinking",
239
+ "options": {
240
+ "thinking": {
241
+ "budgetTokens": 32768,
242
+ "type": "enabled"
243
+ }
244
+ },
245
+ "reasoning": true
246
+ },
247
+ "gemini-claude-sonnet-4-5": {
248
+ "limit": {
249
+ "context": 200000,
250
+ "output": 64000
251
+ },
252
+ "name": "Gemini Claude Sonnet 4 5"
253
+ },
254
+ "gemini-claude-sonnet-4-5-thinking": {
255
+ "limit": {
256
+ "context": 200000,
257
+ "output": 64000
258
+ },
259
+ "name": "Gemini Claude Sonnet 4 5 Thinking",
260
+ "options": {
261
+ "thinking": {
262
+ "budgetTokens": 32768,
263
+ "type": "enabled"
264
+ }
265
+ },
266
+ "reasoning": true
267
+ },
268
+ "gpt-5": {
269
+ "limit": {
270
+ "context": 128000,
271
+ "output": 16384
272
+ },
273
+ "name": "Gpt 5",
274
+ "options": {
275
+ "reasoning": {
276
+ "effort": "medium"
277
+ }
278
+ },
279
+ "reasoning": true
280
+ },
281
+ "gpt-5-codex": {
282
+ "limit": {
283
+ "context": 128000,
284
+ "output": 16384
285
+ },
286
+ "name": "Gpt 5 Codex",
287
+ "options": {
288
+ "reasoning": {
289
+ "effort": "medium"
290
+ }
291
+ },
292
+ "reasoning": true
293
+ },
294
+ "gpt-5-codex-mini": {
295
+ "limit": {
296
+ "context": 128000,
297
+ "output": 16384
298
+ },
299
+ "name": "Gpt 5 Codex Mini",
300
+ "options": {
301
+ "reasoning": {
302
+ "effort": "medium"
303
+ }
304
+ },
305
+ "reasoning": true
306
+ },
307
+ "gpt-5.1": {
308
+ "limit": {
309
+ "context": 128000,
310
+ "output": 16384
311
+ },
312
+ "name": "Gpt 5 1",
313
+ "options": {
314
+ "reasoning": {
315
+ "effort": "medium"
316
+ }
317
+ },
318
+ "reasoning": true
319
+ },
320
+ "gpt-5.1-codex": {
321
+ "limit": {
322
+ "context": 128000,
323
+ "output": 16384
324
+ },
325
+ "name": "Gpt 5 1 Codex",
326
+ "options": {
327
+ "reasoning": {
328
+ "effort": "medium"
329
+ }
330
+ },
331
+ "reasoning": true
332
+ },
333
+ "gpt-5.1-codex-max": {
334
+ "limit": {
335
+ "context": 128000,
336
+ "output": 16384
337
+ },
338
+ "name": "Gpt 5 1 Codex Max",
339
+ "options": {
340
+ "reasoning": {
341
+ "effort": "medium"
342
+ }
343
+ },
344
+ "reasoning": true
345
+ },
346
+ "gpt-5.1-codex-mini": {
347
+ "limit": {
348
+ "context": 128000,
349
+ "output": 16384
350
+ },
351
+ "name": "Gpt 5 1 Codex Mini",
352
+ "options": {
353
+ "reasoning": {
354
+ "effort": "medium"
355
+ }
356
+ },
357
+ "reasoning": true
358
+ },
359
+ "gpt-5.2": {
360
+ "limit": {
361
+ "context": 128000,
362
+ "output": 16384
363
+ },
364
+ "name": "Gpt 5 2",
365
+ "options": {
366
+ "reasoning": {
367
+ "effort": "medium"
368
+ }
369
+ },
370
+ "reasoning": true
371
+ },
372
+ "gpt-oss-120b-medium": {
373
+ "limit": {
374
+ "context": 128000,
375
+ "output": 16384
376
+ },
377
+ "name": "Gpt Oss 120b Medium"
378
+ }
379
+ },
380
+ "name": "ProxyPal",
381
+ "npm": "@ai-sdk/anthropic",
382
+ "options": {
383
+ "apiKey": "proxypal-local",
384
+ "baseURL": "http://127.0.0.1:8317/v1"
385
+ }
386
+ },
387
+ "opencode": {
388
+ "models": {
389
+ "big-pickle": {
390
+ "reasoning": true,
391
+ "options": {
392
+ "temperature": 1,
393
+ "top_k": 40,
394
+ "top_p": 0.95,
395
+ "reasoningEffort": "high"
396
+ }
397
+ }
398
+ }
399
+ },
400
+ "zai-coding-plan": {
401
+ "models": {
402
+ "glm-4.6": {
403
+ "attachment": true,
404
+ "options": {
405
+ "reasoningEffort": "high",
406
+ "temperature": 1,
407
+ "top_k": 40,
408
+ "top_p": 0.95,
409
+ "thinking": {
410
+ "type": "enabled"
411
+ }
412
+ },
413
+ "reasoning": true,
414
+ "temperature": true,
415
+ "tool_call": true
416
+ }
417
+ }
418
+ }
419
+ },
420
+ "share": "manual",
421
+ "small_model": "opencode/gpt-5-nano",
422
+ "theme": "system",
423
+ "tools": {
424
+ "context7*": true,
425
+ "gh_grep*": true,
426
+ "gkg*": true
427
+ },
428
+ "tui": {
429
+ "diff_style": "auto",
430
+ "scroll_acceleration": {
431
+ "enabled": true
432
+ },
433
+ "scroll_speed": 3
434
+ },
435
+ "watcher": {
436
+ "ignore": [
437
+ "node_modules/**",
438
+ ".git/**",
439
+ "dist/**",
440
+ "build/**",
441
+ "*.log",
442
+ ".DS_Store"
443
+ ]
444
+ }
445
445
  }
@@ -39,7 +39,7 @@ Start by understanding the current project context, then ask questions one at a
39
39
 
40
40
  **Documentation:**
41
41
 
42
- - Write the validated design to `.beads/artifacts/<bead-id>/design.md` using template from `.opencode/memory/_templates/task-design.md`
42
+ - Write the validated design to `.beads/artifacts/<bead-id>/design.md` using template from `.opencode/memory/_templates/design.md`
43
43
  - Use elements-of-style:writing-clearly-and-concisely skill if available
44
44
  - Commit the design document to git
45
45
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencodekit",
3
- "version": "0.3.1",
3
+ "version": "0.3.2",
4
4
  "description": "CLI tool for bootstrapping and managing OpenCodeKit projects",
5
5
  "type": "module",
6
6
  "repository": {
@@ -1,148 +0,0 @@
1
- ---
2
- description: UI/UX design specialist for mockup analysis, design system research, and aesthetic guidance. Use this agent for visual analysis, accessibility audits, and anti-AI-slop design recommendations.
3
- mode: subagent
4
- temperature: 0.3
5
- tools:
6
- bash: true
7
- edit: false
8
- write: false
9
- patch: false
10
- glob: true
11
- grep: true
12
- read: true
13
- list: true
14
- webfetch: true
15
- websearch: true
16
- task: true
17
- todowrite: true
18
- todoread: true
19
- gkg*: true
20
- context7*: true
21
- codesearch: true
22
- gh_grep*: true
23
- memory-read: true
24
- memory-update: true
25
- ---
26
-
27
- # Designer Agent
28
-
29
- UI/UX design specialist for mockup analysis, design system research, and aesthetic guidance.
30
-
31
- ## Strengths
32
-
33
- - Mockup and screenshot analysis via Gemini CLI
34
- - Design system audit and consistency review
35
- - Accessibility assessment (WCAG compliance)
36
- - Typography, color, and motion guidance
37
- - Anti-AI-slop aesthetic recommendations
38
-
39
- ## Guidelines
40
-
41
- - Use `gemini-cli` with `gemini-3-pro-image-preview` model for image analysis
42
- - Apply `frontend-aesthetics` skill to avoid generic AI aesthetics
43
- - Apply `ui-ux-research` skill for systematic design analysis
44
- - Read-only role: analyze and recommend, don't implement
45
- - Delegate implementation to @build agent
46
- - Keep responses focused on actionable design guidance
47
-
48
- ## Gemini CLI Usage
49
-
50
- ### Image Analysis (Mockups, Screenshots)
51
-
52
- Start interactive mode for image analysis:
53
-
54
- ```bash
55
- gemini
56
- ```
57
-
58
- Then reference the image:
59
-
60
- ```
61
- @mockup.png Analyze this UI design for:
62
- 1. Typography choices and hierarchy
63
- 2. Color palette and contrast
64
- 3. Spacing and layout consistency
65
- 4. Accessibility concerns
66
- 5. Areas that feel "AI-generated" or generic
67
- ```
68
-
69
- ### Codebase-Wide Design Audit
70
-
71
- For scanning component directories:
72
-
73
- ```bash
74
- gemini -p "@src/components/ Audit the design system for consistency in typography, colors, spacing, and component patterns"
75
- ```
76
-
77
- ### Model Selection
78
-
79
- - Default: `gemini-3-pro-image-preview` (best for visual analysis)
80
- - Alternative: `gemini -m gemini-2.5-flash` for faster, simpler queries
81
-
82
- ## Design Principles
83
-
84
- ### Avoid AI Slop
85
-
86
- Watch for these generic patterns:
87
-
88
- - Inter/Roboto as primary fonts
89
- - Purple/blue gradients everywhere
90
- - Flat white backgrounds with no texture
91
- - Stock illustration style
92
- - No micro-interactions or motion
93
- - Cookie-cutter card layouts
94
-
95
- ### Recommend Instead
96
-
97
- - Distinctive typography (GT Walsheim, Söhne, custom fonts)
98
- - Purposeful color with texture and depth
99
- - Atmospheric backgrounds with subtle gradients
100
- - Meaningful animations and transitions
101
- - Layout variety and visual hierarchy
102
- - Brand-appropriate iconography
103
-
104
- ## Accessibility Checklist
105
-
106
- - [ ] Color contrast meets WCAG AA (4.5:1 for text)
107
- - [ ] Focus indicators visible
108
- - [ ] Touch targets >= 44px
109
- - [ ] Motion respects prefers-reduced-motion
110
- - [ ] ARIA labels on interactive elements
111
- - [ ] Keyboard navigation works
112
-
113
- ## Tool Priority
114
-
115
- 1. **Gemini CLI** for image and large codebase analysis
116
- 2. **Read/Glob** for component and style inspection
117
- 3. **Webfetch/Websearch** for design inspiration and patterns
118
-
119
- ## Output Format
120
-
121
- Provide design feedback as:
122
-
123
- 1. **Summary**: Overall assessment (1-2 sentences)
124
- 2. **Issues**: Specific problems found with severity
125
- 3. **Recommendations**: Actionable fixes with code examples where helpful
126
- 4. **References**: Links to design patterns or inspiration if relevant
127
-
128
- ## Delegation
129
-
130
- - Implementation work → @build
131
- - External library research → @scout
132
- - Code review after changes → @review
133
-
134
- ## DO
135
-
136
- - Analyze images thoroughly before providing feedback
137
- - Reference specific elements (colors, fonts, spacing values)
138
- - Provide before/after comparisons when suggesting changes
139
- - Consider responsive design implications
140
- - Check accessibility for all recommendations
141
-
142
- ## DON'T
143
-
144
- - Write or edit code directly (delegate to @build)
145
- - Make generic suggestions without specifics
146
- - Ignore accessibility in pursuit of aesthetics
147
- - Recommend trends without considering brand fit
148
- - Skip mobile/responsive considerations