opencodekit 0.14.0 → 0.14.1

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 (41) hide show
  1. package/dist/index.js +53 -18
  2. package/dist/template/.opencode/AGENTS.md +38 -3
  3. package/dist/template/.opencode/agent/build.md +44 -1
  4. package/dist/template/.opencode/agent/explore.md +1 -0
  5. package/dist/template/.opencode/agent/planner.md +40 -1
  6. package/dist/template/.opencode/agent/review.md +1 -0
  7. package/dist/template/.opencode/agent/rush.md +35 -0
  8. package/dist/template/.opencode/agent/scout.md +1 -0
  9. package/dist/template/.opencode/command/brainstorm.md +58 -3
  10. package/dist/template/.opencode/command/finish.md +18 -8
  11. package/dist/template/.opencode/command/fix.md +24 -15
  12. package/dist/template/.opencode/command/implement.md +44 -19
  13. package/dist/template/.opencode/command/import-plan.md +30 -8
  14. package/dist/template/.opencode/command/new-feature.md +37 -4
  15. package/dist/template/.opencode/command/plan.md +19 -1
  16. package/dist/template/.opencode/command/pr.md +25 -15
  17. package/dist/template/.opencode/command/revert-feature.md +15 -3
  18. package/dist/template/.opencode/command/skill-optimize.md +71 -7
  19. package/dist/template/.opencode/command/start.md +50 -5
  20. package/dist/template/.opencode/dcp.jsonc +11 -7
  21. package/dist/template/.opencode/memory/observations/2026-01-09-pattern-ampcode-mcp-json-includetools-pattern.md +42 -0
  22. package/dist/template/.opencode/memory/project/gotchas.md +52 -5
  23. package/dist/template/.opencode/memory/vector_db/memories.lance/_transactions/{0-8d00d272-cb80-463b-9774-7120a1c994e7.txn → 0-0d25ba80-ba3b-4209-9046-b45d6093b4da.txn} +0 -0
  24. package/dist/template/.opencode/memory/vector_db/memories.lance/_versions/1.manifest +0 -0
  25. package/dist/template/.opencode/memory/vector_db/memories.lance/data/{001010101000000101110001f998d04b63936ff83f9a34152d.lance → 1111100101010101011010004a9ef34df6b29f36a9a53a2892.lance} +0 -0
  26. package/dist/template/.opencode/opencode.json +525 -587
  27. package/dist/template/.opencode/package.json +1 -1
  28. package/dist/template/.opencode/plugin/memory.ts +77 -1
  29. package/dist/template/.opencode/plugin/package.json +1 -1
  30. package/dist/template/.opencode/plugin/skill-mcp.ts +155 -36
  31. package/dist/template/.opencode/skill/chrome-devtools/SKILL.md +43 -65
  32. package/dist/template/.opencode/skill/chrome-devtools/mcp.json +19 -0
  33. package/dist/template/.opencode/skill/executing-plans/SKILL.md +32 -2
  34. package/dist/template/.opencode/skill/finishing-a-development-branch/SKILL.md +42 -17
  35. package/dist/template/.opencode/skill/playwright/SKILL.md +58 -133
  36. package/dist/template/.opencode/skill/playwright/mcp.json +16 -0
  37. package/dist/template/.opencode/tool/memory-search.ts +2 -2
  38. package/package.json +4 -16
  39. package/dist/template/.opencode/memory/vector_db/memories.lance/_transactions/1-a3bea825-dad3-47dd-a6d6-ff41b76ff7b0.txn +0 -0
  40. package/dist/template/.opencode/memory/vector_db/memories.lance/_versions/2.manifest +0 -0
  41. package/dist/template/.opencode/memory/vector_db/memories.lance/data/010000101010000000010010701b3840d38c2b5f275da99978.lance +0 -0
@@ -25,6 +25,7 @@ npm test / cargo test / pytest / go test ./...
25
25
  ```
26
26
 
27
27
  **If tests fail:**
28
+
28
29
  ```
29
30
  Tests failing (<N> failures). Must fix before completing:
30
31
 
@@ -48,17 +49,29 @@ Or ask: "This branch split from main - is that correct?"
48
49
 
49
50
  ### Step 3: Present Options
50
51
 
