Methodology

Waymark scores a stored scan, not a live journey. Homepage and protocol fetches use the user agent Waymark/1.0 and an 8 second timeout. Homepage HTML may also be read with Browser Run (networkidle2), which falls back to that fetch. Protocol files (robots, llms.txt, well-known, OpenAPI) stay raw fetch. MCP initialize is probed when the site shows an MCP surface. Statuses are pass, fail, warn, na, and error. N/A and scanner error are dropped from the denominator. Fail means the site is missing the signal.

Layers

Weights are 20 / 30 / 40 / 10 for Find, Door, Tools, and Pay. A layer percentage is points earned divided by points that count. Layers then combine by those weights. A layer with nothing left to score drops out, and the others are renormalized over the weight that remains.

Warn scores 1 point when that check’s max is at least 2, and half the max when the max is under 2. Pay is N/A unless the homepage shows “add to cart”, “buy now”, or “shopping cart”, or a link path contains /cart, or a live rail answers (x402, UCP, ACP, or MPP). The words checkout or SKU alone do not turn Pay on. The Jev Pay shadow is log-only and is not part of the grade. The optional live journey is stored separately and never changes the total.

Grades: A+ at least 95, A at least 86, B at least 70, C at least 48, D at least 28, otherwise F. If the homepage check is a scanner error, the scan is degraded: the total is capped at 47, and the site stays off the public board. If the checks that actually scored cover less than 50 of the layer weight, the total is capped at 69.9, so a thin scan cannot be published as a B or above.

An essentials reading is separate from the public grade. It weights the baseline band at 80 and the recommended band at 20. Bonus checks never reduce it. The figure on a score page is the baselineScore stored with that scan. It is not recomputed when the catalog changes.

Catalog

90 checks · weights {"find":20,"door":30,"tools":40,"pay":10}

