안녕하세요, 자바파커입니다.
AI로 쓴 초안은 읽는 사람이 먼저 알아챕니다. "오늘날 빠르게 변화하는 환경에서"로 시작하고, 형용사는 자주 세 개씩 붙고, 마지막 줄은 격언처럼 끝납니다. 이런 글을 AI 슬롭(AI slop) 이라고 부릅니다.
unslop은 이 AI 티를 쓰는 단계에서 막고, 이미 쓴 글에서는 찾아 고치는 Claude용 Agent Skill입니다. README 첫 줄도 "AI 슬롭을 막고 없애는 글쓰기 가드레일"입니다. Jean-Luc Winkler가 MIT 라이선스로 공개했고, 이 글은 2026년 10월 14일에 나온 v1.8.5 기준입니다. AI 탐지기를 속이는 용도는 저장소가 명시적으로 배제합니다.
설명만으로는 실제 동작을 알 수 없어서 Claude Code에 설치해 41번 돌려 봤습니다. 결과부터 말씀드리면 이렇습니다.
- 스킬 이름을 부르면 한국어 글과 슬라이드도 규칙대로 점검하고 고칩니다.
- 뻔한 AI 티는 스킬 없이도 비슷하게 걷어 냅니다. 차이는 고치는 과정에서 났습니다. 스킬 없이 고친 글은 원문의 "절반"이라는 수치를 빠뜨리거나 원문에 없는 내용을 채웠습니다.
- 한국어로 요청하면 자동 로드가 들쭉날쭉합니다. 한국어 슬랙 메시지 요청은 4번 모두 스킬이 켜지지 않았습니다.
unslop은 AI 티를 어디서 찾나
흔한 "humanizer" 프롬프트는 delve, seamless 같은 금지어 목록입니다. unslop README는 이 방식이 두 번 실패한다고 봅니다. 금지어 목록은 모델 세대가 바뀔 때마다 낡고, 오래 남는 흔적은 단어보다 글의 짜임에 있다는 것입니다. 근거로 StoryScope 연구(Russell et al. 2026, 텍스트 61,608건)를 인용합니다. 담화 구조만으로 AI 글을 93.2% 정확도로 가려냈고, 전문가가 문장 단위로 고쳐 써도 탐지율은 1.6%p밖에 움직이지 않았다는 결과입니다.
300단어가 넘는 글이면 먼저 개요를 뽑아 핵심 주장이 몇 번 반복되는지, 모든 섹션이 같은 틀인지 봅니다. 흐르는 문장 속에서는 안 보이던 구조 문제가 개요에서는 바로 드러나기 때문입니다. 구조를 볼 때 쓰는 테스트 두 개가 실용적입니다.
- 교환 테스트: 두 문단의 자리를 바꿔도 아무도 모르면 산문 옷을 입은 목록입니다.
- 이식 테스트: 문장을 다른 회사나 제품 글에 그대로 옮겨도 어색하지 않으면 군더더기입니다.
세 층위를 관통하는 규칙은 모호한 주장을 확인 가능한 사실로 바꾸되, 원문에 그 사실이 없으면 지어내지 않는다는 것입니다. README의 예시입니다.
Before: "This launch stands as a powerful testament to our team's relentless pursuit of excellence: the export feature ships today, and the beta group has run it since April without a single support ticket."
After: "The export feature ships today. The beta group has run it since April without a single support ticket."
After의 사실은 모두 Before에 있던 것입니다. 지운 것은 수식뿐이고 새로 넣은 것은 없습니다.
네 가지 모드와 P0·P1·P2
P1명백한 AI 티: 상투적 도입부, 부정 병렬, 세 개 묶음, 굵은 글씨 남발, 마지막 줄 격언
P2다듬기: 문단 길이 균일, 글이 자기 자신을 설명, 템플릿 소제목
v1.8.5부터는 이메일, 슬랙 메시지, 이슈, PR 설명, 문서, 슬라이드처럼 몇 문장 이상의 글을 쓸 때 스스로 로드되도록 설명이 바뀌었습니다. 이렇게 켜지면 조용한 Write 모드로 돌아서 점검 보고 없이 고친 글만 내놓습니다. 코드, 명령어, 데이터 표, 한 줄 답변에는 끼어들지 않습니다.
Rewrite 모드는 손대는 양을 슬롭의 양에 맞춥니다. 표시되지 않은 문장은 한 글자도 바꾸지 않고 옮깁니다. 대시 하나, 완곡어 하나, 수동태 하나 같은 약한 신호는 다른 신호와 겹칠 때만 표시합니다. 평가 사례 25건 중 8건이 "아무것도 걸리면 안 되는" 깨끗한 글일 만큼 과잉 표시를 경계합니다.
글 종류마다 기준이 다르다
같은 규칙이 어떤 글에서는 맞고 어떤 글에서는 틀립니다. unslop은 글 종류(소셜, 블로그, 이메일·DM, 문서·기술, 학술, 슬라이드)를 먼저 정하고 엄격도를 바꿉니다. 대표적인 차이는 이렇습니다.
- 짧은 단문 나열: 소셜에서는 원래 문체, 블로그에서는 AI 티입니다.
- 완곡어("~할 수 있다"): 마케팅 글에서는 군더더기, 학술 글에서는 필수입니다.
- 개인 목소리: 소셜과 블로그에서는 환영하지만, 기술 문서와 학술 글에는 넣지 않습니다.
- em dash: 소셜은 2개까지, 슬라이드는 0개입니다.
- 이모지와 해시태그: 소셜만 1~2개 허용합니다.
슬라이드와 문서 서식 규칙
unslop은 글자만 다룹니다. 색, 레이아웃, 폰트 같은 시각 디자인 규칙은 없습니다. 대신 슬라이드와 문서 서식 규칙이 자세합니다. SKILL.md에 슬라이드 문체만 다루는 절이 따로 있고, 덱을 만드는 다른 스킬 뒤에 마지막 검수로 붙도록 되어 있습니다.
슬라이드에서는 산문 규칙 하나가 뒤집힙니다. 블로그에서는 구어가 살아 있게 들리지만 슬라이드에서는 "기초부터 시작" 같은 명사형이 전문가의 문체입니다.
- 제목은 내용 이름을 단 명사형으로 씁니다. "우리 숫자 한번 보기"는 "숫자"로 줄이고, 어떤 지표의 어느 기간인지 빠졌다고 보고합니다.
- 제목만 이어 읽어도 이야기가 이어져야 합니다. 질문형 제목은 덱에 한 번까지입니다.
- 명령조는 권고조로 바꿉니다. "꼭 확인!" → "권장: 발송 전 지표 확인"
- em dash 0개, 불릿은 슬라이드당 6개까지입니다.
- 화면에 남은 발표자 메모는 P0입니다. "초안", "대외비" 도장은 요청할 때만 붙입니다.
문서에서는 굵은 글씨를 섹션당 하나까지만 씁니다. "성능: … 보안: …"처럼 굵은 이름표를 줄줄이 붙인 문단은 문장으로 풉니다. 소제목 이모지, 섹션마다 넣은 가로줄, "개요 / 주요 특징" 같은 템플릿 소제목도 표시 대상입니다.
가드레일: 고치다가 새 티를 만들지 않기
AI 티를 지우는 도구가 흔히 하는 실수는 지문 하나를 다른 지문으로 바꾸는 것입니다. unslop은 다음을 모두 실패한 수정으로 봅니다.
- 원문에 없던 1인칭, 일화, 숫자, 이름, 날짜 추가
- 문장을 잘게 쪼개 리듬 흉내 내기
- "솔직히 말하면" 같은 연출된 솔직함
- 조용한 손실: "세 배 빠르다"가 "빠르다"로, "응답자의 73%"가 "응답자들"로 바뀌는 것
법률·의료·보안 문서의 "해서는 안 된다"는 그 자체가 내용이라 강도를 바꾸지 않습니다. 사람이 쓴 글의 오타나 거친 말투도 그대로 둡니다. 다듬으면 오히려 AI 글처럼 읽히기 때문입니다.
unslop 설치 방법
스킬의 기본 개념은 Claude Code Skill 사용법에, 다른 AI 코딩 도구와의 비교는 AI 코딩 도구 Skill 비교에 정리해 두었습니다.
Claude Code에서는 플러그인 설치가 가장 간단합니다. 버전이 올라가면 업데이트도 따라옵니다.
/plugin marketplace add jlwin/unslop_ai
/plugin install unslop@unslop-ai스킬 폴더만 복사해도 됩니다.
git clone https://github.com/jlwin/unslop_ai.git /tmp/unslop_ai
cp -r /tmp/unslop_ai/skills/unslop ~/.claude/skills/unslopClaude 앱(Desktop, claude.ai)에서는 skills/unslop 안의 내용을 SKILL.md가 최상위에 오도록 zip으로 묶어 설정의 스킬 항목에 올립니다.
직접 돌려 본 결과
실험 환경
- 2026년 11월 9일, Claude Code 2.1.319 헤드리스 모드(
claude -p), 모델claude-opus-5-5 - unslop v1.8.5(커밋
d65241e)를 빈 폴더의.claude/skills/unslop에 설치 - 다른 플러그인·MCP 서버는 빼고(
--setting-sources project --strict-mcp-config), 파일 쓰기·셸·웹 도구는 막음 - 비교군은 같은 설정에 스킬만 없는 빈 폴더
- 스킬이 켜졌는지는 실행 로그의
Skill도구 호출로 판단
모두 41번 돌렸습니다. 자동 로드는 요청마다 3~4번 반복했고 나머지는 대부분 한 번씩이라, 경향으로 봐 주세요.
원본 평가 사례 재현
저장소의 evals/cases.md에서 세 건을 Check 모드로 돌렸습니다.
| 사례 | 기대 | 실제 |
|---|---|---|
| Case 2 영어 슬롭 문단 | P0 1건, P1 여러 건 | 모두 같은 등급으로 표시 |
| Case 12 약한 신호만 있는 독일어 글 | 표시 없음 | P0·P1 없음, P2로 두 건 언급 후 "괜찮다" |
| Case 20 영어 기술 공지 | 표시 없음 | 표시 없음 |
Case 12는 고치라고 하지 않았으니 실질적으로는 통과입니다. 다만 기대 결과가 "아무것도 걸리면 안 된다"였으니 엄밀히는 기대보다 많이 표시했습니다.
한국어 AI 슬롭 예문
일부러 AI 티를 넣은 다섯 문장입니다.
오늘날 빠르게 변화하는 디지털 환경에서 데이터 품질은 그 어느 때보다 중요합니다. 새 검증 기능은 단순한 도구가 아니라 팀의 생산성을 혁신하는 게임 체인저입니다. 빠르고, 정확하고, 직관적입니다. 베타 기간 동안 오류 신고는 3건에서 0건으로 줄었습니다. 결국 중요한 것은 도구가 아니라 데이터를 대하는 태도입니다.
"unslop 스킬로 Check 모드로 점검해 줘"라고 하니, 단어 목록은 한국어에 쓸 수 없다고 먼저 밝히고 문장·구조 규칙만으로 P1 다섯 건을 표시했습니다. 상투적 도입부, 부정 병렬, 게임 체인저 같은 의미 부풀리기, 세 개 묶음, 격언형 마무리입니다. 제가 놓친 지적도 있었습니다. 앞에서 도구를 게임 체인저라 해 놓고 마지막에 도구는 중요하지 않다고 해서 글이 스스로 모순된다는 점입니다.
Rewrite 결과는 스킬이 있든 없든 거의 같았습니다. 둘 다 원문의 유일한 사실인 "오류 신고 3건에서 0건" 한 문장만 남겼습니다. 이 정도로 뻔한 슬롭은 이번 실험의 모델이 스킬 없이도 알아봤습니다.
근거가 빈 글에서 갈린 차이
원본 평가 사례 Case 17을 한국어로 옮긴 문장입니다. 기대 결과는 "연구를 지어내지 말고 '절반'의 강도를 지킬 것"입니다. unslop은 "연구에 따르면"을 P0로 표시만 하고 지우지 않았습니다. 지우면 연구 결과가 회사의 단정으로 바뀌어 주장이 더 세진다는 이유였습니다. 다만 "의지를 보여 준다"를 "목적은 개선"으로 바꾼 부분은 원문의 뜻을 살짝 해석해 넣은 것이라 아슬아슬합니다.
README의 영어 예시에서도 같은 차이가 보였습니다. 스킬이 켜진 실행은 문제없는 구간을 한 글자도 바꾸지 않았습니다. 켜지지 않은 세 번은 모두 "run"을 "used"로 바꿨고, 그중 두 번은 "Mina's team", "four rounds of beta fixes"처럼 원문에 없는 이름과 횟수를 예시로 붙였습니다.
슬라이드와 문서 서식
일부러 AI 티를 넣은 한국어 발표 초안 다섯 장을 Check로 돌리니, 넣어 둔 함정을 하나도 빠짐없이 잡았습니다. 화면에 남은 발표자 메모는 P0, 예고형 제목 네 개, "21세기의 석유" 같은 표어, em dash, 연출된 미덕, "(초안)" 도장은 P1이었습니다.
화면에 남은 발표자 메모(P0)→새 데이터 검증 기능 소개
메모는 발표자 노트로
"21세기의 석유", "선택이 아닌 필수"→도입 배경
근거가 없어 본문은 빈칸으로 보고
"빠르고, 정확하고, 직관적"→주요 변경 사항
자동화, 오류 신고 3건 → 0건
"열린 마음, 투명한 소통"→권장 사항
배포 전 검증 실행
요청하지 않은 도장→감사합니다
반대로 깨끗하게 만든 덱은 P0·P1이 0건이었습니다. 수치가 든 문장형 제목은 허용되는 형태로, 실제로 세 가지인 목록은 장식용 묶음이 아니라고 판단했습니다.
문서 서식은 소제목마다 이모지와 가로줄을 넣고 "성능: … 보안: … 편의성: …"을 굵게 붙인 사내 안내문으로 시험했습니다. 두 쪽 모두 이모지와 가로줄은 지웠습니다. 차이는 내용에서 났습니다.
| unslop 있음 | unslop 없음 | |
|---|---|---|
| 템플릿 소제목 | 지움 | 남김 |
| 굵은 이름표 문단 | 한 문장으로 풂 | 불릿으로만 바꿈 |
| "크게", "훨씬" | 원문 강도 유지 | 빠짐 |
버튼 이름 검증 켜기의 굵은 글씨는 양쪽 다 남겼습니다.
자동 로드: 한국어 요청은 들쭉날쭉
영어 글쓰기 요청은 대체로 켜졌고 코드 요청에는 끼어들지 않았습니다. 한국어 슬랙 메시지는 한 번도 켜지지 않았고, 그중 한 번은 제목에 📢 이모지를 달았습니다. "De-slop this text"는 트리거 문구가 직접 들어 있는데도 네 번 중 한 번만 켜졌습니다.
하나 더 관찰했습니다. SKILL.md는 점검 때마다 단어 목록 파일을 읽으라고 하지만, 41번 중 참고 파일을 연 실행은 없었습니다.
한국어 글에 쓸 때
단어 목록은 영어·독일어 전용이라 한국어 글에는 적용되지 않습니다. 그래도 문장·구조 규칙만으로 한국어 AI 글의 흔한 패턴은 다 잡혔습니다.
- 한국어로 요청할 때는 "unslop 스킬로 Check 모드로 점검해 줘"처럼 이름과 모드를 부릅니다.
- 발표 자료나 사내 문서를 만든 뒤 마지막에 한 번 돌리는 용도로 잘 맞습니다. 슬라이드와 서식 규칙은 언어를 거의 타지 않습니다.
- 사람이 쓴 한국어 측정 기록 네 문장은 P0·P1 없이 통과했습니다.
한국어 단어 목록을 직접 추가하려면, 새 패턴마다 "잡아야 할 예"와 "건드리면 안 되는 비슷한 예"를 하나씩 넣고 evals/cases.md로 회귀 점검을 하라는 스킬의 유지보수 규칙을 따르면 됩니다. "~에 대해 알아보겠습니다", "~하는 것이 중요합니다", "혁신적인", "결론적으로" 같은 표현이 후보입니다. 이 목록은 제 관찰이고 스킬에 들어 있는 내용은 아닙니다.
자주 묻는 질문 (FAQ)
unslop은 AI 탐지기를 피하려는 도구인가요?
아닙니다. README와 SKILL.md 모두 좋은 글쓰기를 위한 것이고 탐지 회피나 고지 의무 회피용이 아니라고 명시합니다. AI 사용을 밝혀야 하는 곳에서는 그대로 밝혀야 합니다.
사람이 쓴 글도 AI 티로 걸리나요?
걸릴 수 있습니다. 스킬이 보는 패턴은 통계적 신호이지 작성자를 증명하지 않습니다. 그래서 Check 모드는 패턴만 판단하고 "AI가 썼다"는 판정은 하지 않으며, 약한 신호는 다른 신호와 겹칠 때만 표시합니다.
스킬 없이 "AI 티 빼 줘"라고만 해도 되지 않나요?
뻔한 슬롭이라면 거의 됩니다. 이번 실험에서도 다섯 문장짜리 한국어 예문은 스킬이 있든 없든 거의 같은 한 문장으로 줄었습니다. 차이는 고치는 과정에서 생겼습니다. 스킬이 없을 때는 "절반" 같은 수치가 빠지거나 원문에 없는 맥락과 숫자가 따라 나왔습니다. 수치가 중요한 글이라면 스킬을 쓰는 편이 안전합니다.
unslop은 한국어를 지원하나요?
공식 대상은 영어와 독일어입니다. 한국어 단어 목록은 없지만, 문장·구조·슬라이드 규칙은 한국어 글에도 그대로 적용됐습니다. 다만 한국어 요청에서는 자동으로 잘 켜지지 않으니 이름을 불러야 합니다.
처음 써 볼 때
- 플러그인으로 설치합니다.
- 이미 게시한 글 하나를 골라 "unslop 스킬로 Check 모드로 점검해 줘"라고 요청합니다. 원문은 바뀌지 않습니다.
- P1 항목 중 동의하는 것만 직접 고쳐 봅니다.
- 발표 자료가 있다면 슬라이드 제목만 이어 읽는 점검부터 받아 봅니다.