/ Directory / Playground / ai-friendly-web-design-skill
● Community ianho7 ⚡ Instant

ai-friendly-web-design-skill

by ianho7 · ianho7/ai-friendly-web-design-skill

14 design principles plus auto-review for building web UIs that AI agents can navigate reliably — semantic HTML, stable test IDs, no hidden interactions.

A Claude Code skill enforcing 14 design principles that make UIs usable by both humans and automation/agents: semantic HTML, ARIA, stable data-testid / data-ai-action locators, native form controls, pagination over infinite scroll, explicit loading states, URL deep links, clear errors, dual UI+API entry points. Auto-applies whenever Claude builds or reviews a UI component.

Why use it

Key features

Live Demo

What it looks like in practice

ai-friendly-web-design-skill.replay ▶ ready
0/0

Install

Pick your client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "ai-friendly-web-design-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/ianho7/ai-friendly-web-design-skill",
        "~/.claude/skills/ai-friendly-web-design-skill"
      ],
      "_inferred": true
    }
  }
}

Open Claude Desktop → Settings → Developer → Edit Config. Restart after saving.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "ai-friendly-web-design-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/ianho7/ai-friendly-web-design-skill",
        "~/.claude/skills/ai-friendly-web-design-skill"
      ],
      "_inferred": true
    }
  }
}

Cursor uses the same mcpServers schema as Claude Desktop. Project config wins over global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "ai-friendly-web-design-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/ianho7/ai-friendly-web-design-skill",
        "~/.claude/skills/ai-friendly-web-design-skill"
      ],
      "_inferred": true
    }
  }
}

Click the MCP Servers icon in the Cline sidebar, then "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "ai-friendly-web-design-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/ianho7/ai-friendly-web-design-skill",
        "~/.claude/skills/ai-friendly-web-design-skill"
      ],
      "_inferred": true
    }
  }
}

Same shape as Claude Desktop. Restart Windsurf to pick up changes.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "ai-friendly-web-design-skill",
      "command": "git",
      "args": [
        "clone",
        "https://github.com/ianho7/ai-friendly-web-design-skill",
        "~/.claude/skills/ai-friendly-web-design-skill"
      ]
    }
  ]
}

Continue uses an array of server objects rather than a map.

~/.config/zed/settings.json
{
  "context_servers": {
    "ai-friendly-web-design-skill": {
      "command": {
        "path": "git",
        "args": [
          "clone",
          "https://github.com/ianho7/ai-friendly-web-design-skill",
          "~/.claude/skills/ai-friendly-web-design-skill"
        ]
      }
    }
  }
}

Add to context_servers. Zed hot-reloads on save.

claude mcp add ai-friendly-web-design-skill -- git clone https://github.com/ianho7/ai-friendly-web-design-skill ~/.claude/skills/ai-friendly-web-design-skill

One-liner. Verify with claude mcp list. Remove with claude mcp remove.

Use Cases

Real-world ways to use ai-friendly-web-design-skill

Audit an existing component for agent-readiness

👤 Web devs shipping to customers who'll hit the page with agents ⏱ ~30 min beginner

When to use: Your support chatbot or QA agent keeps missing the right button.

Prerequisites
  • Skill installed — git clone https://github.com/ianho7/ai-friendly-web-design-skill ~/.claude/skills/ai-friendly-web-design-skill
Flow
  1. Feed Claude the component
    Review this Checkout.tsx against ai-friendly-web-design principles. Flag severity.✓ Copied
    → Ranked list: critical (hover-only submit) -> minor (missing aria-live)
  2. Apply the fixes
    Apply all critical + major fixes, keep visuals identical.✓ Copied
    → Patched component + a diff summary

Outcome: A component that's still pretty for humans and reachable for agents.

Pitfalls
  • Adding data-testid everywhere without convention — Follow the skill's naming convention (data-testid='<area>-<action>') or they drift
Combine with: chrome-devtools

Build a new form with native controls and proper ARIA

👤 Frontend devs building high-stakes forms (checkout, onboarding) ⏱ ~45 min intermediate

When to use: A new form where you can't afford to block screen readers or agents.

Flow
  1. Scaffold from principles
    Build a billing address form using ai-friendly-web-design. Native input types, labels, aria-describedby for errors, explicit loading on submit.✓ Copied
    → Form with HTML native types (email, tel), no custom combobox hacks
  2. Add deep-linking + URL state
    Make the form step reflect in the URL so agents can open step 2 directly.✓ Copied
    → step param in URL, state restored on load

Outcome: A form both assistive tech and agents navigate cleanly.

Replace infinite scroll with predictable pagination

👤 Product engineers where agents fail to get past page 1 ⏱ ~30 min intermediate

When to use: Your list page uses infinite scroll and agents never reach items below the fold.

Flow
  1. Refactor to paginated route
    Replace the infinite-scroll list with URL-based pagination (?page=N). Keep scroll behavior feel.✓ Copied
    → Addressable pages, prev/next with ARIA

Outcome: A list an agent can walk deterministically.

Pitfalls
  • Breaking SEO by removing the old scroll entirely — Keep scroll load within each page — just make the page boundary explicit

Combinations

Pair with other MCPs for X10 leverage

ai-friendly-web-design-skill + chrome-devtools

Test the component live and confirm agent locators work

Load the patched component in devtools, verify data-testid values and aria attributes render.✓ Copied

Tools

What this MCP exposes

ToolInputsWhen to callCost
review_component component path/source Any UI PR or audit 0
apply_principles component + findings After review 0
scaffold_agent_friendly UI spec Greenfield UI 0

Cost & Limits

What this costs to run

API quota
None
Tokens per call
Moderate — component + review
Monetary
Free
Tip
Run review at PR time, not every keystroke

Security

Permissions, secrets, blast radius

Credential storage: None
Data egress: None

Troubleshooting

Common errors and fixes

Review says no issues but agents still miss buttons

Run with Chrome DevTools snapshot; shadow DOM may hide from the static review

data-testid names clash with existing tests

Provide your naming convention to the skill before it auto-names

Alternatives

ai-friendly-web-design-skill vs others

AlternativeWhen to use it insteadTradeoff
Manual a11y review + LighthouseYou only care about accessibility, not agent navigationMisses agent-specific concerns like stable locators

More

Resources

📖 Read the official README on GitHub

🐙 Browse open issues

🔍 Browse all 400+ MCP servers and Skills