# Task: ThreadAuto Phase 1 보충 — 에버그린 주제풀 + 소재 선택 엔진

## Task ID: task-275.2
## 프로젝트 경로: /home/jay/projects/ThreadAuto/

## 배경
Phase 1 위임 중 세션이 끊겨 일부 산출물이 누락되었다.
이미 완료된 파일은 절대 건드리지 않는다.

### 이미 완료된 파일 (수정 금지)
- `crawler/rss_crawler.py`
- `crawler/youtube_crawler.py`
- `crawler/__init__.py`
- `tests/test_evergreen_topics.py`
- `tests/test_rss_crawler.py`

## 누락 산출물 (이번 태스크에서 생성)

### 1. 에버그린 주제풀 (200개)
- 파일: `content/evergreen_topics.json`
- 5가지 카테고리별 주제 목록:
  - **고민공감형** (40개): 설계사 이직 고민, 현실 공감, 불안 해소
    - 예: "수수료율이 정말 높아질까?", "내 고객을 데려갈 수 있을까?", "이직 후 정착 불안"
  - **정보제공형** (60개): 수수료 구조, GA/전속 차이, 체크리스트, 팁
    - 예: "GA 이직 전 확인사항 5가지", "수수료 비교하는 법", "정착지원금 활용법"
    - 반드시 `content/fact_db.md`의 팩트만 참조 (수치 임의생성 금지)
  - **사회적증거형** (40개): 성공사례, 이직 후기 (fact_db.md의 9번 참조)
    - 예: "5년차 전속 → GA 이직 후기", "DB영업으로 매출 3배"
  - **CTA형** (30개): 문의 유도, 상담 안내
    - 예: "이직 상담 무료", "궁금한 점 DM 주세요", "30초 자가진단"
  - **업계동향형** (30개): 보험업계 트렌드 주제
    - 예: "GA 시장 성장 추이", "설계사 수 변화", "디지털 전환"
- 각 주제 필드:
  ```json
  {
    "id": "eg-001",
    "category": "고민공감",
    "title": "수수료율이 정말 높아질까?",
    "description": "이직 고민 중 가장 큰 비중을 차지하는 수수료 비교",
    "card_type": "E",
    "keywords": ["수수료", "이직", "비교"],
    "used_count": 0,
    "last_used": null
  }
  ```
- card_type 매핑: 고민공감→E, 정보제공→I, 사회적증거→S, CTA→C, 업계동향→T
- ID 형식: eg-001 ~ eg-200 (순서대로)
- used_count 초기값: 0, last_used 초기값: null

### 2. 소재 선택 엔진
- 파일: `content/topic_selector.py`
- 하루 10개 소재 선택 로직:
  - 고민공감형 3개: 에버그린 풀에서 (최소 사용 우선)
  - 정보제공형 3개: 에버그린 풀에서
  - 사회적증거형 2개: 에버그린 풀에서
  - 업계동향형 1개: RSS 뉴스 or 유튜브 → 없으면 에버그린 fallback
  - CTA형 1개: 에버그린 풀에서
- 선택 후 used_count 증가, last_used 갱신
- 최근 7일 내 사용된 주제 재선택 방지
- 함수: `select_daily_topics() -> list[dict]`
  - 반환: 10개 소재 dict (각각 source='evergreen'/'rss'/'youtube', topic 정보 포함)
- 에버그린 JSON 로드/저장 헬퍼 함수 포함

### 3. 누락 테스트
- `tests/test_youtube_crawler.py` — 유튜브 자막 추출 테스트 (mock)
- `tests/test_topic_selector.py` — 소재 선택 + 중복 방지 테스트

## 기술 참고
- Python 3.12
- 팩트 DB: `/home/jay/projects/ThreadAuto/content/fact_db.md`
- 기존 테스트 패턴 참고: `tests/test_evergreen_topics.py`, `tests/test_rss_crawler.py`

## 테스트 실행
```bash
cd /home/jay/projects/ThreadAuto && python3 -m pytest tests/ -v
```
기존 테스트 포함 전체 PASS 확인 필수.

## 완료 조건
- `content/evergreen_topics.json` 200개 (테스트 통과)
- `content/topic_selector.py` select_daily_topics() 동작
- `tests/test_youtube_crawler.py` + `tests/test_topic_selector.py` 생성
- 기존 테스트 전체 PASS
- 완료 시 `memory/events/task-275.2.done` 생성
- 보고서 `memory/reports/task-275.2.md` 작성