# InsuRo 암 담보 grouping taxonomy (제이회장 실무 정의 · 260812)

## ★★★ 최상위 불변 원칙 (260812 회장 verbatim)
**약관·담보 해석은 법조문과 같다. 키워드로 대충 보면 무조건 오판한다. 반드시 담보(특별약관) 단위로 조항 전문을 정독해야 한다.**
- ❌ 금지: 키워드 발췌·이름만 grouping·약관 lazy-fetch·경량파서 (전부 오판 유발 → 폐기)
- ✅ 방식: 약관을 **담보(특별약관) 단위로 분할**(조항번호/목차 경계, 예 삼성 `26-1-N.`) → 각 담보의 **제1조 보장범위~제N조 전문을 AI가 정독** → 세부보장 개수·지급사유·급여/비급여·계열을 조항에서 판단 → taxonomy 매핑. 담보 하나=수 페이지라 담보별 개별 정독으로 토큰 감당.
- 실증: 하이클래스(삼성 p870=급여전액본인부담+비급여)·회복지원금(삼성 p1053=특별약관 1개+세부보장 4개, 암 특정치료 2회이상 지급=치료비 계열)을 **조항 정독으로 정확히 판정**. 반면 task-2937 봇의 키워드 발췌는 담보 구조(세부보장/계열)부터 오판 → 측정치(recall 34.8%/이름grouping 50%/UNKNOWN 18) **전부 무효·폐기**.
- 사고 박제: 봇에게 "키워드 발췌+이름 grouping 측정"을 시킨 태스크 설계 자체가 이 원칙 위반이었음.
- **★★분석 자세 (260812 회장 지시)**: 회장(설계사)이 "뭔가 다를 것"이라 **방향(나침반)**을 주면, AI는 **약관 전체를 체계적·심층적으로 정독해 차이를 스스로 끝까지 규명**한다. 지급 트리거가 표면상 같아 보여도 **보장범위·세부보장 구조·가입 종속성(독립가입 가능 여부)·조건·가입한도·제외·소멸 등 모든 조항을 대조**한다. **"못 찾겠다/알려달라"로 물러서는 것 금지**. (반성: 치료비지원Ⅱ=특정치료비 특약 세부보장→독립가입 불가를, 조항의 "총 4개 세부보장"을 보고도 함의를 심층분석 못 해 회장이 짚어야 했음.) 회장 경험=나침반 / AI 심층정독=규명.

## 위상
증권분석/신규설계 최적화 프로젝트의 **grouping 정답 그룹**. AI가 각 회사·상품 약관의 담보를 읽고 **이 그룹 중 어디에 해당하는지 판단**하는 기준. (축을 AI가 발명하는 게 아니라, 회장 실무 taxonomy에 담보를 매핑) 관련: [[project_insuro_composite_design_ai]] · CRM 통화평가 mock 건과 별개의 신규 기능.

## 배경 실증 (약관 3건)
- 메리츠 The좋은내Mom대로(세만기 아님, 2607): **세분형** — 표적/면역/중입자/양성자/세기조절 항암치료비 각각 별도 정액. 통합형 없음.
- 메리츠 통합간편건강보험(세만기형 2607): **통합형 있음** — 암 주요치료비(연1회한·10년간), 비급여 암 주요치료비(전액본인부담), 상급종합병원·국립암센터 통합암 주요치료비, 매월 계속암치료비, 2대질환 주요치료비(체증형).
- 삼성 New내돈내삼(16402601): **통합형** — 암 진단 후 암 특정치료비(진단후 10년, 연간1회, 수술·약물·방사선 무엇이든 통합).
- ★결론: **같은 회사도 상품마다 세분/통합 다름 → 지식DB는 "상품(약관) 단위"**. 담보명 다르지만 실질 같으면 매칭(삼성 암특정치료비 ↔ 메리츠 암주요치료비).
- ★메리츠 암통합치료비(기본형)=**검사(MRI/PET/CT/유전자)+주요치료+비급여+통증완화+재활 통합**(치료비5). 암통합치료비Ⅱ(비급여 전액본인부담)=**비급여통합치료비**. ★★**검사가 통합치료비 담보의 "항목"**(회사별로 검사를 별개 담보 vs 통합치료비 항목으로 다르게 둠 — 봇 "검사비=UNKNOWN" 오판 근거) → 정독 필수. 삼성 통합치료비보다 메리츠가 검사·통증완화·재활까지 광범위 → 보장분석 coarse 같은그룹 / 신규설계 fine 커버범위 조언.
- ★메리츠 "암 주요치료비"=암구분별(소액/소화기/15대/10대/4대고액 6구분) 세부보장, "주요치료 받으면" 지급 → 이름은 주요치료비이나 회장 taxonomy 주요치료비(항목별)와 다름. 보장분석 같은그룹/신규설계 암구분 커버범위 조언. 메리츠 "매월계속암치료비"=계속암 진단시 매월1년 분할 지급 → **치료비**(지급형태 매월=치료비, 트리거 진단이어도).
- ★약관 처리: 통째 불가(871~1767p, 167만~347만자, 토큰 한계 8배+). 담보 키워드로 조항 발췌→AI에. 텍스트레이어 살아있음(OCR 불요, pymupdf).

