Claude Code · 2026년 8월 27일 ★★★★

'긴 heredoc 쓰지 마'가 하루 150번 어겨진 걸 세서 훅 넷으로 옮겼대요 — 정작 위반을 세는 도구는 스크립트가 아니라 자기 대화 기록을 읽는 클로드예요

클로드 코드 사용자가 자기 대화 기록을 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

원본 보기 (reddit:claudeai)