git-guardrails-claude-code について
Claude CodeのPreToolUseフックを設定し、指定した危険なGitコマンドを実行前にブロックするスキルです。プロジェクト単位またはグローバルに導入でき、対象パターンも変更できます。
主な機能
- 01指定した破壊的Gitコマンドのブロック
- 02プロジェクト単位またはグローバルな導入
- 03既存設定へのフックの追加
- 04ブロック対象パターンのカスタマイズ
- 05フックの検証テスト
活用シーン
- 01誤った強制プッシュの防止
- 02破壊的コマンドからの作業ツリー保護
- 03複数プロジェクトへのGit制限の適用
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ utarn/ engineer-skills --skill git-guardrails-claude-codeインストール後、Claude Code で/git-guardrails-claude-codeを入力して読み込まれたか確認します。
同梱ファイルagents/openai.yamlscripts/block-dangerous-git.sh
詳細
Git ガードレールの設定
Claude が実行する前に危険な git コマンドを検出してブロックする PreToolUse フックを設定します。
ブロックされるコマンド
git push(--forceを含むすべてのバリエーション)git reset --hardgit clean -f/git clean -fdgit branch -Dgit checkout ./git restore .
ブロックされると、これらのコマンドにアクセスする権限がないことを Claude に伝えるメッセージが表示されます。
手順
1. 適用範囲を確認する
ユーザーに、このプロジェクトのみ(.claude/settings.json)にインストールするか、すべてのプロジェクト(~/.claude/settings.json)にインストールするかを尋ねます。
2. フックスクリプトをコピーする
同梱のスクリプトは次の場所にあります:scripts/block-dangerous-git.sh
適用範囲に応じて、対象の場所にコピーします。
- プロジェクト:
.claude/hooks/block-dangerous-git.sh - グローバル:
~/.claude/hooks/block-dangerous-git.sh
chmod +x を実行して、実行可能にします。
3. フックを設定に追加する
該当する設定ファイルに追加します。
プロジェクト(.claude/settings.json):
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/block-dangerous-git.sh"
}
]
}
]
}
}
グローバル(~/.claude/settings.json):
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "~/.claude/hooks/block-dangerous-git.sh"
}
]
}
]
}
}
設定ファイルがすでに存在する場合は、既存の hooks.PreToolUse 配列にフックを追加し、ほかの設定を上書きしないでください。
4. カスタマイズについて確認する
ブロック対象のパターンを追加または削除したいか、ユーザーに尋ねます。必要に応じて、コピーしたスクリプトを編集します。
5. 動作を確認する
簡単なテストを実行します。
echo '{"tool_input":{"command":"git push origin main"}}' | <path-to-script>
終了コード 2 で終了し、stderr に BLOCKED メッセージが表示されるはずです。