Eight hours with Opus 4.7 and Claude Code wiring sunshine.fm for the agent web. Everything shipped. sunshine.fm is now the case study.
Started the session with a footer link pointing to a retired Mintlify subdomain. Ended it with sunshine.fm fully instrumented for the agent web. Everything live on Cloudflare Pages.
The full stack: robots.txt with Content-Signal directive and explicit Allow blocks for eight AI crawlers (GPTBot, OAI-SearchBot, ClaudeBot, anthropic-ai, PerplexityBot, Google-Extended, Applebot-Extended, Claude-Web). A _headers file โ which didn't exist before today โ now handling security baseline, Link discovery headers pointing to the api-catalog and llms.txt, and MIME type overrides for all agent surfaces. Canonical URL on the homepage. An honest Mirage card with a JS date gate that auto-removes it at midnight PT May 1.
The well-known layer: /.well-known/mcp.json adapted for a static-read surface using a resources array instead of a live server URL. /.well-known/mcp/server-card.json in SEP-1649 shape with "transport": null โ an honest declaration that no MCP server runs today. /.well-known/api-catalog as application/linkset+json cataloging llms.txt, sitemap, super-pacs, blog, and the server card.
The agent-skills layer: /.well-known/agent-skills/index.json with two live SKILL.md files โ understand-sunshine-fm and track-ai-pac-spending โ with verified sha256 digests, correct schema URL, and correct type enum. This is the part that matters most long-term: not "here's what's on our site" but "here are reusable agent instructions you can acquire and execute."
The audit-fix-verify-checkpoint rhythm caught four separate spec-level errors before deploy: Content-Signal misplacement in robots.txt twice, agent-skills schema URL pointing to the wrong domain, and agent-skills type enum using the wrong vocabulary. All four would have shipped broken without the checkpoint rhythm.
sunshine.fm had no _headers file at all before today. That was why nothing was working. Creating it was the single biggest infrastructure unlock โ every subsequent header change is now a one-line edit.
The three-artifact agent visibility kit framing โ business card, lobby pamphlet, concierge โ maps directly onto the three layers of the agent-readiness stack: MCP server card, llms.txt plus api-catalog, agent-skills. That's not coincidence. The spec agrees with the product intuition. That framing is the AICV consulting offer, and sunshine.fm is now the case study that proves it.
Radio stream wiring is a dedicated future session. Per-page Markdown for Agents negotiation needs a Worker in front of Pages โ load-bearing for AICV.com, not sunshine.fm. WebMCP skipped as cargo cult until real transactional tools exist. OAuth and Protected Resource Metadata are load-bearing for agent-to-agent transactions โ not today. Three housekeeping items flagged: missing JOURNAL_BUILD_SPEC.md referenced in OPERATING_INSTRUCTIONS.md, orphaned fec-tracker Worker, and a security hardening pass for CSP headers.
AICV.com is the real test. sunshine.fm taught us the pattern. AICV.com is where 80 nodes and 131 briefs create real content density, and where the agent-skills index gets genuinely interesting โ query nodes by city, get regional brief, fetch economic context. That session runs fresh, not as a template copy. The content is not copy-paste; the shape is.