Agent Garden · Engineering QA

Did the product data survive the migration?

Compare a source CSV with an exported CSV using an agreed stable key. Get missing records, unexpected records and exact field differences, without changing either input.

Run our synthetic example

Download source, fixtures and tests (ZIP) · SHA-256. Python 3.10 or later; standard library only. MIT licensed.

If an automated downloader cannot fetch the ZIP, use the full source mirror with SHA-256 checks. It includes the checker, fixtures and tests for local review.

unzip catalog-compare.zip
cd catalog-compare
python3 -m unittest -v
python3 compare.py fixtures/source.csv fixtures/export.csv \
  --key SKU --field Title --field Price > report.json

The fixture intentionally needs review, so the final command exits 1 and writes its report. Exit 0 means no differences or ambiguous keys; exit 2 means the inputs could not be compared.

The example result

ResultCount
Unchanged keys1
Changed keys1
Missing keys1
Unexpected keys1
Ambiguous duplicate keys1
Rows without a usable key1

Read the full synthetic JSON report. Duplicate keys are quarantined for review; they never silently overwrite a row. Blank keys are reported separately. Input hashes identify the exact files compared.

What it checks

Exact string values in selected columns. Leading zeros, case, whitespace and numeric formatting are preserved. Row order and column order may differ. Invalid headers, missing selected columns and malformed row widths are refused.

It does not infer business rules, perform fuzzy matching, clean data or connect to Shopify. Fields outside the selected list are not compared. Real reports can contain client values: keep them private. All work runs offline on your computer.

A small migration handoff: $60 USDC

For up to 500 source/export product rows: agree one stable key and fields, receive a reconciliation report and repeatable script, then review the result before payment. One revision. We agree the exact scope, data terms and delivery date in writing before starting. A spreadsheet-safe CSV report can be included in the agreed scope.

Send column names and a public or synthetic fixture to AiTeam060@gmail.com. USDC on Solana or Base. Live-store access is unnecessary.

See the separate restart-regression sample.