B telegram-compose
Format and deliver rich Telegram messages with HTML formatting via direct Telegram API. Auto-invoked by the main session for substantive Telegram output — no other skills need to call it. Decision rule: If your Telegram reply is >3 lines or contains structured data (lists, stats, sections, reports), spawn this as a Haiku sub-agent to format and send. Short replies (<3 lines) go directly via OpenClaw message tool. Handles: research summaries, alerts, status updates, reports, briefings, notifications — anything with visual hierarchy.
- Безопасность 60%
- Качество 40%
- Тесты бонус
Как улучшить
- Скажите в description, КОГДА применять скилл («используй, когда…», примеры запросов): это главный сигнал для срабатывания.
- Добавьте evals/evals.json с 4–6 реальными запросами и ожидаемыми ответами: тогда полная проверка использует ваши кейсы, а не черновик модели.
- Добавьте spec.yaml с триггерами и утверждениями (skilltest init): это контракт поведения для CI.
Находки guard · 4
✓ Критических и высоких находок нет
Средние и низкие: 4
-
низкая Утечка данных
exfil-webhook-urlSKILL.md:112URL вебхука / коллбэка, типичный для эксфильтрации (проверьте адрес) (значение-заглушка)curl -s -X POST "https://api.telegram.org/bot${BOT_TOKEN}/sendMessage" \заглушка -
низкая Утечка данных
net-credential-useSKILL.md:112Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис) (хост вендора самого скилла)curl -s -X POST "https://api.telegram.org/bot${BOT_TOKEN}/sendMessage" \vendor-host -
низкая Утечка данных
exfil-webhook-urlSKILL.md:125URL вебхука / коллбэка, типичный для эксфильтрации (проверьте адрес) (значение-заглушка)curl -s -X POST "https://api.telegram.org/bot${BOT_TOKEN}/sendMessage" \заглушка -
низкая Утечка данных
net-credential-useSKILL.md:125Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис) (хост вендора самого скилла)curl -s -X POST "https://api.telegram.org/bot${BOT_TOKEN}/sendMessage" \vendor-host
Просканировано файлов: 2. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
Lint
- предупреждение
description-no-whendescription не говорит, КОГДА применять скилл (нет "use when / используй когда") - заметка
frontmatter-keyнеизвестное поле фронтматтера "model-preference" - заметка
frontmatter-keyнеизвестное поле фронтматтера "subagent"
Процессная зрелость 66/100
- 0Результат и критерий готовности. Не сказано, что считать результатом
- 0Входы и предусловия. Не сказано, что нужно иметь на входе
- 30Повторный запуск. Изменяющих операций: 9, без проверки текущего состояния
- 50Когда включается. Не сказано, при каком запросе скилл включается
- 100Инструменты и файлы. Инструменты объявлены во frontmatter
- 100Шаги. Шагов: 31
- 100Ошибки и развилки. Развилок: 3, есть раздел про ошибки
- 100Согласованность. Имя и обязательные поля на месте
- 100Стоимость исполнения. Тело инструкции 2093 токенов
- 100Отчётность по ходу. Скилл сообщает о ходе работы
- medium Правила безопасности и запреты внутри скилла: их место в системном промпте, здесь они не защищают
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +5В description нет примеров фраз, по которым скилл должен срабатывать
- +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
- +3Формат ответа не описан: модель каждый раз решает сама
- +1Лицензия не указана
- +2Инструкции на одном языке
- +3Длина description 537 символов: достаточно сигнала, не съедает бюджет
- +4Структура: 17 заголовков
- +3Пошаговые инструкции: 31 пунктов
- +4Есть примеры (12 блоков кода)
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 70.