agentsclimarketplace

Ui critique

Skill manastalukdar/ai-devstudio/skills/ui-critique

Dual-agent UX design review — Assessment A runs design-director heuristics while Assessment B runs visual pattern analysis; results synthesized into a prioritized critique snapshotFrom its SKILL.md

Install
npx -y skills add manastalukdar/ai-devstudio --skill ui-critique

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

4.9 KB, ~1.2k tokens by cl100k_base, as published. Nobody here has run it

UI Critique

I'll conduct a two-perspective design review and synthesize findings into a prioritized, persisted snapshot that feeds /ui-polish.

Purpose

Catch design quality issues before they reach users. The dual-agent approach surfaces problems that a single-perspective review misses — heuristic reviewers overlook CSS anti-patterns; pattern checkers miss information hierarchy failures.

Usage

  • /ui-critique — review changed UI files
  • /ui-critique [file or directory] — review a specific target
  • /ui-critique --full — review all UI files in the project

Behavior

Step 1 — Identify target files

# Default: changed UI files only
git diff --name-only HEAD -- '*.tsx' '*.jsx' '*.html' '*.css' '*.vue' '*.svelte' '*.css' '*.scss'

# If no changed UI files, check staged:
git diff --cached --name-only -- '*.tsx' '*.jsx' '*.html' '*.css' '*.vue' '*.svelte'

If still empty and no argument provided, report "No UI files in scope" and stop.

Step 2 — Load context

# Read shape brief if present (guides heuristic review)
ls .claude/cache/ui-shape/ 2>/dev/null | head -5

# Read previous critique snapshot if present (avoids re-reporting fixed issues)
ls .claude/cache/ui-critique/ 2>/dev/null | head -5

Step 3 — Run dual assessment (parallel)

Spawn two independent assessment agents. Neither sees the other's output before synthesis.

Assessment A — Design Director Heuristics: Review for:

  • Information hierarchy: does visual weight match content importance?
  • Typography: consistent scale, appropriate line-height, readable measure (65–75ch target)
  • Spacing rhythm: consistent spacing units, not cramped (< 8px padding on interactive elements)
  • Color: sufficient contrast (WCAG AA minimum), purposeful use, not decorative noise
  • Empty and error states: are they designed or absent?
  • Touch targets: interactive elements ≥ 44×44px

Assessment B — Visual Pattern Analysis: Grep target files for known AI/template anti-patterns:

# Side-tab accent (border-left/right as decorative stripe)
grep -rn "border-left\|border-right" --include="*.css" --include="*.tsx" | grep -v "border-left: 0\|border-right: 0"

# Gradient text
grep -rn "background-clip.*text\|webkit-background-clip.*text" --include="*.css" --include="*.tsx"

# Glassmorphism overuse
grep -rn "backdrop-filter\|backdrop-blur" --include="*.css" --include="*.tsx"

# Bounce/elastic easing
grep -rn "bounce\|elastic\|spring\|cubic-bezier.*1\.[2-9]" --include="*.css" --include="*.tsx"

# Over-rounded corners (≥ 24px on cards)
grep -rn "border-radius.*[2-9][4-9]px\|border-radius.*[3-9][0-9]px" --include="*.css"

# Eyebrow-on-every-section (small all-caps tracking)
grep -rn "letter-spacing.*[2-9]px\|text-transform.*uppercase" --include="*.css" --include="*.tsx"

# Numbered section markers (01/02/03)
grep -rn '"0[1-9]"\|"[0-9][0-9]"\.' --include="*.tsx" --include="*.jsx" | head -10

Report each match with file:line and a one-line description of why it's a problem.

Step 4 — Synthesize

If both assessments ran independently: synthesize normally. If only one ran: prepend [DEGRADED — single-perspective review] to the output.

Produce a scored critique:

  • P0 — Blockers: accessibility failures, illegible text, broken layouts
  • P1 — Major: hierarchy failures, prominent anti-patterns, missing states
  • P2 — Minor: polish opportunities, subtle pattern issues

Step 5 — Persist snapshot

mkdir -p .claude/cache/ui-critique
# Write snapshot as SCOPE-DATE.md

Snapshot format:

Score: P0: N, P1: N, P2: N
Target: <files reviewed>
Date: <ISO date>

[P0] <issue> — <file:line>
[P1] <issue> — <file:line>
...

Report: "Critique complete. Run /ui-polish to work through the backlog."

Examples

/ui-critique src/components/Dashboard.tsx
→ dual assessment → synthesis → snapshot saved

/ui-critique
→ reviews changed UI files → P0/P1/P2 prioritized findings

Token Optimization

Expected range: 800–2,500 tokens (dual assessment + synthesis)

Early exit: No UI files in scope → stop immediately (50 tokens).

Patterns used: Grep-before-Read (Assessment B uses grep only), git diff scope default, progressive disclosure (P0 first, P1/P2 summarized)

Cache: Reads shape brief; writes critique snapshot for /ui-polish to consume.

Edge Cases

  • All grep matches are false positives (e.g., border-left: 0): report "Pattern checks clean"
  • No shape brief present: Assessment A runs with general design heuristics
  • Large files (> 500 lines): grep only, note that full read was skipped

Safety

Read-only except for writing the critique cache snapshot. No source file edits.

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 326,679. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.