J-1·J-2·J-4 — 블랙리스트 전환 요청과 관리자 승인
무엇을
통화 종료 화면의 「블랙리스트 전환 요청」 버튼 → 관리자 대시보드의 승인요청창 →
승인 시 블랙리스트 관리창 등록. 근거: _project/decisions/204.
왜
C-6 콜 가드는 통화 중에 경고한다. 그런데 DASAN-MANUAL-5.3 이 정한
“반복 발생 시 상급자가 이어받는다” 는 다음 통화의 문제이고 경로가 없었다.
실제 콜센터가 이미 하고 있는 운영을 시스템이 거드는 것이다.
완료 조건
- 상담원은
pending까지만 만들 수 있다 — 승인은 관리자 몫 - 요청에 마스킹된 대화 맥락이 실린다(원문 아님,
MANUAL-5.5·C-5) - 근거는 전부 셀 수 있는 건수 — 위험도 점수를 만들지 않는다(부록 A-1)
distress는 전환 근거에서 빠지고 전문 기관 연결 안내를 대신 띄운다(MANUAL-5.4)- 해제해도 행을 지우지 않는다 — 「왜 풀렸는지」가 남아야 한다(절대 원칙 8)
- 도메인 규칙 테스트 ·
cd server && pytest통과 - 대시보드
tsc --noEmit·npm run build통과 - 서버 어댑터·라우터 — 장민석 님
w4-blacklist-api(server 브랜치) 에서 끝났다(2026-09-14,server브랜치b1dade6· main 머지 전) - §7.3 계약에 J 등록 — 같은 커밋이
plan.md7.3절 「허브 HTTP 표면」 에 블랙리스트 API 를 올렸다
⚠ 담당 경계를 넘었다
server/apps/blacklist/(장민석)·apps/dashboard/(조서희) 양쪽을 건드렸다.
decisions/012(디렉터리 경계 = 담당 경계)에 걸리는 일이라 사용자 지시로 진행했고
이 사실을 여기 적어 둔다. 두 분과 맞춰야 할 것:
- 장민석:
BlacklistPort구현체(PostgreSQL 어댑터)와 라우터. 도메인 규칙 (transitions.py·routing.py)은 만들어 뒀고 테스트 19건이 붙어 있다 - 조서희: 프론트
CallGuardFlag.category가 한글 3종(폭언·욕설·위협)인데 백엔드는 4종(insult·threat·sexual·distress)이다.distress는 화면 대응이 반대라(끊지 않고 연결) 그냥 매핑할 수 없다 — 계약을 맞춰야 한다
2026-09-14 — 남은 서버 몫은 다른 티켓에서 끝났다
J-1·J-2·J-4 의 저장·HTTP 는 장민석 님이 w4-blacklist-api(server 브랜치) 로 만들었다(요청·목록·승인/반려·등록 목록·해제,
고객은 발신 번호 HMAC, 승인은 관리자 로그인). 이 티켓에서 따로 만들지 않는다 — 겹치면 나중에 시작한 쪽이 물러난다(§4).
보드에서 완료가 두 번 세어지지 않도록 실제 서버 작업은 그 티켓의 것으로 본다. ⚠ 그 브랜치는 아직 main 에 들어가지 않았다.