# task-718.1: Threads 텍스트 포스트 업로드 1건

## SCQA

**S**: ThreadAuto 5단계 AI 파이프라인이 가동 중이며, Threads API 토큰이 유효한 상태(만료: 2026-05-04)이다.

**C**: task-718.1로 텍스트 전용 포스트 1건 업로드가 요청되었다. 이전 작업(task-665.1)에서 문장 중간 잘림 이슈가 보고된 바 있어 텍스트 완결성 검증이 필요하다.

**Q**: 5단계 파이프라인으로 품질 기준을 충족하는 텍스트를 생성하고 Threads에 정상 업로드할 수 있는가?

**A**: text_insight 타입으로 콘텐츠를 생성하여 Threads에 업로드 완료. 검수 점수 50점(기준 42점), 글자수 161자(기준 100~300자), 문장 잘림 없음. post_id `18058555253419197` 확인.

## 실행 결과

- **post_id**: `18058555253419197`
- **content_type**: text_insight
- **토픽**: MZ세대 보험 가입 행태 변화와 설계사 영업 접근법
- **카테고리**: 업계동향
- **검수 점수**: 50점 (기준: 42점)
- **글자수**: 161자 (줄바꿈 제외, 기준: 100~300자)
- **해시태그**: #보험설계사, #GA이직, #MZ영업

## 텍스트 전문

```
MZ가 보험을 거부하는 게 아닙니다.
거부하는 건 '설명 방식'입니다.

현장에서 보면 그 세대도
유튜브 찾아보고, 직접 비교합니다.
'권유받는 것'에 지쳐있는 거지,
보험이 싫은 게 아닙니다.

설득이 아니라 납득.
정보를 먼저 주는 설계사가 선택됩니다.

지점에서 MZ 고객 영업 방식
어떻게 바꿔보셨나요?
```

## 텍스트 품질 검증

- 문장 중간 잘림: 없음 (질문형으로 완결)
- 한국어 종결어미: 정상 (질문형 "~셨나요?" 종결)
- AI 냄새 패턴: 미검출
- 글자수 범위: 161자 (100~300 범위 내)

## 생성/수정 파일

- `/home/jay/workspace/teams/dev2/task_718_1_text_post.py` — 실행 스크립트 (신규)
- `/home/jay/projects/ThreadAuto/output/text_content.json` — 생성된 콘텐츠 JSON

## 발견 이슈 및 해결

### 자체 해결 (3건)

1. **`.threads_token` 파일이 비어있음 (0 bytes)** — `auth.token_store.get_valid_token()`을 사용하여 `.tokens/token.json`에서 정상 토큰 로드. 기존 text_posting.py의 토큰 로드 방식과 다르나, token_store.py가 공식 토큰 관리 모듈.
2. **기존 text_posting.py가 task-665.1 전용으로 하드코딩** — task-718.1 전용 실행 스크립트를 별도 작성하여 공식 토큰 스토어와 토픽 셀렉터를 사용하도록 구현.
3. **text_insight 자수 제한 확인 필요** — 5단계 파이프라인의 TEXT_CHAR_LIMITS에서 text_insight가 (100, 300)으로 설정됨을 확인. 생성된 161자는 범위 내.

### 범위 외 미해결 (0건)

없음.

## QC 셀프 체크리스트

- [x] 1. 다른 파일 영향: 없음 (파이프라인 실행 + Threads API 호출만 수행)
- [x] 2. 엣지 케이스: 토큰 만료, 텍스트 잘림, API 실패 — 모두 정상 처리됨
- [x] 3. 작업 지시 일치: 텍스트 포스트 1건 업로드, post_id 확인, 전문 포함 — 일치
- [x] 4. 에러 처리/보안: 토큰은 token_store.py를 통해 관리, API 호출은 기존 검증된 클라이언트 사용
- [x] 5. 테스트: Lv.1 운영 작업이므로 별도 테스트 불필요
- [x] 6. 발견 이슈 모두 해결: 3건 자체 해결, 미해결 0건

## QC 자동 검증 결과

```json
{
  "task_id": "task-718.1",
  "verified_at": "2026-03-19T23:04:46",
  "overall": "PASS",
  "summary": "3 PASS, 7 SKIP"
}
```

- file_check: PASS (보고서 3,374 bytes)
- data_integrity: PASS
- critical_gap: PASS
- tdd_check: SKIP (Lv.1 운영 작업, check_files 미지정)
- test_runner: SKIP (관련 테스트 없음)
- 기타: SKIP (해당 없음)
