Карусели
Модуль 06-carousel — production-звено цикла: берёт payload (от оператора или от /plan-week) и голос из identity/voice.md, прогоняет через deaify + critics loop и рендерит готовую карусель (PNG-слайды + bundle). Отдельно есть builder, который заводит новые дизайн-шаблоны из картинок-референсов.
/carousel
Заголовок раздела «/carousel»Полный pipeline производства карусели: voice → черновик слайдов → deaify → HTML-превью с critics loop → PNG-рендер → bundle (caption/telegram/hashtags/approval_card).
Когда использовать. Когда у тебя уже есть готовый payload карусели — либо ты сам собрал его как оператор, либо его сгенерировал /plan-week//plan-card — и нужно получить финальные слайды и материалы для публикации.
Как вызвать:
/carousel <slug> [--mode operator|planner]<slug>— slug аккаунта (в деве всегдаmax-tors).--mode operator— payload даёт оператор вручную/в диалоге, перед bundle явный operator review.--mode planner— payload уже лежит вaccounts/<slug>/content/carousel/<slug>/payload.yaml(сгенерирован 05-planner).
Что на входе / на выходе.
Вход:
accounts/<slug>/identity/voice.md— основной источник голоса.accounts/<slug>/content/carousel/<slug>/payload.yaml— payload с полямиsource_text,viral_carousel_ref(shortcode изviral-db/carousels-parsed/),lead_magnet(обязательноstatus: ready, иначе стоп),hook,cta,planner_constraints.viral-db/carousels-parsed/— вирусные референсы.modules/04L-lead-magnet/index.yaml— библиотека лид-магнитов.- Критик-память:
semantic-critic-learnings.jsonl+visual-critic-learnings.jsonl(seed в модуле + накопленное в данных аккаунта).
Выход (accounts/<slug>/content/carousel/<date-slug>/):
slides/slide_NN.png— рендер слайдов.slides.yaml— структура слайдов (slides_v2 schema).caption.md,telegram.md,hashtags.md— тексты под платформы.approval_card.md— карточка для апрувала.manifest.json— метаданные (slug, date, platform, pillar, viral_ref, status).preview.html— галерея слайдов для быстрого просмотра.lead-magnet.md— копия контента лид-магнита.
Пример:
/carousel max-tors --mode plannerПрочитает payload.yaml из accounts/max-tors/content/carousel/max-tors/payload.yaml, прогонит voice → draft → deaify → critics → рендер PNG выбранным шаблоном, соберёт bundle в accounts/max-tors/content/carousel/<date-slug>/.
Гейты/апрувы.
- Если
lead_magnetотсутствует или егоstatus != ready— pipeline останавливается, просит планер выбрать лид-магнит из library. - В HTML-превью работает critics loop: semantic critic (вкус/смысл/голос, LLM-узел) + visual critic (цвет/overflow/hash, детерминированный) + автофикс — до чистого результата.
--mode operatorдобавляет явный operator review перед сборкой bundle.
Связанные: /plan-week (источник payload в mode planner), 04L-lead-magnet (библиотека лид-магнитов), /post, /reel, /publish.
/design-carousel
Заголовок раздела «/design-carousel»Строит новый дизайн-шаблон карусели из картинок-референсов: vision-анализ → HTML/CSS → непропускаемый гейт fidelity+operator-апрув на полной verbatim-копии референса → регистрация шаблона.
Когда использовать. Когда тебе понравился чей-то визуальный стиль карусели (скрин или ссылка на пост в Instagram) и хочешь завести его как переиспользуемый template для /carousel.
Как вызвать:
/design-carousel <name> <ref-dir | instagram-url><name>— имя нового шаблона (строчные буквы/цифры/дефис, без слешей и ведущего_); если папка с таким именем уже есть — стоп, чужой дизайн не перетираем.<ref-dir>— локальная папка с картинками (.jpg/.jpeg/.png/.webp), либо<instagram-url>— ссылка видаinstagram.com/p/..., тогда карусель скачивается автоматически черезmedia_download.py(нужна залогиненная сессия Chrome).
Что на входе / на выходе.
Вход: картинки-референсы (папка или Instagram-пост), дизайн-уроки из design-critic-learnings.jsonl (seed в модуле + накопленное по аккаунту).
Выход: новый template в <engine_root>/carousel-templates/<name>/ (живёт вне modules/, переживает апдейт движка) — template.html, components/*.html, styles.css, _meta.yaml (со status: active, brand_aware: false), examples/sample-slides.yaml, reference-frames/ с исходными картинками. После регистрации доступен в /carousel через template: <name> в slides.yaml.
Пример:
/design-carousel espresso-look ./refs/millee-carousel/Проанализирует картинки в ./refs/millee-carousel/, соберёт токен-систему (цвета/типографика/layout/signature), сгенерирует HTML/CSS-шаблон, прогонит через verbatim-рендер и критик-гейт, спросит подтверждение — и после «ок» зарегистрирует шаблон espresso-look.
Гейты/апрувы.
- STEP 4 — непропускаемый гейт на полной verbatim-копии референса: сначала agent-vision критик проверяет fidelity (узнаваемость дизайна), эстетику и (для фото-слайдов) видимость лица; при «надо чинить» — цикл правка → ре-рендер → критик снова.
- После критика — прямой вопрос оператору («ок или чинить?»); без явного «ок»
_meta.yaml: statusостаётсяdraft, регистрация (STEP 5) не происходит. - Более ~3 раундов без схождения — честный блокер, без маскировки.
Связанные: /carousel (использует зарегистрированный шаблон), 01-intelligence (источник media_download.py для скачивания референса по URL).