BurningTimesAi/scripts/sync_memory_central_to_repo.sh

66 lines
2.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
# post-commit hook — 중앙 $HOME/.claude/nerdnavis-memory/ → 레포 memory/org/ 단방향 sync
# Claude user memory에 Write된 내용을 commit 포함시키기 위해 commit 직후 레포로 반영.
# 2026-04-19 신설 — C34-3 동기화 4계층 (commit 최신본 보장)
REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null)
[ -z "$REPO_ROOT" ] && exit 0
REPO_MEM="$REPO_ROOT/memory/org"
CENTRAL_MEM="$HOME/.claude/nerdnavis-memory"
MARKER_NAME=".memory-junction-marker"
LOCK_FILE="$HOME/.claude/.nerdnavis_memory_sync.lock"
[ ! -d "$CENTRAL_MEM" ] && exit 0
[ ! -d "$REPO_MEM" ] && exit 0
# Lock (5초 타임아웃)
ATTEMPT=0
while [ -f "$LOCK_FILE" ] && [ "$ATTEMPT" -lt 5 ]; do
sleep 1
ATTEMPT=$((ATTEMPT + 1))
done
echo "$$" > "$LOCK_FILE" 2>/dev/null
trap 'rm -f "$LOCK_FILE"' EXIT
# 중앙 → 레포 복사 (2026-04-19 D안 개선: mtime 비교로 레포 최신본 보호)
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
# 삭제 동기화 안 함 (파일 소실 리스크 회피, 안전망)
# 레포가 중앙보다 최신이면 덮어쓰기 스킵 — C34-16 Write 경로 혼용 시
# post-commit sync가 최신 Edit을 덮어쓰던 구조적 결함 차단
# 근거: memory/org/feedback_memory_sync_overwrite.md (2026-04-19 실증)
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
CHANGED=0
SKIPPED_PROTECT=0
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
for f in "$CENTRAL_MEM"/*.md "$CENTRAL_MEM"/*.json; do
[ -f "$f" ] || continue
basename=$(basename "$f")
[ "$basename" = "$MARKER_NAME" ] && continue
dst="$REPO_MEM/$basename"
# 내용 동일 시 스킵 (정상 상태)
if [ -f "$dst" ] && diff -q "$f" "$dst" >/dev/null 2>&1; then
continue
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
fi
# 레포가 중앙보다 최신 → 덮어쓰기 차단 (D안 보호)
if [ -f "$dst" ] && [ "$dst" -nt "$f" ]; then
echo "⚠️ [Memory Sync] 레포본이 중앙보다 최신 — 중앙→레포 덮어쓰기 스킵: $basename" >&2
echo " C34-16 Write 경로 혼용 시그널 가능성 — 수동 sync_memory_repo_to_central.sh로 중앙 최신화 권장" >&2
SKIPPED_PROTECT=$((SKIPPED_PROTECT + 1))
continue
fi
# 중앙이 더 최신 또는 레포 부재 → 정상 복사
cp "$f" "$dst" 2>/dev/null
CHANGED=$((CHANGED + 1))
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
done
if [ "$CHANGED" -gt 0 ]; then
echo "🧠 [Memory Sync] 중앙 → 레포 $CHANGED 건 반영 (다음 commit에 포함 예정이면 재commit 필요)"
fi
if [ "$SKIPPED_PROTECT" -gt 0 ]; then
echo "⚠️ [Memory Sync] 레포 최신본 보호로 $SKIPPED_PROTECT 건 덮어쓰기 방지 (C34 memory sync 구조 결함 재발 차단)" >&2
fi
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
exit 0