◂ Этап StoryRYA.AEMontage List by Agents — монтажный лист: агенты пишут, код проверяетэтап · 3 окт 2026
Здесь решается, что войдёт в фильм, — без монтажёра. Структуру (блоки и единицы) задаёт человек; лист — куски речи по словам, перебивки, экраны — пишут агенты Claude по брифу; код проверяет: якоря слов найдены, правила канала соблюдены, повторов кадров нет, склейки спрятаны; потом края и звук сводятся до сэмпла и человек смотрит лист кадров каждого плана. У пяти движков пять форм листа, но порядок один. Из чего строить историю — камеры, звук, экраны, связки, динамика, цвет — библиотека подходов.
📌 Правило. Структура и история фильма утверждаются до реализации: карта сцен в XMind и страница структуры с историей (HTML) — Роман даёт «да», и только потом решают цвет, чинят звук по исходникам и строят экраны. Лист пишут агенты по словам, проверяет код; рендерится только утверждённое. — Роман 03.10.2026: «в XMind плюс в HTML создаёшь структуру и историю перед реализацией; когда мы это утверждаем — цветокор, звук голоса по исходникам, потом все экраны».
Одним взглядом
5
форм листа: у каждого движка своя, порядок один
autocut · headless ×2 · doc_cut · story_cut
8
помощников-агентов, по блоку на каждого
story_cut · docs/BRIEF_edl.md
0⛔
ошибок кода — только тогда лист видит человек
sc_edl check · story.py · brief lint
104
пары повторов перебивок сняты кодом
YTCR04: sc_dedup fix, а не глаз
1Схема2Формы · сводка3Формы листа4Агенты5Ворота6Проверки7Знания8Грабли9Команды10Где лежит

13.1 · 1Схема

📥 Вход
.words.jsonслова со временем и ролями
+
Каталог кадровсклейки, лица, что в кадре
+
Бриф Романао чём фильм, красные линии
🧭 Структура
Карта сцен · хребет · дублиstory_map, XMind v3, lesson_spine
→
Блоки → единицыблок = вопрос, пик ≤ 30 с
→
«да» Романаstructure_final
🤖 Лист
sc_prep · brief dumpлисты блоков с кадрами и словами
→
Помощники8 агентов, по блоку на каждого
→
agents/edl/B<N>.jsonкуски по словам + заметка
✅ Код
sc_edl check · brief linthead/tail = слова, склейки спрятаны
→
story.pyякоря, structure_rules
→
sc_dedup fixповторы перебивок
→
OK0 ⛔
✂️ Края
sc_align edgesCTC по звуку
→
sc_buildобщий лист, звук до сэмпла
→
sc_align audit0 резов вне паузы
👁 Глазами
sc_sheet cuts · clipкадр каждого плана
→
Герой под «я»только он сам
→
audition · sc_qc asrсобранная речь без обрывов
→
Лист к сборке{CODE}_cut_<tag>.json
машиначеловек решает или смотритагент Claudeитог дорожки

Фиолетовая рамка — агенты Claude. Их работа всегда заканчивается проверкой кодом (OK) до того, как лист увидит человек.

13.1 · 2Пять форм листа одним взглядом

Порядок у всех один — структура от человека, лист по словам, проверка кодом; разные файл и автор.

Форма листаДвижок · примерФайл — кто пишетПроверка
Хребет + указанияautocut · YTEVO02directives_v4.json — человек«ФАКТ ЖДЁТ СВЕРКИ» снимает клиент
Подрезки + экраныheadless · YTLAB01trims_v1 + screens_v1 — помощникиbrief.py lint
Лист дублейsolo · YTCG37takes_v1 — 17 дублей на 4:42plan: стык без прикрытия — ошибка
Лист от словdoc_cut · YTCH14montage_v1 — человек или редактор-Claudestory.py resolve: якоря, структура
EDL по блокамstory_cut · YTCR04agents/edl/B<N> — 8 помощниковsc_edl check — до OK
Отбор шортсовшортсы · Draperpicks.json — агент Drapershorts.py picks

13.1 · 3Пять форм листа — по движкам

