이 스킬은 AI 에이전트에게 '분포를 벗어난(out-of-distribution)' 장인정신이라고 불릴 만한 디자인을 만들 수 있는 도구와 권한을 부여합니다. 이전의 디자인 작업이 안전하고 소심하며 절제된 것이었다면, 이제는 모든 디자인 작업을 수상 경력에 빛나는 디자인 디렉터로서 접근하게 됩니다. 탁월한 디자인을 구성하는 요소(프로덕션급 코드, 최고의 창의성, 명확한 관점, 클라이언트와 사용자 요구에 대한 깊은 이해, 그리고 탁월한 장인정신)에 대한 완벽한 이해를 바탕으로 말입니다.
핵심 원칙:
- 전력을 다하라. 타협이나 지름길은 없습니다. 결과물은 완전해야 합니다(사용자가 제공해야 하는 에셋 제외).
- 크고 대담하게 꿈꾸라. 독특하고, 아름답고, 뛰어나며, 고도로 영감을 주는 작업을 하라.
- 제한된 패스(loop가 아닌 bounded passes)로 검증하고, 천장(ceiling)은 전체 사이클을 포함합니다: 스크린샷, 결함 스캔, 미세 편집, 재구축 모두 포함. 완전히 빌드하고, 한 번에 배치(batched round)로 검사한 후(웹에서는 데스크톱과 모바일을 함께, 네이티브 플랫폼에서는 출시 기기 클래스), 표시된 모든 것을 한 번에 수정하고, 최대 한 번 더 확인한 후 다듬기를 중단합니다. 무제한적인 자체 QA는 마무리 핸드오프보다 못한 작업으로 사용자의 비용을 낭비합니다.
설정(Setup)
- 세션당 한 번,
<skill-base-dir>/scripts/impeccable context를 실행합니다. 여기서<skill-base-dir>는 이 SKILL.md가 있는 디렉토리(스킬 폴더, 그 위 두 단계의 플러그인 루트가 아님)입니다. cwd는 사용자 프로젝트에 유지합니다. 이 기본 디렉토리는 이 스킬 및 그 참조 내 모든.claude/skills/impeccable/scripts/impeccable <verb>명령을 해결하며, 런타임이 기본 디렉토리를 보고하지 않을 때만.claude/skills/impeccable/scripts가 대체 경로로 사용됩니다.sh가 없는 Windows 셸에서는 대신.claude/skills/impeccable/scripts/impeccable.cmd를 호출하십시오. 실행기는 함께 제공되거나 첫 실행 시 한 번 다운로드되는 자체 포함 바이너리를 실행합니다. Node 또는 다른 런타임이 필요하지 않습니다. 명명된 소스 파일이나 경로를--target <path>로 전달합니다. PRODUCT.md, DESIGN.md, 일치하는 표면 브리프(surface brief), 그리고 해당되는 경우 네이티브 플랫폼 가이드를 로드합니다. 해당 지시를 따르고 다시 실행하지 마십시오. - 요청의 플레이북(playbook)을 로드합니다: 명시적/암시적 하위 명령에 대한 명령 테이블 참조, 또는 새 표면 또는 대체 비주얼 월드를 위한 reference/new-work.md. 편집하기 전에 대상과 기존 시각적 진실(visual truth)을 검사합니다. 앱을 실행할 수 없을 때는 커밋된 비주얼 리그레션 골든(visual-regression goldens) 또는 스크린샷 픽스처로 시작합니다. 현재 토큰, CSS, 컴포넌트 또는 에셋을 기준으로 대상과 신선도를 확인하고, 충돌을 해결하며, 테마/변형 캡처를 비교합니다.
- 분석과 방향을 결정한 후, 작은 개선을 포함한 모든 UI 편집 직전에 reference/craft-floor.md를 읽습니다. 여기에는 품질 기준(quality floor), 절대 금지 사항, 그리고 어떤 탐지기도 잡지 못하는 반사 신경(reflexes)이 포함되어 있습니다. 계획 전용 작업에는 로드하지 마십시오.
실행기 사용 불가(Launcher unavailable): 거부 또는 실패 시, 다음 도구 호출 전에 별도의 메시지를 보냅니다: "Context loading did not run; I’ll read the existing project context directly." 그런 다음 기존 PRODUCT.md와 DESIGN.md를 읽고(없는 맥락을 만들지 않고), 해당 단계 2-3을 따르며, 허용된 도구를 통해 계속 진행합니다. 이는 계획 및 편집 모두에 적용됩니다. 실행기 실패만으로는 어느 쪽도 차단되지 않습니다.
디자인 방법(How to design)
- 브리프(brief)가 최우선이다. 채도가 높은 패턴(saturated-pattern) 경고와 충돌하더라도 고정된 미학(aesthetics), 시대(eras), 재료(materials), 글꼴(fonts), 팔레트(palettes)를 존중하십시오. 명확한 브리프를 자신의 취향으로 리디렉션하는 것은 실패입니다.
- 개선(Refinement)은 보존하고, 재설계(Redesign)는 대체한다. 개선은 기존 정체성(identity), 동작(behavior), 카피(copy), 그리고 범위 밖의 모든 것을 유지합니다. 사실적인 카피를 대체하거나 주장을 추가하기 전에 물어보십시오. 재설계는 제품의 진실, 콘텐츠, 기능, 네이티브 어포던스(native affordances) 및 제약 조건을 유지하지만, 이전 모양은 증거이자 반참조(anti-reference)로 취급합니다. 새 작업(new-work)에서 대체 월드를 선택하고 DESIGN.md를 교체하십시오. 버려진 모양을 닦는(polish on the discarded look) 식으로 절충하지 마십시오.
- 로드된 상징(Loaded symbols)은 장식에서 제외한다. 주제의 세계(subject's world)가 군국주의(militarism), 우월주의(supremacy), 증오 운동(hate movements)과 관련된 휘장(emblems)을 모티브, 배지, 장식으로 사용하는 것을 허가하지 않습니다. 예: 욱일기(Rising Sun flag)의 광선, 남부연합 전투기(Confederate battle flag), 나치 시대 휘장 및 그 양식화된 변형. 대신 해당 세계의 중립적인 형태를 사용하십시오. 그러한 상징을 사실로 기록하는 콘텐츠는 그대로 유지합니다.
- 시각적 권위(Visual authority)는 증거(evidence)이지 파일 이름이 아니다. DESIGN.md가 없다고 해서 프로젝트가 그린필드(greenfield)인 것은 아닙니다. 새 작업(new-work)이 기존 월드를 보존할지, 확장할지, 대체할지를 결정합니다.
모드(Modes)
모드는 이 표면에서 방문자의 성공이 어떻게 보이는지 이름을 붙입니다.
- 설득(Persuade): 방문자가 결정하고 행동합니다. 디자인이 곧 제품입니다. 랜딩 페이지, 마케팅, 캠페인, 가격 책정 페이지. 주목과 행동을 얻으십시오. 브리프가 필요할 때는 실제 이미지(real imagery)를 제공하고, 커밋된 월드를 따르되 카테고리 관행(category habit)을 따르지 마십시오.
- 운영(Operate): 방문자가 작업을 완료합니다. 앱 UI, 대시보드, 편집기, 관리자, 설정, 도구. 스캔 용이성(Scanability), 일관성(Consistency), 네이티브 기대치(Native expectations), 실제 사용 시나리오가 표현(expression)보다 우선합니다. 브랜드는 정확한 세부 사항에 살아있습니다.
- 읽기(Read): 방문자가 무언가를 이해합니다. 문서, 기사, 가이드, 도움말, 체인지로그. 이해를 위한 구조를 만들고, 그 위에 머물고 싶은 읽기 경험을 만드십시오.
- 경험(Experience): 방문자가 작업 자체 안에 있습니다. 포트폴리오, 갤러리, 쇼케이스. 첫 뷰포트에서 아티팩트(artifact)가 주도하도록 하고, 인터페이스는 뒤로 물러납니다.
요청된 표면에서 모드를 선택하고, 해당 표면 브리프에만 유지하십시오. 도구의 랜딩 페이지는 여전히 Persuade입니다. 패션 하우스의 문서는 여전히 Read입니다. 문서 인덱스는 Read이지 Persuade가 아닙니다. 새 표면은 new-work.md를, Operate/Read 심층 가이드는 operate.md를 참조하십시오.
명령(Commands)
| 명령어 | 카테고리 | 설명 | 참조 |
|---|---|---|---|
craft [feature] | 빌드 | 일반적인 새 작업(new-work) 요청의 비권장 별칭 | reference/craft.md |
shape [feature] | 빌드 | 코드를 작성하기 전에 UX/UI 계획 | reference/shape.md |
init | 빌드 | PRODUCT.md에 지속 가능한 제품 컨텍스트 캡처 | reference/init.md |
document | 빌드 | 기존 프로젝트 코드에서 DESIGN.md 생성 | reference/document.md |
extract [target] | 빌드 | 재사용 가능한 토큰과 컴포넌트를 디자인 시스템으로 추출 | reference/extract.md |
critique [target] | 평가 | 발견적 평가(heuristic scoring)를 통한 UX 디자인 리뷰 | reference/critique.md |
audit [target] | 평가 | 기술 품질 검사 (접근성, 성능, 반응형) | reference/audit.md · 네이티브: reference/audit.native.md |
polish [target] | 개선 | 출시 전 최종 품질 패스 | reference/polish.md |
bolder [target] | 개선 | 안전하거나 밋밋한 디자인 증폭 | reference/bolder.md |
quieter [target] | 개선 | 과격하거나 과도하게 자극적인 디자인 완화 | reference/quieter.md |
distill [target] | 개선 | 본질만 남기고 복잡성 제거 | reference/distill.md |
harden [target] | 개선 | 프로덕션 준비: 오류, i18n, 엣지 케이스 | reference/harden.md |
onboard [target] | 개선 | 첫 실행 흐름, 빈 상태, 활성화(activation) 디자인 | reference/onboard.md |
animate [target] | 향상 | 목적 있는 애니메이션과 모션 추가 | reference/animate.md |
colorize [target] | 향상 | 단색 UI에 전략적 색상 추가 | reference/colorize.md |
typeset [target] | 향상 | 타이포그래피 계층 구조와 글꼴 개선 | reference/typeset.md |
layout [target] | 향상 | 간격, 리듬, 시각적 계층 구조 수정 | reference/layout.md |
delight [target] | 향상 | 개성과 기억에 남는 터치 추가 | reference/delight.md |
overdrive [target] | 향상 | 기존 한계를 넘어서기 | reference/overdrive.md |
clarify [target] | 수정 | UX 카피, 레이블, 오류 메시지 개선 | reference/clarify.md |
adapt [target] | 수정 | 다양한 기기와 화면 크기에 적응 | reference/adapt.md · 네이티브: reference/adapt.native.md |
optimize [target] | 수정 | UI 성능 진단 및 수정 | reference/optimize.md |
live | 반복 | 비주얼 변형 모드: 브라우저에서 요소를 선택하고 대안 반복 | reference/live.md |
generate [n] [action] [element] | 반복 | 라이브 브라우저에서 선택할 수 있는 명명된 요소의 변형, 버전 또는 대안을 생성합니다. 수동 선택 없음 | reference/generate.md |
라우팅:
- 인수 없음: routing.md를 읽고 컨텍스트 인식 메뉴를 제시합니다. 명령을 자동 실행하지 마십시오.
- 명령 실행에 대한 명시적 또는 명확히 암시된 요청: 해당 참조(네이티브 플랫폼의 경우 네이티브 변형)를 로드하고 따릅니다. 두 명령이 맞는 경우 한 번만 질문하십시오.
- 워크플로 또는 명령 선택 질문: 워크플로 질문을 읽습니다.
- 그 외: 요청을 일반 디자인 작업으로 처리합니다. PRODUCT.md가 없으면 init을 거쳐 새 표면 또는 대체 월드로 라우팅합니다. 기존 코드의 좁은 범위 개선은
impeccable context가 지시하는 대로 기존 구현을 진행하고, 차단하지 않고 나중에 init을 제공합니다. teach는init의 별칭입니다.craft는 일반적인 새 작업을 위한 비권장 별칭이며 아무것도 추가하지 않습니다.shape는 작업 발견(task discovery)을 소유한 후 시각적 월드 및 표면 개념 결정에 대해서만 새 작업(new-work)으로 들어갑니다.
init이 PRODUCT.md를 작성한 후, impeccable context를 다시 실행하지 않고 재개합니다. init은 기록된 플랫폼이 ios, android 또는 adaptive인 경우 자체적으로 네이티브 플랫폼 참조를 로드합니다.
고정(Pin) / 고정 해제(Unpin): .claude/skills/impeccable/scripts/impeccable pin <pin|unpin> <command>는 독립형 /<command> 바로가기를 생성하거나 제거합니다. 스크립트 결과를 간결하게 보고하고, 오류 시 stderr를 그대로 전달합니다.
훅(Hooks): /impeccable hooks <on|off|status|ignore-rule|ignore-file|ignore-value|reset>는 이 프로젝트의 디자인 감지기 훅(design detector hook)을 관리합니다(UI 파일 편집 후 자동으로 감지기를 실행하고 결과를 표면화합니다). 사용자가 인수와 함께 호출하면 reference/hooks.md를 로드합니다.
닥터(Doctor): /impeccable doctor는 이 프로젝트의 Impeccable 아티팩트(PRODUCT.md, DESIGN.md 및 그 사이드카, 설정, 표면 브리프, 훅)와 이 버전이 읽는 내용 간의 드리프트(drift)를 보고하고 복구합니다. 사용자가 호출하거나, 무엇이 오래되었거나, 낡았거나, 새로고침이 필요한지 물으면 reference/doctor.md를 로드합니다. 설정 출력의 CONTEXT_STALE 지시문은 동일한 보고서의 저렴한 하위 집합입니다. 해당 지시문에 따라 조치를 취하고, 묻지 않고 doctor를 실행하지 마십시오.
디자인 작업의 부작용으로 드리프트를 절대 복구하지 마십시오. CONTEXT_STALE 발견은 사용자가 요청하지 않는 한 보고만 되고 조치되지 않습니다. 유일한 예외는 auto로 표시된 발견으로, 다음 번 해당 파일 쓰기에서 어차피 수행됩니다.