Skip to main content
The agent-readiness-scan skill gives your GEO audit an independent external benchmark. It connects to Cloudflare’s public isitagentready.com scanner, runs a corroboration matrix of curl probes alongside the official API, captures the 0 to 100 score from the web UI via Playwright, and converts everything into a fixed-schema CSV you can track across re-audits. The delta between audit runs (not the first number) is the proof that your fixes are working.
The 0 to 100 score is only available in the isitagentready.com web UI, rendered in an SVG dial. The JSON API returns detailed per-check findings but not the composite score. The Playwright capture step is not optional if you want to track deltas.

How It Works

The scan runs in two scripts that work together:
1

run_scan.sh: Official API + Corroboration Matrix

run_scan.sh POSTs to the isitagentready.com API and then runs a series of curl probes to corroborate the findings independently:
What the script captures:The script writes all raw artefacts to the output directory: iar_scan.json, homepage_headers.txt, accept_markdown_headers.txt, robots.txt, supplementary.json, and more.
2

Playwright: Capture the 0 to 100 Score

After the API scan completes, navigate to https://isitagentready.com/<your-domain> in a Playwright-controlled browser and read the score from the SVG dial:
A fresh “Last scanned” timestamp on the page confirms the results are rendered. Save the page snapshot to your output directory as isitagentready_<client-slug>_snapshot.txt.
3

scan_to_csv.py: Convert to Fixed-Schema CSV

Pass the scan JSON and the captured score to scan_to_csv.py:
The script maps Cloudflare’s check keys to fixed display names and emits a CSV with consistent category headers across every client and every re-audit.

Using from Claude Code

Ask for it in plain language from your Claude Code session:
Or run the scripts manually from your terminal:

Output CSV Schema

The CSV uses a fixed schema so results stay comparable across clients and re-audits: The first data row is always the OVERALL row:
Scored categories (from the Cloudflare scanner):
  • Discoverability
  • Content Accessibility
  • Bot Access Control
  • API Auth MCP & Skill Discovery
  • Commerce (marked NOT CHECKED unless isCommerce is true)
Supplementary rows (from run_scan.sh curl probes, not scored by Cloudflare):
  • llms.txt, PRESENT or ABSENT
  • llms-full.txt, PRESENT or ABSENT
  • /.well-known/security.txt, PRESENT or ABSENT
Never mix supplementary checks into the scored category tallies. Cloudflare does not score llms.txt, tracking it separately preserves the accuracy of your scored pass/fail counts.

Common Mistakes to Avoid

The Cloudflare level name (e.g., “Discoverable”) does not encode the numeric score precisely enough to track deltas. Always capture the 0 to 100 value from the web UI dial via Playwright. A site improving from 21 to 43 after fixes is the evidence your client wants to see.
The site is a JavaScript app, a WebFetch or plain curl returns only an empty shell with no results. Use the official POST https://isitagentready.com/api/scan API for check data, and Playwright for the score dial.
Cross-client comparability depends on exact category labels. Use the fixed names in scan_to_csv.py (e.g., API Auth MCP & Skill Discovery, not Protocol Discovery). The scanner adds new checks over time, emit whatever .checks returns, mapped through the fixed schema.

Placing This in the THL Method

The agent-readiness scan is the second layer of the three-layer THL GEO Method, sitting between the dimensional geo-audit and the client deliverable from audit-report-kit. Its purpose is specifically to provide a score that your own dimensional audit cannot give itself, an independent external benchmark from Cloudflare’s infrastructure. Record both scores (your dimensional composite and the Cloudflare 0 to 100), and on every re-audit, track the delta on each.