skills/visual-qa/SKILL.md
Automated visual UI issue detection from screenshots. Use EVERY TIME you take a screenshot with agent-browser during UI development. Runs local Qwen3-VL model on Apple Silicon — zero API cost. Catches layout bugs, contrast issues, missing content, alignment problems, and accessibility violations that you'd otherwise miss while focused on one specific fix.
npx skillsauth add portel-dev/skills visual-qaInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
ALWAYS run visual-qa after taking any screenshot during UI development or testing. This is non-negotiable — it catches the issues you miss while focused on your specific task.
Trigger on:
agent-browser screenshot call# Take screenshot
agent-browser screenshot /tmp/ui-check.png
# Run visual QA via the photon
photon cli visual-qa review --image /tmp/ui-check.png
# Take before screenshot
agent-browser screenshot /tmp/before.png
# ... make changes ...
# Take after screenshot
agent-browser screenshot /tmp/after.png
# Compare
photon cli visual-qa compare --before /tmp/before.png --after /tmp/after.png
photon cli visual-qa status
The review returns a markdown report with:
| Category | What It Catches | |----------|----------------| | LAYOUT | Overlapping elements, broken grids, overflow, clipping | | CONTENT | Empty areas, placeholder text, truncated text, missing icons | | TYPOGRAPHY | Inconsistent fonts, unreadable text, wrong weight | | CONTRAST | Low contrast, clashing colors, elements blending in | | INTERACTIVE | Buttons not looking clickable, unclear affordances | | SPACING | Inconsistent padding, misalignment, crowding | | RESPONSIVE | Wrong sizing, horizontal scroll, unfilled space | | EMPTY_STATE | Missing empty state messages, blank unexplained panels | | CONSISTENCY | Mixed UI patterns, inconsistent styles | | ACCESSIBILITY | Missing labels, color-only indicators, tiny targets |
When you get the issue list back:
Do NOT ignore the output. The whole point is to catch what you miss.
pip install -U mlx-vlm # One-time setup
The model downloads automatically on first use.
development
Platform-aware design rules for vertical video (Reels, Shorts, TikTok, LinkedIn mobile). Covers safe zones, caption sizing/placement, aspect ratios, thumb-stopper hooks, effects that survive mobile compression, and per-platform cheatsheets. Use when building 9:16 / 4:5 / 1:1 video for social media - any time you need to decide where to place text, how big captions should be, what aspect ratio to export, or which effects survive mobile playback.
tools
Build, test, validate, and improve Photon MCPs — single-file TypeScript MCP servers. Use for creating photons with @format annotations (table, chart:bar, slides), stateful photons using this.memory for persistent storage, photons with @readOnly/@destructive annotations, custom UI using @ui tags/HTML templates, photons wrapping APIs (Stripe, payments), task scheduler photons with cron, user-configurable settings (protected settings), this.render() for live output, photon build for standalone binaries, mermaid diagrams for photon architecture, editing .photon.ts files, @auth for MCP OAuth identity (this.caller), identity-aware locks for multiplayer/turn-based photons, @format slides for Marp-style presentations. Also use for validating photon UIs (promise checking, visual QA, functional testing), improving photon quality via autoloop, and auditing whether a UI consumes all backend methods. DO NOT trigger for general TypeScript or non-photon MCP.
development
Maintainer-only workflow for handling GitHub Secret Scanning alerts on OpenClaw. Use when Codex needs to triage, redact, clean up, and resolve secret leakage found in issue comments, issue bodies, PR comments, or other GitHub content.
development
Maintainer workflow for OpenClaw releases, prereleases, changelog release notes, and publish validation. Use when Codex needs to prepare or verify stable or beta release steps, align version naming, assemble release notes, check release auth requirements, or validate publish-time commands and artifacts.