◂ База знанийRYA.AEReview Timeline — 6-слойный ревью-таймлайн катаобновлено 14 сен 2026
Ревью готового ката монтажёра без правки его видео: рендер лежит на V1 нетронутым, а всё, что мы хотим сказать монтажёру, лежит слоями сверху — футажи, инфографика, плашки ТЗ, стрелки «где ошибка», структура. Один и тот же источник правды (pravki_v2.json) рождает секвенцию в Premiere, лист в Google Sheets, вкладку в сценарном доке и Drive-папку материалов с комментами. Эталонная реализация — YTUVI01 «Корунд — Рубин», Review_v6.
Принцип. Ошибка ищется машиной (кадры 1 fps → OCR → локальные VLM/LLM), подтверждается агентом с глазами и веб-факт-чеком, а показывается монтажёру прямо на кадре: стрелка в место ошибки + нарисованный правильный титр. Текст ТЗ копируется с таймлайна кнопкой панели.
рендер v1prep кадры·OCR·VLM·LLMaudit агенты по главам + скептикиpravki_v2.jsonPNG 4K + review JSONUXP → Premiere · Sheet · Doc · Drive
16 слоёв2Конвейер3Аудит экранов4Формат ТЗ5Приёмка6Графика7Поверхности8Экономия токенов9Правила и грабли10Скрипты

🧱4.6 · 16 слоёв поверх нетронутого оригинала

слойчто лежитформат
V1ОРИГИНАЛ — рендер монтажёра целикомне трогать никогда, A1 цело; звук вставок → A2/A3
V2вставленные футажи: видео и фото (клипы, сканы, гравюры)клипы по таймкодам; стиллы ≤ 4,8 с
V3ВСЯ инфографика: драфты схем/карт, плашки-определения терминов при каждом упоминании, мини-карты локаций, нарисованные исправления титровпрозрачный PNG 4K; полноэкранным остаётся только то, что заменяет кадр (карта, схема)
V4комментарии ТЗ: lower-third «ТЗ-NN · место + что сделать»полный текст + Drive-ссылки в маркере мастер-клипа и по кнопке панели Copy ТЗ @ playhead
V5ошибки на экране: эллипс-обводка + стрелка в место ошибки + плашка «ТЗ-NN · ОПЕЧАТКА / ФАКТ / ВАЛЮТА»координаты — из OCR-bbox кадра (×3840/2160), не на глаз
V6структура: плашки глав, подглавы на каждом титульном экране, прогресс перечислений «N из M»прозрачные; главы — верх-лево с градиентом, подглавы/прогресс — левый борт середина (верх кадра занят титрами ката)
Маркеры секвенции = только названия глав, разноцветные span (Green/Cyan/Orange/Magenta/Blue/Yellow по кругу). Никаких ТЗ и точек на линейке — навигация только по главам. Слои включаются/выключаются глазом: каждая категория информации на своём слое.

⚙️4.6 · 2Конвейер — теперь стадия 4.7

Конвейер стал системой: 4.7 Cut Review Cycle — карточка фильма + профиль канала, стейт-машина review.py, Memex делает кадры/OCR/транскрипт/VLM/LLM/пробы автономно, маршрутизация кандидатов кодом, один облачный проход (судья J по текстовым пакетам, факт-чек F, кропы V, скептик S — 7–10 агентов вместо 233–560), QA дока и превью кодом. Эта страница остаётся каноном форматов: слои, формат ТЗ, приёмка, графика.

код scripts/05_editing/0509_review_cycle/вход /review · review.py

🔍4.6 · 3Аудит экранов: что проверяем

  • ТЕКСТ опечатки, орфография, регистр химических символов (Al₂O₃:Cr, а не AL₂O₃:CR), ё/е внутри экрана, обрезка кадром.
  • ФАКТЫ каждое число/дата/имя/вес/цена — веб-поиском по авторитетным источникам, ссылка в evidence.
  • ВАЛЮТА знак перед числом и сокращение: «$30,3 МЛН»; единый формат по всему фильму.
  • ЯЗЫК английские графики/подписи без русского перевода или где английский крупнее русского.
  • ЭКРАН ≠ ОЗВУЧКА титр противоречит сказанному.
  • ВЁРСТКА титр за головой ведущей (буквы закрыты), чужие водяные знаки и UI плеера во вставках, грубые маски.
Выход по каждой ошибке: стрелка на V5 + (если можно нарисовать) правильный титр на V3 — патч в цвет кадра (сэмплинг фона и «чернил» по bbox) + верный текст + бейдж «ИСПРАВЛЕНО · ТЗ-NN · драфт». Сомнительные OCR-флаги перепроверять кадром: анимация титров даёт ложные срабатывания.