## ★ 암 담보 grouping taxonomy (회장 verbatim)

### 진단비
1. **암진단비(유사암제외) + 유사암진단비**
2. **통합암진단비** — 몸을 X개 그룹으로 나눠 해당 그룹에 맞춰 진단비 각각 지급
3. **신재진단암진단비** — 1년에 한 번씩 잔여/신규원발/전이 암 발견 시 진단비 지급
4. **N번받는 암진단비** — 위 1번 + 3번 개념 결합

### 치료비 (급여+비급여 상관없이)
1. **암특정치료비(정액)** — 주요치료를 받으면 가입금액 지급
2. **암특정치료비(비례)** — 1억 한도, 1천만원 단위로 지급
3. **암주요치료비** — 수술/항암약물/방사선/중환자실 **각 항목별로** 가입금액 지급
4. **암직접치료비** — 1번과 비슷하나 **호르몬치료까지 포함**, 치료를 받기만 하면 가입한도 지급
5. **암통합치료비** — 3번과 비슷하나 **1년간 받을 수 있는 한도를 정해놓고 그 한도 내에서 계속** 지급

### 치료비 (only 급여 중 본인전액부담액 + 비급여)
1. 위 치료비 2번(비례)과 유사 구조 — 수술/항암약물/방사선/중환자실 **각 가입한도 존재** = 보통 **"하이클래스"** 명칭
2. 위 치료비 5번(통합)과 유사 구조 = **비급여통합치료비**
3. **비급여만 cover** 되는 회사/담보가 있을 수 있으니 구분 필요

## 매핑 판단 축 (taxonomy에서 도출)
- 대분류: 진단비 vs 치료비
- 치료비 판정 키: (a)지급방식 정액/비례 (b)트리거 "주요치료 받으면"(특정) vs "항목별 각각"(주요) vs "받기만 하면+호르몬"(직접) vs "연간한도 내 계속"(통합) (c)급여범위 전체 vs 급여본인전액+비급여전용(하이클래스/비급여통합)
- 진단비 판정 키: 단일 vs 부위그룹별(통합) vs 재진단반복(신재진단) vs 결합(N번받는)
- **★가입 독립성 축 (260812 실증)**: 독립 특약 vs **세부보장 종속**(단독가입 불가 — 예: 삼성 치료비지원Ⅱ는 특정치료비 특약 세부보장이라 특정치료비 없이 못 삼). 지급 트리거가 같아도 가입구조로 구분됨. → **설계사 경험("뭔가 다르다")+AI 정독("어떻게 다른지 조항 규명")의 협업 산물**. 이 협업이 이 프로젝트의 신뢰 구조.
- **★★지급 형태 축 = 진단비 vs 치료비 판별 (260812 회장)**: **진단비 = 진단 시 "최초 1회한 일괄"**("진단했으니 목돈 드림"). N번받는 진단비 = 재진단마다 **매년 1회한 일괄**. **치료비 = 매월 분할 등**(예: 메리츠 매월계속암치료비 = 진단이 트리거여도 목돈을 **매월 쪼개 지급**→치료기간 지원=**치료비로 그루핑**). ★**지급 트리거가 진단이어도, 1회 일괄이면 진단비 / 매월 분할이면 치료비.** (∴ 매월계속암치료비=치료비, 앞선 "진단비" 판정 정정)

