---
name: design-delivery-reel
description: "프로젝트 인물(예: 디자이너 유정이)과 실제 차종(예: 테슬라 로드스터)으로 20초 내외 9:16 코믹 스토리 릴스(수정 요청 → 날아서 출동 → 인쇄물 배달 같은 비트 구성)를 Seedance 2.5로 만들고, 자막을 얹어 Final로 내보내고, 글자 깨짐 같은 피드백은 문제 구간만 부분 재생성해 v2·v3로 고칠 때 쓴다. 트리거 예: 유정이 릴스 만들어줘, 디자인 배달부, 테슬라 타고 날아가는 웃긴 릴스, 20초 릴스, 글자 깨진 부분만 다시 만들어, 거기만 재생성해서 이어 붙여. English: funny story reel with my character and a car, fix only the broken part."
---

# 디자인 배달부 스토리 릴스 (생성 → 자막 → 부분 재생성)

적용 조건: 인물과 탈것으로 여러 비트가 이어지는 코믹 숏폼을 만들거나, 그렇게 만든 릴스의 피드백을 반영할 때만 쓴다. 원본 영상의 움직임을 따라 하는 작업은 ramp-run-landing 스킬을 쓴다.

## 시작 전에 사용자에게 묻기
이 스킬의 목적은 예시와 똑같은 영상을 다시 만드는 것이 아니라, 사용자만의 영상을 만드는 것이다. 작업을 시작하기 전에 아래 질문을 한 번에 묶어 묻는다.
- 요청에 이미 답이 있는 항목은 묻지 않는다.
- 사용자가 "알아서", "기본값으로"라고 하면 괄호 안 기본값으로 진행한다.
- 아이디어가 없어 보이면 예시와 다른 선택지 2–3개를 짧게 제안한다.
- 답을 받으면 확정한 내용을 한 줄로 요약해 보여 주고 시작한다.

1. 주인공은 누구이고, 직업 같은 설정은 무엇인가요?
2. 어떤 탈것으로 할까요? 실사 참조 사진이 있나요? (기본: 사진이 없으면 CC 라이선스 사진을 찾아 씀)
3. 어떤 이야기로 할까요? 5–6비트의 흐름. 아이디어가 없으면 에이전트가 2–3개를 제안한다.
4. 화면에 보일 글자(폰·간판·문서)가 있나요? 정확한 문구는요? (기본: 글자 없는 화면)
5. 자막은 어떤 언어와 말투로 넣을까요? (기본: 사용자의 언어로 비트마다 한 줄)
6. 길이와 예산은요? (기본: 20초, 견적을 먼저 보여 줌)

## 0. 준비
- 인물 시트를 `includeImage=true`로 확인한다. 직업 같은 인물 설정은 대화나 메모리에서 확인한 것만 쓴다(예: 유정이는 디자이너).
- **특정 차종은 실사 사진을 반드시 참조로 넣는다.** 글로만 쓰면 다른 차가 나온다(실제로 v1에서 테슬라 대신 페라리가 나왔다).
  - 프로젝트에 사진이 없으면 Wikimedia Commons에서 CC 라이선스 사진을 찾아 `import_web_asset`으로 에셋 폴더에 넣는다.
  - 파일 이름에 라이선스와 작가를 적는다. 예: `테슬라로드스터_참조_CC-BY_Jurvetson.jpg`

## 1. 콘티 (5–6비트)
예시:
1. 퇴근길 주행
2. 폰으로 "수정 딱 하나만요~" 요청을 받음
3. 차가 로켓처럼 날아서 출동
4. 인쇄물을 들고 질주
5. 고층 건물 창문으로 배달
6. 하늘로 떠나며 끝

**글자가 보이는 장면(폰, 간판, 문서)은 미리 정한다(프로젝트 규칙).**
- 프롬프트에 화면 내용과 정확한 문구를 적는다. 예: phone screen shows only "클라이언트" and "수정 딱 하나만요~" with a blue "확인" button, nothing else.
- 또는 글자 없는 화면으로 만든다(blank glowing screen, no readable text).
- 가장 안전한 방법은 그 컷만 따로 첫 프레임 이미지를 먼저 만들어 글자를 검수한 뒤 영상으로 만드는 것이다(§4의 3–4단계).

## 2. 생성
- 모델: Seedance 2.5
- 참조: [인물 시트, 차 사진]
- configs: `1080p`, `durationSeconds 20`, `aspectRatio 9:16`, `generateAudio true`
- 프롬프트:
  - 비트를 시간 순서대로 쓴다(first…, then…, finally…).
  - 차는 "the exact car shown in the second reference photo (same body shape, color, headlights)"처럼 참조 사진으로 지목한다.
  - 얼굴과 옷 유지, 코믹한 톤, 마지막에 No logo를 쓴다.
- 비용: 20초 기준 약 1,186크레딧. 먼저 견적을 받고 그 값을 `maxCredits`로 쓴다.
- 검수 시점: 0, 3, 7, 11, 14, 18, 20초. 차종, 얼굴, 비트 순서, 글자를 본다.
- 실패한 시도는 이름 끝에 `_시도1_탈락(차종불일치)`처럼 이유를 붙이고, 상태를 거절됨으로 바꾸고, 댓글에 이유를 남긴다.