🧾4.6 · 4Формат ТЗ: блоки, а не стена текста

Роман (10.09): «сплошной текст сложен для восприятия». Каждое ТЗ печатается именованными блоками с жирными метками — глаз находит нужное за секунду:

  • ❌ СЕЙЧАС что на экране сейчас и в чём проблема (по одной строке на находку).
  • ✅ СДЕЛАТЬ действие монтажёра, без объяснений «почему».
  • 📋 СПИСОК если ТЗ покрывает много точек (термины, локации, подглавы) — ПОЛНЫЙ список с таймкодами, чтобы заказчик мог отметить, что оставляем, а что убираем.
  • 📍 ГДЕ таймкод-диапазон + якорь из озвучки.
  • 📚 ИСТОЧНИК чем подтверждено: книга/журнал со страницей и ссылкой, лабораторная статья, официальный сайт.
  • 🎬 НА ТАЙМЛАЙНЕ где смотреть в ревью-секвенции (какой слой, какой файл драфта).
  • 💬 РОМА комментарии заказчика — фиолетовым, переживают регенерацию.

v7 — «как карта структуры» (Роман, 10.09: «каждый таймкод — списком, друг под другом»). Эталон — кадр карты структуры: крупный заголовок, под ним вертикальный список «таймкод слева — пункт справа», одна строка = одна мысль:

  • Одна строка — один таймкод любое перечисление с двумя и более таймкодами разбивается на пункты «M:SS ▸ что там» под коротким заголовком; в доке таймкод пункта моноширинный серый — «▸» встаёт столбцом. Lint в s10 и verify дока: 0 строк с ≥2 таймкодами (диапазон «a–b» = один).
  • «Почему» — отдельной строкой не хвостом к действию; длинные описания (варианты замены, контекст кадра) — заголовок + пункты.
  • Списки — из данных структура (главы и подглавы), термины и локации генерятся из тех же данных, что и графика (SUB, terms_v6.json), — список в доке всегда совпадает с картинкой.
  • Суммы цифрами «$30,3 МЛН (= $30 300 000)» — чтобы был виден размер числа; на драфте два варианта оформления (А — крупно все цифры, Б — «$X,X МЛН» и мелко цифрами), на таймлайне оба подряд — заказчик выбирает.
  • Опечатки: было → стало отдельная строка «было «…» → стало «…»», изменённые знаки красным (стало — жирным на розовом, было — зачёркнуто; вставленные пробел и запятая видны по фону). На драфте исправления — изменённые буквы другим цветом с подчёркиванием. Диф — typo_diff.py (difflib по символам, числа целиком).
  • Сомнительная «опечатка» если буква могла быть закрыта головой ведущей (титр за головой — приём канала), ТЗ формулируется как проверка исходника титра, а не как исправление.

v7.1 — что добавила приёмка (глазами по всем страницам вкладки; правила лежат в v7_tools/listify_rules_v2.md и их проверяет guard_v7b.py):

  • Таймкод — в начале строки не внутри фразы: «добавить плашку на 3:08–3:11» → «3:08–3:11 ▸ добавить плашку». В скобках внутри фразы таймкод допустим только в строке-сводке.
  • Ни одного перечисления в строку через «→», «/», «|», «;», «vs»: шаги процесса — пунктами по порядку, варианты — «А ▸ …», «Б ▸ …». Исключение — дословная цитата экранного титра.
  • Без внутреннего жаргона имена кадров (h0555, s078, f0061), «нота 049», «коммент 050», «ночной разбор», «ревью №1» — заменяются таймкодами; секунды («166.0–168.6 с») переводятся в таймкоды.
  • Без обрывков «линия уходит…», «так пишут только про…» — мысль восстанавливается из полной находки аудита или переформулируется.
  • У каждого ТЗ есть ✅ СДЕЛАТЬ — конкретное действие; если находка его не содержала, оно формулируется из неё, без новых фактов.
  • Комментарий заказчика главнее старого текста ТЗ: если 💬 просит иначе — переписывается ✅ СДЕЛАТЬ, а не остаются две разные инструкции.
  • Вопрос заказчику — это ❓ «Роман: отметь, что оставляем» не живёт внутри ТЗ монтажёру: такие строки уходят в decision и печатаются отдельным блоком.
  • Длительности словами «6 мин 11 с», а не «6:11» — иначе читается как таймкод.
  • Шапка вкладки — тоже списками «как читать», слои, ссылки и снятые ТЗ — по строке на пункт; никаких «{N}» в имени секвенции.
  • Подпись под каждой картинкой «таймкод · что видно» — не только под превью, но и под фото, рефами, непрозрачными драфтами.
