Figma 디자인을 shadcn/ui 코드로 변환하고 실제 브라우저 검증(Playwright+axe-core)을 통과해야 완료로 인정하는 Claude Code 디자인 자동화 플러그인 (Phase 1~3 완료, Claude Desktop MCP 확장 지원)
翻译准备中
插件JavaScript · HTMLGitHub @sodam-ai自行安装运营者未确认
试用过了吗? 点一下就好,无需登录。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
安装型项目无需部署域名也可验证。个人仓库可通过 GitHub 登录验证,组织仓库可使用上方的仓库验证文件。
正在加载完整 README。 以下为已保存的摘录。
Figma 디자인을 shadcn/ui 코드로 만들고, 실제 브라우저 검증(Playwright + axe-core + 3개 화면 크기)을 통과해야만 "완료"로 인정되는 Claude Code 디자인 자동화 킷입니다.查看完整 README ↗
Figma 디자인을 shadcn/ui 코드로 만들고, 실제 브라우저 검증(Playwright + axe-core + 3개 화면 크기)을 통과해야만 "완료"로 인정되는 Claude Code 디자인 자동화 킷입니다.
✅ 현재 상태 (2026-10-12 기준, 직접 실행해 확인): Phase 1(MVP)과 Phase 2(대시보드 · 화면 변경 자동 감지 · 한글 폰트 자동화)가 공식 완료되었고, Phase 3(고도화)도 상세페이지 · AI 생성 이력 기록 · 마케팅 이미지 생성(OG·포스터·배너·명함) · 라이선스 게이트 확장 · Claude Desktop용 MCP 확장(검증 이력 열람)까지 완료되었습니다(남은 항목은 베타 공개 여부뿐, 사용자 결정 사항). 자동 테스트는 정식 공개된 v0.5.0 기준 361개, 아직 공개 전인 수정 2건까지 담긴 현재 작업본 기준 374개가 전부 통과하고, 알려진 보안 취약점은 0건입니다(
npm audit을 2026-10-12에 다시 실행해 확인 — 2026-09-11의 4건과 2026-10-11에 새로 보고된 5건은 모두 패치 완료). 간접 의존성까지 포함한 전체 패키지의 라이선스를package-lock.json기준 153개로 2026-10-12에 다시 집계했고, 강한 카피레프트(GPL·AGPL)는 0건입니다(13장). 사용 가능한 명령은 총 5개(setup·pipeline·open·detail-page·marketing-asset)이며, 전부 실제 프로젝트를 대상으로 왕복 검증(PASS 확인)까지 마쳤습니다. 자세한 이력은 7장을 참고하세요.⚠️ 이 킷은 아직 버전 0.5.0(정식 출시 전, 개발 진행 중)입니다. 명령어 이름·동작 방식·파일 구조가 앞으로 바뀔 수 있습니다 — 바뀔 때마다 이 문서도 함께 갱신됩니다.
📌 이 문서를 읽는 법: 문서 안에서 "(공개 전)"이라고 적힌 내용은 이 문서가 쓰인 시점에 코드에는 들어 있지만 아직 GitHub에서 받을 수 있는 정식 버전(v0.5.0)에는 포함되지 않은 수정입니다. 정식 버전과 현재 작업본이 다른 곳은 그렇게 표시했습니다.
이 문서는 컴퓨터 · AI · 메신저 앱을 거의 처음 써보는 분도 따라 할 수 있도록 썼습니다. 다만 아래 단어들이 문서 전체에서 계속 나오므로, 먼저 한 번 훑어보고 시작하면 훨씬 편합니다. 이미 익숙한 분은 건너뛰고 1장부터 읽어도 됩니다.
| 용어 | 쉬운 설명 |
|---|---|
| AI (인공지능) | 사람의 말(자연어)을 이해하고 대신 작업해주는 프로그램. 이 문서에서 "AI"는 곧 "Claude Code"를 가리킵니다. |
| Claude Code | Anthropic이 만든, 채팅으로 대화하면서 컴퓨터 작업(코드 작성 등)을 대신 시키는 프로그램. 메신저처럼 "채팅창"이 있고, 거기에 원하는 것을 문장으로 입력하면 됩니다. |
| 터미널 | 글자로 명령을 입력해 컴퓨터에게 시키는 화면. Claude Code를 설치하면 그 채팅창 자체가 터미널 역할도 겸합니다 — 따로 배우거나 설치할 필요가 없습니다. |
| 명령 / 슬래시 명령 | /(슬래시)로 시작하는, 미리 정해진 지시어. 오픈채팅방이나 디스코드에서 /공지처럼 /로 시작하는 채팅 명령을 써본 적이 있다면 원리가 똑같습니다. 이 킷도 /sodam-design-kit:setup처럼 /로 시작하는 명령 5개를 씁니다. |
| 플러그인 | 원래 프로그램(Claude Code)에 나중에 끼워 넣는 "추가 기능 묶음". 스마트폰에 새 앱을 설치하는 것과 비슷합니다 — 이 킷 자체가 하나의 플러그인입니다. |
| 마켓플레이스 | 플러그인을 모아 놓고 "이름으로 골라 설치"할 수 있게 해 주는 목록(앱스토어와 비슷). 이 킷은 sodam이라는 이름의 작은 마켓플레이스 하나를 가지고 있고, 그 안에 sodam-design-kit 플러그인이 들어 있습니다. |
| 의존성 | 이 킷이 일하는 데 필요해서 다른 사람이 만들어 둔 부품 프로그램들(예: 브라우저를 조종하는 Playwright). 이 킷에 직접 들어 있지 않고 설치할 때 인터넷에서 받아옵니다. 어떤 부품이 있는지, 각각의 사용 조건(라이선스)은 13장에 있습니다. |
| 복사본 (설치된 사본) | 플러그인을 설치하면 Claude Code가 원본을 자기 전용 폴더에 복사해 두고 그 복사본을 실행합니다. 그래서 원본을 나중에 고치거나 새 버전을 받아도, 업데이트하기 전까지는 복사본이 그대로입니다(3장). |
| 폴더 / 경로 | "폴더"는 파일을 담는 서랍이고, "경로"는 그 서랍이 컴퓨터 안 어디에 있는지 적은 주소(예: D:\내문서\프로젝트)입니다. |
| 다운로드 / 설치 | "다운로드"는 인터넷의 파일을 내 컴퓨터로 가져오는 것, "설치"는 그 파일을 컴퓨터가 쓸 수 있는 상태로 준비해두는 것입니다. |
| 브라우저 | 크롬(Chrome) · 엣지(Edge)처럼 인터넷 화면(웹사이트)을 보는 프로그램. 이 킷은 사람이 보는 브라우저 창을 직접 열지 않고, 눈에 보이지 않는 자동화된 브라우저로 화면을 대신 확인합니다. |
| 서버 (개발 서버) |
💬 정말 처음이신가요?: 이 킷을 쓰려면 최소한 "Claude Code를 열고 채팅창에 글자를 입력해본 경험" 정도는 필요합니다. 컴퓨터를 정말 처음 켜보는 단계라면, 먼저 claude.com/claude-code 공식 안내를 따라 Claude Code부터 설치하고 몇 마디 대화를 나눠본 뒤 이 문서로 돌아오시길 권합니다. (이 킷은 Node.js·Figma 계정 등 몇 가지가 더 필요한 개발 도구라, "앱 하나만 깔면 바로 되는" 종류는 아닙니다 — 2장에서 필요한 것을 전부 확인할 수 있습니다.)
한 줄로 말하면: "Figma 디자인 → 실제로 작동하는 코드"를 자동으로 만들어 주되, 브라우저에서 실제로 확인해보지 않은 결과는 "완료"라고 말하지 못하게 강제로 막는 도구입니다.
Figma 디자인 ──▶ 코드 생성 ──▶ 실제 브라우저에서 검사 ──▶ 통과해야만 "완료"
왜 이런 도구가 필요한가: AI에게 "이 디자인대로 코드 만들어줘"라고만 시키면, AI는 코드를 만들고 "다 됐습니다"라고 말할 수 있습니다. 하지만 그 코드가 실제로 화면에 정상적으로 나오는지, 글자가 깨지지는 않는지, 스크린 리더 사용자도 쓸 수 있는지는 AI 혼자 "말로만" 확인한 것일 수 있습니다. 이 킷은 그 마지막 확인을 사람이 아니라 진짜 브라우저 프로그램이 기계적으로 하게 만들어서, "말로는 됐다는데 실제로는 안 됐다"는 상황을 크게 줄입니다(검증을 돌린 경우에 한해, 위 한계 참고).
누구를 위한 도구인가: Figma로 디자인을 만드는 사람과, Claude Code로 그 디자인을 코드로 옮기는 사람(1인이어도 무방) — 특히 "AI가 코드는 만들었다는데, 실제로 화면이 제대로 나오는지는 안 봤다"는 불안을 없애고 싶은 사람.
누구를 위한 도구가 아닌가(정직한 한계 고지): 코딩을 전혀 모르는 채로 "완성된 웹사이트"를 통째로 만들어주는 도구는 아닙니다. 이 킷이 만드는 것은 이미 존재하는 프로젝트(Next.js + Tailwind + shadcn/ui) 안의 화면 부품 하나하나입니다 — 2장에서 이 전제를 자세히 설명합니다.
이 5가지가 전부 준비되어 있어야 합니다. 하나라도 없으면 3장(설치)부터 진행할 수 없습니다.
| 번호 | 준비물 | 왜 필요한가 | 다운로드 / 확인 방법 |
|---|---|---|---|
| 1 | Claude Code | 이 킷 자체가 Claude Code의 "플러그인"이라 Claude Code가 없으면 실행할 수 없음 | claude.com/claude-code 공식 안내에 따라 설치. 설치 후 터미널에 claude --version을 입력해 버전이 나오면 성공 (이 문서의 설치 · 업데이트 절차는 2.1.296 버전에서 직접 실행해 확인했습니다) |
| 2 | Node.js 20.9 이상 (현재 LTS 권장) | 이 킷의 모든 검증 스크립트가 Node.js(자바스크립트 실행기)로 작성됨. 최소 버전이 20.9인 이유: 이 킷이 이미지 처리에 쓰는 부품 sharp가 Node 20.9 이상을 요구합니다(package-lock.json에 적힌 값을 직접 확인). 이전 문서에는 "18 이상"이라고 적혀 있었으나 이는 틀린 안내였습니다 | nodejs.org에서 "LTS" 버전 다운로드 · 설치. 설치 후 터미널(명령 입력 창)에 node -v 입력 → v20.9.0 이상의 번호가 나오면 성공 (이 문서의 절차를 마지막으로 확인한 PC는 v26.7.0) |
| 3 | 대상 프로젝트: Next.js + Tailwind CSS + shadcn/ui | 이 킷이 만드는 코드가 이 3가지 조합을 전제로 함(다른 프레임워크는 아직 미지원) | 이미 이 조합으로 만들어진 프로젝트가 있어야 함. 없다면 npx create-next-app@latest 등 Next.js 공식 방법으로 새로 만들고 shadcn/ui 공식 설치 안내를 따라 준비 |
| 4 | Figma 파일 접근 권한 | 코드로 옮길 디자인 원본이 Figma에 있어야 함 | claude.ai에 이미 연결된 Figma 커넥터를 쓰거나, 공식 Figma MCP(https://mcp.figma.com/mcp)로 로그인. Figma 계정 자체는 무료(Starter) 플랜도 가능하나 읽기 횟수 제한이 있습니다(제작 당시 실측은 월 6회, 이후 Figma 공식 문서 표기가 바뀐 것이 확인됨 — 정확한 현재 한도는 Figma 공식 안내에서 확인하세요. 뒤 10장 참고) |
| 5 | 인터넷 연결 · 여유 저장공간 약 1GB | 설치할 때 부품(의존성)과 검증용 브라우저 파일을 내려받아야 함 | 이 개발 PC에서 직접 잰 값: 설치된 킷 복사본 약 76MB(그중 부품 node_modules가 75MB) + 검증용 브라우저(Chromium) 약 690MB(415 + 269 + 3MB). 킷 버전을 올릴 때마다 복사본이 새로 생기므로(옛 버전 폴더가 남음) 조금씩 늘어납니다. 용량은 PC · 버전마다 다를 수 있습니다. Git이 필요한 경우는 3장의 "방법 A"를 참고하세요 |
처음 보는 단어가 있다면 0장 용어 사전을 먼저 확인하세요. 특히 "터미널"이 뭔지 모르겠다면: 글자로 명령을 입력해 컴퓨터에게 시키는 검은/흰 화면입니다. Claude Code를 설치하면 그 안에서 명령을 입력하는 창이 곧 터미널입니다. 별도로 새로 설치할 필요는 없습니다.
준비물 3번이 없다면?: 이 킷은 "이미 어느 정도 만들어진 웹사이트 프로젝트"가 있다는 전제로 작동합니다. 아무 프로젝트도 없는 상태에서 "웹사이트를 통째로 만들어줘"라는 용도로는 설계되어 있지 않습니다. 그런 프로젝트가 아직 없다면, Claude Code에게 "Next.js + Tailwind + shadcn/ui로 빈 프로젝트를 만들어줘"라고 자연어로 요청해 먼저 준비하는 것도 방법입니다.
✅ 이 절의 설치 · 업데이트 명령은 2026-10-12에 Windows + Claude Code 2.1.296에서 직접 실행해 결과를 확인한 것입니다. 시험은 평소 쓰는 설정을 건드리지 않도록 일회용 임시 설정 폴더에서 했고, 깨끗한 상태에서 처음 설치하는 상황을 그대로 재현했습니다. 한계: ① 검증용 브라우저 파일(약 690MB)을 인터넷에서 처음 받는 과정은 이 PC에 이미 설치돼 있어 처음부터 재현하지 못했습니다(명령이 오류 없이 끝나는 것까지만 확인). ② 시험한 PC는 GitHub에 로그인돼 있었습니다 — 이 저장소는 공개(PUBLIC)라 원칙적으로 로그인이 필요 없지만, 로그인하지 않은 PC에서는 확인하지 못했습니다. ③ macOS · Linux는 시험하지 않았습니다.
plugins\cache\sodam\sodam-design-kit\<버전>입니다(설정 폴더는 보통 C:\Users\<내 이름>\.claude이며, 위치를 바꿔 쓰는 PC는 다릅니다). 그래서 원본 폴더를 고치거나 새 버전을 받아도 아래 "업데이트 방법"을 실행하기 전에는 복사본이 그대로입니다. (이전 문서에는 "복사본이 만들어지지 않는다"고 적혀 있었으나 이는 틀린 설명이었습니다.)npm install을 직접 칠 필요가 없습니다. 다만 설치나 업데이트 직후 바로 쓰면 부품이 아직 준비 중일 수 있으니, 처음 명령이 부품 관련 오류로 실패하면 1~2분 기다린 뒤 다시 실행하세요(정확한 소요 시간은 측정하지 못했습니다).Executable doesn't exist ...라는 오류가 납니다(11장).필요한 것: Git(Claude Code가 내부적으로 Git으로 내려받습니다).
마켓플레이스 등록 — Claude Code 채팅창에서 입력합니다:
/plugin marketplace add sodam-ai/SoDam-Design-Kit
(전체 주소 https://github.com/sodam-ai/SoDam-Design-Kit.git을 써도 됩니다. 두 가지 모두 2026-10-12에 성공을 확인했습니다. 터미널에서 같은 일을 하려면 claude plugin marketplace add sodam-ai/SoDam-Design-Kit.)
플러그인 설치:
/plugin install sodam-design-kit@sodam
Claude Code 완전 재시작 — 창을 완전히 닫았다가 다시 엽니다. 새로고침이 아니라 완전 종료 후 재시작이어야 합니다(11장 첫 항목).
검증용 브라우저 설치 (최초 1회) — 터미널(Windows는 PowerShell)에 입력합니다:
npx [email protected] install chromium
숫자
1.61.1은 정식 버전 v0.5.0이 쓰는 Playwright 버전(이 킷의package-lock.json에 적힌 값)입니다. 킷 버전이 바뀌면 이 숫자도 바뀔 수 있으니, 나중에 검증이Executable doesn't exist로 실패하면 그 오류 화면이 알려주는 명령(npx playwright install)을 따르거나 Claude Code에게 "Playwright 브라우저를 설치해 줘"라고 요청하세요. 버전이 다른 브라우저를 받으면 이 킷이 찾지 못합니다.
설치 확인 — 코드로 옮길 대상 프로젝트(2장 준비물 3번) 안에서 입력합니다:
/sodam-design-kit:setup
명령이 자동완성 목록에 뜨고 실행되면 성공입니다. 터미널에서 claude plugin list를 입력해 sodam-design-kit@sodam의 Status가 enabled로 나오는 것으로도 확인할 수 있습니다.
git clone https://github.com/sodam-ai/SoDam-Design-Kit.git/plugin marketplace add D:\내폴더\SoDam-Design-Kit)./plugin install sodam-design-kit@sodam → 완전 재시작 → 브라우저 설치 → 확인).npm test)를 돌리거나 스크립트를 플러그인 없이 직접 실행하려면 그 폴더 안에서 npm ci(또는 npm install)를 한 번 해야 합니다. 플러그인으로만 쓸 때는 필요 없습니다.터미널에서 아래 두 줄을 차례로 입력합니다(2026-10-12에 실제로 0.5.0 → 0.5.1로 올려 보며 확인한 순서입니다):
claude plugin marketplace update sodam
claude plugin update sodam-design-kit@sodam
→ "Restart to apply changes"가 나오면 Claude Code를 완전히 재시작해야 새 버전이 적용됩니다. claude plugin list의 Version으로 확인하세요. 새 버전 폴더가 plugins\cache\...\<새 버전>으로 따로 생기고 옛 버전 폴더는 그대로 남습니다(동작에는 영향이 없음을 확인한 범위입니다).
중요: 업데이트를 하지 않으면 평소 쓰는 Claude Code에는 옛 버전의 복사본이 계속 실행됩니다. 예를 들어 이 킷에 새 안전장치가 추가됐어도 업데이트 전에는 적용되지 않습니다.
채팅창에 /sod까지 입력했는데 자동완성 목록에 아무것도 안 뜨면 설치(또는 재시작)가 덜 된 것입니다. 11장의 첫 번째 항목을 확인하세요.
위 1~5번은 Claude Code(터미널형 채팅) 전용입니다. Claude Desktop(일반 데스크톱 앱)에서도 이 킷이 만든 검증 이력·판정서·스크린샷을 보고 재검증을 실행하고 싶다면 아래 확장을 추가로 설치할 수 있습니다 — 둘은 서로 다른 앱이고, 이 확장은 선택 사항입니다.
먼저 방법 B(위)처럼 저장소를 내려받고 그 폴더에서 npm ci를 한 번 실행합니다(확장 파일 안에 부품이 이 폴더의 node_modules에서 함께 담기기 때문 — 2026-10-12에 만들어진 .mcpb의 내부에 node_modules가 들어 있는 것을 직접 열어 확인했습니다). 그다음 다음 명령으로 확장 파일(.mcpb)을 만듭니다(터미널, 이 저장소 폴더 안에서):
npx @anthropic-ai/mcpb pack .
이 저장소 폴더 이름을 딴 .mcpb 파일이 폴더 안에 새로 생깁니다(방금 만들어진 파일이니 폴더에서 바로 확인 가능합니다). 크기는 약 20MB입니다(v0.5.0으로 만든 파일이 20.3MB — 실제 브라우저로 재검증하는 기능이 들어있어 다른 확장보다 큰 편입니다. 이전엔 실수로 무관한 파일까지 포함돼 약 70MB였으나, 불필요한 파일을 제외하도록 고쳐 지금 크기로 줄었습니다. 2026-10-12에 파일 내부를 열어 개발 메모·세션 상태·설계 문서가 들어 있지 않은 것을 다시 확인했습니다).
생성된 .mcpb 파일을 더블클릭합니다. 정상이라면 Claude Desktop이 설치 화면을 띄웁니다 — 내용을 확인하고 설치를 승인하세요.
더블클릭했는데 "이 파일을 열 프로그램을 선택하세요" 같은 Windows 창이 뜨나요? 설치 실패가 아니라 이 컴퓨터에
.mcpb파일 형식에 대한 연결이 아직 없어서 생기는 별개의 문제입니다(Claude Desktop이 이미 설치돼 있어도 발생할 수 있습니다 — 2026-09-01 실측 확인). 그 창에서 취소를 누르고, 아래 방법으로 설치하세요:
- Claude Desktop 앱을 열고 왼쪽 위
☰→ 설정(단축키 Ctrl+,)- 왼쪽 목록에서 "확장 프로그램" 클릭
- 화면 맨 아래 "고급 설정" 클릭
- "확장 프로그램 개발자" 항목의 버튼 4개 중 맨 왼쪽 "확장 프로그램 설치" 클릭
- 파일 선택창에서 방금 만든
.mcpb파일을 선택- 확인 화면(이름·설명, 도구 5개 이름, "모든 요구 사항 충족됨", 제작사 SoDam AI Studio, 라이선스 Apache-2.0, 버전 표시)이 뜨면 설치를 클릭
설치 확인 (아래 둘 중 하나로 확인하면 됩니다):
list_runs 등)가 호출되면 성공입니다.SoDam Design Kit이 running 배지로 표시되면 성공입니다.이 확장으로 할 수 있는 것 / 못 하는 것 (정직 고지):
/sodam-design-kit:open 대시보드와 같은 데이터입니다. (2026-08-20 추가) component-map.json에 이미 등록된 컴포넌트를 검증용 프리뷰 화면에 다시 연결하는 것도 가능합니다(Figma를 새로 읽거나 새 코드를 쓰지는 않습니다 — 이미 있는 매핑을 재사용할 뿐입니다).npx [email protected] install chromium)을 PC에서 한 번 실행해야 재검증이 동작합니다. (검증 이력 열람 · 판정서 · 스크린샷 보기는 브라우저 없이도 됩니다 — 브라우저가 필요한 것은 재검증뿐입니다.)준비물이 다 있고 설치까지 마쳤다면(검증용 브라우저 설치 — 3장 방법 A의 4번 — 까지 포함), 아래 순서로 첫 결과를 5분 안에 볼 수 있습니다. 브라우저를 아직 안 받았다면 2단계에서 Executable doesn't exist 오류가 납니다.
1단계 — 초기 설정 (최초 1회, 대상 프로젝트당)
/sodam-design-kit:setup
→ 성공 기준: .design-kit/config.json과 .design-kit/component-map.json이 생성되었다는 메시지가 나옴.
2단계 — 첫 파이프라인 실행 (이미 매핑된 컴포넌트가 있을 때)
/sodam-design-kit:pipeline
→ Figma 링크를 물어보면, 버튼 하나처럼 작은 단위의 Figma 공유 링크(주소에 node-id=가 포함된 링크)를 붙여넣습니다.
→ 성공 기준: 마지막에 PASS 판정과 함께 .design-kit/reports/에 판정서 파일이 생겼다는 메시지가 나옴.
3단계 — 판정서 확인
.design-kit/reports/2026-XX-XX-XXX.md
이 파일을 열어 **PASS** 표시와 360px/768px/1440px 스크린샷 경로 3줄이 있는지 확인합니다. 이게 보이면 "실제 브라우저 검증까지 완료됐다"는 뜻입니다.
실패(FAIL)해도 정상입니다 — 오히려 게이트가 제대로 작동한다는 뜻입니다. 11장 "완료가 차단됐다고 나와요" 항목을 보세요.
4단계(선택) — 만든 결과를 한눈에 보기
/sodam-design-kit:open
→ 브라우저 화면(대시보드)이 자동으로 열려서, 지금까지의 검증 이력 · 판정서 · 스크린샷을 한 곳에서 볼 수 있습니다. 다 봤으면 채팅창에 /sodam-design-kit:open --stop을 입력해 끌 수 있습니다(안 꺼도 무해하지만, 안 쓸 때는 꺼두는 것을 권장합니다).
이 킷은 Claude Code 안에서 슬래시 명령(/로 시작하는 명령)으로 실행합니다. 사람이 터미널에 직접 Node 명령을 칠 필요는 없습니다(킷을 만드는 개발자가 자체 테스트할 때만 터미널 명령을 씁니다 — .PRD/04_PROJECT_SPEC.md "테스트 방법" 참고).
/sodam-design-kit:setup — 초기 설정components.json(shadcn 설정)을 읽어 실제 컴포넌트 폴더를 찾고, 그 안의 .tsx 파일을 스캔해 .design-kit/component-map.json을 만듭니다. .design-kit/config.json(화면 크기 3종 · 자동재시도 3회 등 기본값)도 함께 생성합니다. 알아둘 점(코드로 확인): 이 config.json은 현재 기록용 기본값일 뿐이고, 어떤 프로그램도 이 값을 읽어서 동작을 바꾸지 않습니다. 화면 크기 3종(360 · 768 · 1440px)은 코드에 고정돼 있어서 이 파일을 고쳐도 검사 방식은 달라지지 않습니다.--force를 붙입니다(이때도 이미 확보한 Figma 매핑 정보는 보존되고 새 컴포넌트만 추가됩니다)..design-kit/ 폴더 생성./sodam-design-kit:pipeline — 디자인→코드→검증component-map.json에 매핑 기록 → shadcn/ui 코드 생성 → 미리보기 화면(/design-kit-preview/{컴포넌트}) 자동 생성 → 개발 서버 자동 실행 → 실제 브라우저 검증(Playwright+axe-core+3뷰포트) → 판정서 기록.commands/pipeline.md)가 AI에게 지시하는 것이고, 프로그램이 횟수를 강제로 세지는 않습니다. 또 "연속 2회 실패해야 최종 FAIL"이라는 규칙은 코드에 없습니다 — 실제로는 가장 최근 판정 기록 1건이 FAIL이면 그 즉시 완료가 차단됩니다(8장). 표준 검증 명령에는 TypeScript 타입 검사(--typeCheck)도 함께 들어 있습니다(tsconfig.json이 있는 프로젝트). 이미 매핑된 컴포넌트를 재사용하는 경로와, 매핑이 없는 완전히 새로운 컴포넌트를 처음부터 만드는 경로 둘 다 실제로 검증 완료(PASS)되었습니다. 신규 컴포넌트를 배치하기 전에는 색상 · 간격 같은 값이 하드코딩(예: #ff0000)되어 있지 않은지 자동으로 검사해서, 걸리면 배치 자체를 거부합니다..design-kit/reports/에 **PASS**가 적힌 판정서 파일 생성./sodam-design-kit:open — 검증 이력 대시보드 열람--stop127.0.0.1, 즉 "이 컴퓨터 자신"이라는 뜻)로 열리며, 다른 사람의 컴퓨터에서는 접속할 수 없습니다. 이미 켜져 있으면 새로 켜지 않고 기존 것을 재사용합니다./sodam-design-kit:detail-page — 상품 상세페이지 파이프라인 (Phase 3).design-kit/reports/에 **PASS** 판정서 생성./sodam-design-kit:marketing-asset — 마케팅 이미지(OG · 포스터 · 배너 · 명함) 생성 (Phase 3)AI-GENERATION-LOG.md)에 자동으로 남깁니다.public/design-kit-assets/<규격>-<제목>.png 파일 생성. SNS 카드 등 그 외 규격은 아직 지원하지 않습니다(필요성이 확인되면 추가 검토).이건 일반 사용마다 할 일이 아니라, 이 킷이 "새 대화(세션)에서도 처음부터 똑같이 작동하는지"를 최종 확인하는 절차입니다(
.PRD/01_PRD.md§9 성공 기준 5·6번). 새 Claude Code 세션에서 아래 순서대로 하면 이 문서만 보고도 그대로 재현할 수 있습니다.
/sodam-design-kit:setup을 마치고 Figma 매핑도 있는 프로젝트가 이상적입니다(Figma를 다시 호출하지 않아도 되어 무료 플랜의 월 읽기 한도를 쓰지 않습니다).Get-ChildItem "<대상 프로젝트 경로>\.design-kit\runs" | Sort-Object Name | Select-Object -Last 3
여기 나온 파일 목록을 잠깐 기억해둡니다 — 나중에 "기존 파일이 안 지워졌는지" 비교할 기준입니다./sodam-design-kit:pipeline
대상 프로젝트 경로와 Figma 노드(또는 이미 있는 매핑)를 알려주면 됩니다."verdict": "PASS"가 나온다.design-kit\reports\ 폴더에 새 판정서 파일 1개가 생겼다verify-runner.mjs --target ... 명령 하나로 검증과 판정서 기록이 동시에 끝나야 합니다/design-kit-preview/...처럼 /로 시작하는 값이 경로로 잘못 해석되는 함정이 있습니다(11장 트러블슈팅 참고).| 명령 | 설명 | 입력 | 실행 위치 | 현재 상태 |
|---|---|---|---|---|
/sodam-design-kit:setup | config.json 생성 + shadcn 컴포넌트 스캔으로 component-map 초기 시드 | 없음(선택: Figma 파일 링크) | 대상 프로젝트(Next.js) 안 | ✅ 실측 검증 완료 |
/sodam-design-kit:pipeline | Figma 읽기 → 매핑 → shadcn/ui 코드 생성 → 검증 게이트 | Figma 페이지/노드 링크 | 대상 프로젝트(Next.js) 안 | ✅ 재사용(매핑) 경로 · 신규 컴포넌트 생성 경로 둘 다 실측 PASS |
/sodam-design-kit:open | 검증 이력 · 판정서 · 스크린샷을 브라우저 대시보드로 열람 + 재검증 트리거 (127.0.0.1 전용, 종료는 --stop) | 없음 | 대상 프로젝트 안 | ✅ 실제 백그라운드 기동 · 재사용 · 종료 왕복 실측 PASS |
/sodam-design-kit:detail-page | 상품 데이터(CSV/JSON) → 카피 생성 → 상세페이지 코드 → 동일 검증 게이트 (Phase 3) | 상품 데이터 파일(CSV 또는 JSON) | 대상 프로젝트(Next.js) 안 | ✅ 실측 PASS→FAIL(의도적 접근성 위반)→PASS 복귀 왕복 확인 |
/sodam-design-kit:marketing-asset | 제목/부제(+명함은 추가 정보) → OG · 포스터 · 배너 · 명함 이미지 자동 생성 (Phase 3) | 제목(필수) · 부제(선택) · 명함 추가 정보(선택) | 대상 프로젝트 안 (public/design-kit-assets/) | ✅ 4종 전부 실측 PASS(한글 렌더 · 규격 확인) |
킷 개발자(코드를 직접 고치는 사람) 전용 명령(일반 사용자는 몰라도 됩니다):
| 명령 | 설명 | 실행 위치 |
|---|---|---|
npm ci (또는 npm install) | 부품(Playwright · axe-core 등) 설치 — 플러그인으로만 쓸 때는 필요 없고(3장), 자동 테스트나 스크립트를 직접 돌릴 때만 필요. 검증용 브라우저 파일은 이 명령으로 설치되지 않습니다(npx playwright install chromium이 따로 필요) | 이 킷 저장소 폴더 |
npm test | 킷 자체의 자동 테스트 실행(2026-10-12 기준 정식 v0.5.0은 361개, 공개 전 수정까지 담긴 작업본은 374개 — 늘어날 수 있음) | 이 킷 저장소 폴더 |
node scripts/e2e-selftest.mjs --fixture <시험 프로젝트 경로> | 전체 파이프라인 왕복(PASS/FAIL/재검증) 자체 점검. --fixture로 검증 대상이 되는 별도의 Next.js 시험 프로젝트를 줘야 하는데(경로 없이 실행하면 사용법만 출력하고 종료), 그 시험 프로젝트는 이 저장소에 들어 있지 않습니다(처음 쓰는 분은 건너뛰어도 됩니다). package.json의 npm run selftest는 같은 명령의 줄임말이라 npm run selftest -- --fixture <경로>처럼 인자를 줘야 합니다 | 이 킷 저장소 폴더 |
기본 검증은 "화면이 그려지는가 · 콘솔 에러가 없는가 · 접근성 위반(심각/높음)이 없는가 · 3가지 화면 크기 스크린샷이 있는가" 4가지입니다. 아래 옵션은 거기에 검사를 더 얹는 스위치로, 검증 실행기(scripts/verify-runner.mjs) 명령 끝에 붙여서 씁니다. 슬래시 명령 pipeline · detail-page는 이 중 --typeCheck만 표준으로 붙여 실행하고, 나머지 4개는 꺼져 있는 것이 기본입니다(기존 프로젝트가 예고 없이 갑자기 FAIL로 바뀌지 않게 하려는 설계). 켜고 싶으면 Claude Code에게 "폰트 검사도 켜서 검증해 줘"처럼 요청하거나, 터미널에서 직접 붙입니다.
| 옵션 | 켜면 하는 일 | 이럴 때 FAIL | 알아둘 점 |
|---|---|---|---|
--typeCheck | TypeScript 타입 검사(tsc --noEmit)를 화면 검증보다 먼저 실행 | 타입 오류가 있을 때, 또는 검사를 실행하지 못했을 때(조용히 통과시키지 않음) | --project를 같이 줘야 합니다(없으면 거부). 개발 서버가 만드는 .next/ 안 파일의 오류는 제외. 이 옵션이 없으면 타입 오류가 있어도 화면만 뜨면 PASS가 나옵니다(직접 실험으로 확인) |
--fontGate | 프로젝트에서 찾은 폰트 파일이 .design-kit/ASSET-LEDGER.csv(자산 대장)에 등록돼 있는지 확인 | 대장에 없는 폰트 파일이 있을 때 | 이 킷이 자동으로 받은 Pretendard 등은 이미 등록되어 걸리지 않습니다 |
--assetGate | 이미지 · 아이콘 파일도 같은 방식으로 대장 등록 여부 확인 | 대장에 없는 이미지가 있을 때 | public/design-kit-assets/(마케팅 이미지 산출물)와 .design-kit/(검증 스크린샷)은 검사에서 제외됩니다. 출처 정리 문서 .design-kit/ATTRIBUTION.md는 이 옵션과 별개의 명령 node scripts/asset-ledger.mjs --project <대상 프로젝트> --generateAttribution으로 대장에서 만들어집니다 |
--visualRegression | 사람이 "이 화면이 맞다"고 승인해 둔 기준 화면과 지금 화면을 픽셀 단위로 비교 | 기준 화면과 달라졌을 때(차이를 보여주는 이미지가 생성됨) | 승인된 기준 화면이 아직 없으면 비교하지 않고 넘어갑니다(FAIL 아님) |
--promoteBaseline | 지금 화면을 새 기준 화면으로 승인 | (FAIL을 만드는 옵션이 아님) | 검증이 PASS인 화면만 승인되고, 반드시 사람이 직접 요청해야 합니다. 자동으로 승인되는 경로는 없습니다 |
예시(PowerShell, <킷 폴더>는 3장 방법 B로 내려받은 폴더 또는 설치된 복사본 폴더):
node "<킷 폴더>\scripts\verify-runner.mjs" --project "<대상 프로젝트 폴더>" --route /design-kit-preview/button --target "버튼 검증" --typeCheck --fontGate
--typeCheck는 정식 v0.5.0부터이고, --fontGate · --assetGate · --visualRegression은 (공개 전)입니다. 이어받지 않던 시절에는 옵션 검사로 FAIL한 기록을 "다시 검증"하면 파일이 그대로인데 PASS가 나와 완료 차단이 풀리는 우회로가 있었고, 직접 재현해 확인한 뒤 막았습니다. 다시 검증할 때 시각 회귀는 비교만 하고 기준 화면 승인은 하지 않습니다.--screenshotDir(스크린샷 저장 위치)는 .design-kit/ 안쪽 경로만 허용합니다. ..로 바깥으로 나가는 값(예: ../../다른곳)은 아무것도 만들지 않고 오류(종료 코드 2)로 거부합니다 (공개 전) — 이전에는 이런 값을 주면 스크린샷이 프로젝트 밖에 저장되는 결함이 있었습니다.아래 항목들은 접었다 펼 수 있는 "토글" 형태입니다 — 제목(▶ 표시가 있는 줄)을 클릭하면 자세한 내용이 펼쳐집니다. 가장 최근 것이 맨 위에 있습니다.
--typeCheck로 FAIL한 기록의 "다시 검증" 우회로만 막았습니다. 같은 구멍이 --fontGate · --assetGate · --visualRegression에도 있었습니다(옵션으로 FAIL한 기록을 다시 검증하면 파일이 그대로인데도 PASS — 폰트 · 자산 옵션은 직접 재현해 확인했고, 시각 회귀는 같은 구조라 함께 고쳤습니다). 이제 처음 실행에서 켠 옵션이 기록에 남고, 다시 검증이 그 옵션을 이어받습니다. 시각 회귀는 기준 화면과 비교만 하고, 기준 화면 승인은 사람이 직접 요청해야만 하도록 그대로 유지했습니다.--screenshotDir ../../ESCAPED처럼 ..로 바깥을 가리키면, 스크린샷이 프로젝트 밖에 저장되고도 성공(종료 코드 0)으로 끝나는 것을 직접 재현했습니다. 이제 .design-kit/ 안쪽이 아니면 아무것도 만들기 전에 거부하고(종료 코드 2), \ 구분자와 .design-kit-evil 같은 이름만 비슷한 옆 폴더도 막습니다. .design-kit/ 안에 머무는 ..(예: reports/../shots/x)는 막지 않습니다.config.json 값을 프로그램이 읽지 않는다는 점, 검증 옵션 표, 라이선스 패키지 수 재집계(153개), 저장소에 없는 파일로 연결된 깨진 링크 제거.npm audit 0건. 새 부품(의존성) 추가 없음.--typeCheck는 표준 절차의 실제 명령에는 들어 있지 않아, 평소 흐름에서는 한 번도 실행되지 않았습니다. 이제 pipeline·detail-page의 표준 검증 명령에 --typeCheck가 들어 있습니다(tsconfig.json이 있는 TypeScript 프로젝트).tsconfig.json·typescript 없음, 시간 초과)도 재시도하지 않고 원인을 보고합니다.--typeCheck로 실패한 기록을 대시보드의 '재검증' 버튼이나 MCP reverify로 다시 돌리면, 파일이 그대로인데도 PASS가 나와 완료 차단이 풀렸습니다. 이제 재검증이 원래 실행의 타입 검사 설정을 이어받습니다(수정 전 PASS → 수정 후 FAIL, 파일을 원래대로 되돌리면 다시 PASS로 오탐 없음)..mcpb)과 설치된 플러그인에 반영하려면 다시 만들고 재설치(완전 재시작)해야 합니다.npm audit 0건, 실제 화면 검증(정상/오류 판정과 완료 차단)도 다시 확인했습니다.tsc --noEmit)만 실패했습니다. 개발용 화면은 타입 오류가 있어도 일단 그려지기 때문입니다.verify-runner.mjs에 선택 옵션 --typeCheck를 추가했습니다. 기본은 꺼져 있습니다(이미 타입 오류가 있는 기존 프로젝트가 갑자기 FAIL로 바뀌지 않게). 켜면 타입 오류가 있을 때 FAIL이 나고, 검사를 실행하지 못했을 때도 FAIL입니다(조용히 통과시키지 않음). 개발 서버가 만드는 .next/ 폴더 파일의 오류는 제외합니다. --project 없이 쓰면 거부합니다.npm audit(설치된 프로그램들의 알려진 보안 문제를 확인하는 명령)를 다시 돌리니 새로 5건(심각 1 · 높음 2 · 보통 2)이 보고됐습니다. 이 킷의 코드는 그대로이고, 보안 문제 목록이 갱신된 것입니다.package.json)은 그대로이고 잠금 파일(package-lock.json)만 바뀌었습니다.0.3.0이라고 잘못 알려주던 것을 package.json 버전(현재 0.4.1)을 따르도록 고쳤습니다(자동 테스트 1건 추가).npm audit 0건, 실제 화면 검증(정상/오류 판정과 완료 차단)과 실제 MCP 연결도 다시 확인했습니다..mcpb 파일과 설치된 플러그인에는 아직 반영되지 않았습니다(다시 만들고 재설치해야 반영됩니다).npm audit(설치된 프로그램들의 알려진 보안 문제를 확인하는 명령)를 다시 돌려보니, 직접 설치한 적 없는데 다른 프로그램이 딸고 온 부품 4개에서 새로운 보안 문제(심각 2건 · 보통 2건)가 발견됐습니다 — 이 킷의 코드가 바뀐 게 아니라, 그 사이 보안 취약점 정보가 새로 등록된 것입니다..mcpb)을 만들 때, 원래는 실행에 필요한 프로그램 코드만 들어가야 하는데, 실수로 이 킷 개발 중에만 쓰는 내부 기록 파일(CHECKPOINT.md 등)과 전혀 상관없는 대용량 테스트 파일까지 통째로 같이 포장되고 있었습니다. 즉시 원인부터 고쳐서, 확장 파일 용량이 약 70MB에서 약 20MB로 줄었고, 문제였던 파일들은 전부 빠진 것을 확인했습니다.component-map.json에 이미 등록된 컴포넌트를 검증용 프리뷰 화면에 다시 연결하는 기능입니다..mcpb 파일)을 만들 수 있습니다.npm audit 0건 유지.--extraLines)을 새로 만들었습니다.npm audit 0건 유지).ATTRIBUTION.md)를 자동으로 만들어주는 기능도 함께 추가했습니다.npm audit 0건 유지).npm audit 0건 유지)./sodam-design-kit:open(대시보드 열기) → 판정서 열람 → 재검증 버튼 클릭 → 폰트/화면 변경 감지 기능에 대한 자연어 질문까지 전부 직접 실행했습니다.e2e-selftest)이 만든 판정서에 원래 검사했던 화면 주소(route)가 기록되지 않아서, 대시보드의 "재검증" 버튼을 눌러도 영구적으로 재검증이 안 되는 문제였습니다. 발견 즉시 수정하고 재검증까지 마쳤습니다.--fontGate 옵션으로 켤 수 있습니다).ASSET-LEDGER.csv)도 이때 처음 만들어졌습니다 — 나중에 "이 폰트를 어떤 조건으로 썼는지" 확인이 필요할 때 참고할 수 있습니다.--visualRegression 옵션으로 켤 수 있습니다). "이 화면이 맞다"고 사람이 승인한 기준 화면과 비교하는 방식이며, 기준 화면 승인은 반드시 검증을 통과(PASS)한 화면에 대해서만, 사람이 직접(--promoteBaseline) 하도록 만들어져 있습니다.<h1>)이 없다"는 경미한 접근성 경고가 있었습니다. 화면에는 보이지 않지만 스크린 리더는 인식할 수 있는 방식으로 제목을 추가해 해소했습니다./sodam-design-kit:open 명령 하나로, 지금까지의 검증 이력을 브라우저 화면(대시보드)에서 한눈에 보고, 그 자리에서 바로 재검증까지 실행할 수 있습니다.127.0.0.1)에서만 접속 가능하고, 로그인 정보나 비밀번호 없이도 안전하도록 여러 겹의 보호 장치(경로 조작 시도 차단, 잘못된 요청 차단, 파이프라인 실행 중에는 재검증 요청을 거부하는 잠금 장치 등)를 함께 만들고 각각 실제로 공격을 흉내 내 막히는지 확인했습니다.--stop으로 끄면 정말로 꺼지는 것까지 전 과정을 실제로 확인했습니다..design-kit 폴더 밖(같은 프로젝트 안이지만 관리 대상 밖)에 저장되던 문제: 1번을 고친 직후 발견한 조금 더 미묘한 문제입니다 — 프로젝트 폴더 "안"에는 저장되지만, 이 킷이 정식으로 관리하는 .design-kit/ 폴더 "밖"에 저장되어 자동 정리 대상에서 빠지고, git에 실수로 올라갈 수 있는 위치에 남는 문제였습니다. 기준 위치를 .design-kit/ 폴더 자체로 다시 잡아 해결했습니다..PRD/01_PRD.md §9(성공 기준) 6개 항목이 전부 실제 증거로 충족되어, Phase 1(MVP)을 공식적으로 완료 처리했습니다.npm run selftest 명령이, 실제로는 존재하지 않는 옵션을 가리키고 있어서 진짜 점검(scripts/e2e-selftest.mjs)은 실행되지 않고 사용법 안내만 나오는 상태였습니다. 사용자가 이 명령을 직접 쓸 일은 없습니다 — 이 문서는 항상 올바른 스크립트 실행 방법을 안내해 왔으므로, 지금까지 이 문서를 따라온 사용자에게는 영향이 없었습니다. 그래도 발견 즉시 올바른 스크립트를 가리키도록 고쳤습니다..gitignore에 등록되지만, setup을 거치지 않고 검증 기능만 독립적으로 실행하는 예외적인 경로(주로 킷 개발자의 자체 테스트용)에서는 이 등록이 빠져 있는 것을 실제로 재현해서 확인했습니다. 판정서를 기록하는 코드에도 같은 등록 로직을 추가해 막았습니다. 이 경로 역시 안내된 순서대로 사용해 온 사용자에게는 영향이 없었습니다.#ff0000, 12px) 자동으로 배치 자체를 거부하도록 만들어서, 프로젝트가 원래 쓰던 디자인 값(토큰)을 우회하는 코드가 섞여 들어가는 것을 원천적으로 막습니다.My Projects)나 한글(예: 윈도우 사용자 이름이 한글일 때 C:\사용자\홍길동\...)이 들어 있으면, 검사 프로그램이 아무 일도 안 하고 조용히 끝나는 문제가 있었습니다. 오류 메시지조차 안 나와서 사용자 입장에선 "잘 된 것처럼" 보입니다. 특히 완료를 막아주는 부분(hooks/verify-gate.mjs)에서 이 일이 벌어지면 검사 실패인데도 "완료"라고 보고되는 것을 못 막게 됩니다. 이 킷의 존재 이유가 사라지는 셈이라 가장 먼저 고쳤습니다.
verify-runner.mjs에 --target 옵션을 추가해 검증과 기록이 명령 하나로 끝나도록 고쳤습니다.앞으로의 변경 사항은 이 섹션에 날짜순으로 계속 추가됩니다. 전체 개발 이력(내부 감사 기록 포함)의 정본은
.PRD/README.md입니다.
사용자 Claude Code(AI) 이 킷의 코드
│ │ │
│ "이 버튼 코드로 만들어줘" │ │
├──────────────────────▶│ │
│ │ Figma 디자인 읽기 (MCP/커넥터) │
│ │◀── 레이어 구조 · 색상 · 글자 크기 ──┤
│ │ │
│ │ component-map.json에 매핑 기록 │
│ ├───────────────────────────▶│
│ │ │
│ │ shadcn/ui 코드 생성 요청 │
│ ├───────────────────────────▶│
│ │◀── 생성된 .tsx 파일 ────────────┤
│ │ │
│ │ 개발 서버 자동 실행 │
│ │ → 자동화 브라우저(Playwright)로 열기│
│ │ → 접근성 검사(axe-core) │
│ │ → 360px · 768px · 1440px 3종 검사│
│ │◀── PASS 또는 FAIL 판정 ─────────┤
│ │ │
│ ┌───── PASS ─────┐ │ 판정서(runs/·reports/) 기록 │
│ │ "완료" 보고 가능 │◀──┤ │
│ └───────────────┘ │ │
│ ┌───── FAIL ─────┐ │ AI가 사유 읽고 고쳐 재검증 │
│ │ 완료 보고가 │◀──┤ (권장 최대 3회 — 문서 지시) │
│ │ 훅으로 차단됨 │ │ │
│ └───────────────┘ │ │
핵심은 마지막 갈림길입니다: 검증 결과가 FAIL로 기록되면 "완료"라고 말하는 것 자체를 hooks/verify-gate.mjs가 기계적으로 막습니다. AI가 FAIL을 못 본 척하거나 눈속임하려 해도 소용없습니다.
이 차단이 정확히 어떤 조건에서 걸리는지(코드 hooks/verify-gate.mjs로 확인):
.design-kit/runs/의 가장 최근 실행 기록 1건이 FAIL이면 차단합니다. "연속 2회 실패" 같은 조건은 없습니다 — FAIL 한 번이면 그 기록이 최신인 동안 막힙니다. 이후 새 PASS 기록이 생기면 풀립니다..design-kit/runs/ 폴더 자체가 없거나 기록이 하나도 없으면 막지 않습니다(이 킷을 쓰지 않은 프로젝트에서 방해하지 않기 위함). 즉 검증을 아예 돌리지 않고 "완료"라고 말하는 것은 이 훅이 막지 못합니다. 그 경우를 막는 것은 절차 문서(commands/pipeline.md)와 AGENTS.md의 "PASS 판정서 없이 완료 보고 금지" 지시이고, 이는 AI가 따르도록 한 지시일 뿐 기계적 강제가 아닙니다. 그래서 "완료"라는 말을 믿기 전에 .design-kit/reports/에 최신 PASS 판정서가 있는지 직접 열어 확인하는 습관을 권합니다..design-kit/runs/만 봅니다. 대상 프로젝트가 아닌 다른 폴더에서 Claude Code를 열고 작업하면 그 프로젝트의 FAIL 기록은 보지 못합니다.SoDam-Design-Kit/ ← 이 킷의 저장소(지금 이 README가 있는 폴더)
├── .claude-plugin/
│ ├── plugin.json ← 플러그인 설명서(이름 · 버전)
│ └── marketplace.json ← 마켓플레이스 등록 정보(마켓 이름: sodam)
├── manifest.json ← Claude Desktop용 확장(.mcpb) 설명서 — plugin.json과는 별개 파일 (Phase 3)
├── commands/
│ ├── setup.md ← /sodam-design-kit:setup 명령의 실제 정의
│ ├── pipeline.md ← /sodam-design-kit:pipeline 명령의 실제 정의
│ ├── open.md ← /sodam-design-kit:open 명령의 실제 정의
│ ├── detail-page.md ← /sodam-design-kit:detail-page 명령의 실제 정의 (Phase 3)
│ └── marketing-asset.md ← /sodam-design-kit:marketing-asset 명령의 실제 정의 (Phase 3, og·포스터·배너·명함)
├── hooks/
│ └── verify-gate.mjs ← 완료 차단 로직(FAIL이면 차단)
├── skills/
│ └── design-pipeline/SKILL.md ← Claude Code에게 "언제 이 킷을 쓰는지"(Figma · 디자인 같은 말)와 핵심 규칙을 알려 주는 스킬 파일
├── scripts/ ← 실제 동작하는 엔진(전부 Node.js, 2026-10-12 기준 `scripts/` 폴더의 실제 파일 17개 + 화면 폴더 1개)
│ ├── setup-wizard.mjs
│ ├── pipeline-codegen.mjs
│ ├── detail-page-pipeline.mjs ← 상세페이지 파이프라인 엔진 (Phase 3)
│ ├── preview-route.mjs
│ ├── verify-runner.mjs ← 검증 실행기(개발 서버 기동 · 렌더 · 접근성 · 3화면 · 선택 옵션 5개)
│ ├── typecheck-gate.mjs ← 타입 검사 옵션(--typeCheck) 엔진
│ ├── execution-lock.mjs ← 같은 프로젝트에서 검증이 동시에 두 번 돌지 않게 하는 잠금 장치
│ ├── dashboard-server.mjs ← /open 대시보드 서버(127.0.0.1 전용) + 다시 검증 기능
│ ├── dashboard-web/ ← 대시보드 화면(index.html · dashboard.js)
│ ├── e2e-selftest.mjs ← 전체 왕복 자체 점검(시험 프로젝트 경로 필요)
│ ├── report-writer.mjs
│ ├── asset-downloader.mjs ← Figma 이미지·아이콘 자동 다운로드 엔진(7일 만료 URL 문제 해결)
│ ├── font-pipeline.mjs ← 한글 폰트 자동 다운로드/설정 엔진
│ ├── visual-regression.mjs ← 화면 변경 자동 감지 엔진
│ ├── ai-generation-log.mjs ← AI 생성 이력 자동 기록 엔진 (Phase 3)
│ ├── marketing-asset-pipeline.mjs ← 마케팅 이미지 자동 생성 엔진 (Phase 3, og·포스터·배너·명함)
│ ├── asset-ledger.mjs ← 라이선스 게이트 확장(이미지·아이콘 자산) + 출처 정리 문서 자동 생성 (Phase 3)
│ └── mcp-server.mjs ← Claude Desktop용 확장 엔진 — 검증 이력 열람 · 재검증 (Phase 3)
├── tests/ ← 자동 테스트(2026-10-12 기준 정식 v0.5.0은 361개, 공개 전 수정까지 담긴 작업본은 374개)
├── .PRD/ ← 이 킷의 설계 문서 정본(가장 상세한 근거 자료)
├── AGENTS.md ← Codex 등 Claude Code 밖의 도구를 위한 규칙 요약
├── LICENSE ← Apache License 2.0 전문
├── .mcpbignore ← Claude Desktop 확장 파일을 만들 때 넣지 않을 파일 목록(내부 메모 유출 방지)
├── README.md / README.en.md ← 지금 이 문서(한국어/영어, 마크다운)
├── README.html / README.en.html ← 같은 내용의 웹페이지 형식(브라우저로 열어 보기)
├── package.json / package-lock.json ← 부품 목록과 정확한 버전 고정
└── (저장소에 없음) CHECKPOINT.md ← 개발자 개인 작업 메모. 의도적으로 GitHub에 올리지 않는 로컬 전용 파일이라 받은 폴더에는 없습니다
/sodam-design-kit:setup을 실행한 대상 프로젝트 폴더 안에는 .design-kit/ 폴더 하나만 새로 생깁니다:
(대상 프로젝트)/.design-kit/
├── config.json ← 화면 크기 · 자동재시도 횟수 등 설정값 (지워도 setup으로 재생성 가능)
├── component-map.json ← 컴포넌트 ↔ Figma 노드 매핑 기록 (지우면 매핑 정보 사라짐 — 주의)
├── product-pages.json ← 상세페이지 템플릿 1개 + 상품 데이터 위치 목록 (Phase 3, /sodam-design-kit:detail-page)
├── runs/*.json ← 실행 기록(기계가 읽는 판정 원본) — git 커밋 대상
├── reports/*.md ← 판정서(사람이 읽는 결과) — git 커밋 대상
└── reports/screenshots/ ← 검증 스크린샷 — 최근 10개 실행분만 자동 보관(오래된 것은 자동 삭제)
위 목록은 대표 예시입니다(Phase 2가 추가한
fonts/·ASSET-LEDGER.csv·.api-token·.lock·.dashboard.json·reports/baseline/등, Phase 3가 추가한AI-GENERATION-LOG.md·ATTRIBUTION.md등은.PRD/02_DATA_MODEL.md가 정본입니다). 마케팅 이미지는 대상 프로젝트의public/design-kit-assets/에 저장됩니다.내 컴퓨터에는 이 두 곳이 따로 있다는 점을 기억하세요: ① 위쪽의 "이 킷 저장소" 구조는 GitHub에서 받은 원본과 같고, ② 실제로 실행되는 것은 Claude Code가 만든 복사본(
<Claude 설정 폴더>\plugins\cache\sodam\sodam-design-kit\<버전>)입니다(3장). 검증 결과(.design-kit/)는 복사본이 아니라 대상 프로젝트 폴더에 쌓입니다. 지워도 되는 것:reports/screenshots/(자동 재생성됨). 지우면 안 되는 것:component-map.json(다시 만들려면 Figma를 또 읽어야 하는데, Figma 무료 플랜은 한 달 읽기 횟수 제한이 있습니다 — 10장 참고).
과장 없이, 사실만 적습니다.
raw.githubusercontent.com의 Pretendard v1.3.9 · Noto Sans KR 폰트와 각 라이선스 파일)에서만 내려받습니다. 목록에 없는 폰트는 거부합니다.https:// 주소에서만 받습니다(http://는 거부, 주소가 중간에 http://로 바뀌어도 저장하지 않음, 10MB 초과 · 이미지가 아닌 파일은 저장하지 않음).127.0.0.1(이 컴퓨터 자신)에서만 열리도록 요청하지만, 실제로 같은 방식으로 띄워 확인해 보니 서버가 모든 네트워크 주소(::)에서 접속을 받는 상태였습니다. 즉 검증이 도는 수십 초 동안, 같은 네트워크에 있는 다른 기기가 그 임시 화면(만들고 있는 화면의 코드 · 개발용 정보)에 접속할 가능성이 있습니다. Windows 방화벽이 이를 막는지는 확인하지 못했습니다. 안전하게 쓰려면 카페 · 공용 Wi-Fi처럼 믿을 수 없는 네트워크에서는 검증을 돌리지 마세요. (이 사실은 개발자에게 개선 과제로 전달되어야 할 항목입니다 — 아직 고치지 않았습니다.) 반면 /sodam-design-kit:open 대시보드는 코드상 127.0.0.1에만 열리도록 되어 있습니다..design-kit/ 안의 설정 · 매핑 · 판정 기록 · 스크린샷 전부. 전부 내 컴퓨터 디스크에만 저장되고 외부로 전송되지 않습니다.| 증상 | 원인 | 해결 방법 | 성공 기준 |
|---|---|---|---|
설치했는데 /sodam-design-kit:setup 명령이 안 보여요 | Claude Code가 옛날 설정을 그대로 기억하고 있음(캐시) | Claude Code 창을 완전히 닫았다가 다시 켜기(새로고침이 아니라 완전 종료 · 재시작) | 명령을 입력할 때 자동완성 목록에 /sodam-design-kit:setup이 뜸 |
| "완료가 차단됐다"는 메시지가 나와요 | 정상 동작입니다. 검증 게이트가 FAIL을 감지하면 "완료"라고 보고하는 것을 의도적으로 막습니다 | .design-kit/reports/의 최신 판정서를 열어 실패 사유를 확인 → 재시도 또는 사람이 직접 확인 | 판정서에 실패 사유가 구체적으로 적혀 있음 |
| 게이트 FAIL이 계속 반복돼요 | AI의 재시도(최대 3회 권장)로도 못 고치는 문제일 수 있음 | 판정서의 실패 사유(접근성 위반 항목 · 콘솔 에러 메시지)를 사람이 직접 읽고 원인 확인. .design-kit/config.json의 gateEnabled 값을 바꿔 게이트를 끄려는 시도는 동작하지 않습니다 — 어떤 프로그램도 그 값을 읽지 않기 때문입니다(코드로 확인). 게이트를 끄려 하지 말고 FAIL 사유를 고치세요 | 재시도 후 PASS로 바뀌거나, 사람이 원인을 파악함 |
| Figma 연결이 안 되거나 읽기가 부족해요 | Figma 커넥터 로그인이 끊겼거나, 공식 MCP 전환이 필요할 수 있음 | 커넥터 로그인 상태 확인 → 필요 시 공식 원격 MCP(mcp.figma.com/mcp)로 전환 | Figma 읽기 요청이 정상적으로 결과를 돌려줌 |
내 컴퓨터에 저장된 .fig 파일이 안 읽혀요 | Figma 커넥터 · MCP는 Figma 계정에 저장된 파일만 읽을 수 있고, 로컬 파일을 직접 읽지 못함 | Figma 데스크톱 앱에서 그 파일을 열어 계정에 저장한 뒤, 공유 링크를 사용 | 공유 링크로 정상 읽힘 |
| shadcn/ui가 설치되어 있지 않다고 나와요 | 대상 프로젝트에 shadcn/ui가 없음 | npx shadcn init 실행 여부를 물어보는 안내를 따름 | 안내된 설치가 끝난 뒤 명령이 정상 실행됨 |
검증할 때 browserType.launch: Executable doesn't exist at ...chromium_headless_shell... 오류가 나고, 아래쪽에 "Looks like Playwright was just installed or updated. Please run the following command to download new browsers"라고 나와요 | 검증용 브라우저(Chromium) 파일이 이 컴퓨터에 아직 없음 (2026-10-12에 브라우저 경로를 비워 놓고 그대로 재현한 실제 오류 문구입니다). 부품은 자동으로 설치되지만 브라우저는 자동으로 받지 않습니다 | 터미널에서 npx [email protected] install chromium 실행(3장 방법 A의 4번). 오류 화면이 안내하는 npx playwright install도 같은 목적입니다 | 같은 검증 명령이 오류 없이 PASS/FAIL 판정까지 진행됨 |
Cannot find package 'playwright' 같은 "패키지를 찾을 수 없다" 오류가 나요 |
Q. 코딩을 전혀 몰라도 쓸 수 있나요?
A. 명령을 실행하는 것 자체는 슬래시 명령 몇 개(/sodam-design-kit:setup, /sodam-design-kit:pipeline 등)만 알면 됩니다. 다만 "대상 프로젝트"(Next.js+Tailwind+shadcn/ui)는 누군가 미리 준비되어 있어야 합니다. 나머지는 전부 자연어로 AI에게 요청하면 됩니다.
Q. 컴퓨터 · 메신저 · AI를 정말 처음 써보는데 시작할 수 있나요? A. 0장 용어 사전을 먼저 읽고 4장 빠른 시작을 그대로 따라 입력해보시길 권합니다. 다만 정직하게 말씀드리면, 이 킷은 "개발 도구"라서 Node.js 설치 · 터미널 사용처럼 컴퓨터를 어느 정도 다뤄야 하는 부분이 남아있습니다 — 완전한 비전공자 혼자보다는, 이미 준비된 프로젝트(2장 준비물 3번)를 옆에서 도와줄 사람이 한 명 있으면 훨씬 수월합니다.
Q. Figma 유료 플랜이 꼭 필요한가요? A. 아니요, 무료(Starter) 플랜으로도 됩니다. 다만 한 달에 읽을 수 있는 횟수가 매우 적은 제한(제작 당시 직접 확인한 값은 월 6회, 이후 공식 문서 표기는 월 20회로 바뀜 — 정확한 현재 값은 Figma에서 확인)이 있습니다(10장 참고). 이 킷은 한 번 읽은 내용을 저장해두고 재사용하도록 만들어져 있어 이 한도 안에서도 여러 번 파이프라인을 돌릴 수 있습니다.
Q. 검증이 실패(FAIL)하면 제 코드가 잘못된 건가요? A. 꼭 그런 건 아닙니다. 접근성 규칙 위반, 콘솔 에러, 화면 렌더링 실패 등 여러 이유가 있을 수 있고, 판정서에 구체적인 이유가 남습니다. 실패도 "이 킷이 정상적으로 검사하고 있다"는 증거입니다.
Q. 생성된 코드를 제가 마음대로 고쳐도 되나요? A. 네, 생성된 코드는 사용자의 프로젝트 파일이 되므로 자유롭게 수정할 수 있습니다. 단, 다시 파이프라인을 돌리면 재검증이 이루어집니다.
Q. 이 킷을 상업적으로 써도 되나요? 다른 사람에게 나눠줘도 되나요? A. 네, Apache License 2.0 조건을 지키면 가능합니다(2026-08-09 확정) — 라이선스 사본 동봉, 수정 사실 표시, 원저작물 고지 유지가 조건입니다. 단 "SoDam-Design-Kit" 이름 · 상표 자체를 쓸 권리는 포함되지 않습니다. 자세한 내용은 13장을 반드시 읽어보세요.
Q. 이 킷으로 만든 결과물(상세페이지 · 코드)을 팔거나 고객사에 납품해도 되나요? A. 이 킷 자체의 라이선스는 그것을 막지 않습니다. 다만 원본 Figma 디자인의 저작권, 상품 데이터의 출처, AI 생성 코드/문구의 법적 지위는 이 킷과 별개의 문제이며 전적으로 사용자 책임입니다 — 13장에서 각각 자세히 설명합니다.
Q. Windows/Mac/Linux 다 되나요?
A. 이 킷은 Node.js 스크립트로 만들어져 있어 이론적으로 셋 다 실행 가능하지만, 지금까지 실제로 상세하게 검증된 환경은 Windows입니다(개발 · 테스트 환경). Mac/Linux에서의 실측 검증은 아직 이루어지지 않았습니다. Claude Desktop 확장(.mcpb)의 설명서(manifest.json)는 지원 운영체제로 Windows와 macOS만 명시해 두었고 Linux는 포함하지 않습니다. Node.js는 어느 운영체제에서든 20.9 이상이어야 합니다(2장).
Q. 이 킷은 안정적인 정식 버전인가요? A. 아니요. 현재 버전은 0.5.0(정식 출시 전)입니다. 핵심 기능(Phase 1 · Phase 2 · Phase 3 대부분)은 실제 프로젝트로 왕복 검증까지 마쳤지만, 명령어 이름이나 세부 동작이 앞으로 바뀔 수 있습니다. 중요한 프로젝트에 쓰기 전에는 7장과 GitHub의 Releases 페이지에서 최신 상태를 먼저 확인하는 것을 권장합니다.
Q. 새 버전은 어떻게 받나요? 자동으로 업데이트되나요?
A. 이 문서를 쓴 시점에 확인한 범위에서는 자동으로 바뀐다고 확인하지 못했습니다. 설치된 것은 복사본이라, 3장의 "업데이트 방법" 두 줄(claude plugin marketplace update sodam → claude plugin update sodam-design-kit@sodam)을 실행하고 Claude Code를 완전히 재시작해야 합니다.
Q. 제 디자인 · 코드가 외부로 전송되나요? A. 이 킷의 코드는 사용 통계나 원격 로그를 보내지 않습니다(코드 전체를 검색해 확인). 다만 Claude Code 자체가 대화 내용과 AI가 읽은 파일 · Figma 데이터를 Anthropic 서버로 전송하는 것은 이 킷과 별개로 일어납니다. 또 검증하는 동안 잠깐 열리는 개발 서버가 같은 네트워크의 다른 기기에서 접속 가능한 상태였던 것을 확인했습니다 — 자세한 내용과 주의는 10장을 꼭 읽어보세요.
Q. Codex 같은 다른 AI 도구에서도 쓸 수 있나요?
A. 일부만 가능합니다. AGENTS.md는 다른 도구가 이 킷의 핵심 규칙을 따르게 하려는 요약 문서입니다. 하지만 /sodam-design-kit:... 슬래시 명령과 "FAIL이면 완료를 막는" 훅은 Claude Code 전용이라 다른 도구에서는 작동하지 않습니다. 이 킷의 스크립트는 일반 Node 프로그램이라 이론상 다른 도구에서도 터미널로 실행할 수 있지만, 다른 도구에서 실제로 시험한 기록은 이 문서에 없습니다. 그런 도구로 쓴다면 검증 결과(.design-kit/reports/의 최신 판정서)를 사람이 직접 열어 PASS를 확인해야 합니다.
⚠️ 가장 먼저 읽어야 할 요약: 이 킷 자체는 상업적 이용 · 재배포가 가능합니다(Apache License 2.0). 하지만 이 킷으로 "만들어낸 결과물"(코드 · 문구 · 이미지)에 대한 법적 책임은 별개이며, 전적으로 사용자 본인의 책임입니다. 이 섹션은 법률 자문이 아니며 법적 효력을 보장하지 않습니다. 확정되지 않은 사항은 아래에 "미정"으로 명확히 구분해 표시했습니다. 상업적 이용 · 재배포 · 법적 판단이 필요한 경우 반드시 변호사 등 전문가의 확인을 받으시기 바랍니다.
LICENSE 파일(Apache License 2.0 전문)이 있습니다. 저작권자는 SoDam AI Studio, 연도는 2026년입니다.LICENSE 파일을 삭제하거나 가리고 재배포하는 행위이 킷 자체의 라이선스와 별개로, 이 킷이 검증 기능을 위해 내부적으로 사용하는 오픈소스 라이브러리들은 각자의 라이선스를 따르며, 이 킷은 이들을 수정하지 않고 그대로(설치 의존성으로만) 사용합니다.
| 구성요소 | 라이선스 | 용도 |
|---|---|---|
| Playwright / playwright-core | Apache License 2.0 (실측 확인됨) | 자동화 브라우저로 화면을 실제로 확인 |
| axe-core / @axe-core/playwright | Mozilla Public License 2.0 (실측 확인됨) | 접근성(장애인 사용성) 자동 검사 |
| pixelmatch | ISC License (실측 확인됨) | 화면 변경 자동 감지의 픽셀 단위 이미지 비교 |
| pngjs | MIT License (실측 확인됨) | 화면 변경 자동 감지용 PNG 이미지 읽기/쓰기 |
| satori | Mozilla Public License 2.0 (실측 확인됨) | 마케팅 이미지 소재(OG 이미지 등)의 텍스트 레이아웃을 SVG로 렌더링(Phase 3) |
| sharp | Apache License 2.0 (실측 확인됨) | 마케팅 이미지 소재를 SVG에서 PNG로 변환(Phase 3) |
| @modelcontextprotocol/sdk | MIT License (실측 확인됨) | Claude Desktop용 확장(MCP) 공식 SDK(Phase 3) |
| zod | MIT License (실측 확인됨) | MCP 도구 입력값 형식 검증(Phase 3) |
이 라이선스들은 이 킷의 라이선스와 무관하게 각 프로젝트가 독자적으로 부여한 것이며, 각 구성요소를 직접 사용하고 싶다면 해당 프로젝트의 원문 라이선스를 확인해야 합니다.
위 표는 이 킷이 직접 설치하는 8개 패키지만 다룹니다(그 8개의 라이선스는 2026-10-12에 package-lock.json의 license 필드와 다시 대조해 표와 일치함을 확인했습니다). 이 8개가 각자 데려오는 간접 의존성까지 포함하면 package-lock.json에 153개 패키지가 기록되어 있습니다(2026-08-21 감사 때는 126개였고, 이후 부품이 갱신되며 늘었습니다). 이번에는 별도의 스캐너 없이, 153개 전부의 license 필드를 스크립트로 집계했습니다.
| 라이선스 | 패키지 수 |
|---|---|
| MIT | 106 |
| Apache-2.0 | 16 |
| LGPL-3.0-or-later | 10 |
| ISC | 10 |
| MPL-2.0 | 3 |
| Apache-2.0 AND LGPL-3.0-or-later | 3 |
| BSD-3-Clause | 2 |
| Apache-2.0 AND LGPL-3.0-or-later AND MIT | 1 |
| BSD-2-Clause | 1 |
| 0BSD | 1 |
| 합계 | 153 |
license 필드가 없는 패키지: 0개 · GPL · AGPL 등 강한 카피레프트: 0개.sharp가 운영체제별로 데려오는 네이티브 부품입니다(@img/sharp-libvips-* 10개는 macOS · Linux용, @img/sharp-win32-* 3개는 Windows용, @img/sharp-wasm32 1개). 내 컴퓨터에는 그중 1~2개만 설치됩니다(Windows 64비트는 @img/sharp-win32-x64). 이는 libvips라는 라이브러리를 함께 담고 있기 때문입니다. 이 킷은 이들을 수정하지 않고 설치 의존성으로만 쓰므로, LGPL이 이 킷 전체로 번지지 않는 일반적인 사용 방식에 해당합니다(참고용 설명이며 법적 효력을 보장하지 않습니다).axe-core · @axe-core/playwright · satori): "파일 단위" 카피레프트입니다. 이 킷은 수정 없이 쓰지만, 사용자가 이 부품들의 파일을 직접 고쳐서 배포한다면 고친 파일의 소스를 MPL-2.0으로 공개해야 합니다..mcpb 파일 안에 통째로 들어 있습니다. 2026-10-12에 .mcpb 내부를 열어 보니 LICENSE 류 파일이 128개 들어 있었습니다. 이 파일들(특히 위 LGPL · MPL 부품의 LICENSE)을 지우거나 가리고 재배포하면 안 됩니다.Figma, Claude, Claude Code, Anthropic, shadcn/ui, Next.js, Tailwind CSS, Playwright, Node.js, GitHub 등의 이름은 각 권리자의 상표 또는 서비스 이름입니다. 이 문서는 이 킷이 어떤 도구와 함께 쓰이는지 설명하려고 이름을 적었을 뿐, 해당 회사들과 제휴하거나 보증 · 후원을 받았다고 주장하지 않습니다.
이 킷의 라이선스의 정본은 저장소 최상위의 LICENSE 파일입니다(203행에 Copyright 2026 SoDam AI Studio). Claude Desktop 확장 설명서 manifest.json에도 Apache-2.0이 적혀 있습니다. 반면 package.json과 .claude-plugin/plugin.json에는 라이선스 필드가 없으므로(2026-10-12 확인), 자동 도구가 이 파일들만 읽으면 라이선스를 "없음"으로 표시할 수 있습니다 — 판단은 LICENSE 파일을 기준으로 하세요.
7장의 "한글 폰트 자동화" 기능은 오픈소스 폰트 라이선스인 OFL(SIL Open Font License)을 따르는 폰트(Pretendard, Noto Sans KR)만 화이트리스트로 미리 정해두고 자동으로 내려받습니다. OFL은 폰트를 수정 · 재배포 · 상업적 이용하는 것을 허용하지만, 폰트 파일 자체를 단독으로 재판매하는 것은 금지합니다. 다운로드한 폰트 각각의 라이선스 근거는 대상 프로젝트의 ASSET-LEDGER.csv에 자동 기록됩니다.
이 킷은 사용자 본인의 Figma 계정으로 사용자가 직접 접근 권한을 가진 디자인만 읽으며, Figma 디자인 데이터 자체를 재배포하거나 저장 · 전송하지 않습니다. 다만 읽어온 디자인을 코드로 옮겨서 사용할 권리(저작권)가 있는지는 전적으로 사용자의 책임입니다 — 디자인 원본의 저작권은 그 디자인을 만든 사람(또는 조직)에게 있으며, 이 킷이 그 권리 관계를 대신 확인하거나 보장하지 않습니다.
/sodam-design-kit:detail-page)이 기능이 만드는 상세페이지 카피(제목 · 설명 · 자주 묻는 질문 등)는 사용자가 입력한 상품 데이터를 근거로 AI가 작성합니다. 상품 정보의 사실 정확성 · 과장 광고 여부 · 표시 · 광고에 관한 법률(예: 전자상거래법, 표시 · 광고의 공정화에 관한 법률 등) 준수 여부는 이 킷이 판단하지 않으며, 실제로 그 문구를 상업적으로 게시하기 전에는 반드시 사용자가 직접 사실 확인과 검토를 거쳐야 합니다.
이 킷이 생성하는 코드와 카피(문구)는 Claude(AI)가 만든 것입니다. AI 생성물의 저작권 귀속 · 보호 범위는 국가마다 법 해석이 다르고 아직 확립되지 않은 영역입니다. 생성된 코드 · 문구를 상업적으로 사용하기 전에는 사용자 본인의 책임 하에 필요 시 전문가 확인을 받으시기 바랍니다. 이 킷과 그 문서는 이에 대해 어떠한 법적 보장도 하지 않습니다.
| 행위 | 현재 허용 여부 |
|---|---|
| 제작자 본인이 개인적으로 사용 | ✅ 가능 |
| 코드를 수정해서 나 혼자/우리 팀 내부용으로 쓰기 | ✅ 가능 |
| 제3자에게 이 킷 자체를 배포 · 복사해서 나눠주기 | ✅ 가능 — 라이선스 사본 동봉 + 수정 사실 표시 필요 |
| 이 킷을 활용한 유료 서비스 · 상품 판매 | ✅ 가능 — 위 조건 동일 적용 |
| 회사 · 고객사에 이 킷을 납품 | ✅ 가능 — 위 조건 동일 적용 |
| "SoDam-Design-Kit" 이름 · 상표를 그대로 써서 배포 | ❌ 금지 — 라이선스가 코드 사용은 허용하지만 이름 · 상표권까지 부여하지 않음 |
| 저작권 · 라이선스 고지를 지우고 재배포 | ❌ 금지 (라이선스 위반) |
| 이 킷이 생성한 코드 · 카피를 내 프로젝트 · 상품에서 쓰기 | ✅ 가능 — 단, 원본 Figma 디자인의 저작권 · 상품 정보의 사실 정확성 확인은 사용자 책임 |
| 타인의 Figma 디자인을 무단으로 가져와 상업적으로 사용 | ❌ 이 킷의 라이선스와 무관하게, 원 디자인 저작권자의 권리 침해가 될 수 있음(사용자 책임) |
| 이 킷이 내부적으로 쓰는 오픈소스(Playwright · axe-core · pixelmatch · pngjs · satori · sharp · @modelcontextprotocol/sdk · zod)를 별도로 직접 쓰기 | ✅ 각 프로젝트의 라이선스(Apache-2.0 / MPL-2.0 / ISC / MIT)를 따르면 가능 |
| 이 킷이 자동 다운로드하는 폰트(Pretendard 등)를 폰트 파일 자체로 재판매 | ❌ 금지 (OFL 라이선스 위반) |
설치된 복사본이나 .mcpb 파일을 다른 사람에게 그대로 나눠주기 | ⚠️ 가능하지만 조건이 겹침 — 이 킷의 Apache-2.0 조건에 더해, 안에 든 부품들(특히 LGPL · MPL 부품)의 LICENSE 파일을 지우지 않아야 함. 상업적 재배포라면 변호사 확인 권장 |
| Playwright가 내려받는 Chromium 브라우저 파일을 이 킷의 일부인 것처럼 함께 배포 | ❓ 이 킷은 Chromium을 포함하지 않음 — 별도 프로젝트의 라이선스를 확인해야 함(이 문서는 보증하지 않음) |
| Claude · Figma 등의 이름을 써서 "공식 제품 · 제휴 제품"처럼 홍보 | ❌ 금지 — 상표권 침해 · 오인 소지(위 "상표 고지") |
| 이 킷으로 Figma 데이터를 AI(Claude Code)에게 읽혀 작업하기 | ⚠️ 가능하지만 Claude Code가 그 내용을 Anthropic 서버로 보내는 것을 전제로 해야 함(10장) — 비밀 · 개인정보가 든 디자인이면 회사 정책 확인 |
책임 제한 · 보증 없음: 이 킷과 문서는 "있는 그대로(as-is)" 제공되며, 특정 목적에의 적합성이나 오류 없음을 보증하지 않습니다. 사용으로 인해 발생하는 모든 결과에 대한 책임은 사용자 본인에게 있습니다.
이 문서에 담지 못한 더 상세한 사양 · 결정 근거 · 개발 이력은 .PRD/ 폴더가 정본입니다:
01_PRD.md — 무엇을 왜 만드는지, UI/UX · 보안 · 법률 · 문서화 · 성공 기준02_DATA_MODEL.md — 데이터 구조(config.json 등 파일 스키마)03_PHASES.md — 단계별(Phase 1/2/3) 개발 계획과 현재 진행 상태04_PROJECT_SPEC.md — 기술 스택, 절대 규칙(하지 말 것/항상 할 것).PRD/README.md — 개발 과정 전체 감사(audit) 이력CHECKPOINT.md는 의도적으로 GitHub에 올리지 않는 로컬 전용 파일이라 이 저장소에는 없습니다. 개발 이력의 정본은 위 .PRD/README.md입니다.| 웹사이트 화면을 실제로 "보여주는" 역할을 하는 프로그램. 이 킷은 검증할 때마다 이 서버를 컴퓨터 안에서 자동으로 켰다 끕니다 — 사람이 직접 켤 필요가 없습니다. |
| 코드 / 파일 / 확장자 | "코드"는 컴퓨터에게 어떻게 동작하라고 적어놓은 글자들이고, "파일"은 그 글자들이 저장된 문서 하나하나입니다. .tsx · .json · .md처럼 파일 이름 끝에 붙는 부분을 "확장자"라 부르며, 파일의 종류를 나타냅니다. |
| 저장소 (repository) | 관련된 파일들을 통째로 모아놓은 폴더 묶음. 이 킷 전체, 그리고 여러분이 코드를 옮겨 넣을 프로젝트 전체가 각각 하나의 저장소입니다. |
| 킷 (kit) | "도구 모음"이라는 뜻. 이 문서에서 "이 킷"은 항상 SoDam-Design-Kit(지금 이 프로그램) 자신을 가리킵니다. |
| Figma | 디자이너들이 화면(버튼 · 앱 화면 등)을 그리는 데 널리 쓰이는 온라인 디자인 프로그램. 이 킷은 Figma에 그려진 디자인을 읽어옵니다. |
| 컴포넌트 | 버튼 · 입력창처럼, 여러 화면에서 반복해서 재사용하는 작은 화면 조각(부품) 하나. |
| 판정서 | 이 킷이 검사를 마치고 "통과(PASS)" 또는 "실패(FAIL)"를 적어서 남기는 결과 기록 파일. |
| 토글 (접기/펼치기) | 클릭하면 내용이 펼쳐지거나 다시 접히는 화면 요소. 이 문서의 7장이 이 방식으로 되어 있습니다 — 제목을 한번 클릭해보세요. |
| 라이선스 | 이 프로그램(코드)을 남이 써도 되는지, 쓴다면 어떤 조건을 지켜야 하는지 정해놓은 규칙 문서. 13장에서 자세히 다룹니다. |
component-map.json.PRD/04_PROJECT_SPEC.md "절대 하지 마" 목록)은 개인정보나 실제 고객 데이터가 담긴 Figma 파일 · 상품 데이터를 연결하는 것을 금지합니다. 디자인 시안 · 상품 데이터 예시는 더미(가짜) 데이터로 만든 것만 사용해야 합니다./open)는 내 컴퓨터 안에서만 열림: 127.0.0.1(이 컴퓨터 자신을 가리키는 주소)로만 접속되며, 다른 사람이 인터넷을 통해 접속할 수 없습니다. 경로 조작 시도 차단 · 잘못된 요청 차단 · 실행 중 잠금 장치가 함께 구현되어 있고, 실제로 흉내를 내 막히는지 확인했습니다..env 파일로만 관리하도록 설계되어 있습니다.| 방금 설치 · 업데이트해서 부품(의존성)이 아직 자동 설치 중일 수 있음 |
1~2분 기다린 뒤 같은 명령을 다시 실행. 계속되면 claude plugin list로 버전을 확인하고, 설치된 복사본 폴더(9장 끝 참고)에 node_modules 폴더가 있는지 확인합니다. 없을 때의 복구(그 폴더에서 npm ci)는 일반적인 조치이며 이 킷에서 직접 시험해 보지는 못했습니다 |
| 같은 명령이 부품 오류 없이 실행됨 |
| 검증할 때 포트(주소)가 충돌한다고 나와요 | 이미 다른 프로그램이 같은 포트를 쓰고 있음 | 사용자가 직접 조치할 필요 없음 — 이 킷이 자동으로 다음 포트를 찾아 우회하도록 설계되어 있음 | 별도 조치 없이 검증이 계속 진행됨 |
Windows에서 --route /...처럼 /로 시작하는 옵션을 직접 입력했더니 이상한 결과가 나와요 | Git Bash(MSYS) 환경에서 /로 시작하는 값이 파일 경로로 잘못 바뀌는 환경 문제(이 킷의 코드 결함 아님, 개발자용 참고) | PowerShell을 사용 | 정상적인 검증 결과가 나옴 |
| 한글이 깨지거나 네모(□)로 보여요 | 프로젝트에 아직 한글 폰트가 설정되지 않음 | 개발자에게 font-pipeline 기능(Pretendard 등 자동 설정)을 요청 — 일반 사용자는 셋업/파이프라인 절차만 그대로 따르면 됩니다 | 화면에 정상적인 한글이 보임 |
대시보드(/open)가 안 켜지거나 화면이 비어 있어요 | 이미 다른 인스턴스가 열려 있거나, 방금 설치 · 업데이트해서 부품 설치가 아직 덜 끝남 | /sodam-design-kit:open --stop으로 한 번 끈 뒤 다시 실행. 그래도 안 되면 1~2분 뒤 다시 실행(바로 위 "패키지를 찾을 수 없다" 항목 참고) | 브라우저에 판정서 목록이 정상적으로 보임 |
Claude Desktop에서 .mcpb 파일을 더블클릭했더니 "이 파일을 열 프로그램을 선택하세요" 창이 떠요 | 이 컴퓨터에 .mcpb 확장자에 대한 파일 연결이 없음(Claude Desktop 설치 여부와는 무관한 별개 문제) | 그 창에서 취소 → Claude Desktop 설정 → 확장 프로그램 → 고급 설정 → 확장 프로그램 설치 버튼으로 파일을 직접 선택해 설치(3장 보충 참고) | 확인 화면에 도구 5개·"모든 요구 사항 충족됨"이 표시되고, 설치 후 "개발자 → 로컬 MCP 서버" 목록에 running 배지로 나타남 |
| 명령 입력이 익숙하지 않아요 | 컴퓨터 · 채팅형 도구가 처음이라 그럴 수 있습니다 | 0장 용어 사전을 먼저 읽고, 4장 빠른 시작을 한 줄씩 그대로 따라 입력해보세요 | 4장의 각 단계마다 적힌 "성공 기준"이 그대로 나타남 |
| 검증할 때 "dev server가 OO초 안에 준비되지 않았습니다"라는 오류가 나요 | 컴퓨터를 막 켰거나 오랜만에 실행해서, 화면을 처음 준비하는 데 평소보다 시간이 더 걸림(고장 아님) | 같은 명령을 한 번 더 실행 — 두 번째부터는 이미 준비된 상태라 보통 바로 됩니다 | 재실행 시 정상적으로 PASS/FAIL 판정까지 진행됨 |
| 새 버전이 나왔다는데 평소 쓰는 Claude Code는 옛날 그대로 동작해요 | 설치된 것은 복사본이라 업데이트하기 전에는 옛 버전이 계속 실행됨(3장) | 터미널에서 claude plugin marketplace update sodam → claude plugin update sodam-design-kit@sodam 실행 후 Claude Code 완전 재시작 | claude plugin list의 Version이 새 버전으로 바뀜 |
마켓플레이스를 등록하는데 Filename too long(파일 이름이 너무 김) 오류와 함께 실패해요 | Windows의 경로 길이 제한. Claude 설정 폴더를 아주 긴 경로로 바꿔 쓰는 경우에 2026-10-12에 직접 재현됨(일반 설치에서는 시험 중 발생하지 않음) | Claude 설정 폴더 경로를 짧게 하면 같은 명령이 성공함을 확인했습니다 | Successfully added marketplace: sodam 메시지 |
/plugin marketplace add sodam-ai/SoDam-Design-Kit가 실패해요 | Git이 설치돼 있지 않거나 GitHub에 접속할 수 없을 수 있음 (Git이 없는 PC에서는 직접 시험하지 못했습니다) | Git을 설치하거나 인터넷 연결을 확인한 뒤 다시 시도. 안 되면 방법 B로 설치 | Successfully added marketplace: sodam 메시지 |