# task-772.1 완료 보고서

**작성일**: 2026-03-21
**작성자**: 다그다 (dev3-team장)
**작업**: ThreadAuto 텍스트형 스레드 Threads 업로드

---

## SCQA 보고서

**S**: ThreadAuto 프로젝트에서 `run_text_post.py` 스크립트를 통해 Threads에 텍스트형 게시물을 자동 발행하는 작업이 지시되었다.

**C**: 스케줄러 환경(Claude Code 세션 내부)에서 실행 시 `CLAUDECODE` 환경변수로 인해 중첩 세션 오류가 발생하여 Claude CLI 기반 텍스트 생성이 실패하는 문제가 있었다. 또한 텍스트 생성 2회 검증 실패 후 3번째 시도에서 통과했다.

**Q**: `CLAUDECODE` 환경변수 제거 후 스크립트를 정상 실행하여 fact_guard 통과 + Threads 업로드를 완료할 수 있는가?

**A**: `env -u CLAUDECODE python3 run_text_post.py` 로 환경변수 문제 해결. 텍스트 생성 3번째 시도(text_story 타입)에서 fact_guard 수치 검증 통과(위반 0건). Threads API 응답 HTTP 200, post_id `18102826363733729` 발행 성공. 글자수 209자, 해시태그 2개(#보험설계사절세 #법인전환).

---

## 실행 결과

| 항목 | 결과 |
|------|------|
| 업로드 성공 여부 | ✅ 성공 |
| threads_post_id | 18102826363733729 |
| Threads URL | https://www.threads.com/@snu_insurance_group/post/DWJiwzME6N- |
| 토픽 | 보험 설계사 소득세 절세를 위한 법인 전환 기초 개념 |
| 카테고리 | 정보제공 |
| text_type | text_story |
| 글자수 | 209자 |
| 해시태그 | #보험설계사절세 #법인전환 |
| fact_guard | ✅ 통과 (수치 위반 0건) |
| 문장 완결성 | ✅ OK |

### 업로드된 본문

```
주변에 이런 분이 있거든요.

수입은 높은데 세금 떼고 나면
허탈하다던 K씨.

TOP사업단에서 제공하는
법인/세무 전문가 지원을 통해
법인 전환 기초를 배웠습니다.

개인사업자일 때
종합소득세가 부담이었는데,
법인으로 전환하니
급여와 배당으로 나눠서
세금 구조를 짤 수 있게 된 거죠.

서울대보험쌤도 늘 말하지만
절세는 구조의 문제입니다.

K씨는 지금도 공부 중이에요.

#보험설계사절세 #법인전환
```

---

## 발견 이슈 및 해결

### 자체 해결 (3건)

1. **CLAUDECODE 중첩 세션 오류** — `env -u CLAUDECODE` 플래그로 환경변수 해제하여 실행
   - 상세: 스케줄러 컨텍스트에서 `CLAUDECODE` 환경변수가 설정되어 Claude CLI 기반 텍스트 생성 모듈이 중첩 세션 오류 발생. `env -u CLAUDECODE python3 run_text_post.py`로 해결.

2. **텍스트 생성 2회 검증 실패** — 3번째 시도(209자 text_story)에서 fact_guard 통과
   - 상세: TextContentGenerator가 내부적으로 최대 3회 재시도 로직을 갖고 있어 자동 처리. 1~2번째 시도는 검증 기준 미달(로그: WARNING 검증 실패 attempt 1/3, 2/3).

3. **Firestore ADC 인증 실패** — 로컬 파일 폴백으로 정상 동작 (발행 이력 저장됨)
   - 상세: Google Cloud ADC 미설정 환경으로 Firestore 초기화 실패. `output/.firestore_fallback/ta_history.json`에 발행 이력(`history_id=48c14e14-6415-41e9-93ca-1c94d42a05f4`) 정상 저장 확인.

---

## 생성/수정 파일 목록

- 코드 변경 없음 (기존 스크립트 실행만)
- `/home/jay/projects/ThreadAuto/output/.firestore_fallback/ta_history.json` — 발행 이력 갱신 (스크립트 자동 기록)

---

## API 호출 로그 (증거)

```
HTTP Request: GET https://graph.threads.net/v1.0/me ... "HTTP/1.1 200 OK"
HTTP Request: POST https://graph.threads.net/v1.0/26715152761436412/threads "HTTP/1.1 200 OK"
HTTP Request: POST https://graph.threads.net/v1.0/26715152761436412/threads_publish "HTTP/1.1 200 OK"
발행 이력 저장 완료: history_id=48c14e14-6415-41e9-93ca-1c94d42a05f4, post_id=18102826363733729
```

---

## 비고

- worktree 미사용 (시스템 실행 작업, 코드 변경 없음)
- chain_id 없음
- Firestore 장기 이슈 (ADC 미설정)는 범위 외 — 별도 인프라 작업 필요
