episode · v1.0.0 · 2026-09-24 · sha256 141c42c462481b02
episode v1.0.0A
Immutable. This exact content never changes and is served at /api/v1/blob/141c42c462481b02.
--- 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 (обратная совместимость).