ADR 0027 — Pack 5 계약 분쟁 도메인 확장
- Status: Implemented (PR-1~PR-8 전부 머지 완료 2026-04-26 — enum + CaseData 필드 + ContractInfoSection UI + 청구취지 빌더 2 종 + DocKind + 에디터 진입 + next-actions 분기 + E2E)
- Date: 2026-04-27
- Decision Drivers: roadmap.md Phase 3 (36M+) Pack 5 (부당이득·계약 손배) 명시. Pack 1~4 (채권·이혼·부동산·상속) 완료 후 자연스러운 도메인 확장. Pack 1 채권 엔진 일부 재사용 가능 (시효 분기 동일).
- Anti-Goal Compliance: ADR 0001 Anti-Goal "민사 외 형사·행정·IP" 미위반. 계약 분쟁은 민사 핵심.
결정
Pack 1 (채권 6) + Pack 2 (이혼 1) + Pack 3 (부동산 3) + Pack 4 (상속 2) 위에 Pack 5 = 계약 분쟁 (2 종) 도메인을 추가한다.
신규 recoveryType 2 종:
"unjust-enrichment"— 부당이득 반환 (민법 §741 — 법률상 원인 없는 이득)"contract-damages"— 계약 손해배상 (민법 §390 — 채무불이행 손해)
배제 (의도적):
- 손해배상 일반 (불법행위 §750) — 손해배상 사건은 빈도 낮고 사실관계 복잡, Phase 4 검토
- 매매·임대차 등 특정 계약 분쟁 — Pack 1 (lease-deposit 등) · Pack 3 (real-estate) 가 이미 흡수
배경
부당이득 반환 (§741):
- 법률상 원인 없이 타인의 재산으로부터 이익을 얻고, 그로 인하여 타인에게 손해를 가한 자는 그 이익을 반환할 의무.
- 발생 사례: 매매계약 무효·취소 후 매매대금 반환 / 변제자가 잘못 변제 (이중지급) / 결혼식 비용 양가 정산 분쟁 등.
- 시효: 민법 §162 ① 일반 채권 10년 (상사면 상법 §64 5년).
- 청구취지: "피고는 원고에게 [반환액]원 및 [지연이자]를 지급하라" — Pack 1 debt 와 형식 유사하지만 발생 원인 명확히 구분.
계약 손해배상 (§390):
- 채무자가 채무의 내용에 좇은 이행을 하지 아니한 때에는 채권자는 손해배상을 청구.
- 발생 사례: 공급계약 미이행 / 도급계약 하자보수 미이행 / 임대차 약정 위반 등.
- 시효: §162 ① 10년 (상사 5년).
- 청구취지: "피고는 원고에게 [손해액]원 및 [지연이자]를 지급하라" — debt 와 형식 동일하지만 손해액 산정 (적극 손해 + 일실 이익) 핵심.
Pack 1 채권 엔진을 부분 재사용:
- 시효 계산 —
statute-of-limitations.ts의 §162 ①·§64 분기 그대로 - 청구취지 빌더 — Pack 1 의 demand-notice / complaint 패턴 유사
- 결정론 빌더 + KST 날짜
대안 검토
| 대안 | 평가 |
|---|---|
| (1) Pack 1 debt 에 sub-type 으로 부당이득·계약 손배 흡수 | sub-type 처리 비용 (구상금 사례) 가 enum 분리보다 큼 |
| (2) Pack 5 = 2 enum 분리 (선택) | Pack 4 패턴 동일 — 도메인별 명확 분기 |
| (3) Pack 5 보류 (Pack 4 까지로 마감) | roadmap.md 명시 진행. Pack 1~4 momentum 활용 권장 |
| (4) 손해배상 일반 (불법행위) 까지 포함 | 도메인 면적 과다. Phase 4 별도 |
Pack 5 PR 계획
| PR | 산출 |
|---|---|
| PR-1 | recoveryType enum 2 추가 (unjust-enrichment, contract-damages) + 라벨 + 모든 sync 곳 (Pack 4 PR-1 패턴) |
| PR-2 | CaseData 도메인 필드 (causeType · benefitDate · breachType · damageBreakdown 등) + updateCaseContractAction |
| PR-3 | ContractInfoSection UI (overview 탭) |
| PR-4 | buildUnjustEnrichmentText (부당이득 청구취지 + 시효, 10+ tests) |
| PR-5 | buildContractDamagesText (계약 손배 청구취지 + 시효, 10+ tests) |
| PR-6 | DocKind 2 추가 (unjust-enrichment-complaint, contract-damages-complaint) + 에디터 진입 |
| PR-7 | next-actions 계약 분기 + dashboard expiring-statute label |
| PR-8 | E2E + ADR Implemented + roadmap ✅ |
데이터 모델 (PR-2 정의 예정)
// 부당이득 + 계약 손배 공용
contractCauseType?: "unjust-enrichment" | "contract-damages";
contractCauseDescription?: string; // 발생 사실 자유 기술 (예: "매매계약 무효 후 대금 반환")
benefitDate?: string; // 이득 발생일 / 채무불이행일 (YYYY-MM-DD, 시효 기산)
benefitAmountKrw?: number; // 청구 원금 (반환액 또는 손해액)
contractDate?: string; // 원 계약 체결일 (재사용 — Pack 3 와 충돌 점검 필요)
breachType?: "non-performance" | "incomplete" | "delay"; // 채무불이행 유형
damageBreakdown?: string; // 손해 내역 (적극 손해 + 일실 이익)
contractNote?: string; // 메모
충돌 점검: contractDate 는 Pack 3 (이전등기) 의 매매계약일과 의미 같으므로 재사용 OK. 다만 Pack 5 추가 시 description 갱신 필요.
Anti-Goal 검증
- ✅ 1번 "민사 외 형사·행정·IP" 미위반 — 부당이득·계약 손배는 민사.
- ✅ 2번 "법률 조언 AI" 미위반 — 청구취지 결정론 빌더, 발생 사실은 변호사 입력.
- ✅ 3번 "의뢰인 B2C 매칭" 미위반.
- ✅ 4번 "변호사 매칭·광고" 미위반.
Minority Report
- P5 (개발자) 우려: enum 14 → 16. CLAUDE.md 의
RecoveryType→CaseDomainTyperename 후속 ADR 이 Pack 5 후 더 시급. 다만 break 비용 큰 변경이라 Pack 5 끝낸 후 일괄 처리 권장. - P3 (PM) 우려: roadmap timeline (36M+) 으로는 Pack 5 가 약 3년 뒤. 지금 진입은 가속화. V2 검색 품질·포털 메시징 같은 가로 기능 vs 새 Pack 진입의 trade-off — 사용자 명시 자율 진행 따름.
- P1 (변호사) 양보 불가: 부당이득과 계약 손배는 발생 원인이 다름 — 청구원인 본문에서 명확히 구분되어야. 결정론 빌더의 causeType 별 분기 필수.
후속 과제
- ✅ Pack 5 PR-1~PR-8 완료 (2026-04-26)
- enum 이름
RecoveryType→CaseDomainType일괄 rename ADR 0028 (Pack 5 완료 후) - 손해배상 일반 (불법행위 §750) Phase 4 검토
- 상사 §64 5년 분기 정밀화 —
isCommercial필드 추가 시점에 next-actions 시효 계산 분기 (현재 §162 ① 10년 단일 적용)