BurningTimesAi/scripts/rollback_memory_central.sh

40 lines
1.4 KiB
Bash
Raw Normal View History

feat(rules): C34 확장 — memory junction 중앙화 근원 해결 (옵션 A) PD님 직접 지적 수용 — "근본 해결이 아닌 임시 방편은 코어 룰 위반이야. C34와 동급의 생존성 이슈는 '권고' 수준이 아니었어. 옵션 A 방안대로 처리해." PM 자진 반성(C2·C3·C5·C29 위반 자인) + 옵션 A 집행. 규칙 확장: - SKILL.md C34 제목 개정 "Live 증분" → "PC 로컬 실시간 공유 중앙화 체계 (Live + memory)" + C34-1/3/14 개정 + C34-16 신설 (memory junction 특수 조항 5종: 실체 디렉토리 유지·sync 방향·Write 경로 선택·3층 백업· 정(正) 판정 규칙 A·B·C) - CLAUDE.md 요약 갱신 - 폐기_규칙_아카이브.md §14 신설 (C34 확장 이력 6필드) 스크립트 구현: - scripts/memory_junction_ensure.sh 신규 (SessionStart hook, Lock 추가, Windows junction reparse point 체크 선행) - scripts/sync_memory_repo_to_central.sh 신규 (SessionStart, unflushed 대피 + Lock race 방어) - scripts/sync_memory_central_to_repo.sh 신규 (post-commit hook) - scripts/sync_memory.sh 신규 (수동 비상) - scripts/rollback_memory_central.sh 신규 (C6-1 롤백 경로) - setup/setup_windows.ps1·setup_macos.sh 3.6 섹션 - scripts/verify_setup.ps1 2.6 섹션 3축 검증 - .claude/settings.json SessionStart hook 체인 확장 - scripts/git-hooks/post-commit 확장 감사관 3종 "C34/C16-1 동급 생존성 이슈 축소 보고 감지" 체크 신설 (pm-auditor 5-A · dev-auditor 6-A · plan-auditor 6-A). 조직공지·feedback·MEMORY.md 인덱스·Live 더미·대화로그 일괄 집행. 실측 검증 통과: 38개 worktree junction 중앙 연결 (10 신규 + 28 유지, 실패 0건). 스크립트 로직 결함(Windows junction bash `-L` 미인식) 수정. 조직 전원 세션 1회 재시작 필요 — SessionStart hook이 자동 마이그레이션. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-18 16:39:04 +00:00
#!/bin/bash
# 롤백 스크립트 — memory 중앙화 이전 상태로 복귀
# Junction 해제 + 중앙 백업 + 레포 memory/org/ 원본 복구
# 2026-04-19 신설 — C34 집행 실패 시 사용 (C6-1 롤백 경로 확보 의무)
CENTRAL_MEM="$HOME/.claude/nerdnavis-memory"
CLAUDE_PROJECTS="$HOME/.claude/projects"
echo "=== memory 중앙화 롤백 시작 ==="
# 1. 중앙 저장소 백업 (소실 방지)
if [ -d "$CENTRAL_MEM" ]; then
BAK="$CENTRAL_MEM.rollback-$(date +%Y%m%d%H%M%S)"
mv "$CENTRAL_MEM" "$BAK"
echo "📦 중앙 저장소 백업: $BAK"
fi
# 2. 모든 worktree 해시 폴더의 user memory junction 제거
REMOVED=0
for hash_dir in "$CLAUDE_PROJECTS"/E--NerdNavisAi*; do
[ -d "$hash_dir" ] || continue
mem_link="$hash_dir/memory"
[ -e "$mem_link" ] || [ -L "$mem_link" ] || continue
if command -v powershell >/dev/null 2>&1; then
powershell -NoProfile -ExecutionPolicy Bypass -Command "Remove-Item '$mem_link' -Force -ErrorAction SilentlyContinue" >/dev/null 2>&1
else
rm -f "$mem_link" 2>/dev/null
fi
REMOVED=$((REMOVED + 1))
done
echo "🔗 user memory junction $REMOVED 개 제거"
echo ""
echo "⚠️ 다음 setup 스크립트 실행 시 현 체계 재구축됨."
echo " 완전 롤백이 필요하면 scripts/memory_junction_ensure.sh 와 setup_windows.ps1 3.6 섹션을 복구 전 상태로 revert 후 재실행."
echo "=== 롤백 완료 ==="