медиа про еком + ии
Скилл

Скилл для предварительной проверки товарного JSONL OpenAI

протестировано в деле на учебном JSONL, локальный Python

Проверено 9 октября 2026: код и учебный запуск · Опубликовано 9 октября 2026

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 сам по себе не даёт сигнал (границы).

Как запустить на учебном примере

  1. Скачайте архив 0.1.1, распакуйте и откройте терминал в папке acp-discovery-feed-preflight. Проверенная среда указана выше; установки пакетов нет (README).
  2. Запустите пример с повтором ID (инструкция):
python3 scripts/check.py examples/duplicate-item.jsonl

Ожидаются код 1, status: signals, duplicate_item_id, line: 2, first_line: 1 (сохранённый выход). line — физическая строка JSONL, не порядковый номер успешно разобранного товара (код).

  1. Для своего файла замените путь (инструкция):
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 до обсуждения интеграции (границы). Не подходит для подтверждения правильной цены, пригодности фида к приёму, подключения магазина из России или загрузки в кабинет (границы).

Две альтернативы:

Источники

Редакция Кометы · Как работает редакция