# Git 위험 명령 차단 (git-guardrails-claude-code)

> Claude Code에 PreToolUse 훅을 설정해 git push, reset --hard 같은 위험한 명령을 실행 전에 차단합니다.

- 카테고리: [보안 강화](https://www.myskills.tools/ko/categories/hardening/)
- 출처: 커뮤니티 · Matt Pocock
- 저장소: https://github.com/mattpocock/skills/tree/main/skills/misc/git-guardrails-claude-code (commit 3216582)
- SKILL.md: https://github.com/mattpocock/skills/blob/main/skills/misc/git-guardrails-claude-code/SKILL.md
- 설치 명령: `npx skills add mattpocock/skills --skill git-guardrails-claude-code`
- 라이선스: MIT
- 호환 도구: Claude Code, Codex, Copilot, Gemini CLI
- 권한: read-repo ✓, write-files ✓, shell ✓, network ✗
- 상태: 스캔 통과
- 규칙 스캔으로 모든 위험을 찾을 수는 없습니다. 설치 전에 이 스킬의 SKILL.md를 읽고 권한을 확인하세요.
- ⚠ Claude Code의 훅 설정(프로젝트 또는 전역)을 변경하며, 이후 Claude는 git push 등 차단된 명령을 실행할 수 없습니다.

## 핵심 규칙

settings 파일이 이미 있으면 hooks.PreToolUse 배열에 훅을 병합하고 다른 설정은 덮어쓰지 않습니다.

## 실행 단계

1. **적용 범위 확인** — 이 프로젝트에만(.claude/settings.json) 설치할지, 모든 프로젝트에(~/.claude/settings.json) 설치할지 사용자에게 묻습니다.
2. **훅 스크립트 복사** — 포함된 block-dangerous-git.sh를 .claude/hooks/ 또는 ~/.claude/hooks/에 복사하고 chmod +x로 실행 권한을 줍니다.
3. **설정에 훅 추가** — 해당 settings.json에 matcher가 Bash인 PreToolUse 훅을 등록하고 기존 설정과 병합합니다.
4. **차단 목록 조정** — 차단 패턴을 추가하거나 뺄지 묻고, 복사한 스크립트를 그에 맞게 수정합니다.
5. **동작 검증** — git push를 흉내 낸 입력을 스크립트에 넣어 종료 코드 2와 stderr의 BLOCKED 메시지를 확인합니다.

## 권한 설명 (SKILL.md 기준)

| 기능 | 필요 여부 | 설명 |
|---|---|---|
| 파일 쓰기 | 일부 필요 | 훅 스크립트(.claude/hooks/ 아래)와 해당 settings.json만 씁니다. |
| 명령 실행 | 일부 필요 | chmod +x와 테스트 입력으로 훅 스크립트를 호출하는 검증만 실행합니다. |
| 네트워크 송신 | 필요 없음 | 네트워크 접근이 필요 없습니다. |

## SKILL.md 프런트매터(YAML)

```yaml
---
name: git-guardrails-claude-code
description: Set up Claude Code hooks to block dangerous git commands (push, reset --hard, clean, branch -D, etc.) before they execute. Use when user wants to prevent destructive git operations, add git safety hooks, or block git push/reset in Claude Code.
---
```

홈: https://www.myskills.tools/ko/ · URL: https://www.myskills.tools/ko/skills/git-guardrails-claude-code/