Источник истины — структура parts в pravki, а не готовый текст: элемент блока — строка или {"h": заголовок, "items": [пункты]}; ручные уточнения живут в tz_overrides.json и накладываются поверх при каждой сборке. Каждая картинка-материал несёт строку «📚 источник: …» — какая книга/статья, страница и ссылка на сам источник в архиве.

4.6 · 5Приёмка: свою же работу смотрят глазами

Сборка «ALL PASS» по коду ещё не значит, что документ читается. Поэтому последний шаг цикла — приёмка постранично, как её увидит монтажёр:

  • Вкладка → PDF → PNG v7_tools/export_tab_pdf.py (экспорт именно вкладки: /export?format=pdf&tab=t.…, дальше pdftoppm ~110 dpi).
  • Агенты по страницам wf_final_doc_qa_v7.js: батч ≈8 страниц на агента, у каждого — критерии заказчика и просьба не додумывать («мелко — так и напиши»). На 64 страницах это дало 320 замечаний: 51 критичное.
  • Замечания — обратно в ТЗ wf_final_qa_fix_v7.js: переписчик + скептик на батч, каждому ТЗ приложены ЕГО замечания, полные находки аудита и 💬 заказчика; результат проходит guard_v7b.py и сливается merge_r3.py.
  • Что чинит код, а что редактор картинки, подписи, ширины колонок, порядок строк, разрывы страниц — код; смысл, формулировки, противоречия — редактор (агент или локальная модель). Агентам это говорится прямо, иначе они правят не своё.
  • Превью тоже принимаются отдельный проход по каждому превью: видно ли, о чём ТЗ; не срезан ли объект; читается ли при ширине колонки. Поправки кадра, рамки и подписи — в previews_v7.json.
Приёмка находит то, что не ловит lint: таймкод внутри фразы, устаревшие цифры («11 пунктов» против 10 глав), ссылки на снятые ТЗ, инструкцию, спорящую с комментарием заказчика. Правило: замечание либо чинится, либо становится вопросом ❓ — молча не остаётся.

🎨4.6 · 6Графика: термины, карты, структура

  • Термины каталог terms_catalog.py (regex по озвучке + определение, факты сверены), индекс упоминаний terms_index.py: плашка при каждом упоминании, cooldown 45 с на термин, 2–3 термина в окне ≤5 с — одна групповая плашка. Правый борт, середина кадра.
  • Локации мини-карта при каждом упоминании на реальной географии (Natural Earth 50m, public domain): страна подсвечена, точка месторождения, подпись по-русски; координаты сверены. Полноразмерная карта — там, где карта заменяет кадр.
  • Канон названий зритель путает страну, город и старое имя страны, если их писать по-разному. Правило: современное имя первым, старое в скобках («МЬЯНМА (БИРМА)», «ШРИ-ЛАНКА (ЦЕЙЛОН)»); пояснение «одна страна, переименована в таком-то году» — один раз, при первом упоминании; город/долина/месторождение всегда подписаны своей страной («МОГОК», второй строкой «долина в Мьянме (Бирме)»). В списке ТЗ города идут сразу за своей страной, а не по частоте — иначе три строки читаются как три разных места. В данных это одна запись PLACES (родитель, роль, старое имя, сноска), из неё выводится и плашка, и заголовок в ТЗ.
  • Имя vs термин старое имя страны в торговле («бирманский рубин», «сиамские рубины») — не география: «сиамские рубины» оказались способом подделки, и это термин, а не карта. Проверять, что регексп ловит место, а не одноимённое слово («танзанит» ≠ Танзания), и что ASR-написание совпадает с каталогом («мазамбик» против «мозамбик»).
  • Перечисление стран когда в озвучке подряд звучат 6–9 стран, мини-карты схлопываются в одну точку и дерутся за место. Вместо них — одна большая карта в три шага, страны загораются по мере перечисления; мини-карты внутри этого окна глушатся (MAP_WINDOWS).
  • Подглавы плашка «ГЛАВА NN · название ▸ подтема» на каждом титульном экране (список — из OCR-инвентаря).
  • Прогресс «N из M» для перечислений (3 способа синтеза, 6 способов обработки): обзор всего списка «ЧТО ДАЛЬШЕ» сразу после заставки главы, затем панель с подсветкой следующего пункта за ~3 с до смены подтемы — структура всегда ДО пункта.
  • Прозрачность пояснительные панели — на полупрозрачной подложке по центру (видео видно); тёмные глухие драфты — только для карт/схем, заменяющих кадр.
  • Карта структуры одним кадром: все главы с подглавами и таймкодами (стадия H) — и как приложение к доку («чтобы удобно было проверить»), и как драфт зрительской «карты выпуска» с «ВЫ ЗДЕСЬ» на каждую главу.
  • Превью для дока прозрачный 4K-оверлей в ячейке дока превращается в тёмную точку, поэтому для дока и листа каждое изображение накладывается на реальный кадр в свой таймкод и кропается на то, о чём речь (s12_doc_previews.py): оверлей — кроп по альфе; fix — «БЫЛО / СТАЛО» столбиком (цены — «БЫЛО / ВАРИАНТ А / ВАРИАНТ Б»); кадр со стрелкой — кроп вокруг ошибки; ТЗ без картинок — кадр в таймкод ТЗ. В доке превью стоит в своём абзаце на всю ширину колонки, под ним подпись «таймкод · что видно»; QA превью — агентами по батчам (пробный кроп → поправки в previews_v7.json).
