Communitygithub.com

AI 슬롭 제거 (AI de-slop)

웹사이트나 UI에서 AI가 생성한 듯한 시각적·카피적 특징('AI 슬롭')을 찾아 제거하고, 그러한 특징이 없는 새 페이지를 디자인합니다.

AI 슬롭 제거 (AI de-slop)란 무엇인가요?

이 스킬은 웹사이트나 UI 디자인에서 'AI가 만든 것 같은' 특징(예: 지나치게 둥근 태그, 과도한 이탤릭체, AI 기본 폰트, 음수 자간, 지나치게 복잡한 UI 요소 등 20가지 지표)을 식별하고 제거하는 자동화된 프로세스를 제공합니다. 사용자가 “deslop”, “remove AI slop”, “looks AI-generated”, “make it look human-designed” 등의 명령을 내리거나, 방문 페이지, 마케팅 사이트, 포트폴리오 등 UI를 구축·검토할 때 활용됩니다. 스킬은 범위 설정 → 감사 → 유지 목록 → 수정 → 복구 → 검증 → 보고의 7단계 순서로 진행되며, `audit.py` 스크립트가 감사를 자동화하고, 사람이 직접 판단해야 하는 항목을 구분합니다. Claude Code를 포함한 다양한 AI 에이전트 플랫폼에서 사용 가능하며, 수정 후에도 레이아웃이 깨지지 않도록 복구하고, 모든 페이지를 1440px와 390px 폭에서 렌더링하여 검증합니다. 결과물은 사람이 디자인한 듯한 명확한 타이포그래피와 의미 있는 콘텐츠를 갖춘 페이지입니다.

지원 대상~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/elmir-mammadli/ai-deslop/tree/HEAD/skills/ai-deslop

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

AI 슬롭 제거 (AI de-slop)은(는) 무엇을 하나요?

목표: 명확한 관점을 가진 사람이 디자인한 것으로 읽히는 페이지. 하나의 타이포그래피 음성, 레이블 대신 실제 콘텐츠, 의미를 전달하는 곳에만 장식. 특징을 제거하는 것이 작업의 절반; 나머지 절반은 그 자리에 있던 것들이 사라져도 아무것도 깨지지 않았음을 증명하는 것입니다.

이 순서대로 작업하고 단계를 건너뛰지 마세요: 범위 설정 → 감사 → 유지 목록 → 수정 → 복구 → 검증 → 보고. "완료 조건"의 모든 게이트가 충족되어야만 한 번의 패스가 완료됩니다.

1. 범위 설정

  • 데모나 하위 페이지뿐만 아니라 상위 사이트를 포함하여, 범위 내의 모든 사이트, 페이지, 공유 컴포넌트, 데이터 파일, 썸네일을 나열합니다. 사용자가 "모두"라고 말하면 모두를 의미합니다. 하위 집합에서 멈추고 완료되었다고 보고하지 마세요.
  • 콘텐츠는 세 곳에 있습니다. 세 곳 모두를 감사하세요: 스타일시트, 마크업/컴포넌트, 데이터 파일(제목 배열, 타이포그래피 사실, 내비게이션 레이블, 메타데이터).
  • 범위가 명확히 모호한 경우에만 한 번 질문하세요. 그렇지 않으면 계속 진행합니다.

2. 스크립트로 감사한 다음, 직접 육안으로 확인

번들된 스캐너를 먼저 실행하세요. 각 후보를 파일:줄과 함께 나열하고, tell별로 그룹화하며, fix 수준의 tell이 남아 있으면 종료 코드 1을 반환합니다.

python3 <skill-dir>/scripts/audit.py <paths...> --keep-caps ".wordmark,.logo,.heroTitle"
python3 <skill-dir>/scripts/audit.py src --only caps,tracking,period      # 집중
python3 <skill-dir>/scripts/audit.py src --json > audit.json               # 기계 판독 가능
  • fix tell은 0에 도달해야 합니다 (또는 타당한 deslop-keep 마커를 포함해야 합니다). check tell(그라데이션, 글로우, counter-css, 눈썹, 줄무늬, 이모지 제목, 도형)은 각각 사람의 판정이 필요하며, 보고서에 기록됩니다.
  • 스캐너는 주석과 node_modules/빌드 출력을 건너뜁니다. 의도를 판단하거나, 레이아웃 손상을 찾거나, 렌더링된 텍스트를 볼 수 없습니다. 이것이 5단계와 6단계가 있는 이유입니다.
  • 스크립트가 다루지 않는 추가 검색은 references/audit.md에 있습니다.

3. 20가지 tell: 정확한 조치 및 유지 규칙