## 보강 (260812 회장 추가)

### 치료비 세분형 그룹 (별도)
- 표적항암약물 / 특정면역항암약물 / 항암중입자방사선 / 항암양성자방사선 / 항암세기조절방사선 등 **치료방식별 개별 담보**를 "아예 하나하나 따로따로 준비"하는 형태 = **별도 grouping**.
- ★**비교 필수**: 세분형(개별 담보들의 조합) ↔ **치료비 3 「암주요치료비(수술/항암약물/방사선/중환자실 항목별)」** 와 반드시 비교. (같은 항암보장을 세분으로 다 준비 vs 주요치료비 하나로 묶음 — 커버리지·보험료 대조가 신규설계 최적화의 핵심)

### AI 애매 시 → 설계사 질문으로 최종 grouping (human-in-the-loop)
- 나머지 담보는 **회사별 표현 방식이 조금씩 달라 AI 자동 grouping이 어려울 수 있음** → **설계사에게 clarifying question**("이 담보[약관 실질 요약]는 어느 그룹으로 볼까요?")으로 **최종 그루핑 확정**.
- 설계사 판단 = 지식으로 축적(공유/개인). 질문 자체가 설계사에게 "이런 고려요소가 있다"는 **교육 효과**(회장 비전: 부족한 설계사도 틀이 교육이 됨).
- 워크플로우: **AI = 확실한 것 자동 분류 / 애매한 것은 설계사 위임 확정**. (Codex 권고 "AI 제안 + 설계사 승인" 하이브리드와 일치)

## 결과 output 양식 (insuro.biz/crm/policy-analysis · 실물 "가입현황" 260115 기준)
- 증권 PDF 여러 장 업로드 → 담보 추출·grouping → **가입현황 표** 생성 → **1~2장 보기좋게 프린트** 가능.
- ★**대구분 순서 고정(변경 금지)**: 실손 → 진단비 → 치료비 → 수술비 → 일당 → 장애 → 요양 → 사망 → 운전 → 생활. (**세부 항목은 조금 변경 가능**)
- 열 구성: 담보(대구분+세부) | **권장가입금액 합계** | 회사별 증권 각각(상품명·가입연월·납입기한/만기·보험료·납입잔여개월). 셀값=가입금액(만원), 없으면 "-".
- 하단: **(리모델링 방향성)** 코멘트.
- 기존 `policy_analyzer` DEFAULT_COVERAGES 카테고리(실손/진단/치료/수술/일당/장애/기타)와 일치 → 재사용, 요양/사망/운전/생활로 확장.
- ★★**taxonomy grouping의 목적 = 이 표의 칸을 채우는 것**. 특히 "치료비 > 암치료비(정액/비례/비급여본인부담)" 칸에, 각 증권의 가지각색 암 치료비 담보를 위 taxonomy로 grouping해 배치. "세부 변경 가능" = taxonomy 정교화 시 치료비 칸이 세분 확장(특정정액/특정비례/주요/직접/통합/하이클래스/비급여통합/세분형).

## ★ 두 output은 별개 양식 (구분 필수)
1. **보장분석** (위 "가입현황" 강연우 양식) = **현재 고객이 가진 보험 진단/분석**. 대구분 순서 고정, 가입금액, 권장 대비, 리모델링 코멘트, 1~2장 프린트.
2. **신규설계 비교분석** (예시 "설계 비교분석" 260) = **신규 설계까지 고려한 가성비 비교**. 더 세부적, 별도 양식.
- ★★★**grouping 입도가 output별로 다름 (260812 회장 verbatim)**:
  - **보장분석 = coarse(굵게 묶음)** — 고객은 세부 차이를 99% 인지 못하므로 특정치료비 Ⅱ/Ⅲ·병원조건(종합병원/상급종합병원) 등 세부 차이를 **동일 카테고리로 묶어** 보여준다.
  - **신규설계 = fine(세밀 구분) + AI 조언** — 설계사 최적 선택 위해 Ⅱ/Ⅲ 지급방식 차이(연1회 vs 수술1회당)·병원조건을 **무조건 구분하고, AI가 그 차이를 설계사에게 조언**한다.
  - 즉 같은 담보라도 두 output에서 grouping 입도가 다르다. 정독 결과는 fine 단위로 저장하되 보장분석 표시는 coarse로 집계.