Все PNG несут бейдж «DRAFT · перерисовать в стиле канала» — это макеты смысла, а не финальная графика.

🗂4.6 · 7Поверхности: один источник — четыре выхода

поверхностьчто несётгенератор
Секвенция Premiere6 слоёв, маркеры глав; текст ТЗ — маркер клипа / кнопка «Copy ТЗ @ playhead»make_review_v6.py → панель UXP (partsBuilder ≥1.11.1)
Лист «ТЗ монтажёру»№ · v1 TC · тип · название · что сделать · материалы со ссылками · 3 кадра =IMAGE · решение Романа · статусtz_sheet.py (идемпотентно, gid меняется)
Вкладка дока «ТЗ монтажёру»одна таблица: главы = строки с заливкой + [скобки]; ТЗ списками «таймкод ▸ пункт»; справа крупное превью в своём абзаце + подпись; активные ссылкиdoc_tab_tz_v3.py (build_rows() — чистая функция) + _verify.py
Drive Review_materials/кадры со стрелками, fix-драфты, вся графика; на каждом файле коммент «ТЗ · таймкод · слой»s9_materials_drive.py
Правки Романа делаются в доке: удалил строку = «не менять» → status: rejected; дописал текст в ячейку → roman_comment — печатается «💬 …» фиолетовым жирным в доке и в колонке J листа. Перед ЛЮБОЙ регенерацией — s13_doc_edits.py: текущая вкладка против build_rows() сборщика по тому же pravki → отчёт «пропали строки / дописки / правки ячеек / Drive-комменты» (запасной путь — диф экспорта ревизий Drive). Все поверхности регенерируются согласованно; номера ТЗ никогда не переиспользуются.

🪙4.6 · 8Экономия токенов: что делать локально, что агентами

  • Локально (0 токенов): кадры, OCR с bbox, VLM-транскрипция, LLM-корректор, индекс терминов/локаций, рендер PNG, раскладка, мок-сборка, лист/док/Drive. Это ~90% работы.
  • Агентам — только суждение: «это ошибка или нет» и факт-чек. Пакет главы ≤26 экранов, чтобы агент реально открыл каждый кадр; в промпте — что OCR/VLM лишь подсказка.
  • Скептики окупаются: из 73 кандидатов 14 отпали на верификации (ложные OCR-артефакты, вкусовщина). Три линзы дешевле, чем три идентичных проверяющих.
  • Критик полноты — последним, ему дать только id непроверенных экранов и файл инвентаря (не встраивать 40 КБ в промпт).
  • Session limit (сброс 10:00 МСК) снимает агентов посреди workflow: аудиторов запускать первыми, верификацию — pipeline (не барьер), результат сохранять по мере готовности; недопроверенное дожать самому по кадрам или resumeFromRunId.
  • Не повторять аудит целиком после правок Романа: pravki — источник истины, снятые ТЗ помечаются, регенерация поверхностей — минуты и 0 токенов.
  • Локальная модель умеет и редактуру: когда облачные агенты в лимите, слитые строки разбирает Qwen3-8B (mlx) — s14_polish_local.py. Задача даётся ПО ОДНОЙ строке («разбей на пункты, ничего не потеряй»), а не «перепиши ТЗ»: маленькую задачу модель 8B делает надёжно, а код сверяет таймкоды и слова и при провале берёт детерминированный разбор. Формулировки после неё всё равно читает человек.

