0
Anti-Slop: AI 슬롭 PR을 자동 감지하고 닫아주는 GitHub Action
devops
요약
기사 전체 정리
AI 슬롭 PR을 자동으로 잡아서 닫아주는 GitHub Action
오픈소스 메인테이너들이 저품질 AI 생성 PR에 파묻히는 문제를 해결하려는 도구임. 31개 체크 규칙으로 PR 브랜치, 제목, 설명, 템플릿, 커밋 메시지, 파일 변경, 유저 시그널, 기여 이력을 검사함
실행 속도가 15초 미만이라 슬롭 PR이 리뷰 큐에 도달하기도 전에 잡히고 닫힘. 130개 이상의 수동 리뷰된 AI 슬롭 PR 패턴에서 규칙을 도출했고, Coolify(50K+ 스타, 월 120건 이상 슬롭 PR) 운영 경험이 디폴트 설정에 반영됨
54개 설정 옵션으로 세밀한 튜닝이 가능하지만, 안 건드려도 되는 합리적 기본값이 세팅돼 있음. OWNER/MEMBER/COLLABORATOR는 자동 면제
핵심 체크 규칙들
- 유저 시그널 체크: 스팸 유저네임 패턴 감지(연속 4자리 숫자, "ai" 포함 등), 계정 최소 나이(기본 30일), 24시간 내 포크 수 제한(기본 7개), 프로필 완성도 최소 4/11
- 글로벌 머지 비율: 전체 GitHub에서 저자의 PR 머지/종료 비율을 봄. 기본 30% 미만이면 실패. "여러 프로젝트에서 PR이 계속 거절당하는 사람"을 잡아냄
- PR 설명 체크: 빈 설명 금지, 최대 길이 2500자(AI가 설명을 과하게 씀), 이모지 최대 2개, 코드 참조 최대 5개
- 커밋 메시지 체크: 최대 500자, PR 작성자와 커밋 작성자 일치 확인
- 파일 체크: README.md, LICENSE 등 메타파일 변경 기본 차단 (슬롭 PR의 단골 타겟), 변경 파일의 추가된 주석 최대 10줄 (AI가 뻔한 로직에 주석을 과하게 넣는 패턴)
허니팟 트랩
- PR 템플릿에 마크다운 주석(렌더링 시 안 보임)으로 AI에게 특정 단어를 포함하라는 지시를 숨겨놓는 방식. 사람은 주석을 안 보지만 AI 에이전트는 raw 소스를 읽고 지시를 따르면서 자폭함.
blocked-terms로 해당 단어를 설정하면 됨
팁
> max-failures 값이 핵심 튜닝 포인트. 기본 4로 설정돼 있어서 4개 체크가 동시에 실패해야 PR이 닫힘. 1로 내리면 제로 톨러런스, 올리면 오탐 줄어듦. 프로젝트 규모와 기여자 성격에 맞게 조절할 것
- 언어 무관(language agnostic), 인라인 스크립트 없이 깔끔한 YAML 설정, 특정 버전에 핀하면 GitHub이 이뮤터빌리티를 보장하므로 SHA 핀과 같은 보안 효과
- "Anti-slop이지 anti-AI가 아님" — 진짜 좋은 AI 보조 기여는 페널티 없음
댓글
댓글
댓글을 불러오는 중...