git-guardrails-claude-code は何をしますか?
Claude Codeにフックを設定し、危険なgitコマンド(push、reset --hard、clean、branch -Dなど)の実行を事前にブロックします。ユーザーが破壊的なgit操作を防止したい場合、gitセーフティフックを追加したい場合、またはClaude Codeでのgit push/resetをブロックしたい場合に使用します。
概要
このスキルは、Claude Codeの事前実行フック機能を利用して、特定の破壊的なgitコマンドが実行される前にチェックし、ユーザーに確認を求めたり、自動的にブロックしたりします。
設定方法
~/.claude/settings.jsonファイルを開きます(存在しない場合は作成します)。- 以下のように
hooks設定を追加します:
{
"hooks": {
"pre-command": [
{
"match": "git push",
"message": "本当にgit pushを実行しますか?この操作はリモートリポジトリに変更を公開します。"
},
{
"match": "git reset --hard",
"message": "git reset --hardは作業ツリーの変更を破棄します。本当に実行しますか?"
},
{
"match": "git clean -fd",
"message": "git clean -fdは追跡されていないファイルとディレクトリを削除します。本当に実行しますか?"
},
{
"match": "git branch -D",
"message": "git branch -Dはマージされていないブランチも強制削除します。本当に実行しますか?"
}
]
}
}
カスタマイズ
ブロックするコマンドを自由に追加・削除できます。matchフィールドでは部分一致が使用されるため、"git push"と設定すると、git push origin mainのようなすべてのpushバリアントが対象になります。
注意事項
- このフックはClaude Code内でのコマンド実行にのみ影響します。ターミナルから直接実行するgitコマンドには無効です。
- フックで確認を求めるように設定しても、Claude Code内でユーザーに毎回確認が表示されるわけではありません。特定の条件下では自動的にブロックされることもあります。
- 開発ワークフローに応じて、特定のコマンドを許可するロジックを追加することも可能です(例:特定のブランチへのpushのみ許可するなど)。