skills/mp-playwright-test/SKILL.md
Visually verify UI changes with reliable raw Playwright over a scope you define: uncommitted changes, the current PR, or a verbally described area of the app. Discovers the project runner/auth/port, ensures a fresh dev server, and reports a per-surface PASS/FAIL table with measured values and screenshots. Use when: "playwright test", "visually verify", "test the UI changes", "screenshot the changed pages", "verify the current PR in the browser"
npx skillsauth add MartinoPolo/mpx-claude-code mp-playwright-testInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Run reliable browser verification over a defined scope. This skill owns scope → surfaces and orchestration; the reliability rules (sanity-gate, assert-don't-eyeball, programmatic auth, never networkidle) live in shared/PLAYWRIGHT_TESTING.md and are followed verbatim. $ARGUMENTS
playwright dep, run as a Node script. Never a browser MCP (that is the exploratory mp-playwright-tester agent's job, not the reliability path).AGENTS.md / memory, not from here.Parse $ARGUMENTS:
uncommitted (or empty) → working-tree mode: git diff --name-only HEAD (+ untracked).pr → PR mode: gh pr view --json number,headRefName then gh pr diff --name-only for the current branch's open PR.Explore if the routes are not obvious).If mapping yields zero UI surfaces, stop and report that there is nothing to visually verify.
Per shared/PLAYWRIGHT_TESTING.md § Discover project specifics, read the project's AGENTS.md / CLAUDE.md / memory for: the Playwright runner/helper (e.g. scripts/shot.mjs), the dev-server start command and exact port, the sign-in API + seed users, and where credentials live (.local/, .env.local). If no runner script exists, the verifier writes a minimal one from the shared skeleton.
Spawn a read-only claude sub-agent (Sonnet) to run the verification. Give it: the surface list (with the route + what changed for each), the discovered runner/port/auth details, and the instruction to follow shared/PLAYWRIGHT_TESTING.md exactly — stale-worktree sanity-gate FIRST, then programmatic auth, explicit waits (never networkidle), one measured assertion per surface, a screenshot per surface under test-results/. It verifies every surface even if one fails, and returns the PASS/FAIL table — it does not fix anything.
The sanity-gate is load-bearing: if the running dev server does not reflect the code under test, the sub-agent must kill the stale server and start one bound to this checkout before verifying (see mp-continue for the port-zombie kill/restart pattern).
Relay the sub-agent's per-surface table: surface, PASS/FAIL/BLOCKED, measured value vs expected, and the screenshot path. Call out any surface where the sanity-gate had to restart the server. Failures are reported, not fixed — hand them back to the caller (or to /mp-execute) to resolve.
tools
Show current project progress. Displays phase status and next steps. Use when: "show status", "project progress", "what's done"
data-ai
Unified project setup. Auto-detects state and orchestrates mpx skills/agents for init, conversion, or restructure.
testing
Track bugs/issues in .mpx/ phase system. Parses reports, finds related phases, adds fix tasks or creates bugfix phases. Use when: "track this bug", "add issue to project", "log this bug", "add bug to checklist"
development
Project workflow guidance for spec-driven development. Background knowledge auto-loaded when relevant.