Repository navigation
feat: agent discovery for shorebird.dev - #426
Conversation
…s, catalogs, llms.txt) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
🐦 Preview of 2c09f08: https://shorebird-website--pr-426-dxm0p4sh.web.app (expires in 7 days) |
…g service-desc Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Adversarial reviewThis repo has no review bot, so here is the self-review. I scanned the preview channel with isitagentready.com: Level 2, up from Level 1. Link headers, AI bot rules, Content Signals, API Catalog, Agent Skills and ARD pass. The remaining failures are the ones the plan expected: Markdown negotiation (step 2783), DNS-AID, and OAuth/MCP/A2A/WebMCP/PAP metadata for things we don't publish here. Checked:
Findings:
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
I'm sure this will need more tweaking over time, in particular the suggested queries. |
|
lgtm |
|
Note before landing: the AI Catalog spec (Agent-Card/ai-catalog, "Link Relation Discovery") registers |
Matches docs#747: the AI Catalog spec registers rel="ai-catalog" with application/ai-catalog+json, and requires a Major.Minor specVersion. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Done in 2c09f08: Link header now |
AbhishekDoshi26
left a comment
There was a problem hiding this comment.
Reviewed against the preview channel. No blocking issues.
/serves theLinkheader./.well-known/api-catalogis served asapplication/linkset+json,ai-catalog.jsonasapplication/ai-catalog+json, and all/.well-known/**files and/llms.txtcarry CORS*.trailingSlashdoesn't redirect the extensionless file.- All JSON parses.
api-catalogandagent-skills/index.jsonare identical to the docs copies. Every referenced URL resolves, exceptapi.shorebird.dev/api/v1, which returns 401 but is only the linkset anchor. - robots.txt has no
Disallowlines, so nothing that was crawlable before is blocked. - Minor:
"source": "/"doesn't match/index.html, so that URL gets noLinkheader./is canonical and is what the scanner checks, so this is fine. - Policy note:
ai-train=yesapplies to every listed crawler, including Bytespider and meta-externalagent. This matches docs.
Step 1 of making shorebird.dev pass isitagentready.com (plan: private Notion doc on the "AI-friendly website and docs" arc). Today shorebird.dev scans at Level 1; docs.shorebird.dev is at Level 4. This PR holds only static files and headers, so it stays on Firebase Hosting.
robots.txt:Content-Signal: search=yes, ai-input=yes, ai-train=yesand explicit rules for the major AI crawlers, the same as docs. This is what Level 2 needs.firebase.json: aLinkheader on/pointing to llms.txt, the API catalog, the OpenAPI spec, the docs, the OAuth server metadata on auth.shorebird.dev, agent skills, the AI catalog and the sitemap.application/linkset+jsonon/.well-known/api-catalog, and CORS*on/.well-known/**and/llms.txt./.well-known/api-catalog(RFC 9727),/.well-known/agent-skills/index.jsonand/.well-known/ai-catalog.json: copies of the docs site's files, which already use absolute URLs into docs and api.shorebird.dev. The AI catalog adds one entry for this site's llms.txt. As on docs (docs#747), it is linked asrel="ai-catalog", served asapplication/ai-catalog+json, withspecVersion: "1.0", which is what the AI Catalog spec registers and what the scanner looks for.llms.txt: removes the empty## Linksheading and the stray--lines, adds a "Developers and agents" section and an## Optionalsection, and drops "Notes for AI Systems". That section was prose that no llms.txt consumer reads, and its one pointer, to the docs llms.txt, now sits in the intro.The catalogs are copies, so they can drift from docs. The skills list changes rarely, and a stale entry still points at a live doc page.
Still failing after this PR: Markdown content negotiation, which Firebase Hosting can't do (step 2783 on the arc, Eric's call), and the checks that would describe things we don't run publicly (MCP card, A2A, OAuth metadata on this domain).
Verified locally:
npm run build,format:check,cspell,check:links. I'll scan the preview channel once it deploys.Screenshots
No visible change: only robots.txt, llms.txt,
.well-knownfiles and response headers.Landing
As soon as approved. After it deploys, re-run the scan on shorebird.dev and record the level on the arc.
🤖 Generated with Claude Code