◂ База знанийRYA.AEAssembly Brief Cycle — цикл монтажного брифаобновлено 6 сен 2026
Assembly brief — ядро монтажного цикла: структурированный JSON-бриф по транскрипту съёмки, который UXP-панель «YTAI Assembly» загружает в Premiere и строит секвенции. Генератор читает весь транскрипт → 5–15 тематических блоков → keep/cut по каждому сегменту → цвета по семантике → JSON + HTML-ревью. Правило полноты: каждое произнесённое слово попадает ровно в один сегмент (USE=TRUE или FALSE), разрывов нет.
Цикл. Claude4_assembly.json → бриф v1_in.json + review HTML → UXP строит Assembly → монтажёр работает и пишет комментарии в маркеры → экспорт _out.json → новый бриф v{N+1}_in с changelog. Генерировать в Claude Code, не Desktop (Desktop режет вывод на ~80KB JSON).
транскриптv{N}_in.json + HTMLUXP → Premiereмаркеры монтажёра_out.jsonv{N+1}
1Что это2Входы3Выходы4Схема JSON5Пути и версии6Round-trip7Каноны8Дальше: UXP

🧾4.5 · 1Что это

  • Каждый сегмент несёт use="TRUE"/"FALSE" — сегменты с FALSE тоже обязаны быть в JSON (ревью и референс).
  • Block 99 = Cut/Unused: шум, экспликативы, между-дублевое; всегда Red, priority 9, в Assembly не попадает.
  • priority: 1 = основной дубль · 2 = ALT (Yellow) · 9 = CUT (Red) · остальное = SKIP (Purple, кандидат на пересмотр). Из одного брифа UXP строит и Assembly (USE=TRUE), и Review (инверсный фильтр).
  • Бриф режет: false starts, паузы >3с, филлеры, повторы, off-topic, продакшн-реплики группе, между-дублевые фразы, low_confidence. Дефолт — оставлять ~60–70% материала; пользователь может задать целевую длительность и стиль.
  • editing_rules.md держит эталонную 10-блочную структуру: Hook → Disclaimer → Intro → Loop → Logo Bumper → Main Points 1–3 → CTA → CTV; темп сегмента 10–60с.
⚠️ Эмоции, юмор и важный контекст НЕ вырезать, даже если звучат скучно. ⚠️ low_confidence — 5 условий (no_speech>0.5, compression_ratio>2.4 или <1.2, temperature>0, низкая уверенность слов) — в HTML это ⚠️ CHECK AUDIO.

📥4.5 · 2Входы

  • Главный вход: 00_Setup/{CODE}_Claude4_assembly.json — транскрипт с таймкодами, спикерами и words[] {w,s,e} на сегмент.
  • Пословные суб-сегменты (Hook-выдержки): tc_in = first_word.s · tc_out = last_word.e + smart_padding · transcript = конкатенация words[first..last].w.
  • Профиль канала YTs/{CH}/{CH}.md; база знаний читается по порядку: INSTRUCTIONS → editing_rules → output_format → профиль.
  • Fallback без words[]: оценка по доле слов ±1с + пометка «estimated timecodes» в notes.
FIRST ACTION: назвать чат именем проекта из поля project (напр. YTCG37_Hadi_Dawani).

📤4.5 · 3Выходы — всегда три

  • JSON00_Setup/02_Assembly/{CODE}_Assembly_v{N}_in.json.
  • HTML-ревью02_Assembly/{CODE}_review_v{N}.html — пишется на диск ВСЕГДА (файл в браузер, не Claude-артефакт). Секции: stats-бар (6 метрик), Assembly-блоки с полным текстом и бейджами, YouTube-главы.
  • Чат-summary: таблица блоков + главы + 1–3 ключевые заметки.
⚠️ Override против дефолта: поле transcript = ПОЛНЫЙ текст диапазона tc_in→tc_out (не summary) — бриф самодостаточен. Легаси-имя {CODE}_pre_edit_brief.json UXP тоже принимает.

🧬4.5 · 4Схема JSON

Секции: segments[] (обязательно) · screens[] (опц.) · project{} · changelog[] (с v2).

