# task-1688.1 완료 보고서 — InsuWiki 서비스 피드백 6건 수정

> 팀: dev4-team | 팀장: 비슈누 | 작성일: 2026-04-12

---

## SCQA

**S**: InsuWiki Phase 1~3 배포 후 제이회장님이 직접 검수하여 버그 2건, 기능 방향 수정 2건, UX 수정 2건 총 6건의 피드백을 주셨다.

**C**: 단톡방 원문이 사라지고, 수집일이 표시되지 않으며, AI 추천 관련 문서에서 404 링크가 노출되고, 발행된 문서에 불필요한 검토 버튼이 표시되는 등 사용자 경험에 직접적인 문제가 있다.

**Q**: 6건의 피드백을 모두 수정하여 제이회장님의 검수 기준을 통과할 수 있는가?

**A**: 6건 중 5건을 코드 수정으로 해결 완료. Issue 5(검토 아이콘 대시보드 insight 연동)는 UI 개선(GlobalHeader/뒤로가기/Review 텍스트)을 완료했으나, 데이터 소스 변경(대시보드 wiki 엔트리 → Firestore 동기화)은 대시보드 server.py 수정이 필요하여 별도 작업 필요. 수정 파일 5개, TSC 신규 에러 0건.

---

## 수정 상세

### 1. [버그] 단톡방 원문 복원 — 완료
- `DocumentClient.tsx`: QnaRenderer 하단에 접이식 `KakaoRawSection` 컴포넌트 추가
- `document.content`에서 `"(원본)"` 마커 이후 텍스트 추출하여 "단톡방 원문 보기" 접이식 섹션으로 표시
- 마커 없으면 미표시

### 2. [버그] 수집일 미표시 — 완료
- `DocumentClient.tsx` line 629~631: `collectedAt` 렌더링에 string/Timestamp 양쪽 분기 처리
- 대시보드 sync가 plain string으로 저장하므로 `typeof === 'string'` 체크 추가

### 3. [기능 수정] AI 추천 관련 문서 + 용어 매칭 분리 — 완료
- `RelatedDocsSidebar.tsx`: 단일 suggestions 배열을 `docSuggestions`(method!='static') + `termSuggestions`(method=='static')으로 분리
- A섹션 "AI 추천 관련 문서": Firestore `getDoc`으로 targetDocId 존재 확인, 실존 문서만 표시 (violet 테마)
- B섹션 "보험 용어 매칭": 새 `TermMatchCard` 컴포넌트, Link 제거(클릭 이동 없음), amber 테마

### 4. [UX 수정] 검토 상태 버튼 매핑 — 완료
- `InlineReviewPanel.tsx`: `status === 'published' || status === 'approved'`일 때 `ReviewActions` 숨김
- 검토 버튼은 draft/in_review/rejected/revision_requested/needs_re_review 상태에서만 표시

### 5. [기능 방향 수정] 검토 아이콘 — 부분 완료
**완료된 부분 (UI 개선):**
- `review/page.tsx`: GlobalHeader 추가 + "← 이전으로" 뒤로가기 버튼 + 제목 "검토 대기열 (인슈위키 Insights)"
- `GlobalHeader.tsx`: 검토 아이콘 옆 "Review" 텍스트 추가, badge 위치 조정

**미완료 (범위 외 — 대시보드 수정 필요):**
- 데이터 소스 변경: 현재 `documents` 컬렉션 → `wiki` 컬렉션 기반으로 전환 필요
- 대시보드 server.py가 draft 상태 wiki 엔트리를 Firestore에 동기화해야 InsuWiki에서 조회 가능
- 양방향 연동: InsuWiki 승인 → 대시보드 API 호출 필요 (DASHBOARD_API_URL 환경변수 미설정)
- **별도 task로 대시보드 팀과 협업 필요**

### 6. [UX 수정] 하단 그래프 통합 — 완료
- Issue 3의 B섹션 "보험 용어 매칭"으로 통합 (RelatedDocsSidebar 분리 시 자동 해결)

---

## 발견 이슈 및 해결

### 자체 해결 (3건)
1. **collectedAt string/Timestamp 혼용** — typeof 분기로 양쪽 포맷 처리
2. **AI 추천에서 404 문서 링크** — Firestore getDoc 존재 확인 + 미존재 항목 제거
3. **published 문서에 review 버튼 노출** — status 조건 분기 추가

### 범위 외 미해결 (1건)
1. **검토 큐 데이터 소스 변경** — 범위 외 사유: 대시보드 server.py 수정 필요 (다른 프로젝트 소관), DASHBOARD_API_URL 환경변수 미설정

---

## 산출물 파일

