Cursor 디자인 규칙
AI 코딩의
디자인 슬롭을 막는 방법
Cursor는 좋은 코드 에디터입니다. 디자인 규칙은 기본으로 들어 있지 않습니다. .cursorrules 파일이 비어 있으면, Cursor는 모든 AI 코딩 도구가 공유하는 8가지 디폴트를 그대로 출력합니다. Inter를 헤드라인으로, 보라-파랑 그라데이션, 동일한 카드 3개의 그리드. ux-skill은 이 디폴트를 결정론적 정규식으로 막는 도구입니다.
Cursor가 기본으로 출력하는 것
Cursor에서 "히어로 섹션을 만들어줘"라고 입력하면 거의 같은 답이 돌아옵니다. Inter 폰트를 text-7xl에 얹은 거대한 헤드라인. from-purple-500에서 to-blue-500까지 가는 그라데이션. 그 아래 세 개의 동일한 카드 — 아이콘, 한 단어 제목, 한 문장 설명. 모든 직계 자식 요소에 적용된 fade-in-up 애니메이션.
이게 Cursor만의 문제가 아닙니다. Claude Code, Windsurf, GitHub Copilot, Cline, Continue, Codex CLI — 같은 학습 데이터를 본 모델이라면 모두 같은 답에 도달합니다. 우리는 35개의 AI 디자인 지문 목록에서 이 패턴을 정리했습니다. 이 지문은 도구 사이를 가로질러 일관됩니다.
해결책은 모델을 바꾸는 것이 아니라, 모델이 글을 쓰기 전에 읽는 규칙을 바꾸는 것입니다. Cursor에는 두 개의 입력 표면이 있습니다. .cursorrules — 모든 세션이 시작될 때 모델이 읽는 텍스트. 그리고 MCP — 모델이 호출할 수 있는 도구. ux-skill은 두 표면 모두에 들어갑니다.
3단계로 ux-skill을 Cursor에 끼우기
설치는 3분 정도 걸립니다. Python 패키지 하나, 설정 파일 하나, CI 워크플로 하나.
# 1. ux-skill 설치 $ pip install uxskill # 2. 프로젝트에서 한 번 실행해 .cursorrules와 manifest를 생성 $ uxskill init --target cursor ├── .cursorrules # Cursor가 매 세션 읽는 규칙 ├── .uxskill/MASTER.md # 인간이 읽는 설계 시스템 요약 ├── .uxskill/tokens.css # 토큰의 단일 소스 └── .uxskill/manifest.json # 카탈로그·규칙 메타데이터 # 3. MCP 서버를 Cursor 설정에 등록 (선택) $ cat ~/.cursor/mcp.json { "mcpServers": { "uxskill": { "command": "uxskill-mcp", "args": [] } } }
이걸로 Cursor는 두 가지를 얻습니다. 매 세션 읽는 규칙 (8가지 디폴트를 명시적으로 금지하고, 160개의 브랜드 사양을 참조 문법으로 가리킴), 그리고 14개의 MCP 도구 (브리프 작성, 추천, 토큰 조회, 린트 실행). 규칙은 모델의 출력 바닥을 올리고, 도구는 천장을 정합니다.
린트를 CI에 넣는 결정적 한 줄
Cursor가 글을 쓴 다음, PR이 머지되기 전에 145개의 결정론적 정규식 규칙이 디자인 지문을 잡습니다. LLM 호출 없음. 평균 200 파일 Next.js 저장소에서 콜드 380ms, 웜 90ms.
# .github/workflows/ux-lint.yml name: ux-lint on: pull_request: paths: ['**/*.{tsx,jsx,vue,css,scss,html}'] jobs: lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: { python-version: '3.11' } - run: pip install uxskill - run: uxskill lint --threshold high
규칙이 발화하면 CI가 빨갛게 변하고, 작성자는 정확히 어떤 패턴이 어느 줄에서 잡혔는지 텍스트로 봅니다. 자세한 워크플로는 정규식 린터 — 145 규칙에서 다룹니다.
Cursor에서 잡히는 가장 흔한 5가지 지문
| 지문 | 심각도 | 고치는 법 |
|---|---|---|
| Inter as display | high | Inter는 본문용. 헤드라인은 Fraunces·Geist·Satoshi·Cabinet Grotesk 중에서. |
| Purple-to-blue gradient | high | 단일하고 절제된 액센트(Emerald·Electric Blue·Deep Rose) 하나로 충분. |
| Three equal cards | high | 비대칭 그리드. 벤토. 7-and-5. 4 with one spanning. |
| Fade-in-up everywhere | medium | 역할에 따라 모션을 차별화. 첫인상에만 애니메이션. |
| Hardcoded pixel values | medium | 토큰 사용. --space-md, --radius-card, --color-ink. |
20개를 더 보려면 35개의 AI 디자인 지문 목록을 참조하세요. 각 지문에는 감지 정규식과 고침 방법이 짝지어져 있습니다.
규칙 파일은 바닥을 올린다. 린터는 천장을 정한다. 둘 다 있어야 한다.
다른 IDE에서도 같은 엔진
같은 Python 엔진이 Claude Code, Windsurf, Cline, Continue, GitHub Copilot, Codex CLI, JetBrains AI Assistant, Zed, Aider 등 17개의 IDE에 도달합니다. Windsurf 설치 · Copilot 설치 · JetBrains 설치. Cursor에 설치한 ux-skill 설정은 다른 IDE의 등가 파일(.windsurfrules, .clinerules, copilot-instructions.md)에 복사해 쓸 수 있습니다.
규칙과 린터는 구조를 잡는다. 취향은 잡지 않는다.
이 도구가 해결하는 것은 "지문"입니다. 구조적인 디폴트 — 헤드라인에 Inter, 그라데이션의 종류, 동일한 카드 3개의 그리드. 이런 것들은 정규식으로 잡힙니다.
"이 섹션의 리듬이 어색하다", "이 카피가 차갑다" — 이건 정규식의 영역이 아닙니다. 코드 리뷰의 영역이거나, 모델에게 다시 묻는 영역입니다. ux-skill은 ux critique 명령을 제공하지만, 이건 CI가 아니라 에디터 안에서 필요할 때 호출됩니다.