◂ Этап NotifyRYA.AENotifications · @ryaae_bot — что, когда и как присылает @ryaae_bot: статусы, вехи, видео, ссылкиэтап · 4 окт 2026
Роман 03.10.2026: «Ещё важно добавить этап уведомления от @ryaae_bot — как и что он отправляет, как статусы показывает… Видео сбрасывать, ссылки, с максимальным форматированием в телеграм». Бот один, а ролей две: собеседник — агент Claude «RYA» на Memex отвечает на сообщения Романа, и труба уведомлений — скрипты конвейера и сессии шлют через Bot API от имени бота в личный чат Романа. Здесь — кто что шлёт и когда, как сообщения выглядят в телефоне, видео и ссылки, правила формата, что умеет Telegram и что надо построить.
📌 Правило. Прогон говорит одним живым сообщением — тихая правка раз в 5 минут — и вехами: отдельные сообщения с пушем на старт, «посмотри до рендера», готово и ⛔ сбой. Формат — максимальный, но без мусора: жирный заголовок «проект · что случилось», 3–6 коротких строк, эмодзи — маркеры разделов, ссылка с названием и превью, видео — файлом с названием; моноширинный — только команде, которую копируют. Время — из date.
Одним взглядом
≈285
сообщений бота за 5 дней — одной лентой
28.09–03.10 · все проекты в одном чате, тем нет
300с
живой статус правится раз в 5 минут
одно сообщение на прогон · вехи — отдельно
50МБ
потолок бота; больше — в «Избранное»
лёгкая копия 48 МБ · Telethon до 2 ГБ
9раз
Роман просил форматирование с 15.09
03.10: «с максимальным форматированием»
1Схема2По ходу3Отправители4Сегодня5Как надо6Правила7Видео8Возможности9Проверки10Построить11Знания12Грабли13Команды14Где лежит

23.1 · 1Схема: кто шлёт, что и куда

🟢 Живой статус
status.jsonJob.status: этап, строка, готово
→
tg_status.py · sc_status.pyраз в 300 с, если текст изменился
→
Одно сообщениепервое тихо, дальше editMessageText
→
Роман видит ходбез пуша — правка не звонит
📍 Вехи и сбои
Job.tg · Project.tgcut.py, solo.py, fetch.py, dc.py
+
Сессия руками«посмотри до рендера», ссылки, итог
→
tg.py textHTML; тихо — по выбору
→
Новое сообщениепуш на каждое событие
🎬 Видео
deliver.py tg · sc_deliver.py pilotкопия ≤ 48 МБ: 1080p или 720p
→
tg.py video · curlчат бота, до 50 МБ
+
shorts.py telegramTelethon, до 2 ГБ
→
Чат бота · «Избранное»два чата на один выпуск
🗓 График
scheduled_publish.pylaunchd, раз в 5 мин
+
pending.pylaunchd, раз в 2 ч
→
tg.py text --parse noneпростой текст, превью youtu.be
→
✅ вышел · ⛔ нет⛔ сразу, потом раз в час
💬 Собеседник
Роман пишет ботуличный чат, больше никого
→
RYA на MemexClaude в tmux rya, плагин telegram
→
Ответ в чаткороткий рапорт, ETA, риски
машиначеловек решает или смотритагент Claudeитог дорожки

Бот один — @ryaae_bot. Труба уведомлений идёт мимо собеседника: скрипты шлют напрямую через Bot API, и RYA не видит их как свои реплики. Пишет бот только в личный чат Романа — групп и тем нет, все проекты одной лентой. Собеседник живёт на Memex (launchd rya-start, rya-health, rya-inbound-watchdog); на MacBook те же задания выключены с 05.08.

23.1 · 2Что приходит по ходу фильма

