Agent-Ready Site Checks
Reference for the standards that isitagentready.com audits and how wcygan.net satisfies the ones that matter for a personal blog. Invoke via /agent-ready or by mentioning any keyword above.
When this skill should fire
- User pastes or references an isitagentready.com scan result
- User asks about robots.txt / sitemap.xml / RSS / Content Signals /
.well-known endpoints
- User asks "is my site agent-ready?" / "how do I expose X to AI agents?"
- User wants to add a new agent-facing endpoint (MCP card, OAuth discovery, Agent Skills index, etc.)
- User wants to understand or modify the auto-generation pipeline in
scripts/site-metadata-plugin.ts
Quick decision matrix
| Site type |
Add these |
Skip these |
| Personal blog (wcygan.net) |
robots.txt, sitemap.xml, RSS, Content-Signal, Markdown for Agents (CF toggle) |
OAuth, MCP, WebMCP, API catalog, Web Bot Auth, Agent Skills index, x402/UCP/ACP |
| API-backed service |
+ API catalog (RFC 9727), OAuth discovery (RFC 8414 / RFC 9728), Link headers |
WebMCP, x402/UCP/ACP (unless commerce) |
| Site with AI tools |
+ MCP server card, Agent Skills index, WebMCP |
— |
| Commerce |
+ x402, UCP, ACP |
— |
See applicability-matrix.md for the reasoning per check.
Audit workflow
Remote scan — point isitagentready.com at the URL for the reference report.
Local probe — hit the well-known endpoints directly. A static site can be verified with curl:
for path in /robots.txt /sitemap.xml /rss.xml /.well-known/mcp/server-card.json \
/.well-known/openid-configuration /.well-known/agent-skills/index.json; do
printf "%-50s " "$path"
curl -s -o /dev/null -w "HTTP %{http_code} %{content_type}\n" "https://$DOMAIN$path"
done
Markdown negotiation — some checks require Accept: text/markdown:
curl -sI -H "Accept: text/markdown" "https://$DOMAIN/" | grep -i content-type
Interpret — cross-reference the result against checks.md to know whether a 404 is a real gap or "doesn't apply to this site type."
Per-check reference
Every check isitagentready.com runs, what it proves, which RFCs back it, and what a compliant response looks like:
See checks.md.
How wcygan.net is wired
Auto-generation at build time produces robots.txt, sitemap.xml, and rss.xml with zero manual maintenance:
scripts/site-metadata-plugin.ts — Vite plugin, runs on closeBundle
src/lib/sitemap/generators.ts — pure builders (tested)
- Route file added to
src/routes/ → sitemap learns it automatically
- Post added to
src/posts/ → sitemap and RSS learn it from frontmatter
Full walkthrough, including the one constant to edit when AI-crawl stance changes:
See wcygan-implementation.md.
Non-code levers (Cloudflare dashboard)
Two agent-ready features are Cloudflare Pages toggles, not code changes:
- Markdown for Agents — returns rendered HTML as Markdown when
Accept: text/markdown is sent
- AI Crawl Control — bot-level allow/deny that overrides whatever robots.txt says
See cloudflare-dashboard.md for where to click.
Scope guard
This skill is a reference, not a retrofit plan. For a personal blog, almost every failing isitagentready check does not apply — do not implement OAuth discovery or MCP cards on a static blog just because the scan shows 404. Use the decision matrix above before writing code.
1---2name: agent-ready3description: Understand and improve site readiness for AI agent discovery — the isitagentready.com checks covering robots.txt, sitemap.xml, Markdown for Agents, MCP server cards, OAuth discovery, Agent Skills, WebMCP, and related emerging standards. Auto-loads when auditing a site against isitagentready.com, deciding which standards apply to a personal blog vs an API-backed service, debugging a missing well-known endpoint, or extending wcygan.net's auto-generation plugin. Keywords isitagentready, agent-ready, agent ready, robots.txt, sitemap.xml, llms.txt, Content-Signal, Markdown for Agents, MCP server card, MCP, OAuth discovery, Agent Skills, WebMCP, Web Bot Auth, well-known, x402, UCP, ACP, site-metadata-plugin, RFC 9309, RFC 8288, RFC 9727, RFC 9728, RFC 8414.4---56# Agent-Ready Site Checks78Reference for the standards that [isitagentready.com](https://isitagentready.com/) audits and how wcygan.net satisfies the ones that matter for a personal blog. Invoke via `/agent-ready` or by mentioning any keyword above.910## When this skill should fire1112- User pastes or references an isitagentready.com scan result13- User asks about robots.txt / sitemap.xml / RSS / Content Signals / `.well-known` endpoints14- User asks "is my site agent-ready?" / "how do I expose X to AI agents?"15- User wants to add a new agent-facing endpoint (MCP card, OAuth discovery, Agent Skills index, etc.)16- User wants to understand or modify the auto-generation pipeline in `scripts/site-metadata-plugin.ts`1718## Quick decision matrix1920| Site type | Add these | Skip these |21| ------------------------------ | ----------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |22| **Personal blog (wcygan.net)** | robots.txt, sitemap.xml, RSS, Content-Signal, Markdown for Agents (CF toggle) | OAuth, MCP, WebMCP, API catalog, Web Bot Auth, Agent Skills index, x402/UCP/ACP |23| **API-backed service** | + API catalog (RFC 9727), OAuth discovery (RFC 8414 / RFC 9728), Link headers | WebMCP, x402/UCP/ACP (unless commerce) |24| **Site with AI tools** | + MCP server card, Agent Skills index, WebMCP | — |25| **Commerce** | + x402, UCP, ACP | — |2627See [applicability-matrix.md](references/applicability-matrix.md) for the reasoning per check.2829## Audit workflow30311. **Remote scan** — point isitagentready.com at the URL for the reference report.322. **Local probe** — hit the well-known endpoints directly. A static site can be verified with curl:3334 ```bash35 for path in /robots.txt /sitemap.xml /rss.xml /.well-known/mcp/server-card.json \36 /.well-known/openid-configuration /.well-known/agent-skills/index.json; do37 printf "%-50s " "$path"38 curl -s -o /dev/null -w "HTTP %{http_code} %{content_type}\n" "https://$DOMAIN$path"39 done40 ```41423. **Markdown negotiation** — some checks require `Accept: text/markdown`:4344 ```bash45 curl -sI -H "Accept: text/markdown" "https://$DOMAIN/" | grep -i content-type46 ```47484. **Interpret** — cross-reference the result against [checks.md](references/checks.md) to know whether a 404 is a real gap or "doesn't apply to this site type."4950## Per-check reference5152Every check isitagentready.com runs, what it proves, which RFCs back it, and what a compliant response looks like:5354See [checks.md](references/checks.md).5556## How wcygan.net is wired5758Auto-generation at build time produces `robots.txt`, `sitemap.xml`, and `rss.xml` with zero manual maintenance:5960- `scripts/site-metadata-plugin.ts` — Vite plugin, runs on `closeBundle`61- `src/lib/sitemap/generators.ts` — pure builders (tested)62- Route file added to `src/routes/` → sitemap learns it automatically63- Post added to `src/posts/` → sitemap and RSS learn it from frontmatter6465Full walkthrough, including the one constant to edit when AI-crawl stance changes:6667See [wcygan-implementation.md](references/wcygan-implementation.md).6869## Non-code levers (Cloudflare dashboard)7071Two agent-ready features are Cloudflare Pages toggles, not code changes:7273- **Markdown for Agents** — returns rendered HTML as Markdown when `Accept: text/markdown` is sent74- **AI Crawl Control** — bot-level allow/deny that overrides whatever robots.txt says7576See [cloudflare-dashboard.md](references/cloudflare-dashboard.md) for where to click.7778## Scope guard7980This skill is a reference, not a retrofit plan. For a personal blog, almost every failing isitagentready check does not apply — do not implement OAuth discovery or MCP cards on a static blog just because the scan shows 404. Use the decision matrix above before writing code.