git-guardrails-claude-code
作成者 mattpocockgit-guardrails-claude-codeは、Claude Codeが実行する前に危険なgitコマンドをPreToolUseフックでブロックします。破壊的なpush、hard reset、強制clean、ブランチ削除を防ぎ、このプロジェクトだけでなく全プロジェクトに対してもスコープを分けて制御できます。Claude Codeでのアクセス制御の境界をしっかり持たせたいときに役立ちます。
このスキルは78/100で、Agent Skills Finderの掲載候補として十分に有力です。Claude Codeで破壊的なgitコマンドをブロックする具体的な安全ワークフローを備えており、導入に必要な実装情報もひと通りそろっているため、ゼロから作らずに使い始められます。実用性は高い一方で、導入前にはスコープの選び方と環境への適合を確認しておくと安心です。
- トリガーと目的が明確で、Claude Code内の危険なgitコマンド(push、reset --hard、clean -f、branch -D)をブロックできる。
- 運用に直結する内容で、手順付きのセットアップフローに加え、scripts/block-dangerous-git.sh の同梱フックスクリプトがある。
- エージェント連携に強く、PreToolUseフックを使って project / global それぞれの settings.json 設定例を具体的に示している。
- セットアップにはある程度のシェルやツール操作の知識が前提で、スクリプトのコピー、`chmod +x` の実行、Claude設定の編集が必要です。
- 説明はブロック動作に強い一方、境界条件の扱いや検証手順はやや少ないため、導入時に試行錯誤が必要になる場合があります。
git-guardrails-claude-code スキルの概要
git-guardrails-claude-code でできること
git-guardrails-claude-code スキルは、危険な git コマンドが実行される前に Claude Code のフックで止める仕組みを追加します。git push --force、git reset --hard、git clean -f、git branch -D のような破壊的操作に対して、単なる注意喚起ではなく、実際に止める強制レイヤーを求めるチームや個人向けです。
どんな人に向いているか
誤ったデータ消失、意図しない push、ローカル履歴の書き換えが現実的なリスクになるリポジトリで作業しているなら、この git-guardrails-claude-code スキルを入れる価値があります。Claude Code を Access Control の範囲内で安全に動かしたいときに、その境界を一貫して強制したい場合に特に有効です。
何が違うのか
プロンプトで「気をつけて」と促すだけの安全対策と違い、このスキルは PreToolUse フックを入れて、コマンド実行前に止めます。つまりガードレールは助言ではなく、実際の制御として働きます。主なトレードオフは、あくまで一致したコマンドだけを守る点です。したがって、広いポリシー運用よりも、明確で「実行させたくない」 git 操作を確実に止める用途に向いています。
git-guardrails-claude-code スキルの使い方
スキルをインストールして適用範囲を決める
インストールは次のコマンドです。
npx skills add mattpocock/skills --skill git-guardrails-claude-code
最初に決めるべきなのは適用範囲です。まずはこのプロジェクトだけに入れるか、すべてのプロジェクトに入れるかを選びます。1つのリポジトリでまず試したいならプロジェクト範囲のほうが安全です。Claude Code 全体で常にこれらのコマンドを止めたいなら、グローバル範囲のほうが適しています。
まず読むべきファイル
セットアップの流れを理解するには SKILL.md から始めてください。次に scripts/block-dangerous-git.sh を確認します。こちらが実際の制御ロジックです。振る舞いを調整したいなら、説明文よりもスクリプトのほうが重要です。実用的に git-guardrails-claude-code を理解する最短ルートはここです。
うまく依頼するコツ
このスキルは、どこに適用するのか、何を危険とみなすのかを具体的に伝えるほど、うまく動きます。例えば「このプロジェクトだけに git-guardrails-claude-code を入れて、push、reset --hard、clean -fd、branch -D を止めてください」のような依頼が有効です。逆に「git をもっと安全にして」のような依頼だと、範囲もポリシーも曖昧で、きれいに導入しづらくなります。
フックを検証して必要なら調整する
フックを .claude/hooks/block-dangerous-git.sh または ~/.claude/hooks/block-dangerous-git.sh にコピーしたら、実行権限を付けて、対応する settings.json に登録します。そのあと、安全なリポジトリでブロック対象コマンドを試し、Claude に拒否メッセージが返ることを確認してください。チームで追加の危険コマンドを使うなら、プロンプト文に頼るのではなく、スクリプト内のパターン一覧を拡張するのが正しいやり方です。
git-guardrails-claude-code スキルの FAQ
これは git 権限の代替になるか
いいえ。git-guardrails-claude-code はローカルの Claude Code 用ガードレールであり、サーバー側のアクセス制御ではありません。Claude が一致したコマンドを実行するのは防げますが、ブランチ保護、リポジトリ権限、レビュー規則、リモート側のポリシーの代わりにはなりません。
どんな場合に向かないか
自由な git 自動化が必要な場合や、git clean -fd や git branch -D を正当に使うスクリプトに依存しているワークフローでは避けてください。そのようなケースでは、広いブロックは価値より摩擦のほうが大きくなりがちです。より狭いルールセットのほうが合っていることがあります。
初心者でも使いやすいか
はい。小さなインストール手順に従えて、JSON を編集できるなら問題ありません。考え方自体はシンプルですが、どのコマンドを止めたいのか、フックをどこに置くのかを正確に理解しているほど結果が良くなります。初心者がつまずきやすいのはフックそのものより、適用範囲の選び方です。
通常のプロンプト設計だけで同じことができるか
いいえ。プロンプトで Claude に慎重に動くよう促すことはできますが、コマンドのブロックを確実に強制することはできません。モデルが本来なら従ってしまう場合でも、コマンドを止める必要があるときにこそ、git-guardrails-claude-code スキルが役立ちます。
git-guardrails-claude-code スキルの改善方法
ブロック対象コマンドの一覧を絞り込む
品質を最も大きく向上させるのは、実際のリスクに合わせることです。チームに必要なのが git push と git reset --hard だけなのか、それとも git clean -f、git checkout .、git restore . も止めるべきなのかを見直してください。入力条件が適切だと、誤検知も取りこぼしも減ります。
適用範囲を慎重に保つ
実験、共有リポジトリのオンボーディング、機密性の高いコードベースでの一時的な保護にはプロジェクト範囲を使ってください。同じポリシーをどこでも適用したいと確信できる場合にだけ、グローバル範囲を使います。これは git-guardrails-claude-code の導入成否を大きく左右する、最重要の判断です。
失敗時の挙動をテストする
インストール後は、ブロックされるべきコマンドを実際に試して、拒否が明確で即時に返ることを確認してください。フックが緩すぎるならパターンを強化し、逆に止めすぎるならパターンを絞るか、プロジェクト固有ルールと個人ルールを分けます。最初の実行は最終形の確認ではなく、検証として扱ってください。