1
Story: лист и вопросыагентстраница листа файлом или ссылкой, вопросы списком⇒ ответ Романа в чат
2
Color: доска цветаагентHTML или фото; «Скопировать выбор» → в чат⇒ выбор по сценам
3
Screens: страница до рендераагентссылкой или файлом, вопросы с умолчанием✓ ответ или «беру default»
4
Cut: живой статус и вехимашинаtg_status.py · sc_status.py раз в 300 с; старт рендера, ⛔ сбой
5
Cut: пилот 720pмашинаsc_deliver.py pilot — первые части, до 48 МБ, тихо
6
Review: копия 1080p и страница версииагентdeliver.py tg, до 48 МБ; ссылка с превью✓ «ок» или правки
7
Shorts: файлы → графикмашинаshorts.py telegram в «Избранное»; после «ок» — ✅ / ⛔ выхода⇒ ролик вышел по графику
↺ новая версия — снова живой статус, вехи и копия
машинаагент

m — машина сама · a — сессия Claude по правилу трека. Ночью сессия шлёт вехи и проблемы примерно раз в полчаса (YTEVO02 v4, 02.10: девять вех с 02:39 до 06:18).

23.1 · 3Кто шлёт: все отправители

Кто шлётЭтапЧтоФорматКогда
tg_status.py (headless)Cutодно живое: Этап · Идёт · Готово · Скачивание · Части · Дальше · ЖдуHTML; первое тихо, дальше правкараз в 300 с
sc_status.py (story_cut)Cutодно живое: Сейчас · Картинка X из Y · Графика · Очередь рендера · Последнее · ДальшеHTML; первое тихо, дальше правкараз в 300 с
Job.tg · Job.tg_file (common.py)Cutстарт рендера (тихо), ⛔ сбой до 700 знаков, «оригиналы скачаны, md5 совпали»; файлы до 50 МБHTML, без превьюпо событиям
dc.py · Project.tg (doc_cut)Cutв очереди · ⛔ остановка на шаге · собран и итог приёмки · каждые 4 частиtg.py без флагов: HTML, превью включенопо событиям
deliver.py tgCut · выдачасам не шлёт: копия под бота, 1080p или 720p, до 48 МБ—1 на версию
sc_deliver.py pilot --sendCut · пилотвидео 720p первых частей, до 48 МБcurl sendVideo, тихо, без разметки1 на версию
shorts.py telegram → tg_send.pyShortsвидео 1080×1920 с обложкой; подпись — название, статус выхода, пометкаTelethon в «Избранное», HTML1 на шортс
tg_forward.py · tg_review.py (в проекте)Shorts · сдачаподводка «Шортс N · цитата» + видео без подписи; варианты и доска цветаTelethon в «Избранное»по запросу
pending.py (launchd, раз в 2 ч)Shorts · доливка✅ новая версия залита и в графике · ℹ️ лимит заливок не освободилсяпростой текстпо исходу
scheduled_publish.py (launchd, раз в 5 мин)Shorts · график✅ Опубликован шортс + ссылка · ⛔ не вышел + ошибка и журналпростой текст, превью youtu.beпо событию
сессии Claude Code (tg.py руками)все этапыстарт, вехи, «посмотри до рендера», ссылки, видео, итог ночичаще HTML; без превью — примерно третьночью ~ раз в 15–30 мин
цепочки проекта (hooks.sh, render_v*.sh, tg_live.py)одноразовые«сбой — шаг, журнал»; своё живое сообщение ночной сборкиHTML, правкапо событиям
review.py · watchdog · phone_brief (ревью ката)трек Premiere▶ ✅ ⚠️ 🛑 ☁️ ⏳ 🏁 по стадиям; бриф — файломHTML, urllib, 3 попыткипо стадиям
render_queue.py · autocut · 11_sync—ничего не шлют: статусы автосборки слала сессия руками——

Проверено чтением кода и журналов сессий 26.09–03.10 (201 команда с Telegram). Смежные отправители того же бота — ночные оркестраторы, прокси-ферма, ингест дня, дневной отчёт канала — шлют короткие строки, кто HTML, кто простым текстом.

