실측 (2026-08-12, ida-solution 착지 캠페인)
review-dispatch.sh --sweep 의 후보 열거는 gh pr list --state open --limit 100 기본 순서(최신 생성 우선)를 그대로 순회한다. 신규 PR 유입이 리뷰 캡(REVIEW_MAX_CONCURRENT)을 계속 채우는 동안, 갱신이 멈춘 오래된 PR 은 순번이 영원히 오지 않는다.
실측: feat/m4.85-hardening 대상 열린 PR 11건(승격 이벤트 obra#995 의 선행 조건)이 이틀째 정지 — 그중 3건(obra#1478 #1419 obra#1181)은 리뷰어 meta 가 한 번도 생성된 적 없음, 나머지는 retired/idle 로 재디스패치 없음. 같은 기간 main 대상 신규 PR 은 정상 리뷰·착지.
우회 (지금 쓰는 것)
triggered 모드(review-dispatch.sh <pr>)는 순서 무관 강제 디스패치 + finished/retired 교체이므로, 오케스트레이터가 코호트를 수동 순차 디스패치.
제안
스윕 열거에 우선 코호트 훅 하나 — 예: REVIEW_PRIORITY_QUERY(gh pr list 필터) 또는 라벨 기반 선순회 패스(우선 라벨 붙은 PR 을 먼저 순회하고 나머지를 뒤에). 정렬 전체를 바꾸는 것보다 선순회 패스가 단순하고, 없으면 현행과 동일(옵트인 불활성).
Simplicity-First: 하드 게이트 아님 — 순서 힌트만.
실측 (2026-08-12, ida-solution 착지 캠페인)
review-dispatch.sh --sweep의 후보 열거는gh pr list --state open --limit 100기본 순서(최신 생성 우선)를 그대로 순회한다. 신규 PR 유입이 리뷰 캡(REVIEW_MAX_CONCURRENT)을 계속 채우는 동안, 갱신이 멈춘 오래된 PR 은 순번이 영원히 오지 않는다.실측: feat/m4.85-hardening 대상 열린 PR 11건(승격 이벤트 obra#995 의 선행 조건)이 이틀째 정지 — 그중 3건(obra#1478 #1419 obra#1181)은 리뷰어 meta 가 한 번도 생성된 적 없음, 나머지는 retired/idle 로 재디스패치 없음. 같은 기간 main 대상 신규 PR 은 정상 리뷰·착지.
우회 (지금 쓰는 것)
triggered 모드(
review-dispatch.sh <pr>)는 순서 무관 강제 디스패치 + finished/retired 교체이므로, 오케스트레이터가 코호트를 수동 순차 디스패치.제안
스윕 열거에 우선 코호트 훅 하나 — 예:
REVIEW_PRIORITY_QUERY(gh pr list 필터) 또는 라벨 기반 선순회 패스(우선 라벨 붙은 PR 을 먼저 순회하고 나머지를 뒤에). 정렬 전체를 바꾸는 것보다 선순회 패스가 단순하고, 없으면 현행과 동일(옵트인 불활성).Simplicity-First: 하드 게이트 아님 — 순서 힌트만.