diff --git a/scripts/install.sh b/scripts/install.sh index 4c6b12b..ec17374 100755 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -136,6 +136,33 @@ if [[ -d "$SKILLS_SRC" ]]; then done fi +# 7) pre-commit 훅: .claude/common 변경 커밋 방지 +HOOK_DIR="$(git rev-parse --git-dir)/hooks" +HOOK_FILE="$HOOK_DIR/pre-commit" +HOOK_MARKER="# gameservice-fe-agent: block .claude/common commit" + +mkdir -p "$HOOK_DIR" + +if [[ -f "$HOOK_FILE" ]] && grep -qF "$HOOK_MARKER" "$HOOK_FILE"; then + echo "ℹ️ pre-commit 훅에 .claude/common 보호 규칙이 이미 있습니다. 건너뜁니다." +else + # 훅이 없으면 새로 생성, 있으면 기존 훅 뒤에 추가 + if [[ ! -f "$HOOK_FILE" ]]; then + echo "#!/usr/bin/env bash" > "$HOOK_FILE" + fi + cat >> "$HOOK_FILE" <<'HOOK' + +# gameservice-fe-agent: block .claude/common commit +if git diff --cached --name-only | grep -q "^\.claude/common"; then + echo "❌ .claude/common (gameservice-fe-agent submodule) 변경은 커밋할 수 없습니다." + echo " 공통 지침 수정은 gameservice-fe-agent 저장소에서 PR을 통해 진행해 주세요." + exit 1 +fi +HOOK + chmod +x "$HOOK_FILE" + echo "✅ pre-commit 훅을 설치했습니다. (.claude/common 변경 커밋 방지)" +fi + echo "" echo "🎉 설치가 완료되었습니다." echo " - 공통 지침: $TARGET_PATH/CLAUDE.md"