BC canary
Сканирует вашу среду OpenClaw на предмет утечек секретов — ключей API, токенов, учетных данных в файлах .env, установленных навыков и истории командной строки. Работает бесшумно при запуске, глубокое сканирование по запросу. Исправляет проблемы с вашими разрешениями.
машинный переводПоказать оригиналСкрыть оригинал«Scans your OpenClaw environment for leaked secrets — API keys, token…»
Scans your OpenClaw environment for leaked secrets — API keys, tokens, credentials in .env files, installed skills, and shell history. Runs silently on startup, deep scans on demand. Fixes issues with your permission.
Сканирует вашу среду OpenClaw на предмет утечек секретов — ключей API, токенов, учетных данных в файлах .env, установленных навыков и истории командной…
Как процесс C 62/100 · Есть пробелы — слабые места: результат и критерий готовности, входы и предусловия, стоимость исполнения
Чем это грозит
Находки средней серьёзности: скорее всего скилл честный, но прочитайте, что именно насторожило сканер.
Ниже описан худший случай для этой категории. Здесь находка средней серьёзности: guard увидел признак, но не доказательство.
Инструкции или скрипты отправляют данные наружу: переменные окружения, ключи, содержимое файлов, историю чата. Вы можете не заметить этого в диалоге, потому что агент выполнит отправку как «часть задачи».
Если отправка не нужна для задачи, уберите её: каталоги помечают такие скиллы как подозрительные и снимают с выдачи. Если нужна, назовите адрес явно, объясните, что именно уходит, и дайте пользователю выключатель.
Как улучшить
- Скажите в description, КОГДА применять скилл («используй, когда…», примеры запросов): это главный сигнал для агента.
- Тело SKILL.md длиннее 5 000 токенов: вынесите справочные детали в references/ и подключайте по необходимости.
- Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
- spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.
Находки guard · 4
✓ Критических и высоких находок нет
Средние и низкие: 4
-
средняя Утечка данных
exfil-webhook-urlSKILL.md:214URL вебхука / коллбэка, типичный для эксфильтрации (проверьте адрес) (строка таблицы в документации)| Slack Webhook | `https://hooks.slack.com/` | URL |
таблица -
средняя Утечка данных
exfil-webhook-urlSKILL.md:215URL вебхука / коллбэка, типичный для эксфильтрации (проверьте адрес) (строка таблицы в документации)| Discord Webhook | `https://discord.com/api/webhooks/` | URL |
таблица -
средняя Утечка данных
exfil-webhook-urlSKILL.md:236URL вебхука / коллбэка, типичный для эксфильтрации (проверьте адрес) (строка таблицы в документации)| Generic Webhook | `https://webhook.site/` | URL |
таблица -
низкая Секреты в коде
secret-aws-keySKILL.md:202AWS access key ID (значение-заглушка)| AWS Access Key | `AKIA` | `AKIA…PLE` |
заглушка
Просканировано файлов: 4. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
По спецификации Agent Skills
- предупреждение
description-no-whendescription не говорит, КОГДА применять скилл (нет "use when / используй когда") - предупреждение
body-longтело SKILL.md ≈ 10917 токенов (рекомендуется < 5000); вынесите детали в references/
Процессный рейтинг: все десять параметров 62/100
- 0Результат и критерий готовности. Не сказано, что считать результатом
- 30Входы и предусловия. Не сказано, что нужно иметь на входе
- 40Стоимость исполнения. Тело инструкции 10917 токенов: вытесняет саму задачу из окна
- 60Инструменты и файлы. Используются инструменты (bash), но во frontmatter они не объявлены
- 70Когда включается. Сказано, когда применять, но не сказано, когда не стоит
- 85Шаги. Шагов: 164, расплывчатых формулировок: 2
- 100Ошибки и развилки. Развилок: 5, есть раздел про ошибки
- 100Согласованность. Имя и обязательные поля на месте
- 100Повторный запуск. Изменяющие операции проверяют текущее состояние
- 100Отчётность по ходу. Скилл сообщает о ходе работы
- medium Правила безопасности и запреты внутри скилла: их место в системном промпте, здесь они не защищают
- low Ответ описан самодельной разметкой (15 тегов): типизированный вызов надёжнее
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +5В description нет примеров фраз, по которым скилл должен срабатывать
- +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
- +3Формат ответа не описан: модель каждый раз решает сама
- +1Лицензия не указана
- +2Инструкции на одном языке
- +3Длина description 219 символов: достаточно сигнала, не съедает бюджет
- +4Структура: 36 заголовков
- +3Пошаговые инструкции: 164 пунктов
- +4Есть примеры (2 блоков кода)
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 62.