---
name: kwakseongjae/omd:humanize
source: https://app.decimal.ai/s/kwakseongjae-omd-humanize-f8acfc@2/SKILL.md
source_sha256: b899060f222c
---

<!-- omd:installed-skill — managed by `omd install-skills`. Do not edit; rerun the command to refresh. -->


# omd:humanize

문장을 그럴듯하게 다시 쓰는 스킬이 아니다. **보존할 사실을 잠근 뒤, 대상 언어에서 반복되는 어색한 패턴만 국소적으로 고친다.** 단어 하나를 보고 AI 문장으로 단정하지 않고, 같은 문서에서 여러 신호가 반복되거나 서로 겹칠 때만 수정 후보로 올린다.

## 지원 범위

- 제품 문서, 온보딩, 도움말, 버튼·오류·빈 상태, 랜딩·릴리스 노트
- 한국어 `ko`, 영어 `en`, 일본어 `ja`, 중국어 간체 `zh-CN`, 대만 번체 `zh-TW`
- `AUDIT`: 문제 구간과 이유만 보고
- `REWRITE`: 확인된 구간을 고치고 원문과 대조
- `LOCALE`: 한국어 canonical의 뜻과 사실을 유지하며 대상 언어에서 새로 구성

맞춤법 검사, 일반 번역, 검색엔진용 대량 변형, AI 탐지기 우회는 대상이 아니다.

## 시작 전에 읽을 것

1. 프로젝트 `DESIGN.md`의 `content-locales` stable anchor와
   `.omd/preferences.md`. 유효한 hash-bound `profile: portable-core` package가
   있으면 `graph.content_locales`가 canonical이고, package가 없거나 invalid면
   standalone DESIGN.md anchor를 사용한다. exact Core anchor가 전혀 없는
   문서만 legacy compatibility input으로 읽어 의미 heading `Voice & Tone`을
   `content-locales`로 매핑하며 숫자 section은 새 citation에 복사하지 않는다.
2. 대상 파일과 같은 제품의 이미 승인된 카피
3. [`references/locale-playbooks.md`](./references/locale-playbooks.md)의 **해당 locale 섹션만**
4. 출처와 차용 범위가 필요하면 [`references/sources.md`](./references/sources.md)

voice 우선순위는 `사용자 지시 > 프로젝트 voice > 기존 제품 카피 > locale playbook`이다.

## 핵심 계약

### 1. 보호 구간부터 잠근다

다음은 사용자가 명시적으로 허용하지 않으면 바꾸지 않는다.

- 수치, 날짜, 단위, 가격, 버전, 품질 등급
- 사람·회사·제품·기능명
- URL, 파일 경로, CLI 명령, 코드, 환경 변수, skill/agent ID
- 직접 인용, 법률·정책 문구, 측정 결과
- 버튼이 수행하는 실제 동작과 제품 주장의 범위

보호 구간이 달라지면 자연스러워졌어도 실패다.

### 2. 단일 표현이 아니라 군집을 본다

수정 후보는 아래 중 하나를 충족해야 한다.

- 강한 번역투·의미 중복·잘못된 locale 용어가 명확함
- 같은 문장 구조·접속어·종결·대조법이 한 화면에서 반복됨
- 추상적인 찬사가 기능·행동·근거를 대신함
- 라벨과 실제 결과가 맞지 않음
- 문장 리듬과 정보 순서가 독자의 행동을 방해함

대시, 3개짜리 목록, 수동태, 격식체처럼 문맥상 자연스러울 수 있는 특징은 단독으로 실패 처리하지 않는다.

### 3. 삭제보다 구체화한다

군더더기를 지운 자리에 원문에 이미 있는 기능, 행동, 조건을 앞으로 옮긴다. 원문에 없는 수치·사례·효과를 만들어 빈자리를 채우지 않는다. 근거가 없으면 더 작은 주장으로 줄인다.

### 4. locale은 독립 원고다

한국어 canonical의 thesis와 사실은 공유하지만 문장 순서·비유·주어·호흡까지 복제하지 않는다. `zh-TW`는 `zh-CN`을 번체자로 치환한 결과가 아니며, 일본어는 영어 문장의 조사만 바꾼 결과가 아니다.

## 실행 절차

1. **범위 선언** — mode, target locale, 화면/문서, 독자, 보존할 동작을 한 줄로 적는다.
2. **원문 스냅샷** — 보호 구간 목록과 문서의 핵심 주장 1–3개를 기록한다.
3. **패턴 진단** — 구간마다 `locale`, `clarity`, `rhythm`, `voice`, `action` 중 해당 축과 근거를 붙인다. 모든 문장을 고치려 하지 않는다.
4. **국소 수정** — 문제 구간만 고친다. 문단 전체 재작성은 정보 순서가 locale에서 어색할 때만 허용한다.
5. **대조 검증** — 원문과 결과의 수치·명칭·URL·명령·인용·기능 범위를 직접 비교한다.
6. **화면 검증** — UI 카피면 실제 locale route에서 줄바꿈, overflow, 버튼-결과 정합, 보조기술 label을 확인한다.
7. **보고** — 무엇을 왜 고쳤는지와 일부러 남긴 표현을 짧게 남긴다.

## 판정 등급

- **BLOCK** — 보호 구간 변경, locale 혼입, 기능 의미 변경, 근거 없는 사실 추가
- **WARN** — 한 화면에서 반복되는 번역투·기계적 구조·추상 찬사·CTA 불일치
- **FYI** — 브랜드 voice 안에서 선택 가능한 호흡·어휘 차이

AI 작성 확률이나 “사람이 썼음” 점수는 만들지 않는다. 이 등급은 출처 판별이 아니라 편집 우선순위다.

## 출력 형식

`AUDIT`은 다음 형식을 쓴다.

```markdown
### [WARN] KO-TRANS-02 · 수단 표현 반복
- 위치: `web/src/data/copy.ts:42`
- 현재: "레퍼런스를 통해 디자인 결정을 할 수 있습니다."
- 이유: 같은 문단에서 `~을 통해`, `~할 수 있다`가 반복되어 행동이 흐려짐
- 제안: "레퍼런스를 보고 디자인을 결정합니다."
- 보호 확인: 제품명·기능 범위·수치 변경 없음
```

`REWRITE`와 `LOCALE`은 수정 파일과 함께 아래를 보고한다.

- locale과 voice 기준
- BLOCK 0 여부
- 고친 지배 패턴 3개 이내
- 보호 구간 대조 결과
- 실제 route에서 확인한 항목

## 다른 OmD 역할과의 관계

- `omd:kr-writer`가 한국어 초안을 만들고 이 스킬이 후편집한다.
- `omd:locale-adapter`가 locale별 원고를 만들고 이 스킬이 각 locale의 자연스러움과 의미 보존을 검증한다.
- `omd:ux-writer`는 섹션 전략과 대안을 제안한다. 이 스킬은 선택된 카피를 최종 문장으로 정리한다.
- UI 패턴까지 문제면 `omd:slop-audit`, 구현에는 `omd:apply`를 사용한다.

## 금지

- 단어 blacklist만으로 전체 문서를 다시 쓰기
- 의미 보존을 확인하지 않고 “더 자연스럽다”고 완료하기
- 영어 원고를 모든 locale의 문장 뼈대로 사용하기
- `zh-CN`을 기계적으로 번체화해 `zh-TW`로 배포하기
- 원문에 없는 성과·고객·통계·기능 추가하기
- AI 탐지 우회, 인간 작성 보증, 작성자 추정 제공하기