Skip to content
Development
Skill

/visual-diff

Visual Regression Testing — screenshot comparison before and after changes. Use when user wants to check for visual regressions, compare UI changes, or verify CSS/layout changes didn't break anything.

From plugin
ultraship
12445 skills13 agents16 commands3 hooks
+1

Claude Code

$ npx -y skills add Houseofmvps/ultraship --skill visual-diff --agent claude-code

SKILL.md

visual-diff.SKILL.md
name: visual-diff
description: "Visual Regression Testing — screenshot comparison before and after changes. Use when user wants to check for visual regressions, compare UI changes, or verify CSS/layout changes didn't break anything."

Visual Regression Testing

Automated screenshot comparison using Playwright. Catch visual bugs before they ship.

Process

Phase 1: Determine Test Scope

Ask the user: 1. **What URL(s) to test?** (localhost, staging, or production) 2. **What changed?** (CSS update, component refactor, dependency upgrade, etc.)

If the user already described what changed, skip asking.

Phase 2: Take "Before" Screenshots

If comparing against the current state (before making changes):

Use the Playwright MCP to capture screenshots:

1. Navigate to the URL:

  • Use `browser_navigate` to go to the target URL

2. Take full-page screenshot:

  • Use `browser_take_screenshot` to capture the current state

3. Capture key viewports:

  • Desktop (1920x1080): `browser_resize` then `browser_take_screenshot`
  • Tablet (768x1024): `browser_resize` then `browser_take_screenshot`
  • Mobile (375x812): `browser_resize` then `browser_take_screenshot`

4. Save screenshots with descriptive names noting they are "before" state.

Phase 3: Make Changes

Let the user make their changes, or make them yourself if that's the task.

Phase 4: Take "After" Screenshots

Repeat the same screenshot process for the same URLs and viewports.

Phase 5: Visual Comparison

Compare before and after screenshots:

1. **Layout shifts** — did any elements move unexpectedly? 2. **Color changes** — did colors, gradients, or shadows change? 3. **Typography** — did font sizes, weights, or spacing change? 4. **Responsive issues** — does it look correct on all viewports? 5. **Missing elements** — did anything disappear? 6. **Overflow issues** — is content clipping or overflowing?

Use `browser_snapshot` to get the accessibility tree and compare DOM structure between before/after.

Phase 6: Report

Present findings in a clear format:

**No Visual Regressions Found:**

  • "All pages look identical across desktop, tablet, and mobile viewports."

**Regressions Detected:** For each regression:

  • **Page:** URL where the issue appears
  • **Viewport:** Which screen size is affected
  • **What changed:** Description of the visual difference
  • **Severity:** Critical (broken layout), High (noticeable shift), Medium (minor difference), Low (pixel-level)
  • **Suggested fix:** How to resolve the regression

Phase 7: Targeted Testing

For specific component changes, also test:

  • Hover states (use `browser_hover`)
  • Click interactions (use `browser_click`)
  • Form states (use `browser_fill_form`)
  • Dark mode (if applicable)
  • Loading states
  • Error states
  • Empty states

Key Pages to Always Test

When the user doesn't specify pages, test these by default: 1. Homepage / Landing page (/) 2. Login/signup page (if exists) 3. Main app page (dashboard, etc.) 4. Any page the user recently modified

Key Principle

**Trust screenshots, not assumptions.** CSS changes cascade unpredictably. A "small tweak" in one component can break layouts across the entire app. Always verify visually.

Read more
@houseofmvps
Ships withultraship

"ULTRASHIP" Claude Code plugin — 39 skills, 33 tools, 11 agents for ship-ready workflows: planning, review, pentesting, safety guardrails, canary monitoring, SEO/AI-readiness check, penetration testing, code review, competitive analysis, incident response. 1 dependency. 180 tests. MIT.

12445 skills13 agents2 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
124
Star history of Houseofmvps/ultraship on GitHub, a chart by star-history.com

Other skills on ultraship.

a11y

a11y

Accessibility audit + auto-fix (WCAG 2.2 A/AA). Scans built/static HTML for screen-reader, keyboard, and structure failures,…

architecture

architecture

Living Architecture Map — auto-generate Mermaid diagrams of your codebase. Use when user wants to visualize architecture,…

brainstorming

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior.…

canary

canary

Post-deploy canary monitoring — checks site health, detects regressions, monitors for errors after deployment. Use after…

clone-patterns

clone-patterns

Learn From the Best — analyze patterns from any codebase and apply them to yours. Use when user wants to adopt best practices…

code-review

code-review

Code review with principal-engineer-level depth. Reviews for correctness, performance, security, maintainability, and…

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills12d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc2w293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react3d252k
@facebook@facebookInstall Skill

Questions about visual-diff.

Which coding agents can use visual-diff?
visual-diff installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.