# task-817.1 완료 보고서: 카드뉴스 생성 + Threads/Instagram 업로드

## SCQA

**S**: ThreadAuto의 `run_card_post.py` 스크립트를 통해 카드뉴스를 자동 생성하고 Threads + Instagram에 크로스포스팅하는 정기 작업이 예정되어 있다.

**C**: 1차 생성 시 fact_guard 수치 검증에서 '6개' 위반으로 실패했으나, 2차 재생성에서 검증을 통과하여 정상 업로드가 완료되었다. Firestore 초기화 시 ADC 인증 실패로 로컬 파일 폴백이 발생했으나, 발행 이력 저장과 업로드 자체에는 영향 없었다.

**Q**: 카드뉴스가 정상 생성되어 Threads와 Instagram 모두에 성공적으로 업로드되었는가?

**A**: 양 플랫폼 모두 업로드 성공. Threads post_id: 18096845894001055, Instagram post_id: 18445717681108082. 슬라이드 6장, fact_guard 2차 시도에서 통과, 전체 소요시간 약 30분.

## 실행 결과

- **토픽**: 보험 GA 업계에서 오버라이딩을 극대화하는 팀 빌딩 전략 (카테고리: 정보제공)
- **카드뉴스 제목**: "약정조건 설계의 진짜 구조"
- **카드 타입**: I (정보제공)
- **슬라이드 수**: 6장
- **caption**: "오버라이딩은 사람 수가 아닙니다. 약정조건 설계가 장기 수익을 결정합니다. 이직 후에도 잔여수수료가 유지되는 구조인지 먼저 확인하세요. 팔로우해두면 다음에 더 자세히 다룰게요."

### fact_guard 검증
- 1차: FAIL (위반: '6개')
- 2차: PASS

### 업로드 결과
- **Threads**: 성공 (post_id: 18096845894001055)
- **Instagram**: 성공 (post_id: 18445717681108082)
- **overall_success**: true
- **에러**: 없음

## 생성/수정 파일

- `/home/jay/projects/ThreadAuto/output/cardnews_20260322_185305_00.png` (73KB) — cover
- `/home/jay/projects/ThreadAuto/output/cardnews_20260322_185305_01.png` (89KB)
- `/home/jay/projects/ThreadAuto/output/cardnews_20260322_185305_02.png` (104KB)
- `/home/jay/projects/ThreadAuto/output/cardnews_20260322_185305_03.png` (111KB)
- `/home/jay/projects/ThreadAuto/output/cardnews_20260322_185305_04.png` (106KB)
- `/home/jay/projects/ThreadAuto/output/cardnews_20260322_185305_05.png` (75KB) — cta
- `/home/jay/projects/ThreadAuto/output/cardnews_post_result_20260322_185631.json` — 결과 JSON

## 발견 이슈 및 해결

### 자체 해결 (1건)
1. **fact_guard 1차 수치 검증 실패 ('6개')** — 스크립트 내장 재시도 메커니즘(MAX_RETRIES=2)으로 2차 재생성 시 자동 통과

### 범위 외 미해결 (2건)
1. **Firestore ADC 인증 실패** — 범위 외 사유: GCP Application Default Credentials 미설정은 서버 인프라 이슈. 로컬 파일 폴백으로 정상 동작하나, 발행 이력의 클라우드 저장이 안 됨
2. **hashtags 빈 배열 반환** — 범위 외 사유: 5단계 파이프라인의 카드뉴스 모드에서 hashtags가 빈 배열로 반환됨. 파이프라인 프롬프트 수정 필요 (별도 작업 대상)

## 타임라인
- 18:26:20 — 스크립트 시작, 토픽 선택 완료
- 18:41:46 — 1차 생성 완료 (15분), fact_guard 실패
- 18:52:52 — 2차 생성 완료 (11분), fact_guard 통과
- 18:53:05 — 업로드 시작
- 18:54:44 — Threads 업로드 완료
- 18:56:31 — Instagram 업로드 완료
- 총 소요: 약 30분
