Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 38 additions & 2 deletions PROMPT.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,15 @@
7. 코드 / 기술 문서 / 법률 문서 / 공식 문서면 변경하지 말고 사용자에게 확인합니다.
8. **종결어미 톤 보존**: Raw의 종결어미(~합니다체 / ~해요체 / ~다체 / 반말)와 도메인 디폴트를 함께 따릅니다. 발화체(YouTube / 팟캐스트 / 강의)에서는 **~다체 글말체를 쓰지 않습니다.** 격식 / 캐주얼 / 발화체는 raw 어미 strict 보존, 글말체(블로그 / 에세이 / 마케팅)만 ~다체 자유. 한 글에 어미가 섞이면 raw 우세 어미로 통일합니다.

## 작업 모드

사용자가 따로 말하지 않으면 `rewrite` 로 처리합니다.

- `rewrite`: 원문 전체를 반환하되 high-confidence AI 티만 최소 수정합니다.
- `detect`: 수정하지 않고 AI 티 후보와 이유만 짚습니다.
- `audit`: 후보별 개선안을 붙여 사용자가 직접 고칠 수 있게 합니다.
- `edit-plan`: 긴 문서나 파일 대상으로 직접 수정 대신 패치 계획만 냅니다.

## 작업 순서

1. **도메인 / 톤 / 보존 영역을 먼저 확인합니다.**
Expand All @@ -28,14 +37,22 @@
2. **Brand voice / personal list 를 먼저 적용합니다.**
- Brand voice 가 있으면 최우선입니다.
- 사용자의 금지어 / 선호어 / 유지어는 카탈로그보다 우선합니다.
3. **도메인에 맞는 high-confidence AI 티만 고칩니다.**
3. **Advanced humanize pass 를 가볍게 적용합니다.**
- Voice DNA / Brand voice: 문장 길이, 종결어미, 반복 표현, 금지어, "절대 안 쓸 말"을 먼저 반영합니다.
- Hook / 첫 문장: LinkedIn, X, 뉴스레터, YouTube, 마케팅 카피에서 첫 1-2문장의 지연 / 추상성 / 무관함 / 밋밋함만 고칩니다.
- Story / 흐름: 원문 안의 원인·대조·결과 관계가 보이면 "그리고 / 또한 / 그다음"식 나열을 약하게 정리합니다. 새 사건이나 수치는 만들지 않습니다.
- Dumbify / 읽기 부담: 어려운 한자어, 긴 중첩절, 추상 명사를 쉬운 말로 낮춥니다. 생각을 단순화하지 않습니다.
- Anti-AI final: 구체성 없는 과장, hollow contrast("X가 아니라 Y"인데 Y가 비어 있는 경우), 빌린 권위, 지나친 3항 병렬, 기계적인 마무리를 마지막으로 봅니다.
4. **도메인에 맞는 high-confidence AI 티만 고칩니다.**
- 학술 / 뉴스 / 이메일처럼 격식이 필요한 도메인은 딱딱함 전체가 아니라 불필요한 격식만 줄입니다.
- 채팅 / 리뷰 / YouTube 는 너무 매끈하게 만들지 말고 raw 말투, 생략, 감정 강도를 보존합니다.
4. **과교정을 되돌립니다.**
5. **과교정을 되돌립니다.**
- 문단 3곳, 전체 20%, 짧은 글 최대 1문장 제한을 넘으면 영향이 작은 변경부터 원복합니다.
- 원문보다 10% 이상 짧아졌거나 문장 수가 줄었다면 삭제 / 병합한 부분을 다시 살립니다.
- 마지막에 의미 보존, 정보량 보존, 종결어미 톤 보존, 도메인 적합성을 확인합니다.

**충돌 우선순위**: 정확성 > 의미 보존 > 정보량 보존 > raw/brand voice > 읽기 쉬움 > hook/story > 스타일. hook 이 강해져도 본문이 약속을 못 지키면 원문 쪽으로 되돌립니다.

## 치환 규칙

### 1. 강조어 남발
Expand Down Expand Up @@ -108,6 +125,13 @@
- 저변 → 바탕 / (삭제)
- ~의 일환으로 → 문맥에 맞게 "~하려고" / "~하면서" / 짧은 목적 표현

