TRENDSHIFT WEEKLY #23 딥다이브 · 2026-06-04 분석

Impeccable 딥다이브
— AI 코딩 에이전트의 디자인 감각을 끌어올리는 "디자인 언어" 스킬

AI가 만든 티가 나는 UI(이른바 AI slop)를 잡아내고 고치는, 스킬 1개 · 명령 23개 · 결정론적 안티패턴 규칙 44개 (AI slop 26개 + 일반 품질 18개)의 디자인 스킬 모음. Cursor·Claude Code·Gemini CLI 등 11개 이상의 AI 하니스에 한 번에 설치된다. pbakaus/impeccable · ⭐28k · Apache 2.0 · JavaScript 88.7%
목차
  1. 프로젝트 한줄 요약
  2. 왜 주목받는가
  3. 기술 스택 전체 지도
  4. 아키텍처 심화 분석
  5. 디렉토리 구조 해부
  6. 학습 포인트 (기술별)
  7. 시스템 요구사항 / 설치
  8. 직접 해볼 수 있는 실습 과제
  9. 관련 기술 심화 학습 로드맵
  10. 핵심 키워드 사전
  11. 참고 링크

1프로젝트 한줄 요약

Impeccable이 정확히 무엇을 하는 물건인가

Impeccable(임페커블, "흠잡을 데 없는")은 Claude Code·Cursor·Codex 같은 AI 코딩 하니스(harness)에 설치하는 프런트엔드 디자인 전용 스킬 패키지입니다. AI에게 "디자인을 잘하는 법"을 가르치는 지침서 + 검사기라고 보면 됩니다.

핵심 구성은 세 덩어리입니다. ① 스킬 1개(SKILL.src.md에 Color·Typography·Layout·Motion·Interaction 섹션 인라인 통합 + interaction-design.md 별도 파일), ② 명령 23개(polish·audit·critique·distill 등 AI와 공유하는 디자인 어휘), ③ 결정론적 안티패턴 규칙 44개 (AI slop 26개 + 일반 품질 18개). CLI와 브라우저 확장은 이 규칙들을 LLM 없이, API 키 없이 돌립니다.

만든 사람은 Paul Bakaus — jQuery UI·Famo.us 등으로 알려진 웹 인터랙션/성능 분야 베테랑 개발자입니다. 2026년 6월 기준 GitHub 스타 28k, 포크 1.5k. npm 패키지 impeccable v2.3.2, 스킬 릴리스 v3.5.0.

한 컷 비유

"AI 디자이너 옆에 붙여 두는 깐깐한 아트 디렉터 + 맞춤법 검사기"

AI에게 "랜딩 페이지 만들어줘"라고 하면, 학습 데이터에 가장 많았던 모양 — Inter 폰트, 보라→파랑 그라데이션, 카드 속 카드, 제목마다 둥근 사각 아이콘 타일 — 으로 수렴합니다. 누가 봐도 "AI가 만들었네" 싶은 결과물이죠.

Impeccable은 두 가지로 이를 막습니다. 아트 디렉터 역할(스킬 + 명령)은 작업 전에 "이런 식으로 디자인하라"고 가이드하고, 맞춤법 검사기 역할(CLI 디텍터)은 작업 후 "여기 AI 티 나는 패턴이 있다"고 코드를 스캔해 잡아냅니다.

2왜 주목받는가

트렌딩 이유와 경쟁(원조) 대비 차별점

2025~2026년은 "AI에게 코딩을 시키는" 시대가 본격화된 시기입니다. 그런데 기능은 그럴듯해도 디자인은 죄다 비슷비슷한 SaaS 템플릿으로 나오는 게 공통 불만이었습니다. Impeccable은 이 "AI slop" 문제를 정면으로 겨냥해 입소문을 탔습니다.

핵심 용어
AI slop (에이아이 슬롭)
AI가 생성한 티가 역력한 결과물. UI에서는 Inter 폰트, 보라-파랑 그라데이션, cream/beige 배경, 색 배경 위 회색 글씨, 카드 속 카드, 제목 위 둥근 사각 아이콘 타일, 그라데이션 텍스트 같은 "정해진 패" 들을 말합니다. "이거 보고 누구나 'AI가 만들었다'고 확신할 수 있으면 실패"가 Impeccable의 합격 기준입니다.
원조의 한계
Anthropic의 frontend-design 스킬은 "출발점"일 뿐이었다

