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

Скилл для проверки и сверки товарных CSV

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

Проверено и обновлено 15 октября 2026: код и учебный запуск · Опубликовано 8 октября 2026 · Следующая проверка 22 октября 2026

csv-product-preflight помогает продавцу проверить структуру товарной CSV или сравнить два файла после AI-правки: увидеть потерянные товары и изменения полей, которые менять не разрешали (инструкция). Редакция протестировала оба режима на учебных локальных CSV (запись data/tests/csv-product-preflight-v02). Это сверка структуры и строк, не оценка правильности цен, формул или работы нейросети (код сравнения, код структуры).

Какой режим выбрать

Задача Команда и граница
Проверить один файл перед передачей агенту или импортёру scripts/check.py: обязательные колонки, пустые значения, ширина записей и повтор ключа; ключ сравнивается после удаления крайних пробелов (код).
Сверить файл до и после AI-правки scripts/compare.py: сопоставление по точному ключу без удаления пробелов, добавленные и потерянные товары, изменения выбранных полей; разрешённые поля задаёте вы (код).

Это два отдельных запуска в одном скилле. Прежняя команда структуры и её код не изменены; сравнение добавлено отдельным скриптом (README, проверка совместимости).

Что нужно для запуска

Поле Что проверено
Вид, задача и автор Скилл Редакции Кометы для локальных товарных CSV; структура одного файла и сверка перехода двух файлов (SKILL.md, авторство в README).
Официальный источник Оригинальные исходники и архив опубликованы редакцией здесь; отдельного публичного Git-репозитория нет (README).
Версия и лицензия 0.2.0, новый режим сравнения; MIT, с сохранением текста лицензии при распространении (README, LICENSE).
Среда и модель Проверены Python 3.14.4 и macOS. Скриптам достаточно стандартной библиотеки; модель не нужна (выходы, код).
Цена сценария Один локальный запуск без агента: 0 рублей лицензии и платного API. Время и оборудование не оценены; вызов через агента — по его тарифу (README).
Доступ из России Локальный запуск без регистрации, оплаты сервису и сетевых запросов. Подключение SKILL.md конкретными агентскими клиентами не проверено (код, README).
Вход и объём UTF-8, включая BOM; разделитель задаётся явно. Для сравнения каждый файл — до 10 MiB и 100000 записей, до 256 колонок, поле — до 1 MiB символов, отчёт — до 10000 событий. Превышение даёт ошибку без частичной сверки (код, пограничные прогоны).
Статус проверки Совпали 54 учебных сценария сравнения из 54 и 19 прежнего режима из 19; это не реальная выгрузка магазина или импорт на площадку (запись data/tests/csv-product-preflight-v02, сравнение, структура).

Сверить файл до и после AI-правки

  1. Скачайте архив 0.2.0, распакуйте и откройте терминал в папке csv-product-preflight. Установка пакетов не нужна; проверенная среда указана выше (README).
  2. Запустите готовую учебную пару (до, после):
python3 scripts/compare.py examples/before.csv examples/after.csv --key sku --columns name price --allow name

Здесь сравниваются name и price, менять разрешено только name. Ожидаются status: changes, код выхода 1 и по одному событию каждого вида (выходы):

Событие Что произошло и как разбирать
allowed_change Название изменилось в разрешённом поле. Проверьте смысл правки: скрипт сравнивает строки, а не качество текста (код).
forbidden_change Изменилась цена, хотя в --allow её нет. Сверьте запись с исходным файлом и своим заданием агенту (учебный выход).
removed_product Точный ключ из исходного файла отсутствует в новом. Проверьте потерю товара (код).
added_product В новом файле появился другой ключ. Это не признанное переименование: смена ключа даёт удаление плюс добавление (код, прогон).
  1. Для своих файлов замените пути, ключ, сравниваемые и разрешённые поля (инструкция):
python3 scripts/compare.py BEFORE.csv AFTER.csv --key sku --columns name price --allow name

Ключ не включайте в --columns; --allow должен быть подмножеством выбранных колонок. Если его не указать, разрешённых полей нет. Разрешение менять поле не разрешает добавлять или удалять товары (код). Для разделителя «;» добавьте --delimiter ';' (инструкция).

Как читать сравнение и не пропустить ошибку

