changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "properties": {
+ "checks": {
+ "description": "Individual checks with pass/warn/fail status and weight.",
+ "items": {
+ "properties": {
+ "detail": {
+ "type": "string"
+ },
+ "id": {
+ "enum": [
+ "search_bots_allowed",
+ "llms_txt",
+ "sitemap",
+ "structured_data",
+ "meta",
+ "content_signals",
+ "https"
+ ],
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "status": {
+ "enum": [
+ "pass",
+ "warn",
+ "fail"
+ ],
+ "type": "string"
+ },
+ "weight": {
+ "type": "number"
+ }
+ },
+ "required": [
+ "id",
+ "name",
+ "status",
+ "weight",
+ "detail"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "crawler_access": {
+ "description": "Access verdict for each known AI crawler under the site's robots.txt.",
+ "items": {
+ "properties": {
+ "access": {
+ "enum": [
+ "allowed",
+ "blocked",
+ "no-rule"
+ ],
+ "type": "string"
+ },
+ "advice": {
+ "type": "string"
+ },
+ "bot": {
+ "type": "string"
+ },
+ "owner": {
+ "type": "string"
+ },
+ "purpose": {
+ "type": "string"
+ },
+ "visibility_critical": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "bot",
+ "owner",
+ "purpose",
+ "visibility_critical",
+ "access",
+ "advice"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "disclaimer": {
+ "description": "Informational disclaimer: crawler behaviour can change, verify against provider docs.",
+ "type": "string"
+ },
+ "domain": {
+ "description": "Normalized host name that was scanned, e.g. example.com.",
+ "type": "string"
+ },
+ "fetched": {
+ "description": "HTTP status and byte size of each fetched file (status 0 = network error).",
+ "properties": {
+ "homepage": {
+ "description": "Homepage fetch result.",
+ "properties": {
+ "bytes": {
+ "type": "number"
+ },
+ "status": {
+ "type": "number"
+ }
+ },
+ "required": [
+ "status",
+ "bytes"
+ ],
+ "type": "object"
+ },
+ "llms": {
+ "description": "llms.txt fetch result.",
+ "properties": {
+ "bytes": {
+ "type": "number"
+ },
+ "status": {
+ "type": "number"
+ }
+ },
+ "required": [
+ "status",
+ "bytes"
+ ],
+ "type": "object"
+ },
+ "robots": {
+ "description": "robots.txt fetch result.",
+ "properties": {
+ "bytes": {
+ "type": "number"
+ },
+ "status": {
+ "type": "number"
+ },
+ "truncated": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "status",
+ "bytes",
+ "truncated"
+ ],
+ "type": "object"
+ },
+ "sitemap": {
+ "description": "sitemap.xml fetch result.",
+ "properties": {
+ "bytes": {
+ "type": "number"
+ },
+ "status": {
+ "type": "number"
+ }
+ },
+ "required": [
+ "status",
+ "bytes"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "robots",
+ "llms",
+ "sitemap",
+ "homepage"
+ ],
+ "type": "object"
+ },
+ "findings": {
+ "description": "Non-passing checks as fixes; fail = high priority, warn = medium.",
+ "items": {
+ "properties": {
+ "check": {
+ "type": "string"
+ },
+ "detail": {
+ "type": "string"
+ },
+ "fix_with": {
+ "description": "AIReady tool that generates the fix, when one applies.",
+ "enum": [
+ "robots_txt_for_ai",
+ "llms_txt_draft",
+ "schema_jsonld_sample"
+ ],
+ "type": "string"
+ },
+ "priority": {
+ "enum": [
+ "high",
+ "medium"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "check",
+ "priority",
+ "detail"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "generated": {
+ "description": "Ready-made fix snippets derived from the scan results.",
+ "properties": {
+ "llms_txt_hint": {
+ "description": "Pointer to llms_txt_draft and the publish URL.",
+ "type": "string"
+ },
+ "robots_snippet_to_unblock_search_bots": {
+ "description": "robots.txt lines allowing blocked visibility-critical bots, or null if none are blocked.",
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "robots_snippet_to_unblock_search_bots",
+ "llms_txt_hint"
+ ],
+ "type": "object"
+ },
+ "grade": {
+ "description": "Letter grade: A >= 85, B >= 70, C >= 50, otherwise D.",
+ "enum": [
+ "A",
+ "B",
+ "C",
+ "D"
+ ],
+ "type": "string"
+ },
+ "notes": {
+ "description": "Caveats about this scan, e.g. www. fallback used or requests refused by the site.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "score": {
+ "description": "Weighted readiness score 0-100 (pass = full weight, warn = half).",
+ "maximum": 100,
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "domain",
+ "score",
+ "grade",
+ "checks",
+ "crawler_access",
+ "findings",
+ "generated",
+ "fetched",
+ "disclaimer"
+ ],
+ "type": "object"
+}