block-no-verify-hook は何をしますか?
PreToolUse フックを構成して、AI エージェントが --no-verify やその他の迂回フラグで git の pre-commit フックをスキップするのを防ぎます。コミット品質ゲートを適用する Claude Code プロジェクトを設定する際に使用します。
詳細
このスキルは、Claude Code などの AI エージェントが git commit 時に --no-verify や --no-verify-signatures のような迂回フラグを使用するのを検出してブロックする PreToolUse フックを構成します。これにより、リポジトリの品質ゲート(lint、テスト、コードスタイルなど)がコミット前に強制され、壊れたコードがコミットされるのを防ぎます。
動作方法
- ユーザーが
git commitを実行しようとすると、PreToolUse フックが呼び出されます。 - フックはコマンドライン引数を解析し、
--no-verifyやその他の迂回フラグが含まれているかどうかを確認します。 - 迂回フラグが検出された場合、フックはエラーを返し、AI エージェントに
--no-verifyを使用しないように指示します。 - 迂回フラグが検出されなかった場合、フックは何もせず、通常の動作を許可します。
セットアップ
Claude Code を使用している場合は、以下の設定を .claude/settings.json または .claude/instructions.md に追加します。
例(.claude/settings.json)
{
"hooks": {
"PreToolUse": {
"command": "bash -c 'if [[ \"$*\" =~ --no-verify ]]; then echo \"エラー: --no-verify は使用できません。pre-commit フックは必須です。\"; exit 1; fi'"
}
}
}
例(.claude/instructions.md 内)
# 使用可能なコマンド
- git commit コマンドでは `--no-verify` フラグを使用しないでください。すべての pre-commit フックを実行する必要があります。
- git push コマンドでは `--no-verify` フラグを使用しないでください。
注意点
- このスキルは Claude Code を想定していますが、PreToolUse フックをサポートする他の AI エージェントでも使用できます。
- フックの実装はプロジェクトのニーズに合わせて調整してください。
- pre-commit フック自体が正しく構成され、プロジェクトの品質ゲート(リンター、テストなど)を実施していることを確認してください。