RYA · production mapcraftreview

Review

Когда показываем и правим: круги правок, комнаты ревью, «было / стало», проверки перед показом и сдача.⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​‌​‌​‌​​​‌​​​‌​​‌​​‌​‌​‌​‌​​​​‌​‌‌​‌​‌​‌​​‌​​‌​​​‌​‌​‌​‌​‌‌​​‌​​‌​​‌​‌​​​‌​‌​‌​‌​‌‌‌​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

RV5 · Review room on our portal: notes on the frame, one room per
RV5 · Review room on our portal: notes on the frame, one room per
RV6 · Round of notes: numbered, answered first, done only with pro
RV6 · Round of notes: numbered, answered first, done only with pro
RV7 · Note scope: this moment, whole film, channel, whole lesson b
RV7 · Note scope: this moment, whole film, channel, whole lesson b

Approaches

Карточки — главные (canon или работают в нескольких фильмах), строки реестра — остальные. Поиск и фильтр — по группе.⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​‌​‌​‌​​​‌​​​‌​​‌​​‌​‌​‌​‌​​​​‌​‌‌​‌​‌​‌​​‌​​‌​​​‌​‌​‌​‌​‌‌​​‌​​‌​​‌​‌​​​‌​‌​‌​‌​‌‌‌​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

RV1Review
RV1Reviewcanon

Blur personal data by code in a derived clip: cheques, screens, minors

  • размыть всё, по чему узнают человека или читают чужие данные: мониторы с записями, документы с подписями, ФИО, адреса, телефоны, счета
  • чек: нижняя часть (фирма, IBAN, счёт) размывается по кадрам, имя, сумма и дата остаются; фон-экран — по маске людей Apple Vision
  • лицо несовершеннолетнего — рамкой на каждый кадр: YuNet со стороны от героя, между находками линейно, рамка ×2,4 по ширине и ×2,2 по высоте
  • оригинал не трогать — производный клип (media_override); героев не размыть по ошибке — сверка SFace; итог — лист кадров глазами
05_editing/0511_story_cut/sc_redact.py cheque <P> --clip <id> [--keep 0.60] [--sheet] · 05_editing/0511_doc_cut/blur.py track --job J --items <ids> --side left · 999_extra/bin/vision_person_mask
27.08 · Roman · YTCR04 v7–v8 — чек; YTCR06 05.10 — вывески; YTCH11 03.10 — сестра героини, 15 лет; YTCH10–13 — телефоны и лица; YTCH12 v5–v8: 20 пунктов «БЛЮР — согласовано с фондом»
RV2Review
RV2Reviewcanon

Contact sheets of every shot, all viewed by eye

  • листы кадров всех планов, экраны на кадрах и готовый файл смотрят целиком, а не выборкой и не замерами вместо глаз
  • кадры экранов — без рендера (headless Chrome); общие планы — до рендера, а не на готовом файле
  • равные числа в плане ≠ правильный кадр — пары смотреть глазами
05_editing/0511_story_cut/sc_sheet.py cuts | gfx | clip · 07_shorts/0701_finished/shorts.py sheet · qc.py frame_check
02.10 · stage canon · YTLAB01 02.10: окна общих планов резали человека — 7 из 109, нашлось только на листе; YTCR04 — листы story_cut; YTCH14 v3: 12 листов приёмки
RV3Review
RV3Reviewcanon

One source shot once per film: B-roll repeats removed by code

  • один кадр исходника не мелькает в фильме дважды: повторы перебивок снимает код, а не глаз
  • повтор переезжает в свободное место клипа или в нетронутый клип того же рода; окна, проверенные глазами, — dedup.clean
  • fix повторно по фильму, правленному руками, не запускать; новое место без проверки помечается ⚠
  • шортсы: занятые кадры — в broll/README.md
05_editing/0511_story_cut/sc_dedup.py report | fix <P> (MARGIN 1.0 s, FAR 4 min, dedup_log.md)
02.10 · stage canon · YTCR04 02.10: 104 пары повторов у восьми помощников → 34 (набережная — семь раз)
RV4Review
RV4Reviewcanon

LLM text about footage checked against the verbatim transcript by code

  • каждая цитата плана ищется дословно в расшифровке после нормализации; метрика — самый длинный непрерывный кусок совпадения; неподтверждённое — выбросить
  • таймкоды слов считает код по расшифровке; цитата привязывается к границам слов в окне ±2 с — от LLM таймкоды не принимаются
  • очищенная речь эксперта — по абзацам против дословной: совпавших слов ≥ 0,7, длина ≤ 1,15×, леммы ≥ 0,75; иначе лёгкая regex-очистка
  • сумма совпавших кусков не годится: на 50 тыс. слов даёт ≈ 1,0 на любом тексте; исходное значение хранить рядом
999_extra/agefree_verify_citations.py --plans-dir … --manifest … · ytfp_comp_lib.py (snap_quote) · civ_blueprint_build.py · 13_preprod/1303_prompter_scripts/ts_llm.py (Qwen3-8B, mlx)
14.06 · stage canon · YTCH10, YTCH12: блок best_quotes выдуман целиком (7 из 7), привязка клипа врёт в ~10 % · YTAgeFree 14.06 · YTCIV · YTFP · YTUVIE01
RV5Reviewcanon

Review room on our portal: notes on the frame, one room per product

  • одна комната на продукт (история, рилсы, урок) через все версии; правка ставится на кадре — время и звучащая фраза ложатся сами
  • под плеером — карта видео дорожками (главы, место, кто говорит, кадр, музыка, графика) и рассказ по главам; рядом — библиотека канала
  • «Put here» ставит правку с названием экрана или приёма; у курса — хаб уроков и полоса «прошлый / следующий» в шапке комнаты
  • кнопки и техтекст — по-английски, правки и ответы — на языке видео; YTCH — закрытые комнаты, видео только со входом
05_editing/0516_review_room/room.py init | add-film --sheet --words | add-shorts | build | library; portal.py hls | push | publish (720/360 ladder in one fMP4); template/room.html; channel_dna.py; 0513_lesson_cut/lesson_hub.py, course_sheet.py
11.10 · Roman · YTEVO03 11.10 — первые комнаты (история v4s, 22 рилса) · с 13.10 на портале: YTUVIE01, YTAgeFree16, YTCH10–12, YTCR02, YTUAE01–02, YTTRBM03 · 42 комнаты к 15.10
RV6Reviewcanon

Round of notes: numbered, answered first, done only with proof

  • «Send to Claude» закрывает круг: правка получает номер П<круг>.<nn>, слова, таймкод и род; сразу ответ «понял так» и статус
  • правка — в источник правды, таймкод — в ось новой версии через лист; после пересборки проверка тем же детектором: ✅ / 👁 / ❌
  • «Сделано» — только с изменением в источнике и кадрами «было / стало» из нового рендера; Роман жмёт «Принято» или «Ещё правка»
  • номера постоянные: П — до приёмки, экран — из карты урока, новый экран — с буквой (13a); слова клиента — дословно
05_editing/0516_review_room/room.py pull | answer | status; portal.py pull | send | watch; signal_open.py (launchd ae.rya.review-signals: Send to Claude opens the session); 0513_lesson_cut/pravki.py (lc.py pravki-add | pravki-verify | pravki-page)
03.10 · Roman · YTEVO02 v5 → v7 03.10: 10 замечаний клиента · YTUVIE 1.1.1 06–07.10: 13 правок, 11 ✅, 2 👁 · YTUAE02 круги 1–7 13–16.10 · YTTRBM03 25.10: 74 правки Тани
RV7Reviewcanon

Note scope: this moment, whole film, channel, whole lesson block

  • у правки охват: этот момент · весь фильм (Claude находит все похожие места и отвечает списком) · канал (ещё и правило канала)
  • правило из круга одного урока — сразу в движок и на все уроки блока, не дожидаясь правок по каждому; повторы искать по всему блоку
  • после длинного круга — разбор подхода: ошибка → причина → решение → проверка, по темам, и перенос на все видео серии
  • 📌 после «Принято» записывается в «Правила из ревью» файла канала — следующие выпуски её соблюдают
05_editing/0516_review_room/room.py pull (notes.scope = moment | film | channel), rules --apply -> YTs/{CH}/{CH}.md; 05_editing/0513_lesson_cut (engine); _run/lesson_approach.sh
16.10 · Roman · YTUVIE блок 2 (2.1.2–2.1.5) 16.10 · YTAgeFree16 v3 18.10 · YTUVIE блок 3 24.10: «проверить во всех видео блока 3» · урок 3.1.3 25.10: разбор 357 правок
RV8Review
RV8Reviewcanon

Own next version: deep pass on all layers by the newest decisions

  • «что улучшить» = глубокий проход по всем слоям с проверкой кодом и сразу новая версия в комнате, а не список или карточки
  • перед версией — собрать свежие решения Романа (эталон канала, хэндоффы последних фильмов, память 2–3 дня) и замерить по ним
  • слои: края реплик, драматургия, звук, экраны, перебивки, упаковка; вырезанное — карточкой «что вырезал», чтобы можно было вернуть
  • не переносить то, что Роман решал для другого канала по-своему: темп ×1,15 YTUAE в YTCR04 не взят
05_editing/0516_review_room/claude_edits.py storycut; portal.py variant; /kb/claude-visuals/#tab-ytuae
13.10 · Roman · YTUAE02 v1 → v1.2 13.10 (24:07 → 23:00) · YTUAE01 v2 13.10 · YTCR04 v9 18.10: замер v8 по нормам YTUAE01/02 → правки E1–E10
RV9Review
RV9Reviewcanon

Claude's own edits shown with Keep or Revert; risks asked

  • все правки Claude новой версии — списком по ходу видео и номерами на шкале: время, причина (why листа), кадры «было / стало»
  • правка по своей инициативе — карточкой Keep / Revert; крупное вкусовое (хук, цвет) — вариантом A/B; новая версия — слева
  • спорное перед выпуском — чужие кадры (Content ID), спорное число, блик — вопросом с кнопками «оставить / убрать»
  • утверждённое Романом (музыку, текст, кадры) не убирать «на всякий случай»: риск проверить и сказать одной строкой
05_editing/0516_review_room/claude_edits.py storycut | frames | apply; review_cost.py (tokens per version); portal.py variant | ask
16.10 · Roman · YTEVO03 v11 18–19.10: 21 правка · YTCR04 v9 19.10: 41 карточка Keep / Revert · YTUVI02 v5–v7: 16 карточек, 117 правок · «Добрые дела» v2 22.10: музыку убрали по устаревшей записи о лицензии
RV10Reviewcanon

