4.4 KiB
4.4 KiB
🟢 역사 보존 (해결 완료 2026-04-26) — worktree 자동 생성·Junction 체계 폐기로 본 패턴 구조 차단. 본 메모리는 조직 학습 자산으로 보존.
name: C34 중앙 저장소 sentinel(.junction-marker) 손실 — 자동 보호 강화
description: 2026-04-19 다른 세션 verify_setup이 marker 부재 정확 감지. 본 worktree 동시 실측으로 confirm. git 외 작업으로 sentinel 손실. 본 사건 직접 차단 안건 A(UserPromptSubmit hook 편입)로 재발 윈도우 1프롬프트 이내로 축소
type: feedback
C34 중앙 저장소 sentinel 손실 — 자동 보호 강화
실증 (2026-04-19)
다른 세션이 verify_setup.ps1 2.5 섹션 "Live Junction marker 경유 읽기"에서 FAIL 판정. 본 worktree 즉시 실측 결과:
- 중앙 저장소
$HOME/.claude/nerdnavis-live/: 빈 디렉토리 (marker·README 모두 부재) - junction 자체는 정상 (38개 worktree 모두 중앙 연결 유지)
- C34 운영 기능 자체는 영향 없음 (sentinel은 메타 파일)
영향
- 데이터 손실: 0건 (sentinel은 연결 상태 판정용 메타)
- 검증 도구 오판:
verify_setup.ps12.5 FAIL — 실제는 정상이나 marker 부재로 "junction 미연결"로 판정 - 운영 위험: 본 사건 자체는 영향 없으나, marker 보호 미흡이 누적되면 차후 진단 신뢰성 훼손
원인 분석
- git history 검사:
git log --since="2026-04-19" -- .live/·관련 스크립트 commit 이력에 marker 삭제 흔적 없음 .live/는.gitignore대상 → git 외 작업으로 삭제됨- 본 세션 PowerShell·Bash 명령 검사: 명시 파일만 삭제 (marker 영향 없음)
- 추정: 다른 worktree·다른 세션의 cleanup·rollback 작업 또는 PowerShell 와일드카드 매칭 사고
- 확정 불가 — 로그 부재 자체가 별도 안건 (sentinel 변경 감사 로그 부재)
자동 회복 안전망 분석
기존 안전망 (SessionStart 시점만)
live_junction_ensure.sh가 SessionStart hook에서 marker 부재 시 자동 재생성:
if [ ! -f "$CENTRAL_LIVE/$MARKER_NAME" ]; then
echo "..." > "$CENTRAL_LIVE/$MARKER_NAME"
fi
한계
이미 시작된 세션 중간 손실 시 그 세션 동안 미검출 — 본 사건이 이 한계의 정확한 실증.
해결 (2026-04-19 안건 A 집행)
live_junction_ensure.sh를 UserPromptSubmit hook 체인에도 편입:
- 매 프롬프트마다 marker 부재 검사 + 자동 재생성
- 손실 윈도우를 1프롬프트 이내로 축소
- marker 정상 시 조기 종료(
exit 0)로 토큰·시간 비용 미세 - 신규 스크립트 불요 (기존 검증된 로직 재사용, 신규 위험 0)
집행 위치
.claude/settings.json UserPromptSubmit hook 체인의 live_inject.sh 직전:
{ "type": "command", "command": "bash scripts/live_junction_ensure.sh 2>/dev/null || true" },
{ "type": "command", "command": "bash scripts/live_inject.sh 2>/dev/null || true" }
거부된 대안
- B 명문화 강화: 의도적 삭제만 방지. 실수·외부 작업에는 무력. 안건 A 집행 시 SKILL.md C34-3에 1줄 자연 포함
- C sentinel 변경 감사 로그: 사후 추적용. 사전 방지 효과 없음. 1회 사건이라 과잉
- D 무행동: 자동 회복 윈도우 결함 그대로 둠
재발 방지 체크 (세션 리더 의무)
verify_setup.ps1정기 실행 (SessionStart 외 의무 호출 대상 작업 전후)- marker 부재 발견 시 즉시 PowerShell
Set-Content또는live_junction_ensure.sh수동 실행 - 본 사건 같은 외부 작업 의심 시 다른 세션·다른 worktree 동시 진행 작업 확인
연관
- C34-3 Sentinel 자동 보호 1줄 추가 (2026-04-19 안건 A 반영)
- C34-12 Degraded 운영 (자동 회복 안전망 정신)
- 헌법 제1원칙 ⑤ 세션·PC 연속성 보장
scripts/live_junction_ensure.sh(변경 없이 hook 위치 추가만).claude/settings.jsonUserPromptSubmit 체인 확장
교훈
자동 회복 안전망은 트리거 시점이 충분히 자주여야 한다. SessionStart만으로는 "이미 시작된 세션 중간 손실" 케이스 미커버. UserPromptSubmit 편입으로 손실 윈도우를 1프롬프트로 축소하면서 토큰 비용은 미세 — sentinel 같은 메타 파일 보호의 표준 패턴. 차기 자산(중앙 marker·sentinel·lock 파일 등) 도입 시 동일 원칙 적용 권고.