Project Ops

🛠 Структура и сдача проектов

Как заводить, вести и сдавать YouTube-проект. Чтобы проект было удобно вести — и чтобы он переносился/сдавался одной папкой.

📦 Золотое правило: все исходники лежат ВНУТРИ папки проекта. Никаких ссылок на чужую машину или соседний проект.

1 Структура папок

Канон проекта YTRF##_Название. Папки по номерам — порядок продакшена. Клик по имени папки — копирует его в буфер.

2 Master Project Table

Default ContentList template applied to every project — the producer's mirror of the Trello board and the 11-stage lifecycle (§5). One row = one project = one card = one folder. The Status column is the single source of truth: where is it · whose ball is it · is it stuck. open the master template ↗  ·  live YTRF sheet ↗

The old sheet had 3 statuses (Awaiting Approval / Video Approved / No Status) — you can't tell where a project sits. This is 11 numbered statuses, a red self-contained hard gate, and an orthogonal Blocked override. Status values are single tokens — 01Created … 11Archived — and the Trello list = Status one-to-one. The live working sheet stays light (17 original columns + Status · Stage# · Hold · Note); the full column layout below is the optional max template.

Status — stage № · color · meaning
01Created
owner —
create_folders done, row exists, Source Material set. Booked, nothing shot yet. Gray = in the queue, no work product.
02Script
owner Producer
Pre-production — before the shoot. Research, script, interview questions, shoot plan (Doc). Nothing is filmed until this is locked.
03Shooting
owner Crew
Footage captured into 01_Source/{Video,Audio,LUT}.
04PreEditing
owner Pipeline
run_pipeline.py (audio extract, DJI sync, transcription → 00_Setup + Transcription) + Assembly/Pre-Edit бриф. Footage prepped and editor-ready.
05Editing
owner Editor
Delivered to the editor; .prproj in 02_Edit, sources assembled in 02_Edit/{Sound,Stock,NewAssets}. Ball with the EDITOR (Sent to Editor date set).
06Review
owner Producer
Editor returned cut vN; producer reviewing / running Doctor + montage QC. Ball with the PRODUCER. Was Awaiting Approval. Amber = a human decision is due.
07Revisions
owner Editor
Notes sent; editor doing a revision round. Round # increments — the v3→v4→v5 loop lives here. Ball back with the EDITOR.
08Gate
HARD GATE · owner Producer
Creatively approved but BLOCKED until 0 offline + 0 external links + manifest OK (§3). The one fail-back before delivery — nothing exports or publishes from here.
09Ready
owner Publish
Gate passed → rendered to 03_Exports/YTRF##_vN_*.mp4 (+_Light, valid name) + bisynced SSD↔Drive. Deliverable complete and portable. Ball with PUBLISH.
10Published
owner —
Live on YouTube; YouTube/ folder + links + thumbnail filled. Was Video Approved. Brand lime — reserved for this single "live" state.
11Archived
owner —
Sources frozen, final bisync + manifest snapshot on Drive. Cold storage, hidden from the active board. Dim = done and out of the way.
Blocked / Hold
override · any stage
Not a stage — an override. Waiting on client / footage / decision (external), or QC found a blocker. The Hold checkbox forces red over the stage color (e.g. 09Ready + Hold = done but not published) — a held project never hides behind green; Note (reason) required. Trello = red Blocked label, card stays in its stage list.

Color order = life order: neutral/cool early → warm in-progress → green/lime done → dim archived. Red is reserved strictly for the hard gate and Blocked (plus Stuck / overdue escalation) — red always means "a human must act now".

Working sheet — header row · live YTRF ContentList, реальный порядок колонок
ASprint
BVideo Project
CDoc
DVideo ETA
EYouTube
FThumbnail
GVideo link
HLight link
IFile name
JLast modified
KSource Material
LStatus
MStage #
NHold
ONote
PShorts
QPcs
RDuration
SThumbnail Source
TVideo Project