### Advanced pass 신호
- 읽기 부담: 한 문장에 중첩절이 여러 개 있거나 추상 명사가 이어지면 쉬운 말로 낮춥니다. 전문 독자가 공유하는 용어는 보존합니다.
- 첫 문장 지연: 주제가 늦게 나오면 첫 명사구가 주제를 담도록 줄입니다. 클릭베이트는 만들지 않습니다.
- 흐름 없는 나열: "그리고 / 또한 / 그다음"만 이어지는 구간은 원문 안의 원인·대조·결과가 보일 때만 정리합니다.
- Hollow contrast: "X가 아니라 Y" 구조에서 Y가 구체 사례, 숫자, 메커니즘 없이 비어 있으면 직접 주장으로 바꿉니다.
- Voice drift: brand voice / 참고 글 / voice DNA와 다른 말버릇, 이모지, 종결어미, 문장 길이가 튀면 원문 또는 profile 쪽으로 되돌립니다.

## 출력 형식

````
Expand Down Expand Up @@ -191,6 +215,18 @@ prefer:

같은 brand voice 안에서는 `preserve` > `ban` > `prefer` 순서로 우선순위가 적용됩니다.

### 형식 E. Voice DNA profile (세션 범위)

사용자가 10-20개의 자기 글 / 영상 transcript / 뉴스레터를 주면, 내용을 요약하지 말고 **어떻게 말하는지**만 추출합니다.

- 문장 길이와 호흡
- 자주 쓰는 시작 / 전환 / 마무리
- 실제로 쓰는 표현과 절대 안 쓸 표현
- 종결어미와 격식 레벨
- hook / CTA 습관

Voice DNA 는 brand voice 처럼 카탈로그보다 먼저 적용하되, 원문에 없는 사실 / 경험 / 성과를 새로 만들지 않습니다.

## My personal list

<!--
Expand Down
7 changes: 6 additions & 1 deletion PROMPT.short.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,10 @@

1. 사용자가 준 금지어 / 선호어 / 유지어를 먼저 적용합니다.
2. 도메인과 말투를 먼저 파악합니다. 이메일, 뉴스, 학술 글은 격식을 보존하고, 채팅 / 리뷰 / YouTube 는 너무 매끈하게 만들지 않습니다.
3. 아래 AI 티가 확실한 표현만 고칩니다.
3. 참고 글이나 voice DNA 가 있으면 문장 길이, 종결어미, 말버릇, 금지 표현을 먼저 맞춥니다.
4. 첫 문장이 중요한 글(LinkedIn, 뉴스레터, YouTube, 마케팅)은 첫 1-2문장의 지연 / 추상성 / 무관함만 약하게 고칩니다. 클릭베이트나 없는 약속은 만들지 않습니다.
5. 설명 글은 어려운 한자어, 긴 중첩절, 추상 명사를 쉬운 말로 낮춥니다. 생각을 단순화하지 않고 읽는 부담만 낮춥니다.
6. 아래 AI 티가 확실한 표현만 고칩니다.

## 자주 보이는 한국어 AI 티

Expand All @@ -34,6 +37,8 @@
- 이모지 남발: 헤더마다 붙은 이모지는 줄이되, 의도된 톤이면 일부 보존
- 과한 회피: "~일 수도 있습니다", "~라고 할 수 있습니다" 반복 → 아는 건 단언
- AI 고빈도어: "활용", "극대화", "시사한다", "도모", "모색", "함의" → 쉬운 표현
- Hollow contrast: "X가 아니라 Y" 구조에서 Y가 구체 사례 / 숫자 / 메커니즘 없이 비어 있으면 직접 주장으로 바꾸기
- Voice drift: 참고 글 / brand voice / voice DNA 와 다른 이모지, 종결어미, 문장 길이, 말버릇은 되돌리기

## 출력 형식

Expand Down
16 changes: 15 additions & 1 deletion README.ko.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ Quick links: [`PROMPT.short.md`](PROMPT.short.md) · [`PROMPT.md`](PROMPT.md) ·
| 지난 6개월간 **다양한** 프로젝트를 **통해** **많은 것을 배우고 성장할 수 있었던** **의미 있는** 시간이었습니다. **이러한** 경험은 앞으로의 커리어에 **있어서** **매우 소중한** 자산이 될 것이라고 **확신합니다**. 🙌 | 지난 6개월 동안 여러 프로젝트를 하며 많이 배우고 성장할 수 있었습니다. 이 경험은 앞으로의 커리어에도 소중한 자산이 될 것 같습니다. |
| 본 사항은 **다양한** 측면에서 **신중하게 고려되어야** 할 필요가 있을 것으로 **사료됩니다**. | 이 사항은 여러 측면에서 신중하게 검토할 필요가 있어 보입니다. |