번호Tell정확한 조치유지 조건
1태그 및 알약radius 999px → 3~4px, 또는 태그를 일반 컬러 텍스트로 변경독자가 행동해야 하는 상태(긴급, 상태, 활성 필터)를 전달하는 경우
2과도한 이탤릭체font-style: italic, italic 유틸리티, 장식용 <em>/<i> 삭제실제 작품 제목, 인용된 외국 용어, 워드마크
3기본 AI 폰트페이지의 목소리로 사용된 Instrument Serif, Instrument Sans, Geist, Geist Mono, Space Grotesk, IBM Plex Mono, JetBrains Mono, Space Mono 교체목소리로 사용되는 경우는 절대 안 됨; 폰트 규칙 참조
4음수 커닝모든 음수 letter-spacing 및 tracking-[-…], tracking-tight(er) 삭제절대 안 됨
5지나치게 복잡한 UI가젯 삭제: 실시간 상태 점, 가짜 트래커, 커서 렌즈, 자기 버튼, 스크롤-스큐 마키, 회전 카운터, 장식용 레벨 미터가젯이 제품 자체인 경우(계산기, 플래너, 구성기)
6구분선 과사용목록당 최대 하나의 구조적 규칙 유지; 분리만 하는 규칙 삭제규칙이 테이블이나 목록의 행을 그룹화하는 경우
7음영 및 불투명도단색 색상 토큰; 글로우, 블러, backdrop-filter, 40px 이상의 그림자 블러 삭제스크림이 사진 위에서 텍스트 가독성을 유지하는 경우; 실제 오버레이(대화상자, 메뉴)의 단일 미묘한 그림자
8테두리 컨테이너테두리가 장식일 뿐인 카드의 박스 해제; 왼쪽 강조 줄무늬(border-left ≥ 3px) 삭제박스가 실제 객체(양식, 영수증, 티켓, 시트, 테이블)이거나 줄무늬가 상태(양식 성공/오류)를 나타내는 경우
9지나치게 상세한 다이어그램설명하지 않는 "Plate I", "Fig. 2", 범례, 레이블 제거모든 요소가 실제 무언가에 매핑되는 경우
10장황하고 중복된 텍스트반복되는 "sample" 노트 대신 바닥글에 한 줄 공개; 제목을 다시 설명하는 문장 제거노트가 다른 곳에 명시되지 않은 정보를 추가하는 경우
11코드 빵부스러기// LABEL, /services 링크 텍스트, [1], EV-01, R-03, STATUS:, TEL/MAIL/AREA 대문자 레이블 삭제실제 내비게이션 빵부스러기("Home / About")
12섹션 번호 매기기마크업과 CSS counter()에서 "01 /", "§", "Chapter 1", 로마 숫자, "Z1", 0으로 채워진 카운터 삭제순서가 콘텐츠인 경우: 지침, 타임라인, 양식 단계, 퀴즈 질문, 다이어그램의 마커와 일치하는 숫자. 그런 경우 일반 1.( 01 아님)
13눈썹제목 위의 작은 레이블 삭제; 사실(장소, 직종, 가격)을 담고 있었다면 제목 또는 첫 문장으로 이동기능적 레이블인 경우: 양식 레이블, 범례, dt, 테이블 헤드, 바닥글 열 헤드
14디더링, 노이즈디더 및 노이즈 텍스처 삭제텍스처가 아트 디렉션인 경우(risograph 인쇄, 종이 가장자리); deslop-keep 표시
15ASCII 이미지삭제기본적으로 절대 안 됨
16스퀘클12px 이상의 radius → 4~6px (섹션, 카드, 이미지, 대화상자)진짜 원(동일한 너비와 높이: 아바타, 아이콘 점, 둥근 체크), 의도적인 모양(아치형 창문, 파이프 끝)에 deslop-keep
17모노 폰트사이트의 텍스트 폰트와 font-variant-numeric: tabular-nums로 교체페이지에 실제 코드가 있는 경우
18모두 대문자 부제목text-transform: uppercase, uppercase 유틸리티, 소스 문자열의 대문자 삭제; 양수 자간도 함께 삭제워드마크, 실제 표지판(DANGER / WARNING / NOTICE, 파이프 마커), 압축된 디스플레이 헤드라인으로 구축된 브랜드(해당 선택자는 --keep-caps에 유지)
19그라데이션 배경단색데이터 스케일(온도, 계절), 사진 스크림, 하드 스톱 헤어라인
20제목의 마침표h1~h3, 페이지 제목, 카드 및 데이터 제목, 디스플레이 크기의 한 문장 바닥글 줄의 마지막 마침표 제거본문 문장, 여러 문장 단락, 약어("Co.", "Inc.")