1Хребет + указания · autocutYTEVO02
  • хребет урока lesson_spine_1.json и lesson_plan_1.built.json из препродакшена
  • directives_v4.json — пишет человек: edges · trims · framing · choice · screens_off · screens_time · facts · zoom · fades · inserts, у решений поле _why
  • правки клиента (Михаил Белавин) вносятся в directives: _v6_why
  • метка «ФАКТ ЖДЁТ СВЕРКИ» висит на экране до подтверждения клиентом
{P}/00_Setup/02_Assembly/autocut_v4/directives_v4.json
2Подрезки + экраны · headless мультикамYTLAB01
  • ТЗ Assembly {CODE}_Assembly_v{N}_in.json → brief.py dump --notes → помощники пишут {CODE}_trims_v1.json (drops/keeps по сквозным номерам слов) и {CODE}_screens_v1.json (type · text · anchor/until · viz)
  • бриф помощникам — 08_Cut/agents/BRIEF_trims_screens.md, части A–E; гейт — brief.py lint
  • решение Романа: резать плотно, по пометкам ТЗ
{P}/00_Setup/08_Cut/{CODE}_trims_v1.json
3Лист дублей · headless soloYTCG37
  • {CODE}_takes_v1.json: clip · takes · spare — 17 дублей на 4:42; экраны {CODE}_screens_v1.json привязаны фразой from/to/at
  • solo.py edges → edgeplot: лист краёв дублей глазами — фальстарты («So,» + пауза) и хвосты
  • дубль начинать с непрерывной речи; стык дублей закрывает смена крупности A/B — plan падает на незакрытом стыке
{P}/00_Setup/08_Cut/{CODE}_takes_v1.json
4Монтажный лист от слов · doc_cutYTCH14
  • {CODE}_montage_v1.json — реплики по словам from/to около at, перебивки covers; «единственное, что правится руками» — человек или редактор-Claude
  • рядом {CODE}_gfx_v1.json (экраны) и {CODE}_music_v1.json; вопросы ask и fund — в {CODE}_preview_notes.json
  • story.py resolve: якоря в местной расшифровке, кто говорит — по уровню петлички
  • правила фонда из review_profile → structure_rules: блок ≤ 90 с, слияние не ближе 30 с, последний звук — героини
{P}/00_Setup/08_Cut/{CODE}_montage_v1.json
5EDL по блокам карты сцен · story_cutYTCR04
  • структура v3 карты сцен (999_extra/story_map): layout_v1 · moments_<NN> · work/structure_final_v1 — блоки → единицы → куски с режиссёрской заметкой
  • sc_prep.py → agents/blocks/ + broll_catalog.md + speech_angles.md → 8 помощников пишут agents/edl/B<N>.json по docs/BRIEF_edl.md
  • sc_edl.py check до OK → sc_align → sc_build → sc_dedup; риски — EDL_NOTES.md, правки экранов — {CODE}_gfx_overrides.json
{P}/00_Setup/08_Cut/agents/edl/B07.json
6Отбор для шортсов · Draperшортсы
  • та же логика короче: shorts.py transcript → задание отборщику → агент Draper пишет picks.json → shorts.py picks проверяет кодом
  • подробно — Shorts · Cases
{P}/00_Setup/07_Shorts/picks.json

13.1 · 4Агенты и модели

КтоЧто пишетПо чемуГейт кодом
Помощники по блокам (агенты Claude, облако)agents/edl/B<N>.json: куски речи по словам, перебивки из каталога, заметкаdocs/BRIEF_edl.md + листы блоков sc_prep (слова, кадры, углы речи)sc_edl.py check → OK; sc_dedup fix; у помощников общий scratchpad — писать только в agents/edl/
Помощники trims + screens (YTLAB){CODE}_trims_v1.json, {CODE}_screens_v1.jsonagents/BRIEF_trims_screens.md, части A–E, после brief.py dump --notesbrief.py lint
Редактор-Claude или человек (doc_cut){CODE}_montage_v1.json, _gfx_, _music_общая расшифровка Claude4_assembly.json + брифstory.py resolve: ⛔ якорь не найден, ⛔ структура
Сессия с Романом + story_mapструктура карты сцен v3, режиссёрские заметки, edge_overridesзаписи сцен, слова, принципы глав (глава = вопрос, пик ≤ 30 с)«да» Романа; sc_prep не стартует без structure_final
Qwen2.5-VL-7B (Memex) — каталог кадров«что в кадре» для каталога перебивоккадры исходниковне гейт: путает людей — лицо героя эталоном SFace и глазами
Qwen3-8B (локально)сегментация тезисов для ТЗ монтажёру (трек Premiere, montage_tz)расшифровкав треке AI Editing не используется для листа
Draper (агент Claude)отбор моментов для шортсов picks.jsonPICKS_PROMPT.md: правила канала, расшифровка с ролями, описание выпускаshorts.py picks

