Agent skill

UX Semantics Audit

by rome-os in rome-os/rome

Audit an existing UI/UX design (React/JSX/TSX components, HTML, or generated app code) against a tiered ruleset of verifiable UX principles, and produce structured, evidence-cited findings that a…

MITAuto-check passedFrontend & Design

Install UX Semantics Audit

skills CLI
$ npx skills add rome-os/rome --skill ux-semantics-audit -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install rome-os/rome ux-semantics-audit --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/rome-os/rome.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/ux-semantics-audit .claude/skills/ux-semantics-audit && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
ux-semantics-audit
GitHub stars
737
Token cost
~2.1k tokens
SKILL.md length
760 words
Files
27 (incl. references)
Skills in repo
18
Repo updated
First seen
Licence
MIT

At a glance

Audit an existing UI/UX design (React/JSX/TSX components, HTML, or generated app code) against a tiered ruleset of verifiable UX principles, and produce structured, evidence-cited findings that a…

  • Works in 7 steps: Scope the audit → Load the ruleset → Build a per-view inventory → …
  • The user asks to review
  • SKILL.md covers Design philosophy (read this —…, Workflow, Passes worth keeping and Not flagged (borderline)
  • Runs JavaScript scripts from its folder

What it does

UX Semantics Audit is an agent skill from rome-os/rome. Audit an existing UI/UX design (React/JSX/TSX components, HTML, or generated app code) against a tiered ruleset of verifiable UX principles, and produce structured, evidence-cited findings that a coding agent can act on to fix the design. Use this skill whenever the user asks to review, evaluate, critique, audit, or lint a UI, screen, view, form, dialog, dashboard, or frontend codebase for UX quality, design problems, redundancy, confusing labels, missing states, or accessibility of status indicators — even if…

Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 29 other files, including reference files (for example `references/report-app.md` and `references/rules.md`).

It sits in Frontend & Design, covering React components, UI design and Linting and formatting. It works with React. The repository describes itself as: A compounding agent OS for recursive agents. Also an open source alternative to Grok Bot and Meta's Muse. The licence is MIT.

When your agent uses it

  • The user asks to review
  • Frontend codebase for UX quality
  • Design problems
  • Confusing labels

Example prompts

  • “t say the word”
  • “. Also use it when a coding agent”
  • “is this a good design?”
  • “/ux-semantics-audit”

Requirements

  • Node.js

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Scope the audit
  2. Load the ruleset
  3. Build a per-view inventory
  4. Run Tier 1 (mechanical) checks
  5. Run Tier 2/3 (semantic and judged) checks
  6. Self-review pass (false-positive sweep)
  7. Emit the report

What it can do on your machine

Read from SKILL.md and the folder at commit f187f45. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships script files (JavaScript, from the files we listed), which the agent can run.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

UX Semantics Audit loads about 2.1k tokens when it runs, and up to ~7.8k if it reads all its reference files. Until then it costs about 178 tokens; SKILL.md has 760 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~178
When it runs · the whole SKILL.md, loaded when a task matches
~2.1k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~7.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from rome-os/rome at commit f187f45, republished under its MIT licence (© rome-os). 760 words, ~2,120 tokens.

Download SKILL.mdSave it as .claude/skills/ux-semantics-audit/SKILL.md (or your agent's skills folder). This skill also uses 26 other files; get the full folder from GitHub.
name
ux-semantics-audit
description
Audit an existing UI/UX design (React/JSX/TSX components, HTML, or generated app code) against a tiered ruleset of verifiable UX principles, and produce structured, evidence-cited findings that a coding agent can act on to fix the design. Use this skill whenever the user asks to review, evaluate, critique, audit, or lint a UI, screen, view, form, dialog, dashboard, or frontend codebase for UX quality, design problems, redundancy, confusing labels, missing states, or accessibility of status indicators — even if they don't say the word "audit". Also use it when a coding agent's generated UI needs a quality check before shipping, or when the user asks "is this a good design?" about code.

UX Audit

Evaluate UI code against a curated set of verifiable UX rules and emit findings a coding agent can directly act on. This is a linter for UX semantics, not an aesthetic critique: the goal is high-precision, evidence-backed findings, not a wall of vague suggestions.

Design philosophy (read this — it shapes every judgment call)

  1. Precision over recall. A false positive costs more than a miss: the consuming coding agent will "fix" a non-problem and degrade the design. When in doubt, don't flag.
  2. No evidence, no finding. Every finding must cite the exact file, line range, and quoted code snippet that demonstrates the violation. If you cannot point at the code, the finding does not exist.
  3. Exceptions are where precision lives. Each rule in references/rules.md has an enumerated exceptions list. Before flagging, check the exceptions. A candidate that matches an exception is a pass, not a "borderline flag."
  4. Severity is trust calibration. block findings are mechanical and near-certain — the agent should fix all of them. warn findings involve judgment — the agent should consider them and may reasonably decline with a reason. Never promote a judgment call to block.
  5. Feedback must be constructive and specific. Every finding includes a concrete suggested fix expressed in terms of the actual code, not a restatement of the rule.

Workflow

Step 1 — Scope the audit

Identify the unit of analysis: the view. A view is a screen, page, route, dialog, drawer, or self-contained form — the thing a user perceives at one time. Enumerate the views in scope:

  • If given a whole repo/directory: find view-level components (pages, routes, dialogs, modals). List them and confirm scope with the user if there are more than ~10.
  • If given a single component/file: that component and its rendered children are the view.
  • If given a screenshot or design description alongside code, the code is the source of truth for findings; the image is context.

Composition matters: a rule like one-primary-action applies to the rendered view, not each source file. Trace child components far enough to know what actually renders together.

Step 2 — Load the ruleset

Read references/rules.md in full. It contains every rule's definition, detection procedure, enumerated exceptions, severity, and a violation/pass example pair. Do not audit from memory of the rule names.

Step 3 — Build a per-view inventory

For each view, before checking any rule, build a short inventory. This forces the semantic resolution the rules depend on and prevents lazy pattern-matching:

  • Data slots: each distinct datum displayed, where, and at what hierarchy level (e.g., order.total → header badge; also → summary table row).
  • Actions: every button/link/menu item, its label, visual variant (primary/secondary/ghost/destructive), and its outcome (what actually happens on activation — trace the handler).
  • Async states: for each async data source, which of {loading, empty, error} branches exist in the code.
  • Status indicators: anything conveying state (badges, dots, colored text) and the channels used (color / icon / text).
Show full SKILL.md (279 more words)Show less
Step 4 — Run Tier 1 (mechanical) checks

Check each Tier 1 rule against the inventory: single-source-of-truth, one-primary-action, state-completeness, color-not-sole-channel, focus-initial-attention, emphasis-budget. These are decidable from code structure. Severity: block (except where rules.md says otherwise).

Step 5 — Run Tier 2/3 (semantic and judged) checks

Check consistent-terminology and consequence-proximity (Tier 2, cross-view where relevant), then the judged rules: label-outcome-clarity, destructive-action-safety, error-recovery-path, progressive-disclosure, and the experimental rules if enabled. Severity: warn unless rules.md specifies otherwise. For these, re-read the rule's exceptions and examples before each flag — they are the rubric.

Step 6 — Self-review pass (false-positive sweep)

Before emitting the report, re-examine every finding and drop any that:

  • matches an enumerated exception,
  • lacks a concrete code citation,
  • depends on an assumption about code you did not read (e.g., "the child component probably also shows this"),
  • would require the fix to violate another rule.

If a finding survives but you have genuine uncertainty, keep it at warn and say what would confirm it.

Step 7 — Emit the report

Use exactly this structure:

markdown
# UX Audit: <scope>

## Summary
<2-4 sentences: overall assessment, count of block/warn findings, the single highest-leverage fix.>

## Findings

### [BLOCK|WARN] <rule-id>: <one-line title>
- **View**: <view/component name>
- **Evidence**: `<file>:<lines>`
  ```<lang>
  <minimal quoted snippet>
  • Why it matters: <1-2 sentences tied to this specific UI, not a generic rule recital>
  • Suggested fix: <concrete change in terms of this code; include a code sketch when it fits in a few lines>
  • Confidence: high | medium (warn-tier only; include what would confirm a medium)

Passes worth keeping

<Bulleted list of 2-5 things the design does right that a refactor should preserve. This prevents the coding agent from regressing good decisions while fixing findings.>

Not flagged (borderline)

<Candidates you examined and declined to flag, each with the exception or reason. Include only genuinely borderline cases. This section teaches the consuming agent the boundaries and builds trust in the flags that remain.>


Order findings: all `block` first, then `warn`, each group ordered by leverage (user impact × fix cheapness). If there are zero findings, say so plainly and fill in "Passes worth keeping" — a clean audit is a valid result, not a failure to try hard enough.

### Step 8 — Build the shareable report (Rome surfaces)

When the audit covers a Rome surface and the user wants something to look at, share, or triage — rather than findings in chat — build it with the report app in **`report/`**, beside this file. Do not hand-author an HTML page: the chrome, filtering, triage and prompt export already exist and are the same every time.

The whole job is two files:

1. **`findings.tsx`** — rewrite it against the `AuditReport` type in `types.ts`. Prose fields take Markdown inline syntax (`` `code` ``, `**bold**`), because the same strings render on the page *and* serialize into the hand-off prompt.
2. **`repros.tsx`** — one component per finding, built from real `@rome-os/ui` primitives.

Then `node .claude/skills/ux-semantics-audit/report/build.mjs` emits a single self-contained `dist-report/index.html`.

Read **`references/report-app.md`** before writing either file — it carries the authoring contract and the rules that keep reproductions honest.

## Interaction with the consuming coding agent

The report is designed to be handed to a coding agent as-is. Findings are independent work items: each contains everything needed to fix it (location, evidence, fix). Do not bundle multiple rule violations into one finding. If two findings share a root cause (e.g., a missing design-token discipline causes both an emphasis-budget and a color-not-sole-channel violation), note the shared root cause in the Summary rather than merging the findings.

## What this skill does NOT do

- Aesthetic judgments (spacing taste, color palette beauty, typography pairing) — out of scope.
- Full WCAG conformance — only color-not-sole-channel (1.4.1) is in the ruleset; recommend axe-core for the rest.
- Information architecture / navigation-model critique — the rules operate at view level, not sitemap level.
- Rewriting the UI itself — emit findings; the consuming agent makes the changes.

© rome-os, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 26 other files (references) in .claude/skills/ux-semantics-audit of rome-os/rome.

  • SKILL.md
  • references/report-app.md
  • references/rules.md
  • report/.gitignore
  • report/Report.tsx
  • report/build.mjs
  • report/findings.example.tsx
  • report/fonts.css
  • report/fonts/LICENSE
  • report/fonts/funnel-sans-latin-400-normal.woff2
  • report/fonts/funnel-sans-latin-500-normal.woff2
  • report/fonts/funnel-sans-latin-600-normal.woff2
  • report/fonts/ibm-plex-mono-latin-400-normal.woff2
  • report/fonts/ibm-plex-mono-latin-500-normal.woff2
  • report/fonts/petrona-latin-500-normal.woff2
  • report/fonts/petrona-latin-600-normal.woff2
  • report/index.html
  • report/main.tsx
  • … and 9 more

Open the folder on GitHubat commit f187f45

Compare with similar skills

UX Semantics Audit next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

UX Semantics Audit compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
UX Semantics Audit this skillrome-os/rome737—~2.1kAutomated safety check: PassMIT
Creative Tim UI Blockscreativetimofficial/ui12k—~2.1kAutomated safety check: NotesMIT
React Render Types CompositionHorusGoul/eslint-plugin-react-render-types111—~1.1kAutomated safety check: PassMIT
DaleuiDaleStudy/daleui119—~675Automated safety check: PassMIT
Frontend DesignYYH211/Claude-meta-skill2821 repos~2.2kAutomated safety check: PassMIT
Vetta UI Designopenvetta/open-vetta291—~7.3kAutomated safety check: PassApache-2.0

Similar skills

  • Creative Tim UI Blocks

    creativetimofficial/ui

    Helps install, generate and review Creative Tim UI blocks: shadcn/ui-based React and Tailwind sections that follow a restrained, production-minded design philosophy.

    12k GitHub stars~2.1k tokensUpdated 6 mo ago
    Frontend & DesignAuto-check: notes
  • React Render Types Composition

    HorusGoul/eslint-plugin-react-render-types

    Composition patterns for building React components with @renders type annotations from eslint-plugin-react-render-types.

    111 GitHub stars~1.1k tokensUpdated 2 mo ago
    Frontend & DesignAuto-check passed
  • Daleui

    DaleStudy/daleui

    Use the daleui React design system with semantic Panda CSS tokens and accessible components.

    119 GitHub stars~675 tokensUpdated 2 days ago
    Frontend & DesignAuto-check passed
  • Frontend Design

    YYH211/Claude-meta-skill

    Creates unique, production-grade frontend interfaces with exceptional design quality.

    282 GitHub starsUsed in 1 repo~2.2k tokens
    Frontend & DesignAuto-check passed
  • Vetta UI Design

    openvetta/open-vetta

    Build and edit design documents (.vetd) on the Vetta design canvas — app screens, landing pages, slides, posters, infographics.

    291 GitHub stars~7.3k tokensUpdated today
    Frontend & DesignAuto-check passed
  • Design Review

    pproenca/dot-skills

    Structured UI design review — existing code (React/JSX, CSS, Tailwind) and, when behaviour matters, the running app in a real browser — reported as a prioritised Before / After / Why table.

    215 GitHub stars~3.4k tokensUpdated 1 mo ago
    Frontend & DesignAuto-check passed

More from rome-os/rome

All 18 skills in this repo
  • Color Audit

    rome-os/rome

    Audit a design system's color palette against measurable color-science disciplines — WCAG/APCA contrast of declared token pairs, perceptual (OKLCH) ramp uniformity, color-blindness safety of…

    737 GitHub stars~2.7k tokensUpdated today
    Auto-check passed
  • Audit the subordinate copy in a UI — section descriptions, field helper text, hints, card subtitles, empty-state body copy, tooltip bodies — against the secondary-text ruleset, and emit a per-string…

    737 GitHub stars~2.8k tokensUpdated today
    Auto-check passed
  • Add a new Rome-managed OAuth integration for a third-party service so a user can delegate access by clicking Connect, and Rome can act on the service with the delegated token (the GitHub/Slack model…

    737 GitHub stars~3.6k tokensUpdated today
    Auto-check passed
  • Composio CLI

    rome-os/rome

    Help users operate the published Composio CLI to find the right tool, connect accounts, inspect schemas, execute tools, subscribe to trigger events with composio listen, script workflows with…

    737 GitHub stars~2.7k tokensUpdated today
    Auto-check passed
  • File Issue

    rome-os/rome

    File one GitHub issue from a description the user gives — classify it as a bug report, feature request, or task spec, gather what the body needs from the tracker and the code, ask the user only for…

    737 GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • Routine From Chat

    rome-os/rome

    Turn a plain-language "do this automatically" request into a routine — either event-triggered ("text me when I get an email from my landlord") or scheduled ("remind me every Friday at 9am").

    737 GitHub stars~3.8k tokensUpdated today
    Auto-check passed

Works with

Questions about UX Semantics Audit

What does UX Semantics Audit do?

Audit an existing UI/UX design (React/JSX/TSX components, HTML, or generated app code) against a tiered ruleset of verifiable UX principles, and produce structured, evidence-cited findings that a…. UX Semantics Audit is an agent skill from rome-os/rome. Audit an existing UI/UX design (React/JSX/TSX components, HTML, or generated app code) against a tiered ruleset of verifiable UX principles, and produce structured, evidence-cited findings that a coding agent can act on to fix the design.

When should I use UX Semantics Audit?

UX Semantics Audit fits situations like: the user asks to review; frontend codebase for UX quality; design problems; confusing labels.

How do I install UX Semantics Audit in Claude Code?

Run `npx skills add rome-os/rome --skill ux-semantics-audit -a claude-code`. Or copy the skill folder (.claude/skills/ux-semantics-audit in rome-os/rome) into .claude/skills/ux-semantics-audit in your project. Claude Code loads it when a task matches its description.

How do I install UX Semantics Audit in Codex?

Run `npx skills add rome-os/rome --skill ux-semantics-audit -a codex`. Or copy the skill folder (.claude/skills/ux-semantics-audit in rome-os/rome) into .agents/skills/ux-semantics-audit in your project. Codex loads it when a task matches its description.

Can I use UX Semantics Audit in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add rome-os/rome --skill ux-semantics-audit -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ux-semantics-audit, .gemini/skills/ux-semantics-audit, .github/skills/ux-semantics-audit and .opencode/skills/ux-semantics-audit in your project.

What does UX Semantics Audit need to run?

Going by SKILL.md and its folder, UX Semantics Audit needs JavaScript for the scripts in its folder. Our summary lists: Node.js.

Does UX Semantics Audit access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is UX Semantics Audit safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does UX Semantics Audit use?

UX Semantics Audit is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does UX Semantics Audit use?

About 2.1k tokens (SKILL.md is roughly 8.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 5.7k tokens, read only when the agent opens those files.

What are the alternatives to UX Semantics Audit?

Skills that share tags, products or a category with UX Semantics Audit: Creative Tim UI Blocks (creativetimofficial/ui, 12k stars), React Render Types Composition (HorusGoul/eslint-plugin-react-render-types, 111 stars), Daleui (DaleStudy/daleui, 119 stars) and Frontend Design (YYH211/Claude-meta-skill, 282 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains UX Semantics Audit?

rome-os (a GitHub organization) maintains it in rome-os/rome, which has 737 GitHub stars. The repository holds 18 skills in this directory. The repository was last updated on October 9, 2026.

Source: rome-os/rome on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.