## 3. 편집 → Final
- 새 영상 편집본을 만들고 클립을 V1에 넣는다. 소리는 A1에 연결된다(`add_clip_to_timeline`).
- 자막은 V2에 비트마다 `add_text_clip`으로 넣고, 자막끼리 0.1초씩 띄운다. 스타일(`set_text_style`):
  - pretendard, 굵기 700, 68px, x 0.5, y 0.17, 가운데 정렬
  - 외곽선 #000000, 두께 0.12, 글자색 흰색
  - 마지막 자막만 76px, y 0.2, 색 #FFE14D, 두 줄
- `export_draft`로 내보낸다. 이름 예: `유정이_디자인배달부_릴스_20초_Final.mp4`. 원본과 같은 폴더에 두고 상태는 검토 필요로 둔다.
- 0초에 제작 기록 댓글을 단다. 들어갈 내용: 모델, 참조, 비트 구성, 자막 목록, 확인한 시점, 라이선스 출처, 크레딧.

## 4. 피드백: 일부 구간 문제 → 그 구간만 재생성 (Final_v3 방식)
전체를 다시 만들지 않는다. 20초 재생성은 약 1,186크레딧, 부분 재생성은 약 29크레딧이다.
1. **컷 경계 찾기**: 편집기에서 `seek_editor`로 이동하며 캔버스를 캡처해 문제 컷의 시작과 끝 프레임을 찾는다. 예: 39프레임 1.3초 – 75프레임 2.5초(30fps).
2. **깨끗한 원본 프레임 저장**
   - V2·V3 자막 트랙을 숨기고 컷 중간(예: 1.9초)으로 이동한다.
   - `내보내기 → 현재 프레임 저장 → 프로젝트에 추가`로 저장한다.
   - 저장한 파일을 에셋 폴더로 옮긴다. 이름 예: `폰컷_원본프레임_1.9초_참조.png`
   - 트랙 숨김을 다시 해제한다.
3. **첫 프레임 이미지 다시 만들기**
   - 모델: GPT Image 2.5, 참조는 원본 프레임 1장(약 3크레딧)
   - 프롬프트: "Use the attached reference frame as the base: keep exactly the same smartphone, hand, framing and lighting. Update ONLY the content of the phone screen: '9:41' / '클라이언트' / '수정 딱 하나만요~' / '확인' button. Nothing else on the screen, no gibberish, Korean text spelled exactly as given, no extra text. Save as PNG."
   - 결과를 한 글자씩 대조한다. 틀리면 문구를 더 분명히 써서 한 번만 다시 만든다.
4. **짧은 영상으로 만들기**
   - 모델: Kling 3.0, 첫 프레임 = 위 이미지
   - configs: `1080p`, `3초`, `9:16`, `generateAudio false`(약 26크레딧)
   - 프롬프트: "Cinematic live-action footage, perfectly locked static camera, subtle natural motion only. The phone screen content stays perfectly still. No new text appears. One continuous shot with no cuts. First frame:"
5. **교체**
   - V1 원본 클립을 문제 구간 시작과 끝에서 `split_clip(includeLinked=false)`로 나눈다. A1 소리는 그대로 이어지게 둔다.
   - 가운데 조각을 지운다.
   - 새 클립을 넣고 `trim_clip`으로 구간 길이(예: 1.2초)에 맞춘 뒤 `move_clips`로 **V1의 같은 자리**에 놓는다. V3에 두면 V2 자막을 가린다.
6. **확인**
   - `get_timeline_layout`으로 V1이 [원본 | 새 컷 | 원본] 순서인지 확인한다.
   - 새 컷의 시작·중간·끝과 앞뒤 경계 프레임을 캡처해 본다.
7. **마무리**
   - `_Final_v3`처럼 버전을 올려 내보내고 상태를 검토 필요로 둔다.
   - 이전 버전에는 "v3로 대체" 댓글을 달고 닫힘으로 바꾼다.
   - 원 피드백 댓글에 답글을 단다(바꾼 구간, 방법, 비용, 확인 위치). `list_feedback`으로 commentId를 먼저 조회한다.
   - 새 버전에는 제작 기록 댓글을 단다. 참조 프레임 이미지는 닫힘으로 둔다.
- 급하게 가려야 할 때만 흰 바탕 텍스트 판으로 덮는다. 사용자가 재생성을 원하면 위 1–7을 따른다.

## 5. 검수 요령과 함정
- 프로젝트 재생기에서는 원하는 시점으로 이동할 수 없다. 재생 후 캡처하면 2–3초 간격으로만 잡혀서 1초짜리 구간은 놓친다. 짧은 구간은 편집기에서 `seek_editor` 후 캔버스 ref로 캡처한다. 캡처가 한 박자 늦게 갱신될 수 있으니 의심되면 다시 찍는다.
- 새로 업로드한 파일은 변환이 끝날 때까지 약 30초 동안 캡처가 막힌다.
- 내보낸 파일에서 직접 보지 못한 구간은 "사람이 재생해 확인 필요"라고 보고한다.
- "사용자가 작업 화면을 조작했습니다" 오류가 나면 `get_app_screen`으로 다시 조회한 뒤 이어서 한다.

## 6. 보고
파일 이름과 폴더 / 확인한 시점 / 직접 못 본 구간 / 실제 청구 크레딧(이번 작업과 누적) / 다음에 적용할 규칙.
