| name | noslop-ko |
| description | 한국어 글에서 AI티(기계문체·번역투·상투구·대구·균일 리듬)를 '쓰기 전에 예방'하거나 '이미 쓴 글에서 수술'한다. 핵심은 예방 — 글 쓰기 요청(블로그, 칼럼, 보고서, 이메일, SNS, 회고)이 오면 씨앗 프롬프트(금지 렉시콘 + 리듬 목표 + 레지스터 잠금)를 장전해 첫 초안부터 티가 안 나게 쓴다. 이미 쓴 글이 오면 의미 불변 원칙 아래 최소편집으로 고친다. 2층 검문 게이트(grep 정량 앵커 + noslop-qa 에이전트 A/B/C/D 판정) 내장. Triggers: AI티, AI 티, AI티 제거, 티 안 나게, 사람처럼 쓰기, 슬롭, 슬롭 제거, 윤문, 휴머나이즈, 번역투, 기계문체, AI 같은 글, 글 써줘, 블로그 써줘, 보고서 써줘, 자연스럽게 고쳐줘, 검문, 검수, 슬롭 QA, 안티슬롭, noslop |
noslop-ko — AI티는 빼는 게 아니라 안 쓰는 것
AI티 제거 윤문은 언제나 의미 훼손 리스크를 동반한다. 그러니 원칙은 하나다.
예방이 최선이고, 수술은 후퇴지점이다.
- 예방 비용: 프롬프트 장전 한 번.
- 수술 비용: 슬롭 생성 + 탐지 + 윤문 + 의미 훼손 리스크 + 두 번 일.
모드 판정 (가장 먼저)
| 상황 | 모드 |
|---|
| 글을 쓰려 한다 (쓰기 요청, 초안 생성, 번역 후 재작성) | 씨앗 — 아래 1번 |
| 초안을 막 썼다 (이번 세션에서 내가 생성) | 자가점검 — 아래 2번 |
| 이미 쓴 글을 사용자가 가져옴 (윤문·AI티 제거 요청) | 수술 — 아래 3번 |
판정이 애매하면 씨앗으로 시작한다. 어차피 자가점검·수술 규칙은 씨앗 안에 들어 있다.
1. 씨앗 모드 — 쓰기 전에 프롬프트를 무장시킨다
글 쓰기 요청을 받으면 바로 쓰지 않는다. 먼저 세 가지를 정한다. 사용자가 정하지 않았으면 질문은 한 번에 하나만.
- 레지스터 — 해라체(~한다) / 합쇼체(~합니다) / 구어(~해요) 중 하나. 문서 전체에서 바꾸지 않는다.
- 독자와 장르 — 누가 어디서 읽나. (블로그인지 보고서인지에 따라 허용되는 흐트러짐이 다르다)
- 재료 — 쓸 내용의 사실(수치·이름·날짜·인용)이 있는가. 없으면 지어내지 않는다 — 빈 채로 두거나 사용자에게 물어야 한다.
정했으면 생성 프롬프트에 씨앗을 장전한다. 전체 템플릿과 장르별 변형은
references/seed-prompts.md. 뼈대는 이것이다:
[쓰는 법]
- 재료에 있는 사실만 쓴다. 없는 수치·인용은 채우지 않는다.
- 문장 길이를 섞는다. 문단마다 짧은 단문 하나 + 60자 넘는 긴 문장 하나.
- 종결어미를 ~다로만 끝내지 않는다.
- 첫 문단은 결론이나 장면으로 시작한다.
[금지 — 발견 즉시 그 자리에서 고쳐라]
- 결론적으로, 요약하면, ~라고 할 수 있다, 시사하는 바가 크다, 주목할 만하다
- "A인가, B인가" / "A가 아니라 B" 대구 (문서 전체 1회 이하)
- ~에 대해, ~에 있어서, ~되어진다, ~에 기반하여
- 콜론 부제 헤딩("제목: 부제"), 이모지, 본문 볼드 강조
- 연결어미 뒤 쉼표("-고,", "-지만,")
- "먼저/반면/결국" 3연속 문단 시작, "즉", "이는 ~을 의미한다"
[출력 후] 위 금지 목록에 걸리는 게 하나라도 남았는지 스스로 훑고 고친 뒤 출력한다.
한 번의 생성 안에서 "쓰고 → 스스로 훑고 → 고치고"가 끝나야 한다. 초안을 내놓고
"수정이 필요하면 말씀해 주세요"로 끝내는 건 이 스킬의 실패다.
2. 검문 게이트 — 2층 (1차 grep · 2차 noslop-qa 에이전트)
내가 방금 쓴 글·수술한 글을 반환하기 전에 게이트를 통과시킨다. 감으로 세면 늘어진다
(실측: 스스로 "2회"라 본 대구가 grep으로는 3건). 그래서 게이트는 이 2층이다.
1차 — grep 게이트 (결정적, 0원가)
bash "${NOSLOP_HOME}/scripts/grep_gate.sh" <파일>
NOSLOP_HOME은 이 스킬의 루트 디렉터리다. 런타임별 해석 — Claude Code는
${CLAUDE_SKILL_DIR}, 가재(GJC)는 디스커버리된 스킬 경로, 직접 실행 시 이 파일이
있는 디렉터리. 경로를 못 찾으면 절대경로로 해결한다(추측으로 건너뛰지 않는다).
- exit 0 — 통과. 판단 항목(리듬·호흡·결말 공식)이 걱정되면 2차로.
- exit 1 — 경고. 2차 QA 에이전트 검문 필수.
- exit 2 — 중단. 슬롭이 문서를 지배한다. 수술 말고 씨앗 프롬프트로 재생성을 권고.
출력된 정량 앵커 블록(KEY=VALUE)은 2차에 그대로 넘긴다 — 코드가 센 수치는 확정 증거다.
2차 — noslop-qa 에이전트 (판단이 필요한 것)
grep은 리듬 균일성, 문단 호흡, 종결어미 단조, 사람 목소리 부재, 과윤문을 못 잡는다.
이건 LLM 판단 영역이다. 역할 정의(SSOT)는 스킬 패키지 안의 agent/noslop-qa.md —
어느 런타임에서 설치해도 ${NOSLOP_HOME}/agent/noslop-qa.md로 항상 함께 따라온다.
런타임별 호출:
- 가재(GJC):
task 도구로 서브에이전트를 띄운다. 과제에 ${NOSLOP_HOME}/agent/noslop-qa.md
절대경로("먼저 읽고 그대로 따르라"고 지시) + 아래 입력 4개를 넘긴다. 검문원은
파일을 고치지 않고 응답으로만 판정을 반환한다.
- Claude Code:
~/.claude/agents/noslop-qa.md 서브에이전트 정의로 호출.
- 에이전트 수단 없음: 아래 30초 체크리스트로 대체.
공통 입력 계약:
target_path(검사 대상), checklist_path=references/slop-checklist.md,
original_path(윤문본일 때 — 파트 4 역방향 검사), anchors=1차 게이트 출력 블록.
- 출력 계약: 판정 A/B/C/D + 위반(본문 인용 + 조항) + 문장 단위 재작성 지시.
- 검문원 보고를 최종 사실로 취급하지 않는다. 위반 인용이 실제 본문에 있는지
직접 확인한 뒤 반영한다. 재작성 지시 중 서법·내용을 바꾸는 지시는 거른다.
발동 조건
| 상황 | 게이트 |
|---|
| 씨앗 모드 초안 (일반 블로그·메모 성격) | 1차 grep. exit 0이면 통과 |
| 게시용 산문 (블로그 발행, 칼럼, 보고서) | 1차 + 2차 에이전트 |
| 수술 모드 결과물 | 1차 + 2차 에이전트(원문 쌍) |
| 사용자가 "검수해줘"·"QA 돌려" | 1차 + 2차 에이전트 |
에이전트 호출 수단이 없는 환경이면 1차 앵커 + 아래 30초 체크리스트로 대체한다:
3. 수술 모드 — 이미 쓴 글을 고친다
사용자가 글을 가져왔다. 이때부터 최우선 규칙은 바뀐다: 문체보다 의미.
불변 조건 (위반하면 그 문장은 롤백)
- 내용 앵커. 윤문 전에 문장별 핵심 명사·개념어를 내부 목록으로 잡는다. 조사·어미는 바꿀 수 있어도 이 원형 어휘는 결과에 최소 한 번 그대로 남는다.
- 서법 보존. 당위("~해야 한다")를 단정("~한다")으로, 추측("~일 수 있다")을 단정으로 바꾸지 않는다. 주장의 강도는 저자의 것이다.
- 레지스터 보존. 격식체 입력 → 격식체 출력. 구어("~거든요", "— 그랬다니까") → 구어. 격식 상향은 윤문이 아니라 훼손이다.
- 역방향 삽입 금지. 원문에 없던 상투구("기록적인 성과를 거두었다" 류)를 새로 넣지 않는다. 살아있는 표현을 상투구로 갈아끼우는 건 역주행이다.
- 사실 불가침. 수치·고유명사·날짜·큰따옴표 안 직접 인용·법령 조문은 탐지·수정 대상이 아니다.
- 최소유효편집. 패턴을 고치고, 잘 쓴 문장은 그대로 둔다. 모든 문단을 같은 치수로 다듬으면 그것도 기계문체다.
절차
- 전문을 읽는다. 핵심 주장 하나와 필자 목소리 신호 3개(어휘, 호흡, 무뚝뚝함, 유머)를 내부 노트로 잡는다.
- 패턴을 찾는다 — references/patterns.md. 찾은 것만 고친다. "AI가 썼는지" 추측하지 않는다. 패턴이 증거다.
- 고친다. 문장 단위 봉합이 어색하면 그 문단을 주제 중심으로 다시 쓴다(사실은 그대로).
- 다시 읽고 두 질문에 답한다: "아직 어디가 기계문체인가", "사실 하나라도 더해지거나 사라졌나". 둘 중 하나라도 걸리면 고친다.
- 결과물을 2층 게이트에 통과시킨다 — 1차 grep + 2차 noslop-qa(원문 쌍, 파트 4 과윤문 검사 포함). 등급 B 이상이 나올 때까지 3~5를 반복한다.
- 결과 + "무엇을 고쳤는가" 두세 줄 + 게이트 판정을 반환한다.
과속 신호
내가 원문을 절반 이상 다시 써고 있다면 멈춘다. 그건 윤문이 아니라 재작성이고,
재작성은 사용자 승인 아래 별도 작업이다. 사용자에게 "이 글은 고침보다 재작성이
맞는 상태"라고 보고한다.
4. 오탐 방지 — 사람 글의 증거는 보존한다
윤문 도구가 사람 글을 훼손하는 사고가 실측으로 있었다. 아래는 불가침이다.
- 원문에 이미 있던 대시·감탄·반문("그래서? — 그게 문제인데")은 사람 흔적이다. 지우지 않는다.
- 일부러 한 반복. 리듬을 만들려고 반복한 문장 시작("왔다. 봤다. 이겼다")은 유지한다.
- 인용·제목·고유명사 안의 패턴. 패턴어를 논하는 자리("'결론적으로'를 지워라")에서 그 단어를 지우면 안 된다.
- 학술·보고서의 실제 절 제목(Ⅱ., (3), 장 제목)은 헤딩 처방의 대상이 아니다.
- 하나의 신호는 증거가 아니다. 대시 하나, "however" 하나, 정돈된 문법만으로 손대지 않는다. 여러 상투패턴이 겹칠 때만 다룬다.
- 사람이 오히려 더 쓰는 것. "~것이다" 종결(사람이 2배 더 씀), "~를 통해"(비번역 한국어가 더 자주 씀), 자생 한국어 산문의 "그는/그의"는 기본 보존. 남발·편중일 때만 리듬 조정.
- 구어 강조·필자의 육성("정말 그랬다니까")은 보존한다. 지우는 건 AI가 기계적으로 얹은 정도부사만.
5. 영어 트랙
영어 텍스트(영문 이메일, README, 해외 발표 초록)에는 영어용 규칙을 쓴다:
references/english.md. em dash 규칙, 잘라낼 어휘 목록,
binary contrast, title case 같은 한국어에 없는 패턴이 거기 있다.
참고