# InsuRo 생보 3대질병 계단식 SVG 재구현 — task-2888 MERGED (260804)

- **PR #165 스쿼시 머지**: merge=`d7c6bc9` · mergedAt 2026-08-04 01:08 KST · main HEAD 갱신(ab7d44c #164 위)
- **팀**: dev1-team(헤르메스) · 불칸(lib)/이리스(component·SVG)/아르고스(e2e). merge_policy=none → **ANU 독립검증·스쿼시머지**.
- **배경**: task-2887(#164)이 HTML 테이블로 1차 재설계했으나, **회장 승인 목업 v2**(`life_staircase_mock_v2.png`) + 2차 평가 미팅 기준으로 **손보 계단식과 동일 SVG 양식 2개 + N%류 리드 배너 + 담보별 근거표**로 전면 재구현.

## 구현 요지
- lib `computeLifeThreeCriticalView`: ①암 계단(암진단비 argmin 생보사) + ②3대질병 계단(3담보 합 최저 단일 생보사). bannerPct=round(암월차액/전체월차액×100). exact 원(반올림 금지), payment_years 동적(20 하드코딩 금지). 구식 computeLifeStaircase 제거, 회귀 헬퍼 유지.
- component: 배너(%+게이지) → ①암 SVG 계단 → ②3대질병 SVG 계단 → 근거표(비율바) → 컴플라이언스 각주 4줄. 손보 RpPresentation 양식 차용(파란 뱃지·직선 화살촉·초록/빨강 부호병기 ▼−/▲+, 색+부호 이중인코딩). viewBox 고정 w-full.
- **겹침 버그 수정**: viewW 480→720, 월차액 좌측정렬·커넥터 이격으로 중앙 월차액↔우측 20년총액 겹침 해소. e2e는 텍스트 존재만 검사→미검출, 팀장 스크린샷 육안에서 발견·수정(표면통과≠의도동작).

## ANU 독립검증 (GREEN)
- PR #165 CI **11/11 PASS** (ci·e2e-test·diagnostic·qc-check 등) · mergeState CLEAN · MERGEABLE
- 변경 5파일 전부 webapp-only(src/lib·src/components/composite·tests/e2e) · **forbidden(server/extension/.github/config·손보 RpPresentation) 무변경**
- tsc 0 · vitest 1088/0(회귀 0) · e2e 케이스 C green
- **육안 대조**: 렌더 스크린샷 ↔ 목업 v2 구조 일치(배너%+게이지·①암/②3담보 손보양식 SVG계단·근거표+합계·각주4). 숫자 차이는 픽스처(N%=데이터 산출, 정상). 겹침 해소 확인.

## 잔여 (회장 소관 — outward/production)
- **머지=코드까지만**. CF Pages 배포 미실행: `source .env.keys && wrangler pages deploy dist --project-name insuro --branch main` (프로덕션 outward → 회장 지시 대기). 참조: [[reference_insuro_webapp_cf_pages_deploy_260803]]
- 관련: [[project_insuro_life_matrix_phaseA_task2880_260731]](생보 life_matrix Phase A/B) · [[project_insuro_pilot_live_roundtrip_260725]]

## 노트
- dev4/vishnu `supervisor-crash-marker.json`(2026-08-03 15:55Z, CRASH_NO_EXIT_CODE)은 dev1 완료(01:03 KST .done)와 무관한 별건 마커. task-2888 산출물/QC는 dev1-team 것이 authoritative.