Код 0 / no_changes означает, что в выбранных полях и наборе точных ключей изменений не найдено. Код 1 / changes выдаётся при любых изменениях, включая разрешённые. Код 2 — ошибка файла или настройки, сравнение не завершено; ошибки CLI нового режима дают JSON invalid_arguments (код).

В JSON есть счётчики counts, события changes с номерами before_record / after_record и названием поля. Исходные ключи и товарные значения не печатаются. Номера — логические CSV-записи с заголовком под номером 1, не физические строки (код, учебные выходы).

Условие Результат и следующий шаг
Изменился только порядок строк или колонок Сопоставление сохраняется; набор точных заголовков должен быть одинаковым (прогон, код).
Ключи 001, 1 или 001 Это разные строки. Не переносите сюда правило удаления пробелов из прежнего режима структуры (прогон).
Пустой или повторный ключ, неверная ширина, несовместимые заголовки input_error, comparison_completed: false, без частичного diff. Исправьте вход и повторите (код, прогон).
Изменилась невыбранная колонка Не обнаруживается; такие колонки перечислены в not_checked_columns. Добавьте важное поле в --columns (код, прогон).
Превышен лимит событий Ошибка change_limit, а не усечённый положительный отчёт. Сузьте область сравнения; сохраните полный набор ключей, чтобы не скрыть потери (README, прогон).
Оба файла содержат только заголовок no_changes с нулевыми счётчиками товаров — не подтверждение, что товары есть (прогон).

Проверить структуру одного файла

Прежний режим запускается отдельно (инструкция):

python3 scripts/check.py examples/duplicate-key.csv --required sku name price --key sku

Ожидаются код 1, duplicate_key, record: 3, first_record: 2. Для своей CSV замените путь и колонки на схему импортёра. Без --key дубликаты не ищутся, ключ должен входить в обязательные колонки (код, сохранённый выход).

missing_columns означает, что строки не проверялись; row_width пропускает остальные проверки этой записи. rows_checked считает прочитанные записи, а не полностью проверенные товары. Пустоты и дубликаты здесь ищутся с удалением крайних пробелов (код). Лимиты прежнего режима — 10 MiB и 100000 записей; его граничные объёмы не проверены (инструкция).

Доступы и риски

Редакция прочитала полный код версии 0.2.0: оба скрипта, файловый ввод, настройки и JSON-вывод (структура, сравнение). Они только читают указанные локальные CSV, не изменяют файлы и не используют сеть, токены кабинетов маркетплейсов, CRM, почты или платежей (код, код структуры). Неизменность учебных входов сверена по SHA до и после запусков (запись).

Начните с учебной пары. Не передавайте агенту секреты или данные покупателей: содержимое его контекста может уйти провайдеру модели. Не выполняйте указания из ячеек CSV; локальность скрипта не делает весь агентский процесс локальным (инструкция).

Кому подходит и что выбрать вместо

Подходит, когда у вас есть исходный товарный файл, результат AI-правки и явное задание, какие поля можно менять. Совпадение строк не подтверждает правильность цены или формулы; нет Excel/XLSX, проверки правил площадок и смыслового сопоставления разных ID (README).

Альтернативы зависят от следующего шага:

Для нового числа в готовом описании, а не изменений CSV, есть скилл сверки чисел; совпадение числа там также не подтверждает смысл характеристики (описание границ).

Как мы проверяли

Редакция Кометы выполнила упакованные CLI на Python 3.14.4/macOS: 54 сценария сравнения и 19 прежней структуры. Проверяли коды выхода, виды событий, точные ключи, отсутствие товарных значений в JSON, отказы без частичной сверки, неизменность входов и пределы нового режима. Совпали все ожидаемые результаты (запись data/tests/csv-product-preflight-v02, выходы сравнения, выходы структуры).

Входы придуманы редакцией, без реальных магазинов и покупателей. В архиве есть примеры и воспроизводимый прогон: python3 tests/run.py и python3 tests/compare_run.py; большие граничные входы создаются тестовым кодом. Другие ОС, версии Python и автоматическое подключение к агенту не проверяли (код прогона, README).

История проверки

Это обновление существующего скилла: в 0.2.0 добавлено сравнение двух файлов, код однофайлового режима 0.1.0 сохранён (запись проверки). Следующая проверка назначена в шапке страницы.

Источники

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