Обзор системы
Зачем построено, какие проблемы решает, как эволюционировало. Контекст без которого дальнейшие страницы будут читаться как набор разрозненных скиллов.
Бизнес-контекст
Performante — это маркетинговое агентство в Казахстане, ведёт Meta-таргет для клиник (стоматология, дерматология, физиотерапия), медтехники B2B (Apparatus.kz), фитнес-студий, ресторанов. Все проекты в Казахстане, основной язык — русский, иногда казахский.
Типичный клиент требует 10-30 креативов в месяц:
- 5-10 видео-объявлений (Reels / Stories, 9-30 сек)
- 10-15 статических постеров (4:5 для Feed, 9:16 для Stories)
- 2-3 карусели (5-10 слайдов каждая)
- 1-2 длинных explainer-видео (тутор / кейс-стади, 2-5 мин)
Делать это руками = команда из 3 человек на одного клиента (копирайтер + дизайнер + видеомонтажёр). При 5+ клиентах это не масштабируется. Эта система — попытка автоматизировать 80% работы.
Эволюция (как мы сюда пришли)
v1 (April 2025) — Veo-only
Начали с Google Veo 3.1 для генерации clip-library. Идея: бриф → Claude генерит Veo-промпты → Veo рендерит клипы → ручной монтаж в DaVinci. Проблема: Veo дорогой ($0.50/клип), генерит белиберду в кадре (текст, интерфейсы), много мусора в библиотеке.
v2 (Май 2025) — Director + ElevenLabs
Добавили video-director (FFmpeg-монтаж по cue-list) и video-voiceover (ElevenLabs TTS). Цепочка стала: copywriter → voiceover → director подбирает клипы под длительность озвучки → captions. Сложилась asset pipeline: shared clip library, voice pool, music pool — общие через junction-таблицы.
v3 (Сентябрь 2025) — Multi-project
Пришли несколько клиентов одновременно. Перестроились на multi-project: один ~/video-projects/<slug>/ на клиента, одна shared SQLite со scoping через junction-таблицы. Schema v6.
v4 (Ноябрь 2025) — Screencast и Talking-Head
Некоторые клиенты захотели сниматься сами (Screen Studio / Loom / телефон). Добавили video-screencast: автоматическая нарезка дублей + чистка голоса + 9:16 padding. Это альтернативный трек к Veo-pipeline.
v5 (Декабрь 2025) — Static creative track
Меta активно крутит и видео и статику. Добавили creative-poster для статичных постеров через Gemini 3 Pro Image (nano-banana-pro). Затем creative-orchestrator и creative-carousel для каруселей. Schema v7 → v8 (добавили creative_posters, creative_performance, competitor_refs.info_score).
v6 (Май 2026) — Explainer-video и GR-1
Карусель v1 была через Gemini Image — оказалось плохо (₸→Т, дубль-кнопки, softbox в кадре). Переписали на Remotion. По той же логике сделали creative-explainer-video для длинных тутор-видео. Ввели Global Rule 1 (GR-1): каждый артефакт должен генерить HTML-preview с payload-сайдбаром.
Архитектурные принципы
1. Skill = standalone CLI + SKILL.md
Каждый скилл это папка в ~/.claude/skills/<name>/:
~/.claude/skills/video-director/
├── SKILL.md # описание + триггеры
└── scripts/
├── assemble.py # standalone CLI: python3 assemble.py --plan plan.json --output out.mp4
├── db.py # CRUD для clips/videos в shared DB
├── overlay_music.py
└── schema.py # копия общей schema
Скрипты можно вызывать руками без Claude. Claude находит скилл через MANDATORY TRIGGERS в YAML-frontmatter SKILL.md.
2. Multi-project через junction tables
Ресурс (клип, голос, музыка, текст) — глобальный в shared SQLite. Принадлежность к проекту — через junction-таблицу:
clips (id, path, description, duration, ...) # ← глобальные project_clips (project_id, clip_id) # ← связка projects (id, slug, name, niche) # ← регистрация
Один клип может принадлежать нескольким проектам (полезно для evergreen-материалов). Каждый запрос в БД фильтруется через junction.
3. Auto-resolve проекта из user-команды
Когда юзер пишет «сделай 3 ролика для basdent» — video-orchestrator ищет проект:
- В команде есть явный slug? («basdent» →
~/video-projects/basdent/) - В команде есть путь? (
~/video-projects/X/) - Залогирован текущий проект в state? (
~/.claude/state/current-project.json) - Спросить юзера: «какой из проектов:
basdent,apparatus,sweepstake?»
4. Brand-injection auto
~/video-projects/<slug>/brand.yaml читается автоматически всеми creative-* скиллами. Содержит colors / fonts / voice-tone / forbidden-words / referenes-list. Эти данные инжектятся в Gemini-prompt без явного указания.
5. Cross-model fallback
Gemini-3-Pro-Image иногда выдаёт 429/503. creative-poster/gen.py сам падает на nano-banana-pro, потом на gemini-3.1-flash-image, потом на gemini-2.5-flash-image. Юзер видит только финальный результат.
6. GR-1: каждый артефакт = HTML preview
Постер / карусель / explainer не считается «готовым» пока не сгенерирован preview.html с payload-сайдбаром. В сайдбаре: model used, references (thumbnails), brand context, текст промпта, стоимость. Это для агентского ревью — клиент / партнёр должен видеть как сделан креатив, а не только сам креатив.
Два параллельных трека production
brief.md → video-copywriter → video-voiceover → video-clipgen (Veo) | video-clipgen-higgsfield → video-analyzer
↓
video-director (assemble) → video-captions → video-reviewer → .mp4
brief.md + brand.yaml → creative-poster (gen) → qa_review → multi_aspect → .png
creative-carousel (plan + render) → ZIP + PDF
creative-explainer-video (plan + vo + render) → .mp4
Оба трека пишут в одну shared SQLite (~/video-projects/director.db) и используют один brand.yaml на проект. Видео-объявление и постер для одного клиента физически делаются разными цепочками, но обе цепочки знают про бренд.
Стоимость per-piece
| Формат | Pipeline | Cost / piece | Speed (wall-clock) |
|---|---|---|---|
| Видео (voiceover) 15-30s | copywriter → voiceover → director → captions | $5-15 (Veo) · $0.5-3 (Higgsfield) | 5-10 мин |
| Hook-клип Higgsfield 5s | video-clipgen-higgsfield (DoP turbo) | $0.40 | 1-2 мин |
| Premium product orbit shot | video-clipgen-higgsfield (DoP preview) | $0.56 | 2-3 мин |
| Soul-ID character series (1 train + 5 клипов) | video-clipgen-higgsfield (Soul-ID + DoP turbo × 5) | ~$5 | ~15 мин |
| Видео (textover) 15s | copywriter → director → remotion overlay | $1-3 | 3-5 мин |
| Постер 4:5 | creative-poster (Gemini Image) | $0.04 | 30-60 сек |
| Постер 6 variants × 2 aspects + QA | creative-orchestrator run | ~$0.78 | 5-8 мин |
| Карусель 7 слайдов | creative-carousel (Remotion) | $0 (rendering) + $0.0001 (plan) | 1-2 мин |
| Explainer-видео 3 мин | creative-explainer-video | ~$0.55 (VO) + $0 (render) | 5-7 мин |
Что НЕ входит в систему
- Запуск рекламы в Meta Ads Manager — креативы делаются, загружаются вручную или через отдельный
creative-orchestrator perf-importскрипт - Аналитика performance — есть только импорт через FB Graph API в таблицу
creative_performance. Дашбордов и отчётов нет - Web-интерфейс — всё через CLI / Claude Code, дашбордов нет
- Real-time стриминг / live-видео — только pre-recorded production
- Коммуникация с клиентом — Telegram / Trello отдельно (есть
trello-*скиллы для трекинга задач)
Дальше
- Multi-project архитектура — как организован
~/video-projects/, что вproject.yaml - База данных — schema v8, junction-таблицы, типичные запросы
- 7 пайплайнов — пошаговые flow для каждого типа выхода
- Onboarding-чеклист — что установить, env-vars, первый проект