# task-1072.1: ThreadAuto 카드뉴스 V2 업로드 (Threads + Instagram)

## SCQA

**S**: ThreadAuto 카드뉴스 V2 파이프라인이 Threads + Instagram 동시 발행 기능을 갖추고 있으며, 양 플랫폼 토큰이 유효한 상태이다(Threads 2026-05-04 만료, Instagram 2026-05-21 만료).

**C**: 정기적 카드뉴스 콘텐츠 발행이 필요하며, Threads와 Instagram 양 플랫폼 동시 발행(CROSS_POST_ENABLED=True)이 정상 작동하는지 실전 확인이 필요하다.

**Q**: 카드뉴스 V2 1건을 생성하여 Threads + Instagram 모두 정상 업로드할 수 있는가?

**A**: `run_card_post.py` 실행으로 "보험 설계사 이직 전 재무 체크리스트" 토픽의 카드뉴스 6장을 생성하고, Threads(post_id: 17851975107645258) + Instagram(media_id: 17889630342332719) 양 플랫폼에 성공적으로 동시 발행 완료. fact_guard 수치 검증 통과, 에러 0건.

---

## 실행 결과

### 토픽 정보
- **토픽**: 보험 설계사 이직 전 재무 체크리스트
- **카테고리**: 정보제공
- **카드 타입**: I

### 발행 결과
- **Threads post_id**: `17851975107645258`
- **Instagram media_id**: `17889630342332719`
- **발행 시각**: 2026-03-26 14:39 KST
- **fact_guard**: 1차 시도 통과
- **에러**: 없음 (양 플랫폼 모두)

### 캡션 전문
```
이직 전엔 수수료율 비교,
다들 합니다.

그런데 잔여수수료
귀속 조건을 확인하는
설계사는 드뭅니다.

이 조건 하나가
이직 후 3년을 결정합니다.

계약서 먼저 꺼내보세요.
— 서울대보험쌤
```

### 생성된 이미지 (6장)
| 파일명 | 크기 |
|--------|------|
| cardnews_20260326_143614_00.png | 73KB |
| cardnews_20260326_143614_01.png | 94KB |
| cardnews_20260326_143614_02.png | 108KB |
| cardnews_20260326_143614_03.png | 107KB |
| cardnews_20260326_143614_04.png | 109KB |
| cardnews_20260326_143614_05.png | 75KB |

이미지 경로: `/home/jay/projects/ThreadAuto/output/`
결과 JSON: `/home/jay/projects/ThreadAuto/output/cardnews_post_result_20260326_143953.json`

---

## 검증 체크리스트
- [x] 카드뉴스 이미지 5-7장 생성 성공 (6장)
- [x] fact_guard 검증 통과 (1차 시도)
- [x] Threads 업로드 성공 (post_id: 17851975107645258)
- [x] Instagram 업로드 성공 (media_id: 17889630342332719)
- [x] 두 플랫폼 모두 동일한 카드뉴스 사용 확인 (동일 image_paths 6장)
- [x] post_id, media_id 보고서 기록 완료

## 발견 이슈 및 해결

### 자체 해결 (0건)
해당 없음 — 스크립트 1회 실행으로 정상 완료

### 범위 외 미해결 (1건)
1. **Firestore 미연결 폴백** — 범위 외 사유: FirestoreClient 초기화 실패 시 발행 이력이 Firestore에 저장되지 않음. 발행 자체에는 영향 없으며, 결과 JSON 파일로 대체 기록됨.

### 참고 이슈 (2건)
1. **이미지 렌더링 경고**: CardNewsRenderer가 output/ 디렉토리에 6장 정상 렌더링. 이미지 크기 73KB~109KB로 적정 범위.
2. **캡션에 면책 문구 자동 추가**: AUTO_POST_DISCLAIMER("서울대보험크루에서 제작한 AI프로그램이 자동으로 게시하였습니다")가 실제 발행 캡션에 포함됨 (config.py 설정대로 정상).

---

## QC 셀프 체크
- [x] 1. 다른 파일 영향: 없음 (스크립트 실행만, 코드 변경 없음)
- [x] 2. 엣지 케이스: fact_guard 실패 시 최대 3회 재시도 로직 존재 (이번엔 1회 통과)
- [x] 3. 작업 지시 일치: Threads + Instagram 동시 발행 1건 완료
- [x] 4. 에러 처리/보안: 토큰 파일 유효, API 에러 없음
- [x] 5. 테스트 커버리지: 해당 없음 (코드 변경 없는 운영 작업)
- [x] 6. 이슈 직접 해결: Firestore 폴백은 범위 외 (발행에 영향 없음)
- [x] 7. 코드 아키텍처: 해당 없음 (코드 변경 없음)
- [x] 8. 인터페이스 변경: 해당 없음

## 머지 판단
- **머지 필요**: No (코드 변경 없음, 스크립트 실행 작업)
