VI

visual-review

Automated UI verification tool that uses browser devtools to check for visual and functional regressions.

Install

mkdir -p .claude/skills/visual-review && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/15324" && unzip -o skill.zip -d .claude/skills/visual-review && rm skill.zip

Installs to .claude/skills/visual-review

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Use when UI changes need visual verification, or to check for console errors and network issues
95 chars✓ has a “when” trigger
Intermediate

Key capabilities

  • Start backend and frontend services for UI verification
  • Navigate to target pages using Chrome DevTools
  • Capture screenshots for visual inspection
  • Check console messages for errors and warnings
  • List network requests to identify failures or slow responses

How it works

The skill starts application services, navigates to specified pages, takes screenshots, and checks console and network activity using Chrome DevTools. It also handles authentication and tests user flows.

Inputs & outputs

You give it
UI changes or a user flow to verify
You get back
Visual review report with screenshots, console messages, network requests, and identified issues

When to use visual-review

  • Verifying UI changes
  • Checking for network errors
  • Testing frontend user flows

About this skill

Visual Review with Chrome DevTools

Overview

Verify UI changes using Chrome DevTools MCP integration. Takes screenshots, checks console for errors, verifies network requests, and tests user flows.

Announce at start: "I'm using visual-review to verify the UI changes."

Prerequisites

  • Application running (backend + frontend)
  • Chrome browser open
  • Chrome DevTools MCP configured and connected

Process

Step 1: Start Application

# Start backend (in background)
cd backend && dotnet run &
BACKEND_PID=$!

# Start frontend (in background)
cd frontend && npm run dev &
FRONTEND_PID=$!

# Wait for startup
echo "Waiting for services to start..."
sleep 10

# Verify services are running
curl -s http://localhost:5000/health || echo "Backend not ready"
curl -s http://localhost:5173 || echo "Frontend not ready"

Step 2: Identify Pages to Verify

From changed files, determine affected pages:

Changed FileAffected Page
src/pages/Users.tsx/users
src/components/UserForm.tsx/users/new, /users/:id/edit
src/api/users.tsAll user pages

Step 3: List Available Pages

mcp__chrome-devtools__list_pages

Select the page running your frontend (usually localhost:5173).

Step 4: Handle Authentication

After navigating to a page, check if you're on a login screen.

Detection: Look for login indicators in the screenshot or DOM:

  • Login form with email/password fields
  • "Sign in" or "Log in" buttons
  • Redirect to /login, /auth, /signin URLs

If login screen detected:

  1. Ask user for test credentials:

    "I've hit a login screen. Please provide test credentials:
    - Email/username:
    - Password:
    
    Or tell me if there's a specific test user I should use."
    
  2. Log in using provided credentials:

    mcp__chrome-devtools__fill_form
      selector: "input[type='email'], input[name='email'], #email"
      value: "<provided-email>"
    
    mcp__chrome-devtools__fill_form
      selector: "input[type='password'], input[name='password'], #password"
      value: "<provided-password>"
    
    mcp__chrome-devtools__click
      selector: "button[type='submit'], .login-button, button:contains('Sign in')"
    
    mcp__chrome-devtools__wait_for
      selector: ".dashboard, .home, [data-authenticated='true']"
      timeout: 5000
    
  3. Verify login succeeded — Take screenshot to confirm authenticated state

  4. Continue with review — Navigate to intended pages

Step 5: Navigate and Verify Each Page

For each affected page:

5a. Navigate to Page

mcp__chrome-devtools__navigate_page
  url: "http://localhost:5173/<path>"

5b. Take Screenshot

mcp__chrome-devtools__take_screenshot

Save/display screenshot for visual inspection.

5c. Check Console Messages

mcp__chrome-devtools__list_console_messages

Flag issues:

  • ❌ Errors (red) — Must fix
  • ⚠️ Warnings related to changed code — Should review
  • ℹ️ Info/debug — Usually OK

5d. Check Network Requests

mcp__chrome-devtools__list_network_requests

Flag issues:

  • ❌ Failed requests (4xx, 5xx status)
  • ⚠️ Slow requests (>1000ms)
  • ⚠️ Missing expected requests

Step 6: Test User Flows

For interactive features, test the complete flow:

Example: Form Submission

# 1. Navigate to form page
mcp__chrome-devtools__navigate_page
  url: "http://localhost:5173/users/new"

# 2. Fill form fields
mcp__chrome-devtools__fill_form
  selector: "#name"
  value: "Test User"

mcp__chrome-devtools__fill_form
  selector: "#email"
  value: "[email protected]"

# 3. Submit form
mcp__chrome-devtools__click
  selector: "button[type='submit']"

# 4. Wait for result
mcp__chrome-devtools__wait_for
  selector: ".success-message"
  timeout: 5000

# 5. Capture result
mcp__chrome-devtools__take_screenshot

Example: Navigation Flow

# 1. Start at list page
mcp__chrome-devtools__navigate_page
  url: "http://localhost:5173/users"

