LogoSkills

/cc-blueprint:design — 스펙에서 Figma 시안까지

스펙/PRD를 CoUI Figma 라이브러리 인스턴스만으로 제품 페이지 프레임으로 저작해, 프레임 node URL 목록·화면 레지스트리 등재 행·DDR(디자인 결정 기록)·self-check L0/L1/L2 판정표를 남깁니다. PRD는 확정됐는데 Figma 시안이 아직 없을 때, 또는 기존 화면에 상태·플랫폼 프레임을 작업규칙대로 추가할 때 사용합니다.

/cc-blueprint:design — 스펙에서 Figma 시안까지#

항목내용
실행 명령/cc-blueprint:design
분류cocode design
난이도●●○ 보통
MCP 서버figma

한마디로#

기획 문서(또는 화면 목록 한 줄)를 주면, 회사 표준 부품(CoUI)의 Figma 라이브러리 컴포넌트만 조립해서 제품 화면 시안을 Figma 에 그려 주는 명령입니다. 색이나 간격을 제멋대로 칠하지 않고, 디자이너가 정한 작업규칙과 표준 부품의 토큰을 그대로 따르므로 누가 시켜도 같은 품질의 시안이 나옵니다.

누가·언제 쓰나요#

  • PRD/스펙은 확정됐는데 Figma 시안이 아직 없을 때 — 디자인 단계를 에이전트에게 맡기고 싶을 때
  • 기존 화면의 변형 시안(새 상태·새 플랫폼 프레임)을 규칙대로 추가하고 싶을 때
  • 디자이너가 그린 시안이 아니라 개발 착수용 표준 시안이 우선 필요할 때 (이후 디자이너 피드백 루프는 /cc-blueprint:sync)

무엇을 해주나요#

  • 시작 전에 그릴 준비가 됐는지 검사합니다 — Figma 계정 연결, CoUI 라이브러리 접근, 라이브러리 세대(버전) 일치
  • 화면마다 필요한 부품을 CoUI 라이브러리에서 검색해 가져와 조립합니다 — 네모를 직접 그리거나 색을 hex 로 칠하는 일은 하지 않습니다
  • 완성 프레임을 작업규칙의 네이밍·구조대로 정리하고 화면 레지스트리에 등재합니다
  • 기획서에 없는 디자인 판단(간격·문구·빈 상태 처리 등)은 되묻지 않고 근거 기반으로 확정하고 기록(DDR)을 남깁니다
  • --new-file 로 새 파일을 만들 땐 표준 표지(Unibook 2.0 스타일 — 로고·버전 배지·기간)를 먼저 생성해 파일 썸네일로 지정합니다
  • 끝나면 스스로 검사(design-self-check)해서 재작업 필요(L0) 항목이 없는지 확인합니다

어떻게 쓰나요#

# 스펙 문서로부터 — 대상 파일 URL 지정
/cc-blueprint:design --spec docs/ux-spec-store.md --file https://www.figma.com/design/{fileKey}/...

# 화면 목록 한 줄로 — 새 Figma 파일 생성
/cc-blueprint:design  " 도서 목록, 도서 상세, 구매 완료 "   --new-file  " Store v2 " 

 # 특정 페이지에 상태 프레임만 추가
/cc-blueprint:design --frames  " 도서 목록/Empty,도서 목록/Error "   --file {url}

안에서 무슨 일이 벌어지나요#

  1. 프리플라이트 — Figma 연결·CoUI 라이브러리·버전 세대를 검사하고, 안 되면 이유와 해결 방법을 알려주며 멈춥니다.
  2. 화면 분해 — 스펙을 화면(섹션) 단위로 나누고, 화면마다 상태 축(Default/Loading/Empty/Error)을 정합니다.
  3. (새 파일이면) 표지 생성 — Unibook 2.0 표지와 같은 스타일의 Cover 페이지를 먼저 깔고 파일 썸네일로 지정합니다.
  4. 부품 조립 — CoUI 라이브러리 컴포넌트를 검색·임포트해 프레임을 조립합니다.
  5. 정리·등재 — 네이밍 규칙 적용, 화면 레지스트리 등재, 프레임 주소 목록 보고.
  6. 자기 검사design-self-check 로 L0/L1/L2 판정. L0 이 있으면 그 자리에서 고칩니다.

⚙️ 상세 옵션·실행 명세 (개발자 / AI 에이전트용)

Usage#

/cc-blueprint:design [--spec {path|text}] [--frames  " {섹션}/{상태},... " ]
                     [--file {figma_url} | --new-file  " {name} " ] [--surface {surface}]
