인스퍼레이션 아트 디렉션
브리프를 세심하게 고려된 페이지로 전환합니다. 인스퍼레이션 라이브러리에서 실제 레퍼런스를 활용하여 기본값 대신 사용합니다. 실행 시 사용자 프로젝트에 세 가지 결과물이 생성됩니다:
.inspiration/references.md: 스펙 시트 (5~8개의 참조된 레퍼런스, 각 레퍼런스가 제공하는 내용).inspiration/direction.md: 디자인 방향, 모든 결정 사항이 특정 스펙으로 추적됨- 빌드 결과물과
.inspiration-out/디렉토리 내 스크린샷 및 인스펙터 보고서. 프로젝트에.gitignore가 있는 경우, 첫 번째 쓰기 작업 전에.inspiration-out/을 추가합니다.
사용 시기
- "랜딩 페이지 디자인", "이 사이트에 스타일 입히기", "히어로 섹션은 어떻게 보여야 할까", "레퍼런스를 찾아서 빌드해줘", "이 덱을 아트 디렉션 해줘"와 같은 요청
- 사용자가 빌드 전에 서면 방향을 원하거나, 출력물이 평범하거나 템플릿처럼 보이거나 "AI가 만든 것 같다"며 프리미엄, 에디토리얼, 대담하거나 독특한 느낌을 원할 때
- 단순 레퍼런스 조회(인스퍼레이션-레퍼런스 사용), 팔레트 및 타이포그래피 키트만 필요한 경우(인스퍼레이션-브랜드-키트 사용), 또는 시각적 디자인 질문이 없는 코드 변경(CSS 버그 수정, 리팩토링)에는 사용하지 않습니다.
엄격한 규칙
- 정확성. 실제로 열어본 이미지(
get_image또는image_url폴백)에서 본 내용만 설명하세요. 제목,why문자열, 패싯은 단서일 뿐 증거가 아닙니다. 직접 보지 않은 레퍼런스는 절대 인용하지 마세요. - 절대 복사 금지. 원칙을 취하되 픽셀을 복사하지 마세요. 레이아웃을 통째로 가져오지 말고, 레퍼런스의 카피, 이미지, 일러스트레이션, 로고 또는 라이선스가 있는 서체를 절대 재사용하지 마세요. 각 스펙은 무엇을 남겼는지 명시해야 합니다.
- 예산. 약 12회의 계량된 도구 호출을 계획하세요(아래 예산 참조). 오류가 발생한 호출을 포함하여 모든 계량 호출 횟수를 계산하세요. 배치:
get_image는 최대 6개의 id,get_inspiration은 리스트를 받습니다. - 보드는 옵트인. 사용자가 요청하지 않는 한
save_to_board,create_board또는add_to_board를 절대 호출하지 마세요. - 명명. 소스를 "인스퍼레이션 라이브러리" 또는 "VASA.Works의 Inspiration"이라고 부르세요. 항목을
https://inspiration.vasa.works/item/<id>및 도구가 반환하는image_url값으로 연결하세요. 항목의 출처로 타사 사이트를 절대 연결하지 마세요. 글꼴 파운드리 또는 라이선스 페이지 및 보드 URL은 괜찮습니다.
0단계: 설정 확인
search_inspiration이라는 도구가 서버 접두사(mcp__plugin_inspiration_inspiration__ (Claude Code 플러그인 설치용), mcp__inspiration__, mcp__Inspiration__, 커넥터 이름 또는 접두사 없음)로 사용 가능한지 확인하세요. 호스트가 도구를 지연(deferred) 상태로 나열하는 경우, 호스트의 도구 검색을 통해 로드하는 것은 사용 가능한 것으로 간주됩니다. 이 스킬의 도구는 접두사 없이 명명됩니다.
- 사용 가능: 계속 진행합니다.
- 누락:
references/setup.md를 읽고 사용자에게 해당 클라이언트에 대한 단일 설정 단계를 한 번만 알려줍니다. 그런 다음, 사용자가 먼저 연결하겠다고 하지 않는 한 아래 "라이브러리 없이" 모드로 계속 진행합니다. {"error": "subscription_required"}를 반환하는 호출은 서버가 연결되었지만 로그인되지 않았음을 의미합니다:references/setup.md에서 로그인 단계를 알려줍니다.
1단계: 브리프 및 주제 인벤토리
검색하기 전에 (저장소 또는 대화에서 추론할 수 없는 것만 물어보고) 다음을 기록하세요:
- 정의: 한 문장으로 된 제품 또는 주제, 그리고 방문자가 반드시 이해해야 할 한 가지.
- 대상: 누구인지, 이미 알고 있는 것, 신뢰하게 만들 요소.
- 포함해야 할 콘텐츠: 실제 헤드라인, 증거(사용자가 실제로 가지고 있는 숫자, 로고, 인용문), 사용 가능한 제품 비주얼, CTA, 법적 또는 가격 콘텐츠. 목록을 작성하세요; 이 내용이 섹션을 결정합니다.
- 제약 사항: 스택, 기존 컴포넌트, 브랜드 자산(로고, 색상, 라이선스가 있는 글꼴), 접근성 요구 사항, 마감일, 라이트/다크 선호도.
- 기존 브랜드?
.inspiration/brand-kit.md또는.inspiration/tokens.css가 존재하는 경우, 이를 기존 브랜드로 취급합니다. 기존 브랜드가 있다면, 방향은 이를 대체하지 않고 확장해야 합니다. 브랜드와 일치하는 website-styles 슬러그(온-브랜드 랭킹을 위한brand매개변수)를 기록하세요. - 페이지 구성: 페이지에 필요한 순서가 있는 섹션 (예: 히어로, 로고, 기능, 작동 방식, 가격, FAQ, CTA, 푸터). 주장을 전달하는 2~4개 섹션을 표시하세요; 해당 섹션은 별도로 검색합니다.
프롬프트에 콘텐츠가 전혀 없는 경우(증거, 가격 또는 비주얼이 없는 한 줄짜리) 질문을 멈추지 말고 브리프에서 누락된 항목을 명확하게 표시된 플레이스홀더로 나열하고 계속 진행하세요.
이 내용을 .inspiration/direction.md의 첫 번째 블록으로 작성하여 사용자가 초기에 수정할 수 있도록 하세요.
2단계: 리서치 계획
references/research.md에서 페이지 유형별 쿼리 레시피, 필터 예제 및 예산 테이블을 읽으세요. 기본 계획:
| # | 호출 | 계량 | 목적 |
|---|---|---|---|
| a | list_facets(category="website-sections") | 아니오 | subtype, style, mood, layout, typography를 위한 실제 어휘 |
| b | 1~2회 무드 검색 | 예 | 전반적인 느낌, 카테고리 전체 (no category or website-sections) |
| c | 2~3회 섹션 검색 | 예 | 핵심 섹션별 1회, category="website-sections", filters={"subtype": ["hero"]} 등 |
| d | 1회 교차 카테고리 검색 | 예 | 질감: fonts, website-styles, branding 또는 editorial-print, 브리프에 가장 필요한 것 |
| e | 선택 사항 1회 similar_items(id), 첫 get_image 배치 후 | 예 | 실제로 본 가장 강력한 후보에서 확장 및 다양화; 첫 번째 배치에 이미 범위가 있으면 건너뛰기 |
| f | 2회 get_image([...6 ids]) | 예 | 최종 후보 목록 확인 |
| g | 1회 get_inspiration([kept ids]) | 예 | 유지된 세트의 팔레트 헥스 코드, 타이포그래피 노트, 전체 설명 |
| h | 선택 사항 analyze_palette 또는 generate_palette | 예 | 팔레트 확인 또는 확장 |
이는 711회의 계량 호출(bh)이므로 약 12회의 예산은 한 번의 재시도를 위한 여유를 남깁니다. 사용자가 Pro라고 말하면 섹션 검색이나 세 번째 이미지 배치를 추가할 수 있지만, 유지되는 세트는 5~8개로 유지됩니다.
검색 위생:
- 쿼리는 보이는 것을 설명하는 구문으로 작성: "좋은 히어로"가 아닌 "과장된 세리프 헤드라인과 제품 스크린샷이 있는 어두운 히어로"
- 통제된 값은
filters에 배치 (키 간 AND, 키 내에서 any-of). 필터가 표현할 수 없는 것은 쿼리에 남겨둡니다. - 이미 본 id는
exclude_ids로 전달하여 이후 검색에서 반복되지 않도록 합니다.diversify는 켜 둡니다. - 결과가 0개이면
suggestions를 반환: 제안 중 하나로 한 번 재시도한 후 계속 진행합니다. list_facets가 오류를 반환하면references/research.md에 나열된 일반적인 값(특히subtype)을filters에 계속 사용합니다; 해당 검색이 0개의 결과를 반환하는 경우에만 필터를 제거합니다.
검색 결과에서 최대 12개 id의 후보 목록을 작성합니다. 하나의 스타일에 12개 버전이 아닌, 다양한 구조와 무드를 위해 선택합니다.
3단계: 확인 및 최종 선정
- 호출당 최대 6개 후보 id로
get_image를 호출하고, 최대 2회 호출합니다. 응답은 매니페스트(order,errors)로 시작합니다. 각 이미지를 해당 순서로 id에 매핑하고errors에 나열된 id는 제외합니다. 두 배치 사이에 선택적으로 본 가장 강력한 이미지(2단계, e행)에 대해similar_items를 실행하고 최고 선택을 두 번째 배치에 넣습니다.get_image가 실패하면,references/library-rules.md의 이미지 폴백(공개image_url, 계량 호출 없음)을 통해 후보를 확인합니다. - 각 이미지를 제대로 살펴봅니다: 구조, 타이포그래피(분류, 크기 대비, 케이스, 자간), 색상 필드와 악센트, 밀도, 이미지, 독특한 움직임 하나.
- 5~8개를 유지합니다. 모든 유지된 레퍼런스는 역할(무드, 히어로, 명명된 섹션, 타이포그래피, 팔레트 또는 질감)을 얻어야 합니다. 중복과 구체적으로 말할 수 없는 것은 제거합니다.
- 유지된 id(리스트)로
get_inspiration을 한 번 호출하여 팔레트 헥스와 타이포그래피 노트를 얻습니다. 그 텍스트를 보조 세부 정보로 취급합니다; 차이가 있을 경우 자신의 관찰이 우선합니다. 오류가 발생하면 재시도하지 마십시오: 연 이미지에서 헥스를 샘플링하고(예:magick <n>.png -resize 200x200 -colors 6 -format %c histogram:info:-(ImageMagick 필요); 없으면 본 것을 기반으로 추정하고 그렇게 명시), 시트에 헥스가 샘플링되었다고 명시하고 픽셀에서 타이포그래피를 판단합니다.
4단계: 스펙 시트
references/specimen-sheet.md의 정확한 형식을 사용하여 .inspiration/references.md를 작성합니다. 각 유지된 레퍼런스에 대해:
- id, 제목, 역할, 링크
https://inspiration.vasa.works/item/<id>, 그리고image_url. - 확인된 사실: 구체적으로 볼 수 있는 2~4개의 사실.
- 차용할 점: 빌려오는 원칙. 다른 주제에도 적용될 수 있도록 설명.
- 남겨둘 점: 의도적으로 사용하지 않는 것 (레이아웃, 카피, 이미지, 브랜드 마크, 서체, 이 브리프에 부적합한 모든 것).
- 적용 방법: 이 페이지에서 원칙이 구체적으로 어떻게 구현되는지.
세트의 공통점과 해결해야 할 하나의 긴장감을 한 줄로 설명하며 시트를 마무리합니다.
5단계: 방향
스펙에서 방향을 도출하세요. 미리 정해진 스타일을 적용하지 마세요. 다음 제목으로 .inspiration/direction.md를 작성하고(브리프 블록 뒤), 각 결정 사항 뒤에 대괄호 안에 스펙 id를 인용하세요:
- 컨셉 라인. 디자이너가 논쟁할 수 있는 한 문장, 예: "대시보드가 아닌 필드 가이드".
- 안티-목표. 이 페이지가 절대 닮지 말아야 할 3~5가지 (당신이 달리 만들었을 일반적인 기본값 포함: 중앙 정렬 히어로, 보라색 그라데이션, 세 개의 아이콘 카드 등, 브리프에 도움이 되지 않는 경우).
- 타이포그래피 시스템. 패밀리와 역할(디스플레이, 본문, UI, 선택적 모노), 1440px 및 390px 너비에서의 px 단위 크기 척도, 행간, 자간, 케이스. 프로젝트가 합법적으로 로드할 수 있는 글꼴 사용(오픈 라이선스 패밀리 또는 사용자의 라이선스 글꼴). 라이브러리 글꼴 항목은 분류와 페어링을 알려줍니다; 라이선스를 부여하지는 않습니다. 예산이 허락하면 글꼴 id에 대한
suggest_pairing이 도움이 됩니다. - 팔레트. 역할(배경, 표면, 텍스트, 흐린 텍스트, 악센트, 상태 색상)이 있는 헥스 코드와 각 텍스트 쌍의 대비. 선택적으로
analyze_palette(hexes)또는generate_palette(color)를 실행하여 램프를 생성합니다. - 레이아웃 및 그리드. 컬럼 수, 최대 콘텐츠 너비, 거터, 섹션 간격 리듬, 정렬 규칙, 중단점.
- 섹션. 순서가 있는 페이지, 각 섹션의 역할, 인벤토리에서 가져오는 콘텐츠, 참조하는 스펙.
- 이미지 및 그래픽. 어떤 비주얼이 존재하는지, 무엇을 만들 것인지(다이어그램, 크롭, 일러스트레이션 스타일), 피해야 할 것.
- 모션. 이해를 돕는 위치, 지속 시간과 이징, 축소 모션 대체. 기본값은 적게.
- 시그니처 디테일. 스펙에서 비롯되어 재해석된, 기억에 남고 구축 가능한 하나의 움직임. 복사가 아닌 재해석.
짧은 메시지로 사용자에게 컨셉 라인, 안티-목표 및 시그니처 디테일을 보여줍니다. 사용자가 반대하거나 먼저 승인을 요청하지 않는 한 계속 진행합니다.
6단계: 빌드
- 프로젝트의 스택과 컴포넌트를 사용합니다. 프로젝트가 없으면 인라인 CSS(및 최소한의 JS)로 정적
index.html하나를 빌드합니다. - 토큰부터 시작: 방향의 타이포그래피 척도, 간격, 색상 및 반경에 대한 CSS 사용자 정의 속성. 그런 다음 페이지 순서로 섹션.
- 인벤토리의 실제 콘텐츠. 콘텐츠가 없는 경우 명확하게 표시된 플레이스홀더를 사용합니다. 고객 로고, 사용 후기, 지표 또는 상을 실제로 있는 것처럼 절대 만들어내지 마세요.
- 시맨틱 HTML: 하나의
h1, 순서가 있는 제목, 모든 의미 있는 이미지에alt, 보이는 포커스 상태, 입력에 레이블. - 모바일과 데스크톱을 함께 빌드합니다; 마지막이 아니라 진행하면서 390px 너비를 확인합니다.
7단계: 확인 및 수정 루프
references/critique.md에서 평가 기준을 읽으세요. 그런 다음 최대 3라운드 동안:
- 렌더링. 이 스킬의 폴더(SKILL.md가 있는 폴더)에서 인스펙터를 실행합니다:
node <skill-folder>/scripts/inspect.mjs <url-or-html-path> --out .inspiration-out/round-<n>이 명령은page-1440.png,page-390.png및report.json(사용된 글꼴, 텍스트 및 배경색, 제목 크기, 행 길이, 오버플로, 누락된 alt, 저대비 샘플)을 작성합니다. Playwright가 없으면 한 줄 수정 사항(npx -y -p [email protected] node <skill-folder>/scripts/inspect.mjs ...)을 출력합니다. 호스트에 자체 브라우저 또는 스크린샷 도구가 있어도 괜찮습니다. - 확인. 스크린샷을 열고 보고서를 읽습니다. 각 섹션을 참조하는 스펙과 비교하고 전체 페이지를 컨셉 라인 및 안티-목표와 비교합니다.
- 평가. 각 평가 기준 항목을 0~2점으로 평가하고 가장 눈에 띄는 순서대로 가장 큰 문제 3가지를 나열합니다. 둘 다
.inspiration/direction.md의 "Round " 아래에 작성합니다. - 수정. 해당 3가지 문제를 수정한 후 다시 렌더링합니다.
모든 평가 기준 항목이 2점, 3라운드 후, 또는 라운드에서 실질적인 변경 사항이 없을 때 중지합니다. 브라우저를 전혀 실행할 수 없는 경우 코드를 평가 기준과 비교하여 검토하고, 사용자가 제공할 수 있으면 스크린샷을 요청하며 시각적 확인이 수행되지 않았음을 명확히 말합니다.
8단계: 인계
사용자에게 간략하게 알립니다:
- 빌드된 내용과 위치, 컨셉 라인.
- 사용된 레퍼런스: id, 제목, 링크
https://inspiration.vasa.works/item/<id>, 각각이 기여한 한 가지. - 마지막 인스펙터 라운드에서 여전히 지적하는 사항 (있는 경우).
- 실행에 사용된 계량 호출의 대략적인 횟수와 건너뛰거나 저하된 단계(서버 오류,
image_url폴백, 할당량). - 제안: "이 레퍼런스들을 Inspiration 보드에 저장할까요?" 라고 묻습니다. '예'인 경우에만
save_to_board(title, ids=[...])를 호출하고 반환된 보드 URL을 공유합니다.
할당량 및 오류
도구가 오류, quota_exhausted 또는 capped를 반환하는 경우 처음으로 references/library-rules.md를 읽으세요. 간단히: quota_exhausted는 모든 계량 호출을 중지하고(https://inspiration.vasa.works/pricing 링크, 가진 것으로 마무리), capped는 더 이상 페이지가 없음을 의미하며, subscription_required는 로그인을 의미하고(0단계), 두 개의 다른 도구에서 동일한 서버 오류는 저하된 모드를 의미합니다. 오류가 발생한 호출도 예산에 포함됩니다.
라이브러리 없이
MCP가 연결되지 않았을 때(설정 단계를 한 번 제공한 후) 사용자가 먼저 연결을 요청하지 않은 경우:
- 한 번 명확히 말합니다: "Inspiration 라이브러리 없이 계속 진행하므로, 이 방향은 레퍼런스에 기반하지 않습니다."
- 2~4단계를 건너뜁니다. 레퍼런스 id, 제목, 링크 또는 설명을 만들지 말고, 특정 레퍼런스에서 비롯된 외관이라고 주장하지 마세요.
- 브리프만으로
.inspiration/direction.md를 작성하고 상단에 "사용된 레퍼런스 없음"이라고 표시합니다. 안티-목표와 시그니처 디테일을 유지합니다.
(번역됨 - Huseyin Gayiran의 inspiration-skills)