한국어 AI 티 빼는 스킬 stop-slop-ko를 포크해서 내 규칙을 넣었다

Claude Code 스킬 stop-slop-ko를 포크해서 감성 제목 검사, ㄻ 명사형 검사, 자동 적용 훅 문구를 넣었다. 블로그 글 56편을 검사한 결과, 스캐너가 잡는 것과 못 잡는 것, 쓸지 말지 판단 기준을 정리했다.

한국어 AI 티 빼는 스킬 stop-slop-ko를 포크해서 내 규칙을 넣었다

블로그 글 56편을 AI 티 검사기에 돌렸더니 긴 줄표(em dash)가 0건이었다. 9월 13일 이전 글 52편에서 349건이 나오던 신호다. 그런데 이 검사기를 PASS한 문서의 표지 제목은 읽자마자 AI가 지은 것 같았다. 검사를 통과했는데 왜 AI 티가 남을까.

결론부터 적으면 스캐너는 부호와 번역투를 글자 패턴으로 찾고, 제목의 어감은 보지 못한다. 그래서 stop-slop-ko를 포크해서 내 규칙을 넣었다.

stop-slop-ko는 한국어 문서에서 AI가 쓴 티를 잡아주는 Claude Code 스킬이다. 스킬은 Claude에게 작업 규칙을 알려주는 파일 묶음이고, 여기에 딸린 slop_scan.py가 문서를 검사해서 WARN과 INFO를 낸다. WARN은 고쳐야 할 신호이고 하나라도 있으면 FAIL이다. INFO는 사람이 보고 판단할 신호다. 포크는 남의 리포를 내 계정으로 복제해서 따로 고치는 일이다.

--prose --info를 붙여서 서술형 신호까지 다 본 결과는 FAIL이고, WARN 55건에 INFO 31건이었다.

신호수준건수
장식 이모지WARN50
조사 앞 공백WARN4
ㄻ 명사형WARN1
em dashWARN0
번역투 4종WARN0
빈 강조어INFO14
“단순한 ~이 아닌” 틀INFO5
교훈형 마무리INFO4
공백 가운뎃점 1회INFO4
명언으로 시작하는 첫 문단INFO2
감성 제목INFO2

em dash가 0건인 건 9월 13일에 지워서다. 커밋 하나로 em dash 382개를 없앴다. 그 커밋 직전의 글 52편을 같은 스캐너로 돌려보니 WARN이 402건이었고 그중 349건이 em dash였다. 그때는 이 스캐너가 없었다. 원본 리포의 첫 커밋이 10월 9일이다.

내 규칙을 넣은 커밋은 11월 9일 오후 4시 32분에 시작해서 5시 4분에 끝났다. 32분 동안 겪은 일을 순서대로 적는다.

블로그 글 56편을 스캐너에 돌린 결과


포크하려고 보니 올릴 게 없었다

규칙을 넣으려고 포크부터 하려는데, 내 설치본이 원본과 파일까지 똑같았다.

쓰면서 다듬었다고 믿었던 규칙은 전부 AI 메모리에 있었다. 스킬 파일에는 들어간 게 없었다. 메모리에 있는 규칙은 내 Claude에서만 먹힌다. 포크를 떠도 올릴 변경분(diff)이 없는 상태였다.

그래서 규칙을 리포로 옮기는 일부터 시작했다.

스캐너를 통과했는데 표지 제목이 AI 같았다

일하면서 만든 문서를 스캐너에 돌렸다. PASS였다. 그런데 표지 제목을 읽자마자 AI가 지은 제목 같았다.

원인은 스캐너의 구조에 있다. 정규식으로 부호와 번역투 패턴을 찾는 도구라서, README 예시로 보면 이런 문장을 잡는다.

1
2
- 대여 기록 관리에 있어서 확인 절차가 추가되어짐
+ 대여 기록 확인 절차 추가됨

“~의 결”, “~의 온도” 같은 제목에는 고칠 부호도 번역투도 없다. 사람 눈에는 바로 걸리는데 스캐너는 그냥 보낸다. README에 넣은 예시로 적으면 이런 식이다.

1
2
- # 고객 경험의 온도
+ # 고객 설문 결과 보고

감성 제목을 한 일 그대로 고친 예시

규칙을 두 개 넣었다. slop_scan.py에 들어간 코드는 5줄이다.

  • 감성 제목 INFO. 30자 이내의 짧은 줄이 “~의 결”, “~의 온도”, “~의 무게”, “~을 잇다”, “~을 넘어”로 끝나면 위치를 알려준다. INFO라서 FAIL로 치지는 않는다.
  • ㄻ 명사형 WARN. “만듦”, “이끎”은 맞춤법에는 맞는데 읽을 때 걸린다. “만들었음”, “이끌고 있음”처럼 풀어 쓰게 했다. “만듦새” 같은 단어는 안 걸리게 테스트도 넣었다.

돌려보니 이 블로그에도 있었다. 감성 제목 2건은 2월에 올린 글의 소제목 “시험장의 온도”, “토요일의 온도”다. ㄻ 명사형 1건은 “이 힘듦 뒤에”라는 문장의 “힘듦”이다. 개조식 끝맺음을 잡으려던 규칙이 문장 안의 명사까지 잡은 거라 이건 오탐에 가깝다.

스킬 폴더만 복사하면 훅이 빠진다

