C reddit-api
Read-only, normalized public-data reads of Reddit through the ReplyNodes fetcher Reddit public-read service: subreddit post listings, single post lookup with comments, and keyword search via one HTTPS gateway. Two authentication paths are supported — a Bearer workspace key for prepaid/team usage and an x402 v2 pay-per-call flow in USDC on Base for anonymous single-call usage. Normalized JSON, transparent bounded pages, and an explicit unsupported-capability matrix. Public reads only: no posting, voting, commenting, account, OAuth, or any other write/authenticated capability exists, and no Reddit credential material is involved.
- Безопасность 60%
- Качество 40%
- Тесты бонус
Чем это грозит
Находки средней серьёзности: скорее всего скилл честный, но прочитайте, что именно насторожило сканер.
Ниже описан худший случай для этой категории. Здесь находка средней серьёзности: guard увидел признак, но не доказательство.
Инструкции или скрипты отправляют данные наружу: переменные окружения, ключи, содержимое файлов, историю чата. Вы можете не заметить этого в диалоге, потому что агент выполнит отправку как «часть задачи».
Если отправка не нужна для задачи, уберите её: каталоги помечают такие скиллы как подозрительные и снимают с выдачи. Если нужна, назовите адрес явно, объясните, что именно уходит, и дайте пользователю выключатель.
Как улучшить
- Скажите в description, КОГДА применять скилл («используй, когда…», примеры запросов): это главный сигнал для срабатывания.
- Добавьте evals/evals.json с 4–6 реальными запросами и ожидаемыми ответами: тогда полная проверка использует ваши кейсы, а не черновик модели.
- Добавьте spec.yaml с триггерами и утверждениями (skilltest init): это контракт поведения для CI.
Находки guard · 8
✓ Критических и высоких находок нет
Средние и низкие: 8
-
средняя Утечка данных
net-credential-usereferences/scenarios.md:22Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис)curl -H "Authorization: Bearer $REDDIT_API_KEY" \
-
средняя Утечка данных
net-credential-usereferences/scenarios.md:29Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис)curl -H "Authorization: Bearer $REDDIT_API_KEY" \
-
средняя Утечка данных
net-credential-usereferences/scenarios.md:38Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис)curl -H "Authorization: Bearer $REDDIT_API_KEY" \
-
средняя Утечка данных
net-credential-usereferences/scenarios.md:45Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис)curl -H "Authorization: Bearer $REDDIT_API_KEY" \
-
средняя Утечка данных
net-credential-usereferences/scenarios.md:61Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис)curl -sS -H "Authorization: Bearer $REDDIT_API_KEY" \
-
низкая Секреты в коде
secret-high-entropy-tokenllms.txt:26Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)x402 v2 pay-per-call: The gateway answers a priced request with HTTP `402` plus an x402 v2 challenge body (asset `0x83…913` USDC on Base, network `eip155:8453`, amoun
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenSKILL.md:72Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)challenge body (asset `0x83…913` USDC
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenSKILL.md:106Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)applies here: asset `0x83…913`,
в кавычках
Просканировано файлов: 13. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
Lint
- предупреждение
frontmatter-yamlSKILL.md: фронтматтер не разбирается как YAML (YAML parse error: Nested mappings are not allowed in compact mappings at line 3, column 14: description: Read-only, normalized public-data reads of Reddit through the Repl… ^ ); поля прочитаны построчно. Обычная причина — двоеточие в незакавыченном значении - предупреждение
description-no-whendescription не говорит, КОГДА применять скилл (нет "use when / используй когда") - заметка
frontmatter-keyнеизвестное поле фронтматтера "title" - заметка
frontmatter-keyнеизвестное поле фронтматтера "mode" - заметка
frontmatter-keyнеизвестное поле фронтматтера "auth" - заметка
frontmatter-keyнеизвестное поле фронтматтера "homepage" - заметка
frontmatter-keyнеизвестное поле фронтматтера "keywords" - заметка
frontmatter-keyнеизвестное поле фронтматтера "search_terms" - заметка
frontmatter-keyнеизвестное поле фронтматтера "entrypoint" - заметка
frontmatter-keyнеизвестное поле фронтматтера "install_guide" - заметка
frontmatter-keyнеизвестное поле фронтматтера "source"
Процессная зрелость 61/100
- 0Входы и предусловия. Не сказано, что нужно иметь на входе
- 30Повторный запуск. Изменяющих операций: 3, без проверки текущего состояния
- 50Ошибки и развилки. Развилок: 0, есть раздел про ошибки
- 60Инструменты и файлы. Используются инструменты (web), но во frontmatter они не объявлены
- 60Результат и критерий готовности. Формат результата описан, критерия завершения нет
- 70Когда включается. Сказано, когда применять, но не сказано, когда не стоит
- 75Шаги. Шагов: 3
- 100Согласованность. Имя и обязательные поля на месте
- 100Стоимость исполнения. Тело инструкции 2954 токенов
- 100Отчётность по ходу. Скилл сообщает о ходе работы
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +5В description нет примеров фраз, по которым скилл должен срабатывать
- +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
- +2Инструкции на одном языке
- +3Длина description 635 символов: достаточно сигнала, не съедает бюджет
- +4Структура: 10 заголовков
- +3Пошаговые инструкции: 3 пунктов
- +3Формат ответа описан явно
- +4Есть примеры (12 блоков кода)
- +4Справочные файлы упоминаются в инструкциях (2 из 2)
- +1Лицензия указана
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 67.