Files
Peter Pistorius b9dbddcf7b feat(website): publish robots.txt, sitemap.xml, Link headers, and agent-skills index (#264)
Address agent-readiness findings from isitagentready.com:

- apps/website/public/robots.txt — RFC 9309 crawl rules with explicit
  entries for GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, Claude-Web,
  anthropic-ai, Google-Extended, PerplexityBot, Applebot-Extended, CCBot,
  Meta-ExternalAgent, Bytespider, DuckAssistBot (and standard search bots),
  a Sitemap reference, and Content Signals
  (search=yes, ai-input=yes, ai-train=no).

- apps/website/src/app/pages/sitemap.ts — dynamic /sitemap.xml handler
  registered outside render(Document, ...) so it returns application/xml.
  Enumerates static routes, the copied CLI docs, and blog posts from
  content-collections with lastmod.

- apps/website/src/app/headers.ts — adds a RFC 8288 Link response header
  on all routes: sitemap, agent-skills (extension), service-doc.

- apps/website/scripts/copy-docs.mjs — sync script that copies the public
  CLI docs (README.md, compatibility.md, runner-image.md, SKILL.md) into
  apps/website/public/docs/ and regenerates
  apps/website/public/.well-known/agent-skills/index.json with fresh
  sha256 digests. Hooked into predev/prebuild so the website's static
  tree cannot drift from the CLI.

The generated public/docs/ and public/.well-known/agent-skills/ trees are
gitignored.

Verified end-to-end against 'npm run preview': all endpoints return the
expected status, content-type, and body, and the Link header appears on
both HTML and XML responses.

No changeset: this change is entirely under apps/website/ and does not
affect published packages (per .claude/rules/changeset-required.md).
2026-04-17 16:43:44 +02:00
..
2026-03-27 20:05:24 +11:00
2026-03-27 20:05:24 +11:00