# task-2951 · InsuRo 실손 활성화 Phase A — codex 지적 3건 해소 + 항목별 검증 판정

## 배경 (사실)
- 실손 재작업 **PR #212 origin/main MERGED** (head `1c1bf1c`). 정정 3건: MRI 200→300·plan_type 축·coverage_gap 재분류.
- 현재 **`primary_source_verified` 전부 false** = 고객 자동판정 hard-block(휴면). 어디에도 노출 0.
- **회장 승인 방침**: 활성화는 "일괄 true 금지, **항목별 검증완료분만 선택적 true**".
- codex ↔ ANU 조율에서 지적 3건 도출. **Phase A = 이 지적 해소 + 항목별 검증 판정(값 전환은 Phase B)**.
- repo: `/home/jay/projects/InsuRo`. 근거 = 봉인 OCR 18장(repo 내). 실손 모듈은 런타임 호출자 0 휴면.

## 원칙 (엄수)
- **판정·문서 위주.** `primary_source_verified` 값은 **이번 Phase에서 변경 금지**(Phase B에서 선택 전환).
- 근거 = **봉인 OCR 원문 축자 대조**. 추론·환각 금지. 확인된 것만. 모르면 "보류".
- Surgical. 주변 코드/데이터 값 건드리지 말 것.

## 작업
### 1. MRI 300 독립원천 재확인 (codex 지적)
- KB02+KB11(3세대), KB02+KB13(4세대)이 **진짜 독립 기재**인지 봉인 OCR 원문 대조 — "같은 편집원천의 재수록(2회 반복이 독립증거 아님)" 가능성 판별.
- 300이 **같은 보장차원**(같은 세대·특약·단위·조건)인지. 한도/횟수/연간누적 등 다른 차원 혼입 여부.
- A2=200 이 진짜 단일 셀 오기인지(다른 문맥값 아닌지) 최종 점검.
- 산출: MRI 300 **활성화 가능 / 보류 / 불가** 판정 + 축자 근거.

### 2. plan_type 스키마 고정 (codex 지적)
- `standard / selective / single / null` 의미를 **스키마 수준에서 명문화**(single = "축 있으나 단일값" vs "축 없음" 모호성 제거).
- **평면키 ↔ plan_type 축 우선순위/동기화 규칙 문서화** — 소비측 이중진실원천(같은 레코드 다른 해석) 방지.
- 산출: 스키마 규칙 문서(기존 값 변경 없이 규칙만).

### 3. coverage_gap 4건 재확인 (codex 지적)
- GEN2_STD1/2/3·GEN3 deductible 각각 "**같은 비교축 위의 누락**"인지 "**비교불가한 다른 상품범위**"인지 봉인 OCR로 판별.
- `conflict` vs `coverage_gap` 판정규칙을 **예시 포함 고정** + A1>A2>KB 금지 시 **대안 우선규칙 명문화**(판정 일관성).
- 산출: 4건 각각 재분류 유지/정정 판정 + 근거.

### 4. 항목별 검증 판정 (활성화 게이트)
- 위 1~3 통과 항목만 **"활성화 후보(verified candidate)"** 로 판정. **`primary_source_verified`는 false 유지**(Phase B에서 선택 전환).
- 산출: `memory/reports/task-2951.md` — 항목별 **통과/보류/불가 + 근거 + 활성화 가능 목록**.

## 완료 조건
- `memory/reports/task-2951.md` 리포트 작성.
- `memory/events/task-2951.done` 마커.
- ANU 콜백(envelope only, UTF-8 ≤3900 bytes): task_id·report_path·검증통과 항목 수·보류/불가 수·one-line summary.
- **PR 불필요**(판정·문서 위주). 데이터 값/코드 변경이 실제 필요할 때만 별도 보고 후 PR.