51
- Present exactly these 4 options:
52
-
53
- ```
54
- Implementation complete. What would you like to do?
55
-
56
- 1. Merge back to <base-branch> locally
57
- 2. Push and create a Pull Request
58
- 3. Keep the branch as-is (I'll handle it later)
59
- 4. Discard this work
60
-
61
- Which option?
52
+ Use question tool to present completion options:
53
+
54
+ ```typescript
55
+ question({
56
+ questions: [
57
+ {
58
+ header: "Complete",
59
+ question: "Implementation complete. What would you like to do?",
60
+ options: [
61
+ {
62
+ label: "Merge locally (Recommended)",
63
+ description: "Merge to base branch",
64
+ },
65
+ {
66
+ label: "Push & create PR",
67
+ description: "Create pull request for review",
68
+ },
69
+ { label: "Keep branch", description: "I'll handle it later" },
70
+ { label: "Discard work", description: "Delete this branch" },
71
+ ],
72
+ },
73
+ ],
74
+ });
62
75
  ```
63
76
 
64
77
  **Don't add explanation** - keep options concise.
@@ -114,6 +127,7 @@ Report: "Keeping branch <name>. Worktree preserved at <path>."
114
127
  #### Option 4: Discard
115
128
 
116
129
  **Confirm first:**
130
+
117
131
  ```
118
132
  This will permanently delete:
119
133
  - Branch <name>
@@ -126,6 +140,7 @@ Type 'discard' to confirm.
126
140
  Wait for exact confirmation.
127
141
 
128
142
  If confirmed:
143
+
129
144
  ```bash
130
145
  git checkout <base-branch>
131
146
  git branch -D <feature-branch>
@@ -138,11 +153,13 @@ Then: Cleanup worktree (Step 5)
138
153
  **For Options 1, 2, 4:**
139
154
 
140
155
  Check if in worktree:
156
+
141
157
  ```bash
142
158
  git worktree list | grep $(git branch --show-current)
143
159
  ```
144
160
 
145
161
  If yes:
162
+
146
163
  ```bash
147
164
  git worktree remove <worktree-path>
