Agent ready · November 11, 2026
How davelalande.com went from Level 1 to Level 4 on Cloudflare’s agent-readiness test
Cloudflare runs a free test at isitagentready.com. It checks whether a website is set up so an AI assistant can find it and use it. We ran it on davelalande.com four times on November 11, 2026, with changes between the runs. Level 1 of 5 with 4 of 16 checks passing became Level 4 of 5 with 11 passing.
Agent ready. What this site covers, and what it does not: /coverage/.
As Markdown: /agent-ready/index.md.
The four scans, check by check
Times are when we saved each result, Central Time. All four scans were November 11, 2026. Every row is copied from the saved scan.
| Check | Scan 1 2:09 PM | Scan 2 3:37 PM | Scan 3 3:42 PM | Scan 4 4:53 PM | Flipped |
|---|---|---|---|---|---|
| robots.txt exists | Pass | Pass | Pass | Pass | Passing from scan 1 |
| Sitemap | Pass | Pass | Pass | Pass | Passing from scan 1 |
| Link headers on the homepage | Fail | Pass | Pass | Pass | Scan 2 |
| DNS records for AI discovery (DNS-AID) | Fail | Fail | Fail | Fail | Still failing |
| Markdown on request | Fail | Pass | Pass | Pass | Scan 2 |
| AI bot rules in robots.txt | Pass | Pass | Pass | Pass | Passing from scan 1 |
| Content Signals in robots.txt | Fail | Fail | Pass | Pass | Scan 3 |
| API catalog | Fail | Pass | Pass | Pass | Scan 2 |
| OAuth discovery | Fail | Fail | Fail | Fail | Still failing |
| OAuth protected resource | Fail | Fail | Fail | Fail | Still failing |
| Auth.md | Fail | Fail | Fail | Fail | Still failing |
| MCP server card | Fail | Pass | Pass | Pass | Scan 2 |
| A2A agent card | Pass | Pass | Pass | Pass | Passing from scan 1 |
| Agent skills index | Fail | Fail | Fail | Fail | Still failing |
| WebMCP browser tools | Fail | Fail | Fail | Pass | Scan 4 |
| ARD manifest (our ai-catalog) | Fail | Fail | Fail | Pass | Scan 4 |
| Checks passing | 4 of 16 | 8 of 16 | 9 of 16 | 11 of 16 | 7 flipped |
| Level | Level 1 of 5 | Level 1 of 5 | Level 4 of 5 | Level 4 of 5 |
Cloudflare’s scanner lists 16 scored checks for this site. It also shows some informational items that are not scored, and we left those out.
Four checks passed before we changed anything: robots.txt, the sitemap, the AI bot rules (our robots.txt allows every crawler, so no bot is singled out) and the A2A agent card at /.well-known/agent-card.json.
What we changed, in order
Seven checks flipped from Fail to Pass. Each fix is below with the exact file or header and a command anyone can run to see it. Every one was checked live before we wrote this page.
MCP server card
What it is: the file /.well-known/mcp/server-card.json.
A small JSON file that tells an AI where our MCP server is (/mcp), what it is called and what it can do. No sign-in.
Flipped in scan 2. Run this yourself:
curl -s https://davelalande.com/.well-known/mcp/server-card.json | head -20API catalog
What it is: the file /.well-known/api-catalog (no file extension, on purpose).
A list of our two machine-readable interfaces, the open API and the MCP server, in the RFC 9727 format. It is served as application/linkset+json.
Flipped in scan 2. Run this yourself:
curl -sI https://davelalande.com/.well-known/api-catalog | grep -i content-type
curl -s https://davelalande.com/.well-known/api-catalog | head -20Link headers on the homepage
What it is: five Link response headers on /.
Headers that point a visitor who never reads the page to the API catalog, the API description, the MCP server card, /llms.txt and the Markdown copy.
Flipped in scan 2. Run this yourself:
curl -sI https://davelalande.com/ | grep -i '^link'Markdown on request
What it is: /index.md and /ai.md, served when a request says Accept: text/markdown.
The homepage and the /ai page each have a plain Markdown copy. A browser still gets the normal page; an AI that asks for Markdown gets the copy.
Flipped in scan 2. Run this yourself:
curl -s -H 'Accept: text/markdown' https://davelalande.com/ | head -5
curl -sI -H 'Accept: text/markdown' https://davelalande.com/ai | grep -i content-typeContent Signals
What it is: one line in /robots.txt.
Content-Signal: search=yes, ai-input=yes, ai-train=yes. This states what we allow: show us in search, use us to answer questions, and train on us. That was Dave's choice for this site. Yours can be different.
Flipped in scan 3, the scan where the level moved to 4. Run this yourself:
curl -s https://davelalande.com/robots.txt | grep -i content-signalARD manifest (our ai-catalog)
What it is: the file /.well-known/ai-catalog.json.
A catalog of the three things an AI can use here: the MCP server, the open API and the API catalog. Each has a name, a type and a plain description. The scanner calls its check ARD, short for Agentic Resource Discovery.
Flipped in scan 4. Run this yourself:
curl -s https://davelalande.com/.well-known/ai-catalog.json | head -20WebMCP browser tools
What it is: the script /webmcp.js, loaded by the homepage.
When a browser-based AI opens the homepage, the script registers three tools it can call: find_camps_near, search_camps and get_camp.
Flipped in scan 4. Run this yourself:
curl -s https://davelalande.com/ | grep webmcp
curl -s https://davelalande.com/webmcp.js | head -20What is left, and why
Five checks still fail in scan 4.
OAuth discovery, OAuth protected resource and Auth.md (three checks)
These tell an AI how to sign in to a protected API. Our API needs no sign-in, so there is nothing to describe. Publishing sign-in files for a sign-in that does not exist would tell an AI something false, so we have not. These three will keep failing, and we think that is correct.
DNS records for AI discovery (DNS-AID)
The scanner wants special DNS records under _agents.davelalande.com, and it asks that the DNS zone be signed with DNSSEC. We have not done this. It is a change at the DNS host rather than a file on the site, and the specification the scanner points to is still an Internet-Draft, which means it can change.
Agent skills index
The scanner wants an index at /.well-known/agent-skills/index.json listing skills an AI can load, each with a checksum. We do not have a skill published yet. This check waits on that.
What we do not know
Cloudflare does not publish what each level requires. We could not find a rule that says how many checks, or which ones, make a level, so we are not going to guess. What we saw: 4 checks passing was Level 1, 8 passing was still Level 1, 9 passing was Level 4, and 11 passing was Level 4. The level moved at the same scan where one check flipped (Content Signals), but that does not show the level depends on that check. Level 5 is above where we are, and we do not know what it asks for. The level names, as the scanner printed them, are “Basic Web Presence” for Level 1 and “Agent-Integrated” for Level 4.
The scanner is Cloudflare’s tool, and the levels are its own scoring. It can change. These are the results from November 11, 2026, and nothing here says what it will show later.
Why we did it
American Adventurer answers camping questions from records, and an AI assistant is a reader like any other. We want an assistant to find the records and quote where they came from. The same page shows what we cover and what we do not: /coverage/. To try it from your own AI, see /ai.