TL;DR

  • Jev Code Reviewer는 에이전트가 생성한 대규모 풀 리퀘스트(PR)의 검토 부담을 줄이기 위해 변경 사항을 P0·P1·P2로 분류하고, 기본적으로 P0만 표시함.
  • 우선순위는 설정할 수 있으며, 코드 차이는 자연어 설명으로 표시되고 원본 코드는 토글 한 번으로 확인 가능함.
  • 로컬 컴퓨터에서 실행해 자체 코딩 에이전트의 PR을 검토하며, GitHub에는 아무것도 게시하지 않음.
  • 데모에는 실제 Jev 분류와 출처가 표시된 사전 작성 설명이 포함되며, 재생 데모는 외부 서비스 제공자 호출 없이 실행 가능함.
  • 분석 시 변경 코드와 주변 문맥을 TypeSafe와 OpenAI로 전송하며, 기본 분석 범위는 경로 순서상 첫 12개 변경 단위임.

Jev-Code-Reviewer

  • 현재 에이전트가 생성한 대부분의 PR은 한 번에 230개 파일 변경처럼 사람이 이해하기 어려운 규모로 나타나면서, 충분한 검토 없이 병합되는 경우가 많음.
  • 검토 부담을 줄이기 위해 각 변경 사항을 P0, P1, P2로 분류하며 기본 화면에는 P0만 표시함. 우선순위는 설정 가능함.
  • 코드 차이는 자연어로 표시되며, 토글 한 번으로 원본 코드를 확인할 수 있음.
  • 개인 컴퓨터에서 자체 코딩 에이전트의 PR을 검토하는 방식이며, GitHub에는 아무것도 게시하지 않음.
  • 녹화 영상에는 실제 Jev 분류와 출처가 표시된 사전 작성 설명이 포함됨.

빠른 데모

  • Node.js 22 이상이 필요함.
  • 저장소를 복제하고 의존성을 설치한 뒤 npm run demo를 실행하는 절차임.
  • 저장소: https://github.com/egma-ai/jev-code-reviewer.git
  • 재생 데모는 http://127.0.0.1:4731/demo 에서 열 수 있으며, 외부 서비스 제공자를 호출하지 않음.
  • 또는 확장 프로그램을 불러온 뒤 데모 PR의 변경 파일 페이지를 열 수 있음.

자체 PR 검토

  • GitHub CLI에 로그인한 상태(gh auth login)여야 하며, 로컬 저장소의 origin이 해당 PR 저장소를 가리켜야 함.
  • npm link로 jev-reviewer 명령을 추가하고, jev-reviewer setup으로 TypeSafe 및 OpenAI 키를 저장하는 절차임. 키 설정은 직접 터미널에서 실행해야 함.
  • jev-reviewer doctor는 도구, 키 출처, 로컬 서버 및 서비스 제공자 접근을 점검함.
  • jev-reviewer serve로 서버를 실행한 상태에서 jev-reviewer analyze --pr https://github.com/OWNER/REPO/pull/123 --repo /path/to/clone으로 분석함.
  • Chrome 확장 프로그램 연결 절차는 다음과 같음.
  • chrome://extensions에서 개발자 모드를 켜고 ‘압축해제된 확장 프로그램을 로드’를 선택한 뒤 저장소의 extension/ 폴더를 지정함.
  • jev-reviewer token | pbcopy를 실행하고 확장 프로그램 팝업의 Connection에서 토큰을 붙여 넣은 뒤 저장함. 연결 상태는 Paired로 표시됨.
  • PR의 변경 파일 페이지(/pull/<n>/files)에서 ‘Show logic’를 켜 코드 대신 로직 설명을 표시함.
  • 선택 사항으로 uv tool install graphifyy를 실행하면 더 나은 문맥 제공을 위한 로컬 코드 그래프를 추가할 수 있음.
  • 코딩 에이전트가 PR을 연 뒤 분석을 실행하도록 하려면 에이전트 스킬을 설치함.

알아둘 점

  • 코드가 컴퓨터 밖으로 전송됨. analyze는 변경 코드와 주변 문맥을 TypeSafe와 OpenAI로 보냄. 확장 프로그램은 로컬 서버인 127.0.0.1:4731에만 연결함.
  • 키는 ~/.config/jev-reviewer/credentials.json에 저장되며, 소유자만 접근할 수 있지만 암호화되지는 않음. 코딩 에이전트의 셸에서 보이지 않는 경우가 잦은 환경 변수보다 이 방식을 권장함.
  • OpenAI 키 교체 명령은 node scripts/setup-keys.mjs --replace-openai임.
  • 분석 범위에는 상한이 있음. 경로 순서상 첫 12개 변경 단위(diff hunk)를 분석하며, --max-units를 사용하면 최대 100개까지 지정 가능함. 분석되지 않은 변경 사항이 있는 파일은 GitHub 코드 표시를 유지하며, CLI와 팝업에 미분석 개수가 표시됨.
  • 기존 ‘변경 파일’ 페이지만 지원함. GitHub의 새 /changes 페이지는 아직 지원하지 않으므로 프로필 사진 메뉴의 Feature preview에서 이전 화면으로 전환해야 함.
  • 오래된 보고서는 표시되지 않음. PR에 새 커밋이 있으면 확장 프로그램은 GitHub 코드를 유지하며, analyze를 다시 실행한 뒤 Refresh report를 눌러야 함.
  • 우선순위는 정확성이 아니라 주의가 필요한 정도를 나타냄. P0 파일은 기본적으로 펼쳐지고 P1 및 P2는 접힌 상태로 시작함.
  • 우선순위 설정은 config/policy.json을 검토 대상 저장소의 .jev-reviewer.json으로 복사해 조정하거나 --policy를 전달해 지정함.

개발

  • npm test로 테스트를 실행함.
  • node scripts/test-extension.mjs로 확장 프로그램 테스트를 실행하며, Chromium과 사용 가능한 4731 포트가 필요함.
  • 아키텍처, 데모 안내 및 확장 프로그램 세부 정보가 제공됨.
  • 라이선스는 MIT임.