korean-humanizer
"AI가 쓴 한국어는 읽으면 티가 난다. 이 skill은 그 티를 걷어낸다 — 의미는 그대로 두고 표현만."
목적
한국어 AI 생성 텍스트에는 반복적으로 나타나는 AI 티가 있다. 과도한 강조어, 공허한 형용사, 번역체, "것이다 / 이러한 / 해당" 과다, 판에 박힌 개시·마무리 문구, 불필요한 연결어, 강제된 3항 나열 같은 것들. 이 skill은 그 패턴을 찾아 의미를 바꾸지 않고 표현만 자연스럽게 다듬는다.
사용 대상:
- 이메일 / 메신저 / DM
- LinkedIn / X / 블로그 / 브런치 포스트
- 뉴스레터 / 고객 커뮤니케이션
- YouTube 스크립트 / 팟캐스트 원고
- 제품 카피 / 마케팅 문구
- GitHub Issue / PR / 커뮤니티 제안 답변
핵심 원칙
- 의미 불변. 팩트 / 숫자 / 고유명사 / 인용문 / 링크는 절대 바꾸지 않는다. 오직 표현만 손본다.
- 가벼운 터치. 문장을 통째로 갈아엎지 않는다. 바꿔야 할 부분만 최소한으로. 단, 인접한 두 문장이 같은 의미를 반복할 때는 하나로 병합할 수 있다 — 결과가 더 짧아지는 방향일 때만, 표현은 원문에 가깝게 유지한다.
- 과교정 방지. 한 문단에 3곳 이상 건드리지 않는다. 전체 문장 수의 20% 이상은 수정하지 않는다(예: 20문장 글이면 최대 4문장만 손댄다). 긴 글일수록 더 가볍게 터치. 단, 1-3문장짜리 짧은 글은 20% 계산이 지나치게 빡빡하므로 최대 1문장 / 문장당 1-2표현까지만 고친다.
- 자연스러움 > 완벽함. 살짝 덜 매끄러운 게 더 사람답다. 과도한 세련미는 오히려 AI 티.
- 종결어미 톤 보존 (한국어 humanize 핵심). Raw의 종결어미(~합니다체 / ~해요체 / ~다체 / 반말)와 도메인 디폴트를 함께 본다. 발화체 도메인(YouTube / 팟캐스트 / 강의 인사말)에서는 ~다체 글말체 사용 금지. 격식 글·캐주얼·발화체는 raw 어미를 strict 보존, 글말체 도메인(블로그/에세이/마케팅)만 ~다체 자유. 한 글에 어미가 섞이면 raw 우세 어미로 통일. 상세는
references/ko-ai-signals.md#9-A. - 개인화 우선. 사용자의 금지어 / 선호어 목록(
examples/personal-list.md)이 있으면 카탈로그보다 먼저 적용한다. Brand voice profile (방식 D,examples/brand-voice-*.md) 이 있으면 그보다도 더 우선.
워크플로우
1단계. 입력 확인
- 입력이 한국어인지 확인. 영어 / 다른 언어면 이 skill은 적용하지 않고 사용자에게 알린다.
- 단순 오탈자 / 문법 교정 요청이면 맞춤법 검사기(예: 부산대 맞춤법 검사기, Naver 맞춤법) 또는 별도 proofreading skill로 안내한다.
- 코드 / 기술 문서 / 법률 문서면 격식이 의도된 것이므로 적용하지 않는다.
1.5단계. 도메인 확인
텍스트에서 도메인을 추론한 뒤 번호 선택지로 확인을 받는다.
[도메인명]으로 판단했습니다.
1. 진행
2. 다른 도메인입니다 → [입력]
사용자 응답을 기다린 후 다음 단계로 넘어간다. 단, 이미 brand= / 금지= / 도메인 명시가 있으면 이 단계를 건너뛴다.
블로그 / SNS / 뉴스레터로 확정되면 이어서 참고 글 유무를 묻는다:
참고할 포스팅이 있으신가요?
→ [글 붙여넣기]
→ 없음
참고 글이 있으면 세션 범위 Brand voice로 처리한다 — 글에서 종결어미 / 문장 길이 / 어조를 추출해 humanize 기준으로 삼는다. 없으면 카탈로그 기본값으로 진행.
2단계. 도메인 / 톤 / 보존 영역 확인
- 확정된 도메인, 우세 종결어미, 격식 레벨을 기록한다.
- 발화체 도메인(YouTube / 팟캐스트 / 강의 / 라이브)으로 판단되면 종결어미를 절대 변경하지 않는다. ~해요체 raw는 ~해요체로, ~합니다체 raw는 ~합니다체로 그대로 둔다. ~다체 글말체로 바꾸는 것은 이 도메인에서 금지.
- 팩트 / 숫자 / 고유명사 / 인용문 / 링크 / 제품명 / 일정 / 금액은 보존 영역으로 표시하고 건드리지 않는다.
- Brand voice / personal list 가 있으면 이 단계에서 먼저 적용 우선순위를 확정한다.
3단계. 카탈로그 로드
references/ko-ai-signals.md 를 읽고, 도메인 우선순위가 높은 항목부터 스캔한다. 12 카테고리:
- 강조어 남발
- 공허한 형용사
- 과격식 / 번역체
- "것이다" / "이러한" / "해당" 과다
- 판에 박힌 개시 / 마무리
- 수동태 / 모호한 주어
- 불필요한 연결어
- 과도한 parallelism / 3항 나열
- 존댓말 레벨 불일치
- 이모지 남발
- 단정 회피 / 과한 hedging
- AI 고빈도 어휘
GitHub Issue / 외부 제안 답변에서는 references/ko-ai-signals.md의 "외부 기여 / 제안 답변에서의 감사 표현"을 함께 본다. 특히 제3자 demo / hosted service / SaaS 제안은 상대 의도를 단정하지 말고, community demo 제안인지 별도 SaaS 링크 제안인지 먼저 확인한다. 결과물이나 도움에 대해 "반갑습니다"를 남발하지 않고, "기쁩니다 / 고맙습니다 / 감사합니다"를 맥락에 맞게 쓴다.
4단계. High-confidence 스캔 및 치환
- 각 카테고리 표를 따라 패턴 매칭하되, 도메인과 raw 톤에 맞는 high-confidence AI 티만 고친다.
- 매칭되는 표현은 우측 "자연스러움" 컬럼으로 치환한다. 단, 학술 / 뉴스 / 이메일처럼 격식이 필요한 도메인은 딱딱함 전체가 아니라 불필요한 격식만 줄인다.
- 채팅 / 리뷰 / YouTube 는 너무 매끈하게 만들지 않는다. raw 의 말투, 생략, 감정 강도는 보존한다.
- 팩트 / 숫자 / 고유명사 / 링크는 절대 변경 X.
- 다음은 AI 티가 아니므로 제거하지 않는다: 존칭 수식어("보내주신", "말씀하신"), 주격 조사("은/는"), 대조·양보 연결어("다만", "하지만", "그런데"), 격식 이메일의 주어 대명사("저희", "우리").
5단계. 과교정 검토 후 출력
- 위 "핵심 원칙"의 정량 한도(문단 3곳 / 전체 문장 20%)를 지킨다. 초과 시 영향이 작은 변경부터 되돌린다.
- 1-3문장짜리 짧은 글은 최대 1문장만 고치고, 의미 / 톤이 바뀌면 원문을 더 살린다.
- 마지막으로 의미 보존, 종결어미 톤 보존, 도메인 적합성을 확인한다. 발화체 도메인이면 종결어미가 raw와 동일한지 재확인한다. 하나라도 ~다체로 바뀐 문장이 있으면 원문 어미로 되돌린다.
기본 포맷 (compact):
## Humanized
[다듬어진 텍스트 전체]
## 주요 변경 (최대 5개)
- "X" → "Y" (이유: 공허한 강조어 / 판에 박힌 개시 / ...)
- ...
(변경이 5개를 초과하면 마지막 줄에 "+N개 더 — '전체 diff로 보여줘'라고 하면 모두 표시" 추가)
- 사용자가 "전체 diff로 보여줘"라고 하면 모든 변경점을 상세히 나열한다. 기본은 compact.
- 보존 판단이 중요했던 경우
- "X" 유지 (이유: 학술 도메인 정형 표현 / 고유명사 / brand preserve)처럼 최대 1개까지 적어도 된다. - 같은 사용자와의 첫 번째 응답에 한해 마지막에 한 줄 안내를 붙인다 —
*마음에 안 드는 변경이 있으면 알려주세요 — 되돌리거나 다시 다듬겠습니다.*두 번째 응답부터는 생략(고정 멘트 자체가 AI 티가 됨).
사용자 커스터마이징 (Personal List + Brand Voice)
humanize 결과를 자기 톤에 맞추려면 사용자의 금지어 / 선호어 / 유지어 목록을 활용한다. 네 가지 입력 방식을 지원하며, 어느 쪽이든 카탈로그보다 먼저 적용한다.
방식 A/B/C 는 그때그때 즉석 입력, 방식 D 는 영구 brand voice profile. D 가 가장 강하고, 같은 단어가 여러 룰에 걸리면 윗줄이 이긴다 (D > A/B/C > 카탈로그).
방식 A. 인라인 한 줄 (가장 빠름)
사용자 메시지에 금지=...; 선호=A→B; 유지=... 형식이 보이면 즉시 파싱해서 적용한다.
/korean-humanizer 금지=활용,매우,다양한; 선호=유용하다→쓸만하다, 사실상→실제로; 유지=결과적으로
[다듬을 텍스트]
파싱 규칙:
- 키 별칭:
금지/ban/avoid,선호/prefer,유지/keep(대소문자 무시). - 항목 구분: 쉼표
,(또는;/ 공백). 영문 콤마와 한글 콤마 모두 허용. - 선호 매핑:
A→B/A->B/A => B모두 동일하게 해석. - 따옴표는 선택.
"활용"도활용도 동일. - 같은 메시지에서 일반 자연어 본문과 섞여 있어도 첫 줄(또는 명시된 키 뒤)을 우선 파싱.
방식 B. 자연어 한 줄
형식이 부담스러우면 그냥 말로 지시해도 된다.
"활용", "매우" 빼고, "유용하다"는 "쓸만하다"로 바꿔서 다듬어줘:
[텍스트]
자연어로 지시받은 항목은 같은 세션 내 후속 humanize 에도 유지한다.
방식 C. 파일 (영구 저장)
매번 같은 리스트를 쓰는 워크플로우라면 SKILL.md 하단의 ## My personal list 섹션을 채우거나, examples/personal-list.md 를 편집한다.
## My personal list
- 금지: "활용", "매우", "다양한"
- 선호: "쓸만하다" (over "유용하다"), "실제로" (over "사실상")
- 유지: (자동 치환에서 제외할 단어)
방식 D. Brand voice profile (영구 / 가장 우선)
매번 같은 브랜드 톤 / 작가 톤 으로 다듬고 싶으면 brand voice 프로필을 등록한다. Mode A/B/C 가 단어 리스트 위주라면, Brand voice 는 frontmatter (preserve / ban / prefer / ending_default / emoji_policy / length_bias) + 자유 형식 톤 가이드 로 더 풍부한 톤을 잡는다.
- 템플릿:
examples/brand-voice-template.md - 케이스 스터디:
examples/brand-voice-toss-style.md(짧고 직설),examples/brand-voice-essayist.md(길고 사변)
/korean-humanizer brand=examples/brand-voice-toss-style.md
[다듬을 텍스트]
또는 자연어로:
Toss 풍 brand voice 로 다듬어줘: [텍스트]
같은 세션에선 한 brand voice 만 활성화. 두 개 필요하면 별도 세션.
환경별 관리
- Claude Code / OpenCode / Codex: 네 방식 모두 사용 가능. 매 세션 인라인 한 줄 (방식 A) 권장, 영구화는 SKILL.md /
examples/personal-list.md편집 (방식 C), brand voice 는examples/brand-voice-<name>.md저장 후 호출 시 path 명시 (방식 D). - Claude.ai (Cowork): 세션 내 인라인 / 자연어 입력으로 즉시 반영. 영구 반영은 SKILL.md 다운로드 → 편집 → 재업로드. Brand voice 파일도 첨부 가능.
- ChatGPT / Cursor / Gemini:
PROMPT.md를 system prompt / Cursor Rule 에 붙여 넣고 personal list 줄을 직접 추가하거나 매 메시지 인라인으로 지정. Brand voice 는 PROMPT.md 뒤에 brand voice 파일의 frontmatter + 본문을 그대로 이어붙이면 된다.
적용 순서
- Brand voice (방식 D) — 영구 brand 톤. 가장 우선.
- Personal list (방식 A/B/C) — 즉석 / 영구 사용자 리스트.
- 도메인 우선순위 — 도메인 디폴트 / 금지 변경 영역 / 종결어미 톤을 먼저 반영.
- 12 카테고리 카탈로그 — 도메인-가중치 매트릭스 (
references/ko-ai-signals.md)에서 high-confidence 항목만 적용. - 정량 한도(문단 3곳 / 문장 20%, 짧은 글 최대 1문장) 적용 후 출력.
같은 단어가 여러 룰에 걸리면 윗줄이 이긴다. 예: brand voice 의 preserve: ["딥다이브"] 가 카탈로그의 일반 치환을 막는다.
다른 skill / 도구와의 연계
- 카피라이팅 skill 체이닝: LinkedIn writer, newsletter writer 같은 생성형 skill의 마지막 단계에서 korean-humanizer를 호출하도록 해당 skill의 SKILL.md를 업데이트.
- 업데이트 지시 예: "최종 출력 전 korean-humanizer skill을 실행해서 AI 티 제거"
- fact-checker와 함께: 외부 공개 전 권장 순서 → (1) 생성 → (2) fact-checker → (3) korean-humanizer.
- prompt-master와 비교: prompt-master는 프롬프트를 다듬고, humanizer는 생성된 결과물을 다듬는다.
트리거하지 않는 경우
- 단순 오탈자 / 문법 교정만 필요한 경우 (proofreading 도구 / skill이 적절).
- 내부 메모, 기술 문서, 코드 주석 등 자연스러움보다 정확성이 우선인 텍스트.
- 법률 / 규제 / 공식 문서 (격식이 요구됨).
- 영어 / 일본어 / 중국어 등 한국어가 아닌 텍스트.
- 사용자가 명시적으로 "원문 그대로" 요청.
레퍼런스
references/ko-ai-signals.md— 12 카테고리 / 100+ 패턴 카탈로그 (v0.8: 4 컬럼 — 나쁨 / 자연스러움 / 빈도 / 적용 도메인).examples/before-after.md— 실제 변환 사례.examples/personal-list.md— 사용자 커스터마이징 템플릿 (방식 C).examples/brand-voice-template.md— Brand voice 프로필 템플릿 (방식 D).examples/brand-voice-toss-style.md/examples/brand-voice-essayist.md— Brand voice 케이스 스터디.- 일반 LLM 사용자:
PROMPT.md시스템 프롬프트 형태로도 제공.