Impeccable은 Anthropic이 공개한 최초의 디자인 스킬 frontend-design에서 출발했습니다(README.md 'Why Impeccable?' 섹션에 명시). 하지만 원조는 가이드 한 장 수준이라, 같은 모델·같은 데이터로 학습된 AI들이 결국 똑같은 몇 가지 "tell(티)"로 수렴하는 걸 막지 못했습니다.

Impeccable의 차별점
가이드 + 어휘 + 자동 검출을 하나로 묶었다

① SKILL.src.md에 통합된 Color·Typography·Layout·Motion·Interaction 디자인 지식을 깊게 주입하고, ② 23개 명령으로 사람과 AI가 같은 디자인 어휘를 쓰게 하며, ③ 44개 결정론적 규칙(slop 26 + quality 18)으로 결과물을 코드 레벨에서 검사합니다. 게다가 11개 이상의 AI 하니스에 한 번에 설치됩니다.

경쟁/유사 도구 비교

비교 항목Impeccablefrontend-design (원조)일반 ESLint/Stylelint
목적AI 디자인 품질 + 안티패턴AI 디자인 가이드코드 문법/스타일
디자인 지식7개 도메인 레퍼런스단일 가이드없음
공유 어휘(명령)23개없음없음
자동 검출44개 결정론적 규칙 (slop 26 + quality 18)없음문법 위주
LLM/API 키디텍터는 불필요해당 없음불필요
설치 대상11+ 하니스Claude 위주빌드 도구
비유로 정리

ESLint가 "코드 문법이 틀렸다"를 잡는다면, Impeccable은 "디자인이 촌스럽다 / AI 티가 난다"를 잡습니다. 둘 다 규칙 기반 정적 검사지만, 검사 대상이 로직이 아니라 시각적 취향과 UX라는 점이 다릅니다.

3기술 스택 전체 지도

스킬(콘텐츠) / 빌드 / CLI 디텍터 / 웹사이트 — 4개 층

Impeccable은 코드 프로젝트라기보다 "콘텐츠(스킬) + 그걸 배포·검증하는 도구 체인"에 가깝습니다. 그래서 스택도 네 층으로 나뉩니다.

① 스킬 콘텐츠 (Markdown)

구성역할
SKILL.src.md스킬의 본체이자 라우터. YAML frontmatter(name·description·allowed-tools) + 디자인 규칙 + 명령 라우팅 표. Color·Typography·Layout·Motion·Interaction 섹션 인라인 통합
reference/ (도메인 파일)interaction-design.md (별도 파일로 유일하게 존재). 나머지 도메인(typography·color·spatial·motion·responsive·ux-writing)은 SKILL.src.md에 인라인 통합됨
reference/ (명령 23종)craft·shape·audit·polish 등 각 명령의 실행 절차서. 호출 시에만 읽힘(lazy load)
reference/brand.md · product.md"디자인이 곧 제품" vs "디자인이 제품을 보조" 두 레지스터(register)
Agent Skills 스펙agentskills.io 표준 frontmatter 준수 + 하니스별 확장 필드

② 빌드 파이프라인 (Node / Bun)

기술역할
scripts/build.js단일 소스(SKILL.src.md)를 11개 하니스 포맷으로 컴파일하는 트랜스포머
Bun빌드/테스트 러너 (bun run build, bun test)
archiver하니스별 + 통합(universal) ZIP 번들 생성
BiomeJS 린팅/포매팅 (biome.json)
placeholder 치환{{model}}·{{scripts_path}} 등을 하니스별 값으로 컴파일 타임 치환

③ CLI 안티패턴 디텍터 (Node, 의존성 최소)

기술역할
htmlparser2 + domutilsHTML을 DOM 트리로 파싱 (정적 분석)
css-tree + css-selectCSS 파싱 + 셀렉터 매칭으로 스타일 규칙 검사
marked마크다운 처리
puppeteer (optional)URL 스캔 시에만 — 실제 브라우저로 렌더해 레이아웃/대비 검사
registry/antipatterns.mjs모든 규칙의 단일 진실원(배열). 빌드가 여기서 규칙 수를 자동 집계

