Skip to main content
skill Claude Code CX Codex Cursor GitHub Copilot

browser-qa — Claude skill: post-deploy UI checks

Drives a live page through a browser MCP: console errors, Core Web Vitals, forms, screenshots at three widths and axe-core. Ends with a SHIP or DO NOT SHIP verdict.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add affaan-m/ECC --skill browser-qa -a claude-code
Open on GitHub

What browser-qa does

The skill walks a deployed page the way a person would. First a smoke pass: console errors with analytics noise filtered out, network responses free of 4xx and 5xx, an above-the-fold screenshot on desktop and mobile, and LCP, CLS and INP readings. Then interaction — clicking every nav link, submitting forms with valid and invalid data, logging in and out with test credentials, running critical journeys.

Visual regression comes next. Key pages are captured at 375px, 768px and 1440px and compared against committed baselines. Layout shifts over 5px, missing elements and overflow get flagged. No baseline means the report says INCONCLUSIVE rather than a silent PASS. The last phase is accessibility through axe-core: WCAG 2.2 AA violations, focus order, keyboard navigation, screen reader landmarks.

Any browser MCP works: claude-in-chrome tools, Playwright via mcp__browserbase__*, or plain Puppeteer scripts. Everything runs read-only by default. Mutating journeys such as checkout or delete never touch a production URL without explicit opt-in and a staging URL, and credentials, tokens and PII should be redacted before any screenshot is saved. Worth installing if frontend ships often and you want broken forms and layout caught before users hit them. On a project with no staging environment the payoff drops.

What it helps with

  • catch console errors on a deployed page
  • test forms with valid and invalid input
  • diff layout against baseline screenshots at three widths
  • run axe-core and surface WCAG 2.2 AA violations
  • verify login and logout with test credentials

Example prompts for the agent

  • run browser-qa against the preview URL and tell me if we can ship
  • check forms and navigation on staging, give me the verdict report
  • do visual regression at 375, 768 and 1440 and audit accessibility

How to install browser-qa

1Skills CLI (Vercel)

npx skills add affaan-m/ECC --skill browser-qa -a claude-code

2Manually: put the files in place

~/.claude/skills/browser-qa/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/browser-qa/

From the same set146

The whole set →
video-editing affaan-m AI-assisted workflow for editing, trimming, and enriching real footage. Connects raw recordings with FFmpeg cuts, Remotion overlays, and ElevenLabs voiceovers. Claude Code CX Codex Cursor +1 6,500installs docker-patterns affaan-m A skill with Dockerfile and Docker Compose patterns: local dev stacks, networking, volumes, container hardening. Claude Code CX Codex Cursor +1 6,300installs frontend-patterns affaan-m A skill for React and Next.js work: component patterns, state, data fetching, and render performance. Use it when building or reviewing UI. Claude Code CX Codex Cursor +1 5,900installs backend-patterns affaan-m A skill with backend patterns for Node.js, Express and Next.js API routes: layering, caching, transactions, error handling. Claude Code CX Codex Cursor +1 5,900installs coding-standards affaan-m Baseline cross-project coding conventions for naming, immutability, and clean code principles. Useful for code reviews and refactoring. Claude Code CX Codex Cursor +1 5,600installs api-design affaan-m Provides REST API design standards covering resource naming, status codes, pagination, and error payloads. Use it when creating or auditing API contracts. Claude Code CX Codex Cursor +1 5,500installs rust-testing affaan-m A skill for writing Rust tests: unit, integration, async, property-based, mocks and coverage. Useful when the project runs on TDD. Claude Code CX Codex Cursor +1 5,500installs laravel-security affaan-m This skill reviews Laravel authentication, Eloquent safety, CSRF, XSS, APIs, and production settings. Use it for security reviews or deployment checks. Claude Code CX Codex Cursor +1 5,400installs

Similar

dotnet-best-practices official github Guides reviews and edits of selected .NET/C# code with project rules for structure, DI, tests, logging and security. Use it when changing an existing solution. GitHub Copilot 15,752installs next-partial-prefetching-optimizer vercel Tunes Next.js 16.3+ client link prefetching under Partial Prefetching. Balances instant navigation against deferred data reads before the user clicks. Claude Code CX Codex Cursor +1 2,300installs ai-research-reproduction lllllllama This skill guides a repository-grounded reproduction run from its README to an evidence bundle. Use it to test a documented model run without quietly changing the experiment. Claude Code CX Codex Cursor +1 335,300installs improve-codebase-architecture Matt Pocock This skill scans a codebase for architectural friction, then builds a visual HTML report with refactoring candidates. Use it before a deeper architecture review. Claude Code 1,163,035installs design-taste-frontend Leonxlnx This skill directs the design of public pages and work screens, then checks the result in a browser through screenshots. Use it when an interface feels generic or unfinished. Claude Code CX Codex Cursor +1 673,100installs tdd Matt Pocock Guides the red-green TDD loop: ensures tests are written first, keep them at public interfaces, and avoid coupling to implementation details. Claude Code 1,141,062installs skill-creator official anthropics Creates and refines skills, then tests them with prompts, evaluations, and performance checks. Claude Code Claude.ai 414,180installs agent-browser vercel-labs A CLI skill for browser control: it opens pages, fills forms, clicks buttons, and tests web apps. Use it when an agent needs to act inside a website. Claude Code CX Codex Cursor +1 1,200,000installs

