diff --git a/.claude/settings.json b/.claude/settings.json index 6657bc1..8250926 100644 --- a/.claude/settings.json +++ b/.claude/settings.json @@ -80,6 +80,10 @@ { "type": "command", "command": "git fetch origin 2>/dev/null; CHANGES=$(git log --oneline HEAD..origin/main 2>/dev/null | head -10); if [ -n \"$CHANGES\" ]; then echo '๐Ÿ“Œ [SessionStart] origin/main ๋ณ€๊ฒฝ ๊ฒ€์ถœ:'; echo \"$CHANGES\"; echo 'โ†’ ๊ถŒ์žฅ: git merge origin/main --no-edit'; else echo 'โœ… [SessionStart] main ๋™๊ธฐํ™” ์ƒํƒœ'; fi" + }, + { + "type": "command", + "command": "bash scripts/inbox_scan.sh 2>/dev/null || true" } ] } diff --git a/scripts/inbox_scan.sh b/scripts/inbox_scan.sh new file mode 100644 index 0000000..a8b2177 --- /dev/null +++ b/scripts/inbox_scan.sh @@ -0,0 +1,57 @@ +#!/bin/bash +# SessionStart hook ํ™•์žฅ: ์ž๊ธฐ inbox ์‹ ๊ทœยท๋ฏธ์ฒ˜๋ฆฌ ํŒŒ์ผ ์ž๋™ ์•Œ๋ฆผ +# Phase 2 (2026-04-15 PD๋‹˜ ์Šน์ธ) โ€” ๊ณต์œ /์†Œํ†ต/ 6์ถ• ํ†ต์‹  ํ—ˆ๋ธŒ ์—ฐ๋™ +# +# ๋ถ€์„œ ํŒ๋‹จ ๊ทœ์น™ (cwd ๊ธฐ๋ฐ˜): +# - /๊ธฐํš์‹ค/ ๊ฒฝ๋กœ ํฌํ•จ โ†’ ๊ธฐํš์‹ค +# - /๊ฐœ๋ฐœ์‹ค/ ๊ฒฝ๋กœ ํฌํ•จ โ†’ ๊ฐœ๋ฐœ์‹ค +# - ๊ทธ ์™ธ โ†’ PM (๋ฃจํŠธ) +# ๊ฐ ๋ถ€์„œ๋Š” ์ž๊ธฐ ์ˆ˜์‹  inbox 2๊ฐœ๋ฅผ ์Šค์บ”ํ•˜๋ฉฐ, YAML `status: ์™„๋ฃŒ` ๊ฐ€ ์•„๋‹Œ ํŒŒ์ผ๋งŒ ๋ณด๊ณ ํ•œ๋‹ค. + +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="๊ธฐํš์‹ค" + INBOXES=("$REPO_ROOT/๊ณต์œ /์†Œํ†ต/PMโ†’๊ธฐํš์‹ค" "$REPO_ROOT/๊ณต์œ /์†Œํ†ต/๊ฐœ๋ฐœ์‹คโ†’๊ธฐํš์‹ค") +elif [[ "$CWD" == *"/๊ฐœ๋ฐœ์‹ค/"* ]] || [[ "$CWD" == *"/๊ฐœ๋ฐœ์‹ค" ]]; then + ROLE="๊ฐœ๋ฐœ์‹ค" + INBOXES=("$REPO_ROOT/๊ณต์œ /์†Œํ†ต/PMโ†’๊ฐœ๋ฐœ์‹ค" "$REPO_ROOT/๊ณต์œ /์†Œํ†ต/๊ธฐํš์‹คโ†’๊ฐœ๋ฐœ์‹ค") +else + ROLE="PM" + INBOXES=("$REPO_ROOT/๊ณต์œ /์†Œํ†ต/๊ฐœ๋ฐœ์‹คโ†’PM" "$REPO_ROOT/๊ณต์œ /์†Œํ†ต/๊ธฐํš์‹คโ†’PM") +fi + +TOTAL=0 +LINES="" + +for INBOX in "${INBOXES[@]}"; do + [ ! -d "$INBOX" ] && continue + CHANNEL=$(basename "$INBOX") + for f in "$INBOX"/*.md; do + [ -e "$f" ] || continue + STATUS=$(grep -m1 "^status:" "$f" 2>/dev/null | sed 's/status:[[:space:]]*//;s/[[:space:]]*$//') + [ "$STATUS" = "์™„๋ฃŒ" ] && continue + SUBJECT=$(grep -m1 "^subject:" "$f" 2>/dev/null | sed 's/subject:[[:space:]]*//;s/[[:space:]]*$//') + FROM=$(grep -m1 "^from:" "$f" 2>/dev/null | sed 's/from:[[:space:]]*//;s/[[:space:]]*$//') + PRIORITY=$(grep -m1 "^priority:" "$f" 2>/dev/null | sed 's/priority:[[:space:]]*//;s/[[:space:]]*$//') + BASENAME=$(basename "$f") + [ -z "$SUBJECT" ] && SUBJECT="(์ œ๋ชฉ ์—†์Œ)" + [ -z "$FROM" ] && FROM="(๋ฐœ์‹ ์ž ์—†์Œ)" + [ -z "$PRIORITY" ] && PRIORITY="normal" + [ -z "$STATUS" ] && STATUS="๋Œ€๊ธฐ" + LINES+=" โ€ข [$CHANNEL] $FROM โ†’ $SUBJECT (prio:$PRIORITY, status:$STATUS) โ€” $BASENAME +" + TOTAL=$((TOTAL + 1)) + done +done + +if [ $TOTAL -gt 0 ]; then + echo "๐Ÿ“ฌ [Inbox:$ROLE] ๋ฏธ์ฒ˜๋ฆฌ ํ†ต์‹  $TOTAL ๊ฑด (๊ณต์œ /์†Œํ†ต/):" + printf "%b" "$LINES" + echo "โ†’ ์ฒ˜๋ฆฌ ํ›„ status: ์™„๋ฃŒ ๊ฐฑ์‹  + git mv ๊ณต์œ /์†Œํ†ต/์™„๋ฃŒ/ + commitยทpush" +else + echo "๐Ÿ“ญ [Inbox:$ROLE] ๋ฏธ์ฒ˜๋ฆฌ ํ†ต์‹  ์—†์Œ" +fi diff --git a/๊ฐœ๋ฐœ์‹ค/.claude/settings.json b/๊ฐœ๋ฐœ์‹ค/.claude/settings.json index 6657bc1..8250926 100644 --- a/๊ฐœ๋ฐœ์‹ค/.claude/settings.json +++ b/๊ฐœ๋ฐœ์‹ค/.claude/settings.json @@ -80,6 +80,10 @@ { "type": "command", "command": "git fetch origin 2>/dev/null; CHANGES=$(git log --oneline HEAD..origin/main 2>/dev/null | head -10); if [ -n \"$CHANGES\" ]; then echo '๐Ÿ“Œ [SessionStart] origin/main ๋ณ€๊ฒฝ ๊ฒ€์ถœ:'; echo \"$CHANGES\"; echo 'โ†’ ๊ถŒ์žฅ: git merge origin/main --no-edit'; else echo 'โœ… [SessionStart] main ๋™๊ธฐํ™” ์ƒํƒœ'; fi" + }, + { + "type": "command", + "command": "bash scripts/inbox_scan.sh 2>/dev/null || true" } ] } diff --git a/๊ธฐํš์‹ค/.claude/settings.json b/๊ธฐํš์‹ค/.claude/settings.json index 6657bc1..8250926 100644 --- a/๊ธฐํš์‹ค/.claude/settings.json +++ b/๊ธฐํš์‹ค/.claude/settings.json @@ -80,6 +80,10 @@ { "type": "command", "command": "git fetch origin 2>/dev/null; CHANGES=$(git log --oneline HEAD..origin/main 2>/dev/null | head -10); if [ -n \"$CHANGES\" ]; then echo '๐Ÿ“Œ [SessionStart] origin/main ๋ณ€๊ฒฝ ๊ฒ€์ถœ:'; echo \"$CHANGES\"; echo 'โ†’ ๊ถŒ์žฅ: git merge origin/main --no-edit'; else echo 'โœ… [SessionStart] main ๋™๊ธฐํ™” ์ƒํƒœ'; fi" + }, + { + "type": "command", + "command": "bash scripts/inbox_scan.sh 2>/dev/null || true" } ] }