#!/bin/bash
# 매니페스트 수동 등록 — PM이 pm-auditor Task 호출 직후 명시 실행
# C35-9 Layer 3 근본 해결 2026-04-20
# Usage: bash scripts/manifest_register.sh <plan_id> <target_files_csv> <goal>

PLAN_ID="${1}"
TARGETS_CSV="${2}"
GOAL="${3}"

if [ -z "$PLAN_ID" ] || [ -z "$TARGETS_CSV" ] || [ -z "$GOAL" ]; then
  cat >&2 <<EOF
Usage: bash scripts/manifest_register.sh <plan_id> <target_files_csv> <goal>

  plan_id          : 예) 2026-04-20_134530
  target_files_csv : 쉼표 구분 파일 상대 경로 (예: scripts/x.sh,SKILL.md)
  goal             : 집행 목표 1줄 요약 (예: "안건 X Phase 1 집행")

근거: C35-9 Layer 3 매니페스트 기반 감사 (2026-04-20 PreToolUse 차단 전환)
EOF
  exit 1
fi

# 2026-05-06 (나) 채택 — main 워크트리 .claude/manifest/ 일괄 SOT
GCD=$(git rev-parse --git-common-dir 2>/dev/null)
MAIN_ROOT=$(cd "$GCD/.." 2>/dev/null && pwd)
[ -z "$MAIN_ROOT" ] && MAIN_ROOT=$(git rev-parse --show-toplevel 2>/dev/null)
MANIFEST_DIR="$MAIN_ROOT/.claude/manifest/active"
mkdir -p "$MANIFEST_DIR" 2>/dev/null

MANIFEST="$MANIFEST_DIR/$PLAN_ID.md"

HOSTNAME_TAG=$(hostname 2>/dev/null | tr -d '[:space:]' | tr -cd '[:alnum:]-_' | head -c 32)

# YAML frontmatter + 본문
{
  echo "---"
  echo "plan_id: $PLAN_ID"
  echo "created_at: $(date -Iseconds 2>/dev/null || date +%Y-%m-%dT%H:%M:%S)"
  echo "hostname: ${HOSTNAME_TAG:-unknown}"
  echo "goal: \"$GOAL\""
  echo "target_files:"
  IFS=',' read -ra FILES <<< "$TARGETS_CSV"
  for f in "${FILES[@]}"; do
    # 공백 제거
    f=$(echo "$f" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
    echo "  - $f"
  done
  echo "completion_criteria: \"commit + push 완료 후 post-commit hook archived 이동\""
  echo "---"
  echo ""
  echo "# 매니페스트 — $PLAN_ID"
  echo ""
  echo "- **등록 시각**: $(date -Iseconds 2>/dev/null || date)"
  echo "- **호스트**: ${HOSTNAME_TAG:-unknown}"
  echo "- **집행 목표**: $GOAL"
  echo ""
  echo "## 대상 파일"
  for f in "${FILES[@]}"; do
    f=$(echo "$f" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
    echo "- \`$f\`"
  done
  echo ""
  echo "## 완료 기준"
  echo ""
  echo "commit + push 완료. post-commit hook이 \`archived/$PLAN_ID.md\`로 자동 이동 + target_files cross-check."
} > "$MANIFEST"

echo "✅ 매니페스트 등록 완료"
echo "   경로: $MANIFEST"
echo "   plan_id: $PLAN_ID"
echo "   target_files: ${#FILES[@]}건"
echo "   해제: 본 매니페스트 target_files 범위 내 Edit/Write 자동 통과"
echo ""
echo "📌 본 집행 완료 (commit + push) 후 매니페스트는 자동 archived 이동"

exit 0
