S2S Synopsis to Screenplay 매뉴얼
GitHub repository based guide

시놉시스를 장편 영화 시나리오로 바꾸는 파일 기반 작업 매뉴얼

`sero12journey/synopsis-to-scenario`는 1~3페이지 시놉시스를 한국어 장편 영화 시나리오로 확장하기 위한 Claude Code 직접 실행형 멀티 에이전트 워크플로우입니다. 이 매뉴얼은 저장소의 README, CLAUDE.md, 프롬프트, 스크립트, 설계 문서를 바탕으로 실제 사용 순서대로 재구성했습니다.

4 Orchestrator, Analyst, Writer, Critic
0-8 분석부터 시각적 개고까지 9단계
A/B/C 사람 승인 체크포인트
70-85 90분 장편 기준 목표 씬 수
What it is

이 저장소는 웹앱이 아니라 실행 규칙과 프롬프트 묶음입니다

Python은 프로젝트 폴더 초기화와 `.docx` 변환 같은 보조 작업만 담당합니다. 실제 창작 워크플로우는 Claude Code가 프롬프트 파일과 이전 산출물을 읽고, 단계별 Markdown 결과물을 저장하는 방식으로 진행됩니다.

입력 시놉시스, 장르·톤·테마 설정, 선택 레퍼런스
↓
Orchestrator 실행 순서, 상태 저장, 체크포인트, 피드백 라우팅
Analyst 사전 분석, 막 구조, 비트시트
Writer 이미지 시스템, 인물, 트리트먼트, 씬 리스트, 초고
Critic 구조·시각성·체크포인트 리뷰, 시각적 개고
↓
출력 단계별 Markdown 산출물, 최종 시나리오 Markdown, 선택 `.docx` 변환본
Setup

설치와 프로젝트 초기화

저장소를 받은 뒤 프로젝트 이름으로 작업 폴더를 만들고, `config.yaml`과 `state.json`을 준비합니다.

1. 저장소 준비

로컬에 저장소를 둡니다

git clone https://github.com/sero12journey/synopsis-to-scenario.git
cd synopsis-to-scenario
2. 프로젝트 초기화

작품별 작업 폴더를 만듭니다

python scripts/init_project.py my-project

실행 후 `projects/my-project/config.yaml`, `projects/my-project/state.json`, `input/`, `input/references/`, `output/` 폴더가 생성됩니다.

Inputs

입력 자료 준비

첫 실행 품질은 `config.yaml`의 명확성, 시놉시스 파일, 레퍼런스 배치에 크게 좌우됩니다.

`config.yaml`에 채울 항목

title: "작품 가제"
source_format: "webtoon"
target_duration: 90
genre: ["심리 스릴러", "미스터리"]
tone: "로맨스에서 스릴러로 전환"
theme_direction: "믿음이 집착으로 변하는 순간"
synopsis_file: "synopsis.md"
reference_files: ["screenplay_theory.md"]

파일 배치

  • `projects/my-project/input/synopsis.md`에 1~3페이지 시놉시스를 둡니다.
  • 작법 레퍼런스가 있으면 `input/references/`에 둡니다.
  • 저장소에 포함되지 않은 선택 파일 `prompts/writer/step_07_examples.md`가 있으면 초고 문체 기준점으로 사용할 수 있습니다.
  • 상업적 사용은 라이선스 조건을 먼저 확인합니다.
!
실제 설정 파일명은 `config_schema.yaml`을 기준으로 맞춥니다.

설계/가이드 일부에서는 `synopsis_doc`, `reference_docs` 같은 이름도 보이지만, 현재 템플릿은 `synopsis_file`, `reference_files`를 사용합니다.

Workflow

0단계부터 8단계까지 진행하기

각 단계는 이전 산출물을 읽고 다음 산출물을 만듭니다. 버튼을 눌러 단계별 목적, 입력, 결과물을 확인하세요.

Analyst

STEP 0: 시놉시스 사전 분석