Decide before the costly render: variants to watch, plan cards

  • спорное место (хук, финал, плашки, музыка, название, обложка) — вариантами-роликами рядом во вкладке Variants; выбор читается при pull
  • дорогую правку (структура, экраны, музыка, воздух) — сначала планом: карточки-вопросы с макетом на кадре, ответ кнопкой или словами
  • найденное ночной проверкой (паразиты, кожа, брак) не править молча — карточкой «План следующей версии»; решает Роман
  • новый приём (комикс, вставка) — превью со звуком в темпе фильма против «как было», до рендера версии
05_editing/0516_review_room/portal.py variant --rid CODE/room --id --opt; portal.py ask --group plan --img; room.py set --plan-title; 999_extra/story_map/story_hooks.py; 0509_review_cycle/stages/compare_page.py --pair
04.10 · Roman · YTEVO03 история v1 04.10: хук B «тизер на 4 голоса» · v5s 11.10: 15 заставок-вопросов без рендера · YTAgeFree16 v3 18.10 · YTCR04 v9: хук A/B · YTTRBM03 25.10: комикс
RV11Reviewcanon

Show what changed: before/after pairs, change list found by code

  • на каждое замечание — пара роликов «было / стало» с запасом в несколько секунд, речь с подчёркнутыми обрывами, «что сделано», «чем проверено»
  • что поменялось, находит код: кадры и звук двух версий выравниваются — новое, другая картинка, другой звук, вырезы; карта времени старая → новая
  • время клиента — по его версии: в сводке две оси, «было» режется из того файла, что он смотрел (11:55 в v5 = 11:01 в v7)
  • сверх замечаний — отдельным списком EXTRA, не молча; что код не проверил — ⚠ «послушать самому»
05_editing/0516_review_room/version_diff.py (frames 32x18 + 8 sound bands, Needleman-Wunsch); project tools YTEVO02 _v6_tools/compare_page.py, compare_points.py (EXTRA); 0515_editor_rerender/cmp_versions.py; 0512_reversion/qc.py reel
03.10 · Roman · YTEVO02 v5 → v7 03.10: 10 из 10 и 8 сверх, 36 роликов парами · YTAgeFree12/14 13.10 · YTUAE01 v7 16.10: 28 мест · RSC004 v4 20.10
RV12Reviewcanon

