---
task_id: task-2333
type: checklist
scope: task
created: 2026-04-30
updated: 2026-04-30
status: completed
---

# 체크리스트: task-2333 — InsuRo 복합설계 AI 계산기 Phase 1

---

## Step 1-2: DB + 시드 (Lugh)

- [x] 009_composite_design_tables.sql + idx_ohmy_prem_active 부분 unique 인덱스
- [x] ohmy_plans.json (1개 placeholder)
- [x] ohmy_target_coverages.json (32개 실 coverage_cd 매핑)
- [x] DB 적재 (status=201, count=32 확인)

## Step 3: 수집 스크립트 (Lugh)

- [x] ohmy_premium_collector.py — 포아송 9분, 3패턴, circuit breaker, UPSERT, 체크포인트
- [x] 실제 응답 구조 반영 (coverage_premiums[].detailList[])
- [x] --ignore-window 옵션
- [x] 1건 실 수집 → ohmy_premiums 누적 561행

## Step 4: 계산 엔진 (Lugh)

- [x] composite_calculator.py — 1/2/3사 + 1만원 제약 + 비례 환산
- [x] 단위 테스트 11/11 PASS
- [x] 3사 0원 배분 버그 수정 + 회귀 테스트

## Step 5: API 엔드포인트 (Lugh)

- [x] GET /composite-coverages, GET /composite-plans, POST /composite-calculate
- [x] _verify_incar_member 인카 가드 (INCA_ORG_ID env)
- [x] Pydantic 모델 정의
- [x] TestClient 401 인증 가드 검증

## Step 6: 프론트엔드 (Brigid)

- [x] CompositeDesign.tsx 신규 (인카 가드 + 폼 + 3열 결과 카드 + 면책)
- [x] routes.ts + navigationConfig.ts 갱신
- [x] npm run build PASS (CompositeDesign 청크 생성)

## Step 7: 검증 (Dagda)

- [x] 5테이블 + 인덱스 존재
- [x] 계산기 실 DB 검증 (1사=145,938원 / 3사=None 정상)
- [x] API TestClient 401
- [x] Playwright: /composite-design → /login 리다이렉트 (스크린샷)
