Communityコーディング&開発github.com

mattpocock/git-guardrails-claude-code

Claude Codeにフックを設定し、危険なgitコマンド(push、reset --hard、clean、branch -Dなど)の実行を事前にブロックします。ユーザーが破壊的なgit操作を防止したい場合、gitセーフティフックを追加したい場合、またはClaude Codeでのgit push/resetをブロックしたい場合に使用します。

git-guardrails-claude-code とは?

このスキルは、Claude Code環境において、開発者が誤って破壊的なgitコマンドを実行するのを防ぐためのセーフティフックを設定します。具体的には、`git push`、`git reset --hard`、`git clean -fd`、`git branch -D`など、リポジトリの状態を大きく変更したりデータを消失させるリスクのあるコマンドを実行前にインターセプトし、ユーザーに確認を促すか、即座にブロックします。 このスキルは、特にClaude CodeのようなAIエージェントが作業を自動実行する環境で有効です。AIが誤って意図しないgit操作を行ってしまうリスクを軽減し、安全な開発ワークフローを維持するのに役立ちます。 実装はシンプルで、`~/.claude/settings.json`内の`hooks`設定を編集し、特定のgitコマンドに対して事前チェック(pre-commandフック)を追加する形で動作します。ユーザーはブロックするコマンドのリストを自由にカスタマイズでき、必要に応じて特定のコマンドだけを許可することも可能です。 このスキルはClaude Code専用に設計されており、CursorやCodexなどの他のAIエージェントプラットフォームではそのまま使用できませんが、同様の仕組みを応用することは可能です。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/mattpocock/skills/tree/main/skills/git-guardrails-claude-code

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

git-guardrails-claude-code は何をしますか?

Claude Codeにフックを設定し、危険なgitコマンド(push、reset --hard、clean、branch -Dなど)の実行を事前にブロックします。ユーザーが破壊的なgit操作を防止したい場合、gitセーフティフックを追加したい場合、またはClaude Codeでのgit push/resetをブロックしたい場合に使用します。

概要

このスキルは、Claude Codeの事前実行フック機能を利用して、特定の破壊的なgitコマンドが実行される前にチェックし、ユーザーに確認を求めたり、自動的にブロックしたりします。

設定方法

  1. ~/.claude/settings.jsonファイルを開きます(存在しない場合は作成します)。
  2. 以下のように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のみ許可するなど)。

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

mattpocock/ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

mattpocock/caveman

Ultra-compressed communication mode. Cuts token usage ~75% by dropping filler, articles, and pleasantries while keeping full technical accuracy. Use when user says "caveman mode", "talk like caveman", "use caveman", "less tokens", "be brief", or invokes /caveman.

mattpocock/claude-handoff

Hand the current conversation off to a fresh background agent that picks up the work immediately.

mattpocock/codebase-design

Shared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.

mattpocock/design-an-interface

Generate multiple radically different interface designs for a module using parallel sub-agents. Use when user wants to design an API, explore interface options, compare module shapes, or mentions "design it twice".

mattpocock/diagnose

Disciplined diagnosis loop for hard bugs and performance regressions. Reproduce → minimise → hypothesise → instrument → fix → regression-test. Use when user says "diagnose this" / "debug this", reports a bug, says something is broken/throwing/failing, or describes a performance regression.

mattpocock/diagnosing-bugs

Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.

mattpocock/domain-modeling

Build and sharpen a project's domain model. Use when the user wants to pin down domain terminology or a ubiquitous language, record an architectural decision, or when another skill needs to maintain the domain model.

mattpocock/edit-article

Edit and improve articles by restructuring sections, improving clarity, and tightening prose. Use when user wants to edit, revise, or improve an article draft.

mattpocock/grilling

Grill the user relentlessly about a plan or design. Use when the user wants to stress-test a plan before building, or uses any 'grill' trigger phrases.

mattpocock/grill-me

Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree. Use when user wants to stress-test a plan, get grilled on their design, or mentions "grill me".

mattpocock/grill-with-docs

Grilling session that challenges your plan against the existing domain model, sharpens terminology, and updates documentation (CONTEXT.md, ADRs) inline as decisions crystallise. Use when user wants to stress-test a plan against their project's language and documented decisions.

mattpocock/handoff

Compact the current conversation into a handoff document for another agent to pick up.

mattpocock/implement

Implement a piece of work based on a PRD or set of issues.

mattpocock/implement-spec

Implement a specification in code.

mattpocock/improve-codebase-architecture

Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.

mattpocock/loop-me

Grill me about specs for the workflows I want to build, within this workspace.

mattpocock/migrate-to-shoehorn

Migrate test files from `as` type assertions to @total-typescript/shoehorn. Use when user mentions shoehorn, wants to replace `as` in tests, or needs partial test data.

mattpocock/obsidian-vault

Search, create, and manage notes in the Obsidian vault with wikilinks and index notes. Use when user wants to find, create, or organize notes in Obsidian.

mattpocock/prototype

Build a throwaway prototype to flesh out a design — a runnable terminal app for state/business-logic questions, or several radically different UI variations toggleable from one route.

関連スキル