23.1 · 4Как сообщения выглядят сегодня

Настоящие сообщения из журналов сессий и кода: тексты дословно, адреса файлов на Drive скрыты.

RRYAбот · @ryaae_bot
tg_status.py · живое сообщениесегодня
YTCH12 · статус · 17:34
Этап: 5 · полный рендер 4K
Идёт: части: 41 из 42 · дальше склейка и приёмка
Готово: 5 из 6
изменено 17:34
Одно сообщение на прогон: первое — тихо, дальше правка раз в 300 с, если текст изменился. Правка не звонит.
сессия YTLAB01 · показ до рендерасегодня
YTLAB01 · версия 3 — посмотри до рендера

Правки по первой версии разобраны, фильм пока не рендерил. Ниже файлом — страница: доска цвета, кадры нового стиля, все 125 экранов. Следом — пробный кусок на 40 секунд.

Нужны два ответа:
1. Цвет — «новый» или …
11:41
Следом — страница файлом и видео 40 с; подпись видео через 17 с поправлена правкой (editMessageCaption).
сессия YTCG37 · видеосегодня
4:42 · 43,6 МБ▶1080p · deliver.py tg
YTCG37 v6 — лёгкая копия 1080p. Кейт в окне ближе (×1,22), на стыках дублей в окне ×1,45; остальное как в v5. Приёмка чистая: 7056 кадров, −14 LUFS, речь 951 из 951 слова, синхрон 4 мс. 4K и 1080p — в 03_Exports.
🔕 13:41
Первая попытка не вернула ответа, вторая упала «The write operation timed out» — ушло с третьей.
scheduled_publish.py · графиксегодня
✅ Опубликован шортс: Мама на кухне. Что чувствует ребёнок, который её не слышит
https://youtu.be/…
YouTubeМама на кухне. Что чувствует ребёнок, который её не слышит
16:01
Простой текст без разметки; превью youtu.be включено — карточка ролика в чате.
★Избранноеаккаунт Романа · Telethon
shorts.py telegram · YTFP01 S06сегодня
0:30 · 54,7 МБ▶1080×1920
Понимал только «нет», и то по лицу. А потом услышал, как едет лифт
не залит
вторая партия, v1 — на согласование, на YouTube не залито
03:20
Больше 50 МБ — не ботом, а Telethon от аккаунта Романа: 54,7 МБ за 12 с. «Избранное» без пуша — сдача тихая.
сессия YTCG37 · версия готовасегодня
YTCG37 «Setup UAE Company Remotely» · v1 готов

4K, 4:42, 1,46 ГБ — открыт всем по ссылке:
https://drive.google.com/file/d/…/view

1080p, 145 МБ:
https://drive.google.com/file/d/…/view
18:24
Это сообщение — в чате бота (здесь — для сравнения форм): фильм больше 50 МБ уходит ссылкой на Drive, а не файлом.

Шесть настоящих сообщений 02–03.10.2026. Видео и картинки здесь — плашки: кадров фильмов и шортсов на странице нет.

23.1 · 5Как надо: максимум формата без мусора

Образцы формата по правилам Романа — то, к чему ведут «надо построить»: числа взяты из настоящих случаев, закреп, кнопки-ссылки и повтор отправки пока не сделаны.

