AI가 생성한 PR을 병합하기 전에 검토하세요 (Swarm Orchestrator 10.3.0)
Source: Dev.to
Claude Code, Cursor, Devin, Aider, Copilot 등 어떤 코딩 에이전트가 여러분의 레포에 PR을 열게 하면, 문제를 이미 알고 계실 겁니다. 차이는 빠르게 살펴보면 괜찮아 보이고, CI도 통과합니다. 여러분은 머지를 합니다. 그런데 일주일 뒤에 “통과”한 테스트가 삭제돼 있거나, 오류 처리가 조용히
catch {}로 잡히거나, “수정”이 실제 버그를 건드리지 않은 주석 교체에 불과한 것을 발견하게 됩니다.Swarm Orchestrator는 그런 PR을 살펴보고 머지를 클릭하기 전에 의심스러운 부분을 표시해 줍니다.
CLI와 GitHub Action 형태로 제공됩니다. 오픈 소스이며 Node 20 이상에서 동작합니다. PR(또는 로컬 diff)을 지정하면, 여러 가지 치트 패턴 탐지기에 의해 패치를 점수화합니다. 그리고 무엇을 찾았는지, 왜 그런지 PR에 댓글로 남깁니다.
swarm audit moonrunnerkc/swarm-orchestrator#42대부분의 사용자는 이 정도 인터페이스만으로 충분합니다.
기본 탐지기 세트는 네 가지 검사를 포함하고 있으며, 모두 실제 PR에서 AI 에이전트가 만들어내는 패턴을 목표로 합니다:
- error-swallow: 테스트 코드가 아닌 곳에 새로 생긴 빈
catch블록이나 주석만 있는catch블록.- mock-of-hallucination: 레포 어디에도 존재하지 않는 모듈에 대해
jest.mock혹은vi.mock을 사용한 경우.- no-op-fix: 소스 코드는 바뀌지 않았는데 테스트만 바뀌었거나, 반대로 소스만 바뀌었는데 테스트는 바뀌지 않은 경우(차이가 “수정”이라고 주장할 때).
- fake-refactor: 내보낸 심볼은 이름이 바뀌었지만, 해당 심볼을 호출하는 코드가 diff에 업데이트되지 않은 경우.
--detectors experimental옵션 뒤에 숨겨진 탐지기 6개가 추가로 존재합니다. 실제 PR에서 충분히 좋은 점수를 받지 못했기 때문에 기본적으로는 비활성화돼 있으며, README에도 그렇게 명시돼 있습니다.모든 발견 결과는 인라인으로 측정된 정밀도 수치를 함께 표시하므로, 리뷰어는 봇이 말할 때마다 false‑positive 비율을 바로 확인할 수 있습니다.
규정 준수 자료가 필요하다면
--emit-aibom cyclonedx-ml옵션을 사용해 CycloneDX 1.6 ML‑BOM과 SPDX 3.0 AI‑Profile을 각각 감사마다 생성합니다. 이를 통해 EU AI Act Annex IV와 CISA SBOM‑for‑AI 최소 요구사항을 별도 공급업체 없이 충족할 수 있습니다.AI 에이전트가 PR을 열고 CI에서 두 번째 검토자를 두고 싶지만 호출당 비용이 들지 않고, 분위기가 아닌 결정적인 댓글을 원한다면 이 도구가 적합합니다. 또한 SBOM 옆에 AI‑BOM이 필요하고 또 다른 툴을 체인에 추가하고 싶지 않은 구매·보안 담당자에게도 유용합니다.
모든 AI PR을 한 명의 개발자가 수작업으로 눈으로 검토하고 있다면 아직 필요 없을 수도 있습니다. 하지만 새벽 2시에 10개의 에이전트가 차례로 diff를 푸시한다면 반드시 필요합니다.
네 가지 주요 변화:
- no-op-fix가 게이트가 있는 LLM 판정기와 함께 v2.0으로 업그레이드되었습니다. 판정기는 기본적으로 비활성화돼 있으며, `