## 결과 output 2 — 신규설계 비교분석 양식
- 구조: 담보 **극세분**(치료비 taxonomy 전부 행으로: 암주요치료비(상급)/유사암주요/암특정치료비(항목별연간1회)/암통합치료비(상급·암중점)/비급여암치료비/암진단및치료비(비급여)/26종항암방사선약물/항암방사선/항암약물/항암호르몬/양성자/세기조절/중입자/표적(비급여)/면역(비급여)/항암방사선(비급여) …) × 회사별 **[한도 | 보험료 | 비고]** 3열 + 합계 보험료.
- 비고 예: "수/방/약750+비급여750", "한도1억", "카티(20년갱신)", "1순위/2순위(최소한방어)".
- ★**신규설계 최적화 워크플로우 (회장 verbatim)**:
  1. **보험료 금액 기준 가성비 회사** 찾기.
  2. **기존 준비 담보**: 앞으로 낼 **잔여보험료 vs 신규가입 앞으로 낼 보험료** 비교 → 유리한 곳 선택. **★동일 가입한도 기준** 비교.
  3. **설계사 최종 선택 토글창** (무조건 저렴한 회사만 택하지 않을 때가 있음).
  4. 신규설계안 업로드 = **최대 가입한도 기준** 가능성.
  5. 설계사 flow: 회사별 **최대가입한도별 보험료** 1차 → **단위 가입한도당 보험료** 비교 → **필요 가입한도** 고려 최적안.
- ★★**AI 범위 = 1차 보험료 가성비 비교까지만.** 2차(설계사별 수수료/시책/시상 구간 맞추기)는 **AI 분석 불가**(매주 바뀌고 설계사별 상황 제각각) → 순수 설계사 몫. AI는 계산 가능한 것(가성비·잔여vs신규·비례재계산)만, 시장변동/주관은 설계사.
- ★**잔여보험료 vs 신규보험료 비교 = 필수** (기존 담보 유지 vs 신규 가입 판단, 동일 가입한도 환산).
- **설계사 선택 토글(최종결정) + 가입한도 변경 기능**: 설계사가 한도 수정 시 → **단위한도당 보험료 비례로 자동 재계산**해 표시.
- taxonomy grouping = 이 표의 세분 치료비 행을 각 회사 담보로 채우고, **동일한도 환산 비교**를 가능케 하는 전제.

## 추가 확정 스펙 (260812 회장)
- **입력 소스**: PDF + **JPG(증권 사진)**. ★JPG=이미지→**vision LLM(멀티모달)로 직접 판독**(전통 OCR보다 정확, Opus급=유료플랜 차별화). 단 100%는 아님→**설계사 검수·수정 단계 필수**(원본 이미지 옆 추출값 나란히, 고객 대면이라 숫자 오독 치명). 텔레그램 아닌 **인슈로 UI 페이지**에서 업로드. 오마이매니저→인슈로 전송=첫 고객 브리핑 자료용만, 보장/설계 분석엔 **미사용**.
- **권장가입금액 설정**: 담보별 **단일값**(MVP). 2계층 — 관리자(회장) **일괄 기본값** + 개별 설계사 **개인 오버라이드**. 프로파일별(나이/성별/가족/직업/재산)은 실현성 불확실→**나중**. (판정 적정/부족/충분 기준)
- **리모델링 코멘트**: **AI 1차 생성 + 설계사 수정 최종** 확정.
- **결과 노출**: 보장분석=**고객에게도 공개**(→★고지 **최하단 작은 글씨 필수**: "참고용, 정확한 보장은 약관 기준") / 신규설계안 분석=**설계사 전용**.
- **즉석분석 없음**: 약관 처리 백그라운드 수분 → 설계사가 **미리 분석해두고 고객 대면**하는 워크플로우.
- **모델 티어**: 유료 플랜=Opus급 vision 등 고급 모델 차별화.
- **여러 증권 병합**: 한 고객이 여러 회사 증권(PDF/JPG 여러 장) 업로드→**한 표 병합**, 회사별 열 자동, **같은 담보 합산**(권장금액 대비 판정).
- **★학습 루프(플라이휠)**: 설계사의 (a)vision 추출 오독 수정 (b)애매 grouping 확정 = 그대로 **지식DB 축적**. 검수/수정=학습. 회장 초반 비전 "쓸수록 똑똑한 brain DB/InsuWiki" 실현.
- **결과 전달**: **프린트 + PDF 다운로드**까지만 (카톡/링크 전송 없음).