148
165
  ```
@@ -151,40 +168,46 @@ git worktree remove <worktree-path>
151
168
 
152
169
  ## Quick Reference
153
170
 
154
- | Option | Merge | Push | Keep Worktree | Cleanup Branch |
155
- |--------|-------|------|---------------|----------------|
156
- | 1. Merge locally | ✓ | - | - | ✓ |
157
- | 2. Create PR | - | ✓ | ✓ | - |
158
- | 3. Keep as-is | - | - | ✓ | - |
159
- | 4. Discard | - | - | - | ✓ (force) |
171
+ | Option | Merge | Push | Keep Worktree | Cleanup Branch |
172
+ | ---------------- | ----- | ---- | ------------- | -------------- |
173
+ | 1. Merge locally | ✓ | - | - | ✓ |
174
+ | 2. Create PR | - | ✓ | ✓ | - |
175
+ | 3. Keep as-is | - | - | ✓ | - |
176
+ | 4. Discard | - | - | - | ✓ (force) |
160
177
 
161
178
  ## Common Mistakes
162
179
 
163
180
  **Skipping test verification**
181
+
164
182
  - **Problem:** Merge broken code, create failing PR
165
183
  - **Fix:** Always verify tests before offering options
166
184
 
167
185
  **Open-ended questions**
186
+
168
187
  - **Problem:** "What should I do next?" → ambiguous
169
188
  - **Fix:** Present exactly 4 structured options
170
189
 
171
190
  **Automatic worktree cleanup**
191
+
172
192
  - **Problem:** Remove worktree when might need it (Option 2, 3)
173
193
  - **Fix:** Only cleanup for Options 1 and 4
174
194
 
175
195
  **No confirmation for discard**
196
+
176
197
  - **Problem:** Accidentally delete work
177
198
  - **Fix:** Require typed "discard" confirmation
178
199
 
179
200
  ## Red Flags
180
201
 
181
202
  **Never:**
203
+
182
204
  - Proceed with failing tests
183
205
  - Merge without verifying tests on result
184
206
  - Delete work without confirmation
185
207
  - Force-push without explicit request
186
208
 
187
209
  **Always:**
210
+
188
211
  - Verify tests before offering options
189
212
  - Present exactly 4 options
190
213
  - Get typed confirmation for Option 4
@@ -193,8 +216,10 @@ git worktree remove <worktree-path>
193
216
  ## Integration
194
217
 
195
218
  **Called by:**
219
+
196
220
  - **subagent-driven-development** (Step 7) - After all tasks complete
197
221
  - **executing-plans** (Step 5) - After all batches complete
198
222
 
199
223
  **Pairs with:**
224
+
200
225
  - **using-git-worktrees** - Cleans up worktree created by that skill
@@ -1,173 +1,106 @@
1
1
  ---
2
2
  name: playwright
3
3
  description: Browser automation with Playwright MCP. Test pages, fill forms, take screenshots, check responsive design, validate UX, test login flows. Use when user wants to test websites or automate browser interactions.
4
- mcp:
5
- playwright:
6
- command: npx
7
- args: ["@playwright/mcp@latest"]
8
4
  ---
9
5
 
10
6
  # Playwright Browser Automation (MCP)
11
7
 
12
- Browser automation via Playwright MCP server. When this skill is loaded, the `playwright` MCP server auto-starts and exposes browser tools.
13
-
14
- ## Quick Start
15
-
16
- After loading this skill, use `skill_mcp` to invoke browser tools:
17
-
18
- ```
19
- skill_mcp(mcp_name="playwright", tool_name="browser_navigate", arguments='{"url": "https://example.com"}')
20
- ```
8
+ Browser automation via Playwright MCP server for testing and automation.
21
9
 
22
10
  ## Available Tools
23
11
 
24
- ### Navigation & Page
25
-
26
- | Tool | Description | Arguments |
27
- | -------------------- | ---------------------- | ----------------------------------- |
28
- | `browser_navigate` | Navigate to URL | `{"url": "https://..."}` |
29
- | `browser_go_back` | Go back | `{}` |
30
- | `browser_go_forward` | Go forward | `{}` |
31
- | `browser_wait_for` | Wait for text/selector | `{"text": "...", "timeout": 10000}` |
32
-
33
- ### Interaction
34
-
35
- | Tool | Description | Arguments |
36
- | ----------------------- | ------------------------- | ---------------------------------------------------------------------------------- |
37
- | `browser_click` | Click element | `{"element": "Submit button", "ref": "e123"}` |
38
- | `browser_type` | Type text | `{"element": "Search input", "ref": "e456", "text": "query"}` |
39
- | `browser_fill` | Fill input (clears first) | `{"element": "Email field", "ref": "e789", "text": "test@example.com"}` |
40
- | `browser_select_option` | Select dropdown option | `{"element": "Country", "ref": "e012", "values": ["US"]}` |
41
- | `browser_hover` | Hover over element | `{"element": "Menu", "ref": "e345"}` |
42
- | `browser_drag` | Drag and drop | `{"startElement": "...", "startRef": "...", "endElement": "...", "endRef": "..."}` |
43
-
44
- ### Screenshots & Content
45
-
46
- | Tool | Description | Arguments |
47
- | ------------------------- | ------------------------------- | -------------------------------------- |
48
- | `browser_take_screenshot` | Capture screenshot | `{"filename": "screenshot.png"}` |
49
- | `browser_snapshot` | Get page accessibility snapshot | `{}` |
50
- | `browser_evaluate` | Run JavaScript | `{"function": "() => document.title"}` |
51
- | `browser_pdf_save` | Save page as PDF | `{"filename": "page.pdf"}` |
52
-
53
- ### Viewport & Device
54
-
55
- | Tool | Description | Arguments |
56
- | ---------------- | --------------- | ------------------------------------------------------------ |
57
- | `browser_resize` | Resize viewport | `{"width": 375, "height": 667}` or `{"device": "iPhone 13"}` |
58
-
59
- ### Tabs
60
-
61
- | Tool | Description | Arguments |
62
- | -------------------- | -------------- | ------------------------ |
63
- | `browser_tab_list` | List open tabs | `{}` |
64
- | `browser_tab_new` | Open new tab | `{"url": "https://..."}` |
65
- | `browser_tab_select` | Switch to tab | `{"index": 0}` |
66
- | `browser_tab_close` | Close tab | `{"index": 0}` |
12
+ - `browser_navigate` - Navigate to URL
13
+ - `browser_snapshot` - Get page accessibility snapshot with element refs
14
+ - `browser_take_screenshot` - Capture screenshot
15
+ - `browser_click` - Click element by ref
16
+ - `browser_type` - Type text (appends to existing)
17
+ - `browser_fill` - Fill input (clears first, then types)
18
+ - `browser_wait_for` - Wait for text or selector
19
+ - `browser_resize` - Resize viewport or emulate device
67
20
 
68
21
  ## Workflow
69
22
 
70
- 1. **Navigate** to the target URL
71
- 2. **Snapshot** to see page structure and element refs
72
- 3. **Interact** using element refs from snapshot
73
- 4. **Screenshot** to capture results
74
-
75
- ## Examples
23
+ 1. **Navigate** to the target URL using `browser_navigate`
24
+ 2. **Snapshot** to see page structure and element refs using `browser_snapshot`
25
+ 3. **Interact** using element refs from snapshot (`browser_click`, `browser_fill`)
26
+ 4. **Screenshot** to capture results using `browser_take_screenshot`
76
27
 
77
- ### Test a Page
28
+ ## Quick Start
78
29
 
79
30
  ```
