BD ship
Статический хостинг через ShipStatic. Используйте, когда пользователь хочет развернуть веб-сайт, загрузить файлы, управлять развертываниями, настроить домены или опубликовать статические файлы на shipstatic.com.
машинный переводПоказать оригиналСкрыть оригинал«Static hosting via ShipStatic. Use when the user wants to deploy a web…»
Static hosting via ShipStatic. Use when the user wants to deploy a website, upload files, manage deployments, set up domains, or publish static files to shipstatic.com.
Статический хостинг через ShipStatic.
Как процесс D 37/100 · Процесс не доведён — слабые места: шаги, результат и критерий готовности, входы и предусловия
Чем это грозит
Находки средней серьёзности: скорее всего скилл честный, но прочитайте, что именно насторожило сканер.
Ниже описан худший случай для этой категории. Здесь находка средней серьёзности: guard увидел признак, но не доказательство.
Инструкции или скрипты отправляют данные наружу: переменные окружения, ключи, содержимое файлов, историю чата. Вы можете не заметить этого в диалоге, потому что агент выполнит отправку как «часть задачи».
Если отправка не нужна для задачи, уберите её: каталоги помечают такие скиллы как подозрительные и снимают с выдачи. Если нужна, назовите адрес явно, объясните, что именно уходит, и дайте пользователю выключатель.
Как улучшить
- Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
- spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.
Находки guard · 18
✓ Критических и высоких находок нет
Средние и низкие: 18
-
средняя Утечка данных
net-redirectable-api-keysrc/node/core/config.ts:111Скрипт отправляет API-ключ на хост из переменной окружения — ключ можно перенаправить на другой серверAPI key + configurable base URL from environment
-
средняя Утечка данных
net-redirectable-api-keytests/integration/authentication-flow.test.ts:237Скрипт отправляет API-ключ на хост из переменной окружения — ключ можно перенаправить на другой серверAPI key + configurable base URL from environment
-
низкая Секреты в коде
secret-high-entropy-tokenexamples/auth-lifecycle-example.ts:32Строка, похожая на токен (может быть id, хеш или секрет) (значение-заглушка)async function exam…als() {заглушка -
низкая Секреты в коде
secret-high-entropy-tokenexamples/auth-lifecycle-example.ts:74Строка, похожая на токен (может быть id, хеш или секрет) (значение-заглушка)async function exam…ide() {заглушка -
низкая Секреты в коде
secret-high-entropy-tokenexamples/auth-lifecycle-example.ts:175Строка, похожая на токен (может быть id, хеш или секрет) (значение-заглушка)exam…als,
заглушка -
низкая Секреты в коде
secret-high-entropy-tokenexamples/auth-lifecycle-example.ts:177Строка, похожая на токен (может быть id, хеш или секрет) (значение-заглушка)exam…ide,
заглушка -
низкая Секреты в коде
secret-labelled-tokenexamples/node/index.js:7Токен / ключ рядом с меткой (формат неизвестен — проверьте, что это не живой секрет) (тестовый файл / пример)apiKey: 'ship…160'
тестовый файл -
низкая Секреты в коде
secret-password-literalexamples/node/index.js:7Захардкоженный пароль / ключ (возможно, пример) (тестовый файл / пример)apiKey: 'ship…160'
тестовый файл -
низкая Секреты в коде
secret-high-entropy-tokenexamples/node/pnpm-lock.yaml:21Строка, похожая на токен (может быть id, хеш или секрет) (тестовый файл / пример)resolution: {integrity: sha5…N4i+loJK…XRh+L1bd…QUL+rGqFg==}тестовый файл -
низкая Секреты в коде
secret-high-entropy-tokenexamples/node/pnpm-lock.yaml:45Строка, похожая на токен (может быть id, хеш или секрет) (тестовый файл / пример)resolution: {integrity: sha5…vZS+VIDU…jX4+qx9M…saQ==}тестовый файл -
низкая Секреты в коде
secret-high-entropy-tokenexamples/node/pnpm-lock.yaml:53Строка, похожая на токен (может быть id, хеш или секрет) (тестовый файл / пример)resolution: {integrity: sha5…gNv+nCpq…HaB+8Zxq5W6Q==}тестовый файл -
низкая Секреты в коде
secret-high-entropy-tokenexamples/node/pnpm-lock.yaml:70Строка, похожая на токен (может быть id, хеш или секрет) (тестовый файл / пример)resolution: {integrity: sha5…Loy/Rxalv2kr+lqMlUnrDWV+3j4p…IHu+HtC7…g8A==}тестовый файл -
низкая Секреты в коде
secret-high-entropy-tokenexamples/node/pnpm-lock.yaml:77Строка, похожая на токен (может быть id, хеш или секрет) (тестовый файл / пример)resolution: {integrity: sha5…cpK+HEbenA/HiEAkkUwcZIIB/tgWq…MDQ==}тестовый файл -
низкая Секреты в коде
secret-high-entropy-tokenpnpm-lock.yaml:115Строка, похожая на токен (может быть id, хеш или секрет)resolution: {integrity: sha5…SzS+cfgl…B0A==} -
низкая Секреты в коде
secret-high-entropy-tokenpnpm-lock.yaml:127Строка, похожая на токен (может быть id, хеш или секрет)resolution: {integrity: sha5…CNV+7cXy…ufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==} -
низкая Секреты в коде
secret-high-entropy-tokenpnpm-lock.yaml:197Строка, похожая на токен (может быть id, хеш или секрет)resolution: {integrity: sha5…cAz+ivBu…Lvw==} -
низкая Секреты в коде
secret-high-entropy-tokenpnpm-lock.yaml:269Строка, похожая на токен (может быть id, хеш или секрет)resolution: {integrity: sha5…IxX/wd5n…MGF+pv6g…i2Z+Wnj9/KjGz…4Eg==} -
низкая Секреты в коде
secret-high-entropy-tokenpnpm-lock.yaml:281Строка, похожая на токен (может быть id, хеш или секрет)resolution: {integrity: sha5…BQM/qZ3R+9TEU…es4+qu1b…BFA==}
Просканировано файлов: 62. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
По спецификации Agent Skills
✓ По спецификации Agent Skills замечаний нет
Процессный рейтинг: все десять параметров 37/100
- 0Шаги. Инструкция сплошным текстом, шаги не выделены
- 0Результат и критерий готовности. Не сказано, что считать результатом
- 0Входы и предусловия. Не сказано, что нужно иметь на входе
- 0Ошибки и развилки. Линейный процесс без обработки сбоев
- 0Отчётность по ходу. Скилл ничего не сообщает по ходу работы
- 30Повторный запуск. Изменяющих операций: 2, без проверки текущего состояния
- 40Согласованность. Имя во frontmatter (ship) не совпадает с папкой (shipstatic)
- 70Когда включается. Сказано, когда применять, но не сказано, когда не стоит
- 100Инструменты и файлы. Внешние инструменты не нужны
- 100Стоимость исполнения. Тело инструкции 424 токенов
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +5В description нет примеров фраз, по которым скилл должен срабатывать
- +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
- +3Нет пошаговых инструкций или чек-листа
- +3Формат ответа не описан: модель каждый раз решает сама
- +1Лицензия не указана
- +2Инструкции на одном языке
- +3Длина description 168 символов: достаточно сигнала, не съедает бюджет
- +4Структура: 6 заголовков
- +4Есть примеры (6 блоков кода)
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 81.