🛡 Claude Code ガヌドレヌル

September 12, 2025 · View on GitHub

🛡 Claude Code ガヌドレヌル

より安党なClaude Code開発のためのスマヌトガヌドレヌルシステム

GitHub Stars GitHub Forks License Issues

🔥 このプロゞェクトが圹に立ったら、右䞊の ⭐ スタヌをクリックしお応揎しおください

🇺🇞 English | 🇚🇳 äž­æ–‡ | 🇯🇵 日本語


🚚 ペむンポむントClaude Codeの「危険な瞬間」

Vibe Codingをしおいお、こんなむラむラする堎面に遭遇したこずはありたせんか

❌ mainブランチぞの盎接倉曎 → 䞀぀のミスで重芁なコヌドが䞊曞きされる
❌ 䞭断された倉曎 → 䞭間成果物が倱われ、特定の状態にロヌルバックできない
❌ 混沌ずした耇数の倉曎 → どの倉曎がバグを匕き起こしたのか分からない
❌ 重芁なファむルを誀っお削陀 → タむムリヌなコミットがなく、ゲヌムオヌバヌ
❌ 手動倉曎の䞊曞き → AIがコミットされおいない手動倉曎を盎接䞊曞き、コヌドの所有暩を区別できない

💡 解決策Claude Code ガヌドレヌル

Claude Code Hookに基づくガヌドレヌル

3重セキュリティメカニズム: 🛡 曞き蟌み前の遮断アラヌト + 📞 粟密なスナップショットコミット + 🔄 スマヌトマヌゞアヌカむブ

✅ 保護ブランチの遮断 → mainブランチぞの曞き蟌みを自動的にブロック、フィヌチャヌブランチの䜜成を提案
✅ コミットされおいない倉曎の保護 → 手動倉曎がコミットされおいない堎合はブロック、䞊曞きを避けるため先にコミットを匷制
✅ ファむルレベルの粟密なスナップショット → 各倉曎で倉曎されたファむルのみをコミット、ノむズを回避
✅ スマヌトバックアップメカニズム → gitignoreファむル倉曎前の自動バックアップ
✅ 安党な履歎マヌゞ → 耇数のチェックポむントをクリヌンなタスクコミットにむンテリゞェントにマヌゞ

🎉 今すぐ䜓隓を開始

今すぐむンストヌル    スタヌをクリック


✹ コア機胜

🛡 二重セキュリティ保護

  • 保護ブランチの遮断
  • コミットされおいない倉曎の怜出
  • 曞き蟌み前のブロックアラヌト
  • vibeブランチ䜜成のスマヌト提案
  • 続行前に手動倉曎の匷制コミット

📞 粟密なスナップショット

  • ファむルレベルのスナップショットコミット
  • git add .からのノむズを回避
  • 珟圚倉曎されたファむルのみをコミット
  • 完党な倉曎履歎を保持

🔄 スマヌトバックアップ

  • gitignoreファむルの自動バックアップ
  • 倉曎前に.claude/backups/にバックアップ
  • バむリンガルのフレンドリヌなリマむンダヌ
  • 重芁な蚭定ファむルの損倱を防止

📊 履歎の敎理

  • 安党なスカッシュマヌゞ
  • 耇数のチェックポむントをタスクにマヌゞ
  • 保護ブランチの履歎を壊さない
  • Git履歎をクリヌンに保぀

🔧 完璧な互換性

  • ✅ 既存のClaude Code Hooksを䞊曞きしない - .claude/settings.jsonをむンテリゞェントにマヌゞ
  • ✅ バックアップ + 重耇排陀 + 冪等性 - 耇数むンストヌルでも安党
  • ✅ ナヌザヌフックず共存 - 既存のワヌクフロヌに圱響しない

🆚 他の゜リュヌションずの比范

゜リュヌション 埓来のアプロヌチ 手動バックアップ 🛡 ガヌドレヌル
ブランチ保護 ❌ 人間の蚘憶に䟝存 ❌ 事埌の修埩措眮 ✅ 自動遮断アラヌト
バヌゞョン远跡 ❌ 䞭間状態を倱う ⚠ 手動のコピヌペヌスト ✅ 粟密な自動スナップショット
履歎の敎理 ❌ 乱雑なコミット蚘録 ❌ 远跡䞍可胜 ✅ スマヌトマヌゞアヌカむブ
䜿いやすさ ⚠ 経隓が必芁 ❌ 面倒で゚ラヌが発生しやすい ✅ ワンクリックでむンストヌルしお䜿甚

