# [Lv.3] 생보 3대질병 Phase B — 웹앱 차액 계산·표시 (3사 결과 아래)

## allowed_resources
```yaml
allowed_resources:
  paths:
    - "src/components/composite/**"
    - "src/pages/CompositeDesign.tsx"
    - "src/lib/**"
    - "src/**/__tests__/**"
    - "tests/e2e/**"
  forbidden_paths:
    - "server/**"
    - "extension/**"
    - ".github/**"
    - "src/config/api.ts"
    - "src/integrations/**"
  commands: ["npx vitest","npx tsc","git"]
  merge_policy: "none"
  ttl_hours: 16
```
> ★ merge_policy=none. base=현 origin/main(#155 Phase A 포함 — life_matrix 계약 존재). webapp-only, 서버 무변경.

## 배경 (Phase A 완료 → 표시)
Phase A로 상담 레코드에 **life_matrix**(생보 matrix: 담보×생보사) 저장 계약 완료. Phase B = 이 데이터로 **생보 3대질병 차액을 계산·표시**.
- 회장 확정: **"절감" 단어 없이 차액만**(계단식 스타일). 3사 결과 **아래**에 표시.
- 대상 3담보: **암진단비·뇌혈관질환진단비·허혈성심장질환진단비**.

## 작업

### 계산 (웹앱 파생)
- life_matrix에서 **담보별 생보사 최저가**(per-담보 argmin) 산출 — 3담보 각각.
- 손보 배정가 = 기존 손보 복합설계 결과 `coverages[].premium`(3사 조합의 그 담보 배정 보험료). **담보명으로 매칭**(암진단비·뇌혈관질환진단비·허혈성심장질환진단비 — 담보명 텍스트 매칭, task-2864 담보명 정상화 활용).
- **차액 = Σ 담보별 (손보 배정가 − 생보 최저가)**. 음수(생보가 더 비쌈)는 그 담보 0 처리 or 그대로 표기(회장 선호 확인 — 기본은 실제 차액 그대로, "차액만" 원칙). exact 원(반올림 금지).
- composite_calculator 통째 재사용 금지 → 경량 담보별 argmin 헬퍼(`src/lib`).

### 표시 (계단식 스타일, 3사 결과 아래)
- **위치**: 기존 3사 조합 결과(계단식) **아래**에 별도 섹션.
- **형태**: 계단식 스타일과 통일(직각·exact 원·회사명). 예:
  - "생보 3대질병 진단비 비교" 헤딩
  - 담보별: [담보명 | 손보 배정(회사·원) | 생보 최저(회사·원) | 차액]
  - 하단: **"생보 3대질병 복합 시 차액 XXX원"** (계단식 총액차이 스타일, 큰 폰트). **"절감" 단어 금지, "차액"만.**
- **life_matrix 없는 상담(손보만)**: 이 섹션 **숨김 또는 접힌 플레이스홀더**("생보 3대질병도 캡처하면 차액 확인 가능") — 미표시로 깨지지 않게 graceful.
- 월/N년 표기는 손보와 일관(exact).

## 제약
- webapp-only. 서버/확장 0. life_matrix는 서버 응답에서 읽기만(Phase A 계약). 손보 결과·인포그래픽·신뢰뱃지·계단식 등 기존 불변.
- "절감" 단어 금지(차액만). 반올림 금지. 곡선 금지(직각 유지). 신규 요소 data-testid + e2e strict-mode 회귀 방지.

## 검증
- `npx tsc` 클린. `npx vitest run` 회귀 0. 신규: life_matrix 있음→3담보 argmin·손보배정 매칭·차액 계산(exact) / life_matrix 없음→섹션 미표시·graceful / 담보명 매칭(3담보) / "절감" 단어 부재 / 계단식 스타일 렌더. e2e clean worktree PASS.

## 완료 (★ 순서 B)
- 변경 = src/ (+tests/e2e) 만. 서버/확장 불변.
- **dev6 금지** — dev1. 커밋 → push → finish-task **foreground 1회** → .done 즉시 종료. **background wait 금지.** ANU 검증·머지·CF Pages 배포는 ANU. (마이그레이션016·서버재시작·확장빌드전송은 ANU가 Phase B 머지 시 일괄.)

## goal_assertions (auto-generated)
- `npx tsc`
- `npx vitest run`
