◂ Этап ScreensRYA.AEScreen Plan · Pre-render Gate — план экранов: страница версии до рендераплан экранов · 3 окт 2026
Ворота этапа Screens на треке AI Editing: до рендера длинного фильма на yt.rya.ae появляется страница версии — типы экранов и их логика, все экраны по порядку и по этапам, структура фильма с полным транскриптом, варианты цвета и голоса; у каждого места кнопка «# ссылка» и строка комментария. Роман правит по ссылкам, сессия собирает план vN+1, рендерится только утверждённое; после сдачи версия уходит в Archive на Drive. Слова Романа: «перед генерацией видео сначала показывать все эти экраны и добавлять на них активные ссылки и блок под комменты», «когда показываешь цвет и звук — тоже ссылки оставляй», «перед рендером нужно создать типы экранов, продумать их логику», «для показа использовать yt rya ae (следить за местом)».
📌 Правило. Рендер длинного фильма не стартует, пока на yt.rya.ae нет страницы версии — типы экранов с логикой, все экраны по этапам, структура с полным транскриптом, варианты цвета и голоса — и ответа Романа по ней или объявленного умолчания. Типы утверждают до вёрстки: показ 5–6 экранов вместо всех стоил переделки всех 125 экранов YTLAB01.
Одним взглядом
125экранов
YTLAB01 переделаны: вёрстка до «ок» типов
ещё без ворот: YTEVO пилот 47 · YTCG37 v1 26 · YTEVO v6 12
машиначеловек решает или смотритагент Claudeитог дорожки
Ворота этапа: «ок» по типам до вёрстки · «ок» стиля до вёрстки всех · lint 0, контраст ≥ 3 · кадр ≤ 160 КБ, страница ≤ 25 МБ · ответ или объявленное умолчание. Тома и кадры — Экраны кодом, рендер — Фильм кодом, порядок по сессиям — Процесс.
19.1 · 2Как выглядит страница версии
Светлая тема, один столбец, у каждого раздела, типа, экрана, этапа, пробела и варианта — кнопка «# ссылка». Порядок разделов: сделано по правкам → структура и транскрипт → цвет → звук → типы экранов → все экраны. Снимки — с примера на кадрах YTCG37 v2; живой пример: /kb/claude-screen-plan/example/ — 6 экранов из 26, 29 этапов, 15 блоков с транскриптом (951 слово), 6 типов, 4,6 МБ.
Шапка и «Сделано по твоим правкам»
Проект, версия, дата, строка о состоянии. Две колонки: «Вернул старый вид» — по правке, со ссылкой на экран; «Сам применил тот же принцип — проверь». Ниже начинается структура.
#donestatus · done[]
Структура ролика и что в ней звучит
Блоки свёрнуты: у каждого время, название, что показывает, экраны ссылками и «▸ текст» — полная речь блока. Кнопки «развернуть всё / свернуть всё»; в заголовке — 15 блоков, 951 слово. Пробелы структуры — ниже блоков.
#structurestructure[].text · gaps[]
Цвет — выбери вариант
Сдвиг экспозиции в логе до проявки −1,0 / −1,2 / −1,4; в каждом — полоса из трёх дублей и света кожи «49 / 56 %». Предложенный выделен; «выбрать» и «# ссылка» у каждого.
#colorvariants[] · default
Голос — выбери вариант
Один кусок 24 с: «Как в версии 1» · «Чисто» · «Тепло · предложено», плеер у каждого. Ниже начинаются типы экранов. Полоса «Скопировать решения» закреплена внизу окна, в снимок не вошла.
#soundvariants[] · audio
Типы экранов и их логика
Карточка типа: кадр, имя, число экранов, логика «когда ставим», примеры ссылками, «# ссылка». В примере: панель слева (7 экранов), холст с окном спикера (8), плашка поверх кадра (6), колонка цифр, титр имени, цепочка и пилюля.
#typestypes[] · logic
Экран по этапам
Номер, название, время, вид; «было → стало»; кадр «было» из прошлой версии и кадр на каждый этап — момент, когда встаёт элемент, с таймкодом и «# ссылка». Под кадрами (в снимок не вошли) — «ок / править» и комментарий.
#screensstages[] · was · now · flag
Пример собран на кадрах YTCG37 v2 (клиент Connect Group), лежит под паролем базы знаний. Решает Роман: оставить пример в базе знаний или заменить кадрами своего проекта без клиента. Роман 03.10 04:45 прислал образец анализа расположения человека и экрана — YTCG37 v4 «Кадрирование по замеру»: силуэт Apple Vision раз в секунду по всем дублям, окно плана по медиане, поля равны (≤ 4 px), над макушкой 6 / 8,5 / 7,5 % высоты (окно с v6 — 6 %), таблица всех планов v3 → v4 с парами кадров. Такой раздел — часть страницы версии, когда меняется кадр; в gen_screen_plan.py его пока нет (надо построить).
Разделы страницы версии — что в каждом и зачем
1Сделано по твоим правкам
что сделано по правке и что применил сам по тому же принципу — Роман проверяет, а не ищет
#done · done[]
2Структура ролика и что в ней звучит
блоки с полным текстом речи, свёрнуты; пробелы — отдельными карточками: недостающее не достраивать от себя, предложить и ждать «да»
#structure · structure[] · gaps[]
3Лицо: был пересвет
варианты кадрами, предложенный — default; числа кожи у каждого — сравнивают цвет, а не яркость. Готовит Цвет в AI Editing
#color · color.variants[]
4Голос: было эхо
один кусок в нескольких чистках; в тексте — что сделано и проверка слов («951 слово, совпадение 100 %»). Готовит Звук
#sound · sound.variants[]
5Типы экранов и их логика
какие виды есть в фильме и когда каждый ставится; «ок» по типам — до вёрстки всех экранов
#types · types[]
6Все экраны и их этапы
было → стало, фраза спикера, кадры этапов, ролик «движение», «ок / править»; призыв с QR — обычный экран (L_cta): на странице YTCG37 v2 был отдельный раздел «Ссылка и QR» с двумя ссылками UTM
Экраны YTLAB01 v4 — до рендера — лента экранов на кадрах, у каждого тип раскладки lay и вид viz, шаблон тома, «ок / комментарий», фильтры, «что изменено по вашим правкам». YTCG37 · версия 2 — структура 15 блоков с кадрами, «чего в структуре ещё нет», экраны по порядку с этапами, «# ссылка». Генератор собирает то же самое на yt.rya.ae.
19.1 · 3Типы экранов и их логика — до вёрстки
1Что такое тип
вид тома плюс логика «когда ставим»: цифра → колонка цифр, перечень или место → панель слева, схема или дорожная карта → холст с окном спикера, тезис или титул шага → плашка поверх кадра, имя → титр
агент проходит по листу и говорит, какие виды нужны фильму и когда ставятся; экран потом берёт вид из типов
вид · логика · пример
2Почему до вёрсткиворота
поменять тип на этом шаге — одна правка; после вёрстки — переделка всех экранов этого типа: 125 экранов YTLAB01 свёрстаны до «ок» — переделаны все
ворота схемы этапа: «ок» по типам до вёрстки; типы — первый шаг этапа, раньше мест экранов и стиля
3Как записать в план
types[]: id · title · logic · img · screens; раздел «Типы экранов и их логика» идёт перед списком экранов; у типа — карточка с кадром, именем, числом экранов, логикой, примерами ссылками и «# ссылка»
без types типы соберутся сами из kind_title экранов (имя, число, первый кадр) — логику тогда дописать нечем, поле лучше задавать; --check ругается, если нет ни types, ни kind_title
панель слева (7): название, карта, список — когда спикер перечисляет или называет место · холст с окном спикера (8): схема, дорожная карта, плитки — когда слов больше, чем помещается рядом с лицом · плашка поверх кадра (6): тезис, титул шага, предупреждение — 3–5 с
колонка цифр (2): числа считаются на словах · титр имени (1): при первом появлении · цепочка и пилюля (2): «что за чем» и одна подпись к действию
example/plan.json → types[]
Роман 03.10.2026: «Перед рендером нужно создать типы экранов, продумать их логику». Виды тома и как они зашиты в код — Экраны кодом; словарь видов обоих треков — Screen Kinds.
26 экранов YTCG37 v2 по шести типам
Холст с окном спикераслов больше, чем помещается рядом с лицом8 экранов
Панель слеваспикер перечисляет или называет место7 экранов
Плашка поверх кадратезис, титул шага, предупреждение — 3–5 с6 экранов
Колонка цифрчисла считаются на словах2 экрана
Цепочка и пилюля«что за чем» и одна подпись к действию2 экрана
Титр именипри первом появлении1 экран
Числа — example/plan.json → types[]; страница примера показывает 6 экранов из 26.
Правила экранов от Романа — что должно сойтись в логике типов
Цифра и факт — инфографика, которая делает число видимым: точки, счётчик, шкала, доля; встаёт на словах спикераСлужебных меток в кадре нет: «факт ждёт сверки» — на странице (fact), не в картинкеYTEVO — язык клиента: Bounded капсом + Inter, #0F0F11 / #F1F1EE / #EE3227; плоско — без свечений, частиц, 3D и отскоковХук — живые лица и реакция людей: холст во весь кадр не ставить, лёгкая подпись не с первой секундыВступление гостя — боковая панель со списком, не холст с окномТекст за головой ведущей — стиль канала, не ошибка и не правкаЭлемент стоит у своего шага и встаёт на слове спикера; части ролика видны: анонс, вход, кольцоПлашка снизу — поверх кадра во весь экран; колонка с подложкой — только когда её заполняет содержимоеВ конце ролика графики нет — конечную заставку добавляет YouTube; не достраивать от себяПризыв — «шторка»: логотип, темы на словах, QR с UTM, адресРазговор про ИИ датировать годом интервью («по состоянию на 2025»); Романа экранами не рекламировать
Из правок Романа 01–03.10.2026: YTLAB01 v3, пилот YTEVO, YTCG37 v1–v2, ТЗ YTUVI. Как правила зашиты в тома — Экраны кодом; как выглядят — Экраны каналов.
19.1 · 4Структура и полный транскрипт на странице
1Зачем
экран проверяют на словах, а не по памяти: раскрой блок, найди фразу, сравни с экраном
структура видна целиком — где мы в фильме и какие экраны держат каждый блок; у блока без экранов — прочерк
2Как лежит
свёрнуто по блокам: у блока время, название, что показывает, экраны ссылками и «▸ текст»; раскрывается блок или всё сразу («развернуть всё / свернуть всё»)
в заголовке раздела — число блоков и слов; пробелы структуры со своей «# ссылка» — ниже блоков
#structure · #blk-1 … #blk-N
3Откуда текст
слова по времени из файла слов движка (solo: 08_Cut/words_vN.json, headless: <CODE>_transcript.words.json), сгруппированные по блокам структуры — так собран пример: 15 блоков, 951 слово
--check считает слова транскрипта и ругается, если у структуры нет текста блоков
structure[].text — полный текст блока
4Не замена листу
транскрипт на странице — для проверки экранов и структуры; источником остаются лист экранов <CODE>_screens_vN.json и слова по номерам
правки текста речи — не здесь: реплики и подрезки живут в листе и <CODE>_trims_vN.json, страница их только показывает
Роман 03.10.2026: «Здесь важно ещё добавлять полный транскрипт (прям складывать, но чтобы можно было разложить). Транскрипт должен содержать структуру видео и полную транскрибцию». Слова и края — Исходники машине; лист — Монтажный лист.
19.1 · 5Формат плана screen-plan-v1
Один вид плана на все движки; схема — в шапке scripts/site/gen_screen_plan.py и в example/plan.json. Экраны сортируются по t, номера ставит генератор; копия плана ложится рядом со страницей как plan.json.
Ключ
Что
В примере
schema · project · channel · version · date
«screen-plan-v1»; код проекта; канал — папка на сайте; версия; дата
YTCG37 · kb · v2
title · who · headline · status · engine · volume · source · duration
название, кто, заголовок, строка о состоянии; движок, том экранов, лист-источник, длина, с
«Версия 2: экраны, цвет и звук» · headless solo · YTCG
done[]
сделано по правкам: title, items[{id, text}]; id — ссылка на экран
«Вернул старый вид» → H_warn
structure[] · gaps[]
строки t · block · what · screens[] · text — полный текст речи блока, свёрнут; пробелы id · title · text
15 блоков, 951 слово · 2 пробела
types[]
id · title · logic («когда ставим») · img · screens[]; раздел перед списком экранов
fb «по твоей правке» · same «тот же принцип, ты не называл» · ask «вопрос к тебе»; fact — метка «факт: …» на странице, не в кадре
C_stats: ask · H_warn: fb
screens[].stages[] · old · clip
n, tc, what, img — кадр на момент, когда встаёт элемент; кадр прошлой версии; ролик «движение» без звука
29 этапов
color · sound
title, text, default, variants[{id, title, note, img | audio}]; пути — относительно --media DIR
3 + 3 варианта
Лимиты веса («следить за местом»): кадр ≤ 160 КБ · ролик ≤ 600 КБ · звук ≤ 700 КБ · медиа страницы ≤ 25 МБ — тяжелее: ⛔ страница не записана. Нет файла, экран без кадров, структура без текста, ни types, ни kind_title — ⚠ замечание, без --check страница всё равно пишется. Кадры 640–960 px jpg, ролики без звука; пример — 41 файл, 4,6 МБ, замечаний 0. Листы движков, из которых план собирается (ytai-cut-screens-v1 · <CODE>_screens_vN.json без schema у solo · ytai-doc-gfx-v1 · gfx[] в agents/edl/B<N>.json · ytai-autocut-screens-v1 · ytai-lesson-plan-v1), и чем снять кадры — Экраны кодом. plan.json из листа сегодня собирает сессия: пример написан руками, кадры этапов YTCG37 v2 снял скрипт проекта review_page_v2/stages.py поверх solo.film_frame; общего экспортёра «лист → screen-plan-v1» нет — надо построить.
19.1 · 6Как Роман отвечает и что делать без ответа
1Ссылкой: «# ссылка» + правка
кнопка у раздела, типа, экрана, этапа, пробела и варианта копирует адрес с якорем (…/v2/#C_stats-3); Роман вставляет его в сообщение и пишет правку — в чат или Telegram
так пришли правки YTCG37 v2: пять экранов к старому виду, финал убрать — до рендера
«ок / править» и строка комментария у экрана; «выбрать» у варианта цвета и звука, без выбора действует default плана; по типам и структуре — только ссылкой
отметки живут в localStorage браузера (ключ plan:<проект>:<версия>): на другом устройстве их нет, мне не видны
счётчик внизу: «экраны: ок N · править N · не отмечено N»
3«Скопировать решения» → текст в чат
«<CODE> vN — решения по странице <адрес>»; «Цвет: −1,2 · предложено (как предложено)» — пометка, если Роман не выбирал сам; каждый «править» — номер, название, комментарий, ссылка; в конце «экраны ок: N · не отмечено: N»
вставленный текст и есть решения: сессия заносит их в план vN+1 — done[], flag, новая версия листа
4Решает Роман: сколько ждать без ответаРешает Роман
умолчание без ответа дважды вернулось после рендера: цвет YTLAB01 v1 → «пересвет» в v3, цвет YTCG37 v1 → пересчёт в v2
А: без ответа рендер не стартует — страница и есть ворота · Б: объявленное умолчание в статусе страницы и в Telegram: «без ответа до … беру default» · В: рендерятся только экраны «ок», остальные ждут
срок ожидания Роман не называл — на странице его нет
в схеме этапа: «ответ или объявленное умолчание»
5💬 Моё мнение: умолчание объявлять, не угадывать
каждый молчаливый выбор машины (цвет, стиль, A/B) возвращался после рендера; поэтому default — всегда с пометкой «предложено», а час, после которого он вступает, — текстом в статусе страницы: Роман отвечает не сразу, а рендер экранов стоит часов
Что можно у каждого места страницы
Место
# ссылка
ок / править + комментарий
выбрать
Раздел
✓
✗
✗
Тип экрана
✓
✗
✗
Блок структуры · пробел
✓
✗
✗
Экран
✓
✓
✗
Этап экрана · движение
✓
✗
✗
Вариант цвета или голоса
✓
✗
✓
✓есть✗нет — правка ссылкой в чат
По gen_screen_plan.py: «ок / править» и строка комментария — только у экрана; отметки живут в localStorage браузера.
19.1 · 7Показ и архив: yt.rya.ae и Drive «Archive»
1Показ — на yt.rya.aeесть сегодня
страница версии: web/<канал>/<NN>/vN/ → push в main; мягкий пароль канала, как у всего раздела; сторож места — site_archive.py budget: сайт ≤ 2500 МБ, раздел ≤ 500 МБ
сайт 2,2 ГБ при диске сервера 38 ГБ (свободно 18 на 24.09): ytagefree 476 МБ, ytrf 392, kb 73
деплой — rsync без --delete: с сервера само ничего не исчезает
тот же путь, что на сайте: web/ytrf/01/v1/x.mp4 → Archive:yt.rya.ae/ytrf/01/v1/x.mp4; что архив — список web/_data/archive.json (девять папок archive/) плюс медиа без единой ссылки
с сайта ничего не убрано; заглушек со ссылкой на Drive для девяти папок archive/ нет, а на них ведёт ссылка «🗄 Архив»
сироты моложе 30 дней не трогать (rsc/004/animatic-2026-10-01) — возраста в коде нет, фильтровать руками; после prune список archive_server_cleanup.txt отдать Engelbart
Решает Роман: убирать ли девять папок archive/ (с заглушками) и сироты старше 30 дней
4Страница версии после сдачинадо построить
путь версии → archive.json со status todo → push --apply → prune; на сайте остаётся живое. Ни одна страница версии через это ещё не прошла
Cloudflare кэширует медиа на год: заменённый файл — под новым именем
подвал страницы версии: «после сдачи фильма страница уходит в архив на Drive»
19.1 · 8Ворота до рендера: шесть «да»
Рендер длинного фильма стартует, когда пройдены все шесть; под шагом — его норма.
1
«Ок» по типамчеловекагент предлагает виды и логику «когда ставим»✓ до вёрстки
2
Места экрановагентагент по листу, якорь у каждого✓ title ≤ 46 · item ≤ 38
3
Стиль: 5–6 экрановчеловекна кадрах фильма✓ «ок» до вёрстки всех
4
Все экраны по этапаммашинаисходник + куб + сдвиг + графика✓ lint 0 · контраст ≥ 3
Показаны 5–6 экранов, а не всеv4 «по мелким правкам» уже после рендера v3 — страница всех экранов до рендераYTLAB01 v3
125 экранов свёрстаны до «ок» стиля и типовпеределаны и перерендерены все — сначала типы с логикой и 5–6 кадров стиля на кадрах фильмаYTLAB01
Палитра без сверки с сайтом клиентаGilroy на navy из профиля канала — второй набор из 47 экранов; кадры стиля на референсах клиентаYTEVO, пилот
Экраны собраны до нового звука12 экранов перерисованы — звук раньше экранов, моменты по звуку текущей версииYTEVO v6
Экраны не показаны по этапам26 экранов переделаны после рендера, часть переделок Роман отменил — страница этапов до первого рендераYTCG37 v1
Плашку снизу «починил» синей колонкой«мне старый больше нравится», «не вижу смысла перекрывать пол-экрана» — плашка поверх кадраYTCG37 v2, первый вариант
Финальная панель: Watch next, QR, Subscribe«в конце ничего не надо, ютуб сам добавит. Не усложняй, не добавляй»YTCG37 v2
Страница — артефакт Claudeпривязан к аккаунту сессии: другая сессия адрес не обновит, выходит новый — показ на yt.rya.ae; образцы Романа остаются ссылкамиYTLAB01 v4 · YTCG37 v2
Листы стиля в Telegram без ответарендер всё равно пошёл; выбор A/B не сделан — «везде вариант A». Ворота: ответ или объявленное умолчаниеYTCR v6 · YTEVO
Экран проверен по памяти, не по словам«она здесь говорит Step 1 Document Review, а ты показываешь в другом месте» — транскрипт по блокам на странице, элемент на слове спикераYTCG37 v1
Решения в семи форматахdirectives._why, choice.json, #fb=, хранилище артефакта, notes_text, Telegram — один текст «Скопировать решения» и план vN+1инвентаризация 03.10
19.1 · 12Команды и где лежит
Кадры стиля и кадры по этапам (шаги этапа)
V=~/YTAI/environment/.venv_transcribe/bin/python; P=<проект>; J=$P/00_Setup/08_Cut/<CODE>_cut_job.json
HC=~/YTAI/scripts/05_editing/0510_headless_cut; SC=…/0511_story_cut; AC=…/0510_autocut; DC=…/0511_doc_cut
$V $HC/brief.py lint --job $J --trims T --screens S # места экранов по форме: title ≤ 46, item ≤ 38
$V $HC/gfx.py mock --job $J --edl edl.json [--only id] # YTLAB: экран на кадре фильма (исходник + куб + сдвиг) → snapshots/mock/
$V $SC/sc_gfx.py shot $P --bg кадр.png [--only a,b] # YTCR: экран поверх кадра фильма → snapshots/; образцы типов — demo
$V $AC/screens2.py --project $P preview [--only S01] [--at 1,3,6] # YTEVO: кадры через Chrome → snapshots/<ID>.jpg; лист — sheet
$V $HC/solo.py mock --job $J [--at 12.5,40] # YTCG: кадр на каждый экран или на секунды → 08_Cut/qc/mock_vN/ + листы
$V $SC/sc_sheet.py gfx $P [--only B7,B8] # YTCR: лист экранов на кадрах → 02_Edit/_cut/<tag>/sheets/gfx_NN.jpg
$V $DC/gfx.py mock --job $J [--tag v1] [--only a,b] # YTCH: экран поверх кадра → 08_Cut/qc/gfx/<id>.jpg + листы
В схеме этапа те же команды записаны коротко, без проекта и задания: $V $HC/gfx.py mock · $V $SC/sc_gfx.py shot --bg кадр.png · $V $AC/screens2.py preview · $V $HC/solo.py mock --job $J · $V $SC/sc_sheet.py gfx · $V $DC/gfx.py mock. У sc_gfx.py и sc_sheet.py проект идёт первым аргументом, у screens2.py — ключом --project.
Страница версии на yt.rya.ae
python3 scripts/site/gen_screen_plan.py --plan plan.json --media DIR --check # вес и полнота: экраны, этапы, типы, слова транскрипта; ничего не пишет
python3 scripts/site/gen_screen_plan.py --plan plan.json --media DIR # → web/<канал>/<NN>/<версия>/index.html + plan.json + медиа; свой путь — --out
git add web/<канал>/<NN>/<версия> && git commit -m "…" && git push origin HEAD:main # деплой = push в main: GitHub Actions → rsync; ссылку — в Telegram
Архив сайта — site_archive.py
python3 scripts/site/site_archive.py scan # вес по разделам, тяжёлые файлы, медиа без единой ссылки
python3 scripts/site/site_archive.py plan --min-mb 1 # кандидаты: сироты + пути из archive.json со status todo
python3 scripts/site/site_archive.py push --apply # копия на Drive + rclone check --size-only → archive_pushed.json (без --apply — сухо)
python3 scripts/site/site_archive.py prune # список к удалению; --apply убирает сверенное и пишет archive_server_cleanup.txt
python3 scripts/site/site_archive.py budget --max-mb 2500 --section-mb 500 # сторож места: код выхода 1, если тяжелее
Медиа не удалять без сверенной копии на Drive. Список для чистки сервера отдаётся Engelbart: rsync деплоя ничего не удаляет.
Где лежит
Код сайта (репозиторий yt-rya-ae, main)
scripts/site/gen_screen_plan.pyстраница версии из плана screen-plan-v1; схема в шапке файла