tools/sage-claude-plugin/skills/ux-audit/SKILL.md
Reverse-engineers the current design system from screenshots or a live URL. Extracts colors, typography, spacing, component patterns, and layout structure. Use when redesigning an existing page, auditing a current design, or when the user says "audit this design", "what's the current design system", "analyze this page", or provides a URL and says "redesign".
npx skillsauth add xoai/sage ux-auditInstall 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.
Extract the implicit design system from an existing page. Before you can improve a design, you need to understand what currently exists — not from the code, but from what the user sees.
Core Principle: Every shipped product has a design system, even if it was never documented. Colors were chosen. Typography was set. Spacing patterns emerged. Component shapes repeated. This skill makes the implicit explicit so the redesign can make intentional choices about what to keep, what to change, and what to unify.
Do NOT use for:
If screenshots don't already exist, capture them:
bash sage/runtime/tools/sage-screenshot.sh <url-or-localhost> \
--output .sage/work/<feature>/screenshots \
--label current \
--full-page \
--before
If the user provided a URL, also fetch the page content for structural analysis:
From the screenshots, identify:
## Colors
Primary: [color] — used for: [CTAs, links, active states]
Secondary: [color] — used for: [headings, accents]
Background: [color(s)] — used for: [page bg, section bgs, card bgs]
Text: [color(s)] — used for: [body, headings, muted/secondary]
Accent: [color(s)] — used for: [badges, highlights, alerts]
Semantic: success [color], error [color], warning [color]
Note inconsistencies: "Two different blues used for CTAs — #2563eb on hero, #3b82f6 on cards. Likely unintentional."
## Typography
Heading 1: [size estimate] / [weight] / [color]
Heading 2: [size estimate] / [weight] / [color]
Heading 3: [size estimate] / [weight] / [color]
Body: [size estimate] / [weight] / [color] / [line-height estimate]
Caption: [size estimate] / [weight] / [color]
Font family: [serif/sans-serif/identified family if recognizable]
Note: sizes are estimates from screenshots. Exact values come from code inspection if needed. The point is to identify the visual hierarchy, not the pixel values.
## Layout
Max content width: [estimate]
Grid system: [columns at desktop, tablet, mobile]
Section spacing: [gap between major sections]
Card spacing: [gap between cards/items]
Internal padding: [padding inside cards/sections]
## Responsive
Mobile: [what stacks, what hides, what changes]
Tablet: [how grid adapts]
Desktop: [full layout description]
Identify repeating UI components:
## Components
Buttons: [styles: primary, secondary, ghost — shapes, sizes]
Cards: [structure: image + title + desc + CTA? shadow? border-radius?]
Navigation: [type: sticky header? hamburger on mobile? mega menu?]
Hero: [pattern: text-left/image-right? full-width image? video?]
Social proof: [testimonials? logos? numbers? score displays?]
Forms: [input style, label position, error display]
Icons: [style: outlined? filled? library if recognizable?]
## Page Sections (in order)
1. [Section name] — [purpose] — [above/below fold on mobile]
2. [Section name] — [purpose]
3. ...
## CTA Strategy
Primary CTA: [text] — [placement] — [visual weight]
Secondary CTA: [text] — [placement]
CTA count: [total on page]
## Navigation
Header: [logo + nav items + CTA]
Footer: [columns, links, contact info]
Combine all extractions into .sage/work/<feature>/current-design-system.md:
# Current Design System: [page/product name]
**Audited from:** [URL or screenshots]
**Date:** [timestamp]
**Breakpoints reviewed:** mobile, tablet, desktop
## Colors
[from Step 2]
## Typography
[from Step 3]
## Spacing and Layout
[from Step 4]
## Components
[from Step 5]
## Information Architecture
[from Step 6]
## Consistency Issues Found
- [inconsistency 1]
- [inconsistency 2]
## Strengths
- [what works well visually]
## Weaknesses
- [what could be improved]
Show the document to the user: "Here's the current design system I extracted. Anything I missed or got wrong?"
MUST (violation = inaccurate audit):
SHOULD (violation = incomplete audit):
MAY (context-dependent):
Communication style: Evaluator language. Be specific and evidence-based. Every finding needs observable evidence and user impact. Thoroughness is more valuable than diplomacy.
Good UX audit output:
Before presenting your output, check each quality criterion above. For each, confirm it's met or note what's missing. Present your findings AND your self-assessment:
"Self-review: [X/Y criteria met]. [Note any gaps and why they exist.]"
development
Branch-per-initiative git discipline for all delivery workflows. Defines branch naming by workflow, the propose-confirm creation protocol, dirty-tree and detached-HEAD handling, the always user-gated merge protocol, worktree support for parallel sessions, and abandonment cleanup. Activates only in git repositories — silently inactive everywhere else. Use when starting /build, /fix, /architect, or /build-x at Standard+ scope, when resuming an initiative, when offering a merge at a completion checkpoint, or when the user wants a second concurrent initiative.
development
Drives task-by-task execution from an approved plan with quality gates between each task. Reads the plan, finds the next incomplete task, dispatches implementation, validates, updates progress, and continues. Use after a plan is approved and the user says "go", "start building", "execute the plan", or "implement the feature".
testing
Preserves and restores context across agent sessions using plan file checkboxes as source of truth. Use when starting a new session, resuming previous work, ending a session, or when the user says "continue from last time", "what was I doing", or "save progress".
tools
Captures agent mistakes, corrections, and discovered gotchas so they are not repeated. Use when: (1) a command or operation fails unexpectedly, (2) the user corrects the agent, (3) the agent discovers non-obvious behavior through debugging, (4) an API or tool behaves differently than expected, (5) a better approach is found for a recurring task. Also searches past learnings before starting tasks to avoid known pitfalls. Activate alongside the sage-memory skill — they share the same MCP backend but serve different purposes (sage-memory = codebase knowledge, sage-self-learning = agent mistakes and gotchas).