SKILLEMALL.ai

FB browse

Быстрый headless-браузер для QA-тестирования и внутреннего тестирования сайтов. (gstack)

машинный переводПоказать оригиналСкрыть оригинал«Fast headless browser for QA testing and site dogfooding. (gstack)…»

Fast headless browser for QA testing and site dogfooding. (gstack)

Не рекомендуетсяесть критические или высокие находки безопасности · низкая оценка F
Lord1Egypt/RA-Skills Agent Skills автор: Lord1Egypt 80 файлов · 1 скрипт тело ≈ 13 639 токенов Открыть источникgithub.com проанализирован 3 дн назад

Быстрый headless-браузер для QA-тестирования и внутреннего тестирования сайтов.

Как процесс B 69/100 · Почти готов — слабые места: входы и предусловия, согласованность, стоимость исполнения

ПроцедураИИ и агентытип и темы размечены автоматически по тексту скилла
JSON
Технический рейтинг
F
33/100
безопасность, качество, тесты
Безопасность 60%
21
Качество 40%
52
Прогон на моделях
не было
Процессный рейтинг
B
69/100
Почти готов
Входы и предусловия вес 11
0
Согласованность вес 8
40
Стоимость исполнения вес 6
40
три самых слабых из десяти параметров · все десять

Чем это грозит

Скилл содержит фрагменты, которые в чужих руках стоят денег или данных. Ниже, что рискует потерять тот, кто установит, и что должен сделать автор.

Утечка данных
Если установить

Инструкции или скрипты отправляют данные наружу: переменные окружения, ключи, содержимое файлов, историю чата. Вы можете не заметить этого в диалоге, потому что агент выполнит отправку как «часть задачи».

Автору

Если отправка не нужна для задачи, уберите её: каталоги помечают такие скиллы как подозрительные и снимают с выдачи. Если нужна, назовите адрес явно, объясните, что именно уходит, и дайте пользователю выключатель.

Широкие права средняя серьёзность

Ниже описан худший случай для этой категории. Здесь находка средней серьёзности: guard увидел признак, но не доказательство.

Если установить

Скилл просит больше прав, чем нужно для задачи: широкий доступ к инструментам, секретные переменные окружения, бинарные файлы. Каждое лишнее право расширяет ущерб при ошибке или взломе.

Автору

Сузьте allowed-tools и список переменных до минимума, замените бинарники на исходники или скрипты, которые можно прочитать.

Обфускация средняя серьёзность

Ниже описан худший случай для этой категории. Здесь находка средней серьёзности: guard увидел признак, но не доказательство.

Если установить

В файлах есть невидимые символы, закодированные команды или спрятанные комментарии для модели. То, что вы читаете, отличается от того, что видит агент.

Автору

Уберите невидимые символы (часто они попадают из копипаста) и закодированные строки: их не пропустит ни один каталог. Инструкции для модели должны быть видны и человеку.

Как улучшить

  1. Разберите находки высокой серьёзности: каждая стоит 18 баллов безопасности. Если это ложное срабатывание, добавьте код правила в guard.allow в spec.yaml.
  2. Скажите в description, КОГДА применять скилл («используй, когда…», примеры запросов): это главный сигнал для агента.
  3. Тело SKILL.md длиннее 5 000 токенов: вынесите справочные детали в references/ и подключайте по необходимости.
Для прогона на моделях — необязательно
  • Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
  • spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.

Находки guard · 17

  • высокая Утечка данных intent-browser-credential-store SKILL.md:943
    Доступ к хранилищу паролей / cookies браузера
    | `cookie-import-browser [browser] [--domain d]` | Import cookies from installed Chromium browsers (opens picker, or use --domain for direct import) |
  • высокая Утечка данных intent-browser-credential-store src/welcome.html:194
    Доступ к хранилищу паролей / cookies браузера
    <p>Click <span class="hl">🍪 Cookies</span> in the sidebar to import login sessions from Chrome, Arc, or Brave. Browse authenticated pages <span class="hl">without logging in again</span>.</p>