# 2. Click on item
mcp__chrome-devtools__click
  selector: ".user-card:first-child"

# 3. Wait for detail page
mcp__chrome-devtools__wait_for
  selector: ".user-detail"
  timeout: 3000

# 4. Verify content loaded
mcp__chrome-devtools__take_snapshot

Step 7: Take DOM Snapshot (Optional)

For detailed inspection:

mcp__chrome-devtools__take_snapshot

Useful for verifying:

  • Correct elements rendered
  • Proper accessibility attributes
  • Expected data displayed

Report Format

**Visual Review Complete**

## Pages Verified

| Page | Screenshot | Console | Network |
|------|------------|---------|---------|
| /users | ✓ | ✓ 0 errors | ✓ 0 failures |
| /users/new | ✓ | ⚠ 1 warning | ✓ 0 failures |
| /users/123 | ✓ | ✓ 0 errors | ✓ 0 failures |

## User Flows Tested

| Flow | Result |
|------|--------|
| Create user | ✓ Pass |
| Edit user | ✓ Pass |
| Delete user | ✓ Pass |

## Issues Found

### Console Warning (Page: /users/new)

Warning: Each child in a list should have a unique "key" prop. at SelectOptions (SelectOptions.tsx:15)

**Recommendation:** Add key prop to list items in SelectOptions component.

## Screenshots

[Screenshots captured and available for review]

## Summary

- Pages checked: 3
- Screenshots: 3
- Console errors: 0
- Console warnings: 1
- Network failures: 0
- User flows: 3/3 passed

**Recommendation:** Fix console warning, otherwise ready to proceed.

Cleanup

After visual review:

# Stop services
kill $BACKEND_PID $FRONTEND_PID 2>/dev/null

Common Issues

Page Not Loading

Check:
1. Is the frontend dev server running?
2. Is the correct URL being used?
3. Are there build errors?

Run: npm run dev (in frontend directory)

Network Requests Failing

Check:
1. Is the backend running?
2. Is the API URL configured correctly?
3. Are there CORS issues?

Run: dotnet run (in backend directory)
Check: Browser DevTools Network tab

Chrome DevTools Not Connected

Check:
1. Is Chrome running with remote debugging?
2. Is the MCP server configured?
3. Is the correct port being used?

Start Chrome with: --remote-debugging-port=9222

When not to use it

  • When the application is not running
  • When Chrome DevTools MCP is not configured and connected
  • When the task does not involve UI changes or visual verification

Prerequisites

Application running (backend + frontend)Chrome browser openChrome DevTools MCP configured and connected

Limitations

  • Requires the application to be running locally
  • Depends on Chrome DevTools MCP integration
  • Authentication requires user-provided credentials

How it compares

This skill automates UI verification by integrating with Chrome DevTools to capture visual evidence and log data, providing a structured report, unlike manual visual inspection.

Compared to similar skills

visual-review side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
visual-review (this skill)06moReviewIntermediate
playwright-browser-automation298moReviewIntermediate
comprehensive-testing-verification17moNo flagsIntermediate
dependency-upgrade265moReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

playwright-browser-automation

lackeyjb

Complete browser automation with Playwright. Auto-detects dev servers, writes clean test scripts to /tmp. Test pages, fill forms, take screenshots, check responsive design, validate UX, test login flows, check links, automate any browser task. Use when user wants to test websites, automate browser interactions, validate web functionality, or perform any browser-based testing.

29146

comprehensive-testing-verification

ananddtyagi

MASTER Vue.js application testing with strict enforcement of verification protocols. Systematically test functionality with Playwright, validate bug fixes, verify features work, and enforce zero-tolerance policies for false success claims. MANDATORY testing with visual evidence before any deployment or functionality claims.

14

dependency-upgrade

wshobson

Manage major dependency version upgrades with compatibility analysis, staged rollout, and comprehensive testing. Use when upgrading framework versions, updating major dependencies, or managing breaking changes in libraries.

26240

telegram-mini-app

davila7

Expert in building Telegram Mini Apps (TWA) - web apps that run inside Telegram with native-like experience. Covers the TON ecosystem, Telegram Web App API, payments, user authentication, and building viral mini apps that monetize. Use when: telegram mini app, TWA, telegram web app, TON app, mini app.

62163

chrome-devtools

mrgoonie

Browser automation, debugging, and performance analysis using Puppeteer CLI scripts. Use for automating browsers, taking screenshots, analyzing performance, monitoring network traffic, web scraping, form automation, and JavaScript debugging.

41157

shopify-development

davila7

Build Shopify apps, extensions, themes using GraphQL Admin API, Shopify CLI, Polaris UI, and Liquid. TRIGGER: "shopify", "shopify app", "checkout extension", "admin extension", "POS extension", "shopify theme", "liquid template", "polaris", "shopify graphql", "shopify webhook", "shopify billing", "app subscription", "metafields", "shopify functions"

1299

Search skills

Search the agent skills registry