Governance for AI

Stop AI agents from breaking your design system.

Your design system already lives in your repo as real Tailwind and components. ChoiceUI makes it the enforced source of truth, so your codebase, and every AI agent working in it, cannot drift off system without a decision you actually made.

AI coding agents are fast, and they will happily invent a new blue, a one-off button, and a font you have never seen, all before lunch.

Nobody productized stopping that. ChoiceUI does.

Detect, decide, enforce

That is the whole product. Nothing enters or changes in the design system without a governed decision that is recorded and enforced.

1
Detect
ChoiceUI reads your whole component surface and extracts your tokens into one manifest. It also sees what is in the code but not yet in the system.
2
Decide
Anything ungoverned gets a decision. Adopt it, allow it as a deliberate one-off, or reject it. The choice is recorded, so it sticks.
3
Enforce
A CI gate blocks drift. A generated Claude Code skill, CLAUDE.md rules, and an MCP server keep humans and AI on system by default.

What you get

One manifest in your repo, and the machinery to hold everyone to it.

An enforcement kit

A CI gate and ESLint rules that fail the build when code goes off token or off component.

Living design-system pages

Browsable pages generated from your real manifest, so the system is something you can actually look at.

See ours live

A drift dashboard

See where each repo has wandered off system, and by how much, across every product.

Guardrails for agents

A Claude Code skill and an MCP server so your AI tools reach for the system first, not a new one-off.

Get started in your repo

Point it at your repo. It extracts the manifest, wires up enforcement, and from then on the codebase cannot drift without CI catching it.

$ npx @jlist/choiceui init

Runs locally. No account needed to start.