Claude Code 훅 작성 가이드
Claude Code의 PreToolUse/PostToolUse/SessionStart/Stop 훅을 안전하게 작성·테스트·등록·디버깅하는 방법을 알려주는 스킬.
개발·코딩고급★ 1,323⑂ 212AI 점수 9/10마지막 업데이트: 2026. 8. 8.
무엇을 해주나
- CLAUDE.md의 '문서상 규칙'으로는 반복 위반되는 행동을 훅(shell 가드)으로 구조적으로 차단하도록 설계를 잡아줍니다.
- 훅 종류별 계약을 정리해 줍니다: PreToolUse(exit 2 = 차단, stderr가 모델에게 보이는 메시지), PostToolUse(컨텍스트 주입), SessionStart(항상 exit 0 헬스체크), Stop(모델 자신의 응답을 검사할 수 있는 유일한 훅).
- 실전에서 터진 함정을 규칙으로 담았습니다: awk 분리 대신
shlex.shlex(punctuation_chars=True)토큰 단위 매칭, git commit 메시지 예외 처리,bash -n+ 실제 JSON 이벤트로 등록 전 E2E 테스트, SSOT + 심볼릭 링크, 프로필별 등록 수렴, 사람이 클릭/타이핑해야 하는 릴리스 게이트, 실패 방향(fail-open/fail-closed) 결정, 종료성(loop variant V) 증명. references/hook_patterns.md의 실행 가능한 스켈레톤과scripts/test_hook.sh테스트 하네스를 함께 사용합니다.
이런 분께 추천
- Claude Code를 매일 쓰면서 위험한 명령(강제 push, 파일 삭제, 시크릿 노출)을 실제로 막고 싶은 개발자
- 팀 규칙을 프롬프트가 아니라 강제 게이트로 만들고 싶은 리드/플랫폼 엔지니어
- 이미 만든 훅이 오탐하거나 세션 전체를 망가뜨려 원인을 못 찾고 있는 사람
활용 예시
- "
git push --force를 아예 못 하게 막아줘" → PreToolUse Bash 가드 작성 → 트리거/정상 명령 JSON으로 테스트 → settings.json에 등록. - "모델이 확인하지 않은 이름을 지어내는 걸 막고 싶다" → UserPromptSubmit이 아니라 Stop 훅이 맞다는 판단과 한 번의 블록에 모든 위반을 담는 메시지 설계.
- "훅을 켰더니 Bash 호출이 전부 이상해졌다" →
bash -n문법 검사와 실제 이벤트 재현으로 세션 오염 원인 추적, 심볼릭 링크 끊김 여부 SessionStart 헬스체크.
· · · 설치 가이드 · · ·
설치 없이 지금 한 번 써보기
아래를 Claude에 붙여넣으면 설치하지 않고도 이 스킬을 그대로 씁니다.
이 파일의 지시를 읽고 그대로 따라서 나를 도와줘: https://raw.githubusercontent.com/daymade/claude-code-skills/HEAD/daymade-claude-code/claude-code-hooks/SKILL.md 내가 원하는 것: (여기에 하고 싶은 일을 쓰세요)
Claude가 링크를 열지 못하면, 링크를 직접 열어 내용을 복사해 붙여넣으세요.
↓ 쓸 만하면 아래에서 ZIP을 받아 설치하세요. 그러면 매번 붙여넣지 않아도 알아서 작동합니다.
Claude 앱에 설치 (터미널 필요 없음)
- 아래 버튼으로 ZIP 파일을 받으세요.
- Claude 설정 → Capabilities에서 '코드 실행 및 파일 생성'을 켭니다. (한 번만)
- Claude에서 Customize → Skills → + → '스킬 업로드'를 누르고 받은 ZIP을 올립니다.
Claude Code에 설치
Claude에게 맡기기 — 아래 문장을 Claude Code에 붙여넣으세요
클로드스킬마트에서 찾은 스킬을 설치해줘. GitHub 저장소 daymade/claude-code-skills 의 daymade-claude-code/claude-code-hooks 폴더를 내 ~/.claude/skills/claude-code-hooks/ 에 그대로 복사해줘. 설치가 끝나면 이 스킬로 무엇을 할 수 있는지 한 줄로 알려줘.
직접 명령으로 설치하기
git clone https://github.com/daymade/claude-code-skills.git && mkdir -p ~/.claude/skills && cp -r claude-code-skills/daymade-claude-code/claude-code-hooks ~/.claude/skills/⚠ 제3자가 만든 스킬입니다. 설치 전 원본 저장소를 한 번 확인하세요.
- 터미널을 엽니다.
- 저장소를 내려받습니다:
git clone https://github.com/daymade/claude-code-skills.git - 스킬 폴더를 만듭니다:
mkdir -p ~/.claude/skills - 이 스킬만 복사합니다:
cp -r claude-code-skills/daymade-claude-code/claude-code-hooks ~/.claude/skills/ ls ~/.claude/skills/claude-code-hooks로 SKILL.md, references/, scripts/ 가 있는지 확인합니다.- Claude Code를 다시 시작하고 "훅으로 rm -rf를 막아줘" 처럼 요청하면 스킬이 자동으로 발동합니다.
- 훅을 실제로 등록하기 전에 반드시
bash -n과scripts/test_hook.sh로 검증하세요(잘못된 PreToolUse 훅은 세션 전체를 망칩니다).
GitHub에서 원본 보기 ↗라이선스: MIT