모델의 약속만으로 부족한 곳에는 Hook을 걸어
Hook은 Claude Code의 생명주기 사건에 맞춰 명령, HTTP 요청, 또는 판단용 지시를 실행해. 세션 시작, 사용자 입력, 도구 호출 전후, 권한 요청, 작업 종료 같은 지점에 꽂을 수 있어. 모델이 규칙을 기억해주길 기대하는 대신 반드시 일어나야 할 동작을 시스템으로 보장하는 장치야.
PreToolUse는 도구가 실행되기 전에 검사해서 exit code 2로 차단할 수 있어. 보호된 경로 쓰기나 위험한 명령을 막기에 알맞아. PostToolUse는 성공 뒤에 실행되므로 formatter, type-check, 영향받은 테스트를 자동으로 돌리기 좋아.
셸 명령은 stdin으로 JSON을 받고 exit code로 흐름을 제어해. HTTP Hook은 알림이나 감사 기록에, prompt hook은 단순 규칙으로 못 정하는 판단에 써. 비밀 파일을 절대 읽지 말라는 요구처럼 실패 비용이 큰 규칙은 문장보다 Hook이 믿을 만해.
직접 확인할 항목: PermissionRequest, SessionStart, Stop, UserPromptSubmit, command, http, prompt.