Self-contained single-call Korean AI-tell humanizer skill for EJClaw's runner-skill sync. Derived from epoko77-ai/im-not-ai @0ac1e84 (MIT): adapted the codex single-call path to return the rewrite inline in chat, bundled only the 3 rulebooks it reads, and made reference paths runtime -neutral (Claude + Codex). Includes upstream LICENSE + NOTICE for MIT attribution. No external/paid API — runs on the session model only. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
118 lines
11 KiB
Markdown
118 lines
11 KiB
Markdown
# Quick Rules — Monolith Fast Path 전용 (v2.0)
|
|
|
|
<!-- 이 파일은 build_quick_rules.py가 quick-rules.md를 생성할 때 앞부분에 그대로 붙이는 고정 템플릿이다. quick-rules.md를 직접 고치지 말 것 — 규칙 본문은 ai-tell-taxonomy.md(SSOT)에서 생성된다. 이 헤더·꼬리 고정부만 여기서 관리한다. -->
|
|
|
|
`humanize-monolith` 에이전트가 한 콜에서 탐지·윤문·자체검증을 끝내기 위해 사용하는 슬림 룰북. 본진 `ai-tell-taxonomy.md`에서 `quick: true` 패턴만 처방과 함께 한 줄로 압축해 **자동 생성**한다.
|
|
|
|
**원칙:** 정의 1줄 + 처방 1줄. 예문 생략. 본진 ID와 1:1 매칭(빌드가 보장).
|
|
|
|
**Do-NOT (탐지·윤문 모두 제외):** 고유명사·제품명·모델명·기관명, 수치·날짜·단위, 큰따옴표 안 직접 인용, 법률 조문, 수학·화학·통계 표기, 영어 약어(LLM·GPU·MCP·API 등 업계 표준).
|
|
|
|
**서법 보존 (v2.4, 필수):** 당위·요구("~해야 한다")를 사실 단정("~한다")으로, 추측·유보("~일 수 있다")를 단정으로 바꾸지 않는다. 주장의 강도와 성격은 그대로 둔다. 단 서법의 '보존'과 그 표지의 '반복'은 다른 문제이므로, 표지가 반복돼 리듬을 지배하면 서법을 유지한 채 배치만 바꾼다(I-4).
|
|
|
|
**내용 앵커 (탐지 전에 내부 목록화):** 문장별 주어·목적어·보어에서 원문의 주장을 구성하는 핵심 내용 명사·개념어를 먼저 추린다. 조사·어미는 바꿀 수 있지만 원형 어휘는 결과에 최소 한 번 그대로 남긴다. AI 관용구·추상 표현을 덜어낼 때 수식어·형식명사만 제거하고, 내용 앵커 자체를 삭제하거나 동의어로 치환하지 않는다. 확신할 수 없으면 해당 문장을 롤백한다.
|
|
|
|
**과윤문 가드:** 변경률 30% 초과 = 경고, 50% 초과 = 강제 중단·롤백. 판정은 자가 산출이 아니라 `scripts/verify_change_rate.py`가 한다(오케스트레이터 Phase 2.5).
|
|
|
|
---
|
|
|
|
## A. 번역투 (Translation-ese) — S1~S2
|
|
|
|
- **A-1** [S1] "~에 대해(서)" 남발 → 목적격 조사로 직결("X에 대해 논의" → "X를 논의")
|
|
- **A-2** [S2] "~를 통해/통하여" **문단 3회+ 반복** → 일부만 "~로", "~해서", "~함으로써"로 분산(1~2회 보존)
|
|
- **A-3** [S1] "~에 있어(서)" → "~에서" 또는 "~을 볼 때"
|
|
- **A-4** [S2] "~라는 점에서" 3회+ → "~서", "~라는 이유로"
|
|
- **A-5** [S2] "~와 관련하여/관련된" → "~에", "~의"
|
|
- **A-6** [S2] "~에 기반하여/바탕으로" 남발 → "~로", "~을 보고"
|
|
- **A-7** [S1] "가지고 있다", have/make/take/give+명사 직역 → 형용사-동사 환원 또는 이중주어("강한 경쟁력을 가지고 있다" → "경쟁력이 강하다")
|
|
- **A-8** [S1] 이중 피동 "~되어진다/~지게 된다" → 능동 또는 단일 피동("판단되어진다" → "판단된다")
|
|
- **A-9** [S2] "~에 의해" 피동 → 행위자를 주어로("AI에 의해 생성" → "AI가 만든")
|
|
- **A-10** [S2] "~할 수 있다" 남발 → 단언으로("높일 수 있다" → "높인다")
|
|
- **A-11** [S2] "~을 위해" 목적절 남발 → "~려고", "~도록", "~위한"
|
|
- **A-15** 추상 주어 + 만능 동사(보여준다/제공한다/가져온다), 사역-인지 동사 직역 → 구체 주어로 환원, 사역은 "X 때문에/덕분에/로 인해" 부사절, 인지 동사(suggest/show/indicate)는 "~에 따르면 ~이다"
|
|
- **A-16** **영어 원문을 번역·요약한 글에서만** "그/그녀/그것/그들" 단락 3회+ (자생 한국어 산문에는 발동하지 않음 — 사람이 오히려 더 씀) → 50% 이상 생략(영형) 또는 호칭-명사구로. 번역 맥락이 아니면 손대지 말 것
|
|
- **A-18** 명사 앞 3어절 이상 관형구/관계절 좌향 수식 → 문장 분리 또는 후치 동격절("X를 만났는데, 그 X는 ~")
|
|
- **A-19** 이중 조사 "~에서의/~에로의/~으로의/~에의/~으로부터의" → 절-구로 풀어쓰기, 단순 "~의"는 비대상
|
|
|
|
## B. 영어 인용·용어 과다 — S2
|
|
|
|
- **B-1** [S2] 한글 + 괄호 영어 병기 매번 반복("~(Sovereign AI)" 식) → 첫 등장만 병기, 이후 한글만
|
|
- **B-2** [S2] 설명 없이 낀 광고성 buzzword(seamless·robust·leverage 등) → 광고성만 한국어로 풀고 표준 technical term(API·prompt·token 등)은 원어 보존, 기계적 직역 금지
|
|
|
|
## C. 구조적 AI 패턴 (서식·레이아웃) — S1~S2
|
|
|
|
- **C-2** [S2] 칼럼-리포트에서 3개 이상 연속 불릿 블록 → 문단 산문으로 통합, 나열이 의미 있는 지점만 유지
|
|
- **C-5** [S1] 이모지 남발(리스트 머리, 헤딩, 강조) → 칼럼-리포트 장르면 전부 삭제
|
|
- **C-7** 문단 문두 "먼저-반면-결국" 3단 공식 → 접속사 1~2개로 줄이거나 본문에 녹여 제거
|
|
- **C-8** "A인가, B인가"·"A가 아니라 B" 대구 **2회+** 반복 (사람 글 실측 0건이라 오탐 위험 없음) → 한 번만 살리고 나머지는 비대칭 평서문·직접 단언으로. 전멸 금지
|
|
- **C-9** 숫자 괄호 인덱싱 "1) 2) 3)" 나열 → 본문에 녹이거나 "우선~", "다음으로~"로 어휘 변주
|
|
- **C-10** 콜론 부제 헤딩 "X: Y" 반복 → 헤딩을 단일 명사구로 압축, 단 학술-보고서의 실제 절 제목은 보존
|
|
- **C-11** 연결어미(-고/-며/-지만/-면서/-아서/-어서) 직후 쉼표 → 쉼표 제거, 6회+ = 강한 신호(KatFish 4.84배 분리도)
|
|
|
|
## D. AI 특유의 관용구 (Signature Phrases) — S1
|
|
|
|
- **D-1** 결산 lexicon "결론적으로/따라서/이를 통해/그러므로/요약하면/정리하자면" → 3회 초과 시 1~2건만 남기고 삭제-치환
|
|
- **D-2** "시사하는 바가 크다/주목할 만하다/매우 중요하다" 류 의의 과장 → 삭제 또는 구체 결론으로
|
|
- **D-3** 열거 도입 "크게 세 가지로 나눌 수 있다/다음과 같은" → 도입구 삭제하고 바로 본론 서술로
|
|
- **D-4** hype 어휘(혁신적/획기적/압도적/파격적/폭발적/전례 없는) 3회+ → 구체 수치-사실로 환원
|
|
- **D-5** 의인화 추상 주어("기술이 묻는다", "시대가 부른다") → 사람-기관 주어로 교체 또는 의인화 동사 약화
|
|
- **D-6** 결말 공식 "~할 때입니다/~시점입니다/~할 순간입니다" → 구체 동사 단언으로, 문서당 1회 이하
|
|
- **D-7** 변환 공식 "X에서 Y로/X을 넘어 Y로" 반복 → 직접 단언으로, 문서당 1회 이하
|
|
|
|
## E. 리듬·문장 길이 균일성 — S2
|
|
|
|
- **E-1** 문장 길이 균일 + 100자+ 장문 부재 → 단문 1~2개 + 인접 문장을 이어 만든 장문 1개를 문단마다(내용 추가 금지)
|
|
- **E-2** 동일 종결어미 4문장+ 연속, 진행형 "~고 있다" 자동 매핑 → 종결어미 다양화, "~고 있다"는 단순 시제로 환원 가능 시 환원("읽고 있다" → "읽는다")
|
|
- **E-7** 청자 경어법 단계(해라/하게/하오/해요/합쇼) 한 문서 내 혼재(대화-구어 한정) → 격식 등급 하나로 일관 유지
|
|
|
|
## F. 과도한 수식·중복 — S2
|
|
|
|
- **F-4** 한자어 명사화 -성/-적/-화 + 영어 명사화 -tion/-ment/-ness/-ity 직역 누적(문서 12회+) → 동사-형용사 어근으로 환원("the implementation of the policy" → "정책 시행")
|
|
- **F-5** "~적 N" 추상 체인("전략적 함의", "실천적 기반") 3회+ → 명사+명사 또는 풀어쓰기("전략 함의", "실천의 기반")
|
|
|
|
## G. 과도한 Hedging (완곡) — S2
|
|
|
|
- **G-1** 추측 종결 "~로 보인다/~로 판단된다/~라고 여겨진다/~인 듯하다" 남발 → 단언 가능한 곳은 단언
|
|
- **G-2** 이중-삼중 완곡 "~할 가능성이 있을 수 있다/~로 보여질 수 있다" → 완곡 하나만 남김
|
|
- **G-3** 균형 lexicon "양쪽 모두/두 가지 모두/장점도 있지만/신중하게/균형" 4회+ → 한쪽 단언, 구체 비교, 조건부로 치환
|
|
|
|
## H. 접속사 남발 — S2
|
|
|
|
- **H-1** 문두 접속사 "또한/따라서/즉/나아가/아울러/게다가/더욱이" 5회+ → 대량 제거, 문장 자체가 흐름을 잡게
|
|
- **H-3** 메타 진입 "이는 ~/이 점에서/이 관점에서/이 말은" 3회+ → 본문에 녹이거나 삭제
|
|
- **H-4** "즉" 남발 → "곧", "말하자면" 등으로 변주 또는 생략, 문서당 2회 이하
|
|
|
|
## I. 형식명사·의존명사 과다 — S2
|
|
|
|
- **I-1** "~한 것이다/~일 것이다" **연속 3회+ 남발** → 일부만 확정 서술 "~다"로(기본 보존)
|
|
- **I-2** "주목할 점은/X은 ~라는 점에 있다" 형식명사 강조 → "X는 ~다" 직설로
|
|
- **I-3** "~다는 것이다/~다는 뜻이다" 결말 → "~다" 직접 종결로, 합산 2회 이하
|
|
- **I-4** 당위로 끝나는 문단 2개+ (첫 번째 제외) → 당위 문장을 문단 끝에서 앞·중간으로 이동해 결말 자리를 비움. 병합·삭제·서법 치환·명사화 금지. 전후 의무 표지 총수 동일
|
|
|
|
## J. 시각 장식 남용 — S2~S3
|
|
|
|
- **J-1** 문장마다 핵심 단어 ** 볼드 강조 → 칼럼-리포트면 본문 볼드 거의 제거
|
|
- **J-2** 따옴표 강조 5회+ → 진짜 인용만 남기고 평어로
|
|
- **J-3** 대시(—) 부가 설명이 문장마다 반복 → 쉼표, 괄호, 별도 문장으로 분해 — 단 원문에 이미 있던 대시는 보존
|
|
|
|
## 자체검증 체크리스트 (monolith 윤문 후 자가 점검)
|
|
|
|
윤문 직후 5초 내에 다음을 자체 점검한다. 한 항목이라도 위반이면 해당 edit 롤백.
|
|
|
|
1. **고유명사·수치·날짜·인용·내용 앵커 100% 보존**: 원문 대비 한 글자도 다르지 않은가. 문장별 핵심 내용 명사·개념어의 원형 어휘가 각각 최소 한 번 남았는가
|
|
- 표준 technical term(API·prompt·token·pipeline 등)은 원어/외래어로 보존 — 기계적 직역 금지(prompt→"지시문" ✗)
|
|
2. **변경률**: 30% 이하인가. 확정 판정은 오케스트레이터 Phase 2.5(`verify_change_rate.py`) — 자가 산출값은 참고용
|
|
3. **장르 이탈 없음**: 칼럼이 에세이·문학으로 변하지 않았는가, 리포트가 블로그체로 떨어지지 않았는가
|
|
4. **register 보존 (양방향)**: 원문 격식체면 결과도 격식체, 원문 구어체면 결과도 구어체. 평어체로 떨어뜨리지도, '-했-'→'-하였-'로 격식을 올리지도 않는다
|
|
5. **잔존 S1 패턴 0건**: D-1~D-3, A-7, A-8, C-5, C-10, C-11, H-1, I-1, J-2 핵심 S1이 남아있지 않은가 (**A-16은 번역·요약 맥락에서만 점검** — 자생 한국어 산문에서는 사람이 더 쓰는 패턴이라 제외, v2.4)
|
|
6. **인공 표현 자제 (빼기 전용)**: 원문에 없던 비유·수사·상투구("기록적인 성과·~로 평가된다" 등)를 윤문 과정에서 새로 심지 않았는가. 살아있는 구어(부가설명 대시·짧은 감탄·반문)는 보존
|
|
|
|
위반 시: edit 롤백 → 다시 윤문 → 재점검. 자체 루프 최대 1회. 이상 미해결이면 결과를 그대로 출력하되 final.md의 `<!-- HUMANIZE-SUMMARY -->` 블록에 "자가검증 미통과 항목 N건" 표기.
|
|
|
|
## 등급 기준 (자가 채점)
|
|
|
|
- **A**: S1 잔존 0, S2 잔존 2 이하, 변경률 10~25%, 자체검증 6항 모두 통과
|
|
- **B**: S1 잔존 0, S2 잔존 4 이하, 자체검증 5항 이상 통과
|
|
- **C**: S1 잔존 1~2 또는 자체검증 4항 이하 통과 — 사용자에게 strict 모드 권고
|
|
- **D**: S1 잔존 3+ 또는 변경률 50% 초과 — 작업 중단 권고
|