# task-436.3: ThreadAuto Remotion Phase 3 — 영상 파이프라인 전환 (숏폼)

## 한시적 승인
제이회장님 한시적 승인 유지. Phase 3 완료 후 Phase 4도 자율 체이닝.

## ★ 자기체이닝 적용
이번부터 DIRECT-WORKFLOW.md의 자기체이닝 규칙이 적용됩니다.
Phase 3 완료 시 **Phase 4 지시서를 직접 작성**하세요.
- 경로: `memory/tasks/task-436.4.md`
- notify-completion.py가 chain_manager.py를 통해 자동 dispatch합니다.

## 이전 Phase 결과물 (반드시 확인)
- Phase 1 보고서: `/home/jay/workspace/memory/reports/task-436.1.md`
- Phase 2 보고서: `/home/jay/workspace/memory/reports/task-436.2.md`
- Remotion 프로젝트: `/home/jay/projects/ThreadAuto/remotion/`
- 마스터플랜: `/home/jay/workspace/memory/plans/threadauto-remotion/migration-draft.md` (Section 5, Phase 3)

## Phase 2 산출물 요약
- 슬라이드 5종: CoverSlide, CardListSlide, DetailSlide, BodySlide, SummaryCtaSlide
- 테마 5종: navy-gold, black-red, green-white, purple-pink, orange-cream
- render_bridge.py: render_from_slides() 호환 래퍼
- 25/25 렌더링 성공, pytest 13/13 PASS

## Phase 3 작업 내용: 영상 파이프라인 전환

마스터플랜 Section 5 Phase 3 참조. 구체적으로:

### 3-1. ShortForm Composition 등록
- `src/compositions/ShortForm/index.tsx` 생성
- 규격: 1080x1920, 30fps
- Root.tsx에 Video Composition 등록
- inputProps 타입 정의 (scenes 배열, theme, audio 경로 등)

### 3-2. Scene 컴포넌트 구현 (5종)
기존 MoviePy 코드 참조: `/home/jay/projects/ThreadAuto/video/`

마스터플랜 매핑표 참조:
- hook scene → useCurrentFrame() + interpolate() 텍스트 애니메이션
- checklist scene → Sequence + spring() 항목별 등장
- data scene → 숫자 카운트업 + 차트 애니메이션
- info scene → 정보 카드 fade-in
- cta scene → CTA 텍스트 + 브랜드 아웃트로

각 Scene: `src/scenes/{SceneName}.tsx`

### 3-3. 전환 효과
- `@remotion/transitions` 패키지 활용 (이미 설치됨 or npm install)
- fade, slide, zoom 전환 구현
- TransitionSeries로 Scene 간 전환 연결

### 3-4. Audio 컴포넌트
- `<Audio>` 컴포넌트로 BGM / TTS MP3 삽입
- Edge TTS MP3 파일 경로를 props로 받기
- 오디오 동기화: scene duration과 TTS 길이 매칭

### 3-5. Python 영상 파이프라인 연결
- `render_bridge.py`에 `render_video()` 함수 추가
- `npx remotion render ShortForm --props '{...}' --output video.mp4`
- 기존 video/ 파이프라인의 함수 시그니처와 호환되는 wrapper

### 3-6. 테스트
- 영상 1개 전체 렌더링 테스트 (모든 scene + 전환 + audio)
- 출력: MP4 파일, 1080x1920, 30fps
- Threads/Reels 업로드 규격 검증 (파일 크기, 코덱, 해상도)
- pytest + tsc --noEmit 에러 0건

## 산출물
- 보고서: `memory/reports/task-436.3.md`
- 샘플 영상: `remotion/output/samples/shortform_test.mp4`
- **다음 Phase 지시서**: `memory/tasks/task-436.4.md` (자기체이닝)

## 완료 시
1. 보고서 작성
2. Phase 4 지시서 작성 (마스터플랜 Phase 4 참조: 최적화 + 고급 효과)
3. notify-completion.py 호출 (자동 체이닝)

## 프로젝트 경로 규칙
- 코드: `/home/jay/projects/ThreadAuto/remotion/` (기존 위에 추가)
- 기존 video/ 코드 수정 금지 (병행 운영 유지)
- 필요한 npm 패키지 추가 설치 가능 (@remotion/transitions 등)

## 레벨: Lv.3
기존 MoviePy 분석 + Remotion 영상 컴포넌트 설계 + 오디오 동기화