# task: 봇 세션 auto-memory 에러 해결 — UserPromptSubmit 훅

## 문제
각 봇 세션마다 Claude Code가 다른 프로젝트 해시를 생성함.
예: 아누 → `-autoset`, 1팀 → `-C418D8A2`
→ `/home/jay/.claude/projects/-home-jay--cokacdir-workspace-<hash>/memory/MEMORY.md`가 없어서 에러 발생.

## 해결
UserPromptSubmit 훅에서 현재 세션의 memory 디렉토리를 자동 생성하고,
아누의 MEMORY.md를 심링크하여 모든 봇이 동일한 memory를 참조하도록 함.

## 작업 내용

### 1. 훅 스크립트 생성
- 파일: `/home/jay/workspace/scripts/ensure-bot-memory.sh`
- 로직:
  1. 현재 working directory 경로에서 프로젝트 해시 추출
  2. 대상 memory 경로 생성: `~/.claude/projects/-home-jay--cokacdir-workspace-<hash>/memory/`
  3. 이미 존재하면 스킵
  4. 없으면 디렉토리 생성 + 아누의 MEMORY.md를 심링크
     - 원본: `~/.claude/projects/-home-jay--cokacdir-workspace-autoset/memory/MEMORY.md`
     - 심링크: `~/.claude/projects/-home-jay--cokacdir-workspace-<hash>/memory/MEMORY.md`
  5. 빠르게 실행되어야 함 (매 프롬프트마다 실행되므로)

### 2. 프로젝트 해시 추출 로직
- working directory: `/home/jay/.cokacdir/workspace/<session-id>/`
- 프로젝트 해시 = Claude Code가 경로를 변환한 값
  - 규칙: `/`를 `-`로, 선행 `-` 추가
  - 예: `/home/jay/.cokacdir/workspace/autoset` → `-home-jay--cokacdir-workspace-autoset`
  - 주의: `.`은 `-`로 변환, 연속 `-`가 생길 수 있음
- 확인 방법: `ls ~/.claude/projects/ | grep cokacdir` 으로 기존 해시 패턴 확인

### 3. 훅 등록
- 파일: `/home/jay/.claude/settings.json` 또는 프로젝트별 `.claude/settings.json`
- UserPromptSubmit 훅에 추가:
```json
{
  "hooks": {
    "UserPromptSubmit": [
      {
        "command": "bash /home/jay/workspace/scripts/ensure-bot-memory.sh"
      }
    ]
  }
}
```
- ⚠️ 기존 훅이 있으면 배열에 추가 (덮어쓰기 금지)

### 4. 추가: workspace 내 불필요 파일 정리
- `/home/jay/.cokacdir/workspace/autoset/` 에 이전 업로드 파일(PDF, PNG 등)이 쌓여있음
- 이들은 임시 파일이므로 정리 방안 검토 (자동 삭제는 위험하니 보고만)

## 주의사항
- 훅은 매 프롬프트마다 실행되므로 100ms 이내 완료 필요
- 심링크 생성 실패 시 에러를 삼키고 조용히 스킵 (봇 작업 차단 금지)
- 아누의 MEMORY.md 원본이 없는 경우도 대비 (빈 파일 생성)
- 기존 UserPromptSubmit 훅 체인을 깨지 않도록 주의

## 검증
- 새로운 session-id로 workspace 생성 → 훅 실행 → MEMORY.md 심링크 확인
- 기존 autoset workspace에서 실행 → 이미 존재하므로 스킵 확인
- 훅 실행 시간 100ms 이내 확인
