Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add rules/luxvil/ai-coding-rules/90-ui-componentsgit clone --depth 1 https://github.com/Luxvil/ai-coding-rulesWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00000 | $0.00521 |
| Opus 5 | $0.00000 | $0.00260 |
| Sonnet 5 | $0.00000 | $0.00104 |
| Haiku 4.5 | $0.00000 | $0.00052 |
Grade A, and why
90-ui-components scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
This is a copy
100% identical to 90-ui-components — 0 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
What it actually says
🎨 UI Components Rules
Auto-activated for component files in
/components/directories.
Component Structure
ComponentName/
├── ComponentName.tsx # Main component
├── ComponentName.test.tsx # Tests (required)
├── ComponentName.stories.tsx # Storybook (optional)
└── index.ts # Re-export
Rules
1. Single Responsibility
- One component = one purpose
- Max 200 lines per component file
- Extract hooks to separate files when >50 lines
2. Props Pattern
// ✅ GOOD: Typed, documented, with defaults
interface ButtonProps {
/** Button label */
label: string;
/** Click handler */
onClick: () => void;
/** Visual variant */
variant?: 'primary' | 'secondary';
/** Disabled state */
disabled?: boolean;
}
export const Button = ({
label,
onClick,
variant = 'primary',
disabled = false
}: ButtonProps) => { ... }
3. Accessibility (STRICT)
- All interactive elements must have
aria-labelor visible text - Form inputs must have associated
<label>elements - Color contrast must meet WCAG 2.1 AA
- Keyboard navigation must work
4. Performance
- Use
React.memo()for expensive renders - Avoid inline functions in JSX when used as deps
- Lazy load heavy components with
React.lazy()
5. Styling
- Tailwind utility classes preferred
- No inline styles except dynamic values
- CSS-in-JS only when necessary
Forbidden Patterns
// ❌ NEVER: Untyped props
const Button = (props: any) => ...
// ❌ NEVER: Business logic in components
const Button = () => {
const data = await fetch('/api/...') // Move to hook
}
// ❌ NEVER: Direct DOM manipulation
document.getElementById('x').style.color = 'red'
Testing Requirements
- Render test (component mounts without errors)
- Props test (variants behave correctly)
- Interaction test (click/hover handlers fire)
- Accessibility test (using @testing-library/jest-dom)
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 87 lines · 0 tokens per session scan A 0ed2595b02a0
90-ui-components is a cursor rule published in the GitHub repository Luxvil/ai-coding-rules (3 stars, last pushed 3d ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 521 tokens. A static security scan graded it A with 0 findings. It is 100% identical to 90-ui-components, differing in 0 lines, and is treated as a copy.
Other cursor rules, from other repositories
exam-answer-format
Guidelines for writing exam-style answers in a practical, conversational style with definitions first followed by real-world examples.
lecture-reference-linking
Guidelines for including course materials lists and inline references when writing exam answers or documentation that references course materials.
mermaid-diagrams
Guidelines for adding Mermaid diagrams to exam answers and documentation with automatic SVG generation support.
short-answer-version
Guidelines for creating short/concise versions of detailed answers.
documentation-formatting
Guidelines for formatting markdown documentation to improve readability and scannability.
human-writing-style
Rules for writing naturally and authentically - avoid robotic AI tone in documentation, code comments, error messages, and explanations. Write like a human colleague, not a customer service bot.