pr-af
무엇인가
PR-AF는 AgentField 위에서 도는 에이전트형 코드 리뷰 파이프라인이다. 자리로 보면 CI/CD 게이트키퍼 쪽에 속하며, diff를 요약해 주는 인터랙티브 도구가 아니라 PR 하나를 정밀 검토하는 배치형 리뷰어다. 정적 스크립트를 실행하는 대신 들어온 PR의 토폴로지에 맞춰 자기 실행 그래프를 구조적으로 바꾼다.
어떻게 동작하나
PR이 도착하면 diff를 의미·기계·시스템 세 관점으로 평가해 리뷰 차원을 컴파일하고, 그 PR 문맥에만 맞춘 일회성 리뷰어 에이전트를 생성한다. 발견 사항은 바로 채택되지 않는다. 저장소에서 호출자 스니펫과 import 컨텍스트를 끌어와 코드 근거가 있는지 확인하고, 파일을 넘나드는 위험을 클러스터링해 개별 결함이 하나의 시스템적 문제로 합쳐지는지 판정한다. 마지막으로 안전한 동작·의도된 동작·기존 완화책·약한 근거를 들어 반증을 시도하고, 살아남은 것만 file·line·body·suggestion·evidence 형태로 GitHub 인라인 리뷰 코멘트가 된다. 노드는 AgentField 제어 평면에 `pr-af`로 등록된다.
무엇과 다른가
비교 대상은 cubic-v2와 qodo, coderabbit, greptile, copilot, devin 계열이다. Martian Code-Review-Bench의 실행 가능한 PR 38개에서 GLM-5.2를 쓴 PR-AF는 golden recall 0.706으로 비교된 42개 도구 중 1위다. 실행 속도보다 정확도와 아키텍처 깊이를 우선하는 CI/CD 게이팅용이라는 점이 이들 도구와의 구조적 차이다. 리뷰당 비용은 폐쇄형 도구 대비 약 10배 낮고, 일상 PR은 DeepSeek급, 심층 오픈모델 리뷰는 GLM-5.2, 주요 PR은 Opus급 모델로 돌린다.
어떻게 쓰나
설치는 `af install`이 저장소 매니페스트를 따라 유지보수 중인 Go 패키지를 제어 평면에 `pr-af` 노드로 등록한다. 기존 Python `pr-af`가 있으면 노드 id·트리거·노드 스코프 시크릿을 유지한 채 교체된다. 첫 `af run`에서 OPENROUTER_API_KEY와 GH_TOKEN을 요구하며, 두 값은 암호화 저장되어 모든 노드에서 재사용된다. GitHub Actions에서는 `.github/workflows/pr-af-review.yml`을 넣고 PR에 `pr-af` 라벨을 붙이면 GITHUB_TOKEN만으로 동작한다. Railway 원클릭 배포나 Docker Compose 로컬 실행(제어 평면 http://localhost:8080)도 있다.
전제와 한계
af 0.1.87 이상이 필요하고, GH_TOKEN은 repo 스코프를 가져야 한다. 리뷰는 병렬 파이프라인이라 보통 35~50분 걸린다. Docker 이미지는 AForge CLI를 빌드 시 체크섬 검증해 포함하고 기본적으로 exec를 실행하며, 바이너리 경로는 PR_AF_HARNESS_BIN(Python 노드는 PR_AF_AFORGE_BIN)으로 지정한다. OpenCode가 양쪽 이미지에 남아 있어 PR_AF_PROVIDER=opencode는 재빌드 없는 설정 롤백이다. Python 노드를 로컬 경로로 설치하면 superseded_by를 따르지 않는다.
유사 도구
- ai-reviewPR diff를 LLM에 보내 인라인·요약 리뷰 코멘트를 자동 생성하는 Python CLI다. 6개 VCS와 7개 LLM 제공자를 설정 파일로 교체한다.
- pr-agentPR 코멘트나 CLI 명령으로 AI 코드 리뷰를 실행하는 Python 도구다. GitHub·GitLab·Bitbucket·Azure DevOps에 붙는다.
- vet코드 변경과 코딩 에이전트 대화를 LLM으로 검증해 이슈 목록을 내는 Python CLI다. 터미널·에이전트 스킬·CI에서 같은 검사를 돌린다.
- git-lrcgit commit 훅에 걸려 커밋되는 모든 diff를 AI로 검토하고, 10개 위험 범주와 100여 개 실패 패턴으로 문제를 지적하는 Go 바이너리다.
- ai-codereviewerGitHub Actions 워크플로에서 풀 리퀘스트 diff를 OpenAI GPT-4 API로 보내 리뷰 코멘트를 자동 생성하는 TypeScript 액션이다.