opencodekit 0.9.2 → 0.11.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 (62) hide show
  1. package/dist/index.js +1 -1
  2. package/dist/template/.opencode/AGENTS.md +116 -47
  3. package/dist/template/.opencode/agent/build.md +16 -48
  4. package/dist/template/.opencode/agent/explore.md +13 -34
  5. package/dist/template/.opencode/agent/planner.md +41 -11
  6. package/dist/template/.opencode/agent/review.md +2 -23
  7. package/dist/template/.opencode/agent/rush.md +24 -65
  8. package/dist/template/.opencode/agent/scout.md +5 -21
  9. package/dist/template/.opencode/agent/vision.md +0 -14
  10. package/dist/template/.opencode/command/accessibility-check.md +293 -30
  11. package/dist/template/.opencode/command/analyze-mockup.md +406 -20
  12. package/dist/template/.opencode/command/analyze-project.md +439 -30
  13. package/dist/template/.opencode/command/brainstorm.md +288 -5
  14. package/dist/template/.opencode/command/commit.md +226 -17
  15. package/dist/template/.opencode/command/create.md +138 -35
  16. package/dist/template/.opencode/command/design-audit.md +477 -29
  17. package/dist/template/.opencode/command/design.md +609 -6
  18. package/dist/template/.opencode/command/edit-image.md +223 -20
  19. package/dist/template/.opencode/command/finish.md +162 -71
  20. package/dist/template/.opencode/command/fix-ci.md +296 -24
  21. package/dist/template/.opencode/command/fix-types.md +345 -13
  22. package/dist/template/.opencode/command/fix-ui.md +293 -13
  23. package/dist/template/.opencode/command/fix.md +256 -9
  24. package/dist/template/.opencode/command/generate-diagram.md +327 -26
  25. package/dist/template/.opencode/command/generate-icon.md +266 -22
  26. package/dist/template/.opencode/command/generate-image.md +232 -12
  27. package/dist/template/.opencode/command/generate-pattern.md +234 -20
  28. package/dist/template/.opencode/command/generate-storyboard.md +231 -21
  29. package/dist/template/.opencode/command/handoff.md +202 -30
  30. package/dist/template/.opencode/command/implement.md +162 -50
  31. package/dist/template/.opencode/command/import-plan.md +247 -51
  32. package/dist/template/.opencode/command/init.md +154 -35
  33. package/dist/template/.opencode/command/integration-test.md +405 -24
  34. package/dist/template/.opencode/command/issue.md +171 -21
  35. package/dist/template/.opencode/command/new-feature.md +382 -54
  36. package/dist/template/.opencode/command/plan.md +144 -118
  37. package/dist/template/.opencode/command/pr.md +229 -28
  38. package/dist/template/.opencode/command/quick-build.md +234 -5
  39. package/dist/template/.opencode/command/research-and-implement.md +436 -12
  40. package/dist/template/.opencode/command/research-ui.md +444 -34
  41. package/dist/template/.opencode/command/research.md +173 -45
  42. package/dist/template/.opencode/command/restore-image.md +416 -22
  43. package/dist/template/.opencode/command/resume.md +439 -63
  44. package/dist/template/.opencode/command/revert-feature.md +341 -64
  45. package/dist/template/.opencode/command/review-codebase.md +193 -4
  46. package/dist/template/.opencode/command/skill-create.md +506 -14
  47. package/dist/template/.opencode/command/skill-optimize.md +487 -16
  48. package/dist/template/.opencode/command/status.md +320 -60
  49. package/dist/template/.opencode/command/summarize.md +374 -33
  50. package/dist/template/.opencode/command/triage.md +355 -0
  51. package/dist/template/.opencode/command/ui-review.md +292 -25
  52. package/dist/template/.opencode/plugin/README.md +110 -98
  53. package/dist/template/.opencode/plugin/compactor.ts +95 -171
  54. package/dist/template/.opencode/plugin/enforcer.ts +177 -127
  55. package/dist/template/.opencode/plugin/injector.ts +150 -0
  56. package/dist/template/.opencode/plugin/lib/notify.ts +86 -0
  57. package/dist/template/.opencode/plugin/notification.ts +57 -123
  58. package/dist/template/.opencode/plugin/truncator.ts +60 -166
  59. package/dist/template/.opencode/skill/mqdh/SKILL.md +161 -0
  60. package/dist/template/.opencode/skill/playwriter/SKILL.md +148 -0
  61. package/dist/template/.opencode/skill/v0/SKILL.md +154 -0
  62. package/package.json +1 -1
