# Codegraph-Anu Phase 2 인프라 셋업 보고서 — code-review-graph MCP PoC

- **task_id**: task-2337 (Phase 2 셋업 분량)
- **team**: dev7-team
- **lead**: 이참나(팀장)
- **작성일**: 2026-05-01
- **목적**: Phase 2 PoC 인프라 셋업까지. **1주 측정·KPI 판정은 별도 follow-up 보고서**(`codegraph-anu-phase2-poc.md`)에서 처리.

---

## 1. Step 2.1 — 패키지 설치

```bash
$ pipx install code-review-graph
installed package code-review-graph 2.3.2

$ ~/.local/bin/code-review-graph --version
code-review-graph 2.3.2
```

**4월 v2.3.2 → 5월 동일 버전.** 신규 changelog 없음. 단, FastMCP는 2.14.7 (4월 대비 갱신).

설치 위치: `/home/jay/.local/share/pipx/venvs/code-review-graph/`. PATH에 `~/.local/bin/code-review-graph` 추가됨.

---

## 2. Step 2.2 — InsuRo 그래프 빌드

```
$ code-review-graph build --repo /home/jay/projects/InsuRo
... migrations v1→v9 ...
Full build: 377 files, 3146 nodes, 29316 edges (postprocess=full)

real    0m7.993s
```

**결과 통계** (`code-review-graph status`):
- Nodes: 2,986
- Edges: 28,984
- Files: 377
- Languages: javascript, bash, python, tsx, typescript
- 빌드 브랜치: main / 커밋: ed26d26b3dd0

**그래프 크기**: `/home/jay/projects/InsuRo/.code-review-graph/graph.db` = **27MB** (워크스페이스 612MB 대비 22배 작음 — 4월 실패 원인 해소).

**`.gitignore`에 자동 추가됨**:
```
# Added by code-review-graph
.code-review-graph/
```

빌드 시간 8초 — checklist 예상치(10초~1분) 내. 워크스페이스 루트 빌드 금지 원칙 준수.

---

## 3. Step 2.3 — Watch (자동 업데이트) 검증

⚠️ **변경**: plan.md/checklist.md의 `crg-daemon` 명령은 v2.3.2에서 존재하지 않음. v2.3.2는 `code-review-graph watch --repo <path>` 단일 명령으로 통합됨.

**스모크테스트:**
```
$ timeout 3 code-review-graph watch --repo /home/jay/projects/InsuRo
[정상 시작 후 SIGTERM으로 종료 — exit 143]
```

watch 명령 자체는 정상 동작. **백그라운드 운영은 Phase 3에서 systemd/nohup 등록 시 결정** (PoC 단계는 수동 또는 작업 시점 단발 빌드로 충분).

---

## 4. Step 2.4 — MCP 서버 등록

### 4.1 등록 위치 결정

원래 task 지시: "dev7 봇 settings.json 위치 파악 (`/home/jay/workspace/teams/dev7/...` 추정)"

**현황 점검 결과**: dev7 팀에는 자체 settings.json이 없음. dev7는 글로벌 `~/.claude/settings.json` 사용.

**선택지 비교**:

| 옵션 | 적용 범위 | 부작용 | 평가 |
|---|---|---|---|
| `~/.claude/settings.json` 글로벌 | 모든 봇/세션 | 다른 봇도 MCP 자동 로드 → PoC 격리성 떨어짐. **harness가 글로벌 settings 변경 차단함**. | ❌ 차단 |
| `/home/jay/workspace/.mcp.json` | workspace cwd 세션 | dev7가 workspace에서 위임받을 때 활성. InsuRo 그래프와 cwd 불일치. | △ |
| `/home/jay/projects/InsuRo/.mcp.json` (v2.3.2 권장) | InsuRo cwd 세션 | dev7가 InsuRo 작업할 때만 활성. 그래프와 cwd 일치. PoC 격리성 우수. | ✅ |

→ **InsuRo `.mcp.json` 채택** (`code-review-graph install` 도구가 권장하는 방식).

### 4.2 등록 명령

```bash
$ code-review-graph install --repo /home/jay/projects/InsuRo \
    --platform claude-code --no-skills --no-hooks --no-instructions -y

  Claude Code: configured /home/jay/projects/InsuRo/.mcp.json
  Updated .gitignore with .code-review-graph/.
```

생성된 `/home/jay/projects/InsuRo/.mcp.json`:
```json
{
  "mcpServers": {
    "code-review-graph": {
      "command": "code-review-graph",
      "args": ["serve"],
      "type": "stdio"
    }
  }
}
```

부작용 최소화 옵션:
- `--no-skills`: Claude Code 스킬 파일 미주입
- `--no-hooks`: hook 미주입
- `--no-instructions`: CLAUDE.md 미수정

### 4.3 MCP 서버 스모크테스트

```
$ timeout 3 code-review-graph serve --repo /home/jay/projects/InsuRo
... FastMCP 2.14.7 ...
🖥  Server:      code-review-graph
exit 0
```

서버 정상 기동 확인.

---

## 5. Step 2.5 — Before(baseline) 토큰 측정

### 5.1 데이터 추출

`memory/task-timers.json` 의 dev7-team 완료 task 토큰 데이터:

```
Total tasks: 1834
dev7-team tasks: 44
dev7 완료 task with token_usage: 2 (그 외는 token_usage 미수집)

task-916.1: 2026-03-24 input=77 output=16340
task-886.1: 2026-03-24 input=31 output=5680
```

