BurningTimesAi/scripts/postuse_log_reminder.sh

53 lines
1.9 KiB
Bash

#!/bin/bash
# PostToolUse hook — md 대규모 변경 시 대화로그 부재 감지·리마인더
# 신설 근거: 2026-04-17 클라이언트팀 B-2-1 설계 + 개발팀장 개선안 7 (커밋-대화로그 정합성)
# 관련 규칙: P24 대화로그 기록 의무, C29-4 업무 완료 후 동기화
# stdin JSON에서 tool_name·file_path 파싱
INPUT=$(cat)
TOOL=$(echo "$INPUT" | grep -oP '"tool_name":\s*"\K[^"]+' | head -1)
FILE=$(echo "$INPUT" | grep -oP '"file_path":\s*"\K[^"]+' | head -1)
# md 파일이 아니면 스킵
[[ "$FILE" != *.md ]] && exit 0
# Edit·Write·MultiEdit만 대상
case "$TOOL" in
Edit|Write|MultiEdit) ;;
*) exit 0 ;;
esac
REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null)
[ -z "$REPO_ROOT" ] && exit 0
# 대화로그 파일 자체는 스킵 (무한 리마인더 방지)
[[ "$FILE" == *"공유/대화로그/"* ]] && exit 0
# SKILL.md·settings.json 등 설정 파일은 스킵 (별도 커밋에서 처리)
[[ "$FILE" == *".claude/"* ]] && exit 0
# 오늘 날짜
TODAY=$(date +%Y-%m-%d)
# 프로젝트 추론: 파일 경로에서 "프로젝트/EerieVillage" 등 감지
PROJECT=""
if [[ "$FILE" == *"프로젝트/EerieVillage"* ]]; then
PROJECT="EerieVillage"
elif [[ "$FILE" == *"프로젝트/코어프레임워크"* || "$FILE" == *"코어코드/"* ]]; then
PROJECT="코어프레임워크"
elif [[ "$FILE" == *"공유/PD_지시_트래킹"* || "$FILE" == *"공유/조직공지"* || "$FILE" == *"공유/소통"* ]]; then
PROJECT="조직운영"
fi
[ -z "$PROJECT" ] && exit 0
# 대화로그 파일 존재 확인
LOG_FILE="$REPO_ROOT/공유/대화로그/$PROJECT/$TODAY.md"
if [ ! -f "$LOG_FILE" ]; then
# JSON 출력: systemMessage + suppressOutput: false
echo "{\"systemMessage\":\"📝 [대화로그 리마인더] $PROJECT/$TODAY.md 파일이 없습니다. $FILE 변경에 대한 P24 대화로그 엔트리 작성 권고.\",\"suppressOutput\":false}"
fi
exit 0