# task-1346.1 완료 보고서: 스레드 텍스트 업로드

**팀**: dev3-team (다그다)
**작업일**: 2026-04-02

---

## SCQA

**S**: ThreadAuto 파이프라인을 통해 서울대보험쌤 계정(Threads)에 텍스트 콘텐츠를 정기적으로 업로드하고 있으며, 마지막 텍스트 포스트는 2026-03-27에 발행되었다.

**C**: 6일간 신규 텍스트 포스트가 없었으며, 오늘 예정된 텍스트 업로드를 수행해야 한다. 첫 시도(토픽: "보험 GA M&A 트렌드", text_insight)는 FactGuard 수치 검증에서 3회 연속 실패하여 토픽 재선택이 필요했다.

**Q**: FactGuard 검증을 통과하는 텍스트 콘텐츠를 생성하여 Threads에 성공적으로 업로드할 수 있는가?

**A**: 토픽 재선택 후 "신입인데 처음부터 GA로 시작해도 될까요?" (고민공감, text_empathy)로 생성한 콘텐츠가 FactGuard 검증 통과 및 Threads 업로드에 성공. post_id: `17946824295130635`. 면책문구 자동 추가됨.

---

## 작업 상세

### 실행 과정
1. **토픽 선택 1차 (실패)**: "보험 GA M&A 트렌드" (업계동향, text_insight)
   - FactGuard 위반: `1200%`, `1조`, `1,200%` 등 검증 불가 수치 반복 생성
   - TextContentGenerator 내부 3회 재시도 후 RuntimeError
2. **토픽 선택 2차 (성공)**: "신입인데 처음부터 GA로 시작해도 될까요?" (고민공감, text_empathy)
   - 1차 시도에서 내부 검증 1회 실패 후 2차에서 통과
   - 외부 수치 검증도 통과
3. **Threads 발행**: API 호출 성공 (HTTP 200)
   - `threads` 컨테이너 생성 → `threads_publish` 발행 완료
   - post_id: `17946824295130635`

### 발행된 콘텐츠
```
진짜 웃긴 게,
신입은 전속부터
가야 한다는 말.

GA 시작,
왜 안 되는 건지.

서울대보험쌤도
자주 듣는 고민이죠.

그 불안은
어디서 올까요?

#GA전환 #보험설계사
```
- 글자수: 83자 (본문)
- 해시태그: #GA전환 #보험설계사
- 면책문구: "서울대보험크루에서 제작한 AI프로그램이 자동으로 게시하였습니다." (자동 추가)

---

## 발견 이슈 및 해결

### 자체 해결 (3건)
1. **FactGuard 수치 검증 실패 (text_insight)** — 토픽 자동 재선택으로 해결
   - 원인: 업계동향 토픽에서 LLM이 fact_db.md에 없는 구체 수치(1200%, 1조) 반복 생성
   - 해결: 토픽 재선택 로직 적용, 고민공감 카테고리로 전환

2. **업로드 스킬 파일 미존재** — 기존 디스패치 파일 참조로 대체
   - `/home/jay/workspace/skills/thread-auto/SKILL.md` 파일 없음
   - `dispatch-threadauto-text-upload.md`와 `run_text_post.py` 기반으로 실행

3. **Firestore 초기화 실패** — 로컬 파일 폴백으로 정상 동작
   - ADC(Application Default Credentials) 미설정
   - 발행 이력은 로컬 파일에 저장 (기존 동작과 동일)

---

## 산출물 파일
- `/home/jay/.cokacdir/workspace/AB727622/generated_content.json`

---

## 셀프 QC 체크리스트
- [x] 1. 다른 파일 영향: 없음 (외부 API 호출만, 코드 변경 없음)
- [x] 2. 엣지 케이스: FactGuard 실패 시 토픽 재선택 로직으로 처리
- [x] 3. 작업 지시 일치: Threads 텍스트 콘텐츠 업로드 완료
- [x] 4. 에러 처리: Firestore 실패 시 로컬 폴백 동작 확인
- [x] 5. 테스트: API 응답 HTTP 200 확인, post_id 정상 반환
- [x] 6. 이슈 모두 해결: 3건 발견, 3건 자체 해결
- [x] 7. 아키텍처 원칙: 코드 변경 없음 (기존 파이프라인 실행)
- [x] 8. 인터페이스 변경: 없음

---

## 모델 사용 기록
- 팀원: 루(Lugh) / 작업 내용: 텍스트 콘텐츠 생성 1차 시도 / 사용 모델: sonnet / 정당성: -
- 팀장: 다그다 / 작업 내용: 2차 생성 + 발행 실행 + 보고서 / 사용 모델: opus / 정당성: 1차 실패 후 직접 개입

---

## Evidence
- Threads API 응답: HTTP 200 (threads 생성 + threads_publish 성공)
- post_id: `17946824295130635`
- FactGuard 수치 검증: PASS
- 문장 완결성 검증: 마지막 문자 "?" → 자연스러운 종결