## R1/R2/R3 최종 결정 (260812 회장)
- **R1 재계산 = 선형 확정**. 회장 정정: **동일 피보험자·동일 담보에서 가입금액 한도만 조정**하면 `보험료=요율(연령·성별 고정=상수)×가입금액`이라 **선형**. 페르소나/Codex의 "비선형" 우려는 연령변경·신규설계 시나리오라 무관. 단 **경계 처리만**: 최소가입단위(예: 1천만원 단위) 반올림·가입한도 상한. → `composite_calculate_from_matrix` 선형환산 그대로 재사용.
- **R2 = AI 1차 grouping 판단자 채택 + 출력창에서 설계사 drag(위아래) 조정**. 로키의 "근거뷰어 격하"는 미채택하되, **설계사 drag 재배치로 오분류 방어** + AI는 근거조항 인용. drag 수정 = 학습 루프로 축적.
- **R3 = 과설계 금지(회장 판단)**. 전면 PII/저작권 방어선을 지금 구축하지 않음. **최소 위생만**: (a) vision/AI는 **무학습 경로(아누시스템)** 사용([[feedback_insuro_crm_ai_eval_mock_p0_2_pii_server_claude_260810]] P0-2 정립) (b) 증권 저장은 **기존 InsuRo 개인정보 체계** 준수(이미 CRM이 고객데이터 처리). 나머지(마스킹 강제·약관 저작권 정식검토)는 **실제 테스트하며 문제 소지 보이면 대응**. 로키 경고는 레드팀 최악시나리오로 기록만.

## ★ 데이터 아키텍처 명확화 (260812 회장 "학습 애매" 질문 해소)
- **"학습"의 정확한 의미 = 우리 지식DB에 grouping 결과가 쌓이는 것**(AI 모델 재학습이 절대 아님).
- **아누시스템(claude)** = grouping 판정·vision 추출 **도구**일 뿐. **모델을 학습하지 않음**(무학습·stateless, 매번 약관 읽고 제안만 반환). P0-2 무학습 경로.
- **진짜 축적처 = InsuRo 공유 지식DB(우리 것)**. 설계사가 검수·확정한 grouping(담보→그룹 매핑, 약관 실질 근거)이 여기 쌓임.
- **하나의 공유 지식DB → 인슈로(분석 도구) + 인슈위키(구성원 열람) 양쪽이 참조**. 담보 실질 지식=공유 / 설계사 철학(권장금액 오버라이드 등)=개인(인슈로만).
- 흐름: `업로드(증권+약관) → 아누시스템 판정(무학습) → 설계사 검수·확정 → InsuRo 지식DB 축적 → 인슈로+인슈위키 공용`.
- **★파일 vs DB 분리 (회장 우려 해소)**: 약관 원본 PDF(20MB 내외)는 **DB에 넣지 않음**. 지식DB(Supabase Postgres)엔 **작은 구조화 데이터만** = 담보→그룹 매핑 + **발췌한 암담보 조항 텍스트(수 KB)** + 페이지 참조. 약관 원본 파일은 (a)처리 후 삭제 또는 (b)기존 Google Drive(대용량 인프라). **필요한 건 암 담보 관련 발췌 조항뿐 → 20MB→수 KB로 저작권·용량 동시 해결**(원문 통째 저장/재배포 회피).
- 지식DB 위치: 생산처=인슈로니 **InsuRo Supabase에 원본 1곳**, 인슈위키는 조회 API(권고) 또는 기존 push(main.py:6419 패턴). 단일 원천.