@@ -0,0 +1,148 @@
1
+ ---
2
+ name: playwriter
3
+ description: Browser automation via Chrome extension. Single execute tool with full Playwright API. Uses your existing browser with extensions, sessions, cookies. 90% less context than traditional browser MCP.
4
+ mcp:
5
+ playwriter:
6
+ command: npx
7
+ args: ["playwriter@latest"]
8
+ ---
9
+
10
+ # Playwriter Browser Automation (MCP)
11
+
12
+ Control your actual Chrome browser via extension. Unlike traditional browser MCP tools that spawn isolated instances, Playwriter:
13
+
14
+ - **Uses your existing browser** - extensions, sessions, cookies all work
15
+ - **Single `execute` tool** - send Playwright code snippets directly
16
+ - **90% less context** - no tool schema bloat
17
+ - **Full Playwright API** - LLMs already know it from training
18
+ - **Bypass automation detection** - disconnect extension when needed
19
+
20
+ ## Prerequisites
21
+
22
+ **You must install the Chrome extension first:**
23
+
24
+ 1. Install [Playwriter Extension](https://chromewebstore.google.com/detail/playwriter-mcp/jfeammnjpkecdekppnclgkkffahnhfhe)
25
+ 2. Click extension icon on tabs you want to control (icon turns green)
26
+ 3. Now the skill can interact with those tabs
27
+
28
+ ## Quick Start
29
+
30
+ After loading this skill:
31
+
32
+ ```
33
+ # List available tabs (enabled ones)
34
+ skill_mcp(skill_name="playwriter", tool_name="listTabs")
35
+
36
+ # Execute Playwright code on a tab
37
+ skill_mcp(skill_name="playwriter", tool_name="execute", arguments='{"tabId": "tab-id-here", "code": "await page.goto(\"https://example.com\")"}')
38
+ ```
39
+
40
+ ## Available Tools
41
+
42
+ | Tool | Description | Arguments |
43
+ | ---------- | -------------------------------- | --------------------------------- |
44
+ | `listTabs` | List tabs with extension enabled | `{}` |
45
+ | `execute` | Run Playwright code snippet | `{"tabId": "...", "code": "..."}` |
46
+
47
+ That's it. Two tools. The power is in the Playwright code you send.
48
+
49
+ ## The `execute` Pattern
50
+
51
+ Send any valid Playwright code. The `page` object is already available:
52
+
53
+ ```javascript
54
+ // Navigate
55
+ await page.goto("https://github.com");
56
+
57
+ // Click
58
+ await page.click("button.sign-in");
59
+
60
+ // Fill form
61
+ await page.fill("#email", "user@example.com");
62
+ await page.fill("#password", "secret");
63
+ await page.click('button[type="submit"]');
64
+
65
+ // Wait for element
66
+ await page.waitForSelector(".dashboard");
67
+
68
+ // Get text
69
+ const title = await page.title();
70
+
71
+ // Screenshot
72
+ await page.screenshot({ path: "/tmp/screenshot.png" });
73
+
74
+ // Complex selectors
75
+ await page.click("text=Submit");
76
+ await page.click('[data-testid="login-btn"]');
77
+
78
+ // Evaluate JS in page
79
+ const links = await page.evaluate(() =>
80
+ Array.from(document.querySelectorAll("a")).map((a) => a.href),
81
+ );
82
+ ```
83
+
84
+ ## Examples
85
+
86
+ ### Navigate and Screenshot
87
+
88
+ ```
89
+ skill_mcp(skill_name="playwriter", tool_name="execute", arguments='{"tabId": "abc123", "code": "await page.goto(\"https://example.com\"); await page.screenshot({ path: \"/tmp/example.png\" })"}')
90
+ ```
91
+
92
+ ### Fill a Form
93
+
94
+ ```
95
+ skill_mcp(skill_name="playwriter", tool_name="execute", arguments='{"tabId": "abc123", "code": "await page.fill(\"#name\", \"John Doe\"); await page.fill(\"#email\", \"john@example.com\"); await page.click(\"button[type=submit]\")"}')
96
+ ```
97
+
98
+ ### Login Flow (Using Your Saved Sessions)
99
+
100
+ ```
101
+ # If you're already logged in via browser, just navigate
102
+ skill_mcp(skill_name="playwriter", tool_name="execute", arguments='{"tabId": "abc123", "code": "await page.goto(\"https://github.com/settings/profile\")"}')
103
+
104
+ # Your cookies/session already work - no login needed!
105
+ ```
106
+
107
+ ### Scrape Data
108
+
109
+ ```
110
+ skill_mcp(skill_name="playwriter", tool_name="execute", arguments='{"tabId": "abc123", "code": "const items = await page.$$eval(\".product\", els => els.map(e => ({ name: e.querySelector(\"h2\").textContent, price: e.querySelector(\".price\").textContent }))); return items"}')
111
+ ```
112
+
113
+ ### Test Responsive
114
+
115
+ ```
116
+ skill_mcp(skill_name="playwriter", tool_name="execute", arguments='{"tabId": "abc123", "code": "await page.setViewportSize({ width: 375, height: 667 }); await page.screenshot({ path: \"/tmp/mobile.png\" })"}')
117
+ ```
118
+
119
+ ## Bypassing Automation Detection
120
+
121
+ For sites that detect automation (Google login, etc.):
122
+
123
+ 1. **Disconnect the extension** before sensitive actions
124
+ 2. Perform login manually
125
+ 3. **Reconnect** after authentication
126
+ 4. Continue automation with your authenticated session
127
+
128
+ This works because the browser is real - not a Puppeteer/Playwright-spawned instance.
129
+
130
+ ## vs Traditional Playwright MCP
131
+
132
+ | Aspect | `playwright` skill | `playwriter` skill |
133
+ | -------------------- | ----------------------- | ----------------------- |
134
+ | Tools | 17+ | 2 |
135
+ | Context usage | High | ~90% less |
136
+ | Browser | New instance | Your existing browser |
137
+ | Extensions | None | All yours |
138
+ | Sessions/cookies | Fresh | Your logged-in sessions |
139
+ | Automation detection | Always detected | Can bypass |
140
+ | API knowledge | Must learn tool schemas | Standard Playwright |
141
+
142
+ ## Tips
143
+
144
+ - **List tabs first** to get valid tabId values
145
+ - **Chain commands** in single execute for efficiency
146
+ - **Use your sessions** - if you're logged into GitHub in Chrome, it just works
147
+ - **Return data** from execute to get values back
148
+ - **Standard Playwright docs** apply - no special syntax to learn
@@ -0,0 +1,154 @@
1
+ ---
2
+ name: v0
3
+ description: AI-powered UI generation via v0 MCP. Create chats, generate React components, get design assistance. Use when building UI components, dashboards, or need AI design help.
4
+ mcp:
5
+ v0:
6
+ command: npx
7
+ args:
8
+ [
9
+ "mcp-remote",
10
+ "https://mcp.v0.dev",
11
+ "--header",
12
+ "Authorization: Bearer ${V0_API_KEY}",
13
+ ]
14
+ env:
15
+ V0_API_KEY: "${V0_API_KEY}"
16
+ ---
17
+
18
+ # v0 AI Code Generation (MCP)
19
+
20
+ Access v0's AI-powered code generation via MCP. When this skill is loaded, the `v0` MCP server auto-starts and exposes tools for creating and managing v0 chats.
21
+
22
+ ## Prerequisites
23
+
24
+ Set your v0 API key as an environment variable:
25
+
26
+ ```bash
27
+ export V0_API_KEY="your-v0-api-key"
28
+ ```
29
+
30
+ To get your v0 API key:
31
+
32
+ 1. Go to [v0 account settings](https://v0.app/chat/settings/keys)
33
+ 2. Create a new API key
34
+ 3. Copy and set as environment variable
35
+
36
+ ## Quick Start
37
+
38
+ After loading this skill, list available tools:
39
+
40
+ ```
41
+ skill_mcp(skill_name="v0", list_tools=true)
42
+ ```
43
+
44
+ Then invoke tools:
45
+
46
+ ```
47
+ skill_mcp(skill_name="v0", tool_name="create_chat", arguments='{"prompt": "Create a React dashboard component with a sidebar"}')
48
+ ```
49
+
50
+ ## Available Tools
51
+
52
+ ### create_chat
53
+
54
+ Create a new v0 chat with a prompt.
55
+
56
+ | Parameter | Type | Required | Description |
57
+ | --------- | ------ | -------- | ---------------------------------- |
58
+ | `prompt` | string | Yes | The prompt for v0 to generate code |
59
+
60
+ **Example:**
61
+
62
+ ```
63
+ skill_mcp(skill_name="v0", tool_name="create_chat", arguments='{"prompt": "Build a responsive navbar with dark mode toggle"}')
64
+ ```
65
+
66
+ ### get_chat
67
+
68
+ Get details about an existing chat.
69
+
70
+ | Parameter | Type | Required | Description |
71
+ | --------- | ------ | -------- | -------------- |
72
+ | `chatId` | string | Yes | The v0 chat ID |
73
+
74
+ **Example:**
75
+
76
+ ```
77
+ skill_mcp(skill_name="v0", tool_name="get_chat", arguments='{"chatId": "abc123"}')
78
+ ```
79
+
80
+ ### find_chats
81
+
82
+ Search through your v0 chats.
83
+
84
+ | Parameter | Type | Required | Description |
85
+ | --------- | ------ | -------- | ------------ |
86
+ | `query` | string | No | Search query |
87
+
88
+ **Example:**
89
+
90
+ ```
91
+ skill_mcp(skill_name="v0", tool_name="find_chats", arguments='{"query": "React components"}')
92
+ ```
93
+
94
+ ### send_message
95
+
96
+ Continue a conversation in an existing chat.
97
+
98
+ | Parameter | Type | Required | Description |
99
+ | --------- | ------ | -------- | --------------- |
100
+ | `chatId` | string | Yes | The v0 chat ID |
101
+ | `message` | string | Yes | Message to send |
102
+
103
+ **Example:**
104
+
105
+ ```
106
+ skill_mcp(skill_name="v0", tool_name="send_message", arguments='{"chatId": "abc123", "message": "Add dark mode support"}')
107
+ ```
108
+
109
+ ## Workflow
110
+
111
+ ### 1. Generate a New Component
112
+
113
+ ```
114
+ # Create a new chat with your requirements
115
+ skill_mcp(skill_name="v0", tool_name="create_chat", arguments='{"prompt": "Create a modern pricing table with 3 tiers using Tailwind CSS"}')
116
+
117
+ # The response includes a chat ID and generated code
118
+ ```
119
+
120
+ ### 2. Iterate on Design
121
+
122
+ ```
123
+ # Send follow-up messages to refine
124
+ skill_mcp(skill_name="v0", tool_name="send_message", arguments='{"chatId": "chat-id-here", "message": "Make the recommended tier more prominent with a gradient border"}')
125
+ ```
126
+
127
+ ### 3. Search Previous Work
128
+
129
+ ```
130
+ # Find relevant previous chats
131
+ skill_mcp(skill_name="v0", tool_name="find_chats", arguments='{"query": "dashboard"}')
132
+ ```
133
+
134
+ ## Use Cases
135
+
136
+ - **Component Generation**: Create React/Next.js components from descriptions
137
+ - **UI Prototyping**: Rapidly prototype UI ideas
138
+ - **Design Iteration**: Refine designs through conversation
139
+ - **Code Assistance**: Get help with Tailwind CSS, responsive design, etc.
140
+
141
+ ## Tips
142
+
143
+ - **Be specific** in prompts - include framework (React, Next.js), styling (Tailwind, CSS), and functionality details
144
+ - **Iterate** using `send_message` rather than creating new chats for refinements
145
+ - **Search first** with `find_chats` to reuse previous work
146
+ - **Include context** about your existing design system or component patterns
147
+
148
+ ## Troubleshooting
149
+
150
+ **"Invalid API key"**: Ensure `V0_API_KEY` environment variable is set correctly.
151
+
152
+ **"Rate limit exceeded"**: v0 has usage limits. Wait a few minutes or check your plan.
153
+
154
+ **"Chat not found"**: Verify the chat ID is correct. Use `find_chats` to list available chats.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencodekit",
3
- "version": "0.9.2",
3
+ "version": "0.11.0",
4
4
  "description": "CLI tool for bootstrapping and managing OpenCodeKit projects",
5
5
  "type": "module",
6
6
  "repository": {