Install
$ agentstack add skill-houseofmvps-ultraship-visual-diff ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
Visual Regression Testing
Automated screenshot comparison using Playwright. Catch visual bugs before they ship.
Process
Phase 1: Determine Test Scope
Ask the user:
- What URL(s) to test? (localhost, staging, or production)
- 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:
- Navigate to the URL:
- Use
browser_navigateto go to the target URL
- Take full-page screenshot:
- Use
browser_take_screenshotto capture the current state
- Capture key viewports:
- Desktop (1920x1080):
browser_resizethenbrowser_take_screenshot - Tablet (768x1024):
browser_resizethenbrowser_take_screenshot - Mobile (375x812):
browser_resizethenbrowser_take_screenshot
- 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:
- Layout shifts — did any elements move unexpectedly?
- Color changes — did colors, gradients, or shadows change?
- Typography — did font sizes, weights, or spacing change?
- Responsive issues — does it look correct on all viewports?
- Missing elements — did anything disappear?
- 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:
- Homepage / Landing page (/)
- Login/signup page (if exists)
- Main app page (dashboard, etc.)
- 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.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: Houseofmvps
- Source: Houseofmvps/ultraship
- License: MIT
- Homepage: https://www.npmjs.com/package/ultraship
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.