# [Lv.3] RP 화면 2차 PDF 정합 — 인포그래픽 일반론화 + 계단식 회사명·누적차이 직관화

## 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(RpPresentation.tsx 존재, task-2867 반영됨). webapp-only, 서버 무변경.

## 배경 (회장 배포 화면 재검토 — 2건)

### A. 인포그래픽 = 일반론(고정)으로 변경 ★
- **현재(틀림)**: "완전커버 보험사 **8곳** → 2개 28 + 3개 56 = 84가지" — 홍길동 캡처 데이터에 따라 **동적**으로 바뀜.
- **회장 지적**: 이 자리는 **고객 데이터와 무관한 일반 설명(일반론)** 이다. 홍길동별로 안 바뀌어야 함.
- **변경**: **손해보험사 10곳 고정** 기준:
  - 2개 조합 = **10C2 = 45가지**
  - 3개 조합 = **10C3 = 120가지**
  - **총 165가지** → "이렇게 경우의 수가 많다, 사람이 수동으론 불가능, AI가 순식간" 강조.
  - "완전커버 8곳" 등 **동적 문구·완전커버 프레이밍 제거**. 10곳·45·120·165는 **정적 상수**(캡처 보험사 수와 무관).
- **위치**: "복합설계 계산기" 메뉴/화면의 **가장 위에 일반론 설명**으로 배치(특정 상담이력 레코드에 종속되지 않는 고정 인트로). 현재 per-레코드 RP 프레젠테이션 안에 있으면 **최상단 일반 설명 영역으로 분리·승격**.
- 도트/막대 시각화는 유지하되 45/120 고정 개수 반영(또는 "45"·"120" 숫자 강조 + 대표 도식). placeholder 느낌 제거.

### B. 계단식 = 회사명 표기 + 누적차이 직관화 (PDF 심층비교 반영)
- **현재**: "1사 최고 / 1사 최저 / 2사 조합 / 3사 조합" 라벨 + 금액. 하단에 분리된 점선 초록 곡선 2개(텍스트만).
- **PDF 대비 미달 → 개선**:
  1. **각 단계에 실제 회사명 표기**: 1사 최고=해당 최고 단일사명(예 하나손해), 1사 최저=최저 단일사명(예 메리츠), 2사 조합=선택 2개사명(예 현대해상+농협), 3사 조합=선택 3개사명(예 DB+현대해상+농협). (동적, 실제 계산 회사명 — 이건 고객 데이터 기반이 맞음.)
  2. **누적 총액차이 직관화(핵심)**: "1사 최고 대비 **2개 조합 시 총액 차이 = X원**", "1사 최고 대비 **3개 조합 시 총액 차이 = Y원**"이 **한눈에 바로** 보이게.
     - 연결 표기는 **곡선이든 직각 화살표든 무관**(회장: 구현 편한 대로). 핵심은 **1사최고 박스 → 2사 박스 / 1사최고 박스 → 3사 박스로 시각적으로 연결**돼 "이것 대비 이만큼 덜 낸다"가 즉시 인지되는 것.
     - 현재처럼 하단에 **분리된 텍스트만** 두지 말 것 — 최고 단계와 2사·3사 단계를 **잇는 화살표/커넥터**로 누적 차이를 붙인다.
     - 2사 누적차이(Max vs 2사)와 3사 누적차이(Max vs 3사)를 **색·라벨로 구분**(예 2사=파랑, 3사=주황 — 곡선/직각 무관).
  3. 금액은 **exact 원**(task-2867 반올림 제거 유지). 단계 간 직선 차액(연속)도 유지.

## 제약
- webapp-only. 서버/확장 0. 인포그래픽 상수(10·45·120·165)는 하드코딩 상수 OK(일반론). 계단식 회사명·금액은 기존 계산결과 재사용.
- task-2867 반올림 제거·2·3사 회사별 열·중복제거 회귀 0. 신규/변경 요소 data-testid + e2e strict-mode 회귀 방지(clean worktree 검증).
- 회장 미언급 부분 현행 유지.

## 검증
- `npx tsc` 클린. `npx vitest run` 전체 PASS. 신규:
  - A: 인포그래픽 상수 10곳·45·120·**165**(동적 아님·캡처 보험사 수 무관), "완전커버 8곳" 문구 부재, 최상단 배치.
  - B: 계단식 각 단계 회사명 렌더 / 1사최고 대비 2사·3사 누적차이가 커넥터(곡선 or 직각)로 최고 박스에 연결·색구분 / exact 원.
- e2e clean /tmp worktree PASS(strict-mode 미발생).

## 완료 (★ 순서 B)
- 변경 = src/ (+tests/e2e) 만. 서버/확장 불변.
- **dev6 금지** — dev1. 커밋 → push → finish-task **foreground 1회** → .done 즉시 종료. **background+wait 금지.** ANU 검증(e2e 포함)·Codex 검토·머지·CF Pages 배포는 ANU.
