#!/bin/bash
# SessionStart hook 확장: 부서 에이전트를 현재 워크트리 .claude/agents/ 로 자동 복제
# 축 2 hook 확장안 (2026-04-15 PD님 승인)
#
# 동작:
#   1. cwd 기반 부서 판단 (기획팀/개발팀/PM)
#   2. 해당 부서의 .claude/agents/*.md 를 cwd의 .claude/agents/ 로 복사
#   3. 이미 같은 내용이면 skip (cmp -s 비교)
#
# 제약:
#   - hook은 세션 이미 시작된 후 실행 → 그 세션의 이미 로드된 에이전트 목록은 갱신되지 않음
#   - 따라서 "다음 세션부터 유효"
#   - 첫 세션 유효화 이슈는 감시자안(별도 검토 중)에서 다룰 수 있음
#
# C23 준수: 실패·skip도 투명 보고

REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null)
[ -z "$REPO_ROOT" ] && exit 0

CWD=$(pwd -W 2>/dev/null || pwd)

# 부서 판단
if [[ "$CWD" == *"/기획팀/"* ]] || [[ "$CWD" == *"/기획팀" ]]; then
  ROLE="기획팀"
  DEPT_AGENTS="$REPO_ROOT/기획팀/.claude/agents"
elif [[ "$CWD" == *"/개발팀/"* ]] || [[ "$CWD" == *"/개발팀" ]]; then
  ROLE="개발팀"
  DEPT_AGENTS="$REPO_ROOT/개발팀/.claude/agents"
else
  # PM(루트) 세션은 복제 대상 아님 — 루트 .claude/agents/ 그대로 사용
  exit 0
fi

# 부서 원본 디렉토리 없으면 종료 (이례적)
[ ! -d "$DEPT_AGENTS" ] && exit 0

WT_AGENTS=".claude/agents"
mkdir -p "$WT_AGENTS" 2>/dev/null

COPIED=0
SKIPPED=0
for f in "$DEPT_AGENTS"/*.md; do
  [ -e "$f" ] || continue
  BASENAME=$(basename "$f")
  DEST="$WT_AGENTS/$BASENAME"
  if [ ! -f "$DEST" ] || ! cmp -s "$f" "$DEST" 2>/dev/null; then
    cp "$f" "$DEST"
    COPIED=$((COPIED + 1))
  else
    SKIPPED=$((SKIPPED + 1))
  fi
done

if [ $COPIED -gt 0 ]; then
  echo "🔧 [agent_sync:$ROLE] 부서 에이전트 $COPIED 개 신규 동기화 (다음 세션부터 유효)"
  [ $SKIPPED -gt 0 ] && echo "   (이미 동일: $SKIPPED 개)"
else
  echo "✅ [agent_sync:$ROLE] 부서 에이전트 동기화 상태 (동일 $SKIPPED 개)"
fi

exit 0
