opencodekit 0.2.1 → 0.2.3
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/README.md +1 -0
- package/dist/index.js +4 -3
- package/dist/template/.opencode/.env.example +1 -1
- package/dist/template/.opencode/AGENTS.md +1 -0
- package/dist/template/.opencode/agent/build.md +1 -0
- package/dist/template/.opencode/agent/designer.md +148 -0
- package/dist/template/.opencode/agent/rush.md +1 -0
- package/dist/template/.opencode/command/create.md +37 -13
- package/dist/template/.opencode/command/design.md +1 -1
- package/dist/template/.opencode/command/fix-ui.md +4 -4
- package/dist/template/.opencode/command/issue.md +42 -13
- package/dist/template/.opencode/command/research-ui.md +1 -1
- package/dist/template/.opencode/command/ui-review.md +1 -1
- package/dist/template/.opencode/opencode.json +15 -9
- package/dist/template/.opencode/package.json +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -247,6 +247,7 @@ You've successfully set up OpenCodeKit when:
|
|
|
247
247
|
- **Custom Commands**: `.opencode/command/` - All 45+ workflow commands
|
|
248
248
|
- **Skills System**: `.opencode/skills/` - 24 skills (8 core, 7 stack, 9 specialized)
|
|
249
249
|
- **Memory System**: `.opencode/memory/` - Persistent cross-session knowledge
|
|
250
|
+
- **Templates**: `.opencode/memory/_templates/` - PRD and task templates for `/create` and `/issue` commands
|
|
250
251
|
|
|
251
252
|
---
|
|
252
253
|
|
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.2.
|
|
753
|
+
version: "0.2.3",
|
|
754
754
|
description: "CLI tool for bootstrapping and managing OpenCodeKit projects",
|
|
755
755
|
type: "module",
|
|
756
756
|
repository: {
|
|
@@ -2896,7 +2896,7 @@ var OPENCODE_THEMES = [
|
|
|
2896
2896
|
{ value: "one-dark", label: "One Dark", hint: "atom inspired" },
|
|
2897
2897
|
{ value: "orng", label: "Orng", hint: "orange accent" },
|
|
2898
2898
|
{ value: "palenight", label: "Palenight", hint: "purple dark" },
|
|
2899
|
-
{ value: "rosepine", label: "
|
|
2899
|
+
{ value: "rosepine", label: "Rose Pine", hint: "soft pink" },
|
|
2900
2900
|
{ value: "solarized", label: "Solarized", hint: "precision colors" },
|
|
2901
2901
|
{ value: "synthwave84", label: "Synthwave '84", hint: "retro neon" },
|
|
2902
2902
|
{ value: "tokyonight", label: "Tokyo Night", hint: "vibrant dark" },
|
|
@@ -2908,6 +2908,7 @@ async function editTheme(configPath) {
|
|
|
2908
2908
|
const config = loadConfig(configPath);
|
|
2909
2909
|
const currentTheme = config.theme || "system";
|
|
2910
2910
|
f2.info(`Current theme: ${import_picocolors7.default.cyan(currentTheme)}`);
|
|
2911
|
+
const validTheme = OPENCODE_THEMES.some((t) => t.value === currentTheme) ? currentTheme : "system";
|
|
2911
2912
|
const selectedTheme = await ie({
|
|
2912
2913
|
message: "Select theme",
|
|
2913
2914
|
options: OPENCODE_THEMES.map((t) => ({
|
|
@@ -2915,7 +2916,7 @@ async function editTheme(configPath) {
|
|
|
2915
2916
|
label: t.label,
|
|
2916
2917
|
hint: t.hint
|
|
2917
2918
|
})),
|
|
2918
|
-
initialValue:
|
|
2919
|
+
initialValue: validTheme
|
|
2919
2920
|
});
|
|
2920
2921
|
if (lD(selectedTheme)) {
|
|
2921
2922
|
ue("Cancelled");
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
# ============================================================================
|
|
6
6
|
|
|
7
7
|
# Configure bash command timeout (default: 120000ms = 2 minutes)
|
|
8
|
-
OPENCODE_EXPERIMENTAL_BASH_DEFAULT_TIMEOUT_MS=300000
|
|
8
|
+
export OPENCODE_EXPERIMENTAL_BASH_DEFAULT_TIMEOUT_MS=300000
|
|
9
9
|
export OPENCODE_DISABLE_AUTOCOMPACT=0 # Disable broken compaction
|
|
10
10
|
export OPENCODE_DISABLE_PRUNE=0 # Disable potentially buggy pruning
|
|
11
11
|
export OPENCODE_EXPERIMENTAL_TURN_SUMMARY=1
|
|
@@ -21,6 +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
25
|
|
|
25
26
|
**Execute directly**: Single-file edits, explicit commands, answering from loaded context.
|
|
26
27
|
|
|
@@ -0,0 +1,148 @@
|
|
|
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
|
|
@@ -56,40 +56,64 @@ bd create "[title]" -t [type] -p [priority] -d "[description]" --json
|
|
|
56
56
|
mkdir -p .beads/artifacts/<bead-id>
|
|
57
57
|
```
|
|
58
58
|
|
|
59
|
+
Use the PRD template from `.opencode/memory/_templates/task-prd.md` as the base structure.
|
|
60
|
+
|
|
59
61
|
Write `.beads/artifacts/<bead-id>/spec.md`:
|
|
60
62
|
|
|
61
63
|
```markdown
|
|
62
64
|
# [Title]
|
|
63
65
|
|
|
64
66
|
**Bead:** <bead-id>
|
|
65
|
-
**
|
|
67
|
+
**Created:** [date]
|
|
68
|
+
**Status:** To Do
|
|
69
|
+
|
|
70
|
+
## Goal
|
|
71
|
+
|
|
72
|
+
[1-2 sentences: What exactly are we building and why?]
|
|
73
|
+
|
|
74
|
+
## Scope
|
|
66
75
|
|
|
67
|
-
|
|
76
|
+
### In-Scope:
|
|
68
77
|
|
|
69
|
-
|
|
78
|
+
- [What we ARE doing]
|
|
70
79
|
|
|
71
|
-
|
|
80
|
+
### Out-of-Scope:
|
|
72
81
|
|
|
73
|
-
- [
|
|
74
|
-
|
|
82
|
+
- [What we are NOT doing]
|
|
83
|
+
|
|
84
|
+
## User Flow
|
|
85
|
+
|
|
86
|
+
1. [Step 1: What user sees/does]
|
|
87
|
+
2. [Step 2]
|
|
88
|
+
3. [Step 3]
|
|
75
89
|
|
|
76
90
|
## Success Criteria
|
|
77
91
|
|
|
78
|
-
- [ ] [
|
|
79
|
-
- [ ] [
|
|
92
|
+
- [ ] [Specific, measurable criterion 1]
|
|
93
|
+
- [ ] [Specific, measurable criterion 2]
|
|
94
|
+
- [ ] [Specific, measurable criterion 3]
|
|
95
|
+
|
|
96
|
+
## Dependencies
|
|
97
|
+
|
|
98
|
+
- [List any prerequisites or blocking tasks]
|
|
99
|
+
|
|
100
|
+
## Notes
|
|
101
|
+
|
|
102
|
+
[Additional context or constraints]
|
|
80
103
|
```
|
|
81
104
|
|
|
105
|
+
For **Quick** mode, simplify: Goal, Success Criteria, Notes only.
|
|
106
|
+
|
|
82
107
|
For **Deep** mode, add:
|
|
83
108
|
|
|
84
109
|
```markdown
|
|
85
|
-
## Scope
|
|
86
|
-
|
|
87
|
-
**In:** [What we ARE doing]
|
|
88
|
-
**Out:** [What we are NOT doing]
|
|
89
|
-
|
|
90
110
|
## Open Questions
|
|
91
111
|
|
|
92
112
|
- [Question for research phase]
|
|
113
|
+
|
|
114
|
+
## Technical Approach
|
|
115
|
+
|
|
116
|
+
[To be filled during /research phase]
|
|
93
117
|
```
|
|
94
118
|
|
|
95
119
|
## Phase 5: Report
|
|
@@ -8,10 +8,10 @@ agent: build
|
|
|
8
8
|
|
|
9
9
|
use_skill("frontend-aesthetics")
|
|
10
10
|
|
|
11
|
-
1. **Analyze:**
|
|
12
|
-
- If screenshots/videos provided,
|
|
13
|
-
- For large UI analysis,
|
|
14
|
-
2. **Research:**
|
|
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
|
|
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)
|
|
@@ -33,26 +33,55 @@ Save the bead ID for subsequent commands. Add the GitHub issue reference:
|
|
|
33
33
|
bd edit <bead-id> --note "GitHub issue: #$ARGUMENTS"
|
|
34
34
|
```
|
|
35
35
|
|
|
36
|
-
##
|
|
36
|
+
## Create Spec from PRD Template
|
|
37
|
+
|
|
38
|
+
Use `.opencode/memory/_templates/task-prd.md` as the base structure.
|
|
37
39
|
|
|
38
40
|
Save to `.beads/artifacts/<bead-id>/spec.md`:
|
|
39
41
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
42
|
+
```markdown
|
|
43
|
+
# [Issue Title]
|
|
44
|
+
|
|
45
|
+
**Bead:** <bead-id>
|
|
46
|
+
**Created:** [date]
|
|
47
|
+
**Status:** To Do
|
|
48
|
+
**GitHub Issue:** #$ARGUMENTS
|
|
49
|
+
|
|
50
|
+
## Goal
|
|
51
|
+
|
|
52
|
+
[What exactly are we fixing/building and why?]
|
|
53
|
+
|
|
54
|
+
## Scope
|
|
55
|
+
|
|
56
|
+
### In-Scope:
|
|
57
|
+
|
|
58
|
+
- [Files to change]
|
|
59
|
+
- [Specific functionality to fix/add]
|
|
43
60
|
|
|
44
|
-
|
|
61
|
+
### Out-of-Scope:
|
|
45
62
|
|
|
46
|
-
|
|
47
|
-
2. Implementation steps (ordered)
|
|
48
|
-
3. Testing approach
|
|
49
|
-
4. Documentation updates
|
|
63
|
+
- [What we are NOT touching]
|
|
50
64
|
|
|
51
|
-
##
|
|
65
|
+
## User Flow
|
|
52
66
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
67
|
+
1. [How user encounters the issue]
|
|
68
|
+
2. [Expected behavior after fix]
|
|
69
|
+
|
|
70
|
+
## Success Criteria
|
|
71
|
+
|
|
72
|
+
- [ ] [Specific fix verified]
|
|
73
|
+
- [ ] [Test cases pass]
|
|
74
|
+
- [ ] [No regression]
|
|
75
|
+
|
|
76
|
+
## Dependencies
|
|
77
|
+
|
|
78
|
+
- [List any prerequisites or blocking tasks]
|
|
79
|
+
|
|
80
|
+
## Notes
|
|
81
|
+
|
|
82
|
+
- **Risks/edge cases:** [What could go wrong]
|
|
83
|
+
- **Testing strategy:** [How to verify fix]
|
|
84
|
+
```
|
|
56
85
|
|
|
57
86
|
## Discovered Work
|
|
58
87
|
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://opencode.ai/config.json",
|
|
3
3
|
"agent": {
|
|
4
|
-
"general": {
|
|
5
|
-
"disable": true
|
|
6
|
-
},
|
|
7
|
-
"plan": {
|
|
8
|
-
"disable": true
|
|
9
|
-
},
|
|
10
4
|
"build": {
|
|
11
5
|
"description": "Primary development agent with full codebase access",
|
|
12
6
|
"model": "proxypal/gemini-claude-opus-4-5-thinking"
|
|
13
7
|
},
|
|
14
|
-
"
|
|
15
|
-
"description": "
|
|
16
|
-
"model": "
|
|
8
|
+
"designer": {
|
|
9
|
+
"description": "UI/UX design specialist for mockup analysis and aesthetic guidance",
|
|
10
|
+
"model": "proxypal/gemini-3-pro-preview"
|
|
17
11
|
},
|
|
18
12
|
"explore": {
|
|
19
13
|
"description": "Fast codebase search specialist"
|
|
20
14
|
},
|
|
15
|
+
"general": {
|
|
16
|
+
"disable": true
|
|
17
|
+
},
|
|
18
|
+
"plan": {
|
|
19
|
+
"disable": true
|
|
20
|
+
},
|
|
21
21
|
"planner": {
|
|
22
22
|
"description": "Strategic planning agent for architecture and design",
|
|
23
23
|
"model": "proxypal/gpt-5.2"
|
|
@@ -26,6 +26,10 @@
|
|
|
26
26
|
"description": "Code review, debugging, and security audit specialist",
|
|
27
27
|
"model": "proxypal/gemini-2.5-flash-lite"
|
|
28
28
|
},
|
|
29
|
+
"rush": {
|
|
30
|
+
"description": "Fast primary agent for small, well-defined tasks",
|
|
31
|
+
"model": "zai-coding-plan/glm-4.6"
|
|
32
|
+
},
|
|
29
33
|
"scout": {
|
|
30
34
|
"description": "External research specialist for library docs and patterns",
|
|
31
35
|
"model": "proxypal/gemini-claude-sonnet-4-5"
|
|
@@ -82,6 +86,7 @@
|
|
|
82
86
|
"headers": {
|
|
83
87
|
"CONTEXT7_API_KEY": "{env:CONTEXT7_API_KEY}"
|
|
84
88
|
},
|
|
89
|
+
"timeout": 10000,
|
|
85
90
|
"type": "remote",
|
|
86
91
|
"url": "https://mcp.context7.com/mcp"
|
|
87
92
|
},
|
|
@@ -424,3 +429,4 @@
|
|
|
424
429
|
]
|
|
425
430
|
}
|
|
426
431
|
}
|
|
432
|
+
|