skills/visual-feedback/SKILL.md
Use when implementing UI, checking dark/light mode, or validating animations — adds a visual feedback loop via browser screenshots so frontend changes are verified, not assumed.
npx skillsauth add arndvs/ctrlshft visual-feedbackInstall 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.
Output "Read Visual Feedback skill." to chat to acknowledge you read this file.
Pipeline position: sits inside /do-work → replaces the "look at the UI" step that LLMs otherwise skip.
Backend feedback loops are fully textual — tests, types, lint. Frontend feedback loops are not. Without a browser, the LLM is flying blind: it can write code that passes typecheck and still produce a broken layout, a broken dark mode, or an animation that feels wrong. This skill closes that gap.
Before taking any screenshots, confirm the dev server is running and note the local URL (e.g. localhost:5173). If it isn't running, start it.
Open the Simple Browser pointed at the local URL. This is your visual ground truth for the session.
Write the minimum code for one visual change — a component, a layout adjustment, a theme switch. Keep slices small so screenshots stay meaningful.
Take a screenshot of the current state. Ask:
prefers-color-scheme: dark?To emulate dark mode without a toggle, inject via devtools:
// Force dark mode for screenshot
document.documentElement.classList.add('dark')
// or emulate media query via CDP if available
If something looks wrong, fix it and screenshot again. Do not move on until the visual matches the intent. One slice, fully resolved, before the next.
If a CSS behaviour, browser quirk, or animation issue is unfamiliar, use Tavily to search before guessing:
tavily_search("css scroll snap momentum iOS Safari")
tavily_search("framer motion exit animation not triggering")
Prefer MDN, CSS-Tricks, and the relevant library's own docs. Do not iterate blindly on broken CSS — understand the mechanism first.
Once a feature is complete, do a final sweep:
Once the visual sweep is clean, return to the standard /do-work validate step (typecheck, tests) and commit.
development
Use when Claude Code sessions had many manual approval ("press 1") prompts or when auditing hook permissions; identifies which Bash commands required approval.
tools
Use after merging a PR or during periodic cleanup to archive plan-mode files by linking them to merged PRs.
testing
Use when stress-testing a plan against the project's domain model — grills the design, sharpens terminology, and updates documentation (CONTEXT.md, ADRs) inline as decisions crystallise.
testing
Pre-flight checklist that runs quality gates before ending a coding session.