Questions about browser-qa

How do I install browser-qa in Claude?

Run npx skills add affaan-m/ECC --skill browser-qa -a claude-code. The skill lands in ~/.claude/skills/browser-qa/SKILL.md.

What does browser-qa do?

It verifies a deployed UI through a browser MCP: console, network, Core Web Vitals, forms, auth, screenshots at three breakpoints and accessibility. It closes with a SHIP, SHIP WITH FIXES or DO NOT SHIP verdict.

Which browser MCPs does the skill support?

claude-in-chrome, Playwright through mcp__browserbase__*, and direct Puppeteer scripts. Mutating journeys only run against staging with explicit opt-in.

Source text

SKILL.md · MIT
---
name: browser-qa
description: "Run automated post-deploy UI verification with a browser automation MCP (claude-in-chrome, Playwright, or Puppeteer): console-error and Core Web Vitals smoke checks, form and auth-flow interaction tests, screenshot visual regression across three breakpoints, and axe-core accessibility audits ending in a SHIP / DO-NOT-SHIP verdict. Use when testing a deployed feature on staging or preview, before shipping frontend changes, reviewing a frontend PR, or checking responsive layout and accessibility."
metadata:
  origin: ECC
---

# Browser QA — Automated Visual Testing & Interaction

## When to Use

- After deploying a feature to staging/preview
- When you need to verify UI behavior across pages
- Before shipping — confirm layouts, forms, interactions actually work
- When reviewing PRs that touch frontend code
- Accessibility audits and responsive testing

## How It Works

Uses the browser automation MCP (claude-in-chrome, Playwright, or Puppeteer) to interact with live pages like a real user.

### Safety first — blast radius (run read-only by default)

Browser QA drives real auth and real user journeys, so treat the blast radius explicitly.
Default to **read-only**: never run a **mutating** journey (checkout, payment, delete,
mass-update) against a production URL — require an explicit opt-in **and** a staging/preview
URL. Use seeded **test credentials**, never real production logins, and **redact**
credentials/tokens/PII before saving any screenshot.

### Phase 1: Smoke Test
```
1. Navigate to target URL
2. Check for console errors (filter noise: analytics, third-party)
3. Verify no 4xx/5xx in network requests
4. Screenshot above-the-fold on desktop + mobile viewport
5. Check Core Web Vitals: LCP < 2.5s, CLS < 0.1, INP < 200ms
   (INP replaced FID in March 2024; thresholds per web.dev)
```

### Phase 2: Interaction Test
```
1. Click every nav link — verify no dead links
2. Submit forms with valid data — verify success state
3. Submit forms with invalid data — verify error state
4. Test auth flow: login → protected page → logout (test creds only, never prod)
5. Test critical user journeys (checkout, onboarding, search)
   — read-only by default; only exercise mutating journeys against staging
     with explicit opt-in (see "Safety first" above)
```

### Phase 3: Visual Regression
```
1. Screenshot key pages at 3 breakpoints (375px, 768px, 1440px)
2. Compare against committed baseline screenshots
   — no baseline ⇒ report INCONCLUSIVE, never a silent PASS
3. Flag layout shifts > 5px, missing elements, overflow
4. Check dark mode if applicable
```

### Phase 4: Accessibility
```
1. Run axe-core or equivalent on each page
2. Flag WCAG 2.2 AA violations (contrast, labels, focus order)
3. Verify keyboard navigation works end-to-end
4. Check screen reader landmarks
```

> Note: axe-core automatically covers roughly 30–40% of WCAG. A clean run is **necessary,
> not sufficient** — keyboard nav, focus order, and a screen-reader pass still need a manual
> check. Don't report "accessible" from an automated pass alone.

## Output Format

```markdown
## QA Report — [URL] — [timestamp]

### Smoke Test
- Console errors: 0 critical, 2 warnings (analytics noise)
- Network: all 200/304, no failures
- Core Web Vitals: LCP 1.2s ✓, CLS 0.02 ✓, INP 89ms ✓

### Interactions
- [✓] Nav links: 12/12 working
- [✗] Contact form: missing error state for invalid email
- [✓] Auth flow: login/logout working

### Visual
- [✗] Hero section overflows on 375px viewport
- [✓] Dark mode: all pages consistent

### Accessibility
- 2 AA violations: missing alt text on hero image, low contrast on footer links

### Verdict: SHIP WITH FIXES (2 issues, 0 blockers)
# verdict ∈ SHIP / SHIP WITH FIXES / DO NOT SHIP; use INCONCLUSIVE if no visual baseline
```

## Integration

Works with any browser MCP:
- `mChild__claude-in-chrome__*` tools (preferred — uses your actual Chrome)
- Playwright via `mcp__browserbase__*`
- Direct Puppeteer scripts

Pair with `/canary-watch` for post-deploy monitoring.

© affaan-m · MIT · affaan-m/ECC

See also

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor