CD client-side
Уязвимости в коде, доставляемом браузером — JS/TS, JSX/TSX, Vue, Svelte, Angular, HTML, шаблоны, конфигурация бандлера и Docker. Приемники DOM XSS и выполнения кода, секреты в бандлах или config.js, встраиваемые в сборку переменные окружения REACT_APP_/NEXT_PUBLIC_/VITE_, карты исходного кода и серверы разработки, поставляемые в образах, токены в localStorage или не httpOnly cookie, декодирование JWT на стороне клиента, postMessage без проверки origin, разрешительный CORS/credentials, непроверенные редиректы, загрязнение прототипа, отсутствующий SRI, уязвимые пины package.json — и прежде всего решения безопасности, принятые только на фронтенде (отключенные кнопки, скрытые поля, ворота рендеринга is_admin, вычисляемый на стороне клиента user_id), которые сервер никогда не повторяет. Поставляется probe.sh, который сканирует все классы приемников за один проход. Активируется для frontend/, public/, static/, src/components/, конфигурации бандлера или файлов .js/.jsx/.ts/.tsx/.vue/.svelte/.html.
машинный переводПоказать оригиналСкрыть оригинал«Weaknesses in browser-delivered code — JS/TS, JSX/TSX, Vue, Svelte, An…»
Weaknesses in browser-delivered code — JS/TS, JSX/TSX, Vue, Svelte, Angular, HTML, templates, bundler and Docker config. DOM XSS and code-exec sinks, secrets in bundles or config.js, build-inlined REACT_APP_/NEXT_PUBLIC_/VITE_ env, source maps and dev servers shipped in images, tokens in localStorage or non-httpOnly cookies, client-side JWT decoding, postMessage without an origin check, permissive CORS/credentials, unvalidated redirects, prototype pollution, missing SRI, vulnerable package.json pins — and above all security decisions made only in the frontend (disabled buttons, hidden fields, is_admin render gates, a client-computed user_id) that the server never repeats. Ships probe.sh, which greps every sink class in one pass. Activate on frontend/, public/, static/, src/components/, bundler config, or .js/.jsx/.ts/.tsx/.vue/.svelte/.html files.
Уязвимости в коде, доставляемом браузером — JS/TS, JSX/TSX, Vue, Svelte, Angular, HTML, шаблоны, конфигурация бандлера и Docker.
Как процесс D 43/100 · Процесс не доведён — слабые места: результат и критерий готовности, когда включается, входы и предусловия
Как улучшить
- Скажите в description, КОГДА применять скилл («используй, когда…», примеры запросов): это главный сигнал для агента.
- Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
- spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.
Находки guard · 0
✓ Критических и высоких находок нет
Просканировано файлов: 2. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
По спецификации Agent Skills
- предупреждение
description-no-whendescription не говорит, КОГДА применять скилл (нет "use when / используй когда")
Процессный рейтинг: все десять параметров 43/100
- 0Результат и критерий готовности. Не сказано, что считать результатом
- 0Входы и предусловия. Не сказано, что нужно иметь на входе
- 0Ошибки и развилки. Линейный процесс без обработки сбоев
- 0Отчётность по ходу. Скилл ничего не сообщает по ходу работы
- 20Когда включается. Не сказано, при каком запросе скилл включается
- 30Повторный запуск. Изменяющих операций: 5, без проверки текущего состояния
- 60Инструменты и файлы. Используются инструменты (node), но во frontmatter они не объявлены
- 100Шаги. Шагов: 24
- 100Согласованность. Имя и обязательные поля на месте
- 100Стоимость исполнения. Тело инструкции 1505 токенов
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +5В description нет примеров фраз, по которым скилл должен срабатывать
- +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
- +3Длина description 859: рекомендуется 120–800 символов
- +3Формат ответа не описан: модель каждый раз решает сама
- +4Нет примеров входа/выхода
- +1Лицензия не указана
- +2Инструкции на одном языке
- +4Структура: 7 заголовков
- +3Пошаговые инструкции: 24 пунктов
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 65.