53 lines
1.9 KiB
Bash
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)
|
|
|
|
# 프로젝트 추론: 파일 경로에서 "프로젝트/수상한잡화점" 등 감지
|
|
PROJECT=""
|
|
if [[ "$FILE" == *"프로젝트/수상한잡화점"* ]]; then
|
|
PROJECT="수상한잡화점"
|
|
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
|