# task-783.1 완료 보고서

**작성일**: 2026-03-22
**작업자**: 다그다 (dev3-team 팀장)
**검증**: 모리건 (테스터)

---

## SCQA

**S**: ThreadAuto 프로젝트에 `CrossPublisher`가 구현되어 `CROSS_POST_ENABLED=true` 시 Threads + Instagram 동시 발행 기능을 지원한다.

**C**: 해당 기능이 실제 API 호출 환경에서 정상 동작하는지 실증 테스트가 필요했다. FactGuard 수치 검증 실패 시 최대 3회 재시도 로직이 포함되어 있어 실제 재시도 발생 여부도 확인 대상이었다.

**Q**: `run_card_post.py` 실행 시 Threads + Instagram 동시 업로드가 모두 성공하는가?

**A**: 양쪽 모두 성공. Threads post_id `17946500456983020`, Instagram instagram_post_id `18121068043612813` 획득. exit code 0, overall_success=True. FactGuard 1차 실패(시도 1/3) 후 시도 2/3에서 통과. 총 실행시간 약 22분 47초 (카드뉴스 생성 약 19분 + 업로드 약 3분 47초).

---

## 체크리스트 결과

| 항목 | 결과 |
|------|------|
| run_card_post.py 실행 | 성공 (exit code 0) |
| Threads 업로드 성공 여부 | 성공 - post_id: 17946500456983020 |
| Instagram 업로드 성공 여부 | 성공 - instagram_post_id: 18121068043612813 |
| 결과 JSON 확인 | 존재, success=true, error=null, instagram_error=null |
| 양쪽 성공/실패 명시 | 아래 상세 참조 |

---

## 실행 결과 상세

### Threads 업로드
- **결과**: 성공 (success=True)
- **post_id**: `17946500456983020`
- **API**: `POST graph.threads.net/v1.0/26715152761436412/threads_publish` → HTTP 200 OK
- 미디어 컨테이너 7개 생성 후 발행 완료

### Instagram 업로드
- **결과**: 성공 (success=True)
- **instagram_post_id**: `18121068043612813`
- **instagram_error**: `null`
- **발행 시각**: `2026-03-21T18:57:09.638991+00:00`
- **API**: `POST graph.facebook.com/v22.0/17841473765298202/media_publish` → HTTP 200 OK
- 미디어 컨테이너 7개 생성 후 발행 완료

### 결과 JSON
```json
{
  "success": true,
  "post_id": "17946500456983020",
  "instagram_post_id": "18121068043612813",
  "title": "코칭을 수업으로 착각하는 설계사들",
  "slide_count": 6,
  "caption": "코칭을 수업으로 착각하면\n실력은 그대로입니다.\n\n현장에서 막힌 것을 가져가\n해석하고 바로 실행하는 것.\n서울대보험쌤이 말하는 코칭의 본질입니다.\n\nTOP사업단 1:1 밀착 코칭이 궁금하시면\nDM에 '밀착코칭' 보내주세요.",
  "hashtags": [],
  "image_paths": [
    "/home/jay/projects/ThreadAuto/output/cardnews_20260322_035332_00.png",
    ...
    "/home/jay/projects/ThreadAuto/output/cardnews_20260322_035332_05.png"
  ],
  "topic_title": "1:1 밀착 코칭 프로그램 활용으로 실력을 끌어올리는 방법",
  "topic_category": "정보제공",
  "card_type": "I",
  "error": null,
  "instagram_error": null
}
```

---

## 발견 이슈 및 해결

### 자체 해결 (1건)
1. **FactGuard 수치 검증 1차 실패** — 코드 내장 재시도 로직(최대 3회)으로 자동 해결됨
   - 상세: 시도 1에서 `['1회', '48시간', '1회', '48시간']` 중복 수치 패턴 위반 감지. 시도 2에서 통과.

### 범위 외 미해결 (2건)
1. **Firestore ADC 미설정** — 범위 외 사유: 기존 알려진 인프라 이슈. 로컬 파일 폴백으로 동작 중. 업로드 기능에 영향 없음.
2. **hashtags 빈 배열** — 범위 외 사유: 본 작업은 업로드 성공 여부 테스트가 목적. 해시태그 생성 로직은 별도 작업에서 검토 필요.

---

## 생성/수정 파일 목록

- `/home/jay/projects/ThreadAuto/output/cardnews_post_result.json` (생성)
- `/home/jay/projects/ThreadAuto/output/cardnews_20260322_035332_0{0-5}.png` (생성, 6개)

코드 변경 없음 (실행 테스트 전용 작업).

---

## QC 검증 결과

```
overall: PASS
3 PASS, 7 SKIP
- file_check: PASS (보고서 3935 bytes)
- data_integrity: PASS
- critical_gap: PASS
- api_health: SKIP (서버 작업 아님)
- test_runner/tdd_check/schema_contract/pyright_check/style_check/scope_check: SKIP (코드 변경 없음)
```
.done 파일 자동 생성: `/home/jay/workspace/memory/events/task-783.1.done`
