@rolepod/uiproof 0.5.0 → 0.6.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.
- package/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +2 -2
- package/.codex-plugin/plugin.json +3 -3
- package/.cursor-plugin/plugin.json +2 -2
- package/CHANGELOG.md +130 -0
- package/README.md +15 -0
- package/dist/bin/rolepod-uiproof.js +267 -28
- package/dist/bin/rolepod-uiproof.js.map +1 -1
- package/dist/index.d.ts +53 -9
- package/dist/index.js +267 -26
- package/dist/index.js.map +1 -1
- package/dist/schemas/tools.json +1 -1
- package/package.json +1 -1
- package/skills/audit-a11y/SKILL.md +9 -0
- package/skills/check-errors/SKILL.md +9 -0
- package/skills/scaffold-e2e/SKILL.md +9 -0
- package/skills/verify-ui/SKILL.md +9 -0
- package/skills/visual-diff/SKILL.md +9 -0
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
{
|
|
11
11
|
"name": "rolepod-uiproof",
|
|
12
12
|
"source": "./",
|
|
13
|
-
"description": "26 MCP tools (21 atomic browser/mobile primitives + 5 composite workflows) + 5 user-invocable skills.
|
|
14
|
-
"version": "0.
|
|
13
|
+
"description": "26 MCP tools (21 atomic browser/mobile primitives + 5 composite workflows) + 5 user-invocable skills. Works standalone today; pair with the `rolepod` parent plugin (detected via the marker file `<git-root>/.rolepod/parent-active`) and uiproof becomes the verify-phase UI provider — evidence routes to `<git-root>/.rolepod/evidence/` with `manifest.json` per Extension Protocol v1. Replaces chrome-devtools-mcp and playwright-mcp for UI testing. Web production-ready via Playwright; mobile (iOS/Android) via Appium scaffolded — see `rolepod-uiproof doctor` for readiness.",
|
|
14
|
+
"version": "0.6.1",
|
|
15
15
|
"author": {
|
|
16
16
|
"name": "nuttaruj"
|
|
17
17
|
},
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rolepod-uiproof",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Multi-platform UI/mobile automation for AI agents — 5 shipped skills (verify-ui, audit-a11y, visual-diff, scaffold-e2e, check-errors) + MCP server with 26 tools. v0.5
|
|
3
|
+
"version": "0.6.1",
|
|
4
|
+
"description": "Multi-platform UI/mobile automation for AI agents — 5 shipped skills (verify-ui, audit-a11y, visual-diff, scaffold-e2e, check-errors) + MCP server with 26 tools. Works standalone OR with the `rolepod` parent plugin: when the marker file `<git-root>/.rolepod/parent-active` is present (written by the parent's SessionStart hook), evidence routes to `<git-root>/.rolepod/evidence/` with a `manifest.json` per Extension Protocol v1, so parent's `check-work` skill can aggregate UI verify results into its phase report. v0.5 completed the UI verification surface (console + network observability, hover/drag/fill_form/upload/dialog, runtime emulation, multi-page, gated JS eval).",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "nuttaruj",
|
|
7
7
|
"url": "https://github.com/nuttaruj"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rolepod-uiproof",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Multi-platform UI/mobile automation for AI agents — 5 shipped skills (verify-ui, audit-a11y, visual-diff, scaffold-e2e, check-errors) + MCP server with 26 tools.
|
|
3
|
+
"version": "0.6.1",
|
|
4
|
+
"description": "Multi-platform UI/mobile automation for AI agents — 5 shipped skills (verify-ui, audit-a11y, visual-diff, scaffold-e2e, check-errors) + MCP server with 26 tools. Works standalone today; pair with the `rolepod` parent plugin (detected via the marker file `<git-root>/.rolepod/parent-active`) and uiproof becomes the verify-phase UI provider.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "nuttaruj",
|
|
7
7
|
"url": "https://github.com/nuttaruj"
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"interface": {
|
|
26
26
|
"displayName": "Rolepod UIProof",
|
|
27
27
|
"shortDescription": "UI verification, a11y audits, visual diff, e2e scaffolding — for AI coding agents.",
|
|
28
|
-
"longDescription": "rolepod-uiproof ships an MCP server with 26 tools (21 atomic + 5 composite) and 5 user-invocable skills (/verify-ui, /audit-a11y, /visual-diff, /scaffold-e2e, /check-errors). Web is fully supported via Playwright; mobile (iOS/Android via Appium) supports basic input. v0.
|
|
28
|
+
"longDescription": "rolepod-uiproof ships an MCP server with 26 tools (21 atomic + 5 composite) and 5 user-invocable skills (/verify-ui, /audit-a11y, /visual-diff, /scaffold-e2e, /check-errors). Web is fully supported via Playwright; mobile (iOS/Android via Appium) supports basic input. v0.6.1: pair with the `rolepod` parent plugin (v2.7+) and uiproof becomes the verify-phase UI provider — evidence routes to `<git-root>/.rolepod/evidence/` with a `manifest.json` per Extension Protocol v1. Parent detection uses the marker file `<git-root>/.rolepod/parent-active`.",
|
|
29
29
|
"developerName": "nuttaruj",
|
|
30
30
|
"category": "Productivity",
|
|
31
31
|
"capabilities": ["Read", "Write", "Bash"],
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rolepod-uiproof",
|
|
3
3
|
"displayName": "Rolepod UIProof",
|
|
4
|
-
"version": "0.
|
|
5
|
-
"description": "Multi-platform UI / mobile automation MCP server + 5 shipped skills (verify-ui, audit-a11y, visual-diff, scaffold-e2e, check-errors) for AI coding agents.
|
|
4
|
+
"version": "0.6.1",
|
|
5
|
+
"description": "Multi-platform UI / mobile automation MCP server + 5 shipped skills (verify-ui, audit-a11y, visual-diff, scaffold-e2e, check-errors) for AI coding agents. Works standalone today; pair with the `rolepod` parent plugin (detected via the marker file `<git-root>/.rolepod/parent-active`) and uiproof becomes the verify-phase UI provider — evidence routes to `<git-root>/.rolepod/evidence/` with `manifest.json` per Extension Protocol v1. Replaces chrome-devtools-mcp and playwright-mcp.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "nuttaruj"
|
|
8
8
|
},
|
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,136 @@ release.
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.6.1] — 2026-05-28
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
- **Extension Protocol v1 detection** swapped from environment variable
|
|
15
|
+
(`ROLEPOD_PARENT=1`) to filesystem marker
|
|
16
|
+
(`<git-root>/.rolepod/parent-active`). The env-var mechanism never
|
|
17
|
+
fired in practice because Claude Code SessionStart hooks cannot
|
|
18
|
+
propagate env to the Bash tool or to the MCP server subprocess
|
|
19
|
+
Claude later spawns. The marker file is what the parent v2.7+ hook
|
|
20
|
+
actually writes — v0.6.1 reads it. **End-to-end combined mode now
|
|
21
|
+
works.**
|
|
22
|
+
- Same swap for the protocol-version compatibility warning. Previously
|
|
23
|
+
read `process.env.ROLEPOD_PROTOCOL`; now reads the first trimmed
|
|
24
|
+
line of the marker file content.
|
|
25
|
+
|
|
26
|
+
### Added
|
|
27
|
+
|
|
28
|
+
- `src/util/rolepodProtocol.ts` — shared `detectRolepodParent()`
|
|
29
|
+
helper returning `{ active, protocol, gitRoot }`. ArtifactStore and
|
|
30
|
+
the server both call it.
|
|
31
|
+
|
|
32
|
+
### Changed
|
|
33
|
+
|
|
34
|
+
- With-parent runs anchor at **git root** (resolved via
|
|
35
|
+
`git rev-parse --show-toplevel`), not at `process.cwd()`. A uiproof
|
|
36
|
+
skill invoked from a subdirectory now lands its evidence under the
|
|
37
|
+
worktree root where parent's `check-work` skill looks — previously
|
|
38
|
+
it would have landed at `<cwd>/.rolepod/evidence/` and been
|
|
39
|
+
invisible to the aggregator.
|
|
40
|
+
- Standalone path is unchanged — still anchored at `process.cwd()`.
|
|
41
|
+
- All 5 SKILL.md files (+ mirrors under `plugins/`) updated to
|
|
42
|
+
describe the marker mechanism instead of the env var.
|
|
43
|
+
- README "Standalone vs Combined" section updated with the marker
|
|
44
|
+
language and the `touch .rolepod/parent-active` force-on hint.
|
|
45
|
+
|
|
46
|
+
### Removed
|
|
47
|
+
|
|
48
|
+
- All reads of `process.env.ROLEPOD_PARENT` and
|
|
49
|
+
`process.env.ROLEPOD_PROTOCOL` from runtime code. Only historical
|
|
50
|
+
references remain in JSDoc that explains why the mechanism changed.
|
|
51
|
+
|
|
52
|
+
### Migration from 0.6.0
|
|
53
|
+
|
|
54
|
+
No API change. Standalone users see no difference (same evidence
|
|
55
|
+
path, same tool output, same `manifest.json`). Combined-mode users
|
|
56
|
+
gain working evidence routing — provided the parent plugin actually
|
|
57
|
+
writes the marker (parent v2.7+ does).
|
|
58
|
+
|
|
59
|
+
To force combined mode without a real parent session:
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
mkdir -p .rolepod && echo v1 > .rolepod/parent-active
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
To force standalone:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
rm -f .rolepod/parent-active
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## [0.6.0] — 2026-05-27
|
|
72
|
+
|
|
73
|
+
**Extension Protocol v1 — `uiproof` becomes parent-aware. Standalone
|
|
74
|
+
behavior unchanged.**
|
|
75
|
+
|
|
76
|
+
When the parent `rolepod` plugin (v2.7+) sets `ROLEPOD_PARENT=1` via
|
|
77
|
+
its SessionStart hook, uiproof routes evidence to the shared
|
|
78
|
+
`.rolepod/evidence/` tree and emits a `manifest.json` per spec so the
|
|
79
|
+
parent's `check-work` skill can aggregate UI verify results into its
|
|
80
|
+
phase report. With no parent installed the v0.5 behavior is preserved
|
|
81
|
+
exactly — same artifact path, same tool output, plus a `manifest.json`
|
|
82
|
+
in each run dir as a bonus.
|
|
83
|
+
|
|
84
|
+
### Added
|
|
85
|
+
|
|
86
|
+
- **Env-aware evidence path** in `ArtifactStore`. Detected at
|
|
87
|
+
construction from `process.env.ROLEPOD_PARENT === "1"`.
|
|
88
|
+
- standalone: `.rolepod-uiproof/artifacts/{prefix}_{ts}_{uuid}/`
|
|
89
|
+
- with-parent: `.rolepod/evidence/{ts}-rolepod-uiproof-{skill}/`
|
|
90
|
+
- **`manifest.json`** written by every composite that starts a run
|
|
91
|
+
(`verify_ui_flow`, `audit_a11y`, `visual_diff`, `scaffold_e2e`).
|
|
92
|
+
Schema follows Extension Protocol v1: `protocol`, `plugin`, `skill`,
|
|
93
|
+
`phase`, `status`, `summary`, `started_at`, `finished_at`,
|
|
94
|
+
`artifacts: [{type, path}]`, `metadata`. Best-effort: any IO failure
|
|
95
|
+
is logged but never thrown.
|
|
96
|
+
- **Graduated a11y status**. `audit_a11y` manifest carries `status`:
|
|
97
|
+
`critical/serious > 0 → fail`, `moderate/minor > 0 → warn`, no
|
|
98
|
+
issues → `pass`. Keeps the `warn` signal a strict pass/fail would
|
|
99
|
+
discard.
|
|
100
|
+
- **Protocol version check**. When `ROLEPOD_PROTOCOL` is set but
|
|
101
|
+
does not equal `v1`, `buildServer()` logs a one-shot warning. Does
|
|
102
|
+
not block; manifest is still written in v1 shape.
|
|
103
|
+
- **`/check-errors` evidence routing doc** alongside the other 4
|
|
104
|
+
skills.
|
|
105
|
+
|
|
106
|
+
### Changed
|
|
107
|
+
|
|
108
|
+
- `ArtifactStore.startRun(prefix, opts?)` — `opts.skill` is new and
|
|
109
|
+
optional. Provides the canonical skill name for both the
|
|
110
|
+
with-parent dirname and the manifest's `skill` field. Return shape
|
|
111
|
+
extended with `skill` and `mode` (back-compat: existing destructuring
|
|
112
|
+
of `{ runId, runDir }` keeps working).
|
|
113
|
+
- `buildServer()` log line surfaces `protocol: "v1"` and
|
|
114
|
+
`mode: "standalone" | "with-parent"` alongside the existing version
|
|
115
|
+
+ tools list.
|
|
116
|
+
- All 5 shipped skills' SKILL.md gained an "Evidence routing" section
|
|
117
|
+
between "Process" / "Outputs" and "If the tool is unavailable".
|
|
118
|
+
Mirrored to `plugins/rolepod-uiproof/skills/`.
|
|
119
|
+
- README "Standalone vs Combined" section added explaining the two
|
|
120
|
+
modes.
|
|
121
|
+
|
|
122
|
+
### Behavior
|
|
123
|
+
|
|
124
|
+
- **Standalone:** unchanged. Evidence still written to
|
|
125
|
+
`.rolepod-uiproof/artifacts/`. New: a `manifest.json` appears in each
|
|
126
|
+
run dir. Tool return values gain an optional `manifest: "<path>"`
|
|
127
|
+
field; everything else is byte-for-byte identical.
|
|
128
|
+
- **With rolepod parent:** evidence written to
|
|
129
|
+
`.rolepod/evidence/<ts>-rolepod-uiproof-<skill>/` with `manifest.json`
|
|
130
|
+
per protocol spec. Visual baselines stay in
|
|
131
|
+
`.rolepod-uiproof/baselines/` regardless of mode.
|
|
132
|
+
|
|
133
|
+
### Non-goals (kept out of v0.6)
|
|
134
|
+
|
|
135
|
+
- Dynamic capabilities registry (`.claude-plugin/capabilities.json`)
|
|
136
|
+
- Protocol version negotiation beyond a single warn
|
|
137
|
+
- Cross-child coordination (uiproof ↔ wplab handoff inside one run)
|
|
138
|
+
- Mobile platform support stays at the v0.5 partial level
|
|
139
|
+
|
|
10
140
|
## [0.5.0] — 2026-05-27
|
|
11
141
|
|
|
12
142
|
**Complete UI verification surface — one MCP replaces chrome-devtools-mcp
|
package/README.md
CHANGED
|
@@ -27,6 +27,21 @@ One MCP server, one tool surface, five skills you invoke from chat. Web is produ
|
|
|
27
27
|
|
|
28
28
|
Every skill is **single-backend** (D-024) — it calls the rolepod-uiproof server and only the rolepod-uiproof server. If the server is unavailable, the skill fails with a clear diagnostic. Multi-backend routing belongs in the parent [`rolepod`](https://github.com/nuttaruj/rolepod) plugin's phase skills, not here.
|
|
29
29
|
|
|
30
|
+
## Standalone vs Combined
|
|
31
|
+
|
|
32
|
+
`rolepod-uiproof` works either as a **standalone** browser MCP for any project, or **combined** with the [`rolepod`](https://github.com/nuttaruj/rolepod) parent plugin (v2.7+) where it becomes the Verify phase provider for UI artifacts.
|
|
33
|
+
|
|
34
|
+
**Standalone** (default): use the 5 skills directly as atomic browser tools. Evidence saved under `./.rolepod-uiproof/artifacts/<run>/` with a `manifest.json` per Extension Protocol v1.
|
|
35
|
+
|
|
36
|
+
**Combined with rolepod parent**: when the parent's SessionStart hook drops the marker file `<git-root>/.rolepod/parent-active` (single line of content = the protocol version, e.g. `v1`), uiproof writes evidence to `<git-root>/.rolepod/evidence/<ts>-rolepod-uiproof-<skill>/` instead, where parent's `check-work` skill auto-aggregates manifests into the verify report. The marker is read fresh per ArtifactStore construction; no env-var, no daemon. To force combined mode without a parent session: `mkdir -p .rolepod && echo v1 > .rolepod/parent-active`. No skill changes — same 26 tools, same 5 skills, smarter routing.
|
|
37
|
+
|
|
38
|
+
| Install | Unlocks |
|
|
39
|
+
|---|---|
|
|
40
|
+
| uiproof alone | Browser test, a11y audit, visual diff, e2e scaffold, error gate |
|
|
41
|
+
| uiproof + rolepod parent | + verify-phase aggregation, evidence handoff to `check-work` |
|
|
42
|
+
|
|
43
|
+
The `manifest.json` is written in BOTH modes, so installing the parent later still lets historic artifacts get picked up. Baselines for `/visual-diff` always live in `./.rolepod-uiproof/baselines/` regardless of mode — they are user-curated configuration, not per-run evidence.
|
|
44
|
+
|
|
30
45
|
## Install
|
|
31
46
|
|
|
32
47
|
Pick your CLI. All install paths share the same MCP server (`@rolepod/uiproof` on npm) and the same skill set.
|