Skip to content
Back to skills

Visual Verify

ASecurity

Verify UI changes at element level before declaring any frontend work done. Full-page screenshots are forbidden for component verification.

  • 2 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added May 26, 2026
testingjavascriptjavabashfrontend

Works with

  • cli
  • mcp

Security analysis

A100/100

Scanned May 27, 2026

npx -y skills add joryeugene/tripod --skill visual-verify --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Visual Verify?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Visual Verify
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/joryeugene-visual-verify/badge)](https://www.skillsdirectory.com/skills/joryeugene-visual-verify)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: visual-verify
description: Verify UI changes at element level before declaring any frontend work done. Full-page screenshots are forbidden for component verification.
version: 0.4.0
---

# Visual Verification

Element-level proof for every UI change. Full-page screenshots miss the bugs that matter.

## With Playwright MCP

`browser_snapshot` returns the accessibility tree with element refs (`@e1`, `@e2`). Use `browser_take_screenshot` with an element ref to crop to that element, or `browser_evaluate` to inspect computed styles and bounding boxes.

### The standard verification loop

```
1. browser_navigate <url>
2. browser_wait 2000                                    # lets JS/fetch/SSE settle
3. browser_snapshot                                     # get element refs
4. browser_take_screenshot (element: true, ref: @eN)    # element-level screenshot
```

### What to check in the screenshot

- Are borders fully visible on all four sides?
- Is background color correct?
- Is text not truncated or overflowing its container?
- Is spacing correct on all sides?

### When you need a tighter crop

If the element ref approach does not produce a tight-enough crop, use `browser_evaluate` to get the bounding box and ImageMagick to crop:

```javascript
// browser_evaluate:
document.querySelector('.your-selector').getBoundingClientRect()
// returns: { x: 344, y: 227, width: 82, height: 19, ... }
```

```bash
# W=width, H=height, X=left, Y=top from getBoundingClientRect
magick screenshot.png -crop WxH+X+Y +repage -resize 300% zoomed.png
```

Read `zoomed.png` to inspect at 3x zoom.

### Diagnosing missing elements

When an element exists in the DOM but is not visible in the screenshot, inject a highlight before concluding it is broken:

```javascript
// browser_evaluate:
const el = document.querySelector('.your-selector');
el.style.background = 'red';
el.style.border = '3px solid yellow';
```

Then take a screenshot. If still not visible, the element is hidden by z-index, clipping, or display:none, not a screenshot artifact.

## The floor

Every UI fix is either visually confirmed or assumed. Element-level screenshots eliminate the assumption. Read it. If it shows the correct state, the work is done.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.