Agent Readiness, on ourselves
We build tools that check whether websites work for AI agents. This page shows the same machinery applied to this very site.
One article, three representations
Every blog article here is published in three forms from a single source:
- Human HTML — the page you read: /blog/arc-c29-task-board
- FOR AI AGENTS block — a visible summary on the same page (summary, status, concepts, actions, machine-readable links). No hidden markup — agents read what you read.
- Knowledge Object (JSON) — the same metadata as a machine-readable object: /blog/arc-c29-task-board.json
Claims carry statuses (VERIFIED / UNVERIFIED) and evidence links; actions point at
things an agent can actually do. The HTML page links the JSON variant via
rel="alternate", and this page does the same for
itself:
/agent-readiness.json.
Self-scan — our scanner on our own site
Target: https://agentbadge.xyz — score
69.55/100 (D). 118
of 156 rules passed, 25 need attention,
12 not applicable. This is the same engine behind
/scan.
| Rule | Category | Status |
|---|---|---|
| AB-001 robots.txt present | discovery | VERIFIED |
| AB-002 sitemap.xml present | discovery | VERIFIED |
| AB-003 agent-guide discoverable (JSON, Markdown, or HTML) | discovery | VERIFIED |
| AB-004 OpenAPI specification present & valid | documentation | VERIFIED |
| AB-005 agent-guide.json schema-valid | documentation | VERIFIED |
| AB-006 MCP server descriptor discoverable | documentation | VERIFIED |
| AB-007 Guide ↔ OpenAPI endpoint consistency | actionability | CONFLICT |
| AB-008 Authentication scheme declared machine-readably | actionability | VERIFIED |
| AB-009 Capability inference coverage | actionability | NOT_APPLICABLE |
| AB-010 Pricing machine-readable | machine_readable | VERIFIED |
| AB-011 Rate limits declared machine-readably | machine_readable | VERIFIED |
| AB-012 Structured error schema declared | machine_readable | VERIFIED |
| AB-013 Owner verification status | verification | NOT_APPLICABLE |
| AB-014 llms.txt present | discovery | VERIFIED |
| AB-015 Content negotiation — agent UA gets non-HTML | content_negotiation | VERIFIED |
| AB-016 Content negotiation — Accept: JSON returns JSON | content_negotiation | VERIFIED |
| AB-017 Content negotiation — Accept: text returns text | content_negotiation | VERIFIED |
| AB-018 Content negotiation — Accept: markdown returns markdown | content_negotiation | VERIFIED |
| AB-019 Content negotiation — preferred Content-Type (q-values) | content_negotiation | VERIFIED |
| AB-020 MCP tools/list responds | machine_readable | VERIFIED |
| AB-021 MCP tools/call responds | machine_readable | VERIFIED |
| AB-022 MCP SSE transport supported | machine_readable | VERIFIED |
| AB-023 MCP auth discovery resolves | bot_auth | VERIFIED |
| AB-024 llms-full.txt found | documentation | VERIFIED |
| AB-025 llms-full.txt linked from HTML | documentation | VERIFIED |
| AB-026 Skill file found | skills | VERIFIED |
| AB-027 Skill file frontmatter valid | skills | VERIFIED |
| AB-028 Vary: Accept header set | content_negotiation | VERIFIED |
| AB-029 Inline content negotiation (no redirect) | content_negotiation | VERIFIED |
| AB-030 Live 402 response on paid endpoint | payments | VERIFIED |
| AB-031 x402 challenge decodable | payments | VERIFIED |
| AB-032 Payment-Required header present | payments | VERIFIED |
| AB-033 Recipient (payTo) specified | payments | VERIFIED |
| AB-034 Payment terms (amount) specified | payments | VERIFIED |
| AB-035 x402.json discovery published | payments | VERIFIED |
| AB-036 Bazaar discoverable | bazaar | VERIFIED |
| AB-037 Bazaar service declared | bazaar | VERIFIED |
| AB-038 Facilitator specified | payments | VERIFIED |
| AB-039 OpenAPI spec found at standard path | openapi | VERIFIED |
| AB-040 OpenAPI paths defined | openapi | VERIFIED |
| AB-041 OpenAPI paths reachable | openapi | VERIFIED |
| AB-042 Response matches OpenAPI spec | openapi | VERIFIED |
| AB-043 OpenAPI version identified | openapi | VERIFIED |
| AB-044 OpenAPI title present | openapi | VERIFIED |
| AB-045 Cache headers present | infrastructure | VERIFIED |
| AB-046 Structured JSON 404 errors | infrastructure | VERIFIED |
| AB-047 Rate limit headers present | infrastructure | VERIFIED |
| AB-048 agents.txt found | agents_txt | VERIFIED |
| AB-049 RSS/Atom feed available | documentation | VERIFIED |
| AB-050 WebMCP manifest found | webmcp | VERIFIED |
| AB-051 WebMCP form annotations | webmcp | VERIFIED |
| AB-052 og:image reachable | documentation | VERIFIED |
| AB-053 SVG favicon available | documentation | VERIFIED |
| AB-054 Canonical URL correct | documentation | VERIFIED |
| AB-055 RSS feed linked from HTML | documentation | VERIFIED |
| AB-056 WebFinger endpoint available | identity | VERIFIED |
| AB-057 DID document available | identity | VERIFIED |
| AB-058 Bot auth signatures directory found | bot_auth | NOT_APPLICABLE |
| AB-059 Bot auth members valid | bot_auth | NOT_APPLICABLE |
| AB-060 Bot auth public keys reachable | bot_auth | NOT_APPLICABLE |
| AB-061 Link headers on homepage (RFC 8288) | discovery | VERIFIED |
| AB-062 API Catalog endpoint (RFC 9727) | discovery | VERIFIED |
| AB-063 OAuth Protected Resource metadata (RFC 9728) | bot_auth | VERIFIED |
| AB-064 Auth.md agent registration instructions | documentation | VERIFIED |
| AB-065 Agent Skills index | skills | VERIFIED |
| AB-066 Content Signals in robots.txt | discovery | VERIFIED |
| AB-067 Web Bot Auth directory (HTTP Message Signatures) | bot_auth | VERIFIED |
| AB-068 DNS-AID records for agent discovery | discovery | VERIFIED |
| AB-069 WebMCP browser-side tools (document.modelContext) | webmcp | VERIFIED |
| AB-070 L402 Lightning challenge in 402 response | payments | VERIFIED |
| AB-071 L402 macaroon and invoice in challenge | payments | VERIFIED |
| AB-072 Bazaar extension in L402 402 header | bazaar | VERIFIED |
| AB-073 HTTPS redirect enforced | infrastructure | VERIFIED |
| AB-074 A2A Agent Card published | actionability | VERIFIED |
| AB-075 A2A Agent Card verified | actionability | VERIFIED |
| AB-076 OpenAPI paths reachable (50% threshold) | openapi | VERIFIED |
| AB-077 OpenAPI response matches declared spec | openapi | VERIFIED |
| AB-078 OpenAPI x-payment-info declared on paid operations | openapi | VERIFIED |
| AB-085 MCP server name present | actionability | VERIFIED |
| AB-086 MCP auth discovery resolves | actionability | VERIFIED |
| AB-088 MPP (Machine Payments Protocol) support | payments | VERIFIED |
| AB-093 SPT (Stripe Payment Terms) support | payments | VERIFIED |
| AB-098 Content-Security-Policy header | infrastructure | VERIFIED |
| AB-099 Referrer-Policy header | infrastructure | VERIFIED |
| AB-100 Service page content depth | seo_aeo | VERIFIED |
| AB-101 Breadcrumb navigation on service pages | seo_aeo | VERIFIED |
| AB-102 MCP tools and REST endpoints parity | webmcp | GAP |
| AB-103 check_compliance MCP tool available | webmcp | VERIFIED |
| AB-104 Blog article OpenGraph type | seo_aeo | VERIFIED |
| AB-105 Article author and date meta tags | seo_aeo | VERIFIED |
| AB-106 AEO short-answer summary block | seo_aeo | VERIFIED |
| AB-107 Semantic definition lists in guide content | seo_aeo | VERIFIED |
| AB-108 OG image alt text brand consistency | seo_aeo | VERIFIED |
| AB-109 Agent Card version 1.0.0+ | machine_readable | NOT_APPLICABLE |
| AB-110 Blog articles in AI sitemap | discovery | VERIFIED |
| AB-111 Crawl-delay directive in robots.txt | discovery | GAP |
| AB-112 OAuth Authorization Server metadata (RFC 9728) | identity | GAP |
| AB-113 LLM policy file | discovery | VERIFIED |
| AB-114 AI sitemap content type coverage | discovery | GAP |
| AB-115 MCP namespace-based tool isolation | webmcp | VERIFIED |
| AB-116 Well-known MCP descriptor | webmcp | VERIFIED |
| AB-117 Image alt text coverage | accessibility | VERIFIED |
| AB-118 Lazy loading on below-fold images | accessibility | VERIFIED |
| AB-119 OAuth token endpoint reachable | verification | NOT_APPLICABLE |
| AB-120 Authenticated endpoint callable | verification | NOT_APPLICABLE |
| AB-121 Token response valid format | verification | NOT_APPLICABLE |
| AB-122 At least one endpoint callable | verification | NOT_APPLICABLE |
| AB-123 Response matches OpenAPI schema | verification | NOT_APPLICABLE |
| AB-124 Response content-type present | verification | NOT_APPLICABLE |
| AB-125 LocalBusiness schema.org present | seo_aeo | VERIFIED |
| AB-126 Opening hours machine-readable | seo_aeo | VERIFIED |
| AB-127 Area served defined | seo_aeo | VERIFIED |
| AB-128 OAuth2 preferred over static API keys | bot_auth | GAP |
| AB-129 Credentials passed via headers (not query params) | bot_auth | GAP |
| AB-130 OAuth scopes defined | bot_auth | GAP |
| AB-131 Token revocation endpoint available | bot_auth | GAP |
| AB-132 Token introspection endpoint available | bot_auth | GAP |
| AB-133 Private key JWT auth method supported | bot_auth | GAP |
| AB-134 Token Exchange (RFC 8693) supported | bot_auth | GAP |
| AB-135 AAuth metadata endpoint available | bot_auth | GAP |
| AB-136 Agent Authorization Grant supported | bot_auth | GAP |
| AB-137 AAuth scope descriptions published | bot_auth | GAP |
| AB-138 DPoP token binding supported | bot_auth | GAP |
| AB-139 mTLS-bound access tokens | bot_auth | GAP |
| AB-140 Auth.md documents agent auth flow | documentation | VERIFIED |
| AB-141 Short-lived access tokens | bot_auth | GAP |
| AB-142 Refresh token rotation supported | bot_auth | GAP |
| AB-143 Token revocation endpoint reachable | bot_auth | GAP |
| AB-144 Auth.md documents credential vault pattern | documentation | VERIFIED |
| AB-145 No static API keys in OpenAPI security | bot_auth | GAP |
| AB-146 Capability descriptions | actionability | INFERRED |
| AB-147 Parameter semantics | documentation | INFERRED |
| AB-148 Request and response examples | documentation | GAP |
| AB-149 Error semantics | error_semantics | INFERRED |
| AB-150 Pricing discoverability | pricing | VERIFIED |
| AB-151 Rate limits machine-readable | rate_limits | INFERRED |
| AB-152 Pricing and limits cross-source consistency | verification | GAP |
| AB-153 Authentication clarity | bot_auth | INFERRED |
| AB-154 Retry semantics declared | retry_semantics | GAP |
| AB-155 Versioning declared | versioning | INFERRED |
| AB-156 Sandbox environment declared | sandbox | GAP |
| AB-157 Agent policy machine-readable | agent_policy | INFERRED |
| AB-158 Capability list declared | discovery | INFERRED |
| AB-159 Business constraints documented | actionability | GAP |
| AB-160 Support path declared | documentation | INFERRED |
| AB-161 AI-Agent Discovery meta tags | discovery | VERIFIED |
| AB-162 Heartbeat.md availability | actionability | VERIFIED |
| AB-163 Skill.json (JSON-LD) availability | machine_readable | VERIFIED |
| AB-164 Error catalog endpoint | machine_readable | VERIFIED |
| AB-165 Agent feeds (JSON Feed 1.1 / RSS 2.0) | discovery | VERIFIED |
| AB-166 next_call pattern in API responses | actionability | VERIFIED |
| AB-183 Answer-first extractability | seo_aeo | INFERRED |
| AB-184 Evidence density for citability | seo_aeo | INFERRED |
| AB-185 Entity clarity and canonical naming | seo_aeo | INFERRED |
| AB-186 Server-rendered primary content in initial HTML | seo_aeo | VERIFIED |
| AB-187 Anti-citation disqualifiers | seo_aeo | INFERRED |
Result is cached (refresh on request, not per pageview). What the scanner checks is exactly what is listed above — nothing more, nothing less.
What this shows — and what it doesn't
- ✓ The scanner checked the listed signals on our homepage — llms.txt, manifests, structured data, markdown alternates.
- ✓ The verdicts above are computed from fetched evidence, not asserted by hand.
- ✗ A passing score does not mean every page is covered — it reflects the scanned target only.
- ✗ Rules marked NOT_APPLICABLE or GAP are listed plainly; we do not hide gaps.