AI가 쓰는 어색한 한국어를 고치는 Claude Code 플러그인.
에이전트가 한국어로 글을 쓰면 번역투와 AI 티가 배어 나옵니다. korean-writing은 검증된 글쓰기 규칙을 에이전트에게 먼저 로드합니다. 기계로 판정되는 위반은 저장하거나 응답하는 시점에 자동으로 잡습니다. 설치하면 나머지는 알아서 돌아갑니다.
문서를 대신 써 주거나 리서치를 하지는 않습니다. 어떤 도구가 텍스트를 만들든, 그 결과가 한국어다운지만 책임집니다.
- Claude Code로 한국어 문서·README·커밋 메시지·주석을 쓰는데 결과가 번역기 같을 때
되어집니다같은 이중 피동, 문장마다 박힌 em dash, 장식용 이모지가 반복될 때- 에이전트가 처음부터 자연스러운 한국어를 쓰게 하고 싶을 때
교정 전(AI 티):
본 플러그인은 사용자에 의해 작성된 텍스트의 품질 향상을 위한 기능을
제공하며, 어색한 표현이 자동으로 감지되어집니다 🚀
교정 후:
이 플러그인은 여러분이 쓴 한국어를 다듬습니다. AI 티 나는 표현을
자동으로 걸러냅니다.
무생물 주어와 "~에 의해" 수동, 이중 피동(감지되어집니다), 장식 이모지가 사라졌습니다.
터미널에서 Claude Code CLI로 설치합니다.
claude plugin marketplace add HarryJhin/korean-writing
claude plugin install korean-writing@korean-writing-marketplace
세션 안에서는 /plugin marketplace add, /plugin install로도 됩니다. 쓰는 데 필요한
것은 Claude Code뿐입니다. 직접 개발하거나 테스트할 때만 Node 24(.nvmrc)가 필요합니다.
새 버전이 나오면 마켓플레이스 카탈로그를 갱신합니다. 카탈로그가 캐시되므로 갱신해야 새 버전이 들어옵니다.
claude plugin marketplace update korean-writing-marketplace
세션 안에서는 /plugin marketplace update korean-writing-marketplace 뒤에
/reload-plugins로 재시작 없이 적용합니다. 설치는 repo(HarryJhin/korean-writing)로
add하지만 업데이트는 마켓플레이스 이름(korean-writing-marketplace)으로 부르는 점에
주의합니다. 새 버전은 plugin.json의 version을 올렸을 때만 나갑니다.
설치 후 따로 켤 것은 없습니다. 세 가지 흐름으로 씁니다.
새로 쓸 때. "이 내용을 한국어로 정리해 줘"처럼 요청하면 writing-korean 규칙이
자동으로 로드됩니다. 목적이나 독자가 아직 안 정해졌다면 planning-korean-writing이
먼저 6하원칙 브리프로 방향을 잡습니다.
고칠 때. "이 문서 번역투 고쳐 줘", "AI 냄새 빼 줘"라고 하면 fixing-korean-text가
뜹니다. 파일은 원본과 대비한 diff를 먼저 보여주고 덮어쓰기는 확인을 받은 뒤에만 합니다.
긴 문서는 감사 모드가 층위별 리뷰어 3종에 순차로 맡깁니다.
세션 안에서. 훅이 두 방향으로 돕습니다. 세션이 시작될 때 S1 규칙을 컨텍스트에 넣어 처음부터 안 쓰게 유도하고, 한글 문서를 저장할 때 남은 위반을 잡아 고치게 합니다. 무엇을 기계로 다루는지는 아래 규칙 표에 있습니다.
| 구성 요소 | 하는 일 |
|---|---|
writing-korean 스킬 |
글쓰기 규칙의 단일 출처(SoT). 한국어를 쓰기 전에 로드합니다 |
fixing-korean-text 스킬 |
기존 텍스트 교정. 긴 문서는 감사 모드로 리뷰어 3종에 맡깁니다 |
planning-korean-writing 스킬 |
쓰기 전 6하원칙 브리프로 목적·독자·핵심 메시지를 잡습니다 |
agents/ 리뷰어 3종 |
감사 모드가 문장·어휘표층·담화 층위로 순차 디스패치하는 격리 교정 리뷰어 |
| PostToolUse 훅 | 한글 텍스트 파일(.md/.markdown/.txt) 저장 시 S1 위반을 검사합니다 |
| SessionStart 훅 | 세션 시작마다 S1 규칙을 컨텍스트에 넣어 처음부터 안 쓰게 유도합니다 |
두 층위로 나뉩니다. S1은 한 번만 나와도 AI 티가 확정되는 패턴이라 훅이 기계로 다룹니다. 세션 시작 때 규칙으로 넣고, 파일 저장 때 위반을 잡습니다. 나머지는 판단이 필요해 스킬이 다룹니다.
S1(훅이 규칙 주입·파일 검사):
| 패턴 | 대신 |
|---|---|
| em dash(U+2014) 삽입구 | 쉼표, 괄호, 문장 분리 |
| 장식용 이모지 | 텍스트로 |
| 본문 속 세미콜론 | 마침표로 문장을 나눔 |
이중 피동(되어진다·보여지다 등) |
된다, 보인다 |
판단 규칙(스킬이 적용):
| 규칙 | 다루는 것 |
|---|---|
| R2 번역투 | 무생물 주어, 수동 직역, 과잉 명사화, -의 연쇄, 연결어미 뒤 쉼표 |
| R3 문장 구조 | 내포·삽입 깊이, 단문 일변도, 쉼표로 이은 긴 절 |
| R4 AI슬롭 | 슬롭 어휘군, 형식명사, 문두 접속사, hedging, 균일한 리듬 |
| R5 일관성·정직 | 존댓말 등급 일관, 날조 금지 |
| R6 구성·전개 | 장면 도입, 소제목 레지스터, 병렬 틀, 결론 응축 |
| R7 서식·강조 | 볼드·따옴표·괄호 병기·인덱싱·콜론 헤딩·불릿 남용 절제 |
전문은 skills/writing-korean/SKILL.md에, 좋은 예와
나쁜 예 대조는 examples.md에 있습니다.
- 훅은 fail-open입니다. 입력이 이상하거나 파일이 없으면 조용히 통과해 세션을 막지 않습니다.
- 코드 블록과 인라인 코드는 검사에서 빠집니다.
- 검사를 끄고 싶은 문서에는
korean-writing:ignore마커를 넣으면 됩니다.
규칙은 3표 적대 검증을 통과한 딥리서치 결과와 1차 확인된 수치에만 기댑니다.
- 작문 딥리서치 리포트: Pinker·이태준·Gibson·슬롭 정량화·번역투 (25개 확정)
- 2차 보강 리포트: Strunk & White 1차 인용, 한국어 관계절 실증, 이중 피동 빈도 (24개 확정)
- 3차 리포트: 적극 원칙: 응집성·주제문· 재귀 퇴고 (33개 확정)
nvm use # Node 24 (.nvmrc)
node --test # 라이브러리·스킬 구조·훅 테스트
규칙 본문은 skills/writing-korean/SKILL.md 한 곳에서만 고칩니다. S1 정규식을 바꾸면
R1 표와 lib/prose-checks.js를 함께 맞춥니다.
권위 버전은 .claude-plugin/plugin.json의 version입니다. package.json이 이를
미러링합니다. 버전을 올릴 때마다 CHANGELOG.md 항목과 v{version}
태그를 남깁니다.