컴플라이언스 검사 경로 — 상담원 발화 → 위반 목록
CompliancePort 는 있었는데 부르는 곳이 없었다. 기능 ID 배지를 달면서
C-1~C-4 에 티켓이 0건인 것이 드러나 만들었다 — 필수 블록이다.
POST /hub/compliance-checks
추천(B)과 별개 경로다
검색은 고객 발화에 반응하고 이쪽은 상담원 발화에 반응한다. 한 인터랙터에 묶으면
화자에 따라 분기하는 if 가 생기고 두 지표(적절 발동률 / 재현율)가 섞인다.
커맨드가 agent_utterance 만 받는 것도 같은 이유다 — 고객이 한 말을 위반으로 잡으면
화면에 고객을 탓하는 경고가 뜬다.
부록 A-1 을 구조로 막았다
응답 필드가 call_id · segment_id · findings 셋뿐이다. 등급·점수·”안전” 필드를
아예 두지 않았으므로 화면이 그런 표현을 만들 재료가 없다. 테스트로도 고정했다.
발견이 없는 것은 “잡힌 것이 없음”이지 “안전함”이 아니다. 재현율 0.90 목표라는 건 10건 중 1건은 놓친다는 뜻이다.
스포크가 없으면 501
빈 목록을 돌려주면 탐지가 죽은 것이 “깨끗하다”로 읽힌다. 재현율 우선(애매하면 잡는다)과 정반대 방향의 사고라 통과 경로를 만들지 않았다.
완료 조건
cd server && pytest 75개 통과 · 계약 3종 KEPT · 응답에 등급 필드 없음을 테스트가 검증.