Skill

ui-code-auditor

Install
1
Install the plugin
$
npx claudepluginhub majesticlabs-dev/majestic-marketplace --plugin majestic-engineer

Want just this skill?

Add to a custom plugin, then install with one command.

Description

Review source code for UI quality, accessibility violations, and performance anti-patterns. Static code analysis (NOT screenshot-based). Provides file:line references with severity, WCAG refs, and fix suggestions.

Tool Access

This skill is limited to using the following tools:

Read Grep Glob Bash
Supporting Assets
View in Repository
resources/generic-rules.md
resources/rails-rules.md
resources/react-rules.md
Skill Content

UI Code Auditor

Static code analysis for UI quality and accessibility. Complements screenshot-based tools (visual-validator, ui-ux-designer).

Input

path: string           # File or directory to audit (default: src/ or app/)
tech_stack: string[]   # From config, e.g., ["react", "rails"]
focus: string          # Optional: "accessibility", "performance", "all"

Review Process

1. Detect Tech Stack

/majestic:config tech_stack generic

2. Load Rules

Load rules from resources folder:

Read(resources/generic-rules.md)  # Always

If tech_stack contains "react":
  Read(resources/react-rules.md)

If tech_stack contains "rails":
  Read(resources/rails-rules.md)

3. Find UI Files

# React/JS projects
find . -name "*.tsx" -o -name "*.jsx" | head -100

# Rails projects
find . -name "*.erb" -o -name "*.html.erb" | head -100

# CSS/Tailwind
find . -name "*.css" -name "*.scss" | head -50

4. Audit Each File

For each UI file:

  1. Read file content
  2. Apply patterns from loaded rules
  3. Record findings with:
    • File path and line number
    • Severity (Critical, Serious, Moderate, Minor)
    • Issue description
    • WCAG reference (if applicable)
    • Fix suggestion

5. Generate Report

Output Format

## UI Code Audit Summary

**Verdict: PASS | FAIL**

- **Files Reviewed**: [count]
- **Critical Issues**: [count] → FAIL if > 0
- **Serious Issues**: [count]
- **Moderate Issues**: [count]
- **Minor Issues**: [count]

### Critical Findings

| File:Line | Issue | WCAG | Fix |
|-----------|-------|------|-----|
| `src/Button.tsx:45` | DIV with onClick, not keyboard accessible | 2.1.1 | Use `<button>` element |
| `src/Card.tsx:23` | Image missing alt text | 1.1.1 | Add `alt="description"` |

### Serious Findings

| File:Line | Issue | WCAG | Fix |
|-----------|-------|------|-----|
| `src/Modal.tsx:89` | Focus not trapped in modal | 2.4.3 | Implement focus trap |

### Moderate Findings

| File:Line | Issue | WCAG | Fix |
|-----------|-------|------|-----|
| `src/List.tsx:12` | Touch target 24px (< 44px) | 2.5.5 | Use `min-w-11 min-h-11` |

### Recommendations

- Consider using Radix UI for accessible dropdown implementation
- 3 animations found without `prefers-reduced-motion` support

Severity Definitions

SeverityDefinitionVerdict Impact
CriticalBlocks accessibility (can't use with keyboard/screen reader)FAIL
SeriousSignificantly degrades UX for assistive tech usersWarning
ModerateBest practice violation, minor UX impactWarning
MinorPolish opportunity, no functional impactInfo

WCAG Quick Reference

CodeNameCommon Violations
1.1.1Non-text ContentMissing alt text
1.3.1Info and RelationshipsMissing form labels
2.1.1KeyboardClick-only handlers
2.1.2No Keyboard TrapModal without escape
2.4.3Focus Ordertabindex > 0
2.4.7Focus Visibleoutline: none
2.5.5Target SizeTouch target < 44px
4.1.2Name, Role, ValueMissing ARIA

Quality Gate Integration

When invoked from quality-gate:

  • Return Verdict: PASS or Verdict: FAIL
  • FAIL if any Critical issues found
  • Include summary counts for aggregation

Edge Cases

ScenarioHandling
No UI files foundReturn PASS with "No UI files to audit"
tech_stack not configuredUse generic rules only
Stack rules fail to loadLog warning, continue with generic
File cannot be parsedSkip file, note in report
Multiple tech_stacksLoad rules for each, merge findings, deduplicate
Stats
Stars30
Forks6
Last CommitMar 15, 2026
Actions

Similar Skills