← Back to Blog

The .well-known Directory Audit: Probe 13 Files, Fix the Gaps

· Updated October 13, 2026 · 4 min read The .well-known Directory Audit: Probe 13 Files, Fix the Gaps

Most sites expose two files from /.well-known/. Maybe security.txt and, if someone configured ACME, a certbot artifact. That's it. The other files that can live there are defined by standards and useful in 2026, but they don't get served because nobody remembered them at build time.

Updated October 13, 2026: I removed two false claims about agent-card.json. AI models do not check it before reading a site, and it is not the first request an agent makes. The file describes an A2A agent endpoint. I also added the AI catalog and a note on the tool's generated cards.

The .well-known Directory Audit probes every standard path in parallel, validates what's served, and generates files for what isn't. You paste a URL, you get back a coverage score and a copy-paste fix kit.

What it actually checks

The script started with thirteen paths and has grown since. The standards-defined ones under /.well-known/ include:

  • security.txt. RFC 9116. Validates that Contact: and Expires: fields are present. If not, you have a file but it's not compliant.
  • agent-card.json. The A2A agent card. It describes an A2A agent: software that accepts A2A messages at an endpoint. It only belongs on a site that runs one. The tool still marks a missing card as required; if you do not run an A2A agent, treat that row as not applicable.
  • ai-plugin.json. ChatGPT-plugin / AI-service manifest. Matters if you expose an API.
  • change-password. The W3C redirect that tells password managers where to send users clicking "change compromised password."
  • webfinger. Federated identity discovery. If you're on Mastodon or Bluesky and want to be verifiably you, this is the bridge.
  • host-meta, assetlinks.json, apple-app-site-association, openid-configuration, nodeinfo. App-to-web links, OpenID discovery, federated metadata.
  • api-catalog, mcp/server-card.json, the agent skills index and the OAuth metadata files, each marked as applying only when your site has that kind of surface.

Plus root-level companions that sit alongside: robots.txt, humans.txt, ads.txt, llms.txt and AGENTS.md.

What it does not check: the AI catalog

The audit does not probe the AI catalog. That file, defined by Agentic Resource Discovery v0.91, lives at /.well-known/ard.json, with the same bytes at the older /.well-known/ai-catalog.json. It is the site-wide index of your agent resources. Each entry points to a card (an A2A agent card with type application/a2a-agent-card+json, or an MCP server card with type application/mcp-server-card+json), and each card names its endpoint. To check a catalog, use the Agent Endpoint Inspector or the Mega Analyzer.

The fix kit

When a file is missing, the tool generates a replacement with your host, name, and today's date already substituted in. security.txt comes pre-signed with a 365-day Expires. change-password arrives as the Netlify _redirects line and the Apache .htaccess equivalent.

The agent-card.json and MCP server card it generates are starting points, not valid cards: check the agent card against the A2A required fields and the MCP card against its published schema before you publish either. The A2A 1.0 spec requires name, description, supportedInterfaces, version, capabilities (an object), defaultInputModes, defaultOutputModes and skills. And publish an agent card only if you run the A2A endpoint it points to.

You can copy each one to clipboard or download it as the real file. For the hosting-config step, the generated LLM prompt asks Claude for the _headers / .htaccess / Nginx snippet to serve each file with the correct Content-Type.

Why this is suddenly load-bearing

Three things shifted in the last year.

Agent resources got their own discovery files. An A2A client that wants to talk to your agent reads its card at /.well-known/agent-card.json. An MCP client reads your MCP server card. The AI catalog lists both in one place. None of that applies to a site that runs no agent, and an ordinary crawler reading your pages does not need any of it. For site identity, llms.txt, AGENTS.md and schema.org markup do the work.

Password managers honor change-password. Safari and 1Password route "change this leaked password" directly to /.well-known/change-password. Without the redirect, users land on your homepage, can't find the change flow, and give up. That's churn you don't need.

Security researchers expect security.txt. Responsible disclosure starts with a curl. No file means reports go through contact@ or, worse, get posted publicly because the researcher couldn't reach you privately.

Where this pairs with the other tools

The Mega Analyzer touches one or two .well-known files as part of a broader audit. This tool covers the full standard-defined set and generates fixes. Run both. The Mega Analyzer tells you the big-picture score; this tells you which identity files are still missing.

For the methodology, Chapter 4 of The $20 Dollar Agency. Technical SEO Files. Is the reference. Chapter 8 of The $100 Network. Underused Platform Features That Replace Paid Tools. Shows how to serve all of these from a Cloudflare Worker instead of paying an identity SaaS.

Fact-check notes and sources

  • October 13, 2026 update: The agent card's purpose and its required fields (section 4.4.1) come from the A2A protocol specification, version 1.0.0, read October 13, 2026. The AI catalog addresses and entry types come from Agentic Resource Discovery v0.91 (status Proposal, dated August 26, 2026), read October 13, 2026. The MCP server card schema is schema.json in the ext-server-card repository, read October 13, 2026. What the tool probes and generates was read from its source on October 13, 2026.

Related reading

← Back to Blog

Accessibility Options

Text Size
High Contrast
Reduce Motion
Reading Guide
Link Highlighting
Accessibility Statement

J.A. Watte is committed to ensuring digital accessibility for people with disabilities. This site conforms to WCAG 2.1 and 2.2 Level AA guidelines.

Measures Taken

  • Semantic HTML with proper heading hierarchy
  • ARIA labels and roles for interactive components
  • Color contrast ratios meeting WCAG AA (4.5:1)
  • Full keyboard navigation support
  • Skip navigation link
  • Visible focus indicators (3:1 contrast)
  • 44px minimum touch/click targets
  • Dark/light theme with system preference detection
  • Responsive design for all devices
  • Reduced motion support (CSS + toggle)
  • Text size customization (14px–20px)
  • Print stylesheet

Feedback

Contact: jwatte.com/contact

Full Accessibility Statement • Privacy Policy

Last updated: April 2026