Files
portal/docs/marketing/README.md
T
Дмитрий 4a64d6a7e1 chore(security): mask supplier phone-junk in ПИЛОТ.md + accept history FPs + fix ADR link
- ПИЛОТ.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.
2026-05-23 09:47:18 +03:00

9.9 KiB
Raw Blame History

C1 Marketing Tooling — Home Doc

Раздел карты: C1 «Маркетинг и привлечение» Версия: 1.0 от 22.05.2026 Кросс-ссылки: Tooling §4.4958 · 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 email 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:

  1. Получить OAuth-токен на oauth.yandex.ru, приложение с доступом к Метрике/Директ (scope read-only).
  2. Добавить в .env.local (gitignored): YANDEX_OAUTH_TOKEN=y0_AgA...

Что нужно для #80 (Telegram):

  1. Зарегистрировать выделенный Telegram-аккаунт для Лидерры (не личный).
  2. Получить TELEGRAM_API_ID и TELEGRAM_API_HASH на my.telegram.org/apps.
  3. Сгенерировать TELEGRAM_SESSION_STRING один раз через GramJS или Telethon.
  4. Добавить все три значения в .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.4958 — полный реестр 10 узлов C1 с 9-атрибутными блоками
  • ADR-015 — решения интеграции C1 (IS1–IS9 маркетинг-вет, MKT1–MKT8 ограничения)
  • Specdocs/superpowers/specs/2026-05-22-c1-marketing-tooling-design.md
  • Plandocs/superpowers/plans/2026-05-22-c1-marketing-tooling.md
  • marketing-vet.mddocs/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 абзац