---
name: episode
description: "Адаптеры публикации по ТИРАМ (контент-фабрика v2, S5) — контракт §7.2 решения reality-show 1:1: взять один пост-материал и разложить его на черновики teaser(240–370, @ClawRus RU / X EN) · medium(FB RU, ссылка в 1-м комменте) · longread(4000+,… Триггеры: /episode, /adapt, «собери эпизод <тема>», «разложи пост по тирам/площадкам», «сделай тизеры и лонгрид», «adapt this post», «make an episode»"
version: 1.0.0
---

EPISODE_ADAPTER (S5 контент-фабрики v2 — контракт [[decision-content-pipeline-reality-show]] §7.2)

ЦЕЛЬ: ОДИН пост-материал → «эпизод» = по одному черновику НА (тир × площадку) из §7.2, кросс-ссылки вниз + canonical→GitHub зашиты. Draft-first: пишем черновики, НИЧЕГО не публикуем.

КОНТРАКТ §7.2 (реализован 1:1):
```
тир       длина          площадки (фаза 1)                      язык     голос/модель
teaser    240–370 (HARD) @ClawRus(RU) · X(EN)                   RU TG/EN X  авторский · Opus
medium    800–2500       FB(RU)                                 RU          авторский дневник · Opus · ССЫЛКА В 1-М КОММЕНТЕ (не в теле) + вопрос
longread  4000+ нарратив @ClawRus·VC.ru·Хабр(RU) · GitHub(EN)   RU и EN    авторский reality-show · Opus
dev-log   сухой лог      GitHub(EN, канон)                      EN          технический безличный · Sonnet-скаффолд + Opus-связность
```
- Голос Антона (`авторский`) = **ТОЛЬКО Opus**. dev-log НЕ авторский — Sonnet собирает, Opus сшивает.
- **canonical = GitHub-markdown** на каждой площадке (один источник истины для AI). Репо: `github.com/tonydzi/clawrush`.
- **НИКАКОГО copy-paste** — каждый файл = НАТИВНЫЙ рерайт под площадку. ⛔ **Рерайт = ФОРМА (длина, структура, язык площадки), НЕ смысл и НЕ острота** (Антон, голосовая 05.08.2026 hub:5155): его формулировки переносятся дословно, смягчать / «улучшать» / подшлифовывать / подправлять политкорректность / убирать резкость запрещено — «таким образом убирается эмоциональная сила этого поста». Обобщать разрешено ТОЛЬКО приватное (чужие имена, суммы, лиды, ключи), не резкость. Канон: [[voice-verbatim-no-sanitizing]], `/taste-check` P31, блок `ANTICENSOR` в `episode_adapter.py`.
- Кросс-ссылки вниз: teaser→longread; medium→longread (в 1-м комменте); longread ←teaser →dev-log; dev-log→longread + anchor на наши Deep Research.
- ⭐ **ИСТОРИЯ, НЕ ТЕЗИС** (anton 02.09.2026, голосом hub:6094; канон `reglament-vsegda-rasskazyvay-istoriyu-storytelling`, память [[storytelling-always-package-as-story]]): каждый черновик тира собирается как ИСТОРИЯ — герой (Антон/лаборатория) · реальная ситуация · что пошло не так или что открылось · вывод. Голая мысль вслух («заметил, что X») без контекста = переписать. Планка читателя — НЕ-инженер: «чтобы даже домохозяйке было интересно читать <…> like I'm five»; жаргон («упавшие рутины», «протухший Python») только через бытовую аналогию, инженеры аллегорию считают. ⛔ Не отменяет ANTICENSOR (упаковка ≠ право менять слова Антона) и §9.4 (контекст из РЕАЛЬНЫХ событий, драму не выдумываем). dev-log вне юрисдикции — он для роботов. Проверка на шаге 4: прогнать текст через `/taste-check` P34 — с 03.09 это чек-лист 10 вопросов + выбор структуры (ABT/Spine/SCQA/кольцо/in medias res), единственный источник = раздел «Чек-лист приёмки» в `$OBSIDIAN_VAULT\03-Insights\Operations\reglament-vsegda-rasskazyvay-istoriyu-storytelling.md`; черновик СОБИРАЕТСЯ по каркасу «норма → удар → ставка → ход → новая норма», а не проверяется задним числом. ⭐ Пре-тест (anton 03.09): сюжет = живой человек и его эмоции (неудачи·страдания·деньги·камбэк), не инфраструктура — «про сервер» переписывается через человека.
- ЯЗЫК РЕШАЕТ ПЛОЩАДКА (нет билингва на каждом тире).
- Нарратив S3 ([[style-reality-show]]) по тирам: teaser=cold open+клиффхэнгер; medium=полный эпизод-дуга; longread=расширенная серия+recap; dev-log=сырьё, без драмы.
- CTA co-founder (medium+longread, правило Антона, память [[cofounder-cta-public-contact]]): WhatsApp **+1 341 222 9178** = авторизованный ПУБЛИЧНЫЙ контакт (карв-аут приватности), не вырезать.
- **VC.ru + Хабр (RU GEO longread)** = фаза 1 с 2026-07-04 (style-файлы `_STYLE-vcru.md`/`_STYLE-habr.md` собраны, лежат в `content-factory\`; писатель подгружает по пойнтеру в плейсхолдере). **ФАЗА 2** (отложено): только `Reddit` (EN GEO дев-лог) — скаффолдится флагом `--with-phase2`.

ПУТИ:
- ⭐ ФАКТЫ И НЕПРЕРЫВНОСТЬ (v2, 2026-07-10) = ЕДИНЫЙ КАНОН `$OBSIDIAN_VAULT/04-Projects\show-canon\`: перед сборкой эпизода прочитать бит-опору (`beats\`) + его арки/петли — «ранее в сериале», клиффхэнгер и вопрос сезона берутся ОТТУДА (не из памяти, не из SHOW-STATE — тот заморожен). Ось `reveal` бита уважать: live_hold/spoiler_until не палить. Выбор хода = `/reality-show next`. После публикации — последствия в бит (consequences) + `canon_render.py`.
- Источник пост-материала: `$IMPORTS_ROOT/content-factory/triage/posts.md` (📝) — или тема Антона.
- Скаффолдер (детерминированный, 0 токенов): `$IMPORTS_ROOT/content-factory/episode_adapter.py`.
- Бандлы: `episodes\<slug>\` (8 .md фаза-1 / 9 с `--with-phase2` + meta.json; все поля §7.2 зашиты в плейсхолдеры).
- Стиль: [[style-reality-show]] (`08-Templates\style-reality-show.md`) + `04-Projects\personal\facebook-diary-auto\_STYLE.md` + [[style-gershuni-influence]] + золотой корпус ≤2023.

ШАГИ:
1. ВЫБОР темы: назвал Антон — её; иначе покажи 📝 из `posts.md`, возьми сильнейшую связку. `list` перед `new`.
2. СКАФФОЛД: `python episode_adapter.py new --slug <kebab> --title "<title>" --source "hub:<id>"` (+`--with-phase2` для VC.ru/Хабр/Reddit) → бандл с пустыми черновиками + meta.json.
3. НАПИСАНИЕ (модель по полю в плейсхолдере): teaser-ru/en, medium-fb (тело БЕЗ ссылки + блок «1-Й КОММЕНТАРИЙ»), longread-ru/en, devlog. Замени стабы, комментарии-подсказки оставь. Приватность жёстко (карв-аут — только WhatsApp co-founder).
4. ПРОВЕРКА (слой видимости): `python episode_adapter.py check --slug <slug>` — длины (тизер 240–370 = HARD-FAIL вне диапазона; medium/longread = WARN), наличие CTA, пустые. ТОЛЬКО FAIL=0 → шаг 5 (WARN на неполных лонгридах допустим до дописывания).
5. ⭐ УКЛАДКА В ЧАСЫ (правило Антона 04.08, supersedes «ждём „публикуем“» для обычного контента): каждый прошедший гейты черновик — `python approval_clock.py place --file episodes\<slug>\<файл>.md --tier <teaser|medium|tg-post> --channel <fb|@ClawRus|x>`. Часы стартуют от УКЛАДКИ, никого не пингуем; окно = машинная истина `approval_clock.WINDOW_HOURS_DEFAULT` (замер 23.08.2026: **0ч** — приказ Антона 05.08 «без ожидания», supersedes прежние «24ч»), то есть уложенный черновик выходит СРАЗУ. Файл, не уложенный в очередь, для конвейера не существует и не выйдет НИКОГДА. Уходит без вычитки ⇒ голос Майкрофта с раскрытием (§3.3). ⛔ Не по этому пути: Tier-2 и FAIL slop_gate — их таймаут не снимает. Затем `set-status --slug <slug> --status review` + строка в Telegram Saved (chat_id [id], account "[рабочий аккаунт]", без parse_mode): «🎬 Эпизод „<title>“ уложен в часы, дедлайн <ISO>» — это уведомление, а не запрос разрешения.
6. ЭКСПОРТ В ПУБЛИКАЦИЮ — по явному «публикуем/+» Антона (Tier-2): `python episode_adapter.py export --slug <slug>` → `drafts\episode-<slug>.md` (формат `type: content-factory-draft` + регистры `## -> TG/X/FB`). Дальше СУЩЕСТВУЮЩИЙ путь: `content_approve.py --serve` → `content_publish.py` (→ Saved; реальные каналы = Phase 2b/Tier-2). GitHub/Reddit/VC.ru/Хабр — публикуются ВРУЧНУЮ (gh/нативно), не через content_publish. Второй публикатор НЕ плодим.

ОГРАНИЧЕНИЯ:
- Часы и их границы = память `content-approval-24h-timeout` + `reglament-chelovek-ne-stop-faktor-24h-avtoapruv-kontenta` §Поправка 04.08. Сюда не дублировать.
- Руками наружу не публикуем НИЧЕГО: постит дистрибьютор из копилки, куда пост попадает по часам (шаг 5). GitHub/Reddit/VC.ru/Хабр — по-прежнему вручную.
- МОДЕЛЬ: авторский голос = ТОЛЬКО Opus; dev-log = Sonnet+Opus; скаффолд/check/export = детерминированно, 0 токенов.
- Один пост = один эпизод. Windows cp1252: скрипт сам форсит UTF-8 stdout.
- Не выдумывай факты — пиши из реального пост-материала.
- Старые бандлы (4-файловые / интерим) читаются `list/show/check/export` через meta (обратная совместимость).
