Agent-discoverability audit — portfolio gap analysis + dare.co.uk staging

2026-05-15 · friday morning · pre-standup substrate

Triggered by an audrey sitemap inspection that surfaced Shopify’s silently-shipped UCP rollout. Audrey is now the most agent-discoverable property in the portfolio without Dan having done anything; this audit names the gap and proposes the rollout that brings dare + dogwood to the same standard with hand-built equivalents, plus the search-engine-agent layer (Schema.org rich results) that GSC just flagged on audrey.

TL;DR

The two-layer frame

Layer Consumers Surfaces
LLM-agent layer Claude / ChatGPT / Perplexity reading the site for citations and recommendations llms.txt, llms-full.txt, agents.md, .well-known/agent.json, .well-known/ucp (commerce only), sitemap_agentic_discovery.xml, MCP endpoints
Search-engine-agent layer Googlebot / Bing / DuckDuckBot consuming for rich results and product snippets sitemap.xml with XSL, robots.txt, Schema.org JSON-LD (Article, Product, Service, Event, LocalBusiness), Open Graph / Twitter Card

Both layers want comprehensive + human-readable. Audrey’s Shopify stack nails the LLM-agent layer but ships XML/JSON raw. Dare’s sitemap.xml uses XSL to render browsable HTML. The pattern to ship across the portfolio = both, on both layers.

Portfolio gap matrix

File dare.co.uk beta.dogwood.house audreyinc.com
/llms.txt ✓ 200 — 45 lines, custom-authored, good voice ✓ 200 — 22 lines, custom, decent (lives on dogwood.house currently — needs port to beta) ✓ 200 — Shopify-generated, bio reads like a CV, needs ownership
/llms-full.txt ✗ 404 — STAGING BUILT ✗ — build ✓ 1464B Shopify-generated
/agents.md ✗ 404 — STAGING BUILT ✗ 301 — build ✓ 2445B Shopify UCP boilerplate
/.well-known/agent.json ✗ 404 — STAGING BUILT ✓ 200 on dogwood.house (capabilities placeholders) — port + finish ✗ — folds into UCP discovery
/.well-known/ucp N/A (not commerce) N/A (service, not commerce) ✓ 3818B Shopify-generated, v2026-04-08
/sitemap_agentic_discovery.xml ✗ — STAGING BUILT (with XSL) ✗ — build ✓ Shopify-generated (XML-raw, no XSL)
XSL stylesheet for the above ✗ — STAGING BUILT ✗ — build ✗ (Shopify ships raw) — could ship via CDN, security layer, and DNS provider sitting in front of dare.co.uk.">CF Worker if Dan wants
robots.txt ✓ Shopify with explicit agent policy (bans buy-for-me)
Article JSON-LD ✓ on every article TBD N/A
Product JSON-LD N/A N/A ✓ ProductGroup + variants — GSC-flagged gaps
Service JSON-LD N/A ✗ — build for boarding service N/A
Event JSON-LD N/A TBD for member events ✗ — build for pop-ups / ladies-nights

Per-site detail

audreyinc.com — Shopify-shipped, but with three GSC flags

What Shopify made canonical for free:

The auto-generated bio at /llms.txt:

“Luxury limited edition silk scarves by Audrey Lam a Brooklyn Brit, Made in Italy & NYC. from Central St Martins. Former Calvin Klein & Diesel textile designer.”

This is now the de facto description any Claude / ChatGPT / Perplexity gets when they ask “what’s audreyinc.com?” Issues:

Fix: edit Shopify SEO settings → re-publishes through llms.txt automatically. ~5 minutes, highest-leverage single action in this audit. Suggested rewrite:

“Audrey is a luxury silk-scarf house designed by Audrey Lam — a Brooklyn-based British designer trained at Central Saint Martins, formerly of Calvin Klein and Diesel. Limited-edition pieces, printed in Italy and finished in New York. Each scarf is a wearable artwork; the line is built for gift-giving, cultural meaning, and the long wardrobe.”

Search Console product-snippet gaps (just flagged):

Missing field Count Layer Fix
aggregateRating 4 items Search-engine-agent Install a reviews app (Judge.me / Loox / Stamped). Without real reviews this stays empty; reviews JSON-LD populates automatically once collected
review 4 items Search-engine-agent Same — reviews are the prerequisite
priceValidUntil (in hasVariant.offers) Search-engine-agent Shopify theme template edit — add a sensible expiry (e.g. 1 year from creation) to the Offer block. Without it Google warns “stale price”. Pure-code fix, addressable today

The reviews-app install is a dual-layer fix: rich results in Google AND brand-trust signal for LLM agents forming recommendations (social proof is weighted by both).

dare.co.uk — five files to add, staging built

Current state: /llms.txt is the only modern-agent surface. The rest of the canonical stack is missing.

Staging live for review: https://dare-agent-stack-preview.pages.dev/

