{"type":"course.site_audit.v1","payload":{"version":"audit-v1","target":"https://signetworks.atelieri.workers.dev","audited_at":"2026-09-26T21:32:47.693Z","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:fe34e42510e1158c4ec51ac7c6ef15d262b4d52ee73144008c199affe842e8f1","signature":{"alg":"EdDSA","sig":"YuMJASjQVGq1TwK4bXCsRCnPJhsrmTu5ZuYUjZTaH4NylutN9sUIhDESNtlwJcLRhegnX0CLlgaNRE_eKgphCA","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."}