원작의 강점과 장편 전환 보완점을 먼저 정리합니다. 이 결과는 이후 모든 단계의 기준 문서가 됩니다.

  • 입력: `config.yaml`, 시놉시스, 선택 레퍼런스
  • 점검: 구조, 영상적 묘사, 서브텍스트, 이미지 시스템, 캐릭터, 복선, 장편 호흡
  • 출력: `output/step_00_critique.md`
Analyst

STEP 1: 막 구조와 러닝타임 설계

90분 장편을 기준으로 3막 구조와 씬 수 분포를 설계합니다.

  • 입력: STEP 0 사전 분석
  • 기준: 한국 시나리오는 페이지보다 씬 수가 1차 지표
  • 출력: `output/step_01_act_structure.md`
Analyst

STEP 2: 비트시트

Blake Snyder 기반 15비트 구조로 사건, 전환점, 미드포인트, 결말 이미지를 배치합니다.

  • 입력: STEP 0, STEP 1
  • 이후: 체크포인트 A에서 구조 확정 여부를 판단
  • 출력: `output/step_02_beat_sheet.md`
Writer

STEP 3: 이미지 시스템 설계

반복 이미지, 공간 메타포, 시각적 모티프를 설계해 영화적 일관성을 만듭니다.

  • 입력: STEP 0~2
  • 원칙: 관객이 의식하면 설교가 되므로 상징은 잠재적으로 작동해야 함
  • 출력: `output/step_03_image_system.md`
Writer

STEP 4: 인물 재설계

인물의 시각적 식별자, 행동적 소개, 능동성, 입체적 적대자를 정리합니다.

  • 입력: STEP 0~3
  • 이후: 체크포인트 B에서 이미지 전략과 인물을 확정
  • 출력: `output/step_04_characters.md`
Writer

STEP 5: 트리트먼트

구조와 인물을 15~20페이지 분량의 산문형 설계도로 확장합니다.

  • 입력: STEP 0~4 전체
  • 주의: 이후 초고에서 임의 삭제하지 않을 장면 설계도
  • 출력: `output/step_05_treatment.md`
Writer

STEP 6: 씬 리스트

트리트먼트를 70~85개 씬으로 분해해 막별 집필 가능한 청사진으로 만듭니다.

  • 입력: STEP 5, STEP 3, STEP 4
  • 이후: 체크포인트 C에서 초고 전 최종 검토
  • 출력: `output/step_06_scene_list.md`
Writer

STEP 7: 시나리오 1고

한 번에 전체를 쓰지 않고 막 1, 막 2a, 막 2b, 막 3으로 나눠 씁니다.

  • 입력: 트리트먼트, 씬 리스트, 이미지 시스템, 캐릭터
  • 중간 점검: 각 막 집필 뒤 사용자 승인 또는 수정 요청
  • 출력: `act1`, `act2a`, `act2b`, `act3`, `step_07_first_draft_full.md`
Critic → Writer

STEP 8: 시각적 개고

Critic이 1고를 진단한 뒤 Writer가 진단 결과를 반영해 최종본을 만듭니다.

  • 입력: 1고 합본, 이미지 시스템, STEP 0 사전 분석
  • 기준: 보이는 것만 쓰기, 설명 과다 제거, 이미지 일관성
  • 출력: `output/final_screenplay.md`
5/6
STEP 5/6은 프롬프트 파일명을 기준으로 실행하세요.

README와 프롬프트 파일은 `STEP 5 트리트먼트`, `STEP 6 씬 리스트` 순서입니다. 현재 `state_schema.json`의 일부 name 라벨은 이 순서와 다르게 보일 수 있습니다.

Human gates

체크포인트에서 사람이 결정합니다

Critic은 리뷰를 제공하지만, 최종 승인·수정·중단 결정은 사용자가 합니다. Writer가 자기 결과물을 평가하지 않도록 역할을 분리한 것이 이 저장소의 핵심 설계입니다.