Deployed 2026-05-15 to its own Cloudflare Pages project (dare-agent-stack-preview) so the files are browsable at HTTPS — the XSL stylesheet renders client-side, which file:// can’t reliably do.

Direct file Preview URL
llms.txt https://dare-agent-stack-preview.pages.dev/llms.txt
llms-full.txt https://dare-agent-stack-preview.pages.dev/llms-full.txt
agents.md https://dare-agent-stack-preview.pages.dev/agents.md
.well-known/agent.json https://dare-agent-stack-preview.pages.dev/.well-known/agent.json
sitemap_agentic_discovery.xml (renders via XSL — open in a browser) https://dare-agent-stack-preview.pages.dev/sitemap_agentic_discovery.xml
agent-sitemap.xsl (raw stylesheet) https://dare-agent-stack-preview.pages.dev/agent-sitemap.xsl

Note: the <loc> entries inside sitemap_agentic_discovery.xml point at www.dare.co.uk URLs (production targets), not the preview URLs. That’s intentional — the file’s content is what will ship to production; the preview is just the rendering vehicle.

Staging artefacts on disk at ~/Downloads/dare-agent-stack-staging/:

File Purpose Format
llms.txt Extension of existing, with cross-refs to the new files + the resurrection narrative text/plain
llms-full.txt Extended brand bio + content rings + editorial cadence text/plain
agents.md Agent integration instructions — browse archive, search, cite, contact text/markdown
.well-known/agent.json Agent profile, capabilities, contact, protocol version application/json
sitemap_agentic_discovery.xml Sitemap index pointing at the four above application/xml
agent-sitemap.xsl XSL stylesheet rendering the sitemap as a browsable HTML page application/xml

Voice: DARE-register per feedback_dare_brand_voice_four_pillars — first-person declarative, designer’s-house framing, four pillars (inspiration / conviction / optimism / innovation), DARE all-caps for entity refs.

Narrative spine: the resurrection arc from project_dare_canonical_narrative_frame — failed WordPress site brought back as a headless modern stack. The agent-discoverability work is part of that arc: agent-friendly by design, not retrofitted.

beta.dogwood.house — target host clarified

Confirmed 2026-05-15 — dogwood.house is Squarespace (consumer site), but beta.dogwood.house will be flat HTML (Dan-controlled). The agent-stack ships on beta, not the Squarespace primary.

Pattern is identical to dare’s: drop files into the flat HTML repo, push, ship. The existing custom /.well-known/agent.json on dogwood.house (with placeholder booking_inquiry: false / availability_check: false capabilities) should be ported to beta and the capabilities flipped to true once the corresponding endpoints exist.

Voice: per project_dogwood_service_strategy — “Soho House for dogs” country home, NYC/Brooklyn/Greenwich/Hamptons pick-up. Different register from DARE — warmer, service-oriented, member-club feel.

Service JSON-LD is the search-engine-agent equivalent for dogwood — Service with serviceType, areaServed, provider. Plus optionally LocalBusiness if Dan wants the physical address indexed.

Recommendations (sequenced)

  1. Today, 5 minutes — audrey bio ownership. Edit Shopify SEO settings to replace the CV-bullet bio with brand prose. Highest-leverage single action; ripples through /llms.txt automatically.
  2. Today, 30 minutes — review the dare staging artefacts. Files are in ~/Downloads/dare-agent-stack-staging/. Eyeball voice, structure, cross-refs. If voice lands, ship via dare-pipeline. If not, iterate.
  3. This weekend — audrey priceValidUntil template edit. Shopify theme code change; affects all variants. Closes one of three GSC flags.
  4. Next week — audrey reviews app install. Closes the remaining two GSC flags (aggregateRating, review) and adds the LLM-agent trust signal.
  5. Next week — mirror dare’s stack onto beta.dogwood.house. Same six files, dogwood-voiced, capabilities filled where the endpoints exist.

Watch items

What this tells us

Two patterns:

One — agent-discoverability is graduating from “thing forward-thinkers add manually” to “platform default Shopify ships under you.” Shopify spent engineering on this because they see commerce going through agents. The portfolio sites that aren’t on platforms doing this work (dare, beta.dogwood.house) need to hand-build the equivalent — which is the rollout in this audit.

Two — the work splits cleanly into LLM-agent layer (the modern stack: llms.txt, agents.md, .well-known) and search-engine-agent layer (the older stack: schema.org, sitemaps, robots). Neither is sufficient alone. Both are auditable. Both have human-readable + machine-readable presentations and best-practice is to ship both.

Trust-signal infrastructure. Cheap when triggered, premature when not — and this is triggered.


Generated 2026-05-15. Staging artefacts at ~/Downloads/dare-agent-stack-staging/. Memories: project_shopify_ucp_audrey_native, project_agent_discoverability_portfolio_rollout, project_audrey_agent_discoverability (reframed).

Source: dare_agent_discoverability_audit_2026-05-15.md · Rendered 2026-05-15 06:54