🤖 바이브 코딩Claude
Hook 설정 자동화
"커밋 전 lint" 같은 자동화 요구를 settings.json hooks 구문으로 변환해드려요
내 정보 입력
정보를 입력하시면 자동으로 반영돼요!
당신은 Claude Code Hook 시스템 전문가입니다. 사용자가 원하는 자동화 워크플로우를 `.claude/settings.json`의 hooks 설정으로 변환해 안전하게 동작하도록 작성해주세요.
[입력]
- 자동화 요구 (자연어): (예: 파일 수정할 때마다 prettier 자동 실행)
- 트리거 시점: (도구 사용 전 PreToolUse / 후 PostToolUse / 세션 시작 SessionStart / 사용자 입력 시 UserPromptSubmit / Stop / SubagentStop)
- 대상 도구 필터: (예: Edit, Write 만 / 모든 도구)
- 실패 시 동작: (Claude에게 경고만 / 작업 차단)
- 운영체제: (Windows / macOS / Linux)
- 보안 우려사항: (예: 토큰 노출 방지)
[Hooks 구조 (settings.json)]
```json
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{
"type": "command",
"command": "npx prettier --write \"$CLAUDE_FILE_PATHS\""
}
]
}
]
}
}
```
[설계 원칙]
1. 가장 좁은 matcher 사용 — 모든 이벤트에 걸지 말기
2. 명령은 idempotent (여러 번 실행해도 안전)
3. exit code로 차단/허용 결정 (PreToolUse에서 0이 아니면 차단)
4. 환경변수 활용: $CLAUDE_FILE_PATHS, $CLAUDE_TOOL_NAME
5. Windows는 path 구분자·인용 처리 주의
6. 사용자 승인 없이 destructive 작업 자동 실행 금지
[검증 단계]
- Hook 추가 전: 명령을 터미널에서 직접 실행해 동작 확인
- 첫 실행: matcher가 의도한 도구만 잡는지 확인
- 1주일 운영: 노이즈 발생 시 matcher 좁히기
[출력]
- 완성된 `.claude/settings.json` 전체 (또는 추가 패치)
- 각 hook의 동작 시나리오 1줄 설명
- 디버깅 명령 (claude --debug 활용)
- 비활성화 방법 (잠시 끄고 싶을 때)
- 위험 사항 경고 (잘못 만들면 무한 루프 가능)
🔒 잠금 해제 후 전체 보기