Из кода движков LLM не вызываются: агенты работают в облаке по брифам, код только проверяет их файлы. Это осознанно — проверка воспроизводима, а решения агента читаемы в JSON.

13.1 · 5Ворота листа: story_cut, YTCR04

Агенты пишут, код проверяет, человек смотрит — по шагам и с порогами.

1
«Да» структуречеловеккарта сцен XMind + страница структуры✓ без structure_final sc_prep не стартует
2
Листы блоковмашинаsc_prep: слова, кадры, углы речи⇒ agents/blocks/
3
8 помощниковагентпо блоку на каждого, по docs/BRIEF_edl.md⇒ agents/edl/B<N>.json
4
sc_edl checkмашинакрая = слова, склейки спрятаны✓ план ≤ 12,5 с · до OK
5
Края по звукумашинаsc_align → sc_build → audit✓ 0 резов вне паузы
6
sc_dedup fixмашинаповторы перебивок✓ MARGIN 1,0 с · FAR 4 мин
7
Лист кадровчеловекsc_sheet cuts · clip + SFace✓ под «я» — только герой
↺ ⛔ у кода — правка листа и снова check, до OK
машиначеловекагент

13.1 · 6Проверки

ПроверкаКогдаНормаОткуда взялась
Якоря найденыstory.py resolve⛔ если from/to реплики не нашлись в местной расшифровке; ⚠ реплика впритык к краю клипавремя слов общей расшифровки врёт на 1–7 с (YTCH14)
Структура каналаstory.py → structure_rulesблок фонда ≤ 90 с, слияние не ближе 30 с, вход фонда не раньше 34, последний звук — героини; ⛔ при нарушенииправила фонда (Роман, YTCH11 v5)
EDL сходится со словамиsc_edl.py checkhead/tail = слова, склейки спрятаны, план не длиннее MAX_HOLD 12,5 спомощники ставили края «по смыслу»
Повторы перебивокsc_dedup.py fixMARGIN 1,0 с, FAR 4 мин; dedup_log.mdYTCR04: 104 пары повторов — 8 помощников брали одни и те же лучшие кадры
Подрезка в тишинеheadless edlрез в тишине или провале ≥ 14 дБ, иначе подрезка → rejected; паузы > 1,0 с ужимаются до 0,4; «э-э» 0,6–2 с вырезаетсярезы по меткам Whisper рвали слова
Под «паузой» нет речиheadless edlunheard и vetoed_pauses в отчёте«пауза» скрывала 16 с речи под словом-галлюцинацией
Речь на стыкахverify3+3 слова вокруг стыка в окне ±4 с; найдено < 5 из 6 → ⚠первое слово дубля Whisper относил к соседу
Края в паузеsc_align audit0 резов вне паузы из всех краёвметки слов рано на 85–570 мс
Лист брифаbrief.py lintформа и ссылки на слова верныагент писал номера слов не той нумерации
Герой под «я»sc_sheet cuts · clip + SFaceчужих лиц под словами героя нетколлега под «я» героя 12 раз (YTCR04)
Факты на экранахчеловек«ФАКТ ЖДЁТ СВЕРКИ» снят клиентомчисло из карточки должно прозвучать у эксперта
Пороги одним взглядом
План без сменыс · sc_edl MAX_HOLD
≤ 12,5
05101520
Кусок фонда (YTCH)с · story.py structure_rules
≤ 90
0306090120150

слияние не ближе 30 с, последний звук — героини.

Рез в провале громкостидБ · headless edl
≥ 14
07142128

или в тишине; иначе подрезка → rejected. Паузы > 1,0 с ужимаются до 0,4.

Речь на стыкеслов найдено из 3 + 3 · verify
≥ 5 из 6
0123456

слова ищутся в окне ±4 с вокруг стыка; меньше пяти — ⚠.

нормана гранибрак

13.1 · 7Что обновляет базу знаний

ФайлЧто хранитКто и когда пишет
YTs/{CH}/review_profile.json → structure_rulesправила структуры канала, которые проверяет кодруками после решения Романа, с пометкой кто и когда
docs/BRIEF_edl.md · agents/BRIEF_trims_screens.mdбриф помощникам: как резать, где кадры, что нельзясессия после каждого прогона — туда уходят грабли помощников
EDL_NOTES.md · {CODE}_preview_notes.jsonриски листа, вопросы ask/fund, спорные края «ждали / слышно»сессия и человек по ходу листа
{CODE}_gfx_overrides.json · dedup_log.mdправки экранов редактором; что снял dedupредактор; код
edge_overrides_vN.json (story_map)выверенные по звуку края сцен — поверх правил картыагент или человек; берётся последний N
память: feedback_chapter_writing_principles · feedback_broll_hero_identity_checkпринципы глав (вопрос, пик ≤ 30 с, крючок); лицо героясессия по решениям Романа

