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で、開発ワークフローの重要なタイミングでタスクを自動化し、手動ステップを削減してチーム全体の一貫性を維持します。