Files
portal/docs/adr/015-marketing-tooling.md
T
Дмитрий 8e8f06ebe7 chore: working tree cleanup pre-llm-first-router merge
Три группы накопившихся auto-правок (НЕ ручные):

1. markdownlint --fix auto-format (~25 .md в docs/superpowers/, docs/security/marketing-vet.md, docs/adr/015, docs/deploy/lkomega-runbook): MD031/MD032 (blank lines around fence/list) + MD004 (bullet markers `+`→`-`). Содержательных текстовых правок 3: ADR-015 bullet, sprint5d-cleanup bullet, router-discipline trailing space.

2. lefthook 2.1.6 → 2.1.8 (package.json + lock): patch-bump, авто-резолвил npm.

3. Observer runtime (docs/observer/): episodes-2026-05.jsonl +420 строк (текущая активность мозга), STATUS.md regen, .pii-counters / .read-counter тики, +2026-05-24-brain-retro.md note.

Цель — разблокировать merge feat/llm-first-router → main (этап 0 плана постановки в боевой). Содержание ветки не трогает.
2026-05-25 14:23:11 +03:00

230 lines
20 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ADR-015: C1 marketing-tooling — наполнение раздела карты C1
**Status:** Accepted
**Date:** 2026-05-22
**Контекст:** эпик C1 marketing-tooling, spec `docs/superpowers/specs/2026-05-22-c1-marketing-tooling-design.md`, plan `docs/superpowers/plans/2026-05-22-c1-marketing-tooling.md`, провенанс-вет `docs/security/marketing-vet.md`.
## Context
Раздел карты C1 «Маркетинг и лидогенерация» формально существовал, но не имел ни
одного дедицированного узла. Соседние разделы C2/C3/C4/C5 обслуживают продуктовый
pipeline лидов (поставщики → арендаторы). C1 — это **собственный go-to-market
Лидерры**: верх воронки привлечения SaaS-клиентов (контент, SEO, реклама, аналитика,
email-маркетинг, бренд, каналы). Аналогичный паттерн пустого раздела закрывался ранее
для C6/C7 (финансы, ADR-012), C9 (управление проектами, ADR-004), C10 (бизнес-процессы,
ADR-008), A8 (инфобезопасность, ADR-014).
**Дефициты чистого C1** (инструменты собственного маркетинга, не продуктового pipeline):
1. **Маркетинговый контент и кампании** — копирайт, посадочные страницы, email-цепочки,
конкурент-бриф, план кампании.
2. **SEO** — аудит, ключевые слова, контент-оптимизация.
3. **Единый вербальный тон бренда** — голос бренда в маркетинговых текстах
(визуальный бренд уже закрыт Brandbook v2 / A4).
4. **РФ-специфика маркетинга** — Яндекс.Директ/Метрика/Telegram как каналы;
конверсия лендинга Лидерры; маркетинг в рамках 152-ФЗ (согласия на рассылки).
Готового инструмента, знающего РФ-рынок и устройство Лидерры, не существует
→ self-authored.
5. **Подключение к каналам и аналитике** — соцсети/постинг, веб-аналитика, рекламные
кабинеты.
Официальный маркетинговый плагин Anthropic (`knowledge-work-plugins/marketing`) закрывает
контент/SEO/бренд (#74, #76). Глубокий community-набор фреймворков берётся из GitHub (#75).
РФ-специфики у Anthropic нет → GitHub MCP-серверы (#78#81) + self-authored (#77).
**Решения заказчика (зафиксированы):** акцент смешанный (контент + аналитика); подход —
вариант Б (ставим всё, что технически можно сейчас; DEFERRED только физически заблокированное);
VK standalone MCP — пропускаем (единственный сервер с 0★ и правом тратить бюджет;
VK-постинг покрывает Postiz #81).
**Риск ecosystem.** Маркетинговые MCP-серверы держат OAuth-токены к рекламным кабинетам и
аналитике. Снык/SentinelOne «ToxicSkills» 2025: ≈13% маркетплейс-скилов содержат критичные
дефекты. Провенанс-гейт IS9 (прецедент A8 / ADR-014) на каждый внешний инструмент до
установки — обязателен. Вет завершён: `docs/security/marketing-vet.md`.
## Decision
Принят **вариант Б** (смешанный акцент): 8 узлов «ставим сейчас» + 2 DEFERRED-слота.
Новая **18-я off-phase подкатегория «marketing-tooling»**, номера Tooling **#74#83**.
| # | ID карты | Узел | Источник | Тип |
|---|---|---|---|---|
| 74 | `mkt_plugin` | marketing (плагин) | Anthropic `knowledge-work-plugins/marketing` | плагин (8 скилов) |
| 75 | `mkt_skills` | marketingskills (вендоренный) | GitHub `coreyhaines31/marketingskills` | вендоренный скил-набор (40) |
| 76 | `brand_voice` | brand-voice (плагин) | Anthropic `knowledge-work-plugins/partner-built/brand-voice` | плагин (3 скила) |
| 77 | `sk_marketing_ru` | marketing-ru | self-authored project-скил | свой |
| 78 | `mcp_metrika` | Яндекс.Метрика MCP | GitHub `atomkraft/yandex-metrika-mcp` | внешний MCP, READ-ONLY |
| 79 | `mcp_ya_direct` | Яндекс.Директ + Wordstat MCP | GitHub `SvechaPVL/yandex-mcp` | внешний MCP |
| 80 | `mcp_telegram` | Telegram MCP | GitHub `chigwell/telegram-mcp` | внешний MCP |
| 81 | `postiz` | Postiz self-hosted | GitHub `gitroomhq/postiz-app` + `antoniolg/postiz-mcp` | self-host + MCP |
| 82 | `mcp_dataforseo` | DataForSEO MCP — **DEFERRED** | GitHub `dataforseo/mcp-server-typescript` | внешний MCP, платный |
| 83 | `mcp_unisender` | Unisender Go MCP — **DEFERRED** | self-written wrapper (нет готового) | своя обёртка |
**Детали ключевых решений:**
1. **#74 marketing** — официальный Anthropic-плагин, 8 скилов: `content-creation`, `draft-content`,
`campaign-plan`, `email-sequence`, `seo-audit`, `competitive-brief`, `brand-review`,
`performance-report`. **Первичный решатель C1.** Встроенные коннекторы к западным SaaS
(HubSpot/Ahrefs/Klaviyo) — не используются (РФ-аналоги #78/#79, визуал → A4).
2. **#75 marketingskills** — самый популярный community-набор (~30k★), 40 скилов (CRO,
SEO, cold-email, ai-seo, programmatic-seo, копирайтинг, marketing-psychology и др.).
**Роль: материал/резерв-библиотека** (модель UPM #31), не решатель (#74 — решатель).
**Вендорим** в `.claude/skills/` (как data-scientist #49 / mermaid #37). IS9-вет PASS
(MIT, только markdown, нет исполняемого кода в `skills/`). Условие: копировать только
`skills/` + `LICENSE`; добавить `ATTRIBUTION.md`.
3. **#76 brand-voice** — Anthropic partner-built плагин (Tribe AI), 3 скила: голос бренда из
текстов, гайдлайны, держать тон. Заземлён в позиционировании Brandbook v2.
4. **#77 marketing-ru** — self-authored project-скил `.claude/skills/marketing-ru/`
(модель billing-audit #62 / threat-model #72 / pdn-152fz-audit #71). Закрывает РФ-специфику:
playbook каналов (Яндекс.Директ/Метрика/Telegram/VK), конверсия лендинга Лидерры
(заземлён в `лендинг/TZ_landing_v1_0.md`), маркетинг в рамках 152-ФЗ (согласия на
рассылки, cross-ref #71). Линтуется (не в ignorePaths).
5. **#78 Яндекс.Метрика MCP** — `atomkraft/yandex-metrika-mcp` (MIT; выбран из 3
кандидатов по итогам IS9-вета; код верифицирован — только `api-metrika.yandex.net`).
READ-ONLY чтение веб-аналитики. Активация полезна при живом лендинге со счётчиком.
Пинить SHA в `.mcp.json`.
6. **#79 Яндекс.Директ + Wordstat MCP** — `SvechaPVL/yandex-mcp` (MIT; 128 инструментов:
Direct 80 + Metrika 43 + Wordstat 5). **Яндекс.Директ-мутации (#79 Direct-модуль)
ОТКЛЮЧЕНЫ per IS9** (MKT8): в конфигурации активировать ТОЛЬКО Wordstat-инструменты
(5 read-only tools). Wordstat полезен немедленно (подбор ключевых слов без активных
кампаний). OAuth-токен с минимальным scope (Wordstat only).
7. **#80 Telegram MCP** — `chigwell/telegram-mcp` (Apache-2.0; ~1.1k★, 259 коммитов,
код верифицирован — только Telegram/Telethon). MTProto user-account. Условия IS9:
`SESSION_STRING` только в `.env`; выделенный аккаунт; READ-тяжёлый режим; ротация
при компрометации.
8. **#81 Postiz** — `gitroomhq/postiz-app` (~30k★) + `antoniolg/postiz-mcp`.
Планировщик/публикация в 30+ площадок включая VK и Telegram; self-hosted, без SaaS-замка.
Лицензия AGPL-3.0: **внутренний self-host без дистрибуции приемлем** (IS9-вет PASS-with-conditions).
Условия: as-is без модификаций кода, сохранить copyright. Лицензия `antoniolg/postiz-mcp`
не верифицирована в рамках вета — проверить отдельно перед активацией MCP-клиента.
9. **#82 DataForSEO MCP** — `dataforseo/mcp-server-typescript` (официальный, ~204★).
**DEFERRED: требует платного аккаунта** → после Б-1 (прецедент Figma #44 / NightOwl #67).
10. **#83 Unisender Go MCP** — готового качественного сервера нет (Composio платный,
клиентские библиотеки ненадёжны). **DEFERRED: написать тонкий MCP-wrapper над API
Unisender Go** (наш email-сервис) по потребности.
**VK standalone MCP** — осознанно отброшен (единственный `ssm82/full-vk-mcp` 0★, профиль
«can spend money»; VK-постинг покрывает Postiz #81). Пересмотр при появлении нормального
сервера.
## Boundaries (конфликт-аудит)
- **MKT1** — C1 (привлечение, верх воронки) ↔ C2 «Продажи» / C3 «Квалификация»: плагины
`sales` (9 скилов) и `small-business` (30 скилов) из той же витрины Anthropic НЕ берутся
в C1 — это C2-пересечения. C1 = demand-gen, контент, бренд, аналитика трафика.
При будущей интеграции C2 — отдельный ADR.
- **MKT2** — `performance-report` (#74) ↔ product-management `metrics-review` (#42, C9):
marketing performance-report = метрики каналов и кампаний (CAC, конверсия, источники,
CTR); PM metrics-review = продуктовые метрики (MRR, retention, adoption). Разные объекты;
дублирования нет.
- **MKT3** — SEO-дубль: `seo-audit` (#74) ↔ SEO-скилы marketingskills (#75):
#74 — первичный решатель (быстрый on-page аудит как воркфлоу); #75 — резерв-библиотека
фреймворков (материал, модель UPM). Не используются параллельно (§5 п.6 соблюдён через
role-разделение решатель/материал). Разница аналогична FD #30 (решатель) vs UPM #31
(резерв-библиотека).
- **MKT4** — визуальные ассеты: контент-скилы #74/#75 не создают изображения; визуал
остаётся за A4 (Universal Icons #45, Design plugin #46, 21st #32). Canva/Figma-коннекторы
плагина #74 не используются (Figma #44 DEFERRED, Canva — западный SaaS).
- **MKT5** — email: `email-sequence` (#74) = черновики копий маркетинговых кампаний;
отправка = Unisender Go (#83 DEFERRED — MCP-обёртка под запрос); транзакционный email
портала (уведомления) = продуктовый код (не C1). Три домена не пересекаются.
- **MKT6** — бренд: Brandbook v2 = **визуальный** бренд (палитра, шрифты, лого, палитра
Forest); brand-voice #76 = **вербальный** бренд (тон, голос, копирайт). Взаимодополняют;
brand-voice заземлён в позиционировании Brandbook, не подменяет его.
- **MKT7** — провенанс IS9: все внешние инструменты (#75 вендоренный, #78/#79/#80 MCP,
#81 self-host) прошли провенанс-вет ДО включения в ADR (прецедент A8 ADR-014).
Артефакт — `docs/security/marketing-vet.md`. Для #75: лицензия MIT, вендорим только
`skills/`. Для #81: AGPL-3.0, внутренний self-host допустим. Лицензия `antoniolg/postiz-mcp`
не верифицирована — open note вета.
- **MKT8** — READ-ONLY и запрет авто-трат: Яндекс.Метрика #78 — только чтение аналитики
(прецедент Sentry/Redis READ-ONLY). Яндекс.Директ #79 — мутации кампаний **не активировать**
(Direct-модуль 80 tools отключён); разрешены только Wordstat 5 read-only tools. Без
авто-расхода бюджета никогда. Урок отброшенного VK-сервера (профиль «can spend money» → вето).
- **MKT9** — 152-ФЗ: сбор email/телефона для маркетинга и рассылки требует отдельных
согласий субъектов ПДн. Скил #77 (marketing-ru) несёт этот playbook + cross-ref на
pdn-152fz-audit #71 (A8). Технический режим аудита ПДн — за #71, не #77.
- **MKT10** — линт вендоренного: marketingskills #75 исключается из lefthook markdownlint
- cspell (`.claude/skills/marketingskills/**` в ignorePaths) — прецедент MK1 mermaid #37 / CC1 ccpm #41.
Self-authored marketing-ru #77 линтуется в обычном режиме.
## Alternatives Considered
- **VK standalone MCP** (`ssm82/full-vk-mcp`) — отклонён: 0★, профиль «can spend money»,
непроверен. VK-постинг покрывает Postiz #81. Пересмотр — при появлении нормального сервера
или self-authored обёртки.
- **Meta/Facebook/Instagram Ads** — не берём: Meta ограничена в РФ, ценность ≈0.
- **Плагины `sales` / `small-business`** (витрина Anthropic) — отложены: C2-пересечения,
возможная интеграция в C2 отдельным ADR.
- **Mailchimp / SendGrid / Brevo / HubSpot** — не берём: платные западные SaaS, РФ-применимость
низкая; наш email-сервис — Unisender Go (#83 DEFERRED).
- **Google Analytics / Google Ads / GSC** — не берём: низкий приоритет для РФ-рынка;
Метрика #78 + Директ #79 закрывают аналитику и рекламу.
- **Ahrefs OSS / Semrush** — Ahrefs OSS-репо deprecated; платные → DataForSEO #82 (DEFERRED)
как единственный отложенный SEO-слот.
- **Вариант А (контентный акцент, без каналов)** — отклонён в пользу Б: заказчик выбрал
«ставим всё, что можно» и смешанный акцент.
## Consequences
**Positive:**
- C1 непуст: 0 → 8 дедицированных узлов (+ 2 DEFERRED-слота).
- Новая **18-я off-phase подкатегория «marketing-tooling»**.
- Marketing chain «L16» (brainstorming → marketing plugin #74 → marketing-ru #77
каналы #78/#79/#80/#81) добавляется в routing-off-phase.md (canonical chain).
- Полное покрытие дефицитов C1: контент/SEO (#74/#75), бренд (#76), РФ-специфика (#77),
аналитика (#78), рекламные ключи (#79), каналы (#80/#81).
- Провенанс-вет IS9 всех внешних инструментов пройден ДО включения в реестр — ни одного
FAIL; условия PASS-with-conditions зафиксированы в `docs/security/marketing-vet.md`.
**Neutral / Cautionary:**
- Яндекс.Директ #79 подключается в режиме «только Wordstat»; Direct-модуль (80 mutation-tools)
физически не активируется — бюджет защищён, но требует осознанной настройки OAuth-scope.
- Telegram MCP #80 работает через user-account (MTProto), а не bot-токен — операционный
риск компрометации SESSION_STRING; митигация: выделенный аккаунт + `.env`-only хранение.
- Postiz #81 AGPL-3.0: внутренний self-host без модификаций допустим, но **если код Postiz
когда-либо будет модифицирован для распространения** — возникают обязательства по раскрытию
исходников (§4/§13 AGPL). Фиксируется как ограничение.
- Лицензия `antoniolg/postiz-mcp` не верифицирована в рамках вета — проверить перед
активацией MCP-клиента.
- #78/#79 активируются осмысленно при живом лендинге/кабинетах (⏸ Б-1); установлены
сейчас (вариант Б), «загораются» при трафике.
## Related Decisions
- **ADR-003** — D3 audit-security toolset; провенанс-дисциплина IS9 унаследована.
- **ADR-012** — C6/C7 finance-tooling; паттерн «пустой раздел → наполнение» первоначально
закреплён там.
- **ADR-014** — A8 infosec-tooling; IS9-дисциплина, прецедент VK-отклонения (money-сервер),
нумерация #68#73 (настоящий ADR продолжает #74#83).
## References
- `docs/superpowers/specs/2026-05-22-c1-marketing-tooling-design.md` — design (MKT1MKT10, §4).
- `docs/superpowers/plans/2026-05-22-c1-marketing-tooling.md` — plan.
- `docs/security/marketing-vet.md` — IS9 провенанс-вет (#75/#78/#79/#80/#81).
- `docs/Tooling_v8_3.md` §4.49–§4.58 — 9-атрибутные блоки узлов #74#83 (когда обновится).
- `docs/Plugin_stack_rules_v1.md` R10.1 — реестр ролей (когда обновится).
- `docs/Pravila_raboty_Claude_v1_1.md` §13.2 — Off-phase marketing-tooling абзац (когда обновится).
- `docs/CLAUDE.md` §3.3 — строки #74#83 + §0 cross-refs version-bump (когда обновится).
- `docs/routing-off-phase.md` — связка «marketing chain L16» + узлы #74#83 (когда обновится).