coldteadotai/pr-lens
Review code 100X faster. Lens draws every PR as animated architecture and data-flow walkthroughs, inside the pull request itself. Use it as a GitHub App, GitHub Action, CLI, or a skill for your coding agent
PR Lens – 풀 리퀘스트 시각적 리뷰
기능
- 풀 리퀘스트(PR)가 열리면 PR Lens은 변경 사항에 대한 애니메이션 아키텍처 다이어그램을 포함한 댓글을 게시합니다. 이 다이어그램은 추가, 수정, 삭제된 파일, 서비스 또는 컴포넌트(녹색/황색/빨간색)와 그 사이의 데이터 흐름을 보여줍니다.
- 댓글은 상호작용이 가능합니다:
<details>섹션으로 확장되어 전체 '영향 범위', 새 코드 경로, 또는 폐기된 부분에 집중할 수 있습니다. - 각 다이어그램은 전체 크기 캔버스에서 열 수 있으며, 줌/팬 기능과 라이트/다크 테마 전환 기능을 제공합니다. 워크스루 모드는 변경 사항을 단계별로 따라가며 영향을 받은 노드와 경로를 강조 표시합니다.
사용 방법
- GitHub App – 어떤 리포지토리든에 coldtea‑pr‑lens 앱을 설치합니다. 앱은 각 PR을 자동으로 분석하고 SVG를 렌더링하며, 모든 푸시마다 댓글을 업데이트합니다.
- GitHub Action – CI에서 동일한 분석을 수행하는 워크플로우(
.github/workflows/pr‑lens.yml)를 추가합니다. 자체 LLM API 키를 사용할 수 있습니다(Gemini가 기본이지만 OpenAI 또는/chat/completions엔드포인트도 지원). - CLI –
@coldtea/pr‑lens‑cli를 로컬에서 실행하여 diff를 분석하고 SVG를 렌더링하며, 마크다운 댓글을 생성하고 생성된 그래프를 검증하거나 시스템의 지속 가능한 맵을 내보낼 수 있습니다. - 에이전트 스킬 – 스킬(
npx skills add coldteadotai/pr‑lens)을 설치하면 코딩 어시스턴트(Claude, Gemini, Copilot 등)가 그래프 문서를 자동으로 생성하고 댓글을 게시할 수 있습니다.
핵심 구성 요소
| 패키지 | 역할 |
|---|---|
@coldtea/pr‑lens‑schema |
모든 구성 요소 간에 공유되는 그래프 계약을 정의하는 JSON 스키마 |
@coldtea/pr‑lens‑renderer |
JSON 그래프를 결정론적이고 애니메이션 가능한 SVG(라이트/다크 쌍)로 변환 |
@coldtea/pr‑lens‑cli |
LLM과 상호작용하여 git diff를 그래프로 변환하고, SVG를 렌더링하며, 댓글을 구성하고 검증하며, 맵을 내보낼 수 있는 CLI |
pr‑lens GitHub Action |
CI 친화적인 래퍼로 CLI를 실행하고 정적 댓글을 게시 |
@coldtea/pr‑lens‑agent‑skill |
코딩 에이전트가 그래프를 생성하고 게시할 수 있도록 가르치는 작은 '스킬' |
설정
.github/pr‑lens.yml파일을 추가하여 파일 이름을 변경하거나 제외하거나 그룹화하거나 레인을 고정할 수 있습니다. 이 파일은 코드가 진화해도 유효한 오버레이입니다.- CLI는 자동으로
.pr‑lens/폴더(git 무시)를 생성하여 임시 파일을 저장합니다. 커밋할 수 있는 유일한 아티팩트는 내보낸 맵(.github/pr‑lens.map.json)입니다.
왜 중요한가 큰 PR을 리뷰하는 것은 정신적으로 부담이 큽니다. PR Lens는 텍스트 기반의 diff를 시각적 지도로 변환하여 시스템의 어떤 부분이 영향을 받았는지, 데이터가 어떻게 흐르는지 보여주며, 코드를 줄 단위로 읽기 전에 영향을 파악할 수 있게 해줍니다.
실제 예시 보기
- '홀 오브 페임'에 링크된 실시간 예시(예: React Hooks, Node fetch, Kubernetes Ingress, vLLM). 각각은 PR Lens로 렌더링된 실제 PR을 보여줍니다.
- 웹 UI(
prlens.dev)는 인터랙티브 캔버스를 호스팅합니다.
시작하기
# GitHub App 설치 (또는 Action 추가)
# 또는 로컬에서 실행:
export GEMINI_API_KEY=YOUR_KEY # 또는 OPENAI_API_KEY
npx @coldtea/pr-lens-cli analyze --base origin/main
npx @coldtea/pr-lens-cli render .pr-lens/graph.json
open .pr-lens/*-dark-*.svg
라이선스 – MIT.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트