# task-1840: ThreadAuto V2 카드뉴스 1건 테스트 업로드

## S - Situation
ThreadAuto V2 카드뉴스 파이프라인이 매일 새벽 5시 자동 실행 중이며, 수동 테스트를 통해 파이프라인 정상 동작 여부를 검증할 필요가 있다.

## C - Complication
수동 1건 테스트를 통해 토픽 선택 → 콘텐츠 생성 → fact_guard 검증 → Satori 렌더링 → Threads/Instagram 업로드까지 전 구간이 정상 작동하는지 확인해야 한다.

## Q - Question
ThreadAuto V2 파이프라인으로 카드뉴스 1건을 수동 실행하여 Threads에 정상 업로드할 수 있는가?

## A - Answer
`run_card_post.py` 스크립트를 실행하여 전체 파이프라인이 성공적으로 완료되었다. 토픽 "약정조건 충족 시 이직 후에도 잔여수수료 지급되는 구조"(카테고리: 정보제공) 기반으로 카드뉴스 6장이 생성되어 Threads(post_id: `17875937985447010`)와 Instagram(post_id: `18018813011823761`) 모두 업로드 성공했다.

## 검증 시나리오 결과

1. **카드뉴스 이미지 정상 렌더링**: PASS — 6장 모두 한글 깨짐 없이 1080×1350px로 정상 렌더링. 파일 크기 66KB~99KB.
2. **fact_guard 정상 동작**: PASS — 수치 검증(validate_numbers) 1회차에 통과.
3. **Threads 업로드 성공**: PASS — threads_post_id: `17875937985447010`
4. **게시물 정상 표시**: PASS — Instagram 크로스포스팅도 성공 (instagram_post_id: `18018813011823761`)

## 발견 이슈 및 해결

### 자체 해결 (0건)
없음 — 기존 코드 수정 없이 실행만 수행.

### 범위 외 미해결 (3건)
1. **Firestore ADC 미설정** — 로컬 파일 폴백으로 정상 동작. 범위 외 사유: 인프라 설정 이슈, 파이프라인 기능에 영향 없음.
2. **ngrok 터널 경고** — ImageServer가 ngrok 터널을 사용할 때 간헐적 경고 발생. 범위 외 사유: 네트워크 인프라 이슈.
3. **실행 시간 16분** — 콘텐츠 생성(LLM 호출) + 이미지 렌더링 + API 업로드 포함. 최적화 필요 시 별도 태스크.

## 산출물

- `/home/jay/projects/ThreadAuto/output/cardnews_20260415_100500_00.png`
- `/home/jay/projects/ThreadAuto/output/cardnews_20260415_100500_01.png`
- `/home/jay/projects/ThreadAuto/output/cardnews_20260415_100500_02.png`
- `/home/jay/projects/ThreadAuto/output/cardnews_20260415_100500_03.png`
- `/home/jay/projects/ThreadAuto/output/cardnews_20260415_100500_04.png`
- `/home/jay/projects/ThreadAuto/output/cardnews_20260415_100500_05.png`

## 셀프 QC

- [x] 1. 이 변경이 다른 파일에 영향을 미치는가? — 코드 수정 없음, 영향 없음.
- [x] 2. 엣지 케이스? — fact_guard 실패 시 최대 3회 재시도 로직 존재. 이번 실행에서는 1회차 통과.
- [x] 3. 작업 지시와 정확히 일치하는가? — 카드뉴스 1건 생성 + Threads 업로드 완료.
- [x] 4. 에러 처리/보안? — 코드 수정 없음. 기존 에러 핸들링 정상 동작 확인.
- [x] 5. 테스트 커버리지? — 실행 전용 작업, 코드 변경 없음.
- [x] 6. 발견 이슈 모두 해결? — 범위 외 3건, 사유 명시 완료.
- [x] 7. 코드 아키텍처 원칙? — 코드 수정 없음, 해당 없음.
- [x] 8. 인터페이스 변경? — 없음.
- [x] 9. HTML→PNG 렌더링? — Satori 기반 6장 PNG 정상 생성 확인.
- [x] 10. CLAUDE.md 100줄 미만? — 해당 없음 (코드 수정 없음).

## 모델 사용 기록

- 팀원: 라타토스크(Ratatoskr) / 작업 내용: run_card_post.py 파이프라인 실행 및 결과 확인 / 사용 모델: sonnet / 정당성: -

## qc_verify.py 결과

```
task_id: task-1840
verified_at: 2026-04-15T10:10:29
summary: 5 PASS, 1 FAIL, 7 SKIP

PASS: file_check, data_integrity, critical_gap, spec_compliance, duplicate_check
FAIL: tdd_check — 보고서 파일(.md)을 구현 파일로 오탐. 코드 수정 없는 실행 전용 작업이므로 TDD 대상 아님 (QC-RULES "Lv.2+ 코딩 작업에만 의미 있음")
SKIP: api_health, test_runner, schema_contract, pyright_check, style_check, scope_check, claude_md_check
```