80
- # Navigate
81
- skill_mcp(mcp_name="playwright", tool_name="browser_navigate", arguments='{"url": "http://localhost:3000"}')
31
+ # Navigate to page
32
+ skill_mcp(skill_name="playwright", tool_name="browser_navigate", arguments='{"url": "https://example.com"}')
82
33
 
83
- # Get page snapshot (shows elements with refs)
84
- skill_mcp(mcp_name="playwright", tool_name="browser_snapshot")
34
+ # Get page structure with element refs
35
+ skill_mcp(skill_name="playwright", tool_name="browser_snapshot")
85
36
 
86
- # Take screenshot
87
- skill_mcp(mcp_name="playwright", tool_name="browser_take_screenshot", arguments='{"filename": "/tmp/homepage.png"}')
88
- ```
37
+ # Click element (use ref from snapshot)
38
+ skill_mcp(skill_name="playwright", tool_name="browser_click", arguments='{"element": "Submit button", "ref": "e123"}')
89
39
 
90
- ### Fill a Form
40
+ # Fill input field
41
+ skill_mcp(skill_name="playwright", tool_name="browser_fill", arguments='{"element": "Email", "ref": "e456", "text": "test@example.com"}')
91
42
 
43
+ # Take screenshot
44
+ skill_mcp(skill_name="playwright", tool_name="browser_take_screenshot", arguments='{"filename": "/tmp/result.png"}')
92
45
  ```
93
- # Navigate to form
94
- skill_mcp(mcp_name="playwright", tool_name="browser_navigate", arguments='{"url": "http://localhost:3000/contact"}')
95
-
96
- # Get snapshot to find element refs
97
- skill_mcp(mcp_name="playwright", tool_name="browser_snapshot")
98
-
99
- # Fill fields (use refs from snapshot)
100
- skill_mcp(mcp_name="playwright", tool_name="browser_fill", arguments='{"element": "Name input", "ref": "e12", "text": "John Doe"}')
101
- skill_mcp(mcp_name="playwright", tool_name="browser_fill", arguments='{"element": "Email input", "ref": "e34", "text": "john@example.com"}')
102
46
 
103
- # Submit
104
- skill_mcp(mcp_name="playwright", tool_name="browser_click", arguments='{"element": "Submit button", "ref": "e56"}')
105
- ```
47
+ ## Examples
106
48
 
107
49
  ### Test Responsive Design
108
50
 
109
51
  ```
110
52
  # Navigate
111
- skill_mcp(mcp_name="playwright", tool_name="browser_navigate", arguments='{"url": "http://localhost:3000"}')
53
+ skill_mcp(skill_name="playwright", tool_name="browser_navigate", arguments='{"url": "http://localhost:3000"}')
112
54
 
113
55
  # Desktop
114
- skill_mcp(mcp_name="playwright", tool_name="browser_resize", arguments='{"width": 1920, "height": 1080}')
115
- skill_mcp(mcp_name="playwright", tool_name="browser_take_screenshot", arguments='{"filename": "/tmp/desktop.png"}')
116
-
117
- # Tablet
118
- skill_mcp(mcp_name="playwright", tool_name="browser_resize", arguments='{"device": "iPad Pro 11"}')
119
- skill_mcp(mcp_name="playwright", tool_name="browser_take_screenshot", arguments='{"filename": "/tmp/tablet.png"}')
56
+ skill_mcp(skill_name="playwright", tool_name="browser_resize", arguments='{"width": 1920, "height": 1080}')
57
+ skill_mcp(skill_name="playwright", tool_name="browser_take_screenshot", arguments='{"filename": "/tmp/desktop.png"}')
120
58
 
121
59
  # Mobile
