| name | pr-self-review |
| description | PR을 열기 전에 자신이 작성한 diff를 시니어 리뷰어의 눈으로 직접 리뷰하고 — 버그·엣지케이스·네이밍·누락된 테스트를 찾아 고치고 — 같은 작업을 3회 반복하는 수동 루프입니다. 사용자가 "PR 올리기 전에 내 diff 셀프 리뷰해줘", "PR 열기 전 자체 리뷰 세 번 돌려줘", "내가 짠 코드 시니어처럼 리뷰하고 고쳐줘", "diff 셀프 리뷰", "self-review my diff before the PR", "PR self-review", "review my own diff like a senior"처럼 PR 제출 직전에 스스로 코드 리뷰를 돌리고 싶을 때 사용하세요. (구분: 구현 후 디버그 코드·데드코드·네이밍 정리 패스는 looping:de-sloppify-pass, 별도 검증자가 build·lint·test를 독립 실행하는 건 looping:independent-verifier-pass, 실제로 PR을 열고 CI를 green까지 끌고 가는 건 looping:ship-pr-until-green, 이미 떠 있는 여러 PR을 주기적으로 돌보는 건 looping:pr-babysitter) |
PR 셀프 리뷰 (PR Self-Review)
PR을 열기 전에, 시니어 리뷰어처럼 자기 diff를 리뷰하고 문제를 고친 뒤 세 번 반복합니다.
| 항목 | 값 |
|---|
| 카테고리 | 리뷰(Review) |
| 트리거 | 수동(manual) — 사람이 직접 시작 |
| 종료 조건(Exit) | critical 발견 없이 3회 리뷰 패스가 완료될 때 |
| 반복 한도(Max iterations) | 3 |
| 매 반복 체크 명령 | git diff main...HEAD |
| 가드레일 | 커스텀(Custom) |
| 지원 에이전트 | Claude Code · Cursor |
이 루프는 언제 쓰나
PR을 올리기 직전, "리뷰어가 잡기 전에 내가 먼저 잡자"는 상황에 씁니다. 작업 브랜치의 diff를 시니어 리뷰어 관점으로 훑으며 버그·엣지케이스·어색한 네이밍·빠진 테스트를 목록으로 뽑고, 심각도가 높은 것부터 최소 범위로 고친 뒤, 다시 리뷰해 정말 해결됐는지 확인하는 과정을 세 번 돌립니다. 혼자서도 "구현 → 리뷰 → 수정 → 재리뷰"의 압축을 거치게 되니, 리뷰어에게 넘기기 전에 diff 품질이 한 단계 올라갑니다.
대표 사례: 한 기능 브랜치를 세 번 셀프 리뷰한 결과 레이스 컨디션, 누락된 null 체크, 오래된 테스트를 잡아냈고 — critical 0건으로 PR을 열었습니다.
루프 흐름
수동 시작 → diff 리뷰 → 발견 사항 수정 → 재리뷰 →〔피드백 게이트〕critical 없이 3회 완료?
↑ │ 아니오(다음 패스)
└──────────────────────────────────────────┘
│ 예
종료
매 반복(pass)마다 하는 일
- diff 리뷰 — 현재 브랜치의 diff를 리뷰합니다. 버그, 엣지케이스, 네이밍 문제, 누락된 테스트를 목록으로 정리합니다.
git diff main...HEAD
- 발견 사항 수정 — 리뷰에서 나온 것 중 심각도가 가장 높은 것부터 최소 범위로 고칩니다.
- 재리뷰 — 업데이트된 diff를 다시 리뷰해, 앞서 지적한 항목이 해결됐는지 확인합니다.
git diff main...HEAD
가드레일 (점수 조작 방지 규칙)
종료 조건을 "가짜로" 통과시키지 못하게 막는 규칙입니다. 반드시 지키세요.
- 체크 명령이나 종료 기준을 고쳐서 억지로 성공시키지 않는다.
- 체크를 건너뛰거나 비활성화·우회해서 종료 조건을 통과시키지 않는다.
- 여러 번 반복해도 막히면, 지표를 조작하지 말고 멈추고 블로커를 보고한다.
Claude Code에서 실행하기
가장 간단합니다. 아래 kickoff 프롬프트를 그대로 붙여넣으면 에이전트가 스스로 세 번의 리뷰 패스를 반복합니다.
"PR 셀프 리뷰(PR Self-Review)" 루프를 시작합니다.
목표: 현재 diff에 대한 깨끗한 셀프 리뷰 3회
최대 반복: 3
매 반복 사이 실행: git diff main...HEAD
종료 조건: critical 발견 없이 3회 패스가 완료될 때
1단계: 시니어 리뷰어처럼 diff를 리뷰한다. 발견 사항을 고치고, 다시 리뷰한다.
이 루프를 스스로 페이싱(self-pace)하라. 매 반복 후 체크 명령을 실행하고 출력을 읽어, 종료
조건이 충족되지 않았을 때만 계속한다. 종료 조건이 통과하거나 최대 반복에 도달하면 멈춘다.
매 회차마다 한 줄 상태 업데이트를 남긴다.
팁: git diff main...HEAD는 예시입니다. 베이스 브랜치가 develop이면 git diff develop...HEAD로, 특정 커밋 이후만 보려면 git diff <base>...HEAD로 바꾸세요.
팁 / 변형
- diff 범위 좁히기: 큰 브랜치라면
git diff main...HEAD -- <경로>로 파일·디렉터리 단위로 리뷰하면 패스가 더 집중됩니다.
- 막힐 때: 같은 발견 사항이 두 패스 연속 해결되지 않으면, 억지로 고치려 들지 말고 가드레일대로 멈추고 "왜 못 고치는지" 가설과 함께 사람에게 보고하게 하세요.
- 리뷰 체크리스트 강화: 1단계에 "보안·동시성·에러 처리·로깅"을 명시적으로 점검하라고 덧붙이면 시니어 리뷰 품질이 올라갑니다.
- 연관 루프: 리뷰 후 군더더기 정리는
looping:de-sloppify-pass, 독립 검증 패스는 looping:independent-verifier-pass, 이어서 PR을 열고 CI를 green까지 끌고 가려면 looping:ship-pr-until-green.
원본 영어 kickoff (loops.elorm.xyz 원문)
Start the "PR Self-Review" loop.
Goal: three clean self-review passes on the current diff
Max iterations: 3
Between iterations run: git diff main...HEAD
Exit when: three passes complete with no critical findings
Step 1: Review the diff like a senior reviewer. Fix findings, then re-review.
Self-pace this loop. After each iteration, run the check command, read the output, and only continue if the exit condition is not met. Stop when the exit condition passes or max iterations is reached. Give a short status update each pass.
출처: https://loops.elorm.xyz/loops/pr-self-review