#!/bin/bash # SessionStart hook — PM 자기 업무 맥락 복원 # 신설 근거: 2026-04-17 C29 위반 사건 (이전 세션 PM 업무 파악 실패) # 관련 규칙: P21-5B, P24 읽기 의무, C31 자기검증 REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null) [ -z "$REPO_ROOT" ] && exit 0 LOG_ROOT="$REPO_ROOT/공유/대화로그" [ ! -d "$LOG_ROOT" ] && exit 0 TODAY=$(date +%Y-%m-%d) YESTERDAY=$(date -d "yesterday" +%Y-%m-%d 2>/dev/null || date -v-1d +%Y-%m-%d 2>/dev/null) echo "" echo "🧠 [PM 맥락 복원] 최근 2일 대화로그 자동 스캔" # 당일 로그 부재 감지 (P24 위반 플래그) MISSING_TODAY=0 for PROJ in "$LOG_ROOT"/*/; do PROJ_NAME=$(basename "$PROJ") [ "$PROJ_NAME" = "INDEX.md" ] && continue if [ -d "$PROJ" ]; then TODAY_LOG="$PROJ$TODAY.md" if [ ! -f "$TODAY_LOG" ]; then # 당일 작업이 있는데 로그 없으면 경고 (git log로 당일 커밋 확인) TODAY_COMMITS=$(git log --since="$TODAY 00:00" --oneline 2>/dev/null | wc -l | tr -d ' ') if [ "$TODAY_COMMITS" -gt "0" ]; then if [ "$MISSING_TODAY" -eq "0" ]; then echo "⚠️ P24 위반 감지 — 당일 대화로그 미작성:" MISSING_TODAY=1 fi echo " - $PROJ_NAME/$TODAY.md (당일 커밋 ${TODAY_COMMITS}건 존재)" fi fi fi done # 최근 2일 로그 목록 출력 echo "" echo "📚 최근 2일 대화로그 (Read 권장):" FOUND=0 for PROJ in "$LOG_ROOT"/*/; do PROJ_NAME=$(basename "$PROJ") [ "$PROJ_NAME" = "INDEX.md" ] && continue if [ -d "$PROJ" ]; then for DATE in "$TODAY" "$YESTERDAY"; do LOG_FILE="$PROJ$DATE.md" if [ -f "$LOG_FILE" ]; then SIZE=$(wc -c < "$LOG_FILE" 2>/dev/null | tr -d ' ') echo " - 공유/대화로그/$PROJ_NAME/$DATE.md (${SIZE}B)" FOUND=1 fi done fi done [ "$FOUND" -eq "0" ] && echo " (최근 2일 로그 없음)" # PM 자기 커밋 최근 10건 (맥락 복원 보조) echo "" echo "📝 최근 커밋 10건 (PM 자기 업무 맥락):" git log --oneline -10 2>/dev/null | sed 's/^/ /' echo "" echo "→ P21-5B 수행: 위 대화로그를 Read하여 이전 세션 결정·방향 복원" echo "→ C31 자기검증: 응답 발신 직전 C27~C30 준수 여부 확인 의무" exit 0