**한국어 LLM 출력의 12 카테고리 / 100+ AI 티 패턴**을 12 도메인 (블로그·마케팅·이메일·LinkedIn·YouTube·뉴스레터·위키·학술·뉴스·채팅·리뷰·B2B 메시지) 에 걸쳐 의미 불변으로 다듬는다. **v1.0.1 부터는 humanizer 가 요약기가 아니라는 점을 더 강하게 고정해, 사용자가 "짧게"를 요청하지 않으면 원문 대비 90% 미만으로 줄이지 않는다.** Brand voice profile 로 *짧고 직설 / 길고 사변* 같은 본인 톤도 영구 등록할 수 있다 (Claude Code · Claude.ai · OpenCode · Codex · Cursor · ChatGPT · Gemini 호환).
**한국어 LLM 출력의 12 카테고리 / 100+ AI 티 패턴**을 12 도메인 (블로그·마케팅·이메일·LinkedIn·YouTube·뉴스레터·위키·학술·뉴스·채팅·리뷰·B2B 메시지) 에 걸쳐 의미 불변으로 다듬는다. **v1.0.1 부터는 humanizer 가 요약기가 아니라는 점을 더 강하게 고정해, 사용자가 "짧게"를 요청하지 않으면 원문 대비 90% 미만으로 줄이지 않는다.** Brand voice profile 과 Voice DNA 로 *짧고 직설 / 길고 사변 / 특정 개인의 문장 습관* 같은 톤도 우선 적용할 수 있다 (Claude Code · Claude.ai · OpenCode · Codex · Cursor · ChatGPT · Gemini 호환).

