# Agent readiness — https://squishy-finder.com/us

**ARI-100 63/100 · grade C (Partly readable) · level L1**

core 61 + emerging-signal bonus 2 · crawler access 100/100 · accessibility 92/100
scanned 2026-11-11T23:07:58.255Z · 112 checks scored of 120 · 47 pass, 18 partial, 47 fail

## Domains
| domain | weight | score | passed |
|---|---|---|---|
| Reachability & Access | 20 | 88.9 | 11/15 |
| Render & Delivery | 10 | 56.7 | 6/11 |
| Structure & Semantics | 12 | 75 | 8/12 |
| Structured Data | 12 | 81.6 | 4/7 |
| Discovery Files | 14 | 67.7 | 10/18 |
| Agent Interfaces | 14 | 16 | 2/27 |
| Operability & Commerce | 10 | 24.1 | 1/12 |
| Trust & Authority | 8 | 58.3 | 5/10 |

## Crawler reachability
| crawler | platform | role | verdict |
|---|---|---|---|
| OAI-SearchBot | ChatGPT search | search | allowed |
| ChatGPT-User | ChatGPT | user | allowed |
| Claude-SearchBot | Claude search | search | allowed |
| Claude-User | Claude | user | allowed |
| PerplexityBot | Perplexity | search | allowed |
| Perplexity-User | Perplexity | user | allowed |
| Googlebot | Google / AI Overviews | search | allowed |
| Google-Agent | Google AI Mode | user | allowed |
| Google-GeminiNotebook | Gemini | user | allowed |
| bingbot | Bing / Copilot | search | allowed |
| Applebot | Siri / Apple Intelligence | search | allowed |
| meta-webindexer | Meta AI | search | allowed |
| meta-externalfetcher | Meta AI | user | allowed |
| MistralAI-Index | Mistral Le Chat | search | allowed |
| MistralAI-User | Mistral Le Chat | user | allowed |
| Amzn-SearchBot | Alexa | search | allowed |
| Amzn-User | Alexa | user | allowed |
| DuckAssistBot | DuckDuckGo AI | search | allowed |
| YouBot | You.com | search | allowed |
| Diffbot | Diffbot | other | allowed |
| GoogleOther | Google other | other | allowed |

## Failing checks, most recoverable first
### Homepage content is in the raw HTML  (+5)
`render/ssr-home` · weight 5 · **fail** · 53 chars of text, 0 H1 in raw HTML

Server-render the homepage of https://squishy-finder.com: ship at least 500 characters of real text and an H1 in the initial HTML response rather than after hydration (SSR/SSG, or prerender). Evidence: 53 chars of text, 0 H1 in raw HTML.

### Inner pages carry text without JavaScript  (+4)
`render/ssr-inner` · weight 4 · **fail** · 0/2 sampled inner pages carry 400+ chars without JS

Server-render the inner pages of https://squishy-finder.com (0/2 sampled inner pages carry 400+ chars without JS): move the primary copy into the HTML response for each template, not only the homepage.

### An OpenAPI description is published  (+4)
`interfaces/openapi` · weight 4 · **fail** · openapi.json HTTP 404

Publish /openapi.json on https://squishy-finder.com (OpenAPI 3.1) describing every public endpoint, with operation summaries and example responses. Evidence: openapi.json HTTP 404.

### Exactly one H1 states the page subject  (+3)
`structure/one-h1` · weight 3 · **fail** · 0 H1: ""

Ensure exactly one non-empty H1 on https://squishy-finder.com/us that states the page subject; demote extra H1s to H2. Evidence: 0 H1: "".

### The advertised MCP endpoint answers  (+3)
`interfaces/mcp-live` · weight 3 · **fail** · MCP endpoint answered no endpoint in card

Make the MCP endpoint advertised by https://squishy-finder.com actually answer: respond to initialize and tools/list at the URL in the card, and keep the card in sync with the deployed tool set. Evidence: MCP endpoint answered no endpoint in card.

### A commerce profile is published  (+3)
`commerce/ucp-profile` · weight 3 · **fail** · HTTP 404

Publish a commerce profile at /.well-known/ucp on https://squishy-finder.com declaring the merchant, the catalogue, and the endpoints an agent may call. Evidence: HTTP 404.

### Add-to-cart is a real labelled control  (+3)
`commerce/add-to-cart` · weight 3 · **fail** · no add-to-cart control

Replace the add-to-cart div on https://squishy-finder.com/us with a real <button type="submit"> inside a <form>, with an accessible name that includes the product. Evidence: no add-to-cart control.

### Variant pickers are real form controls  (+3)
`commerce/variant-controls` · weight 3 · **fail** · no variant form controls

Convert the variant pickers on https://squishy-finder.com/us to real form controls (select or radio inputs) with a label per option, so an agent can set a value. Evidence: no variant form controls.

### AI bot policy is named, not inherited  (+2)
`access/bot-policy-deliberate` · weight 2 · **fail** · 0 named user-agent groups

Name the AI crawlers explicitly in robots.txt for https://squishy-finder.com instead of relying on a wildcard, so each one has a deliberate policy. Evidence: 0 named user-agent groups.

### Text-to-markup ratio is workable  (+2)
`render/text-ratio` · weight 2 · **fail** · text/markup 0.2%

Raise the text-to-markup ratio on https://squishy-finder.com/us to at least 5%: trim wrapper divs and inline styles, and put the copy in plain elements. Evidence: text/markup 0.2%.

### A skill file tells coding agents how to work with the site  (+2)
`discovery/agents-md` · weight 2 · **fail** · AGENTS.md HTTP 404

Publish /AGENTS.md on https://squishy-finder.com describing how a coding agent should build against or use the site: install, configuration, and worked examples. Evidence: AGENTS.md HTTP 404.

### Content usage preferences are declared  (+2)
`discovery/content-signal` · weight 2 · **fail** · no Content-Signal line

Add a Content-Signal line to robots.txt on https://squishy-finder.com, e.g. "Content-Signal: search=yes, ai-input=yes, ai-train=no", so usage terms are machine-readable. Evidence: no Content-Signal line.

### An API catalog linkset is published  (+2)
`interfaces/api-catalog` · weight 2 · **fail** · no linkset

Publish /.well-known/api-catalog on https://squishy-finder.com as an RFC 9727 linkset pointing at the API, its OpenAPI description and its docs. Evidence: no linkset.

### Protected resources declare their authorization server  (+2)
`interfaces/oauth-protected-resource` · weight 2 · **fail** · HTTP 404

Publish /.well-known/oauth-protected-resource on https://squishy-finder.com naming the resource and its authorization server, so an agent can discover how to get a token without scraping docs. Evidence: HTTP 404.

### Authorization server metadata is published  (+2)
`interfaces/oauth-as` · weight 2 · **fail** · HTTP 404

Publish /.well-known/oauth-authorization-server on https://squishy-finder.com with issuer, authorization_endpoint, token_endpoint and grant types. Evidence: HTTP 404.

### Permissions are scoped  (+2)
`interfaces/scopes` · weight 2 · **fail** · no named scopes

Replace all-or-nothing credentials on https://squishy-finder.com with named scopes (for example read:catalog, write:cart) declared in the OpenAPI security scheme and the authorization-server metadata. Evidence: no named scopes.

### Agent sign-up is documented for machines  (+2)
`interfaces/auth-md` · weight 2 · **fail** · auth.md HTTP 404

Publish /auth.md on https://squishy-finder.com telling an agent how to register, get a credential and revoke it, with the exact request/response shapes. Evidence: auth.md HTTP 404.

### An A2A agent card is published  (+2)
`interfaces/a2a-card` · weight 2 · **fail** · HTTP 404

Publish a /.well-known/agent-card.json on https://squishy-finder.com describing the agent: name, description, capabilities, skills and endpoint. Evidence: HTTP 404.

### The API is easy to call from a model  (+2)
`interfaces/fc-friendly` · weight 2 · **fail** · 0 described properties in the schema

Simplify the API surface on https://squishy-finder.com for function calling: flat named parameters, enums instead of free-text where possible, and a description on every field in the OpenAPI spec. Evidence: 0 described properties in the schema.

### A developer portal is reachable from the homepage  (+2)
`interfaces/dev-portal` · weight 2 · **fail** · no developer link

Link the developer docs from the homepage and main navigation of https://squishy-finder.com — one hop, not three. Evidence: no developer link.

### The site tells an agent when to use it  (+2)
`interfaces/agent-instruction` · weight 2 · **fail** · no when-to-use block

Add a when-to-use block to https://squishy-finder.com (in llms.txt, the MCP card or the agent manifest) stating what the agent is for, what it must not do, and one worked call. Evidence: no when-to-use block.

### A cart can be handed back to a shopper  (+2)
`commerce/checkout-permalink` · weight 2 · **fail** · no cart permalink

Add a shareable cart/checkout permalink on https://squishy-finder.com that carries line items in the URL, so an agent can build a cart and hand the link to a person. Evidence: no cart permalink.

### Price, stock and variants are in the HTML  (+2)
`commerce/pdp-facts-html` · weight 4 · **partial** · no price in HTML

Put product name, price, currency and availability in the server HTML of https://squishy-finder.com/us — not fetched client-side — with the variants listed. Evidence: no price in HTML.

### Policy pages are linked sitewide  (+2)
`commerce/policy-links` · weight 2 · **fail** · 0/5 policy pages linked

Link returns, shipping, terms, privacy and contact from the footer of every page on https://squishy-finder.com. Evidence: 0/5 policy pages linked.

### Claims are checkable  (+2)
`trust/sources` · weight 2 · **fail** · 0 outbound source link(s)

Add outbound links to primary sources for the factual claims on https://squishy-finder.com/us — the operator documentation, study or specification, not another summary. Evidence: 0 outbound source link(s).

### About and contact are reachable  (+2)
`trust/about-contact` · weight 2 · **fail** · no about or contact link

Publish a reachable About and Contact page on https://squishy-finder.com and link both from the footer. Evidence: no about or contact link.

### Response is fast enough for an agent timeout  (+1.5)
`render/ttfb` · weight 3 · **partial** · 1028 ms to first byte

Speed up the server response for https://squishy-finder.com/us: TTFB should land under 800 ms. Cache the HTML at the edge, and remove synchronous calls from the render path. Evidence: 1028 ms to first byte.