RRYAбот · @ryaae_bot
живой статус · закреплённадо построить
YTCH12 · v8 · рендер 4K · 17:34
▰▰▰▰▰▰▰▰▰▱ 41 из 42 частей
⏭ дальше: склейка и приёмка
📌 изменено 17:34
Закреп в личке без уведомления о закрепе; поля чистит сам статус — «готово» и «жду вмешательства» вместе не бывают.
веха · фильм собраннадо построить
🎬 YTCG37 · v6 собран
✅ Приёмка чистая: 7056 кадров · −14 LUFS · речь 951 из 951
📦 4K и 1080p — в 03_Exports
👀 Жду «ок» или правки на странице версии
yt.rya.aeYTCG37 · v6 — страница версиикадры, экраны, транскрипт, «ок / править»
13:41
🔗 Страница версии📁 Папка на Drive
Кнопки-ссылки работают без обработчика; «ок / править» кнопкой — только с обработчиком нажатий у RYA.
RRYAбот · @ryaae_bot
сбой с контекстомнадо построить
⚠️ YTCG37 · видео не ушло с первого раза
Отправка 43,6 МБ: write operation timed out
🔁 Повтор 2 из 3 через минуту
Не пройдёт — пришлю ссылкой на Drive
13:33
Тяжесть — значком: ⛔ стоп · ⚠️ иду дальше · 🔁 повторяю; дальше шаг, журнал и что делаю. Свой технический промах — не «сбой».
итог версии · три строкинадо построить
🏁 YTCH14 · v3 · итог
✅ Приёмка кодом прошла · 12 листов кадров просмотрены
📊 29 экранов · 4 QR считываются с готового файла
➡️ Жду «ок» по v4
14:42
Заголовок — проект · версия · что случилось; дальше 3 строки с эмодзи-маркерами; курсивом — чего жду от Романа.
Мусор → формат
былостена тегов или голый текст
  • моноширинный на каждом пути и имени файла
  • ссылка голым адресом, превью выключено
  • «сбой» без шага, журнала и тяжести
  • финал «готово» только правкой живого — без пуша
как надоформат для телефона
  • жирный заголовок: проект · что случилось
  • 3–6 коротких строк, эмодзи — маркеры разделов
  • ссылка с названием и превью; видео — файлом с названием
  • моноширинный — только команде, которую копируют

23.1 · 6Правила Романа по датам

17.05
«Тяжело читать такой текст»про стену жирного и моноширинного на путях: мусор, а не формат
09.08
Статус обновлять, а не множить«обновлять статусы, делать актуальным, чтобы понимать скорость»
15.09
Одно сообщение, с форматированием«должно умещаться в одно сообщение и быть с форматированием»
20.09
Хэндоффы — не в Telegram«всегда так делай хэндоффы (в чат, в телеграм не надо)»
26.09
Статус каждые 5 минут3–5 строк: сколько готово из скольких, что идёт, что дальше
29.09
Ссылки с названием, видео файлом«видео отправь с названием файла»; «почему нет такого превью?»
02.10
На YouTube — после «ок»«не надо заливать до согласования» — черновики файлами
03.10
Максимум форматирования«видео сбрасывать, ссылки, с максимальным форматированием»

Старое «обычный текст по умолчанию» (17.05) устарело: Роман просил не голый текст, а убрать мусор. С 15.09 — девять просьб о форматировании. Персона бота на Memex велит ставить моноширинный на пути — расходится с правилом 29.09 «имя файла обычным текстом».

23.1 · 7Видео и файлы: куда и как

1Ботом — до 50 МБесть сегодня
  • deliver.py tg: двухпроходный x264 под --mb 48; 1080p, если видео остаётся ≥ ~1,15 Мбит/с, иначе 720p
  • отправка: tg.py video rya $CHAT файл.mp4 «подпись» --width 1920 --height 1080 --duration N
  • 43,6 МБ упало «The write operation timed out» — ушло с третьей попытки (YTCG37 v6, 03.10): у tg.py нет повторов
2Пилот 720p до полного рендераесть сегодня
  • sc_deliver.py pilot <проект> --send: склейка первых частей (p0001–p0003) → 720p до 48 МБ → бот, тихо
  • шлёт curl с таймаутом 1500 с: tg.call падал «write operation timed out» на аплинке 160 КБ/с (02.10, YTCR04)