- `/home/jay/projects/insuwiki/.worktrees/task-1688.1-dev4/nextapp/src/app/docs/[id]/DocumentClient.tsx`
- `/home/jay/projects/insuwiki/.worktrees/task-1688.1-dev4/nextapp/src/components/RelatedDocsSidebar.tsx`
- `/home/jay/projects/insuwiki/.worktrees/task-1688.1-dev4/nextapp/src/components/review/InlineReviewPanel.tsx`
- `/home/jay/projects/insuwiki/.worktrees/task-1688.1-dev4/nextapp/src/app/review/page.tsx`
- `/home/jay/projects/insuwiki/.worktrees/task-1688.1-dev4/nextapp/src/components/GlobalHeader.tsx`

---

## 머지 판단
- **머지 필요**: Yes
- **브랜치**: task/task-1688.1-dev4
- **워크트리 경로**: /home/jay/projects/insuwiki/.worktrees/task-1688.1-dev4
- **머지 의견**: Issues 1-4, 6은 자기 완결적 수정. Issue 5는 UI 개선만 포함되어 기존 기능을 깨뜨리지 않음. TSC 신규 에러 0건 (기존 react-markdown 타입 미설치 에러만 존재). 머지 권장하되, Issue 5 데이터 소스 변경은 후속 작업으로 분리 필요.

---

## QC 검증 결과
- **Overall**: WARN (5 PASS, 7 SKIP, 1 WARN)
- **tdd_check**: WARN — 구현 먼저 수정 후 테스트 업데이트 (TDD 순서 위반, 기존 테스트 업데이트이므로 수용)
- **file_check**: PASS — 산출물 7개 파일 전체 확인
- **data_integrity**: PASS
- **critical_gap**: PASS
- **spec_compliance**: PASS
- **duplicate_check**: PASS
- **test_runner**: SKIP — 관련 테스트 0개 (vitest 기반, 별도 실행으로 61/61 통과 확인)
- **TRUST 5**: T=true, R=true, U=true, S=true, T=true (전 차원 PASS)

## 마아트 독립 검증
- **판정**: PASS (이슈 없음)
- 12개 항목 검증: 구현 6건 PASS, 코드 품질 3건 PASS
- 마아트가 지적한 테스트 이슈 3건은 stale 데이터 기반 분석으로 실제 코드에서는 문제 없음 확인
- 증거: `npx vitest run RelatedDocsSidebar.test.tsx` → 28/28 통과 (428ms)

## 모델 사용 기록
- 팀원: 사라스바티 / 작업: Issues 1+2 DocumentClient 버그 수정 / 모델: sonnet
- 팀원: 사라스바티 / 작업: Issues 3+6 RelatedDocsSidebar 분리 / 모델: sonnet
- 팀원: 사라스바티 / 작업: Issue 4 InlineReviewPanel 수정 / 모델: sonnet
- 팀원: 사라스바티 / 작업: Issue 5 검토 페이지 UI 개선 / 모델: sonnet
- 팀원: 하누만 / 작업: RelatedDocsSidebar 테스트 업데이트 / 모델: sonnet

## 산출물 파일 (추가)
- `/home/jay/projects/insuwiki/.worktrees/task-1688.1-dev4/nextapp/src/components/__tests__/RelatedDocsSidebar.test.tsx`

## 세션 통계
- 총 도구 호출: 31회

### 수정 파일 목록
- /home/jay/projects/insuwiki/.worktrees/task-1688.1-dev4/nextapp/src/components/RelatedDocsSidebar.tsx: 7회 (Edit)
- /home/jay/projects/insuwiki/.worktrees/task-1688.1-dev4/nextapp/src/components/__tests__/RelatedDocsSidebar.test.tsx: 6회 (Edit)
- /home/jay/projects/insuwiki/.worktrees/task-1688.1-dev4/nextapp/src/app/docs/[id]/DocumentClient.tsx: 4회 (Edit)
- /home/jay/workspace/memory/reports/task-1688.1.md: 4회 (Edit, Write)
- bash_cmd: 4회 (Bash)
- /home/jay/projects/insuwiki/.worktrees/task-1688.1-dev4/nextapp/src/app/review/page.tsx: 3회 (Edit)
- /home/jay/projects/insuwiki/.worktrees/task-1688.1-dev4/nextapp/src/components/GlobalHeader.tsx: 1회 (Edit)
- /home/jay/projects/insuwiki/.worktrees/task-1688.1-dev4/nextapp/src/components/review/InlineReviewPanel.tsx: 1회 (Edit)
- /home/jay/workspace/memory/tasks/task-1688.1.md: 1회 (dispatch)

### 도구 사용 현황
- Edit: 25회
- Bash: 4회
- Write: 1회
- dispatch: 1회

