Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use this skill to automate visual testing and UI interaction verification using browser automation after deploying features.
.claude/skills/browser-qa/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | -3% | 0% |
| case-03 | ✗→✓ | ▲ Improved | -2% | 0% |
| case-02 | ✗→✓ | ▲ Improved | -8% | 0% |
| case-01 | ✗→✓ | ▲ Improved | -16% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 0% | 0% |
Uses the browser automation MCP (claude-in-chrome, Playwright, or Puppeteer) to interact with live pages like a real user.
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.
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)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)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 applicable1. 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.
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
Works with any browser MCP:
mChild__claude-in-chrome__* tools (preferred — uses your actual Chrome)mcp__browserbase__*Pair with /canary-watch for post-deploy monitoring.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-04 | fail→pass | 13,100 | 8,311 | -37% | 1 | 1 | 0% | 2,454 | 2,387 | -3% | 0 | 0 | — |
case-03 | fail→pass | 22,553 | 15,574 | -31% | 1 | 1 | 0% | 3,843 | 3,773 | -2% | 0 | 0 | — |
case-02 | fail→pass | 22,404 | 16,146 | -28% | 1 | 1 | 0% | 4,307 | 3,944 | -8% | 0 | 0 | — |
case-01 | fail→pass | 18,447 | 11,391 | -38% | 1 | 1 | 0% | 3,512 | 2,956 | -16% | 0 | 0 | — |
case-05 | fail→pass | 11,023 | 4,616 | -58% | 1 | 1 | 0% | 1,817 | 1,816 | -0% | 0 | 0 | — |
case-06 | pass→pass | 6,039 | 2,136 | -65% | 1 | 1 | 0% | 1,126 | 1,332 | +18% | 0 | 0 | — |
case-07 | fail→pass | 11,747 | 8,676 | -26% | 1 | 1 | 0% | 1,917 | 2,323 | +21% | 0 | 0 | — |
case-08 | pass→pass | 14,080 | 9,496 | -33% | 1 | 1 | 0% | 2,497 | 2,541 | +2% | 0 | 0 | — |
case-09 | pass→pass | 13,482 | 2,378 | -82% | 1 | 1 | 0% | 2,154 | 1,333 | -38% | 0 | 0 | — |
case-10 | pass→pass | 6,789 | 2,992 | -56% | 1 | 1 | 0% | 910 | 1,392 | +53% | 0 | 0 | — |
case-11 | pass→pass | 10,262 | 4,424 | -57% | 1 | 1 | 0% | 1,737 | 1,690 | -3% | 0 | 0 | — |
case-12 | pass→pass | 9,150 | 1,687 | -82% | 1 | 1 | 0% | 1,561 | 1,202 | -23% | 0 | 0 | — |
case-13 | pass→pass | 9,854 | 2,131 | -78% | 1 | 1 | 0% | 1,602 | 1,268 | -21% | 0 | 0 | — |
case-14 | pass→pass | 11,826 | 2,945 | -75% | 1 | 1 | 0% | 1,910 | 1,437 | -25% | 0 | 0 | — |
case-15 | fail→pass | 11,409 | 2,706 | -76% | 1 | 1 | 0% | 2,044 | 1,412 | -31% | 0 | 0 | — |
case-16 | pass→pass | 11,898 | 10,687 | -10% | 1 | 1 | 0% | 1,893 | 2,733 | +44% | 0 | 0 | — |
case-17 | fail→pass | 10,415 | 3,283 | -68% | 1 | 1 | 0% | 1,607 | 1,411 | -12% | 0 | 0 | — |
case-18 | fail→pass | 12,030 | 3,078 | -74% | 1 | 1 | 0% | 2,078 | 1,403 | -32% | 0 | 0 | — |
case-19 | fail→pass | 9,937 | 2,434 | -76% | 1 | 1 | 0% | 1,504 | 1,267 | -16% | 0 | 0 | — |
case-20 | pass→pass | 8,131 | 7,311 | -10% | 1 | 1 | 0% | 1,575 | 2,448 | +55% | 0 | 0 | — |
case-21 | pass→pass | 3,026 | 4,332 | +43% | 1 | 1 | 0% | 518 | 1,751 | +238% | 0 | 0 | — |
case-22 | pass→pass | 3,788 | 3,515 | -7% | 1 | 1 | 0% | 754 | 1,665 | +121% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +45 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
| Model | Method | Date | Lift |
|---|---|---|---|
| gemini-3.6-flash | verified | 7/27/2026 | +14% |
Other measured skills in the registry, with their headline benchmark lift.