JSON output

Machine-readable. Use it for CI gates, downstream tools, or piping into an LLM.

smartspec audit https://example.com -f json

Shape

Top-level keys:

  • target — the URL you passed in
  • pagesCrawled — integer
  • score — 0-100
  • findings — array of finding objects

Each finding carries (at minimum):

  • rule — the rule ID, e.g. page-noindex
  • category — module name, e.g. mobile, schema
  • severitycritical | warning | info
  • title — short human-readable summary
  • evidence — what was found in the page
  • recommendation — suggested fix
  • url — the page where the finding occurred

jq recipes

Only the critical findings:

smartspec audit https://example.com -f json | \
  jq '.findings[] | select(.severity == "critical")'

Counts per category:

smartspec audit https://example.com -f json | \
  jq '.findings | group_by(.category) | map({category: .[0].category, n: length})'

Fail a CI step on any critical:

smartspec audit https://example.com -f json | \
  jq -e '[.findings[] | select(.severity=="critical")] | length == 0'
# exit 0 = clean, exit 1 = at least one critical

Write to file

smartspec audit https://example.com -f json -o audit.json