# task-1956: 인슈로 Phase 1 — 기반 안정화 전체 구현

## 배경
인슈로 3문서 Phase 0 완료(task-1955). Phase 1 진행.

## ★ 반드시 먼저 읽을 파일 ★
1. `memory/plans/insuro-system/checklist.md` — Phase 1 섹션
2. `memory/plans/insuro-system/plan.md` — Phase 1 상세
3. `memory/research/insuro-page-audit.md` — 전수조사

## 프로젝트 경로
- `/home/jay/projects/InsuRo/`

## 구현 항목

### 독립 작업 (병렬 가능)
1. **M1**: Supabase 5개 테이블 타입 보완 — types.ts — Lv.2
2. **M2**: 월 필터 동적화 — MarketNewsletter.tsx, PremiumComparison.tsx — Lv.1
3. **M3**: AI 호출 방식 통일 (subprocess→CLI, ★API 직접 호출 금지) — server/ai_parser.py — Lv.2
4. **M4**: Naver API CORS 프록시 — server/main.py, KeywordAnalysis.tsx — Lv.2
5. **H6**: DigitalNamecard 상담 CTA 실동작 — DigitalNamecard.tsx — Lv.1
6. **OB-2**: Empty State 제거 (온보딩 진입) — Lv.1
7. **OB-3**: onboarding_step ENUM 컬럼 추가 — Lv.1

### 순차 작업 (의존성 있음)
8. **M6**: `as any` 캐스트 정리 — 의존: M1 완료 후
9. **H7**: /api/ai/generate 스텁 해소 — 의존: M3 완료 후
10. **OB-1**: 온보딩 위자드 3단계 UI — Lv.2

### 테스트
11. **T1**: 30개 라우트 스모크 테스트 스위트 구축 — Lv.2

## ★★★ 절대 규칙 ★★★
- API 직접 호출 금지 — LLM 호출은 CLI만 사용
- premiumOnly 미완성 디자인 절대 건드리지 말 것

## Phase 1 게이트
- G1-1: tsc 타입 에러 0건
- G1-2: `as any` 신규 추가 0건
- G1-3: CORS 테스트 통과
- G1-4: 30개 라우트 스모크 테스트 통과

## 검증 시나리오
1. types.ts 5개 테이블 타입 추가 후 tsc 0 errors
2. 월 필터 → 동적으로 현재 월 기준 표시
3. AI 호출 → CLI 방식으로 통일 확인
4. Naver API → CORS 없이 프록시 경유 동작
5. 디지털 명함 → 상담 CTA 클릭 시 실제 동작
6. 온보딩 위자드 3단계 UI 표시
7. 전체 30개 라우트 스모크 테스트 PASS

## 레벨
- critical (기반 안정화)

## 프로젝트
- insuro