122
- skill_mcp(mcp_name="playwright", tool_name="browser_resize", arguments='{"device": "iPhone 13"}')
123
- skill_mcp(mcp_name="playwright", tool_name="browser_take_screenshot", arguments='{"filename": "/tmp/mobile.png"}')
60
+ skill_mcp(skill_name="playwright", tool_name="browser_resize", arguments='{"device": "iPhone 13"}')
61
+ skill_mcp(skill_name="playwright", tool_name="browser_take_screenshot", arguments='{"filename": "/tmp/mobile.png"}')
124
62
  ```
125
63
 
126
- ### Test Login Flow
64
+ ### Fill a Form
127
65
 
128
66
  ```
129
- # Navigate to login
130
- skill_mcp(mcp_name="playwright", tool_name="browser_navigate", arguments='{"url": "http://localhost:3000/login"}')
131
-
132
- # Snapshot to get refs
133
- skill_mcp(mcp_name="playwright", tool_name="browser_snapshot")
134
-
135
- # Fill credentials
136
- skill_mcp(mcp_name="playwright", tool_name="browser_fill", arguments='{"element": "Email", "ref": "e10", "text": "test@example.com"}')
137
- skill_mcp(mcp_name="playwright", tool_name="browser_fill", arguments='{"element": "Password", "ref": "e20", "text": "password123"}')
138
-
139
- # Click login
140
- skill_mcp(mcp_name="playwright", tool_name="browser_click", arguments='{"element": "Login button", "ref": "e30"}')
67
+ # Navigate to form
68
+ skill_mcp(skill_name="playwright", tool_name="browser_navigate", arguments='{"url": "http://localhost:3000/contact"}')
141
69
 
142
- # Wait for redirect
143
- skill_mcp(mcp_name="playwright", tool_name="browser_wait_for", arguments='{"text": "Dashboard", "timeout": 10000}')
70
+ # Get element refs
71
+ skill_mcp(skill_name="playwright", tool_name="browser_snapshot")
144
72
 
145
- # Screenshot success
146
- skill_mcp(mcp_name="playwright", tool_name="browser_take_screenshot", arguments='{"filename": "/tmp/logged-in.png"}')
147
- ```
73
+ # Fill fields (use refs from snapshot)
74
+ skill_mcp(skill_name="playwright", tool_name="browser_fill", arguments='{"element": "Name", "ref": "e12", "text": "John Doe"}')
75
+ skill_mcp(skill_name="playwright", tool_name="browser_fill", arguments='{"element": "Email", "ref": "e34", "text": "john@example.com"}')
148
76
 
149
- ### Run JavaScript
77
+ # Submit
78
+ skill_mcp(skill_name="playwright", tool_name="browser_click", arguments='{"element": "Submit", "ref": "e56"}')
150
79
 
80
+ # Wait for confirmation
81
+ skill_mcp(skill_name="playwright", tool_name="browser_wait_for", arguments='{"text": "Thank you", "timeout": 5000}')
151
82
  ```
152
- # Get page title
153
- skill_mcp(mcp_name="playwright", tool_name="browser_evaluate", arguments='{"function": "() => document.title"}')
154
83
 
155
- # Get all links
156
- skill_mcp(mcp_name="playwright", tool_name="browser_evaluate", arguments='{"function": "() => Array.from(document.querySelectorAll(\"a\")).map(a => a.href)"}')
84
+ ## Tips
157
85
 
158
- # Scroll to bottom
159
- skill_mcp(mcp_name="playwright", tool_name="browser_evaluate", arguments='{"function": "() => window.scrollTo(0, document.body.scrollHeight)"}')
160
- ```
86
+ - **Always snapshot first** to get element refs before interacting
87
+ - **Use descriptive element names** in click/fill for clarity
88
+ - **Save screenshots to /tmp** for easy access
89
+ - **Use device presets** for accurate mobile emulation
90
+ - **Chain wait_for** after navigation for dynamic pages
161
91
 
162
92
  ## Server Options
163
93
 
164
- For advanced usage, modify the MCP args in frontmatter:
94
+ For advanced usage, modify `mcp.json`:
165
95
 
166
- ```yaml
167
- mcp:
168
- playwright:
169
- command: npx
170
- args: ["@playwright/mcp@latest", "--headless", "--browser=firefox"]
96
+ ```json
97
+ {
98
+ "playwright": {
99
+ "command": "npx",
100
+ "args": ["@playwright/mcp@latest", "--headless", "--browser=firefox"],
101
+ "includeTools": ["browser_navigate", "browser_snapshot", "..."]
102
+ }
103
+ }
171
104
  ```
