Hookify 규칙 작성하기
개요
Hookify 규칙은 YAML 프론트매터가 포함된 마크다운 파일로, 감시할 패턴과 해당 패턴이 일치할 때 표시할 메시지를 정의합니다. 규칙은 .claude/hookify.{규칙-이름}.local.md 파일에 저장됩니다.
규칙 파일 형식
기본 구조
---
name: rule-identifier
enabled: true
event: bash|file|stop|prompt|all
pattern: regex-pattern-here
---
이 규칙이 트리거될 때 Claude에게 표시할 메시지.
마크다운 서식, 경고, 제안 등을 포함할 수 있습니다.
프론트매터 필드
| 필드 | 필수 | 값 | 설명 |
|---|---|---|---|
| name | 예 | 케밥-케이스 문자열 | 고유 식별자 (동사-우선: warn-, block-, require-*) |
| enabled | 예 | true/false | 삭제 없이 토글 |
| event | 예 | bash/file/stop/prompt/all | 트리거할 후크 이벤트 |
| action | 아니요 | warn/block | warn (기본값)은 메시지를 표시하고, block은 작업을 차단합니다 |
| pattern | 예* | 정규식 문자열 | 일치시킬 패턴 (*또는 복잡한 규칙에는 conditions 사용) |
고급 형식 (다중 조건)
---
name: warn-env-api-keys
enabled: true
event: file
conditions:
- field: file_path
operator: regex_match
pattern: \.env$
- field: new_text
operator: contains
pattern: API_KEY
---
.env 파일에 API 키를 추가하고 있습니다. 이 파일이 .gitignore에 있는지 확인하세요!
이벤트별 조건 필드:
- bash:
command - file:
file_path,new_text,old_text,content - prompt:
user_prompt
연산자: regex_match, contains, equals, not_contains, starts_with, ends_with
규칙이 트리거되려면 모든 조건이 일치해야 합니다.
이벤트 유형 가이드
bash 이벤트
Bash 명령 패턴 일치:
- 위험한 명령:
rm\s+-rf,dd\s+if=,mkfs - 권한 상승:
sudo\s+,su\s+ - 권한 문제:
chmod\s+777
file 이벤트
편집/쓰기/다중 편집 작업 일치:
- 디버그 코드:
console\.log\(,debugger - 보안 위험:
eval\(,innerHTML\s*= - 민감한 파일:
\.env$,credentials,\.pem$
stop 이벤트
완료 확인 및 알림. 패턴 .*은 항상 일치합니다.
prompt 이벤트
워크플로 강제 적용을 위해 사용자 프롬프트 내용을 일치시킵니다.
패턴 작성 팁
정규식 기본
- 특수 문자 이스케이프:
.->\.,(->\( \s공백,\d숫자,\w단어 문자+하나 이상,*0개 이상,?선택적|OR 연산자
일반적인 함정
- 너무 광범위함:
log는 "login", "dialog"와 일치함 —console\.log\(사용 - 너무 구체적임:
rm -rf /tmp—rm\s+-rf사용 - YAML 이스케이프: 따옴표 없는 패턴 사용; 따옴표로 묶인 문자열은
\\s필요
테스트
python3 -c "import re; print(re.search(r'your_pattern', 'test text'))"
파일 구성
- 위치: 프로젝트 루트의
.claude/디렉토리 - 이름:
.claude/hookify.{설명적-이름}.local.md - Gitignore:
.gitignore에.claude/*.local.md추가
명령어
/hookify [설명]- 새 규칙 생성 (인수가 없으면 대화를 자동 분석)/hookify-list- 모든 규칙을 테이블 형식으로 보기/hookify-configure- 대화식으로 규칙 켜기/끄기 전환/hookify-help- 전체 문서
빠른 참조
최소 실행 가능 규칙:
---
name: my-rule
enabled: true
event: bash
pattern: dangerous_command
---
경고 메시지