Три группы накопившихся 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 плана постановки в боевой). Содержание ветки не трогает.
16 KiB
Провенанс-вет внешних инструментов C1 marketing-tooling (IS9)
Дата: 2026-05-22 Вет-код: IS9 (согласно ADR-003 + spec §8) Инструменты: marketingskills (вендоринг), Yandex Metrika MCP (выбор из 3 кандидатов), yandex-mcp (Direct+Metrika+Wordstat), telegram-mcp, postiz-app / postiz-mcp Статус: ЗАВЕРШЁН
Назначение документа
Перед добавлением инструментов в раздел C1 «Маркетинг» карты выполнен обязательный провенанс-вет (IS9). Основание: ~13 % security-скилов из маркетплейсов несут критичные дефекты, часть пытается красть учётные данные (исследование ToxicSkills, Snyk + SentinelOne 2025). ADR-003 закрепляет принцип: community-инструменты с непроверенным происхождением — defer.
Сводная таблица вердиктов
| # | Инструмент | Источник | Лицензия | Вердикт | Обоснование (одна строка) |
|---|---|---|---|---|---|
| C1-1 | marketingskills (вендоринг скилов) |
coreyhaines31/marketingskills |
MIT | PASS-with-conditions | Markdown-only скилы + 2 bash-скрипта только локальной валидации; MIT разрешает вендоринг; условие — вендорить только skills/, validate-scripts не включать |
| C1-2 | Yandex Metrika MCP | atomkraft/yandex-metrika-mcp (выбран) |
MIT | PASS | Токен передаётся только на api-metrika.yandex.net; нет опасных паттернов; MIT; риск single-author задокументирован |
| C1-3 | yandex-mcp (Direct+Metrika+Wordstat) |
SvechaPVL/yandex-mcp |
MIT | PASS-with-conditions | Wordstat-модуль изолирован (5 read-only tools); Direct (80 mutation-tools) не активировать; все URL — официальные Yandex |
| C1-4 | telegram-mcp (MTProto user-account) |
chigwell/telegram-mcp |
Apache-2.0 | PASS-with-conditions | Токен передаётся только Telegram/Telethon; нет опасных паттернов; условие — SESSION_STRING только в .env, выделенный аккаунт |
| C1-5 | postiz-app (self-host) + postiz-mcp |
gitroomhq/postiz-app / antoniolg/postiz-mcp |
AGPL-3.0 | PASS-with-conditions | AGPL допустима для внутреннего self-host без дистрибуции; лицензия postiz-mcp не проверена в рамках бюджета — см. Open notes |
Детальный анализ
C1-1 — coreyhaines31/marketingskills
Репозиторий: https://github.com/coreyhaines31/marketingskills
Лицензия: MIT (Copyright 2025, Corey Haines) — подтверждено прямым чтением LICENSE.
Состав репозитория (проверено):
skills/— чистый markdown; нет исполняемых скриптов внутриskills/..claude-plugin/— JSON/YAML конфигурация плагина; не исполняемый код.validate-skills.sh+validate-skills-official.sh— bash-скрипты только для локальной валидации (grep/awk/sed поskills/; сетевых вызовов нет; внешний URL упоминается только в комментарии — fetch не выполняется).AGENTS.md,CLAUDE.md— инструкции для AI-агентов.
Автор и активность: Corey Haines (coreyhaines31), 279 коммитов, последний 2026-05-21 (v2.1.0). Один основной автор; 30 000+ звёзд, 4 900+ форков — высокий community-уровень.
Провенанс-вывод: MIT разрешает вендоринг без ограничений (требуется только сохранить copyright notice). Исполняемого кода в skills/ нет — только markdown.
Условие вендоринга: копировать только skills/ + LICENSE; validate-скрипты в проект Лидерры не включать; добавить ATTRIBUTION.md с указанием copyright Corey Haines.
C1-2 — Yandex Metrika MCP (выбор из 3 кандидатов)
Сравнение кандидатов
| Параметр | atomkraft/yandex-metrika-mcp |
theYahia/yandex-metrika-mcp |
Vadosdavos/yandex-metrika-mcp |
|---|---|---|---|
| Лицензия | MIT ✅ | MIT ✅ | Не указана ❌ |
| Коммиты | 7 | 8 | 1 (abandoned?) |
| Код верифицирован | Да (index.ts + client.ts) | Нет | Нет |
| Внешние URL | только api-metrika.yandex.net ✅ |
не верифицировано | не верифицировано |
| Опасные паттерны | Нет ✅ | не верифицировано | не верифицировано |
Выбран: atomkraft/yandex-metrika-mcp
Vadosdavos — 1 коммит, нет лицензии → отклонён. theYahia — лицензия OK, но код не верифицирован в рамках бюджета. atomkraft верифицирован полностью.
Верифицированный код (src/index.ts + src/client.ts):
- Единственный внешний хост:
https://api-metrika.yandex.net(официальный Яндекс API). - OAuth-токен передаётся только в Authorization-заголовке запросов к этому хосту.
- Нет динамического исполнения кода (eval, Function-constructor, и т.п.).
- Нет shell-вызовов или spawn.
- Валидация входных данных через Zod; regex-проверка формата дат.
Риск: Одиночный автор, 7 коммитов — maintenance risk. Пинить SHA в .mcp.json; пересматривать upstream ежеквартально.
C1-3 — SvechaPVL/yandex-mcp (Direct + Metrika + Wordstat)
Репозиторий: https://github.com/SvechaPVL/yandex-mcp
Лицензия: MIT — подтверждено прямым чтением LICENSE.
Архитектура модулей (верифицировано: README + client.py + config.py):
| Модуль | Файлы | Инструментов | Тип операций |
|---|---|---|---|
| Direct | tools/direct/ |
80 | Mutations — НЕ активировать ⚠️ |
| Metrika | tools/metrika/ |
43 | Read-only analytics |
| Wordstat | tools/wordstat.py |
5 | Read-only keyword research ✅ |
Внешние URL (config.py, все официальные домены Yandex):
https://api.direct.yandex.com/json/v5https://api-metrika.yandex.nethttps://api.wordstat.yandex.net
Токены отправляются только на эти хосты. HTTP-библиотека — httpx.AsyncClient (безопасная). Нет динамического исполнения кода в client.py.
Риск: SvechaPVL — одиночный автор, 8 коммитов, 16 звёзд. Direct-модуль несёт mutation-риск (создание/редактирование рекламных кампаний в Яндекс.Директ).
Условие: Активировать ТОЛЬКО Wordstat-инструменты (tools/wordstat.py, 5 tools). Direct-модуль не подключать. В конфигурации MCP передавать OAuth-токен с минимальным scope (Wordstat only).
C1-4 — chigwell/telegram-mcp
Репозиторий: https://github.com/chigwell/telegram-mcp
Лицензия: Apache-2.0 — подтверждено прямым чтением LICENSE.
Верифицированный код (main.py + telegram_mcp/runtime.py):
- Единственный внешний хост: Telegram servers через Telethon (
TelegramClient). TELEGRAM_SESSION_STRINGи API credentials передаются только вTelegramClient/StringSession— сторонних хостов нет.- Нет динамического исполнения кода.
- Нет shell-команд через стандартные системные вызовы.
- Защита от path-traversal: проверка
".." in Path.parts. - Санитизация пользовательского контента (
sanitize_user_content()). - Поддержка прокси (SOCKS4/5, HTTP, MTProxy) — остаётся в протоколе Telegram.
Автор: chigwell (primary) + l1v0n1 (contributor), 259 коммитов, ~1 100 звёзд — активный зрелый проект.
Операционный риск: MTProto user-account — это сессия реального пользователя, не bot-токен. Компрометация SESSION_STRING = полный доступ к аккаунту. Это не проблема кода (код чистый), а операционный риск конфигурации.
Условия:
TELEGRAM_SESSION_STRINGхранить ТОЛЬКО в.envна сервере; не в git, не в логах.- Использовать выделенный Telegram-аккаунт (не основной бизнес-аккаунт).
- Режим — READ-тяжёлый (получение сообщений/каналов); отправка сообщений — только через явное действие оператора.
- Ротация SESSION_STRING при любом подозрении на компрометацию.
C1-5 — gitroomhq/postiz-app + antoniolg/postiz-mcp
Репозиторий: https://github.com/gitroomhq/postiz-app
Лицензия: AGPL-3.0 — подтверждено прямым чтением LICENSE (GNU Affero GPL Version 3, Copyright Nevo David 2025).
Анализ AGPL-3.0 для паттерна «внутренний self-host»:
| AGPL-обязательство | Применяется? | Комментарий |
|---|---|---|
| Публиковать исходники при распространении (§4) | Нет | Мы не распространяем — запускаем на своём сервере |
| Публиковать исходники при сетевом взаимодействии (§13 — AGPL-специфика) | Ограниченно | Применимо при доступе сотрудников через сеть; FSF-трактовка: private/internal use не триггерит §13 |
| Сохранять copyright notice | Да | Обязательно |
| Распространять под той же лицензией | Нет | Не распространяем |
| Совместимость с проприетарным кодом | Не применимо | Postiz — изолированный self-hosted сервис; код Лидерры с ним не линкуется |
Практический вывод: Для паттерна «внутренний self-host без дистрибуции» AGPL-3.0 приемлема.
Условия:
- Использовать Postiz as-is без модификаций кода.
- Сохранить AGPL copyright notice на сервере.
- Не распространять сборки третьим лицам.
- Проверить лицензию
antoniolg/postiz-mcpотдельно перед активацией (не верифицировано — см. Open notes).
Итоговые решения
Выбранный репозиторий Yandex Metrika MCP
atomkraft/yandex-metrika-mcp — единственный полностью верифицированный кандидат. Vadosdavos отклонён (1 коммит, нет лицензии). theYahia приемлем по лицензии, но код не верифицирован в рамках бюджета.
Пин версии: зафиксировать SHA в .mcp.json после установки; пересматривать upstream ежеквартально.
Сводка условий для PASS-with-conditions
| Инструмент | Обязательные условия |
|---|---|
marketingskills |
Вендорить только skills/ + LICENSE; добавить ATTRIBUTION.md; validate-scripts не включать |
atomkraft/yandex-metrika-mcp |
Пинить SHA; READ-ONLY; пересмотр upstream ежеквартально |
SvechaPVL/yandex-mcp |
Только Wordstat-модуль (5 tools); Direct-tools не активировать; OAuth-токен с минимальным scope |
chigwell/telegram-mcp |
SESSION_STRING только в .env; выделенный аккаунт; READ-тяжёлый режим; ротация при компрометации |
postiz-app (AGPL) |
Self-host as-is, без модификаций; сохранить copyright; не распространять; проверить лицензию antoniolg/postiz-mcp |
Нет FAIL
Ни один из 5 кандидатов не отклонён. Все прошли вет с условиями или без.
Open notes (не верифицировано в рамках бюджета)
-
antoniolg/postiz-mcpлицензия — не проверена. Необходимо прочитатьLICENSEв репозитории перед активацией MCP-клиента. Вероятно MIT (типично для MCP-клиентов), но не подтверждено. -
atomkraft/yandex-metrika-mcpточная дата последнего коммита — GitHub вернул ошибку при загрузке contributor-stats. Определено: 7 коммитов, MIT, код чистый. Точную дату проверить черезgit logпосле клонирования. -
chigwell/telegram-mcpточная дата последнего коммита — 259 коммитов, Apache-2.0, код чистый. Точная дата не верифицирована через WebFetch; проверить после клонирования. -
SvechaPVL/yandex-mcpOAuth scope — проверить, возможно ли выдать токен только с Wordstat-правами в Яндекс OAuth, чтобы Direct-инструменты были физически неактивны даже при случайной активации модуля.
Методология вета
Для каждого кандидата:
- Прочитана лицензия через
raw.githubusercontent.com(прямой fetch, не память). - Прочитаны 1-2 ключевых исходника (index/client/runtime) через WebFetch.
- Оценено: внешние хосты, обработка токенов, наличие запрещённых паттернов.
- Для Metrika-кандидатов — сравнительная таблица по 4 параметрам.
Все данные получены через WebFetch на дату 2026-05-22. Израсходовано инструментов: 18/20.