# ThreadAuto 파이프라인 리팩토링 (task-682)

## 목표
`five_stage_pipeline.py`를 `two_stage_pipeline.py`로 전면 리팩토링.
5단계(angle→structure→writing→hooking→review) → 2단계(generate→validate).
팀장이 Phase 분리하여 끝까지 자율 진행.

## 배경
- 기존 파이프라인: review 0점 반복, JSON 파싱 실패, pipeline hang 발생
- 에이전트 미팅 합의 완료: `memory/meetings/2026-03-18-threadauto-pipeline-improvement.md`

## 핵심 요구사항

### 1. 파이프라인 구조: 5→2단계
- **generate**: 통합 프롬프트 1회 호출 (기존 angle+structure+writing+hooking 흡수). 타입별 프롬프트 템플릿.
- **validate**: 규칙 기반 pass/fail (LLM 호출 금지, 순수 코드 검증)
  - JSON 스키마 검증 (필수 필드 존재, 타입 체크)
  - 글자수 범위 (텍스트 100~300자, 슬라이드 30~80자)
  - 금칙어 필터 ("보장합니다", "확실히", "무조건", "최대", "최소" 등 보험업법 위반 소지)
  - 구조 체크 (첫 줄 15자 이내, 마지막 줄 CTA 존재)
- fail 시 1회 재생성, 재생성도 fail → drop + Telegram 알림

### 2. 콘텐츠 타입: 6→3종
- empathy (공감), insight (인사이트), cardnews (카드뉴스)
- 타입 추가 시 프롬프트 템플릿 + validate 규칙만 추가하는 확장 구조

### 3. 안전장치 (필수)
- 재생성 fail → drop + 알림 (사일런트 실패 절대 금지)
- 일일 호출 상한: 50회 hard cap
- 최소 로깅: 생성시간, pass/fail, 재생성 여부, drop 사유

### 4. 게시 이중 트랙 (P1)
- **자동 트랙**: 화이트리스트 안전 주제 → validate 통과 시 즉시 게시
- **검수 트랙**: 리스크 주제 → Telegram 미리보기 + 승인 (5초 검수)
- 검수 타임아웃: 24h 미승인 → 자동 drop + 알림

### 5. 화이트리스트 (31개 확정)
아래 topic ID는 자동 게시 허용. 이외는 검수 트랙.
```
eg-009, eg-005, eg-006, eg-024, eg-021, eg-054, eg-059, eg-069, eg-173, eg-176,
eg-002, eg-003, eg-004, eg-058, eg-062, eg-171, eg-172, eg-101, eg-106,
eg-037, eg-032, eg-063, eg-073, eg-096, eg-186, eg-184, eg-188, eg-097, eg-202
```
**조건부 주제** (수치 언급 금지):
- eg-112: AI 마케팅 도구로 업무 시간을 줄이고 상담에만 집중한 결과
- eg-120: 이직 후 1년: 새 환경에서 자리 잡은 설계사의 솔직한 후기

화이트리스트는 하드코딩 (LLM 분류 금지).

### 6. CLI 유지
- 현행 Claude CLI subprocess 유지 (SDK 전환은 차기)
- CLI wrapper에 타임아웃(600s)·재시도(1회) 보강

## 참조 파일
- 기존 파이프라인: `/home/jay/projects/ThreadAuto/content/five_stage_pipeline.py`
- 에이전트 미팅 기록: `/home/jay/workspace/memory/meetings/2026-03-18-threadauto-pipeline-improvement.md`
- 토픽 DB: `/home/jay/projects/ThreadAuto/content/evergreen_topics.json`
- 프로젝트 루트: `/home/jay/projects/ThreadAuto/`

## 산출물
- `/home/jay/projects/ThreadAuto/content/two_stage_pipeline.py` (신규)
- 화이트리스트 설정 파일 (위치 자율)
- validate 규칙 모듈 (분리 권장)
- 기존 `five_stage_pipeline.py`는 삭제하지 말고 보존

## 주의사항
- 기존 파이프라인을 import하는 다른 파일 확인 후 import 경로 수정
- RAM 관리: generator + FFmpeg pipe 패턴 유지 (list(frames) 금지)
- 영상 관련: MoviePy + PIL 확정 (Remotion 폐기)
- Phase 분리하여 자율 진행. 각 Phase 완료 시 .done 통보.