{"schemaVersion":"1.1.0","offerName":"AI Discovery Site Audit — AEO/GEO Fix Pack","reportProduct":"Website Release Evidence Dossier","productionSample":"https://agent402.dev/site-release-audit/sample.json","proofBoundary":{"artifact":"https://agent402.dev/site-release-audit/proof/v1/case-study.json","reportSchemaVersion":"1.0.0","scope":"Immutable seller-controlled base 22-check served-HTML replay; it predates and does not prove v1.1 root-file observations.","currentRootEvidence":"The live sample and this methodology expose the v1.1 root-evidence-v1 contract."},"observation":{"input":"One credential-free public HTTPS URL on port 443","method":"GET","maxRedirects":3,"maxBodyBytes":524288,"totalAuditDeadlineMs":12000,"javascriptExecuted":false,"subresourcesFetched":false,"rootEvidence":{"methodology":"root-evidence-v1","paths":["/robots.txt","/llms.txt","/sitemap.xml"],"methods":["GET","GET","GET"],"sameOriginHttpsPort":443,"freshDnsValidations":1,"parallel":true,"redirectsFollowed":false,"linksFollowed":false,"deadline":"The three root requests share only the time remaining in the single 12-second total audit deadline.","maxBodyBytes":{"robotsTxt":65536,"llmsTxt":131072,"sitemapXml":262144},"contentEncoding":"identity","minimumTls":"TLSv1.2","maxHeaderBytes":32768,"failuresFatal":false}},"scoring":{"possible":100,"pass":"full points","warning":"half points","fail":"zero points","securityNonPass":"fail with zero points","grades":{"A":90,"B":80,"C":70,"D":60,"F":0}},"checks":[{"id":"authenticated-https","section":"transport","title":"Authenticated public HTTPS","points":5},{"id":"http-success","section":"transport","title":"Successful final response","points":5},{"id":"html-content-type","section":"transport","title":"HTML content type","points":5},{"id":"hsts","section":"security","title":"HSTS","points":5},{"id":"csp","section":"security","title":"Content Security Policy","points":5},{"id":"nosniff","section":"security","title":"MIME sniffing disabled","points":5},{"id":"frame-policy","section":"security","title":"Frame embedding policy","points":5},{"id":"referrer-policy","section":"security","title":"Referrer policy","points":5},{"id":"permissions-policy","section":"security","title":"Permissions policy","points":5},{"id":"title","section":"seo","title":"Descriptive title","points":5},{"id":"meta-description","section":"seo","title":"Meta description","points":5},{"id":"canonical","section":"seo","title":"Same-origin HTTPS canonical URL","points":5},{"id":"robots-indexable","section":"seo","title":"Indexable robots directive","points":4},{"id":"html-lang","section":"seo","title":"Valid document language","points":4},{"id":"single-h1","section":"seo","title":"One non-empty H1","points":4},{"id":"open-graph","section":"seo","title":"Open Graph trio","points":4},{"id":"structured-data","section":"seo","title":"Typed schema.org JSON-LD","points":4},{"id":"image-alt","section":"accessibility","title":"Image alternative text","points":4},{"id":"form-labels","section":"accessibility","title":"Form control names","points":4},{"id":"heading-order","section":"accessibility","title":"Heading order","points":4},{"id":"main-landmark","section":"accessibility","title":"Main landmark","points":4},{"id":"skip-link","section":"accessibility","title":"Working skip link","points":4}],"aiDiscovery":{"contractVersion":"1.1.0","methodology":"root-evidence-v1","dimensions":{"aeo":"Answer Engine Optimization (AEO)","geo":"Generative Engine Optimization (GEO)","agentDiscovery":"Agent discovery readiness"},"findingIds":["page-identity","content-structure","structured-page-identity","page-indexability","robots-txt","llms-txt","sitemap-xml"],"remediationSlots":[{"id":"json-ld-webpage","artifact":"JSON-LD WebPage identity","target":"HTML <head>","contentType":"application/ld+json"},{"id":"head-meta","artifact":"HTML metadata","target":"HTML <head>","contentType":"text/html"},{"id":"robots-txt","artifact":"robots.txt merge candidate","target":"/robots.txt","contentType":"text/plain"},{"id":"llms-txt","artifact":"llms.txt review candidate","target":"/llms.txt","contentType":"text/markdown"},{"id":"sitemap-xml","artifact":"sitemap.xml merge candidate","target":"/sitemap.xml","contentType":"application/xml"}],"rootEvidenceSha256":"bff38bc2deb3df935b992b80165ba206bafdca66f3a6b2cb0c6bd2b0b5fdc9de","notObserved":[],"caveats":["AEO and GEO have no universal certification or scoring standard; these findings expose bounded declared signals rather than claiming rankings.","robots.txt results describe declared policy for six product tokens and the audited URL only; they do not prove crawler behavior or indexing.","Root bodies are hashed and reduced to structural facts; child sitemaps, Markdown links, redirects, and subresources are never followed."]},"failClosedRules":["Every meta robots directive and X-Robots-Tag is evaluated; any explicit noindex or none prevents an indexability pass.","A canonical passes only when it is same-origin HTTPS without credentials, query, or fragment.","JSON-LD passes only when every block contains a typed schema.org entity; empty arrays and syntax-only objects do not pass.","Form controls require a non-empty accessible name; empty label elements do not pass.","Generated descriptions prefer main/article content and exclude footer, nav, header, and aside boilerplate.","Root redirects, access denials, server errors, ambiguous media types, and transport errors remain not observed; only HTTP 404 is observed absence.","robots.txt applies merged matching groups, longest path match, Allow on equal specificity, wildcards, terminal $, and comments for six named crawler product tokens.","sitemap.xml rejects DTD/entity declarations and unknown entities; child sitemaps and declared URLs are never requested."],"integrity":{"bodySha256":"SHA-256 of the bounded final response body","rootEvidenceSha256":"SHA-256 over normalized status, media type, body digest, result, reason, and structural facts for the three exact root paths","dossierId":"Stable 24-hex digest prefix over URL hashes, final body hash, allowlisted headers, and normalized root-evidence digest","reportSha256":"SHA-256 of JSON.stringify(report) before reportSha256 is appended","limitation":"Integrity checksums detect changes; they are not an operator signature or independent attestation."},"methodologySha256":"0a54d6d495a20eb45d667cba6a6540a60a5d3f516baa1bc91d8ee5f7c372c425"}