4a64d6a7e1
- ПИЛОТ.md: phone-junk "79135XXXXXX" замаскирован (supplier CSV project-колонка, не ПДн клиента; §5.2). +RU jargon в cspell-words.txt. - .gitleaksignore: +8 fingerprints исторических ru-phone-unmasked + маска в комментарии. - docs/marketing/README.md: fix битой ADR-015 ссылки + markdownlint.
C1 Marketing Tooling — Home Doc
Раздел карты: C1 «Маркетинг и привлечение» Версия: 1.0 от 22.05.2026 Кросс-ссылки: Tooling §4.49–58 · ADR-015 · Spec · Plan · marketing-vet.md
Карта раздела — 10 узлов (#74–83)
| # | Узел | Категория | Описание |
|---|---|---|---|
| 74 | analytics-dashboard (reuse #19 Superpowers + #10 Boost) | reuse | Анализ конверсий воронки и когорт прямо из кода/БД через Boost — без нового инструмента |
| 75 | seo-content (reuse #66 laravel-backend-patterns + #60 context7) | reuse | SEO-метаданные в роутах Laravel, структурированные данные; context7 для актуальных стандартов |
| 76 | utm-tracking (reuse #47 openapi-mcp-server) | reuse | UTM-параметры через OpenAPI-спеку портала — обогащение сделок источником трафика |
| 77 | ad-creative (reuse #46 Design plugin + #45 Universal Icons MCP) | reuse | Генерация креативов и UX-копирайт для рекламных материалов |
| 78 | marketing-metrika | analytics | Яндекс Метрика MCP — посещаемость, источники, конверсии (READ-ONLY) |
| 79 | marketing-wordstat | research | Яндекс Wordstat MCP — ключевые слова, поисковый спрос РУ-рынка (Wordstat only) |
| 80 | marketing-telegram | social | Telegram MCP — публикации, планирование и аналитика Telegram-каналов Лидерры |
| 81 | marketing-postiz | social | Postiz MCP — кросс-постинг в соцсети (self-hosted AGPL; DEFERRED до self-host) |
| 82 | marketing-dataforseo | research | DataForSEO API MCP — SERP/SEO аналитика (DEFERRED, платный, post-Б-1) |
| 83 | marketing-unisender | Unisender Go MCP — email-рассылки (DEFERRED, обёртка не готова; SMTP уже в стеке) |
Что ставим сейчас vs DEFERRED
Установлено / проволочено в .mcp.json (Task 4)
| # | Инструмент | npm-пакет | Статус в .mcp.json |
|---|---|---|---|
| 78 | Yandex Metrika MCP | yandex-metrika-mcp (MIT) |
Активный entry marketing-metrika |
| 79 | Yandex Wordstat MCP | yandex-wordstat-mcp (MIT) |
Активный entry marketing-wordstat |
| 80 | Telegram MCP | github:chigwell/telegram-mcp (Apache-2.0) |
Активный entry marketing-telegram |
| 81 | Postiz MCP | postiz-mcp (лицензия под ветом) |
Закомментированный skeleton _comment_postiz_skeleton |
Что нужно от заказчика перед использованием #78/#79:
- Получить OAuth-токен на oauth.yandex.ru, приложение с доступом к Метрике/Директ (scope read-only).
- Добавить в
.env.local(gitignored):YANDEX_OAUTH_TOKEN=y0_AgA...
Что нужно для #80 (Telegram):
- Зарегистрировать выделенный Telegram-аккаунт для Лидерры (не личный).
- Получить
TELEGRAM_API_IDиTELEGRAM_API_HASHна my.telegram.org/apps. - Сгенерировать
TELEGRAM_SESSION_STRINGодин раз через GramJS или Telethon. - Добавить все три значения в
.env.local.
DEFERRED
| # | Причина отсрочки |
|---|---|
| 81 Postiz | Требует self-host gitroomhq/postiz-app; лицензия antoniolg/postiz-mcp не верифицирована (см. Open vet notes) |
| 82 DataForSEO | Платный API; активировать post-Б-1 (регистрация ООО, реквизиты) |
| 83 Unisender Go | SMTP уже настроен в стеке (фирменная почта liderra.ru); отдельная MCP-обёртка — отдельный ADR |
Постура безопасности
#78 Metrika — READ-ONLY analytics
- OAuth-токен запрашивается с минимальными правами:
y.metrika.direct.read(чтение Метрики). - Никаких мутирующих вызовов через MCP: цели, фильтры, настройки счётчиков — только через Яндекс UI.
- Токен хранится в
.env.local(gitignored), не в.mcp.json.
#79 Wordstat — Wordstat only, без Direct-мутаций
- IS9-постура: Wordstat-инструменты (keyword research, trends) разрешены.
- Direct-инструменты мутации (создание кампаний, изменение ставок, управление объявлениями) — запрещены (MKT8: нет автоматических трат рекламного бюджета без явного подтверждения заказчика).
- Один OAuth-токен на #78 и #79 — read-only scope достаточен для обоих.
#80 Telegram — выделенный аккаунт (MKT8)
- Session String — эквивалент полного доступа к аккаунту. Хранить только в
.env.local. - Обязателен выделенный аккаунт Лидерры, не личный аккаунт Дмитрия: если SESSION_STRING утечёт — только бизнес-аккаунт под угрозой.
- Публикации в Telegram-каналах через MCP — только после явного подтверждения содержания.
#81 Postiz — internal-only, AGPL-3.0
gitroomhq/postiz-appлицензирован AGPL-3.0: использование разрешено для внутренних нужд Лидерры без изменения кода.- Запрещено: модифицировать исходный код Postiz без публикации изменений (AGPL требование).
antoniolg/postiz-mcpлицензия — под ветом (см. ниже).
Postiz self-host инструкция
Когда будет готово (после Б-1 и верификации лицензии):
# 1. Клонировать репозиторий
git clone https://github.com/gitroomhq/postiz-app
cd postiz-app
# 2. Запустить через Docker Compose (рекомендуемый способ)
cp .env.example .env
# Отредактировать .env: DATABASE_URL, REDIS_URL, JWT_SECRET, BACKEND_INTERNAL_URL
docker-compose up -d
# 3. Открыть UI на http://localhost:5000, создать аккаунт
# 4. Подключить соцсети (VK, Telegram, Instagram и др.) в разделе Integrations
# 5. Получить API Key в настройках Postiz
# 6. Добавить в .env.local:
# POSTIZ_API_URL=http://localhost:5000
# POSTIZ_API_KEY=<ключ из Postiz UI>
Документация Postiz: docs.postiz.com
Для активации MCP-entry — раскомментировать _comment_postiz_skeleton в .mcp.json согласно инструкции внутри.
AGPL-3.0 обязательства: Лидерра использует Postiz в исходном виде для внутренних нужд (self-hosted). Никаких модификаций исходного кода без публикации изменений. Внешним пользователям SaaS не предоставляется.
Open vet notes
| Риск | Статус | Действие |
|---|---|---|
antoniolg/postiz-mcp лицензия |
NOT VERIFIED | Перед активацией: проверить LICENSE файл в репозитории github.com/antoniolg/postiz-mcp; если MIT — активировать; если AGPL/GPL — консультация юриста |
telegram-mcp npm-пакет (0.1.20, Proprietary) |
Не использован | Используем github:chigwell/telegram-mcp (Apache-2.0) напрямую, не npm-вариант |
| Yandex OAuth широкий scope | Низкий | Scope y.metrika.direct.read — только чтение; Директ-мутации через MCP вне постуры |
| SESSION_STRING утечка | Средний | Хранить только в .env.local (gitignored); ротировать при подозрении |
Cross-refs
- Tooling Прил. Н §4.49–58 — полный реестр 10 узлов C1 с 9-атрибутными блоками
- ADR-015 — решения интеграции C1 (IS1–IS9 маркетинг-вет, MKT1–MKT8 ограничения)
- Spec —
docs/superpowers/specs/2026-05-22-c1-marketing-tooling-design.md - Plan —
docs/superpowers/plans/2026-05-22-c1-marketing-tooling.md - marketing-vet.md —
docs/security/marketing-vet.md— провенанс-вет каждого внешнего инструмента - routing-off-phase.md — задача «маркетинг-аналитика» →
marketing-metrika; «ключевые слова» →marketing-wordstat; «Telegram-канал» →marketing-telegram - PSR_v1 R10.1 — реестр off-phase инструментов (блок 1 C1-категория)
- Pravila §13.2 — off-phase marketing-tooling абзац