# task-787.1 완료 보고서: 카드뉴스 Threads + Instagram 동시 업로드

**S**: ThreadAuto 시스템의 카드뉴스 동시 업로드 기능(`run_card_post.py`)이 구현되어 있으며, Threads와 Instagram 동시 발행이 가능한 상태다.

**C**: 정기 스케줄에 따라 카드뉴스를 생성하고 Threads + Instagram에 동시 업로드를 실행해야 한다.

**Q**: 카드뉴스가 정상적으로 생성되고 두 플랫폼 모두에 성공적으로 업로드되었는가?

**A**: `run_card_post.py` 실행 결과, 토픽 "구글 CRM 시스템으로 고객 관리를 체계화하는 법"에 대한 카드뉴스 6슬라이드가 생성되었고, fact_guard 수치 검증을 1회 시도에서 통과했다. Threads(post_id: `18099340556297291`)와 Instagram(post_id: `18318056209265910`) 모두 업로드 성공. exit code 0, 에러 0건.

---

## 실행 결과

- **토픽**: 구글 CRM 시스템으로 고객 관리를 체계화하는 법 (카테고리: 정보제공)
- **카드 타이틀**: 실력이 아닌 시스템의 문제
- **슬라이드 수**: 6장
- **카드 타입**: I (정보제공)
- **fact_guard 검증**: 1회 시도에서 통과
- **Threads post_id**: `18099340556297291` (성공)
- **Instagram post_id**: `18318056209265910` (성공)
- **overall_success**: true
- **에러**: 없음 (error: null, instagram_error: null)
- **caption 길이**: 156자

## 생성 파일

- `/home/jay/projects/ThreadAuto/output/cardnews_post_result.json` — 결과 JSON
- `/home/jay/projects/ThreadAuto/output/cardnews_20260322_091013_00.png` ~ `_05.png` — 카드뉴스 이미지 6장

## 발견 이슈 및 해결

### 자체 해결 (0건)
해당 없음 — 스크립트가 정상 실행되어 코드 수정 불필요.

### 범위 외 미해결 (1건)
1. **Firestore 초기화 실패 (ADC 미설정)** — 범위 외 사유: 인프라 설정 사항. 로컬 파일 폴백으로 동작하여 발행 기능에는 영향 없음. 로그: `Firestore 초기화 실패, 로컬 파일 폴백으로 동작: Your default credentials were not found.`

## 셀프 QC

- [x] 1. 다른 파일 영향: 없음 (실행만 수행, 코드 변경 없음)
- [x] 2. 엣지 케이스: fact_guard 실패 시 최대 3회 재시도 로직 확인 (이번 실행에서는 1회 통과)
- [x] 3. 작업 지시 일치: Threads post_id + Instagram post_id 모두 확인 완료
- [x] 4. 에러 처리/보안: API 키 노출 없음, 에러 핸들링 정상 동작
- [x] 5. 테스트 커버리지: 실행 작업으로 코드 변경 없음 — 실제 업로드 결과가 검증 증거
- [x] 6. 발견 이슈 처리: Firestore 폴백 WARNING은 범위 외 (인프라 설정), 기능 영향 없음

## 증거

- 스크립트 exit code: 0
- Threads API 응답: HTTP 200 OK (7회 POST + 1회 publish)
- Instagram API 응답: HTTP 200 OK (7회 POST + 1회 media_publish)
- 결과 JSON: `success: true`, 양 플랫폼 post_id 확인
