skills/design-critic/SKILL.md
Aesthetic assessment and design scoring across 6 dimensions. Use for UI critique, design review, visual quality assessment, remix suggestions. Activate on "design critique", "aesthetic review", "UI assessment", "visual quality", "design score", "remix this design". NOT for implementation (use frontend-developer), accessibility-only audits (use color-contrast-auditor), or brand identity creation.
npx skillsauth add curiositech/windags-skills design-criticInstall 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.
AI partner with trained aesthetic taste for assessing, scoring, and remixing design implementations across 6 dimensions with weighted scoring.
If score < 60:
├─ Start with Accessibility (20% weight, highest impact)
├─ Quick wins: contrast, focus states, touch targets
└─ Then tackle Layout fundamentals
If score 60-79:
├─ Focus on Visual Hierarchy first
│ ├─ Typography scaling issues?
│ │ └─ Apply 1.25-1.5 ratio system
│ └─ Layout weight imbalance?
│ └─ Redistribute whitespace
└─ Then address Color Harmony
If score 80+:
├─ Polish Modernity elements
│ ├─ Current trend adoption without chasing
│ └─ Micro-interaction improvements
└─ Optimize Usability edge cases
For each dimension:
If obvious failures present:
├─ Score 40-60 range
└─ Flag as primary improvement target
If meets basic standards:
├─ Score 65-75 range
└─ Look for polish opportunities
If exceeds expectations:
├─ Score 80+ range
└─ Use as strength to highlight
When Accessibility vs Aesthetics conflict:
├─ Always prioritize WCAG AA minimum
├─ Find aesthetic solution within constraints
└─ Document why aesthetic choice was rejected
When Modernity vs Usability conflict:
├─ Test with user mental models
├─ Choose familiar pattern if trend confuses
└─ Hybrid approach: familiar function, modern form
Symptom: Scoring visual appeal high while ignoring usability failures Diagnosis: Not following accessibility-first assessment order Fix: Always run WCAG contrast checker before aesthetic scoring Detection Rule: If Aesthetic scores 80+ but Accessibility <70, you've hit this
Symptom: Recommending glassmorphism, bento grids, and neobrutalism together Diagnosis: Treating trends as additive rather than selective Fix: Pick max 1-2 trend elements that serve the content purpose Detection Rule: If suggesting 3+ current trends simultaneously, stop and refocus
Symptom: All typography sizes within 2px of each other getting scored as "good hierarchy" Diagnosis: Not testing 3-second scan path Fix: Verify 1.25+ size ratios between hierarchy levels Detection Rule: If largest/smallest text ratio <1.5x, hierarchy fails
Symptom: Giving 90+ scores to designs with obvious improvement opportunities Diagnosis: Comparing against low standards instead of best-in-class Fix: Compare against portfolio-worthy examples (Apple, Linear, Stripe) Detection Rule: If giving 90+ without 3 specific excellence justifications, recalibrate
Symptom: Same improvement suggestions across different design contexts Diagnosis: Not analyzing the specific visual scanning path and user intent Fix: Trace actual eye movement and identify context-specific friction Detection Rule: If using identical remix suggestions for different projects, personalize analysis
Initial Scores: Overall 67/100
Decision Process:
Expert vs Novice:
Remix Priority:
Initial Scores: Overall 74/100
Trade-off Decision: Dashboard has 4 different fonts creating visual chaos, but client wants "distinctive typography." Accessibility is solid, so focus on Typography dimension.
Resolution Process:
Why This Works: Typography weight (20% × improvement from 60→85) gives bigger score impact than minor modernity tweaks.
Don't use design-critic for:
frontend-developercolor-contrast-auditorbrand-strategistux-researchermotion-designervisual-designercontent-strategistDelegate when:
frontend-developercolor-contrast-auditorux-researcherdata-ai
license: Apache-2.0 NOT for unrelated tasks outside this domain.
development
Use when designing caching strategies (cache-aside, write-through, write-behind), implementing distributed locks, building rate limiters, leaderboards, real-time streams (XADD/consumer groups), pub/sub, or tuning eviction policies. Triggers: thundering-herd on cache miss, dogpile on key expiry, Redlock vs SET-NX-PX choice, sliding-window rate limiter, hot-key on a single cluster slot, big-key blowup, MULTI/EXEC across slots, KEYS in production. NOT for Redis Cluster operations/admin (different domain), embedded KV (SQLite, leveldb), in-process LRU caches, or Memcached.
tools
Drawing the `'use client'` boundary correctly in React Server Components apps (Next.js App Router, RSC frameworks) — leaf-pushing, slot composition, serialization rules, and environment poisoning prevention. Grounded in react.dev and Next.js 16 docs.
development
Use when designing rate limiting for an API, choosing between token bucket / sliding window / leaky bucket / fixed window, implementing it in Redis, deciding edge (Cloudflare/Upstash) vs origin enforcement, sizing per-user vs per-IP vs per-endpoint quotas, returning the right 429 response with Retry-After, or fixing the boundary-burst bug in fixed-window limiters. Triggers: 429 too many requests, INCR + EXPIRE, ZADD + ZREMRANGEBYSCORE + ZCARD, X-RateLimit-Remaining header, Cloudflare WAF rate limiting rules, Upstash @upstash/ratelimit, leaky bucket shaping vs policing, distributed rate limiter consistency. NOT for DDoS mitigation specifically (different scale), CAPTCHA / bot management, full WAF design, or per-user quota billing.