Work

open-ux.dev

Open UX

Cited UX rules that AI agents pull by task and check their work against.

Open UX turns published design system guidance into rules an agent can use. Each rule gives guidance on one specific UI decision and links to the source it came from.

role
Product owner and builder
status
Live
used by
Agents in Claude Code, Cursor and any MCP client
A robot inspects a web page against a checklist

01 / the opportunity

Agents write UI now. UX knowledge was written for people.

the problem

AI agents build and review UI every day. Working with them, I identified gaps in how they reasoned about UX and UI choices. Design choices were made with no clear source behind them, and the same question got different answers from one session to the next.

the gap

The guidance already exists. GOV.UK, Polaris, Ant Design and Fluent publish it, with sources. But it's written for people reading docs, not for an agent that needs one rule for one task. The opportunity is the layer in between.

why it's worth building

  • Why now: agents are becoming the ones who write UI, and nothing serves them UX knowledge.
  • The raw material is open: the guidance is published under open licences, so the work is structuring it, not writing it.
  • Distribution is cheap: over MCP, one server reaches any agent client.
  • The bet: if an agent can pull the cited rules for its job, every UX call can point to a source, not a guess.

the vision

A catalog owned by the community that writes UX guidance. Design system teams, researchers and practitioners contribute the rules they already publish, one cited claim at a time. As their guidance evolves, the catalog evolves with it, and every agent that pulls from it gets the current evidence.

02 / product decisions

Product decisions that shaped Open UX.

  1. product boundary

    Let the agent make the call.

    Early on, I realized the need wasn't a tool that analyzes complex design work and hands down a definitive verdict. The agent building the UI already sees the screen and knows the product, the users and the task. What it lacks is the published guidance behind each choice. So Open UX gives it the rules that apply, each with its source, and the agent decides.

    trade-off
    The agent has to do the reasoning, so the result is only as good as the agent. When design systems disagree, Open UX shows both and keeps the conflict visible. Teams that need measured results use a separate grading tool that reports counts, not opinion scores.
    payoff
    Every answer can be checked. The agent can say which rule it used and where that rule comes from, and a person can follow the link. It also kept the work on the rules and the data. A heavy analysis engine would cost a lot to build and run, with no clear payoff.
  2. structure

    Break documentation into rules an agent can use.

    Design system docs are written as pages. Agents need answers. So I broke each page into single rules, like "let users show their password". Each rule answers one question, links to its source, and says when it applies and when it doesn't. When two systems agree, it's one rule with both sources.

    trade-off
    Hundreds of small files to maintain. Schema checks in CI keep them consistent. And only openly licensed guidance can go into the catalog.
    payoff
    Every rule traces back to a source and says when it doesn't apply. An agent can cite the exact rule behind a choice. A map links each rule to jobs, components and sources. The agent follows it from a task to the rules that matter.
  3. retrieval

    Give the agent only what it needs.

    Handing an agent every rule doesn't help. The one it needs gets buried. Agents work in tasks, so I grouped the catalog by job, like "design a form" or "compose sign-in". The agent names its task and gets only the rules that fit.

    trade-off
    Retrieval needs a lookup step: the agent has to map its task to a job before it gets rules. A matching tool covers this. The agent sends a plain-language task description and receives the candidate jobs, or lists all jobs and selects one.
    payoff
    Less noise, more focus. "Compose sign-in" returns 3 rules, few enough for the agent to read, apply and cite each one.
  4. scope

    Retrieve, don't orchestrate.

    Agents already run their own workflow: they plan, ask and iterate. So the focus stayed on what matters, getting the right cited rules to the agent, with a retrieval mechanism built for exactly that. Optional helpers ship as a Python package that runs on the agent's side, for anyone who wants more guidance.

    trade-off
    Open UX doesn't guide the process. The agent, or the helpers, have to.
    payoff
    It fits into any agent's workflow without changing it. Any MCP client can use it as is.

03 / how it works

Task-based retrieval of cited UX guidelines.

The agent describes a task. Open UX returns cited rules, sources and component guidance. The agent builds or reviews.

  1. 01 / task

    Compose sign-in

    Name the job.

  2. 02 / job Card

    Find the relevant need

    Show the password.

  3. 03 / evidence

    Cited rules + sources

    GOV.UK criteria + component guidance.

  4. 04 / application

    Build or review

    The agent makes the call.

6 mcp tools

  • suggest_situations
  • list_situations
  • get_situation
  • pack
  • get_guideline
  • get_component

password / component mapping

Role aliases

Selected fields · one role

{"variants": {
  "role": [{
    "id": "current",
    "aliases": [
      "current-password"
    ]
  }]
}}

Composition

Selected fields

