BB kami-conflict-detection
Обнаружение физических конфликтов (драки, толчки, потасовки) между 2+ людьми с одного или нескольких видеопотоков RTSP одновременно. Непрерывный режим: один процесс Python параллельно отслеживает каждую настроенную камеру, отправляет оповещение для каждой камеры (stdout / файл во входящих / Feishu / Discord / Telegram) при каждом обнаруженном событии и продолжает работать — он НЕ завершается после обнаружения.
машинный переводПоказать оригиналСкрыть оригинал«Detect physical conflicts (fighting, shoving, scuffling) between 2+ pe…»
Detect physical conflicts (fighting, shoving, scuffling) between 2+ people from one or many RTSP camera streams concurrently. Continuous mode: a single Python process monitors every configured camera in parallel, pushes a per-camera alert (stdout / inbox file / Feishu / Discord / Telegram) on each detected event, and keeps running — it does NOT exit on detection.
Обнаружение физических конфликтов (драки, толчки, потасовки) между 2+ людьми с одного или нескольких видеопотоков RTSP одновременно.
Как процесс B 73/100 · Почти готов — слабые места: когда включается
Чем это грозит
Находки средней серьёзности: скорее всего скилл честный, но прочитайте, что именно насторожило сканер.
Ниже описан худший случай для этой категории. Здесь находка средней серьёзности: guard увидел признак, но не доказательство.
Скилл содержит команды, которые удаляют файлы, переписывают диски или исполняют код, скачанный из сети. Агент может выполнить их без вопроса, если считает, что так требует инструкция.
Замените разрушительные команды на безопасные аналоги с подтверждением, ограничьте область действия конкретной папкой и не тяните код через curl | bash: укажите версию и контрольную сумму.
Как улучшить
- Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
- spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.
Находки guard · 7
✓ Критических и высоких находок нет
Средние и низкие: 7
-
средняя Опасные команды
cmd-pipe-to-shell-known-hostsetup.sh:44Установщик через pipe в shell с известного хоста (всё равно выполняет удалённый код)curl -LsSf https://astral.sh/uv/install.sh | sh
-
средняя Опасные команды
cmd-pipe-to-shell-known-hostsetup.sh:46Установщик через pipe в shell с известного хоста (всё равно выполняет удалённый код)wget -qO- https://astral.sh/uv/install.sh | sh
-
низкая Утечка данных
exfil-webhook-urlconflict_detector_last.py:659URL вебхука / коллбэка, типичный для эксфильтрации (проверьте адрес) (хост вендора самого скилла; в кавычках — упоминание, а не команда)url = f"https://api.telegram.org/bot{bot_token}/sendPhoto"vendor-hostв кавычках -
низкая Утечка данных
exfil-webhook-urlconflict_detector_last.py:671URL вебхука / коллбэка, типичный для эксфильтрации (проверьте адрес) (хост вендора самого скилла; в кавычках — упоминание, а не команда)url = f"https://api.telegram.org/bot{bot_token}/sendMessage"vendor-hostв кавычках -
низкая Утечка данных
exfil-webhook-urlREADME.md:277URL вебхука / коллбэка, типичный для эксфильтрации (проверьте адрес) (значение-заглушка)4. Click **Copy Webhook URL** (format: `https://discord.com/api/webhooks/123456/abcdef...`)
заглушка -
низкая Утечка данных
exfil-webhook-urlREADME.md:297URL вебхука / коллбэка, типичный для эксфильтрации (проверьте адрес) (значение-заглушка)- Or call `https://api.telegram.org/bot<TOKEN>/getUpdates` after sending a message in the group → find `"chat":{"id":-100xxxxx}` in the responseзаглушка -
низкая Утечка данных
exfil-webhook-urlREADME.md:309URL вебхука / коллбэка, типичный для эксфильтрации (проверьте адрес) (значение-заглушка)--discord_webhook https://discord.com/api/webhooks/... \
заглушка
Просканировано файлов: 7. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
По спецификации Agent Skills
- заметка
frontmatter-keyнеизвестное поле фронтматтера "triggers"
Процессный рейтинг: все десять параметров 73/100
- 20Когда включается. Не сказано, при каком запросе скилл включается
- 60Инструменты и файлы. Используются инструменты (bash, web, python), но во frontmatter они не объявлены
- 60Результат и критерий готовности. Формат результата описан, критерия завершения нет
- 70Входы и предусловия. Входные данные и предусловия перечислены
- 70Стоимость исполнения. Тело инструкции 4314 токенов
- 100Шаги. Шагов: 36
- 100Ошибки и развилки. Развилок: 6, есть раздел про ошибки
- 100Согласованность. Имя и обязательные поля на месте
- 100Повторный запуск. Изменяющие операции проверяют текущее состояние
- 100Отчётность по ходу. Скилл сообщает о ходе работы
- medium Правила безопасности и запреты внутри скилла: их место в системном промпте, здесь они не защищают
- low Разделов верхнего уровня: 13. Похоже на несколько доменов в одном скилле
- low Ответ описан самодельной разметкой (8 тегов): типизированный вызов надёжнее
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +5В description нет примеров фраз, по которым скилл должен срабатывать
- +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
- +1Лицензия не указана
- +2Инструкции на одном языке
- +3Длина description 365 символов: достаточно сигнала, не съедает бюджет
- +4Структура: 14 заголовков
- +3Пошаговые инструкции: 36 пунктов
- +3Формат ответа описан явно
- +4Есть примеры (5 блоков кода)
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 86.