### Canonical points at itself  (+1.5)
`structure/canonical` · weight 3 · **partial** · canonical https://squishy.build/us

Add a self-referencing rel=canonical to https://squishy-finder.com/us that matches the URL actually served (https, final host, no tracking params). Evidence: canonical https://squishy.build/us.

### Publisher entity is declared and linked  (+1.5)
`data/org-entity` · weight 3 · **partial** · entity without sameAs

Add an Organization (or Person) JSON-LD node on https://squishy-finder.com with name, url, logo, and sameAs links to the profiles the brand actually owns. Evidence: entity without sameAs.

### A public API answers without a human  (+1.5)
`interfaces/public-api` · weight 3 · **partial** · no API declared

Expose at least one unauthenticated read endpoint on https://squishy-finder.com that returns the site's core facts as JSON, and document it in the OpenAPI spec. Evidence: no API declared.

### Search works through a GET URL  (+1.5)
`commerce/site-search` · weight 3 · **partial** · no GET search form

Make site search on https://squishy-finder.com work over GET with a ?q= parameter that returns results in the server HTML, so an agent can construct a search URL. Evidence: no GET search form.

### A named, accountable author or publisher  (+1.5)
`trust/author` · weight 3 · **partial** · no author signal

Show a named author or accountable publisher on https://squishy-finder.com/us, with a link to an about page that establishes who they are. Evidence: no author signal.

### Training policy is explicit  (+1)
`access/training-policy` · weight 1 · **fail** · no explicit training policy

State a training policy on https://squishy-finder.com: either name CCBot / Google-Extended / Bytespider explicitly in robots.txt, or add a Content-Signal line (search=yes, ai-input=yes, ai-train=no). Evidence: no explicit training policy.

### Snippets and large image previews are allowed  (+1)
`access/snippets-allowed` · weight 2 · **partial** · snippet directives incomplete

On https://squishy-finder.com set "max-snippet:-1, max-image-preview:large" in the meta robots tag or X-Robots-Tag so assistants can quote the page. Evidence: snippet directives incomplete.

### Headings are sequential and descriptive  (+1)
`structure/heading-order` · weight 2 · **partial** · 0 skipped level(s), 0 H2(s)

Fix the heading outline on https://squishy-finder.com/us: no skipped levels (H2 to H4), and make each H2 describe its section. Evidence: 0 skipped level(s), 0 H2(s).

### Open Graph title, description and image  (+1)
`structure/og-tags` · weight 2 · **partial** · og:title yes, og:description yes, og:image no

Add Open Graph tags to https://squishy-finder.com/us: og:title, og:description, og:image (1200x630 absolute URL), og:url, og:type. Evidence: og:title yes, og:description yes, og:image no.

### Published and modified dates are declared  (+1)
`data/dates` · weight 2 · **partial** · no dates in schema

Add datePublished and dateModified to the schema on https://squishy-finder.com/us, kept in sync with the visible date. Evidence: no dates in schema.

### BreadcrumbList declares the page position  (+1)
`data/breadcrumb` · weight 1 · **fail** · no BreadcrumbList

Add a BreadcrumbList to https://squishy-finder.com/us whose items match the visible breadcrumb. Evidence: no BreadcrumbList.

### Sitemap entries carry real lastmod  (+1)
`discovery/sitemap-lastmod` · weight 2 · **partial** · no lastmod

Add truthful <lastmod> values to the sitemap on https://squishy-finder.com from real content timestamps. Evidence: no lastmod.

### HTML advertises its Markdown twin  (+1)
`discovery/md-alternate` · weight 1 · **fail** · no <link rel=alternate type=text/markdown>

Add <link rel="alternate" type="text/markdown" href="/<path>.md"> to the head of https://squishy-finder.com/us. Evidence: no <link rel=alternate type=text/markdown>.

### A Markdown sitemap lists the pages in one read  (+1)
`discovery/sitemap-md` · weight 1 · **fail** · HTTP 404

Publish /sitemap.md on https://squishy-finder.com: a Markdown list of the site's pages as [title](url), one line each, so an agent gets the whole map in one cheap request. Evidence: HTTP 404.

### DNS advertises agent endpoints  (+1)
`discovery/dns-aid` · weight 1 · **fail** · no _agents TXT record

Publish a DNS discovery record for https://squishy-finder.com (a TXT record listing the agent endpoints the site exposes) so an agent learns the surface before fetching a page. Evidence: no _agents TXT record.

### The skill file is substantive  (+1)
`discovery/agents-md-depth` · weight 1 · **fail** · 0/3 of install, configuration, examples

Deepen /AGENTS.md on https://squishy-finder.com to include install steps, configuration, and at least one complete usage example. Evidence: 0/3 of install, configuration, examples.

### The page declares the index that covers it  (+1)
`discovery/describedby` · weight 1 · **fail** · rel=describedby to the index

Add a rel="describedby" link to the covering /llms.txt from every page on https://squishy-finder.com so an agent can widen from one page to the index. Evidence: rel=describedby to the index.

### The MCP card carries the fields a client needs  (+1)
`interfaces/mcp-card-fields` · weight 2 · **partial** · 1/4 required groups in the card