3Больше 50 МБ — Telethon в «Избранное»есть сегодня
  • shorts.py telegram → tg_send.py: до 2 ГБ, части по 512 КБ в 8 потоков ≈ 4 МБ/с
  • 03.10: шортсы S06–S10 по 54,7–79,9 МБ за 12–26 с; Telethon есть только в Homebrew python3
  • «Избранное» без пуша; сеанс общий для сессий — «database is locked» → повтор
4Документы, фото, ссылкиесть сегодня
  • страницы HTML — файлом (бриф до 1 МБ, страницы до 6 МБ); доски цвета и листы кадров — фото
  • подпись к файлу — до 1024 знаков, текст — до 4096
  • фильм больше 50 МБ — ссылкой на Drive или страницу версии, с превью
Сколько уходит одним файлом
Бот — потолок загрузкиBot API, multipart50 МБ
Лёгкая копия фильмаdeliver.py tg · sc_deliver.py pilot48 МБ
Шортс 1080×1920, YTFP01в бота не лезет → Telethon55–80 МБ
Telethon в «Избранное»полоса обрезана: в 40 раз больше ботадо 2 000 МБ

23.1 · 8Что умеет Telegram и что из этого используем

Сверено с документацией Bot API 10.3 (24.08.2026) 03.10.2026; «у нас» — поиск по коду ~/YTAI/scripts.

ВозможностьВ APIУ нас
HTML: жирный, курсив, ссылка, цитата, спойлер✓✓
Живая правка сообщения (editMessageText)✓✓
Превью ссылки (link_preview_options)✓!
Видео файлом: обложка, потоковое✓!
Файл больше 50 МБ!!
Кнопки-ссылки (url)✓✗
Кнопки «ок / править» (callback)✓✗
Закреп живого статуса✓✗
Альбом 2–10 видео и фото✓✗
Темы на проект в личке с ботом✓✗
Rich-сообщение: таблица, заголовки✓!
Реакция бота на сообщение✓✗
✓есть!частично✗нет

Частично: превью выключено примерно в трети сообщений сессий; обложку видео выбирает Telegram (у tg.py нет thumbnail и cover); больше 50 МБ — не ботом, а Telethon (свой сервер Bot API дал бы до 2000 МБ); rich — один ручной тест 02.10. reply_markup, pinChatMessage, sendMediaGroup, message_thread_id, setMessageReaction в коде конвейера — 0 вхождений.

23.1 · 9Проверки сообщения

ПроверкаНормаЧемОткуда взялась
Теги — с parse_mode htmlесть жирный или ссылка — всегда html, иначе теги уйдут буквамиtg.py text (html по умолчанию)17.05: теги ушли сырым текстом
Длинатекст до 4096 знаков, подпись к видео и файлу до 1024Bot APIлимиты Telegram
Время в статусетолько из date, не досчитыватьсессия29.09: «у тебя внутренние часы сломаны?»
Вехи — отдельно от живогофинал, сбой, «посмотри» — новым сообщением: правка пуша не даётJob.tg · tg.py textперсона RYA: «отдельное сообщение, не edit»
Видео — файлом с названиемдо 48 МБ ботом, больше — Telethon в «Избранное»deliver.py tg · tg_send.py29.09: «видео отправь с названием файла»
Ссылка — с названием и превьюназвание жирным, ссылка с карточкой; имя файла простым текстомtg.py text без --no-preview29.09: «почему нет такого превью?»
Сбой — с шагом и журналомчто упало, на каком шаге, что делаю дальше, журналdc.py · обёртки цепочекYTLAB01: «сбой» 15:46 был своей проверкой вёрстки
На YouTube — после «ок»черновики шортсов — файлами в Telegram и в 04_Shortsshorts.py telegram02.10: «не надо заливать до согласования»
Секреты и хэндоффы — не в Telegramни токенов, ни ключей; хэндофф — в чат сессииперсона RYA · память20.09: «в телеграм не надо»

23.1 · 10Надо построить