또한 제거: 헤드라인 내 강조 색상 구절(#2와 동일한 tell), 외곽선 또는 선이 있는 거대 워드마크, 장식용 블롭과 원, 빈 프레임 및 필름 스트립.

4. 폰트

  • 기본 AI 폰트(#3)를 목소리로 절대 배포하지 마세요. 주제에 맞게 선택하세요. 페이지가 무엇에 관한 것인지 기준: 간판 거래는 고속도로 또는 압축 서체, 유산 거래는 Caslon 또는 Didone, 스튜디오는 조용한 산스와 함께하는 편집용 세리프.
  • 하나의 디스플레이 서체와 하나의 텍스트 서체, 또는 하나의 패밀리. 레이블용 세 번째 패밀리는 없음.
  • 숫자는 텍스트 서체에 font-variant-numeric: tabular-nums를 사용하며, 모노는 절대 사용하지 않음.
  • 교체 시 다음도 업데이트: 폰트 임포트, CSS 변수, 레이아웃 클래스 리스트, 폰트 이름을 언급하는 헤더 주석, 폰트 이름을 표시하는 모든 데이터(카탈로그 카드, 스타일 가이드). 그런 다음 너비나 줄 수가 이전 폰트에 의존했던 모든 헤드라인을 다시 확인하세요.
  • 이탤릭체 제거 후에는 이탤릭체나 사용하지 않는 가중치를 로드하지 마세요.

5. 카피 규칙

  • 제목: 마침표 없음, <em> 없음, 강조 span 없음, 문장 케이스.
  • 두 문장으로 된 staccato 제목을 하나의 자연스러운 문장으로 다시 작성:
    • "Close the valve. Then call." → "Close the valve, then call"
    • "Find the leak. Plan the roof." → "Find the leak, then plan the roof"
    • "Fast, contained, explained." → "Fast, contained and explained"
    • "A professional website. A clear price." → "A professional website at a clear price"
    • "Seven layers. One you see." → "Seven layers, and you see one"
    • 질문과 지시는 두 부분으로 유지 가능: "Water off? Book a morning visit".
  • 사실을 담고 있는 눈썹을 제거할 때, 그 사실은 보이는 곳에 남아 있어야 합니다.
  • 프로젝트 자체 스타일 규칙(철자 변형, 금지어, 대시 스타일)을 따릅니다. 수정 후 철자 일관성을 확인합니다.
  • 증거를 절대 만들어 내지 마세요: 가짜 리뷰, 카운트, 로고, 수상 없음. 샘플은 바닥글에 한 번만 레이블을 붙입니다.

6. 수정

  • 기계적 변경(대문자, 자간, 이탤릭체, 모서리, 제목 마침표)은 스크립트로; 판단이 필요한 변경(재작성, 가젯, 레이아웃)은 수동으로.
  • 작은 파서를 사용하여 CSS를 규칙별로 수정합니다(selector { body } 블록 일치, body 변경, 다시 쓰기). 전체 스타일시트에 대해 하나의 큰 역추적 정규식을 절대 실행하지 마세요.
  • 먼저 유지 목록을 만들고, 그 다음 수정합니다. 대문자를 유지할 선택자와 숫자를 유지할 숫자를 기록한 다음, 그 목록을 스크립트에 전달합니다.
  • 의도적인 예외는 인라인으로 표시하여 향후 감사에서 건너뛰도록 합니다: CSS에서는 /* deslop-keep: reason */, JSX에서는 {/* deslop-keep: reason */}, 동일한 줄 또는 이전 줄에 작성합니다.

7. 제거로 인한 손상 복구

모든 제거는 구멍을 남길 수 있습니다. 각 사이트에 대해 다음을 모두 확인하세요:

  1. 숫자나 코드를 담고 있던 작은 첫 번째 열(44px 1fr, 80px 1fr 360px, 90px 1fr 1.4fr)이 있는 그리드: 모든 중단점에서 해당 열을 제거합니다.
  2. 제거된 숫자 뒤로 텍스트를 정렬했던 p, dd, h3, li의 왼쪽 여백 또는 패딩 28~60px: 0으로 설정.
  3. 남은 counter-reset / counter-increment, li > span / dt span 규칙, 숫자 간격만을 위해 사용된 display: flex; gap on headings.
  4. 마크업에서 더 이상 참조되지 않는 죽은 클래스(동적 클래스 s[\badge_${x}`]등은 건너뜀), 빈 규칙, 사용되지 않은index` 매개변수 및 props, 사용되지 않은 임포트 및 폰트 변수, 오래된 주석.
  5. 폰트 변경 후 이미지와 겹치거나 줄 수에 의존했던 헤드라인.
  6. ::before / ::after 내부의 테두리를 규칙을 읽지 않고 제거하지 마세요: 왼쪽 및 하단 테두리를 45° 회전하면 체크 표시가 그려집니다.

8. 검증

  • 각 페이지를 1440px 및 390px 너비에서 prefers-reduced-motion: reduce로 렌더링 확인하여 애니메이션 섹션이 완료된 상태로 렌더링되도록 합니다. 캡처하기 전에 전체 페이지를 스크롤하여 느리게 로드되는 이미지가 로드되도록 하고, 개발자 오버레이를 제거합니다. 빈 이미지 영역은 반대 증거가 있을 때까지 느린 로딩 또는 막힌 개발 이미지 최적화 프로그램입니다. 프로덕션과 비교하여 버그라고 단정하지 마세요.
  • 모든 경로에서 두 너비로 자동화된 패스: 콘솔 오류 0개, 수평 오버플로우 0개(scrollWidth > innerWidth).
  • 프로젝트 검사: 타입 검사, 린트(새로운 경고 0개), 프로젝트의 카피 또는 금지어 검사, 프로덕션 빌드.
  • 감사 스크립트 재실행: fix 총계는 0이어야 함.
  • 이전 디자인을 보여주는 썸네일, 미리보기, 쇼룸 이미지 새로고침 및 재확인.
  • 빌드나 개발 서버가 다시 쓰는 파일(예: tsconfig.json, next-env.d.ts)을 커밋 전에 복원합니다.

9. 완료 조건

모두 참이어야 합니다:

  • 범위 내의 모든 항목이 감사되었습니다(스타일시트, 마크업, 데이터, 썸네일).
  • audit.py가 fix: 0을 보고합니다. 남은 모든 check hit에 판정이 있습니다.
  • 모든 예외는 유지 목록에 있거나 이유와 함께 deslop-keep 마커를 가지고 있습니다.
  • 모든 페이지가 1440px 및 390px에서 렌더링되고 확인되었습니다.
  • 모든 경로에서 콘솔 오류 0개 및 수평 오버플로우 0개.
  • 타입 검사, 린트, 카피 검사, 프로덕션 빌드 통과.
  • 미리보기 및 썸네일이 새로고침되었습니다.
  • 사용자의 승인 없이 푸시 또는 게시하지 않았습니다.

10. 보고서

다음 형식의 짧은 보고서로 마무리합니다:

  1. 범위: 다루어진 내용(사이트 및 페이지 수).
  2. 제거됨: tell별로 변경된 내용과 대략적인 인스턴스 수.
  3. 의도적으로 유지됨: 각 예외와 그 이유.
  4. 복구됨: 발견 및 수정된 레이아웃 손상.
  5. 검증됨: 각 검사와 그 결과.
  6. 미해결 항목: 완료되지 않거나 검증되지 않은 모든 것, 명확히 명시.

실제 경험에서 발견된 함정

  • 헤드리스 브라우저 프로필로 디스크가 빨리 채워집니다. 한 번에 한 페이지씩 캡처하고, 각 프로필을 삭제하며, 여유 공간을 확인하세요. 디스크가 가득 차면 셸과 개발 서버가 중단됩니다.
  • 사용자의 개발 서버를 종료하지 마세요. 다른 포트에서 자신의 서버를 시작하고 완료되면 중지하세요.
  • 클래스 이름만 일치시키면 기능적 레이블이 제거됩니다. 위치와 요소 유형으로 일치시키세요.
  • 데이터 기반 제목과 템플릿 리터럴 페이지 제목은 JSX 전용 제목 스캔에서 누락됩니다. 스크립트는 title:, heading: 및 title=도 확인합니다.
  • 상위 사이트, 데이터 파일 또는 썸네일을 건너뛰는 패스는 완료되지 않은 것입니다.

tell 없는 새 작업 디자인

템플릿이 아닌 주제에서 시작하세요: 직종이나 대상에 맞게 선택된 하나의 디스플레이 서체와 하나의 텍스트 서체, 의미를 가진 하나의 강조 색상, 0~6px 모서리, 문장 케이스 레이블, 마침표 없는 제목, 눈썹 없음, 순서가 중요하지 않은 한 번호가 매겨진 섹션 없음, 플레이스홀더 레이블 대신 실제 카피, 그리고 비즈니스에 관한 실제 무언가와 연결된 모든 장식 요소. 작업을 넘기기 전에 audit.py를 실행하세요.

관련 스킬