④ 웹사이트 + 배포 (impeccable.style)

기술역할
Astro 6정적 사이트 생성 (콘텐츠 컬렉션 기반 사례 페이지·문서)
Cloudflare Pages + Functions호스팅 + 다운로드 API(functions/api/download)
WranglerCloudflare 배포 CLI
motion / @paper-design/shaders사이트 모션·셰이더 데모
kinpaku 테마다크 래커 + 골드 악센트 — 빌드가 기본값 회귀를 막는 가드까지 둠

4아키텍처 심화 분석

시스템 구조도 2개 + 핵심 설계 패턴 5가지

구조도 A — "단일 소스 → 11개 하니스" 빌드 흐름

skill/SKILL.src.md + reference/*.md (단일 진실원: 사람이 편집) │ ▼ ┌──────────────────────────────────────────┐ │ scripts/build.js (트랜스포머) │ │ - frontmatter 검증 (description ≤1024) │ │ - placeholder 치환 {{model}} {{...}} │ │ - 하니스별 디렉토리/필드 규칙 적용 │ │ - 명령 수 / 규칙 수 자동 집계·동기화 │ └───────────────────────┬───────────────────┘ │ ┌───────┼───────────────┬───────────┐ ▼ ▼ ▼ ▼ .claude/ .cursor/ .gemini/ .agents/ ... (11+ 하니스) skills/ skills/ skills/ skills/ │ ▼ dist/{provider}.zip + universal.zip → impeccable.style 다운로드

핵심은 "한 번 쓰고 어디든 컴파일"입니다. 디자이너/메인테이너는 SKILL.src.md 하나만 고치고, 빌드가 Claude Code·Cursor·Gemini CLI·Codex·Copilot·Kiro·OpenCode·Pi·Qoder·Trae·Rovo Dev 각각의 디렉토리 규칙과 frontmatter 지원 범위에 맞춰 결과물을 찍어냅니다(자세한 호환 표는 HARNESSES.md).

구조도 B — 안티패턴 디텍터 엔진

입력: 디렉토리 / index.html / https://example.com │ ▼ ┌──────────────────────────────────────────┐ │ 엔진 선택 (입력 종류에 따라) │ │ ├─ regex : 소스 텍스트 빠른 스캔 │ │ ├─ static-html : htmlparser2 → DOM 검사 │ │ ├─ browser : puppeteer 실제 렌더 │ │ └─ visual : 대비(contrast) 측정 │ └───────────────────────┬───────────────────┘ │ 각 룰을 element/page/layout 단위로 적용 ▼ registry/antipatterns.mjs (규칙 단일 배열) { id, category:slop|quality, severity?, gated?, skillSection, skillGuideline } │ ▼ findings → CLI 표 출력 또는 --json (CI 연동)

규칙은 category로 "slop(AI 티)"와 "quality(일반 품질·접근성)"를 구분하고, 일부는 gated(gpt/gemini)로 묶여 해당 모델 결과를 검사할 때만 켜집니다. 각 규칙은 skillSection·skillGuideline 필드로 스킬이 가르치는 지침과 1:1로 연결됩니다 — "검출"과 "교육"이 같은 출처를 공유하는 구조입니다.

핵심 설계 패턴 5가지

패턴 1 · SINGLE SOURCE, MULTI TARGET

단일 소스 → 다중 타깃 컴파일

스킬을 하니스마다 따로 관리하지 않고, 소스 1벌을 빌드가 11개 포맷으로 변환합니다. 새 하니스가 등장해도 트랜스포머에 규칙 한 줄만 추가하면 됩니다. 프런트엔드의 "디자인 토큰 → 플랫폼별 산출물" 발상과 같습니다.

패턴 2 · PROGRESSIVE DISCLOSURE

점진적 공개 (lazy 레퍼런스 로딩)

SKILL.md는 얇은 라우터로 두고, 명령별·도메인별 상세는 reference/<name>.md로 분리해 필요할 때만 읽습니다. 컨텍스트 토큰을 아끼면서도 깊은 지식을 제공하는, Agent Skills의 정석 패턴입니다.

패턴 3 · DETERMINISTIC + LLM HYBRID

결정론 + LLM 2단계 검사

측정 가능한 건 결정론적 코드 규칙 44개(slop 26 + quality 18)로 API 키 없이 빠르게 잡습니다. 객관적 규칙 기반 검사를 CI에서도 돌릴 수 있게 만든 설계입니다.

패턴 4 · REGISTER SWITCHING

레지스터(brand vs product) 전환

같은 규칙도 맥락에 따라 다르게 적용해야 합니다. 랜딩·캠페인처럼 "디자인이 곧 제품"이면 brand.md, 대시보드·툴처럼 "디자인이 제품을 보조"하면 product.md를 로드해 기본값을 조정합니다.

패턴 5 · SELF-DOGFOODING

자기 규칙으로 자기를 검사 (도그푸딩)

빌드가 자기 웹사이트·README를 validateProse(em 대시·마케팅 buzzword 금지)와 validateTheme(kinpaku 기본값 가드)로 스캔합니다. 규칙 위반이 있으면 빌드를 실패시킵니다. "디자인 잘하자"고 말하는 도구가 스스로 그 규칙을 지키도록 강제하는 셈입니다.

5디렉토리 구조 해부

주요 폴더·파일의 역할
impeccable/ ├── skill/ ← 스킬 콘텐츠(단일 소스) │ ├── SKILL.src.md ← 본체 + 명령 라우터 │ ├── reference/ ← 도메인 7 + 명령 23 + brand/product │ └── agents/ ← asset-producer 등 서브에이전트 원본 ├── cli/ ← 안티패턴 디텍터 │ ├── bin/cli.js ← `npx impeccable` 진입점 │ └── engine/ │ ├── detect-antipatterns.mjs ← 공개 API 파사드 │ ├── engines/ ← regex / static-html / browser │ ├── rules/checks.mjs ← border·motion·typography 등 검사 │ ├── registry/antipatterns.mjs ← 규칙 단일 배열 │ └── shared/ ← color·page·constants 유틸 ├── scripts/ ← build.js, lib/transformers/, release.mjs ├── site/ ← Astro 웹사이트(impeccable.style) │ └── styles/tokens.css ← kinpaku 테마 토큰 ├── extension/ ← 브라우저 확장(디텍터 내장) ├── functions/api/download/ ← Cloudflare Pages Functions ├── plugin/ ← Claude Code 플러그인 슬림 서브트리 ├── tests/ ← 방대한 테스트(빌드/디텍터/live E2E) ├── .claude/ .cursor/ .gemini/ .agents/ ... ← 빌드가 생성한 하니스별 스킬 ├── docs/ ← 내부 문서 (HARNESSES.md · DEVELOP.md · STYLE.md) ├── AGENTS.md / CLAUDE.md / DESIGN.md / PRODUCT.md / README.md ← 루트 문서 └── package.json astro.config.mjs biome.json wrangler.toml
눈여겨볼 점
루트의 점(.)으로 시작하는 폴더들은 "생성물"
.claude/ .cursor/ .gemini/ 등은 직접 편집하는 곳이 아니라 build.js가 skill/ 소스로부터 찍어낸 결과입니다. 원본을 고치려면 항상 skill/ 안을 건드려야 합니다 — 이 프로젝트의 "단일 소스" 철학이 디렉토리 구조에도 그대로 드러납니다.

6학습 포인트 (기술별)

이 레포에서 무엇을, 어떻게 배울 수 있는가

① Agent Skills 스펙 — "AI에게 능력을 더하는 표준"

Impeccable은 agentskills.io 표준을 정석대로 따른 좋은 교본입니다. SKILL.md의 frontmatter(name·description·allowed-tools·user-invocable), reference/ 분리, placeholder 치환을 실제 동작하는 형태로 볼 수 있습니다.

실습 아이디어

내 프로젝트용 미니 스킬을 하나 만들어 보세요. description을 잘 쓰는 게 핵심입니다 — Impeccable의 description은 "언제 이 스킬을 써야 하는가"를 한 문단으로 촘촘히 나열합니다. 이게 AI가 스킬을 올바르게 트리거하게 하는 비결입니다.

② 결정론적 정적 분석 — htmlparser2 + css-tree

LLM 없이 HTML/CSS를 파싱해 규칙을 검사하는 방법을 배웁니다. registry/antipatterns.mjs의 규칙 객체 스키마(id·category·severity·gated)와 rules/checks.mjs의 검사 함수가 어떻게 분리됐는지 보면, "데이터(규칙)와 로직(엔진)의 분리"가 한눈에 들어옵니다.

실습 아이디어

npx impeccable detect <내-사이트-url> --json을 돌려 결과 JSON을 뜯어보고, antipatterns 배열에 나만의 규칙 1개(예: "버튼 높이 36px 미만 금지")를 추가해 보세요.

③ 크로스 플랫폼 빌드 트랜스포머

"단일 소스 → N개 타깃" 빌드는 디자인 토큰, 모노레포, i18n 등 어디서나 재등장하는 패턴입니다. scripts/lib/transformers/가 provider별 차이(디렉토리명, 지원 frontmatter 필드)를 어떻게 데이터로 추상화했는지 학습 가치가 큽니다.

④ 디자인 원칙 그 자체 (가장 큰 보너스)

코드를 안 봐도, skill/SKILL.src.md의 Color·Typography·Layout·Motion·Interaction 섹션과 reference/interaction-design.md를 정독해도 프런트엔드 디자인 실력이 오릅니다. OKLCH 색 공간, 모듈러 타입 스케일(≥1.25 비율), 지수 감속 이징, text-wrap: balance/pretty, 시맨틱 z-index 스케일, 반응형 repeat(auto-fit, minmax()) 같은 실전 규칙이 "왜"와 함께 정리돼 있습니다.

왜 중요한가

이 규칙들은 AI를 위한 것이지만 사람에게도 그대로 적용됩니다. "회색 글씨를 색 배경에 쓰지 마라", "카드 속 카드 금지", "cream/beige 기본 배경 금지" 같은 건 디자인 입문자가 흔히 저지르는 실수의 체크리스트이기도 합니다.

7시스템 요구사항 / 설치

무엇이 필요하고 어떻게 까는가
항목요구사항
런타임Node.js ≥ 24 (CLI 사용 시). 스킬만 쓰면 Node 불필요
AI 하니스Claude Code / Cursor / Gemini CLI / Codex / Copilot / Kiro / OpenCode / Pi / Qoder / Trae / Rovo Dev 중 하나
URL 스캔puppeteer(선택 의존성) — 디렉토리/파일 스캔만 할 거면 불필요
API 키디텍터·CLI는 불필요. 스킬의 LLM 비평은 하니스의 모델을 사용
라이선스Apache 2.0 (상업적 사용·수정 자유, 특허 보호 조항 포함)

설치 방법 3가지

# 방법 1 (권장): 하니스 자동 감지 후 설치
npx impeccable install

# 방법 2: Git 서브모듈 또는 ZIP 다운로드 (impeccable.style)
# → 사이트에서 하니스별 ZIP을 받아 프로젝트에 압축 해제

# 방법 3: 레포에서 직접 복사 (README 기재 경로 사용)
# → README의 Option 3 참조 (하니스별 경로 상이)

CLI 디텍터 사용법

npx impeccable detect src/                  # 디렉토리 스캔
npx impeccable detect index.html            # 단일 파일
npx impeccable detect https://example.com   # URL (puppeteer)
npx impeccable detect --fast --json .       # 정규식만, JSON 출력(CI용)

8직접 해볼 수 있는 실습 과제

난이도별 5개 — 손으로 익히는 게 가장 빠르다
난이도 ★☆☆☆☆ · 입문

1. 내 사이트를 진단받기

아무 정적 사이트나 골라 npx impeccable detect <url>을 돌려보세요. slop/quality로 분류된 findings를 읽고, 각 규칙이 skillGuideline에서 무엇을 가리키는지 매칭해 봅니다. "내 사이트가 AI 티가 나나?"를 객관적으로 확인하는 첫걸음입니다.

난이도 ★★☆☆☆ · 기초

2. 명령 하나로 컴포넌트 리디자인

Claude Code/Cursor에 스킬을 깔고 /impeccable critique/impeccable polish 순으로 기존 컴포넌트를 손봐 보세요. 비평 → 수정 흐름에서 AI의 결과가 어떻게 달라지는지, before/after를 직접 비교합니다.

난이도 ★★★☆☆ · 중급

3. 나만의 안티패턴 규칙 추가

registry/antipatterns.mjs에 규칙 객체를 추가하고 rules/checks.mjs에 검사 로직을 붙여, 테스트(tests/detect-antipatterns.test.js)를 통과시켜 보세요. "규칙 데이터 + 엔진 + 테스트"의 3박자 구조를 체득하게 됩니다.

난이도 ★★★★☆ · 고급

4. CI 게이트 만들기

impeccable detect --json을 GitHub Actions에 붙여, PR에서 slop 규칙 위반이 N개 이상이면 빌드를 실패시키는 워크플로를 작성하세요. "디자인 품질을 CI로 강제"하는 실전 파이프라인을 경험합니다.

난이도 ★★★★★ · 심화

5. 새 하니스용 트랜스포머 작성

scripts/lib/transformers/를 분석해, 아직 지원되지 않는 가상의 하니스(예: 내 사내 도구)용 provider 설정을 추가하고 bun run build로 산출물이 정상 생성되는지 확인하세요. 단일 소스 → 다중 타깃 빌드의 내부를 완전히 이해하게 됩니다.

9관련 기술 심화 학습 로드맵

4주 코스 — 디자인 지식 + 도구 구현을 함께
주차주제학습 내용 / 실습
1주차디자인 기본기skill/reference의 typography·color·spatial 정독. OKLCH·모듈러 스케일·대비(4.5:1) 직접 적용해 작은 랜딩 1장 제작
2주차모션·인터랙션·반응형motion·interaction·responsive 레퍼런스 + prefers-reduced-motion, 지수 이징, container query 실습
3주차Agent Skillsagentskills.io 스펙 학습 → 내 도메인용 스킬 제작. description·reference 분리·placeholder 익히기
4주차정적 분석 도구 제작htmlparser2·css-tree로 미니 린터 만들기 → impeccable 디텍터 구조와 비교, 규칙 1개 기여(PR)
학습 순서 팁

코드부터 보지 말고 reference 문서 → 명령 사용 → 디텍터 코드 순서를 권합니다. "무엇이 좋은 디자인인가"를 먼저 알아야, 디텍터가 "왜 이걸 잡는지"가 이해됩니다.

10핵심 키워드 사전

이 레포에 등장하는 주요 용어 정리
용어
harness (하니스)
Claude Code·Cursor·Codex처럼 LLM에 도구·컨텍스트를 붙여 실제 작업을 시키는 AI 코딩 환경. Impeccable은 11종 이상에 설치된다.
용어
Agent Skill (에이전트 스킬)
SKILL.md + 참고문서/스크립트로 구성돼 AI에 특정 능력을 더하는 표준 패키지. agentskills.io 스펙을 따른다.
용어
register (레지스터)
디자인 맥락 모드. brand=디자인이 곧 제품(랜딩·캠페인), product=디자인이 제품을 보조(앱·대시보드). 모드에 따라 기본값이 달라진다.
용어
deterministic rule (결정론적 규칙)
같은 입력이면 항상 같은 결과를 내는 코드 기반 규칙. LLM 없이 돌아 빠르고 CI에 적합하다. Impeccable은 44개 (AI slop 26개 + 일반 품질 18개).
용어
OKLCH
밝기(L)·채도(C)·색상(H)으로 색을 표현하는 색 공간. 사람이 느끼는 밝기와 일치해 일관된 색 팔레트·다크모드를 만들기 쉽다.
용어
progressive disclosure
필요한 정보만 그때그때 보여주는 설계. 스킬에서는 SKILL.md(라우터)는 항상, reference는 호출 시에만 로드해 토큰을 절약한다.
용어
gated rule
특정 모델(gpt/gemini) 결과를 검사할 때만 켜지는 규칙. 기본은 꺼져 있어 오탐을 줄인다.
용어
dogfooding (도그푸딩)
자기 도구를 자기 제품에 직접 써보는 것. Impeccable은 빌드 때 자기 규칙으로 자기 사이트·문서를 검사해 위반 시 빌드를 실패시킨다.

11참고 링크

더 깊이 파고들 곳