옵션설명
--spec스펙/PRD 경로 또는 인라인 텍스트. 생략 시 위치 인자를 화면 목록으로 해석
--frames특정 섹션/상태 프레임만 저작 (기존 파일 증분 작업)
--file대상 Figma 파일 URL. --new-file 과 상호 배타
--new-file새 Figma 파일 생성 후 저작 (figma:figma-create-new-file 위임)
--surface레지스트리 3단 대응의 [Surface] (기본: 스펙에서 추론)

Rules SoT (이 커맨드는 규칙을 재정의하지 않는다)#

판단SoT
파일·페이지 구조 / 네이밍 / 금지사항 L0·L1·L2rules/figma-workflow.md
CoUI 라이브러리 소비 (인스턴스 온리·variable 바인딩·프리플라이트)rules/coui-library-consumption.md
Figma↔코드 레지스트리 결합cc-flutter:figma-widgetbook-alignment
디자인 판단 확정cc-designer:design-decision (DDR) — 에스컬레이션 4종 외에는 되묻지 않음

Step 0: Preflight (fail-fast)#

rules/coui-library-consumption.md §3 절차 그대로:

1. figma MCP 인증 확인 — 미인증이면 즉시 중단:  " 인증 후 재실행 "   안내 (/mcp → figma).
   ⛔ 저작은 쓰기 작업이므로 무인 폴백이 없다 (읽기 전용 추출과 다르다).
2. CoUI 라이브러리 접근 — 라이브러리 컴포넌트 검색 1건 히트 확인.
   실패 시: 팀 라이브러리 publish 상태 확인 안내 후 중단.
