feat: connect workflow guidance and illustrative examples

This commit is contained in:
NINI
2026-10-08 01:04:41 +09:00
parent d5860c95c9
commit 656b9344b1
36 changed files with 1673 additions and 3 deletions
@@ -0,0 +1,57 @@
{
"schema_version": "1.0",
"project_id": "water-cycle",
"stage_id": "02-research",
"revision": 1,
"inputs": [
{
"stage_id": "01-topic",
"revision": 1
}
],
"payload": {
"sources": [
{
"id": "s1",
"title": "Evaporation and the Water Cycle",
"url": "https://www.usgs.gov/water-science-school/science/evaporation-and-water-cycle",
"publisher": "U.S. Geological Survey",
"accessed_at": "2026-10-08"
},
{
"id": "s2",
"title": "Infiltration and the Water Cycle",
"url": "https://www.usgs.gov/water-science-school/science/infiltration-and-water-cycle",
"publisher": "U.S. Geological Survey",
"accessed_at": "2026-10-08"
}
],
"claims": [
{
"id": "c1",
"text": "증발은 액체 물이 기체 수증기로 바뀌어 지표에서 대기로 이동하는 과정이다.",
"source_ids": [
"s1"
],
"assessment": "verified"
},
{
"id": "c2",
"text": "강수로 내린 물은 침투와 스며듦을 통해 땅속으로 이동할 수 있다.",
"source_ids": [
"s2"
],
"assessment": "verified"
},
{
"id": "c3",
"text": "토양 특성과 지표 덮개 등은 물이 침투하는 정도에 영향을 준다.",
"source_ids": [
"s2"
],
"assessment": "verified"
}
],
"open_questions": []
}
}
@@ -0,0 +1,9 @@
# 02-research 예제 검토
이 자료는 텍스트 내용 양식을 설명하는 예제이며 실제 제작 실행·사용자 승인이 아니다. 진행 기록의 현재 결과는 01뿐이다.
- 예제 결과를 실제 배정받아 제출할 때 필요한 상태: draft
- 입력과 payload: 같은 폴더의 artifact.json 참조.
- 적용한 원칙: 중심 질문의 답으로 이어지는 설명, 입력 언어 보존, 새 필드 없는 기존 계약.
- 적용하지 않은 구성: 실제 실패한 대안이나 위기가 없는 소재이므로 반전·위기를 넣지 않았다.
- 다음 조건: 선행 결과와 실제 사용자 승인·필수 파일을 먼저 확인한다.
@@ -0,0 +1,63 @@
{
"schema_version": "1.0",
"project_id": "water-cycle",
"stage_id": "03-script",
"revision": 1,
"inputs": [
{
"stage_id": "01-topic",
"revision": 1
},
{
"stage_id": "02-research",
"revision": 1
}
],
"payload": {
"blocks": [
{
"id": "b1",
"text": "비가 그친 뒤, 물웅덩이가 작아지는 모습을 본 적 있나요? 물은 어디로 가는 걸까요?",
"claim_ids": []
},
{
"id": "b2",
"text": "한 가지 길은 공기 쪽이에요. 액체인 물이 기체인 수증기로 바뀌어 공기 중으로 이동합니다.",
"claim_ids": [
"c1"
]
},
{
"id": "b3",
"text": "이 변화를 증발이라고 불러요. 물이 다른 모습으로 이동하는 거예요.",
"claim_ids": [
"c1"
]
},
{
"id": "b4",
"text": "땅으로 가는 길도 있어요. 물은 땅속으로 스며들 수 있어요. 비로 내린 물의 일부도 이렇게 이동합니다.",
"claim_ids": [
"c2"
]
},
{
"id": "b5",
"text": "바닥의 성질 같은 조건에 따라 물이 스며드는 정도가 달라져요.",
"claim_ids": [
"c3"
]
},
{
"id": "b6",
"text": "그러니 물웅덩이를 보면, 물이 공기로 가거나 땅으로 스며드는 길도 생각해 보세요.",
"claim_ids": [
"c1",
"c2"
]
}
],
"full_text": "비가 그친 뒤, 물웅덩이가 작아지는 모습을 본 적 있나요? 물은 어디로 가는 걸까요?\n한 가지 길은 공기 쪽이에요. 액체인 물이 기체인 수증기로 바뀌어 공기 중으로 이동합니다.\n이 변화를 증발이라고 불러요. 물이 다른 모습으로 이동하는 거예요.\n땅으로 가는 길도 있어요. 물은 땅속으로 스며들 수 있어요. 비로 내린 물의 일부도 이렇게 이동합니다.\n바닥의 성질 같은 조건에 따라 물이 스며드는 정도가 달라져요.\n그러니 물웅덩이를 보면, 물이 공기로 가거나 땅으로 스며드는 길도 생각해 보세요.",
"estimated_duration_ms": null
}
}
@@ -0,0 +1,10 @@
# 03-script 예제 검토
이 자료는 텍스트 내용 양식을 설명하는 예제이며 실제 제작 실행·사용자 승인이 아니다. 진행 기록의 현재 결과는 01뿐이다.
- 예제 결과를 실제 배정받아 제출할 때 필요한 상태: awaiting_review
- 입력과 payload: 같은 폴더의 artifact.json 참조.
- 적용한 원칙: 중심 질문의 답으로 이어지는 설명, 입력 언어 보존, 새 필드 없는 기존 계약.
- 적용하지 않은 구성: 실제 실패한 대안이나 위기가 없는 소재이므로 반전·위기를 넣지 않았다.
- 다음 조건: 선행 결과와 실제 사용자 승인·필수 파일을 먼저 확인한다.
- 첫 질문의 답은 b2–b5가 설명하고 b6에서 회수한다. 제목은 04에서 같은 질문을 약속한다. 불필요한 비율·도시별 수치는 제외했다.
@@ -0,0 +1,22 @@
{
"schema_version": "1.0",
"project_id": "water-cycle",
"stage_id": "04-title",
"revision": 1,
"inputs": [
{
"stage_id": "03-script",
"revision": 1
}
],
"payload": {
"candidates": [
{
"id": "title-1",
"text": "물웅덩이의 물은 어디로 갈까?",
"rationale": "작아진 물의 두 이동 경로를 답하며 물이 없어졌다고 단정하지 않는다."
}
],
"selected_id": "title-1"
}
}
@@ -0,0 +1,9 @@
# 04-title 예제 검토
이 자료는 텍스트 내용 양식을 설명하는 예제이며 실제 제작 실행·사용자 승인이 아니다. 진행 기록의 현재 결과는 01뿐이다.
- 예제 결과를 실제 배정받아 제출할 때 필요한 상태: awaiting_review
- 입력과 payload: 같은 폴더의 artifact.json 참조.
- 적용한 원칙: 중심 질문의 답으로 이어지는 설명, 입력 언어 보존, 새 필드 없는 기존 계약.
- 적용하지 않은 구성: 실제 실패한 대안이나 위기가 없는 소재이므로 반전·위기를 넣지 않았다.
- 다음 조건: 선행 결과와 실제 사용자 승인·필수 파일을 먼저 확인한다.
@@ -0,0 +1,70 @@
{
"schema_version": "1.0",
"project_id": "water-cycle",
"stage_id": "05-tts-split",
"revision": 1,
"inputs": [
{
"stage_id": "03-script",
"revision": 1
}
],
"payload": {
"units": [
{
"id": "u1",
"block_ids": [
"b1"
],
"display_text": "비가 그친 뒤, 물웅덩이가 작아지는 모습을 본 적 있나요? 물은 어디로 가는 걸까요?",
"spoken_text": "비가 그친 뒤, 물웅덩이가 작아지는 모습을 본 적 있나요? 물은 어디로 가는 걸까요?",
"pronunciation_notes": ""
},
{
"id": "u2",
"block_ids": [
"b2"
],
"display_text": "한 가지 길은 공기 쪽이에요. 액체인 물이 기체인 수증기로 바뀌어 공기 중으로 이동합니다.",
"spoken_text": "한 가지 길은 공기 쪽이에요. 액체인 물이 기체인 수증기로 바뀌어 공기 중으로 이동합니다.",
"pronunciation_notes": ""
},
{
"id": "u3",
"block_ids": [
"b3"
],
"display_text": "이 변화를 증발이라고 불러요. 물이 다른 모습으로 이동하는 거예요.",
"spoken_text": "이 변화를 증발이라고 불러요. 물이 다른 모습으로 이동하는 거예요.",
"pronunciation_notes": ""
},
{
"id": "u4",
"block_ids": [
"b4"
],
"display_text": "땅으로 가는 길도 있어요. 물은 땅속으로 스며들 수 있어요. 비로 내린 물의 일부도 이렇게 이동합니다.",
"spoken_text": "땅으로 가는 길도 있어요. 물은 땅속으로 스며들 수 있어요. 비로 내린 물의 일부도 이렇게 이동합니다.",
"pronunciation_notes": ""
},
{
"id": "u5",
"block_ids": [
"b5"
],
"display_text": "바닥의 성질 같은 조건에 따라 물이 스며드는 정도가 달라져요.",
"spoken_text": "바닥의 성질 같은 조건에 따라 물이 스며드는 정도가 달라져요.",
"pronunciation_notes": ""
},
{
"id": "u6",
"block_ids": [
"b6"
],
"display_text": "그러니 물웅덩이를 보면, 물이 공기로 가거나 땅으로 스며드는 길도 생각해 보세요.",
"spoken_text": "그러니 물웅덩이를 보면, 물이 공기로 가거나 땅으로 스며드는 길도 생각해 보세요.",
"pronunciation_notes": ""
}
]
}
}
@@ -0,0 +1,9 @@
# 05-tts-split 예제 검토
이 자료는 텍스트 내용 양식을 설명하는 예제이며 실제 제작 실행·사용자 승인이 아니다. 진행 기록의 현재 결과는 01뿐이다.
- 예제 결과를 실제 배정받아 제출할 때 필요한 상태: draft
- 입력과 payload: 같은 폴더의 artifact.json 참조.
- 적용한 원칙: 중심 질문의 답으로 이어지는 설명, 입력 언어 보존, 새 필드 없는 기존 계약.
- 적용하지 않은 구성: 실제 실패한 대안이나 위기가 없는 소재이므로 반전·위기를 넣지 않았다.
- 다음 조건: 선행 결과와 실제 사용자 승인·필수 파일을 먼저 확인한다.
@@ -0,0 +1,76 @@
{
"schema_version": "1.0",
"project_id": "water-cycle",
"stage_id": "06-tts",
"revision": 1,
"inputs": [
{
"stage_id": "05-tts-split",
"revision": 1
}
],
"payload": {
"request": {
"engine": "Qwen3-TTS",
"conda_env": "qwen3-tts",
"language": "한국어",
"units": [
{
"id": "u1",
"block_ids": [
"b1"
],
"display_text": "비가 그친 뒤, 물웅덩이가 작아지는 모습을 본 적 있나요? 물은 어디로 가는 걸까요?",
"spoken_text": "비가 그친 뒤, 물웅덩이가 작아지는 모습을 본 적 있나요? 물은 어디로 가는 걸까요?",
"pronunciation_notes": ""
},
{
"id": "u2",
"block_ids": [
"b2"
],
"display_text": "한 가지 길은 공기 쪽이에요. 액체인 물이 기체인 수증기로 바뀌어 공기 중으로 이동합니다.",
"spoken_text": "한 가지 길은 공기 쪽이에요. 액체인 물이 기체인 수증기로 바뀌어 공기 중으로 이동합니다.",
"pronunciation_notes": ""
},
{
"id": "u3",
"block_ids": [
"b3"
],
"display_text": "이 변화를 증발이라고 불러요. 물이 다른 모습으로 이동하는 거예요.",
"spoken_text": "이 변화를 증발이라고 불러요. 물이 다른 모습으로 이동하는 거예요.",
"pronunciation_notes": ""
},
{
"id": "u4",
"block_ids": [
"b4"
],
"display_text": "땅으로 가는 길도 있어요. 물은 땅속으로 스며들 수 있어요. 비로 내린 물의 일부도 이렇게 이동합니다.",
"spoken_text": "땅으로 가는 길도 있어요. 물은 땅속으로 스며들 수 있어요. 비로 내린 물의 일부도 이렇게 이동합니다.",
"pronunciation_notes": ""
},
{
"id": "u5",
"block_ids": [
"b5"
],
"display_text": "바닥의 성질 같은 조건에 따라 물이 스며드는 정도가 달라져요.",
"spoken_text": "바닥의 성질 같은 조건에 따라 물이 스며드는 정도가 달라져요.",
"pronunciation_notes": ""
},
{
"id": "u6",
"block_ids": [
"b6"
],
"display_text": "그러니 물웅덩이를 보면, 물이 공기로 가거나 땅으로 스며드는 길도 생각해 보세요.",
"spoken_text": "그러니 물웅덩이를 보면, 물이 공기로 가거나 땅으로 스며드는 길도 생각해 보세요.",
"pronunciation_notes": ""
}
]
},
"result": null
}
}
@@ -0,0 +1,10 @@
# 06-tts 예제 검토
이 자료는 외부 요청과 결과 확인 양식을 설명하는 예제이며 실제 제작 실행·사용자 승인이 아니다. 진행 기록의 현재 결과는 01뿐이다.
- 예제 결과를 실제 배정받아 제출할 때 필요한 상태: awaiting_input
- 입력과 payload: 같은 폴더의 artifact.json 참조.
- 적용한 원칙: 중심 질문의 답으로 이어지는 설명, 입력 언어 보존, 새 필드 없는 기존 계약.
- 적용하지 않은 구성: 실제 실패한 대안이나 위기가 없는 소재이므로 반전·위기를 넣지 않았다.
- 다음 조건: 선행 결과와 실제 사용자 승인·필수 파일을 먼저 확인한다.
- result=null이다. 실제 파일·메타데이터가 없으며 complete로 사용할 수 없다.
@@ -0,0 +1,132 @@
{
"schema_version": "1.0",
"project_id": "water-cycle",
"stage_id": "07-cuts",
"revision": 1,
"inputs": [
{
"stage_id": "05-tts-split",
"revision": 1
},
{
"stage_id": "06-tts",
"revision": 1
}
],
"payload": {
"narration_duration_ms": 32000,
"timing_evidence": "모의 데이터: 실제 음성 파일이나 정렬이 없다. 4000ms 컷과 컷을 걸치는 자막의 계약만 설명하며 제작 완료 근거로 사용할 수 없다.",
"cuts": [
{
"id": "cut-01",
"start_ms": 0,
"end_ms": 4000,
"unit_ids": [
"u1"
],
"narration_text": "비가 그친 뒤, 물웅덩이가 작아지는 모습을 본 적 있나요? 물은 어디로 가는 걸까요?"
},
{
"id": "cut-02",
"start_ms": 4000,
"end_ms": 8000,
"unit_ids": [
"u2"
],
"narration_text": "한 가지 길은 공기 쪽이에요."
},
{
"id": "cut-03",
"start_ms": 8000,
"end_ms": 12000,
"unit_ids": [
"u2"
],
"narration_text": "액체인 물이 기체인 수증기로 바뀌어 공기 중으로 이동합니다."
},
{
"id": "cut-04",
"start_ms": 12000,
"end_ms": 16000,
"unit_ids": [
"u3"
],
"narration_text": "이 변화를 증발이라고 불러요. 물이 다른 모습으로 이동하는 거예요."
},
{
"id": "cut-05",
"start_ms": 16000,
"end_ms": 20000,
"unit_ids": [
"u4"
],
"narration_text": "땅으로 가는 길도 있어요."
},
{
"id": "cut-06",
"start_ms": 20000,
"end_ms": 24000,
"unit_ids": [
"u4"
],
"narration_text": "물은 땅속으로 스며들 수 있어요. 비로 내린 물의 일부도 이렇게 이동합니다."
},
{
"id": "cut-07",
"start_ms": 24000,
"end_ms": 28000,
"unit_ids": [
"u5"
],
"narration_text": "바닥의 성질 같은 조건에 따라 물이 스며드는 정도가 달라져요."
},
{
"id": "cut-08",
"start_ms": 28000,
"end_ms": 32000,
"unit_ids": [
"u6"
],
"narration_text": "그러니 물웅덩이를 보면, 물이 공기로 가거나 땅으로 스며드는 길도 생각해 보세요."
}
],
"captions": [
{
"id": "caption-01",
"start_ms": 0,
"end_ms": 4000,
"text": "비가 그친 뒤, 물웅덩이가 작아지는 모습을 본 적 있나요? 물은 어디로 가는 걸까요?"
},
{
"id": "caption-02",
"start_ms": 4000,
"end_ms": 12000,
"text": "한 가지 길은 공기 쪽이에요. 액체인 물이 기체인 수증기로 바뀌어 공기 중으로 이동합니다."
},
{
"id": "caption-03",
"start_ms": 12000,
"end_ms": 16000,
"text": "이 변화를 증발이라고 불러요. 물이 다른 모습으로 이동하는 거예요."
},
{
"id": "caption-04",
"start_ms": 16000,
"end_ms": 24000,
"text": "땅으로 가는 길도 있어요. 물은 땅속으로 스며들 수 있어요. 비로 내린 물의 일부도 이렇게 이동합니다."
},
{
"id": "caption-05",
"start_ms": 24000,
"end_ms": 28000,
"text": "바닥의 성질 같은 조건에 따라 물이 스며드는 정도가 달라져요."
},
{
"id": "caption-06",
"start_ms": 28000,
"end_ms": 32000,
"text": "그러니 물웅덩이를 보면, 물이 공기로 가거나 땅으로 스며드는 길도 생각해 보세요."
}
]
}
}
@@ -0,0 +1,10 @@
# 07-cuts 예제 검토
이 자료는 모의 시간·화면 설계을 설명하는 예제이며 실제 제작 실행·사용자 승인이 아니다. 진행 기록의 현재 결과는 01뿐이다.
- 예제 결과를 실제 배정받아 제출할 때 필요한 상태: awaiting_review
- 입력과 payload: 같은 폴더의 artifact.json 참조.
- 적용한 원칙: 중심 질문의 답으로 이어지는 설명, 입력 언어 보존, 새 필드 없는 기존 계약.
- 적용하지 않은 구성: 실제 실패한 대안이나 위기가 없는 소재이므로 반전·위기를 넣지 않았다.
- 다음 조건: 선행 결과와 실제 사용자 승인·필수 파일을 먼저 확인한다.
- 32000ms 및 4000ms 구간은 설명용 가정이다. 실제 음성의 길이·정렬·속도를 뜻하지 않는다.
@@ -0,0 +1,120 @@
{
"schema_version": "1.0",
"project_id": "water-cycle",
"stage_id": "08-scenes",
"revision": 1,
"inputs": [
{
"stage_id": "03-script",
"revision": 1
},
{
"stage_id": "07-cuts",
"revision": 1
}
],
"payload": {
"scenes": [
{
"cut_id": "cut-01",
"description": "일상 질문; 도해의 기호는 설명용이며 실제 크기나 보이는 수증기 묘사가 아니다.",
"start_state": "비 온 뒤 같은 자리의 물웅덩이가 크게 보인다.",
"end_state": "시간 경과를 도식화하여 같은 자리의 물웅덩이가 작게 보인다. 실제 4초 만의 변화라는 뜻이 아니다.",
"camera": "전경"
},
{
"cut_id": "cut-02",
"description": "공기로 가는 길; 도해의 기호는 설명용이며 실제 크기나 보이는 수증기 묘사가 아니다.",
"start_state": "작은 물웅덩이의 수면을 가까이 본다.",
"end_state": "수면 위 이동 방향을 설명하는 도해 기호가 나타난다.",
"camera": "근접"
},
{
"cut_id": "cut-03",
"description": "액체에서 기체로 이동; 도해의 기호는 설명용이며 실제 크기나 보이는 수증기 묘사가 아니다.",
"start_state": "직전 컷의 물웅덩이와 도해 기호가 같은 위치에 있다.",
"end_state": "도해 기호가 수면에서 위쪽으로 이동한다.",
"camera": "근접"
},
{
"cut_id": "cut-04",
"description": "기능 설명 뒤 용어; 도해의 기호는 설명용이며 실제 크기나 보이는 수증기 묘사가 아니다.",
"start_state": "같은 수면과 도해 기호를 유지한다.",
"end_state": "공기 쪽 이동 관계를 정지 도해로 보여준다.",
"camera": "근접"
},
{
"cut_id": "cut-05",
"description": "땅으로 가는 길; 도해의 기호는 설명용이며 실제 크기나 보이는 수증기 묘사가 아니다.",
"start_state": "물웅덩이와 흙층을 단면으로 본다.",
"end_state": "물과 흙의 경계에 설명용 방향 표시가 나타난다.",
"camera": "단면"
},
{
"cut_id": "cut-06",
"description": "스며듦; 도해의 기호는 설명용이며 실제 크기나 보이는 수증기 묘사가 아니다.",
"start_state": "직전 단면의 물과 흙 경계가 같다.",
"end_state": "물의 이동을 나타내는 기호가 흙의 틈으로 내려간다.",
"camera": "단면"
},
{
"cut_id": "cut-07",
"description": "조건에 따른 차이; 도해의 기호는 설명용이며 실제 크기나 보이는 수증기 묘사가 아니다.",
"start_state": "단면에서 물이 이동할 틈을 가리킨다.",
"end_state": "같은 단면에서 바닥 조건을 간단한 주석으로 강조한다.",
"camera": "단면"
},
{
"cut_id": "cut-08",
"description": "처음 질문의 답; 도해의 기호는 설명용이며 실제 크기나 보이는 수증기 묘사가 아니다.",
"start_state": "도입과 같은 장소의 작은 물웅덩이를 보여준다.",
"end_state": "공기와 땅으로 가는 두 이동 방향을 함께 표시한다.",
"camera": "전경"
}
],
"connections": [
{
"from_cut_id": "cut-01",
"to_cut_id": "cut-02",
"mode": "cut",
"reason": "설명 역할이나 시점이 바뀌며 동일 장소를 기준점으로 삼는다."
},
{
"from_cut_id": "cut-02",
"to_cut_id": "cut-03",
"mode": "continuous",
"reason": "같은 설명 대상·카메라와 상태를 이어간다."
},
{
"from_cut_id": "cut-03",
"to_cut_id": "cut-04",
"mode": "continuous",
"reason": "같은 설명 대상·카메라와 상태를 이어간다."
},
{
"from_cut_id": "cut-04",
"to_cut_id": "cut-05",
"mode": "cut",
"reason": "설명 역할이나 시점이 바뀌며 동일 장소를 기준점으로 삼는다."
},
{
"from_cut_id": "cut-05",
"to_cut_id": "cut-06",
"mode": "continuous",
"reason": "같은 설명 대상·카메라와 상태를 이어간다."
},
{
"from_cut_id": "cut-06",
"to_cut_id": "cut-07",
"mode": "continuous",
"reason": "같은 설명 대상·카메라와 상태를 이어간다."
},
{
"from_cut_id": "cut-07",
"to_cut_id": "cut-08",
"mode": "cut",
"reason": "설명 역할이나 시점이 바뀌며 동일 장소를 기준점으로 삼는다."
}
]
}
}
@@ -0,0 +1,11 @@
# 08-scenes 예제 검토
이 자료는 모의 시간·화면 설계을 설명하는 예제이며 실제 제작 실행·사용자 승인이 아니다. 진행 기록의 현재 결과는 01뿐이다.
- 예제 결과를 실제 배정받아 제출할 때 필요한 상태: awaiting_review
- 입력과 payload: 같은 폴더의 artifact.json 참조.
- 적용한 원칙: 중심 질문의 답으로 이어지는 설명, 입력 언어 보존, 새 필드 없는 기존 계약.
- 적용하지 않은 구성: 실제 실패한 대안이나 위기가 없는 소재이므로 반전·위기를 넣지 않았다.
- 다음 조건: 선행 결과와 실제 사용자 승인·필수 파일을 먼저 확인한다.
- 32000ms 및 4000ms 구간은 설명용 가정이다. 실제 음성의 길이·정렬·속도를 뜻하지 않는다.
- cut-02→03은 같은 수면의 기호가 위로 움직이는 설명을 잇는다. cut-04→05는 숨은 땅속 관계를 보여주려고 단면으로 전환한다. 문자·수치는 생성 이미지에 맡기지 않는다.
@@ -0,0 +1,88 @@
{
"schema_version": "1.0",
"project_id": "water-cycle",
"stage_id": "09-entities",
"revision": 1,
"inputs": [
{
"stage_id": "03-script",
"revision": 1
},
{
"stage_id": "08-scenes",
"revision": 1
}
],
"payload": {
"characters": [],
"backgrounds": [
{
"id": "bg-1",
"description": "비 온 뒤 흙길의 물웅덩이와 같은 장소의 흙층 단면",
"fixed_features": [
"물웅덩이의 장소와 윤곽 기준",
"흙층과 표면의 색 구분",
"공기 위쪽·땅 아래쪽 방향"
]
}
],
"appearances": [
{
"cut_id": "cut-01",
"character_ids": [],
"background_ids": [
"bg-1"
]
},
{
"cut_id": "cut-02",
"character_ids": [],
"background_ids": [
"bg-1"
]
},
{
"cut_id": "cut-03",
"character_ids": [],
"background_ids": [
"bg-1"
]
},
{
"cut_id": "cut-04",
"character_ids": [],
"background_ids": [
"bg-1"
]
},
{
"cut_id": "cut-05",
"character_ids": [],
"background_ids": [
"bg-1"
]
},
{
"cut_id": "cut-06",
"character_ids": [],
"background_ids": [
"bg-1"
]
},
{
"cut_id": "cut-07",
"character_ids": [],
"background_ids": [
"bg-1"
]
},
{
"cut_id": "cut-08",
"character_ids": [],
"background_ids": [
"bg-1"
]
}
]
}
}
@@ -0,0 +1,10 @@
# 09-entities 예제 검토
이 자료는 모의 시간·화면 설계을 설명하는 예제이며 실제 제작 실행·사용자 승인이 아니다. 진행 기록의 현재 결과는 01뿐이다.
- 예제 결과를 실제 배정받아 제출할 때 필요한 상태: awaiting_review
- 입력과 payload: 같은 폴더의 artifact.json 참조.
- 적용한 원칙: 중심 질문의 답으로 이어지는 설명, 입력 언어 보존, 새 필드 없는 기존 계약.
- 적용하지 않은 구성: 실제 실패한 대안이나 위기가 없는 소재이므로 반전·위기를 넣지 않았다.
- 다음 조건: 선행 결과와 실제 사용자 승인·필수 파일을 먼저 확인한다.
- 32000ms 및 4000ms 구간은 설명용 가정이다. 실제 음성의 길이·정렬·속도를 뜻하지 않는다.
@@ -0,0 +1,41 @@
{
"schema_version": "1.0",
"project_id": "water-cycle",
"stage_id": "10-references",
"revision": 1,
"inputs": [
{
"stage_id": "02-research",
"revision": 1
},
{
"stage_id": "08-scenes",
"revision": 1
},
{
"stage_id": "09-entities",
"revision": 1
}
],
"payload": {
"request": {
"model": "gpt-image-2.5-sunburst",
"style_reference": "references/1.png",
"items": [
{
"id": "style-1",
"kind": "style",
"entity_id": null,
"prompt": "세로 9:16. 사용자 기준의 가는 윤곽선, 단순 형태와 정돈된 색면. 캠핑 소재나 상표는 가져오지 않는다. 물순환을 쉽게 설명하는 도해. 글자는 합성에서 검증해 배치한다."
},
{
"id": "background-1",
"kind": "background",
"entity_id": "bg-1",
"prompt": "같은 흙길 물웅덩이의 전경·근접·단면 기준. 조사된 증발과 침투 경로를 설명하며 실제 지형도나 측정 수치처럼 표시하지 않는다."
}
]
},
"result": null
}
}
@@ -0,0 +1,11 @@
# 10-references 예제 검토
이 자료는 외부 요청과 결과 확인 양식을 설명하는 예제이며 실제 제작 실행·사용자 승인이 아니다. 진행 기록의 현재 결과는 01뿐이다.
- 예제 결과를 실제 배정받아 제출할 때 필요한 상태: awaiting_input
- 입력과 payload: 같은 폴더의 artifact.json 참조.
- 적용한 원칙: 중심 질문의 답으로 이어지는 설명, 입력 언어 보존, 새 필드 없는 기존 계약.
- 적용하지 않은 구성: 실제 실패한 대안이나 위기가 없는 소재이므로 반전·위기를 넣지 않았다.
- 다음 조건: 선행 결과와 실제 사용자 승인·필수 파일을 먼저 확인한다.
- result=null이다. 실제 파일·메타데이터가 없으며 complete로 사용할 수 없다.
- 32000ms 및 4000ms 구간은 설명용 가정이다. 실제 음성의 길이·정렬·속도를 뜻하지 않는다.
@@ -0,0 +1,200 @@
{
"schema_version": "1.0",
"project_id": "water-cycle",
"stage_id": "11-images",
"revision": 1,
"inputs": [
{
"stage_id": "02-research",
"revision": 1
},
{
"stage_id": "03-script",
"revision": 1
},
{
"stage_id": "07-cuts",
"revision": 1
},
{
"stage_id": "08-scenes",
"revision": 1
},
{
"stage_id": "09-entities",
"revision": 1
},
{
"stage_id": "10-references",
"revision": 1
}
],
"payload": {
"request": {
"model": "gpt-image-2.5-sunburst",
"frames": [
{
"id": "cut-01-start",
"cut_id": "cut-01",
"position": "start",
"prompt": "비 온 뒤 같은 자리의 물웅덩이가 크게 보인다. 세로 9:16, 사용자 기준 그림체, 같은 배경 고정 특징. 조사 c1/c2/c3 중 해당 설명의 근거만 사용한다.",
"reference_ids": [
"style-1",
"background-1"
]
},
{
"id": "cut-01-end",
"cut_id": "cut-01",
"position": "end",
"prompt": "시간 경과를 도식화하여 같은 자리의 물웅덩이가 작게 보인다. 실제 4초 만의 변화라는 뜻이 아니다. 세로 9:16, 사용자 기준 그림체, 같은 배경 고정 특징. 조사 c1/c2/c3 중 해당 설명의 근거만 사용한다.",
"reference_ids": [
"style-1",
"background-1"
]
},
{
"id": "cut-02-start",
"cut_id": "cut-02",
"position": "start",
"prompt": "작은 물웅덩이의 수면을 가까이 본다. 세로 9:16, 사용자 기준 그림체, 같은 배경 고정 특징. 조사 c1/c2/c3 중 해당 설명의 근거만 사용한다.",
"reference_ids": [
"style-1",
"background-1"
]
},
{
"id": "cut-02-end",
"cut_id": "cut-02",
"position": "end",
"prompt": "수면 위 이동 방향을 설명하는 도해 기호가 나타난다. 세로 9:16, 사용자 기준 그림체, 같은 배경 고정 특징. 조사 c1/c2/c3 중 해당 설명의 근거만 사용한다.",
"reference_ids": [
"style-1",
"background-1"
]
},
{
"id": "cut-03-start",
"cut_id": "cut-03",
"position": "start",
"prompt": "직전 컷의 물웅덩이와 도해 기호가 같은 위치에 있다. 세로 9:16, 사용자 기준 그림체, 같은 배경 고정 특징. 조사 c1/c2/c3 중 해당 설명의 근거만 사용한다.",
"reference_ids": [
"style-1",
"background-1"
]
},
{
"id": "cut-03-end",
"cut_id": "cut-03",
"position": "end",
"prompt": "도해 기호가 수면에서 위쪽으로 이동한다. 세로 9:16, 사용자 기준 그림체, 같은 배경 고정 특징. 조사 c1/c2/c3 중 해당 설명의 근거만 사용한다.",
"reference_ids": [
"style-1",
"background-1"
]
},
{
"id": "cut-04-start",
"cut_id": "cut-04",
"position": "start",
"prompt": "같은 수면과 도해 기호를 유지한다. 세로 9:16, 사용자 기준 그림체, 같은 배경 고정 특징. 조사 c1/c2/c3 중 해당 설명의 근거만 사용한다.",
"reference_ids": [
"style-1",
"background-1"
]
},
{
"id": "cut-04-end",
"cut_id": "cut-04",
"position": "end",
"prompt": "공기 쪽 이동 관계를 정지 도해로 보여준다. 세로 9:16, 사용자 기준 그림체, 같은 배경 고정 특징. 조사 c1/c2/c3 중 해당 설명의 근거만 사용한다.",
"reference_ids": [
"style-1",
"background-1"
]
},
{
"id": "cut-05-start",
"cut_id": "cut-05",
"position": "start",
"prompt": "물웅덩이와 흙층을 단면으로 본다. 세로 9:16, 사용자 기준 그림체, 같은 배경 고정 특징. 조사 c1/c2/c3 중 해당 설명의 근거만 사용한다.",
"reference_ids": [
"style-1",
"background-1"
]
},
{
"id": "cut-05-end",
"cut_id": "cut-05",
"position": "end",
"prompt": "물과 흙의 경계에 설명용 방향 표시가 나타난다. 세로 9:16, 사용자 기준 그림체, 같은 배경 고정 특징. 조사 c1/c2/c3 중 해당 설명의 근거만 사용한다.",
"reference_ids": [
"style-1",
"background-1"
]
},
{
"id": "cut-06-start",
"cut_id": "cut-06",
"position": "start",
"prompt": "직전 단면의 물과 흙 경계가 같다. 세로 9:16, 사용자 기준 그림체, 같은 배경 고정 특징. 조사 c1/c2/c3 중 해당 설명의 근거만 사용한다.",
"reference_ids": [
"style-1",
"background-1"
]
},
{
"id": "cut-06-end",
"cut_id": "cut-06",
"position": "end",
"prompt": "물의 이동을 나타내는 기호가 흙의 틈으로 내려간다. 세로 9:16, 사용자 기준 그림체, 같은 배경 고정 특징. 조사 c1/c2/c3 중 해당 설명의 근거만 사용한다.",
"reference_ids": [
"style-1",
"background-1"
]
},
{
"id": "cut-07-start",
"cut_id": "cut-07",
"position": "start",
"prompt": "단면에서 물이 이동할 틈을 가리킨다. 세로 9:16, 사용자 기준 그림체, 같은 배경 고정 특징. 조사 c1/c2/c3 중 해당 설명의 근거만 사용한다.",
"reference_ids": [
"style-1",
"background-1"
]
},
{
"id": "cut-07-end",
"cut_id": "cut-07",
"position": "end",
"prompt": "같은 단면에서 바닥 조건을 간단한 주석으로 강조한다. 세로 9:16, 사용자 기준 그림체, 같은 배경 고정 특징. 조사 c1/c2/c3 중 해당 설명의 근거만 사용한다.",
"reference_ids": [
"style-1",
"background-1"
]
},
{
"id": "cut-08-start",
"cut_id": "cut-08",
"position": "start",
"prompt": "도입과 같은 장소의 작은 물웅덩이를 보여준다. 세로 9:16, 사용자 기준 그림체, 같은 배경 고정 특징. 조사 c1/c2/c3 중 해당 설명의 근거만 사용한다.",
"reference_ids": [
"style-1",
"background-1"
]
},
{
"id": "cut-08-end",
"cut_id": "cut-08",
"position": "end",
"prompt": "공기와 땅으로 가는 두 이동 방향을 함께 표시한다. 세로 9:16, 사용자 기준 그림체, 같은 배경 고정 특징. 조사 c1/c2/c3 중 해당 설명의 근거만 사용한다.",
"reference_ids": [
"style-1",
"background-1"
]
}
]
},
"result": null
}
}
@@ -0,0 +1,11 @@
# 11-images 예제 검토
이 자료는 외부 요청과 결과 확인 양식을 설명하는 예제이며 실제 제작 실행·사용자 승인이 아니다. 진행 기록의 현재 결과는 01뿐이다.
- 예제 결과를 실제 배정받아 제출할 때 필요한 상태: awaiting_input
- 입력과 payload: 같은 폴더의 artifact.json 참조.
- 적용한 원칙: 중심 질문의 답으로 이어지는 설명, 입력 언어 보존, 새 필드 없는 기존 계약.
- 적용하지 않은 구성: 실제 실패한 대안이나 위기가 없는 소재이므로 반전·위기를 넣지 않았다.
- 다음 조건: 선행 결과와 실제 사용자 승인·필수 파일을 먼저 확인한다.
- result=null이다. 실제 파일·메타데이터가 없으며 complete로 사용할 수 없다.
- 32000ms 및 4000ms 구간은 설명용 가정이다. 실제 음성의 길이·정렬·속도를 뜻하지 않는다.
@@ -0,0 +1,83 @@
{
"schema_version": "1.0",
"project_id": "water-cycle",
"stage_id": "12-motion",
"revision": 1,
"inputs": [
{
"stage_id": "07-cuts",
"revision": 1
},
{
"stage_id": "08-scenes",
"revision": 1
},
{
"stage_id": "11-images",
"revision": 1
}
],
"payload": {
"request": {
"clips": [
{
"cut_id": "cut-01",
"start_frame_id": "cut-01-start",
"end_frame_id": "cut-01-end",
"duration_ms": 4000,
"motion_prompt": "비 온 뒤 같은 자리의 물웅덩이가 크게 보인다.에서 시간 경과를 도식화하여 같은 자리의 물웅덩이가 작게 보인다. 실제 4초 만의 변화라는 뜻이 아니다.로 설명에 필요한 변화만 이어간다. 시간은 모의 데이터이며 실제 제작 전 음성·프레임 확인이 필요하다."
},
{
"cut_id": "cut-02",
"start_frame_id": "cut-02-start",
"end_frame_id": "cut-02-end",
"duration_ms": 4000,
"motion_prompt": "작은 물웅덩이의 수면을 가까이 본다.에서 수면 위 이동 방향을 설명하는 도해 기호가 나타난다.로 설명에 필요한 변화만 이어간다. 시간은 모의 데이터이며 실제 제작 전 음성·프레임 확인이 필요하다."
},
{
"cut_id": "cut-03",
"start_frame_id": "cut-03-start",
"end_frame_id": "cut-03-end",
"duration_ms": 4000,
"motion_prompt": "직전 컷의 물웅덩이와 도해 기호가 같은 위치에 있다.에서 도해 기호가 수면에서 위쪽으로 이동한다.로 설명에 필요한 변화만 이어간다. 시간은 모의 데이터이며 실제 제작 전 음성·프레임 확인이 필요하다."
},
{
"cut_id": "cut-04",
"start_frame_id": "cut-04-start",
"end_frame_id": "cut-04-end",
"duration_ms": 4000,
"motion_prompt": "같은 수면과 도해 기호를 유지한다.에서 공기 쪽 이동 관계를 정지 도해로 보여준다.로 설명에 필요한 변화만 이어간다. 시간은 모의 데이터이며 실제 제작 전 음성·프레임 확인이 필요하다."
},
{
"cut_id": "cut-05",
"start_frame_id": "cut-05-start",
"end_frame_id": "cut-05-end",
"duration_ms": 4000,
"motion_prompt": "물웅덩이와 흙층을 단면으로 본다.에서 물과 흙의 경계에 설명용 방향 표시가 나타난다.로 설명에 필요한 변화만 이어간다. 시간은 모의 데이터이며 실제 제작 전 음성·프레임 확인이 필요하다."
},
{
"cut_id": "cut-06",
"start_frame_id": "cut-06-start",
"end_frame_id": "cut-06-end",
"duration_ms": 4000,
"motion_prompt": "직전 단면의 물과 흙 경계가 같다.에서 물의 이동을 나타내는 기호가 흙의 틈으로 내려간다.로 설명에 필요한 변화만 이어간다. 시간은 모의 데이터이며 실제 제작 전 음성·프레임 확인이 필요하다."
},
{
"cut_id": "cut-07",
"start_frame_id": "cut-07-start",
"end_frame_id": "cut-07-end",
"duration_ms": 4000,
"motion_prompt": "단면에서 물이 이동할 틈을 가리킨다.에서 같은 단면에서 바닥 조건을 간단한 주석으로 강조한다.로 설명에 필요한 변화만 이어간다. 시간은 모의 데이터이며 실제 제작 전 음성·프레임 확인이 필요하다."
},
{
"cut_id": "cut-08",
"start_frame_id": "cut-08-start",
"end_frame_id": "cut-08-end",
"duration_ms": 4000,
"motion_prompt": "도입과 같은 장소의 작은 물웅덩이를 보여준다.에서 공기와 땅으로 가는 두 이동 방향을 함께 표시한다.로 설명에 필요한 변화만 이어간다. 시간은 모의 데이터이며 실제 제작 전 음성·프레임 확인이 필요하다."
}
]
},
"result": null
}
}
@@ -0,0 +1,11 @@
# 12-motion 예제 검토
이 자료는 외부 요청과 결과 확인 양식을 설명하는 예제이며 실제 제작 실행·사용자 승인이 아니다. 진행 기록의 현재 결과는 01뿐이다.
- 예제 결과를 실제 배정받아 제출할 때 필요한 상태: awaiting_input
- 입력과 payload: 같은 폴더의 artifact.json 참조.
- 적용한 원칙: 중심 질문의 답으로 이어지는 설명, 입력 언어 보존, 새 필드 없는 기존 계약.
- 적용하지 않은 구성: 실제 실패한 대안이나 위기가 없는 소재이므로 반전·위기를 넣지 않았다.
- 다음 조건: 선행 결과와 실제 사용자 승인·필수 파일을 먼저 확인한다.
- result=null이다. 실제 파일·메타데이터가 없으며 complete로 사용할 수 없다.
- 32000ms 및 4000ms 구간은 설명용 가정이다. 실제 음성의 길이·정렬·속도를 뜻하지 않는다.
@@ -0,0 +1,123 @@
{
"schema_version": "1.0",
"project_id": "water-cycle",
"stage_id": "13-compose",
"revision": 1,
"inputs": [
{
"stage_id": "03-script",
"revision": 1
},
{
"stage_id": "04-title",
"revision": 1
},
{
"stage_id": "06-tts",
"revision": 1
},
{
"stage_id": "07-cuts",
"revision": 1
},
{
"stage_id": "12-motion",
"revision": 1
}
],
"payload": {
"request": {
"timeline": [
{
"cut_id": "cut-01",
"video_path": "projects/water-cycle/media/cut-01.mp4",
"start_ms": 0,
"end_ms": 4000
},
{
"cut_id": "cut-02",
"video_path": "projects/water-cycle/media/cut-02.mp4",
"start_ms": 4000,
"end_ms": 8000
},
{
"cut_id": "cut-03",
"video_path": "projects/water-cycle/media/cut-03.mp4",
"start_ms": 8000,
"end_ms": 12000
},
{
"cut_id": "cut-04",
"video_path": "projects/water-cycle/media/cut-04.mp4",
"start_ms": 12000,
"end_ms": 16000
},
{
"cut_id": "cut-05",
"video_path": "projects/water-cycle/media/cut-05.mp4",
"start_ms": 16000,
"end_ms": 20000
},
{
"cut_id": "cut-06",
"video_path": "projects/water-cycle/media/cut-06.mp4",
"start_ms": 20000,
"end_ms": 24000
},
{
"cut_id": "cut-07",
"video_path": "projects/water-cycle/media/cut-07.mp4",
"start_ms": 24000,
"end_ms": 28000
},
{
"cut_id": "cut-08",
"video_path": "projects/water-cycle/media/cut-08.mp4",
"start_ms": 28000,
"end_ms": 32000
}
],
"narration_path": "projects/water-cycle/media/narration.wav",
"captions": [
{
"id": "caption-01",
"start_ms": 0,
"end_ms": 4000,
"text": "비가 그친 뒤, 물웅덩이가 작아지는 모습을 본 적 있나요? 물은 어디로 가는 걸까요?"
},
{
"id": "caption-02",
"start_ms": 4000,
"end_ms": 12000,
"text": "한 가지 길은 공기 쪽이에요. 액체인 물이 기체인 수증기로 바뀌어 공기 중으로 이동합니다."
},
{
"id": "caption-03",
"start_ms": 12000,
"end_ms": 16000,
"text": "이 변화를 증발이라고 불러요. 물이 다른 모습으로 이동하는 거예요."
},
{
"id": "caption-04",
"start_ms": 16000,
"end_ms": 24000,
"text": "땅으로 가는 길도 있어요. 물은 땅속으로 스며들 수 있어요. 비로 내린 물의 일부도 이렇게 이동합니다."
},
{
"id": "caption-05",
"start_ms": 24000,
"end_ms": 28000,
"text": "바닥의 성질 같은 조건에 따라 물이 스며드는 정도가 달라져요."
},
{
"id": "caption-06",
"start_ms": 28000,
"end_ms": 32000,
"text": "그러니 물웅덩이를 보면, 물이 공기로 가거나 땅으로 스며드는 길도 생각해 보세요."
}
],
"title": "물웅덩이의 물은 어디로 갈까?"
},
"result": null
}
}
@@ -0,0 +1,11 @@
# 13-compose 예제 검토
이 자료는 외부 요청과 결과 확인 양식을 설명하는 예제이며 실제 제작 실행·사용자 승인이 아니다. 진행 기록의 현재 결과는 01뿐이다.
- 예제 결과를 실제 배정받아 제출할 때 필요한 상태: awaiting_input
- 입력과 payload: 같은 폴더의 artifact.json 참조.
- 적용한 원칙: 중심 질문의 답으로 이어지는 설명, 입력 언어 보존, 새 필드 없는 기존 계약.
- 적용하지 않은 구성: 실제 실패한 대안이나 위기가 없는 소재이므로 반전·위기를 넣지 않았다.
- 다음 조건: 선행 결과와 실제 사용자 승인·필수 파일을 먼저 확인한다.
- result=null이다. 실제 파일·메타데이터가 없으며 complete로 사용할 수 없다.
- 32000ms 및 4000ms 구간은 설명용 가정이다. 실제 음성의 길이·정렬·속도를 뜻하지 않는다.
@@ -0,0 +1,79 @@
{
"schema_version": "1.0",
"project_id": "water-cycle",
"stage_id": "14-review",
"revision": 1,
"inputs": [
{
"stage_id": "13-compose",
"revision": 1
},
{
"stage_id": "02-research",
"revision": 1
},
{
"stage_id": "03-script",
"revision": 1
},
{
"stage_id": "04-title",
"revision": 1
},
{
"stage_id": "07-cuts",
"revision": 1
},
{
"stage_id": "08-scenes",
"revision": 1
},
{
"stage_id": "09-entities",
"revision": 1
}
],
"payload": {
"checks": [
{
"area": "story",
"verdict": "not_checked",
"evidence": "실제 완성본·음성·자막이 없으므로 확인하지 않았다."
},
{
"area": "visual",
"verdict": "not_checked",
"evidence": "실제 완성본·음성·자막이 없으므로 확인하지 않았다."
},
{
"area": "audio",
"verdict": "not_checked",
"evidence": "실제 완성본·음성·자막이 없으므로 확인하지 않았다."
},
{
"area": "captions",
"verdict": "not_checked",
"evidence": "실제 완성본·음성·자막이 없으므로 확인하지 않았다."
},
{
"area": "timing",
"verdict": "not_checked",
"evidence": "실제 완성본·음성·자막이 없으므로 확인하지 않았다."
},
{
"area": "consistency",
"verdict": "not_checked",
"evidence": "실제 완성본·음성·자막이 없으므로 확인하지 않았다."
}
],
"findings": [
{
"severity": "blocking",
"description": "실제 완성본과 확인 가능한 외부 결과가 없다. 예제의 모의 시간을 실측으로 사용할 수 없다.",
"stage_id": "13-compose",
"cut_id": null
}
],
"recommendation": "incomplete"
}
}
@@ -0,0 +1,10 @@
# 14-review 예제 검토
이 자료는 텍스트 내용 양식을 설명하는 예제이며 실제 제작 실행·사용자 승인이 아니다. 진행 기록의 현재 결과는 01뿐이다.
- 예제 결과를 실제 배정받아 제출할 때 필요한 상태: awaiting_input
- 입력과 payload: 같은 폴더의 artifact.json 참조.
- 적용한 원칙: 중심 질문의 답으로 이어지는 설명, 입력 언어 보존, 새 필드 없는 기존 계약.
- 적용하지 않은 구성: 실제 실패한 대안이나 위기가 없는 소재이므로 반전·위기를 넣지 않았다.
- 다음 조건: 선행 결과와 실제 사용자 승인·필수 파일을 먼저 확인한다.
- 여섯 영역 모두 not_checked이고 recommendation=incomplete다. 검수자의 pass나 final 승인으로 바꾸지 않는다.