@muggleai/works 4.2.1 → 4.3.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.
- package/README.md +100 -50
- package/dist/{chunk-CXTJOYWM.js → chunk-23NOSJFH.js} +284 -184
- package/dist/cli.js +1 -1
- package/dist/index.js +1 -1
- package/dist/plugin/.claude-plugin/plugin.json +4 -4
- package/dist/plugin/.cursor-plugin/plugin.json +3 -3
- package/dist/plugin/README.md +7 -5
- package/dist/plugin/scripts/ensure-electron-app.sh +3 -3
- package/dist/plugin/skills/do/e2e-acceptance.md +161 -0
- package/dist/plugin/skills/do/open-prs.md +78 -14
- package/dist/plugin/skills/muggle/SKILL.md +4 -2
- package/dist/plugin/skills/muggle-do/SKILL.md +6 -6
- package/dist/plugin/skills/muggle-test/SKILL.md +416 -0
- package/dist/plugin/skills/muggle-test-feature-local/SKILL.md +77 -80
- package/dist/plugin/skills/muggle-test-import/SKILL.md +276 -0
- package/dist/plugin/skills/muggle-upgrade/SKILL.md +1 -1
- package/dist/plugin/skills/optimize-descriptions/SKILL.md +8 -8
- package/package.json +15 -12
- package/plugin/.claude-plugin/plugin.json +4 -4
- package/plugin/.cursor-plugin/plugin.json +3 -3
- package/plugin/README.md +7 -5
- package/plugin/scripts/ensure-electron-app.sh +3 -3
- package/plugin/skills/do/e2e-acceptance.md +161 -0
- package/plugin/skills/do/open-prs.md +78 -14
- package/plugin/skills/muggle/SKILL.md +4 -2
- package/plugin/skills/muggle-do/SKILL.md +6 -6
- package/plugin/skills/muggle-test/SKILL.md +416 -0
- package/plugin/skills/muggle-test-feature-local/SKILL.md +77 -80
- package/plugin/skills/muggle-test-import/SKILL.md +276 -0
- package/plugin/skills/muggle-upgrade/SKILL.md +1 -1
- package/plugin/skills/optimize-descriptions/SKILL.md +8 -8
- package/scripts/postinstall.mjs +2 -2
- package/dist/plugin/skills/do/qa.md +0 -89
- package/plugin/skills/do/qa.md +0 -89
package/README.md
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
# *muggle-ai-works*
|
|
2
2
|
|
|
3
|
-
**Run real-browser
|
|
3
|
+
**Run real-browser E2E acceptance tests on your web app from any AI coding agent. Generate test scripts from plain English, replay them on localhost, capture screenshots, and validate user flows like signup, checkout, and dashboards. Works across Claude Code, Cursor, Codex, and Windsurf.**
|
|
4
4
|
|
|
5
|
-
One install gives your AI coding assistant the power to
|
|
5
|
+
One install gives your AI coding assistant the power to exercise your app like a real user would: clicking through flows, catching broken experiences, and reporting results with screenshots and evidence.
|
|
6
6
|
|
|
7
7
|
*[License: MIT](LICENSE)
|
|
8
8
|
[npm]()
|
|
9
9
|
[MCP Tools]()
|
|
10
10
|
[Node*]()
|
|
11
11
|
|
|
12
|
-
*Powered by [MuggleTest](https://www.muggletest.com) — the [AI-powered
|
|
12
|
+
*Powered by [MuggleTest](https://www.muggletest.com) — the [AI-powered E2E acceptance testing platform](https://www.muggletest.com).*
|
|
13
13
|
|
|
14
14
|
---
|
|
15
15
|
|
|
@@ -20,61 +20,92 @@ Your AI assistant writes code fast. But does the feature actually work? Does the
|
|
|
20
20
|
muggle-ai-works closes the gap between "code complete" and "actually works."
|
|
21
21
|
|
|
22
22
|
- **Catch UX regressions before your users do** — AI drives a real browser against your localhost across desktop and mobile resolutions, clicks through flows like a user would, and reports failures with step-by-step screenshots. No Playwright scripts to maintain.
|
|
23
|
-
- **Go from requirement to merged PR in one command** — `/muggle:muggle-do` handles the full cycle: code the feature, run unit tests,
|
|
23
|
+
- **Go from requirement to merged PR in one command** — `/muggle:muggle-do` handles the full cycle: code the feature, run unit tests, run E2E acceptance tests against the app in a real browser at multiple viewports, triage failures, and open a PR with evidence attached.
|
|
24
24
|
- **70+ MCP tools for custom workflows** — manage projects, generate test cases from plain English, replay test scripts, batch-run regressions, and publish results to your team. Works in Claude Code, Cursor, and any MCP client.
|
|
25
25
|
|
|
26
26
|
---
|
|
27
27
|
|
|
28
28
|
## Quick Start
|
|
29
29
|
|
|
30
|
-
### 1. Install
|
|
30
|
+
### 1. Install (choose your client)
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
**Claude Code (full plugin experience)**
|
|
33
33
|
|
|
34
34
|
```
|
|
35
35
|
/plugin marketplace add https://github.com/multiplex-ai/muggle-ai-works
|
|
36
36
|
/plugin install muggleai@muggle-works
|
|
37
37
|
```
|
|
38
38
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
```bash
|
|
42
|
-
npm install -g @muggleai/works
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
`npm install` updates the CLI and syncs `muggle-*` skills to `~/.cursor/skills/` for Cursor discovery. Claude slash commands are plugin-managed, so update those with `/plugin update muggleai@muggle-works`.
|
|
46
|
-
|
|
47
|
-
This installs the Muggle AI plugin with:
|
|
39
|
+
This installs:
|
|
48
40
|
|
|
49
41
|
- `/muggle:muggle` — command router and menu
|
|
50
42
|
- `/muggle:muggle-do` — autonomous dev pipeline (requirements to PR)
|
|
51
|
-
- `/muggle:muggle-test
|
|
43
|
+
- `/muggle:muggle-test` — change-driven E2E acceptance testing (local or remote, with PR posting)
|
|
44
|
+
- `/muggle:muggle-test-feature-local` — local quick E2E acceptance testing
|
|
52
45
|
- `/muggle:muggle-status` — health check for muggle-works plugins (Electron app, MCP server, and auth)
|
|
53
46
|
- `/muggle:muggle-repair` — diagnose and fix broken installation
|
|
54
47
|
- `/muggle:muggle-upgrade` — update to the latest version
|
|
55
48
|
- MCP server with 70+ tools (auto-started)
|
|
56
|
-
- Electron
|
|
49
|
+
- Electron browser test runner provisioning (via session hook)
|
|
50
|
+
|
|
51
|
+
**Cursor, Codex, Windsurf, and other MCP clients (MCP tools only)**
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
npm install -g @muggleai/works
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Then configure your MCP client:
|
|
58
|
+
|
|
59
|
+
```json
|
|
60
|
+
{
|
|
61
|
+
"mcpServers": {
|
|
62
|
+
"muggle": {
|
|
63
|
+
"command": "muggle",
|
|
64
|
+
"args": ["serve"],
|
|
65
|
+
"env": {
|
|
66
|
+
"MUGGLE_MCP_PROMPT_SERVICE_TARGET": "production"
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
`npm install` also syncs `muggle-*` skills to `~/.cursor/skills/` for Cursor discovery. Claude slash commands are plugin-managed, so update those with `/plugin update muggleai@muggle-works`.
|
|
57
74
|
|
|
58
75
|
### 2. Verify
|
|
59
76
|
|
|
77
|
+
**Claude Code**
|
|
78
|
+
|
|
60
79
|
```
|
|
61
80
|
/muggle:muggle-status
|
|
62
81
|
```
|
|
63
82
|
|
|
64
|
-
This checks Electron
|
|
83
|
+
This checks Electron browser test runner, MCP server health, and authentication. If anything is broken, run `/muggle:muggle-repair`.
|
|
84
|
+
|
|
85
|
+
**Cursor/Codex/Windsurf/other MCP clients**
|
|
86
|
+
|
|
87
|
+
Run any `muggle-*` MCP tool from your client after adding the MCP server config above. Authentication starts automatically on first protected tool call.
|
|
65
88
|
|
|
66
89
|
### 3. Start building features
|
|
67
90
|
|
|
91
|
+
**Claude Code**
|
|
92
|
+
|
|
68
93
|
Describe what you want to build:
|
|
69
94
|
|
|
70
95
|
```
|
|
71
96
|
/muggle:muggle-do "Add a logout button to the header"
|
|
72
97
|
```
|
|
73
98
|
|
|
74
|
-
The AI handles the full cycle: code the feature, run unit tests,
|
|
99
|
+
The AI handles the full cycle: code the feature, run unit tests, run E2E acceptance tests against the app in a real browser, and open a PR with results.
|
|
100
|
+
|
|
101
|
+
**Cursor/Codex/Windsurf/other MCP clients**
|
|
102
|
+
|
|
103
|
+
Use the direct MCP workflow section below to call `muggle-*` tools from your client.
|
|
75
104
|
|
|
76
105
|
### 4. Test a feature locally
|
|
77
106
|
|
|
107
|
+
**Claude Code**
|
|
108
|
+
|
|
78
109
|
Already have code running on localhost? Test it directly:
|
|
79
110
|
|
|
80
111
|
```
|
|
@@ -83,6 +114,10 @@ Already have code running on localhost? Test it directly:
|
|
|
83
114
|
|
|
84
115
|
Describe what to test in plain English. The AI finds or creates test cases, launches a real browser, and reports results with screenshots.
|
|
85
116
|
|
|
117
|
+
**Cursor/Codex/Windsurf/other MCP clients**
|
|
118
|
+
|
|
119
|
+
Call local execution MCP tools directly (for example `muggle-local-execute-test-script-replay` or related `muggle-local-*` commands exposed by your client).
|
|
120
|
+
|
|
86
121
|
---
|
|
87
122
|
|
|
88
123
|
## How does it work?
|
|
@@ -108,7 +143,7 @@ Your AI assistant describes what to test
|
|
|
108
143
|
muggle-remote-* tools create test cases in cloud
|
|
109
144
|
│
|
|
110
145
|
v
|
|
111
|
-
muggle-local-execute-test-generation launches the
|
|
146
|
+
muggle-local-execute-test-generation launches the browser test runner
|
|
112
147
|
│
|
|
113
148
|
v
|
|
114
149
|
AI agent drives the browser step-by-step (click, type, navigate, assert)
|
|
@@ -120,7 +155,7 @@ Screenshots captured per step → action-script.json recorded
|
|
|
120
155
|
Results: pass/fail with evidence at ~/.muggle-ai/sessions/{runId}/
|
|
121
156
|
│
|
|
122
157
|
v
|
|
123
|
-
muggle-local-publish-test-script uploads to cloud
|
|
158
|
+
muggle-local-publish-test-script uploads to cloud → returns viewUrl to open dashboard
|
|
124
159
|
```
|
|
125
160
|
|
|
126
161
|
---
|
|
@@ -140,7 +175,7 @@ Describe what to test in English. The AI finds the right project and test cases,
|
|
|
140
175
|
2. Found project: "My App"
|
|
141
176
|
3. Found use case: "User Login"
|
|
142
177
|
4. Found 2 test cases — recommend replay (minor changes detected)
|
|
143
|
-
5. Launching
|
|
178
|
+
5. Launching browser test runner... (approve? y)
|
|
144
179
|
6. Results: 2/2 PASS
|
|
145
180
|
Screenshots: ~/.muggle-ai/sessions/abc123/screenshots/
|
|
146
181
|
7. Publish to cloud? (y)
|
|
@@ -148,7 +183,7 @@ Describe what to test in English. The AI finds the right project and test cases,
|
|
|
148
183
|
|
|
149
184
|
### 2. `/muggle:muggle-do` — Autonomous dev pipeline
|
|
150
185
|
|
|
151
|
-
Full development cycle: requirements to PR in one command. The AI codes the feature, writes unit tests, runs
|
|
186
|
+
Full development cycle: requirements to PR in one command. The AI codes the feature, writes unit tests, runs E2E acceptance tests against your running app, and opens a PR.
|
|
152
187
|
|
|
153
188
|
```
|
|
154
189
|
> /muggle:muggle-do "Add a logout button to the header"
|
|
@@ -158,7 +193,7 @@ IMPACT → frontend repo, src/components/Header.tsx
|
|
|
158
193
|
VALIDATE → Branch: feat/add-logout, 1 commit
|
|
159
194
|
CODING → (writes/fixes code)
|
|
160
195
|
UNIT_TESTS → 12/12 pass
|
|
161
|
-
|
|
196
|
+
E2E acceptance → 3/3 test cases pass
|
|
162
197
|
OPEN_PRS → PR #42 opened
|
|
163
198
|
DONE → 1 iteration, all green
|
|
164
199
|
```
|
|
@@ -166,24 +201,24 @@ DONE → 1 iteration, all green
|
|
|
166
201
|
- Session-based with crash recovery (`.muggle-do/sessions/`)
|
|
167
202
|
- Auto-triage: analyzes failures and loops back to fix (max 3 iterations)
|
|
168
203
|
- Multi-repo support via `muggle-repos.json`
|
|
169
|
-
- PRs include
|
|
204
|
+
- PRs include E2E acceptance results and screenshots in the description
|
|
170
205
|
|
|
171
|
-
### 3. Direct MCP tool calls — Build your own
|
|
206
|
+
### 3. Direct MCP tool calls — Build your own E2E acceptance workflow
|
|
172
207
|
|
|
173
|
-
Use any of the 70+ MCP tools directly from your AI assistant. This is the lowest-level option and the most flexible for building custom
|
|
208
|
+
Use any of the 70+ MCP tools directly from your AI assistant. This is the lowest-level option and the most flexible for building custom E2E acceptance workflows.
|
|
174
209
|
|
|
175
210
|
```
|
|
176
211
|
"Create a project called My App with URL https://myapp.com"
|
|
177
212
|
"Generate test cases for the checkout flow"
|
|
178
213
|
"Replay all test scripts against localhost:3000"
|
|
179
|
-
"Show me the latest
|
|
214
|
+
"Show me the latest E2E acceptance results"
|
|
180
215
|
```
|
|
181
216
|
|
|
182
217
|
---
|
|
183
218
|
|
|
184
219
|
## What MCP tools are included?
|
|
185
220
|
|
|
186
|
-
muggle-ai-works provides 70+ MCP tools organized into 8 categories: authentication, project management, use cases, test cases, test scripts, local execution, reports, and administration. These tools power all AI testing automation workflows — from one-off browser checks to full
|
|
221
|
+
muggle-ai-works provides 70+ MCP tools organized into 8 categories: authentication, project management, use cases, test cases, test scripts, local execution, reports, and administration. These tools power all AI testing automation workflows — from one-off browser checks to full E2E acceptance automation pipelines.
|
|
187
222
|
|
|
188
223
|
Authentication (muggle-remote-auth-*)
|
|
189
224
|
|
|
@@ -201,7 +236,7 @@ Project Management (muggle-remote-project-*)
|
|
|
201
236
|
|
|
202
237
|
| Tool | Purpose |
|
|
203
238
|
| ------------------------------ | ------------------- |
|
|
204
|
-
| `muggle-remote-project-create` | Create
|
|
239
|
+
| `muggle-remote-project-create` | Create E2E acceptance test project |
|
|
205
240
|
| `muggle-remote-project-list` | List all projects |
|
|
206
241
|
| `muggle-remote-project-get` | Get project details |
|
|
207
242
|
| `muggle-remote-project-update` | Update project |
|
|
@@ -250,13 +285,13 @@ Local Execution (muggle-local-*)
|
|
|
250
285
|
|
|
251
286
|
| Tool | Purpose |
|
|
252
287
|
| -------------------------------------- | ---------------------------------- |
|
|
253
|
-
| `muggle-local-check-status` | Check local
|
|
288
|
+
| `muggle-local-check-status` | Check local browser test runner status |
|
|
254
289
|
| `muggle-local-execute-test-generation` | Generate test script locally |
|
|
255
290
|
| `muggle-local-execute-replay` | Replay existing script locally |
|
|
256
291
|
| `muggle-local-cancel-execution` | Cancel active execution |
|
|
257
292
|
| `muggle-local-run-result-list` | List run results |
|
|
258
293
|
| `muggle-local-run-result-get` | Get detailed results + screenshots |
|
|
259
|
-
| `muggle-local-publish-test-script` | Publish script to cloud
|
|
294
|
+
| `muggle-local-publish-test-script` | Publish script to cloud, returns `viewUrl` |
|
|
260
295
|
|
|
261
296
|
|
|
262
297
|
Reports and Analytics (muggle-remote-report-*)
|
|
@@ -285,18 +320,18 @@ Administration (PRD, secrets, billing, scheduling)
|
|
|
285
320
|
|
|
286
321
|
## Works with muggle-ai-teams
|
|
287
322
|
|
|
288
|
-
[muggle-ai-teams](https://github.com/multiplex-ai/muggle-ai-teams) is the companion package for agent orchestration, workflow steps, and delivery. When both packages are installed, muggle-ai-teams automatically integrates
|
|
323
|
+
[muggle-ai-teams](https://github.com/multiplex-ai/muggle-ai-teams) is the companion package for agent orchestration, workflow steps, and delivery. When both packages are installed, muggle-ai-teams automatically integrates E2E acceptance testing into the development workflow at each stage.
|
|
289
324
|
|
|
290
325
|
|
|
291
326
|
| Workflow Step | What Happens |
|
|
292
327
|
| ------------- | ------------------------------------------------------- |
|
|
293
|
-
| **Plan** |
|
|
294
|
-
| **Build** | Per-slice
|
|
328
|
+
| **Plan** | E2E acceptance test instructions written per implementation slice |
|
|
329
|
+
| **Build** | Per-slice E2E acceptance tests via muggle-ai-works before each commit |
|
|
295
330
|
| **Verify** | Full regression sweep replaying all project scripts |
|
|
296
|
-
| **Ship** |
|
|
331
|
+
| **Ship** | E2E results published to cloud, linked in PR description |
|
|
297
332
|
|
|
298
333
|
|
|
299
|
-
Frontend slices get browser
|
|
334
|
+
Frontend slices get browser E2E tests. Backend-only slices are verified by unit tests (browser E2E skipped with documented reasoning).
|
|
300
335
|
|
|
301
336
|
Install both: `npm install @muggleai/works @muggleai/teams`
|
|
302
337
|
|
|
@@ -305,7 +340,7 @@ Install both: `npm install @muggleai/works @muggleai/teams`
|
|
|
305
340
|
|
|
306
341
|
| Package | Purpose | Install |
|
|
307
342
|
| ---------------------------------------------------------------------- | ----------------------------------------------- | --------------------------------------- |
|
|
308
|
-
| **muggle-ai-works** (this repo) |
|
|
343
|
+
| **muggle-ai-works** (this repo) | E2E acceptance testing MCP server + autonomous dev pipeline | `/plugin install muggleai@muggle-works` |
|
|
309
344
|
| **[muggle-ai-teams](https://github.com/multiplex-ai/muggle-ai-teams)** | Agent orchestration, workflow, skills, rules | `npm install @muggleai/teams` |
|
|
310
345
|
|
|
311
346
|
|
|
@@ -318,11 +353,11 @@ Want the full platform experience? [MuggleTest](https://www.muggletest.com) give
|
|
|
318
353
|
```bash
|
|
319
354
|
# Server (main command — starts MCP server for AI clients)
|
|
320
355
|
muggle serve # Start with all tools (default)
|
|
321
|
-
muggle serve --
|
|
322
|
-
muggle serve --local # Local
|
|
356
|
+
muggle serve --e2e # Cloud E2E tools only (muggle-remote-*)
|
|
357
|
+
muggle serve --local # Local E2E tools only (muggle-local-*)
|
|
323
358
|
|
|
324
359
|
# Setup and Diagnostics
|
|
325
|
-
muggle setup # Download/update
|
|
360
|
+
muggle setup # Download/update browser test runner
|
|
326
361
|
muggle setup --force # Force re-download
|
|
327
362
|
muggle doctor # Diagnose installation issues
|
|
328
363
|
|
|
@@ -378,12 +413,12 @@ Data directory structure (~/.muggle-ai/)
|
|
|
378
413
|
├── oauth-session.json # OAuth tokens (short-lived, auto-refresh)
|
|
379
414
|
├── api-key.json # Long-lived API key for service calls
|
|
380
415
|
├── projects/ # Local project cache
|
|
381
|
-
├── sessions/ #
|
|
416
|
+
├── sessions/ # E2E test sessions
|
|
382
417
|
│ └── {runId}/
|
|
383
418
|
│ ├── action-script.json # Recorded browser steps
|
|
384
419
|
│ ├── results.md # Step-by-step report
|
|
385
420
|
│ └── screenshots/ # Per-step images
|
|
386
|
-
└── electron-app/ # Downloaded
|
|
421
|
+
└── electron-app/ # Downloaded browser test runner
|
|
387
422
|
└── {version}/
|
|
388
423
|
```
|
|
389
424
|
|
|
@@ -391,7 +426,7 @@ Data directory structure (~/.muggle-ai/)
|
|
|
391
426
|
|
|
392
427
|
## What AI clients does it work with?
|
|
393
428
|
|
|
394
|
-
Full support for Claude Code.
|
|
429
|
+
Full support for Claude Code. Cursor, Codex, Windsurf, and other MCP-compatible clients use the same MCP tools but do not support Claude plugin slash commands (`/muggle:*`).
|
|
395
430
|
|
|
396
431
|
Platform compatibility table
|
|
397
432
|
|
|
@@ -413,7 +448,7 @@ Troubleshooting
|
|
|
413
448
|
|
|
414
449
|
**Fix**: Set the correct `MUGGLE_MCP_PROMPT_SERVICE_TARGET` in your MCP config and restart your client.
|
|
415
450
|
|
|
416
|
-
###
|
|
451
|
+
### Browser test runner not found
|
|
417
452
|
|
|
418
453
|
```bash
|
|
419
454
|
muggle setup --force # Re-download
|
|
@@ -432,7 +467,7 @@ muggle login # Fresh login
|
|
|
432
467
|
|
|
433
468
|
## About
|
|
434
469
|
|
|
435
|
-
Built by the team behind [MuggleTest](https://www.muggletest.com) — [AI-powered
|
|
470
|
+
Built by the team behind [MuggleTest](https://www.muggletest.com) — [AI-powered E2E acceptance testing](https://www.muggletest.com) for teams who ship fast.
|
|
436
471
|
|
|
437
472
|
Repository structure
|
|
438
473
|
|
|
@@ -464,8 +499,11 @@ muggle-ai-works/
|
|
|
464
499
|
├── scripts/ # Build and release
|
|
465
500
|
│ ├── build-plugin.mjs # Assembles dist/plugin/ from plugin/ source
|
|
466
501
|
│ ├── verify-plugin-marketplace.mjs # Validates plugin/marketplace consistency
|
|
502
|
+
│ ├── verify-compatibility-contracts.mjs # Validates long-term surface contracts
|
|
503
|
+
│ ├── verify-upgrade-experience.mjs # Validates in-place upgrade behavior
|
|
467
504
|
│ └── postinstall.mjs # npm postinstall (Electron app download)
|
|
468
505
|
│
|
|
506
|
+
├── config/compatibility/ # Contract baselines (CLI/MCP/plugin/skills)
|
|
469
507
|
├── bin/ # CLI entrypoint (muggle.js → dist/cli.js)
|
|
470
508
|
├── dist/ # Build output (gitignored)
|
|
471
509
|
├── .claude-plugin/ # Marketplace catalog (marketplace.json)
|
|
@@ -479,6 +517,9 @@ pnpm install # Install dependencies
|
|
|
479
517
|
pnpm run build # Build (tsup + plugin artifact)
|
|
480
518
|
pnpm run build:plugin # Rebuild plugin artifact only
|
|
481
519
|
pnpm run verify:plugin # Validate plugin/marketplace metadata consistency
|
|
520
|
+
pnpm run verify:contracts # Validate compatibility contracts (CLI/MCP/plugin/skills)
|
|
521
|
+
pnpm run verify:electron-release-checksums # Ensure checksums.txt exists for bundled electron release
|
|
522
|
+
pnpm run verify:upgrade-experience # Validate existing-user cleanup + re-download flow
|
|
482
523
|
pnpm run dev # Dev mode (watch)
|
|
483
524
|
pnpm test # Run tests
|
|
484
525
|
pnpm run lint # Lint (auto-fix)
|
|
@@ -491,16 +532,25 @@ CI/CD and publishing
|
|
|
491
532
|
|
|
492
533
|
| Workflow | Trigger | Description |
|
|
493
534
|
| ------------------- | ------------------- | ------------------------------------------------------------ |
|
|
494
|
-
| `ci.yml` | Push/PR to `master` | Lint, test, build, plugin verification on multiple platforms |
|
|
495
|
-
| `
|
|
535
|
+
| `ci.yml` | Push/PR to `master` | Lint, test, build, plugin + compatibility contract verification on multiple platforms |
|
|
536
|
+
| `verify-end-user-upgrade.yml` | Weekly + manual | Existing-user upgrade validation (cleanup + re-download + health checks) |
|
|
537
|
+
| `publish-works-to-npm.yml` | Tag `v*` or manual | Verify (including release checksums), audit, smoke-install, publish to npm |
|
|
496
538
|
|
|
497
539
|
|
|
498
540
|
```bash
|
|
499
541
|
git tag v<version> && git push --tags
|
|
500
|
-
# publish-works.yml handles the rest
|
|
542
|
+
# publish-works-to-npm.yml handles the rest
|
|
501
543
|
```
|
|
502
544
|
|
|
503
545
|
|
|
546
|
+
Release tag strategy
|
|
547
|
+
|
|
548
|
+
- `electron-app-vX.Y.Z` tags in `muggle-ai-works` are for public Electron app binary releases (consumed by `muggle setup`, `muggle upgrade`, and npm postinstall).
|
|
549
|
+
- `vX.Y.Z` tags in `muggle-ai-works` are for npm publishing of `@muggleai/works` (`publish-works-to-npm.yml`).
|
|
550
|
+
- `muggle-ai-teaching-service` builds Electron artifacts and publishes them into this public repo using `electron-app-vX.Y.Z`, so binaries are publicly downloadable.
|
|
551
|
+
- The two version tracks are intentionally separate: runtime Electron artifact versions and npm package versions can move independently.
|
|
552
|
+
|
|
553
|
+
|
|
504
554
|
Optimizing agent-facing descriptions
|
|
505
555
|
|
|
506
556
|
|
|
@@ -529,7 +579,7 @@ This is an **internal-only skill** (not published to customers). It covers:
|
|
|
529
579
|
| Hook config | `plugin/hooks/hooks.json` |
|
|
530
580
|
| Skill descriptions | `plugin/skills/*/SKILL.md` |
|
|
531
581
|
| Tool descriptions (local) | `packages/mcps/src/mcp/tools/local/tool-registry.ts` |
|
|
532
|
-
| Tool descriptions (cloud) | `packages/mcps/src/mcp/tools/
|
|
582
|
+
| Tool descriptions (cloud) | `packages/mcps/src/mcp/tools/e2e/tool-registry.ts` |
|
|
533
583
|
| Plugin metadata | `plugin/.claude-plugin/plugin.json` |
|
|
534
584
|
|
|
535
585
|
**Quick eval run:**
|