판단 흐름: threshold → critical branch → flaky → artifact → gate
1 기준
coverage threshold
global 평균과 핵심 모듈 기준을 분리합니다.
lines보다 branches 우선
2 경로
critical path
인증, 결제, 상태 전이, 데이터 손실 경로를 먼저 봅니다.
guard false path 포함
3 신호
flaky signal
retry로만 통과하는 spec은 커버리지 품질에서 분리합니다.
불안정 통과는 보류
4 근거
CI artifact
HTML report, diff, 실패 로그, flaky 목록을 PR에 남깁니다.
리뷰 가능한 증거
5 결정
merge gate
기준 미달이나 불안정 신호가 있으면 병합을 멈춥니다.
required check
입력 레인
읽는 신호
위험 신호
점검 기준
CI 산출물
coverage report
lcov / html
line, branch, function의 하락 구간을 함께 봅니다.
line만 높고 branch가 비는 provider와 controller입니다.
핵심 파일 threshold는 전체 평균보다 높게 둡니다.
HTML report, threshold 실패 요약, 미검증 branch 목록
changed files
PR diff
바뀐 guard, pipe, interceptor, transaction 경계를 표시합니다.
새 분기가 생겼는데 spec diff가 없으면 보류합니다.
변경 파일의 critical branch는 통과 기준을 따로 둡니다.
changed coverage diff, uncovered lines, reviewer note
unstable test
retry / timeout
retry 통과, 시간 의존 spec, 외부 연동 mock 흔들림을 분리합니다.
flaky spec이 threshold를 채우면 품질 신호가 오염됩니다.
안정화 전에는 merge gate에서 경고나 차단으로 처리합니다.
flaky 목록, 재실행 횟수, 실패 스택, 격리 이슈 링크
위험 신호 매트릭스
차단
critical branch 미달
권한 거부, 예외, rollback branch가 비면 숫자와 무관하게
막습니다.
경고
changed file 증거 부족
새 분기나 DTO 검증이 추가됐는데 coverage diff가 설명하지
못합니다.
격리
flaky retry 통과
재실행으로 통과한 spec은 성공 신호가 아니라 안정화 대상입니다.
통과
artifact로 추적 가능
리포트와 로그가 남아 리뷰어가 누락 branch를 직접 확인할 수
있습니다.