33 lines
1.0 KiB
Bash
33 lines
1.0 KiB
Bash
#!/bin/bash
|
||
# UserPromptSubmit hook용 — HOLD·긴급 파일 변경 감지 경고
|
||
# 기획실 Phase 3 HOLD 인지 실패 사례(2026-04-15)의 근본 방지
|
||
# C10-3 HOLD 충돌 처리 자동화
|
||
|
||
REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null)
|
||
[ -z "$REPO_ROOT" ] && exit 0
|
||
|
||
THROTTLE_DIR="$HOME/.claude/.nerdnavis_throttle"
|
||
mkdir -p "$THROTTLE_DIR" 2>/dev/null
|
||
HOLD_HASH_FILE="$THROTTLE_DIR/hold_files_hash"
|
||
|
||
# 현재 HOLD·긴급 파일 목록 수집
|
||
HOLD_FILES=$(find "$REPO_ROOT" -maxdepth 2 \( -name '🛑_*' -o -name '⚠️_*' -o -name '🚨_*' \) 2>/dev/null | sort)
|
||
|
||
if [ -z "$HOLD_FILES" ]; then
|
||
# HOLD 파일 없음 — 해시 초기화
|
||
echo "" > "$HOLD_HASH_FILE"
|
||
exit 0
|
||
fi
|
||
|
||
CURRENT_HASH=$(echo "$HOLD_FILES" | sha1sum 2>/dev/null | cut -d' ' -f1)
|
||
PREV_HASH=$(cat "$HOLD_HASH_FILE" 2>/dev/null)
|
||
|
||
if [ "$CURRENT_HASH" != "$PREV_HASH" ]; then
|
||
echo "🚨 [HOLD 감지] HOLD·긴급 파일 변경 발견:"
|
||
echo "$HOLD_FILES" | while read -r f; do
|
||
echo " → $(basename "$f")"
|
||
done
|
||
echo "$CURRENT_HASH" > "$HOLD_HASH_FILE"
|
||
fi
|
||
exit 0
|