{"variants": {
  "composition": [{
    "id": "with_reveal",
    "aliases": [
      "show password",
      "hide password"
    ]
  }]
}}

Behavior requirements

Selected fields

{"accessibility": [
  {"id": "accessible_name"},
  {"id": "reveal_named"}
],
"keyboard": [
  {"id": "reveal_keys"}
]}
The LLM retrieves cited guidelines and evaluates the design against them.

04 / design & interface

Agents read JSON. People check the pages.

Agents get the rules through MCP. People get the same rules on open-ux.dev, to see what an agent cited and why. The design process covered research, audience, journeys, layout, a visual system and a small layer of delight. These are the components that came out of it.

process

  1. 01 research

    15 published sources surveyed, from GOV.UK and USWDS to Polaris and Fluent. NN/g was dropped for licensing; a Sources page lists the rest.

  2. 02 audience

    Two readers. Agents read the rules as JSON over MCP. People read the same rules as pages, to check what an agent cited.

  3. 03 journeys

    Three paths, taken from the shipped flows: a developer gets access, a reviewer checks a rule, the owner reads usage.

  4. 04 layout and content

    Pages mirror the data. The rule page follows the JSON fields, and the sidebar follows the job tree agents navigate.

  5. 05 visual system

    Paper, ink and one orange, built as a Figma library: OKLCH reference scales, semantic aliases and core components.

  6. 06 delight

    One mascot, Pip, used only in quiet moments, with written rules so it never becomes decoration.

journeys

developer

  1. landing
  2. request access
  3. invite approved
  4. redeem key
  5. connect agent

reviewer

  1. catalog
  2. filter by area
  3. rule page
  4. source citation

owner

  1. admin login
  2. approve invites
  3. usage telemetry
  • Four swatches: paper, ink, pip orange and clay.

    brand palette

    Paper, ink and one orange.

    The site is reference material, so it reads like paper: warm off-white, dark ink, IBM Plex. One accent, Pip orange, marks what matters: the logo, the current item, a citation. Clay tones are kept for illustration only.

  • Pip, an orange dot mascot, perched on a catalog card, with four poses: sit, hold, look and wait.

    mascot

    A reference tool can still feel warm and connected.

    Open UX is dense reference material: rules, ids, citations. On its own, it reads like a database. Pip adds warmth where people need it most: an empty search, a missing rule, waiting for access. Three mascot directions were explored.

    Pip won because it grew out of the orange dot already in the logo and on every citation, so it ties the whole site together. One Pip per surface, never in place of content.

  • The open-ux.dev homepage with its hero card outlined and shown zoomed in: a job, its rules, a citation, and pass and fail examples.

    homepage card

    Show the product in one card.

    The card sits in the homepage hero, zoomed in here. It shows what an agent gets back: a job, the rules under it, a citation, and the two examples every rule carries. A first-time visitor sees the whole idea before reading a word.

  • The open-ux.dev catalog page with its first row zoomed in: rule name, area and job, and a one-line claim.

    catalog list

    One row, one rule.

    Each row shows the rule name, where it sits (area / job) and its claim in one line. Search and area filters narrow the list. Every row links to the rule's id, the same id an agent cites, so any citation can be looked up directly.

  • A rule page on open-ux.dev with its pass and fail examples zoomed in.

    rule detail

    The schema, made readable.

    The page renders the rule's JSON for people. It shows the description, when to use and when not to, the agent hint, a pass and a fail example, and the citations. Pass and fail are the rule's own examples of following it and breaking it. The agent checks its work against them; Open UX shows them and grades nothing.

  • Three sidebar crops, each with a different area open down to one highlighted rule.

    navigation tree

    Browse the way the agent retrieves.

    The sidebar follows area, job, problem, rule. It is the same structure agents navigate through MCP, so a person checking a rule finds it by the same route the agent took.

05 / outcome & next steps

Designed, built and launched Open UX.

A live proof of concept with a public catalog, hosted MCP server and client integrations. The next step is testing it in external workflows.

built platform

Website, hosted MCP server, Claude Code and Cursor plugin, and CLI helpers.

tech stack

Python with FastMCP, Starlette and Uvicorn; SQLite; a Vite and Tailwind website; hosted on Fly.io.

13 jobs, 38 components and 15 sources. And growing.
7 areas
Rules that cite a published source, with pass and fail examples and a limit on when they apply
100%
Rules retrieved per job, never the full catalog
3–67

What comes next

The vision is a catalog maintained by the people who publish UX guidance, one cited claim at a time. The contribution path already exists: a sourced JSON file, checked by the same schema and tests. Open UX Grader is planned as a separate, paid service.

Yonatan Lev Ari

UX/UI, product decisions and AI-assisted building.

Talk about your design system