체크포인트 위치 검토 내용 사용자 선택
A 구조 확정 STEP 2 이후 막 균형, 미드포인트, 주인공 능동성, 15비트 완성도, STEP 0 보완점 반영 승인, 수정 요청, 중단
B 비주얼/인물 확정 STEP 4 이후 이미지 시스템, 캐릭터 식별자, 적대자 입체성, 공간/모티프 전략 승인, 수정 요청, 중단
C 초고 전 최종 리뷰 STEP 6 이후 트리트먼트, 씬 리스트, 씬 수, 구조-장면 대응, 초고 진입 가능성 승인, 수정 요청, 중단

체크포인트에서 사용할 답변 예시

승인합니다. STEP 3으로 진행해주세요.
수정 요청입니다.
STEP 1에서 2막 후반의 씬 수를 줄이고,
STEP 2에서 주인공이 직접 선택하는 비트를 하나 더 강화해주세요.
Resume and revise

재개와 수정 요청

진행 상태는 `projects/{name}/state.json`에 저장됩니다. 새 세션에서는 CLAUDE.md와 state.json을 읽고 이어서 진행합니다.

이어하기

새 Claude Code 세션에서

워크플로우 이어서 진행해 주세요.
프로젝트는 projects/my-project 입니다.

Orchestrator는 `state.json`의 `current_step`을 기준으로 이어서 진행합니다.

수정 요청

수정은 캐스케이딩됩니다

체크포인트에서 STEP N을 수정하면 N을 다시 실행하고, 그 다음 단계부터 체크포인트 직전까지 다시 생성한 뒤 리뷰를 재실행합니다. 저장소 기준 최대 수정 횟수는 체크포인트당 3회입니다.

Export

최종 시나리오를 `.docx`로 변환

최종 Markdown이 `projects/my-project/output/final_screenplay.md`에 생성되면, 보조 스크립트로 Word 문서로 변환할 수 있습니다.

필요 패키지 설치

pip install python-docx

변환 실행

python scripts/md_to_docx.py projects/my-project/output/final_screenplay.md

출력 파일명을 직접 지정하려면 두 번째 인자를 추가합니다.

Troubleshooting

자주 막히는 지점

이 프로젝트는 자동 CLI 앱이 아니라 파일과 프롬프트를 읽는 작업 방식이므로, 경로와 상태 파일을 명확히 유지해야 합니다.

프로젝트가 이미 존재

초기화 스크립트가 중단됩니다

같은 이름의 `projects/{name}` 폴더가 있으면 덮어쓰지 않습니다. 새 이름을 쓰거나 기존 폴더를 확인하세요.

시놉시스를 못 찾음

파일명과 위치를 맞춥니다

`config.yaml`의 `synopsis_file` 값과 `projects/{name}/input/` 안의 실제 파일명이 일치해야 합니다.

단계 순서 혼동

프롬프트 파일명을 기준으로 봅니다

`step_05_treatment.md`, `step_06_scene_list.md` 순서로 진행합니다.

초고 품질 저하

STEP 7을 한 번에 쓰지 않습니다

막별 분할 집필과 사용자 점검을 유지해야 장면 밀도와 맥락 손실을 줄일 수 있습니다.

`.docx` 변환 실패

`python-docx`를 설치합니다

스크립트가 ImportError를 내면 `pip install python-docx` 후 다시 실행합니다.

상업적 이용

라이선스를 먼저 확인합니다

저장소는 CC BY-NC-SA 4.0로 배포됩니다. 생성된 시나리오 권리는 사용자에게 귀속된다고 README에 명시되어 있습니다.

출처와 확인한 파일

  • GitHub: sero12journey/synopsis-to-scenario
  • `README.md` — 전체 목적, 아키텍처, Quick Start, 라이선스
  • `CLAUDE.md` — Claude Code 실행 규칙과 재개 방식
  • `prompts/orchestrator.md` — 단계 실행, 체크포인트, 캐스케이딩 규칙
  • `prompts/config_schema.yaml` — 실제 프로젝트 설정 필드
  • `scripts/init_project.py`, `scripts/md_to_docx.py` — 초기화와 Word 변환 동작
  • `docs/02-design`, `docs/03-analysis`, `docs/04-report` — 설계 결정, 갭 분석, 완료 리포트