L Status — цветной дропдаун (11 токенов) · M–O добавлены (Stage# авто, Hold-галка, Note) · S–T — старые булевы. 17 исходных колонок целы, порядок сохранён. ← листай вправо.

Полный шаблон (44 cols) — все колонки · автоматика · миграция
auto = formula, producer never touches · new = added · ниже — макс-версия (template v2), рабочий лист легче
1 · Identity — join keys
SprintSprint bucket 1..11 (S1 = YTRF01–05). Left-hand grouping / filter.
CodenewautoCanonical code from the folder name (^YT[A-Z]{2,4}\d+_) — the join key across folder / Trello / Drive / manifest.
ProjectFull project name = guest / topic. YTRF01_Artem_Dogaev.
Source MaterialFolder name = the bare project code (no prefix) — the sheet↔folder↔card binding. Can't leave Created without it.
DocLink to the script / Assembly / Pre-Edit Google Doc (the stage-2 deliverable).
2 · Status & Ownership — the heart
StatusDropdown of the 11 statuses; the cell auto-paints its color. Set by the producer (one act per stage move) — not formula-derived, so it never silently desyncs.
Stage #newautoStage 1..11 from Status — the sortable progress backbone.
TrellonewautoThe Trello list for the Status — the board-reconciliation handle.
OwnernewautoWhose ball it is: Crew / Pipeline / Editor / Producer / Publish.
Status SincenewautoDate Status last changed (onEdit stamps TODAY()).
Days in Stagenewauto=TODAY()−Status Since. Reddens past SLA.
StucknewautoTRUE when the ball is in flight and days exceed the owner's SLA.
3 · Pre-Production — capture & pipeline
Shot DatenewDate footage was captured into 01_Source. Anchors shoot→edit lead time.
Pipeline DonenewDate/✔ run_pipeline.py finished — footage editor-ready.
4 · Deliverable & Revision Loop
Cut VersionnewCurrent vN — the live revision counter, not buried in the filename.
Round #newProducer↔editor revision-round count (the loop made measurable).
Sent to EditornewProducer→editor handoff date. Anchors the editor SLA.
Returned by EditornewEditor→producer handoff date. Anchors the review SLA.
Video ETATarget ready date; reddens if past and not yet Published.
File nameFinal export filename. Validated (see Name OK).
Name OKnewautoRegex YTRF##_vN_*.mp4 and prefix = Code → ✅/⚠️.
Last modifiedLast-modified time of the master file.
5 · Self-Contained Gate (§3)
0 OfflinenewDoctor Analyze = 0 action (no offline media). Checkbox.
0 External LinksnewMake self-contained = 0 external refs. Checkbox.
Manifest OKnewproject_manifest.py --snapshot all present, exit 0. Checkbox.
Gate Passednewauto=AND(0 Offline, 0 Ext, Manifest). Must be TRUE to advance past the gate.
Gate DatenewDate the gate first passed — delivery audit trail.
6 · Publish & Distribution
SyncednewDate/✔ bisync SSD↔Drive (YTRF S1 current).
YouTubePublished video URL — the proof for Published.
Video linkFull master deliverable (Drive 03_Exports).
Light link_Light preview version.
Publish DatenewDate it went live.
DurationFinal runtime (mm:ss).
7 · Thumbnail & Shorts
ThumbnailFinal thumbnail link (05_Thumbnail).
Thumb ReadyWas boolean Thumbnail-Source: thumbnail final + PSD archived. Now a publish-readiness check.
Project SavedWas boolean Video-Project: latest .prproj saved in 02_Edit.
ShortsVertical-cut links (04_Shorts).
PcsCount of Shorts / derivatives.
8 · Links & Notes — launchpad
DrivenewFolder on Shared Drive YTRF (editor source pickup).
SSDnewfile:// path to the folder on disk.
Review PagenewMontage-list / QC URL on yt.rya.ae (absolute https).
Trello CardnewautoDirect card link — one-click board mirror.
Notes / BlockernewLatest decision / what's blocking. Required (red) when Status = Blocked.
⚙️ Automation & guardrails
  • Status = dropdown of 11 values — no free text, the "No Status" bucket disappears; the cell auto-paints its color.
  • Hard-gate guardrail: you can't pick 09Ready / 10Published / 11Archived until Gate Passed = TRUE. On 08Gate the row glows red until it clears.
  • Block override: Hold = TRUE forces Blocked over the stage color and requires Notes.
  • Stuck SLA: Days in Stage reddens past the owner's SLA — Editor 7d · Producer 3d · Pipeline 2d · Publish 2d; hard ceiling 14d (as in production_trello.py).
  • Name OK: a mis-named master can't reach 9 Ready.
  • Publish alarm: Published with no YouTube URL or an unpassed gate → red border.
  • Auto columns (Stage #, Trello, Owner, Days, Gate Passed, Code, Name OK) come from the hidden StatusMap tab — the single edit point for the taxonomy.
🗂 Tabs · template · migration
Tabs: Production board · Sprint · Stuck / At-risk (weekly triage) · Status legend · StatusMap & SLA (hidden helpers).
  • Template ↗ = a blank copy of this layout (validation + colors + helper tabs), on Shared Drive YTRF → _Templates. Make a copy → new project.
  • Built in a copy — all 17 original columns kept (regrouped, not deleted); old links / filters keep working.
  • Video ApprovedPublished (if a YouTube URL exists), else Ready + alarm.
  • Awaiting ApprovalReview (or Ready if the master is already in 03_Exports).
  • No Status → inferred from columns (Source but no Doc → Created; File name but no YouTube → Ready; YouTube → Published).
  • Two booleans: Thumbnail-SourceThumb Ready, Video-ProjectProject Saved.
  • Code, Cut Version, Round # — auto from the filename. After migration, reconcile with Trello (production_trello.py).

3 Сдача проекта — гейт

Перед статусами 09Ready / 10Published (§2) и перед архивом — пройти все 5 пунктов. Это статус 08Gate.

1
Сохранить проект в Premiere — ⌘S (проверка читает сохранённый .prproj)
2
Doctor → Analyze = 0 offline (нет красных клипов на таймлайне)
3
Doctor → 🧷 Make self-contained = 0 внешних ссылок (всё перецеплено внутрь проекта)
4
project_manifest.py = все файлы на месте (✅), «Проект самодостаточен»
5
Финал назван по конвенции YTRF##_vN_Название.mp4 (+ _Light) в 03_Exports

Проверка живая — вкладка Doctor в UXP-панели Premiere (анализ / релинк / make self-contained / отчёт). Офлайн без Premiere — project_manifest.py --project <DIR> --snapshot.

4 Что где лежит

💽 SSD (мастер)
Папка проекта целиком: /Volumes/<disk>/YTRF/YTRF##_…. Тут идёт работа.
☁️ Google Drive
Shared Drive YTRFYTRF S1/YTRF## — зеркало проекта. Синхрон — двусторонний bisync.
📊 Мастер-таблица
YTRF ContentList — 11 цветных статусов, ссылки, спринты, гейт §3. Колонка Source Material = имя папки. Полная схема — §2 выше.
🗂 Trello → этапы продакшена
Карточка = проект. Колонка Trello = Status один-в-один (11 списков).
01Created → 02Script → 03Shooting → 04PreEditing → 05Editing → 06Review → 07Revisions → 08Gate09Ready10Published → 11Archived
  • Blocked — красная метка-оверрайд, не колонка: карточка остаётся в своём списке, но горит (= Hold в таблице).
  • Авто-синхрон Trello ⇄ таблица: поллинг каждые 7 мин; конфликт → Trello-wins + пинг в Telegram.
🔁 Вся работа с файлами
  • Завести: create_folders.py -p → папка по канону.
  • Pipeline: run_pipeline.py → 00_Setup + транскрипция.
  • Sync SSD↔Drive: /sync (bisync) на вехах. Сверять по содержимому (имя+размер), не по путям — раскладка SSD/Drive разная.
  • Релинк офлайн: Doctor → Find & Relink local.
  • Самодостаточность: Doctor → Make self-contained (внешние ссылки → внутрь).
  • Что НЕ синкать: кэш Premiere (.cfa/.pek/.prv, Previews, Auto-Save).

5 Жизненный цикл проекта

#ЭтапStatusГде результатГейт
01Завести (create_folders)01CreatedYTRF##строка в ContentList
02Сценарий / препродакшн02ScriptDoc: сценарий, вопросы, пландо съёмки
03Снять03Shooting01_Source/Video,Audio,LUT
04PreEditing (transcribe + бриф)04PreEditing00_Setup, Transcription
05Монтаж (.prproj в 02_Edit)05Editing02_Edit/{Sound,Stock,NewAssets}сорсы только в 02_Edit
06Ревью (Doctor)06Review00_Setup/05_Review0 offline
07Правки (раунд)07Revisionsновый cut vNround loop
08Self-contained + manifest08Gate05_Review/_manifest★ ГЕЙТ §3
09Экспорт + Sync09Ready03_Exports + Drive YTRF S1имя по конвенции
10Публикация10PublishedYouTube/ + ContentListStatus = 10Published
11Архив11ArchivedDrive + manifest-снимокзафиксирован

6 Доступы / Credentials map

Отвечает на три вопроса: где токены/доступы · как писать в Google и синхронить · где Trello API. Секреты — в самих файлах, здесь только пути и ID.

✍️ Писать в Google
Sheets API v4 + Drive под rscore-токеном ~/.config/rscore/token.json (scope drive покрывает Sheets, consent не нужен), через Winston. Drive MCP — только чтение.
🔁 Синхронить
Trello ⇄ ContentList — ytrf_reconciler.py на launchd каждые 7 мин (Trello-wins + Telegram). Файлы SSD↔Drive — /sync bisync.
🗂 Trello API
Ключ+токен — ~/.config/winston-smith/trello.json (source of truth), зеркало ~/.config/rya/trello.env. Доска ytrf b/kapju2OB.
▶️ YouTube — гибрид: залив private → публикуешь сам
OAuth-клиент ~/.config/winston-smith/yt-oauth-desktop.json (GCP hubweb-437211, НЕ rscore-491616) · реестр scripts/08_youtube/channels.json · env YTAI_TOKEN_FILE задаёт токен принудительно · scopes upload+readonly+force-ssl.
fond — Старость в радость БФ ~/.config/ytai/token_fond_youtube.jsonUCDisHNgdMxrsPondMwu8pog · cat 26
burodd — Бюро Добрых Дел ~/.config/ytai/token_burodd_youtube.jsonUCiJTns9nQjPixMbxzx0BmPg · cat 22
pravmir — Открываем мир звуков · Правмир ~/.config/ytai/token_pravmir_sluh.jsonUCzd4kOoBsHFOBbDTjA3OA1Q · cat 27
technodelo — Рефлюкс Контроль (YTRF) token_technodelo_youtube.json ⚠️ ещё нетUCn5irJMzUZ5aZ5WKnjDlH6A · cat 27 · ждёт consent
roman_personal — Roman Sergeev ~/.config/winston-smith/yt-oauth-token-rs.jsonUC202ZZZJCqfv3EkhAFdazdA · READ-ONLY (аналитика)
☁️ Google Drive / Sheets
Запись Sheets v4 + Drive ~/.config/rscore/token.json[email protected] · scope drive (покрывает Sheets) · этим работают реконсилятор + правка таблиц
Чтение — Drive MCP read-only
Service-аккаунтыwinston-sa.json · gdrive-sa.json (проект hubweb-437211)
Folder map ~/.config/rscore/folder_ids.json
Shared DrivesYTRF 0ALPYdcdYxhOOUk9PVA · YTFP 0AGxmTru0d5W_Uk9PVA · RYA 0AN4ChXJtWTpdUk9PVA
ТаблицыContentList 1dHB…Dy4Cg (gid 780090520) · Template v2 1-OjQ…MfkSI
🗂 Trello
Source of truth (key+token) ~/.config/winston-smith/trello.json
Зеркало для скриптов ~/.config/rya/trello.env+ дубль ~/.config/trello/token.json
Power-Up «RYA Winston»workspace «RYA Work Space» · scope read · [email protected]
Доска YTRF b/kapju2OBid 69768934…a390 · 11 списков 1:1 · метка Blocked 69768934…a3f6
🔁 Sync / прочее
YTRF реконсилятор ~/.config/winston-smith/scripts/ytrf_reconciler.pylaunchd com.romansergeev.winston-ytrf-reconciler · 7 мин · state ytrf_sync_state.json · конфликт → Trello-wins + Telegram
Telegram (Winston bot) ~/.claude/channels/telegram-winston/.envchat 155880671
Legacy (не для залива) ~/.config/ytai/credentials.jsonproject rscore-491616 — Service unavailable на upload

🧹 Гигиена: Trello-креды лежат в 3 местах (winston-smith/trello.json · rya/trello.env · trello/token.json) — при ротации риск рассинхрона. Winston может свести к одному source-of-truth + symlink. Postgres-пайплайн идей пока не задеплоен — пути добавим при запуске.

Источник стандарта: ~/YTAI/Bots/Team/tools/project_playbook.md · инструменты: UXP Project Doctor, project_manifest.py, /sync, create_folders.py. · yt.rya.ae · обновлено 2026-06-11.
скопировано ✓