Pre-Commit Lint
Pre-Tool입문Hook 타입: pre-tool-use
Pre-Commit Lint는 'git commit'이 포함된 Bash 명령의 Pre-Tool 이벤트에 연결됩니다. commit이 실행되기 전에 스테이징된 파일에 대해 ESLint를 실행하고 Prettier 포맷을 확인합니다. lint 오류나 포맷 문제가 발견되면 commit을 차단하고 문제를 보고하여 Claude가 먼저 수정할 수 있도록 합니다. 이를 통해 수동 개입 없이 모든 commit이 프로젝트의 코드 품질 기준을 충족하도록 보장합니다.
lintESLintPrettier코드 품질commit
Hook 코드
#!/bin/bash
# Pre-Commit Lint Hook
# Runs ESLint and Prettier on staged files before git commit
# Only intercept git commit commands
if [[ "$TOOL_NAME" != "Bash" ]] || ! echo "$TOOL_INPUT" | grep -q "git commit"; then
exit 0
fi
STAGED_FILES=$(git diff --cached --name-only --diff-filter=ACMR | grep -E '\.(ts|tsx|js|jsx)$')
if [ -z "$STAGED_FILES" ]; then
exit 0
fi
echo "Running ESLint on staged files..."
npx eslint $STAGED_FILES --quiet
LINT_EXIT=$?
echo "Checking Prettier formatting..."
npx prettier --check $STAGED_FILES 2>/dev/null
FORMAT_EXIT=$?
if [ $LINT_EXIT -ne 0 ] || [ $FORMAT_EXIT -ne 0 ]; then
echo "ERROR: Lint or format issues found. Fix before committing."
exit 1
fi
echo "All checks passed."
exit 0
이 Hook을 Claude Code 설정 또는 .claude/settings.json에 추가하면 활성화됩니다.
실행 미리보기
Pre-Commit Lint
Pre-Commit Lint에 대해
Claude Code Hooks는 Claude 작업 중 특정 이벤트에 반응하여 커스텀 셸 명령을 자동으로 실행합니다. Pre-Commit Lint은(는) 입문 수준의 Pre-Tool Hook으로, 개발 워크플로우의 핵심 시점에서 작업을 자동화하여 수동 단계를 줄이고 팀 전체의 일관성을 유지합니다.