← ClaudeAtlas

design-mdlisted

프로젝트 루트에 DESIGN.md — AI 코딩 에이전트가 UI를 일관되게 만들도록 브랜드의 시각 언어 (컬러·타이포·스페이싱·컴포넌트)를 실행 가능한 결정값으로 박은 "디자인 시스템 SSOT" — 를 생성하는 스킬. 기존 코드베이스를 스캔해 실제 값을 추출(현실 기술)하고, 스캔으로 못 채운 부분만 대화로 보완한다(하이브리드). 코드가 없으면 대화 중심으로 폴백한다. 산출 끝에는 CLAUDE.md/AGENTS.md에 "UI 생성 전 DESIGN.md 읽기" 참조 줄 추가를 반드시 안내한다(DESIGN.md는 자동 로드되지 않기 때문). 그린필드거나 사용자가 육안검증·공유를 원하면 자기완결 preview.html(스와치·타입스케일·컴포넌트 갤러리, 라이트/다크 토글)을 조건부로 함께 생성한다. "미리보기도 만들어줘", "preview.html", "디자인 시스템 미리보기 페이지" 같은 표현에도 반응한다. 다음 표현이 나오면 반드시 이 스킬을 사용한다: "DESIGN.md 만들어줘", "design.md 생��", "디자인 시스템 문서 만들어줘", "디자인 가이드 문서 만들어줘", "디자인 토큰 문서화", "AI가 UI 일관되게 따를 문서 만들어줘", "브랜드 스타일 가이드 마크다운", "UI 컨벤션 문서", "우리 앱 디자인 규칙 문서로 박아줘". 사용자가 "AI/에이전트가 우리 앱 스타일을 일관되게 따르게 하고 싶다"거나, 프로젝트의 색·폰트·간격·컴포넌트를 문서로 고정해 매 UI 생성이 흔들리지 않게 하려 할 때는, 명시적으로 "DESIGN.md"라고 부르지 않아도 이 스킬을 쓴다.
gagip/gagip-dev · ★ 0 · Web & Frontend · score 66
Install: claude install-skill gagip/gagip-dev
# design-md 스킬 프로젝트 루트에 **`DESIGN.md`** 한 파일을 생성한다. 이 파일은 브랜드의 시각 언어를 AI 코딩 에이전트가 **참조 가능한 결정값**으로 기술한 디자인 시스템의 단일 진실 원천(SSOT)이다. > **왜 DESIGN.md가 필요한가** — LLM은 세션마다 콜드 스타트라 브랜드 제약을 기억하지 못한다. "기존 스타일에 맞춰줘"는 > 매번 문맥에 우연히 들어온 예시에서 규칙을 *추론*할 뿐이라 UI 생성마다 색·간격·컴포넌트가 흔들린다. 규칙을 파일에 박아 > UI 생성 전에 읽히면, 출력 기준선이 "못 쓸 결과물"에서 "약간 손보면 쓸 결과물"로 올라간다. 이 포맷은 Google Labs의 > `design.md` 스펙이 형식 표준을 정의하고, VoltAgent·oh-my-design 같은 커뮤니티 라이브러리가 실제 예시를 배포하며 사실상 > 표준이 됐다. > **CLAUDE.md / AGENTS.md와의 역할 분리** — AGENTS.md/CLAUDE.md는 "프로젝트를 **어떻게 빌드**하나"(코딩 대상), > DESIGN.md는 "**어떻게 보이고 느껴져야** 하나"(디자인 대상)를 담당한다. 둘은 겹치지 않는다. ## 이 스킬의 정체성 — "현실 기술" (열망 금지) 대부분의 DESIGN.md 도구는 대화로 취향을 물어 *열망적* 디자인 시스템을 만든다. **이 스킬은 반대로, 기존 코드에서 실제로 쓰이는 값을 먼저 추출한다.** DESIGN.md의 최대 실패 모드가 "문서↔코드 드리프트"(문서엔 있는데 코드엔 없는 값을 에이전트가 믿고 엉뚱한 UI를 생성)이기 때문이다. 고치고 싶은 리디자인이 아니라 **레포의 실제 상태**를 기술한다 — 그래야 에이전트가 문서를 믿고 만든 UI가 기존 코드와 어긋나지 않는다. ## 작성 원칙 (사람용 디자인 문서와 다른 점) 사람용 문서는 근거·감성을 길게 서술해도 되지만, AI용은 **결정론적으로 참조 가능**해야 한다. 다섯 원칙: 1. **선택지가 아니라 결정 + 사용 조건을 준다.** 옵션을 주면 생성마다 다르게 쓴다. 값 하나를 박고 "언제 쓰고, 언제 절대 안 쓰는지"까지 규정한다. 예: `primary-900 — 화면 최고 강조 액션에만, 한 뷰에 2개 금지`. 2. **값 + 의도를 함께.** hex만도, 원칙만도 실패한다. `#5A67D8`를 던지지 말고 `#5A67D8 — Primary CTA, active links`처럼 값에 역할을 붙인다. 3. **용도별로 명명한다.** `font-size: 3rem` 나열이 아니라 `Hero h1 = 64px`. 에이전트는 이름→용도 매핑으로 어디에 쓸지 결정한다. 4. **Don'ts를 반드시, 구체적으로.** 여러 실험에서 don'ts가 do's보다 정확도를 더 크게 올렸다. "cool gray 금지", "serif display에 bold 금지"처럼 **구체적 행동 금지**로 쓴다. "깔끔하게" 같은 일반 긍정문은 실패한다. 5. **현실을 쓴다.** 위