3.0 KiB
3.0 KiB
| name | description | type | originSessionId |
|---|---|---|---|
| worktree 격리로 인한 조직 실시간 동기화 체계 실패 — 재발 방지 | 2026-04-18 PD님 조직 생존급 선언. P25→C34 승격 + 중앙 Junction 근원 해결. worktree 경계는 실시간 공유 체계의 숨겨진 경계이므로 새 체계 설계 시 최우선 검토 대상 | feedback | 0c3fc143-5c2a-4165-afb1-7becf72eaa0a |
worktree 격리로 인한 조직 실시간 동기화 체계 실패
실증 (2026-04-18)
세션 A(tender-liskov-844a72 worktree)와 세션 B(nifty-wing-4752bd worktree)에서 P25 Live 증분 동기화 테스트 수행. 세션 B가 .live/ping.md에 PING 마커 작성 후 세션 A에서 hook 주입 확인 → 미수신. 원인은 git worktree가 각 worktree에 독립 파일시스템 디렉토리를 부여하므로 .live/가 물리적으로 분리됨.
왜 중요한가 (조직 생존급)
PD님 직접 선언: "이 문제가 해결되지 않으면 앞으로 우리 조직은 유지될 수 없어." 헌법 제1원칙 ⑤ "세션·PC 연속성 보장"의 근본 위협. P25(조직 핵심 자산 선언)가 특정 조건(같은 worktree)에서만 작동한다는 사실이 조직 기반 전제를 훼손.
근본 원인
live_inject.sh hook이 git rev-parse --show-toplevel로 얻은 경로의 .live/를 스캔하는데, 이 명령은 worktree별로 다른 경로를 반환함. 따라서 worktree A와 B의 .live/가 서로 다른 디렉토리이며 hook이 상호 주입 불가.
해결 (C34 신설 + 중앙 Junction)
- 실 저장 경로를
$HOME/.claude/nerdnavis-live/로 중앙화 (PC 로컬 단일) - 각 worktree의
.live/를 중앙 디렉토리로 Junction(Windowsmklink /J) / Symlink(Unixln -s) 연결 scripts/live_junction_ensure.sh가 SessionStart hook 체인에서 보장 (git fetch 직후 최우선 삽입)setup_*스크립트 3.5 섹션에서 자동 설치- Sentinel 파일
.junction-marker로 OS-agnostic 판정
재발 방지 체크 (세션 리더 의무)
- 신 PC·신 worktree 첫 세션 시
verify_setup.ps1의 2.5 "Live 중앙 저장소 실체·reparse·marker 경유 읽기" 3축 통과 확인 .live/가 실체 디렉토리로 남아있으면setup_windows.ps1재실행- 조직 전원 세션 1회 재시작 필수 안내 (C1 사전 고지)
- 새 조직 공유 체계 설계 시 worktree 경계 조건을 첫 검토 항목에 포함 (본 사건 재발 방지)
연관
- C34 (헌법급 본 체계 — P25 승격)
- C16-1 (
.live/junction 자동 연결 편입) - feedback_agent_path_boundary.md (Agent 경계 넘기 2차 사건)
- 조직공지:
2026-04-18_C34_신설_worktree_격리_근원해결.md
교훈
worktree 기능은 편리하나 조직 공유 체계의 숨겨진 경계를 만든다. "같은 PC = 같은 파일시스템"이라는 직관은 worktree 앞에서 성립하지 않음. 앞으로 공유 체계 설계 시 "실 저장 = 중앙 1곳, 접근 = junction/symlink"을 기본 패턴으로 채택 (C16-1 memory junction과 동일 원칙).