Complete the MCP server card on https://squishy-finder.com: transport, endpoint URL, auth requirement, and every tool with a declared input schema and description. Evidence: 1/4 required groups in the card.

### Agent skills are indexable  (+1)
`interfaces/agent-skills` · weight 1 · **fail** · HTTP 404

Publish /.well-known/agent-skills/index.json on https://squishy-finder.com listing each skill document with name, description and URL. Evidence: HTTP 404.

### Site actions are exposed to in-browser agents  (+1)
`interfaces/webmcp` · weight 1 · **fail** · no WebMCP registration

Register the site's real actions (search, filter, add to cart) as WebMCP tools on https://squishy-finder.com so a browser agent can call them without guessing at the DOM. Evidence: no WebMCP registration.

### One index lists every agent interface  (+1)
`interfaces/ard` · weight 1 · **fail** · HTTP 404

Publish an ARD manifest at /.well-known/ard.json on https://squishy-finder.com listing every agentic artefact with its type and URL, and advertise it with rel="ard". Evidence: HTTP 404.

### A wildcard agent manifest is published  (+1)
`interfaces/agents-json` · weight 1 · **fail** · HTTP 404

Publish /.well-known/agents.json on https://squishy-finder.com: a JSON document naming each agent or action the site accepts, with the URL to call and the input it expects. Evidence: HTTP 404.

### Per-action permissions are declared  (+1)
`interfaces/agent-permissions` · weight 1 · **fail** · HTTP 404

Publish /.well-known/agent-permissions.json on https://squishy-finder.com mapping each action an agent may take to the scope it needs and whether a human must confirm it. Evidence: HTTP 404.

### A natural-language query endpoint answers  (+1)
`interfaces/nlweb-ask` · weight 1 · **fail** · /ask → HTTP 404, text/html; charset=utf-8

Expose a natural-language query endpoint at https://squishy-finder.com/ask that accepts ?query= and returns JSON (answer plus result URLs), so an agent can ask the site directly instead of crawling it. Evidence: /ask → HTTP 404, text/html; charset=utf-8.

### The interface is declared for agent-driven UI  (+1)
`interfaces/a2ui` · weight 1 · **fail** · no A2UI declaration

Declare an agent-driven UI surface on https://squishy-finder.com: mark the page (or publish a manifest) as A2UI so a reviewing agent knows the controls are renderable from a declared schema rather than inferred from the DOM. Evidence: no A2UI declaration.

### A personal-agent profile is published  (+1)
`interfaces/pap` · weight 1 · **fail** · HTTP 404

Publish /.well-known/personal-agent.json on https://squishy-finder.com describing how an agent acting for a signed-in person is identified and what it may do on their behalf. Evidence: HTTP 404.

### The site publishes its own bot signing keys  (+1)
`access/web-bot-auth` · weight 1 · **fail** · HTTP 404

Publish a signing-key directory at https://squishy-finder.com/.well-known/http-message-signatures-directory so another site can verify requests this site's bots send. Evidence: HTTP 404.

### Errors are machine-readable  (+1)
`interfaces/json-errors` · weight 2 · **partial** · unknown API path returned text/html; charset=utf-8

Return RFC 9457 problem-details JSON for every error on https://squishy-finder.com, including unknown routes, so an agent can recover instead of parsing an HTML error page. Evidence: unknown API path returned text/html; charset=utf-8.

### Rate limits are declared in headers  (+1)
`interfaces/rate-limit-headers` · weight 1 · **fail** · no rate-limit headers

Emit RateLimit-Limit / RateLimit-Remaining / RateLimit-Reset (and Retry-After on 429) from the API on https://squishy-finder.com. Evidence: no rate-limit headers.

### Writes are retry-safe  (+1)
`interfaces/idempotency` · weight 1 · **fail** · Idempotency-Key documented

Accept an Idempotency-Key header on mutating endpoints of https://squishy-finder.com and document it, so an agent can retry without duplicating work. Evidence: Idempotency-Key documented.

### Paid access is discoverable by an agent  (+1)
`interfaces/payment-negotiation` · weight 1 · **fail** · x402 discovery HTTP 404

Make paid access discoverable on https://squishy-finder.com: return HTTP 402 with a machine-readable list of accepted payment options, or publish a machine-readable price list. Evidence: x402 discovery HTTP 404.

### Machine payment is accepted  (+1)
`commerce/x402` · weight 1 · **fail** · no x402 accepts array

Accept machine payment on https://squishy-finder.com: answer with HTTP 402 and an x402 accepts array (asset, amount, network, payTo) on the paid resource. Evidence: no x402 accepts array.

### Delegated payment authorization is advertised  (+1)
`commerce/ap2` · weight 1 · **fail** · AP2 advertised

Advertise delegated payment authorization on https://squishy-finder.com (AP2 extension on the agent card or commerce profile) with the mandate shapes you accept. Evidence: AP2 advertised.

### A checkout protocol profile is published  (+1)
`commerce/acp-profile` · weight 1 · **fail** · acp profile HTTP 404

Publish a checkout-protocol profile at /.well-known/acp.json on https://squishy-finder.com naming the checkout endpoint and supported payment methods. Evidence: acp profile HTTP 404.

