REPO DEEP DIVE · 2026-07-29 · GOOGLE-LABS-CODE/STITCH-SKILLS · AI 디자인 툴을 위한 "에이전트 매뉴얼" 모음집

google-labs-code/stitch-skills 딥다이브
코드가 아니라 "지침서"를 배포하는 저장소

stitch-skills는 Google의 AI UI 디자인 툴 Stitch(stitch.withgoogle.com)를 Claude Code·Cursor·Codex 같은 AI 코딩 에이전트가 올바르게 다루도록 가르치는 "스킬(Skill)" 모음집이다. 이 레포에는 실행되는 서버나 앱이 없다. 대신 에이전트가 읽는 마크다운 지침서(SKILL.md)와, 그 지침을 강제·검증하는 작은 스크립트들이 들어있다.

구조는 3개 플러그인(stitch-design·stitch-build·stitch-utilities) 아래 총 15개 스킬이며, 공식 오픈 표준인 Agent Skills(agentskills.io)를 따른다. Stitch로 화면을 생성하고, React/React Native/Remotion 코드로 변환하고, 프롬프트를 다듬고, 디자인 시스템을 지키게 하는 "디자인 → 코드" 파이프라인 전체를 스킬 단위로 쪼갠 것이 핵심이다.

(저장소 google-labs-code/stitch-skills · 라이선스 Apache-2.0 · "공식 지원 Google 제품 아님"을 README에 명시 · 파일 87개(마크다운 51 / JSON 14 / TSX 9 / 셸 4 / TS 3 / JS 2 / Python 1) · 최신 커밋 7b53207, 2026-07-21(PR #87, OpenCode 수동 설치 가이드 추가) · 별점 미인용)
목차
  1. 한 줄 정체
  2. 왜 지금 뜨는가
  3. 무엇을 해결하나 — 문제와 해결
  4. 전체 구조
  5. 핵심 설계·동작 원리
  6. 기술 스택 · 의존성
  7. 설치 · 요구사항
  8. 실제 사용 흐름
  9. 함정 · 오해 방지
  10. 대안 비교
  11. 정리 — 누가 쓰면 좋은가

1한 줄 정체

한 문장으로: "Stitch라는 AI 디자인 툴을 AI 에이전트가 실수 없이 쓰게 만드는, 실행되지 않는 지침서+검증 스크립트 묶음"

이 저장소를 열면 서버도, 프론트엔드 앱도, npm start로 띄울 무언가도 없다. 있는 것은 plugins/ 폴더 아래 15개의 SKILL.md 파일과 그것을 뒷받침하는 소수의 스크립트(.sh/.js/.py)뿐이다. 즉 이 레포의 "산출물"은 사람이 아니라 AI 에이전트가 읽는 업무 매뉴얼이다.

Stitch는 텍스트나 이미지로 UI 화면(스크린)을 생성해주는 Google의 디자인 툴이며, MCP(Model Context Protocol) 서버로 코딩 에이전트에 연결된다. 문제는 "Stitch MCP에 연결됐다"는 사실만으로는 에이전트가 디자인 토큰을 지키고, 이미지를 안전하게 올리고, React로 옮길 때 접근성·타입을 지키는 행동을 하지 않는다는 점이다. stitch-skills는 이 간극을, 각 작업 단계마다 강제 규칙(GATE)과 안티패턴 목록을 박아넣은 스킬 문서로 메운다.

한 줄 비유

"신입 디자이너에게 건네는 업무 매뉴얼 바인더"

Stitch라는 툴 자체는 신입 디자이너가 손에 쥔 강력한 렌더링 장비다. 하지만 장비를 쥐여줬다고 회사 규정에 맞게 작업하는 건 아니다. "이 순서대로 하고, 이건 절대 하지 마라"는 매뉴얼이 따로 필요하다.

stitch-skills는 그 매뉴얼 바인더다. "디자인 뽑는 법" 챕터, "React로 옮기는 법" 챕터, "색상 규칙 지키는 법" 챕터가 각각 따로 있고, 몇몇 챕터 끝에는 신입이 규칙을 지켰는지 자동으로 채점하는 시험지(스크립트)까지 붙어 있다.

2왜 지금 뜨는가

"Agent Skills" 오픈 표준의 확산 · AI 디자인→코드 파이프라인 수요 · 멀티 CLI 호환

2026년 들어 Claude Code·Codex·Cursor·Gemini CLI 등 코딩 에이전트가 폭발적으로 늘면서, 이들에게 "특정 작업을 어떻게 해야 하는지" 가르치는 표준 포맷인 Agent Skills(agentskills.io)가 여러 벤더에 걸쳐 자리 잡고 있다. stitch-skills는 이 표준을 채택한 초기 사례 중 하나이며, 만든 주체가 google-labs-code라는 점에서 신뢰도 신호가 크다.

① "디자인 → 코드" 자동화가 실전 수요가 됐다

v0·Lovable·Stitch 같은 텍스트/이미지 기반 UI 생성 툴이 늘면서, "생성된 디자인을 실제 프로덕션 코드로 안전하게 옮기는" 중간 단계가 새로운 병목이 됐다. stitch-skills는 이 병목을 정면으로 겨냥해 React·React Native·shadcn/ui·Remotion(동영상)까지 변환 대상을 넓혔다.

② 하나의 스킬로 여러 에이전트 CLI를 동시에 커버

README는 Codex, Antigravity, Gemini CLI, Claude Code, Cursor, (수동 설치로) OpenCode까지 호환된다고 명시한다. npx plugins add ... --target claude-code, npx plugins add ... --target cursor처럼 같은 스킬 소스를 타겟만 바꿔 설치하는 배포 방식은, 특정 벤더에 종속되지 않으려는 최근 흐름과 맞아떨어진다.

③ "그냥 프롬프트"가 아니라 검증 가능한 규율

대부분의 프롬프트 모음은 텍스트일 뿐이라 지켜지는지 확인할 길이 없다. 이 레포는 일부 스킬(react-components, react-native)에 대해 AST 파서로 실제 코드를 검사하는 스크립트GitHub Actions CI를 붙여, "말로만 하는 규칙"을 "기계로 확인하는 규칙"으로 바꿨다.

위치
스킬 마켓 생태계 안에서

Anthropic의 공식 Claude Skills, 커뮤니티의 awesome-claude-skills 같은 큐레이션 목록과 나란히 놓고 보면, stitch-skills는 "한 제품(Stitch)을 위한 전용 스킬 스위트"라는 좁고 깊은 포지션을 취한다. 범용 스킬 모음이 아니라, 디자인 생성부터 코드 변환까지 하나의 워크플로를 끝까지 커버하는 구성이 특징이다.

3무엇을 해결하나 — 문제와 해결

에이전트가 "그냥 하면" 벌어지는 실수들을, 스킬 하나하나가 1:1로 막는다

AI 에이전트에게 Stitch MCP 접근권만 주고 "디자인을 React로 바꿔줘"라고 하면 실제로 어떤 일이 벌어질까? 소스 코드에 남은 실패 사례에 대한 방어 코드와 경고 문구들을 역추적하면, 이 레포가 막으려는 실제 문제가 선명하게 드러난다.

실제 문제 상황담당 스킬 / 메커니즘어떻게 막는가
이미지·HTML을 MCP 인자로 그대로 보내면 모델 출력 토큰 한계(~16K)에 걸려 base64가 중간에 잘림upload-to-stitchupload_to_stitch.py가 파일을 모델을 거치지 않고 직접 읽어 base64 인코딩 후 HTTP로 전송
Stitch가 준 다운로드 URL(GCS)이 에이전트 내장 fetch 툴에서 자주 실패react-components / react-nativefetch-stitch.shcurl -L -f --compressed로 리다이렉트·보안 핸드셰이크를 대신 처리
변환된 React 컴포넌트에 Props 타입이 없거나 색상이 하드코딩된 hex로 남음react-componentsscripts/validate.js가 AST를 파싱해 Props 인터페이스와 hex 색상 사용을 기계적으로 검사
여러 프로젝트를 오가며 작업하다 이전 프로젝트의 디자인 토큰이 섞여 들어감react-components Phase 2매 변환마다 style-guide.json을 현재 HTML의 tailwind.config에서 다시 추출해 덮어쓰도록 GATE로 강제
Stitch 화면의 href="#" placeholder 링크가 실제 앱에 그대로 남아 내비게이션이 죽음react-components Phase 3모든 href="#"를 라우트가 있는 <Link>로 교체하도록 명시 규칙 + 체크리스트
AI가 생성한 화면이 전형적인 "AI스러운" 디자인(보라 네온, Inter 폰트, 3열 카드, 가짜 통계)이 됨taste-design색상·폰트·레이아웃·통계 조작 등 명시적 금지 목록을 담은 DESIGN.md 생성 규칙
여러 페이지를 자동으로 이어 만들다 다음에 뭘 할지, 뭘 이미 만들었는지 잊음stitch-loop.stitch/next-prompt.md(baton)·.stitch/SITE.md(사이트맵/로드맵)로 진행 상태를 파일에 영속화
비유

일반 프롬프트 모음이 "이렇게 해주세요" 하고 부탁하는 메모라면, stitch-skills는 "이 순서대로, 이 파일을 거쳐서, 이 스크립트로 확인하고 나서"까지 지정하는 작업 표준서(SOP)에 가깝다. 부탁이 아니라 절차이기 때문에, 몇몇 항목은 코드로 재확인까지 한다.

4전체 구조

3개 플러그인(design·build·utilities) × 15개 스킬, 스킬마다 동일한 4단 폴더 규격
stitch-skills/ ├── README.md · CONTRIBUTING.md · SECURITY.md ├── LICENSE # Apache-2.0 ├── .agents/plugins/marketplace.json # Codex 마켓플레이스 등록 정의(3개 플러그인) ├── .github/workflows/validate-skills.yml # CI — 15개 중 2개 스킬만 자동 검증 └── plugins/ ├── stitch-design/ # ★ 6개 스킬 — "디자인 만들기·관리하기" │ ├── plugin.json + .codex-plugin/plugin.json │ └── skills/ │ ├── code-to-design/ # 코드 → Stitch 디자인 역변환 │ ├── generate-design/ # 텍스트/이미지 → 화면 생성·편집·변형 │ ├── manage-design-system/# DESIGN.md 업로드 · 테마 적용 │ ├── extract-design-md/ # 소스코드에서 DESIGN.md 역추출 │ ├── extract-static-html/ # 실행 중인 웹앱 → 정적 HTML 스냅샷 │ └── upload-to-stitch/ # 로컬 자산을 Stitch 프로젝트에 업로드 ├── stitch-build/ # ★ 5개 스킬 — "디자인 → 코드 변환" │ └── skills/ │ ├── react-components/ # ★ Stitch → React (검증 스크립트 有, CI 대상) │ ├── react-native/ # ★ Stitch → React Native (CI 대상) │ ├── react-vite-dashboard/# Stitch → Vite+TanStack Query 대시보드 │ ├── remotion/ # Stitch → 워크스루 영상(Remotion) │ └── shadcn-ui/ # shadcn/ui 세팅·컴포넌트 가이드 └── stitch-utilities/ # ★ 4개 스킬 — "품질·프롬프트 보조" └── skills/ ├── design-md/ # Stitch 프로젝트 → DESIGN.md 생성 ├── enhance-prompt/ # 프롬프트를 Stitch 최적화 형태로 보강 ├── stitch-loop/ # baton 방식 자율 사이트 빌드 루프 └── taste-design/ # 안티-제네릭 프리미엄 DESIGN.md 생성

스킬 하나의 내부는 Agent Skills 표준이 정한 4단 규격을 따른다(단, 아래에서 보듯 실제로는 지켜지지 않는 스킬도 있다):

skills/<skill-name>/ ├── SKILL.md # "미션 컨트롤" — 에이전트가 실제로 읽는 지침 본문 ├── scripts/ # 실행 가능한 강제 장치(다운로드·검증·업로드) ├── resources/ # 지식 베이스(체크리스트, 스타일가이드, 키워드 목록) └── examples/ # "정답" 참고 코드(gold standard)
항목수치 / 사실
전체 파일 수87개(.git 제외)
파일 유형 분포Markdown 51 · JSON 14 · TSX 9 · Shell 4 · TypeScript 3 · JavaScript 2 · Python 1
스킬 개수design 6 + build 5 + utilities 4 = 총 15개
매니페스트 이중화플러그인마다 plugin.json(일반) + .codex-plugin/plugin.json(Codex 전용, brandColor·defaultPrompt 등 UI 메타데이터 포함)
구조 불일치react-vite-dashboardSKILL.md+README.md뿐, scripts/resources/examples가 전부 없음(4단 규격 미준수)

5핵심 설계·동작 원리

GATE 강제 절차 · AST 코드 검증 · 모델 출력 한계 우회 스크립트 · baton 릴레이 루프

설계 패턴 ① — "GATE"로 순서를 강제하는 절차형 프롬프트

plugins/stitch-build/skills/react-components/SKILL.md는 작업을 Phase 1~4로 나누고, 각 Phase 앞에 "GATE: … 완료로 간주된다"는 문구를 박아 넣는다. 예를 들어 Phase 1은 fetch-stitch.sh모든 화면을 다운로드하고 스크린샷을 육안 감사한 뒤에만 완료로 치고, Phase 2는 현재 프로젝트의 HTML에서 새로 추출한 토큰으로 style-guide.json을 덮어써야만 완료로 친다. 각 Phase 끝에는 "Anti-patterns" 목록이 명시적으로 붙어, 흔한 실수(모놀리식 컴포넌트, 하드코딩 색상, 미변환 href="#")를 나열한다.

비유

공장 생산라인의 품질 게이트와 같다. 검사원(GATE)이 서명하기 전에는 다음 공정으로 부품이 못 넘어간다. 다만 이 게이트는 사람이 손으로 쓴 규칙 문장일 뿐, 실제로 다음 단계를 물리적으로 막는 코드가 아니다 — 에이전트가 지침을 "읽고 따르기"에 의존한다는 한계는 뒤 9장에서 다룬다.

설계 패턴 ② — AST 파서로 실제 코드를 기계 검사

말로 된 규칙과 달리 실제로 강제되는 유일한 지점이 plugins/stitch-build/skills/react-components/scripts/validate.js다. @swc/core로 TSX 코드를 파싱해 AST를 만든 뒤, 재귀 walk() 함수로 트리를 훑으며 두 가지를 검사한다.

const HEX_COLOR_REGEX = /#[0-9A-Fa-f]{3,8}\b/;
...
if (node.type === 'TsInterfaceDeclaration' && node.id.value.endsWith('Props')) hasInterface = true;
if (node.type === 'JSXAttribute' && (node.name?.value === 'className' || node.name?.name === 'className')) {
  if (node.value?.value && HEX_COLOR_REGEX.test(node.value.value)) tailwindIssues.push(node.value.value);
}

즉 ① ~Props로 끝나는 TypeScript 인터페이스 선언이 있는지, ② className 안에 하드코딩 hex 색상이 섞여 있는지를 검사해 hasInterfacetailwindIssues를 채우고, 하나라도 어긋나면 process.exit(1)로 실패 처리한다. 이 검사는 .github/workflows/validate-skills.yml CI에서 examples/gold-standard-card.tsx를 대상으로 실제로 실행된다(Node 18.x, npm cinode scripts/validate.js).

설계 패턴 ③ — "모델의 출력 토큰 한계"를 우회하는 스크립트

plugins/stitch-design/skills/upload-to-stitch/scripts/upload_to_stitch.py의 docstring은 이 레포에서 가장 흥미로운 설계 근거를 직접 설명한다: MCP 툴 호출 인자는 모델의 출력이므로, 파일을 base64로 통째로 재생성해 인자에 담아야 하는데 모델 출력 토큰 한도(~16K)가 파일의 base64 길이(예: 53KB PNG → 약 71K자)보다 훨씬 작아 중간에 잘리고 요청이 깨진다.

원문 근거
upload_to_stitch.py 상단 주석

"The AI model cannot upload files via the MCP tool directly … The output gets truncated mid-string, producing a corrupted payload … This script bypasses the model entirely — it reads the file, encodes it in-process, and sends the full payload directly over HTTP."

해결책은 모델을 완전히 우회하는 것이다. 스크립트가 직접 파일을 읽어 base64 인코딩하고, BatchCreateScreens REST 엔드포인트(POST /v1/projects/{id}/screens:batchCreate)로 곧장 HTTP 요청을 보낸다. 에이전트는 "이 파일 경로로 스크립트를 실행해라"라고만 지시하면 된다 — 파일 내용을 자기 출력으로 재생성할 필요가 없다.

설계 패턴 ④ — baton(계주봉) 릴레이로 만드는 자율 루프

stitch-loop 스킬은 .stitch/next-prompt.md라는 파일을 다음 실행 회차에 넘기는 계주봉(baton)으로 쓴다. 파일의 YAML 프론트매터 page: 필드가 다음에 만들 페이지명을, 본문이 그 페이지의 프롬프트(디자인 시스템 블록 포함)를 담는다. 한 번의 실행(iteration)은 6단계로 진행된다.

1. 바톤 읽기 .stitch/next-prompt.md 파싱 (page + prompt) 2. 컨텍스트 확인 .stitch/SITE.md(사이트맵·로드맵) · .stitch/DESIGN.md(디자인 토큰) 3. Stitch로 생성 generate_screen_from_text 호출 → HTML/스크린샷 다운로드 4. 사이트에 통합 site/public/{page}.html로 이동, href="#" 내비게이션 연결 5. 문서 갱신 SITE.md 사이트맵에 [x] 체크, 로드맵 갱신 6. 다음 바톤 작성 next-prompt.md에 다음 페이지 프롬프트 기록 ← 이걸 빼먹으면 루프가 멈춘다

프로젝트·화면 ID는 .stitch/metadata.json에 영속화되어 다음 회차가 이어받는다. 이 루프는 오케스트레이션 방식과 무관하게 설계됐다 — GitHub Actions가 파일 변경을 트리거해도, 사람이 매번 같은 에이전트를 다시 실행해도 동일하게 동작한다.

비유

계주 경기의 바톤(baton)과 똑같다. 각 주자(에이전트 실행 1회)는 바톤(next-prompt.md)을 받아 자기 구간(페이지 1개)을 뛰고, 반드시 다음 주자를 위해 바톤을 다시 넘겨야 한다. 바톤을 안 넘기면 — 즉 next-prompt.md를 안 갱신하면 — 경기(자동 빌드 루프)는 그 자리에서 멈춘다.

설계 패턴 ⑤ — "안티-제네릭"을 명문화한 디자인 규율

taste-design 스킬은 "예쁘게 만들어줘" 대신 무엇을 하지 말아야 하는지를 촘촘히 나열한다 — Inter 폰트 금지, 순수 검정(#000000) 금지, 보라/네온 글로우 금지, 균등 3열 카드 금지, 그리고 "99.98% 가동률" 같은 존재하지 않는 통계를 지어내는 것 자체를 금지한다. 이는 LLM이 그럴듯해 보이는 숫자를 환각하는 문제를 디자인 스킬 차원에서 막으려는 시도다.

배울 점
"프롬프트 엔지니어링"을 코드처럼 다룬다

이 레포 전체를 관통하는 태도는 자연어 지침도 소프트웨어 설계처럼 구조화할 수 있다는 것이다. GATE(전제조건), Anti-pattern(회귀 테스트), 스크립트(단위 테스트), CI(통합 테스트)라는 대응 관계를 발견하면 이 레포의 진짜 학습 가치가 보인다.

용어
MCP (Model Context Protocol)
AI 에이전트가 외부 도구·서비스(여기서는 Stitch)를 표준화된 방식으로 호출하게 해주는 프로토콜. 이 레포의 모든 스킬은 "Stitch MCP 서버가 이미 연결돼 있다"는 것을 전제로 한다.
용어
AST (Abstract Syntax Tree)
소스 코드를 사람이 아니라 프로그램이 읽기 좋은 트리 구조로 파싱한 결과물. validate.js는 TSX 코드를 문자열로 훑는 대신 AST로 정확히 "이 노드가 Props 인터페이스인가"를 판별한다.

6기술 스택 · 의존성

앱이 아니라 마크다운+스크립트 — npm 의존성은 스킬 2개에만 존재

레포 루트에는 package.json이 없다. 이는 이 레포가 "빌드해서 실행하는 소프트웨어"가 아니라 "에이전트가 읽는 문서+도구 모음"이라는 정체성을 그대로 보여준다. npm 의존성의 버전 진실원(source of truth)은 개별 스킬 폴더 안의 package.json뿐이다.

스킬런타임/언어의존성
react-componentsNode ≥18 (ESM)@swc/core ^1.3.100 — AST 파싱·검증용. package-lock.json으로 버전 고정
react-nativeNode ≥18 (ESM)동일하게 @swc/core ^1.3.100 (패키지명만 react-native-components로 다름)
upload-to-stitchPython 3표준 라이브러리(urllib, base64, argparse) + 선택적 certifi(SSL 컨텍스트, 없으면 기본 컨텍스트로 폴백)
remotion / shadcn-uiBashnpm 패키지 없이 download-stitch-asset.sh, verify-setup.sh 같은 순수 셸 스크립트만 사용
extract-static-htmlTypeScript (3개 파일)런타임(웹앱)에서 실행되는 인라인 HTML 추출·후처리·스냅샷 스크립트 — 별도 package.json 없이 사용처 프로젝트의 툴체인에 의존
그 외 10개 스킬실행 의존성 없음. SKILL.md + 리소스(md/json) 텍스트로만 구성
버전 확인 시 주의
"레포 버전"이라는 게 없다

이 레포 자체에는 세맨틱 버전이 없다(플러그인 plugin.json이 각자 1.0.0을 자체 표기할 뿐). 무엇이 바뀌었는지는 커밋 로그로만 추적된다. 최신 커밋은 7b53207(2026-07-21, OpenCode 매뉴얼 설치 안내 PR merge)이다.

7설치 · 요구사항

Stitch MCP 서버가 선행 조건 — 스킬만 깔아서는 아무 일도 안 일어난다
대상 CLI설치 방법
Codexcodex plugin marketplace add google-labs-code/stitch-skills --ref main --sparse .agents/plugins --sparse plugins/stitch-design ... 로 마켓플레이스 등록 후 플러그인별 설치
Claude Codenpx plugins add google-labs-code/stitch-skills --scope project --target claude-code
Cursornpx plugins add google-labs-code/stitch-skills --scope workspace --target cursor
스킬 선택 설치(공통)npx skills add google-labs-code/stitch-skills — 단, 스킬 간 의존관계가 있어 일부만 골라 설치하면 깨질 수 있음(README 경고)
OpenCode수동 설치만 지원. plugins/*/skills/<name> 폴더를 .opencode/skills/로 직접 복사 + opencode.json에 Stitch 원격 MCP 엔드포인트 수동 등록
필수 전제조건Stitch MCP 서버 설정이 먼저 끝나 있어야 함(API 키/환경변수 포함) — 이게 없으면 스킬은 그냥 텍스트일 뿐 아무 것도 호출할 수 없다
주의
OpenCode에서 흔히 걸리는 이름 규칙 함정

이 레포의 스킬 이름 상당수가 stitch::react-components처럼 stitch:: 네임스페이스 접두어를 쓴다. 그런데 README는 "OpenCode는 name frontmatter가 소문자 kebab-case이면서 폴더명과 일치해야 로드한다"고 명시한다. 즉 OpenCode에 쓰려면 frontmatter의 name과 폴더명을 둘 다 바꿔야 하는 경우가 생긴다 — 그대로 복사만 하면 스킬이 인식되지 않는다.

8실제 사용 흐름

"프로젝트 확인 → 프롬프트 강화 → 생성 → 다운로드+감사 → 코드 변환 → 검증" 6단계

가장 대표적인 흐름은 "Stitch에서 화면을 만들고, 그것을 React 코드로 바꾸는" 경로다. 여러 스킬이 이 한 흐름 안에서 순서대로 호출된다.

사용자: "이 Stitch 프로젝트를 React 대시보드로 만들어줘" │ ▼ [1] enhance-prompt 막연한 요청을 UI/UX 키워드로 구체화(선택) │ ▼ [2] generate-design list_projects → 없으면 create_project 디자인 시스템 없으면 manage-design-system에 위임 generate_screen_from_text 로 화면 생성 │ ▼ [3] react-components Phase 1: get_screen 전체 + fetch-stitch.sh 다운로드 (GATE 강제) Phase 1: 스크린샷 육안 감사(필수) Phase 2: HTML <head>에서 tailwind 토큰 추출 → style-guide.json 덮어쓰기 Phase 3: 컴포넌트 분리 · Props 타입 · href="#" 치환 Phase 4: mockData.ts 작성 → App.tsx 연결 │ ▼ [4] scripts/validate.js (사용자 동의 후) 모든 .tsx에 대해 AST 검증 + tsc --noEmit 타입 체크 │ ▼ 결과: src/components/*.tsx, src/hooks/*, src/data/mockData.ts 완성

자율 사이트 빌드가 목적이면 stitch-loop가 이 흐름을 반복 실행으로 감싼다: baton(.stitch/next-prompt.md)을 읽고 → 위 [2]~[4]에 준하는 생성·통합을 한 페이지만큼 수행하고 → 다음 페이지를 위한 새 baton을 써서 마무리한다. Chrome DevTools MCP가 있으면 Step 4.5에서 렌더링 결과를 스크린샷 비교로 시각 검증하는 선택 단계도 들어간다.

권장
MCP 없이도 스킬 문서 자체는 읽어볼 가치가 있다

Stitch 계정이 없어도 SKILL.md 파일들은 그냥 마크다운이라 로컬에서 바로 읽힌다. "에이전트에게 복잡한 다단계 작업을 안전하게 시키려면 지침을 어떻게 구조화해야 하는가"를 배우는 참고 자료로 활용 가치가 크다.

9함정 · 오해 방지

"코드"라는 착각 · CI가 지켜주는 범위는 15개 중 2개뿐 · 비공식 프로젝트
오해 ①
"GATE"는 프로그램이 아니라 문장이다

SKILL.md의 "GATE: … 완료로 간주된다"는 문구는 에이전트에게 주는 강한 어조의 지시문일 뿐, 실제로 다음 단계 실행을 막는 코드가 아니다. 에이전트가 그 지시를 무시하거나 잘못 이해하면 그대로 어겨진다. 진짜로 강제되는 지점은 validate.js와 CI뿐이고, 그마저도 15개 스킬 중 2개(react-components, react-native)에만 존재한다.

오해 ②
Stitch MCP 없이는 이 레포가 "그냥 텍스트"다

이 저장소를 클론해서 뭔가를 "실행"해볼 수는 없다. 모든 스킬은 Stitch MCP 서버가 이미 연결되어 있다는 것을 전제로 쓰였다(list_tools로 MCP 접두어를 찾는 절차가 거의 모든 SKILL.md 첫머리에 등장). 전제 인프라 없이 읽으면 "왜 아무 것도 안 되지?"라는 함정에 빠지기 쉽다.

오해 ③
"google-labs-code" 조직 = 공식 지원 아님

README 맨 끝에 "This is not an officially supported Google product. This project is not eligible for the Google OSS VRP(취약점 신고 보상)"라고 명시돼 있다. 조직명에 google-labs-code가 들어 있다고 프로덕션급 SLA를 기대하면 안 된다.

오해 ④
모든 스킬이 같은 4단 폴더 규격을 지키지 않는다

README의 "Repository Structure" 절은 모든 스킬이 SKILL.md/scripts/resources/examples 4종을 갖는 것처럼 설명하지만, 실제로 react-vite-dashboardSKILL.mdREADME.md 두 파일뿐이고 remotion·shadcn-uiscripts는 있어도 npm package.json은 없다. 문서와 실제 구조가 스킬마다 미묘하게 다르다.

권장
스킬을 고를 때 "검증 스크립트 유무"를 기준으로 삼자

같은 "지침서"라도 react-components·react-native처럼 AST 검증 + CI가 붙은 스킬은 결과물 품질을 기계적으로 재확인할 수 있지만, 나머지는 에이전트의 성실함에 전적으로 의존한다. 중요한 작업에는 검증 스크립트가 있는 스킬을 우선하거나, 직접 검증 단계를 추가하는 편이 안전하다.

10대안 비교

범용 디자인→코드 툴 vs 에이전트 스킬 표준 vs 다른 스킬 큐레이션
대안결이 다른 점
v0(Vercel) · Lovable · Bolt디자인 생성부터 코드 배포까지 자체 폐쇄형 플랫폼이 전부 처리한다. stitch-skills는 반대로 "Stitch라는 외부 툴 + 내가 쓰는 에이전트"를 이어붙이는 접착제에 가깝다 — 플랫폼이 아니라 워크플로 지침이다.
Figma-to-code 플러그인류대부분 Figma 파일 안에서 동작하는 단일 변환기다. stitch-skills는 변환뿐 아니라 프롬프트 강화·디자인 시스템 관리·자율 루프까지 워크플로 전 구간을 스킬로 쪼갠다는 점이 다르다.
Anthropic 공식 Claude Skills / awesome-claude-skills류 목록범용 목적의 스킬을 폭넓게 모은 백화점형 큐레이션이다. stitch-skills는 Stitch라는 단일 제품 전용으로 좁고 깊게 판다 — 서로 경쟁 관계라기보다 "한 제품을 위한 깊은 스킬 세트"라는 다른 카테고리에 가깝다.
일반 프롬프트 템플릿 모음(gist, 블로그 포스트 등)대개 텍스트 하나로 끝난다. 이 레포는 GATE·Anti-pattern·AST 검증·CI까지 갖춘 게 차별점이지만, 그 장치가 15개 중 2개 스킬에만 있다는 점은 감안해야 한다.

11정리 — 누가 쓰면 좋은가

Stitch 사용자 · 에이전트 스킬 설계를 배우고 싶은 사람에게 적합

stitch-skills는 "소프트웨어"가 아니라 "AI 에이전트를 위한 운영 지침 세트"다. 이미 Google Stitch로 디자인 작업을 하면서 Claude Code·Cursor·Codex 같은 에이전트에게 후속 작업(React 변환, 디자인 시스템 관리, 자율 사이트 빌드)을 맡기고 싶은 사람에게 직접적인 실용 가치가 있다. Stitch를 쓰지 않더라도, "에이전트에게 복잡한 다단계 작업을 어떻게 안전하게 위임할 것인가"를 GATE·Anti-pattern·AST 검증·CI라는 구체적 장치로 보여주는 참고 설계 사례로서 읽을 가치가 크다.

이런 사람에게 추천

Stitch로 화면을 만들고 코드까지 뽑아야 하는 프론트엔드 개발자

디자인 토큰이 흐트러지지 않게, 내비게이션이 깨지지 않게, 타입이 빠지지 않게 체크리스트가 이미 짜여진 상태로 변환을 맡길 수 있다.

이런 사람에게 추천

자기 팀의 에이전트 스킬(SKILL.md)을 설계하려는 사람

GATE 문구, Anti-pattern 목록, "왜 이 스크립트가 필요한가"를 설명하는 docstring, CI로 검증되는 gold-standard 예제 — 이 네 가지 패턴을 그대로 참고해 자기 도메인의 스킬을 만들 수 있다.