CC veritier
Врата доверия агента для вызовов инструментов. Агенты не должны действовать без шлюза и доказательств. attest_action ищет действие в системе записей — npm, PyPI, CourtListener, SEC EDGAR, Кодексе США или предоставленном вами корпусе политик — и блокирует вызов, если запись отсутствует. Каждое решение представляет собой реконструируемую, отзываемую рабочую бумагу с подписью Ed25519 (Claim Credential), а не сертификат истинности. Также извлекает и проверяет утверждения, а также сканирует документы. Подключается через MCP Streamable HTTP, поэтому ничего устанавливать не нужно.
машинный переводПоказать оригиналСкрыть оригинал«Agent Trust Gate for tool calls. Agents should not act without a gate…»
Agent Trust Gate for tool calls. Agents should not act without a gate and evidence. attest_action looks the action up in a system of record - npm, PyPI, CourtListener, SEC EDGAR, the U.S. Code, or a policy corpus you supply - and blocks the call if the record isn't there. Each decision is a reconstructable, revocable Ed25519-signed workpaper (Claim Credential), not a certificate of truth. Also extracts and verifies claims and scans documents. Connects over MCP Streamable HTTP, so there is nothing to install.
Врата доверия агента для вызовов инструментов.
Как процесс C 63/100 · Есть пробелы — слабые места: входы и предусловия, согласованность, стоимость исполнения
Чем это грозит
Находки средней серьёзности: скорее всего скилл честный, но прочитайте, что именно насторожило сканер.
Ниже описан худший случай для этой категории. Здесь находка средней серьёзности: guard увидел признак, но не доказательство.
Инструкции или скрипты отправляют данные наружу: переменные окружения, ключи, содержимое файлов, историю чата. Вы можете не заметить этого в диалоге, потому что агент выполнит отправку как «часть задачи».
Если отправка не нужна для задачи, уберите её: каталоги помечают такие скиллы как подозрительные и снимают с выдачи. Если нужна, назовите адрес явно, объясните, что именно уходит, и дайте пользователю выключатель.
Как улучшить
- Тело SKILL.md длиннее 5 000 токенов: вынесите справочные детали в references/ и подключайте по необходимости.
- Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
- spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.
Находки guard · 21
✓ Критических и высоких находок нет
Средние и низкие: 21
-
средняя Утечка данных
net-redirectable-api-keyjavascript/quickstart/test_integration.mjs:15Скрипт отправляет API-ключ на хост из переменной окружения — ключ можно перенаправить на другой серверAPI key + configurable base URL from environment
-
средняя Утечка данных
net-credential-usejavascript/use-cases/informational_credential.mjs:55Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис)const pub = await fetch(`${API_URL}/v1/credentials/${cred.id}`); -
средняя Утечка данных
exfil-send-secrets-to-urlSKILL.md:56Инструкция отправить секреты/переписку на внешний адрес («отправляй только на …» — ограничение, а не эксфильтрация; документация security-скилла; хост вендора самого скилла)🔒 **SECURITY:** Only send your API key to `https://api.veritier.ai` - never to any other domain.
ограничениеsecurity-скиллvendor-host -
средняя Утечка данных
exfil-send-secrets-to-urlSKILL.md:590Инструкция отправить секреты/переписку на внешний адрес («отправляй только на …» — ограничение, а не эксфильтрация; документация security-скилла; хост вендора самого скилла)- Only send your API key to `https://api.veritier.ai`
ограничениеsecurity-скиллvendor-host -
низкая Секреты в коде
secret-high-entropy-tokenjavascript/package-lock.json:22Строка, похожая на токен (может быть id, хеш или секрет) (определение детектора / чёрного списка)"integrity": "sha5…GLi+2W/6ao+6Y7gu/RCwR…Kng==",
детектор -
низкая Секреты в коде
secret-high-entropy-tokenjavascript/package-lock.json:137Строка, похожая на токен (может быть id, хеш или секрет) (определение детектора / чёрного списка)"integrity": "sha5…GLw+xYSd…cqA==",
детектор -
низкая Секреты в коде
secret-high-entropy-tokenjavascript/package-lock.json:204Строка, похожая на токен (может быть id, хеш или секрет) (определение детектора / чёрного списка)"integrity": "sha5…FrF+LTRo…W3g==",
детектор -
низкая Секреты в коде
secret-high-entropy-tokenjavascript/package-lock.json:213Строка, похожая на токен (может быть id, хеш или секрет) (определение детектора / чёрного списка)"integrity": "sha5…A6j+hAmM…GbS+kf5c…csw==",
детектор -
низкая Секреты в коде
secret-high-entropy-tokenjavascript/package-lock.json:222Строка, похожая на токен (может быть id, хеш или секрет) (определение детектора / чёрного списка)"integrity": "sha5…5bm+c2gQ…aG5+esrLODihIorn+Pe6F…dXA==",
детектор -
низкая Утечка данных
read-dotenvjavascript/quickstart/extract_text.mjs:9Чтение файла .env (комментарий в коде)* 2. cp .env.example .env (then add your API key)
комментарий -
низкая Утечка данных
net-credential-usejavascript/quickstart/reconstruct_credential.mjs:34Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис) (документация security-скилла)const pub = await fetch(`${API_URL}/v1/credentials/${credId}`);security-скилл -
низкая Утечка данных
net-credential-usejavascript/quickstart/reconstruct_credential.mjs:61Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис) (документация security-скилла)const revoked = await fetch(`${API_URL}/v1/credentials/${credId}/revoke`, {security-скилл -
низкая Утечка данных
read-dotenvjavascript/quickstart/verify_text.mjs:9Чтение файла .env (комментарий в коде)* 2. cp .env.example .env (then add your API key)
комментарий -
низкая Утечка данных
read-dotenvjavascript/README.md:16Чтение файла .env (документация security-скилла)cp ../.env.example .env
security-скилл -
низкая Утечка данных
read-dotenvpython/quickstart/attest_action.py:15Чтение файла .env (тестовый файл / пример; в кавычках — упоминание, а не команда)2. cp .env.example .env (then add your API key)
тестовый файлв кавычках -
низкая Утечка данных
read-dotenvpython/quickstart/extract_text.py:10Чтение файла .env (в кавычках — упоминание, а не команда)2. cp .env.example .env (then add your API key)
в кавычках -
низкая Утечка данных
read-dotenvpython/quickstart/test_integration.py:11Чтение файла .env (тестовый файл / пример; в кавычках — упоминание, а не команда)3. cp .env.example .env and set VERITIER_TEST_KEY=vt_test_...
тестовый файлв кавычках -
низкая Утечка данных
read-dotenvpython/quickstart/validate_document.py:9Чтение файла .env (в кавычках — упоминание, а не команда)2. cp .env.example .env (then add your API key)
в кавычках -
низкая Утечка данных
read-dotenvpython/quickstart/verify_text.py:9Чтение файла .env (в кавычках — упоминание, а не команда)2. cp .env.example .env (then add your API key)
в кавычках -
низкая Утечка данных
read-dotenvpython/README.md:16Чтение файла .env (документация security-скилла)cp ../.env.example .env
security-скилл -
низкая Утечка данных
read-dotenvREADME.md:215Чтение файла .env (документация security-скилла)cp .env.example .env
security-скилл
Просканировано файлов: 42. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
По спецификации Agent Skills
- предупреждение
body-longтело SKILL.md ≈ 8033 токенов (рекомендуется < 5000); вынесите детали в references/ - заметка
frontmatter-keyнеизвестное поле фронтматтера "homepage"
Процессный рейтинг: все десять параметров 63/100
- 0Входы и предусловия. Не сказано, что нужно иметь на входе
- 30Повторный запуск. Изменяющих операций: 20, без проверки текущего состояния
- 40Согласованность. Имя во frontmatter (veritier) не совпадает с папкой (veritier-fact-checking)
- 40Стоимость исполнения. Тело инструкции 8033 токенов: вытесняет саму задачу из окна
- 60Инструменты и файлы. Используются инструменты (web, python), но во frontmatter они не объявлены
- 60Результат и критерий готовности. Формат результата описан, критерия завершения нет
- 85Шаги. Шагов: 44, расплывчатых формулировок: 1
- 100Когда включается. Сказано, когда применять и когда не применять
- 100Ошибки и развилки. Развилок: 1, есть раздел про ошибки
- 100Отчётность по ходу. Скилл сообщает о ходе работы
- medium Правила безопасности и запреты внутри скилла: их место в системном промпте, здесь они не защищают
- low Разделов верхнего уровня: 11. Похоже на несколько доменов в одном скилле
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +5В description нет примеров фраз, по которым скилл должен срабатывать
- +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
- -229 эмодзи в инструкциях: шум для модели
- +2Инструкции на одном языке
- +3Длина description 513 символов: достаточно сигнала, не съедает бюджет
- +4Структура: 40 заголовков
- +3Пошаговые инструкции: 44 пунктов
- +3Формат ответа описан явно
- +4Есть примеры (16 блоков кода)
- +1Лицензия указана
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 75.