<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Can agents read your documentation? on Agent-Friendly Documentation Spec</title>
    <link>https://agentdocsspec.com/</link>
    <description>Recent content in Can agents read your documentation? on Agent-Friendly Documentation Spec</description>
    <generator>Hugo</generator>
    <language>en</language>
    <atom:link href="https://agentdocsspec.com/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Category 1: Content Discoverability</title>
      <link>https://agentdocsspec.com/spec/web/content-discoverability/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://agentdocsspec.com/spec/web/content-discoverability/</guid>
      <description>&lt;p&gt;Part of the &lt;a href=&#34;https://agentdocsspec.com/spec/web/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Web Documentation Delivery Spec&lt;/a&gt;. The &lt;a href=&#34;https://agentdocsspec.com/spec/web/#checks-summary&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Checks Summary&lt;/a&gt; lists all checks with links to their definitions.&lt;/p&gt;&#xA;&lt;p&gt;These checks evaluate whether agents can find and navigate the site&amp;rsquo;s&#xA;documentation content. This includes whether the site provides an &lt;code&gt;llms.txt&lt;/code&gt;&#xA;file, whether that file is useful to agents, and whether documentation pages&#xA;include signals that direct agents to discovery resources.&lt;/p&gt;&#xA;&lt;h3 id=&#34;location-discovery&#34; class=&#34;relative group&#34;&gt;Location Discovery &lt;span class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100&#34;&gt;&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34; style=&#34;text-decoration-line: none !important;&#34; href=&#34;#location-discovery&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;The &lt;a href=&#34;https://llmstxt.org&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;llmstxt.org proposal&lt;/a&gt; specifies that &lt;code&gt;llms.txt&lt;/code&gt;&#xA;should be at the root path (&lt;code&gt;/llms.txt&lt;/code&gt;), mirroring &lt;code&gt;robots.txt&lt;/code&gt; and&#xA;&lt;code&gt;sitemap.xml&lt;/code&gt;. In practice, the location varies significantly across sites:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Category 2: Markdown Availability</title>
      <link>https://agentdocsspec.com/spec/web/markdown-availability/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://agentdocsspec.com/spec/web/markdown-availability/</guid>
      <description>&lt;p&gt;Part of the &lt;a href=&#34;https://agentdocsspec.com/spec/web/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Web Documentation Delivery Spec&lt;/a&gt;. The &lt;a href=&#34;https://agentdocsspec.com/spec/web/#checks-summary&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Checks Summary&lt;/a&gt; lists all checks with links to their definitions.&lt;/p&gt;&#xA;&lt;p&gt;These checks evaluate whether the site serves documentation in markdown format,&#xA;which agents consume far more effectively than HTML.&lt;/p&gt;&#xA;&lt;h3 id=&#34;markdown-url-support&#34; class=&#34;relative group&#34;&gt;&lt;code&gt;markdown-url-support&lt;/code&gt; &lt;span class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100&#34;&gt;&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34; style=&#34;text-decoration-line: none !important;&#34; href=&#34;#markdown-url-support&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;What it checks&lt;/strong&gt;: Whether appending &lt;code&gt;.md&lt;/code&gt; to documentation page URLs returns&#xA;valid markdown content.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Why it matters&lt;/strong&gt;: Agents work dramatically better with markdown than HTML.&#xA;The HTML-to-markdown conversion in web fetch pipelines is lossy and&#xA;unpredictable. Sites that serve markdown directly bypass conversion issues&#xA;entirely. However, agents don&amp;rsquo;t discover this pattern on their own; it needs&#xA;to be signaled.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Result levels&lt;/strong&gt;:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Pass&lt;/strong&gt;: &lt;code&gt;.md&lt;/code&gt; URLs return valid markdown with 200 status.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Warn&lt;/strong&gt;: Some pages support &lt;code&gt;.md&lt;/code&gt; but not consistently.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Fail&lt;/strong&gt;: &lt;code&gt;.md&lt;/code&gt; URLs return errors or HTML.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Recommended action&lt;/strong&gt;:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Warn&lt;/strong&gt;: Ensure all documentation pages serve markdown when &lt;code&gt;.md&lt;/code&gt; is&#xA;appended to the URL, not just some.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Fail&lt;/strong&gt;: Configure your docs platform to serve &lt;code&gt;.md&lt;/code&gt; variants for all&#xA;documentation pages.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Automation&lt;/strong&gt;: Full. Test against a sample of page URLs (from &lt;code&gt;llms.txt&lt;/code&gt;,&#xA;sitemap, or user-provided list).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;content-negotiation&#34; class=&#34;relative group&#34;&gt;&lt;code&gt;content-negotiation&lt;/code&gt; &lt;span class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100&#34;&gt;&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34; style=&#34;text-decoration-line: none !important;&#34; href=&#34;#content-negotiation&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;What it checks&lt;/strong&gt;: Whether the server responds to &lt;code&gt;Accept: text/markdown&lt;/code&gt;&#xA;with markdown content and an appropriate &lt;code&gt;Content-Type&lt;/code&gt; header.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Why it matters&lt;/strong&gt;: Some agents (Claude Code, Cursor, OpenCode) send&#xA;&lt;code&gt;Accept: text/markdown&lt;/code&gt; as their preferred content type. If the server&#xA;honors this, the agent gets clean markdown without needing to know about&#xA;&lt;code&gt;.md&lt;/code&gt; URL patterns. Most agents don&amp;rsquo;t request markdown, but the ones that&#xA;do should get it.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Result levels&lt;/strong&gt;:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Pass&lt;/strong&gt;: Server returns markdown content with &lt;code&gt;Content-Type: text/markdown&lt;/code&gt;&#xA;when requested.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Warn&lt;/strong&gt;: Server returns markdown content but with incorrect &lt;code&gt;Content-Type&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Fail&lt;/strong&gt;: Server ignores the &lt;code&gt;Accept&lt;/code&gt; header and returns HTML regardless.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Recommended action&lt;/strong&gt;:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Warn&lt;/strong&gt;: Set the response &lt;code&gt;Content-Type&lt;/code&gt; to &lt;code&gt;text/markdown&lt;/code&gt; when serving&#xA;markdown content. The correct header enables optimizations in some agent&#xA;pipelines.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Fail&lt;/strong&gt;: Configure your server to honor &lt;code&gt;Accept: text/markdown&lt;/code&gt; requests&#xA;and return markdown content. Some agents (Claude Code, Cursor, OpenCode)&#xA;request markdown this way.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Automation&lt;/strong&gt;: Full.&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Category 3: Page Size and Truncation Risk</title>
      <link>https://agentdocsspec.com/spec/web/page-size/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://agentdocsspec.com/spec/web/page-size/</guid>
      <description>&lt;p&gt;Part of the &lt;a href=&#34;https://agentdocsspec.com/spec/web/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Web Documentation Delivery Spec&lt;/a&gt;. The &lt;a href=&#34;https://agentdocsspec.com/spec/web/#checks-summary&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Checks Summary&lt;/a&gt; lists all checks with links to their definitions.&lt;/p&gt;&#xA;&lt;p&gt;These checks evaluate whether page content fits within the transfer and&#xA;processing limits of agent web fetch pipelines. Truncation is silent: the&#xA;agent doesn&amp;rsquo;t know it&amp;rsquo;s working with partial data.&lt;/p&gt;&#xA;&lt;h3 id=&#34;how-agents-get-content&#34; class=&#34;relative group&#34;&gt;How Agents Get Content &lt;span class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100&#34;&gt;&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34; style=&#34;text-decoration-line: none !important;&#34; href=&#34;#how-agents-get-content&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;Not all agents see the same thing. The format an agent receives depends on the&#xA;request it makes and the server&amp;rsquo;s response:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Category 4: Content Structure</title>
      <link>https://agentdocsspec.com/spec/web/content-structure/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://agentdocsspec.com/spec/web/content-structure/</guid>
      <description>&lt;p&gt;Part of the &lt;a href=&#34;https://agentdocsspec.com/spec/web/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Web Documentation Delivery Spec&lt;/a&gt;. The &lt;a href=&#34;https://agentdocsspec.com/spec/web/#checks-summary&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Checks Summary&lt;/a&gt; lists all checks with links to their definitions.&lt;/p&gt;&#xA;&lt;p&gt;These checks evaluate whether page content is structured in ways that agents can&#xA;effectively consume. These are harder to fully automate and rely more on&#xA;heuristics.&lt;/p&gt;&#xA;&lt;h3 id=&#34;tabbed-content-serialization&#34; class=&#34;relative group&#34;&gt;&lt;code&gt;tabbed-content-serialization&lt;/code&gt; &lt;span class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100&#34;&gt;&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34; style=&#34;text-decoration-line: none !important;&#34; href=&#34;#tabbed-content-serialization&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;What it checks&lt;/strong&gt;: Whether pages use tabbed, accordion, or dropdown UI&#xA;patterns that serialize into long sequential content in the source, and if&#xA;so, how large the serialized output is.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Why it matters&lt;/strong&gt;: Tabbed content is great for humans but can be catastrophic&#xA;for agents. A tutorial with 11 language variants serializes into a single&#xA;massive document where an agent might see only the first 1-3 variants. Source&#xA;order determines what the agent sees; everything past the truncation point is&#xA;invisible. Asking for a specific variant (e.g., Python) does not help if that&#xA;variant is beyond the truncation point.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Result levels&lt;/strong&gt;:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Pass&lt;/strong&gt;: No tabbed content, or tabbed content that serializes to under&#xA;50,000 characters total.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Warn&lt;/strong&gt;: Tabbed content serializes to 50,000-100,000 characters.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Fail&lt;/strong&gt;: Tabbed content serializes to over 100,000 characters.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Recommended action&lt;/strong&gt;: Break tab variants into separate pages, or provide&#xA;a mechanism for agents to request specific variants. Agents see only the&#xA;first few variants; content in later tabs is truncated.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Automation&lt;/strong&gt;: Heuristic. Detect common tab/accordion component patterns&#xA;(e.g., &lt;code&gt;&amp;lt;Tab&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;Tabs&amp;gt;&lt;/code&gt;, role=&amp;ldquo;tabpanel&amp;rdquo;, common CSS class patterns) and&#xA;estimate serialized size.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;section-header-quality&#34; class=&#34;relative group&#34;&gt;&lt;code&gt;section-header-quality&lt;/code&gt; &lt;span class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100&#34;&gt;&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34; style=&#34;text-decoration-line: none !important;&#34; href=&#34;#section-header-quality&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;What it checks&lt;/strong&gt;: Whether section headers contain enough context to be&#xA;meaningful without the surrounding UI. Specifically, when tabbed content is&#xA;serialized, do headers distinguish which variant (language, platform,&#xA;deployment type) a section belongs to?&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Why it matters&lt;/strong&gt;: When an agent sees serialized tabbed content, descriptive&#xA;headers are the only way it can tell which section applies to which context.&#xA;Generic headers like &amp;ldquo;Step 1&amp;rdquo; repeated across all variants are&#xA;indistinguishable. Headers like &amp;ldquo;Step 1 (Python/PyMongo)&amp;rdquo; preserve the&#xA;filtering context that the UI provided to human readers.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Result levels&lt;/strong&gt; (evaluated both within individual tab groups and across&#xA;tab groups on the same page; the overall result is the worst of both):&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Pass&lt;/strong&gt;: &amp;lt;=25% of headers within tabbed sections are generic (repeated&#xA;across variants without distinguishing context).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Warn&lt;/strong&gt;: 25-50% of headers are generic across variants.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Fail&lt;/strong&gt;: &amp;gt;50% of headers are generic, or identical header sets are&#xA;repeated across separate tab groups on the same page with no variant&#xA;context.&#xA;These thresholds are defaults; implementations should allow them to be&#xA;configured.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Recommended action&lt;/strong&gt;: Add variant context to headers (e.g., &amp;ldquo;Step 1&#xA;(Python)&amp;rdquo; instead of &amp;ldquo;Step 1&amp;rdquo;) so agents can distinguish which section&#xA;belongs to which variant when content is serialized.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Automation&lt;/strong&gt;: Heuristic. Requires detecting tabbed sections and analyzing&#xA;header patterns within them.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;markdown-code-fence-validity&#34; class=&#34;relative group&#34;&gt;&lt;code&gt;markdown-code-fence-validity&lt;/code&gt; &lt;span class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100&#34;&gt;&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34; style=&#34;text-decoration-line: none !important;&#34; href=&#34;#markdown-code-fence-validity&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;What it checks&lt;/strong&gt;: Whether markdown content contains unclosed or improperly&#xA;nested code fences (&lt;code&gt;```&lt;/code&gt; or &lt;code&gt;~~~&lt;/code&gt; blocks without a matching closing&#xA;delimiter).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Why it matters&lt;/strong&gt;: An unclosed code fence causes everything after it to be&#xA;interpreted as code rather than prose. The agent sees documentation text,&#xA;API descriptions, and instructions as if they were inside a code block,&#xA;which fundamentally changes how it processes the content. A model treats&#xA;code blocks as literal content to reproduce or analyze, not as natural&#xA;language instructions to follow. If an unclosed fence appears early in a&#xA;page, the agent effectively loses the rest of the document&amp;rsquo;s meaning. This&#xA;applies to any markdown the site serves directly: pages via &lt;code&gt;.md&lt;/code&gt; URLs or&#xA;content negotiation, and &lt;code&gt;llms.txt&lt;/code&gt; files themselves.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Result levels&lt;/strong&gt;:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Pass&lt;/strong&gt;: All code fences in the markdown content are properly opened and&#xA;closed.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Fail&lt;/strong&gt;: One or more unclosed code fences detected.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Recommended action&lt;/strong&gt;: Ensure every opening &lt;code&gt;```&lt;/code&gt; or &lt;code&gt;~~~&lt;/code&gt; has a&#xA;matching closing delimiter. Everything after an unclosed fence is&#xA;interpreted as code, causing agents to misread documentation as literal&#xA;content.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Notes on delimiter matching&lt;/strong&gt;: Per the CommonMark spec, a backtick fence&#xA;(&lt;code&gt;```&lt;/code&gt;) can only be closed by another backtick fence of equal or greater&#xA;length, and likewise for tilde fences (&lt;code&gt;~~~&lt;/code&gt;). Opening with &lt;code&gt;```&lt;/code&gt; and&#xA;attempting to close with &lt;code&gt;~~~&lt;/code&gt; leaves the backtick fence unclosed. There is&#xA;no intermediate &amp;ldquo;mismatched but balanced&amp;rdquo; state; mismatched delimiters&#xA;produce unclosed fences and should be reported as failures.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Automation&lt;/strong&gt;: Full. Parse the markdown for fence delimiters (&lt;code&gt;```&lt;/code&gt; and&#xA;&lt;code&gt;~~~&lt;/code&gt;, with optional info strings) and verify each opening delimiter has a&#xA;matching close. Run against markdown served via &lt;code&gt;.md&lt;/code&gt; URLs, content&#xA;negotiation responses, and &lt;code&gt;llms.txt&lt;/code&gt; files.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Notes&lt;/strong&gt;: This check applies to markdown the site authors and serves&#xA;directly. Code fences broken by an HTML-to-markdown conversion pipeline are&#xA;outside the site owner&amp;rsquo;s control, though implementations may optionally flag&#xA;them as informational findings.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;markdown-link-portability&#34; class=&#34;relative group&#34;&gt;&lt;code&gt;markdown-link-portability&lt;/code&gt; &lt;span class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100&#34;&gt;&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34; style=&#34;text-decoration-line: none !important;&#34; href=&#34;#markdown-link-portability&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;What it checks&lt;/strong&gt;: Whether links in served markdown are absolute URLs, and&#xA;whether a sample of them resolves to the representation they promise (a&#xA;&lt;code&gt;.md&lt;/code&gt; link returns markdown content, not an HTML error page).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Category 5: URL Stability and Redirects</title>
      <link>https://agentdocsspec.com/spec/web/url-stability/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://agentdocsspec.com/spec/web/url-stability/</guid>
      <description>&lt;p&gt;Part of the &lt;a href=&#34;https://agentdocsspec.com/spec/web/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Web Documentation Delivery Spec&lt;/a&gt;. The &lt;a href=&#34;https://agentdocsspec.com/spec/web/#checks-summary&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Checks Summary&lt;/a&gt; lists all checks with links to their definitions.&lt;/p&gt;&#xA;&lt;p&gt;These checks evaluate whether documentation URLs behave in ways that agents can&#xA;handle, given that agents retrieve URLs from training data and have limited&#xA;ability to discover moved content.&lt;/p&gt;&#xA;&lt;h3 id=&#34;http-status-codes&#34; class=&#34;relative group&#34;&gt;&lt;code&gt;http-status-codes&lt;/code&gt; &lt;span class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100&#34;&gt;&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34; style=&#34;text-decoration-line: none !important;&#34; href=&#34;#http-status-codes&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;What it checks&lt;/strong&gt;: Whether pages return correct HTTP status codes. In&#xA;particular, whether &amp;ldquo;not found&amp;rdquo; pages return 404 (not 200 with a friendly&#xA;error page).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Why it matters&lt;/strong&gt;: Soft 404s (200 status with &amp;ldquo;page not found&amp;rdquo; content) are&#xA;worse than real 404s for agents. The agent sees a 200 and tries to extract&#xA;information from the error page content rather than recognizing the page&#xA;doesn&amp;rsquo;t exist. A clean 404 tells the agent to try a different approach.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Result levels&lt;/strong&gt;:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Pass&lt;/strong&gt;: Error pages return appropriate 4xx status codes.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Fail&lt;/strong&gt;: Error pages return 200 (soft 404).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Recommended action&lt;/strong&gt;: Configure your server to return 404 status codes&#xA;for pages that don&amp;rsquo;t exist. Agents try to extract information from soft&#xA;404 page content instead of recognizing the page is missing.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Automation&lt;/strong&gt;: Full. Test known-bad URLs (e.g., append random strings to real&#xA;page paths) and check status codes.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;redirect-behavior&#34; class=&#34;relative group&#34;&gt;&lt;code&gt;redirect-behavior&lt;/code&gt; &lt;span class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100&#34;&gt;&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34; style=&#34;text-decoration-line: none !important;&#34; href=&#34;#redirect-behavior&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;What it checks&lt;/strong&gt;: Whether redirects are same-host (transparent to agents) or&#xA;cross-host (a friction point), and whether redirects use proper HTTP status&#xA;codes (301/302) vs. JavaScript-based redirects.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Why it matters&lt;/strong&gt;: Same-host redirects work transparently because the HTTP&#xA;client follows them automatically. Cross-host redirects are a known failure&#xA;point; Claude Code, for example, doesn&amp;rsquo;t automatically follow cross-host&#xA;redirects (security measure against open-redirect attacks). JavaScript&#xA;redirects don&amp;rsquo;t work at all because agents don&amp;rsquo;t execute JavaScript.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Result levels&lt;/strong&gt;:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Pass&lt;/strong&gt;: All redirects are same-host HTTP redirects (301/302).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Warn&lt;/strong&gt;: Cross-host HTTP redirects are present (agents may or may not&#xA;follow them depending on the platform).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Fail&lt;/strong&gt;: JavaScript-based redirects are detected.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Recommended action&lt;/strong&gt;:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Warn&lt;/strong&gt;: Where possible, use same-host redirects or update URLs to point&#xA;directly to the final destination.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Fail&lt;/strong&gt;: Replace JavaScript-based redirects with HTTP 301/302 redirects.&#xA;Agents don&amp;rsquo;t execute JavaScript and will not follow these redirects.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Automation&lt;/strong&gt;: Partial. HTTP redirects are detectable. JavaScript redirects&#xA;require fetching the page and scanning for &lt;code&gt;window.location&lt;/code&gt;, &lt;code&gt;meta refresh&lt;/code&gt;,&#xA;or similar patterns.&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Category 6: Observability and Content Health</title>
      <link>https://agentdocsspec.com/spec/web/observability/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://agentdocsspec.com/spec/web/observability/</guid>
      <description>&lt;p&gt;Part of the &lt;a href=&#34;https://agentdocsspec.com/spec/web/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Web Documentation Delivery Spec&lt;/a&gt;. The &lt;a href=&#34;https://agentdocsspec.com/spec/web/#checks-summary&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Checks Summary&lt;/a&gt; lists all checks with links to their definitions.&lt;/p&gt;&#xA;&lt;p&gt;These checks evaluate whether the site&amp;rsquo;s agent-facing resources stay accurate&#xA;and up to date over time. Categories 1-5 can be evaluated as point-in-time&#xA;audits; this category addresses the ongoing maintenance dimension. &lt;code&gt;llms.txt&lt;/code&gt;&#xA;files and markdown endpoints are secondary outputs that often aren&amp;rsquo;t wired&#xA;into existing monitoring, so they can go stale, break, or drift from primary&#xA;HTML content without anyone noticing.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Category 7: Authentication and Access</title>
      <link>https://agentdocsspec.com/spec/web/authentication/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://agentdocsspec.com/spec/web/authentication/</guid>
      <description>&lt;p&gt;Part of the &lt;a href=&#34;https://agentdocsspec.com/spec/web/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Web Documentation Delivery Spec&lt;/a&gt;. The &lt;a href=&#34;https://agentdocsspec.com/spec/web/#checks-summary&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Checks Summary&lt;/a&gt; lists all checks with links to their definitions.&lt;/p&gt;&#xA;&lt;p&gt;These checks evaluate whether documentation is accessible to agents at all:&#xA;without requiring interactive authentication, and without infrastructure-level&#xA;barriers aimed at automated clients. Docs behind login walls are effectively&#xA;invisible to coding agents, which has significant implications as agent-assisted&#xA;development becomes a standard workflow. Bot-protection systems can produce the&#xA;same invisibility through a different mechanism, and often without the site&#xA;owner realizing documentation is affected.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Interaction Effects</title>
      <link>https://agentdocsspec.com/spec/web/interaction-effects/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://agentdocsspec.com/spec/web/interaction-effects/</guid>
      <description>&lt;p&gt;Part of the &lt;a href=&#34;https://agentdocsspec.com/spec/web/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Web Documentation Delivery Spec&lt;/a&gt;. The &lt;a href=&#34;https://agentdocsspec.com/spec/web/#checks-summary&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Checks Summary&lt;/a&gt; lists all checks with links to their definitions.&lt;/p&gt;&#xA;&lt;p&gt;Individual checks measure discrete properties, but agent experience can degrade&#xA;non-linearly when certain failures combine. A site might pass most checks&#xA;individually while still being effectively inaccessible to agents because of how&#xA;the failures interact. This section describes known interaction patterns that&#xA;implementations should detect and surface. Implementations should evaluate these&#xA;after all individual checks have completed.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Appendices</title>
      <link>https://agentdocsspec.com/spec/web/appendices/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://agentdocsspec.com/spec/web/appendices/</guid>
      <description>&lt;p&gt;Part of the &lt;a href=&#34;https://agentdocsspec.com/spec/web/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Web Documentation Delivery Spec&lt;/a&gt;. The &lt;a href=&#34;https://agentdocsspec.com/spec/web/#checks-summary&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Checks Summary&lt;/a&gt; lists all checks with links to their definitions.&lt;/p&gt;&#xA;&lt;h2 id=&#34;appendix-a-known-platform-truncation-limits&#34; class=&#34;relative group&#34;&gt;Appendix A: Known Platform Truncation Limits &lt;span class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100&#34;&gt;&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34; style=&#34;text-decoration-line: none !important;&#34; href=&#34;#appendix-a-known-platform-truncation-limits&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;The thresholds used in this spec&amp;rsquo;s pass/warn/fail levels are derived from&#xA;observed and documented platform behavior. This appendix tracks known limits&#xA;so that implementations can calibrate their thresholds appropriately, and so&#xA;that the spec&amp;rsquo;s default thresholds can be updated as more data becomes&#xA;available.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Changelog</title>
      <link>https://agentdocsspec.com/spec/web/changelog/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://agentdocsspec.com/spec/web/changelog/</guid>
      <description>&lt;p&gt;Part of the &lt;a href=&#34;https://agentdocsspec.com/spec/web/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Web Documentation Delivery Spec&lt;/a&gt;. The &lt;a href=&#34;https://agentdocsspec.com/spec/web/#checks-summary&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Checks Summary&lt;/a&gt; lists all checks with links to their definitions.&lt;/p&gt;&#xA;&lt;h3 id=&#34;v060-2026-09-13&#34; class=&#34;relative group&#34;&gt;v0.6.0 (2026-09-13) &lt;span class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100&#34;&gt;&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34; style=&#34;text-decoration-line: none !important;&#34; href=&#34;#v060-2026-09-13&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ul&gt;&#xA;&lt;li&gt;Added &lt;code&gt;bot-protection-interference&lt;/code&gt; (Category 7: Authentication and Access).&#xA;Detects bot-protection systems interfering with automated documentation&#xA;fetching: challenge interstitials served as 200, tarpits that return headers&#xA;and then stall the response body indefinitely, and volume-triggered&#xA;throttling or blocking. Grounded in an observed production case where CDN&#xA;bot management responded to a sustained scan by holding response bodies&#xA;open; single-request probes looked healthy throughout, and enforcement&#xA;decayed after a cooldown. Detection is heuristic, observed as a byproduct&#xA;of a normal scan rather than a directed probe.&lt;/li&gt;&#xA;&lt;li&gt;Added the &lt;a href=&#34;https://agentdocsspec.com/spec/web/interaction-effects/#bot-protection-degrading-scan-reliability&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Bot Protection Degrading Scan Reliability&lt;/a&gt;&#xA;interaction effect: when enforcement engages mid-scan, other checks score&#xA;the surviving sample, so implementations should aggregate fetch failures at&#xA;run level and flag results when the failure rate is high.&lt;/li&gt;&#xA;&lt;li&gt;Expanded the Category 7 introduction to cover infrastructure-level access&#xA;barriers alongside authentication.&lt;/li&gt;&#xA;&lt;li&gt;Added &lt;code&gt;page-size-transfer&lt;/code&gt; (Category 3: Page Size and Truncation Risk).&#xA;Measures the served byte size of the HTML document response, a failure&#xA;mode &lt;code&gt;page-size-html&lt;/code&gt;&amp;rsquo;s post-conversion measurement cannot see. Grounded&#xA;in measurements of production documentation sites where 75-84% of page&#xA;bytes were serialized framework payloads (component trees, resolved&#xA;metadata, embedded duplicate markdown source), with served-bytes-to-content&#xA;ratios from 40:1 to 200:1. Scored on served bytes; the ratio is reported&#xA;as a diagnostic.&lt;/li&gt;&#xA;&lt;li&gt;Documented the pipeline distinction in Category 3&amp;rsquo;s &amp;ldquo;How Agents Get&#xA;Content&amp;rdquo; section: convert-then-truncate, truncate-then-convert (or raw&#xA;ingestion), and capped fetch, and which size measurement predicts each.&lt;/li&gt;&#xA;&lt;li&gt;Added &lt;code&gt;single-fetch-completeness&lt;/code&gt; (Category 3: Page Size and Truncation&#xA;Risk). Detects pagination in markdown responses and verifies the&#xA;continuation is machine-followable. Grounded in an observed production&#xA;catalog whose markdown variant showed 100 of 102 entries with a trailing&#xA;relative continuation URL that returned an empty body, while the complete&#xA;set would have fit well under the 50,000-character pass threshold.&lt;/li&gt;&#xA;&lt;li&gt;Added &lt;code&gt;markdown-link-portability&lt;/code&gt; (Category 4: Content Structure). Links&#xA;in served markdown should be absolute and should resolve to the&#xA;representation they promise, verified beyond status codes (content type&#xA;and soft-404 heuristics). Grounded in an observed production catalog&#xA;whose generated markdown links all pointed into a wrong path prefix and&#xA;soft-404ed as HTML SPA shells at &lt;code&gt;.md&lt;/code&gt; URLs while returning 200.&lt;/li&gt;&#xA;&lt;li&gt;Added &lt;code&gt;embedded-data-serialization&lt;/code&gt; (Category 4: Content Structure).&#xA;Attributes page size to machine-generated bulk elements (large uniform&#xA;tables, inline data blobs). Grounded in a measured production reference&#xA;page: 302KB of HTML, 64% table markup including a single 218-row&#xA;generated table, converting to ~83,000 characters while its non-table&#xA;prose totaled ~17,000.&lt;/li&gt;&#xA;&lt;li&gt;Extended &lt;code&gt;markdown-content-parity&lt;/code&gt; notes with guidance for dynamically&#xA;generated pages: compare item counts between representations and&#xA;distinguish default-filter divergence, pagination windowing, and&#xA;staleness as causes.&lt;/li&gt;&#xA;&lt;li&gt;Added the &lt;a href=&#34;https://agentdocsspec.com/spec/web/interaction-effects/#dynamic-content-rendered-statically&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Dynamic Content Rendered Statically&lt;/a&gt;&#xA;interaction effect: the four characteristic ways a dynamic page flattens&#xA;badly into static markdown (too much, too little, inconsistent,&#xA;unnavigable), observed together on a single production catalog page.&lt;/li&gt;&#xA;&lt;li&gt;Added the &lt;a href=&#34;https://agentdocsspec.com/spec/web/#related-surfaces&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Related Surfaces&lt;/a&gt; subsection to Scope,&#xA;naming the planned companion specifications (content composition,&#xA;repository-local documentation) and the boundary that keeps this spec&amp;rsquo;s&#xA;checks mechanically verifiable.&lt;/li&gt;&#xA;&lt;li&gt;Added the &lt;a href=&#34;https://agentdocsspec.com/spec/web/#serving-rag-ingestion-pipelines&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Serving RAG Ingestion Pipelines&lt;/a&gt;&#xA;informational section, mapping existing checks to RAG ingestion needs&#xA;(crawl manifest, clean source, chunk boundaries, incremental&#xA;re-indexing), informed by consumer reports from production RAG builds.&#xA;The Scope section&amp;rsquo;s RAG exclusion now distinguishes query-time retrieval&#xA;(out of scope) from ingestion (served by this spec).&lt;/li&gt;&#xA;&lt;li&gt;Restructured the website serving of the spec: the full document exceeded&#xA;the 100,000-character truncation threshold its own checks warn about, so&#xA;it is now served as per-category pages under &lt;code&gt;/spec/web/&lt;/code&gt;, with &lt;code&gt;/spec/&lt;/code&gt;&#xA;becoming a landing page for this and future companion specifications.&#xA;The canonical source remains a single SPEC.md in the repository. This&#xA;breaks previously published deep URLs deliberately, in exchange for a&#xA;namespace that accommodates the companion specs.&lt;/li&gt;&#xA;&lt;li&gt;Check count: 23 → 28.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;v051-2026-05-08&#34; class=&#34;relative group&#34;&gt;v0.5.1 (2026-05-08) &lt;span class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100&#34;&gt;&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34; style=&#34;text-decoration-line: none !important;&#34; href=&#34;#v051-2026-05-08&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ul&gt;&#xA;&lt;li&gt;Moved per-platform truncation data out of Appendix A into a new&#xA;&lt;a href=&#34;https://agentdocsspec.com/platforms/&#34; target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Platforms&lt;/a&gt; comparison page on the&#xA;site. Appendix A retains the spec&amp;rsquo;s threshold rationale and points readers&#xA;to the platforms page for current per-platform observations. Category 3&#xA;(Page Size and Truncation Risk) now references the platforms page so&#xA;readers can connect threshold choices to empirical pipeline behavior. No&#xA;threshold or check definitions changed. Platforms page authored by&#xA;Rhyannon Rodriguez.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;v050-2026-04-25&#34; class=&#34;relative group&#34;&gt;v0.5.0 (2026-04-25) &lt;span class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100&#34;&gt;&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34; style=&#34;text-decoration-line: none !important;&#34; href=&#34;#v050-2026-04-25&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ul&gt;&#xA;&lt;li&gt;Split &lt;code&gt;llms-txt-directive&lt;/code&gt; into two independent checks:&#xA;&lt;code&gt;llms-txt-directive-html&lt;/code&gt; and &lt;code&gt;llms-txt-directive-md&lt;/code&gt;. The original check&#xA;conflated two distinct signals that serve different audiences. The HTML&#xA;check detects directives in the rendered DOM (for agents fetching HTML&#xA;pages); the markdown check detects directives in markdown source (for&#xA;agents fetching &lt;code&gt;.md&lt;/code&gt; URLs or using content negotiation). The split also&#xA;adds explicit detection guidance: incidental mentions of &lt;code&gt;llms.txt&lt;/code&gt; in&#xA;navigation, metadata, or page content discussing the feature do not count&#xA;as directives. &lt;code&gt;llms-txt-directive-md&lt;/code&gt; depends on &lt;code&gt;markdown-url-support&lt;/code&gt;&#xA;or &lt;code&gt;content-negotiation&lt;/code&gt;; it is skipped if neither passes. This is a&#xA;breaking change for implementations that reference the old check ID.&lt;/li&gt;&#xA;&lt;li&gt;Check count: 22 → 23.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;v040-2026-04-21&#34; class=&#34;relative group&#34;&gt;v0.4.0 (2026-04-21) &lt;span class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100&#34;&gt;&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34; style=&#34;text-decoration-line: none !important;&#34; href=&#34;#v040-2026-04-21&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ul&gt;&#xA;&lt;li&gt;Renamed &lt;code&gt;llms-txt-freshness&lt;/code&gt; to &lt;code&gt;llms-txt-coverage&lt;/code&gt;. The check compares&#xA;&lt;code&gt;llms.txt&lt;/code&gt; URLs against the sitemap to measure how much of the site is&#xA;represented; that&amp;rsquo;s coverage, not freshness. Whether listed URLs still&#xA;resolve is already handled by &lt;code&gt;llms-txt-links-resolve&lt;/code&gt;. Rewrote the check&#xA;description to match. This is a breaking change for implementations that&#xA;reference the old check ID.&lt;/li&gt;&#xA;&lt;li&gt;Revised &lt;code&gt;page-size-html&lt;/code&gt; and &lt;code&gt;content-start-position&lt;/code&gt; to be&#xA;pipeline-agnostic. The previous language prescribed a specific conversion&#xA;approach (Turndown with default configuration) based on one agent&amp;rsquo;s&#xA;behavior. Agent HTML processing pipelines vary and continue to evolve;&#xA;the spec now describes the measurement goal (approximate what agents see)&#xA;and leaves conversion details to implementers. Recommended actions now&#xA;cover all boilerplate sources (navigation, sidebars, serialized tabbed&#xA;content) rather than focusing narrowly on inline CSS/JS.&lt;/li&gt;&#xA;&lt;li&gt;Expanded &lt;code&gt;llms-txt-coverage&lt;/code&gt; to account for intentional curation. Many&#xA;sites deliberately include only a subset of pages in &lt;code&gt;llms.txt&lt;/code&gt; (excluding&#xA;changelogs, old versions, directory pages, etc.). The check now describes&#xA;three use cases (full parity, curated, hybrid) served by configurable&#xA;thresholds and exclusion patterns, rather than treating all gaps as&#xA;problems.&lt;/li&gt;&#xA;&lt;li&gt;Expanded &lt;code&gt;markdown-content-parity&lt;/code&gt; to distinguish intentional audience&#xA;segmentation from unintentional content drift. Some sites intentionally&#xA;serve different content per audience (agent-optimized markdown vs.&#xA;human-optimized HTML). The check now describes audience-segmentation tags&#xA;as a mechanism implementations can recognize, and supports the same&#xA;mirrored/segmented/curated spectrum as &lt;code&gt;llms-txt-coverage&lt;/code&gt;. The spec does&#xA;not prescribe specific tag conventions; implementations document which&#xA;they support.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;v030-2026-03-31&#34; class=&#34;relative group&#34;&gt;v0.3.0 (2026-03-31) &lt;span class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100&#34;&gt;&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34; style=&#34;text-decoration-line: none !important;&#34; href=&#34;#v030-2026-03-31&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ul&gt;&#xA;&lt;li&gt;Merged Category 6 (Agent Discoverability Directives) into Category 1,&#xA;renamed to &amp;ldquo;Content Discoverability.&amp;rdquo; The &lt;code&gt;llms-txt-directive&lt;/code&gt; check (now&#xA;&lt;code&gt;llms-txt-directive-html&lt;/code&gt; and &lt;code&gt;llms-txt-directive-md&lt;/code&gt;) answers&#xA;the same fundamental question as the llms.txt checks: can agents find and&#xA;navigate the content? This reduces categories from 8 to 7.&lt;/li&gt;&#xA;&lt;li&gt;Renumbered Category 7 (Observability) to 6, Category 8 (Authentication) to 7.&lt;/li&gt;&#xA;&lt;li&gt;Added &lt;strong&gt;Recommended action&lt;/strong&gt; field to all 22 check definitions. Provides&#xA;1-2 sentence actionable guidance for each warn and fail state, giving&#xA;documentation teams a clear next step rather than just a diagnosis.&lt;/li&gt;&#xA;&lt;li&gt;Added &lt;strong&gt;Interaction Effects&lt;/strong&gt; section after Checks Summary. Documents six&#xA;patterns where combinations of check results indicate systemic problems&#xA;worse than individual failures suggest (e.g., undiscoverable markdown,&#xA;no viable content path, oversized pages without markdown escape).&lt;/li&gt;&#xA;&lt;li&gt;Category count: 8 → 7. Check count unchanged at 22.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;v021-2026-03-15&#34; class=&#34;relative group&#34;&gt;v0.2.1 (2026-03-15) &lt;span class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100&#34;&gt;&lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700&#34; style=&#34;text-decoration-line: none !important;&#34; href=&#34;#v021-2026-03-15&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;Clarifications from implementing the &lt;code&gt;afdocs&lt;/code&gt; conformance tool against the&#xA;spec. No new checks; all changes refine existing check definitions.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