1Один модуль отправкинадо построить
  • один транспорт вместо tg.py, urllib и curl; HTML всегда; повторы с паузой; учёт в bots.outbox
  • link_preview_options вместо устаревшего disable_web_page_preview — он стоит в 8 скриптах
2Видео без обрывовнадо построить
  • таймаут по размеру и повторы; обложка (cover) с кадра, где уже стоит графика
  • больше 50 МБ — сразу Telethon или свой сервер Bot API (до 2000 МБ)
3Честный живой статуснадо построить
  • чистить устаревшие поля: у YTCG37 в одном сообщении «Этап: готово» и «Жду: нужно вмешательство»
  • закрепить живое сообщение; финал — отдельной вехой с пушем
4Сбой с тяжестьюнадо построить
  • ⛔ стоп · ⚠️ иду дальше · 🔁 повторяю; шаг, журнал, что дальше
  • свой технический промах — не «сбой»: сначала разобраться, потом одно сообщение
5Темы на проектнадо построить
  • темы в личке с ботом (Bot API 9.3–9.4): YTCG37 отдельно от YTLAB01
  • сегодня ≈285 сообщений за 5 дней — одной лентой
6Кнопкинадо построить
  • ссылки — страница версии, папка на Drive — работают без обработчика
  • «ок / править» прямо в Telegram — нужен обработчик нажатий у RYA
7Решает Роман
  • темы на проект или одна лента
  • шортсы — в «Избранное» (тихо, до 2 ГБ) или в чат бота (с пушем, до 50 МБ)
  • «ок» кнопкой в Telegram или ответом на странице версии

23.1 · 11Что обновляет базу знаний

ФайлЧто хранитКто пишет
задание проекта · ключ telegramбот и чат — куда слать вехи и статуссессия при создании задания
00_Setup/08_Cut/status.json · tg_status_msg.jsonэтап, идёт, готово; id живого сообщенияJob.status; tg_status.py, sc_status.py
~/.config/ytai/publish_schedule.json · shorts_pending.jsonграфик выхода и очередь доливкиshorts.py schedule · pending.py
~/Library/Logs/ytai_publish_schedule.log · ytai_shorts_pending.logчто вышло, что нет и почемусторожа launchd
TELEGRAM_UI.md (стандарт флота, 11.08.2026)уровни формата, rich, кнопки, опросыфлот ботов
память feedback_telegram_plain_textправила Романа о формате с датамисессия в день просьбы
эта страницакто что шлёт, образцы, проверки, что построитьсессия, нашедшая новый отправитель или ошибку

23.1 · 12Ошибки и грабли

Правка не даёт пуша«готово» в живом сообщении Роман не услышит — финал и сбой отдельным сообщениемtg_status.py · персона RYA
«message is not modified»правка тем же текстом — ошибка API; скрипты сравнивают с прошлым текстомBot API
Видео 43,6 МБ: write operation timed outу tg.py таймаут 180 с и нет повторов — ушло с третьей попытки; sc_deliver шлёт curl на 1500 сYTCG37 v6, 03.10
--preview-large без url не работаетprefer_large_media игнорируется, если в link_preview_options не задан urlBot API · tg.py
disable_web_page_preview устарелзаменён link_preview_options в Bot API 7.0 (29.12.2023), а стоит в 8 скриптахпоиск по коду 03.10
Telethon: database is lockedсеанс общий для сессий — повтор, 12 попыток по 15 сtg_send.py · tg_review.py
Живой статус врёт полямиJob.status сливает ключи и не чистит «жду» и «дальше»: у YTCG37 «готово» и «нужно вмешательство» разомstatus.json YTCG37
Кнопки callback молчату RYA нет обработчика нажатий — плагин отвечает пустым ответомTELEGRAM_UI.md
Два чата на один выпусклёгкие копии — в чате бота, шортсы и большие файлы — в «Избранном» без пушаdeliver.py · tg_send.py

23.1 · 13Команды

Отправить: текст, видео, правка
TG=~/bin/tg.py; CHAT=<личный чат Романа из ключа telegram задания>

