git-guardrails-claude-code

tarafından mattpocock

Claude Code kancalarını ayarlayarak tehlikeli git komutlarını (push, reset --hard, clean, branch -D vb.) çalıştırılmadan önce engeller. Kullanıcı yıkıcı git işlemlerini önlemek, git güvenlik kancaları eklemek veya Claude Code'da git push/reset'i engellemek istediğinde kullanılır.

npx skills add https://github.com/mattpocock/skills --skill git-guardrails-claude-code

Setup Git Guardrails

Sets up a PreToolUse hook that intercepts and blocks dangerous git commands before Claude executes them.

What Gets Blocked

  • git push (all variants including --force)
  • git reset --hard
  • git clean -f / git clean -fd
  • git branch -D
  • git checkout . / git restore .

When blocked, Claude sees a message telling it that it does not have authority to access these commands.

Steps

1. Ask scope

Ask the user: install for this project only (.claude/settings.json) or all projects (~/.claude/settings.json)?

2. Copy the hook script

The bundled script is at: scripts/block-dangerous-git.sh

Copy it to the target location based on scope:

  • Project: .claude/hooks/block-dangerous-git.sh
  • Global: ~/.claude/hooks/block-dangerous-git.sh

Make it executable with chmod +x.

3. Add hook to settings

Add to the appropriate settings file:

Project (.claude/settings.json):

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/block-dangerous-git.sh"
          }
        ]
      }
    ]
  }
}

Global (~/.claude/settings.json):

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "~/.claude/hooks/block-dangerous-git.sh"
          }
        ]
      }
    ]
  }
}

If the settings file already exists, merge the hook into existing hooks.PreToolUse array — don't overwrite other settings.

4. Ask about customization

Ask if user wants to add or remove any patterns from the blocked list. Edit the copied script accordingly.

5. Verify

Run a quick test:

echo '{"tool_input":{"command":"git push origin main"}}' | <path-to-script>

Should exit with code 2 and print a BLOCKED message to stderr.

mattpocock tarafından daha fazla skill

improve-codebase-architecture
mattpocock
Bir kod tabanında derinleşme fırsatlarını bulur; CONTEXT.md dosyasındaki alan diline ve docs/adr/ içindeki kararlara dayanır. Kullanıcı mimariyi iyileştirmek, yeniden düzenleme fırsatları bulmak, sıkı bağlı modülleri birleştirmek veya kod tabanını daha test edilebilir ve yapay zeka tarafından gezilebilir hale getirmek istediğinde kullanılır.
developmentcode-reviewapi
tdd
mattpocock
Kırmızı-yeşil-yeniden düzenleme döngüsüyle test odaklı geliştirme. Kullanıcı TDD kullanarak özellik geliştirmek veya hata düzeltmek istediğinde, "kırmızı-yeşil-yeniden düzenleme"den bahsettiğinde, entegrasyon testleri istediğinde veya test-ilk geliştirme talep ettiğinde kullanılır.
developmenttesting
handoff
mattpocock
Mevcut konuşmayı, başka bir agent'ın devralması için bir handoff belgesine sıkıştır.
communicationproject-managementdocument
prototype
mattpocock
Bir tasarımı uygulamaya geçmeden önce geliştirmek için atılabilir bir prototip oluşturun. İki dal arasında yönlendirme yapar — durum/iş mantığı soruları için çalıştırılabilir bir terminal uygulaması veya tek bir rotadan değiştirilebilen birkaç radikal farklı UI varyasyonu. Kullanıcı prototip yapmak, bir veri modelini veya durum makinesini doğrulamak, bir UI taslağı oluşturmak, tasarım seçeneklerini keşfetmek istediğinde veya "bunu prototiple", "oynayayım", "birkaç tasarım dene" dediğinde kullanın.
developmentdesigncreative
triage
mattpocock
Sorunları, triyaj rollerine dayalı bir durum makinesi aracılığıyla sınıflandırır. Kullanıcı bir sorun oluşturmak, sorunları sınıflandırmak, gelen hataları veya özellik taleplerini incelemek, bir AFK ajanı için sorunları hazırlamak veya sorun iş akışını yönetmek istediğinde kullanılır.
developmentproject-managementcommunication
obsidian-vault
mattpocock
Obsidian kasasında notları arayın, oluşturun ve wikilinkler ile dizin notları kullanarak yönetin. Kullanıcı Obsidian'da not bulmak, oluşturmak veya düzenlemek istediğinde kullanın.
productivitydocument
edit-article
mattpocock
Makaleleri bölümleri yeniden yapılandırarak, netliği artırarak ve metni sıkılaştırarak düzenleyin ve geliştirin. Kullanıcı bir makale taslağını düzenlemek, revize etmek veya geliştirmek istediğinde kullanın.
documentcreative
writing-great-skills
mattpocock
İyi beceriler yazma ve düzenleme referansı — bir beceriyi öngörülebilir kılan kelime dağarcığı ve ilkeler.
documentdevelopment