<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ashley Pfeiffer</title>
    <description>The latest articles on DEV Community by Ashley Pfeiffer (@ashley_pfeiffer_9895a203e).</description>
    <link>https://dev.to/ashley_pfeiffer_9895a203e</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3887945%2Fd89989a6-b789-47e8-8a43-30099fe16723.png</url>
      <title>DEV Community: Ashley Pfeiffer</title>
      <link>https://dev.to/ashley_pfeiffer_9895a203e</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ashley_pfeiffer_9895a203e"/>
    <language>en</language>
    <item>
      <title>We Scored 100 Sites on Agent Readiness. Every One Failed.</title>
      <dc:creator>Ashley Pfeiffer</dc:creator>
      <pubDate>Sun, 19 Apr 2026 23:08:08 +0000</pubDate>
      <link>https://dev.to/ashley_pfeiffer_9895a203e/we-scored-100-sites-on-agent-readiness-every-one-failed-3bpg</link>
      <guid>https://dev.to/ashley_pfeiffer_9895a203e/we-scored-100-sites-on-agent-readiness-every-one-failed-3bpg</guid>
      <description>&lt;p&gt;AI agents are the next consumer of the web. Claude, ChatGPT, Siri, Copilot — they're all trying to interact with websites on behalf of users. But the web has no front door for them.&lt;/p&gt;

&lt;p&gt;I built a scoring framework and ran it against 100 of the most visited sites. Four dimensions, 25 points each, 100 points possible.&lt;/p&gt;

&lt;p&gt;Average score: 40. Highest: 48. Sites that passed: zero.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Measured
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Discovery (0-25):&lt;/strong&gt; Can an agent find out what your site does? Does it have a machine-readable capability manifest? An MCP endpoint? An llms.txt file?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Structure (0-25):&lt;/strong&gt; Is the content semantically organized? Schema.org markup, clean HTML, sitemaps, meta tags.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Actions (0-25):&lt;/strong&gt; Can an agent actually do things? Public API, formal spec (OpenAPI/GraphQL), documented authentication.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Policies (0-25):&lt;/strong&gt; Does the site set rules for agents? Rate limits, brand voice guidelines, escalation paths, data handling policies.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Surprising Finding
&lt;/h2&gt;

&lt;p&gt;Most sites score well on Structure. Schema.org, clean HTML, HTTPS, sitemaps — the semantic foundation is solid.&lt;/p&gt;

&lt;p&gt;The gap is entirely in Discovery and Policies. No site tells agents what capabilities are available. No site defines brand voice guidelines for agents. No site defines when an agent should stop and get a human.&lt;/p&gt;

&lt;p&gt;The web invested heavily in being readable by search engine crawlers. It invested nothing in being discoverable by AI agents.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Fix: agent.json
&lt;/h2&gt;

&lt;p&gt;I built &lt;code&gt;agent.json&lt;/code&gt; — an open spec that sits at your domain root (like robots.txt) and tells agents everything they need to know.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Acme Fashion"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"spec_version"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"1.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Premium fashion retailer"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"capabilities"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"search_products"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"query"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"place_order"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"action"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"brand_voice"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"tone"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"warm, knowledgeable, never pushy"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"prohibited"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"competitor comparisons"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"policies"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"rate_limit"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"100/minute"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"data_handling"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"no_training_on_interactions"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"humans"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"triggers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"complaint"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"legal_question"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"channels"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"email"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"support@acme.com"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}]&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Four required fields. Two minutes to create.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try It Yourself
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Score any site:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx agentweb score https://yoursite.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You get a breakdown across all four dimensions with a letter grade and specific recommendations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Generate a starter agent.json:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx agentweb init &lt;span class="nt"&gt;--name&lt;/span&gt; &lt;span class="s2"&gt;"My Site"&lt;/span&gt; &lt;span class="nt"&gt;--industry&lt;/span&gt; retail
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Pre-fills capabilities, brand voice, policies, and escalation triggers for your industry.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Proxy any site as an MCP server (no code changes on the origin):&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx @agentweb-dev/middleware &lt;span class="nt"&gt;--origin&lt;/span&gt; https://yoursite.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This creates an MCP server in front of any website with tools for browsing, search, structured data extraction, policy lookup, and human escalation.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Stack
&lt;/h2&gt;

&lt;p&gt;Everything is open source and published to npm:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Package&lt;/th&gt;
&lt;th&gt;What It Does&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;agentweb&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Unified CLI: score, init, validate, generate&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;@agentweb-dev/middleware&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;MCP proxy for any website&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;@agentweb-dev/commerce&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Structured catalog + agent negotiation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;@agentweb-dev/seo&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Agent visibility analytics&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Why I Built This
&lt;/h2&gt;

&lt;p&gt;I work in data infrastructure (Director of Client Delivery at Cherre, a real estate data platform). My day job is about unifying fragmented data into a single source of truth so organizations can make better decisions.&lt;/p&gt;

&lt;p&gt;The same problem exists on the open web for agents. The data is there (Schema.org, APIs, HTML), but there's no unified layer that tells agents what a site can do and how to interact with it. agent.json is that layer.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;p&gt;The spec is early. The scoring methodology probably has gaps. I'd love feedback on what dimensions are missing, what the scoring weights should be, and what industries need specific attention.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Repo:&lt;/strong&gt; &lt;a href="https://github.com/ashpfeif12/agentweb" rel="noopener noreferrer"&gt;github.com/ashpfeif12/agentweb&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Full scoring report:&lt;/strong&gt; &lt;a href="https://github.com/ashpfeif12/agentweb/blob/main/LAUNCH_POST.md" rel="noopener noreferrer"&gt;LAUNCH_POST.md&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you score your own site, drop the result in the comments. I'm curious what patterns emerge across different industries.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>mcp</category>
      <category>webdev</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
