im-not-ai
AI가 쓴 한글을 사람 글처럼 윤문하는 Claude 스킬 — Korean AI-text humanizer: detects and rewrites translationese, mechanical parallelism, and 71 other AI tells
Humanize KR — 한글 AI 티 제거기 v2.3.2
English:
README.en.md
AI(ChatGPT · Claude · Gemini 등)가 쓴 한글 글을 내용은 한 글자도 건드리지 않고 문체 · 리듬 · 표현만 자연스러운 한국어로 되돌리는 CLI 스킬입니다.
번역투, 과도한 영어 인용, 기계적 병렬 ("첫째 · 둘째 · 셋째"), "결론적으로 / 시사하는 바가 크다" 같은 AI 특유 관용구, 피동태 남용, 문두 접속사 남발, 이모지·불릿 남용 등 10대 카테고리 × 70 서브 패턴(+검증 대기 hold 1건)을 심각도(S1/S2/S3)로 분류해 스팬 단위로 탐지한 뒤, 윤문합니다.
설치 (Install)
Claude Code, GitHub Copilot CLI, OpenAI Codex CLI, Gemini CLI를 지원합니다. 전체 가이드:
INSTALL.md
GitHub Copilot CLI — 플러그인 마켓플레이스 (클론 불필요, 권장)
copilot plugin marketplace add epoko77-ai/im-not-ai
copilot plugin install humanize-korean@im-not-ai
copilot plugin list
Copilot에서 humanize-korean 스킬로 이 글의 AI 티를 없애줘:처럼 요청하거나 /skills list로 로드 여부를 확인하세요. 업데이트는 copilot plugin update humanize-korean@im-not-ai, 제거는 copilot plugin uninstall humanize-korean@im-not-ai입니다. Copilot은 단일 호출 경로만 제공하며 Claude Code 전용 진단·finalize 다중 호출 경로는 실행하지 않습니다.
호환성 참고: 1.0.79-5에서는
copilot plugin install epoko77-ai/im-not-ai도 동작하지만, CLI가 저장소 직접 설치의 사용 중단 예정 경고를 표시합니다. 신규 설치 경로로는 권장하지 않습니다.
Claude Code — 플러그인 마켓플레이스 (클론 불필요, 권장)
/plugin marketplace add epoko77-ai/im-not-ai
/plugin install humanize-korean@im-not-ai
새 세션에서 /humanize-korean (또는 자연어로 "이 글 AI 티 없애줘").
Claude Code · Codex CLI — 클론 + 스크립트
git clone https://github.com/epoko77-ai/im-not-ai.git
cd im-not-ai
./install.sh # 설치된 claude/codex 자동 감지 → 전역 심링크
- Claude:
/humanize-korean· Codex:$humanize-korean - 한쪽만:
./install.sh --claude-only/--codex-only· 제거:./uninstall.sh - 업데이트:
./update.sh— 새 버전 자동 감지 후git pull+ 재설치(--check는 감지만). 마켓플레이스 설치는/plugin update. - Codex는 단일 콜 경로만 제공합니다. 다콜 경로(standard 2콜 · heavy 3+콜, 진단·finalize 포함)는 Claude Code 전용.
왜 한글 특화인가
영어권 humanizer(QuillBot · Hix · Undetectable AI)는 한국어에 약합니다. 한글 AI 글의 티는 대부분 영어 번역투에서 나옵니다.
- "AI 기술을 통해 효율을 높일 수 있다" → "AI로 효율을 높인다"
- "이에 있어서 중요한 점은" → "여기서 중요한 건"
- "~에 의해 생성된" → "~가 만든"
- "결론적으로, 이는 시사하는 바가 크다" → (삭제)
이 도구는 그 한글 고유 패턴을 SSOT로 정리하고, 글의 상태에 맞는 세 경로(light 1콜 / standard 2콜 / heavy 3+콜) 중 하나로 윤문합니다. 잘 쓴 글일수록 콜 수가 줄어 빠르고 싸게 끝납니다.
4대 철칙
- 의미 불변 — 사실 · 주장 · 수치 · 고유명사 · 직접 인용은 100% 원문 보존.
- 근거 기반 — 탐지된 span에만 수술적 수정. 탐지 없는 구간은 건드리지 않음.
- 장르 유지 — 칼럼을 문학으로, 리포트를 에세이로 옮기지 않음.
- 과윤문 금지 — 변경률 30% 초과 시 경고, 50% 초과 시 강제 중단.
아키텍처 (v2.2) — route_hint 3경로
입력을 shim(prepare_monolith_input.py)이 먼저 정량 채점하고, 그 점수로 route_hint(light | standard | heavy) 를 결정적으로 산출합니다. 글의 상태가 경로를 정하고, 경로가 콜 수를 정합니다. 절감은 모델 교체가 아니라 콜 수 축소에서 옵니다(모델 선택은 사용자 몫).
| 경로 | LLM 콜 수 | 언제 | 파이프라인 |
|---|---|---|---|
| light | 1 | 잘 쓴 글 — 어휘 티가 거의 0 | 진단·finalize 생략, 보수 강도 단일 윤문. 손댈 게 거의 없으면 "이미 좋습니다"로 조기 종료 |
| standard | 2 | 보통의 AI 초안 — 어휘·구조 티 섞임 | 진단 1콜 + 겨냥 윤문 1콜. 1만자급도 청킹 없이 단일 윤문 콜 |
| heavy | 3+ | 중증 AI 슬롭 밀집 or 초장문(15,000자 초과) or 검증 증적 필요 | 진단 → 윤문(shim이 청크를 2개 이상 만든 경우에만 청크 병렬) → finalize |
입력 텍스트
↓
[prepare_monolith_input.py] ── 정량 사전 점수 (KatFish·post-editese 지표) + route_hint 산출
↓ 실패 시 점수 없이 standard로 자동 진행 (graceful degrade)
├─ light ────→ [humanize-monolith ×1] ────────────────────────────→ final.md
├─ standard ─→ [humanize-diagnostician] → [monolith 겨냥 윤문] ───→ final.md
└─ heavy ────→ [diagnostician] → [monolith(필요시 청크 병렬)] → [humanize-finalizer]
↓
[verify_change_rate.py] ── 변경률 게이트 (결정적 코드 판정, exit code) — 모든 경로 공통
- 사용자 명시가 route_hint를 오버라이드합니다:
--strict·"정밀 모드" → heavy 고정, "가볍게" → light 고정. - 단일 콜 우선: 청킹은 heavy 전용이며 15,000자 이하는 비권장. 실측으로 1만자 글을 청킹 7콜로 돌리면 610K 토큰, 단일 콜이면 134K(4.5배 절감, 품질 동등)였습니다 — 청크마다 룰북·진단을 재로드하는 비용이 절감분을 다 먹기 때문입니다.
- 이번 개선의 핵심 가치: 잘 쓴 글은 1콜로 싸게 끝납니다. 어휘 티 없는 글에 최중량 파이프라인을 돌리던 낭비를 route_hint가 차단합니다.
에이전트 구성
윤문 실행에 쓰이는 에이전트는 아래 4개입니다.
같은 카테고리 다른 리소스
Next.js
React 기반 풀스택 프레임워크. App Router와 서버 컴포넌트(RSC)가 사실상 표준이며, SSR·SSG·ISR을 한 프로젝트 안에서 다룬다.
shadcn/ui
복사·붙여넣기 방식의 React 컴포넌트 모음. npm 의존성이 아닌 코드 소유권 모델이라 커스터마이징이 자유롭다.
Supabase
PostgreSQL 기반 BaaS. Auth · Realtime · Storage · Edge Functions 통합.
Anthropic MCP
Claude가 외부 도구/데이터에 접근하도록 해주는 프로토콜 표준. 생태계의 근간.