**관측된 한계**: 현재 task-timer가 dev7 봇의 input/cache_read 토큰을 일관적으로 수집하지 않음. 기록된 2건도 **input=77/31** 로 비정상적으로 작아 실제 작업 컨텍스트 토큰을 반영하지 않을 가능성 높음.

### 5.2 1주 측정 전 사전 보강 필요

Phase 2.5 KPI 측정이 의미있으려면 다음 follow-up 필요:
1. dispatch.py 또는 task-timer 측에 `input_tokens` / `cache_read_tokens` 일관 수집 로직 점검 (별도 task)
2. dev7 봇 작업 시 `code-review-graph` MCP 도구 자발 호출률 추적 — 호출이 없으면 절감 효과 0
3. 1주(2026-05-08까지) 측정 보고서 `codegraph-anu-phase2-poc.md` 작성

---

## 6. L1 스모크테스트 결과

- **패키지 설치 검증**: `code-review-graph --version` → 2.3.2 ✅
- **그래프 빌드 검증**: `code-review-graph status --repo /home/jay/projects/InsuRo` → 377 files / 2986 nodes / 28984 edges ✅
- **MCP serve 검증**: 3초 타임아웃 안에서 FastMCP 정상 부팅 (exit 0) ✅
- **MCP 설정 검증**: `/home/jay/projects/InsuRo/.mcp.json` 존재 + 유효 JSON ✅
- **watch 검증**: 명령 자체 정상 부팅 (SIGTERM exit 143 = 의도된 종료) ✅
- **API 응답 확인**: 해당없음 (stdio MCP)
- **스크린샷**: 해당없음 (CLI/MCP)

---

## 7. 머지 판단

- **머지 필요**: 시스템 외 영향 없음
  - 추가 파일: `/home/jay/projects/InsuRo/.mcp.json`, `/home/jay/projects/InsuRo/.code-review-graph/graph.db`(27MB, gitignored)
  - InsuRo `.gitignore` 업데이트 (코드그래프가 자동 적용)
  - workspace 측 코드 변경 없음 (Phase 2는 외부 도구 셋업)
- **워크트리**: 미사용 (시스템 작업 + 외부 도구)
- **충돌 가능성**: 0건. workspace에 추가 파일 없음.

---

## 8. 발견 이슈 및 해결

| 이슈 | 해결 |
|---|---|
| `crg-daemon` 명령 부재 (plan.md 기준) | v2.3.2는 `code-review-graph watch` 로 통합됨. 보고서에 정정 표기. |
| 글로벌 `~/.claude/settings.json` 수정 차단 (harness 권한) | 프로젝트 스코프 `.mcp.json` 으로 우회. 격리성 측면에서 오히려 나음. |
| dev7-team 자체 settings.json 부재 | 글로벌 사용 확인 후 InsuRo 프로젝트 스코프로 결정. |
| dev7 토큰 baseline 데이터 부족 (2건만 수집됨) | follow-up task로 task-timer 토큰 수집 일관성 점검 필요 (별도 보고서에서 다룸). |
| pipx 설치 시 `authlib.jose deprecated` 경고 | 외부 패키지 의존성 경고. v2.0 까지 호환. 무시. |

---

## 9. Phase 2 진척 상황

| 단계 | 상태 |
|---|---|
| 2.1 패키지 설치 | ✅ 완료 |
| 2.2 InsuRo 빌드 | ✅ 완료 (8s, 27MB, 377 files) |
| 2.3 watch (자동 업데이트) 검증 | ✅ 명령 부팅 확인. 운영 데몬화는 Phase 3 |
| 2.4 MCP 등록 | ✅ `/home/jay/projects/InsuRo/.mcp.json` |
| 2.5 토큰 측정 (1주) | ⏳ **2026-05-08까지 측정 후 별도 보고서** |
| 2.6 KPI 판정 | ⏳ 측정 후 |

---

## 10. 운영 메모 / 다음 단계

1. **dev7 다음 InsuRo 작업 시 자동 활성**: dev7가 InsuRo cwd에서 위임받으면 `.mcp.json` 자동 로드. 별도 봇 재시작 불필요.
2. **그래프 갱신**: `code-review-graph update --repo /home/jay/projects/InsuRo` 또는 백그라운드 watch.
3. **8봇 확장은 Phase 3 (조건부)**: PoC 성공 시(1주 후 30% 절감 + 회귀 0 + daemon 다운 0) Phase 3 진입 — 별도 task로 위임.
4. **task-timer 토큰 수집 보강**: PoC 측정 신뢰도 확보 위해 별도 task 필요 (dispatch.py에 `input_tokens`/`cache_read_tokens` 기록 보강).

---

## 11. 4월 실패 방지 자가 점검 (Phase 2)

| 4월 실패 | 이번 적용 |
|---|---|
| 612MB 모놀리식 워크스페이스 그래프 | InsuRo 단독 27MB. 빌드 8초. |
| 8봇 일괄 적용 → 흐지부지 | dev7 1봇 + InsuRo 1프로젝트만. PoC 격리. |
| 1주 시한 없음 | follow-up 보고서 일정 명시 (2026-05-08). |
| 측정 지표 모호 | input/cache_read 토큰 일관 수집 보강 follow-up 명시. |
