{"type":"course.site_audit.v1","payload":{"version":"audit-v1","target":"https://signetworks.atelieri.workers.dev","audited_at":"2026-11-11T00:06:19.110Z","fetches":9,"checks":[{"id":"robots-exists","title":"robots.txt exists and parses","status":"pass","detail":"robots.txt served with at least one User-agent block"},{"id":"robots-ai-directives","title":"robots.txt names at least one AI crawler explicitly","status":"pass","detail":"named crawler blocks found: gptbot, claudebot, google-extended, perplexitybot, ccbot, anthropic-ai"},{"id":"robots-not-blanket","title":"AI crawler directives are not a blanket disallow","status":"info","detail":"named AI crawler directives are not a blanket Disallow: /"},{"id":"llmstxt-exists","title":"llms.txt exists at the root","status":"pass","detail":"llms.txt served with a 2xx status"},{"id":"llmstxt-shape","title":"llms.txt matches the informal spec shape","status":"pass","detail":"found an H1 title, a blockquote summary, and at least one ## section"},{"id":"llmstxt-links","title":"llms.txt links resolve on the same origin","status":"pass","detail":"5/5 checked links resolved"},{"id":"mcp-advert","title":"an MCP server is advertised","status":"pass","detail":"/.well-known/mcp.json served valid JSON"},{"id":"structured-data","title":"homepage carries structured data (JSON-LD)","status":"pass","detail":"1/1 ld+json block(s) parsed as valid JSON"},{"id":"title-meta","title":"homepage has a non-empty title and meta description","status":"pass","detail":"title (19 chars) and meta description (127 chars) present"},{"id":"charset","title":"charset is declared and consistent","status":"pass","detail":"charset declared as utf-8"},{"id":"content-type-sanity","title":"Content-Type headers match what each path implies","status":"pass","detail":"all fetched paths returned the expected Content-Type"},{"id":"homepage-response","title":"homepage responds with a 2xx, no-render fetch","status":"info","detail":"returned HTTP 200 in 0ms, no-render fetch"}],"summary":{"pass":10,"total":12}},"payload_hash":"sha256:d1a1b3f31f6f461274bf03149bf549bc888892e72731508041bbf54d6e068add","signature":{"alg":"EdDSA","sig":"a0sPbsxjeWSVVkDqy02ox2lk8QF0hkbbZEXzR597GS8giU_fsADU6slpyeZVoVZ5K_lEiHWbbAQEeTgjFtv7Cg","public_key":"SCRN4PyVnwXinEQTGZfMw_2M32w3m5HaCcJV9bYQcJM"},"_note":"self-audit: this worker ran its own site_audit checks against its own origin, in-process through the same handlers that serve these routes (a worker cannot fetch its own hostname). Refreshed hourly. Checks 3 and 12 report facts, not verdicts, so 10/12 is the maximum score. The signature proves what was checked and when, never that the checks are exhaustive."}