webapp-visual-testing — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited webapp-visual-testing (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Collect visual and behavioral evidence from a web UI before declaring a feature complete or a bug fixed.
Safety policy is handled by the browser-automation-safety skill — read it first if this is your first time using browser automation in this environment. Playwright MCP setup is in mcp/generic/playwright.json.
This skill covers the testing workflow: what to test, how to capture evidence, and how to report findings.
@playwright/test, or user-supplied screenshots# Check dev server
curl -s -o /dev/null -w "%{http_code}" http://localhost:<port> # expect 200
# Check browser capability
apx mcp check playwright # if using Playwright MCP
npx playwright --version # if using @playwright/testIf no browser capability is available: ask the user for screenshots and continue with static analysis only.
Navigate to the target URL and capture the initial state:
browser_navigate(url)
browser_snapshot() # accessibility tree — roles, labels, focusable elements
browser_take_screenshot() # visual state
browser_console_messages() # check for load-time errorsFlag any console errors at page load before proceeding.
Use semantic selectors in priority order (from browser-automation-safety):
getByRole('button', { name: 'Submit' })getByText('Continue')getByLabel('Email address')getByTestId('submit-btn').submit-btnCapture a screenshot after each significant state change: modal open, form submit, navigation, error state.
| Signal | Check |
|---|---|
| Console errors | Any uncaught exceptions or network errors after interaction? |
| Network requests | Did the expected API call fire? Did it return a success status? |
| DOM changes | Did the expected element appear / disappear / update? |
| Accessibility | Are new elements keyboard-reachable and labelled correctly? |
SCENARIO: <what was tested>
EXPECTED: <what should happen>
OBSERVED: <what actually happened>
EVIDENCE: <screenshot filename or console excerpt>
STATUS: PASS / FAIL / NEEDS_REVIEW
ISSUES FOUND:
[critical] <description> — <evidence reference>
[major] <description>
[minor] <description>
ACCESSIBILITY:
<element>: role=<role>, label=<label>, keyboard=reachable/unreachableIf a prior screenshot is available:
Deliver:
waitFor or take screenshots after animations settleInspired by anthropics/skills webapp-testing/SKILL.md. Extended with accessibility and visual regression guidance. Safety policy delegated to browser-automation-safety.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.