3. 세대 대조 — 라이브러리 컴포넌트 명명이 저장소 루트 coui.version.json 의
   coui_skills_basis 세대(bare-widget)와 일치하는지 확인. 가능하면 coui figma 플러그인의
   토큰 드리프트 점검(coui#4537)으로 세대 내 skew 도 함께 본다.
   skew 발견: 진행하되 결과 보고에  " 라이브러리 구세대 — coui figma-token-sync 재발행 필요 "   명시,
   흡수 절차는 `skills/coui-library-update` 로 라우팅 (저작을 막지 않는다).

Step 1: Screen Decomposition (LLM-SEMANTIC)#

  • --spec 텍스트를 화면(섹션) 목록으로 분해 — 섹션 1개 = 화면 1개 (rules/figma-workflow.md §2).
  • 화면마다 상태 축 확정: 기본 4종(Default/Loading/Empty/Error — Default 는 예외 없이 필수) 중 스펙이 명시한 것 + 필요 추론분. 스펙에 없는 상태 처리 방식은 cc-designer:design-decision 으로 확정하고 DDR 기록.
  • 산출: 저작 계획 표 — | 섹션 | 상태 프레임 | 사용할 CoUI 컴포넌트 후보 | DDR |

Step 1.5: Cover 생성 (--new-file 전용)#

새 파일에는 화면 저작 전에 표준 표지를 깐다 — Unibook App v2.0 표지(fileKey xcJWHajRef2txj9zmFDlu3 · node 6:157, 2026-08-28 figma-mcp 실측)와 동일한 스타일이다. 스타일 개정 시 그 노드를 재추출해 아래 표를 갱신한다.

5슬롯 템플릿 — 페이지 Cover · 프레임 Cover 1280×720 · 배경 #FFFFFF:

슬롯위치(px)내용스타일 (실측)
좌상x 90 · y 90회사명 CocodePretendard Medium 41 · #A1A1A1 · tracking −0.41
우상우측 정렬(x끝 ≈1190) · y 90트랙 Outsourcing좌상과 동일
좌중x 94 · 세로 중앙 상단(h ≈158)앱 로고 (logo_text 인스턴스)신규 앱 로고 부재 시 폴백: 앱 이름 대문자 워드마크 텍스트(Pretendard Bold ≈110 · #111111) + 로고 제작 백로그 표시
좌하x 90 · y 553 · gap 30버전 배지 + 제품 구분배지: bg #FC9235 · radius 16 · padding 34×16 · 텍스트 Pretendard SemiBold 45 #FFFFFF tracking 0.675 (기본 v1.0) / 제품 구분(App/Console 등): Pretendard SemiBold 68 · #515151
우하우측 정렬(x끝 1190) · y 562기간 YYYY.MM-Inter Medium 50 · #878787 (기본: 시작 연월)
절차 (Step 2 와 같은 스킬 위임 — figma:figma-use 로드 필수):
1. 폰트 로딩 — Pretendard Medium/SemiBold(로고 폴백 시 Bold), Inter Medium.
   figma-use 의 폰트 로딩 규칙을 따르고, 워크스페이스에 Pretendard 가 없으면
   조기 실패 + 폰트 설치 안내 (다른 폰트로 대체하지 않는다 — 표지 통일성이 목적이다).
2. use_figma 로 Cover 페이지에 위 표 그대로 프레임 저작 — 이 표가 곧 시안이다.
   텍스트 값은 입력에서 채운다: 제품 구분 = --new-file 이름에서 추론, 버전 기본 v1.0,
   기간 기본 현재 연월. 회사·트랙 라벨은 원본값 유지가 기본.
3. 썸네일 지정 — use_figma 스크립트에서 figma.setFileThumbnailNodeAsync(coverFrame) 시도.
   실패는 비차단:  " 표지 프레임 우클릭 → Set as thumbnail "   수동 안내를 결과에 남긴다.

표지는 화면이 아니다 — 레지스트리에 등재하지 않고, self-check 대상도 아니다 (Cover 페이지는 매핑 표 밖 — rules/figma-workflow.md §1 의 등재 원칙 그대로).

Step 2: Authoring (figma 스킬 위임)#

Figma Plugin API 사용법은 여기 없다 — 반드시 아래 스킬을 로드해 그 규칙대로 실행한다:

1. Skill(figma:figma-use)             — use_figma 호출 전 필수 (모든 쓰기)
2. Skill(figma:figma-generate-design) — 페이지/뷰 조립 워크플로우 (컴포넌트 발견→임포트→섹션별 조립)
3. (--new-file 시) Skill(figma:figma-create-new-file)

이 커맨드가 위 스킬에 추가로 강제하는 것만 적는다:

  • 컴포넌트 소스는 CoUI 라이브러리 인스턴스만 — 프리미티브 드로잉·detach·로컬 스타일 생성 금지 (rules/figma-workflow.md §4 L0). figma-generate-design 의 "디자인 시스템 재사용" 경로를 CoUI 라이브러리로 고정하는 것이다.
  • 색·간격·타이포는 라이브러리 variable 바인딩으로만. 화면 고유 값은 DDR 없이 넣지 않는다.
  • 상태·크기·종류는 인스턴스 component property(Variant=/Size=/State=/Enabled=) 전환으로.

Step 3: Naming + Registry#

  • 프레임 네이밍: rules/figma-workflow.md §2 표 그대로 ({플랫폼}-{상태}, 예 Web-Empty — 같은 섹션 안 왼쪽 Mobile · 오른쪽 Web).
  • 레지스트리 등재: 3단 대응(Project/Page/Section ↔ [Surface]/Feature/UseCase)으로 화면 레지스트리에 행 추가 — 계약·위치는 cc-flutter:figma-widgetbook-alignment 가 SoT. 코드 쪽 use_case 가 아직 없으면 코드 칸을 —(미구현: /cc-blueprint:build 대상) 으로 남긴다.
  • 보고: 섹션별 프레임 node URL 목록 (이후 /cc-blueprint:build 의 입력이 된다).

Step 4: Self-check (필수 마지막 단계)#

skills/design-self-check 를 저작 결과 전체에 적용한다:

  • L0 발견 → 그 자리에서 재작업 (보고로 미루지 않는다). 재작업 2회 후에도 L0 이 남으면 해당 섹션만 실패로 보고하고 나머지는 산출한다.
  • L1/L2 는 판정표와 함께 보고에 싣는다.
  • DDR 목록(결정문·근거 사다리 등급·신뢰도)을 보고 마지막에 첨부한다.

Output#

## 🎨 저작 결과 — {파일명}
| 섹션 | 프레임 | node URL | self-check |
|------|--------|----------|------------|
| 도서 목록 | 4 (Default/Loading/Empty/Error) | figma.com/...?node-id=... | L0 0 · L1 1 |
### 디자인 결정 (DDR n건) · 라이브러리 세대: {일치|skew}
### 다음 단계: /cc-blueprint:build --frames {...}

Error Handling#

상황행동
figma 미인증 / 라이브러리 접근 불가Step 0 조기 중단 + 해소 안내 (부분 저작 없음)
필요한 컴포넌트가 라이브러리에 없음rules/coui-library-consumption.md §4 — 조합 대체 → 판정 질문: 범용이면 promote/ 승격 백로그 부채로 계속, 도메인 전용이면 도메인 컴포넌트(900 components) — 차단 아님
self-check L0 반복(2회 재작업 후 잔존)해당 섹션 실패 보고 + 나머지 산출 (전체 중단 금지)
디자인 에스컬레이션 4종그 판단만 권고안+확인 대기, 다른 섹션 계속
  • rules/figma-workflow.md · rules/coui-library-consumption.md — 이 커맨드의 규칙 SoT
  • figma:figma-use · figma:figma-generate-design · figma:figma-create-new-file — 실행 계층 (위임)
  • skills/design-self-check — Step 4 판정기
  • skills/coui-library-update — 프리플라이트 skew 발견 시 흡수 절차
  • /cc-blueprint:build — 저작 결과를 화면 코드로 (다음 단계)
  • cc-designer:design-decision — DDR 프로토콜