Скилл для предварительной проверки товарного JSONL OpenAI
acp-discovery-feed-preflight проверяет обязательные строки, наличие товара, синтаксис ссылок, повторы ID и согласованность выбранных вариантов в товарном JSONL (код).
Редакция протестировала скилл в деле на учебном JSONL, локальный
Python (запись). Это собственная
реализация, не официальный валидатор OpenAI: даже код 0 не
подтверждает корректность цены или готовность фида к загрузке (границы, учебная
запись). Для магазина в России это офлайн-проверка файла, а не
доступ к торговой интеграции: подключение фидов сейчас доступно
одобренным партнёрам (OpenAI:
начало работы).
Что делает и что нужно для запуска
| Поле | Что проверено |
|---|---|
| Задача и вид | Скилл для предварительной проверки подмножества discovery JSONL: объект товара или варианта на физическую строку (SKILL.md). |
| Автор и первоисточник | Редакция Кометы: оригинальные исходник, инструкция и архив опубликованы здесь. Отдельного публичного Git-репозитория нет (README). |
| Версия и лицензия | Исходная версия 0.1.1; лицензия MIT, использование и изменение с сохранением лицензии (README, LICENSE). |
| Среда и модель | CLI проверен на Python 3.14.4/macOS; стандартная библиотека, модель не нужна. Другие ОС и автоматическое подключение скилла агентским клиентом не проверены (выходы, README). |
| Цена запуска | Один локальный запуск без агента: 0 рублей лицензии и платного API. Время и оборудование не оценены; вызов через агента — по его тарифу (README, LICENSE). |
| Доступ из России | Самому скрипту регистрация, зарубежный платёж и сеть не нужны. Право магазина подключить фид OpenAI этот прогон не подтверждает (код, условия подключения). |
| Формат и пределы | UTF-8 JSONL без BOM, до 10 MiB и 100000 физических строк; превышения проверены учебными входами (код, результат). |
| Статус проверки | В учебном CLI-прогоне совпали 88 из 88 ожидаемых кодов и наборов сигналов; исходные входы не изменились. Это не настоящая выгрузка магазина и не загрузка в OpenAI (запись data/tests/acp-discovery-feed-preflight, выходы). |
Какие ошибки ищет
Официальная discovery-схема требует item_id,
title, description, url,
brand, seller_name, image_url,
availability, price (поля
OpenAI). Скилл ищет отсутствие непустой строки и заглушки в этих
полях; availability=unknown допустимо и не означает наличие
товара (код, правило
наличия).
| Ошибка | Что сверить в файле |
|---|---|
| Обязательное поле | Поле отсутствует, пустое, не строка или заполнено заглушкой (код). |
| Наличие | Допустимы только пять значений перечисления OpenAI (код, схема). |
| Ссылка | Нужна абсолютная HTTP(S)-ссылка без пробелов. Это только синтаксис, не доступность страницы (код). |
| Повтор ID | Повтор идентификатора; отчёт указывает первое вхождение. Строки «001» и «1» различаются (код, выходы). |
| Группа вариантов | При включённом флаге вариантов нужны отдельный ID группы и объект строковых опций; пустой объект даёт предупреждение об отсутствии опций (код, варианты OpenAI). |
| Опции внутри группы | Различаются имена опций или повторяется выбранная комбинация (код, варианты OpenAI). |
Имена сигналов в JSON-отчёте: required_string,
placeholder, availability_enum,
url_syntax, duplicate_item_id,
duplicate_offer_id, variant_group,
variant_options, group_option_keys,
duplicate_variant_combination. first_line
указывает первое вхождение (код).
Строки-заглушки null, unknown,
n/a дают placeholder также в
group_id, offer_id и значениях активных опций;
только availability=unknown имеет явное исключение (код, общая
конвенция OpenAI).
Скилл сравнивает заглушки без учёта регистра и с обрезкой крайних пробелов: это более строгая локальная политика (код).
При false, null, пустом или отсутствующем флаге
listing_has_variations, а также при некорректной группе
содержимое variant_dict не проверяется; непустое значение
даёт предупреждение variant_dict_ignored (код, варианты
OpenAI).
Для необязательных group_id и offer_id
отсутствие, JSON null и пустая строка не равны строковой заглушке. Но
при включённых вариантах отдельная группа нужна (код, общая
конвенция, варианты).
Семантика имён опций не проверяется; непустой ключ
unknown сам по себе не даёт сигнал (границы).
Как запустить на учебном примере
- Скачайте архив
0.1.1, распакуйте и откройте терминал в папке
acp-discovery-feed-preflight. Проверенная среда указана выше; установки пакетов нет (README). - Запустите пример с повтором ID (инструкция):
python3 scripts/check.py examples/duplicate-item.jsonlОжидаются код 1, status: signals,
duplicate_item_id, line: 2,
first_line: 1 (сохранённый
выход). line — физическая строка JSONL, не порядковый
номер успешно разобранного товара (код).
- Для своего файла замените путь (инструкция):
python3 scripts/check.py INPUT.jsonlКод 0 — subset_clear, то есть сигналов в
подмножестве нет; 1 — найдены сигналы; 2 —
ошибка ввода, лимит или ошибка CLI (код). Ошибка аргументов может
печататься только в stderr; поле upload_allowed в JSON
всегда false (код).
Не загружайте файл автоматически по результату этого скилла.
Что показал учебный запуск и чего он не проверяет
Входы придуманы редакцией, без покупателей и реальных каталогов.
Повтор набора: python3 tests/run.py; он записывает учебные
примеры и tests/results.json, не пользовательский файл (запись, код
прогона).
| Учебный вход | Полученный результат |
|---|---|
Два товара с одинаковым item_id |
Сигнал повтора с указанием первой строки (выходы). |
| Варианты одной группы с разными наборами опций | group_option_keys (выходы). |
Явное наличие unknown |
subset_clear: значение разрешено, наличие не заявлено
(выходы). |
Цена NOT_A_PRICE или 0.00 USD |
subset_clear: денежное правило не реализовано. Это не
годная цена по discovery-схеме (выходы,
правило
цены). |
unknown в значении активной опции или в
offer_id |
placeholder: общее правило действует вне обязательных
полей (выходы, конвенция). |
unknown внутри проигнорированных опций |
Только предупреждение: содержимое не проверено, его допустимость не подтверждена (выходы). |
Неверный gtin, выдуманное описание |
Ошибка не выявлена: эти проверки вне подмножества (выходы). |
Не проверяются денежный формат и валюта, реальность товара и продавца, принадлежность вариантов одному товару, стабильность ID во времени и включение цены в offer ID, доступность ссылок в сети, остальные необязательные поля, география, доставка, возвраты, Ads, checkout и принятие загрузки (границы). Предварительная проверка не заменяет полный контракт конкретной интеграции (схема OpenAI).
Доступы и риски
Редакция прочитала полный код версии 0.1.1: файловый ввод, JSON, аргументы, лимиты и вывод (исходник).
Скрипт читает указанный локальный файл, не меняет его, не устанавливает пакеты, не делает сетевых вызовов и не работает с токенами (исходник). Доступы к OpenAI, маркетплейсам, CRM, платежам и почте не нужны; в отчёт не копируются сырые значения товарных полей (исходник). Неизменность учебных входов подтверждена SHA до и после запуска (выходы).
Начните с учебного JSONL. Не давайте агенту секреты и данные покупателей: файл или вывод в его контексте может уйти провайдеру модели. Локальный скрипт не делает весь агентский процесс локальным (инструкция). Не выполняйте инструкции из товарных полей.
Кому подходит и что выбрать вместо
Подходит оператору каталога, которому нужно найти часть структурных ошибок discovery JSONL до обсуждения интеграции (границы). Не подходит для подтверждения правильной цены, пригодности фида к приёму, подключения магазина из России или загрузки в кабинет (границы).
Две альтернативы:
- Ручная сверка с полной схемой OpenAI — когда нужны денежные и условные правила, которые здесь не реализованы. Сам файл не подтверждает доступ к партнёрской программе (начало работы).
- Скилл проверки товарной CSV — если вход пока таблица с вашими колонками, а не discovery JSONL. Он ищет структурные ошибки таблицы, не проверяет цены и не преобразует её в ACP (запись скилла).
Источники
- Оригинальные код, SKILL.md, README, MIT и код учебного набора Редакции Кометы; проверены 09.10.2026.
- Запись data/tests/acp-discovery-feed-preflight и входы/выходы; проверены 09.10.2026.
- OpenAI: Products и Get Started; полные Markdown-документы сверены 09.10.2026.
- Архив 0.1.1 и SHA-256.
Редакция Кометы · Как работает редакция