BF skill-lint
Инструмент для предварительной проверки, проверки надежности и проверки формата создаваемых навыков. Используйте этот навык при создании, крупном изменении или проверке навыка, когда необходимо выявить нестабильность в следовании инструкциям старых версий навыков, дрейф вывода, несоответствие модальностей проверки, пропуск ограничений или проверить контракт Harness, доказательства кандидатов, внедрение сбоев, структуру каталогов, бизнес-потоки и риски безопасности. Не используйте для: замены валидаторов предметной области, проверки кода, функционального тестирования приложений, общих задач программирования.
машинный переводПоказать оригиналСкрыть оригинал«Skill 创建预检、可靠性验收与格式审查工具。本技能应在用户创建、重大改造或审查Skill,需要识别旧版 Skill 的指令遵循不稳定、产…»
Skill 创建预检、可靠性验收与格式审查工具。本技能应在用户创建、重大改造或审查Skill,需要识别旧版 Skill 的指令遵循不稳定、产出漂移、验证模态错配、约束漏检,或检查 Harness 契约、候选绑定证据、故障注入、目录结构、业务流和安全风险时使用。不要用于:代替业务领域验证器、代码审查、应用功能测试、通用编程任务。
Инструмент для предварительной проверки, проверки надежности и проверки формата создаваемых навыков.
Как процесс F 35/100 · Не запустится — Скилл ссылается на файлы, которых нет в архиве: references/*.md, scripts/*, assets/*
Чем это грозит
Находки средней серьёзности: скорее всего скилл честный, но прочитайте, что именно насторожило сканер.
Ниже описан худший случай для этой категории. Здесь находка средней серьёзности: guard увидел признак, но не доказательство.
Скилл содержит команды, которые удаляют файлы, переписывают диски или исполняют код, скачанный из сети. Агент может выполнить их без вопроса, если считает, что так требует инструкция.
Замените разрушительные команды на безопасные аналоги с подтверждением, ограничьте область действия конкретной папкой и не тяните код через curl | bash: укажите версию и контрольную сумму.
Как улучшить
- Скажите в description, КОГДА применять скилл («используй, когда…», примеры запросов): это главный сигнал для агента.
- В тексте есть ссылки на отсутствующие файлы: добавьте файлы или уберите ссылки.
- Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
- spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.
Находки guard · 12
✓ Критических и высоких находок нет
Средние и низкие: 12
-
средняя Опасные команды
cmd-pipe-to-shellCHANGELOG.md:33Скачивание и запуск удалённого кода с неизвестного хоста (pipe в shell) (в кавычках — упоминание, а не команда)- 供应链:运行时自动安装(`pip`/`npm`/`playwright install`,判 High)、`curl|sh` 下载并执行(Critical)、未固定版本依赖、`--online` 时 OSV CVE 查询
в кавычках -
низкая Опасные команды
cmd-pipe-to-shellreferences/security-assessment-standards.md:76Скачивание и запуск удалённого кода с неизвестного хоста (pipe в shell) (строка таблицы в документации; документация security-скилла)| 下载并执行 | `curl | sh`、`wget | bash`、远程脚本下载后运行 | 严重 |
таблицаsecurity-скилл -
низкая Опасные команды
cmd-privilegereferences/security-assessment-standards.md:77Повышение привилегий / права на запись для всех (строка таблицы в документации; документация security-скилла)| 权限提升 | `sudo`、`chmod 777`、setuid、系统服务修改、绕过安全软件 | 严重 |
таблицаsecurity-скилл -
низкая Опасные команды
cmd-pipe-to-shellscripts/security_scan.py:442Скачивание и запуск удалённого кода с неизвестного хоста (pipe в shell) (строковый литерал в коде, не выполняется; документация security-скилла)message="检测到 '下载并执行远程代码'(curl|sh 或 wget|bash)模式,属 Hard Fail。",
строка в кодеsecurity-скилл -
низкая Опасные команды
cmd-pipe-to-shellscripts/security_scan.py:607Скачивание и запуск удалённого кода с неизвестного хоста (pipe в shell) (строковый литерал в коде, не выполняется; документация security-скилла)"检测到 '下载并执行远程代码'(curl|sh 或 wget|bash),属 Hard Fail。",
строка в кодеsecurity-скилл -
низкая Опасные команды
cmd-privilegescripts/security_scan.py:614Повышение привилегий / права на запись для всех (строковый литерал в коде, не выполняется; документация security-скилла)"脚本使用 sudo / chmod 777 等权限提升操作。",
строка в кодеsecurity-скилл -
низкая Секреты в коде
secret-labelled-tokenscripts/test_security_scan.py:139Токен / ключ рядом с меткой (формат неизвестен — проверьте, что это не живой секрет) (значение-заглушка)"scripts/secrets.py": "api_key = 'sk-a…456'\n",
заглушка -
низкая Секреты в коде
secret-password-literalscripts/test_security_scan.py:139Захардкоженный пароль / ключ (возможно, пример) (значение-заглушка)"scripts/secrets.py": "api_key = 'sk-a…456'\n",
заглушка
Ещё 4 совпадений отнесены к цитатам в документации скилла по безопасности и не считаются находками.
Просканировано файлов: 34. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
По спецификации Agent Skills
- предупреждение
description-no-whendescription не говорит, КОГДА применять скилл (нет "use when / используй когда") - предупреждение
missing-refссылка на отсутствующий файл: references/*.md - предупреждение
missing-refссылка на отсутствующий файл: scripts/* - предупреждение
missing-refссылка на отсутствующий файл: assets/* - предупреждение
missing-refссылка на отсутствующий файл: templates/* - предупреждение
missing-refссылка на отсутствующий файл: references/**/*.md - заметка
frontmatter-keyнеизвестное поле фронтматтера "homepage"
Процессный рейтинг: все десять параметров 35/100
- 0Инструменты и файлы. Не хватает 5 файла(ов): references/*.md, scripts/*, assets/*
- 0Результат и критерий готовности. Не сказано, что считать результатом
- 0Входы и предусловия. Не сказано, что нужно иметь на входе
- 0Ошибки и развилки. Линейный процесс без обработки сбоев
- 20Когда включается. Не сказано, при каком запросе скилл включается
- 30Повторный запуск. Изменяющих операций: 3, без проверки текущего состояния
- 100Шаги. Шагов: 98
- 100Согласованность. Имя и обязательные поля на месте
- 100Стоимость исполнения. Тело инструкции 2852 токенов
- 100Отчётность по ходу. Скилл сообщает о ходе работы
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +5В description нет примеров фраз, по которым скилл должен срабатывать
- +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
- +3Формат ответа не описан: модель каждый раз решает сама
- -34 из 8 скриптов не упомянуты в SKILL.md
- +2Инструкции на одном языке
- +3Длина description 164 символов: достаточно сигнала, не съедает бюджет
- +4Структура: 16 заголовков
- +3Пошаговые инструкции: 98 пунктов
- +4Есть примеры (5 блоков кода)
- +4Справочные файлы упоминаются в инструкциях (16 из 16)
- +1Лицензия указана
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 61.