클로드 코드 사용자가 자기 대화 기록을 CLAUDE.md 규칙과 대조해 위반을 세어 봤더니 '긴 heredoc 쓰지 마'는 하루 150번, '폴링 루프 직접 짜지 마'는 일주일에 689번 어겨졌고, 시크릿을 명령에 붙여 넣는 건 밤마다 돌린 점검 28번 중 23번에서 걸렸대요. 그래서 그 넷을 PreToolUse 훅으로 만들어 8월 23일 저장소에 올렸는데, 15줄 넘는 heredoc 막기·이미 그 자리인 cd 지우기·화면을 붙잡는 폴링 루프 막기·AWS·깃허브 같은 키 모양 문자열 막기예요. 다만 위반을 센 건 파이썬 스크립트가 아니라 클로드에게 자기 세션 기록 7일치를 읽혀 세게 하는 지시문이고, '훅을 넣으니 거의 0으로 내려가 그대로였다'는 대목엔 숫자가 없으며, 저장소도 그날 커밋 하나가 전부에 라이선스가 없어요.
용어 풀이
- heredoc
- 셸 명령 안에 여러 줄 텍스트를 그대로 끼워 넣는 문법. 두 꺾쇠로 열고 여러 줄을 붙인 뒤 같은 표시로 닫는다.
- PreToolUse
- 클로드 코드가 도구를 실행하기 직전에 끼어드는 훅 이벤트. 여기서 막으면 그 도구 호출이 실행되지 않는다.
- 폴링(polling)
- 끝났는지를 일정 간격으로 되물어 확인하는 방식. 앞에서 돌리면 끝날 때까지 다른 일을 못 한다.
- CLAUDE.md
- 클로드 코드가 세션을 시작할 때 읽는 규칙·맥락 파일. 지켜야 할 것을 글로 적어 둔다.
운영자 인사이트
규칙을 더 적기 전에 지난 7일치 대화 기록을 지금 규칙과 대조해 실제로 몇 번 어겨졌는지부터 세어 보세요. 저자가 쓴 정리 기준은 '일주일간 한 번도 안 어겨졌고 아무 일도 없었으면 주의력만 축내는 짐'이고, '신중하게' 같은 셀 수 없는 규칙은 애초에 강제할 수 없으니 지우는 쪽이에요. 훅으로 옮길 땐 차단보다 자동 수정이 싸고, 정상 명령에 잘못 걸리는 경우를 위반 사례만큼 꼼꼼히 시험해야 해요.
여러 관점으로 보기
- 세는 방법 자체 위반을 세는 `/audit-session` 은 파이썬 스크립트가 아니라 클로드에게 `~/.claude/projects` 아래 세션별 기록 7일치를 읽혀 세게 하는 지시문이고, 순위도 건수가 아니라 '한 턴을 통째로 태웠나' 하는 비용 추정으로 매겨요. GitHub
- 규칙을 훅으로 옮길 때의 기준 옮길 수 있는 형태는 자동 수정·차단·경고 셋뿐이고, '차단은 걸릴 때마다 왕복 한 번을 통째로 태우면서 아무것도 가르치지 않으니 자동 수정을 먼저 보라'·'정상 작업에 걸리는 훅은 없는 것만 못하다'고 적어 뒀어요. GitHub
- 훅이 실제로 막는 조건 공식 문서는 PreToolUse 가 `permissionDecision` 을 `deny` 로 돌려주거나 종료 코드 2로 끝날 때 막고, 설정 파일 훅은 서브에이전트 안에서도 똑같이 돈다고 적어 뒀어요 — 정작 이 저장소의 훅 넷은 지금 문서엔 안 나오는 옛 형식(`decision: block`, 종료 코드 0)을 써요. Anthropic