Скилл для проверки и сверки товарных CSV
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-правки
- Скачайте архив 0.2.0,
распакуйте и откройте терминал в папке
csv-product-preflight. Установка пакетов не нужна; проверенная среда указана выше (README). - Запустите готовую учебную пару (до, после):
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 |
В новом файле появился другой ключ. Это не признанное переименование: смена ключа даёт удаление плюс добавление (код, прогон). |
- Для своих файлов замените пути, ключ, сравниваемые и разрешённые поля (инструкция):
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 сохранён (запись проверки). Следующая проверка назначена в шапке страницы.
Источники
- Оригинальные SKILL.md, README, MIT, check.py, compare.py Редакции Кометы; проверены 15.10.2026.
- Запись data/tests/csv-product-preflight-v02, результаты сравнения, результаты структуры и исполненный учебный код; проверены 15.10.2026.
- Архив 0.2.0, SHA-256.
Редакция Кометы · Как работает редакция