- name
- detect
- description
- 한글 텍스트가 AI(ChatGPT·Claude·Gemini 등 LLM)가 쓴 글인지 진단·판별한다. 번역투·상투어·접속사 남발·쉼표 과용·POS 다양성 저하·형식명사 남용 등 AI 티 신호를 스캔해 'AI 가능성(높음/중간/낮음)'과 신뢰도, 근거를 제시한다. 글을 고치지 않고 진단만 한다. 다음과 같을 때 사용 — AI/GPT가 쓴 글인지 묻거나, AI 탐지·판별·검출을 요청하거나, "사람이 쓴 글 맞아?"처럼 되물을 때. 댓글·SNS 같은 단문도 판별한다. 글을 사람처럼 다듬는 윤문(고쳐쓰기)이 목적이면 humanize 스킬을 쓴다. 표절·부정행위 단정의 근거로 쓰지 말 것 — 확률적 추정이다.
# 윤문 탐지(detect) — AI 한글 글 판별
<role>
한글 텍스트가 LLM이 쓴 것인지 **진단**한다. 윤문(humanize) 스킬이 *고쳐 쓰는* 도구라면, 이 스킬은
*판별·설명*하는 도구다. 같은 AI 티 분류를 쓰되, 고치지 않고 **AI 가능성·신뢰도·근거**만 보고한다.
</role>
<resources>
필요할 때 아래 파일을 읽어 기준으로 삼는다.
- `references/lread-rubric.md` — 사람의 한국어 AI 글 판별 루브릭(LREAD, ACL 2025 후속). **Phase 1~2**의 판정 틀. fluency trap 경고 포함.
- `../humanize/references/ai-tell-taxonomy.md` — 11대 카테고리 AI 티 분류(탐지할 신호 목록). **Phase 1**에서 읽는다(같은 플러그인의 humanize 스킬 공유).
- `../humanize/references/katfishnet-research.md` — 정량 특징의 학술 근거(KatFishNet, ACL 2025). 가중치 판단 근거.
- `references/xdac-research.md` — **단문/SNS·댓글** AI 탐지 신호(XDAC, ACL 2025). 입력이 단문·구어체일 때만 **Phase 1-S**에서 읽는다.
</resources>
<workflow>
<phase n="0" name="입력·장르">
1. 판별할 한글 텍스트를 확보한다(붙여넣기 또는 파일).
2. 첫 ~300자로 장르를 추정한다(칼럼/리포트/블로그/공식문서/시 등). 장르는 신뢰도 보정에 쓴다.
3. **단문/SNS 게이트** — 입력이 짧고 구어체(댓글·SNS·채팅·리뷰 등 비격식 단문)면 **단문 모드**를 켠다.
켜지면 Phase 1-S(단문 신호축)를 추가 적용한다. 문어체(칼럼·리포트·공식문서)면 켜지 않는다 — 적용 시 위양성.
</phase>
<phase n="1" name="신호 스캔">
`ai-tell-taxonomy.md`의 11대 카테고리 패턴을 스캔하고, 각 탐지의 심각도(강/중/약)와 빈도를 센다.
더해 `katfishnet-research.md` 기반 **정량 신호**를 살핀다.
- **쉼표 과용** — 연결어미·접속부사 뒤 쉼표 빈도(한국어는 본래 쉼표가 드묾). _가장 강한 신호._
- **POS·구조 다양성 저하** — 종결어미·문장 구조·문두의 단조로운 반복.
- **의존명사·보조용언 정형 반복** — "할 수 있다 / 하는 것 / 것이다"의 기계적 반복.
- **균일한 리듬** — 비슷한 길이·구조의 문장 연속.
- **과소 서술·개조식**(_약한 보조 신호_) — 성분·조사·어미 생략, 명사구·연결어미 종결, 일반 어휘를 밀어낸 비유(카테고리 11).
요약·보고 맥락의 LLM 출력에 잦지만 사람이 쓴 메모·실무 문서에도 흔하므로 **단독 판단 금지**, 다른 신호와 겹칠 때만 가산.
- **경동사·대동사 군더더기**(_약한 보조 신호_) — '명사+을 실시/수행/진행하다'(→'명사+하다') 같은 한자어 대동사 분리(카테고리 6 번역투). 격식·공문서체 사람 글에도 흔하므로 **단독 판단 금지**, 다른 신호와 겹칠 때만 가산(`<cautions>` 참조).
이어 `references/lread-rubric.md`의 **LREAD 루브릭 3대 차원**으로 다시 본다(`<fluencyTrap>` 적용).
- **내용(Content)** — **창의성·발달적 비정형성**이 있는가. *부재*가 AI 단서, 존재가 사람 단서.
- **조직(Organization)** — 서–본–결 구조 완결성·템플릿 충실. **높을수록 오히려 AI 의심**(역설 신호).
- **표현(Expression)** — 자연스러운 우리말(번역투 단서), 어색함·중의성, 띄어쓰기·구두점 정형성,
register 안정성이 _부자연스럽게 과도하게_ 일정한가, 페르소나(주장된 작성자 수준)와의 정합성.
</phase>
<phase n="1S" name="단문/SNS 신호 (조건부)">
**Phase 0에서 단문 모드일 때만 수행.** `references/xdac-research.md`를 읽어 단문/구어체 신호를 본다.
문어체 입력에는 적용하지 않는다.
- **반복문자 부재** — 구어 맥락인데 ㅋㅋ/ㅎㅎ/ㅠㅠ가 전무 → AI 단서(가장 강함).
- **포맷팅 부재** — 줄바꿈·이중공백이 거의 없음 → AI 단서.
- **격식·정형 과다·중립 어조** — 짧은 댓글인데 격식체·헤지 정형구("것 같다")·감정 중립.
- **길이 일관성** — 문장/댓글 길이 분산이 부자연스럽게 작음.
- **이모지·특수문자 획일성** — 유무가 아니라 표준·공통기호만 획일적으로 쓰는지(유무로 판단 금지).
**방향 주의:** 카테고리 8(시각 장식)은 문어체에서 _장식 과잉_=AI지만, 단문에서는 _포맷팅·반복문자 결핍_=AI로
**신호 방향이 반대**다. 단문 모드에서는 결핍 쪽을 본다. 개별 신호는 약하므로 **여러 축이 겹칠 때만** 가중한다.
</phase>
<phase n="2" name="점수·판정">
신호를 합산해 **AI 가능성**과 **신뢰도**를 산정한다(`<scoringRubric>`·`<fluencyTrap>`). 확정이 아니라 추정임을 유지한다.
</phase>
</workflow>
<fluencyTrap>
**유창성 함정(fluency trap) — 가장 중요한 원칙.** 매끄럽고 규범에 맞고 구조가 완결된 글일수록
사람이 쓴 것처럼 *느껴지지만*, LLM 글은 바로 그 형식 차원(특히 **조직**)에서 사람만큼/더 높은 점수를 받는다.
LREAD 연구에서 사람이 직관만으로 판별하면 정확도 60%·일치도 κ −0.09(우연 수준)에 그쳤고, LLM을
사람으로 오판하는 false-negative가 많았다. 따라서:
- **표면 유창성·구조 완결성을 '사람' 증거로 쓰지 않는다.** 오히려 _지나친_ 정형성·완결성은 AI 의심 신호다.
- 판별의 무게는 **표현(번역투·과규범화·register)·내용(창의성·발달적 비정형성)·페르소나 충실도**에 둔다.
- 사람 글은 변이가 크다 — 국소적 창의성, 비정형 실현, (학생 글이라면) 발달 수준에 맞는 불규칙성. 이 *부재*가 단서다.
</fluencyTrap>
<scoringRubric>
신호를 종합한 휴리스틱 추정이다. 정확한 알고리즘이 아니라 판단 기준이다.
| AI 가능성 | 기준 |
| --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| **높음** | 심각도 '강' 신호 여러 건 + 쉼표 과용·다양성 저하 등 정량 신호 다수 일치 + 번역투·과규범화가 보이는데 **창의성·비정형성은 거의 없음**(형식만 매끄러움) |
| **중간** | 강 신호 1~2건 또는 중 신호가 여럿이나 정량 신호는 약함. 창의성·비정형성 단서가 일부 존재 |
| **낮음** | 뚜렷한 신호가 거의 없고, 국소적 창의성·자연스러운 변이·페르소나 정합성이 보임 |
> 형식 점수(유창성·구조 완결성)는 **그 자체로 사람 증거가 아니다**(`<fluencyTrap>`).
**신뢰도 보정** — 아래에 해당하면 신뢰도를 낮춘다:
- **짧은 문어체 텍스트**(대략 300자 미만) — 신호 표본이 부족. **단문 모드에는 적용하지 않는다** —
단문은 Phase 1-S의 전용 신호축(XDAC)으로 판정하며, 길이 자체는 감점 사유가 아니다. 대신 **최소 증거
기준**을 쓴다 — 서로 다른 신호축이 2개 미만이면 신뢰도를 '낮음'으로 묶는다. 단문 축은 개별로는 약해서
하나만으로는 격식 있게 쓴 사람 댓글과 구분되지 않는다.
- **이미 사람이 손본 글** — 편집된 LLM 텍스트는 신호가 옅어짐.
- **창작·시 장르** — 연구에서도 판별이 가장 어려웠던 영역(시 평균 정확도가 가장 낮음).
- **격식 보고·정형 문서** — 사람이 써도 정형성이 높아 _위양성_(사람 글을 AI로 오판) 위험.
- **장르 불일치** — LREAD 루브릭은 논증 에세이(초·중·고) 기준이므로 다른 장르엔 가중치를 조정해 적용.
</scoringRubric>
<outputFormat>
1. **한 줄 판정** — `AI 가능성: {높음|중간|낮음} / 신뢰도: {높음|중간|낮음} / 번역문 가능성: {높음|중간|낮음} / 장르: {추정 장르}`
번역문 가능성은 카테고리 1·2·6(번역투)에 더해 **시제·서법 직역**(`~해 왔다`·`~하고 있는 중`)과
**문두 접속어 명시화 과잉**까지 함께 보고 판정한다. 시제·서법 직역은 humanize 분류에 없어서, 빠뜨리면
그것이 주된 신호인 번역문이 실제보다 낮게 나온다. 반면 문두 접속어는 카테고리 4(접속사·연결어 남발)에도
있으므로 **같은 문장을 두 축에 이중 계상하지 않는다** — AI 가능성에 이미 셌다면 번역문 가능성에서는
보조 신호로만 본다. **번역문 가능성과 장르**는 `polish-all` 파이프라인의 라우팅 입력이므로 단독
실행에서도 항상 채운다.
2. **근거 요약** — 어떤 신호가 강하게 나왔는지.
3. **신호 표**
| 신호 | 정도 |
| --------------------------------------- | ------------- |
| 쉼표 과용(연결어미 뒤) | 강함 |
| 번역투(카테고리 1·2·6) | 보통 |
| 과소 서술·개조식(카테고리 11, 보조) | 약함 |
| POS·구조 다양성 | 낮음(반복적) |
| 창의성·비정형성 | 거의 없음 |
| register 안정성 | 과도하게 일정 |
| (형식 완결성은 사람 증거 아님 — 참고만) | 높음 |
단문 모드면 '포맷팅·반복문자 결핍', '격식·중립 과다' 행을 추가한다.
4. **의심 구간 하이라이트** — AI 티가 짙은 문장을 이유와 함께. 뚜렷한 구간이 없으면 없다고 적는다.
5. (선택) "사람 글처럼 다듬으려면 **humanize** 스킬로 윤문할 수 있다" 안내.
</outputFormat>
<cautions>
**단정하지 말 것.**
- 이 판별은 **확률적 추정**이다. "AI가 썼다"고 단정하지 말고 "AI 티 신호가 강하다/약하다"로 표현한다.
- **유창성 함정**(`<fluencyTrap>`)을 기억한다 — 매끄럽다고 사람, 어설프다고 AI가 아니다.
- 사람도 번역투·상투어·쉼표 습관을 쓸 수 있다. **위양성**을 항상 경계한다.
- **경동사·대동사 군더더기('~을 실시/수행/진행하다')는 약한 신호다** — 격식·보도·공문서체 사람 글에도 매우 흔하다(공공언어 가이드가 _사람의_ 과용을 교정하려 존재). 학술 1차 근거도 없고 실무·규범 처방 기반이다. **단독으로 'AI'라 판정하지 말 것** — 다축이 겹칠 때만 가산.
- **단문/SNS 축(Phase 1-S)은 단문·구어체에만** 적용한다. 문어체에 "반복문자 없으니 AI"를 들이대면 위양성이다(장르 게이트 필수).
- **이모지 유무로 판단 금지** — 사람·AI 모두 이모지를 쓴다. 신호는 사용의 *획일성/표준화 정도*지 유무가 아니다.
- 표절·부정행위·학사 징계 등 **불이익 판정의 단독 근거로 쓰지 않는다**. 보조 참고 자료일 뿐이다.
- 탐지기를 속이기 위한 용도가 아니다(그건 윤문의 목적도 아니다).
</cautions>
<outOfScope>
- 글을 사람처럼 고쳐쓰기 → **humanize** 스킬(윤문)
- 맞춤법·오탈자 교정, 번역, 사실 검증(팩트체크)
</outOfScope>
GitHub에서 보기