### Checkout terms an agent needs are documented  (+1)
`commerce/checkout-docs` · weight 2 · **partial** · checkout terms incomplete

Document the checkout terms an agent must know on https://squishy-finder.com: shipping cost and regions, return window, tax handling, and lead time. Evidence: checkout terms incomplete.

### A visible publish or update date  (+1)
`trust/visible-date` · weight 2 · **partial** · no visible date

Show a visible publish or last-updated date on https://squishy-finder.com/us that matches dateModified in the schema. Evidence: no visible date.

### The organization node is complete  (+1)
`trust/org-completeness` · weight 2 · **partial** · legalName missing

Complete the Organization schema on https://squishy-finder.com with legalName, address, contactPoint, logo and sameAs. Evidence: legalName missing.

### Text responses are compressed  (+0.5)
`render/compression` · weight 1 · **partial** · no compression header relayed

Enable Brotli/gzip compression for HTML and JSON on https://squishy-finder.com. Evidence: no compression header relayed.

## Paste-ready prompt for a coding agent
```text
You are fixing the agent readability of https://squishy-finder.com/us (Agent Readiness Index 63/100, grade C).
Work top to bottom. Each item states the observed evidence, the required outcome, and the check id that will be re-run to verify it.
Do not restyle the site. Do not invent facts: prices, reviews, dates and author names must come from content that already exists.

1. [ssr-home] (weight 5, +5) Homepage content is in the raw HTML
   Observed: 53 chars of text, 0 H1 in raw HTML
   Fix: Server-render the homepage of https://squishy-finder.com: ship at least 500 characters of real text and an H1 in the initial HTML response rather than after hydration (SSR/SSG, or prerender). Evidence: 53 chars of text, 0 H1 in raw HTML.
2. [ssr-inner] (weight 4, +4) Inner pages carry text without JavaScript
   Observed: 0/2 sampled inner pages carry 400+ chars without JS
   Fix: Server-render the inner pages of https://squishy-finder.com (0/2 sampled inner pages carry 400+ chars without JS): move the primary copy into the HTML response for each template, not only the homepage.
3. [openapi] (weight 4, +4) An OpenAPI description is published
   Observed: openapi.json HTTP 404
   Fix: Publish /openapi.json on https://squishy-finder.com (OpenAPI 3.1) describing every public endpoint, with operation summaries and example responses. Evidence: openapi.json HTTP 404.
4. [one-h1] (weight 3, +3) Exactly one H1 states the page subject
   Observed: 0 H1: ""
   Fix: Ensure exactly one non-empty H1 on https://squishy-finder.com/us that states the page subject; demote extra H1s to H2. Evidence: 0 H1: "".
5. [mcp-live] (weight 3, +3) The advertised MCP endpoint answers
   Observed: MCP endpoint answered no endpoint in card
   Fix: Make the MCP endpoint advertised by https://squishy-finder.com actually answer: respond to initialize and tools/list at the URL in the card, and keep the card in sync with the deployed tool set. Evidence: MCP endpoint answered no endpoint in card.
6. [ucp-profile] (weight 3, +3) A commerce profile is published
   Observed: HTTP 404
   Fix: Publish a commerce profile at /.well-known/ucp on https://squishy-finder.com declaring the merchant, the catalogue, and the endpoints an agent may call. Evidence: HTTP 404.
7. [add-to-cart] (weight 3, +3) Add-to-cart is a real labelled control
   Observed: no add-to-cart control
   Fix: Replace the add-to-cart div on https://squishy-finder.com/us with a real <button type="submit"> inside a <form>, with an accessible name that includes the product. Evidence: no add-to-cart control.
8. [variant-controls] (weight 3, +3) Variant pickers are real form controls
   Observed: no variant form controls
   Fix: Convert the variant pickers on https://squishy-finder.com/us to real form controls (select or radio inputs) with a label per option, so an agent can set a value. Evidence: no variant form controls.
9. [bot-policy-deliberate] (weight 2, +2) AI bot policy is named, not inherited
   Observed: 0 named user-agent groups
   Fix: Name the AI crawlers explicitly in robots.txt for https://squishy-finder.com instead of relying on a wildcard, so each one has a deliberate policy. Evidence: 0 named user-agent groups.
10. [text-ratio] (weight 2, +2) Text-to-markup ratio is workable
   Observed: text/markup 0.2%
   Fix: Raise the text-to-markup ratio on https://squishy-finder.com/us to at least 5%: trim wrapper divs and inline styles, and put the copy in plain elements. Evidence: text/markup 0.2%.
11. [agents-md] (weight 2, +2) A skill file tells coding agents how to work with the site
   Observed: AGENTS.md HTTP 404
   Fix: Publish /AGENTS.md on https://squishy-finder.com describing how a coding agent should build against or use the site: install, configuration, and worked examples. Evidence: AGENTS.md HTTP 404.
12. [content-signal] (weight 2, +2) Content usage preferences are declared
   Observed: no Content-Signal line
   Fix: Add a Content-Signal line to robots.txt on https://squishy-finder.com, e.g. "Content-Signal: search=yes, ai-input=yes, ai-train=no", so usage terms are machine-readable. Evidence: no Content-Signal line.
13. [api-catalog] (weight 2, +2) An API catalog linkset is published
   Observed: no linkset
   Fix: Publish /.well-known/api-catalog on https://squishy-finder.com as an RFC 9727 linkset pointing at the API, its OpenAPI description and its docs. Evidence: no linkset.
14. [oauth-protected-resource] (weight 2, +2) Protected resources declare their authorization server
   Observed: HTTP 404
   Fix: Publish /.well-known/oauth-protected-resource on https://squishy-finder.com naming the resource and its authorization server, so an agent can discover how to get a token without scraping docs. Evidence: HTTP 404.
15. [oauth-as] (weight 2, +2) Authorization server metadata is published
   Observed: HTTP 404
   Fix: Publish /.well-known/oauth-authorization-server on https://squishy-finder.com with issuer, authorization_endpoint, token_endpoint and grant types. Evidence: HTTP 404.
16. [scopes] (weight 2, +2) Permissions are scoped
   Observed: no named scopes
   Fix: Replace all-or-nothing credentials on https://squishy-finder.com with named scopes (for example read:catalog, write:cart) declared in the OpenAPI security scheme and the authorization-server metadata. Evidence: no named scopes.
17. [auth-md] (weight 2, +2) Agent sign-up is documented for machines
   Observed: auth.md HTTP 404
   Fix: Publish /auth.md on https://squishy-finder.com telling an agent how to register, get a credential and revoke it, with the exact request/response shapes. Evidence: auth.md HTTP 404.
18. [a2a-card] (weight 2, +2) An A2A agent card is published
   Observed: HTTP 404
   Fix: Publish a /.well-known/agent-card.json on https://squishy-finder.com describing the agent: name, description, capabilities, skills and endpoint. Evidence: HTTP 404.
19. [fc-friendly] (weight 2, +2) The API is easy to call from a model
   Observed: 0 described properties in the schema
   Fix: Simplify the API surface on https://squishy-finder.com for function calling: flat named parameters, enums instead of free-text where possible, and a description on every field in the OpenAPI spec. Evidence: 0 described properties in the schema.
20. [dev-portal] (weight 2, +2) A developer portal is reachable from the homepage
   Observed: no developer link
   Fix: Link the developer docs from the homepage and main navigation of https://squishy-finder.com — one hop, not three. Evidence: no developer link.
21. [agent-instruction] (weight 2, +2) The site tells an agent when to use it
   Observed: no when-to-use block
   Fix: Add a when-to-use block to https://squishy-finder.com (in llms.txt, the MCP card or the agent manifest) stating what the agent is for, what it must not do, and one worked call. Evidence: no when-to-use block.
22. [checkout-permalink] (weight 2, +2) A cart can be handed back to a shopper
   Observed: no cart permalink
   Fix: Add a shareable cart/checkout permalink on https://squishy-finder.com that carries line items in the URL, so an agent can build a cart and hand the link to a person. Evidence: no cart permalink.
23. [pdp-facts-html] (weight 4, +2) Price, stock and variants are in the HTML
   Observed: no price in HTML
   Fix: Put product name, price, currency and availability in the server HTML of https://squishy-finder.com/us — not fetched client-side — with the variants listed. Evidence: no price in HTML.
24. [policy-links] (weight 2, +2) Policy pages are linked sitewide
   Observed: 0/5 policy pages linked
   Fix: Link returns, shipping, terms, privacy and contact from the footer of every page on https://squishy-finder.com. Evidence: 0/5 policy pages linked.
25. [sources] (weight 2, +2) Claims are checkable
   Observed: 0 outbound source link(s)
   Fix: Add outbound links to primary sources for the factual claims on https://squishy-finder.com/us — the operator documentation, study or specification, not another summary. Evidence: 0 outbound source link(s).
26. [about-contact] (weight 2, +2) About and contact are reachable
   Observed: no about or contact link
   Fix: Publish a reachable About and Contact page on https://squishy-finder.com and link both from the footer. Evidence: no about or contact link.
27. [ttfb] (weight 3, +1.5) Response is fast enough for an agent timeout
   Observed: 1028 ms to first byte
   Fix: Speed up the server response for https://squishy-finder.com/us: TTFB should land under 800 ms. Cache the HTML at the edge, and remove synchronous calls from the render path. Evidence: 1028 ms to first byte.
28. [canonical] (weight 3, +1.5) Canonical points at itself
   Observed: canonical https://squishy.build/us
   Fix: Add a self-referencing rel=canonical to https://squishy-finder.com/us that matches the URL actually served (https, final host, no tracking params). Evidence: canonical https://squishy.build/us.
29. [org-entity] (weight 3, +1.5) Publisher entity is declared and linked
   Observed: entity without sameAs
   Fix: Add an Organization (or Person) JSON-LD node on https://squishy-finder.com with name, url, logo, and sameAs links to the profiles the brand actually owns. Evidence: entity without sameAs.
30. [public-api] (weight 3, +1.5) A public API answers without a human
   Observed: no API declared
   Fix: Expose at least one unauthenticated read endpoint on https://squishy-finder.com that returns the site's core facts as JSON, and document it in the OpenAPI spec. Evidence: no API declared.
31. [site-search] (weight 3, +1.5) Search works through a GET URL
   Observed: no GET search form
   Fix: Make site search on https://squishy-finder.com work over GET with a ?q= parameter that returns results in the server HTML, so an agent can construct a search URL. Evidence: no GET search form.
32. [author] (weight 3, +1.5) A named, accountable author or publisher
   Observed: no author signal
   Fix: Show a named author or accountable publisher on https://squishy-finder.com/us, with a link to an about page that establishes who they are. Evidence: no author signal.
33. [training-policy] (weight 1, +1) Training policy is explicit
   Observed: no explicit training policy
   Fix: State a training policy on https://squishy-finder.com: either name CCBot / Google-Extended / Bytespider explicitly in robots.txt, or add a Content-Signal line (search=yes, ai-input=yes, ai-train=no). Evidence: no explicit training policy.
34. [snippets-allowed] (weight 2, +1) Snippets and large image previews are allowed
   Observed: snippet directives incomplete
   Fix: On https://squishy-finder.com set "max-snippet:-1, max-image-preview:large" in the meta robots tag or X-Robots-Tag so assistants can quote the page. Evidence: snippet directives incomplete.
35. [heading-order] (weight 2, +1) Headings are sequential and descriptive
   Observed: 0 skipped level(s), 0 H2(s)
   Fix: Fix the heading outline on https://squishy-finder.com/us: no skipped levels (H2 to H4), and make each H2 describe its section. Evidence: 0 skipped level(s), 0 H2(s).
36. [og-tags] (weight 2, +1) Open Graph title, description and image
   Observed: og:title yes, og:description yes, og:image no
   Fix: Add Open Graph tags to https://squishy-finder.com/us: og:title, og:description, og:image (1200x630 absolute URL), og:url, og:type. Evidence: og:title yes, og:description yes, og:image no.
37. [dates] (weight 2, +1) Published and modified dates are declared
   Observed: no dates in schema
   Fix: Add datePublished and dateModified to the schema on https://squishy-finder.com/us, kept in sync with the visible date. Evidence: no dates in schema.
38. [breadcrumb] (weight 1, +1) BreadcrumbList declares the page position
   Observed: no BreadcrumbList
   Fix: Add a BreadcrumbList to https://squishy-finder.com/us whose items match the visible breadcrumb. Evidence: no BreadcrumbList.
39. [sitemap-lastmod] (weight 2, +1) Sitemap entries carry real lastmod
   Observed: no lastmod
   Fix: Add truthful <lastmod> values to the sitemap on https://squishy-finder.com from real content timestamps. Evidence: no lastmod.
40. [md-alternate] (weight 1, +1) HTML advertises its Markdown twin
   Observed: no <link rel=alternate type=text/markdown>
   Fix: Add <link rel="alternate" type="text/markdown" href="/<path>.md"> to the head of https://squishy-finder.com/us. Evidence: no <link rel=alternate type=text/markdown>.
41. [sitemap-md] (weight 1, +1) A Markdown sitemap lists the pages in one read
   Observed: HTTP 404
   Fix: Publish /sitemap.md on https://squishy-finder.com: a Markdown list of the site's pages as [title](url), one line each, so an agent gets the whole map in one cheap request. Evidence: HTTP 404.
42. [dns-aid] (weight 1, +1) DNS advertises agent endpoints
   Observed: no _agents TXT record
   Fix: Publish a DNS discovery record for https://squishy-finder.com (a TXT record listing the agent endpoints the site exposes) so an agent learns the surface before fetching a page. Evidence: no _agents TXT record.
43. [agents-md-depth] (weight 1, +1) The skill file is substantive
   Observed: 0/3 of install, configuration, examples
   Fix: Deepen /AGENTS.md on https://squishy-finder.com to include install steps, configuration, and at least one complete usage example. Evidence: 0/3 of install, configuration, examples.
44. [describedby] (weight 1, +1) The page declares the index that covers it
   Observed: rel=describedby to the index
   Fix: Add a rel="describedby" link to the covering /llms.txt from every page on https://squishy-finder.com so an agent can widen from one page to the index. Evidence: rel=describedby to the index.
45. [mcp-card-fields] (weight 2, +1) The MCP card carries the fields a client needs
   Observed: 1/4 required groups in the card
   Fix: Complete the MCP server card on https://squishy-finder.com: transport, endpoint URL, auth requirement, and every tool with a declared input schema and description. Evidence: 1/4 required groups in the card.
46. [agent-skills] (weight 1, +1) Agent skills are indexable
   Observed: HTTP 404
   Fix: Publish /.well-known/agent-skills/index.json on https://squishy-finder.com listing each skill document with name, description and URL. Evidence: HTTP 404.
47. [webmcp] (weight 1, +1) Site actions are exposed to in-browser agents
   Observed: no WebMCP registration
   Fix: Register the site's real actions (search, filter, add to cart) as WebMCP tools on https://squishy-finder.com so a browser agent can call them without guessing at the DOM. Evidence: no WebMCP registration.
48. [ard] (weight 1, +1) One index lists every agent interface
   Observed: HTTP 404
   Fix: Publish an ARD manifest at /.well-known/ard.json on https://squishy-finder.com listing every agentic artefact with its type and URL, and advertise it with rel="ard". Evidence: HTTP 404.
49. [agents-json] (weight 1, +1) A wildcard agent manifest is published
   Observed: HTTP 404
   Fix: Publish /.well-known/agents.json on https://squishy-finder.com: a JSON document naming each agent or action the site accepts, with the URL to call and the input it expects. Evidence: HTTP 404.
50. [agent-permissions] (weight 1, +1) Per-action permissions are declared
   Observed: HTTP 404
   Fix: Publish /.well-known/agent-permissions.json on https://squishy-finder.com mapping each action an agent may take to the scope it needs and whether a human must confirm it. Evidence: HTTP 404.
51. [nlweb-ask] (weight 1, +1) A natural-language query endpoint answers
   Observed: /ask → HTTP 404, text/html; charset=utf-8
   Fix: Expose a natural-language query endpoint at https://squishy-finder.com/ask that accepts ?query= and returns JSON (answer plus result URLs), so an agent can ask the site directly instead of crawling it. Evidence: /ask → HTTP 404, text/html; charset=utf-8.
52. [a2ui] (weight 1, +1) The interface is declared for agent-driven UI
   Observed: no A2UI declaration
   Fix: Declare an agent-driven UI surface on https://squishy-finder.com: mark the page (or publish a manifest) as A2UI so a reviewing agent knows the controls are renderable from a declared schema rather than inferred from the DOM. Evidence: no A2UI declaration.
53. [pap] (weight 1, +1) A personal-agent profile is published
   Observed: HTTP 404
   Fix: Publish /.well-known/personal-agent.json on https://squishy-finder.com describing how an agent acting for a signed-in person is identified and what it may do on their behalf. Evidence: HTTP 404.
54. [web-bot-auth] (weight 1, +1) The site publishes its own bot signing keys
   Observed: HTTP 404
   Fix: Publish a signing-key directory at https://squishy-finder.com/.well-known/http-message-signatures-directory so another site can verify requests this site's bots send. Evidence: HTTP 404.
55. [json-errors] (weight 2, +1) Errors are machine-readable
   Observed: unknown API path returned text/html; charset=utf-8
   Fix: Return RFC 9457 problem-details JSON for every error on https://squishy-finder.com, including unknown routes, so an agent can recover instead of parsing an HTML error page. Evidence: unknown API path returned text/html; charset=utf-8.
56. [rate-limit-headers] (weight 1, +1) Rate limits are declared in headers
   Observed: no rate-limit headers
   Fix: Emit RateLimit-Limit / RateLimit-Remaining / RateLimit-Reset (and Retry-After on 429) from the API on https://squishy-finder.com. Evidence: no rate-limit headers.
57. [idempotency] (weight 1, +1) Writes are retry-safe
   Observed: Idempotency-Key documented
   Fix: Accept an Idempotency-Key header on mutating endpoints of https://squishy-finder.com and document it, so an agent can retry without duplicating work. Evidence: Idempotency-Key documented.
58. [payment-negotiation] (weight 1, +1) Paid access is discoverable by an agent
   Observed: x402 discovery HTTP 404
   Fix: Make paid access discoverable on https://squishy-finder.com: return HTTP 402 with a machine-readable list of accepted payment options, or publish a machine-readable price list. Evidence: x402 discovery HTTP 404.
59. [x402] (weight 1, +1) Machine payment is accepted
   Observed: no x402 accepts array
   Fix: Accept machine payment on https://squishy-finder.com: answer with HTTP 402 and an x402 accepts array (asset, amount, network, payTo) on the paid resource. Evidence: no x402 accepts array.
60. [ap2] (weight 1, +1) Delegated payment authorization is advertised
   Observed: AP2 advertised
   Fix: Advertise delegated payment authorization on https://squishy-finder.com (AP2 extension on the agent card or commerce profile) with the mandate shapes you accept. Evidence: AP2 advertised.
61. [acp-profile] (weight 1, +1) A checkout protocol profile is published
   Observed: acp profile HTTP 404
   Fix: Publish a checkout-protocol profile at /.well-known/acp.json on https://squishy-finder.com naming the checkout endpoint and supported payment methods. Evidence: acp profile HTTP 404.
62. [checkout-docs] (weight 2, +1) Checkout terms an agent needs are documented
   Observed: checkout terms incomplete
   Fix: Document the checkout terms an agent must know on https://squishy-finder.com: shipping cost and regions, return window, tax handling, and lead time. Evidence: checkout terms incomplete.
63. [visible-date] (weight 2, +1) A visible publish or update date
   Observed: no visible date
   Fix: Show a visible publish or last-updated date on https://squishy-finder.com/us that matches dateModified in the schema. Evidence: no visible date.
64. [org-completeness] (weight 2, +1) The organization node is complete
   Observed: legalName missing
   Fix: Complete the Organization schema on https://squishy-finder.com with legalName, address, contactPoint, logo and sameAs. Evidence: legalName missing.
65. [compression] (weight 1, +0.5) Text responses are compressed
   Observed: no compression header relayed
   Fix: Enable Brotli/gzip compression for HTML and JSON on https://squishy-finder.com. Evidence: no compression header relayed.
```

---

Cached report for squishy-finder.com · TTL 6 hours · JSON at /report/squishy-finder.com.json
