# 체크리스트: codegraph-anu

## Phase 1 — 잔존물 정리 + AST 안정화

### Step 1.1 잔존물 정리
- [x] `/home/jay/workspace/.code-review-graph/graph.db` (612MB) 삭제 완료 (gitignored 확인)
- [-] `.worktrees/task-2117-dev1/scripts/.codegraph-venv/` 검토 — 다른 팀(dev1) 활성 worktree, AST 패치로 분석 제외되어 영향 0이므로 건드리지 않음
- [-] 4월 task-1869 worktree — 부재 또는 다른 팀 자산. 영향 없음

### Step 1.2 AST timeout 진단
- [x] `scripts/ast_dependency_map.py` 코드 리뷰 (523줄)
- [x] `dispatch.py:1027 _get_ast_blast_radius()` 로직 점검
- [x] `dispatch.py:3147 _enrich_affected_files_with_ast()` 호출 패턴 점검
- [x] dispatch.py 단일 파일로 dry-run 측정 → 60s+ build timeout 확인
- [x] root cause: 27,062 .py 중 15,695개 `.worktrees/` 중복 → BUILD_TIMEOUT 도달

### Step 1.3 패치 적용
- [x] EXCLUDE_DIRS 추가 (.worktrees, __pycache__, .venv 외 11개)
- [x] `_iter_py_files()` 추가 — os.walk + 인플레이스 dirs 필터
- [x] 디스크 캐시 (`~/.cache/anu-ast/<sha16>.pkl`) — `_cache_key/_try_load_cache/_save_cache/_ensure_ast`
- [x] dispatch.py timeout 30s → 60s (4 라인)
- [x] 단위 테스트 6건 추가 (`tests/test_ast_dependency_map.py`)
- [x] git commit `7ea8192e` (쿠쿨칸) + `3f06568d` (카마소츠)

### Step 1.4 검증
- [x] dispatch.py dry-run cold 5.56s / warm 0.18s
- [x] 다른 파일 dry-run 0.18~0.20s
- [x] timeout 0%, 결과에 .worktrees 노이즈 0건
- [x] 평균 응답 시간 5초 이내 달성

---

## Phase 2 — code-review-graph MCP PoC (1주 시한)

### Step 2.1 패키지 설치
- [x] `pipx install code-review-graph` → 2.3.2 (4월과 동일)
- [x] changelog 확인: v2.3.2 신규 변경 없음. FastMCP는 2.14.7로 갱신
- [x] 설치 검증: `code-review-graph --version` → 2.3.2

### Step 2.2 InsuRo 프로젝트 그래프 빌드
- [x] `code-review-graph build --repo /home/jay/projects/InsuRo` → 8초
- [x] 빌드 시간 측정: 8초 (예상치 내)
- [x] 그래프 통계: 377 files / 2,986 nodes / 28,984 edges
- [x] graph.db 크기 27MB (워크스페이스 612MB 대비 22배 작음)

### Step 2.3 watch (자동 업데이트) 검증
- [x] v2.3.2는 `code-review-graph watch` 단일 명령으로 통합됨 (crg-daemon 미존재 — plan 정정)
- [x] `code-review-graph watch --repo /home/jay/projects/InsuRo` 명령 부팅 확인
- [-] daemon 백그라운드 등록 (systemd/nohup) — Phase 3 운영 단계로 연기

### Step 2.4 dev7 봇 MCP 등록
- [x] dev7 자체 settings.json 부재 확인 — 글로벌 ~/.claude/settings.json 사용
- [x] 글로벌 수정 차단 → 프로젝트 스코프 `/home/jay/projects/InsuRo/.mcp.json` 채택
- [x] `code-review-graph install --platform claude-code -y` 실행 → `.mcp.json` 생성
- [x] `code-review-graph serve` 스모크테스트 → FastMCP 2.14.7 정상 부팅

### Step 2.5 측정 (1주)
- [ ] Before 데이터 수집: dev7 봇의 최근 5개 task 입력 토큰 평균
- [ ] PoC 기간(1주) dev7 봇 task 입력 토큰 측정
- [ ] 토큰 절감률 계산
- [ ] 작업 품질 회귀 체크 (테스트 결과)
- [ ] daemon 안정성 (다운 횟수)

### Step 2.6 KPI 판정
- [ ] 토큰 절감 30%+ 달성? (Y/N)
- [ ] 회귀 0건 유지? (Y/N)
- [ ] daemon 다운 0건? (Y/N)
- [ ] **3 조건 동시 충족 시 Phase 3 진입, 그렇지 않으면 폐기 결정**

---

## Phase 3 — 8팀 확장 (조건부)

### Step 3.1 프로젝트 추가
- [ ] insuwiki 빌드
- [ ] ThreadAuto 빌드
- [ ] MediScan 빌드
- [ ] BlogAuto 빌드
- [ ] dashboard 빌드
- [ ] crg-daemon에 6개 모두 등록

### Step 3.2 8봇 settings 일괄 등록
- [ ] dev1 ~ dev8 각 봇 settings.json에 MCP 추가
- [ ] 일관성 자동화 스크립트 작성
- [ ] 모든 봇 MCP 작동 확인

### Step 3.3 운영 모니터링
- [ ] CPU/메모리 사용량 모니터링 1주
- [ ] crg-daemon systemd 서비스 등록 (자동 재시작)
- [ ] 워크트리/메인 그래프 동기화 정책 결정

---

## Phase 4 — 고급 기능 (조건부)

- [ ] hub/bridge 노드 분석 도입 (영향 큰 변경 식별)
- [ ] knowledge gap detection (테스트 누락 알림)
- [ ] detect_changes risk score → PR 머지 게이트(G3) 첨부
- [ ] get_suggested_questions → 리뷰 자동 질문

---

## 정착 vs 폐기 결정 게이트

### Phase 1 → Phase 2 진입 조건
- AST timeout 0% 달성

### Phase 2 → Phase 3 진입 조건
- 토큰 30%+ 절감
- 회귀 0건
- daemon 다운 0건

### 폐기 시그널 (Phase 1 또는 2)
- AST timeout 원인이 아키텍처적이라 패치 어려움
- code-review-graph MCP 토큰 절감 효과 < 10%
- daemon 운영 부담 큼 (CPU > 5%, 메모리 > 500MB)
- 봇이 graph 도구 자발적 호출 안 함

### 폐기 시 처리
- AST 안정화는 유지 (트랙 A)
- code-review-graph MCP만 제거 (트랙 B)
- 폐기 사유를 `memory/reports/codegraph-anu-decision.md`에 명시

---

## 보고 의무

- [ ] Phase 1 완료 보고 → 메모리 reports에 저장
- [ ] Phase 2 1주 후 KPI 측정 보고
- [ ] 정착/폐기 결정 보고
- [ ] 4월 흐지부지 사례를 반복하지 않기 위해 매 단계 보고 필수
