# InsuWiki 승인자 이름 표시 — 전체 로직 파악 + 매핑 수정

## Lv.2 작업

## 문제
InsuWiki 문서 검토 승인 시 승인자가 "Unknown"으로 표시됨.
- jonghyuk.jeon@gmail.com 으로 승인했으나 "Unknown 승인"으로 표시
- 올바르게는 "전종혁 승인"으로 표시되어야 함

## 작업 방향
displayName 하나만 고치는 게 아니라, **"승인자가 누구인지 표시하는 전체 흐름"**을 파악하고 제대로 매핑해야 함.

## 전체 로직 파악 (반드시 이 순서로 확인)

### 1. Firebase Auth 사용자 정보
- `jonghyuk.jeon@gmail.com`의 Firebase Auth 프로필 확인: uid, displayName, photoURL
- 다른 사용자들도 동일 문제가 있는지 확인
- Firebase Admin SDK 사용: `/home/jay/.config/gcloud/service-accounts/insuwiki-j2h-fa603f4f75f5.json`

### 2. Custom Claims
- `/home/jay/projects/insuwiki/scripts/backfill-custom-claims.ts` 확인
- Custom Claims에 name, role 등 어떤 정보가 저장되는지
- 실제 Firestore의 users 컬렉션(또는 동등) 데이터 구조

### 3. Review 승인 코드 플로우
- 사용자가 "승인" 버튼 클릭 시 어떤 API가 호출되는지
- API에서 승인자 정보를 어디서 가져오는지 (Auth? Claims? Firestore?)
- 승인 기록에 어떤 필드가 저장되는지 (reviewerUid? reviewerName? reviewerEmail?)
- **"Unknown"이 되는 정확한 코드 위치** 찾기

### 4. 문서 상세 페이지 렌더링
- 검토 상태 "승인됨" 아래에 승인자 이름을 표시하는 컴포넌트
- 이 컴포넌트가 승인자 정보를 어디서 읽는지
- displayName이 null/undefined일 때 "Unknown"으로 폴백하는 코드 위치

### 5. 수정
위 분석 기반으로:
- 승인 시 이름이 제대로 저장되도록 수정
- Firebase Auth displayName이 없으면 Custom Claims 또는 Firestore user profile에서 가져오도록 폴백 체인 구현
- 기존 "Unknown" 기록 일괄 업데이트 스크립트

## 참조
- InsuWiki nextapp: `/home/jay/projects/insuwiki/nextapp/src/`
- Review 관련: `app/review/`, `hooks/useReviewQueueListener.ts`, `app/docs/[id]/`
- Cloud Functions: `/home/jay/projects/insuwiki/functions/src/`
- Scripts: `/home/jay/projects/insuwiki/scripts/`

## 테스트
- jonghyuk.jeon@gmail.com으로 문서 승인 → "전종혁 승인" 표시
- 다른 테스트 계정으로 승인 → 해당 사용자 이름 표시
- 기존 "Unknown" 기록 → 올바른 이름으로 업데이트

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