verify-frontend-change
Skill0 starsChanged 5 months agoMITView on GitHub
Verify any UI change end-to-end before declaring it done. Trigger after any change to a component, page, style, layout, or interactive control — and whenever you're about to say a frontend task is "done", "fixed", "working", or "complete". Auto-activate when you edited frontend code and are tempted to report success from a clean edit/typecheck alone.
2 other projects use a version of this, 1 of them edited.
Adopted by
Most recently taken up by
- sharklandy/claude-code-starter-kitedited, first seen Oct 20, 2026
- vscarpenter/gsd-task-managertheir own version, first seen Oct 6, 2026
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 1
- sharklandy/claude-code-starter-kit★ 027% same
Wrote their own version · 1
- vscarpenter/gsd-task-manager★ 40same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository13 other files it gives its agents.
- AGENTS.mdAGENTS.md
- llms.txtllms.txt
- annotateSkill
- debug-loop-breakerSkill
- deploy-checklistSkill
- goalSkill
- growth-playbookSkill
- security-scannerSkill
- seo-auditSkill
- svg-diagramSkill
- tdd-disciplineSkill
- teaching-modeSkill
- SKILL_NAMESkill
The file
We split this skill into the rules it gives an agent
6 rules. About 0 are common, 6 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈6
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 26
Run these in order. Do not skip ahead.
- Distinctive: line 30
Start the dev server and open the edited page — not the home page, the actual route you touched.
- Distinctive: line 46
Check dark mode and mobile width if the change touches layout, color, or spacing.
- Distinctive: line 64
If any step fails, fix the issue and rerun from step 1.
- Distinctive: line 80
If any row is blank, the task is not done.
- Distinctive: line 101
Screenshots are the deliverable, not decoration: When you report the change as verified, attach or reference the before/after so the claim …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Skill: Verify Frontend Change
Never report a UI change as complete based on a successful edit alone. A green typecheck proves the code compiles, not that the pixel moved, the button fires, or the console stayed clean. Verify it the way a human reviewer would — in a real browser.
Detection — When to Activate
Activate this skill when:
- You edited a component, page, route, style, layout, or interactive control
- You're about to say a frontend task is "done", "fixed", "working", or "shipped"
- You added or changed a control (button, input, toggle, modal, dropdown, form)
- A change is theme-, responsive-, or state-dependent (dark mode, mobile, loading/empty/error)
Do NOT activate for:
- Pure backend / API / data-layer changes with no rendered surface
- Docs, comments, config, or type-only changes that don't alter output
- Copy-only edits already confirmed by reading the diff (still glance at the rendered page)
The Protocol
Run these in order. Do not skip ahead.
1. Open the change in a real browser
Start the dev server and open the edited page — not the home page, the actual route you touched.
npm run dev # or the project's equivalent (Vite / Next / etc.)
# then open the specific path you changed, e.g. http://localhost:3000/settingsConfirm the page renders and the change is visibly present. If it isn't there, stop — the edit didn't take effect (wrong file, HMR stale, build cache).
2. Interact with the change directly
Reading the DOM is not interacting. Drive it:
- New control (button / input / toggle / dropdown): click or type into it, then confirm the expected state change actually happened (value updates, panel opens, request fires, list re-renders).
- Screenshot before and after the interaction. The diff between the two is your evidence.
- Exercise the states that matter for this change: loading, empty, error, hover/focus, disabled.
- Check dark mode and mobile width if the change touches layout, color, or spacing.
3. Check the browser console
Open DevTools → Console. Requirement: zero new errors or warnings introduced by your change.
- React key warnings, hydration mismatches,
act()warnings, failed network requests, 404s on assets — all count as failures. - Compare against a baseline if the page already logs noise; only new messages are on you.
4. Run a performance pass
If a Chrome DevTools MCP (or equivalent browser-automation tool) is available, use it to record a performance trace and audit Core Web Vitals (LCP, INP, CLS). Prefer whatever project-specific wrapper already drives that tooling over hand-rolling a trace from scratch — but if none exists, run the MCP/Lighthouse directly rather than skipping the step.
- Flag regressions: layout shift from the new element, a slow interaction (INP), a render-blocking asset you introduced.
- Scale the rigor to the change: a one-line copy fix doesn't need a full trace; a new above-the-fold component or a data-heavy view does.
The Rule
If any step fails, fix the issue and rerun from step 1. Do not hand back partially verified work, and do not report the earlier steps as passing when a later one is still red — the change is either fully verified or it is not done.
Verification Checklist
State this back before declaring done:
| Check | Pass? |
| Dev server running; edited route opened in a browser | |
| Change is visibly present on the page | |
| Interacted with the control; expected state change confirmed | |
| Before/after screenshots captured | |
| Relevant states exercised (loading/empty/error, dark mode, mobile) | |
| Console: zero new errors or warnings | |
| Perf trace / Core Web Vitals: no regression (scaled to change size) |
If any row is blank, the task is not done.
Anti-Patterns
| Pattern | Problem | Instead |
| "Edit succeeded, so it works" | Compiling ≠ rendering correctly | Open the page and look |
| Reading the DOM / component state instead of clicking | State can be right while the handler is unwired | Actually click it |
| Screenshotting only the "after" | No proof the change did anything | Before and after |
| Ignoring console warnings ("just warnings") | React key/hydration warnings are real bugs | Zero new console output |
| Verifying on the home page, not the edited route | You never saw your change | Open the exact path you touched |
| Reporting steps 1–3 green while step 4 is unrun | Partial verification reads as complete | Not done until all steps pass |
Gotchas
- HMR can lie. Hot-reload sometimes shows a stale render or a half-applied change. If something looks off, hard-refresh (or restart the dev server) before concluding your code is wrong.
- Open the right port/route. In multi-service projects, each service can run on its own fixed port. Verifying on the wrong port silently shows an old build from a different service — confirm the URL actually maps to the project you edited.
- Content baked at boot. Some projects compile content (Markdown, CMS data) into a database or bundle at server startup rather than serving it live. A content edit won't appear until that process restarts — a blank or stale page here is a restart problem, not a frontend bug.
- Dark mode and mobile are separate surfaces. A change that looks right in light/desktop can break contrast or overflow in dark/mobile — check both whenever the change touches color, spacing, or layout.
- Scrollable tables and anchor offsets are easy to skip. If the project has house rules for these (e.g. wide tables get
overflow-x: autoinstead of blowing out page width, anchor links usescroll-margin-topon the heading so it lands visible under a sticky nav), verify they still hold after your change. - Chrome DevTools MCP may be absent in headless/cron/CI runs. If the perf tooling isn't reachable, say so explicitly and fall back to a manual Lighthouse or visual check — don't silently skip step 4 and imply it passed.
- Screenshots are the deliverable, not decoration. When you report the change as verified, attach or reference the before/after so the claim is auditable — "I verified it" without artifacts is the thing this skill exists to prevent.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

