# InsuWiki 검토+신뢰도 Phase 1 Week 3: 백필 + 마이그레이션 + 테스트

## 한정승인

## PRD 참조 (필수 읽기)
1. 통합 체크리스트: `/home/jay/workspace/memory/plans/insuwiki/review-trust-system/checklist.md` — Phase 1 Week 3 섹션
2. 계획서: `/home/jay/workspace/memory/plans/insuwiki/review-trust-system/plan.md`
3. InsuWiki 앱: `/home/jay/projects/insuwiki/`
4. Firestore 타입: `/home/jay/projects/insuwiki/nextapp/src/types/firestore.ts`

## 선행 완료
- Week 1 (task-1647.1): 인증 + Custom Claims + Security Rules ✅ 머지완료
- Week 2 (task-1648.1): 상태 머신 + 검토 제도 + 경량 면제 + 감사 로그 ✅ 머지완료

## Week 3 작업 범위

### authorityTier 백필
- TIER_MAP 코드 기준 확정 (regulation=1.5, court_ruling=2, kakao_expert=3.5 등)
- 백필 스크립트 작성 (500건 배치, dry-run 모드 필수)
- sourceType null 문서 처리 (기본값 6 + 수동 분류 목록)
- 백필 완료 확인 (전체 vs 백필 수 비교)

### 점진적 마이그레이션
- 기존 documents에 status 필드 추가 (기본값: 'published')
- reliabilityScores 필드 스키마 추가 (Optional)
- riskLevel 필드 추가 (CF 자동 판정)
- extractedEntities 필드 예약 추가 (Optional, Phase 3 준비)
- entityLinks 필드 예약 추가 (Optional, Phase 3 준비)
- versions/revisions 서브컬렉션 통합 (revisions deprecated)
- 마이그레이션 스크립트 dry-run + 실행
- Python 크롤링 스크립트에 status 기본값 가드 추가

### 통합 테스트
- 역할별 접근 매트릭스 테스트 (4역할 × 12 API = 60+ 케이스)
- 상태 전이 테스트 (12 케이스: 합법+불법 전이) — Week 2에서 34건 작성됨, 통합 레벨 추가
- 동시성 테스트 (Firebase Emulator)
- 자기 검토 금지 테스트 (contributorIds)
- 감사 로그 무결성 테스트
- Custom Claims 발급/갱신 테스트
- 경량 수정 7조건 판정 테스트

### 기존 코드 TypeScript 정리 (task-1649.1 미해결)
- page.tsx 기존 TypeScript 진단 6건 수정 (firebase/firestore 모듈 선언 누락, implicit any)
- deleteDoc, loadingUsers 미사용 변수 제거

## 주의사항
- 마이그레이션 전 반드시 Firestore 스냅샷 백업
- dry-run 모드로 먼저 실행하여 영향 범위 확인
- 기존 문서의 status가 없는 경우 'published'로 기본값 설정 (기존 공개 문서 영향 없음)
- Firebase Emulator Suite로 테스트 (프로덕션 직접 테스트 금지)

## 보고서
`/home/jay/workspace/memory/reports/task-{TASK_ID}.md`