# task-628.1 완료 보고서: ThreadAuto에 5단계 AI 콘텐츠 파이프라인 적용

## SCQA

**S**: ThreadAuto는 Threads(Meta) 보험/연금 마케팅 자동화 시스템으로, 텍스트 포스트(TextContentGenerator)와 카드뉴스(ContentGeneratorV2) 2가지 콘텐츠를 일일 파이프라인으로 생성한다.

**C**: 현재 콘텐츠 생성이 단일 LLM 호출 구조로, 각도·구조·글·훅·검수를 한 번에 처리하여 품질이 평균에 수렴하며, 특정 단계만 재시도할 수 없어 비용과 지연이 발생한다.

**Q**: AI 콘텐츠 5단계 파이프라인(각도→구조→글→후킹→검수)을 적용하여 단계별 독립 최적화와 재시도가 가능한 구조를 구축할 수 있는가?

**A**: 5단계 파이프라인 모듈(`FiveStagePipeline`)을 구현하여 기존 `pipeline_mode="legacy"`와 병존하는 `pipeline_mode="5stage"` 옵션으로 추가. pytest 41건 전통과, pyright 에러 0건. 기존 테스트 1261건 통과(12건 기존 실패, 본 작업 무관).

## 생성/수정 파일 목록

**신규 생성 (8개)**
- `docs/five-stage-pipeline.md` — 스펙 문서 (55KB, 1359줄)
- `prompts/pipeline/01_angle.md` — 각도 프롬프트 템플릿
- `prompts/pipeline/02_structure.md` — 구조 프롬프트 템플릿
- `prompts/pipeline/03_writing.md` — 글쓰기 프롬프트 템플릿
- `prompts/pipeline/04_hooking.md` — 후킹 프롬프트 템플릿
- `prompts/pipeline/05_review.md` — 검수 프롬프트 템플릿
- `content/five_stage_pipeline.py` — 핵심 모듈 (FiveStagePipeline 클래스)
- `content/pipeline_prompts.py` — 프롬프트 로더
- `tests/test_five_stage_pipeline.py` — 테스트 (41건)

**수정 (1개)**
- `content/pipeline.py` — `run_daily_pipeline(pipeline_mode="legacy")` 파라미터 추가, CLI `--pipeline-mode` 인자 지원

## 테스트 결과

- 5단계 파이프라인 테스트: **41/41 passed** (0.13s)
- 전체 테스트 스위트: **1261/1273 passed** (83s)
- 실패 12건: 기존 실패 (본 작업 범위 외)
  - `test_cta_linebreak` 1건: fact_db 내용 불일치
  - `test_evergreen_topics` 2건: 초기값 불일치 (데이터 변경)
  - `test_padding_consistency` 2건: 렌더러 상수 변경
  - `test_threads_video_gen` 7건: 비디오 파일 부재 (다른 worktree 경로)
- pyright: **0 errors, 0 warnings**
- black + isort: 적용 완료

## 발견 이슈 및 해결

### 자체 해결 (3건)
1. **`_run_stage` 시그니처 불일치** — 테스트에서 2인자(`stage, prompt`) 호출과 실제 3인자(`stage, system, user`) 호출 모두 지원 필요 → `user_prompt: str | None = None` 디폴트 인자로 해결
2. **`load_stage_prompt` 단수/복수 불일치** — 테스트가 단수(`load_stage_prompt`), 코드가 복수(`load_stage_prompts`)로 참조 → 별칭 함수 추가
3. **프롬프트 템플릿 파싱 시 코드블록 내 `##` 오인** — 마크다운 코드블록 안의 소제목을 섹션 경계로 오인 → 상태 기계 방식 파서로 해결

### 범위 외 미해결 (1건)
1. **기존 12건 테스트 실패** — 범위 외 사유: 다른 작업(task-461.1)에서 변경된 데이터/렌더러/비디오 관련, 본 작업 무관

## 머지 판단
- **머지 필요**: Yes → **자동 머지 완료** (체인 중간 Phase)
- **브랜치**: task/task-628.1-dev2
- **머지 의견**: pytest 41건 전통과, pyright 0 에러, 기존 테스트 회귀 없음

## 다음 Phase
- **다음 Phase 지시서**: `/home/jay/workspace/memory/tasks/task-628.2.md`
- **내용**: 사전 준비물 3종(MASTER_BRIEF, HOOK_BANK, LOGIC_MAP) 구축 + 프롬프트 고도화

## QC 자동 검증

- **overall**: WARN (Gate PASS)
- file_check: PASS (5/5, 파일 존재 + 보고서 확인)
- data_integrity: PASS
- test_runner: SKIP (--test-dir 미지정, 별도 pytest 수동 실행으로 검증 완료: 41/41 passed)
- tdd_check: PASS (테스트 1개 + 구현 3개 확인)
- pyright_check: WARN (14건 — 전부 `reportMissingImports`, 프로젝트 루트 외부 실행 시 기존 패턴과 동일)
- style_check: PASS (black + isort OK)
- .done 생성: `/home/jay/workspace/memory/events/task-628.1.done`

**⚠️ 기존 테스트 실패 1건 (본 작업 범위 외)**: `test_cta_linebreak.py::TestFactDbContainsBusinessPage::test_fact_db_contains_business_page` — fact_db.md에 '사업단 페이지' 표기 미존재 (데이터 내용 이슈)
