# task-742.1: 보험저널 기반 카드뉴스 업로드 1건

## S - Situation
ThreadAuto 파이프라인을 사용하여 보험저널(@insjournal) 최신 뉴스 기반 카드뉴스를 Threads에 정기적으로 업로드하고 있다.

## C - Complication
기존 news_cache.json이 3/13 기준 데이터로 1주일 이상 경과하여 최신 보험저널 뉴스 반영이 필요했다. 또한 `run_full_pipeline.py`의 `select_single_topic()`은 에버그린 풀에서만 선택하므로, 뉴스 캐시 기반 토픽 선택을 위해 `select_trend_topics()` 호출이 필요했다.

## Q - Question
보험저널 최신 뉴스를 기반으로 카드뉴스 1건을 생성하여 Threads에 성공적으로 업로드할 수 있는가?

## A - Answer
RSS/YouTube 캐시를 갱신한 후, `select_trend_topics()`를 사용하여 보험저널 뉴스 기반 토픽을 선택하고 파이프라인을 실행하여 카드뉴스 6장을 생성, Threads 업로드에 성공했다. fact_guard 1차 검증 실패(수치 630명 포함) 후 재생성하여 2차에서 통과.

---

## 실행 결과

### Threads 업로드
- **post_id**: `18573916201033153`
- **이미지 장수**: 6장
- **테마**: NavyGold
- **업로드 상태**: 성공 (success: True)

### 사용한 뉴스 소스
- **출처**: 보험저널
- **제목**: "설계사 늘고 계약 품질은 최고 수준… 에이플러스에셋의 질주"
- **URL**: https://www.insjournal.co.kr/news/articleView.html?idxno=30665
- **요약**: 에이플러스에셋이 서울 양재동 엘타워·대전 ICC호텔에서 신입 설계사 후보자 약 630명 대상 상품전략 워크숍 개최. GA 리크루팅 경쟁 현황 보도.

### 캡션 전문
```
GA들이 설계사를 모으는 경쟁이
치열해지고 있습니다.

하지만 진짜 중요한 건
입사 후 얼마나 살아남느냐입니다.

서울대보험쌤이 직접 분석했습니다.

서울대보험크루에서 제작한 AI프로그램이 자동으로 게시하였습니다.
```
- 캡션 글자수: 119자

### 슬라이드 구성
- [0] cover: "GA 리크루팅 전쟁, 지금 어디까지 왔나"
- [1] card_list: "지금 업계에서 벌어지는 일" — 대규모 워크숍 경쟁, 계약 품질 핵심 지표
- [2] card_list: "서울대보험쌤의 해석" — 리크루팅=시스템 싸움, GA업계 1위 의미
- [3] detail: "TOP사업단이 다른 이유" — 정착률 99%, 사무실 개설 전액 지원, AI 시스템
- [4] cta: "이직 전 꼭 따져보세요" — 잔여수수료, 정착지원금, DB·교육·코칭
- [5] cta: "GA 선택, 함께 고민하세요" — 편하게 연락 주세요

### fact_guard 검증 결과
- **1차**: FAIL — `['630명']` (뉴스 원문 수치 포함)
- **2차 재생성**: PASS — 수치 검증 통과
- **최종**: PASSED

---

## 검증 체크리스트

- [x] 1. fact_guard 수치 검증 통과: PASS (2차 재생성 후)
- [x] 2. "잔존수당" 용어 미포함: PASS — 슬라이드 4에 "잔여수수료"로 올바르게 표기
- [x] 3. 캡션 줄바꿈(\n) 포함: PASS — 다수 줄바꿈 확인
- [x] 4. 어투 ("~입니다/습니다" 기본, "~임/~음/~해봄" 금지): PASS
- [x] 5. 보험저널 뉴스 내용 반영: PASS — GA 리크루팅 경쟁 뉴스 반영

---

## 발견 이슈 및 해결

### 자체 해결 (3건)
1. **뉴스 캐시 stale (3/13 기준 데이터)** — `rss_crawler.update_cache()` + `youtube_crawler.update_cache()` 호출로 최신 데이터 갱신
2. **`select_single_topic()`이 에버그린 풀에서만 선택** — `select_trend_topics(topics, 1)[0]`으로 뉴스 캐시 기반 토픽 선택 로직 적용
3. **fact_guard 1차 검증 실패 (630명 수치)** — 자동 재생성 로직으로 2차에서 수치 없는 콘텐츠 생성, 검증 통과

### 범위 외 미해결 (1건)
1. **RSS 피드 4개(이데일리, 한국경제, 파이낸셜뉴스, 보험매일) SSL/파싱 오류** — 외부 서비스 문제. 보험저널·다자비·뉴스와이어 등 나머지 피드에서 충분한 뉴스 수집됨.

---

## 생성/수정 파일 목록
- `/home/jay/projects/ThreadAuto/content/news_cache.json` — RSS 캐시 갱신
- `/home/jay/projects/ThreadAuto/content/youtube_cache.json` — YouTube 캐시 갱신
- `/home/jay/projects/ThreadAuto/content/evergreen_topics.json` — used_count 갱신
- `/home/jay/projects/ThreadAuto/output/cardnews_20260320_193517_00.png` ~ `_05.png` — 렌더링된 카드뉴스 이미지 6장

## 캐시 갱신 결과
- RSS: 보험저널, 다자비, 뉴스와이어, 이투데이, 한국보험신문 등 6개 피드에서 수집 성공
- YouTube: 보험저널TV 채널 영상 10건 갱신

## QC 자동 검증
- **overall**: PASS
- **file_check**: PASS (보고서 4711 bytes)
- **data_integrity**: PASS
- **critical_gap**: PASS
- api_health, test_runner, tdd_check, pyright_check, style_check, scope_check, schema_contract: SKIP (운영 스크립트 실행 작업이므로 코드 변경 없음)
- **결과**: 3 PASS, 7 SKIP
