Skip to main content
Urbicon UI
urbicon CLI llms.txt .cursorrules

AI & Developer Experience

Urbicon UI is built for AI-assisted development. The design system's knowledge, linter, and memory install with the library — version-matched, offline, and enforceable — so Claude, Cursor, Copilot and friends compose from the system instead of guessing.

The urbicon CLI

One dev-dependency, @urbicon-ui/design, gives your agent the full design surface: component discovery, recipes, patterns, principles and the token reference — all pinned to the library version you installed. The same package closes the loop: generated markup is linted by urbicon validate (as an edit-time hook and a CI gate), judged against a scoring rubric, and design intent survives sessions in a design.manifest.md in your repo.

Setup

# One dev-dependency wires your agent into the design system
# (already there if you set the project up with `sv add @urbicon-ui`):
bun add -d @urbicon-ui/design

# Insert the agent context block (AGENTS.md), scaffold design.manifest.md,
# and optionally wire the edit-time hook + CI gate:
bunx urbicon init --hook --ci

# Done — the next agent session reads AGENTS.md and takes over.

Two commands, then hands-off. The context block tells your agent which commands exist and when to run them — so the commands below are what the agent executes, not a workflow you learn. Your touchpoints afterwards are reviews, not operations: the decisions the agent records in design.manifest.md show up in your git diff, and a red design gate shows up in CI.

What your agent runs

# Knowledge — version-matched to the library you installed:

urbicon find "date input"          # fuzzy catalog search
urbicon get-component date-picker  # real API: props, variants, examples
urbicon recipe login               # production-ready Svelte 5 recipes
urbicon icons calendar             # icon discovery
urbicon pattern dashboard          # composition patterns per page archetype
urbicon principles --topic theming # design heuristics + paradigm profiles
urbicon css-reference intents      # the token truth: naming, dark mode, overrides

# The closed design loop — generate → validate → judge:

urbicon validate src/              # lint tokens, dark:/focus:, z-index; 0–100 scores
urbicon principles --rubric        # 8-criterion rubric to judge a generated UI
urbicon context                    # read the project's design memory
urbicon record-decision --title  # write a decision the next session will see

Version-matched knowledge

Discover: find, get-component, icons, recipe · Design knowledge: pattern, principles, css-reference · What the CLI answers is true of the code in your node_modules — not of whatever shipped last week.

10 design verbs · enforced loop

Verbs: onboard, adopt, compose, redesign, polish, critique, fix, retheme, audit, migrate — each a recipe over the design loop (urbicon verb <name>) · Enforcement: PostToolUse hook + CI gate via urbicon init.

llms.txt

Every component has its own llm.txt file with structured documentation. Agents can fetch it from the docs site, and urbicon get-component --section serves the same sections locally to minimize token usage.

LLM Documentation

# llms.txt (quick reference)
# llms-full.txt (complete API for every component)

# Per-component docs with 5 sections:
#   overview | examples | variants | api | slots
# e.g. /primitives/button/llm.txt

.cursorrules

IDE-specific guidance for AI code generation. Ensures generated code follows project conventions: barrel imports, semantic tokens, Svelte 5 runes, focus-visible, and more.

AI Coding Conventions

# .cursorrules — AI-specific guidance

# Imports: ALWAYS barrel imports
import { Button, Input } from '@urbicon-ui/blocks';

# Styling: ALWAYS semantic tokens
class="bg-surface-base text-text-primary"

# Focus: ALWAYS focus-visible (not focus)
class="focus-visible:ring-2 focus-visible:ring-primary"

# Svelte 5: ALWAYS runes
let { variant, intent } = $props();

How It Works

JSDoc annotations in component source files are the single source of truth. One edit automatically updates the documentation site, llms.txt files, and the version-pinned knowledge bundle the CLI reads.

Source @description, @tag, @related in index.ts
docs-gen pipeline api.json (docs site)
LLM generator llm.txt (per component)
content bundler @urbicon-ui/design-content (the CLI's knowledge)