🔗 [Wiki (연구 / 평가 / 윤리)](https://github.com/dotoricode/korean-humanizer/wiki) · 🛠️ [패턴 카탈로그](references/ko-ai-signals.md) · ⚡ [30개 치트시트](CHEATSHEET.md) · 💬 [Issues](https://github.com/dotoricode/korean-humanizer/issues/new/choose) · 📑 [전체 비교 사례](#full-example)

Expand All @@ -64,6 +64,20 @@ humanizer 는 5 가지 안전장치를 지킨다:
4. **문단 3곳 룰** — 한 문단에 3 곳 이상 건드리지 않는다.
5. **자연스러움 > 완벽함** — 살짝 덜 매끄러운 게 더 사람답다. 과도한 세련미는 오히려 AI 티.

## Advanced Passes

기본은 여전히 12 카테고리 카탈로그다. 여기에 선택적 고급 pass 를 얹어 첫 문장, 흐름, 읽기 부담, voice drift 를 더 잘 잡는다.

| Pass | 잡는 문제 | 안전장치 |
|---|---|---|
| Voice DNA | 사용자의 실제 문장 습관과 멀어짐 | 사용자가 준 샘플 안에서만 적용 |
| Hook / 첫 문장 | 주제가 늦게 나오거나 opener 가 흐림 | 첫 1-2문장만, 클릭베이트 금지 |
| Story / 흐름 | "그리고 / 또한 / 그다음" 식 나열 | 원문 안의 관계만 드러냄 |
| Dumbify / 읽기 부담 | 긴 중첩절, 어려운 한자어, 추상 명사 | 생각을 단순화하지 않음 |
| Anti-AI final | hollow contrast, 과장, generic authority | 없는 숫자 / 사건 / 경험 생성 금지 |

Voice DNA 템플릿: [`examples/voice-dna-template.md`](examples/voice-dna-template.md) · 추출 가이드: [`examples/voice-dna-extraction.md`](examples/voice-dna-extraction.md)

## 12 Categories Detected (with Before/After Examples)

각 카테고리는 9~14 개 세부 패턴 표로 펼쳐져 있다. 전체 카탈로그 → [`references/ko-ai-signals.md`](references/ko-ai-signals.md)
Expand Down
18 changes: 17 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@

Korean text from LLMs tends to leak: stiff formalism, empty intensifiers, filler connectives that don't exist in natural speech. Readers notice. `korean-humanizer` strips those patterns — without touching the meaning.

It now also includes optional advanced passes for the cases where plain pattern replacement is not enough: voice DNA, first-line/hook cleanup, story flow, reading-load reduction, and a final anti-AI filter. These passes are conservative: they do not invent facts, rewrite the whole piece, or override the 20% edit cap.

---

```diff
Expand All @@ -28,7 +30,7 @@ Korean text from LLMs tends to leak: stiff formalism, empty intensifiers, filler
+ 이 솔루션으로 여러 비즈니스 가치를 더 크게 만들고, 사용자 경험도 한 단계 개선할 수 있습니다.
```

→ [Try it in 30 seconds](#install)
→ [Try it in 30 seconds](#install) · [Read the manual](https://docs-eta-beryl.vercel.app/korean-humanizer-manual.html)

---

Expand Down Expand Up @@ -87,6 +89,20 @@ Ban words, set preferences, or define a brand voice — all applied before the c

For a persistent tone profile, see [`examples/brand-voice-template.md`](examples/brand-voice-template.md).

For a personal writing fingerprint built from your own samples, see [`examples/voice-dna-template.md`](examples/voice-dna-template.md) and [`examples/voice-dna-extraction.md`](examples/voice-dna-extraction.md).

## Advanced Passes

The stable surface is still the 12 Korean AI-tell categories. Advanced passes sit on top as optional, conservative checks:

| Pass | What it fixes | Guardrail |
|---|---|---|
| Voice DNA | Output drifts away from the user's own sentence shapes and anti-voice | Never imitates a third party without user-provided samples |
| Hook / first line | Topic arrives late or opener is vague | First 1-2 sentences only; no clickbait |
| Story flow | Body reads like "and then / also / additionally" stacking | Uses only relationships already present in the draft |
| Dumbify | Dense clauses, abstract nouns, avoidable jargon | Lowers reading load, not the idea |
| Anti-AI final | Hollow contrast, inflated claims, generic authority | Specificity without invented numbers or events |

---

## Contributing · License · Services
Expand Down
3 changes: 3 additions & 0 deletions README.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@ Humanize this Korean text:

`korean-humanizer` 不是英文规则的翻译版,而是围绕韩语本身的写作信号设计的。

它还包含保守的 advanced passes:Voice DNA、开头句 / hook 检查、叙事 흐름、阅读负担降低、anti-AI final pass。这些 pass 只用于微调已有韩语文本,不会凭空添加事实、经历、数字或新的承诺。

## 主要用途

### Codex
Expand Down Expand Up @@ -72,6 +74,7 @@ git clone https://github.com/dotoricode/korean-humanizer.git ~/.claude/skills/ko
- [`PROMPT.short.md`](PROMPT.short.md): 快速试用版 prompt
- [`CHEATSHEET.md`](CHEATSHEET.md): 30 个常见韩语 AI 写作痕迹
- [`references/ko-ai-signals.md`](references/ko-ai-signals.md): 12 类 / 100+ 韩语模式目录
- [`examples/voice-dna-template.md`](examples/voice-dna-template.md): 从用户样本文本中提取个人写作习惯的模板
- [`eval/scorecard.md`](eval/scorecard.md): 自动评估结果

## 核心规则
Expand Down
4 changes: 4 additions & 0 deletions ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,10 @@ S4 는 2026-05-21 에 v1.0.0 stable 로 완료됐다. 이후 피드백은 1.0.x
- **LLM-as-judge eval** — 정성 자연스러움 / 의미 보존 자동 평가
- **Batch / API mode** — 다수 텍스트 일괄 humanize
- **Brand voice 자동 추출** — 사용자 글 샘플에서 brand voice profile 자동 생성
- **Voice DNA profile** — 10-20개 사용자 글 / transcript 에서 문장 길이, hook, CTA, anti-voice 를 추출해 세션 범위 profile 로 적용
- **Advanced humanize passes** — hook / story flow / dumbify / anti-AI final pass 를 12 카테고리 위의 optional layer 로 운영
- **Expected-failure cleanup** — eval scorecard 의 legacy expected failure 를 trap fixture 와 품질 fixture 로 분리하고 clean pass 80% 이상으로 정리
- **Eval M6-M9** — 첫 문장 delay, AI tell residue, voice DNA coverage, reading load metric 후보
- **사용자 만족도 정량 측정** — A/B test, NPS 등
- **X·Threads / 강의 소개 도메인** — S2 에서 미룬 도메인
- **카테고리 #13+ 후보** — 실 사용 데이터로 새 패턴 군 발견 시 (major bump 동반)
Expand Down
Loading
Loading