Фиолетовая рамка — агенты Claude. Их работа всегда заканчивается проверкой кодом (OK) до того, как лист увидит человек.
Порядок у всех один — структура от человека, лист по словам, проверка кодом; разные файл и автор.
| Форма листа | Движок · пример | Файл — кто пишет | Проверка |
|---|---|---|---|
| Хребет + указания | autocut · YTEVO02 | directives_v4.json — человек | «ФАКТ ЖДЁТ СВЕРКИ» снимает клиент |
| Подрезки + экраны | headless · YTLAB01 | trims_v1 + screens_v1 — помощники | brief.py lint |
| Лист дублей | solo · YTCG37 | takes_v1 — 17 дублей на 4:42 | plan: стык без прикрытия — ошибка |
| Лист от слов | doc_cut · YTCH14 | montage_v1 — человек или редактор-Claude | story.py resolve: якоря, структура |
| EDL по блокам | story_cut · YTCR04 | agents/edl/B<N> — 8 помощников | sc_edl check — до OK |
| Отбор шортсов | шортсы · Draper | picks.json — агент Draper | shorts.py picks |
directives_v4.json — пишет человек: edges · trims · framing · choice · screens_off · screens_time · facts · zoom · fades · inserts, у решений поле _whybrief.py dump --notes → помощники пишут {CODE}_trims_v1.json (drops/keeps по сквозным номерам слов) и {CODE}_screens_v1.json (type · text · anchor/until · viz)brief.py lintsolo.py edges → edgeplot: лист краёв дублей глазами — фальстарты («So,» + пауза) и хвосты{CODE}_montage_v1.json — реплики по словам from/to около at, перебивки covers; «единственное, что правится руками» — человек или редактор-Claudestory.py resolve: якоря в местной расшифровке, кто говорит — по уровню петличкиsc_prep.py → agents/blocks/ + broll_catalog.md + speech_angles.md → 8 помощников пишут agents/edl/B<N>.json по docs/BRIEF_edl.mdsc_edl.py check до OK → sc_align → sc_build → sc_dedup; риски — EDL_NOTES.md, правки экранов — {CODE}_gfx_overrides.jsonshorts.py transcript → задание отборщику → агент Draper пишет picks.json → shorts.py picks проверяет кодом| Кто | Что пишет | По чему | Гейт кодом |
|---|---|---|---|
| Помощники по блокам (агенты Claude, облако) | agents/edl/B<N>.json: куски речи по словам, перебивки из каталога, заметка | docs/BRIEF_edl.md + листы блоков sc_prep (слова, кадры, углы речи) | sc_edl.py check → OK; sc_dedup fix; у помощников общий scratchpad — писать только в agents/edl/ |
| Помощники trims + screens (YTLAB) | {CODE}_trims_v1.json, {CODE}_screens_v1.json | agents/BRIEF_trims_screens.md, части A–E, после brief.py dump --notes | brief.py lint |
| Редактор-Claude или человек (doc_cut) | {CODE}_montage_v1.json, _gfx_, _music_ | общая расшифровка Claude4_assembly.json + бриф | story.py resolve: ⛔ якорь не найден, ⛔ структура |
| Сессия с Романом + story_map | структура карты сцен v3, режиссёрские заметки, edge_overrides | записи сцен, слова, принципы глав (глава = вопрос, пик ≤ 30 с) | «да» Романа; sc_prep не стартует без structure_final |
| Qwen2.5-VL-7B (Memex) — каталог кадров | «что в кадре» для каталога перебивок | кадры исходников | не гейт: путает людей — лицо героя эталоном SFace и глазами |
| Qwen3-8B (локально) | сегментация тезисов для ТЗ монтажёру (трек Premiere, montage_tz) | расшифровка | в треке AI Editing не используется для листа |
| Draper (агент Claude) | отбор моментов для шортсов picks.json | PICKS_PROMPT.md: правила канала, расшифровка с ролями, описание выпуска | shorts.py picks |
Из кода движков LLM не вызываются: агенты работают в облаке по брифам, код только проверяет их файлы. Это осознанно — проверка воспроизводима, а решения агента читаемы в JSON.
Агенты пишут, код проверяет, человек смотрит — по шагам и с порогами.
| Проверка | Когда | Норма | Откуда взялась |
|---|---|---|---|
| Якоря найдены | story.py resolve | ⛔ если from/to реплики не нашлись в местной расшифровке; ⚠ реплика впритык к краю клипа | время слов общей расшифровки врёт на 1–7 с (YTCH14) |
| Структура канала | story.py → structure_rules | блок фонда ≤ 90 с, слияние не ближе 30 с, вход фонда не раньше 34, последний звук — героини; ⛔ при нарушении | правила фонда (Роман, YTCH11 v5) |
| EDL сходится со словами | sc_edl.py check | head/tail = слова, склейки спрятаны, план не длиннее MAX_HOLD 12,5 с | помощники ставили края «по смыслу» |
| Повторы перебивок | sc_dedup.py fix | MARGIN 1,0 с, FAR 4 мин; dedup_log.md | YTCR04: 104 пары повторов — 8 помощников брали одни и те же лучшие кадры |
| Подрезка в тишине | headless edl | рез в тишине или провале ≥ 14 дБ, иначе подрезка → rejected; паузы > 1,0 с ужимаются до 0,4; «э-э» 0,6–2 с вырезается | резы по меткам Whisper рвали слова |
| Под «паузой» нет речи | headless edl | unheard и vetoed_pauses в отчёте | «пауза» скрывала 16 с речи под словом-галлюцинацией |
| Речь на стыках | verify | 3+3 слова вокруг стыка в окне ±4 с; найдено < 5 из 6 → ⚠ | первое слово дубля Whisper относил к соседу |
| Края в паузе | sc_align audit | 0 резов вне паузы из всех краёв | метки слов рано на 85–570 мс |
| Лист брифа | brief.py lint | форма и ссылки на слова верны | агент писал номера слов не той нумерации |
| Герой под «я» | sc_sheet cuts · clip + SFace | чужих лиц под словами героя нет | коллега под «я» героя 12 раз (YTCR04) |
| Факты на экранах | человек | «ФАКТ ЖДЁТ СВЕРКИ» снят клиентом | число из карточки должно прозвучать у эксперта |
слияние не ближе 30 с, последний звук — героини.
или в тишине; иначе подрезка → rejected. Паузы > 1,0 с ужимаются до 0,4.
слова ищутся в окне ±4 с вокруг стыка; меньше пяти — ⚠.
| Файл | Что хранит | Кто и когда пишет |
|---|---|---|
| YTs/{CH}/review_profile.json → structure_rules | правила структуры канала, которые проверяет код | руками после решения Романа, с пометкой кто и когда |
| docs/BRIEF_edl.md · agents/BRIEF_trims_screens.md | бриф помощникам: как резать, где кадры, что нельзя | сессия после каждого прогона — туда уходят грабли помощников |
| EDL_NOTES.md · {CODE}_preview_notes.json | риски листа, вопросы ask/fund, спорные края «ждали / слышно» | сессия и человек по ходу листа |
| {CODE}_gfx_overrides.json · dedup_log.md | правки экранов редактором; что снял dedup | редактор; код |
| edge_overrides_vN.json (story_map) | выверенные по звуку края сцен — поверх правил карты | агент или человек; берётся последний N |
| память: feedback_chapter_writing_principles · feedback_broll_hero_identity_check | принципы глав (вопрос, пик ≤ 30 с, крючок); лицо героя | сессия по решениям Романа |
V=~/YTAI/environment/.venv_transcribe/bin/python; SC=~/YTAI/scripts/05_editing/0511_story_cut $V $SC/sc_prep.py --project $P # листы блоков помощникам → agents/blocks/ # помощники пишут agents/edl/B<N>.json по docs/BRIEF_edl.md $V $SC/sc_edl.py check --project $P # до OK $V $SC/sc_align.py edges && $V $SC/sc_build.py && $V $SC/sc_align.py audit # края, общий лист, мерило $V $SC/sc_dedup.py fix # повторы перебивок $V $SC/sc_sheet.py cuts · clip # лист кадров глазами $V $SC/sc_qc.py asr # распознать собранную речь: потеряно слово / край изменён / текст другой
HC=~/YTAI/scripts/05_editing/0510_headless_cut; DC=~/YTAI/scripts/05_editing/0511_doc_cut $V $HC/brief.py dump --notes --job $J → помощники → $V $HC/brief.py lint # подрезки и экраны YTLAB $V $HC/solo.py edges → edgeplot → listen → dialog → verify + letters → align --job $J # лист дублей YTCG $V $DC/story.py resolve --job $J && $V $DC/cut.py status # якоря и структура YTCH $V audition.py --job $J (из {YTEVO02}/…/autocut_v4/_v6_tools/) # собранная речь с метками резов до рендера