## 파일 저장 규칙 (Google Drive, 260812 회장 확정)
### 약관 파일 (공유 지식 원천, 계속 보관)
- 경로: `/policy_terms/{손보|생보}/{보험사}/{상품코드}/{판매개시일}/terms.pdf`
- **버전 식별 = 표지 추출(논리키) + sha256(물리 dedupe)**: 약관 표지 첫 페이지에서 회사·상품명·상품코드·판매개시일·판매버전·약관번호 추출(실증: 메리츠 표지 p1에 "판매개시 2026.7.13 / 판매버전 2.0 / 장기약관 제2026-7호 / 상품 2607"). 표지 메타=폴더 경로, sha256=파일 동일성/개정판 판별(표지 같아도 sha 다르면=오탈자수정판 등 새 버전 별도 보관). 표지 파싱=vision(첫 1p라 정확·Phase 0 검증).
- **dedupe**: 같은 sha256이면 재저장 안 함(설계사 N명이 같은 약관 올려도 1개).
- 손보/생보 **최상위 구분**(회사/표지로 판별). 접근=내부 전용(저작권)+서버 프록시.
- DB `product_master`: 회사/상품코드/effective_date/판매버전/약관번호/sha256/drive_file_id.
### 증권·제안서 파일 (고객 PII, 고객 이력 보관 · 설계사 탈퇴 시 삭제)
- 경로: `/policies/{설계사id}/{고객id}/{업로드일}_{보험사}_{sha}.pdf`
- 비공개(P0-1 Drive 비공개→서버 프록시, 등급별 IDOR 인가). 소유 설계사+고객만.
### 공통
- 파일명=해시/ID 기반(한글·특수문자 회피), 표시명=DB 메타. DB엔 drive_file_id만(P0-1 체계 정합).

## 사업·운영·개정 (260812 브레인스토밍 2차)
- **Cold start**: grouping 씨앗 = 회장 제공 taxonomy 예시. **회장이 먼저 테스트 후 오픈**.
- **규제**: 고객에게 보여주는 보장분석은 **원수사(보험사) 공식 프로그램으로 이미 하는 관행** → 문제없음. (신규설계 비교는 설계사 전용이라 별개)
- **사용자 범위**: 초기=**회장 조직 전용**, 나중=**타 대리점 유료 플랜 판매** → 멀티테넌시(조직별 격리)는 나중 확장.
- **담보군 우선순위**: 암 → **순환계 치료비(뇌·심장, 최근 발전 활발)** → 운전자보험(자주 개정).
- **★담보 공유 (중요 아키텍처)**: 회사별로 **상품은 달라도 담보(약관)를 공유·재활용**하는 경우 있음. 담보가 바뀌면 기존 동일상품 약관도 개정본 나옴. → 지식DB는 담보 canonical을 **상품 넘어 공유**(product↔coverage 다대다), 담보 개정=canonical 버전 up→참조 상품 반영. (오딘 canonical/provenance/버전 정합)
- **약관 개정 추적**: AI 자동 개정 감지는 불가 → **기존 DB 대비 "신규 여부"만 판별** 가능. Best=AI가 **담보 변경점 diff("이번 약관에서 이렇게 바뀌었다")** 미리 알려주기.
- **오류 fallback**: 약관 전체 수동입력 불가. **증권 분석 = OPUS로 최대 OCR → 결과 표시 → 설계사가 직접 확인·수정** flow.

## 운영 원칙
- 축을 미리 고정하지 말 것 — 회사마다 묶고 쪼개는 방식이 극도로 다양(한 담보가 여러 치료 커버 vs 나눔=N:M). 약관을 더 쌓아 AI가 실질 추출 → 이 taxonomy에 매핑, 애매 건은 human 검수.
- AI가 약관 조항 읽고 위 그룹으로 분류 → 담보→그룹 매핑 축적(공유 지식). 설계사 철학/판정기준은 개인.
