@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.
@@ -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. v0.5 completes the UI verification surface console + network observability, hover/drag/fill_form/upload/dialog, runtime emulation, multi-page, gated JS eval replacing 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.5.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 providerevidence 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.5.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 completes the UI verification surface: console + network observability, hover/drag/fill_form/upload/dialog, runtime emulation, multi-page support, gated JS eval — replacing chrome-devtools-mcp and playwright-mcp for UI testing.",
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.5.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 completes the UI verification surface: console + network observability, hover/drag/fill_form/upload/dialog, runtime emulation, multi-page, gated JS eval.",
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.5 completes the UI verification surface console logs, network requests, HAR/video/trace capture, runtime emulation, multi-page popups.",
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.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. v0.5 completes the UI verification surface: console + network observability, hover/drag/fill_form/upload/dialog, runtime emulation, multi-page, gated JS eval replacing chrome-devtools-mcp and playwright-mcp.",
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 providerevidence 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.