BurningTimesAi/memory/org/feedback_agent_path_boundar...

3.1 KiB

name description type originSessionId
Agent 호출 시 절대 경로 하드코딩 금지 — worktree 경계 보호 2026-04-18 worktree 격리 2차 사건. Agent가 절대 경로로 Write 호출 시 레포 루트로 산출물 유출. stash 이관 복구 절차 + 재발 방지 체크리스트 feedback 0c3fc143-5c2a-4165-afb1-7becf72eaa0a

Agent 호출 시 절대 경로 하드코딩 금지 — worktree 경계 보호

실증 (2026-04-18, worktree 격리 2차 사건)

PM(tender-liskov worktree)이 개발팀장 Agent를 호출. Agent가 산출물 경로에 **절대 경로 E:\BurningTimesAi\공유\소통\개발팀→PM\...**를 사용하여 Write. 이로 인해 파일이 레포 루트(main 브랜치 체크아웃)에 기록되고 본 워크트리는 해당 파일을 볼 수 없음.

Agent 응답에 "476줄 산출물 작성 완료"라 보고되었으나 PM 세션의 공유/소통/개발팀→PM/에는 없었음. git -C "E:/BurningTimesAi" status 확인으로 레포 루트에 uncommitted 변경 3건(PD 지시 로그·대화로그·보고서) 발견.

근본 원인

  • Agent는 실행 환경의 cwd를 계승하나, Write 도구에 절대 경로를 전달하면 cwd와 무관하게 해당 경로에 기록
  • E:\BurningTimesAi는 레포 루트(main 브랜치 체크아웃) — worktree가 아닌 독립 작업 디렉토리
  • Agent가 worktree 경계를 인지하지 못하고 "레포 절대 경로 = 안전한 표준"으로 처리
  • PM은 Agent 응답만 보고 산출물 실체 위치 미확인 → worktree 경계 이탈을 검증 없이 신뢰 (C23 관점에서도 문제)

복구 방법 (2026-04-18 실증)

  1. git -C <레포루트> stash push -u -- <영향 경로> — Agent가 쓴 변경분을 stash로 수집
  2. 본 worktree에서 git stash pop — 동일 base라면 conflict 없이 적용
  3. git -C <레포루트> status 재확인 (clean 여부)
  4. 본 worktree에서 변경분 검증 후 commit

재발 방지 의무 (세션 리더)

  1. Agent 호출 프롬프트에 경로 규약 명시: "산출물 경로는 $(git rev-parse --show-toplevel) 기준 또는 상대 경로로 작성. 절대 경로 E:\BurningTimesAi\... 등 하드코딩 금지."
  2. Agent 응답 수령 직후 2축 검증: 본 worktree git status + git -C <레포루트> status 병행 확인
  3. 경계 이탈 발견 시: stash 이관 복구 즉시 수행, PD님께 자진 보고 (C3·C5)
  4. 감사 확장: pm-auditor·dev-auditor 체크리스트에 "Agent 경계 이탈 확인" 항목 추가 안건

연관

  • C34-11 (Agent 경계 보호 조항)
  • C23 (허위 보고·역할 연기 금지)
  • feedback_worktree_isolation.md (1차 사건)
  • 조직공지: 2026-04-18_C34_신설_worktree_격리_근원해결.md

교훈

Agent 위임은 PM 책임 해제가 아니다. Agent 응답의 "완료" 선언을 실체 파일로 검증하지 않으면 worktree 격리 같은 숨겨진 경계로 인한 누락을 놓칠 수 있다. 특히 "절대 경로의 안전성" 직관은 worktree 체제에서 무력화됨 — Agent가 의도치 않게 다른 worktree/레포 루트에 쓸 수 있음.