Hookify 규칙 작성 가이드
개요
Hookify 규칙은 YAML 머리말이 포함된 마크다운 파일로, 감시할 패턴과 해당 패턴이 일치할 때 표시할 메시지를 정의합니다. 규칙은 .claude/hookify.{규칙-이름}.local.md 파일에 저장됩니다.
규칙 파일 형식
기본 구조
---
name: rule-identifier
enabled: true
event: bash|file|stop|prompt|all
pattern: regex-pattern-here
---
Claude에게 이 규칙이 트리거될 때 표시할 메시지.
마크다운 서식, 경고, 제안 등을 포함할 수 있습니다.
머리말 필드
| 필드 | 필수 | 값 | 설명 |
|---|---|---|---|
| name | 예 | kebab-case 문자열 | 고유 식별자 (동사 우선: 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
---
경고 메시지 입력