---
task_id: task-2420
type: checklist
scope: task
created: 2026-05-03
updated: 2026-05-03
status: completed
---

# 체크리스트: task-2420

## 진단 단계
- [x] manifest.json 현재 패턴 확인 → mmlfcp 이미 매칭됨
- [x] content.js 호스트 분기 확인 → 하드코딩 `=== "mmlfcp.ohmymanager.com"` 발견
- [x] background.js 검토 → 변경 불필요 확인
- [x] Codex G1 게이트 PASS (high 2건 모두 root cause 재진단으로 해결)

## 구현 단계
- [x] worktree 생성 (`task/task-2420-dev5`)
- [x] `extension/lib/host-matcher.js` 신규 (UMD 형태로 ESM/CJS/global 모두 지원)
- [x] `extension/manifest.json` 와일드카드 변경 (`*://*.ohmymanager.com/*`)
- [x] `extension/manifest.json` content_scripts.js에 `lib/host-matcher.js` 선등록
- [x] `extension/manifest.json` web_accessible_resources matches 와일드카드
- [x] `extension/manifest.json` version bump (0.3.0 → 0.4.0)
- [x] `extension/content.js` 진단 로그 추가 (host + version 콘솔 출력)
- [x] `extension/content.js` 호스트 분기 → `INSURO_HOST_MATCHER.isAllowedOhmyManagerHost(host)` 사용
- [x] `extension/content.js` JWT 미설정/만료 시 사유 console.warn

## 테스트 단계
- [x] `extension/__tests__/host-matching.test.ts` 신규 (19개 시나리오, 요구 5+ 초과)
- [x] mmlfcp.ohmymanager.com PASS
- [x] www.ohmymanager.com PASS
- [x] ohmymanager.com (apex) PASS
- [x] evil-ohmymanager.com (피싱) 차단 확인
- [x] not-ohmymanager.com 차단 확인
- [x] 빈 문자열/null/undefined 차단 확인
- [x] vitest 실행 → 19/19 PASS, 전체 회귀 402/402 PASS

## 검증 단계
- [x] `npm run build` 성공 (11.63s)
- [x] `node --check extension/content.js` PASS
- [x] `node --check extension/lib/host-matcher.js` PASS
- [x] L1 스모크테스트: 빌드 결과 dist 타임스탬프 확인 (2026-05-03 18:27:24)
- [x] L1 스모크테스트: vitest 회귀 테스트 PASS 로그 첨부

## 머지 단계
- [x] worktree commit (5개 micro-commit, main 위 cherry-pick 후 정리)
- [x] PR 생성 (#95)
- [x] Gemini 1차 리뷰: high 3건 + medium 1건 → 모두 fix (ba1eb0a)
- [x] PR #95 머지 완료 (4dceb5f, 2026-05-03 09:43:18 UTC)
- [x] main 빌드 성공 (11.63s, dist 갱신)

## 완료 단계
- [x] 보고서 작성 (`memory/reports/task-2420.md`)
- [x] 3문서 status: completed로 업데이트
- [x] worktree 정리 (.worktrees/task-2420-dev5 제거)
- [ ] finish-task.sh 실행

## 회장 시연 (별도 — 본 task 완료 후 회장 직접)
- [ ] Edge `edge://extensions/`에서 InsuRo Helper 0.4.0 reload
- [ ] https://mmlfcp.ohmymanager.com 접속
- [ ] DevTools Console에 `[InsuRo Helper] content.js loaded on: mmlfcp.ohmymanager.com` 표시 확인
- [ ] 플로팅 버튼 표시 확인 (JWT 유효 시) 또는 `[InsuRo Helper] JWT 미설정` 로그 확인
- [ ] 회장 confirm