⚖️4.6 · 9Правила и грабли

  • alpha-рендер: у прозрачных страниц html,body{background:transparent}, иначе оверлей глушит видео; GUI-Chrome в headless на маке виснет — chrome-headless-shell из ~/.cache/puppeteer.
  • Стиллы ≤ 4,8 с (дефолт still-duration Premiere 5 с клампит длиннее); таймкоды на сетке 25p (×0,04), хвостовые встык — иначе чёрные проблески; sequence_name не кончать на _v\d — авто-версия билдера срежет.
  • Верхняя полоса кадра занята титрами ката: подглавы/прогресс — слева-посередине, термины/карты — справа-посередине; плашка уступает титульному экрану (сдвиг за его конец) и инфографике (окно −3…+6 с, иначе выпадает — с записью в dropped).
  • Клип-маркеры на Premiere 25.x приходят без имени/коммента — копируемый текст ТЗ обеспечивает кнопка панели «Copy ТЗ @ playhead» (читает review-JSON, чей sequence_name — префикс активной секвенции).
  • Вставки видео не класть без согласования — предлагать таймкодами; ссылки везде активные, у PDF — номер страницы; материалы — в Drive-папку проекта с комментом на каждом файле.
  • OCR путает Й/И на титрах — якоря селфчека сравнивать нормализованно; VLM читает кириллицу, но полукадры анимации даёт как обрезки — best-кадр = самый полный текст экрана.
  • Docs API: картинки вставлять пачками по 20, при сбое пачки — по одной; backoff на 429/5xx; картинку — в ПУСТОЙ абзац (иначе текст следующей строки встаёт справа от картинки). Регенерация вкладки ~10–15 мин — в фоне.
  • Выравнивающий цифровой пробел U+2007 Python-овский \s съедает — добавлять его после чистки строки и не чистить готовый текст повторно. И в регулярках стиля искать именно U+2007: с обычным пробелом «0:57» останется без моноширинного начертания, а «33:42» получит — столбик выйдет разнородным.
  • get_doc тянет ВЕСЬ документ со всеми вкладками (~30 с на вызов): шапку вставлять одной пачкой с самостоятельным счётом индексов, а не «абзац → перечитать док». Разница — 25 минут против 4 на сборку вкладки.
  • Таймкоды с долями секунды («2:46.0–2:48.6») ломают наивный шаблон \d{1,2}:\d{2} — verify считал их за два таймкода. Шаблон один на все скрипты: диапазон и доли — часть одного таймкода.
  • Автокроп превью по альфе: нижнюю полосу кадра исключать — водяной знак «DRAFT · перерисовать» растягивает рамку на весь кадр, и кроп теряет смысл.
  • Заплатка нарисованного исправления перекрывает соседние строки титра: у fix задаются pad (узкая рамка) и badge:above (плашка «ИСПРАВЛЕНО» над текстом); индексы формул — настоящими <sub>/<sup>, иначе Georgia ставит их на базовую линию.
  • Заголовок ТЗ из находки аудита не резать по числу знаков — обрыв посреди слова читается как брак; резать по границе слова и снимать OCR-скобки «ПУТАЛ[И]».
  • Строки таблицы внутри главы сортировать по времени, а не по номеру ТЗ: монтажёр идёт по фильму, а не по нумерации.

🧰4.6 · 10Скрипты

Комплект живёт в репо: ~/YTAI/scripts/05_editing/0509_review_cycle/ (README = машинный ранбук, docs/contracts.md = схемы). Один вызов на всё — review.py; стадии, хосты и гейты — в таблице на 4.7 · 3. Старые воркфлоу (wf_audit_v6.js на 250 агентов, v7_tools/wf_*) лежат в cloud/_legacy/ и не запускаются.

R=~/YTAI/scripts/05_editing/0509_review_cycle/review.py
python3 $R status --project YTUVI02
python3 $R resume --project YTUVI02          # продолжить с первой незакрытой стадии
python3 $R edits  --project YTUVI02          # правки Романа из дока перед регенерацией
Пример проекта: YTUVI02 (карточка в 00_Setup/05_Review/review_card.json). См. также 4.5 Assembly Brief Cycle, 4.3 Editor Montage Sheet, 4.8 Montage TZ from Source.
Оригинал монтажёра неприкосновенен; ошибка показывается на кадре, исправление рисуется, текст копируется с таймлайна. Один JSON правок — четыре согласованные поверхности.