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
| Setting | Behavior | Useful for |
|---|---|---|
--fail-on never | Always exits successfully unless input or execution is invalid. | Initial inventory and non-blocking reports. |
--fail-on fail | Exits 1 when a required check fails. | Default release protection. |
--fail-on warning | Exits 1 on any warning or failure. | Strict fixtures and mature templates. |
--min-score 80 | Exits 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 packVerify 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.