Средние и низкие: 15
  • средняя Широкие права meta-broad-allowed-tools SKILL.md:1
    Заранее разрешены широкие инструменты: Bash
    allowed-tools: Bash Read AskUserQuestion
  • средняя Утечка данных intent-browser-credential-store src/commands.ts:133
    Доступ к хранилищу паролей / cookies браузера (в кавычках — упоминание, а не команда)
    'cookie-import-browser': { category: 'Interaction', description: 'Import cookies from installed Chromium browsers (opens picker, or use --domain for direct import)', usage: 'cookie-import-browser [bro
    в кавычках
  • средняя Утечка данных intent-browser-credential-store src/cookie-import-browser.ts:181
    Доступ к хранилищу паролей / cookies браузера (комментарий в коде)
    // Chrome 80+ on Windows stores cookies under Network/Cookies
    комментарий
  • средняя Утечка данных intent-browser-credential-store src/cookie-import-browser.ts:353
    Доступ к хранилищу паролей / cookies браузера (комментарий в коде)
    // Chrome 80+ on Windows stores cookies under Network/Cookies; fall back to Cookies
    комментарий
  • средняя Утечка данных intent-browser-credential-store src/cookie-import-browser.ts:791
    Доступ к хранилищу паролей / cookies браузера (комментарий в коде)
    * Extract cookies via Chrome DevTools Protocol. Launches Chrome headless with
    комментарий
  • средняя Утечка данных intent-browser-credential-store src/cookie-picker-routes.ts:251
    Доступ к хранилищу паролей / cookies браузера (в кавычках — упоминание, а не команда)
    message: `Cookies use App-Bound Encryption (v20). Close ${browser}, retry, or use /connect-chrome to browse with your real browser directly.`,
    в кавычках
  • средняя Обфускация uni-zero-width src/server.ts:133
    Невидимые символы нулевой ширины (возможен скрытый текст) (3 шт.)
    const stripped = raw.replace(/[\s ␀-␀␀]/g, '');
  • низкая Опасные команды cmd-background-process src/cli.ts:331
    Запуск фонового / автозапускаемого процесса (комментарий в коде)
    // loop — it does NOT call setsid(), so the spawned server stays in the
    комментарий
  • низкая Опасные команды cmd-background-process src/cli.ts:338
    Запуск фонового / автозапускаемого процесса (комментарий в коде)
    // which calls setsid() so the server becomes its own session leader
    комментарий
  • низкая Подмена инструкций en-ignore-previous src/cli.ts:726
    Фраза-перехват ("ignore previous instructions") (с отрицанием — текст это запрещает)
    - "ignore previous instructions" or "new instructions:"
    с отрицанием
  • низкая Опасные команды cmd-persistence src/path-security.ts:37
    Механизм закрепления (cron / launchd / планировщик / автозапуск в реестре) (комментарий в коде; документация security-скилла)
    // Without this, a symlink at /tmp/evil.png → /etc/crontab passes the
    комментарийsecurity-скилл
  • низкая Опасные команды cmd-persistence src/path-security.ts:39
    Механизм закрепления (cron / launchd / планировщик / автозапуск в реестре) (комментарий в коде; документация security-скилла)
    // write follows the symlink to /etc/crontab.
    комментарийsecurity-скилл

Ещё 3 совпадений отнесены к цитатам в документации скилла по безопасности и не считаются находками.

Просканировано файлов: 68. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.

По спецификации Agent Skills

  • предупреждение description-no-when description не говорит, КОГДА применять скилл (нет "use when / используй когда")
  • предупреждение body-long тело SKILL.md ≈ 13639 токенов (рекомендуется < 5000); вынесите детали в references/
  • заметка frontmatter-key неизвестное поле фронтматтера "preamble-tier"
  • заметка frontmatter-key неизвестное поле фронтматтера "triggers"

Процессный рейтинг: все десять параметров 69/100

  • 0Входы и предусловия. Не сказано, что нужно иметь на входе
  • 40Согласованность. Имя во frontmatter (browse) не совпадает с папкой (garrytan_gstack_browse)
  • 40Стоимость исполнения. Тело инструкции 13639 токенов: вытесняет саму задачу из окна
  • 50Когда включается. Не сказано, при каком запросе скилл включается
  • 60Результат и критерий готовности. Формат результата описан, критерия завершения нет
  • 100Инструменты и файлы. Инструменты объявлены во frontmatter
  • 100Шаги. Шагов: 41
  • 100Ошибки и развилки. Развилок: 13, есть раздел про ошибки
  • 100Повторный запуск. Изменяющие операции проверяют текущее состояние
  • 100Отчётность по ходу. Скилл сообщает о ходе работы
  • medium Правила безопасности и запреты внутри скилла: их место в системном промпте, здесь они не защищают
  • low Разделов верхнего уровня: 20. Похоже на несколько доменов в одном скилле
  • low Ответ описан самодельной разметкой (56 тегов): типизированный вызов надёжнее

Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.

Сигналы качества

  • +5В description нет примеров фраз, по которым скилл должен срабатывать
  • +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
  • +3Длина description 66: рекомендуется 120–800 символов
  • -5В тексте остались TODO / заглушки
  • -31 из 1 скриптов не упомянуты в SKILL.md
  • +1Лицензия не указана
  • +2Инструкции на одном языке
  • +4Структура: 48 заголовков
  • +3Пошаговые инструкции: 41 пунктов
  • +3Формат ответа описан явно
  • +4Есть примеры (38 блоков кода)

База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 52.