클로드스킬마트스킬 둘러보기바로 쓰는 문장영상으로 배우기터미널 사용법스킬이 뭐예요?
목록으로

Claude Code 훅 작성 가이드

Claude Code의 PreToolUse/PostToolUse/SessionStart/Stop 훅을 안전하게 작성·테스트·등록·디버깅하는 방법을 알려주는 스킬.

개발·코딩고급1,323212AI 점수 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, 파일 삭제, 시크릿 노출)을 실제로 막고 싶은 개발자
  • 팀 규칙을 프롬프트가 아니라 강제 게이트로 만들고 싶은 리드/플랫폼 엔지니어
  • 이미 만든 훅이 오탐하거나 세션 전체를 망가뜨려 원인을 못 찾고 있는 사람

활용 예시

  1. "git push --force를 아예 못 하게 막아줘" → PreToolUse Bash 가드 작성 → 트리거/정상 명령 JSON으로 테스트 → settings.json에 등록.
  2. "모델이 확인하지 않은 이름을 지어내는 걸 막고 싶다" → UserPromptSubmit이 아니라 Stop 훅이 맞다는 판단과 한 번의 블록에 모든 위반을 담는 메시지 설계.
  3. "훅을 켰더니 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 앱에 설치 (터미널 필요 없음)
  1. 아래 버튼으로 ZIP 파일을 받으세요.
  2. Claude 설정 → Capabilities에서 '코드 실행 및 파일 생성'을 켭니다. (한 번만)
  3. Claude에서 Customize → Skills → + → '스킬 업로드'를 누르고 받은 ZIP을 올립니다.
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자가 만든 스킬입니다. 설치 전 원본 저장소를 한 번 확인하세요.

  1. 터미널을 엽니다.
  2. 저장소를 내려받습니다: git clone https://github.com/daymade/claude-code-skills.git
  3. 스킬 폴더를 만듭니다: mkdir -p ~/.claude/skills
  4. 이 스킬만 복사합니다: cp -r claude-code-skills/daymade-claude-code/claude-code-hooks ~/.claude/skills/
  5. ls ~/.claude/skills/claude-code-hooks 로 SKILL.md, references/, scripts/ 가 있는지 확인합니다.
  6. Claude Code를 다시 시작하고 "훅으로 rm -rf를 막아줘" 처럼 요청하면 스킬이 자동으로 발동합니다.
  7. 훅을 실제로 등록하기 전에 반드시 bash -nscripts/test_hook.sh 로 검증하세요(잘못된 PreToolUse 훅은 세션 전체를 망칩니다).