---
task_id: task-2349
type: checklist
scope: task
created: 2026-05-02
updated: 2026-05-02
status: completed
---

# 체크리스트: task-2349

**task**: task-2349

---

## Phase 1 — 확장 동적 감지 (스바로그)

- [x] A. `extension/content.js`: DOM 마커(`document.documentElement.dataset.insuroHelper = version`) 즉시 주입
- [x] B. `extension/content.js`: `window.postMessage({type:"INSURO_HELPER_HELLO", version, capabilities})` 발신
- [x] C. `extension/content.js`: `SET_INSURO_JWT` postMessage 수신 → background로 forward
- [x] D. `extension/manifest.json`: content_scripts matches에 insuro.biz / localhost:5173 추가, ohmymanager 분기 유지 (+ version 0.2.0 bump)
- [x] E. `src/lib/extensionBridge.ts`: EXT_ID 의존 제거, DOM 마커 우선 + postMessage 폴백 1.5s
- [x] F. `src/lib/extensionBridge.ts`: setInsuroJwt를 postMessage(`SET_INSURO_JWT`) 방식으로 재구현
- [x] G. (페룬 직접) `extension/background.js`: onMessage SET_INSURO_JWT 핸들러 추가 (content.js 릴레이 갭 패치)

## Phase 2 — UI 재설계 (라다 + 모코시)

- [x] A. `src/pages/CompositeDesign.tsx`: 입력 폼(성별/나이/보종/플랜/담보 체크/계산 버튼) 제거
- [x] B. 단계 A 안내 카드 (확장 미설치 — 설치 가이드 버튼만)
- [x] C. 단계 B 안내 카드 (확장 설치, 캡처 0건 — ohmymanager 열기 외부 링크)
- [x] D. 단계 C — 최근 캡처 카드 목록(플랜명/나이/성별/캡처 시각)
- [x] E. 캡처 클릭 시 자동 composite-calculate 호출 + 1사/2사/3사 카드 표시
- [x] F. 인라인 보장 체크박스(분석 포함/제외) → 즉시 재계산
- [x] G. UX 카피: 빈 상태 + 확장 미설치 안내 문구 spec 그대로 적용 (모코시 별도 호출 없이 라다가 반영)

## 검증 (벨레스/페룬)

- [x] L1: `npm run build` PASS (15.75s)
- [~] L1: 확장 미설치 — 단계 A 안내만 표시 (코드 인스펙션 PASS, 인증 페이지로 봇에서 직접 시연 불가 → 운영 권고)
- [~] L1: 확장 설치 + 캡처 0건 — 단계 B 안내 표시 (코드 인스펙션 PASS)
- [~] L1: 확장 설치 + 캡처 ≥1건 — 캡처 카드 클릭 → 1사/2사/3사 표시 (코드 인스펙션 PASS)
- [x] L1: dev 서버 진입 시 콘솔 에러 0건
- [x] L2: pingExtension DOM 마커 동기 감지 / postMessage 폴백 동작 — 코드 인스펙션 PASS
- [x] tsc --noEmit 에러 0건
- [x] 최종 보고서 `memory/reports/task-2349.md` + `memory/reports/insuro-composite-uxv2.md` 작성
