feat: add versioned Blender production contracts
This commit is contained in:
@@ -6,6 +6,6 @@
|
||||
|
||||
개별 호출도 topic/story/scenes/final의 사용자 검토를 우회하지 않는다. 담당은 자기 새 버전과 검토를 제출하고 공유 진행·승인은 총괄만 바꾼다. 실제 파일이 없는 외부 결과를 완료로 처리하지 않는다.
|
||||
|
||||
필드·입력·승인 지점을 추가하지 않는다. 사례의 반전·위기·시간 배분은 모든 소재의 의무가 아니다. 실제 사용한 구성과 비적용 이유는 기존 review.md에 남긴다.
|
||||
계약에 없는 필드·입력·승인 지점을 추가하지 않는다. 새 제작은 1.1 Blender 계약, 기존 1.0은 보존·참조한다. scenes 승인 전 제한된 08 대표 샘플만 허용하고 정식 10–12는 승인 후 진행한다. 사례의 반전·위기·시간 배분은 모든 소재의 의무가 아니다. 실제 사용한 구성과 비적용 이유는 기존 review.md에 남긴다.
|
||||
|
||||
변경한 스킬의 머리말·이름·미완성 내용과 실제 상대 링크를 확인하고, 선행 결과·승인 부재·외부 파일 부재가 올바르게 보고되는지 검토한다. 불필요한 지원 파일·실행 프로그램·검증 프레임워크를 추가하지 않는다.
|
||||
|
||||
@@ -11,7 +11,7 @@ description: 승인된 대본·제목과 실제 컷 영상·통합 음성·자
|
||||
|
||||
개별 호출에서도 같은 제작물의 유효한 `03-script`, `04-title`, `06-tts`, `07-cuts`, `12-motion`과 그 선행 관계를 확인한다. 실제 사용한 다섯 결과의 `{stage_id, revision}`을 `inputs`에 기록한다. project.json의 story·scenes가 실제 사용자 승인이며 사용 버전과 연결되는지 확인한다. pending·changes_requested·stale 승인을 우회하지 않고 같은 승인 버전은 다시 묻지 않는다. 누락·미확인 파일·길이 불일치가 있으면 문제 단계·컷을 총괄에 보고하고 요청 준비 완료로 처리하지 않는다.
|
||||
|
||||
Qwen3-TTS 통합 WAV와 실측 구간, `gpt-image-2.5-sunburst` 이미지에서 이어진 실제 컷 영상, `references/1.png` 그림체를 유지한다. 이 스킬은 합성 엔진을 선택·구현하거나 실제 모델 API·합성을 실행하지 않고 도구에 중립적인 요청과 받은 결과 확인을 담당한다.
|
||||
Qwen3-TTS 통합 WAV와 실측 구간, 승인된 Blender Scene에서 렌더링한 실제 컷 영상·교육용 3D 기준을 유지한다. 기존 1.0 결과도 유효한 입력이면 보존·참조한다. 승인된 기존 Remotion + FFmpeg 경로로 합성하고 1.1의 기존 13 구조와 실제 결과를 확인한다. 실행 프로그램 준비·파일 존재와 실제 재생·청취 성공을 구분한다. 원본 references/1.png를 보존하며 도구를 임의로 바꾸지 않는다.
|
||||
|
||||
## 요청 연결
|
||||
|
||||
|
||||
@@ -1,42 +1,32 @@
|
||||
---
|
||||
name: short-video-images
|
||||
description: 승인된 짧은 영상의 컷별 시작·끝 이미지 요청서를 작성하고 11 이미지의 실제 PNG와 장면 연속성을 검증할 때 사용한다.
|
||||
description: 승인된 컷의 Blender Scene·시작/끝 상태와 논리 프레임을 작성하고 11의 실제 .blend·PNG·연속성을 검증한다.
|
||||
---
|
||||
|
||||
# 컷 이미지 요청과 결과 확인
|
||||
# Blender 컷 끝점 렌더
|
||||
|
||||
11-images만 담당한다. 각 컷에 시작과 끝 프레임이 필요하며 요청서만으로 생성 완료를 보고하지 않는다.
|
||||
## 입력과 경계
|
||||
|
||||
## 읽을 자료와 시작 조건
|
||||
[공통 계약](../../../docs/workflow-contracts.md), [전달 형식](../../../docs/contracts.md), [제작 지침](../../../docs/short-video-guide.md), [결과 스키마](../../../contracts/artifact.schema.json), [검토 양식](../../../templates/review.md)을 읽는다. 새 결과는 1.1이고 기존 1.0 결과를 보존·참조한다. 필수 입력 topic/language, Qwen3-TTS 기존 qwen3-tts 환경, 세로 9:16·최종 180000ms 이하·실측 컷 5000ms 이하를 유지한다.
|
||||
|
||||
- [공통 계약](../../../docs/workflow-contracts.md): 입력·선행 버전·경로·승인·실제 미디어 완료 기준.
|
||||
- [제작 지침](../../../docs/short-video-guide.md): 근거와 숫자, 화면의 역할, 연속 연결, 그림체와 주석.
|
||||
- [11 양식](../../../templates/stages/11-images.json), [결과 스키마](../../../contracts/artifact.schema.json), [검토 양식](../../../templates/review.md).
|
||||
- [그림체 기준](../../../references/1.png): 실제 이미지를 열어 가는 윤곽선·단순 형태·정돈된 색면·제한적인 음영을 확인한다.
|
||||
같은 제작물의 유효한 선행 버전·실제 파일과 topic/story/scenes 승인을 확인하고 사용 버전을 inputs에 기록한다. 필요한 결과·승인이 없거나 stale이면 누락과 돌아갈 단계를 총괄에 보고한다. 같은 유효 승인 버전은 다시 묻지 않는다. 08의 제한된 대표 화면·짧은 움직임만 scenes 승인 전 검토용으로 허용하며 정식 10–12 전체 제작·완료와 구분한다. 새 08·09 승인 후 정식 제작한다.
|
||||
|
||||
1. 제작물의 `topic`, `language`를 보존하고 세로 9:16, 전체 180000ms 이내, 각 컷 0ms 초과 5000ms 이하 조건을 확인한다.
|
||||
2. 같은 제작물의 유효한 02-research, 03-script, 07-cuts, 08-scenes, 09-entities, 10-references를 읽고 실제 사용 버전을 `inputs`에 기록한다. 10의 모든 필요한 기준 PNG와 참조가 검증되어야 한다. 자료가 없거나 stale·부분 결과이면 먼저 해결할 단계와 이유를 총괄에 보고한다.
|
||||
3. scenes 검토의 실제 사용자 응답과 `artifact_refs`가 사용하는 07·08·09 버전을 승인했는지 확인한다. 10이 이 승인 전에 진행되었다면 유효한 선행 완료로 취급하지 않는다. topic·story 등 앞선 승인도 유효해야 한다. 개별 호출로 선행 결과·승인을 우회하지 않으며 같은 승인 버전에 재승인을 요구하지 않는다.
|
||||
원본 references/1.png를 보존하고 단순 형태·정돈된 색을 교육용 3D로 해석한다. 단순 배경·부드러운 조명·선명한 형태를 사용하며 평면 복제·캠핑 소재·상표를 강제하지 않는다. 02의 조사와 대본 근거로 모델·재질·방향·상태·수치를 확인하고 사실에 없는 구조를 만들지 않는다. 설명 텍스트는 검증한 합성 텍스트로 배치한다.
|
||||
|
||||
## 컷별 요청서 작성
|
||||
## 컷별 Scene·끝점 요청
|
||||
|
||||
`payload.request`의 기존 `model`, `frames`만 사용하며 모델은 `gpt-image-2.5-sunburst`다. 스타일은 10의 기준 결과와 원본 `references/1.png`에 연결한다.
|
||||
[11 양식](../../../templates/stages/11-images.json)을 사용한다. 유효한 02/03/07/08/09/10과 10의 실제 기준 .blend·PNG를 확인한다. request={engine:"Blender",scene_path,render_profile,frames}. scene_path는 만들 원본의 루트 상대 경로다.
|
||||
|
||||
- 각 frame은 유일한 `id`, `cut_id`, `position`, `prompt`, `reference_ids`를 가진다. 07의 모든 컷마다 `position=start`와 `position=end`가 정확히 하나씩 있어야 한다. 추가 컷·중복 위치·누락은 허용하지 않는다.
|
||||
- `cut_id`는 07·08의 같은 컷을 가리키고, `reference_ids`는 10의 요청 `id`와 결과 `reference_id`가 일치하는 검증된 기준 이미지를 참조한다. 스타일 및 해당 컷의 인물·배경 기준을 포함하고 09의 등장 인물·배경 ID를 프롬프트에 연결한다.
|
||||
- `prompt`는 03의 관련 블록·주장, 02의 확인한 근거, 08의 해당 start_state/end_state와 camera를 따른다. 인물·배경의 고정 특징을 유지하고 의상·표정·시간 변화는 장면에 근거해 명시한다. 원본 스타일 이미지의 등장인물을 모든 영상의 고정 인물로 삼지 않는다.
|
||||
- 작동 원리와 단면·지도·주석의 구조·재료·방향·수치를 조사·대본과 대조한다. 근거가 없거나 선행 설계와 충돌하면 임의로 도해하지 말고 수정할 단계·컷을 보고한다. 단순화해도 사실에 중요한 차이를 남긴다.
|
||||
- 그림체는 첨부의 가는 윤곽선·단순 형태·색면·제한적 음영을 따른다. 참고 Shorts의 입체 렌더링이나 캠핑 소재·상표 복제를 강제하지 않는다. 부정확한 생성 글자·숫자는 검증한 텍스트로 합성하도록 메모한다.
|
||||
frame={id,cut_id,position,prompt,reference_ids,scene_name,frame_index}. 모든 실제 07 컷마다 start/end가 정확히 하나씩 있고 ID가 유일해야 한다. reference_ids는 10의 검증된 요청/결과 ID, scene_name은 비어 있지 않은 실제 Scene 이름, frame_index는 0 이상 논리 프레임이다. 같은 컷 start/end는 같은 Scene을 사용한다. 조사·대본·08 상태와 카메라·09 고정 특징을 prompt에 연결한다.
|
||||
|
||||
## 인접 프레임 연결
|
||||
continuous는 같은 Scene의 앞 end와 뒤 start 상태를 맞추고 실제 PNG를 공유해도 위치별 별도 ID를 유지한다. cut은 서로 다른 Scene의 같은 프레임 번호를 구별하며 캐시 식별에 Scene 이름을 포함한다. 연결을 임의로 바꾸지 않는다. Blender 실제 번호=논리 프레임+1로 평가한다. 영상은 [start,end) 구간이고 끝점 PNG는 end 자체를 평가한다.
|
||||
|
||||
08의 `connections.mode`와 `reason`을 따른다. continuous는 앞 컷 end와 다음 컷 start의 같은 인물·배경·물체 위치·행동 진행·흐름 방향·카메라 상태를 맞춘다. 동일한 이미지를 공유할 수 있으나 각 컷·위치에는 별도 frame ID를 유지하고, 두 결과의 실제 `media.path` 및 공유하는 end/start frame ID 관계를 `review.md`에 명시한다. cut은 위치·시간·시점이 어떻게 바뀌는지 프롬프트와 검토 메모에서 설명한다. 장면 연결을 이미지 단계에서 임의로 변경하지 않는다.
|
||||
result는 null 또는 {scene_file,frames:[{frame_id,media:image}]}다. 요청마다 실제 PNG가 누락·중복·추가 없이 대응하며 실제 .blend의 Scene·프레임·상태·재질·연결을 확인한다. 원본과 RenderProfile은 후속 12의 기준이다.
|
||||
|
||||
## 실제 결과 확인과 전달
|
||||
## 실제 결과와 전달
|
||||
|
||||
실제 제작 시 해당 모델과 세로 출력 지원을 확인한다. 확인하지 않은 API 파라미터를 고정하거나 다른 모델로 무단 대체하지 않는다. 지원이 확인되지 않거나 실제 결과가 없으면 요청서를 보존하고 `result=null`, `awaiting_input`을 총괄에 보고한다.
|
||||
승인된 저장소 내 Blender 실행 경로를 사용한다. 기존 설치를 무단 변경하거나 다른 도구로 바꾸지 않는다. 설치·요청 준비와 실제 렌더링 성공을 구분한다. .blend는 BlendFile={path,verified,sha256,blender_version}로 기록하고 실제 파일·해시·버전·재열기·Scene/자산을 검증한다. PNG/MP4 media로 위장하지 않는다. RenderProfile의 실제 지원을 확인하며 요청값을 실측 결과로 복사하지 않는다.
|
||||
|
||||
- 실제 부분 결과는 `payload.result.frames`에 보존한다. 각 결과는 `frame_id`, `media`이며 frame_id는 요청 frame의 `id`와 일치해야 한다. 모든 요청의 start/end 결과가 누락·중복 없이 검증되기 전 전체 complete로 보고하지 않는다.
|
||||
- `media`는 기존 `{path, kind, verified, duration_ms, width, height}`를 사용한다. 경로는 저장소 루트 기준이다. 실제 파일 존재·PNG 내용 형식·해상도와 화면을 확인한 경우만 `verified=true`다. `kind=image`, `duration_ms=null`, 크기는 실제 측정값이며 미확인 값은 null이다. 확장자·요청 크기·예제 경로만으로 검증하지 않는다. 실제 세로 9:16, 컷 상태·고정 특징·근거·연속성도 확인한다.
|
||||
- 자기 단계의 새 `stages/11-images/r<revision>/artifact.json`과 `review.md`만 작성하고 이전 버전을 덮어쓰지 않는다. 메모에 적용 원칙과 결과, 비적용 이유, 실제 모델·지원 확인, 컷·프레임·파일별 검증과 미확인 사항을 적는다. 새 JSON 필드·필수 입력·승인 지점은 만들지 않는다.
|
||||
- 모든 컷의 두 위치와 결과 검증을 대조해 준비 여부·남은 문제·후속 영향과 수정할 단계를 총괄에 보고한다. `project.json`, 상태·현재 포인터·사용자 승인은 총괄만 변경한다.
|
||||
media는 기존 여섯 키 {path,kind,verified,duration_ms,width,height}다. PNG는 image·duration_ms=null, MP4는 video·실측 양수 길이이며 실제 형식·해상도·9:16·내용을 확인한다. 확인한 파일만 verified=true이고 미확인 크기·시간은 null이다. 데이터 경로는 루트 상대 경로다. 실제 파일이 없으면 result=null·awaiting_input, 실행/검증 실패는 failed로 보고한다. 부분 결과와 실패 시도를 보존하며 전체 요청 결과가 검증되기 전 complete로 보고하지 않는다.
|
||||
|
||||
자기 단계의 projects/<project_id>/stages/<stage_id>/r<revision>/artifact.json과 같은 버전 review.md만 작성하고 이전 결과를 덮어쓰지 않는다. 실제 사용 버전·파일별 검사·명령·종료코드·미확인 영역·적용 원칙과 비적용 이유를 적는다. project.json·상태·현재 포인터·사용자 승인은 총괄만 갱신한다. 필드·열거값은 계약을 따르고 새 필수 입력·승인 지점을 만들지 않는다.
|
||||
|
||||
@@ -1,39 +1,32 @@
|
||||
---
|
||||
name: short-video-motion
|
||||
description: 승인된 컷·장면과 실제 시작/끝 이미지로 12-motion 영상 요청을 작성하고 받은 MP4의 길이·상태·연결을 확인한다.
|
||||
description: 승인된 실제 Blender 원본·Scene·끝점·실측 컷으로 12 렌더 요청을 작성하고 실제 MP4의 길이·상태·연결을 확인한다.
|
||||
---
|
||||
|
||||
# 컷 영상 요청과 결과 확인
|
||||
# Blender 컷 영상 렌더
|
||||
|
||||
## 시작 조건
|
||||
## 입력과 경계
|
||||
|
||||
[공통 계약](../../../docs/workflow-contracts.md)의 저장·전달, 실제 파일과 시간, 승인·수정 규칙과 [제작 지침](../../../docs/short-video-guide.md)의 설명에 필요한 움직임·장면 연결 절을 읽는다. [12 양식](../../../templates/stages/12-motion.json)과 [결과 스키마](../../../contracts/artifact.schema.json)의 `12-motion` 정의를 사용하며 새 필드를 추가하지 않는다.
|
||||
[공통 계약](../../../docs/workflow-contracts.md), [전달 형식](../../../docs/contracts.md), [제작 지침](../../../docs/short-video-guide.md), [결과 스키마](../../../contracts/artifact.schema.json), [검토 양식](../../../templates/review.md)을 읽는다. 새 결과는 1.1이고 기존 1.0 결과를 보존·참조한다. 필수 입력 topic/language, Qwen3-TTS 기존 qwen3-tts 환경, 세로 9:16·최종 180000ms 이하·실측 컷 5000ms 이하를 유지한다.
|
||||
|
||||
개별 호출에서도 같은 제작물의 유효한 `07-cuts`, `08-scenes`, `11-images`와 그 선행 관계를 확인한다. 실제 사용한 세 결과의 `{stage_id, revision}`을 `inputs`에 기록한다. `project.json`에서 story·scenes가 사용 버전과 연결된 실제 사용자 승인인지 확인하며 pending·changes_requested·stale 승인을 우회하지 않는다. 이미 승인된 같은 버전은 재승인을 요구하지 않는다. 자료·승인이 없으면 빠진 항목과 돌아갈 단계를 총괄에 보고한다.
|
||||
같은 제작물의 유효한 선행 버전·실제 파일과 topic/story/scenes 승인을 확인하고 사용 버전을 inputs에 기록한다. 필요한 결과·승인이 없거나 stale이면 누락과 돌아갈 단계를 총괄에 보고한다. 같은 유효 승인 버전은 다시 묻지 않는다. 08의 제한된 대표 화면·짧은 움직임만 scenes 승인 전 검토용으로 허용하며 정식 10–12 전체 제작·완료와 구분한다. 새 08·09 승인 후 정식 제작한다.
|
||||
|
||||
선행 조건인 Qwen3-TTS 통합 WAV의 실측 컷, `gpt-image-2.5-sunburst`의 실제 PNG, `references/1.png` 그림체를 유지한다. 그림체 참고에 캠핑 소재를 강제하지 않는다. 이 스킬은 영상 엔진을 선택·구현하거나 실제 모델 API·영상 생성을 실행하지 않고 도구에 중립적인 요청과 받은 결과 확인을 담당한다.
|
||||
원본 references/1.png를 보존하고 단순 형태·정돈된 색을 교육용 3D로 해석한다. 단순 배경·부드러운 조명·선명한 형태를 사용하며 평면 복제·캠핑 소재·상표를 강제하지 않는다. 02의 조사와 대본 근거로 모델·재질·방향·상태·수치를 확인하고 사실에 없는 구조를 만들지 않는다. 설명 텍스트는 검증한 합성 텍스트로 배치한다.
|
||||
|
||||
## 요청 작성
|
||||
## 원본과 프레임 범위
|
||||
|
||||
`payload.request.clips`는 07의 컷 순서대로 모든 컷을 정확히 한 번 포함한다. 각 항목은 다음 기존 필드만 사용한다.
|
||||
[12 양식](../../../templates/stages/12-motion.json)을 사용한다. 유효한 07/08/11, 실제 Qwen 통합 WAV의 실측 컷, 11의 검증된 .blend·시작/끝 PNG를 확인한다. request={engine:"Blender",scene_path,render_profile,clips}. scene_path는 11의 실제 원본 경로, render_profile은 11과 동일하다.
|
||||
|
||||
- `cut_id`: 07의 컷 ID. 08 장면과 11 프레임의 컷 참조가 같은지 확인한다.
|
||||
- `start_frame_id`, `end_frame_id`: 11 요청에서 해당 컷의 start/end인 ID. 11 결과의 `frame_id`로 실제 PNG를 찾고 `media.verified=true`와 이미지 내용을 확인한다.
|
||||
- `duration_ms`: 07의 실측 `end_ms-start_ms`. 양수이고 5000ms 이하이며 글자 수 추정으로 대체하지 않는다.
|
||||
- `motion_prompt`: 08의 시작→끝 상태, 설명에 필요한 물체·인물 동작, 흐름 방향과 카메라 동작을 전달한다. 별도 camera 필드를 만들지 않는다.
|
||||
clip={cut_id,start_frame_id,end_frame_id,duration_ms,motion_prompt,scene_name,start_frame,end_frame}. 07 순서의 모든 컷을 정확히 한 번 포함한다. 끝점 ID는 11의 같은 컷·위치이며 Scene 이름·논리 프레임도 일치해야 한다. start_frame/end_frame은 0 이상이며 end_frame>start_frame이다. duration_ms는 실측 end_ms-start_ms이고 0 초과 5000 이하이며 프레임 수×1000/fps와 정확히 같아야 한다. 미작성 null은 실행 준비가 아니다.
|
||||
|
||||
물높이 변화·부품 조작 등 원인과 결과를 보여주는 움직임을 우선한다. 줌·흔들림으로 설명을 대신하거나 근거 없는 구조·수치를 더하지 않는다. 시작/끝 이미지와 요청이 같은 변화를 설명해야 한다. continuous 연결은 이전 끝과 다음 시작의 위치·방향·카메라·인물·배경을 맞추고 cut 전환은 승인된 이유를 보존한다.
|
||||
원인과 결과를 보여주는 실제 물체·상태 변화와 카메라 동작을 motion_prompt에 적고 줌·흔들림으로 설명을 대신하지 않는다. [start_frame,end_frame) 프레임을 렌더링하고 논리 번호+1을 Blender에 전달한다. continuous 경계의 실제 상태를 맞추고 cut의 서로 다른 Scene·캐시를 구별한다. PNG end 자체와 MP4의 마지막 프레임(end-1) 검사를 구분한다.
|
||||
|
||||
## 받은 결과 확인
|
||||
result는 기존 null 또는 {clips:[{cut_id,media:video}]}다. 모든 요청 컷의 실제 MP4·길이·화면·동작·연속성을 검증한다. 요청과 실측이 다르면 12/11/08/07 중 문제 단계와 컷을 보고하고 음성·시간·속도를 임의 변경하지 않는다. 모든 파일이 확인되어야 13 합성에 전달한다.
|
||||
|
||||
요청만 준비되면 `payload.result=null`을 유지하고 awaiting_input으로 보고한다. 실제 결과는 `payload.result.clips`의 `{cut_id, media}`로 기록한다. 각 요청 cut_id에 MP4 한 개씩 대응해야 하며 누락·중복·요청 외 ID를 허용하지 않는다. 부분 결과는 보존하되 전체 요청을 받기 전 complete로 보고하지 않는다.
|
||||
## 실제 결과와 전달
|
||||
|
||||
media는 기존 `{path, kind, verified, duration_ms, width, height}`다. path는 저장소 루트 기준 상대 경로, kind는 video다. 실제 파일 존재·MP4 형식·재생 내용·길이·화면 크기를 확인한 뒤에만 verified=true와 실측 메타데이터를 기록한다. 파일 미확인은 verified=false, 확인하지 못한 메타데이터는 null이다. 요청값이나 확장자만으로 실측했다고 쓰지 않는다.
|
||||
승인된 저장소 내 Blender 실행 경로를 사용한다. 기존 설치를 무단 변경하거나 다른 도구로 바꾸지 않는다. 설치·요청 준비와 실제 렌더링 성공을 구분한다. .blend는 BlendFile={path,verified,sha256,blender_version}로 기록하고 실제 파일·해시·버전·재열기·Scene/자산을 검증한다. PNG/MP4 media로 위장하지 않는다. RenderProfile의 실제 지원을 확인하며 요청값을 실측 결과로 복사하지 않는다.
|
||||
|
||||
각 실제 클립 길이를 요청 duration_ms와 비교한다. 다르면 cut_id·요청/실측 길이·수정할 `12-motion`을 보고하며 임의로 컷·음성을 늘리거나 속도를 바꿔 통과시키지 않는다. 실제 시작/끝 상태와 동작·카메라·인접 연결도 확인한다. 프레임 문제는 `11-images`, 장면 설계 문제는 `08-scenes`, 시간 기준 문제는 `07-cuts`로 돌린다. 모든 컷의 실제 파일·길이·상태가 맞아야 합성 전달 준비로 보고한다.
|
||||
media는 기존 여섯 키 {path,kind,verified,duration_ms,width,height}다. PNG는 image·duration_ms=null, MP4는 video·실측 양수 길이이며 실제 형식·해상도·9:16·내용을 확인한다. 확인한 파일만 verified=true이고 미확인 크기·시간은 null이다. 데이터 경로는 루트 상대 경로다. 실제 파일이 없으면 result=null·awaiting_input, 실행/검증 실패는 failed로 보고한다. 부분 결과와 실패 시도를 보존하며 전체 요청 결과가 검증되기 전 complete로 보고하지 않는다.
|
||||
|
||||
## 저장과 보고
|
||||
|
||||
담당은 `projects/<project_id>/stages/12-motion/r<revision>/artifact.json`과 같은 버전 `review.md`만 작성한다. 이전 버전을 덮어쓰지 않고 [검토 양식](../../../templates/review.md)에 선행 버전, 요청 대비 실측 결과, 적용한 움직임 원칙·적용하지 않은 구성과 이유, 문제 단계·컷을 적는다.
|
||||
|
||||
총괄만 project.json의 상태·포인터·승인을 작성한다. 담당은 준비 여부·미확인 내용·후속 13/14 및 final 검토에 미치는 수정 영향을 보고한다. 사용자 final 승인 전 제작 완료를 선언하지 않는다.
|
||||
자기 단계의 projects/<project_id>/stages/<stage_id>/r<revision>/artifact.json과 같은 버전 review.md만 작성하고 이전 결과를 덮어쓰지 않는다. 실제 사용 버전·파일별 검사·명령·종료코드·미확인 영역·적용 원칙과 비적용 이유를 적는다. project.json·상태·현재 포인터·사용자 승인은 총괄만 갱신한다. 필드·열거값은 계약을 따르고 새 필수 입력·승인 지점을 만들지 않는다.
|
||||
|
||||
@@ -1,38 +1,30 @@
|
||||
---
|
||||
name: short-video-references
|
||||
description: 승인된 짧은 영상 장면과 반복 요소를 바탕으로 10 기준 이미지 요청서를 작성하고 실제 PNG 결과를 검증할 때 사용한다.
|
||||
description: 승인된 장면과 반복 요소로 Blender 기준 모델·렌더 요청을 작성하고 10의 실제 .blend·PNG 자산과 고정 특징을 확인한다.
|
||||
---
|
||||
|
||||
# 기준 이미지 요청과 결과 확인
|
||||
# Blender 기준 모델과 이미지
|
||||
|
||||
10-references만 담당한다. 요청서 작성은 이미지 생성 성공이나 단계 완료가 아니다.
|
||||
## 입력과 경계
|
||||
|
||||
## 읽을 자료와 시작 조건
|
||||
[공통 계약](../../../docs/workflow-contracts.md), [전달 형식](../../../docs/contracts.md), [제작 지침](../../../docs/short-video-guide.md), [결과 스키마](../../../contracts/artifact.schema.json), [검토 양식](../../../templates/review.md)을 읽는다. 새 결과는 1.1이고 기존 1.0 결과를 보존·참조한다. 필수 입력 topic/language, Qwen3-TTS 기존 qwen3-tts 환경, 세로 9:16·최종 180000ms 이하·실측 컷 5000ms 이하를 유지한다.
|
||||
|
||||
- [공통 계약](../../../docs/workflow-contracts.md): 입력·버전·경로·선행 결과·승인·미디어 완료 기준.
|
||||
- [제작 지침](../../../docs/short-video-guide.md): 근거와 숫자, 화면의 역할, 깔끔한 그림체와 작동 방식.
|
||||
- [10 양식](../../../templates/stages/10-references.json), [결과 스키마](../../../contracts/artifact.schema.json), [검토 양식](../../../templates/review.md).
|
||||
- [그림체 기준](../../../references/1.png): 실제 이미지를 열어 가는 윤곽선·단순 형태·정돈된 색면·제한적인 음영을 확인한다.
|
||||
같은 제작물의 유효한 선행 버전·실제 파일과 topic/story/scenes 승인을 확인하고 사용 버전을 inputs에 기록한다. 필요한 결과·승인이 없거나 stale이면 누락과 돌아갈 단계를 총괄에 보고한다. 같은 유효 승인 버전은 다시 묻지 않는다. 08의 제한된 대표 화면·짧은 움직임만 scenes 승인 전 검토용으로 허용하며 정식 10–12 전체 제작·완료와 구분한다. 새 08·09 승인 후 정식 제작한다.
|
||||
|
||||
1. 제작물의 `topic`, `language`, 현재 결과와 검토 기록을 확인한다. 세로 9:16, 전체 180000ms 이내, 각 컷 0ms 초과 5000ms 이하 조건을 보존한다.
|
||||
2. 같은 제작물의 유효한 02-research, 08-scenes, 09-entities 결과를 읽고 실제 사용 버전을 `inputs`에 기록한다. 필요한 선행 자료가 없거나 stale이면 총괄에 보완할 단계와 이유를 보고한다.
|
||||
3. 사용자가 07-cuts·08-scenes·09-entities의 현재 사용 버전을 scenes 검토에서 승인했는지 실제 응답과 `artifact_refs`로 확인한다. 그 전에 10 요청을 작성하거나 생성으로 넘어가지 않는다. topic·story 등 앞선 승인 경계도 유효해야 하며, 개별 호출은 선행 결과나 승인을 우회하지 않는다. 같은 승인 버전은 재승인을 요구하지 않는다.
|
||||
원본 references/1.png를 보존하고 단순 형태·정돈된 색을 교육용 3D로 해석한다. 단순 배경·부드러운 조명·선명한 형태를 사용하며 평면 복제·캠핑 소재·상표를 강제하지 않는다. 02의 조사와 대본 근거로 모델·재질·방향·상태·수치를 확인하고 사실에 없는 구조를 만들지 않는다. 설명 텍스트는 검증한 합성 텍스트로 배치한다.
|
||||
|
||||
## 요청서 작성
|
||||
## 요청과 자산 확인
|
||||
|
||||
`payload.request`의 기존 `model`, `style_reference`, `items`만 사용한다. 모델은 `gpt-image-2.5-sunburst`, 그림체 경로는 `references/1.png`다. 이 경로와 모든 JSON 미디어 경로는 저장소 루트 기준이다.
|
||||
[10 양식](../../../templates/stages/10-references.json)을 사용한다. 선행 결과는 유효한 02/08/09다. request={engine:"Blender",style_reference:"references/1.png",render_profile,items}이며 RenderProfile은 공통 계약을 따른다.
|
||||
|
||||
- 각 item은 유일한 `id`, `kind`, `entity_id`, `prompt`를 가진다. `kind=style`만 `entity_id=null`이며, character/background는 09의 해당 인물/배경 ID를 참조한다. 스타일과 09에서 필요한 모든 인물·배경을 빠짐없이 다룬다.
|
||||
- 프롬프트에 08의 장면·컷 ID, 09의 인물·배경 ID와 고정 특징을 연결한다. 고정 특징을 유지하고 의상·표정·시간에 따른 변화는 해당 장면에서 허용된 변화로 명시한다. 기준 이미지에 등장한 인물을 모든 영상의 고정 인물로 지정하지 않는다.
|
||||
- 02의 확인한 주장·출처를 근거로 작동 원리와 단면·지도·주석의 구조·재료·방향·수치를 점검한다. 선행 장면이 근거와 충돌하면 임의로 바꾸지 말고 수정할 단계와 문제를 보고한다.
|
||||
- 첨부 그림체를 적용하며 참고 Shorts의 입체 렌더링을 강제하지 않는다. 캠핑 소재·인물·상표를 복제하지 않는다. 표현을 단순화해도 사실에 중요한 재료·구조의 차이는 남긴다. 부정확한 생성 글자·숫자는 검증한 텍스트를 합성 단계에 배치하도록 보고한다.
|
||||
item={id,kind,entity_id,prompt}. ID는 유일하고 kind는 style/character/background/object다. style/object의 entity_id는 null, character/background는 실제 09의 해당 ID다. 스타일과 필요한 인물·배경·물체를 빠짐없이 요청하고 고정 특징·근거·08 상태를 prompt에 연결한다. 예제의 fps·samples·seed를 모든 제작의 고정값으로 취급하지 않는다.
|
||||
|
||||
실제 제작 시 해당 모델과 세로 출력 지원을 확인한다. 확인하지 않은 API 파라미터를 고정하거나 다른 모델로 무단 대체하지 않는다. 지원·결과가 확인되지 않으면 요청서와 미확인 내용을 남긴다.
|
||||
result는 null 또는 {scene_file,items}이며 결과 item={reference_id,object_name,media:image}다. 모든 요청 ID가 누락·중복·추가 없이 대응해야 한다. object_name은 실제 .blend의 오브젝트/컬렉션 이름이다. 모델·재질·고정 특징과 PNG를 함께 확인하고 불일치는 장면/요소/조사 단계로 보고한다.
|
||||
|
||||
## 결과 검증과 전달
|
||||
## 실제 결과와 전달
|
||||
|
||||
- 결과가 없으면 `payload.result=null`로 두고 총괄에 `awaiting_input`을 보고한다. 실제 받은 부분 결과는 `result.items`에 보존하되 전체 완료로 보고하지 않는다.
|
||||
- 각 결과는 `reference_id`, `media`를 사용한다. `reference_id`는 요청 item의 `id`와 일치해야 하며, 중복·누락·알 수 없는 ID가 없어야 한다. 모든 스타일·인물·배경 요청의 실제 결과와 고정 특징을 대조한다.
|
||||
- `media`는 기존 `{path, kind, verified, duration_ms, width, height}`만 사용한다. 실제 파일 존재·PNG 내용 형식·해상도를 확인하고 화면을 열어 확인한 경우만 `verified=true`로 기록한다. `kind=image`, `duration_ms=null`, width/height는 실제 측정값이다. 미확인 파일은 false, 미확인 크기는 null이며 예제 경로를 실제 결과로 기록하지 않는다. 세로 출력 조건도 실제 해상도로 확인한다.
|
||||
- 자기 단계의 새 `stages/10-references/r<revision>/artifact.json`과 `review.md`만 작성하고 이전 버전을 덮어쓰지 않는다. 검토 메모에 사용한 원칙·적용 결과·소재에 맞지 않아 적용하지 않은 원칙의 이유, 실제 모델·지원 확인 근거, 파일별 검증 결과와 남은 문제를 적는다. 새로운 JSON 필드·필수 입력·승인 지점은 만들지 않는다.
|
||||
- 요청 전체와 실제 결과 검증이 충족되면 준비 여부를 총괄에 보고한다. `project.json`, 단계 상태·현재 포인터·사용자 승인은 총괄만 변경한다. 변경이 후속 이미지에 미치는 영향도 함께 보고한다.
|
||||
승인된 저장소 내 Blender 실행 경로를 사용한다. 기존 설치를 무단 변경하거나 다른 도구로 바꾸지 않는다. 설치·요청 준비와 실제 렌더링 성공을 구분한다. .blend는 BlendFile={path,verified,sha256,blender_version}로 기록하고 실제 파일·해시·버전·재열기·Scene/자산을 검증한다. PNG/MP4 media로 위장하지 않는다. RenderProfile의 실제 지원을 확인하며 요청값을 실측 결과로 복사하지 않는다.
|
||||
|
||||
media는 기존 여섯 키 {path,kind,verified,duration_ms,width,height}다. PNG는 image·duration_ms=null, MP4는 video·실측 양수 길이이며 실제 형식·해상도·9:16·내용을 확인한다. 확인한 파일만 verified=true이고 미확인 크기·시간은 null이다. 데이터 경로는 루트 상대 경로다. 실제 파일이 없으면 result=null·awaiting_input, 실행/검증 실패는 failed로 보고한다. 부분 결과와 실패 시도를 보존하며 전체 요청 결과가 검증되기 전 complete로 보고하지 않는다.
|
||||
|
||||
자기 단계의 projects/<project_id>/stages/<stage_id>/r<revision>/artifact.json과 같은 버전 review.md만 작성하고 이전 결과를 덮어쓰지 않는다. 실제 사용 버전·파일별 검사·명령·종료코드·미확인 영역·적용 원칙과 비적용 이유를 적는다. project.json·상태·현재 포인터·사용자 승인은 총괄만 갱신한다. 필드·열거값은 계약을 따르고 새 필수 입력·승인 지점을 만들지 않는다.
|
||||
|
||||
@@ -11,7 +11,7 @@ description: 13-compose의 실제 완성본을 여섯 영역에서 검수해 14-
|
||||
|
||||
개별 호출에서도 같은 제작물의 유효한 `13-compose`와 검수에 직접 사용한 선행 결과를 확인하고 실제 사용한 `{stage_id, revision}`을 `inputs`에 기록한다. 대본·제목·근거, 실측 음성·컷, 장면·인물·배경·이미지·영상은 검수에 필요한 해당 결과와 그 선행 관계를 읽는다. 다른 제작물·오래된 버전·stale 결과를 섞지 않는다.
|
||||
|
||||
project.json에서 story·scenes가 사용 버전과 연결된 실제 사용자 승인인지 확인한다. pending·changes_requested·stale 승인을 우회하지 않으며 같은 승인 버전은 재승인을 요구하지 않는다. 선행 조건인 Qwen3-TTS 음성, `gpt-image-2.5-sunburst` 이미지, `references/1.png` 그림체를 유지한다. 이 스킬은 실제 모델 API·영상 생성·합성 실행이나 엔진 선택을 담당하지 않는다.
|
||||
project.json에서 story·scenes가 사용 버전과 연결된 실제 사용자 승인인지 확인한다. pending·changes_requested·stale 승인을 우회하지 않으며 같은 승인 버전은 재승인을 요구하지 않는다. 선행 조건인 Qwen3-TTS 음성, 승인된 Blender 교육용 3D·실제 컷 영상과 Remotion + FFmpeg 합성 결과를 확인한다. references/1.png 원본은 보존하고 기존 1.0 결과도 유효한 선행 자료로 참조한다. 이 스킬은 실제 최종 영상 검수만 담당하며 도구를 임의로 바꾸지 않는다. 1.1의 14 구조와 여섯 검수 영역을 유지한다.
|
||||
|
||||
13의 실제 MP4·SRT를 열고 영상을 끝까지 시청·청취한다. `media.verified=true`만으로 검수자의 관찰을 대신하지 않는다. 실제 최종 영상이 없거나 재생해 볼 수 없으면 recommendation=incomplete이며 확인하지 못한 영역은 not_checked로 남긴다. 빠진 결과·파일·승인과 돌아갈 단계를 총괄에 보고한다. 선행 파일 미확인은 verified=false, 미확인 메타데이터는 null로 취급하며 부분 결과의 완료를 인정하지 않는다.
|
||||
|
||||
|
||||
@@ -23,7 +23,9 @@ description: 짧은 영상의 실제 컷마다 설명할 화면과 시작·끝
|
||||
4. 07 순서의 각 인접 컷 쌍에 connections를 정확히 하나 작성한다. from_cut_id·to_cut_id는 해당 인접 쌍을 참조하고 mode는 continuous 또는 cut이다. reason에 설명이 이어지거나 위치·시간·시점이 바뀌어야 하는 이유를 적는다.
|
||||
5. continuous는 앞 컷 end_state와 다음 start_state의 인물·물체 위치, 흐름 방향, 카메라 상태를 맞춘다. cut은 새로운 시점·상태를 이해할 수 있게 제시한다. 일정한 간격만을 이유로 전환하지 않는다.
|
||||
|
||||
정확한 필드·타입은 양식·스키마를 따른다. 기존 description·상태·camera·연결 필드에 담고 새 필드를 추가하지 않는다. 고정 그림체는 `references/1.png`를 따르되 이미지의 캠핑 소재를 새 배경으로 강제하지 않는다.
|
||||
정확한 필드·타입은 양식·스키마를 따른다. 1.1의 description·상태·camera·연결과 preview 필드를 사용한다. 기존 1.0 입력은 보존·참조한다. 원본 `references/1.png`의 단순 형태·정돈된 색을 교육용 3D로 해석하고 단순 배경·부드러운 조명·선명한 형태를 사용한다. 평면 복제·캠핑 소재를 강제하지 않는다.
|
||||
|
||||
scenes 승인 전에 제한된 대표 Scene의 실제 .blend·PNG·짧은 MP4를 visual-designer/video-editor의 해당 책임으로 준비해 `payload.preview`에 기록할 수 있다. BlendFile·RenderProfile·sample의 정확한 구조는 공통 계약과 스키마를 따른다. sample ID·실제 컷 ID·파일·해시·버전·실제 렌더 프로필·판독성을 확인한다. 자료가 없으면 preview=null이며 준비 완료로 제시하지 않는다. 이 샘플은 기존 scenes 검토에 포함하는 품질 근거이고 정식 10–12 완료나 추가 승인 지점이 아니다. 새 08·09 승인 전 전체 제작을 하지 않는다.
|
||||
|
||||
## 제출과 검토 경계
|
||||
|
||||
|
||||
@@ -35,18 +35,18 @@ description: 주제와 언어로 14단계 짧은 영상 제작을 시작하거
|
||||
|
||||
1. 01 후보·선택·범위의 topic 검토를 요청한다. 실제 사용자 승인 전 02를 시작하지 않는다.
|
||||
2. 02 근거와 03 대본·04 제목의 story 검토를 요청한다. 제목·첫 문장의 약속과 결말, 블록 연결·주장·비유의 한계를 제시한다. 승인 전 05를 시작하지 않는다.
|
||||
3. 검증된 실제 음성으로 07을 준비하고 08·09를 같은 묶음으로 완성해 scenes 검토를 요청한다. 실측 구간·상태 변화·연결·고정 특징과 주석 근거를 제시한다. 승인 전 10을 시작하지 않는다.
|
||||
3. 검증된 실제 음성으로 07을 준비하고 08·09를 같은 묶음으로 완성해 scenes 검토를 요청한다. 실측 구간·상태 변화·연결·고정 특징과 주석 근거, 08 preview의 실제 대표 화면·짧은 움직임을 제시한다. 대표 샘플의 교육용 3D 품질을 같은 scenes 검토에서 확인한다. 승인 전에는 이 제한된 샘플만 허용하며 정식 10–12 전체 제작을 시작하지 않는다.
|
||||
4. 실제 13 완성본과 14 검수 보고의 final 검토를 요청한다. 승인 전 제작 완료를 선언하지 않는다.
|
||||
|
||||
검토한 stage_id·revision은 artifact_refs에 고정하고 실제 사용자 응답을 feedback에 기록한다. 응답이 없으면 pending 결정과 awaiting_review 상태로 기다린다. 담당의 선택 제안·검수자의 pass를 사용자 승인으로 만들지 않는다. 변경 요청은 수정할 단계와 새 버전을 배정한다.
|
||||
|
||||
## 실제 미디어가 없는 경우
|
||||
|
||||
현재 구성은 요청·결과 확인 지침과 양식이며 생성·합성을 실행하는 프로그램은 제공하지 않는다. 06은 기존 qwen3-tts 환경의 Qwen3-TTS, 10–11은 gpt-image-2.5-sunburst로 요청한다. 실제 제작 도구의 모델·화자·언어·출력 지원은 그때 확인하며 전역 환경 재설치·무단 대체를 하지 않는다. 12·13은 특정 영상·합성 엔진을 선택하지 않은 전달 계약이다.
|
||||
새 양식·결과는 계약 1.1이며 새 프로젝트 settings.visual_engine은 Blender다. 06은 기존 qwen3-tts 환경의 Qwen3-TTS, 10–12는 승인된 저장소 내 Blender 실행 경로, 13은 기존 Remotion + FFmpeg 합성 경로를 사용한다. 기존 1.0 결과·승인·WAV를 보존하고 유효한 선행 버전으로 참조한다. 전역 환경 재설치·무단 도구 대체를 하지 않고 설치 확인과 실제 실행 성공을 구분한다.
|
||||
|
||||
result=null 또는 필수 실제 자료 부재는 awaiting_input이다. 다음 담당에게 필수 파일이 준비됐다고 보고하지 않는다. 결과 제출 시 요청 ID·선행 버전·모든 항목·파일 존재·형식·실측 메타데이터를 확인한다. 부분 제출은 보존하지만 전 단계 완료가 아니다. 실패는 원인과 blocking 여부를 issues에 기록하고 failed로 보고한다.
|
||||
|
||||
세로 9:16, 최종 180000ms 이내, 각 컷 0ms 초과 5000ms 이하를 확인한다. 그림체는 references/1.png의 윤곽선·단순 형태·색면 기준이며 캠핑 소재·인물·상표를 강제하지 않는다. 07은 실제 통합 음성을 0부터 끝까지 덮고 자막은 별도로 정렬한다. 예상 시간·가상 경로는 실제 확인 근거가 아니다. 음성 길이 초과는 대본 수정과 story 재승인으로 돌린다.
|
||||
세로 9:16, 최종 180000ms 이내, 각 컷 0ms 초과 5000ms 이하를 확인한다. 원본 references/1.png를 보존하고 단순 형태·정돈된 색을 교육용 3D로 해석한다. 단순 배경·부드러운 조명·선명한 형태를 사용하며 평면 복제와 캠핑 소재·인물·상표를 강제하지 않는다. 07은 실제 통합 음성을 0부터 끝까지 덮고 자막은 별도로 정렬한다. 예상 시간·가상 경로는 실제 확인 근거가 아니다. 음성 길이 초과는 대본 수정과 story 재승인으로 돌린다.
|
||||
|
||||
## 변경과 완료
|
||||
|
||||
|
||||
Reference in New Issue
Block a user