# Marketing Strategist

> Marketing Strategist — оркестратор подготовки кампаний

- Skill: `ai-hub-open/marketing-strategist` (Agent Skill, multi-file: 5 files)
- Install (CLI): `npx skillmds@latest add ai-hub-open/marketing-strategist`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ai-hub-open/marketing-strategist/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Marketing & Growth
- Author: ai-hub-open (https://skillmd.com/u/ai-hub-open)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/ai-hub-open/marketing-strategist

---


# Marketing Strategist — оркестратор подготовки кампаний

Скилл готовит **стратегическую часть** перед запуском рекламы — то, что одинаково для любой площадки: бриф, отрасль, конкуренты, гипотезы, персоны, УТП. Поверх — три уникальных шага стратега: выбор каналов с обоснованием, распределение бюджета по фазам и KPI-фреймворк для мониторинга. На выходе — отчёт, который маркетолог отдаёт медиабайеру.

**Этот скилл — оркестратор.** Он не создаёт объявления, не льёт бюджет, не дёргает рекламные API напрямую. Его задача — за 1-2 сессии собрать общий контекст, решить, *куда* идти, и по явному «ОК» человека передать готовые артефакты в площадочные скиллы. Площадочные скиллы (yandex-direct-funnel, vk-ads-launcher, и т.п.) берут готовые артефакты как вход и доделывают свою специфику.

## Архитектура: оркестратор + субагенты

Оркестратор работает в **основном контексте** и держит общую картину: `_state.json`, гейты подтверждения, сводки. **Тяжёлые исследовательские шаги вынесены в изолированные субагенты** (`context: fork`), чтобы сырьё (полные тексты сайтов конкурентов, выдача WebSearch) не засоряло основной контекст и не вытесняло ранние решения к моменту выбора каналов.

| Что | Где исполняется | Почему |
|---|---|---|
| Шаги 0–3 (подготовка, бриф, стратегия) | **Инлайн** в оркестраторе | Это решения, а не сбор данных |
| Шаг 4 — отрасль | **Субагент** `/industry-research` | Тяжёлый WebSearch, нужна только сводка |
| Шаг 5 — конкуренты | **Субагент** `/competitor-research` | WebFetch на 5 сайтов — самый «грязный» по контексту |
| Шаги 6–11 (гипотезы, персоны, УТП, каналы, бюджет, KPI) | **Инлайн** в оркестраторе | Решения и выбор человека |
| Шаг 12 — handoff в площадки | **Субагент** по явному «ОК» | Побочные эффекты (трата бюджета) |

**Принцип возврата:** субагент работает в своём контексте, складывает артефакты в папку кампании и возвращает наверх **только компактную сводку (≤20 строк)**. Гейт «✋ Подтверди» и решение остаются у человека в основном контексте.

**Если субагенты недоступны** (старая версия среды, ошибка форка) — оркестратор выполняет эти шаги инлайн по тем же reference-файлам. Делегирование — оптимизация, а не жёсткая зависимость.

## Когда триггерится

- «Нужна маркетинговая стратегия» / «подготовь медиаплан»
- «Какие каналы выбрать для <продукта>»
- «Куда лучше лить бюджет: Директ или VK?»
- «Хочу запустить рекламу» — без указания канала
- «Подготовь стратегию для медиабайера»
- «Нужен сводный отчёт по запуску»
- «Распределение бюджета между площадками»
- «Карта каналов для нового продукта»

**НЕ триггерится**, если канал явно назван (Директ, VK, FB) — тогда сразу площадочный скилл.

## Главный принцип

**Работаем строго пошагово.** Каждый шаг: (1) делаешь работу и порождаешь артефакт, (2) показываешь **ключевые моменты шага** компактной сводкой в чат, (3) **ждёшь явного подтверждения** и только потом идёшь дальше. Рабочая папка: `marketing-campaigns/<slug>/`, артефакты накапливаются по этапам.

**Правило подтверждения (действует на КАЖДОМ шаге):**

- В конце шага выведи блок **«✋ Подтверди шаг N»** с перечислением ключевых моментов именно этого шага (решения, цифры, выборы).
- Задай один прямой вопрос: «Всё верно? Идём дальше / поправить?».
- **Не переходи к следующему шагу без явного "ОК"** (или правок от пользователя).
- Если пользователь вносит правки — обнови артефакт, ещё раз покажи блок подтверждения, снова жди «ОК».
- Где шаг требует выбора (гипотезы, УТП, Топ-3 каналов) — подтверждение = явный выбор, а не просто «ок».
- После «ОК» обнови `_state.json: current_step`.

**Режимы (можно переключить по просьбе пользователя):**

- **«Пошаговый»** — по умолчанию. Подтверждение на каждом из 12 шагов. Рекомендуется.
- **«Быстрый»** — пользователь явно сказал «не спрашивай на промежуточных» / «гони до отчёта». Тогда подтверждение остаётся только в принципиальных точках выбора (Шаги 2, 6, 8, 9, 10) и перед финальной генерацией (Шаг 12). На остальных — короткая сводка без ожидания «ОК». Субагенты (Шаги 4, 5) в любом режиме возвращают сводку; в быстром режиме оркестратор не ждёт «ОК» после них, в пошаговом — ждёт.

Финал — три файла для медиабайера:

1. `marketing_strategy.docx` — основной читаемый отчёт (стратегия + рекомендации по каналам + KPI)
2. `media_plan.xlsx` — медиаплан и распределение бюджета по фазам и каналам
3. `strategy_summary.pdf` — однострочное саммари для клиента

## Workflow подготовки: 12 этапов

### Шаг 0. Подготовка + режим работы

Задай **одним блоком**:

1. **Имя продукта** (1-2 слова) — slug папки. Например: `vokal-school`, `crm-flow`, `dental-saas`.
2. **Режим работы:**
   - **«Пошаговый»** — подтверждение ключевых моментов на каждом шаге. По умолчанию.
   - **«Быстрый»** — подтверждение только в принципиальных точках. Для опытных стратегов, кто сказал «не спрашивай лишнего».

Создай `marketing-campaigns/<slug>/` и `_state.json` (поля: `current_step`, `slug`, `product_name`, `mode`, `site_url`, `client_materials_provided`, `blocked_at`).

> **✋ Подтверди шаг 0.** Покажи: slug папки + выбранный режим. «Заводим кампанию с такими настройками? Идём за материалами/брифом?»

### Шаг 1. Материалы клиента (если есть)

Один вопрос перед брифом: **«Есть материалы от клиента? (бриф, ТЗ, презентация, переписка, аналитика прошлых кампаний)»**

**Нет** → к Шагу 2, `_state.json: client_materials: false`.

**Есть** → `00_client_materials.md`, извлеки по шаблону «факт → источник» с цитатами:
- Поля брифа (✅/❌ с уверенностью)
- Сырьё для гипотез (Шаг 6)
- Сырьё для УТП (Шаг 8)
- Сырьё для персон (Шаг 7)
- Анти-паттерны / возражения / ограничения
- Источники для отраслевой аналитики (Шаг 4)
- Список вопросов, которые ОБЯЗАТЕЛЬНО уточнить на Шаге 2

> **✋ Подтверди шаг 1.** Покажи таблицу извлечения (факт → источник) и список вопросов, которые надо закрыть на брифе. «Ничего не упустил? Идём на бриф?»

### Шаг 2. Бриф продукта

**Прочти `references/brief-template.md` целиком.**

**Минимум на входе:** название кампании/продукта + ссылка на сайт. Всё остальное — добываем сами.

Параллельно — **WebFetch на сайт**. Извлекаем: H1, бенефиты, CTA, цена/триал, доказательная база. Заблокирован → попроси у маркетолога 5 пунктов словами.

Задай **одним блоком** только недостающие вопросы:

1. Что это за продукт/услуга, ссылка на сайт
2. Тип сайта: лендинг / интернет-магазин / многостраничный / SaaS-кабинет
3. Регион показа: РФ / конкретные города / СНГ / международно
4. Цель кампании в терминах бизнеса (лиды / продажи / brand awareness / установки / звонки)
5. CPA или unit-экономика (LTV, маржа) — для дальнейшего KPI
6. Месячный бюджет — общий и есть ли разделение по фазам
7. УТП продукта — главное обещание (финализируется на Шаге 8)
8. Какие гео/языки приоритетны
9. Сезонность / срочный спрос / отложенный
10. Что НЕ делаем (исключения, площадки, темы)

**Артефакт:** `01_brief.md` — все поля явно.

> **✋ Подтверди шаг 2 [ключевая точка].** Покажи сводку брифа: продукт, тип сайта, регион/гео, бизнес-цель, CPA/юнит-экономика, бюджет (и деление по фазам), черновик УТП, сезонность, исключения. «Всё верно? Что поправить? Идём в стратегию?» — **не двигайся без явного "ОК".**

### Шаг 3. Стратегический слой

Фиксируем верхнеуровневые решения ДО отраслевой аналитики. См. `references/strategy-layer.md`.

В `02_strategy.md`:

1. **Тип спроса:** срочный (нужно сейчас) / отложенный (исследуем) / создаём спрос (новая категория)
2. **Воронка:** одношаговая (клик → покупка) / многошаговая (касание → прогрев → продажа) / мульти-тач (брэнд + перформанс)
3. **Целевые KPI на 1 / 3 / 6 месяцев:** CPL/CPA target, объём лидов, ROAS, payback
4. **Принципы бюджетирования:** consistency vs burst, доля теста, доля масштаба
5. **Что НЕ используем явно:** платформы / форматы / темы / автостратегии с дня 1

> **✋ Подтверди шаг 3.** Покажи таблицей: тип спроса, тип воронки, целевые KPI 1/3/6 мес, принципы бюджетирования, явные исключения. «Согласен с такой рамкой? Идём в отрасль?»

### Шаг 4. Отраслевая аналитика  [делегируется субагенту]

Тяжёлый сбор данных вынесен в изолированный субагент-скилл `/industry-research` (`context: fork`). Он сам читает `references/industry-research.md`, делает WebSearch по нише и складывает артефакты в папку кампании. В основной контекст возвращается **только сводка ≤20 строк**.

**Вызов:**

```
/industry-research <slug> "<ниша + специфика>" "<регион>"
```

Передаётся: ниша + специфика (узкое пересечение), регион, тип спроса из Шага 3, аналогии для экзотических ниш (через аргументы или из `_state.json`).

**Субагент возвращает:**
- сводку (диапазоны CAC/LTV, каналы конкурентов, главные анти-паттерны);
- пути к `industry_research.md` и `industry_research.json` (вход для Шагов 9, 10, 11).

**Если субагент недоступен** — выполни шаг инлайн по `references/industry-research.md`.

> **✋ Подтверди шаг 4.** Покажи вернувшуюся сводку: диапазоны CAC и LTV в нише, на каких каналах сидят конкуренты, главные анти-паттерны. «Цифры и каналы похожи на правду? Есть что добавить? Идём к конкурентам?» — решение принимает человек здесь, в основном контексте. После «ОК»: `_state.json: current_step = 5`.

### Шаг 5. Конкуренты — поиск и анализ  [делегируется субагенту]

Самый «грязный» по контексту шаг (WebFetch на 5 сайтов) вынесен в изолированный субагент-скилл `/competitor-research` (`context: fork`). Он сам читает `references/competitor-research.md`, проходит обе фазы (поиск кандидатов + глубокий разбор топ-5) и складывает артефакты в папку кампании. Сырьё с сайтов остаётся в форке — наверх идёт **только сводка**.

**Вызов:**

```
/competitor-research <slug> "<ниша>" "<регион>"
```

**Субагент возвращает:**
- сводку (число разобранных конкурентов, матрица «конкурент × канал» в 2-3 строках, топ gap'ы);
- пути к `04_competitors.md`, `05_competitor_analysis.md`, `competitor_matrix.json`.

Матрица каналов — критичный вход для Шага 9 (выбор площадок).

**Если субагент недоступен** — выполни обе фазы инлайн по `references/competitor-research.md` (с промежуточным подтверждением после фазы 1, как раньше).

> **✋ Подтверди шаг 5.** Покажи вернувшуюся сводку: матрицу «конкурент × канал» + 2-3 главных gap'а (где никто не закрывает боль / где недозагружен канал). «Матрица и gap'ы верны? Идём в гипотезы?» — решение принимает человек здесь. После «ОК»: `_state.json: current_step = 6`.

### Шаг 6. Гипотезы запуска

**Прочти `references/hypothesis-builder.md`.**

**Передать:** `01_brief.md`, `industry_research.json`, `05_competitor_analysis.md`, тип ниши.

**На выходе:**
- `hypotheses.md` — 5-8 стратегических гипотез. Каждая с полями: имя, ЦА-сегмент, главное обещание, **где (на каком канале) проверять** (предварительный мэппинг гипотеза → канал), реализуемость на сайте (✅/⚠️/❌), гипотеза о результате, риски.

> **✋ Подтверди шаг 6 [ключевая точка — выбор].** Покажи 5-8 гипотез таблицей. Пользователь **явно выбирает 2-4 гипотезы** для теста. **Не двигайся к Шагу 7 без явного выбора.** Запиши `_state.json: selected_hypotheses: [...]`.

### Шаг 7. Buyer Personas

**Прочти `references/buyer-personas.md`.**

3-5 портретов. Каждый: имя, JTBD, боли (3-5), возражения (3-5), триггеры покупки, **где живёт цифровым следом** (поисковики, соцсети, мессенджеры, сообщества — критично для выбора каналов), 5-10 точных запросов / интересов, ключевой месседж.

Связь с гипотезами: каждая выбранная гипотеза → 1-2 персоны.

**Артефакт:** `07_personas.md`.

> **✋ Подтверди шаг 7.** Покажи список персон (имя + JTBD + где живёт цифровым следом) и их связь с выбранными гипотезами. «Персоны и привязка к гипотезам ок? Идём в УТП?»

### Шаг 8. УТП по Котлеру

**Прочти `references/usp-generator.md`.**

**Передать:** анализ сайта из Шага 2, `hypotheses.md`, `05_competitor_analysis.md`, доказательная база.

**На выходе:**
- `usp_audit.md` — классификация заявлений сайта (УТП / довесок / sitelink / шум)
- `usp_candidates.md` — 2-3 кандидата с разбором по 5 критериям Котлера (Specific / Unique / Compelling / Believable / Memorable)
- `usp_final.json` — финальный выбор для отчёта и для площадочных скиллов

> **✋ Подтверди шаг 8 [ключевая точка — выбор].** Покажи 2-3 кандидата УТП с оценкой по Котлеру. Пользователь **выбирает основное УТП + резервное для A/B**. Если на сайте нет настоящего УТП — скажи прямо, не закрывай дыру «что-нибудь напишем». Без явного выбора дальше не идёшь.

### Шаг 9. ⭐ Выбор каналов с обоснованием

**Прочти `references/channel-selection-matrix.md` целиком.** Это главный методологический блок этого скилла.

**Передать:**
- `01_brief.md` (бюджет, гео, тип продукта)
- `02_strategy.md` (тип спроса, воронка, KPI)
- `industry_research.json` (где конкуренты, бенчмарки CAC)
- `05_competitor_analysis.md` (матрица каналов)
- `07_personas.md` (где живут цифровым следом)
- `usp_final.json` (для оценки fit-формата)

**Что делаем:**

1. Раскатываем каналы по матрице (см. reference): Яндекс.Директ (Поиск + РСЯ), VK Ads / myTarget, Meta (FB/IG) — если гео позволяет, Telegram Ads, TikTok / Reels, Programmatic / DSP, SEO, инфлюенсеры, Avito / Юла, Дзен / Promo Pages, контент-маркетинг.

2. Для каждого канала оцениваем по 6 критериям (вес от 0 до 3):
   - **Fit с типом спроса** (срочный / отложенный / нет спроса)
   - **Присутствие ЦА** (по персонам)
   - **Бюджет-эффективность** (для текущего бюджета канал имеет смысл?)
   - **Скорость получения данных** (для теста гипотез)
   - **Конкурентность аукциона** (на основе Шага 5)
   - **Доказательная база в нише** (industry research — есть ли кейсы?)

3. Считаем суммарный балл. **Топ-3 идут в финальную рекомендацию: Приоритет 1 / 2 / 3** с явным обоснованием почему.

**На выходе:**
- `channel_selection.md` — полная матрица + Топ-3 с обоснованием по каждому критерию
- `channel_selection.json` — машиночитаемый: для каждого выбранного канала: приоритет, балл, обоснование, гипотезы которые проверяем, рекомендуемые форматы, риски

> **✋ Подтверди шаг 9 [ключевая точка — выбор].** Покажи матрицу с баллами и **Топ-3 канала с приоритетами 1/2/3** и кратким обоснованием каждого. Пользователь подтверждает Топ-3 или меняет приоритеты. Без подтверждения Топ-3 к бюджету не идёшь.

### Шаг 10. ⭐ Бюджетирование по фазам

**Прочти `references/budget-allocation.md` целиком.**

**Передать:** общий бюджет из брифа, Топ-3 канала из Шага 9, тип спроса из Шага 3, бенчмарки CAC из Шага 4.

**Что делаем:**

Раскладываем бюджет по **трём фазам**:

| Фаза | Срок | Цель | Доля бюджета | Что делаем |
|------|------|------|--------------|------------|
| Тест | 2-4 недели | Найти рабочий канал + связку | 20-30% | Все Топ-3 канала, минимальные дневные бюджеты, тест гипотез |
| Оптимизация | 4-8 недель | Доразогнать лучшие связки | 30-40% | 1-2 канала с лучшим CPA, отключаем провальные |
| Масштаб | 8+ недель | Максимум объёма при сохранении CPA | 40-50% | Основной канал, ретаргетинг, добавляем смежные форматы |

Внутри каждой фазы — распределение по каналам в %.

**На выходе:**
- `budget_allocation.md` — план в md
- `budget_allocation.json` — машиночитаемый для отчёта и скриптов
- `budget_allocation.xlsx` — фаза × канал × неделя (генерируется скриптом)

> **✋ Подтверди шаг 10 [ключевая точка].** Покажи разбивку: доли фаз (Тест/Опт/Масштаб) в % и ₽ + распределение по каналам внутри фаз. Сверь сумму с бюджетом из брифа. Пользователь подтверждает доли или корректирует. Без «ОК» к KPI не идёшь.

### Шаг 11. ⭐ KPI Framework и мониторинг

**Прочти `references/kpi-framework.md` целиком.**

**Передать:** `02_strategy.md` (целевые KPI), `channel_selection.json`, `budget_allocation.json`, `industry_research.json` (бенчмарки).

**Что делаем:**

Для каждого выбранного канала фиксируем:
- **Метрика верхнего уровня:** CPL / CPA / ROAS / CAC (что считаем главным)
- **Промежуточные метрики:** CTR, CPC, CR, post-click engagement
- **Целевые значения по фазам:** Тест / Оптимизация / Масштаб
- **Триггеры для перераспределения бюджета:** при каких показателях сокращаем канал / усиливаем / отключаем
- **Частота отчётности:** daily / weekly / biweekly
- **Где смотрим:** что подключить, какой кабинет, какая Метрика / Pixel / events

**На выходе:**
- `kpi_framework.md` — сводная таблица
- `kpi_framework.json` — машиночитаемый

> **✋ Подтверди шаг 11.** Покажи таблицу: по каждому каналу — главная метрика, целевые значения по фазам, триггеры перераспределения, частота отчётности. «KPI и триггеры согласованы? Собираем финальный отчёт?»

### Шаг 12. Финальный отчёт + handoff

**Часть 12А. Сборка финальных артефактов.**

Перед сборкой пройдись по чек-листу:

```
✅ 01_brief.md, 02_strategy.md
✅ industry_research.json
✅ hypotheses.md (с selected)
✅ 07_personas.md, usp_final.json
✅ 05_competitor_analysis.md (с матрицей каналов)
✅ channel_selection.json (Топ-3)
✅ budget_allocation.json
✅ kpi_framework.json
```

Хоть один отсутствует — НЕ генерируй отчёт. Вернись на соответствующий шаг.

> **✋ Подтверди шаг 12, перед генерацией [ключевая точка].** Покажи чек-лист готовности артефактов (✅/❌). «Все блоки на месте, генерирую DOCX/XLSX/PDF?» Не запускай скрипты без «ОК».

**Часть 12Б. Генерация документов.**

```bash
python scripts/generate_strategy_doc.py --workspace marketing-campaigns/<slug>
python scripts/generate_media_plan_xlsx.py --workspace marketing-campaigns/<slug>
python scripts/generate_pdf_summary.py --workspace marketing-campaigns/<slug>
```

Создают:
- `marketing_strategy.docx` — основной отчёт для медиабайера (разделы: Executive Summary, Продукт и ЦА, Конкурентный контекст, Стратегия и УТП, **Рекомендация по площадкам (Приоритет 1/2/3 с обоснованием)**, **Бюджет по фазам**, **KPI и мониторинг**, План handoff)
- `media_plan.xlsx` — медиаплан с разбивкой фаза × канал × неделя + бюджеты + целевые KPI
- `strategy_summary.pdf` — одностраничник для клиента / для презентации

**Часть 12В. Handoff в площадочные скиллы.**

**Прочти `references/handoff-to-platforms.md` целиком.**

⚠️ **Запуск рекламы = побочные эффекты (трата бюджета).** Площадочные скиллы (`vk-ads-launcher`, `yandex-direct-funnel` и т.п.) должны быть помечены `disable-model-invocation: true` — они НЕ запускаются автоматически, только когда человек явно выбрал канал и подтвердил. Оркестратор сам рекламу не льёт.

Покажи маркетологу финальный отчёт через computer:// ссылки + предложи следующий шаг:

```
Стратегия готова. Топ-3 канала: <канал1>, <канал2>, <канал3>.

Готов запускать конкретные кампании? По твоему «ОК» я передам артефакты
в специализированный скилл (он создаёт кампании в PAUSED — финальный
запуск всё равно за тобой):

— Яндекс.Директ → /yandex-direct-funnel (передам: 01_brief, hypotheses,
  personas, usp_final, kpi_framework, budget_allocation)
— VK Ads → /vk-ads-launcher (тот же набор + персоны «где живут в VK»)
— Meta — пока не автоматизировано, можно вручную по marketing_strategy.docx

С какого начнём?
```

**Только после явного выбора канала и «ОК»** вызови соответствующий площадочный скилл, передав пути к артефактам. Без явного подтверждения человека — не вызывай (это защищено `disable-model-invocation` на стороне площадочного скилла).

**Артефакт:** `12_handoff_plan.md` — какой скилл какие файлы получает.

> **✋ Подтверди шаг 12, handoff.** Покажи готовые документы + предложенный план передачи. «С какого канала запускаем? Передаю артефакты в площадочный скилл?» — жди явный выбор канала, не запускай сам.

---

## Стиль работы

- **Не клянчи.** Один прямой вопрос за раз.
- **Не вываливай простыни.** Артефакт в файл, сводка в чат 5-10 строк, затем блок «✋ Подтверди».
- **Гипотеза > пустой вопрос.** «Вот моя версия — согласны?»
- **Подтверждение — это барьер.** Не переходи на следующий шаг, пока пользователь не дал «ОК» (в пошаговом режиме — на каждом шаге).
- **Защищай качество** на подтверждениях. Если reference сказал «нет настоящего УТП на сайте» — не закрывай это «ладно, что-нибудь напишем».
- **Бюджет важен** — предупреди при <100к/мес (для мультиканальной стратегии лучше >150-200к).
- **Не выдумывай метрики.** «Не знаю» лучше выдуманного.
- **References обязательны** — на 8 шагах с пометкой «прочти `references/<name>.md` целиком» это обязательное чтение, а не намёк.

## Возобновление

«Продолжаем по стратегии <slug>» → найди `marketing-campaigns/<slug>/`, прочитай `_state.json`, продолжай с `current_step`. Не начинай сначала. Покажи краткое «где мы остановились» и блок «✋ Подтверди», прежде чем продолжить шаг.

## Карта артефактов (связи между шагами)

```
00_client_materials.md ─┬─→ Шаг 2 (заполнение брифа)
                        ├─→ Шаг 4 industry-research (источники)
                        ├─→ Шаг 6 hypothesis-builder (сырые гипотезы)
                        ├─→ Шаг 7 Buyer Personas
                        └─→ Шаг 8 usp-generator

01_brief.md ─┬─→ Шаг 3 strategy
             ├─→ Шаг 4 industry-research
             ├─→ Шаг 9 channel-selection (бюджет, гео)
             └─→ Шаг 10 budget-allocation (общий бюджет)

02_strategy.md ─┬─→ Шаг 4 industry-research (тип спроса)
                ├─→ Шаг 9 channel-selection (тип спроса)
                ├─→ Шаг 10 budget-allocation (фазы)
                └─→ Шаг 11 kpi-framework (целевые KPI)

industry_research.json ─┬─→ Шаг 9 channel-selection (бенчмарки CAC)
                        ├─→ Шаг 10 budget-allocation (отраслевые доли)
                        └─→ Шаг 11 kpi-framework (отраслевые KPI)

05_competitor_analysis.md ─→ Шаг 9 channel-selection (матрица каналов конкурентов)

hypotheses.md (selected) ─┬─→ Шаг 7 Buyer Personas (сегменты)
                          ├─→ Шаг 8 usp-generator (углы)
                          └─→ Шаг 9 channel-selection (где проверяем)

07_personas.md ─→ Шаг 9 channel-selection (где живут цифровым следом)

usp_final.json ─→ финальный отчёт + handoff

channel_selection.json ─┬─→ Шаг 10 budget-allocation (по каким каналам)
                        ├─→ Шаг 11 kpi-framework (по каким каналам KPI)
                        └─→ Шаг 12 финальный отчёт + handoff

budget_allocation.json ─┬─→ Шаг 11 kpi-framework
                        └─→ Шаг 12 финальный отчёт

kpi_framework.json ─→ Шаг 12 финальный отчёт
```

При сбое любого шага — проверь, что у него есть все нужные входы. Нет входа — возвращайся, закрой пробел, потом продолжай.

## Связь с площадочными скиллами

| Площадочный скилл | Что получает на вход |
|---|---|
| `yandex-direct-funnel` | `01_brief.md`, `hypotheses.md` (selected), `07_personas.md`, `usp_final.json`, `kpi_framework.json` (целевой CPL/CPA), бюджет по фазам из `budget_allocation.json` |
| `vk-ads-launcher` | то же + персоны с уточнением «где живут в VK» |
| Meta / Facebook | тот же набор + ограничение по гео |
| TikTok / Reels | usp_final + персоны + бюджет на видеопродакшн |
| Telegram Ads | usp_final + персоны + список каналов / тематик |

Площадочный скилл не должен переделывать бриф/гипотезы/УТП — они уже валидированы.

**Защита бюджета:** каждый площадочный скилл помечен `disable-model-invocation: true` и создаёт кампании в статусе PAUSED. Оркестратор не запускает рекламу автоматически — только передаёт артефакты по явному выбору человека, а финальную активацию делает сам пользователь в кабинете.

## Субагенты (исследовательский слой)

Тяжёлые шаги вынесены в отдельные субагент-скиллы (ставятся отдельными пакетами). Каждый с `context: fork`:

| Субагент | Шаг | Что делает | Возвращает |
|---|---|---|---|
| `/industry-research` | 4 | WebSearch по нише, CAC/LTV, каналы конкурентов | сводку + `industry_research.{md,json}` |
| `/competitor-research` | 5 | WebSearch + WebFetch на топ-5, матрица каналов | сводку + `05_competitor_analysis.md`, `competitor_matrix.json` |

Принцип: субагент держит сырьё в своём контексте, наверх отдаёт выжимку ≤20 строк. Гейт подтверждения и решение — у человека в оркестраторе. Если форк недоступен — оркестратор делает шаг инлайн по тому же reference.

