im-not-ai: 기존의 의미를 보존하면서, 'AI스러움'을 자연스럽게 다듬는 Claude Code 윤문 스킬

im-not-ai 소개

im-not-ai(Humanize KR)는 ChatGPT, Claude, Gemini 같은 AI가 쓴 한국어 글에서 'AI스러움'을 걷어내는 Claude Code 스킬입니다. 핵심 원칙은 내용을 한 글자도 건드리지 않고 문체와 리듬, 표현만 자연스러운 한국어로 되돌리는 것입니다. 사실·주장·수치·고유명사·직접 인용은 그대로 두고, 어색한 문장 구조만 수술적으로 고칩니다.

한국어 AI 글의 AI스러움은 대부분 영어 번역투에서 나옵니다. "AI 기술을 통해 효율을 높일 수 있다""AI로 효율을 높인다" 로, "~에 의해 생성된""~가 만든" 으로 바꾸는 식입니다. QuillBot이나 Undetectable AI 같은 영어권 도구는 이런 한국어 고유 패턴에 약하기 때문에, im-not-ai는 한국어에 특화된 패턴을 단일 진실 공급원(SSOT)으로 정리하고 탐지·윤문·내용 감사·자연스러움 검증을 분리된 에이전트로 수행합니다.

흥미롭게도 이 스킬이 다루는 문제는 PyTorchKR이 게시물을 작성하며 마주하는 AI 슬롭(slop) 문제와 정확히 겹칩니다. 번역투, 기계적 병렬 나열, AI 특유 관용구를 사람의 눈으로 일일이 잡아내기 어렵다는 점에서, 이런 패턴을 분류 체계로 정리해 자동 탐지하려는 시도 자체가 참고할 만합니다.

im-not-ai가 잡아내는 한국어 AI스러움

im-not-ai는 AI스러움을 10개 대분류와 60여 개의 세부 패턴으로 정리하고, 각 패턴을 심각도(S1/S2/S3)에 따라 분류해 스팬(span) 단위로 탐지합니다. 대분류는 다음과 같습니다.

ID 대분류 대표 패턴
A 번역투 "~를 통해", "~에 있어서", 이중 피동 "~되어진다", "그/그녀" 강박적 사용
B 영어 인용·용어 과다 과도한 괄호 병기, 번역 가능한 영어를 그대로 둠
C 구조적 AI 패턴 기계적 "첫째/둘째/셋째", 과도한 불릿·헤딩·이모지
D AI 특유 관용구 "결론적으로", "시사하는 바가 크다", "주목할 만하다"
E 리듬 균일성 문장 길이 편차가 낮고 동일 종결어미가 반복됨
F 수식·중복 "매우", "정말", 동의어 이중 수식
G Hedging 남용 "~할 수 있을 것으로 보인다" 같은 다중 완곡
H 접속사 남발 문두 "또한/따라서/즉" 의 연속
I 형식명사 과다 "것이다", "점", "수", "바"
J 시각 장식 남용 과도한 볼드, 대시(—) 남발

심각도는 세 단계로 나뉩니다. S1(결정적) 은 한 번만 나와도 AI 글임을 확신하게 하는 패턴이라 무조건 제거하고, S2(강함) 는 1~2회는 허용하되 3회 이상 반복되면 제거하며, S3(약함)은 다른 패턴과 겹칠 때만 문제 삼습니다.

im-not-ai의 strict 윤문 파이프라인

im-not-ai는 글 길이에 따라 두 가지 모드로 동작합니다. 5,000자 이하의 짧은 글은 기본값인 Fast 모드에서 humanize-monolith 에이전트가 탐지·윤문·자체검증을 한 번의 호출로 처리합니다. --strict 옵션을 주거나 8,000자 이상이면 자동으로 승급되는 Strict 모드는 단계를 분리해 더 엄밀하게 검증합니다.

Strict 모드는 먼저 ai-tell-detector 가 스팬·카테고리·심각도가 담긴 JSON 탐지 리포트를 만들고, korean-style-rewriter 가 탐지된 부분에만 수술적으로 윤문하면서 변경률을 감시합니다. 이어 두 검증 에이전트가 병렬로 동작합니다. content-fidelity-auditor 는 13개 항목 체크리스트로 의미가 동등하게 보존됐는지 감사하고, naturalness-reviewer 는 탐지를 다시 돌려 잔존 AI스러움과 과윤문 여부를 판정합니다. 마지막으로 오케스트레이터가 결과를 종합해 그대로 수락하거나, 최대 3회까지 2차 윤문을 돌리거나, 문제가 된 수정을 롤백하거나, 사람 검토를 권고합니다.

im-not-ai의 4대 철칙과 안전장치

im-not-ai는 윤문 과정에서 원문을 훼손하지 않도록 네 가지 철칙을 따릅니다. 첫째, 의미 불변 으로 사실·주장·수치·고유명사·직접 인용을 100% 보존합니다. 둘째, 근거 기반 으로 탐지된 스팬에만 수정을 가하고 탐지되지 않은 구간은 건드리지 않습니다. 셋째, 장르 유지로 칼럼을 문학으로, 리포트를 에세이로 옮기지 않습니다. 넷째, 과윤문 금지로 변경률이 30%를 넘으면 경고하고 50%를 넘으면 강제로 중단합니다.

윤문 결과는 A~D 품질 등급으로 평가됩니다. S1이 0건이고 S2가 2건 이하이며 점수 개선이 70% 이상이면 A 등급으로 수락되고, S1이 3건 이상이거나 심각한 과윤문 신호가 보이면 D 등급으로 사람 검토 대상이 됩니다. 등급이 낮으면 2차 윤문이나 롤백으로 이어져, 무리하게 고치다 글을 망치는 일을 막습니다.

im-not-ai 설치 및 사용법

im-not-ai는 Claude Code와 OpenAI Codex CLI 양쪽을 지원합니다. Claude Code에서는 플러그인 마켓플레이스로 클론 없이 설치하는 방법을 권장합니다.

/plugin marketplace add epoko77-ai/im-not-ai
/plugin install humanize-korean@im-not-ai

설치 후 새 세션에서 /humanize-korean 을 실행하거나 자연어로 "이 글 AI스러움 없애줘"라고 요청하면 됩니다. 저장소를 직접 클론해 스크립트로 설치할 수도 있습니다.

git clone https://github.com/epoko77-ai/im-not-ai.git
cd im-not-ai
./install.sh            # 설치된 claude/codex 자동 감지 후 전역 심링크

Claude Code에서는 /humanize-korean, Codex CLI에서는 $humanize-korean 으로 호출합니다. 다만 정밀한 strict 5인 파이프라인은 Claude Code 전용이고, Codex CLI는 단일 호출 Fast 모드만 제공합니다.

im-not-ai의 라이선스

im-not-ai는 MIT 라이선스로 공개되어 있어 개인 및 상업적 목적으로 자유롭게 사용할 수 있습니다.

:github: im-not-ai 프로젝트 GitHub 저장소

더 읽어보기




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:south_korea:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다!
텔레그램(Telegram)이나 Slack/Discord/Teams/Dooray/GoogleChat 등으로도 새 글 알림을 받으실 수 있습니다. :smiley:

:wrapped_gift: 아래:down_right_arrow:쪽에 좋아요:+1:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck:

2개의 좋아요