diff --git a/공유/조직공지/2026-04-16_안건_새대화_hook_타이밍_보장.md b/공유/조직공지/2026-04-16_안건_새대화_hook_타이밍_보장.md new file mode 100644 index 0000000..e6b1694 --- /dev/null +++ b/공유/조직공지/2026-04-16_안건_새대화_hook_타이밍_보장.md @@ -0,0 +1,95 @@ +--- +from: 총괄PM +to: PD님 +type: 안건_신설_대기 +subject: 새 대화 생성 시 부서 에이전트 등록 hook 타이밍 보장 +status: 대기 +priority: normal +created: 2026-04-16 +ref_event: 2026-04-16 본 사이클 마지막 단계 — 개발실 첫 새 대화(bold-zhukovsky) 부서 에이전트 미등록 vs 두 번째 새 대화(relaxed-dijkstra) 정상 등록 비대칭 실증 +parent_cycle: Skill 패킹 단일 SOT 전환 사이클 +--- + +# 안건 — 새 대화 생성 시 부서 에이전트 등록 hook 타이밍 보장 + +## 1. 배경 + +### 1) 실증 사건 (2026-04-16) +1. 동일 폴더(개발실)에서 두 번 새 대화 생성 +2. **첫 새 대화 (bold-zhukovsky)**: 디스크에 부서 에이전트 4개 정확히 복제됐으나, Claude Code 런타임이 인식 못 함 → Available agents에 부서 에이전트 미등장 +3. 종료 후 재resume도 갱신 실패 (영속 대화 한계) +4. **두 번째 새 대화 (relaxed-dijkstra)**: 디스크 동일 상태에서 Available agents에 부서 에이전트 4개 모두 정상 등장 + +### 2) 추정 원인 (⚠️ C23 명시 — 확정 미검증) +1. Claude Code의 `.claude/agents/` 스캔 시점이 SessionStart hook 실행 완료 시점보다 빠를 가능성 +2. 첫 새 대화: 워크트리 자동 생성 → Claude Code 스캔(pm-general.md만 있음) → SessionStart hook 실행(agent_sync.sh가 부서 에이전트 복제) → 너무 늦음 +3. 두 번째 새 대화: hook 타이밍이 우연히 적시였거나, 디스크 캐시 워밍업 등 환경 차이로 정상 동작 + +--- + +## 2. 해결 방향 후보 + +### 1) 운용 규약안 (즉시 가능, 임시방편) +1. 새 대화 생성 후 Available agents에 부서 에이전트가 안 보이면 **그 대화 폐기 후 같은 폴더에서 다시 새 대화 생성** +2. 검증 절차를 부서 영속 대화 셋업 표준에 포함 +3. 본 사이클 PD님 실증으로 효과 확인됨 (relaxed-dijkstra 정상 작동) + +### 2) hook 타이밍 보강안 (구조적 해결 시도) +1. agent_sync.sh를 SessionStart hook 외 추가 시점에도 실행 +2. 후보: PreToolUse hook (첫 도구 호출 직전)·UserPromptSubmit hook (첫 프롬프트 직후) +3. 단점: hook 실행 후에 Claude Code가 에이전트 레지스트리를 다시 스캔하지 않으면 효과 없음 — 사전 조사 필요 + +### 3) 루트 통합안 (격리 약화 감수) +1. 부서 에이전트 파일을 **루트 `.claude/agents/`** 에도 복제 배치 +2. Claude Code가 새 워크트리 생성 시 루트 `.claude/agents/` 전체를 자동 복제하므로 첫 SessionStart 시점부터 부서 에이전트 즉시 등록 +3. 단점: 부서 격리 원칙 약화 (개발실 세션에서 기획팀장 호출 가능 등 혼재) + +### 4) Claude Code 자체 개선 요청안 +1. Anthropic GitHub 이슈로 "SessionStart hook 완료 후 .claude/agents/ 재스캔" 기능 요청 +2. 장기적 본질 해결 +3. 단점: 외부 의존, 적용 시점 불확실 + +--- + +## 3. 결정 필요 사항 (PD님) + +### 1) 우선 순위 +1. 즉시 운용 규약안만 적용 (1번) +2. 1번 + 2번 또는 3번 추가 조사 +3. 다음 사이클로 이연 + +### 2) 부서 격리 원칙 vs 실용성 +1. 격리 원칙 유지 → 1번·2번·4번 중 선택 +2. 실용성 우선 → 3번 (격리 약화 감수) + +### 3) 본 안건의 사이클 위치 +1. 다음 사이클 본격 처리 +2. 한참 미뤄도 무방 (현 운용 규약으로 충분) + +--- + +## 4. 운용 규약안 (즉시 적용 권장) + +검증되지 않았어도 본 안건 결정 전까지 다음 운용으로 회피: + +``` +부서 영속 대화 셋업 절차 (2026-04-16 잠정): +1. 부서 폴더에서 새 대화 생성 +2. 첫 프롬프트로 "Available agents 출력해. 부서 에이전트 등장하는지 확인" 입력 +3. 부서 에이전트 등장: 그 대화를 새 영속 대화로 지정 → 검증 완료 +4. 부서 에이전트 미등장: 그 대화 폐기 → 같은 폴더에서 다시 새 대화 생성 → 단계 2부터 반복 +5. 보통 2~3회 시도 내 정상 작동 +``` + +--- + +## 5. 연관 + +- **C24** (부서 세션 영속 대화 운용 원칙): 본 안건은 C24-3 "신규 대화 생성으로 복구" 예외 절차의 보강 +- **C26** (코어룰 단일 SOT 갱신 원칙): Skill 패킹 자동 주입의 마지막 안정성 보강 +- **`scripts/agent_sync.sh`**: 본 안건 해결 시 수정 또는 폐기 검토 +- **별건 안건 (이연)**: `2026-04-16_안건_Skill_패킹_근본해결.md` 와 함께 차세대 사이클 검토 대상 + +## 처리 이력 +- 2026-04-16: 안건 신설·main 반영 (Skill 패킹 사이클 마지막 단계 발견 사건) +- (대기) PD님 결정 3항 → 우선순위·해결 방향·사이클 위치