python3 $TG text rya $CHAT "<b>YTCG37 · v6 собран</b>
Приёмка чистая…" --parse html  # веха: жирный заголовок, ссылка с превью
python3 $TG text rya $CHAT "…" --silent  # тихо — для промежуточного
python3 $TG video rya $CHAT small.mp4 "подпись" --width 1920 --height 1080 --duration 282  # видео до 50 МБ
python3 $TG raw rya editMessageText '{"chat_id": …, "message_id": …, "text": "…", "parse_mode": "HTML"}'  # правка; подпись видео — editMessageCaption

Есть теги — всегда --parse html. Без --no-preview ссылка получает карточку.

Живой статус прогона
nohup python3 ~/YTAI/scripts/05_editing/0510_headless_cut/tg_status.py --job $J --every 300 &  # headless: одно сообщение, правка раз в 5 мин
nohup python3 ~/YTAI/scripts/05_editing/0511_story_cut/sc_status.py $P --every 300 &  # story_cut: части, графика, очередь рендера
touch $P/00_Setup/08_Cut/STOP_STATUS  # остановить; иначе — finished в status.json или через сутки
Видео и шортсы
$V ~/YTAI/scripts/05_editing/0510_headless_cut/deliver.py tg --job $J --file film.mp4 --out small.mp4 --mb 48  # копия под бота
$V ~/YTAI/scripts/05_editing/0511_story_cut/sc_deliver.py pilot $P --send  # пилот 720p первых частей
$V ~/YTAI/scripts/07_shorts/0701_finished/shorts.py telegram --job $JOB --only S06,S07 --note "…"  # шортсы в «Избранное» (Telethon)
График выхода
launchctl list | grep -E 'ytai-publish-schedule|ytai-shorts-pending'  # сторожа: раз в 5 мин и раз в 2 ч
tail -20 ~/Library/Logs/ytai_publish_schedule.log  # что вышло и что нет

23.1 · 14Где лежит

Отправка
~/bin/tg.pyобщий клиент флота: text, rich, poll, react, photo, video, raw
~/.local/share/rscore-standards/TELEGRAM_UI.mdстандарт флота: уровни формата, отчёт rich, кнопки, опросы
Живой статус и вехи
~/YTAI/scripts/05_editing/0510_headless_cut/tg_status.py · common.pyживое сообщение; Job.tg и Job.tg_file
~/YTAI/scripts/05_editing/0511_story_cut/sc_status.py · sc_deliver.pyживое story_cut; пилот 720p
~/YTAI/scripts/05_editing/0511_doc_cut/dc.pyProject.tg — вехи doc_cut
Видео и шортсы
~/YTAI/scripts/05_editing/0510_headless_cut/deliver.pytg — копия до 48 МБ
~/YTAI/scripts/07_shorts/0701_finished/tg_send.py · shorts.py · pending.pyTelethon в «Избранное»; доливка после лимита
График выхода
~/YTAI/scripts/08_youtube/scheduled_publish.py · ~/.config/ytai/publish_schedule.jsonсвой график: публикация и ✅ / ⛔
Бот
Memex: tmux rya · launchd rya-start, rya-health, rya-inbound-watchdogсобеседник RYA; персона ~/RYA/CLAUDE.md
Память
~/.claude/projects/-Users-romansergeev-YTAI/memory/ — feedback_telegram_plain_text · feedback_status_every_10_min · reference_tg_send_documentправила формата, статусов и отправки файлов

Токен бота — в файлах окружения на маке и на Memex, не в git и не в KB.

Уведомления · сверено 04.10.2026 по коду отправителей и документации Bot API 10.3; факты собраны 03.10 только чтением · примеры: YTCH12 (живой статус), YTCG37 (видео 1080p, сбой отправки), YTLAB01 (показ до рендера), YTFP01 (шортсы в «Избранное», график выхода)