AI 도서관 · Claude · 하네스 설정 · Hooks
파일을 고친 직후 포맷터를 돌립니다. 파일 경로는 stdin JSON의 tool_input.file_path 에 있습니다
⚠️ 파일 경로도 환경변수가 아니라 표준입력 JSON에서 꺼내야 합니다.
Write·Edit 도구에서는 .tool_input.file_path 입니다.
# .claude/settings.local.json
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit",
"hooks": [
{
"type": "command",
"command": "bash -c 'f=$(jq -r \".tool_input.file_path // empty\"); [ -z \"$f\" ] && exit 0; case \"${f##*.}\" in py) black \"$f\" >/dev/null 2>&1;; js|jsx|ts|tsx) npx prettier --write \"$f\" >/dev/null 2>&1;; esac; exit 0'"
}
]
}
]
}
}
📌 마지막의 exit 0 이 중요합니다
포맷터가 실패해도 작업 흐름을 막지 않기 위해서입니다.
포맷 실패로 작업이 중단되면 오히려 방해가 됩니다.
🧪 시험
echo '{"tool_input":{"file_path":"test.py"}}' | <위 command 부분>
→ 파일이 포맷되는지, 오류 없이 끝나는지 확인
⚠️ 포맷터가 설치돼 있지 않으면 조용히 넘어갑니다.
적용이 안 되는 것 같으면 먼저 black·prettier 가 실제로 실행되는지 확인하세요.
적용할 언어와 포맷터: {{INPUT}}
{{INPUT}} 자리에 내 내용을 넣어 쓰는 프롬프트입니다. 아래 버튼으로 열면 넣는 칸이 나옵니다.
도서관에서 열기 — 내 내용 넣고 복사하기