@muggleai/works 4.2.2 → 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 +45 -37
- package/dist/{chunk-BZJXQZ5Q.js → chunk-23NOSJFH.js} +247 -172
- 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 +1 -1
- 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 +1 -1
- 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/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,7 +20,7 @@ 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
|
---
|
|
@@ -40,12 +40,13 @@ This installs:
|
|
|
40
40
|
|
|
41
41
|
- `/muggle:muggle` — command router and menu
|
|
42
42
|
- `/muggle:muggle-do` — autonomous dev pipeline (requirements to PR)
|
|
43
|
-
- `/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
|
|
44
45
|
- `/muggle:muggle-status` — health check for muggle-works plugins (Electron app, MCP server, and auth)
|
|
45
46
|
- `/muggle:muggle-repair` — diagnose and fix broken installation
|
|
46
47
|
- `/muggle:muggle-upgrade` — update to the latest version
|
|
47
48
|
- MCP server with 70+ tools (auto-started)
|
|
48
|
-
- Electron
|
|
49
|
+
- Electron browser test runner provisioning (via session hook)
|
|
49
50
|
|
|
50
51
|
**Cursor, Codex, Windsurf, and other MCP clients (MCP tools only)**
|
|
51
52
|
|
|
@@ -79,7 +80,7 @@ Then configure your MCP client:
|
|
|
79
80
|
/muggle:muggle-status
|
|
80
81
|
```
|
|
81
82
|
|
|
82
|
-
This checks Electron
|
|
83
|
+
This checks Electron browser test runner, MCP server health, and authentication. If anything is broken, run `/muggle:muggle-repair`.
|
|
83
84
|
|
|
84
85
|
**Cursor/Codex/Windsurf/other MCP clients**
|
|
85
86
|
|
|
@@ -95,7 +96,7 @@ Describe what you want to build:
|
|
|
95
96
|
/muggle:muggle-do "Add a logout button to the header"
|
|
96
97
|
```
|
|
97
98
|
|
|
98
|
-
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.
|
|
99
100
|
|
|
100
101
|
**Cursor/Codex/Windsurf/other MCP clients**
|
|
101
102
|
|
|
@@ -142,7 +143,7 @@ Your AI assistant describes what to test
|
|
|
142
143
|
muggle-remote-* tools create test cases in cloud
|
|
143
144
|
│
|
|
144
145
|
v
|
|
145
|
-
muggle-local-execute-test-generation launches the
|
|
146
|
+
muggle-local-execute-test-generation launches the browser test runner
|
|
146
147
|
│
|
|
147
148
|
v
|
|
148
149
|
AI agent drives the browser step-by-step (click, type, navigate, assert)
|
|
@@ -174,7 +175,7 @@ Describe what to test in English. The AI finds the right project and test cases,
|
|
|
174
175
|
2. Found project: "My App"
|
|
175
176
|
3. Found use case: "User Login"
|
|
176
177
|
4. Found 2 test cases — recommend replay (minor changes detected)
|
|
177
|
-
5. Launching
|
|
178
|
+
5. Launching browser test runner... (approve? y)
|
|
178
179
|
6. Results: 2/2 PASS
|
|
179
180
|
Screenshots: ~/.muggle-ai/sessions/abc123/screenshots/
|
|
180
181
|
7. Publish to cloud? (y)
|
|
@@ -182,7 +183,7 @@ Describe what to test in English. The AI finds the right project and test cases,
|
|
|
182
183
|
|
|
183
184
|
### 2. `/muggle:muggle-do` — Autonomous dev pipeline
|
|
184
185
|
|
|
185
|
-
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.
|
|
186
187
|
|
|
187
188
|
```
|
|
188
189
|
> /muggle:muggle-do "Add a logout button to the header"
|
|
@@ -192,7 +193,7 @@ IMPACT → frontend repo, src/components/Header.tsx
|
|
|
192
193
|
VALIDATE → Branch: feat/add-logout, 1 commit
|
|
193
194
|
CODING → (writes/fixes code)
|
|
194
195
|
UNIT_TESTS → 12/12 pass
|
|
195
|
-
|
|
196
|
+
E2E acceptance → 3/3 test cases pass
|
|
196
197
|
OPEN_PRS → PR #42 opened
|
|
197
198
|
DONE → 1 iteration, all green
|
|
198
199
|
```
|
|
@@ -200,24 +201,24 @@ DONE → 1 iteration, all green
|
|
|
200
201
|
- Session-based with crash recovery (`.muggle-do/sessions/`)
|
|
201
202
|
- Auto-triage: analyzes failures and loops back to fix (max 3 iterations)
|
|
202
203
|
- Multi-repo support via `muggle-repos.json`
|
|
203
|
-
- PRs include
|
|
204
|
+
- PRs include E2E acceptance results and screenshots in the description
|
|
204
205
|
|
|
205
|
-
### 3. Direct MCP tool calls — Build your own
|
|
206
|
+
### 3. Direct MCP tool calls — Build your own E2E acceptance workflow
|
|
206
207
|
|
|
207
|
-
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.
|
|
208
209
|
|
|
209
210
|
```
|
|
210
211
|
"Create a project called My App with URL https://myapp.com"
|
|
211
212
|
"Generate test cases for the checkout flow"
|
|
212
213
|
"Replay all test scripts against localhost:3000"
|
|
213
|
-
"Show me the latest
|
|
214
|
+
"Show me the latest E2E acceptance results"
|
|
214
215
|
```
|
|
215
216
|
|
|
216
217
|
---
|
|
217
218
|
|
|
218
219
|
## What MCP tools are included?
|
|
219
220
|
|
|
220
|
-
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.
|
|
221
222
|
|
|
222
223
|
Authentication (muggle-remote-auth-*)
|
|
223
224
|
|
|
@@ -235,7 +236,7 @@ Project Management (muggle-remote-project-*)
|
|
|
235
236
|
|
|
236
237
|
| Tool | Purpose |
|
|
237
238
|
| ------------------------------ | ------------------- |
|
|
238
|
-
| `muggle-remote-project-create` | Create
|
|
239
|
+
| `muggle-remote-project-create` | Create E2E acceptance test project |
|
|
239
240
|
| `muggle-remote-project-list` | List all projects |
|
|
240
241
|
| `muggle-remote-project-get` | Get project details |
|
|
241
242
|
| `muggle-remote-project-update` | Update project |
|
|
@@ -284,7 +285,7 @@ Local Execution (muggle-local-*)
|
|
|
284
285
|
|
|
285
286
|
| Tool | Purpose |
|
|
286
287
|
| -------------------------------------- | ---------------------------------- |
|
|
287
|
-
| `muggle-local-check-status` | Check local
|
|
288
|
+
| `muggle-local-check-status` | Check local browser test runner status |
|
|
288
289
|
| `muggle-local-execute-test-generation` | Generate test script locally |
|
|
289
290
|
| `muggle-local-execute-replay` | Replay existing script locally |
|
|
290
291
|
| `muggle-local-cancel-execution` | Cancel active execution |
|
|
@@ -319,18 +320,18 @@ Administration (PRD, secrets, billing, scheduling)
|
|
|
319
320
|
|
|
320
321
|
## Works with muggle-ai-teams
|
|
321
322
|
|
|
322
|
-
[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.
|
|
323
324
|
|
|
324
325
|
|
|
325
326
|
| Workflow Step | What Happens |
|
|
326
327
|
| ------------- | ------------------------------------------------------- |
|
|
327
|
-
| **Plan** |
|
|
328
|
-
| **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 |
|
|
329
330
|
| **Verify** | Full regression sweep replaying all project scripts |
|
|
330
|
-
| **Ship** |
|
|
331
|
+
| **Ship** | E2E results published to cloud, linked in PR description |
|
|
331
332
|
|
|
332
333
|
|
|
333
|
-
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).
|
|
334
335
|
|
|
335
336
|
Install both: `npm install @muggleai/works @muggleai/teams`
|
|
336
337
|
|
|
@@ -339,7 +340,7 @@ Install both: `npm install @muggleai/works @muggleai/teams`
|
|
|
339
340
|
|
|
340
341
|
| Package | Purpose | Install |
|
|
341
342
|
| ---------------------------------------------------------------------- | ----------------------------------------------- | --------------------------------------- |
|
|
342
|
-
| **muggle-ai-works** (this repo) |
|
|
343
|
+
| **muggle-ai-works** (this repo) | E2E acceptance testing MCP server + autonomous dev pipeline | `/plugin install muggleai@muggle-works` |
|
|
343
344
|
| **[muggle-ai-teams](https://github.com/multiplex-ai/muggle-ai-teams)** | Agent orchestration, workflow, skills, rules | `npm install @muggleai/teams` |
|
|
344
345
|
|
|
345
346
|
|
|
@@ -352,11 +353,11 @@ Want the full platform experience? [MuggleTest](https://www.muggletest.com) give
|
|
|
352
353
|
```bash
|
|
353
354
|
# Server (main command — starts MCP server for AI clients)
|
|
354
355
|
muggle serve # Start with all tools (default)
|
|
355
|
-
muggle serve --
|
|
356
|
-
muggle serve --local # Local
|
|
356
|
+
muggle serve --e2e # Cloud E2E tools only (muggle-remote-*)
|
|
357
|
+
muggle serve --local # Local E2E tools only (muggle-local-*)
|
|
357
358
|
|
|
358
359
|
# Setup and Diagnostics
|
|
359
|
-
muggle setup # Download/update
|
|
360
|
+
muggle setup # Download/update browser test runner
|
|
360
361
|
muggle setup --force # Force re-download
|
|
361
362
|
muggle doctor # Diagnose installation issues
|
|
362
363
|
|
|
@@ -412,12 +413,12 @@ Data directory structure (~/.muggle-ai/)
|
|
|
412
413
|
├── oauth-session.json # OAuth tokens (short-lived, auto-refresh)
|
|
413
414
|
├── api-key.json # Long-lived API key for service calls
|
|
414
415
|
├── projects/ # Local project cache
|
|
415
|
-
├── sessions/ #
|
|
416
|
+
├── sessions/ # E2E test sessions
|
|
416
417
|
│ └── {runId}/
|
|
417
418
|
│ ├── action-script.json # Recorded browser steps
|
|
418
419
|
│ ├── results.md # Step-by-step report
|
|
419
420
|
│ └── screenshots/ # Per-step images
|
|
420
|
-
└── electron-app/ # Downloaded
|
|
421
|
+
└── electron-app/ # Downloaded browser test runner
|
|
421
422
|
└── {version}/
|
|
422
423
|
```
|
|
423
424
|
|
|
@@ -447,7 +448,7 @@ Troubleshooting
|
|
|
447
448
|
|
|
448
449
|
**Fix**: Set the correct `MUGGLE_MCP_PROMPT_SERVICE_TARGET` in your MCP config and restart your client.
|
|
449
450
|
|
|
450
|
-
###
|
|
451
|
+
### Browser test runner not found
|
|
451
452
|
|
|
452
453
|
```bash
|
|
453
454
|
muggle setup --force # Re-download
|
|
@@ -466,7 +467,7 @@ muggle login # Fresh login
|
|
|
466
467
|
|
|
467
468
|
## About
|
|
468
469
|
|
|
469
|
-
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.
|
|
470
471
|
|
|
471
472
|
Repository structure
|
|
472
473
|
|
|
@@ -498,8 +499,11 @@ muggle-ai-works/
|
|
|
498
499
|
├── scripts/ # Build and release
|
|
499
500
|
│ ├── build-plugin.mjs # Assembles dist/plugin/ from plugin/ source
|
|
500
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
|
|
501
504
|
│ └── postinstall.mjs # npm postinstall (Electron app download)
|
|
502
505
|
│
|
|
506
|
+
├── config/compatibility/ # Contract baselines (CLI/MCP/plugin/skills)
|
|
503
507
|
├── bin/ # CLI entrypoint (muggle.js → dist/cli.js)
|
|
504
508
|
├── dist/ # Build output (gitignored)
|
|
505
509
|
├── .claude-plugin/ # Marketplace catalog (marketplace.json)
|
|
@@ -513,6 +517,9 @@ pnpm install # Install dependencies
|
|
|
513
517
|
pnpm run build # Build (tsup + plugin artifact)
|
|
514
518
|
pnpm run build:plugin # Rebuild plugin artifact only
|
|
515
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
|
|
516
523
|
pnpm run dev # Dev mode (watch)
|
|
517
524
|
pnpm test # Run tests
|
|
518
525
|
pnpm run lint # Lint (auto-fix)
|
|
@@ -525,20 +532,21 @@ CI/CD and publishing
|
|
|
525
532
|
|
|
526
533
|
| Workflow | Trigger | Description |
|
|
527
534
|
| ------------------- | ------------------- | ------------------------------------------------------------ |
|
|
528
|
-
| `ci.yml` | Push/PR to `master` | Lint, test, build, plugin verification on multiple platforms |
|
|
529
|
-
| `
|
|
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 |
|
|
530
538
|
|
|
531
539
|
|
|
532
540
|
```bash
|
|
533
541
|
git tag v<version> && git push --tags
|
|
534
|
-
# publish-works.yml handles the rest
|
|
542
|
+
# publish-works-to-npm.yml handles the rest
|
|
535
543
|
```
|
|
536
544
|
|
|
537
545
|
|
|
538
546
|
Release tag strategy
|
|
539
547
|
|
|
540
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).
|
|
541
|
-
- `vX.Y.Z` tags in `muggle-ai-works` are for npm publishing of `@muggleai/works` (`publish-works.yml`).
|
|
549
|
+
- `vX.Y.Z` tags in `muggle-ai-works` are for npm publishing of `@muggleai/works` (`publish-works-to-npm.yml`).
|
|
542
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.
|
|
543
551
|
- The two version tracks are intentionally separate: runtime Electron artifact versions and npm package versions can move independently.
|
|
544
552
|
|
|
@@ -571,7 +579,7 @@ This is an **internal-only skill** (not published to customers). It covers:
|
|
|
571
579
|
| Hook config | `plugin/hooks/hooks.json` |
|
|
572
580
|
| Skill descriptions | `plugin/skills/*/SKILL.md` |
|
|
573
581
|
| Tool descriptions (local) | `packages/mcps/src/mcp/tools/local/tool-registry.ts` |
|
|
574
|
-
| Tool descriptions (cloud) | `packages/mcps/src/mcp/tools/
|
|
582
|
+
| Tool descriptions (cloud) | `packages/mcps/src/mcp/tools/e2e/tool-registry.ts` |
|
|
575
583
|
| Plugin metadata | `plugin/.claude-plugin/plugin.json` |
|
|
576
584
|
|
|
577
585
|
**Quick eval run:**
|