Best for
- Reviewing pull requests with UI changes
- Auditing frontend components for design quality
- Verifying responsive design across viewports
event4u-app/agent-config/src/skills/design-review/SKILL.md
Use when the user says "review the design", "check the UI", or wants a comprehensive UI/UX review. Uses a 7-phase methodology covering interaction, responsiveness, accessibility, and more.
Decision brief
Uses a 7-phase methodology covering interaction, responsiveness, accessibility, and more.
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/event4u-app/agent-config --skill "src/skills/design-review"Inspect the Agent Skill "design-review" from https://github.com/event4u-app/agent-config/blob/0adf49a8ae84b0ff6e2de8759eea43257e020eff/src/skills/design-review/SKILL.md at commit 0adf49a8ae84b0ff6e2de8759eea43257e020eff. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
1. Inspect the PR and preview — Read the PR description, diff, and identify changed components/pages; capture a baseline screenshot of the preview URL. 2. Walk the interactions — Run Phase 1; cover hover/focus/active/disabled, keyboard, loading, and form error states. 3. Cover r…
Read PR description and git diff.
Test user flows end-to-end.
Test at three viewports:
Typography: Font sizes, weights, line heights, hierarchy.
Permission review
The documentation asks the agent to run terminal commands or scripts.
npx tsx node_modules/@event4u/agent-config/src/scripts/lint_design_slop.ts --dir <consumer-ui-path> --jsonEvidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 99/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 7 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Render-verification gate. A UI verdict is gated on the design-artifact verification checklist: where render capability exists, do not pass a design task without render evidence (checklist steps 1–5); where it is absent, scope the verdict to what was statically checked and say so — never "looks good" without evidence.
Use this skill when:
Do NOT use when:
fe-design skill instead)One of the following browser automation tools:
A live preview URL is required for testing.
accessibility-auditor).:focus-visible indicator (Q6 floor, lint_design_quality).fe-design § Motion (micro-feedback ~100–200 ms;
structural open/close ~200–500 ms) — the timing source of truth; do not restate
a competing band set here. Every animated transition also carries a
prefers-reduced-motion alternative (M5 / Q4).Test at three viewports:
| Viewport | Width | Device |
|---|---|---|
| Desktop | 1440px | Standard monitor |
| Tablet | 768px | iPad |
| Mobile | 375px | iPhone SE |
| Criterion | Check |
|---|---|
| 1.1.1 | All images have meaningful alt text |
| 1.3.1 | Semantic HTML (headings, landmarks, lists) |
| 1.4.3 | Color contrast ≥ 4.5:1 (text), ≥ 3:1 (large text) |
| 1.4.11 | Non-text contrast ≥ 3:1 (UI components, borders) |
| 2.1.1 | All functionality available via keyboard |
| 2.4.3 | Focus order is logical and predictable |
| 2.4.7 | Focus indicator is visible |
| 3.3.1 | Error messages identify the field and describe the error |
| 3.3.2 | Labels and instructions for form inputs |
| 4.1.2 | ARIA roles, states, and properties are correct |
Approval is earned, not assumed. Default to flagging.
A design review is a skeptic's pass. The default verdict for every element is "this needs to justify itself" — not "this is probably fine." Approve explicitly when you have examined the evidence and found it sound.
This posture prevents the failure of "nothing to report" reviews that miss real issues because the reviewer defaulted to charitable assumptions.
When a finding warrants a remediation recommendation, prefer in this order:
"Delete the animation" is always the first option to consider, even before suggesting a different easing curve. The same applies to decorative elements, excessive copy, and redundant UI chrome.
When reporting a finding with a specific remediation, use this table format:
| Field | Content |
|---|---|
| Before | The current state (quote the code, value, or describe the pattern) |
| After | The corrected state (specific value or alternative) |
| Why | The mechanism: why is Before wrong and After better? (one sentence, states the principle) |
Wrong format (do not use):
Before:
button { transition: all 0.3s ease; }
After:
button { transition: transform 0.2s ease-out, opacity 0.2s ease-out; }
Right format:
| Before | transition: all 0.3s ease |
| After | transition: transform 0.2s ease-out, opacity 0.2s ease-out |
| Why | transition: all animates layout properties on every state change, causing browser reflow; enumerate only the properties that move. |
The Why column carries the reasoning — it's the part that teaches the developer and prevents the same finding from recurring.
Describe what's wrong and why it matters, not how to fix it.
❌ "Change margin to 16px"
✅ "Spacing feels inconsistent with adjacent elements, creating visual clutter near the CTA."
Every issue gets a severity:
| Severity | Meaning | Action |
|---|---|---|
| Blocker | Must fix before merge | Blocks PR |
| High | Should fix before merge | Strong recommendation |
| Medium | Consider for follow-up | Suggestion |
| Nitpick | Optional polish | Prefix with "Nit:" |
Screenshots required for all visual issues. Reference specific viewport and state.
Acknowledge what works well before listing issues.
## Design Review Summary
[Positive opening + overall assessment]
### 🚫 Blockers
[Critical issues — must fix]
### ⚠️ High Priority
[Significant issues — should fix]
### 💡 Suggestions
[Improvements for follow-up]
### ✨ Nitpicks
[Minor aesthetic details]
### Testing Evidence
[Screenshots: Desktop, Tablet, Mobile]
### Next Steps
1. [Fix blockers]
2. [Address high-priority]
**Overall: [Ready to merge | Needs revisions]**
When Playwright MCP or browser tools are available, use them for automated visual verification:
Don't just screenshot the default state. Capture:
| State | How to trigger |
|---|---|
| Empty | Remove data, check empty state UI |
| Loading | Throttle network, capture skeleton/spinner |
| Error | Force an error response, check error UI |
| Overflow | Add very long text, many items |
| Interactive | Hover, focus, open dropdowns |
When implementing from a design mockup or screenshot:
This is especially useful when the user provides a screenshot or Figma export as a reference.
For a review that needs browser probing, use an async background verifier
rather than self-screenshotting inline: fork a verifier subagent with its own
view — it takes the screenshots, probes viewports, and checks states, then
stays silent on pass and surfaces only real, actionable problems (never
nitpicks). The main agent does not self-screenshot, so its context stays clean
for the actual review reasoning. This is an orchestration pattern —
dispatch it via subagent-orchestration
and position it against verify-repair-loop
(the existing verify skill); it complements them, it does not duplicate them.
Why the audit passes stay serial (not a parallel-4 fan-out). A fan-out of
a11y + slop + hierarchy + states across four subagents was evaluated and
deferred: the passes share one live browser/navigation session and later phases
build on state established by earlier ones, so they are not cleanly independent;
and the expensive part — browser probing / screenshots — is already offloaded by
the async verifier above, which captures the fan-out's main win without spinning
up four separate views. Reconsider only when design-review runs as a standalone
heavy batch over many independent surfaces, where per-surface
do-in-parallel genuinely pays.
Hybrid: a deterministic detector does the mechanical pattern-matching (zero token cost, no catalog reload); you do the judgment it cannot. After the structured review phases, add an explicit Anti-Slop Check section:
npx tsx node_modules/@event4u/agent-config/src/scripts/lint_design_slop.ts --dir <consumer-ui-path> --json
Each finding carries rule (e.g. slop-v1-side-stripe), catalogId
(V1), severity (P0–P3), file:line, and a message. Cite these
verbatim (rule-id + catalogId + file:line) — do not re-describe them from
the prose catalog. Findings are rebuttable presumptions: a finding the
consumer's DESIGN.md gate suppresses is already filtered out; a remaining
finding means the project has not declared the pattern as intentional.
lint_design_slop is flags, never a block (default exit 0; CI opts into
failure via --fail-on).docs/guidelines/design-antipatterns.md
for the tells that need structural/aesthetic judgment (e.g. T3 icon-tile
stack, L2 three-identical-card grid, V2 glassmorphism intent). List any that
appear, cite by entry ID, and check the override condition.For the objective quality floors (WCAG contrast, font-size, line-length,
reduced-motion, heading hierarchy, focus indicator), do NOT eyeball them —
run the accessibility-auditor checklist (Q1–Q6 in the catalog) and cite its
verdict. The review owns the subjective anti-slop judgment (Visual /
Typography / Color / Layout taste); accessibility-auditor owns the
objective floors and the WCAG audit method. Cite, don't re-derive.
Alternatives
affaan-m/ECC
Use this skill to automate visual testing and UI interaction verification using browser automation after deploying features.
MoizIbnYousaf/marketing-cli
Optimizes multi-step conversion flows including signup, onboarding, upgrade, and checkout. Maps each step, identifies friction and drop-off risks, then recommends specific copy/UX changes with A/B test plans. Use when someone says 'signup flow', 'onboarding optimization', 'checkout conversion', 'paywall optimization', 'activation rate', 'funnel analysis', 'why are users dropping off', 'registration flow', 'trial conversion', 'free to paid', 'upgrade flow', 'user journey', or wants to improve any
CherryHQ/cherry-studio
Test Cherry Studio PRs by resolving and checking out a PR, statically inspecting its changes, running interactive UI tests against a safely tracked Electron instance through CDP, producing a structured report, cleaning up only the owned test instance, and restoring the original branch.
coreyhaines31/marketingskills
When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," "how long should I run this test," "growth experiments," "experiment velocity," "experiment backlog," "ICE score," "experimentation program