B switchbot-openapi
Control and query SwitchBot devices using the official OpenAPI (v1.1). Use when the user asks to list SwitchBot devices, get device status, send commands, query families/rooms/homes, manage scenes, or access AI MindClip recordings/summaries/todos. **This is the ONLY skill that can query 家庭信息, 房间信息, family, room, and home data.** Also handles AI MindClip (录音笔) APIs: 录音列表, 转写, 总结, 待办, 每日回忆, 每周总结. Requires SWITCHBOT_TOKEN and SWITCHBOT_SECRET.
- Безопасность 60%
- Качество 40%
- Тесты бонус
Чем это грозит
Находки средней серьёзности: скорее всего скилл честный, но прочитайте, что именно насторожило сканер.
Ниже описан худший случай для этой категории. Здесь находка средней серьёзности: guard увидел признак, но не доказательство.
Инструкции или скрипты отправляют данные наружу: переменные окружения, ключи, содержимое файлов, историю чата. Вы можете не заметить этого в диалоге, потому что агент выполнит отправку как «часть задачи».
Если отправка не нужна для задачи, уберите её: каталоги помечают такие скиллы как подозрительные и снимают с выдачи. Если нужна, назовите адрес явно, объясните, что именно уходит, и дайте пользователю выключатель.
Как улучшить
- Добавьте evals/evals.json с 4–6 реальными запросами и ожидаемыми ответами: тогда полная проверка использует ваши кейсы, а не черновик модели.
- Добавьте spec.yaml с триггерами и утверждениями (skilltest init): это контракт поведения для CI.
Находки guard · 5
✓ Критических и высоких находок нет
Средние и низкие: 5
-
средняя Утечка данных
net-credential-usescripts/execute_scene.sh:10Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис)curl -sS -X POST -H "Authorization: $SWITCHBOT_TOKEN" -H "sign: $SIGN" \
-
средняя Утечка данных
net-credential-usescripts/get_status.sh:10Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис)curl -sS -H "Authorization: $SWITCHBOT_TOKEN" -H "sign: $SIGN" \
-
средняя Утечка данных
net-credential-usescripts/list_devices.sh:9Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис)curl -sS -H "Authorization: $SWITCHBOT_TOKEN" -H "sign: $SIGN" -H "t: $T" -H "nonce: $NONCE" -H "Content-Type: application/json" -H "src: OpenClaw" "$BASE/v1.1/devices" | jq .
-
средняя Утечка данных
net-credential-usescripts/list_scenes.sh:9Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис)curl -sS -H "Authorization: $SWITCHBOT_TOKEN" -H "sign: $SIGN" \
-
средняя Утечка данных
net-credential-usescripts/send_command.sh:12Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис)curl -sS -X POST -H "Authorization: $SWITCHBOT_TOKEN" -H "sign: $SIGN" \
Просканировано файлов: 13. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
Lint
- предупреждение
frontmatter-yamlSKILL.md: фронтматтер не разбирается как YAML (YAML parse error: Nested mappings are not allowed in compact mappings at line 2, column 14: description: Control and query SwitchBot devices using the official OpenAPI (v1… ^ ); поля прочитаны построчно. Обычная причина — двоеточие в незакавыченном значении
Процессная зрелость 63/100
- 0Входы и предусловия. Не сказано, что нужно иметь на входе
- 30Повторный запуск. Изменяющих операций: 11, без проверки текущего состояния
- 40Согласованность. Имя во frontmatter (switchbot-openapi) не совпадает с папкой (switchbot-cloudapi)
- 60Инструменты и файлы. Используются инструменты (bash, web, node), но во frontmatter они не объявлены
- 60Результат и критерий готовности. Формат результата описан, критерия завершения нет
- 70Когда включается. Сказано, когда применять, но не сказано, когда не стоит
- 70Стоимость исполнения. Тело инструкции 4320 токенов
- 100Шаги. Шагов: 132
- 100Ошибки и развилки. Развилок: 1, есть раздел про ошибки
- 100Отчётность по ходу. Скилл сообщает о ходе работы
- low Ответ описан самодельной разметкой (61 тегов): типизированный вызов надёжнее
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +5В description нет примеров фраз, по которым скилл должен срабатывать
- +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
- -5В тексте остались TODO / заглушки
- +1Лицензия не указана
- +2Инструкции на одном языке
- +3Длина description 444 символов: достаточно сигнала, не съедает бюджет
- +4Структура: 17 заголовков
- +3Пошаговые инструкции: 132 пунктов
- +3Формат ответа описан явно
- +4Есть примеры (20 блоков кода)
- +4Справочные файлы упоминаются в инструкциях (2 из 2)
- +3Все 6 скриптов описаны в инструкциях
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 79.