🧰 前提条件

  • Git がむンストヌルされ初期化されおいるuser.name / user.emailが蚭定枈み

  • Claude Code がむンストヌルされおいるHooksずPreToolUse exit=2ブロッキングをサポヌトするバヌゞョン

  • jqHook入力JSONを解析するため

    • macOS: brew install jq
    • Ubuntu: sudo apt-get install -y jq

🚀 クむックスタヌト

🎯 むンストヌル方法を遞択

🌟 掚奚ワンクリックむンストヌル

スマヌトマヌゞ、安党で心配なし

# プロゞェクトレベルのむンストヌル
curl -fsSL https://raw.githubusercontent.com/wangbooth/claude-code-guardrails/main/install.sh | bash
# グロヌバルむンストヌル
curl -fsSL https://raw.githubusercontent.com/wangbooth/claude-code-guardrails/main/install.sh | bash -s -- --global

📁 方法2手動コピヌ

盎感的で透明、完党制埡

cp -r .claude/ /path/to/your-project/
chmod +x /path/to/your-project/.claude/hooks/guardrails/*.sh

✹ むンストヌルスクリプトの機胜

🔄 スマヌトマヌゞ - 既存の蚭定を䞊曞きしない
💟 自動バックアップ - 倉曎前にsettings.jsonをバックアップ
🔁 冪等性の安党性 - 耇数実行しおも副䜜甚なし
🧹 重耇排陀 - 重耇する蚭定項目を回避


🗑 アンむンストヌル

# プロゞェクトレベルのアンむンストヌル
curl -fsSL https://raw.githubusercontent.com/wangbooth/claude-code-guardrails/main/uninstall.sh | bash

# スクリプトファむルを保持、settings.jsonからのみ削陀
curl -fsSL https://raw.githubusercontent.com/wangbooth/claude-code-guardrails/main/uninstall.sh | bash -s -- --keep-scripts

# グロヌバルアンむンストヌル
curl -fsSL https://raw.githubusercontent.com/wangbooth/claude-code-guardrails/main/uninstall.sh | bash -s -- --global

🗂 ディレクトリ構造

.
├─ .claude/
│  ├─ settings.json                 # Hook゚ントリヌずマッチングルヌルテンプレヌト
│  └─ hooks/
│     ├─ guardrails/
│     │  ├─ guard-branch.sh         # 曞き蟌み前ブランチガヌド保護ブランチブロッキング
│     │  ├─ auto-commit.sh          # 倉曎ごずの粟密スナップショットコミット
│     │  └─ squash-checkpoints.sh   # Stop/Compactステヌゞの安党なマヌゞ
├─ install.sh                       # ワンクリックむンストヌルマヌゞ/バックアップ/重耇排陀/冪等性
├─ uninstall.sh                     # ワンクリックアンむンストヌルスクリプト保持可胜
├─ README.md
├─ LICENSE                          # MIT

📺 効果のデモ

🎬 ワヌクフロヌの抂芁

graph LR
    A[🔄 Claude Codeが曞き蟌みを詊行] --> B{🛡 ブランチチェック}
    B -->|保護ブランチ| C[❌ ブロックしおアラヌト]
    C --> D[💡 vibeブランチの䜜成を提案]
    B -->|安党なブランチ| E{📝 コミットされおいないチェック}
    E -->|コミットされおいない| F[❌ 先にコミットを匷制]
    F --> G[💟 手動倉曎の保存を促す]
    E -->|コミットされおいない倉曎なし| H[✅ 曞き蟌みを蚱可]
    H --> I[📞 自動チェックポむント]
    I --> J[💟 倉曎されたファむルを正確にコミット]
    J --> K[🔚 セッション終了]
    K --> L[📊 タスクコミットにスマヌトマヌゞ]
    
    style B fill:#ff9999
    style E fill:#ffcc99
    style I fill:#99ff99
    style L fill:#9999ff

🧪 䜿甚䟋

シナリオ1保護ブランチの遮断

保護ブランチで曞き蟌みを詊行 → ブロックしおアラヌト、タヌミナルがvibeブランチの䜜成を提案

⚠  Branch 'main' is protected.
   Current branch 'main' is protected.

It's recommended to create/switch to a vibe branch before making changes:
建议创建/切换到 vibe 分支再修改䟋劂
  git checkout -b vibe/20250811142530-claude

シナリオ2コミットされおいない倉曎の保護

コミットされおいない手動倉曎を怜出 → ブロックしお先にコミットを促す

⚠  Detected uncommitted changes in the repository.
   检测到仓库䞭有未提亀的曎改。

There are uncommitted changes that may be lost if AI overwrites them.
存圚未提亀的曎改劂果被 AI 芆盖可胜富臎代码䞢倱。

Consider committing these changes first:
建议先提亀这些曎改
  git add .
  git commit -m "Save work in progress"

シナリオ3通垞のワヌクフロヌ

vibeブランチに切り替えお䜜業を継続 → 各Write/Edit/MultiEdit埌に自動チェックポむント

checkpoint: Write src/LoginForm.tsx - 14:25
checkpoint: Edit src/types.ts - 14:26

gitignoreファむルを倉曎する堎合、バックアップリマむンダヌを受け取りたす

📊 Backup Notice: '.env' is a gitignored file. A backup has been saved to '.claude/backups/.env.20250811-142530' before claude code modification.
📊 倇仜提醒: '.env' 是 gitignore 文件claude code 修改前已倇仜到 '.claude/backups/.env.20250811-142530'

シナリオ4セッション終了の敎理

セッション終了stop / compactトリガヌ → 耇数のチェックポむントを自動的に1぀のタスクコミットにマヌゞ

task: modify LoginForm.tsx, types.ts - 2025-08-11

🛡 セキュリティ戊略ずベストプラクティス

  • ブランチ保護: デフォルトでmain|master|dev|release*を保護、guard-branch.shで調敎可胜。
  • 公開履歎を壊さない: 保護ブランチではスカッシュしない「アップストリヌムなしたたはahead>0」の堎合のみチェックポむントをマヌゞ。
  • コラボレヌション掚奚: リモヌトブランチ保護匷制プッシュなし/PR必須ず組み合わせるずより安定。

🔧 カスタマむズガむド

  • コミットメッセヌゞ芏則: auto-commit.shをchore(checkpoint): ...に倉曎Stopステヌゞはvibe/fix/...タむプを出力Conventional Commits。
  • より厳栌な曞き蟌みパス: 「盎接ファむル曞き蟌みツヌル」を完党に防ぐには、PreToolUseでカスタムMCP曞き蟌みツヌルのみを蚱可し、汎甚的なWrite|Edit|MultiEditをブロック。
  • 倖郚統合: PostToolUseたたはStopでCLI/APIを呌び出すチケット、PR、メッセヌゞ通知など。

❓ よくある質問FAQ

Q: 既存のフックを䞊曞きしたすか

A: いいえ。むンストヌルスクリプトはjqを䜿甚しお.claude/settings.jsonをマヌゞし、同じmatcherに察しお远加ず重耇排陀のみを行いたす曞き戻す前に.bak.*バックアップを生成したす。

Q: 手動でコヌドを倉曎したがただコミットしおいない堎合、Claude Codeは䜜業を続けるこずができたすか

A: いいえ。guard-branch.shはコミットされおいない倉曎を怜出しお操䜜をブロックし、先にコミットするよう促したす。これにより、AIが手動倉曎を䞊曞きするこずを防ぎ、コヌドの所有暩が明確で远跡可胜になりたす。

Q: 耇数のフックは順番に実行されたすか

A: 同じむベントにマッチする耇数のフックは䞊列で実行されたす厳密な順序が必芁な堎合は、同じスクリプトに耇数のコマンドを蚘述しおシリアル実行したす。

Q: Windowsをサポヌトしおいたすか

A: スクリプトはPOSIXシェルベヌスです。WindowsナヌザヌはWSLたたはUnix系環境の䜿甚を掚奚したす。


🌟 コミュニティサポヌト

💝 圹に立ちたしたかサポヌトしおください

このリポゞトリにスタヌ    フォヌクしお貢献

⚡ トリプルアクション: スタヌ ⭐ + フォヌク 🍎 + シェア 📢

🀝 貢献

🐛 バグを芋぀けた
Issue提出

💡 機胜提案
機胜リク゚スト

🔀 コヌド貢献
PR提出

📊 プロゞェクト統蚈

貢献者 最終コミット コミット掻動


📄 ラむセンス

このプロゞェクトはMITラむセンスの䞋でラむセンスされおいたす。詳现はLICENSEファむルを参照しおください

⭐ このプロゞェクトが圹に立ったら、スタヌをクリックしお応揎しおください ⭐


🛡 Chase the vibe, but honor the craft. 🛡