13.1 · 8Ошибки и грабли

Помощники берут одни и те же кадры104 пары повторов — sc_dedup fix, а не глазYTCR04
Общий scratchpad у помощниководноимённые черновики затирают друг друга — писать только в agents/edl/YTCR04
Каталог VLM назвал коллегу героемпод «я» героя — только он: SFace с эталоном + лист кадров каждого планаYTCR04
«Пауза» скрывает речь16 с речи под словом-галлюцинацией — unheard / vetoed_pausesYTLAB01
Город, которого герой не назывална карту не ставить; Khartoum → SudanYTCR04
Хронометраж агентом «на глаз»53–271 % правды — только замер по живой речи (timing по словам)YTUVIE
Два писателя в один JSONданные молча стираются — конвейер гасить перед ручной сборкойYTUVIE
Чужая мысль внутри единицыреплика Дарьи между фразами Анастасии: конец куска — конец этой же мыслиYTEVO02
Титров глав 4 в пометах, 12 на делеискать по склейкам мастера, не по пометам расшифровкиYTFP01
Факты без источникачисло на экране должен сказать эксперт; «ФАКТ ЖДЁТ СВЕРКИ» до подтверждения клиентомYTEVO02
Фальстарты перед дублем«So,» + пауза 1–2 с: дубль начинать с непрерывной речиYTCG37
Стык дублей ничем не закрытplan падает — смена крупности A/B или экранYTCG37

13.1 · 9Команды

story_cut (карта сцен)
V=~/YTAI/environment/.venv_transcribe/bin/python; SC=~/YTAI/scripts/05_editing/0511_story_cut

$V $SC/sc_prep.py --project $P  # листы блоков помощникам → agents/blocks/
# помощники пишут agents/edl/B<N>.json по docs/BRIEF_edl.md
$V $SC/sc_edl.py check --project $P  # до OK
$V $SC/sc_align.py edges && $V $SC/sc_build.py && $V $SC/sc_align.py audit  # края, общий лист, мерило
$V $SC/sc_dedup.py fix  # повторы перебивок
$V $SC/sc_sheet.py cuts · clip  # лист кадров глазами
$V $SC/sc_qc.py asr  # распознать собранную речь: потеряно слово / край изменён / текст другой
headless · solo · doc_cut
HC=~/YTAI/scripts/05_editing/0510_headless_cut; DC=~/YTAI/scripts/05_editing/0511_doc_cut

$V $HC/brief.py dump --notes --job $J  →  помощники  →  $V $HC/brief.py lint  # подрезки и экраны YTLAB
$V $HC/solo.py edges → edgeplot → listen → dialog → verify + letters → align --job $J  # лист дублей YTCG
$V $DC/story.py resolve --job $J && $V $DC/cut.py status  # якоря и структура YTCH
$V audition.py --job $J   (из {YTEVO02}/…/autocut_v4/_v6_tools/)  # собранная речь с метками резов до рендера

13.1 · 10Где лежит

Структура
{P}/00_Setup/02_Assembly/scene_maps/{layout_v1, moments_<NN>, work/structure_final_v1}.jsonкарта сцен v3 (story_map)
{P}/00_Setup/03_Pre-Edit/lesson_plan/1/lesson_spine_1.jsonхребет урока (autocut)
Листы
{P}/00_Setup/08_Cut/agents/edl/B<N>.json · agents/blocks/ · EDL_NOTES.md · dedup_log.mdstory_cut
{P}/00_Setup/08_Cut/{CODE}_montage_v1.json · _gfx_v1 · _music_v1 · _preview_notes.jsondoc_cut
{P}/00_Setup/08_Cut/{CODE}_trims_v1.json · _screens_v1.json · agents/BRIEF_trims_screens.mdheadless
{P}/00_Setup/08_Cut/{CODE}_takes_v1.jsonsolo
{P}/00_Setup/02_Assembly/autocut_v4/directives_v4.jsonautocut
Брифы и правила
~/YTAI/scripts/05_editing/0511_story_cut/docs/BRIEF_edl.mdбриф помощникам
~/YTAI/YTs/{CH}/review_profile.json → structure_rulesправила структуры канала
Монтажный лист · сверено 02.10.2026 · примеры: YTCR04 (EDL по блокам) · YTCH14 (лист от слов)