BF sportsinc-sportslink
Адаптер API Sports Inc SportsLink — извлечение счетов («документов») дилера из Invoice Center Sports Inc SportsWeb и пометка их как использованных. Sports Inc — это покупательская группа, которая НЕ отправляет отдельные счета поставщиков; ее REST API SportsLink — это место, где находятся счета. Используйте, когда вам нужно получить счета Sports Inc для платежей — «получить счета Sports Inc», «извлечь документы SportsLink», «получить счета SI за этот месяц для сопоставления с PO». Это только ИСХОДНЫЙ адаптер: он аутентифицирует, разбивает на страницы, нормализует каждый документ SI в общую форму счета (номер PO, номер/дата счета, строки[], сборы, итог, является ли кредитом) и помечает документы как исторические после импорта. Некоторые документы отсканированы, а не EDI, поэтому API возвращает их общие суммы заголовка БЕЗ позиций (`has_lines: false`) — каждое извлечение называет их в `needs_line_recovery`, и они не подлежат оплате в том виде, в котором возвращаются. Для каждого из них этот навык входит в портал SportsWeb, загружает PDF-счет, выполняет OCR отсканированного счета поставщика в текст для чтения агентом, а затем сверяет извлеченные позиции с общей суммой товаров самого API перед тем, как что-либо будет подлежать оплате. Он не зависит от клиента (каждый дилер Sports Inc использует этот же API) и не взаимодействует с ERP — объедините его с рабочим процессом платежей (например, `drivethru-payable-matching`) для сопоставления с PO и создания счета.
машинный переводПоказать оригиналСкрыть оригинал«Sports Inc SportsLink API adapter — pull a dealer's invoices ("documen…»
Sports Inc SportsLink API adapter — pull a dealer's invoices ("documents") from the Sports Inc SportsWeb Invoice Center and mark them consumed. Sports Inc is a buying group that does NOT send individual vendor invoices; its SportsLink REST API is where the invoices live. Use when you need to retrieve Sports Inc invoices for payables — "get the Sports Inc invoices", "pull SportsLink documents", "fetch this month's SI invoices to match against POs". This is the SOURCE adapter only: it authenticates, pages, normalises each SI document into a common invoice shape (po_number, invoice_number/date, lines[], charges, total, is_credit), and marks documents historical once imported. Some documents are scanned rather than EDI, so the API returns their header totals with NO line items (`has_lines: false`) — every retrieval names those in `needs_line_recovery`, and they are not billable as returned. For each, this skill logs in to the SportsWeb portal, downloads the invoice PDF, OCRs the scanned vendor invoice into text for the agent to read, and then checks the extracted lines against the API's own merchandise total before any of it is billable. It is customer-agnostic (every Sports Inc dealer uses this same API) and touches no ERP — pair it with a payables workflow (e.g. `drivethru-payable-matching`) to match against POs and create the bill.
Адаптер API Sports Inc SportsLink — извлечение счетов («документов») дилера из Invoice Center Sports Inc SportsWeb и пометка их как использованных.
Как процесс F 57/100 · Не запустится — Скилл ссылается на файлы, которых нет в архиве: references/sportsinc_payables.md
Чем это грозит
Находки средней серьёзности: скорее всего скилл честный, но прочитайте, что именно насторожило сканер.
Ниже описан худший случай для этой категории. Здесь находка средней серьёзности: guard увидел признак, но не доказательство.
Инструкции или скрипты отправляют данные наружу: переменные окружения, ключи, содержимое файлов, историю чата. Вы можете не заметить этого в диалоге, потому что агент выполнит отправку как «часть задачи».
Если отправка не нужна для задачи, уберите её: каталоги помечают такие скиллы как подозрительные и снимают с выдачи. Если нужна, назовите адрес явно, объясните, что именно уходит, и дайте пользователю выключатель.
Как улучшить
- Сократите description до 1024 символов.
- Тело SKILL.md длиннее 5 000 токенов: вынесите справочные детали в references/ и подключайте по необходимости.
- В тексте есть ссылки на отсутствующие файлы: добавьте файлы или уберите ссылки.
- Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
- spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.
Находки guard · 2
✓ Критических и высоких находок нет
Средние и низкие: 2
-
средняя Утечка данных
net-redirectable-api-keyscripts/sportslink.py:112Скрипт отправляет API-ключ на хост из переменной окружения — ключ можно перенаправить на другой серверAPI key + configurable base URL from environment
-
низкая Секреты в коде
secret-high-entropy-tokenreferences/sportsweb_flow_notes.md:43Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)a useful property: `ctl0…ces` is
в кавычках
Просканировано файлов: 11. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
По спецификации Agent Skills
- ошибка
description-longdescription 1353 символов, лимит 1024 - предупреждение
body-longтело SKILL.md ≈ 6679 токенов (рекомендуется < 5000); вынесите детали в references/ - предупреждение
missing-refссылка на отсутствующий файл: references/sportsinc_payables.md - заметка
frontmatter-keyнеизвестное поле фронтматтера "emoji" - заметка
frontmatter-keyнеизвестное поле фронтматтера "homepage"
Процессный рейтинг: все десять параметров 57/100
- 0Инструменты и файлы. Не хватает 1 файла(ов): references/sportsinc_payables.md
- 0Входы и предусловия. Не сказано, что нужно иметь на входе
- 20Когда включается. Не сказано, при каком запросе скилл включается
- 70Стоимость исполнения. Тело инструкции 6679 токенов
- 85Шаги. Шагов: 32, расплывчатых формулировок: 1
- 100Результат и критерий готовности. Формат результата и критерий готовности описаны
- 100Ошибки и развилки. Развилок: 1, есть раздел про ошибки
- 100Согласованность. Имя и обязательные поля на месте
- 100Повторный запуск. Изменяющие операции проверяют текущее состояние
- 100Отчётность по ходу. Скилл сообщает о ходе работы
- medium Правила безопасности и запреты внутри скилла: их место в системном промпте, здесь они не защищают
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
- +3Длина description 1352: рекомендуется 120–800 символов
- -34 из 6 скриптов не упомянуты в SKILL.md
- +1Лицензия не указана
- +2Инструкции на одном языке
- +5В description 4 примера фраз-триггеров в кавычках
- +4Структура: 17 заголовков
- +3Пошаговые инструкции: 32 пунктов
- +3Формат ответа описан явно
- +4Есть примеры (13 блоков кода)
- +4Справочные файлы упоминаются в инструкциях (3 из 3)
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 47.