joshuashepherd/my-skills/icon-audit

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Audit and fix icon usage for movemental — mixed libraries, wrong sizes, hardcoded colors, missing accessibility, and illustration anti-patterns. Enforces lucide-react as the single icon library.

Install

npx vskill@latest install joshuashepherd/my-skills/icon-audit

SKILL.md

Audit and fix icon anti-patterns across the movemental codebase.

Target: $ARGUMENTS

If no target is provided, scan src/components/ and src/app/(site)/.

Before Starting

  1. Read docs/design/DESIGN.md — icon conventions.
  2. Grep for icon imports to understand current usage patterns.

Icon Standard

Single library: `lucide-react` — no other icon libraries allowed.

Size Scale
ContextSizeTailwind
Inline with text16pxsize-4
Standard UI20pxsize-5
Feature cards20-24pxsize-5 or size-6
Hero features24pxsize-6
Color
  • Icons inherit currentColor by default
  • Use semantic tokens via parent: text-primary, text-muted-foreground, etc.
  • Never hardcode icon colors (text-blue-600, fill="#000")
Accessibility
  • Decorative icons: aria-hidden attribute
  • Meaningful icons (no adjacent label): wrap with <span className="sr-only">Label</span>
  • Icon-only buttons: must have aria-label

Audit Checklist

1. WRONG LIBRARY (Critical)

Search for non-lucide icon imports:

  • @heroicons/react → replace with lucide equivalent
  • react-icons → replace with lucide equivalent
  • @radix-ui/react-icons → replace with lucide equivalent
  • Material Symbols (material-symbols-outlined) → replace with lucide
  • Inline SVGs that duplicate a lucide icon → use the lucide component
2. SIZE INCONSISTENCY (High)
  • Mixed icon sizes in the same context (e.g., size-4 and size-6 in the same card grid)
  • Icons not using the Tailwind size-* utility (using w-5 h-5 instead of size-5)
  • Icons larger than size-6 (24px) in non-hero contexts
3. COLOR VIOLATIONS (High)
  • Hardcoded colors: text-blue-600, fill="#0053db", stroke="black"
  • Should use parent's semantic color or explicit token: text-primary, text-muted-foreground
4. ACCESSIBILITY (Medium)
  • Decorative icons missing aria-hidden
  • Icon-only buttons without aria-label
  • Icons conveying meaning without text alternative
5. FLEX COMPRESSION (Medium)
  • Icons inside flex containers without shrink-0 (can get squished)
  • Fix: add shrink-0 to icons in flex layouts

Output Format

## Icon Audit Report
### Summary
- Files scanned: X
- Icons found: X
- Violations: X
### Issues
| # | Severity | File:Line | Issue | Fix |
|---|----------|-----------|-------|-----|
### Fixes Applied
- file.tsx — description of change

Rules

  • Lucide is the ONLY icon library. No exceptions.
  • Icons use size-* utility, not w-*/h-* pairs.
  • All decorative icons get aria-hidden.
  • Never modify src/components/ui/* — only domain components and pages.

Security

  • Security scanPassed, 95 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

7-day trend score
5

Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/joshuashepherd/my-skills/icon-audit/badge)](https://verified-skill.com/skills/joshuashepherd/my-skills/icon-audit)

Something wrong with this skill or its page? Tell us.