Version page: anchor link on every item, Copy decisions

  • у каждого раздела, типа, экрана, пробела и варианта — кнопка «# ссылка»: Роман вставляет адрес с якорем и пишет правку
  • отметки «ок / править» собираются кнопкой «Скопировать решения» в один текст — из него сессия строит план vN+1
  • вверху — «Сделано по твоим правкам»: что вернул (fb), что сам применил по тому же принципу (same, «проверь») и вопросы
  • один формат решений вместо семи (choice.json, #fb=, хранилище, Telegram…); отметки живут в браузере, сессия видит только текст
site repo scripts/site/gen_screen_plan.py (anchors #type- #blk- #color- #sound-, Copy decisions, plan.json done[] flags fb | same | ask); 05_editing/0510_headless_cut/version_page.py; 0510_autocut/notes.py
03.10 · Roman · YTCG37 v2 03.10: правки ссылками — пять экранов к старому виду и финал убрать, до рендера · YTLAB01 v4 · YTEVO02 v4 · YTFP01 v4
RV13Review
RV13Reviewcanon

Review proposes what is missing; gaps as cards, filled after a yes

  • половина ценности круга — предложения: исправить на экране, показать, чего нет, достроить структуру, подписать людей и места, убрать
  • «показать» — четырьмя дорогами: свой клип со съёмок, архив канала, неиспользованный дубль, кусок прошлой версии — с файлом и таймкодом
  • пробелы структуры (нет перебивок, нет кадров у призыва) — карточками с тем, где лежит материал; самому не достраивать, ждать «да»
  • предложения не притворяются ошибками и не идут через классификатор ТЗ; несделанное прошлым кругом стадия carry возвращает сама
05_editing/0509_review_cycle stages static | chapters | claims | carry | verdict, work/{cut}/screens_proposal.json; plan.json gaps[]; project tools YTCR01 ytcr01_v9_montage_page.py, source_index_v3.py
25.06 · stage canon · YTCR01 25.06: монтажный лист историей в три слоя · YTUVI01 кат v2 22.09: 13 предложений из 59 (ТЗ-47 мост к финалу) · YTCG37 v2 03.10: два пробела
RV14Reviewcanon

Screens room: every kind and clip with a verdict and a note

  • комната экранов фильма: набор по версиям — виды → образцы → кадры, у вида и ролика якорь и «🔗 Copy link»
  • оценка ✓ OK · ✎ Needs work · ✕ Drop и отзыв с моментом клипа и охватом; «было vN−1 / стало vN»; «Send to Claude» открывает сессию
  • новый набор — новой версией той же комнаты, а не отдельной страницей claude.ai
05_editing/0516_review_room/screens_portal.py init | from-board | publish | pull | answer | status; template/screens.html; screens.json (ytai-screens-v1)
18.10 · Roman · YTAgeFree16 screens v4 18.10: 14 видов, 23 ролика
RV15Reviewlive

Page review room on our domain for sites, documents and mockups

  • сайт, предложение, документ, PDF или макет — в комнату портала: правка приколота к блоку, точке на картинке или выделенным словам
  • круг: pull → правка в источнике → publish vN (целым числом) → «Исправлено в vN»; человек жмёт Accept или Not fixed
  • поделиться — разовая ссылка на 10 минут (до 24 ч) и личный пароль человека одним сообщением; отправляет Роман
  • yt.rya.ae — только YouTube, проекты RSCore — на ai.rya.ae; снимок чужого сайта — без его скриптов
05_editing/0516_review_room/page_review.py publish | link --name | pull | reply | status | check --browser
25.10 · Roman · PROPOSALS/uvi-dobro, «Добрые дела Ювелирочки» 25.10 — пилот
RV16Reviewcanon

Role subtitles EN and RU for reviewers; English from the sound

  • для проверки фильма на чужом языке — слой субтитров по ролям над плеером: EN + RU → EN → RU → выкл кнопкой CC
  • под шкалой — три строки субтитров: прошлая · сейчас · следующая с подсветкой слов
  • английские субтитры к русской речи — переводом по звуку (mlx_whisper translate), а не LLM-переводом расшифровки (Роман 01.06)
05_editing/0516_review_room/room.py set --subs; project tool YTUAE02 08_Cut/_tools/subs_room.py; mlx_whisper task=translate
13.10 · Roman · YTUAE02 v1.2 13.10: для Тани — «не потеряй её комментарии» · YTUAE01 v2 13.10 · YTAgeFree16 v3 18.10: три строки
RV17Review
RV17Reviewcanon

Four approvals before the cut: structure, colour, voice, screens

  • до сборки Роман утверждает: структуру и историю, цвет (доска и образец), голос (варианты на слух), экраны (страница всех экранов)
  • порядок: Ingest → Story («да») → Color → Sound → Screens → Cut → Review → Shorts; ингест готовит доску лутов и звук, но не выбирает
  • края реплик — сразу после листа, до цвета и экранов; экраны — после нового звука
  • цена пропуска: 125 экранов YTLAB01 заново, «пересвет» дважды, «эхо» YTCG37 на готовом фильме, 159 планов из 254 перерендерены
site repo scripts/site/gen_screen_plan.py; 15_color/1502_lut_pick/lut_board.py --project; 05_editing/0510_headless_cut/solo.py sound_ab --job; 0511_story_cut/sc_align.py edges
03.10 · Roman · AI Editing 03.10 после переделок YTLAB01 v3, YTCG37 v1–v2, YTEVO02 v6 · YTFP02 03.10 · YTCG39 05.10: правка краёв после картинки
RV18Review
RV18Reviewcanon

Announced defaults: every question carries one, nothing silent

  • вопрос на странице всегда с умолчанием: ответ Романа или «беру default»; без выбора машина берёт вариант по замерам и пишет это словами
  • назван срок («начни собирать через два часа») — молчание = «да» по умолчаниям, сборка стартует сама и доводится до конца
  • молча не применять: кривая цвета без «ок» дважды вернулась «пересветом»; доска предлагает прошлый выбор Романа, а не свой
site repo scripts/site/gen_screen_plan.py (Copy decisions); 05_editing/0510_headless_cut/story_page.py, version_page.py
03.10 · Roman · YTLAB01 v1 → v3: «пересвет» · YTCG37 v1 → v2 · YTCR v6, YTEVO: «везде вариант A» · 05.10: YTCR03, YTCH10, YTCH13, YTCG42 — «собирай через пару часов»
RV19Review
RV19Reviewcanon

Pilot piece before the full render

  • до полного рендера Роман смотрит пробный кусок 40 с — 4 мин в новом стиле, цвете и звуке, в комнате вместе с доской цвета и экранами
  • без ответа рендерится только пилот; полный фильм — после слова Романа; вопросы пронумерованы и с умолчанием
  • пилот поймал дизайн клиента до вёрстки 47 экранов (YTEVO02)
05_editing/0511_story_cut/sc_deliver.py pilot --send; 0510_headless_cut/deliver.py tg; version page
02.10 · stage canon · YTLAB01 v3: кусок 40 с · YTCR04 02.10: пилот 0:00–2:23 в Telegram · YTUVIE 1.1.1 v1: пилот 4 мин · YTEVO02
RV20Reviewcanon

Rounds on 720p proxy drafts, one 4K after OK in essence

  • каждая версия в комнате — 720p сразу с прокси 10 бит, пересборка только задетых кусков, части и на Memex: минуты, не часы
  • 4K с оригиналов — один раз, после «ок по сути»; 4K-лайт 10 бит (HEVC Main10 ~8–10 Мбит/с) — только к показу клиенту; на YouTube — мастер
  • цвет и мелкий текст по 720p не судят: страница цвета — в начале, 4K — в конце; после «ок по сути» монтаж заморожен
  • со второго круга Роман смотрит только места правок; итог 4K сверяется с принятой версией
05_editing/0511_story_cut draft_fast + render_size [1280,720] + enc_vt, sc_conform plan, proxy_override.py; 0510_headless_cut/cut.py --size 720; 0513_lesson_cut/lc.py render --light; rya-render
11.10 · Roman · YTEVO03 11.10: черновик 1080p с прокси ≈ 29 к/с против ≈ 10 у 4K · YTCH11 v4 · YTCR02 12.10 · YTCR04 v8–v9 · YTUVI03 14.10 · YTEVO03 v10: лайт 41:23, 3,03 ГБ
RV21Review
RV21Reviewcanon

Render on Roman's word, one heavy job at a time, on the free Mac

  • рендер фильма, выдача наружу и график выхода — только по слову Романа («запускай»); до слова сессия готовит файлы
  • тяжёлое — через общий замок по одному; задача с явными входами и выходами сама уезжает на свободную машину (MacBook или Memex)
  • два рендера разом не ускоряют друг друга, а уводят мак в своп: 02.10 паника ядра при свопе 38 ГБ — YTLAB01 упал на 30-й части из 50
  • длинный прогон — из снимка кода этапа; части — на SSD проекта, не в /private/tmp
999_extra/render_queue.py --idle-pass 240, mlx_queue.py; 05_editing/0510_autocut/render_gate.py; 18_compute/res.py (rya-res status | run --where auto --in --out); ~/.local/bin/rya-render encode | batch
02.10 · Roman · YTCH14 02.10: «запускай» в 23:31 → очередь в 23:35 · YTCR04 v6 · YTEVO02 v6 · 4K-части YTEVO03 на Memex
RV22Review
RV22Reviewcanon

Layered film: an edit rebuilds only the layer and parts it touches

  • фильм собран слоями: экраны альфа-клипами ProRes 4444, картинка кусками, речь, музыка и воздух, мастер звука отдельной дорожкой
  • правка пересобирает только свой слой по таблице пересборки и задетые части; текст экрана — только этот экран, музыка — music → master
  • уже прослушанные края и замеры лица неизменных кусков переносятся из прошлой версии; правки вставляют точечно в готовую раскладку
  • сменился способ рендера — поднять RECIPE, иначе части с прежним рецептом не пересчитаются (YTCR04)
05_editing/0510_autocut/plan.py + run_vN.sh (rebuild table in engine READMEs); 0514_teaser/teaser.py (TEASER_REUSE_EDGES); 999_extra/story_map/story_carry_edges.py --from v1; claude_edit build (60 s parts); ffmpeg concat -c copy
02.10 · stage canon · все пять движков, сверено 02.10 · YTEVO02 v8 03.10: звук не пересобирался, 22 796 кадров · YTCH14 v4 · YTEVO03 v2 · YTUVI02 v3–v5 · YTUAE01 v2: 98 из 128 краёв повторно
RV23Review
RV23Reviewlive

Structure edit drafted from frames of the finished master

  • новый лист отличается вырезами и порядком — черновик собирают из кадров готового мастера: каждый кадр находится в старом по клипу и кадру
  • перерисованные слайды подставляются файлами, звук — движком по новому листу; черновик 720p за час, 4K — потом по тем же решениям
  • не резать внутри анимированного экрана; куски от 0,04 с — только перенумерацией setpts=N/25/TB, без -r; синхрон — корреляцией речи
05_editing/0516_review_room/room.py add-film --sheet; project tools YTEVO02 autocut_v4/_v9_tools/edl_v9.py, sync_check_v9.py; YTEVO03_v5s/_tools/make_v5s_draft.py
11.10 · YTEVO03 · YTEVO03 v5s 11.10: черновик за час · YTEVO02 v9 15.10: кадры мастера v8 по листу v9 + 10 слайдов, 0 мс на 27 прогонах · 19.10 итог клиенту тем же путём
RV24Review
RV24Reviewcanon

Edit goes into the sheet; new integer version, never a player trim

  • замечание привязывается к месту листа (глава, кусок, клип) и вносится указанием с «почему» в источник правды: лист, задание, отбор
  • каждая правка — новая версия целым числом в имени (v1, v2, v3 — не m5 и не v1.5), прежняя лежит рядом; без явного «да» — отдельной версией
  • готовый файл не подрезать в плеере: QuickTime режет не по кадру — звук позже картинки на 30,5 мс во всех копиях; финал выдаёт сборка deliver
  • правка экрана — в {CODE}_gfx_overrides.json; переделывая экран, его правку убрать, иначе он соберётся со старыми данными
05_editing/0510_autocut directives_v4.json (_vN_why), composite.py deliver; 0511_story_cut/sc_build.py ({CODE}_gfx_overrides.json: data | drop | pos | pip); 0516_review_room/room.py (refuses fractional versions)
29.09 · Roman · YTCH 29.09: «почему m5?» · YTEVO02 v5 02.10: обрезка плеером → рез в слове «Работая» · v5 → v7: 10 замечаний указаниями · YTCR04 v7: карты со старыми данными
RV25Review
RV25Reviewcanon

Light copies from the master, settings by VMAF, each verified

  • из мастера: 1080p H.264 CRF 21, 4K H.264 ≈ 27 Мбит/с, 4K HEVC ≈ 12 Мбит/с (hvc1), копия под Telegram ≤ 48 МБ двумя проходами
  • настройки — замером VMAF на трудном месте; битрейт 4K-лайта — лестницей VMAF на отрезках мастера (цель 8 Мбит/с: средний ≈ 99)
  • копия готова только после сверки: число кадров, длительность, первый кадр, сдвиг звука
  • -fps_mode passthrough, иначе -r 25 дублирует хвост; VMAF 4K — только на макбуке, на Memex 16 ГБ уходит в своп
05_editing/0510_autocut/light.py FILM.mp4 --kinds 1080,4kh264,4k --name CODE_vN; 0510_headless_cut/deliver.py tg --mb 48; 0513_lesson_cut/final_lessons.sh, light_ladder.sh, qc_final.py --light
02.10 · Roman · YTEVO02 02.10: копии v4–v5 для Loom и Drive · YTCR04: пилот 720p в Telegram · YTCG37 v6 03.10: 43,6 МБ · YTUVIE01 блок 1 14.10: лестница VMAF · замер B13 15.10
RV26Review
RV26Reviewcanon

Integrity checklist before every showing, grown from real errors

  • каждый монтаж — фильм и партия шортсов — до показа проходит один чек-лист: цвет, звук, слова и смысл, кадр, полнота, экраны, техпаспорт
  • у строки — норма, инструмент, способ (код · агент · глазами · на слух) и источник ошибки; отчёт ✓/⛔ рядом с версией, ворота — 0 красных
  • новая ошибка от Романа, клиента или монтажёра → строка с источником → порог в коде и «Грабли» в README тем же коммитом
  • правил «на всякий случай» нет; стиль канала — не ошибка; нет мерила — строка всё равно есть: «глазами» или «надо построить»
/kb/claude-qc/; 999_extra/video_qc_checklist.md; sessions_errors.json + scan_sessions.py; engine qc.py (0510_autocut, 0510_headless_cut, 0511_doc_cut), 0511_story_cut/sc_qc.py; cut.py run --from qc
03.10 · Roman · AI Editing 03.10: переделки трека — почти все из пропущенной проверки · разбор 143 сессий → 43 записи в 8 темах · YTCH14 03.10: проверка по номерам подходов
RV27Review
RV27Reviewcanon

Machine acceptance gates: frames, sync, cuts, black, freeze

  • до рендера — lint листа: речь внахлёст, дыры, куски короче 6 кадров — ноль
  • после: кадров = плану (CFR), громкость, синхрон, смены кадра только на своих местах (scene ≥ 0,30 вне экранов — ⛔), чёрное, стоп-кадры, тишина
  • полнота: на каждый пункт плана — экран, на главу — карточка, на стыке частей ничего не выпало; клип без куба в рендер не идёт
  • язык клиента, стиль и факты код не оценит — смотрит человек
05_editing/0510_autocut/qc.py (cuts, black, screens); 0510_headless_cut qc / detect; 0511_doc_cut/qc.py final; 0511_story_cut/sc_run.py gfx_lack; project tools make_v8_cut.py + cut_lint.py; ffmpeg blackdetect, freezedetect, silencedetect
02.10 · stage canon · YTEVO02 v6 02.10: дыра в листе тянула экран до конца фильма · YTCH14, YTLAB01 · YTEVO03 v8 14.10: вспышки 1–4 кадра убраны · YTCR01 v10: чёрная дыра 25,28–26,64 с
RV28Review
RV28Reviewlive

Flash-frame and hidden-cut scan over the whole video

  • после рендера — скан всего видео на вспышки 1–2 кадра, даже маленькие (обрывок текста в углу): клетки 10×10 по кадру 160×90
  • скрытые склейки внутри плана (кадры соседней сцены в исходнике перебивки) ловит код: scene > 0,3 внутри куска
  • смотреть листом кадров i−1 / i / i+1, а не считать: из 74 «вспышек» скана настоящих было 4; вспышки фотокамер — ложные
999_extra/video_flash_scan.py <video> (long files via rya-res run --kind cpu); project tools flashcheck.py, broll_cuts_check.py --fix; ffmpeg select gt(scene,0.3)
15.10 · YTUAE02 · YTUAE02 круг 4 15.10: битые кадры после seek в рендерах экранов · YTUAE01 16.10 · YTUVI02 v6 20.10 · YTMashaHima02 v1 → v3 22.10
RV29Review
RV29Reviewcanon

Screen QC: gates on every clip, audits on the cut

  • каждый клип экрана: lint и check (контраст крупного ≥ 3:1, обычного ≥ 4,5:1, наложения, статичная плашка), кадров = плану, альфа
  • последний кадр = макет (edge ≤ 2 px, diff ≤ 0,5 %); после кодека — цвет бренда ±10: кодек 4:2:0 уводил красный клиента
  • на готовом видео — раскладка и выход за края, время чтения, «вставка × экран» без наложений, плашка только под своим человеком
  • ошибка lint выключает layout и контраст — «0 samples» не значит чисто; две сборки подряд должны дать одинаковый манифест
npx hyperframes lint | check; 05_editing/0510_autocut/screens_verify.py, qc.py; 0510_headless_cut/gfx.py check; 0511_story_cut/sc_gfx.py check | build (twice), sc_sheet.py gfx; layout_audit.mjs, clip_audit.mjs, reading_audit.mjs; project tool qc_overlaps.py
02.10 · stage canon · YTEVO02 v4: красный (238,50,39) ±10 · YTCG37: #F08010 по белому 2,69 · YTTRBM01 03.10 · YTUAE01 круг 3 16.10 · YTUAE02 v3–v4: глитчи · YTCR04 03.10: детерминизм
RV30Review
RV30Reviewcanon

On-screen text audit: 11 points, read by local OCR, verified by eye

  • каждый экран — по 11 пунктам: грамматика, типографика, списки, вёрстка, цвет-смысл, имена, должности, бренды, факты, смысл к речи, единообразие
  • текст читает локальный OCR Apple Vision по кадрам 1 к/с без языковой коррекции; расхождение OCR и VLM (Щ/Ш) — кандидат в опечатку
  • свип по листам галлюцинирует (должность, год, «AED 92,000»): истина — хи-рез кроп и глаза до правки; «JIANG DONG» — надпись на футболке
  • свой логотип канала и текст за головой ведущей (стиль YTUVI) не флагать; буква за головой — «проверить исходник», не «исправить»
999_extra/video_qc_checklist.md; 999_extra/bin/vision_ocr_ru (VNRecognizeText ru+en); 05_editing/0509_review_cycle stages/s2_ocr_hires.py, s3b_probe_vlm.py (foreign traces); 999_extra/agefree_screen_map.py, review_contact_sheets.py, review_frame_dedup.py; yt.rya.ae/manifest/
05.06 · Roman · YTRF05 v4 05.06 — канон · YTFP01 v3 07.06 · YTCR01 v11–v13 · YTAgeFree05 10.08: 924 кадра за 51 с · YTUVI01 08.09: 203 экрана → 68 находок · YTUVI02
RV31Review
RV31Reviewcanon

Machine review of a cut: local eyes first, one cloud pass per film

  • кат: кадры 1 к/с → OCR → расшифровка с ролями → VLM и LLM как признаки → пробы → маршрут кандидатов → облако → ТЗ, таймлайн, вкладки, бриф
  • порядок: скрипты (OCR, regex, ffprobe) → локальные модели → облако только на смысл, один текстовый проход на фильм: судья, факты, кропы, скептик
  • ≈ 1 млн токенов вместо 18,7 млн; «глаза» — Memex автономно, «руки» — мак; модели дают признаки, не вердикты
  • автоподтверждение — только при трёх совпавших чтениях (OCR = VLM = zoom); пары Й/И, Ё/Е, Щ/Ш — всегда судье
05_editing/0509_review_cycle/review.py init | run | resume | memex start --autonomous | cloud | edits; cloud/pack.py -> wf_judge.js -> collect.py, salvage.py; shared/shot.py, peek.py, headless_claude.py; stages/s14_polish_local.py (Qwen3-8B); skill /review
27.07 · Roman · YTUVI01 25.08: 2440 кадров за ночь · YTCH12 26.08 · YTUVI02 15.09: 55 находок, 41 подтверждена, 6 фактов опровергнуты · YTCR04 v5 17.09 на Memex · YTEVO02, YTCR (EN)
RV32Review
RV32Reviewcanon

One edit list feeds every surface; Roman's doc edits pulled first

  • все правки круга — в одном файле pravki: из него пересобираются вкладка ТЗ, лист, Drive, страница продюсера, бриф и секвенция
  • Роман правит прямо в доке: удалённая строка → status rejected и исчезает везде, номер навсегда; его дописка — комментарием фиолетовым
  • пока правки дока не сняты, пересборка вкладок ТЗ и навигатора не стартует (гейт edits) — иначе его заметки затрутся
  • номер ТЗ = позиция в списке, не переиспользуется; новые — только в конец
05_editing/0509_review_cycle/review.py edits (gate) -> run --from format_tz; pravki/pravki_v2.json; stages/s13_doc_edits.py, doc_tab_tz_v4.py; shared/producer_page.py, phone_brief.py
09.09 · Roman · YTUVI01 09–10.09 · YTUVI01 кат v2 22.09: 59 пунктов (40 нашла машина, 16 сняты) · YTCH12 кат v5
RV33Review
RV33Reviewcanon

Fresh-eyes agents and the rule: picture never contradicts words

  • перед показом — два агента «свежим взглядом»: экраны по 8 кадров каждый и весь фильм кадром каждые 5 с с речью в окне
  • картинка не должна противоречить словам и приходить поздно: агент читает кадр экрана и широкое окно речи ±13 с
  • каждую находку о факте сверять с источником, а не с агентом
  • проверка противником «по умолчанию не ошибка» для смыслового QC — только второе мнение: слово Романа весит больше
Claude reviewer agents on render frames; project tool v{N}_qc/analysis/context_audit_wf.js; 999_extra/video_flash_scan.py; qc_cover_edges, gfx4k_check
03.07 · Roman · YTAgeFree01 03.07: сиделка с ложкой у рта на словах «не торопить» · YTUAE01 v3 15.10: ~20 исправлений · YTUAE02 круг 3 · YTUVI02 19–20.10: снято 5 вставок · YTAgeFree12 v3
RV34Review
RV34Reviewcanon

Finished file accepted by its own frames: every shot and screen

  • листы — с готового mp4: все планы и все экраны (экран на 75 % срока, середина перебивки и паузы), не выборка; экраны — одним листом
  • итог 4K кадр в кадр с одобренным черновиком: пропавший экран, сдвиг на кадр, вспышки 1–3 кадра, стыки кусков, щелчки, громкость
  • до рендера — кадр из середины каждого плана: так находятся чужие лица под героем и неверные планы, которые сетка через 3 с пропускает
  • числа — половина приёмки, вторая — глаза; на листе-сетке верх кадра закрыт подписью — края проверять по полным кадрам
05_editing/0511_story_cut/sc_sheet.py final | cuts (gfx, clip); 0513_lesson_cut/qc_final.py --ref draft; 999_extra/review_contact_sheets.py; 0511_doc_cut/qc.py final
02.10 · Roman · YTEVO02 11.09: все экраны одним листом · YTLAB 02.10 · YTCR04 03.10, YTCR06 05.10: 264 плана · YTUVIE01 блок 1 14.10 · YTUVI03 v6 18.10
RV35Review
RV35Reviewcanon

Every page and document checked by eye: 1240 and 390 px

  • любую страницу и картинку после сборки снимать и смотреть целиком самому: ширина ~1240 px и телефон 390 px, без выборки
  • документ: вкладка → PDF → страницы кодом (оторванные заголовки, картинки без подписи) и последний проход глазами постранично
  • «ALL PASS» по коду не значит, что читается; замеры DOM вместо кадров — не проверка; картинку для Telegram — в размере телефона
  • вёрстку чинит код, смысл и формулировки — редактор; замечание либо чинится, либо становится вопросом
puppeteer, chrome-headless-shell (phone via iframe 390 px); 05_editing/0509_review_cycle/stages/export_tab_pdf.py, doc_pdf_qc.py, preview_qc_local.py
10.09 · Roman · YTUVI01 приёмка v7.1 10.09: 320 замечаний 8 агентами · «Обратная связь v3» и YTUVIAI ТЗ 02.10 · YTCG37 v2, YTLAB01 v4 03.10
RV36Review
RV36Reviewcanon

Regression of every previous edit; undone items carried forward

  • со второй версии каждая прошлая правка проверяется заново: ✅ / ❌ / ⚠; озвучку — по новому транскрипту
  • новая версия ката — «Обратная связь по кату»: что стало с каждым пунктом прошлого ТЗ; несделанное — строками нового круга, номера те же
  • подглавы прошлого круга переносятся на ось нового ката поиском по речи; страница — сразу к правкам, закрытое свёрнуто
  • закрыт ли пункт, решает ручная сверка: код ищет на экране старый текст и ошибается, речь, музыку и вырезы не проверяет вовсе
999_extra/video_qc_checklist.md; 05_editing/0509_review_cycle/shared/tz_carry.py (stage carry), feedback_model + pravki/feedback_manual.json, shared/feedback_page.py, stage sub
05.06 · Roman · YTRF v3 → v4 (июнь) · YTFP01 v3–v4: все правки прошлой версии ✅ · YTCH12 v5 23.09: 17 подглав · YTUVI01 кат v2: 55 → 58 правок · YTUVI01 02.10
RV37Review
RV37Reviewcanon

Self-check of every build: dead pauses, retakes, seams, repeats

  • каждая сборка до показа: паузы > 0,9 с вне экранов, повтор-дубль (оставить последний), склейки, слова плана против слышимого
  • дословные повторы реплики — n-gram сверкой с исходной расшифровкой; повторы Claude ищет сам, не ждёт Романа
  • собранную речь распознавать кусками по паузам: Whisper на длинном файле выбрасывает дубли; «слова нет в распознавании» — сверять громкостью
  • автоправке повторов не доверять без признака перезапуска: пауза ≥ 0,5 с или оборванное слово
05_editing/0513_lesson_cut/lc.py selfcheck, asr_chunks.py; 05_editing/0509_review_cycle a_align.py (n-gram)
26.08 · Roman · YTCH12 v2 26.08: дубль 10:39 = 38:16 · YTCR04 v4: 3 дубля · YTUVIE 1.1.1 05–07.10: мёртвая пауза 4,7 с · блок 2 15.10: «мне крайне важно, чтобы ты сам искал повторы»
RV38Reviewcanon

YouTube tech passport for every master and editor export

  • мастер и каждая сдача монтажёра — по паспорту YouTube: H.264 High, GOP ½ fps, 4:2:0, BT.709; 4K 35–45 Мбит/с; AAC 48 кГц; moov в начале
  • плюс VMAF к прошлой версии, блочность, LUFS и OCR субтитров — регресс пресета на глаз не виден; красный скан ловит вшитый Media Offline
  • VMAF ≈ 0 на участке — другая картинка (монтаж), а не брак; AAC из AME — максимум 320 кбит/с, паспорт ждёт 384 (жёлтая строка)
999_extra/video_tech_qc.py run FILE --profile yt_4k25 | yt_1080p25 | yt_short1080 --ref OLD --ocr --no-scan; red and lime colour scans of the render (g>190, b<130)
28.09 · Roman · YTCH12 v6 28.09: кат 44,1 кГц / 126 кбит/с, шортсы 3–5 Мбит/с · YTCR01 v12 11.07: Media Offline 23:23 в рендере · YTEVO02 _v6_4K · YTUVI01 v7 14.10: BRNG
RV39Review
RV39Reviewcanon

Trailer acceptance gates: lines, timbre, skin, voice over music

  • каждая реплика — Whisper против листа, рез в тишине; тембр между говорящими ≤ 3 дБ по полосам
  • кожа Lab по каждому плану: один человек на разных камерах ΔL, Δa, Δb ≤ 3; речь над музыкой ≥ 15 дБ в 300–4000 Гц
  • контрольный лист всех планов — с готового файла; −14 LUFS, пик ≤ −1 dBTP после AAC
05_editing/0514_teaser (docs HANDOFF_2026-10-07_trailer_by_principles): project tools trailer_audit.py, trailer_check.py, qc_pic.py
07.10 · stage canon · трейлеры YTCG39 и YTCG42, 07.10
RV40Review
RV40Reviewcanon

Independent sync verification by a finer instrument

  • ингест собирает, проверка судит: собранную сцену меряют по самим медиа прибором точнее проверяемого (огибающие, GCC-PHAT)
  • Verify Sync: худшая пара камера ↔ петличка ≤ ½ кадра → SYNC / DESYNC / INSTRUMENT / NO DATA; Synchronize Premiere — лишь свидетель
  • сверка с собственным планом — не проверка: всё зелёное, а петличка на 28,7 с мимо; ~11 мс между камерами разных петличек — путь звука
05_editing/0500_uxp/tools/verify_sync/verify_sync.py; 999_extra/wordsync_multicam/pair_check.py; timeline_sync_audit.py, prproj_verify.py; 0500_uxp src/ingest/syncSpread.js (Spread / Collect); panel READBACK after build
25.09 · stage canon · YTUVIE01 25.09: после починки 37/37 пар, худшая 14,2 мс · дельты Premiere 0, 40, 80 мс — кратны кадру
RV41Review
RV41Reviewcanon

Sensitive moments flagged for the fund, blurred, never cut alone

  • чувствительное (тайна усыновления, ФИО ребёнка, насилие, диагнозы, работодатель) ищется по словам и сводится в реестр с таймкодами
  • в ревью — ⚠ «на подтверждение фонда / блюр», а не ⛔: ⛔ только при письменном запрете; перед выпуском — список юриста фонда
  • лица без согласия и экраны телефонов размываются, имя, которое нельзя слышать, запикивается
  • детей из наших фильмов фондов показывать можно — согласия подписаны (Роман 21.10); чужих детей из чужих материалов — нет
05_editing/0509_review_cycle/shared/risk_registry.py (stage risk), b_risk.py; review_profile.json sensitivity; doc_cut gfx; blur.py, phone_blur.py
27.08 · Roman · YTCH12 26.08: ~10 кусков в реестре · 27.08: «⚠ вместо ⛔» · YTCH12 v4 10.09: юрист фонда · YTCH11 04.10, YTCH13 05.10: блюр · YTFP01 v3 07.06: 9 персональных данных
RV42Review
RV42Reviewcanon

Red lines in code: keep-out ranges and forbidden words

  • запретные участки мастера (утрата ребёнка, чужой материал, титры глав) — keep_out в задании: отбор и рендер останавливаются на нарушении
  • имена и слова, которых клиент не хочет, — forbid в профиле: проверяются на экранах, в названиях, описаниях и шортсах до выдачи
  • scope: all | pieces | broll; границы титров глав — до кадра
job keep_out; shorts_profile.json forbid; 07_shorts/0701_finished/shorts.py picks | render | upload; 05_editing/0511_story_cut sc_dedup
28.09 · Roman · YTEVO02 28.09–02.10: нет «Плечко», «Присутствие», «Фарадей», «Козырев» · YTFP01 02.10: 36:28,50–37:17 — никогда · YTCR06 05.10 · YTEVO03: без лого «Эволюция»
RV43Review
RV43Reviewcanon

Editor brief lists only real errors; producer notes are binding

  • в ТЗ монтажёру — только классы: опечатка, грамматика, факт, валюта, язык, «экран ≠ озвучка», чужой след (+ структура у YTCH)
  • уже принятые решения Романа о структуре и темпе — producer_notes: обязательные правки с точным таймкодом
  • вкус, вёрстка, темп и палитра в ТЗ не идут — код отбрасывает их по классу; целевой размер списка не задаётся никогда
  • калибровка: из ~200 сырых находок проходит ~40; договорённые не-ошибки — exclusions карточки, чтобы не всплывали каждый круг
05_editing/0509_review_cycle/stages/s8_apply_audit.py (review_profile.json tz_classes); review_card.json producer_notes, exclusions
07.08 · Roman · YTMSEN01 v2 07.08: «найди только ошибки… хватит докапываться» · YTCR04 v5 23.09: producer_notes · YTUVI02: 24 из 26 «вёрстки» прошли трёх скептиков
RV44Review
RV44Reviewcanon

Channel profile holds Roman's decisions in code, each with a reason

  • решения Романа по каналу — в профилях, которые читает код (review, shorts, color, preprod, {CH}.md), каждое с причиной в поле *_note
  • профиль ревью: стиль графики, классы ТЗ, паттерны чувствительного (⚠ вместо ⛔), правила структуры, словарь брендов и терминов
  • профиль задаёт, карточка фильма перебивает профиль; факты дня съёмки — в задании выпуска; новый канал начинается с профиля
  • без причины правило откатят; probe — свой логотип канала, чтобы зонд не считал его чужим следом
~/YTAI/YTs/{CH}/review_profile.json, shorts_profile.json, color_profile.json; YTs/YTUVI/review_terms_base.json; review_card.json
14.09 · stage canon · профили ревью YTUVI, YTCH, YTEVO, YTCR 14–15.09 · YTCH structure_rules 26.09 · YTFP: broll 2,5, edges.strict, plate 3,6 с с *_note
RV45Review
RV45Reviewcanon

Editor brief card: frame, as is, DO; one timecode per line

  • правка — карточкой: сразу кадр экрана, «Как есть» дословно, «▶ СДЕЛАТЬ» копируемым текстом с подсвеченным различием
  • блоки с метками (❌ СЕЙЧАС · ▶ СДЕЛАТЬ · 📍 ГДЕ · 📚 ИСТОЧНИК), в строке один таймкод, «почему» — отдельной строкой; шапка ≤ 6 слов
  • опечатки — «было → стало», изменённые буквы красным; сначала общие правки, потом по таймкодам; текст директивный, без личных комментариев
  • «▶ СДЕЛАТЬ», а не ✅ — галочка читается как «сделано»; язык ТЗ — язык канала и монтажёра (YTCR, YTCG, YTMSEN — по-английски, ▶ DO)
05_editing/0509_review_cycle s10_format_tz + lint, stages/listify_rules_v2.md, typo_diff.py, doc_tab_tz_v4.py, shared/i18n_strings/core.py (lbl_do); 999_extra/ytfp01_qc_html.py, ytrf05_screen_plan.py, ytaz06_montage_v5.py
07.06 · Roman · YTFP01, YTRF05 07.06: лист на /manifest/ · YTCR 25.06: Ayman на английском · YTUVI01 ТЗ v7 10.09 · YTUVI01 v2 22.09: ▶ DO · YTCH12 v5–v8
RV46Reviewcanon

Drawn fixes for the editor: error markup and mockups on the frame

  • ошибка на кадре: стрелка по рамке OCR, драфт исправленного титра заплаткой цвета кадра и номер ТЗ; несколько подписей — таблицей «было → надо»
  • недостающую графику (заставки, шкалу, карты, схемы) рисуем сами макетом в стиле ката с пометкой MOCKUP и кладём прямо в строку ТЗ
  • рабочие листы монтажёру: карта имён «сказано — стоит на экране» и схема выпуска; в фильм не идут
  • картинка в доке — на реальном кадре своего таймкода, кропом на суть; полоса DRAFT — только на том, что монтажёр перерисует отдельным экраном
05_editing/0509_review_cycle (mockups/ann_tzNN.png, fix_tzNN.png, wasnow, info_namemap, info_structure_map), stages/s12_doc_previews.py; project tool make_mockups.py (PIL); skill infographic
06.09 · Roman · YTUVI01 06.09: «недостающее — создавай графикой» · кат v2 22.09: «кристале ситнетического рубине» · ТЗ v3 01.10: ann_tz01–29 · YTUVI02 16.09 · YTCR04: карты имён
RV47Reviewcanon

Verbatim speech beside every edit; inserts anchored to the words

  • у каждой правки — дословная речь вокруг таймкода (колонка «Говорит»), опорная фраза жирным; одна таблица на вкладку в порядке таймлайна
  • место вставки — дословной цитатой: «На словах „…“ — показать …», таймкод — в текущем таймлайне монтажёра
  • на странице плана и версии — полный транскрипт блоками, свёрнутый, с числом слов; экран проверяют по словам, а не по памяти
  • транскрипт не чистить и не пересказывать: каждое слово ролика ровно в одной строке, приёмка сверяет абзац как подстроку
05_editing/0509_review_cycle/stages/doc_tab_tz_v4.py + doc_tab_tz_v4_verify.py, ensure_shots.py; doc_tab_v7.py (one insertTable); site repo gen_screen_plan.py structure[].text --check; ytuvib_caption_extract.py
16.07 · Roman · YTAZ09 16.07 · YTCH11 27.08 · YTUVI01 26.08–03.09: план 87×6 · YTUVI01 «Ревью v2» 06.09 · Роман 16.09: «транскрипт обязателен» · YTCG37 v2 03.10: 951 слово
RV48Reviewcanon

Six-layer review timeline over the editor's untouched cut

  • рендер монтажёра лежит на V1/A1 нетронутым; сверху слои: V2 вставки, V3 инфографика и драфты, V4 плашки ТЗ, V5 стрелки, V6 структура
  • каждая категория — на своём слое, включается глазом; маркеры секвенции — только названия глав цветными спанами; звук вставок — A2/A3
  • до 07.09 — «раздвижка»: вставки раздвигали V1, куски красились (зелёный — оставить, красный — вырезать)
  • трек Premiere свёрнут с 03.10 — ревью машины идёт страницей «было → стало» и комнатой
05_editing/0509_review_cycle/stages/make_review_v6.py -> mockbuild_v6.js (ytai-part-v1); 0500_uxp src/parts/partsBuilder.js (Review tab: Build Selected, Copy Brief @ playhead, chapter_markers)
07.09 · Roman · YTUVI01 Review_v5 07.09, v6 08.09 (кат Сони, 70 ТЗ) · YTCH12 v4 10.09: 141 плашка ТЗ · YTUVI02 12.09: 210 сегментов · YTCR01 v9: оверлей · YTCR04 v4 20.08
RV49Review
RV49Reviewcanon

Assembly brief round trip with Premiere markers

  • маркеры Premiere монтажёра → бриф v{N+1}: changelog сверху, его заметки жёлтым, бейдж CHANGED, удалённое зачёркнуто
  • diff двумя столбцами по главам: слева текст и ✏️ комментарий монтажёра, справа исправленное с тегом ИЗМ / УДАЛЁН / ПЕРЕМЕЩЁН / НОВЫЙ
  • UXP строит Review (всё, что не вошло в Assembly) и DeletedScene (вырезанное из видео монтажёра, с таймкодами); DeletedScene — всегда
  • на карточке первым — кто говорит и источник: 📼 РЫБА · ➕ ВСТАВКА · ⚠️ TODO · ✂️ CUT; описания B-roll в HTML скрыты
05_editing/0506_marker_export/export_markers_from_prproj.py -> {CODE}_Assembly_v{N}_out.json; 0501_brief diff HTML; 0500_uxp src/review/reviewAssembler.js; 0508_review/compare_review.py
27.05 · Roman · YTRF05 27.05 · YTCR01 v3 → v10: 7 кругов до стабильной вставки · YTCR01 v6 → v11 (июнь): порядок хука
RV50Review
RV50Reviewlive

One self-contained HTML: brief for the editor, brief for the phone

  • ТЗ монтажёру — один HTML: карта проекта, кадры и референс-клипы внутри (data:URI); у вставки папка, файл, вход, выход и куда
  • начинается с того, что скачать: карта папок и точный список файлов с объёмом; главы YouTube — из реальных длительностей блоков
  • Роману — бриф ≤ 1 МБ в Telegram в одну колонку, кадры внутри: вердикт, обязательное, что вырезать, что решить
  • файл пересылается в мессенджере и открывается без интернета; страница продюсера — состояние круга, в док и лист он не пишет
999_extra/ytfp_handoff_build.py, ytfp02_tz_build.py; project tool build_tz.py (YTAZ09); 05_editing/0509_review_cycle/shared/phone_brief.py, producer_page.py, make_standalone, build_structure_html
04.08 · Roman · YTAZ09 04.08: 8,4 МБ, 23 клипа · YTFP02 16.08: 78 ГБ вместо 110 · YTEVO02 11.09 · YTUVI01 кат v2 · YTCH12
RV51Review
RV51Reviewlive

Roman's notes from Premiere: playhead button, disabled clip = cut

  • заметка кнопкой на плейхеде → строка таблицы с таймкодом, главой, речью и кадром; Claude подбирает материал ответом в той же строке
  • «вырезать» — выключенный клип: раскладка всех секвенций и выключенные куски читаются из автосейва .prproj (gzip XML) без панели
  • заметки в доке таблицей «таймкод · кадр · комментарий» → notes_roman.json с главой и речью → страница сверки
  • трек Premiere свёрнут 03.10 — правки теперь ставятся на кадре в комнате ревью
0500_uxp Note @ playhead; 05_editing/0509_review_cycle/shared/notes_sync.py push | pull | answer; stages/doc_notes_read.py, pravki_page.py; UXP TrackItem.isDisabled(); prproj_layout parse
03.09 · Roman · YTUVI01 03–06.09: 43 ноты → 30 правок · YTCH11 06.09 · YTUVI02 14–15.09: вырез 40.20–57.32 · YTCR04: найдено 14 мин потерянного материала
RV52Review
RV52Reviewlive

Teach the editor by example: recut or code film plus a page

  • тест монтажёра пересобирается из ЕГО кусков по нашей структуре; ему — страница с разбором, черновик и XML/EDL для его монтажки
  • после фильма кодом — страница: разбор его версии и что сделано в нашей, по пунктам и кадрам, чтобы повторил в Premiere и AE
  • красные линии, подписи, повторы и темп — разбором на странице, а не только черновиком
project tools YTCH10 test_recut (zh_align -> recut -> edges3 -> zh_page); YTCR04 v7_tools/aymen_page.py, aymen_frames.py; OpenTimelineIO
05.10 · Roman · YTCR04 05.10: yt.rya.ae/ytcr/04/aymen/ (EN) · YTCH10 10.10: тест Жени 48:27 → черновик 31:23 по Story v1, 21 наезд на склейках
RV53Review
RV53Reviewlive

Editor's Premiere project re-rendered by code on our 4K originals

  • монтаж монтажёра берётся из его .prproj кадр в кадр (скорость, Motion с ключами, растворения, музыка с кривыми) и перерендеривается кодом
  • каждое медиа находит свой 4K-оригинал, проект перелинковывается; наш цвет, звук и графика — без перемонтажа; версии сверяются кадр в кадр
  • экраны можно пересобрать своим движком на местах графики монтажёра по абсолютному времени программы
  • прокси 1080p в его проекте заменить 4K-оригиналами; офлайн-медиа — запрашивать только то, что стоит на таймлайне (Doctor)
05_editing/0515_editor_rerender/prgraph.py, avail.py, relink_v5.py plan | clone | write, cmp_versions.py; 0511_doc_cut/prproj_import.py read | build | verify, music_import.py, gfx.py; 999_extra/prproj_media_inventory.py
03.10 · Roman · YTCH12 v8 03.10: «фильм Марата заново кодом» · YTUVI01 «Корунд. Рубин» v5 09.10: проект Сони на наших 4K · YTUVI02 v3 · YTRF01: 133 медиа, 96 офлайн
RV54Review
RV54Reviewlive

Claude edits over the editor's finished master instead of a brief

  • вместо возврата ТЗ Claude сам правит поверх готового мастера монтажёра: плашки, неверный текст, экраны вставок, вырезы → 720p в комнату
  • окна неверных надписей — из покадрового OCR ревью; под каждым своим окном смотреть кадры мастера каждую секунду: его экраны без текста OCR не видит
  • свой клип, начавшийся позже своего полноэкранного экрана, ляжет поверх — начинать там, где экран кончается; находки проверить глазами
  • правки клиента по чужому ролику — в копии проекта (Collect) или поверх мастера, а не пересборкой с нуля
project tools {project}/00_Setup/05_Review/work/v2/claude_edit/ build_v3.py, post_asks.py, v5_qa.py; 05_editing/0516_review_room/portal.py ask --img
17.10 · Roman · YTUVI02 17.10: v3 = мастер Сони v2 + ТЗ v4, далее v4–v7 до 22.10 · v5: своя страница закрыла «рубин в пинцете» · RSC004 v6 21.10: правки в копии Collect аниматора
RV55Review
RV55Reviewlive

Editor kit: start-here guide, speech on the timeline, screens kit

  • монтажёру — комплект, а не папка: .prproj, прокси внутри проекта и гид «начни отсюда» по сценам: что снято, где, кто, звук, что чувствительно
  • на каждую сцену — транскрипт и пословные субтитры SRT под раскладку секвенции: речь видна прямо на таймлайне
  • экраны фильма — на Drive по видам: README (где сделано, как повторить), кусок финала 4K, исходники AE с альфой, MOGRT, карты
  • перед отдачей: синхрон на слух в трёх случайных точках, гид показан Роману; метки говорящих — из глобальной диаризации
999_extra/ytch12_restructure/editor_html.py, ytevo03_editor_start_html.py, generate_scene_captions.py, timeline_transcript.py; 0500_uxp src/ingest/transcriptImporter.js; 13_preprod/1304_visual_tz/editor_kit.py, editor_day.py; 999_extra/ytuvi_screens_kit.py
31.05 · Roman · YTCR03 31.05 · YTCR04: 4 сцены с речью · YTCH10 — первый гид · YTCH12 · YTUVIE 28.09: «Монтажёру · день N» · YTEVO03 30.09 · YTUVI01 v7 13.10: 35 видов, 203 экрана
RV56Review
RV56Reviewcanon

Animator brief: every screen in order with now and should clips

  • все экраны разобраны самим (OCR + глаза) и расставлены по порядку ролика, у каждого — что менять и статус
  • на каждую правку — короткий ролик «сейчас» с выносками → «как надо» в движении; правки клиента первыми, свой QA помечен
  • сцены — отдельными композициями: стабильные первый и последний кадр, окна не меняют размер, альфа ProRes 4444, слои PNG в координатах 4K
  • не список цитат клиента; субтитры и переходы в сценах аниматору не нужны
999_extra/bin/vision_ocr_ru; HyperFrames (loop clips mp4 + GIF); project tools final_hf/build_tanya.py, pack_tanya.py
02.10 · Roman · RSC004 02.10: 45 экранов, 15 роликов «сейчас → как надо» · RSC004 03–04.10: 8 композиций для Татьяны
RV57Review
RV57Reviewcanon

Client edits relayed literally; own ideas marked as proposals

  • правка клиента аниматору или монтажёру передаётся его смыслом, без расширения, можно с цитатой
  • своё улучшение — отдельной строкой «предложение Claude, можно не делать»
  • перед формулировкой про секунду — вытащить полосу 6–8 кадров момента и посчитать элементы: кругов у плашек было два, а не три
ffmpeg frame strip of the moment (6-8 frames)
21.10 · Roman · RSC004 21.10: «клики убрать совсем» — дописаны круги у трёх плашек, а кругов два
RV58Review
RV58Reviewcanon

Contractor brief opens with one unit's route, step by step

  • ТЗ внешнему исполнителю начинается с пути одной единицы работы (изделие, клип, кадр) по шагам с фото на каждом шаге
  • в шапке — чего НЕ делать; справочные разделы — потом, в том же порядке; один пример на всю страницу
  • требования — из инструкций самих ИИ-сервисов: таблица «сервис → что принимает → что значит для съёмки»; просить начать с одной единицы
HTML brief page on yt.rya.ae
05.10 · Roman · YTUVIAI ТЗ 2 (украшения) 05.10: «Одно изделие — шесть шагов» первым разделом
RV59Review
RV59Reviewcanon

Client delivery page: asked and done, timecodes, before/after

  • сдача — страница «просили → сделано» по пунктам: таймкоды новой и прежней версии кнопками открывают плеер на моменте
  • рядом кадры «было / стало» из итога, ссылки на фильм (4K и лёгкий), шортсы и рилсы, сверх замечаний — отдельно; всё одной папкой на Drive
  • сначала Роману, потом клиенту
project tools _session_tools/delivery/build_delivery_v9.py (frames | page | tg), tg_delivery_v9_send.py
19.10 · Roman · YTEVO02 v9 19.10: 9 пунктов, yt.rya.ae/ytevo/02/delivery/v9/
RV60Review
RV60Reviewcanon

Client copy: light file, our chapters and transcript, checked first

  • клиенту — лёгкая копия (1080p в Loom или 4K-лайт ссылкой); главы, саммари и расшифровку Loom вносим сами из наших исходников
  • сначала себе в «Избранное» и проверить: последняя версия, ссылка играет в инкогнито, нет ждущего решения фонда, обложка с безопасного кадра
  • подводка — название жирным и 2–3 предложения, видео — следующим сообщением, фильм — ссылкой последним
  • наружу ничего без слова Романа; клиенту — сводка «что внесено», без внутренних вопросов
05_editing/0510_autocut/light.py; ffmpeg libx265 crf 26 hvc1; 07_shorts tg_send.py (Telethon), tg_album.py, shorts.py telegram; 03_Exports/<CODE>_v5_loom/ (TICKET_loom_pack.md)
29.09 · Roman · YTCH12 v7 29.09: шортсы и фильм на согласование · YTEVO02 v5 02.10: Loom написал «Валюция» вместо «Эволюция» · RSC004 07.10
RV61Review
RV61Reviewcanon

Release handoff: delivery brief, unlisted upload, publish by hand

  • к готовому фильму — сдача для загрузчика: факты с источниками, запреты, главы, кадры для обложки
  • фильм заливается через API черновиком (unlisted) токеном канала; публикует человек в Studio одним кликом
  • неаудированный проект API запирает ролик в private — публиковать через API нельзя
08_youtube/upload_youtube.py --privacy unlisted --sni-bypass; {project}/00_Setup/00_Handoff/DELIVERY_*.md
16.10 · stage canon · YTUAE01 16.10 v4 → v7 17.10: DELIVERY_YTUAE01_4K.md
RV62Review
RV62Reviewlive

Subtitles in many languages: one agent per language, EN timings

  • ролик на N языков: агент на язык переводит EN-субтитры, тайминги байт в байт с EN, ≤ 2 строк; цифры героя — его словами
  • код проверяет число фраз, тайминги и штампы глав; дорожка получает родное имя языка
08_youtube/subs_upload.py --name; project tools _tools/loc_push.sh
16.10 · Roman · YTUAE02 16.10: 10 языков · YTUAE01 17.10: 10 языков
RV63Review
RV63Reviewcanon

Story page before the cut: chapters, variants, decisions as buttons

  • до сборки — страница Story: главы-вопросы, подходы библиотеки по номерам, полный текст глав с вырезанным в скобках, музыка и кадры глав
  • варианты структуры A (рекомендованный), B, C и решения кнопками; без ответа собирается по рекомендации
  • собранная история — ещё и Google Doc с таймкодами по главам, чтобы продюсер видел, что собрано, до видео
  • кадр главы — с монтажа оператора в момент пика главы; монтажный лист фильма — страницей с плеером звука всего фильма
999_extra/story_map/story_ai_gate.py, story_to_gdoc.py; 05_editing/0510_headless_cut/story_page.py --job --story; build_story.py; 0514_teaser/film_paper_page.py --audio
26.09 · Roman · YTEVO03 26.09: история v1–v3 в доке · YTCG39 05.10: A 10 глав-вопросов / B две серии / C «семь правил» · YTCG42, YTCG48 · YTTRBM02 07.10 · YTAgeFree S3
RV64Review
RV64Reviewcanon

Story review reads like the film: prose with cuts inline

  • монтажный разбор — читаемый рассказ по транскрипту, а не таблицы и чипы: что уже в видео — прозой по главам
  • что убрать, ужать, перенести, вставить — прямо в потоке: красное зачёркнутое — вырезать с причиной, жёлтое — сжать; справа липкий столбец визуала
  • сверху — расчёт длины (исходник → резы → темп → итог, резерв) и главы YouTube; источник (файл и tc) на каждом куске
  • карточная подача v1 Роману не зашла; технический слой (B-roll, карточки цифр) — отдельным файлом
project tools YTCR04_v2_story_build.py; {project}/00_Setup/05_Review/v02_premontage/build_tz2.py, viz_plan_wf.js
23.06 · Roman · YTCR04 23.06: «ПИШИ ТЕКСТ КАК КНИГУ, КАК РАССКАЗ. ТОЛЬКО ПО ТРАНСКРИПТУ» · YTAgeFree02 03.07: /ytagefree/02/premontage/
RV65Review
RV65Reviewcanon

Film status moved at every milestone; one live Telegram message

  • веха = команда: выложил страницу, начал качать, запустил рендер, сдал — сразу set: стадия из девяти шагов, где исходники, чего ждём, от кого
  • прогон говорит одним живым сообщением, которое тихо правится раз в 5 минут; вехи и ⛔ сбой — отдельными сообщениями с пушем
  • «ждёт» — только то, что правда ждёт: решение Романа (--who roman) или машина (--who machine); главное действие Романа — первым
  • хэндоффы и секреты в Telegram не шлём; время — только из date
999_extra/editing_status.py show | set CODE --stage --waiting --who; 999_extra/projects_pin/pin_context.py; 05_editing/0510_headless_cut/tg_status.py --every 300; 0511_story_cut/sc_status.py; ~/bin/tg.py
15.09 · Roman · YTCH12: живой статус 4K, части 41 из 42 · YTEVO02 v4 02.10: девять вех ночью · кокпит yt.rya.ae/production с 05.10
RV66Review
RV66Reviewcanon

Time report after every video

  • после каждого фильма и партии шортсов — таблица этапов: начало, конец, длительность, чего ждали, что переделывали, что ускорить
  • итоги: от запроса до «запускай», от «запускай» до файла, от файла до «ок»; числа — из журналов, не по памяти
  • инструмента time_report.py пока нет — отчёт собирается по журналам сессий
{project}/00_Setup/00_Handoff/TIME_<CODE>_vN.md; session_digest.py; /kb/claude-process/#s-time
03.10 · Roman · AI Editing 03.10: «хотелось бы видеть пайплайн и время — как и на что потрачено, и что можно ускорить»
RV67Review
RV67Reviewcanon

A technique enters the library only with a real example

  • у каждой записи каталога — пример из настоящего выпуска и способ (движок, навык или принцип); нет примера — нет записи
  • новый приём входит через пробу на кадре реального проекта; числа на странице — только измеренные пробой
  • заголовок — сам принцип; ✓ как делать · ✗ когда не брать; подходов «на всякий случай» нет
/map/edit/ (kb_claude.json); 999_extra/oss_solutions (proofs, /kb/claude-solutions/)
03.10 · Roman · YTCH14 03.10: библиотека из 36 подходов в семи разделах · /kb/claude-solutions/ v3 15.10: 14 проб, 10 на YTEVO03, YTUVI01, YTUAE01
RV68Review
RV68Reviewlive

Film case page: how it was made, the reference for the next film

  • у сданного фильма — страница-кейс: путь от съёмки до 4K дорожками «история · сборка · экраны · правки · итог», решения Романа, команды
  • кейс — эталон: до премонтажа следующего фильма канала из него собирается чек-лист
  • данные карты — без текста реплик
YTs/<CH>/<CODE>_case.md + _reference.md -> /<channel>/NN/case/; build_story_pages.py (story_case_v4.json, edl_v4.json, voices_v4.json); 14_media/1404_lifecycle/case.py
03.10 · stage canon · YTCH14 «Катя» v3–v4 03.10 · YTEVO03: 41:23, 10 версий, 132 правки · YTUVI01 → чек-лист YTUVI03 · YTUAE01/02
RV69Review
RV69Reviewlive

Sync verified pair by pair, proven to a human by a proof video

  • синхрон проверяют арифметикой по каждой паре пересекающихся источников: тот же отрезок таймлайна из обоих файлов, расхождение огибающих
  • по факту таймлайна (source_in), а не по ингесту; вердикт родного Synchronize читается из .prproj
  • человеку — доказательство: две камеры рядом или стерео, где L — звук камеры, R — петличка: слышна одна речь без эха
999_extra/wordsync_multicam/pair_check.py · timeline_sync_audit.py · sync_verdict.py · validate_ingest.py · 01_prepare/0116_camera_audio_sync.py --proof
31.05 · Roman · YTCR03 31.05: morning_drive FX3 ↔ FX3A подтверждён Романом · YTUVIE · YTCH
RV70Review
RV70Reviewlive

Subtitles by meaning and reading time, RU and EN tracks via API

  • субтитры из слов со временем: фраза по смыслу (смена говорящего, пауза > 0,8 с, конец предложения), обрывки склеиваются
  • до нарезки — вычитка списка слов правками [{from, to, why}]: так чинятся и фразы, разорванные границей реплики
  • нормы Netflix/BBC: 0,83–7 с, ≤ 20 знаков/с EN, ≤ 17 RU, 2 строки по 42; один говорящий на титр — по ролям из words.json
  • две дорожки (ru, en) ставятся ролику через API после заливки
08_youtube/subs_words.py -> subs_polish.py -> subs_apply.py -> subs_qc.py -> subs_upload.py --video ID --srt ru=... --srt en=... · 999_extra/subs_wordfix.py
09.10 · Roman · YTTRBM 09.10: обрывки 11–23 % фраз · YTTRBM 01.10: «субтитры по ролям?» · YTLAB01 v5: смешанные титры переразрезаны
RV71Review
RV71Reviewcanon

Music licence: safelisted channel and a ledger before release

  • трек Epidemic выходит на YouTube только с канала, подключённого в Epidemic Sound (safelist); подключение подтверждает Роман
  • что скачано и где звучит — в журнале лицензий: _licenses.json, music_ledger.json, music_v{N}.json
  • без safelist — претензия Content ID; в шортсах музыка до 90 с при Content ID; ключ Epidemic — только в ~/.config, не в git
Epidemic MCP · _licenses.json · music_ledger.json
02.10 · Roman · YTCH: канал фонда подключён 02.10 · YTCG37 ждёт safelist · слоты 3 из 3: On the Dotted Line, UVI, Бюро Добрых Дел

Registry · 7

every other approach we used, compact: code, rule, where it is seen, tool

RV72

Loupe check: the magnifier lands on its own text

YTUVIE01 12.10 · блок 3 25.10: поля луп во всех уроках

лупа на записи экрана проверяется кодом: попала на свой текст (по OCR), не уехала с кадра и имеет поля
05_editing/0513_lesson_cut/zoom_check.py; project tools loupe_view_check.py, loupe_fit.py⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​‌​‌​‌​​​‌​​​‌​​‌​​‌​‌​‌​‌​​​​‌​‌‌​‌​‌​‌​​‌​​‌​​​‌​‌​‌​‌​‌‌​​‌​​‌​​‌​‌​​​‌​‌​‌​‌​‌‌‌​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

live
RV73

Lesson script audit: agent per section, code checks the verdict

YTUVIE01 занятие 01, 20.09

смысл готового занятия судит облако по агенту на секцию, результат проверяет код: полнота, потери, подписи, схемы, вставки, указательные слова
13_preprod/1303_prompter_scripts/cloud/wf_audit.js, wf_audit_check.js, wf_labels.js, wf_viz_audit.js, wf_inserts.js⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​‌​‌​‌​​​‌​​​‌​​‌​​‌​‌​‌​‌​​​​‌​‌‌​‌​‌​‌​​‌​​‌​​​‌​‌​‌​‌​‌‌​​‌​​‌​​‌​‌​​​‌​‌​‌​‌​‌‌‌​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

live
RV74

Consent and dignity review before filming vulnerable people

YTAgeFree S3 (Великие Луки), план v6 до 26.09: 2 прохода, 89 замечаний

до съёмки пожилых и уязвимых — разбор согласий и достоинства: opt-in, подписи собирает группа, бланк по ст. 10.1 152-ФЗ
plan page review (project tools _build/build_page_v6.py, plan_v6_archive.json)⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​‌​‌​‌​​​‌​​​‌​​‌​​‌​‌​‌​‌​​​​‌​‌‌​‌​‌​‌​​‌​​‌​​​‌​‌​‌​‌​‌‌​​‌​​‌​​‌​‌​​​‌​‌​‌​‌​‌‌‌​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

live
RV75

Editor gets a real timeline: XML, EDL or OTIO checked against draft

YTCH10 тест Жени 10.10: 47 082 кадра = черновику · YTEVO03 v9 14.10: проба .otio · инжест 0109: FCPXML 1.8 и generate_prproj.py⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​‌​‌​‌​​​‌​​​‌​​‌​​‌​‌​‌​‌​​​​‌​‌‌​‌​‌​‌​​‌​​‌​​​‌​‌​‌​‌​‌‌​​‌​​‌​​‌​‌​​​‌​‌​‌​‌​‌‌‌​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

черновик кодом — монтажёру лентой: FCP7 XML (V1 куски, наезды масштабом, V2 перебивки, A1–A2, маркеры глав) и запасной EDL CMX3600
OpenTimelineIO; project tools zh_xml.py, to_otio.py; 0109 spread_fcpxml; generate_prproj.py; 05_editing/0511_doc_cut/prproj_import.py; review_card.json fps⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​‌​‌​‌​​​‌​​​‌​​‌​​‌​‌​‌​‌​​​​‌​‌‌​‌​‌​‌​​‌​​‌​​​‌​‌​‌​‌​‌‌​​‌​​‌​​‌​‌​​​‌​‌​‌​‌​‌‌‌​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

live
RV76

Recipe dry run on a training copy of a real film

YTXX01 (копия YTEVO03) 12.10: прогон Color by Reference нашёл 3 бага — исправлено YTAI 642b7e86⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​‌​‌​‌​​​‌​​​‌​​‌​​‌​‌​‌​‌​​​​‌​‌‌​‌​‌​‌​​‌​​‌​​​‌​‌​‌​‌​‌‌​​‌​​‌​​‌​‌​​​‌​‌​‌​‌​‌‌‌​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

рецепт страницы базы знаний проверяют целиком на учебном фильме — копии настоящего под чужим кодом, без его настроек, каждой командой раздела
training project YTXX01 (copy of YTEVO03) + the page Commands section⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​‌​‌​‌​​​‌​​​‌​​‌​​‌​‌​‌​‌​​​​‌​‌‌​‌​‌​‌​​‌​​‌​​​‌​‌​‌​‌​‌‌​​‌​​‌​​‌​‌​​​‌​‌​‌​‌​‌‌‌​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

live
RV77

A repeated word in the transcript re-heard on a 6 s window

YTMSEN01 v2 07.08: 4 ложных «заикания» ElevenLabs

повтор слова в SRT готового ролика — часто артефакт распознавания на стыке сегментов: перед ТЗ «перезаписать» окно ±6 с распознают заново
mlx_whisper.transcribe(word_timestamps=True, temperature=0.0)⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​‌​‌​‌​​​‌​​​‌​​‌​​‌​‌​‌​‌​​​​‌​‌‌​‌​‌​‌​​‌​​‌​​​‌​‌​‌​‌​‌‌​​‌​​‌​​‌​‌​​​‌​‌​‌​‌​‌‌‌​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

live
RV78

Is it quieter? Loudness compared by meaning windows, VO apart

YTRF05 v5 09.06: ролик −11 → −13 LUFS, а закадр интро просел на −4…−11 дБ

на вопрос «стало тише?» громкость двух версий сравнивают по окнам смысла (таймлайн сдвинут), закадр и синхрон — отдельно
ffmpeg ebur128 · volumedetect⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​‌​‌​‌​​​‌​​​‌​​‌​​‌​‌​‌​‌​​​​‌​‌‌​‌​‌​‌​​‌​​‌​​​‌​‌​‌​‌​‌‌​​‌​​‌​​‌​‌​​​‌​‌​‌​‌​‌‌‌​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

live

Код подхода постоянный — по нему подход называют в плане фильма и хэндоффе. new — решения Романа и Тани 02–26.10 из хэндоффов и памяти: раньше их не было ни на одной странице. Пунктир — open: в фильм только после решения Романа. Как добавить новый подход — Edit · Add.⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​‌​‌​‌​​​‌​​​‌​​‌​​‌​‌​‌​‌​​​​‌​‌‌​‌​‌​‌​​‌​​‌​​​‌​‌​‌​‌​‌‌​​‌​​‌​​‌​‌​​​‌​‌​‌​‌​‌‌‌​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

Tools

Скрипты, движки, навыки и сервисы, на которых держатся подходы этой страницы; полный реестр — /map/tools/.⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​‌​‌​‌​​​‌​​​‌​​‌​​‌​‌​‌​‌​​​​‌​‌‌​‌​‌​‌​​‌​​‌​​​‌​‌​‌​‌​‌‌​​‌​​‌​​‌​‌​​​‌​‌​‌​‌​‌‌‌​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

7

0516_review_room/room.py

script · edit · shorts
05_editing/0516_review_room/room.py

RV5RV6RV7RV16RV23RV24RV10

6

ffmpeg

engine · color · edit · sound

RV22RV27RV28RV57RV60RV78

6

0516_review_room/portal.py

script · edit
05_editing/0516_review_room/portal.py

RV10RV54RV5RV6RV8RV9

4

site/gen_screen_plan.py

script · color · edit · sound

RV12RV17RV18RV47

3

0511_story_cut/sc_sheet.py

script · edit
05_editing/0511_story_cut/sc_sheet.py

RV2RV34RV29

3

0701_finished/shorts.py

script · edit · shorts · sound
07_shorts/0701_finished/shorts.py

RV2RV42RV60

3

0513_lesson_cut/lc.py

script · edit · sound
05_editing/0513_lesson_cut/lc.py

RV20RV37RV6

3

qc.py

script · edit

RV2RV26RV29

3

stages/doc_tab_tz_v4.py

script · edit
05_editing/0509_review_cycle/stages/doc_tab_tz_v4.py

RV47RV32RV45

2

0510_headless_cut/cut.py

script · edit
05_editing/0510_headless_cut/cut.py

RV20RV26

2

HyperFrames

engine · edit · shorts

RV29RV56

2

0509_review_cycle/review.py

script · edit
05_editing/0509_review_cycle/review.py

RV31RV32

2

timeline_sync_audit.py

script · edit

RV40RV69

2

0510_headless_cut/version_page.py

script · edit
05_editing/0510_headless_cut/version_page.py

RV12RV18

2

Claude

app · edit

RV6RV33

2

0511_doc_cut/blur.py

script · edit
05_editing/0511_doc_cut/blur.py

RV1RV41

2

0516_review_room/claude_edits.py

script · edit
05_editing/0516_review_room/claude_edits.py

RV8RV9

2

0515_editor_rerender/cmp_versions.py

script · edit

RV11RV53

2

0510_headless_cut/story_page.py

script · edit
05_editing/0510_headless_cut/story_page.py

RV18RV63

2

0510_headless_cut/deliver.py

script · edit

RV19RV25

2

0510_autocut/light.py

script · edit
05_editing/0510_autocut/light.py

RV25RV60

2

0511_doc_cut/qc.py

script · edit

RV27RV34

2

999_extra/video_flash_scan.py

script · edit

RV28RV33

2

shared/producer_page.py

script · edit

RV32RV50

2

0513_lesson_cut/qc_final.py

script · edit

RV34RV25

2

999_extra/review_contact_sheets.py

script · edit

RV34RV30

2

wordsync_multicam/pair_check.py

script · edit
999_extra/wordsync_multicam/pair_check.py

RV40RV69

2

shared/phone_brief.py

script · edit
05_editing/0509_review_cycle/shared/phone_brief.py

RV50RV32

2

OpenTimelineIO

engine · edit

RV52RV75

2

0511_doc_cut/prproj_import.py

script · edit

RV53RV75

2

08_youtube/subs_upload.py

script · edit

RV62RV70

1

0514_teaser/teaser.py

script · edit
05_editing/0514_teaser/teaser.py

RV22

1

shared/risk_registry.py

script · edit
05_editing/0509_review_cycle/shared/risk_registry.py

RV41

1

gfx.py

script · edit · shorts

RV53

1

0510_headless_cut/gfx.py

script · edit
05_editing/0510_headless_cut/gfx.py

RV29

1

Epidemic

app · edit · shorts · sound

RV71

1

story_map/story_hooks.py

script · edit
999_extra/story_map/story_hooks.py

RV10

1

0510_headless_cut/solo.py

script · color · edit · sound
05_editing/0510_headless_cut/solo.py

RV17

1

parts/partsBuilder.js

script · edit
src/parts/partsBuilder.js

RV48

1

999_extra/agefree_verify_citations.py

script · edit

RV4

1

999_extra/ytfp_comp_lib.py

script · edit

RV4

1

story_map/story_ai_gate.py

script · edit
999_extra/story_map/story_ai_gate.py

RV63

1

validate_ingest.py

script · edit

RV69

1

01_prepare/0116_camera_audio_sync.py

script · edit

RV69

1

0513_lesson_cut/pravki.py

script · edit · sound
05_editing/0513_lesson_cut/pravki.py

RV6

1

0510_autocut/plan.py

script · edit
05_editing/0510_autocut/plan.py

RV22

1

ytuviai/build_tz.py

script · edit
999_extra/ytuviai/build_tz.py

RV50

1

0511_story_cut/sc_gfx.py

script · edit

RV29

1

0516_review_room/screens_portal.py

script · edit
05_editing/0516_review_room/screens_portal.py

RV14

1

reading_audit.mjs

script · edit

RV29

1

layout_audit.mjs

script · edit

RV29

1

clip_audit.mjs

script · edit

RV29

1

0511_story_cut/sc_build.py

script · edit · sound

RV24

1

infographic

skill · edit

RV46

1

999_extra/ytrf05_screen_plan.py

script · edit

RV45

1

_run/loupe_view_check.py

script · edit

RV72

1

999_extra/ytuvi_screens_kit.py

script · edit

RV55

1

viz_plan_wf.js

script · edit

RV64

1

claude_edit/build_v3.py

script · edit

RV54

1

999_extra/render_queue.py

script · edit

RV21

All tools ↗