콘텐츠로 이동

01-슬롭-PR-실패-사례

예시 01 — 슬롭 PR이 머지된 후 무슨 일이 벌어졌는가

섹션 제목: “예시 01 — 슬롭 PR이 머지된 후 무슨 일이 벌어졌는가”

한 팀이 LLM이 작성한 PR을 그대로 머지한다. 제목은 다음과 같다.

feat: comprehensively refactor authentication module with robust error handling

PR 설명에는 12개의 불릿이 있고, 각 불릿이 “Improved X by leveraging Y”의 형태다. 변경 파일 14개. 테스트 23개 추가. 모두 통과.

머지 1주일 후, 인증 우회 버그가 보고된다. 추적해 보니:

  1. validatePassword라는 새 함수가 추가되었다 — 이름은 검증인데, 실제로는 password.length > 0만 확인한다. 시그니처 #1(이름–행위 불일치).
  2. 23개 테스트 중 19개는 assert result is not None 형태였다. 시그니처 #5(의미 없는 테스트).
  3. PR 설명의 12 불릿 중 4개는 코드에 존재하지 않는 변경을 묘사했다. LLM이 PR 설명을 쓰면서 환각한 것. 시그니처 #3(출처 없는 단정).

5분 진단을 돌리면: 출처 1점 + 이름-행위 1점 + 불릿 1점 + 테스트 1점 + 자기 칭찬 1점 = 5점/5점. 압도적 슬롭.

  • 머지 전에 5분 진단을 했다면 막을 수 있었다.
  • LLM이 만든 PR 설명을 그대로 신뢰하지 말 것. PR 설명도 생성된 텍스트 다.
  • “테스트 23개 추가”는 신호가 아니다. 의미 있는 테스트 1개 가 신호다.