{
 "a2a": {
  "path": "/.well-known/agent-card.json",
  "expect": {
   "content_type": "json",
   "json_keys": [
    "name",
    "url"
   ]
  },
  "note": "An A2A Agent Card names the agent and its service URL."
 },
 "ucp": {
  "path": "/.well-known/ucp",
  "expect": {
   "content_type": "json"
  },
  "note": "A UCP profile is a JSON document declaring supported capabilities; presence of JSON at the path is the signal."
 },
 "llms-txt": {
  "path": "/llms.txt",
  "expect": {
   "text_match": "(?m)^# \\S"
  },
  "note": "llms.txt must begin with an H1 line."
 },
 "agents-md": {
  "path": "/AGENTS.md",
  "expect": {
   "text_match": "\\S"
  },
  "note": "AGENTS.md has no required fields; a non-empty document at the site root is the signal."
 },
 "aipref-content-usage-attachment": {
  "path": "/robots.txt",
  "expect": {
   "text_match": "(?im)^content-usage:"
  },
  "note": "A Content-Usage line in robots.txt attaches AIPREF preferences to the site."
 },
 "aipref-vocabulary": {
  "path": "/robots.txt",
  "expect": {
   "text_match": "(?im)^content-usage:\\s*\\S"
  },
  "note": "Vocabulary tokens are not validated; a non-empty Content-Usage value is the signal."
 },
 "tdmrep": {
  "path": "/.well-known/tdmrep.json",
  "expect": {
   "content_type": "json",
   "text_match": "tdm-reservation|tdm-policy"
  },
  "note": "A TDMRep file carries tdm-reservation or tdm-policy fields."
 },
 "cloudflare-content-signals-policy": {
  "path": "/robots.txt",
  "expect": {
   "text_match": "(?im)^content-signal:"
  },
  "note": "Content Signals are Content-Signal lines in robots.txt."
 },
 "webbotauth": {
  "path": "/.well-known/http-message-signatures-directory",
  "expect": {
   "content_type": "http-message-signatures-directory",
   "json_keys": [
    "keys"
   ]
  },
  "note": "A signature directory is a JWKS served with its own media type."
 },
 "web-bot-auth-signature-agent-card": {
  "path": "/.well-known/http-message-signatures-directory",
  "expect": {
   "json_keys": [
    "client_name"
   ]
  },
  "note": "The Signature Agent Card adds OAuth client registration fields to the directory."
 },
 "ard": {
  "path": "/.well-known/ard.json",
  "expect": {
   "json_keys": [
    "entries"
   ]
  },
  "note": "An ARD manifest is JSON with a top-level entries array."
 },
 "ai-catalog-well-known-file": {
  "path": "/.well-known/ai-catalog.json",
  "expect": {
   "json_keys": [
    "entries"
   ]
  },
  "note": "Deprecated predecessor path of the ARD manifest, still probed so the census can count migration."
 },
 "aid": {
  "path": "/.well-known/agent",
  "expect": {
   "content_type": "json",
   "json_keys": [
    "uri"
   ]
  },
  "note": "The AID well-known document mirrors the DNS TXT record, including uri."
 },
 "adp": {
  "path": "/.well-known/agent.json",
  "expect": {
   "json_keys": [
    "identity",
    "endpoints"
   ]
  },
  "note": "An ADP agent.json has identity and endpoints blocks."
 },
 "ardp": {
  "path": "/.well-known/ardp/meta",
  "expect": {
   "json_keys": [
    "ttl_min",
    "auth_profiles"
   ]
  },
  "note": "ARDP meta declares TTL bounds and auth profiles."
 },
 "ads": {
  "path": "/v1/agents",
  "expect": {
   "content_type": "json"
  },
  "note": "An Agent Directory Service lists catalog entries as JSON at /v1/agents."
 },
 "adcp": {
  "path": "/.well-known/adagents.json",
  "expect": {
   "json_keys": [
    "agents"
   ]
  },
  "note": "adagents.json lists the publisher's authorised ad agents."
 },
 "anp": {
  "path": "/.well-known/agent-descriptions",
  "expect": {
   "content_type": "json",
   "text_match": "AgentDescription"
  },
  "note": "ANP active discovery is a JSON-LD collection of AgentDescription items."
 },
 "agora-protocol": {
  "path": "/.wellknown",
  "expect": {
   "content_type": "json"
  },
  "note": "Agora agents declare supported protocols as a JSON map at /.wellknown (sic)."
 },
 "api-catalog-rfc9727": {
  "path": "/.well-known/api-catalog",
  "expect": {
   "content_type": "linkset",
   "json_keys": [
    "linkset"
   ]
  },
  "note": "RFC 9727 requires application/linkset+json with a linkset array."
 },
 "rsl": {
  "path": "/robots.txt",
  "expect": {
   "text_match": "(?im)^license:\\s*\\S|rsl\\.xml"
  },
  "note": "RSL is referenced from robots.txt by a License line or an rsl.xml link."
 },
 "agent-permissions-json": {
  "path": "/.well-known/agent-permissions.json",
  "expect": {
   "json_keys": [
    "metadata",
    "strict"
   ]
  },
  "note": "agent-permissions.json requires metadata and strict at top level."
 },
 "auth-md": {
  "path": "/auth.md",
  "expect": {
   "text_match": "identity_assertion|service_auth|anonymous"
  },
  "note": "auth.md describes one or more of the three named flows."
 },
 "ai-crawler-tokens-robots": {
  "path": "/robots.txt",
  "expect": {
   "text_match": "(?im)^user-agent:\\s*(GPTBot|OAI-SearchBot|ClaudeBot|Claude-User|Claude-SearchBot|Google-Extended|PerplexityBot|CCBot|Applebot-Extended|meta-externalagent|Bytespider|Amazonbot)\\b"
  },
  "note": "A robots.txt group naming a known AI crawler token."
 },
 "agents-json": {
  "path": "/.well-known/agents.json",
  "expect": {
   "json_keys": [
    "flows"
   ]
  },
  "note": "agents.json extends OpenAPI with a flows field."
 },
 "agents-txt": {
  "path": "/agents.txt",
  "expect": {
   "text_match": "\\S"
  },
  "note": "Competing agents.txt grammars share only the path; a non-empty file is the signal."
 },
 "ai-txt": {
  "path": "/ai.txt",
  "expect": {
   "text_match": "(?im)^(training|scraping|indexing|caching)\\s*:"
  },
  "note": "ai.txt carries Training, Scraping, Indexing or Caching directives."
 },
 "lmos": {
  "path": "/.well-known/wot-thing-description",
  "expect": {
   "text_match": "eclipse\\.dev/lmos"
  },
  "note": "An LMOS Thing Description references the LMOS namespace."
 },
 "erc-8004": {
  "path": "/.well-known/agent-registration.json",
  "expect": {
   "content_type": "json"
  },
  "note": "ERC-8004 agents publish a registration file at the domain they claim."
 },
 "vi": {
  "path": "/.well-known/verifiable-intent",
  "expect": {
   "content_type": "json"
  },
  "note": "A merchant publishes its Verifiable Intent document at a fixed well-known path."
 },
 "oauth-metadata-for-agents": {
  "path": "/.well-known/oauth-protected-resource",
  "expect": {
   "json_keys": [
    "resource"
   ]
  },
  "note": "RFC 9728 protected resource metadata requires the resource field."
 },
 "mcp": {
  "skip": "no-fixed-path",
  "note": "MCP endpoints live wherever the vendor puts them; the server card is at <endpoint>/server-card, not at a well-known path. Look in ard.json entries."
 },
 "agent-communication-protocol": {
  "skip": "superseded",
  "note": "IBM ACP was archived and merged into A2A; /agents is not expected on new deployments."
 },
 "agentic-commerce-protocol": {
  "skip": "unsafe-post",
  "note": "The probe is POST /checkout_sessions, which creates a checkout on the merchant; never run unauthenticated."
 },
 "x402": {
  "skip": "no-fixed-path",
  "note": "A 402 challenge appears only on a URL that charges; there is no fixed path to check."
 },
 "l402": {
  "skip": "no-fixed-path",
  "note": "L402 challenges appear only on paid URLs."
 },
 "mpp": {
  "skip": "no-fixed-path",
  "note": "MPP challenges appear only on paid URLs."
 },
 "s402": {
  "skip": "no-fixed-path",
  "note": "s402 challenges appear only on paid URLs."
 },
 "nlweb": {
  "skip": "unsafe-post",
  "note": "The probe is POST /ask with a question body; not run from a public tool."
 },
 "agent-connect-protocol": {
  "skip": "unsafe-post",
  "note": "The probe is POST /agents/search."
 },
 "agent-protocol-aief": {
  "skip": "unsafe-post",
  "note": "The probe is POST /ap/v1/agent/tasks, which starts a task."
 },
 "aitp": {
  "skip": "unsafe-post",
  "note": "The probe is POST /threads, which creates a thread."
 },
 "coral-protocol": {
  "skip": "unsafe-post",
  "note": "The probe is POST /api/v1/local/session, which opens a session."
 },
 "okf": {
  "skip": "no-fixed-path",
  "note": "OKF bundles live wherever the producer publishes them; there is no origin path."
 },
 "vercel-agent-readability": {
  "skip": "no-fixed-path",
  "note": "A checklist, not a manifest; the llms-txt, agents-md, robots and sitemap checks cover its site-level items."
 },
 "daap": {
  "skip": "no-fixed-path",
  "note": "DAAP rides on OAuth authorization server metadata; presence of that metadata does not prove the profile."
 },
 "aap": {
  "skip": "no-fixed-path",
  "note": "AAP is a claims profile inside OAuth tokens; nothing at a fixed path proves it."
 },
 "aauth": {
  "skip": "needs-credentials",
  "note": "The Agent Authorization Grant is observed only inside a token request."
 },
 "ap2": {
  "skip": "needs-credentials",
  "note": "AP2 mandates are exchanged inside an authorised checkout; nothing is published at a fixed path."
 },
 "ap2-checkout-mandate": {
  "skip": "needs-credentials",
  "note": "A component of AP2, observable only inside a checkout."
 },
 "vcap": {
  "skip": "needs-credentials",
  "note": "VCAP credentials are presented during a payment, not published."
 },
 "tap": {
  "skip": "needs-credentials",
  "note": "Trusted Agent Protocol keys are fetched from the key service by keyID during a transaction."
 },
 "agent-attribution-protocol": {
  "skip": "needs-credentials",
  "note": "The probe is a vendor API call that needs an API key."
 },
 "agent-audit-trail": {
  "skip": "needs-credentials",
  "note": "Audit logs are exported from an operator-defined endpoint behind authentication."
 },
 "artf": {
  "skip": "needs-credentials",
  "note": "ARTF containers run inside the host platform; the health endpoint is internal."
 },
 "erc-8183": {
  "skip": "not-http",
  "note": "An Ethereum contract; observable via eth_call, not HTTP."
 },
 "erc-8226": {
  "skip": "not-http",
  "note": "An Ethereum contract; observable via eth_call, not HTTP."
 },
 "dns-aid": {
  "skip": "not-http",
  "note": "DNS SVCB records; the HTTP well-known form is covered by the aid rule."
 },
 "agtp": {
  "skip": "not-http",
  "note": "AGTP is its own application-layer protocol over QUIC or TCP."
 },
 "slim": {
  "skip": "not-http",
  "note": "SLIM is a transport operated by data-plane nodes on its own wire protocol."
 },
 "spiffe": {
  "skip": "not-http",
  "note": "SPIFFE identities are issued over a local socket, not published on the web."
 },
 "wimse": {
  "skip": "not-http",
  "note": "WIMSE is an architecture for workload identity with no origin artefact."
 },
 "http-message-signatures": {
  "skip": "no-fixed-path",
  "note": "Signatures appear on individual messages; the webbotauth directory rule covers the published key side."
 },
 "ans": {
  "skip": "no-fixed-path",
  "note": "The ANS draft defines no fixed well-known path or record type."
 },
 "aip": {
  "skip": "client-side",
  "note": "AIP is a client-side identity protocol with no origin artefact."
 },
 "webmcp": {
  "skip": "client-side",
  "note": "WebMCP is a browser API on the page; observable only by executing the page."
 },
 "web-agent-protocol": {
  "skip": "client-side",
  "note": "WAP records and replays browser actions; nothing is served by the site."
 },
 "agent-client-protocol": {
  "skip": "client-side",
  "note": "ACP runs between an editor and a local agent binary over stdio."
 },
 "anthropic-agent-skills-format": {
  "skip": "client-side",
  "note": "Skills are files in a local skills directory, not served by an origin."
 },
 "a2ui": {
  "skip": "no-fixed-path",
  "note": "A2UI is carried inside an AG-UI, A2A or MCP session; no fixed path."
 },
 "ag-ui": {
  "skip": "no-fixed-path",
  "note": "The AG-UI run endpoint is application-defined."
 },
 "mcp-apps": {
  "skip": "no-fixed-path",
  "note": "MCP Apps are declared inside an MCP server's tools/list; find the server first."
 },
 "openai-apps-sdk-manifests": {
  "skip": "no-fixed-path",
  "note": "Plugin manifests are registered with OpenAI, reached through the app's MCP endpoint."
 },
 "oasf": {
  "skip": "no-fixed-path",
  "note": "OASF schemas live on the schema host, not on the origin using them."
 },
 "aamp": {
  "skip": "no-fixed-path",
  "note": "AAMP registries are operated by IAB Tech Lab, not by the origin."
 },
 "agora-commerce-protocol": {
  "skip": "no-fixed-path",
  "note": "Agora Commerce publishes at api.agoraproto.org, not on member origins."
 },
 "osi": {
  "skip": "no-fixed-path",
  "note": "OSI is a schema for semantic models exchanged between tools, not an origin artefact."
 },
 "nlip": {
  "skip": "no-fixed-path",
  "note": "NLIP is a message envelope between agents; ECMA-430 defines no discovery artefact at an origin."
 },
 "emv-agentic-payments": {
  "skip": "no-fixed-path",
  "note": "A framework document for card-network payment specifications; nothing is published at an origin."
 },
 "identity-assertion-authz-grant": {
  "path": "/.well-known/oauth-authorization-server",
  "expect": {
   "json_keys": [
    "authorization_grant_profiles_supported"
   ]
  },
  "note": "draft-ietf-oauth-identity-assertion-authz-grant advertises the id-jag profile in authorization server metadata; the key alone shows the server publishes grant profiles, so check for urn:ietf:params:oauth:grant-profile:id-jag in the value."
 },
 "aiagent-auth": {
  "skip": "no-fixed-path",
  "note": "An IETF framework draft composing WIMSE, SPIFFE and OAuth flows; it defines no artefact of its own at an origin."
 },
 "dan": {
  "skip": "not-http",
  "note": "DNS records of types AIINDEX (65502) at _agents.<domain> and AIDISCA (65501); not reachable by HTTP GET."
 }
}
