2026-05-06
ADR 0037 — 사건 상세 채권계산 탭 → 회수 탭 일원화
결정문
사건 상세의 ?tab=debt-settlement (채권계산) 탭을 제거하고 ?tab=recovery (회수) 탭으로 일원화한다. 회수 탭은 이미 채권계산 위젯의 super set 이므로 회귀 위험 0.
VALID_TABS에서"debt-settlement"제거. 탭 트리거·탭 콘텐츠·모바일 더보기 메뉴 항목 모두 삭제.?tab=debt-settlementURL 은parseTab에서"recovery"로 정규화 — 외부 deep link 호환성 보존.- 키보드 단축키
c(debt-settlement 진입용) 제거. 기존r(recovery) 만 유지. cheat sheet 동기화. DebtSettlementTab.tsx컴포넌트 자체는 유지 —RecoveryTab의recoveryType === "debt"분기에서 그대로 wrap. 엔진 (_lib/debt-settlement.ts)·스냅샷 스키마·서버 액션 변경 없음.next-actions.ts의NextAction.tabunion 에서"debt-settlement"제거 (사용처 0건).
배경
- ADR 0010 (2026-04-22) 결정문 §1 이 이미 명시: "단일 회수 탭 (
?tab=recovery) 으로?tab=debt-settlement를 대체". Pack 1 PR-1 에서는 회귀 위험 회피 목적으로 두 탭을 병존 시켰으나, Pack 2~5 도메인이 모두 ship 된 2026-05 시점에서 채권계산 탭 단독 진입 가치는 사라졌다. - 라이브 walkthrough (2026-05-06) — 사용자가 두 탭의 차이를 인지하지 못해 혼란 보고: "어느 탭이 메인?".
- 회수 탭 = 채권계산 위젯 + 가압류 + 추심 + 작성 중인 서류 + 시효 배지 (debt 도메인). 채권계산 탭 = 위젯 단독. 정보 위계상 부분집합.
- 14 종
recoveryType중 13 종 (Pack 2 이혼·Pack 3 부동산·Pack 4 상속·Pack 5 계약 등) 에서 채권계산 탭은 의미 없음 — 이미RecoveryTab이 도메인별 분기 처리 중이고, 채권계산 탭은 도메인 분기 없이 모든 사건에서 노출되어 비-debt 사건에 부적절한 위젯을 보여주는 회귀 위험까지 안고 있었다.
대안 검토
대안 A — 채권계산 탭 제거, 회수 탭 일원화 (채택)
- 장점: 정보 위계 단순화 · 14 도메인 일관성 · ADR 0010 §1 마무리 · 회귀 위험 0 (회수 탭이 이미 super set).
- 단점: 단축키
c에 익숙한 사용자 재학습 (단, walkthrough 시점 활성 사용자 = 1 (Chair) 이므로 이전 비용 무시 가능).
대안 B — 채권계산 탭은 위젯만, 회수 탭에서는 가압류·추심·서류만 (기각)
- 장점: 두 탭 의미 분리 명확.
- 단점: 회수 탭이 의도적으로 debt 사건의 모든 회수 도구를 한 화면에 모은 설계 (ADR 0010 §1 + Pack 1 사용성). 채권계산을 분리하면 변호사가 "채권계산 → 가압류 → 추심" 워크플로우에서 탭 전환 강제 — UX 후퇴.
- 기각 사유: ADR 0010 의 통합 의도 정면 위반.
대안 C — 그대로 유지 (기각)
- 장점: 변경 비용 0.
- 단점: 사용자 혼란 누적 + 비-debt 사건에서 무의미한 위젯 노출. 신규 사용자 온보딩 시 학습 부담.
- 기각 사유: 라이브 walkthrough 에서 직접 혼란 관찰.
결정 + 근거
핵심 근거
- ADR 0010 §1 마무리: "회수 탭으로 debt-settlement 대체" 는 1년 전 합의된 방향. Pack 2~5 ship 완료로 통합 시점 도래.
- 회귀 위험 0:
RecoveryTab이DebtSettlementTab을 일반 컴포넌트로 wrap 하는 구조라 탭 진입 경로만 정리하면 됨. 엔진·스냅샷·서버 액션·CSV 가져오기 전부 변경 없음. - 14 도메인 일관성: 채권계산 탭은 14 도메인 중 1 (debt) 에만 의미 있는 부분집합. 회수 탭은 14 도메인 전체에 도메인별 분기로 적합한 UI 노출.
- deep link 호환:
parseTab에서?tab=debt-settlement→recovery자동 정규화로 외부 알림·이메일·포털 메시지에 hardcoded 된 링크 보호.
성공 지표
- 사건 상세 탭 진입 분포에서
recovery탭 점유율 (이전 두 탭 합계와 동등 이상) ?tab=debt-settlement정규화 hit 수 (Phase out 추적, 6개월 후 0 도달 목표)- 사용자 혼란 보고 0 건 (walkthrough · 인터뷰)
Minority Report
없음. 라이브 walkthrough 에서 사용자 혼란 직접 관찰 + ADR 0010 §1 의 자연스러운 마무리라 5인 회의 절차 생략.
후속 과제
본 ADR 범위 내 (단일 PR)
CaseDetailClient.tsx—VALID_TABS·NEXT_ACTION_TABS·parseTabredirect · TabsTrigger · TabsContent · 모바일 더보기 메뉴 정리use-case-tab-shortcuts.ts—c키 매핑 제거 + cheat sheet 주석 동기화next-actions.ts—NextAction.tabunion 에서"debt-settlement"제거notification-deeplink.ts— VALID_TABS 주석 갱신regression-case-tab-shortcuts.spec.ts— 헤더 주석 갱신 (c매핑 제거)
본 ADR 범위 외 (별도 PR 후보)
apps/docs/content/product/pack-1/screens/case-detail-debt-calc.md— Pack 1 화면 문서. "채권계산 탭" 명칭 → "회수 탭 (debt 분기)" 으로 수정 (문서 cleanup, P3).- 외부 deep link 모니터링 6개월 —
?tab=debt-settlementredirect hit 수 감지. 0 도달 시 redirect 제거 가능 (P4). infraHardening.recoveryTypeUi킬 스위치 — 회수 탭 자체 비활성 시 채권계산 탭이 유일한 회수 진입점이었지만 본 ADR 후 해당 플래그 OFF 시 debt 사건 회수 도구 접근 불가. 플래그 운영 정책 재검토 별건 ADR 후보.
참여자 최종 입장
(라이브 walkthrough 직접 관찰 기반 — 5인 회의 생략)
| 역할 | 입장 |
|---|---|
| Chair (사용자) | ✅ 옵션 A 채택, 즉시 ship |
| 시스템 (Claude) | ✅ 회귀 위험 0 확인, 단일 PR 권장 |
Anti-Goal 위반 없음. ADR 0002 (전 사용자 무료) 위반 없음. 외부 deep link 호환은 redirect 로 흡수.