---
task_id: task-2429
type: plan
scope: task
created: 2026-05-03
updated: 2026-05-03
status: completed
---

# 계획서: task-2429 — InsuRo Extension mmlfcp silent fail trace + fix

**task**: task-2429
**목표**: mmlfcp.ohmymanager.com에서 매트릭스 탐지 실패 시 어느 단계에서 fail했는지 회장 F12 콘솔에 명확히 표시 + silent fail 제거
**승인**: 회장 2026-05-03 "동일 에러, 강제새로고침 했지만 동일"
**근거**: `/home/jay/workspace/memory/tasks/task-2429.md`, 회장 Edge F12 캡처

---

## 핵심 사실 (revert 정정)

- task-2423 PR #96은 회장이 직접 **revert**(commit f64bcb1, 2026-05-03 19:54) → main에는 mmlfcp 셀렉터 없음
- 회장 F12 캡처 = revert **이전** 시점의 검증 → 셀렉터 3개(#companyInfo, #bojang_lists, #premium_lists) 실 DOM 존재 사실은 유효
- 본 task는 task-2423 셀렉터를 **다시 적용** + **silent fail trace** + **단계별 alert 메시지** 보강

## 목표

1. mmlfcp 페이지에서 플로팅 버튼 클릭 → 매트릭스 정상 캡처 (Best case)
2. 실패 시 alert에 어느 단계에서 fail했는지 표시 (Worst case, 회장에 명확한 단서)
3. F12 콘솔에 `[InsuRo Helper Trace]` prefix 단계별 로그 출력
4. JWT 만료 정책 #10 보존 (Chrome/Edge 회귀 0)
5. 회귀 테스트 5+ 시나리오 (vitest)

## 범위

### 포함
- `extension/content.js`: task-2423 mmlfcp 셀렉터 부활 + Trace 로그 + 단계별 alert 메시지
- `extension/__tests__/matrix-detection.test.ts`: vitest 회귀 (task-2423의 테스트 부활 + trace 검증)
- `extension/__tests__/fixtures/mmlfcp-real-dom.html`: 회장 F12 캡처 기반 실 DOM fixture
- 빌드 + 회장 Edge 시연 가이드

### 제외
- `extension/manifest.json` 변경 금지 (task-2420 완료)
- `extension/background.js` 변경 금지
- server/, src/pages/* 변경 금지
- Trace 로그 제거 (cleanup PR은 별도 task로)

## 위임 계획

- Phase 1 (구현): **엔키(백엔드)** — content.js mmlfcp 셀렉터 부활 + Trace 로그 + 단계별 alert
- Phase 2 (테스트): **닌기르수(테스터)** — fixture 작성 + matrix-detection.test.ts 부활 + trace 시나리오
- Phase 3 (검증): **마르둑(팀장)** — 빌드 + L1 스모크 + Gemini PR 리뷰 대응

## 검증 기준

- `npx vitest run extension/__tests__/matrix-detection.test.ts` → PASS (5+ 시나리오)
- `npx vitest run extension/__tests__/host-matching.test.ts` → 회귀 PASS
- `cd /home/jay/projects/InsuRo && npm run build` → 빌드 성공
- mmlfcp fixture 시뮬레이션 → 매트릭스 객체 반환
- silent fail fixture(셀렉터 OK + 셀 0개) → alert 메시지에 "premium_lists 셀 0건" 명시
- L1: vitest PASS + 빌드 성공 (실 브라우저 E2E는 회장 Edge 시연 가이드 첨부)
