diff --git a/.claude/settings.json b/.claude/settings.json index bd81031..6092429 100644 --- a/.claude/settings.json +++ b/.claude/settings.json @@ -109,6 +109,10 @@ "type": "command", "command": "bash scripts/pm_context_restore.sh 2>/dev/null || true" }, + { + "type": "command", + "command": "bash scripts/recent_feedback_brief.sh 2>/dev/null || true" + }, { "type": "command", "command": "bash scripts/verify_log_paths.sh 2>/dev/null || true" diff --git a/.claude/skills/너드나비스-코어룰/SKILL.md b/.claude/skills/너드나비스-코어룰/SKILL.md index c4a8387..28fd778 100644 --- a/.claude/skills/너드나비스-코어룰/SKILL.md +++ b/.claude/skills/너드나비스-코어룰/SKILL.md @@ -1547,6 +1547,10 @@ C20-7 자기검증 5문항에 다음 항목 추가: - [ ] C28: md 파일 수정 전 PD님에게 승인을 요청하는 표현이 있는가? (있으면 제거) - [ ] C29-4: 완료 작업에 대한 PD 지시 로그·대화로그·소통 채널·Live 더미 동기화를 수행했는가? - [ ] C30: 대상 프로젝트(Unity·코어 프레임워크 등) 수정 전 git 최신 상태 점검을 수행했는가? +- [ ] **C34-16 (2026-04-19 추가)**: memory 파일 Write 시 본 worktree 절대 경로 직접 지정했는가? 아니면 user memory 경로 사용 시 동일 세션 내 일관 유지? (혼용 금지) +- [ ] **C6-1 (2026-04-19 추가)**: 신규·수정 스크립트의 백업 로직이 `{원본명}.bak_{YYYYMMDD_HHMM}.{확장자}` 표준 포맷을 따르는가? (`.bak-*`·Unix timestamp 금지) +- [ ] **P28-8 (2026-04-19 추가)**: 본 응답에 **PD님 별도 히스토리 요청 없는 종결·완료·폐기 확정 안건**이 재언급되지 않았는가? "고착·영구 종료·재논의 대상 아님" 표현 등장 시 삭제 검토 +- [ ] **안건 프레이밍 중복 (2026-04-19 추가)**: "PM 재량"과 "PD 결정" 카테고리에 동일 안건이 중복 등장하지 않는가? PD님 이전 턴 결정 사안을 재질문하지 않는가? **C. 정직성·용어 일관 (C5·C22·C23·C25)** - [ ] 실제 tool_use 결과로 입증 가능한 주장만 포함했는가? (C23) diff --git a/scripts/recent_feedback_brief.sh b/scripts/recent_feedback_brief.sh new file mode 100644 index 0000000..c5706c3 --- /dev/null +++ b/scripts/recent_feedback_brief.sh @@ -0,0 +1,34 @@ +#!/bin/bash +# SessionStart hook — 최근 7일 내 신설·수정 feedback 메모리 요지 자동 주입 +# 신 PM 세션·다른 PC 세션이 본 세션의 핵심 교훈을 인지할 수 있도록 자동 환기 +# 2026-04-19 신설 — PD님 직접 지시 "공유 누락 재발 방지" +# 관련 규칙: C31 자기검증 · C33 조직 업무 공유·기록 체계 일관성 · 헌법 원칙 ⑤ + +REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null) +[ -z "$REPO_ROOT" ] && exit 0 + +MEMORY_DIR="$REPO_ROOT/memory/org" +[ ! -d "$MEMORY_DIR" ] && exit 0 + +# 최근 7일 내 mtime feedback 파일 (최대 10건) +RECENT_FILES=$(find "$MEMORY_DIR" -name "feedback_*.md" -mtime -7 -type f 2>/dev/null | head -10) + +if [ -z "$RECENT_FILES" ]; then + exit 0 +fi + +COUNT=$(echo "$RECENT_FILES" | wc -l) +echo "🔍 [최근 7일 교훈 요지] $COUNT 건 — 세션 리더 필독 (C31 자기검증 참조):" + +while IFS= read -r file; do + [ -f "$file" ] || continue + name=$(basename "$file" .md) + # frontmatter description 추출 (첫 줄 120자 제한) + desc=$(awk '/^description:/ {sub(/^description: /, ""); print; exit}' "$file" 2>/dev/null | cut -c 1-120) + if [ -n "$desc" ]; then + echo " • $name" + echo " → $desc" + fi +done <<< "$RECENT_FILES" + +exit 0