code-review-graph의 개요
code-review-graph는 tree-sitter로 저장소를 파싱해 함수, 클래스, import, 호출, 테스트의 그래프를 만들고, 이를 로컬 SQLite 파일에 저장해 MCP로 AI 코딩 도구에 제공합니다. 변경을 리뷰할 때 어시스턴트는 그래프에 '영향 범위(blast radius)', 즉 변경이 닿을 수 있는 모든 호출자, 의존 대상, 테스트를 묻고 그 파일만 읽습니다. 훅과 감시 모드가 그래프를 점진적으로 갱신합니다.
MCP 도구 30개와 프롬프트 5개를 제공하며, 영향 분석과 리뷰 컨텍스트부터 실행 흐름 목록, 아키텍처 개요, 리팩터링 미리보기, 저장소 간 검색까지 다룹니다. CRG_TOOLS 설정으로 목록을 줄일 수 있습니다. 설치 명령 하나가 Claude Code, Codex, Cursor, Windsurf, Zed, Gemini CLI, GitHub Copilot을 포함한 16개의 AI 도구를 찾아 설정합니다. GitHub Action은 풀 리퀘스트에 위험 점수를 매긴 리뷰 댓글을 답니다.
저장소의 GitHub 스타는 약 32,300개이고, 버전 2.3.9는 2026년 9월 18일에 나왔습니다. MIT 라이선스이며 Python 3.10 이상이 필요합니다.
code-review-graph 설치 방법
pip install code-review-graph && code-review-graph installcode-review-graph, 쓸 만한 가치가 있습니까?
발상은 타당합니다. 리뷰할 때마다 어시스턴트가 코드베이스의 큰 부분을 다시 읽게 하는 대신, 무엇이 무엇에 의존하는지 미리 계산해 짧은 목록을 건넵니다. README는 오픈소스 저장소 6곳에서 질문당 토큰이 중앙값 63배 줄었고, 가장 큰 fastapi에서는 최대 358배였다고 보고합니다. 유지보수자의 측정에서 약 3,000개 파일 저장소의 처음 빌드는 약 40초가 걸렸고, 파일 2개를 고친 뒤의 재색인은 약 2.5초였으며 그중 1.4초는 프로세스 시작 시간이었습니다.
프로젝트는 자신의 한계에 솔직하며, 이는 마땅히 그래야 하는 것보다 드뭅니다. 영향 재현율 1.0은 순환 논리라고 밝히고(정답 데이터가 같은 그래프에서 나옵니다), 정밀도 0.55에 평균 F1 0.69를 보고하며, 동시 변경 평가는 쓸 만한 결과를 내지 못했다고 인정합니다. 아주 작은 수정에서는 그래프 컨텍스트가 파일을 그냥 읽는 것보다 비쌀 수 있고, 흐름 탐지는 Python과 PHP보다 JavaScript와 Go에서 약하다고도 적어 두었습니다.
대가는 설치 흔적과 통제입니다. 설치 단계는 찾아낸 모든 AI 도구에 MCP 항목, 훅, 스킬, 규칙 파일 지시를 쓰며, 30개의 도구 정의는 컨텍스트를 실제로 차지합니다. 플랫폼별 플래그와 CRG_TOOLS로 이를 줄일 수 있습니다. 대부분의 도구는 읽기만 하지만, apply_refactor_tool은 소스 파일을 수정합니다. 기본적으로 모든 것이 로컬에 머물지만, 클라우드 임베딩 제공자를 켜면 코드 조각이 컴퓨터 밖으로 나가며 도구가 이를 경고합니다. 열린 issue가 186개이고 9월 18일 이후 릴리스가 없으니, 유지보수는 멈춘 것이 아니라 바쁜 상태이지만 밀린 일이 많습니다.
GitNexus와 비교하면 더 관대한 선택지이고(비상업 라이선스가 아니라 MIT입니다) 리뷰에 더 집중합니다. Serena와 비교하 면 정밀한 편집에 약합니다. 그래프가 언어 서버가 아니라 파싱에서 나오므로, 미리 보여 주는 이름 변경은 타입 검사를 거친 것이 아니라 구조적 추정입니다.
제 역할을 하는 곳
Claude Code를 쓰는 3,000개 파일 규모 Python 서비스의 리뷰어
에이전트가 저장소 절반을 읽지 않고 풀 리퀘스트를 리뷰하게 하기
code-review-graph install을 한 번 실행합니다(그 규모면 빌드에 약 40초). 에이전트는 get_review_context_tool과 get_impact_radius_tool을 호출하고 영향 범위 안의 파일만 읽습니다. README의 중앙값은 질문당 토큰 63배 감소이지만, 두 줄짜리 수정에서는 파일을 읽는 것보다 비쌀 수 있습니다.
모든 풀 리퀘스트에서 위험 신호를 보고 싶은 엔지니어링 매니저
CI에서 위험한 변경과 테스트되지 않은 핫스팟을 표시하기
복합 GitHub Action이 러너에서 그래프를 만들고, 위험 점수를 매긴 함수, 영향을 받는 흐름, 테스트 공백을 담은 고정 댓글 하나를 답니다. fail-on-risk를 쓰면 병합 관문이 됩니다. 코드가 러너 밖으로 나가지 않으므로 비용은 CI 시간뿐입니다.
크고 낯선 PHP 코드베이스에 합류한 개발자
무엇이든 건드리기 전에 아키텍처 지도를 얻기
get_architecture_overview_tool과 generate_wiki_tool이 탐지된 코드 커뮤니티로 전체 구조를 만들고, get_knowledge_gaps_tool이 테스트되지 않은 핫스팟을 가리킵니다. 흐름 탐지는 JavaScript나 Go보다 Python과 PHP에서 강하므로, 이 언어들에서 지도를 가장 믿을 만합니다.
도입 전 확인할 점
- 설정
- pip install code-review-graph를 실행한 뒤 code-review-graph install을 실행하면 최대 16개의 AI 도구를 찾아 각각에 MCP 항목, 훅, 스킬, 규칙 지시를 씁니다. 에디터를 다시 시작합니다. Python 3.10+가 필요하며, code-review-graph uninstall은 자신이 쓴 항목만 지웁니다.
- 연동
- 도구 30개와 review_changes, pre_merge_check 같은 MCP 프롬프트 5개가 있습니다. 대부분은 읽기 전용 조회입니다(영향 범위, 리뷰 컨텍스트, 호출자와 피호출자, 흐름, 커뮤니티, 허브와 브리지 노드). build_or_update_graph_tool, embed_graph_tool, generate_wiki_tool, apply_refactor_tool은 쓰기를 하며, 마지막 도구는 소스 파일에 씁니다.
- 데이터와 개인정보
- 그래프는 로컬 SQLite 파일입니다. serve는 stdio로 실행되고, serve --http는 localhost:5555에서 대기합니다. 선택 사항인 클라우드 임베딩(Gemini, Voyage, MiniMax 또는 OpenAI 호환 엔드포인트)은 먼저 경고를 띄운 뒤 코드 조각을 컴퓨터 밖으로 보냅니다. 공개된 보안 권고는 없습니다.
- 대규모 사용 시 비용
- 무료입니다. 로컬 임베딩은 기본으로 CPU에서 all-MiniLM-L6-v2를 씁니다. 클라우드 임베딩 제공자는 각자의 요금으로 과금합니다. 절감은 모델 청구서에서 나옵니다. README의 예시 질문은 코퍼스 전체 대신 약 2,200에서 3,900 토큰을 돌려줍니다.
- 제한
- 프로젝트 스스로 밝히듯 영향 재현율은 순환 논리이며, 커밋 13개에 대한 평균 F1은 0.69입니다. CRG_TOOL_TIMEOUT을 설정하지 않으면 읽기 전용 도구에는 타임아웃이 없고, 쓰기 도구는 이 설정으로도 제한되지 않습니다.
좋은 점
- 코드 리뷰를 정면으로 겨냥한 영향 범위 분석입니다
- 로컬 SQLite 그래프로, 외부 서비스가 필요 없습니다
- MIT 라이선스이며, PR 댓글용 GitHub Action이 있습니다
- 자체 벤치마크의 한계를 문서로 밝힙니다
아쉬운 점
- 줄이지 않으면 30개의 도구가 컨텍스트 부담을 더합니다
- 설치 프로그램이 찾아낸 모든 도구에 훅과 규칙을 씁니다
- JavaScript와 Go에서는 흐름 탐지가 약합니다
- 열린 issue가 186개이고, 2026년 9월 이후 릴리스가 없습니다
추천 대상
중대형 저장소에서 AI 어시스턴트로 풀 리퀘스트를 리뷰하며, 관대한 라이선스의 로컬 코드 그래프를 원하는 팀입니다.
