From fb31c8d7e52e7992a05ac2a0163b1a78f04c656b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Chyeonggkim=E2=80=9D?= <“hyeonggkim@smilegate.com”> Date: Mon, 13 Apr 2026 14:21:58 +0900 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A7=20chore:=20pre-commit=20=ED=9B=85?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80=ED=95=98=EC=97=AC=20.claude/common=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD=20=EB=B0=A9=EC=A7=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/install.sh | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) 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"