FB api
Интегрирует и отлаживает сторонние REST и GraphQL API: аутентификация, лимиты запросов, пагинация, веб-хуки, со справочником для 147 сервисов. Используйте при вызове Stripe, OpenAI, GitHub, Slack, Twilio или любой внешней службы, когда запрос, который должен работать, возвращает 401, 403 или 429, истекает по времени, вызывает ошибку CORS или молча возвращает неверные данные, при выборе потока OAuth, подписи запросов, добавлении повторных попыток с экспоненциальной задержкой и ключами идемпотентности, проверке подписей веб-хуков, потреблении потоков SSE, загрузке файлов, опросе асинхронных заданий, кэшировании с помощью ETag или синхронизации данных API в локальную базу данных — с особенностями для каждого сервиса и примерами curl. Не для проектирования или создания собственного API.
машинный переводПоказать оригиналСкрыть оригинал«Integrates and debugs third-party REST and GraphQL APIs: auth, rate li…»
Integrates and debugs third-party REST and GraphQL APIs: auth, rate limits, pagination, webhooks, with reference for 147 services. Use when calling Stripe, OpenAI, GitHub, Slack, Twilio, or any external service, when a request that should work returns 401, 403, or 429, times out, hits a CORS error, or silently returns wrong data, when choosing an OAuth flow, signing requests, adding retries with backoff and idempotency keys, verifying webhook signatures, consuming SSE streams, uploading files, polling async jobs, caching with ETags, or syncing API data into a local database — with per-service gotchas and curl examples. Not for designing or building your own API.
Интегрирует и отлаживает сторонние REST и GraphQL API: аутентификация, лимиты запросов, пагинация, веб-хуки, со справочником для 147 сервисов.
Как процесс B 68/100 · Почти готов — слабые места: входы и предусловия, отчётность по ходу
Чем это грозит
Скилл содержит фрагменты, которые в чужих руках стоят денег или данных. Ниже, что рискует потерять тот, кто установит, и что должен сделать автор.
Инструкции или скрипты отправляют данные наружу: переменные окружения, ключи, содержимое файлов, историю чата. Вы можете не заметить этого в диалоге, потому что агент выполнит отправку как «часть задачи».
Если отправка не нужна для задачи, уберите её: каталоги помечают такие скиллы как подозрительные и снимают с выдачи. Если нужна, назовите адрес явно, объясните, что именно уходит, и дайте пользователю выключатель.
Как улучшить
- Разберите находки высокой серьёзности: каждая стоит 18 баллов безопасности. Если это ложное срабатывание, добавьте код правила в guard.allow в spec.yaml.
- Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
- spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.
Находки guard · 51
-
высокая Утечка данных
exfil-webhook-urlapis/communication.md:720URL вебхука / коллбэка, типичный для эксфильтрации (проверьте адрес)https://api.telegram.org/bot{TOKEN}
Средние и низкие: 50
-
средняя Утечка данных
net-credential-useapis/communication.md:672Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис)curl -X POST "https://discord.com/api/webhooks/$WEBHOOK_ID/$WEBHOOK_TOKEN" \
-
средняя Утечка данных
net-credential-useapis/communication.md:725Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис)curl "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage" \
-
средняя Утечка данных
net-credential-useapis/communication.md:732Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис)curl "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage" \
-
средняя Утечка данных
net-credential-useapis/communication.md:743Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис)curl "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendPhoto" \
-
средняя Утечка данных
net-credential-useapis/communication.md:751Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис)curl "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/getUpdates?offset=0&limit=10"
-
средняя Утечка данных
exfil-secret-in-urlapis/crm.md:238Учётные данные в строке запроса URL (для части API это норма — проверьте, что хост нужный) (в кавычках — упоминание, а не команда)curl "https://api.pipedrive.com/v1/deals?api_token=…"
в кавычках -
средняя Утечка данных
net-credential-useapis/crm.md:238Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис)curl "https://api.pipedrive.com/v1/deals?api_token=…"
-
средняя Утечка данных
exfil-secret-in-urlapis/crm.md:249Учётные данные в строке запроса URL (для части API это норма — проверьте, что хост нужный) (в кавычках — упоминание, а не команда)curl "https://api.pipedrive.com/v1/deals?api_token=…&status=open&limit=50"
в кавычках -
средняя Утечка данных
net-credential-useapis/crm.md:249Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис)curl "https://api.pipedrive.com/v1/deals?api_token=…&status=open&limit=50"
-
средняя Утечка данных
exfil-secret-in-urlapis/crm.md:254Учётные данные в строке запроса URL (для части API это норма — проверьте, что хост нужный) (в кавычках — упоминание, а не команда)curl -X POST "https://api.pipedrive.com/v1/deals?api_token=…" \
в кавычках -
средняя Утечка данных
net-credential-useapis/crm.md:254Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис)curl -X POST "https://api.pipedrive.com/v1/deals?api_token=…" \
-
средняя Утечка данных
exfil-secret-in-urlapis/crm.md:267Учётные данные в строке запроса URL (для части API это норма — проверьте, что хост нужный) (в кавычках — упоминание, а не команда)curl "https://api.pipedrive.com/v1/persons/123?api_token=…"
в кавычках -
средняя Утечка данных
net-credential-useapis/crm.md:267Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис)curl "https://api.pipedrive.com/v1/persons/123?api_token=…"
-
средняя Утечка данных
exfil-secret-in-urlapis/crm.md:272Учётные данные в строке запроса URL (для части API это норма — проверьте, что хост нужный) (в кавычках — упоминание, а не команда)curl -X POST "https://api.pipedrive.com/v1/activities?api_token=…" \
в кавычках -
средняя Утечка данных
net-credential-useapis/crm.md:272Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис)curl -X POST "https://api.pipedrive.com/v1/activities?api_token=…" \
-
средняя Утечка данных
net-credential-useapis/database.md:453Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис)curl --digest -u "$ATLAS_PUBLIC_KEY:$ATLAS_PRIVATE_KEY" \
-
средняя Утечка данных
net-credential-useapis/database.md:461Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис)curl --digest -u "$ATLAS_PUBLIC_KEY:$ATLAS_PRIVATE_KEY" \
-
средняя Утечка данных
net-credential-useapis/productivity.md:869Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис)curl "https://api.trello.com/1/members/me?key=…&token=…"
-
средняя Утечка данных
net-credential-useapis/productivity.md:886Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис)curl "https://api.trello.com/1/boards/$BOARD_ID?key=…&token=…"
-
средняя Утечка данных
net-credential-useapis/productivity.md:891Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис)curl "https://api.trello.com/1/boards/$BOARD_ID/lists?key=…&token=…"
-
средняя Утечка данных
net-credential-useapis/productivity.md:896Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис)curl "https://api.trello.com/1/boards/$BOARD_ID/cards?key=…&token=…"
-
средняя Утечка данных
net-credential-useapis/productivity.md:901Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис)curl -X POST "https://api.trello.com/1/cards?key=…&token=…" \
-
низкая Утечка данных
exfil-secret-in-urlapis/auth-providers.md:363Учётные данные в строке запроса URL (для части API это норма — проверьте, что хост нужный) (значение-заглушка)https://test.stytch.com/v1/public/oauth/google/start?public_token=…
заглушка -
низкая Утечка данных
exfil-webhook-urlapis/communication.md:672URL вебхука / коллбэка, типичный для эксфильтрации (проверьте адрес) (значение-заглушка)curl -X POST "https://discord.com/api/webhooks/$WEBHOOK_ID/$WEBHOOK_TOKEN" \
заглушка -
низкая Утечка данных
exfil-webhook-urlapis/communication.md:725URL вебхука / коллбэка, типичный для эксфильтрации (проверьте адрес) (значение-заглушка)curl "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage" \
заглушка -
низкая Утечка данных
exfil-webhook-urlapis/communication.md:732URL вебхука / коллбэка, типичный для эксфильтрации (проверьте адрес) (значение-заглушка)curl "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage" \
заглушка -
низкая Утечка данных
exfil-webhook-urlapis/communication.md:743URL вебхука / коллбэка, типичный для эксфильтрации (проверьте адрес) (значение-заглушка)curl "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendPhoto" \
заглушка -
низкая Утечка данных
exfil-secret-in-urlapis/database.md:206Учётные данные в строке запроса URL (для части API это норма — проверьте, что хост нужный) (значение-заглушка)curl "https://$PROJECT_ID.firebaseio.com/users/user123.json?auth=…"
заглушка -
низкая Утечка данных
net-credential-useapis/database.md:206Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис) (адрес назначения — переменная конфигурации)curl "https://$PROJECT_ID.firebaseio.com/users/user123.json?auth=…"
переменный хост -
низкая Утечка данных
exfil-secret-in-urlapis/database.md:211Учётные данные в строке запроса URL (для части API это норма — проверьте, что хост нужный) (значение-заглушка)curl -X PUT "https://$PROJECT_ID.firebaseio.com/users/user123.json?auth=…" \
заглушка -
низкая Утечка данных
net-credential-useapis/database.md:211Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис) (адрес назначения — переменная конфигурации)curl -X PUT "https://$PROJECT_ID.firebaseio.com/users/user123.json?auth=…" \
переменный хост -
низкая Утечка данных
exfil-secret-in-urlapis/database.md:217Учётные данные в строке запроса URL (для части API это норма — проверьте, что хост нужный) (значение-заглушка)curl -X PATCH "https://$PROJECT_ID.firebaseio.com/users/user123.json?auth=…" \
заглушка -
низкая Утечка данных
net-credential-useapis/database.md:217Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис) (адрес назначения — переменная конфигурации)curl -X PATCH "https://$PROJECT_ID.firebaseio.com/users/user123.json?auth=…" \
переменный хост -
низкая Утечка данных
exfil-secret-in-urlapis/media.md:614Учётные данные в строке запроса URL (для части API это норма — проверьте, что хост нужный) (адрес назначения — известный публичный сервис; в кавычках — упоминание, а не команда)curl "https://www.googleapis.com/youtube/v3/videos?id=…&part=…&key=…"
известный сервисв кавычках -
низкая Утечка данных
net-credential-useapis/media.md:614Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис) (адрес назначения — известный публичный сервис)curl "https://www.googleapis.com/youtube/v3/videos?id=…&part=…&key=…"
известный сервис -
низкая Утечка данных
exfil-secret-in-urlapis/media.md:631Учётные данные в строке запроса URL (для части API это норма — проверьте, что хост нужный) (адрес назначения — известный публичный сервис; в кавычках — упоминание, а не команда)curl "https://www.googleapis.com/youtube/v3/videos?id=…&part=…&key=…"
известный сервисв кавычках -
низкая Утечка данных
net-credential-useapis/media.md:631Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис) (адрес назначения — известный публичный сервис)curl "https://www.googleapis.com/youtube/v3/videos?id=…&part=…&key=…"
известный сервис -
низкая Утечка данных
exfil-secret-in-urlapis/media.md:636Учётные данные в строке запроса URL (для части API это норма — проверьте, что хост нужный) (адрес назначения — известный публичный сервис; в кавычках — упоминание, а не команда)curl "https://www.googleapis.com/youtube/v3/search?q=cats&type=video&maxResults=10&key=…"
известный сервисв кавычках -
низкая Утечка данных
net-credential-useapis/media.md:636Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис) (адрес назначения — известный публичный сервис)curl "https://www.googleapis.com/youtube/v3/search?q=cats&type=video&maxResults=10&key=…"
известный сервис -
низкая Утечка данных
exfil-secret-in-urlapis/media.md:641Учётные данные в строке запроса URL (для части API это норма — проверьте, что хост нужный) (адрес назначения — известный публичный сервис; в кавычках — упоминание, а не команда)curl "https://www.googleapis.com/youtube/v3/channels?id=…&part=…&key=…"
известный сервисв кавычках -
низкая Утечка данных
net-credential-useapis/media.md:641Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис) (адрес назначения — известный публичный сервис)curl "https://www.googleapis.com/youtube/v3/channels?id=…&part=…&key=…"
известный сервис -
низкая Утечка данных
exfil-secret-in-urlapis/media.md:646Учётные данные в строке запроса URL (для части API это норма — проверьте, что хост нужный) (адрес назначения — известный публичный сервис; в кавычках — упоминание, а не команда)curl "https://www.googleapis.com/youtube/v3/playlistItems?playlistId=…&part=…&maxResults=50&key=…"
известный сервисв кавычках -
низкая Утечка данных
net-credential-useapis/media.md:646Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис) (адрес назначения — известный публичный сервис)curl "https://www.googleapis.com/youtube/v3/playlistItems?playlistId=…&part=…&maxResults=50&key=…"
известный сервис -
низкая Утечка данных
exfil-secret-in-urlapis/productivity.md:869Учётные данные в строке запроса URL (для части API это норма — проверьте, что хост нужный) (значение-заглушка)curl "https://api.trello.com/1/members/me?key=…&token=…"
заглушка -
низкая Утечка данных
exfil-secret-in-urlapis/productivity.md:886Учётные данные в строке запроса URL (для части API это норма — проверьте, что хост нужный) (значение-заглушка)curl "https://api.trello.com/1/boards/$BOARD_ID?key=…&token=…"
заглушка -
низкая Утечка данных
exfil-secret-in-urlapis/productivity.md:891Учётные данные в строке запроса URL (для части API это норма — проверьте, что хост нужный) (значение-заглушка)curl "https://api.trello.com/1/boards/$BOARD_ID/lists?key=…&token=…"
заглушка -
низкая Утечка данных
exfil-secret-in-urlapis/productivity.md:896Учётные данные в строке запроса URL (для части API это норма — проверьте, что хост нужный) (значение-заглушка)curl "https://api.trello.com/1/boards/$BOARD_ID/cards?key=…&token=…"
заглушка -
низкая Утечка данных
exfil-secret-in-urlapis/productivity.md:901Учётные данные в строке запроса URL (для части API это норма — проверьте, что хост нужный) (значение-заглушка)curl -X POST "https://api.trello.com/1/cards?key=…&token=…" \
заглушка -
низкая Утечка данных
net-credential-usecredentials.md:45Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис) (хост вендора самого скилла)curl https://api.stripe.com/v1/charges -H "Authorization: Bearer $API_KEY"
vendor-host -
низкая Утечка данных
net-credential-usecredentials.md:48Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис) (хост вендора самого скилла)curl https://api.stripe.com/v1/charges -H "Authorization: Bearer $STRIPE_PROD_API_KEY"
vendor-host
Просканировано файлов: 37. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
По спецификации Agent Skills
- заметка
frontmatter-keyнеизвестное поле фронтматтера "slug" - заметка
frontmatter-keyнеизвестное поле фронтматтера "homepage" - заметка
frontmatter-keyнеизвестное поле фронтматтера "changelog"
Процессный рейтинг: все десять параметров 68/100
- 0Входы и предусловия. Не сказано, что нужно иметь на входе
- 0Отчётность по ходу. Скилл ничего не сообщает по ходу работы
- 50Когда включается. Не сказано, при каком запросе скилл включается
- 60Инструменты и файлы. Используются инструменты (web, python), но во frontmatter они не объявлены
- 60Результат и критерий готовности. Формат результата описан, критерия завершения нет
- 100Шаги. Шагов: 40
- 100Ошибки и развилки. Развилок: 4, есть раздел про ошибки
- 100Согласованность. Имя и обязательные поля на месте
- 100Стоимость исполнения. Тело инструкции 3698 токенов
- 100Повторный запуск. Изменяющие операции проверяют текущее состояние
- medium Правила безопасности и запреты внутри скилла: их место в системном промпте, здесь они не защищают
- low Разделов верхнего уровня: 13. Похоже на несколько доменов в одном скилле
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +5В description нет примеров фраз, по которым скилл должен срабатывать
- +1Лицензия не указана
- +2Инструкции на одном языке
- +4Описание говорит, когда скилл НЕ применять
- +3Длина description 670 символов: достаточно сигнала, не съедает бюджет
- +4Структура: 13 заголовков
- +3Пошаговые инструкции: 40 пунктов
- +3Формат ответа описан явно
- +4Есть примеры (1 блоков кода)
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 88.