Zero-dependency developer tool

Catch missing commerce fields before deployment.

CommerceLint can inspect saved product-page HTML in local development or continuous integration. It returns evidence for missing Product and Offer fields, identifiers, canonical signals, headings, descriptions, and obvious policy links.

Local

One Python file

No package installation or third-party Python dependency is required. Inspect a saved HTML fixture or pipe markup through standard input.

CI-ready

Deterministic exit codes

Fail a build on missing required fields, any warning, or a configurable minimum field-coverage score.

Exportable

Evidence, not a badge

Produce JSON, Markdown, or text reports with the observed evidence, why each check matters, and a recommended repair.

Run it locally

Clone the public repository or download the CLI file, then point it at UTF-8 product-page HTML.

git clone https://github.com/pri8771/autonomous_apps.git
cd autonomous_apps

python3 cli/commercelint.py path/to/product.html \
  --format markdown \
  --output commercelint-report.md \
  --min-score 80 \
  --fail-on fail

Standard input is also supported:

cat product.html | python3 cli/commercelint.py - --format json

Use the reusable GitHub Action

v1 is the stable major-version branch. For maximum supply-chain reproducibility, replace @v1 with the reviewed immutable commit @99c971299488437cf8a39819f5f6025b722c12eb.

name: Product-page field checks

on:
  pull_request:
    paths:
      - "fixtures/products/**"

jobs:
  lint-product-page:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: pri8771/autonomous_apps@v1
        with:
          path: fixtures/products/example.html
          min-score: "80"
          fail-on: fail
          format: markdown
          output: commercelint-report.md
      - uses: actions/upload-artifact@v4
        with:
          name: commercelint-report
          path: commercelint-report.md

Choose a failure policy

SettingBehaviorUseful for
--fail-on neverAlways exits successfully unless input or execution is invalid.Initial inventory and non-blocking reports.
--fail-on failExits 1 when a required check fails.Default release protection.
--fail-on warningExits 1 on any warning or failure.Strict fixtures and mature templates.
--min-score 80Exits 1 when the weighted field-coverage score is below 80.Gradual quality thresholds.

What the tool checks

  • Product or ProductGroup JSON-LD and clean JSON parsing
  • Product name, image, description, brand, SKU, GTIN, or MPN
  • Offer object, price, currency, and availability
  • Canonical link, visible H1, and meta description
  • Discoverable shipping, delivery, return, refund, or exchange links

Need accuracy checks rather than field coverage?

The free CLI deliberately does not claim to prove that a present value is correct. It does not verify selected variants, visible-versus-structured values, feeds, checkout, policy text across pages, rendered JavaScript, robots directives, or live HTTP behavior.

The paid defect pack adds representative product states, cross-surface evidence, repair ownership, and acceptance checks.

Request a $49 defect pack

Verify the implementation

The repository includes deterministic fixtures for a complete product, an incomplete offer, and malformed JSON-LD, plus command-line failure-policy tests.

python3 -m unittest discover -s tests -v

CommerceLint is technical diagnostic software. It does not guarantee indexing, rankings, recommendations, traffic, purchases, or revenue.