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-researchertools
Building resilient distributed systems with circuit breakers, retries with full-jitter exponential backoff, retry budgets (per-request 3-attempt + per-client 10% ratio per Google SRE), deadline propagation, and the cascading-failure math (4 layers × 3 retries = 64x amplification). Grounded in Resilience4j, Microsoft Cloud Patterns, AWS Architecture Blog (Marc Brooker), and Google SRE Book.
testing
Designing HTTP cache headers that work correctly across browsers, CDNs, and shared proxies — `Cache-Control` directives per RFC 9111, `stale-while-revalidate` and `stale-if-error` per RFC 5861, the Vary header for varying responses, and surrogate keys for tag-based purging. Grounded in IETF RFCs and Cloudflare/Fastly docs.
development
Use when designing or fixing a Content Security Policy on a real site, choosing between nonce-based and hash-based CSP, adding strict-dynamic, debugging "Refused to execute inline script" errors, deploying CSP in report-only mode first, configuring report-to / report-uri, or auditing an existing policy for unsafe-inline / unsafe-eval / wildcards. Triggers: "CSP blocks legitimate inline script", strict-dynamic, nonce-{RANDOM}, sha256-{HASH}, object-src none, base-uri none, frame-ancestors, Trusted Types, X-Content-Security-Policy obsolete, report-only vs enforced. NOT for general HTTP security headers (HSTS, COOP/COEP), Trusted Types deep dive, CORS configuration, or building a WAF.
tools
Choosing and operating an HTTP API versioning strategy that doesn't break clients — Stripe's date-based pinned versions, the Deprecation/Sunset header pair (RFC 9745 + RFC 8594), URI vs header vs media-type approaches, and the version-transformer pattern. Grounded in Stripe's published architecture and IETF RFCs.