stop-slop-ko에는 자동 적용 훅이 있다. 문서를 쓰라는 요청이 들어오면 Claude에게 이 스킬을 쓰라고 알려주는 장치다. 리포를 보면 skills/와 hooks/가 나란히 있다. 스킬 폴더만 복사하면 규칙은 들어오는데 훅은 따라오지 않는다. 스킬이 쓰일지는 그때그때 Claude 판단에 맡기게 된다.

플러그인 설치로 바꿨다. 포크를 마켓플레이스(플러그인을 내려받는 목록)로 등록해서 설치하면 훅까지 같이 들어온다. 설치 ID도 원본과 겹치지 않게 stop-slop-ko@stop-slop-ko에서 stop-slop-ko@wonderit으로 바꿨다.

평소 쓰는 말이 훅에 안 잡혔다

훅은 문서 종류와 작성 동사를 같이 본다. “보고서”와 “써줘”가 한 문장에 있으면 잡는다. 말투를 고쳐달라는 표현은 따로 목록이 있다.

내가 평소 치는 말은 여기에 안 걸렸다. 제일 먼저 넣은 건 “덱 만들어줘”였다. 문서 종류에 덱이 없었다. 그런데 “덱”을 그대로 넣으면 “인덱스 정리해줘”까지 잡힌다. 앞에 한글이 붙으면 빼고, 주간덱, 미팅덱, 발표덱처럼 붙여 쓰는 말만 따로 열었다.

그다음은 말투 쪽이었다. “AI스럽지 않게 적어줘”, “사람처럼 써줘”, “말투 좀 고쳐줘”. 문서 종류가 안 들어 있는 문장이라 말투 목록에 있어야 잡힌다. 하나씩 넣고 테스트를 붙였다. 커밋 시각을 보니 1.3.0에서 1.3.4까지 12분 사이에 버전을 네 번 올렸다.

이 글을 쓰면서 원본 훅(1.2.2)과 포크 훅(1.4.0)에 같은 문장을 넣어봤다.

요청원본포크
덱 만들어줘안 잡힘잡힘
AI스럽지 않게 적어줘안 잡힘잡힘
사람처럼 써줘안 잡힘잡힘
말투 좀 고쳐줘안 잡힘잡힘
인덱스 정리해줘안 잡힘안 잡힘
AI slop 빼고 써줘안 잡힘잡힘

평소 쓰는 요청을 원본 훅과 포크 훅에 넣어본 결과

끄는 말을 “빼고”로 두면 헷갈린다

훅을 끄는 말은 원본에 이미 있었다. “stop-slop 빼고”와 “원문 그대로”다.

“stop-slop 빼고”는 이중 부정이라 헷갈린다. slop을 멈추는 걸 빼달라는 말이다. 여기에 “AI slop 빼고”가 붙으면 더 꼬인다. 모양은 거의 같은데 이쪽은 AI slop을 빼달라는 말이니까 스킬을 적용해 달라는 요청이다. 원본 훅은 “AI slop 빼고 써줘”를 그냥 지나쳤다. 포크에서는 잡게 했다.

훅은 “stop-slop”과 “AI slop”을 글자로 구분한다. 헷갈리는 건 사람이다. 그래서 끄고 싶을 때는 “원문 그대로”라고 쓰라고 안내했다. “stop-slop 빼고”도 동작은 그대로 한다.

PASS가 나와도 제목은 사람이 읽어야 한다

PASS는 규칙에 안 걸렸다는 뜻이다. 사람이 쓴 글이라는 뜻은 아니다.

이 블로그의 최근 글 두 편은 WARN 0, INFO 0이다. 커밋 전에 스캐너를 돌려서 WARN을 고치게 해뒀으니 PASS가 나오는 게 당연하다. 상투구, 과한 명사화, 기계적인 3단 병렬은 스캐너가 못 잡는다고 README에도 적혀 있다. 내가 넣은 감성 제목 규칙도 정해둔 패턴 몇 개만 본다. “~의 풍경”이라고 지으면 그냥 통과한다.

표지, 제목, 부제, 라벨은 PASS와 상관없이 사람이 쓸 말인지 읽어서 확인한다는 절차를 스킬에 적어뒀다. 이 글도 같은 스캐너를 돌렸고 제목과 소제목은 따로 읽었다.

그래서 쓸까 말까

이 글을 올리고 나서 스캐너가 찾은 신호대로 기존 글 56편을 고쳤다. WARN은 55건에서 10건으로 줄었다. 남긴 10건 중 8건은 봇 버튼 이름과 봇의 완료 메시지를 인용한 이모지이고, 1건은 프롬프트 인용문의 조사 앞 공백, 1건은 앞에서 적은 “힘듦”이다. 일괄 치환했다면 인용한 내용이 원래와 달라졌을 자리다.

상황판단
Claude로 한국어 문서를 자주 만든다쓴다. 작성 요청을 훅이 잡아서 규칙이 같이 적용된다
쌓인 글의 표면 신호를 점검하고 싶다스캐너만 돌려도 된다. 이 블로그는 WARN 55건 중 50건이 장식 이모지였다
제목과 부제의 어감까지 맡기고 싶다기대하지 않는다. 등록된 패턴 몇 개만 본다
자동 적용까지 원한다스킬 폴더 복사 대신 플러그인으로 설치한다
이모지나 표기를 인용한 글이 많다일괄 치환하지 않고 위치를 보면서 고친다

설치

Claude Code 입력창에 한 줄씩 넣고 재시작하면 된다.

1
2
/plugin marketplace add wonderit/stop-slop-ko
/plugin install stop-slop-ko@wonderit

훅이 끼어들지 않았으면 하는 요청에는 “원문 그대로”를 넣는다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.