172
105
 
173
106
  Common options:
@@ -175,13 +108,5 @@ Common options:
175
108
  - `--headless` - Run without visible browser
176
109
  - `--browser=chrome|firefox|webkit` - Choose browser
177
110
  - `--device="iPhone 13"` - Emulate device
178
- - `--viewport-size=1280x720` - Set viewport
179
- - `--user-data-dir=/path` - Persist browser data
180
111
 
181
- ## Tips
182
-
183
- - **Always snapshot first** to get element refs before interacting
184
- - **Use descriptive element names** in click/fill for clarity
185
- - **Save screenshots to /tmp** for easy access
186
- - **Use device presets** for accurate mobile emulation
187
- - **Chain wait_for** after navigation for dynamic pages
112
+ > **Note**: This skill loads 8 essential tools. For full 17+ tools (tabs, PDF, evaluate, drag), modify `mcp.json` to add more tools to `includeTools`.
@@ -0,0 +1,16 @@
1
+ {
2
+ "playwright": {
3
+ "command": "npx",
4
+ "args": ["@playwright/mcp@latest"],
5
+ "includeTools": [
6
+ "browser_navigate",
7
+ "browser_snapshot",
8
+ "browser_take_screenshot",
9
+ "browser_click",
10
+ "browser_type",
11
+ "browser_fill",
12
+ "browser_wait_for",
13
+ "browser_resize"
14
+ ]
15
+ }
16
+ }
@@ -246,7 +246,7 @@ function formatKeywordResults(
246
246
  ) {
247
247
  const lineNum = result.matches[0]?.line;
248
248
  if (lineNum) {
249
- output += `\n🔍 **LSP Nudge:**\n`;
249
+ output += "\n🔍 **LSP Nudge:**\n";
250
250
  output += ` \`lsp_lsp_goto_definition({ filePath: "${result.file}", line: ${lineNum}, character: 1 })\`\n`;
251
251
  }
252
252
  }
@@ -297,7 +297,7 @@ function formatSemanticResults(
297
297
  result.file.endsWith(".go") ||
298
298
  result.file.endsWith(".rs")
299
299
  ) {
300
- output += `\n🔍 **LSP Nudge:**\n`;
300
+ output += "\n🔍 **LSP Nudge:**\n";
301
301
  output += ` Get symbols: \`lsp_lsp_document_symbols({ filePath: "${result.file}" })\`\n`;
302
302
  output += ` Find references: \`lsp_lsp_find_references({ filePath: "${result.file}", line: 1, character: 1 })\`\n`;
303
303
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencodekit",
3
- "version": "0.14.0",
3
+ "version": "0.14.1",
4
4
  "description": "CLI tool for bootstrapping and managing OpenCodeKit projects",
5
5
  "type": "module",
6
6
  "repository": {
@@ -14,10 +14,7 @@
14
14
  "bin": {
15
15
  "ock": "dist/index.js"
16
16
  },
17
- "files": [
18
- "dist",
19
- "README.md"
20
- ],
17
+ "files": ["dist", "README.md"],
21
18
  "scripts": {
22
19
  "dev": "bun run src/index.ts",
23
20
  "build": "bun run build.ts && mkdir -p dist/template && rsync -av --exclude=node_modules --exclude=dist --exclude=.git --exclude=coverage --exclude=.next --exclude=.turbo --exclude=logs --exclude=package-lock.json .opencode/ dist/template/.opencode/",
@@ -29,14 +26,7 @@
29
26
  "lint": "biome check .",
30
27
  "lint:fix": "biome check --fix ."
31
28
  },
32
- "keywords": [
33
- "cli",
34
- "opencodekit",
35
- "template",
36
- "agents",
37
- "mcp",
38
- "opencode"
39
- ],
29
+ "keywords": ["cli", "opencodekit", "template", "agents", "mcp", "opencode"],
40
30
  "author": "OpenCodeKit",
41
31
  "license": "MIT",
42
32
  "engines": {
@@ -62,7 +52,5 @@
62
52
  "@types/node": "^22.10.1",
63
53
  "typescript": "^5.7.2"
64
54
  },
65
- "trustedDependencies": [
66
- "@beads/bd"
67
- ]
55
+ "trustedDependencies": ["@beads/bd"]
68
56
  }