약관AI Phase 2 잔여 — CL-10 특약 경고 + 상품명 자동완성 + CL-7 피드백 UI

## 작업 1: CL-10 특약 가입 확인 경고 (구조적 한계 방어)

약관 PDF에는 선택특약 전체가 포함되어 있지만, 고객의 실제 가입 여부를 시스템이 알 수 없다. 이 구조적 한계에 대한 3중 방어를 구현한다.

### 1-1. 시스템 프롬프트 방어 (functions/src/ragQuery.ts)
- ragQuery.ts의 시스템 프롬프트에 다음 규칙 추가:
  "모든 특약 관련 답변에 반드시 다음 문구를 볼드로 포함하세요: **이 특약에 가입되어 있는지 보험증권을 확인하세요.**"
- "선택특약", "추가특약", "특별약관" 등 특약 관련 키워드가 응답에 포함될 때 필수 삽입

### 1-2. UI 경고 배너 (nextapp/src/components/search/AnswerCard.tsx)
- 검색 결과(AnswerCard)에서 특약 관련 조항이 포함되면, 해당 카드 상단에 노란색 경고 배너 표시:
  "선택특약은 가입 여부에 따라 보장이 달라집니다. 보험증권을 확인하세요."
- 특약 감지 키워드: "선택특약", "추가특약", "특별약관", "선택담보"
- 인라인 방식: 해당 특약명 옆에 작은 경고 아이콘으로도 표시 (경고 피로 방지)

### 1-3. 출력 필터 보강 (nextapp/src/lib/ai/answerValidator.ts)
- validateAnswer 함수에 특약 경고 자동 삽입 로직 추가
- 응답 텍스트에 특약 키워드가 있으면 경고 문구 자동 append

## 작업 2: 상품명 자동완성 (검색 UX 혁신)

설계사가 "삼성 종신"만 입력해도 후보 상품 목록이 드롭다운으로 뜨도록 한다.

### 2-1. 자동완성 API (nextapp/src/app/api/ai/autocomplete/route.ts) — 신규 생성
- GET /api/ai/autocomplete?q=삼성+종신
- Firestore insurance_metadata 컬렉션에서 productName/companyName 검색
- 한글 초성 검색 지원 (nextapp/src/lib/utils/hangul.ts 활용)
- isActive=true인 상품만 반환
- 응답 형식: [{ productId, productName, companyName, generationType }]
- 최대 10건 반환

### 2-2. SearchInput 자동완성 UI (nextapp/src/components/search/SearchInput.tsx) — 수정
- 검색어 입력 시 debounce(300ms) 후 autocomplete API 호출
- 드롭다운 리스트로 후보 상품 표시
- 상품 선택 시 해당 productId로 필터링하여 검색 실행
- 키보드 네비게이션 지원

## 작업 3: CL-7 피드백 UI (오답 신고 루프)

### 3-1. 피드백 버튼 컴포넌트 (nextapp/src/components/search/FeedbackButtons.tsx) — 신규 생성
- AnswerCard 하단에 "정확해요 / 틀렸어요" 버튼 2개
- "틀렸어요" 클릭 시 오답 유형 선택 모달: 면책 누락 / 상품 혼동 / 구버전 참조 / 기타
- 자유 텍스트 입력 필드 (선택사항)
- /api/ai/feedback POST 호출

### 3-2. 피드백 API 개선 (nextapp/src/app/api/ai/feedback/route.ts) — 수정
- POST body: { queryId, rating: "positive"|"negative", errorType, freeText, query, answer }
- Firestore ai_feedback 컬렉션에 저장
- uid + timestamp 기반 중복 신고 방지

### 3-3. AnswerCard 통합 (nextapp/src/components/search/AnswerCard.tsx) — 수정
- FeedbackButtons 컴포넌트를 AnswerCard 하단에 배치

## 수정 가능 파일 (이 파일만 수정 가능)
- functions/src/ragQuery.ts (시스템 프롬프트만 수정, 쿼리 로직 변경 금지)
- nextapp/src/components/search/AnswerCard.tsx
- nextapp/src/components/search/SearchInput.tsx
- nextapp/src/app/api/ai/autocomplete/route.ts (신규)
- nextapp/src/components/search/FeedbackButtons.tsx (신규)
- nextapp/src/app/api/ai/feedback/route.ts
- nextapp/src/lib/ai/answerValidator.ts
- nextapp/src/types/firestore.ts (타입 추가만)

## 절대 수정 금지
- pdfIndexing.ts, vector-search/route.ts, queryCache.ts, rateLimiter.ts, injectionFilter.ts, versionFilter.ts
- firestore.rules, firestore.indexes.json
- 2팀 담당 파일: admin/ 하위 전체, scripts/ 하위 전체, queryRouter.ts

## 테스트
- 자동완성 API: Vitest 테스트 작성
- FeedbackButtons: 기본 렌더링 + 클릭 이벤트 테스트
- answerValidator 특약 경고: 기존 테스트에 추가