поле сегментаправило
segment_idseg_001… сквозная нумерация по всем клипам
source_fileточное имя файла из транскрипта
tc_in / tc_outMM:SS.sss, локальное время клипа; 88.76 → «01:28.76»; не резать слово посередине
use / is_chapterстрого строки "TRUE"/"FALSE", НЕ boolean; is_chapter — на ПЕРВОМ сегменте блока
color8 цветов, case-sensitive: Green (Hook/Intro/CTA), Blue (образовательное), Cyan (контекст), Yellow (предупреждения), Orange (истории), Red (риски+Block 99), Magenta (процедуры), Purple (SKIP)
screens[]ровно 5 типов: full_overlay, half_overlay, three_fifths_overlay, chapter_bar, lower_third; ссылаются только на USE=TRUE
⚠️ Внутри блока сегменты идут в порядке JSON-массива (BRIEF ORDER), НЕ сортируются по tc_in. ⚠️ Выдуманные screen-типы и цвета UXP отклонит.

🗂4.5 · 5Пути и версии

  • Пользователь даёт только код канала + путь проекта; остальное авторезолвится: код проекта — регекс ^(YT[A-Z]{2,4}\d+)_, транскрипт — 00_Setup/{CODE}_Claude4_assembly.json, выход — 02_Assembly/.
  • Версия = скан 02_Assembly/ на *_v{N}_* → следующий N. _in = В Premiere, _out = ИЗ Premiere; монтажёр прислал v4_out → создаётся v5_in.
  • Каждая правка = НОВАЯ версия v{N+1} отдельными файлами; старые остаются как история итераций.
⚠️ Предыдущие версии не перезаписывать.

🔁4.5 · 6Round-trip: из Premiere обратно

  • export_markers_from_prproj.py читает gzip .prproj напрямую (Premiere не нужен), тики → секунды (TICKS_PER_SEC=254016000000), пишет {CODE}_Assembly_v{N}_out.json; берёт самый свежий .prproj (корень → Auto-Save → 01_Media/).
  • Классификация маркеров: [CUT]/[ALT]/[SKIP] → review · Source: → якоря клипов · префикс / → правки пользователя. По offset внутри клипа маркер обогащается сегментом транскрипта (tolerance 5с).
  • Формат комментария: Speaker: X | текст | B-roll: Y | Notes: Z. EDITOR NOTES — заметки монтажёра после авто-полей, часто по-русски.
  • HTML v{N+1}: changelog сверху (collapsible), «Editor Notes» сводка, жёлтая подсветка заметок на изменённых сегментах + бейдж CHANGED, вычеркнутые удалённые; в notes — тег [v{N} editor].
  • Diff-HTML: два столбца БЫЛО|СТАЛО по главам; левый столбец чистить от AI-заметок, иначе editor comments тонут.
python ~/YTAI/scripts/05_editing/0506_marker_export/export_markers_from_prproj.py --project "$PROJECT"
⚠️ Транскрипт в _out.json НЕ встраивается (3MB+) — при обработке запросить {project}_transcript.json. ⚠️ Реальное имя выхода — {CODE}_Assembly_v{N}_out.json (докстринг с «_2» врёт). В _out встраивается последний _in-бриф (output['brief']).

⚖️4.5 · 7Монтаж-каноны, обязательные для брифа

  • Last take — из нескольких прочтений в кат идёт ПОСЛЕДНИЙ дубль, ЕСЛИ он без брака; поздний с запинкой проигрывает раннему чистому (брак — в notes).
  • Smart paddingtc_out = last_word.e + min(gap, 0.3): воздух только при реальной паузе; при gap=0 даже +0.01с захватит следующее слово.
  • No overlaps — USE=TRUE сегменты не перекрываются по source-диапазонам (>0.2с сверх паддинга) — иначе зритель слышит текст дважды (кейс YTUVI05).
  • No AI content — сгенерированное (Kling и т.п.) в каты не класть: ломает DNA реально отснятого; вставки только из реальных съёмок.
  • Deleted scene — отслеживает только куски, вырезанные из основного смонтированного видео, не source-вставки.
  • False starts — из серии попыток остаётся только финальная успешная; последнее слово сегмента = конец мысли, не начало следующего предложения.

🎛4.5 · 8Дальше: UXP-этапы

  • INGEST (3.1: клипы → 00_Source, секвенция {project}_1_Ingest) → ASSEMBLY ({project}_2_Assembly: V1 = USE=TRUE в порядке блоков, V2 = screen cues, A2/A3 = DJI) → REVIEW → PARTS (часть = цвет/блок = своя секвенция 2V+2A).
  • После брифа — captions SRT для всех таймлайнов; UXP импортирует их в 02_Transcripts при билде.
⚠️ Parts: клипы части должны быть уже импортированы в бин 00_Source — неимпортированные partsBuilder пропускает с записью в отчёт. См. также 4.1 Project Structure и 4.2 Editor Handoff.
Бриф самодостаточен: все слова источника — в сегментах, каждое решение — в JSON, каждая итерация — новая версия. HTML всегда на диске; changelog — память цикла.