git-guardrails-claude-code
Claude Codeで危険なgitコマンド(push、reset --hard、clean、branch -D など)を実行前にブロックするhookを設定できます。ユーザーが破壊的なgit操作を防ぎたい場合、git安全性hookを追加したい場合、またはClaude Codeでのgitプッシュやリセットをブロックしたい場合に使用します。
description の原文を見る
Set up Claude Code hooks to block dangerous git commands (push, reset --hard, clean, branch -D, etc.) before they execute. Use when user wants to prevent destructive git operations, add git safety hooks, or block git push/reset in Claude Code.
SKILL.md 本文
Git Guardrailsのセットアップ
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 メッセージが出力されるはずです。
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- mkurman
- リポジトリ
- mkurman/zorai
- ライセンス
- MIT
- 最終更新
- 2026/5/11
Source: https://github.com/mkurman/zorai / ライセンス: MIT