Find26
wm
HTTPS reachable · https-ok
Homepage answers over HTTPS.
wm
robots.txt present · robots-txt
Root robots.txt with User-agent rules.
wm
XML sitemap · sitemap-xml
sitemap.xml or robots Sitemap line.
wm
llms.txt · llms-txt
Root markdown index for models.
wm
AGENTS.md · agents-md
Root notes for agent operators.
wm
Well-known AI catalog · well-known-ai-catalog
ai-plugin.json or ai-catalog.json.
AR-DISC-01
robots.txt AI policy · wm-robots-ai-policy
robots.txt names identified AI crawlers with explicit allow or deny.
AR-DISC-02
Sitemap for agents · wm-sitemap
Fetchable sitemap listing main URLs.
AR-DISC-03
llms.txt index · wm-llms-txt
Root llms.txt summarizing the product.
AR-DISC-04
llms-full.txt · wm-llms-full-txt
Single-file ingestible documentation at /llms-full.txt.
AR-DISC-05
HTTP Link header · wm-http-link-header
Link headers with sitemap, describedby, api-catalog, or alternate.
AR-DISC-06
NLWeb schemamap · wm-nlweb-schemamap
robots.txt schemamap directive for a schema.org feed.
AR-CAPA-09
ai-plugin.json · wm-ai-plugin
/.well-known/ai-plugin.json manifest.
AR-IDEN-06
API catalog linkset · wm-api-catalog
/.well-known/api-catalog.
wm
ads.txt · wm-ads-txt
IAB ads.txt when the origin sells inventory; N/A otherwise.
wm
llms.txt size and links · wm-llms-txt-quality
llms.txt is long enough and points at real URLs.
wm
robots Crawl-delay · wm-robots-crawl-delay
robots.txt mentions Crawl-delay for polite agents.
wm
related-website-set · wm-related-website-set
/.well-known/related-website-set.json listing related origins.
wm
Wikipedia sitelink · wm-wikipedia
Live Wikipedia sitelink for the domain.
wm
Wikidata official website · wm-wikidata
Wikidata P856 official website matches the domain.
wm
Brand official-website match · wm-brand-web
Wikidata official website confirms the brand domain.
wm
Public MCP registry listing · wm-mcp-registry
Live search of public MCP registries.
wm
Agent mode view · wm-agent-mode
?mode=agent homepage variant.
wm
Section llms.txt · wm-docs-llms
/docs/llms.txt modular index.
wm
Sitemap lastmod · wm-sitemap-lastmod
lastmod dates in sitemap.xml.
wm
Package homepage match · wm-pkg-home
Public package registry homepage matches the domain.
Door38
wm
Title and description · title-meta
Document title and meta description.
wm
JSON-LD structured data · json-ld
application/ld+json on the homepage.
wm
OpenAPI / Swagger link · openapi-or-swagger-link
Homepage points at an API description.
wm
html lang attribute · html-lang
Language declared on <html>.
wm
RSS or Atom feed · feed-or-rss
Machine-readable update feed.
wm
CSP or X-Frame-Options · security-headers
Framing / script policy headers.
wm
CORS / API hint · cors-on-api-hint
CORS header or obvious API path.
wm
OAuth / OIDC well-known · oauth-well-known
OAuth or OpenID discovery document.
wm
Login or docs link · login-or-docs-link
Human door to login or developer docs.
wm
AI crawlers not blanket-blocked · not-blocking-common-ai-bots
robots.txt does not Disallow: / for common AI bots.
AR-CONT-01
JSON-LD entities · wm-json-ld
schema.org types in JSON-LD (Organization, Product, FAQ, etc.).
AR-CONT-02
Markdown negotiation · wm-markdown-negotiate
Accept: text/markdown returns a markdown body.
AR-CONT-03
/index.md fallback · wm-index-md
Homepage also served as /index.md.
AR-CONT-04
Speakable markup · wm-speakable
schema.org SpeakableSpecification or speakable property.
AR-IDEN-02
OAuth 2.0 surface · wm-oauth
Discoverable authorization or token endpoints.
AR-IDEN-03
OAuth AS metadata · wm-oauth-as-metadata
oauth-authorization-server or openid-configuration.
AR-IDEN-05
PKCE S256 · wm-pkce
code_challenge_methods_supported includes S256.
AR-IDEN-01
Web Bot Auth keys · wm-web-bot-auth
http-message-signatures-directory for signed agent traffic.
AR-IDEN-04
OAuth protected resource · wm-oauth-resource
/.well-known/oauth-protected-resource.
wm
security.txt · wm-security-txt
RFC 9116 contact file at /.well-known/security.txt.
wm
humans.txt · wm-humans-txt
Root humans.txt naming people or teams behind the site.
wm
change-password well-known · wm-change-password
/.well-known/change-password for account recovery doors.
wm
web-app-origin-association · wm-web-app-origin-association
/.well-known/web-app-origin-association for Digital Asset Links-style web apps.
wm
assetlinks.json · wm-assetlinks
/.well-known/assetlinks.json; N/A if no mobile app.
wm
apple-app-site-association · wm-apple-app-site-association
Apple app site association; N/A if no iOS app.
wm
Web app manifest · wm-web-manifest
manifest.json or manifest.webmanifest for installable surfaces.
wm
oEmbed discovery · wm-oembed
oEmbed link or endpoint so agents can unfurl a page.
wm
Developer portal · wm-dev-portal
Self-serve docs or developer hub.
wm
Trust pages · wm-trust-pages
About, privacy, or contact links.
wm
Pricing page · wm-pricing-page
Discoverable pricing page.
wm
Scoped permissions · wm-scopes
Named OAuth scopes in a spec or resource metadata.
wm
Public API surface · wm-public-api
Documented API agents can call.
wm
RSS or Atom document · wm-feed-file
Fetchable /feed, /rss.xml, or /atom.xml.
wm
pricing.md · wm-pricing-md
Machine-readable /pricing.md.
wm
NodeInfo · wm-nodeinfo
/.well-known/nodeinfo for federated servers.
wm
auth.md · wm-auth-md
Root /auth.md walkthrough.
wm
JSON-LD sameAs · wm-sameas
sameAs profile links in JSON-LD.
wm
Open Graph basics · wm-og-meta
og:image or og:title plus canonical.
Tools21
wm
MCP well-known card · mcp-well-known
MCP descriptor under .well-known.
wm
MCP SSE / HTTP hint · mcp-sse-or-http-hint
Page or headers mention MCP transport.
wm
openapi.json fetchable · openapi-json-fetchable
OpenAPI or Swagger JSON at a common path.
wm
Webhook or API docs · webhook-or-api-docs
Webhook or API documentation mention.
wm
Agent skills index · skill-or-agent-skills-index
Skills index or SKILL.md mention.
AR-CAPA-01
MCP initialize · wm-mcp-initialize
JSON-RPC initialize against a discovered MCP HTTP endpoint.
AR-CAPA-04
A2A agent card · wm-a2a-card
/.well-known/agent-card.json or agent.json.
AR-CAPA-08
OpenAPI document · wm-openapi
Machine-readable OpenAPI or Swagger document.
AR-CAPA-02
MCP server card · wm-mcp-card
/.well-known/mcp.json or mcp/server-card.json.
AR-CAPA-03
MCP Apps UI hint · wm-mcp-apps
ui:// resources or io.modelcontextprotocol/ui mention.
AR-CAPA-05
WebMCP page tools · wm-webmcp
navigator.modelContext or HTML tool metadata.
AR-CAPA-06
NLWeb /ask · wm-nlweb-ask
A /ask or NLWeb query endpoint.
AR-CAPA-07
Agent Skills files · wm-agent-skills
SKILL.md or well-known agent-skills index.
wm
Rate limit signal · wm-rate-limit-hint
Rate-limit or retry headers documented or sent on an API surface.
wm
Idempotency signal · wm-idempotency-hint
Idempotency keys or equivalent documented for mutating API calls.
wm
Machine-readable errors · wm-json-error-hint
JSON or problem+json error shape for APIs.
wm
CLI tool · wm-cli
Official CLI mention.
wm
Honest 404 · wm-agent-404
Unknown paths return 404.
wm
MCP server · wm-mcp
Discoverable MCP server or handshake.
wm
OpenAPI UI page · wm-openapi-ui
swagger-ui or redoc.html adjacent to a spec.
wm
GraphQL GET hint · wm-gql-hint
GET common GraphQL paths; response shape only.
Pay5
AR-COMM-01
x402 payment · wm-x402
402 / x402 headers or documentation.
AR-COMM-02
Agentic checkout (ACP) · wm-acp
ACP checkout session or agentic commerce mention.
AR-COMM-03
ACP delegated payment · wm-acp-delegate
Delegate-payment token flow mention.
AR-COMM-04
Universal Commerce Protocol · wm-ucp
/.well-known/ucp profile.
AR-COMM-05
Machine Payments Protocol · wm-mpp
MPP / Payment auth or x-payment-info.