# IR 문서 대표 이름 추출 스펙

**날짜**: 2025-11-22
**작성자**: Claude
**관련 파일**:
- `rb8001/app/services/ir_analyzer.py`

---

## 요구사항

IR 문서에서 대표이사/CEO 이름을 추출하여 coldmail processor에서 "대표" 컬럼에 저장.

---

## 현재 상태

### 추출 필드 목록 (ir_analyzer.py:257-265)
- company_name
- business_area
- investment_stage
- revenue
- growth_rate
- team_size
- tech_advantage

**대표 이름 필드 없음**

### LLM 프롬프트 (ir_analyzer.py:296-304)
- `exact keys` 목록에 `representative_name` 없음

---

## 설계

### 1. RAG 쿼리 추가
**위치**: `ir_analyzer.py:257-265` queries 딕셔너리

**추가 쿼리**:
```python
"representative_name": "이 회사의 대표이사 또는 CEO 이름은 무엇인가? (예: 홍길동, 김철수)"
```

### 2. LLM 프롬프트 키 추가
**위치**: `ir_analyzer.py:296-304` prompt의 `exact keys` 목록

**추가 키**:
```python
- representative_name: 대표이사 또는 CEO 이름 (예: "홍길동", "김철수")
```

### 3. 반환 형식
**타입**: `str`
**형식**: 이름만 (예: "홍길동", "김철수")
**없을 때**: "N/A"

---

## 우선순위 정책

**coldmail_processor.py에서 사용**:
1. IR 문서 `representative_name` (유효하면)
2. From 헤더 `contact_name` (fallback)
3. "없음" (둘 다 없을 때)

---

## 검증 기준

### 성공 케이스
- IR 문서에 "대표이사: 홍길동" 명시 → `representative_name = "홍길동"`
- IR 문서에 "CEO: 김철수" 명시 → `representative_name = "김철수"`

### 실패 케이스
- IR 문서에 대표 이름 정보 없음 → `representative_name = "N/A"`
- IR 문서 파싱 실패 → `representative_name = "N/A"`

---

## 구현 완료 조건

- [ ] RAG 쿼리에 `representative_name` 추가
- [ ] LLM 프롬프트에 `representative_name` 키 추가
- [ ] 실제 IR 문서로 테스트 (대표 이름 있는 경우/없는 경우)
- [ ] coldmail processor에서 IR `representative_name` 우선 사용

