BB huawei-cloud-skill-tester
Сквозная система функционального тестирования для навыков Huawei Cloud — трехэтапный конвейер, охватывающий модульное тестирование отдельных навыков, оркестрацию нескольких навыков и сквозное тестирование всего потока. Каждый этап выдает структурированный JSON-вывод с проверкой цепочки. Поддерживает проверку установки навыков, функциональный анализ, исследование осуществимости CLI→SDK→API, генерацию тестовых случаев, выполнение в реальной среде с жизненным циклом ресурсов, очистку ресурсов, оркестрацию сценариев с несколькими навыками, обнаружение конфликтов триггеров и консолидированную отчетность. Триггеры включают: 测试技能, 执行技能测试, 跑测试流程, 技能回归测试, skill test, run skill tests, test huawei cloud skill, verify skill, 测试华为云skill, 全流程测试, 编排测试, 技能完整性检查, skill-tester, 跑测试, 回归测试, 组合测试, 多skill编排, verification, e2e.
машинный переводПоказать оригиналСкрыть оригинал«End-to-end functional testing framework for Huawei Cloud skills — thre…»
End-to-end functional testing framework for Huawei Cloud skills — three-tier pipeline covering single-skill unit testing, multi-skill orchestration, and end-to-end full flow testing. Each phase produces structured JSON output with chain verification. Supports skill installation validation, functional analysis, CLI→SDK→API feasibility research, test case generation, real-environment execution with resource lifecycle, resource cleanup, multi-skill scenario orchestration, trigger-conflict detection, and consolidated reporting. Triggers include: 测试技能, 执行技能测试, 跑测试流程, 技能回归测试, skill test, run skill tests, test huawei cloud skill, verify skill, 测试华为云skill, 全流程测试, 编排测试, 技能完整性检查, skill-tester, 跑测试, 回归测试, 组合测试, 多skill编排, verification, e2e.
Сквозная система функционального тестирования для навыков Huawei Cloud — трехэтапный конвейер, охватывающий модульное тестирование отдельных навыков…
Как процесс B 66/100 · Почти готов — слабые места: когда включается, повторный запуск, отчётность по ходу
Чем это грозит
Скилл содержит фрагменты, которые в чужих руках стоят денег или данных. Ниже, что рискует потерять тот, кто установит, и что должен сделать автор.
Скилл содержит команды, которые удаляют файлы, переписывают диски или исполняют код, скачанный из сети. Агент может выполнить их без вопроса, если считает, что так требует инструкция.
Замените разрушительные команды на безопасные аналоги с подтверждением, ограничьте область действия конкретной папкой и не тяните код через curl | bash: укажите версию и контрольную сумму.
Как улучшить
- Разберите находки высокой серьёзности: каждая стоит 18 баллов безопасности. Если это ложное срабатывание, добавьте код правила в guard.allow в spec.yaml.
- Тело SKILL.md длиннее 5 000 токенов: вынесите справочные детали в references/ и подключайте по необходимости.
- Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
- spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.
Находки guard · 9
-
высокая Опасные команды
cmd-pipe-to-shellreferences/cli-installation-guide.md:10Скачивание и запуск удалённого кода с неизвестного хоста (pipe в shell)curl -sSL https://apiexplorer.developer.huaweicloud.com/install/hcloud/install.sh | bash
Средние и низкие: 8
-
средняя Опасные команды
cmd-eval-dynamicscripts/tier2/phase-6-full-flow.sh:108Динамическое выполнение кода из декодированного/недоверенного вводаexec(open(_PU, encoding='utf-8').read())
-
низкая Секреты в коде
secret-high-entropy-tokenreferences/agent-protocol.md:17Строка, похожая на токен (может быть id, хеш или секрет)__HU…1__
-
низкая Секреты в коде
secret-high-entropy-tokenreferences/agent-protocol.md:62Строка, похожая на токен (может быть id, хеш или секрет)[Phase 4] __HU…1__
-
низкая Опасные команды
cmd-eval-dynamicscripts/lib/placeholder-utils.py:6Динамическое выполнение кода из декодированного/недоверенного ввода (комментарий в коде)# exec(open("<SCRIPT_DIR>/lib/placeholder-utils.py", encoding='utf-8').read())комментарий -
низкая Секреты в коде
secret-high-entropy-tokenscripts/lib/utils.sh:302Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)CRED_REQUEST_SENTINEL="__HU…1__"
в кавычках -
низкая Опасные команды
cmd-eval-dynamicscripts/tier1/phase-3-gen-testcases.sh:37Динамическое выполнение кода из декодированного/недоверенного ввода (тестовый файл / пример)exec(open(os.environ.get('PLACEHOLDER_UTILS', '')).read())тестовый файл -
низкая Опасные команды
cmd-eval-dynamicscripts/tier1/phase-4-execute-tests.sh:74Динамическое выполнение кода из декодированного/недоверенного ввода (тестовый файл / пример)exec(open(os.environ.get('PLACEHOLDER_UTILS', '')).read())тестовый файл -
низкая Секреты в коде
secret-high-entropy-tokenSKILL.md:366Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)When Phase 4 or Phase 6 needs to call live Huawei Cloud APIs but cannot find credentials in the environment, the framework does **not** silently skip. It emits a structured request (sentinel line `__H
в кавычках
Просканировано файлов: 28. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
По спецификации Agent Skills
- предупреждение
body-longтело SKILL.md ≈ 5471 токенов (рекомендуется < 5000); вынесите детали в references/
Процессный рейтинг: все десять параметров 66/100
- 0Отчётность по ходу. Скилл ничего не сообщает по ходу работы
- 20Когда включается. Не сказано, при каком запросе скилл включается
- 30Повторный запуск. Изменяющих операций: 9, без проверки текущего состояния
- 50Ошибки и развилки. Развилок: 0, есть раздел про ошибки
- 60Инструменты и файлы. Используются инструменты (bash, python), но во frontmatter они не объявлены
- 70Входы и предусловия. Входные данные и предусловия перечислены
- 70Стоимость исполнения. Тело инструкции 5471 токенов
- 85Шаги. Шагов: 67, расплывчатых формулировок: 1
- 100Результат и критерий готовности. Формат результата и критерий готовности описаны
- 100Согласованность. Имя и обязательные поля на месте
- medium Правила безопасности и запреты внутри скилла: их место в системном промпте, здесь они не защищают
- low Разделов верхнего уровня: 15. Похоже на несколько доменов в одном скилле
- low Ответ описан самодельной разметкой (13 тегов): типизированный вызов надёжнее
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +5В description нет примеров фраз, по которым скилл должен срабатывать
- +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
- +1Лицензия не указана
- +2Инструкции на одном языке
- +3Длина description 738 символов: достаточно сигнала, не съедает бюджет
- +4Структура: 28 заголовков
- +3Пошаговые инструкции: 67 пунктов
- +3Формат ответа описан явно
- +4Есть примеры (8 блоков кода)
- +4Справочные файлы упоминаются в инструкциях (9 из 9)
- +3Все 2 скриптов описаны в инструкциях
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 84.