{
  "ofbExportFormatVersion": "1",
  "kind": "ofb-audit-report",
  "exportedAt": "2026-10-02T20:44:48.711Z",
  "report": {
    "domain": "invoicecraftly.com",
    "auditId": "303bafcd-9eac-4111-a702-59ec9efc462f",
    "checkedAt": "2026-10-02T20:44:48.711Z",
    "testedPath": "/",
    "reportVersion": "ofb-audit-r2.1",
    "legacyReportVersion": "ofb-audit-r1.6",
    "activeCapabilities": [
      "robots_policy",
      "public_html",
      "business_clarity",
      "structured_data",
      "llms_txt",
      "entity_trust"
    ],
    "robots": {
      "status": "available",
      "sourceUrl": "https://invoicecraftly.com/robots.txt",
      "httpStatus": 200,
      "bytesRead": 117,
      "redirects": []
    },
    "page": {
      "status": "available",
      "sourceUrl": "https://invoicecraftly.com/",
      "finalUrl": "https://invoicecraftly.com/",
      "httpStatus": 200,
      "contentType": "text/html; charset=utf-8",
      "redirects": [],
      "bytesRead": 47651,
      "durationMs": 371,
      "initialHtml": {
        "title": "Free Invoice Generator — No Signup, Logo & QR | InvoiceCraftly",
        "metaDescription": "Create invoices, quotes, estimates, proforma invoices, receipts and credit notes free in your browser. No signup. Add your logo and export PDF, PNG, SVG or CSV.",
        "canonical": "https://invoicecraftly.com/",
        "language": "en",
        "h1s": [
          "Free invoice generator with logo and payment QR"
        ],
        "openingText": "Skip to main content Invoice Craftly Create Templates Free Tools Use cases Guides About Contact Global Global English · USD ✓ Danmark Dansk · DKK Norge Norsk · NOK Sverige Svenska · SEK Suomi Suomi · EUR Create an invoice → Free to use · No signup Free invoice generator with logo and payment QR Free invoicing for freelancers and small businesses. Create, review, and export a professional invoice—with free PDF, PNG, SVG, and CSV exports. A focused workspace for invoices, quotes, estimates, proforma invoices, receipts, and credit notes. Create without an account and keep control of your working",
        "visibleWordCount": 1477,
        "hasMeaningfulInitialContent": true,
        "signals": {
          "titlePresent": true,
          "metaDescriptionPresent": true,
          "canonicalPresent": true,
          "singleH1": true,
          "languagePresent": true
        }
      },
      "clarity": {
        "status": "available",
        "summary": {
          "clear": 6,
          "limited": 0,
          "missing": 0,
          "notDetermined": 0
        },
        "findings": [
          {
            "id": "identity",
            "status": "clear_signal",
            "title": "Visible identity signal found",
            "summary": "The hostname brand token also appears in prominent public copy.",
            "evidence": "observed",
            "observedValue": "Free Invoice Generator — No Signup, Logo & QR | InvoiceCraftly",
            "recommendation": "Keep the business or product name consistent across title, H1, opening copy, and structured data.",
            "doesNotProve": "This wording check does not establish how any search or AI system interprets, ranks, cites, or recommends the page."
          },
          {
            "id": "offer",
            "status": "clear_signal",
            "title": "Offer/category language found",
            "summary": "The public copy includes an explicit product, service, or category term.",
            "evidence": "heuristic",
            "observedValue": "Generator",
            "recommendation": "Keep the category term close to the business name and primary value proposition.",
            "doesNotProve": "This wording check does not establish how any search or AI system interprets, ranks, cites, or recommends the page."
          },
          {
            "id": "audience",
            "status": "clear_signal",
            "title": "Audience language found",
            "summary": "The public copy includes an explicit audience phrase.",
            "evidence": "heuristic",
            "observedValue": "for freelancers",
            "recommendation": "Keep the audience phrase near the primary offer where it reads naturally.",
            "doesNotProve": "This wording check does not establish how any search or AI system interprets, ranks, cites, or recommends the page."
          },
          {
            "id": "outcome",
            "status": "clear_signal",
            "title": "Practical outcome language found",
            "summary": "The public copy includes an action or outcome term describing what a visitor can do.",
            "evidence": "heuristic",
            "observedValue": "Create",
            "recommendation": "Connect the action to a concrete result or problem solved.",
            "doesNotProve": "This wording check does not establish how any search or AI system interprets, ranks, cites, or recommends the page."
          },
          {
            "id": "title-h1-consistency",
            "status": "clear_signal",
            "title": "Title and H1 reinforce related terms",
            "summary": "The title and primary H1 share meaningful terminology.",
            "evidence": "observed",
            "observedValue": "free, invoice, generator, logo",
            "recommendation": "Keep them aligned without making them identical.",
            "doesNotProve": "This wording check does not establish how any search or AI system interprets, ranks, cites, or recommends the page."
          },
          {
            "id": "opening-copy",
            "status": "clear_signal",
            "title": "Descriptive opening copy is available",
            "summary": "The initial HTML exposes enough opening text for a visitor or retrieval system to inspect.",
            "evidence": "observed",
            "observedValue": "Skip to main content Invoice Craftly Create Templates Free Tools Use cases Guides About Contact Global Global English · USD ✓ Danmark Dansk · DKK Norge Norsk · NOK Sverige Svenska · SEK Suomi Suomi · EUR Create an invoice → Free to use · No signup Free invoice generator with logo and payment QR Free",
            "recommendation": "Keep the first paragraph specific and supported by the rest of the page.",
            "doesNotProve": "This wording check does not establish how any search or AI system interprets, ranks, cites, or recommends the page."
          }
        ]
      },
      "structuredData": {
        "status": "available",
        "rulesVersion": "ofb-jsonld-r1.1-2026-10-02",
        "summary": {
          "blocks": 2,
          "validBlocks": 2,
          "malformedBlocks": 0,
          "entities": 6,
          "supportedEntities": 4,
          "pass": 4,
          "warning": 0,
          "fail": 0,
          "info": 2
        },
        "blocks": [
          {
            "index": 0,
            "status": "valid",
            "bytes": 3804,
            "entityCount": 5
          },
          {
            "index": 1,
            "status": "valid",
            "bytes": 3434,
            "entityCount": 1
          }
        ],
        "entities": [
          {
            "index": 0,
            "blockIndex": 0,
            "path": "root.@graph[0]",
            "id": "https://invoicecraftly.com/#organization",
            "name": "InvoiceCraftly",
            "types": [
              "Organization"
            ],
            "primaryType": "Organization",
            "supported": true,
            "contextValid": true,
            "missingRequired": [],
            "missingRecommended": [],
            "properties": {
              "@type": "Organization",
              "@id": "https://invoicecraftly.com/#organization",
              "name": "InvoiceCraftly",
              "url": "https://invoicecraftly.com/",
              "logo": {
                "@id": "https://invoicecraftly.com/#primaryimage"
              },
              "sameAs": [
                "https://www.linkedin.com/company/invoicecraftly",
                "https://www.youtube.com/@InvoiceCraftly"
              ]
            }
          },
          {
            "index": 1,
            "blockIndex": 0,
            "path": "root.@graph[1]",
            "id": "https://invoicecraftly.com/#website",
            "name": "InvoiceCraftly",
            "types": [
              "WebSite"
            ],
            "primaryType": "WebSite",
            "supported": true,
            "contextValid": true,
            "missingRequired": [],
            "missingRecommended": [],
            "properties": {
              "@type": "WebSite",
              "@id": "https://invoicecraftly.com/#website",
              "url": "https://invoicecraftly.com/",
              "name": "InvoiceCraftly",
              "publisher": {
                "@id": "https://invoicecraftly.com/#organization"
              },
              "inLanguage": [
                "en",
                "da-DK",
                "nb-NO",
                "sv-SE",
                "fi-FI"
              ]
            }
          },
          {
            "index": 2,
            "blockIndex": 0,
            "path": "root.@graph[2]",
            "id": "https://invoicecraftly.com/#software",
            "name": "InvoiceCraftly free invoice generator",
            "types": [
              "WebApplication"
            ],
            "primaryType": "WebApplication",
            "supported": false,
            "contextValid": true,
            "missingRequired": [],
            "missingRecommended": [],
            "properties": {
              "@type": "WebApplication",
              "@id": "https://invoicecraftly.com/#software",
              "url": "https://invoicecraftly.com/",
              "name": "InvoiceCraftly free invoice generator",
              "description": "A focused invoice and business-document editor for creating invoices, quotes, estimates, proforma invoices, receipts, and credit notes with custom branding, optional reviewed payment QR codes, and downloadable exports.",
              "applicationCategory": "BusinessApplication",
              "operatingSystem": "Any",
              "browserRequirements": "Requires JavaScript",
              "isAccessibleForFree": true,
              "inLanguage": "en",
              "provider": {
                "@id": "https://invoicecraftly.com/#organization"
              },
              "author": {
                "@type": "Person",
                "@id": "https://invoicecraftly.com/about#founder",
                "name": "Abaid Ur Rehman",
                "jobTitle": "Founder and Product Owner",
                "url": "https://invoicecraftly.com/about",
                "sameAs": [
                  "https://x.com/abaidurrehman1"
                ]
              },
              "offers": {
                "@type": "Offer",
                "price": "0",
                "priceCurrency": "USD"
              },
              "featureList": [
                "Invoices, quotes, estimates, proforma invoices, receipts, and credit notes",
                "Custom logo and brand colour",
                "Payment-link and EPC/SEPA transfer QR codes",
                "PDF, PNG, SVG, and structured CSV exports",
                "CSV line-item import",
                "Multiple editable documents and workspace backups",
                "Professional invoice wording assistance",
                "No account required"
              ]
            }
          },
          {
            "index": 3,
            "blockIndex": 0,
            "path": "root.@graph[3]",
            "id": "https://invoicecraftly.com/#webpage",
            "name": "Free Invoice Generator — No Signup, Logo & QR | InvoiceCraftly",
            "types": [
              "WebPage"
            ],
            "primaryType": "WebPage",
            "supported": true,
            "contextValid": true,
            "missingRequired": [],
            "missingRecommended": [],
            "properties": {
              "@type": "WebPage",
              "@id": "https://invoicecraftly.com/#webpage",
              "url": "https://invoicecraftly.com/",
              "name": "Free Invoice Generator — No Signup, Logo & QR | InvoiceCraftly",
              "description": "Create invoices, quotes, estimates, proforma invoices, receipts and credit notes free in your browser. No signup. Add your logo and export PDF, PNG, SVG or CSV.",
              "isPartOf": {
                "@id": "https://invoicecraftly.com/#website"
              },
              "about": {
                "@id": "https://invoicecraftly.com/#software"
              },
              "mainEntity": {
                "@id": "https://invoicecraftly.com/#software"
              },
              "primaryImageOfPage": {
                "@id": "https://invoicecraftly.com/#primaryimage"
              },
              "inLanguage": "en"
            }
          },
          {
            "index": 4,
            "blockIndex": 0,
            "path": "root.@graph[4]",
            "id": "https://invoicecraftly.com/#primaryimage",
            "name": null,
            "types": [
              "ImageObject"
            ],
            "primaryType": "ImageObject",
            "supported": false,
            "contextValid": true,
            "missingRequired": [],
            "missingRecommended": [],
            "properties": {
              "@type": "ImageObject",
              "@id": "https://invoicecraftly.com/#primaryimage",
              "url": "https://invoicecraftly.com/assets/social/homepage-invoice-generator-1200x630.png",
              "contentUrl": "https://invoicecraftly.com/assets/social/homepage-invoice-generator-1200x630.png",
              "width": 1200,
              "height": 630,
              "caption": "InvoiceCraftly free invoice generator with logo and payment QR"
            }
          },
          {
            "index": 5,
            "blockIndex": 1,
            "path": "root",
            "id": null,
            "name": null,
            "types": [
              "FAQPage"
            ],
            "primaryType": "FAQPage",
            "supported": true,
            "contextValid": true,
            "missingRequired": [],
            "missingRecommended": [],
            "properties": {
              "@context": "https://schema.org",
              "@type": "FAQPage",
              "mainEntity": [
                {
                  "@type": "Question",
                  "name": "Is InvoiceCraftly free to use?",
                  "acceptedAnswer": {
                    "@type": "Answer",
                    "text": "Yes. The editor and PDF, PNG, SVG, and CSV exports are free to use without an account. Exports include a small linked InvoiceCraftly credit in the footer."
                  }
                },
                {
                  "@type": "Question",
                  "name": "Do I need an account?",
                  "acceptedAnswer": {
                    "@type": "Answer",
                    "text": "No. You can create and export documents without signing up."
                  }
                },
                {
                  "@type": "Question",
                  "name": "Where is my document stored?",
                  "acceptedAnswer": {
                    "@type": "Answer",
                    "text": "By default, your working documents are saved on this device. You can export a workspace backup, and optional storage features are separate choices. See Privacy for the current storage options."
                  }
                },
                {
                  "@type": "Question",
                  "name": "Can I add my logo and a payment QR?",
                  "acceptedAnswer": {
                    "@type": "Answer",
                    "text": "Yes. Upload your business logo, choose a brand accent colour, and optionally add a payment-link or EPC/SEPA transfer QR code. A contact-card QR shares seller contact details instead of payment instructions. Before sending, scan the QR once and confirm the payment details shown by the receiving app. "
                  }
                },
                {
                  "@type": "Question",
                  "name": "Can I create an invoice by describing it instead of filling out a form?",
                  "acceptedAnswer": {
                    "@type": "Answer",
                    "text": "Yes. Describe the work in plain language and InvoiceCraftly extracts the details into an editable draft. Review and adjust every field before you create the document."
                  }
                },
                {
                  "@type": "Question",
                  "name": "Which export formats are available?",
                  "acceptedAnswer": {
                    "@type": "Answer",
                    "text": "You can export PDF, PNG, SVG, and CSV files directly from the editor."
                  }
                },
                {
                  "@type": "Question",
                  "name": "What document types can I create?",
                  "acceptedAnswer": {
                    "@type": "Answer",
                    "text": "The same editor creates invoices, quotes, estimates, proforma invoices, receipts, and credit notes."
                  }
                },
                {
                  "@type": "Question",
                  "name": "Can I create invoice line items from a CSV?",
                  "acceptedAnswer": {
                    "@type": "Answer",
                    "text": "Yes. Choose Import from CSV beside the line-item controls, then upload a CSV or paste rows copied from a spreadsheet. InvoiceCraftly matches descriptions, quantities, units, prices, and tax fields. Review the rows and confirm once to add every ready item. Follow the CSV line-item import guide. CSV i"
                  }
                },
                {
                  "@type": "Question",
                  "name": "Can I work on more than one invoice?",
                  "acceptedAnswer": {
                    "@type": "Answer",
                    "text": "Yes. History lets you reopen multiple documents saved on this device, duplicate one, create the next invoice, and use Undo or Redo during the current editing session."
                  }
                }
              ]
            }
          }
        ],
        "findings": [
          {
            "id": "jsonld-entity-0-valid",
            "status": "pass",
            "title": "Organization core shape is present",
            "summary": "The focused core properties for this entity type were observed.",
            "evidence": {
              "type": "observed",
              "blockIndex": 0,
              "path": "root.@graph[0]"
            },
            "recommendation": "Keep the entity synchronized with visible content and official documentation.",
            "doesNotProve": "Valid structured data does not guarantee rich results, rankings, citations, retrieval, or use by an AI provider."
          },
          {
            "id": "jsonld-entity-1-valid",
            "status": "pass",
            "title": "WebSite core shape is present",
            "summary": "The focused core properties for this entity type were observed.",
            "evidence": {
              "type": "observed",
              "blockIndex": 0,
              "path": "root.@graph[1]"
            },
            "recommendation": "Keep the entity synchronized with visible content and official documentation.",
            "doesNotProve": "Valid structured data does not guarantee rich results, rankings, citations, retrieval, or use by an AI provider."
          },
          {
            "id": "jsonld-entity-2-unsupported",
            "status": "info",
            "title": "Schema type is outside the focused validator",
            "summary": "The entity declares WebApplication, which is preserved but not property-validated in this release.",
            "evidence": {
              "type": "observed",
              "blockIndex": 0,
              "path": "root.@graph[2]",
              "observedValue": [
                "WebApplication"
              ]
            },
            "recommendation": "Review the type against Schema.org and applicable first-party search documentation.",
            "doesNotProve": "Valid structured data does not guarantee rich results, rankings, citations, retrieval, or use by an AI provider."
          },
          {
            "id": "jsonld-entity-3-valid",
            "status": "pass",
            "title": "WebPage core shape is present",
            "summary": "The focused core properties for this entity type were observed.",
            "evidence": {
              "type": "observed",
              "blockIndex": 0,
              "path": "root.@graph[3]"
            },
            "recommendation": "Keep the entity synchronized with visible content and official documentation.",
            "doesNotProve": "Valid structured data does not guarantee rich results, rankings, citations, retrieval, or use by an AI provider."
          },
          {
            "id": "jsonld-entity-4-unsupported",
            "status": "info",
            "title": "Schema type is outside the focused validator",
            "summary": "The entity declares ImageObject, which is preserved but not property-validated in this release.",
            "evidence": {
              "type": "observed",
              "blockIndex": 0,
              "path": "root.@graph[4]",
              "observedValue": [
                "ImageObject"
              ]
            },
            "recommendation": "Review the type against Schema.org and applicable first-party search documentation.",
            "doesNotProve": "Valid structured data does not guarantee rich results, rankings, citations, retrieval, or use by an AI provider."
          },
          {
            "id": "jsonld-entity-5-valid",
            "status": "pass",
            "title": "FAQPage core shape is present",
            "summary": "The focused core properties for this entity type were observed.",
            "evidence": {
              "type": "observed",
              "blockIndex": 1,
              "path": "root"
            },
            "recommendation": "Keep the entity synchronized with visible content and official documentation.",
            "doesNotProve": "Valid structured data does not guarantee rich results, rankings, citations, retrieval, or use by an AI provider."
          }
        ],
        "limitation": "This release validates JSON syntax and a focused property model. It is not a complete Schema.org or search rich-result eligibility validator."
      },
      "entitySignals": {
        "status": "available",
        "rulesVersion": "ofb-entity-r1-2026-08-02",
        "summary": {
          "primaryEntities": 2,
          "stableIds": 2,
          "logos": 1,
          "sameAsLinks": 2,
          "trustPages": 4,
          "relationships": 2,
          "warnings": 0,
          "opportunities": 0
        },
        "identity": {
          "visibleName": "Free Invoice Generator — No Signup, Logo & QR | InvoiceCraftly",
          "structuredNames": [
            "InvoiceCraftly"
          ],
          "primaryTypes": [
            "Organization",
            "WebSite"
          ],
          "sameAs": [
            "https://www.linkedin.com/company/invoicecraftly",
            "https://www.youtube.com/@InvoiceCraftly"
          ],
          "malformedSameAs": [],
          "trustLinks": [
            {
              "kind": "about",
              "url": "https://invoicecraftly.com/about",
              "text": "About"
            },
            {
              "kind": "contact",
              "url": "https://invoicecraftly.com/contact",
              "text": "Contact"
            },
            {
              "kind": "privacy",
              "url": "https://invoicecraftly.com/privacy",
              "text": "Read Privacy"
            },
            {
              "kind": "legal",
              "url": "https://invoicecraftly.com/privacy",
              "text": "Privacy &amp; legal"
            }
          ]
        },
        "findings": [
          {
            "id": "primary_entities",
            "status": "pass",
            "evidence": "observed",
            "title": "2 primary identity entities found",
            "meaning": "Structured data declares Organization, WebSite.",
            "recommendedAction": null
          },
          {
            "id": "stable_ids",
            "status": "pass",
            "evidence": "observed",
            "title": "Primary entities use stable identifiers",
            "meaning": "2 primary entities expose an @id.",
            "recommendedAction": null
          },
          {
            "id": "logo",
            "status": "pass",
            "evidence": "observed",
            "title": "Structured identity image found",
            "meaning": "1 primary entities expose a logo or image property.",
            "recommendedAction": null
          },
          {
            "id": "same_as",
            "status": "pass",
            "evidence": "observed",
            "title": "2 declared profile links found",
            "meaning": "The page declares external identity relationships through sameAs.",
            "recommendedAction": null
          },
          {
            "id": "name_consistency",
            "status": "pass",
            "evidence": "heuristic",
            "title": "Visible and structured identity names are consistent",
            "meaning": "At least one visible title or H1 signal aligns with a structured primary name.",
            "recommendedAction": null
          },
          {
            "id": "trust_pages",
            "status": "pass",
            "evidence": "observed",
            "title": "4 trust-page links found",
            "meaning": "Homepage links expose: about, contact, privacy, legal.",
            "recommendedAction": null
          },
          {
            "id": "relationships",
            "status": "pass",
            "evidence": "observed",
            "title": "Publisher or author relationships found",
            "meaning": "2 structured entities expose publisher or author properties.",
            "recommendedAction": null
          }
        ],
        "limitation": "These are public identity and consistency signals only. They do not prove external entity recognition, profile ownership, knowledge-graph inclusion, trust, ranking, citation or recommendation."
      }
    },
    "llmsTxt": {
      "status": "available",
      "sourceUrl": "https://invoicecraftly.com/llms.txt",
      "httpStatus": 200,
      "redirects": [],
      "bytesRead": 15570,
      "contentType": "text/plain; charset=utf-8",
      "rulesVersion": "ofb-llms-r1-2026-08-02",
      "summary": {
        "titlePresent": true,
        "introPresent": true,
        "sections": 12,
        "links": 74,
        "sameSiteLinks": 71,
        "externalLinks": 3,
        "duplicateLinks": 0,
        "malformedLinks": 0,
        "insecureLinks": 0,
        "llmsFullLinks": 0,
        "warnings": 0,
        "opportunities": 0
      },
      "document": {
        "title": "InvoiceCraftly",
        "introduction": "> InvoiceCraftly is a free invoicing product for creating professional invoices, quotes, estimates, proforma invoices, receipts, and credit notes. Core document creation and export work without an account, with custom branding, payment QR options, reusable workspace features, and PDF, PNG, SVG, and CSV exports.",
        "sections": [
          "Start here",
          "Developer API",
          "Nordic invoicing",
          "Company lookup for invoicing",
          "Tools",
          "Invoice and e-invoicing guidance",
          "Document types",
          "Profession templates",
          "Browser extensions",
          "Workspace and storage",
          "Key product limits",
          "Trust and contact"
        ],
        "links": [
          {
            "label": "InvoiceCraftly homepage",
            "rawUrl": "https://invoicecraftly.com/",
            "url": "https://invoicecraftly.com/",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 7
          },
          {
            "label": "Create an invoice",
            "rawUrl": "https://invoicecraftly.com/editor/",
            "url": "https://invoicecraftly.com/editor/",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 8
          },
          {
            "label": "Smart Start",
            "rawUrl": "https://invoicecraftly.com/start/?mode=describe",
            "url": "https://invoicecraftly.com/start/?mode=describe",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 9
          },
          {
            "label": "Complete invoice guide",
            "rawUrl": "https://invoicecraftly.com/guide",
            "url": "https://invoicecraftly.com/guide",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 10
          },
          {
            "label": "Templates and finished examples",
            "rawUrl": "https://invoicecraftly.com/templates/",
            "url": "https://invoicecraftly.com/templates/",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 11
          },
          {
            "label": "Free invoice tools",
            "rawUrl": "https://invoicecraftly.com/tools/",
            "url": "https://invoicecraftly.com/tools/",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 12
          },
          {
            "label": "Invoicing glossary",
            "rawUrl": "https://invoicecraftly.com/glossary/",
            "url": "https://invoicecraftly.com/glossary/",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 13
          },
          {
            "label": "Product changelog",
            "rawUrl": "https://invoicecraftly.com/changelog",
            "url": "https://invoicecraftly.com/changelog",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 14
          },
          {
            "label": "Developer Document API",
            "rawUrl": "https://invoicecraftly.com/developers/",
            "url": "https://invoicecraftly.com/developers/",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 18
          },
          {
            "label": "OpenAPI 3.1 specification",
            "rawUrl": "https://invoicecraftly.com/developers/openapi.json",
            "url": "https://invoicecraftly.com/developers/openapi.json",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 19
          },
          {
            "label": "APIs.json descriptor",
            "rawUrl": "https://invoicecraftly.com/apis.json",
            "url": "https://invoicecraftly.com/apis.json",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 20
          },
          {
            "label": "Published Postman documentation",
            "rawUrl": "https://documenter.getpostman.com/view/2986090/2sBYB1PoQR",
            "url": "https://documenter.getpostman.com/view/2986090/2sBYB1PoQR",
            "hostname": "documenter.getpostman.com",
            "sameSite": false,
            "secure": true,
            "line": 21
          },
          {
            "label": "TypeScript SDK",
            "rawUrl": "https://www.npmjs.com/package/@invoicecraftly/client",
            "url": "https://www.npmjs.com/package/@invoicecraftly/client",
            "hostname": "www.npmjs.com",
            "sameSite": false,
            "secure": true,
            "line": 22
          },
          {
            "label": "Python SDK",
            "rawUrl": "https://pypi.org/project/invoicecraftly/",
            "url": "https://pypi.org/project/invoicecraftly/",
            "hostname": "pypi.org",
            "sameSite": false,
            "secure": true,
            "line": 23
          },
          {
            "label": "Norway invoice generator",
            "rawUrl": "https://invoicecraftly.com/no/",
            "url": "https://invoicecraftly.com/no/",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 31
          },
          {
            "label": "Finland invoice generator",
            "rawUrl": "https://invoicecraftly.com/fi/",
            "url": "https://invoicecraftly.com/fi/",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 32
          },
          {
            "label": "Denmark invoice generator",
            "rawUrl": "https://invoicecraftly.com/dk/",
            "url": "https://invoicecraftly.com/dk/",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 33
          },
          {
            "label": "Danish invoice requirements",
            "rawUrl": "https://invoicecraftly.com/dk/krav-til-faktura/",
            "url": "https://invoicecraftly.com/dk/krav-til-faktura/",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 34
          },
          {
            "label": "Sweden invoice generator",
            "rawUrl": "https://invoicecraftly.com/se/",
            "url": "https://invoicecraftly.com/se/",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 35
          },
          {
            "label": "Company Lookup",
            "rawUrl": "https://invoicecraftly.com/tools/company-lookup/",
            "url": "https://invoicecraftly.com/tools/company-lookup/",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 39
          },
          {
            "label": "Bedriftssøk Norge",
            "rawUrl": "https://invoicecraftly.com/no/verktoy/bedriftssok/",
            "url": "https://invoicecraftly.com/no/verktoy/bedriftssok/",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 40
          },
          {
            "label": "Yrityshaku Suomi",
            "rawUrl": "https://invoicecraftly.com/fi/tyokalut/yrityshaku/",
            "url": "https://invoicecraftly.com/fi/tyokalut/yrityshaku/",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 41
          },
          {
            "label": "CVR-opslag Danmark",
            "rawUrl": "https://invoicecraftly.com/dk/vaerktojer/cvr-opslag/",
            "url": "https://invoicecraftly.com/dk/vaerktojer/cvr-opslag/",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 42
          },
          {
            "label": "Företagssök Sverige",
            "rawUrl": "https://invoicecraftly.com/se/verktyg/foretagssok/",
            "url": "https://invoicecraftly.com/se/verktyg/foretagssok/",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 43
          },
          {
            "label": "SEPA payment QR code generator",
            "rawUrl": "https://invoicecraftly.com/tools/sepa-payment-qr-generator",
            "url": "https://invoicecraftly.com/tools/sepa-payment-qr-generator",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 49
          },
          {
            "label": "IBAN validator",
            "rawUrl": "https://invoicecraftly.com/tools/iban-validator",
            "url": "https://invoicecraftly.com/tools/iban-validator",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 50
          },
          {
            "label": "Static QR code generator",
            "rawUrl": "https://invoicecraftly.com/tools/qr-code-generator",
            "url": "https://invoicecraftly.com/tools/qr-code-generator",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 51
          },
          {
            "label": "Invoice readiness checklist generator",
            "rawUrl": "https://invoicecraftly.com/tools/invoice-readiness-checklist",
            "url": "https://invoicecraftly.com/tools/invoice-readiness-checklist",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 52
          },
          {
            "label": "Invoice due date calculator",
            "rawUrl": "https://invoicecraftly.com/tools/invoice-due-date-calculator",
            "url": "https://invoicecraftly.com/tools/invoice-due-date-calculator",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 53
          },
          {
            "label": "Invoice number generator and format planner",
            "rawUrl": "https://invoicecraftly.com/tools/invoice-number-generator",
            "url": "https://invoicecraftly.com/tools/invoice-number-generator",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 54
          },
          {
            "label": "EU VAT number checker (VIES)",
            "rawUrl": "https://invoicecraftly.com/tools/vat-number-checker",
            "url": "https://invoicecraftly.com/tools/vat-number-checker",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 55
          },
          {
            "label": "VAT calculator",
            "rawUrl": "https://invoicecraftly.com/tools/vat-calculator",
            "url": "https://invoicecraftly.com/tools/vat-calculator",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 56
          },
          {
            "label": "Invoice calculator",
            "rawUrl": "https://invoicecraftly.com/tools/invoice-calculator",
            "url": "https://invoicecraftly.com/tools/invoice-calculator",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 57
          },
          {
            "label": "Hourly invoice calculator",
            "rawUrl": "https://invoicecraftly.com/tools/hourly-invoice-calculator",
            "url": "https://invoicecraftly.com/tools/hourly-invoice-calculator",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 58
          },
          {
            "label": "Retainer invoice calculator",
            "rawUrl": "https://invoicecraftly.com/tools/retainer-invoice-calculator",
            "url": "https://invoicecraftly.com/tools/retainer-invoice-calculator",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 59
          },
          {
            "label": "Days past due calculator",
            "rawUrl": "https://invoicecraftly.com/tools/days-past-due-calculator",
            "url": "https://invoicecraftly.com/tools/days-past-due-calculator",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 60
          },
          {
            "label": "Late payment interest calculator",
            "rawUrl": "https://invoicecraftly.com/tools/late-payment-interest-calculator",
            "url": "https://invoicecraftly.com/tools/late-payment-interest-calculator",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 61
          },
          {
            "label": "Payment reminder generator",
            "rawUrl": "https://invoicecraftly.com/tools/payment-reminder-generator",
            "url": "https://invoicecraftly.com/tools/payment-reminder-generator",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 62
          },
          {
            "label": "E-invoice XML viewer & checker",
            "rawUrl": "https://invoicecraftly.com/tools/e-invoice-xml-viewer",
            "url": "https://invoicecraftly.com/tools/e-invoice-xml-viewer",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 63
          },
          {
            "label": "Invoice and freelancer guides",
            "rawUrl": "https://invoicecraftly.com/guides/",
            "url": "https://invoicecraftly.com/guides/",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 67
          },
          {
            "label": "Norway invoice requirements",
            "rawUrl": "https://invoicecraftly.com/guides/norway-invoice-requirements",
            "url": "https://invoicecraftly.com/guides/norway-invoice-requirements",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 68
          },
          {
            "label": "Norway EHF and e-invoice 2027 checker",
            "rawUrl": "https://invoicecraftly.com/no/verktoy/ehf-faktura-sjekk/",
            "url": "https://invoicecraftly.com/no/verktoy/ehf-faktura-sjekk/",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 69
          },
          {
            "label": "Krav til faktura i Norge",
            "rawUrl": "https://invoicecraftly.com/guides/krav-til-faktura-norge",
            "url": "https://invoicecraftly.com/guides/krav-til-faktura-norge",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 70
          },
          {
            "label": "Finn organisasjonsnummer til faktura",
            "rawUrl": "https://invoicecraftly.com/guides/finne-organisasjonsnummer-for-faktura",
            "url": "https://invoicecraftly.com/guides/finne-organisasjonsnummer-for-faktura",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 71
          },
          {
            "label": "Bedriftssøk til faktura",
            "rawUrl": "https://invoicecraftly.com/guides/bedriftssok-til-faktura",
            "url": "https://invoicecraftly.com/guides/bedriftssok-til-faktura",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 72
          },
          {
            "label": "Sweden invoice requirements",
            "rawUrl": "https://invoicecraftly.com/guides/sweden-invoice-requirements",
            "url": "https://invoicecraftly.com/guides/sweden-invoice-requirements",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 73
          },
          {
            "label": "Krav på faktura i Sverige",
            "rawUrl": "https://invoicecraftly.com/guides/krav-pa-faktura-sverige",
            "url": "https://invoicecraftly.com/guides/krav-pa-faktura-sverige",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 74
          },
          {
            "label": "Invoice generator without signup",
            "rawUrl": "https://invoicecraftly.com/guides/invoice-generator-without-signup",
            "url": "https://invoicecraftly.com/guides/invoice-generator-without-signup",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 75
          },
          {
            "label": "Invoice",
            "rawUrl": "https://invoicecraftly.com/editor/?type=invoice",
            "url": "https://invoicecraftly.com/editor/?type=invoice",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 83
          },
          {
            "label": "Quote",
            "rawUrl": "https://invoicecraftly.com/document-types/quote",
            "url": "https://invoicecraftly.com/document-types/quote",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 84
          },
          {
            "label": "Estimate",
            "rawUrl": "https://invoicecraftly.com/document-types/estimate",
            "url": "https://invoicecraftly.com/document-types/estimate",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 85
          },
          {
            "label": "Proforma invoice",
            "rawUrl": "https://invoicecraftly.com/document-types/proforma-invoice",
            "url": "https://invoicecraftly.com/document-types/proforma-invoice",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 86
          },
          {
            "label": "Receipt",
            "rawUrl": "https://invoicecraftly.com/document-types/receipt",
            "url": "https://invoicecraftly.com/document-types/receipt",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 87
          },
          {
            "label": "Credit note",
            "rawUrl": "https://invoicecraftly.com/document-types/credit-note",
            "url": "https://invoicecraftly.com/document-types/credit-note",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 88
          },
          {
            "label": "Contractor invoice template",
            "rawUrl": "https://invoicecraftly.com/templates/contractor",
            "url": "https://invoicecraftly.com/templates/contractor",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 92
          },
          {
            "label": "Freelancer invoice template",
            "rawUrl": "https://invoicecraftly.com/templates/freelancer",
            "url": "https://invoicecraftly.com/templates/freelancer",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 93
          },
          {
            "label": "Consultant invoice template",
            "rawUrl": "https://invoicecraftly.com/templates/consultant",
            "url": "https://invoicecraftly.com/templates/consultant",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 94
          },
          {
            "label": "Photographer invoice template",
            "rawUrl": "https://invoicecraftly.com/templates/photographer",
            "url": "https://invoicecraftly.com/templates/photographer",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 95
          },
          {
            "label": "Hospitality invoice template",
            "rawUrl": "https://invoicecraftly.com/templates/hospitality",
            "url": "https://invoicecraftly.com/templates/hospitality",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 96
          },
          {
            "label": "Graphic designer invoice template",
            "rawUrl": "https://invoicecraftly.com/templates/graphic-designer",
            "url": "https://invoicecraftly.com/templates/graphic-designer",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 97
          },
          {
            "label": "Web developer invoice template",
            "rawUrl": "https://invoicecraftly.com/templates/web-developer",
            "url": "https://invoicecraftly.com/templates/web-developer",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 98
          },
          {
            "label": "Social media manager invoice template",
            "rawUrl": "https://invoicecraftly.com/templates/social-media-manager",
            "url": "https://invoicecraftly.com/templates/social-media-manager",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 99
          },
          {
            "label": "Marketing agency invoice template",
            "rawUrl": "https://invoicecraftly.com/templates/marketing-agency",
            "url": "https://invoicecraftly.com/templates/marketing-agency",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 100
          },
          {
            "label": "Virtual assistant invoice template",
            "rawUrl": "https://invoicecraftly.com/templates/virtual-assistant",
            "url": "https://invoicecraftly.com/templates/virtual-assistant",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 101
          },
          {
            "label": "Tutor and coach invoice template",
            "rawUrl": "https://invoicecraftly.com/templates/tutor-coach",
            "url": "https://invoicecraftly.com/templates/tutor-coach",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 102
          },
          {
            "label": "Boutique retail invoice template",
            "rawUrl": "https://invoicecraftly.com/templates/boutique-retail",
            "url": "https://invoicecraftly.com/templates/boutique-retail",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 103
          },
          {
            "label": "Invoice Capture for Chrome",
            "rawUrl": "https://invoicecraftly.com/chrome-extension",
            "url": "https://invoicecraftly.com/chrome-extension",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 107
          },
          {
            "label": "Invoice Capture for Microsoft Edge",
            "rawUrl": "https://invoicecraftly.com/edge-extension",
            "url": "https://invoicecraftly.com/edge-extension",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 108
          },
          {
            "label": "Account",
            "rawUrl": "https://invoicecraftly.com/account/",
            "url": "https://invoicecraftly.com/account/",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 114
          },
          {
            "label": "Privacy",
            "rawUrl": "https://invoicecraftly.com/privacy",
            "url": "https://invoicecraftly.com/privacy",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 115
          },
          {
            "label": "Security",
            "rawUrl": "https://invoicecraftly.com/security",
            "url": "https://invoicecraftly.com/security",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 116
          },
          {
            "label": "About",
            "rawUrl": "https://invoicecraftly.com/about",
            "url": "https://invoicecraftly.com/about",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 128
          },
          {
            "label": "Contact",
            "rawUrl": "https://invoicecraftly.com/contact",
            "url": "https://invoicecraftly.com/contact",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 129
          },
          {
            "label": "Partnerships",
            "rawUrl": "https://invoicecraftly.com/partnerships",
            "url": "https://invoicecraftly.com/partnerships",
            "hostname": "invoicecraftly.com",
            "sameSite": true,
            "secure": true,
            "line": 130
          }
        ],
        "malformedLinks": [],
        "duplicateLinks": [],
        "llmsFullLinks": []
      },
      "findings": [
        {
          "id": "title",
          "status": "pass",
          "evidence": "observed",
          "title": "Document title found",
          "meaning": "The file identifies itself as “InvoiceCraftly”.",
          "recommendedAction": null
        },
        {
          "id": "introduction",
          "status": "pass",
          "evidence": "observed",
          "title": "Introductory context found",
          "meaning": "The file provides context before its resource sections.",
          "recommendedAction": null
        },
        {
          "id": "links",
          "status": "pass",
          "evidence": "observed",
          "title": "74 linked resources found",
          "meaning": "Markdown links were extracted and resolved against the file location.",
          "recommendedAction": null
        }
      ],
      "limitation": "llms.txt is an emerging convention. Its presence or validity does not prove provider support, crawling, indexing, retrieval, ranking, citation, recommendation, or model use."
    },
    "deliveryDiagnostics": {
      "rulesVersion": "ofb-delivery-diagnostics-r1-2026-08-07",
      "status": "not_requested",
      "requestProfiles": [],
      "paths": [],
      "invalidPaths": [],
      "limitations": []
    },
    "policyGoalAlignment": {
      "rulesVersion": "ofb-policy-alignment-r1-2026-08-07",
      "status": "available",
      "profiles": [
        {
          "id": "maximum_visibility",
          "label": "Maximum visibility",
          "summary": "Allow search discovery, general search, user-triggered retrieval, and model training or data-use crawlers."
        },
        {
          "id": "search_visibility_balanced",
          "label": "Search visibility, training opt-out",
          "summary": "Allow search discovery, general search, and user-triggered retrieval while blocking model-training and data-use crawlers."
        },
        {
          "id": "training_opt_out",
          "label": "Training and data-use opt-out",
          "summary": "Block model-training and data-use crawlers without asserting a preference on search or user-triggered retrieval."
        },
        {
          "id": "user_triggered_retrieval_only",
          "label": "User-triggered retrieval only",
          "summary": "Allow retrieval initiated by a user's own request in an assistant, without asserting a preference on background discovery or training."
        },
        {
          "id": "conventional_search_preserved",
          "label": "Conventional search preserved",
          "summary": "Keep conventional general-search crawling allowed without asserting a preference on AI-specific discovery, retrieval, or training crawlers."
        },
        {
          "id": "review_only",
          "label": "Review only",
          "summary": "Record the current crawler policy without recommending a change to any purpose category."
        }
      ],
      "byProfile": {
        "maximum_visibility": {
          "profileId": "maximum_visibility",
          "summary": {
            "total": 12,
            "aligned": 12,
            "conflicting": 0,
            "intentionally_restricted": 0,
            "undocumented": 0,
            "not_determined": 0
          },
          "crawlers": [
            {
              "crawlerSlug": "applebot-extended",
              "displayName": "Applebot-Extended",
              "provider": "Apple",
              "purpose": [
                "data_use_control"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "Applebot-Extended",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "target_allow_observed_allowed",
              "reason": "The declared goal wants this purpose allowed, and the observed robots.txt rule leaves this crawler explicitly allowed."
            },
            {
              "crawlerSlug": "applebot",
              "displayName": "Applebot",
              "provider": "Apple",
              "purpose": [
                "search_discovery"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "Applebot",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "target_allow_observed_allowed",
              "reason": "The declared goal wants this purpose allowed, and the observed robots.txt rule leaves this crawler explicitly allowed."
            },
            {
              "crawlerSlug": "chatgpt-user",
              "displayName": "ChatGPT-User",
              "provider": "OpenAI",
              "purpose": [
                "user_triggered_retrieval"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "ChatGPT-User",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "target_allow_observed_allowed",
              "reason": "The declared goal wants this purpose allowed, and the observed robots.txt rule leaves this crawler explicitly allowed."
            },
            {
              "crawlerSlug": "claude-searchbot",
              "displayName": "Claude-SearchBot",
              "provider": "Anthropic",
              "purpose": [
                "search_discovery"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "Claude-SearchBot",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "target_allow_observed_allowed",
              "reason": "The declared goal wants this purpose allowed, and the observed robots.txt rule leaves this crawler explicitly allowed."
            },
            {
              "crawlerSlug": "claude-user",
              "displayName": "Claude-User",
              "provider": "Anthropic",
              "purpose": [
                "user_triggered_retrieval"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "Claude-User",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "target_allow_observed_allowed",
              "reason": "The declared goal wants this purpose allowed, and the observed robots.txt rule leaves this crawler explicitly allowed."
            },
            {
              "crawlerSlug": "claudebot",
              "displayName": "ClaudeBot",
              "provider": "Anthropic",
              "purpose": [
                "model_training"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "ClaudeBot",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "target_allow_observed_allowed",
              "reason": "The declared goal wants this purpose allowed, and the observed robots.txt rule leaves this crawler explicitly allowed."
            },
            {
              "crawlerSlug": "google-extended",
              "displayName": "Google-Extended",
              "provider": "Google",
              "purpose": [
                "data_use_control"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "Google-Extended",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "target_allow_observed_allowed",
              "reason": "The declared goal wants this purpose allowed, and the observed robots.txt rule leaves this crawler explicitly allowed."
            },
            {
              "crawlerSlug": "googlebot",
              "displayName": "Googlebot",
              "provider": "Google",
              "purpose": [
                "general_search"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "Googlebot",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "target_allow_observed_allowed",
              "reason": "The declared goal wants this purpose allowed, and the observed robots.txt rule leaves this crawler explicitly allowed."
            },
            {
              "crawlerSlug": "gptbot",
              "displayName": "GPTBot",
              "provider": "OpenAI",
              "purpose": [
                "model_training"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "GPTBot",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "target_allow_observed_allowed",
              "reason": "The declared goal wants this purpose allowed, and the observed robots.txt rule leaves this crawler explicitly allowed."
            },
            {
              "crawlerSlug": "oai-searchbot",
              "displayName": "OAI-SearchBot",
              "provider": "OpenAI",
              "purpose": [
                "search_discovery"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "OAI-SearchBot",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "target_allow_observed_allowed",
              "reason": "The declared goal wants this purpose allowed, and the observed robots.txt rule leaves this crawler explicitly allowed."
            },
            {
              "crawlerSlug": "perplexity-user",
              "displayName": "Perplexity-User",
              "provider": "Perplexity",
              "purpose": [
                "user_triggered_retrieval"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "Perplexity-User",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "target_allow_observed_allowed",
              "reason": "The declared goal wants this purpose allowed, and the observed robots.txt rule leaves this crawler explicitly allowed."
            },
            {
              "crawlerSlug": "perplexitybot",
              "displayName": "PerplexityBot",
              "provider": "Perplexity",
              "purpose": [
                "search_discovery"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "PerplexityBot",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "target_allow_observed_allowed",
              "reason": "The declared goal wants this purpose allowed, and the observed robots.txt rule leaves this crawler explicitly allowed."
            }
          ]
        },
        "search_visibility_balanced": {
          "profileId": "search_visibility_balanced",
          "summary": {
            "total": 12,
            "aligned": 8,
            "conflicting": 4,
            "intentionally_restricted": 0,
            "undocumented": 0,
            "not_determined": 0
          },
          "crawlers": [
            {
              "crawlerSlug": "applebot-extended",
              "displayName": "Applebot-Extended",
              "provider": "Apple",
              "purpose": [
                "data_use_control"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "Applebot-Extended",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "conflicting",
              "reasonCode": "target_block_observed_allowed",
              "reason": "The declared goal wants this purpose blocked, but the observed robots.txt rule leaves this crawler explicitly allowed."
            },
            {
              "crawlerSlug": "applebot",
              "displayName": "Applebot",
              "provider": "Apple",
              "purpose": [
                "search_discovery"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "Applebot",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "target_allow_observed_allowed",
              "reason": "The declared goal wants this purpose allowed, and the observed robots.txt rule leaves this crawler explicitly allowed."
            },
            {
              "crawlerSlug": "chatgpt-user",
              "displayName": "ChatGPT-User",
              "provider": "OpenAI",
              "purpose": [
                "user_triggered_retrieval"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "ChatGPT-User",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "target_allow_observed_allowed",
              "reason": "The declared goal wants this purpose allowed, and the observed robots.txt rule leaves this crawler explicitly allowed."
            },
            {
              "crawlerSlug": "claude-searchbot",
              "displayName": "Claude-SearchBot",
              "provider": "Anthropic",
              "purpose": [
                "search_discovery"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "Claude-SearchBot",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "target_allow_observed_allowed",
              "reason": "The declared goal wants this purpose allowed, and the observed robots.txt rule leaves this crawler explicitly allowed."
            },
            {
              "crawlerSlug": "claude-user",
              "displayName": "Claude-User",
              "provider": "Anthropic",
              "purpose": [
                "user_triggered_retrieval"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "Claude-User",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "target_allow_observed_allowed",
              "reason": "The declared goal wants this purpose allowed, and the observed robots.txt rule leaves this crawler explicitly allowed."
            },
            {
              "crawlerSlug": "claudebot",
              "displayName": "ClaudeBot",
              "provider": "Anthropic",
              "purpose": [
                "model_training"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "ClaudeBot",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "conflicting",
              "reasonCode": "target_block_observed_allowed",
              "reason": "The declared goal wants this purpose blocked, but the observed robots.txt rule leaves this crawler explicitly allowed."
            },
            {
              "crawlerSlug": "google-extended",
              "displayName": "Google-Extended",
              "provider": "Google",
              "purpose": [
                "data_use_control"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "Google-Extended",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "conflicting",
              "reasonCode": "target_block_observed_allowed",
              "reason": "The declared goal wants this purpose blocked, but the observed robots.txt rule leaves this crawler explicitly allowed."
            },
            {
              "crawlerSlug": "googlebot",
              "displayName": "Googlebot",
              "provider": "Google",
              "purpose": [
                "general_search"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "Googlebot",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "target_allow_observed_allowed",
              "reason": "The declared goal wants this purpose allowed, and the observed robots.txt rule leaves this crawler explicitly allowed."
            },
            {
              "crawlerSlug": "gptbot",
              "displayName": "GPTBot",
              "provider": "OpenAI",
              "purpose": [
                "model_training"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "GPTBot",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "conflicting",
              "reasonCode": "target_block_observed_allowed",
              "reason": "The declared goal wants this purpose blocked, but the observed robots.txt rule leaves this crawler explicitly allowed."
            },
            {
              "crawlerSlug": "oai-searchbot",
              "displayName": "OAI-SearchBot",
              "provider": "OpenAI",
              "purpose": [
                "search_discovery"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "OAI-SearchBot",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "target_allow_observed_allowed",
              "reason": "The declared goal wants this purpose allowed, and the observed robots.txt rule leaves this crawler explicitly allowed."
            },
            {
              "crawlerSlug": "perplexity-user",
              "displayName": "Perplexity-User",
              "provider": "Perplexity",
              "purpose": [
                "user_triggered_retrieval"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "Perplexity-User",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "target_allow_observed_allowed",
              "reason": "The declared goal wants this purpose allowed, and the observed robots.txt rule leaves this crawler explicitly allowed."
            },
            {
              "crawlerSlug": "perplexitybot",
              "displayName": "PerplexityBot",
              "provider": "Perplexity",
              "purpose": [
                "search_discovery"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "PerplexityBot",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "target_allow_observed_allowed",
              "reason": "The declared goal wants this purpose allowed, and the observed robots.txt rule leaves this crawler explicitly allowed."
            }
          ]
        },
        "training_opt_out": {
          "profileId": "training_opt_out",
          "summary": {
            "total": 12,
            "aligned": 8,
            "conflicting": 4,
            "intentionally_restricted": 0,
            "undocumented": 0,
            "not_determined": 0
          },
          "crawlers": [
            {
              "crawlerSlug": "applebot-extended",
              "displayName": "Applebot-Extended",
              "provider": "Apple",
              "purpose": [
                "data_use_control"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "Applebot-Extended",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "conflicting",
              "reasonCode": "target_block_observed_allowed",
              "reason": "The declared goal wants this purpose blocked, but the observed robots.txt rule leaves this crawler explicitly allowed."
            },
            {
              "crawlerSlug": "applebot",
              "displayName": "Applebot",
              "provider": "Apple",
              "purpose": [
                "search_discovery"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "Applebot",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "no_preference_observed_open",
              "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
            },
            {
              "crawlerSlug": "chatgpt-user",
              "displayName": "ChatGPT-User",
              "provider": "OpenAI",
              "purpose": [
                "user_triggered_retrieval"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "ChatGPT-User",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "no_preference_observed_open",
              "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
            },
            {
              "crawlerSlug": "claude-searchbot",
              "displayName": "Claude-SearchBot",
              "provider": "Anthropic",
              "purpose": [
                "search_discovery"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "Claude-SearchBot",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "no_preference_observed_open",
              "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
            },
            {
              "crawlerSlug": "claude-user",
              "displayName": "Claude-User",
              "provider": "Anthropic",
              "purpose": [
                "user_triggered_retrieval"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "Claude-User",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "no_preference_observed_open",
              "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
            },
            {
              "crawlerSlug": "claudebot",
              "displayName": "ClaudeBot",
              "provider": "Anthropic",
              "purpose": [
                "model_training"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "ClaudeBot",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "conflicting",
              "reasonCode": "target_block_observed_allowed",
              "reason": "The declared goal wants this purpose blocked, but the observed robots.txt rule leaves this crawler explicitly allowed."
            },
            {
              "crawlerSlug": "google-extended",
              "displayName": "Google-Extended",
              "provider": "Google",
              "purpose": [
                "data_use_control"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "Google-Extended",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "conflicting",
              "reasonCode": "target_block_observed_allowed",
              "reason": "The declared goal wants this purpose blocked, but the observed robots.txt rule leaves this crawler explicitly allowed."
            },
            {
              "crawlerSlug": "googlebot",
              "displayName": "Googlebot",
              "provider": "Google",
              "purpose": [
                "general_search"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "Googlebot",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "no_preference_observed_open",
              "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
            },
            {
              "crawlerSlug": "gptbot",
              "displayName": "GPTBot",
              "provider": "OpenAI",
              "purpose": [
                "model_training"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "GPTBot",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "conflicting",
              "reasonCode": "target_block_observed_allowed",
              "reason": "The declared goal wants this purpose blocked, but the observed robots.txt rule leaves this crawler explicitly allowed."
            },
            {
              "crawlerSlug": "oai-searchbot",
              "displayName": "OAI-SearchBot",
              "provider": "OpenAI",
              "purpose": [
                "search_discovery"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "OAI-SearchBot",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "no_preference_observed_open",
              "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
            },
            {
              "crawlerSlug": "perplexity-user",
              "displayName": "Perplexity-User",
              "provider": "Perplexity",
              "purpose": [
                "user_triggered_retrieval"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "Perplexity-User",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "no_preference_observed_open",
              "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
            },
            {
              "crawlerSlug": "perplexitybot",
              "displayName": "PerplexityBot",
              "provider": "Perplexity",
              "purpose": [
                "search_discovery"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "PerplexityBot",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "no_preference_observed_open",
              "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
            }
          ]
        },
        "user_triggered_retrieval_only": {
          "profileId": "user_triggered_retrieval_only",
          "summary": {
            "total": 12,
            "aligned": 12,
            "conflicting": 0,
            "intentionally_restricted": 0,
            "undocumented": 0,
            "not_determined": 0
          },
          "crawlers": [
            {
              "crawlerSlug": "applebot-extended",
              "displayName": "Applebot-Extended",
              "provider": "Apple",
              "purpose": [
                "data_use_control"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "Applebot-Extended",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "no_preference_observed_open",
              "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
            },
            {
              "crawlerSlug": "applebot",
              "displayName": "Applebot",
              "provider": "Apple",
              "purpose": [
                "search_discovery"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "Applebot",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "no_preference_observed_open",
              "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
            },
            {
              "crawlerSlug": "chatgpt-user",
              "displayName": "ChatGPT-User",
              "provider": "OpenAI",
              "purpose": [
                "user_triggered_retrieval"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "ChatGPT-User",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "target_allow_observed_allowed",
              "reason": "The declared goal wants this purpose allowed, and the observed robots.txt rule leaves this crawler explicitly allowed."
            },
            {
              "crawlerSlug": "claude-searchbot",
              "displayName": "Claude-SearchBot",
              "provider": "Anthropic",
              "purpose": [
                "search_discovery"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "Claude-SearchBot",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "no_preference_observed_open",
              "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
            },
            {
              "crawlerSlug": "claude-user",
              "displayName": "Claude-User",
              "provider": "Anthropic",
              "purpose": [
                "user_triggered_retrieval"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "Claude-User",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "target_allow_observed_allowed",
              "reason": "The declared goal wants this purpose allowed, and the observed robots.txt rule leaves this crawler explicitly allowed."
            },
            {
              "crawlerSlug": "claudebot",
              "displayName": "ClaudeBot",
              "provider": "Anthropic",
              "purpose": [
                "model_training"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "ClaudeBot",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "no_preference_observed_open",
              "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
            },
            {
              "crawlerSlug": "google-extended",
              "displayName": "Google-Extended",
              "provider": "Google",
              "purpose": [
                "data_use_control"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "Google-Extended",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "no_preference_observed_open",
              "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
            },
            {
              "crawlerSlug": "googlebot",
              "displayName": "Googlebot",
              "provider": "Google",
              "purpose": [
                "general_search"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "Googlebot",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "no_preference_observed_open",
              "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
            },
            {
              "crawlerSlug": "gptbot",
              "displayName": "GPTBot",
              "provider": "OpenAI",
              "purpose": [
                "model_training"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "GPTBot",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "no_preference_observed_open",
              "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
            },
            {
              "crawlerSlug": "oai-searchbot",
              "displayName": "OAI-SearchBot",
              "provider": "OpenAI",
              "purpose": [
                "search_discovery"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "OAI-SearchBot",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "no_preference_observed_open",
              "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
            },
            {
              "crawlerSlug": "perplexity-user",
              "displayName": "Perplexity-User",
              "provider": "Perplexity",
              "purpose": [
                "user_triggered_retrieval"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "Perplexity-User",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "target_allow_observed_allowed",
              "reason": "The declared goal wants this purpose allowed, and the observed robots.txt rule leaves this crawler explicitly allowed."
            },
            {
              "crawlerSlug": "perplexitybot",
              "displayName": "PerplexityBot",
              "provider": "Perplexity",
              "purpose": [
                "search_discovery"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "PerplexityBot",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "no_preference_observed_open",
              "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
            }
          ]
        },
        "conventional_search_preserved": {
          "profileId": "conventional_search_preserved",
          "summary": {
            "total": 12,
            "aligned": 12,
            "conflicting": 0,
            "intentionally_restricted": 0,
            "undocumented": 0,
            "not_determined": 0
          },
          "crawlers": [
            {
              "crawlerSlug": "applebot-extended",
              "displayName": "Applebot-Extended",
              "provider": "Apple",
              "purpose": [
                "data_use_control"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "Applebot-Extended",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "no_preference_observed_open",
              "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
            },
            {
              "crawlerSlug": "applebot",
              "displayName": "Applebot",
              "provider": "Apple",
              "purpose": [
                "search_discovery"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "Applebot",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "no_preference_observed_open",
              "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
            },
            {
              "crawlerSlug": "chatgpt-user",
              "displayName": "ChatGPT-User",
              "provider": "OpenAI",
              "purpose": [
                "user_triggered_retrieval"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "ChatGPT-User",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "no_preference_observed_open",
              "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
            },
            {
              "crawlerSlug": "claude-searchbot",
              "displayName": "Claude-SearchBot",
              "provider": "Anthropic",
              "purpose": [
                "search_discovery"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "Claude-SearchBot",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "no_preference_observed_open",
              "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
            },
            {
              "crawlerSlug": "claude-user",
              "displayName": "Claude-User",
              "provider": "Anthropic",
              "purpose": [
                "user_triggered_retrieval"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "Claude-User",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "no_preference_observed_open",
              "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
            },
            {
              "crawlerSlug": "claudebot",
              "displayName": "ClaudeBot",
              "provider": "Anthropic",
              "purpose": [
                "model_training"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "ClaudeBot",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "no_preference_observed_open",
              "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
            },
            {
              "crawlerSlug": "google-extended",
              "displayName": "Google-Extended",
              "provider": "Google",
              "purpose": [
                "data_use_control"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "Google-Extended",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "no_preference_observed_open",
              "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
            },
            {
              "crawlerSlug": "googlebot",
              "displayName": "Googlebot",
              "provider": "Google",
              "purpose": [
                "general_search"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "Googlebot",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "target_allow_observed_allowed",
              "reason": "The declared goal wants this purpose allowed, and the observed robots.txt rule leaves this crawler explicitly allowed."
            },
            {
              "crawlerSlug": "gptbot",
              "displayName": "GPTBot",
              "provider": "OpenAI",
              "purpose": [
                "model_training"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "GPTBot",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "no_preference_observed_open",
              "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
            },
            {
              "crawlerSlug": "oai-searchbot",
              "displayName": "OAI-SearchBot",
              "provider": "OpenAI",
              "purpose": [
                "search_discovery"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "OAI-SearchBot",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "no_preference_observed_open",
              "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
            },
            {
              "crawlerSlug": "perplexity-user",
              "displayName": "Perplexity-User",
              "provider": "Perplexity",
              "purpose": [
                "user_triggered_retrieval"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "Perplexity-User",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "no_preference_observed_open",
              "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
            },
            {
              "crawlerSlug": "perplexitybot",
              "displayName": "PerplexityBot",
              "provider": "Perplexity",
              "purpose": [
                "search_discovery"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "PerplexityBot",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "no_preference_observed_open",
              "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
            }
          ]
        },
        "review_only": {
          "profileId": "review_only",
          "summary": {
            "total": 12,
            "aligned": 12,
            "conflicting": 0,
            "intentionally_restricted": 0,
            "undocumented": 0,
            "not_determined": 0
          },
          "crawlers": [
            {
              "crawlerSlug": "applebot-extended",
              "displayName": "Applebot-Extended",
              "provider": "Apple",
              "purpose": [
                "data_use_control"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "Applebot-Extended",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "no_preference_observed_open",
              "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
            },
            {
              "crawlerSlug": "applebot",
              "displayName": "Applebot",
              "provider": "Apple",
              "purpose": [
                "search_discovery"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "Applebot",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "no_preference_observed_open",
              "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
            },
            {
              "crawlerSlug": "chatgpt-user",
              "displayName": "ChatGPT-User",
              "provider": "OpenAI",
              "purpose": [
                "user_triggered_retrieval"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "ChatGPT-User",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "no_preference_observed_open",
              "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
            },
            {
              "crawlerSlug": "claude-searchbot",
              "displayName": "Claude-SearchBot",
              "provider": "Anthropic",
              "purpose": [
                "search_discovery"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "Claude-SearchBot",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "no_preference_observed_open",
              "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
            },
            {
              "crawlerSlug": "claude-user",
              "displayName": "Claude-User",
              "provider": "Anthropic",
              "purpose": [
                "user_triggered_retrieval"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "Claude-User",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "no_preference_observed_open",
              "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
            },
            {
              "crawlerSlug": "claudebot",
              "displayName": "ClaudeBot",
              "provider": "Anthropic",
              "purpose": [
                "model_training"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "ClaudeBot",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "no_preference_observed_open",
              "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
            },
            {
              "crawlerSlug": "google-extended",
              "displayName": "Google-Extended",
              "provider": "Google",
              "purpose": [
                "data_use_control"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "Google-Extended",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "no_preference_observed_open",
              "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
            },
            {
              "crawlerSlug": "googlebot",
              "displayName": "Googlebot",
              "provider": "Google",
              "purpose": [
                "general_search"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "Googlebot",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "no_preference_observed_open",
              "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
            },
            {
              "crawlerSlug": "gptbot",
              "displayName": "GPTBot",
              "provider": "OpenAI",
              "purpose": [
                "model_training"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "GPTBot",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "no_preference_observed_open",
              "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
            },
            {
              "crawlerSlug": "oai-searchbot",
              "displayName": "OAI-SearchBot",
              "provider": "OpenAI",
              "purpose": [
                "search_discovery"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "OAI-SearchBot",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "no_preference_observed_open",
              "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
            },
            {
              "crawlerSlug": "perplexity-user",
              "displayName": "Perplexity-User",
              "provider": "Perplexity",
              "purpose": [
                "user_triggered_retrieval"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "Perplexity-User",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "no_preference_observed_open",
              "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
            },
            {
              "crawlerSlug": "perplexitybot",
              "displayName": "PerplexityBot",
              "provider": "Perplexity",
              "purpose": [
                "search_discovery"
              ],
              "purposeConfidence": "documented",
              "robotsToken": "PerplexityBot",
              "hasDedicatedGroup": false,
              "verdict": "allowed",
              "matchedRule": "Allow: /",
              "alignment": "aligned",
              "reasonCode": "no_preference_observed_open",
              "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
            }
          ]
        }
      }
    },
    "results": [
      {
        "crawlerSlug": "applebot-extended",
        "displayName": "Applebot-Extended",
        "provider": "Apple",
        "robotsToken": "Applebot-Extended",
        "purpose": [
          "data_use_control"
        ],
        "purposeConfidence": "documented",
        "relevantToSearchVisibility": "not_direct",
        "officialDocumentationUrl": "https://support.apple.com/en-us/119829",
        "verdict": "allowed",
        "matchedGroup": "*",
        "matchedRule": "Allow: /",
        "sourceLine": 2,
        "hasDedicatedGroup": false,
        "evidence": "observed",
        "meaning": "The tested root path is explicitly allowed for the Applebot-Extended token by the matched robots.txt rule.",
        "doesNotProve": [
          "That this provider has visited the website",
          "That the page is indexed, retrieved, cited, ranked, recommended, or used for model training"
        ]
      },
      {
        "crawlerSlug": "applebot",
        "displayName": "Applebot",
        "provider": "Apple",
        "robotsToken": "Applebot",
        "purpose": [
          "search_discovery"
        ],
        "purposeConfidence": "documented",
        "relevantToSearchVisibility": "direct",
        "officialDocumentationUrl": "https://support.apple.com/en-us/119829",
        "verdict": "allowed",
        "matchedGroup": "*",
        "matchedRule": "Allow: /",
        "sourceLine": 2,
        "hasDedicatedGroup": false,
        "evidence": "observed",
        "meaning": "The tested root path is explicitly allowed for the Applebot token by the matched robots.txt rule.",
        "doesNotProve": [
          "That this provider has visited the website",
          "That the page is indexed, retrieved, cited, ranked, recommended, or used for model training"
        ]
      },
      {
        "crawlerSlug": "chatgpt-user",
        "displayName": "ChatGPT-User",
        "provider": "OpenAI",
        "robotsToken": "ChatGPT-User",
        "purpose": [
          "user_triggered_retrieval"
        ],
        "purposeConfidence": "documented",
        "relevantToSearchVisibility": "indirect",
        "officialDocumentationUrl": "https://help.openai.com/en/articles/12627856-publishers-and-developers-faq",
        "verdict": "allowed",
        "matchedGroup": "*",
        "matchedRule": "Allow: /",
        "sourceLine": 2,
        "hasDedicatedGroup": false,
        "evidence": "observed",
        "meaning": "The tested root path is explicitly allowed for the ChatGPT-User token by the matched robots.txt rule.",
        "doesNotProve": [
          "That this provider has visited the website",
          "That the page is indexed, retrieved, cited, ranked, recommended, or used for model training",
          "OAI-SearchBot discovery or GPTBot model-training crawling.",
          "Whether ChatGPT will answer a question, cite the page, or use a third-party search result."
        ]
      },
      {
        "crawlerSlug": "claude-searchbot",
        "displayName": "Claude-SearchBot",
        "provider": "Anthropic",
        "robotsToken": "Claude-SearchBot",
        "purpose": [
          "search_discovery"
        ],
        "purposeConfidence": "documented",
        "relevantToSearchVisibility": "direct",
        "officialDocumentationUrl": "https://support.anthropic.com/en/articles/8896518-does-anthropic-crawl-data-from-the-web-and-how-can-site-owners-block-the-crawler",
        "verdict": "allowed",
        "matchedGroup": "*",
        "matchedRule": "Allow: /",
        "sourceLine": 2,
        "hasDedicatedGroup": false,
        "evidence": "observed",
        "meaning": "The tested root path is explicitly allowed for the Claude-SearchBot token by the matched robots.txt rule.",
        "doesNotProve": [
          "That this provider has visited the website",
          "That the page is indexed, retrieved, cited, ranked, recommended, or used for model training",
          "ClaudeBot model-training collection.",
          "Claude-User requests made at a user's direction."
        ]
      },
      {
        "crawlerSlug": "claude-user",
        "displayName": "Claude-User",
        "provider": "Anthropic",
        "robotsToken": "Claude-User",
        "purpose": [
          "user_triggered_retrieval"
        ],
        "purposeConfidence": "documented",
        "relevantToSearchVisibility": "indirect",
        "officialDocumentationUrl": "https://support.claude.com/en/articles/8896518-does-anthropic-crawl-data-from-the-web-and-how-can-site-owners-block-the-crawler",
        "verdict": "allowed",
        "matchedGroup": "*",
        "matchedRule": "Allow: /",
        "sourceLine": 2,
        "hasDedicatedGroup": false,
        "evidence": "observed",
        "meaning": "The tested root path is explicitly allowed for the Claude-User token by the matched robots.txt rule.",
        "doesNotProve": [
          "That this provider has visited the website",
          "That the page is indexed, retrieved, cited, ranked, recommended, or used for model training"
        ]
      },
      {
        "crawlerSlug": "claudebot",
        "displayName": "ClaudeBot",
        "provider": "Anthropic",
        "robotsToken": "ClaudeBot",
        "purpose": [
          "model_training"
        ],
        "purposeConfidence": "documented",
        "relevantToSearchVisibility": "not_direct",
        "officialDocumentationUrl": "https://support.claude.com/en/articles/8896518-does-anthropic-crawl-data-from-the-web-and-how-can-site-owners-block-the-crawler",
        "verdict": "allowed",
        "matchedGroup": "*",
        "matchedRule": "Allow: /",
        "sourceLine": 2,
        "hasDedicatedGroup": false,
        "evidence": "observed",
        "meaning": "The tested root path is explicitly allowed for the ClaudeBot token by the matched robots.txt rule.",
        "doesNotProve": [
          "That this provider has visited the website",
          "That the page is indexed, retrieved, cited, ranked, recommended, or used for model training"
        ]
      },
      {
        "crawlerSlug": "google-extended",
        "displayName": "Google-Extended",
        "provider": "Google",
        "robotsToken": "Google-Extended",
        "purpose": [
          "data_use_control"
        ],
        "purposeConfidence": "documented",
        "relevantToSearchVisibility": "not_direct",
        "officialDocumentationUrl": "https://developers.google.com/crawling/docs/crawlers-fetchers/google-common-crawlers#google-extended",
        "verdict": "allowed",
        "matchedGroup": "*",
        "matchedRule": "Allow: /",
        "sourceLine": 2,
        "hasDedicatedGroup": false,
        "evidence": "observed",
        "meaning": "The tested root path is explicitly allowed for the Google-Extended token by the matched robots.txt rule.",
        "doesNotProve": [
          "That this provider has visited the website",
          "That the page is indexed, retrieved, cited, ranked, recommended, or used for model training",
          "Googlebot crawling or a site's inclusion in Google Search.",
          "Eligibility for AI Overviews or AI Mode; Google documents Googlebot and standard Search controls for those features."
        ]
      },
      {
        "crawlerSlug": "googlebot",
        "displayName": "Googlebot",
        "provider": "Google",
        "robotsToken": "Googlebot",
        "purpose": [
          "general_search"
        ],
        "purposeConfidence": "documented",
        "relevantToSearchVisibility": "direct",
        "officialDocumentationUrl": "https://developers.google.com/search/docs/crawling-indexing/googlebot",
        "verdict": "allowed",
        "matchedGroup": "*",
        "matchedRule": "Allow: /",
        "sourceLine": 2,
        "hasDedicatedGroup": false,
        "evidence": "observed",
        "meaning": "The tested root path is explicitly allowed for the Googlebot token by the matched robots.txt rule.",
        "doesNotProve": [
          "That this provider has visited the website",
          "That the page is indexed, retrieved, cited, ranked, recommended, or used for model training"
        ]
      },
      {
        "crawlerSlug": "gptbot",
        "displayName": "GPTBot",
        "provider": "OpenAI",
        "robotsToken": "GPTBot",
        "purpose": [
          "model_training"
        ],
        "purposeConfidence": "documented",
        "relevantToSearchVisibility": "not_direct",
        "officialDocumentationUrl": "https://help.openai.com/en/articles/12627856-publishers-and-developers-faq",
        "verdict": "allowed",
        "matchedGroup": "*",
        "matchedRule": "Allow: /",
        "sourceLine": 2,
        "hasDedicatedGroup": false,
        "evidence": "observed",
        "meaning": "The tested root path is explicitly allowed for the GPTBot token by the matched robots.txt rule.",
        "doesNotProve": [
          "That this provider has visited the website",
          "That the page is indexed, retrieved, cited, ranked, recommended, or used for model training",
          "ChatGPT search discovery; OAI-SearchBot is the separate search crawler token.",
          "User-triggered retrieval through ChatGPT-User."
        ]
      },
      {
        "crawlerSlug": "oai-searchbot",
        "displayName": "OAI-SearchBot",
        "provider": "OpenAI",
        "robotsToken": "OAI-SearchBot",
        "purpose": [
          "search_discovery"
        ],
        "purposeConfidence": "documented",
        "relevantToSearchVisibility": "direct",
        "officialDocumentationUrl": "https://help.openai.com/en/articles/12627856-publishers-and-developers-faq",
        "verdict": "allowed",
        "matchedGroup": "*",
        "matchedRule": "Allow: /",
        "sourceLine": 2,
        "hasDedicatedGroup": false,
        "evidence": "observed",
        "meaning": "The tested root path is explicitly allowed for the OAI-SearchBot token by the matched robots.txt rule.",
        "doesNotProve": [
          "That this provider has visited the website",
          "That the page is indexed, retrieved, cited, ranked, recommended, or used for model training",
          "Potential use of content for model training; GPTBot is the separate token for that policy.",
          "Whether a user-triggered fetch succeeds in every ChatGPT workflow."
        ]
      },
      {
        "crawlerSlug": "perplexity-user",
        "displayName": "Perplexity-User",
        "provider": "Perplexity",
        "robotsToken": "Perplexity-User",
        "purpose": [
          "user_triggered_retrieval"
        ],
        "purposeConfidence": "documented",
        "relevantToSearchVisibility": "indirect",
        "officialDocumentationUrl": "https://docs.perplexity.ai/docs/resources/perplexity-crawlers",
        "verdict": "allowed",
        "matchedGroup": "*",
        "matchedRule": "Allow: /",
        "sourceLine": 2,
        "hasDedicatedGroup": false,
        "evidence": "observed",
        "meaning": "The tested root path is explicitly allowed for the Perplexity-User token by the matched robots.txt rule.",
        "doesNotProve": [
          "That this provider has visited the website",
          "That the page is indexed, retrieved, cited, ranked, recommended, or used for model training"
        ]
      },
      {
        "crawlerSlug": "perplexitybot",
        "displayName": "PerplexityBot",
        "provider": "Perplexity",
        "robotsToken": "PerplexityBot",
        "purpose": [
          "search_discovery"
        ],
        "purposeConfidence": "documented",
        "relevantToSearchVisibility": "direct",
        "officialDocumentationUrl": "https://docs.perplexity.ai/docs/resources/perplexity-crawlers",
        "verdict": "allowed",
        "matchedGroup": "*",
        "matchedRule": "Allow: /",
        "sourceLine": 2,
        "hasDedicatedGroup": false,
        "evidence": "observed",
        "meaning": "The tested root path is explicitly allowed for the PerplexityBot token by the matched robots.txt rule.",
        "doesNotProve": [
          "That this provider has visited the website",
          "That the page is indexed, retrieved, cited, ranked, recommended, or used for model training",
          "Perplexity-User requests initiated by a person using the product.",
          "Whether a page will be indexed, selected, quoted, ranked, or cited in an answer."
        ]
      }
    ],
    "unifiedReport": {
      "schemaVersion": "ofb-audit-r2.1",
      "engineVersion": "ofb-evidence-r1-2026-08-02",
      "auditId": "303bafcd-9eac-4111-a702-59ec9efc462f",
      "generatedAt": "2026-10-02T20:44:48.711Z",
      "status": "complete",
      "noScore": true,
      "capabilitySummaries": [
        {
          "capability": "robots_policy",
          "dimension": "access",
          "status": "strong",
          "label": "Policy inspected",
          "strengths": [
            "Crawler policy was retrieved and evaluated."
          ],
          "findingIds": [
            "finding.robots_policy.policy-inspected"
          ]
        },
        {
          "capability": "public_html",
          "dimension": "access",
          "status": "strong",
          "label": "Strong foundation",
          "strengths": [
            "Substantial readable content is present in the initial response."
          ],
          "findingIds": []
        },
        {
          "capability": "business_clarity",
          "dimension": "content",
          "status": "strong",
          "label": "Clear signals",
          "strengths": [
            "6 clarity signals were clear."
          ],
          "findingIds": []
        },
        {
          "capability": "structured_data",
          "dimension": "structure",
          "status": "strong",
          "label": "Valid structure",
          "strengths": [
            "2 valid JSON-LD blocks found."
          ],
          "findingIds": []
        },
        {
          "capability": "llms_txt",
          "dimension": "structure",
          "status": "strong",
          "label": "Present and readable",
          "strengths": [
            "The optional llms.txt file was retrieved and parsed."
          ],
          "findingIds": []
        },
        {
          "capability": "entity_trust",
          "dimension": "identity_trust",
          "status": "strong",
          "label": "Coherent signals",
          "strengths": [
            "2 primary identity entities found."
          ],
          "findingIds": []
        }
      ],
      "policyGoalAlignment": {
        "rulesVersion": "ofb-policy-alignment-r1-2026-08-07",
        "status": "available",
        "profiles": [
          {
            "id": "maximum_visibility",
            "label": "Maximum visibility",
            "summary": "Allow search discovery, general search, user-triggered retrieval, and model training or data-use crawlers."
          },
          {
            "id": "search_visibility_balanced",
            "label": "Search visibility, training opt-out",
            "summary": "Allow search discovery, general search, and user-triggered retrieval while blocking model-training and data-use crawlers."
          },
          {
            "id": "training_opt_out",
            "label": "Training and data-use opt-out",
            "summary": "Block model-training and data-use crawlers without asserting a preference on search or user-triggered retrieval."
          },
          {
            "id": "user_triggered_retrieval_only",
            "label": "User-triggered retrieval only",
            "summary": "Allow retrieval initiated by a user's own request in an assistant, without asserting a preference on background discovery or training."
          },
          {
            "id": "conventional_search_preserved",
            "label": "Conventional search preserved",
            "summary": "Keep conventional general-search crawling allowed without asserting a preference on AI-specific discovery, retrieval, or training crawlers."
          },
          {
            "id": "review_only",
            "label": "Review only",
            "summary": "Record the current crawler policy without recommending a change to any purpose category."
          }
        ],
        "byProfile": {
          "maximum_visibility": {
            "profileId": "maximum_visibility",
            "summary": {
              "total": 12,
              "aligned": 12,
              "conflicting": 0,
              "intentionally_restricted": 0,
              "undocumented": 0,
              "not_determined": 0
            },
            "crawlers": [
              {
                "crawlerSlug": "applebot-extended",
                "displayName": "Applebot-Extended",
                "provider": "Apple",
                "purpose": [
                  "data_use_control"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "Applebot-Extended",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "target_allow_observed_allowed",
                "reason": "The declared goal wants this purpose allowed, and the observed robots.txt rule leaves this crawler explicitly allowed."
              },
              {
                "crawlerSlug": "applebot",
                "displayName": "Applebot",
                "provider": "Apple",
                "purpose": [
                  "search_discovery"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "Applebot",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "target_allow_observed_allowed",
                "reason": "The declared goal wants this purpose allowed, and the observed robots.txt rule leaves this crawler explicitly allowed."
              },
              {
                "crawlerSlug": "chatgpt-user",
                "displayName": "ChatGPT-User",
                "provider": "OpenAI",
                "purpose": [
                  "user_triggered_retrieval"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "ChatGPT-User",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "target_allow_observed_allowed",
                "reason": "The declared goal wants this purpose allowed, and the observed robots.txt rule leaves this crawler explicitly allowed."
              },
              {
                "crawlerSlug": "claude-searchbot",
                "displayName": "Claude-SearchBot",
                "provider": "Anthropic",
                "purpose": [
                  "search_discovery"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "Claude-SearchBot",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "target_allow_observed_allowed",
                "reason": "The declared goal wants this purpose allowed, and the observed robots.txt rule leaves this crawler explicitly allowed."
              },
              {
                "crawlerSlug": "claude-user",
                "displayName": "Claude-User",
                "provider": "Anthropic",
                "purpose": [
                  "user_triggered_retrieval"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "Claude-User",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "target_allow_observed_allowed",
                "reason": "The declared goal wants this purpose allowed, and the observed robots.txt rule leaves this crawler explicitly allowed."
              },
              {
                "crawlerSlug": "claudebot",
                "displayName": "ClaudeBot",
                "provider": "Anthropic",
                "purpose": [
                  "model_training"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "ClaudeBot",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "target_allow_observed_allowed",
                "reason": "The declared goal wants this purpose allowed, and the observed robots.txt rule leaves this crawler explicitly allowed."
              },
              {
                "crawlerSlug": "google-extended",
                "displayName": "Google-Extended",
                "provider": "Google",
                "purpose": [
                  "data_use_control"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "Google-Extended",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "target_allow_observed_allowed",
                "reason": "The declared goal wants this purpose allowed, and the observed robots.txt rule leaves this crawler explicitly allowed."
              },
              {
                "crawlerSlug": "googlebot",
                "displayName": "Googlebot",
                "provider": "Google",
                "purpose": [
                  "general_search"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "Googlebot",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "target_allow_observed_allowed",
                "reason": "The declared goal wants this purpose allowed, and the observed robots.txt rule leaves this crawler explicitly allowed."
              },
              {
                "crawlerSlug": "gptbot",
                "displayName": "GPTBot",
                "provider": "OpenAI",
                "purpose": [
                  "model_training"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "GPTBot",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "target_allow_observed_allowed",
                "reason": "The declared goal wants this purpose allowed, and the observed robots.txt rule leaves this crawler explicitly allowed."
              },
              {
                "crawlerSlug": "oai-searchbot",
                "displayName": "OAI-SearchBot",
                "provider": "OpenAI",
                "purpose": [
                  "search_discovery"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "OAI-SearchBot",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "target_allow_observed_allowed",
                "reason": "The declared goal wants this purpose allowed, and the observed robots.txt rule leaves this crawler explicitly allowed."
              },
              {
                "crawlerSlug": "perplexity-user",
                "displayName": "Perplexity-User",
                "provider": "Perplexity",
                "purpose": [
                  "user_triggered_retrieval"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "Perplexity-User",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "target_allow_observed_allowed",
                "reason": "The declared goal wants this purpose allowed, and the observed robots.txt rule leaves this crawler explicitly allowed."
              },
              {
                "crawlerSlug": "perplexitybot",
                "displayName": "PerplexityBot",
                "provider": "Perplexity",
                "purpose": [
                  "search_discovery"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "PerplexityBot",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "target_allow_observed_allowed",
                "reason": "The declared goal wants this purpose allowed, and the observed robots.txt rule leaves this crawler explicitly allowed."
              }
            ]
          },
          "search_visibility_balanced": {
            "profileId": "search_visibility_balanced",
            "summary": {
              "total": 12,
              "aligned": 8,
              "conflicting": 4,
              "intentionally_restricted": 0,
              "undocumented": 0,
              "not_determined": 0
            },
            "crawlers": [
              {
                "crawlerSlug": "applebot-extended",
                "displayName": "Applebot-Extended",
                "provider": "Apple",
                "purpose": [
                  "data_use_control"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "Applebot-Extended",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "conflicting",
                "reasonCode": "target_block_observed_allowed",
                "reason": "The declared goal wants this purpose blocked, but the observed robots.txt rule leaves this crawler explicitly allowed."
              },
              {
                "crawlerSlug": "applebot",
                "displayName": "Applebot",
                "provider": "Apple",
                "purpose": [
                  "search_discovery"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "Applebot",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "target_allow_observed_allowed",
                "reason": "The declared goal wants this purpose allowed, and the observed robots.txt rule leaves this crawler explicitly allowed."
              },
              {
                "crawlerSlug": "chatgpt-user",
                "displayName": "ChatGPT-User",
                "provider": "OpenAI",
                "purpose": [
                  "user_triggered_retrieval"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "ChatGPT-User",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "target_allow_observed_allowed",
                "reason": "The declared goal wants this purpose allowed, and the observed robots.txt rule leaves this crawler explicitly allowed."
              },
              {
                "crawlerSlug": "claude-searchbot",
                "displayName": "Claude-SearchBot",
                "provider": "Anthropic",
                "purpose": [
                  "search_discovery"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "Claude-SearchBot",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "target_allow_observed_allowed",
                "reason": "The declared goal wants this purpose allowed, and the observed robots.txt rule leaves this crawler explicitly allowed."
              },
              {
                "crawlerSlug": "claude-user",
                "displayName": "Claude-User",
                "provider": "Anthropic",
                "purpose": [
                  "user_triggered_retrieval"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "Claude-User",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "target_allow_observed_allowed",
                "reason": "The declared goal wants this purpose allowed, and the observed robots.txt rule leaves this crawler explicitly allowed."
              },
              {
                "crawlerSlug": "claudebot",
                "displayName": "ClaudeBot",
                "provider": "Anthropic",
                "purpose": [
                  "model_training"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "ClaudeBot",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "conflicting",
                "reasonCode": "target_block_observed_allowed",
                "reason": "The declared goal wants this purpose blocked, but the observed robots.txt rule leaves this crawler explicitly allowed."
              },
              {
                "crawlerSlug": "google-extended",
                "displayName": "Google-Extended",
                "provider": "Google",
                "purpose": [
                  "data_use_control"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "Google-Extended",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "conflicting",
                "reasonCode": "target_block_observed_allowed",
                "reason": "The declared goal wants this purpose blocked, but the observed robots.txt rule leaves this crawler explicitly allowed."
              },
              {
                "crawlerSlug": "googlebot",
                "displayName": "Googlebot",
                "provider": "Google",
                "purpose": [
                  "general_search"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "Googlebot",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "target_allow_observed_allowed",
                "reason": "The declared goal wants this purpose allowed, and the observed robots.txt rule leaves this crawler explicitly allowed."
              },
              {
                "crawlerSlug": "gptbot",
                "displayName": "GPTBot",
                "provider": "OpenAI",
                "purpose": [
                  "model_training"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "GPTBot",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "conflicting",
                "reasonCode": "target_block_observed_allowed",
                "reason": "The declared goal wants this purpose blocked, but the observed robots.txt rule leaves this crawler explicitly allowed."
              },
              {
                "crawlerSlug": "oai-searchbot",
                "displayName": "OAI-SearchBot",
                "provider": "OpenAI",
                "purpose": [
                  "search_discovery"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "OAI-SearchBot",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "target_allow_observed_allowed",
                "reason": "The declared goal wants this purpose allowed, and the observed robots.txt rule leaves this crawler explicitly allowed."
              },
              {
                "crawlerSlug": "perplexity-user",
                "displayName": "Perplexity-User",
                "provider": "Perplexity",
                "purpose": [
                  "user_triggered_retrieval"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "Perplexity-User",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "target_allow_observed_allowed",
                "reason": "The declared goal wants this purpose allowed, and the observed robots.txt rule leaves this crawler explicitly allowed."
              },
              {
                "crawlerSlug": "perplexitybot",
                "displayName": "PerplexityBot",
                "provider": "Perplexity",
                "purpose": [
                  "search_discovery"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "PerplexityBot",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "target_allow_observed_allowed",
                "reason": "The declared goal wants this purpose allowed, and the observed robots.txt rule leaves this crawler explicitly allowed."
              }
            ]
          },
          "training_opt_out": {
            "profileId": "training_opt_out",
            "summary": {
              "total": 12,
              "aligned": 8,
              "conflicting": 4,
              "intentionally_restricted": 0,
              "undocumented": 0,
              "not_determined": 0
            },
            "crawlers": [
              {
                "crawlerSlug": "applebot-extended",
                "displayName": "Applebot-Extended",
                "provider": "Apple",
                "purpose": [
                  "data_use_control"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "Applebot-Extended",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "conflicting",
                "reasonCode": "target_block_observed_allowed",
                "reason": "The declared goal wants this purpose blocked, but the observed robots.txt rule leaves this crawler explicitly allowed."
              },
              {
                "crawlerSlug": "applebot",
                "displayName": "Applebot",
                "provider": "Apple",
                "purpose": [
                  "search_discovery"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "Applebot",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "no_preference_observed_open",
                "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
              },
              {
                "crawlerSlug": "chatgpt-user",
                "displayName": "ChatGPT-User",
                "provider": "OpenAI",
                "purpose": [
                  "user_triggered_retrieval"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "ChatGPT-User",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "no_preference_observed_open",
                "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
              },
              {
                "crawlerSlug": "claude-searchbot",
                "displayName": "Claude-SearchBot",
                "provider": "Anthropic",
                "purpose": [
                  "search_discovery"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "Claude-SearchBot",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "no_preference_observed_open",
                "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
              },
              {
                "crawlerSlug": "claude-user",
                "displayName": "Claude-User",
                "provider": "Anthropic",
                "purpose": [
                  "user_triggered_retrieval"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "Claude-User",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "no_preference_observed_open",
                "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
              },
              {
                "crawlerSlug": "claudebot",
                "displayName": "ClaudeBot",
                "provider": "Anthropic",
                "purpose": [
                  "model_training"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "ClaudeBot",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "conflicting",
                "reasonCode": "target_block_observed_allowed",
                "reason": "The declared goal wants this purpose blocked, but the observed robots.txt rule leaves this crawler explicitly allowed."
              },
              {
                "crawlerSlug": "google-extended",
                "displayName": "Google-Extended",
                "provider": "Google",
                "purpose": [
                  "data_use_control"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "Google-Extended",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "conflicting",
                "reasonCode": "target_block_observed_allowed",
                "reason": "The declared goal wants this purpose blocked, but the observed robots.txt rule leaves this crawler explicitly allowed."
              },
              {
                "crawlerSlug": "googlebot",
                "displayName": "Googlebot",
                "provider": "Google",
                "purpose": [
                  "general_search"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "Googlebot",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "no_preference_observed_open",
                "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
              },
              {
                "crawlerSlug": "gptbot",
                "displayName": "GPTBot",
                "provider": "OpenAI",
                "purpose": [
                  "model_training"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "GPTBot",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "conflicting",
                "reasonCode": "target_block_observed_allowed",
                "reason": "The declared goal wants this purpose blocked, but the observed robots.txt rule leaves this crawler explicitly allowed."
              },
              {
                "crawlerSlug": "oai-searchbot",
                "displayName": "OAI-SearchBot",
                "provider": "OpenAI",
                "purpose": [
                  "search_discovery"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "OAI-SearchBot",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "no_preference_observed_open",
                "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
              },
              {
                "crawlerSlug": "perplexity-user",
                "displayName": "Perplexity-User",
                "provider": "Perplexity",
                "purpose": [
                  "user_triggered_retrieval"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "Perplexity-User",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "no_preference_observed_open",
                "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
              },
              {
                "crawlerSlug": "perplexitybot",
                "displayName": "PerplexityBot",
                "provider": "Perplexity",
                "purpose": [
                  "search_discovery"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "PerplexityBot",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "no_preference_observed_open",
                "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
              }
            ]
          },
          "user_triggered_retrieval_only": {
            "profileId": "user_triggered_retrieval_only",
            "summary": {
              "total": 12,
              "aligned": 12,
              "conflicting": 0,
              "intentionally_restricted": 0,
              "undocumented": 0,
              "not_determined": 0
            },
            "crawlers": [
              {
                "crawlerSlug": "applebot-extended",
                "displayName": "Applebot-Extended",
                "provider": "Apple",
                "purpose": [
                  "data_use_control"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "Applebot-Extended",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "no_preference_observed_open",
                "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
              },
              {
                "crawlerSlug": "applebot",
                "displayName": "Applebot",
                "provider": "Apple",
                "purpose": [
                  "search_discovery"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "Applebot",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "no_preference_observed_open",
                "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
              },
              {
                "crawlerSlug": "chatgpt-user",
                "displayName": "ChatGPT-User",
                "provider": "OpenAI",
                "purpose": [
                  "user_triggered_retrieval"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "ChatGPT-User",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "target_allow_observed_allowed",
                "reason": "The declared goal wants this purpose allowed, and the observed robots.txt rule leaves this crawler explicitly allowed."
              },
              {
                "crawlerSlug": "claude-searchbot",
                "displayName": "Claude-SearchBot",
                "provider": "Anthropic",
                "purpose": [
                  "search_discovery"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "Claude-SearchBot",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "no_preference_observed_open",
                "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
              },
              {
                "crawlerSlug": "claude-user",
                "displayName": "Claude-User",
                "provider": "Anthropic",
                "purpose": [
                  "user_triggered_retrieval"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "Claude-User",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "target_allow_observed_allowed",
                "reason": "The declared goal wants this purpose allowed, and the observed robots.txt rule leaves this crawler explicitly allowed."
              },
              {
                "crawlerSlug": "claudebot",
                "displayName": "ClaudeBot",
                "provider": "Anthropic",
                "purpose": [
                  "model_training"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "ClaudeBot",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "no_preference_observed_open",
                "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
              },
              {
                "crawlerSlug": "google-extended",
                "displayName": "Google-Extended",
                "provider": "Google",
                "purpose": [
                  "data_use_control"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "Google-Extended",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "no_preference_observed_open",
                "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
              },
              {
                "crawlerSlug": "googlebot",
                "displayName": "Googlebot",
                "provider": "Google",
                "purpose": [
                  "general_search"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "Googlebot",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "no_preference_observed_open",
                "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
              },
              {
                "crawlerSlug": "gptbot",
                "displayName": "GPTBot",
                "provider": "OpenAI",
                "purpose": [
                  "model_training"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "GPTBot",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "no_preference_observed_open",
                "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
              },
              {
                "crawlerSlug": "oai-searchbot",
                "displayName": "OAI-SearchBot",
                "provider": "OpenAI",
                "purpose": [
                  "search_discovery"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "OAI-SearchBot",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "no_preference_observed_open",
                "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
              },
              {
                "crawlerSlug": "perplexity-user",
                "displayName": "Perplexity-User",
                "provider": "Perplexity",
                "purpose": [
                  "user_triggered_retrieval"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "Perplexity-User",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "target_allow_observed_allowed",
                "reason": "The declared goal wants this purpose allowed, and the observed robots.txt rule leaves this crawler explicitly allowed."
              },
              {
                "crawlerSlug": "perplexitybot",
                "displayName": "PerplexityBot",
                "provider": "Perplexity",
                "purpose": [
                  "search_discovery"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "PerplexityBot",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "no_preference_observed_open",
                "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
              }
            ]
          },
          "conventional_search_preserved": {
            "profileId": "conventional_search_preserved",
            "summary": {
              "total": 12,
              "aligned": 12,
              "conflicting": 0,
              "intentionally_restricted": 0,
              "undocumented": 0,
              "not_determined": 0
            },
            "crawlers": [
              {
                "crawlerSlug": "applebot-extended",
                "displayName": "Applebot-Extended",
                "provider": "Apple",
                "purpose": [
                  "data_use_control"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "Applebot-Extended",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "no_preference_observed_open",
                "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
              },
              {
                "crawlerSlug": "applebot",
                "displayName": "Applebot",
                "provider": "Apple",
                "purpose": [
                  "search_discovery"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "Applebot",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "no_preference_observed_open",
                "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
              },
              {
                "crawlerSlug": "chatgpt-user",
                "displayName": "ChatGPT-User",
                "provider": "OpenAI",
                "purpose": [
                  "user_triggered_retrieval"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "ChatGPT-User",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "no_preference_observed_open",
                "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
              },
              {
                "crawlerSlug": "claude-searchbot",
                "displayName": "Claude-SearchBot",
                "provider": "Anthropic",
                "purpose": [
                  "search_discovery"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "Claude-SearchBot",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "no_preference_observed_open",
                "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
              },
              {
                "crawlerSlug": "claude-user",
                "displayName": "Claude-User",
                "provider": "Anthropic",
                "purpose": [
                  "user_triggered_retrieval"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "Claude-User",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "no_preference_observed_open",
                "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
              },
              {
                "crawlerSlug": "claudebot",
                "displayName": "ClaudeBot",
                "provider": "Anthropic",
                "purpose": [
                  "model_training"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "ClaudeBot",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "no_preference_observed_open",
                "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
              },
              {
                "crawlerSlug": "google-extended",
                "displayName": "Google-Extended",
                "provider": "Google",
                "purpose": [
                  "data_use_control"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "Google-Extended",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "no_preference_observed_open",
                "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
              },
              {
                "crawlerSlug": "googlebot",
                "displayName": "Googlebot",
                "provider": "Google",
                "purpose": [
                  "general_search"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "Googlebot",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "target_allow_observed_allowed",
                "reason": "The declared goal wants this purpose allowed, and the observed robots.txt rule leaves this crawler explicitly allowed."
              },
              {
                "crawlerSlug": "gptbot",
                "displayName": "GPTBot",
                "provider": "OpenAI",
                "purpose": [
                  "model_training"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "GPTBot",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "no_preference_observed_open",
                "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
              },
              {
                "crawlerSlug": "oai-searchbot",
                "displayName": "OAI-SearchBot",
                "provider": "OpenAI",
                "purpose": [
                  "search_discovery"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "OAI-SearchBot",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "no_preference_observed_open",
                "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
              },
              {
                "crawlerSlug": "perplexity-user",
                "displayName": "Perplexity-User",
                "provider": "Perplexity",
                "purpose": [
                  "user_triggered_retrieval"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "Perplexity-User",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "no_preference_observed_open",
                "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
              },
              {
                "crawlerSlug": "perplexitybot",
                "displayName": "PerplexityBot",
                "provider": "Perplexity",
                "purpose": [
                  "search_discovery"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "PerplexityBot",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "no_preference_observed_open",
                "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
              }
            ]
          },
          "review_only": {
            "profileId": "review_only",
            "summary": {
              "total": 12,
              "aligned": 12,
              "conflicting": 0,
              "intentionally_restricted": 0,
              "undocumented": 0,
              "not_determined": 0
            },
            "crawlers": [
              {
                "crawlerSlug": "applebot-extended",
                "displayName": "Applebot-Extended",
                "provider": "Apple",
                "purpose": [
                  "data_use_control"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "Applebot-Extended",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "no_preference_observed_open",
                "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
              },
              {
                "crawlerSlug": "applebot",
                "displayName": "Applebot",
                "provider": "Apple",
                "purpose": [
                  "search_discovery"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "Applebot",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "no_preference_observed_open",
                "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
              },
              {
                "crawlerSlug": "chatgpt-user",
                "displayName": "ChatGPT-User",
                "provider": "OpenAI",
                "purpose": [
                  "user_triggered_retrieval"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "ChatGPT-User",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "no_preference_observed_open",
                "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
              },
              {
                "crawlerSlug": "claude-searchbot",
                "displayName": "Claude-SearchBot",
                "provider": "Anthropic",
                "purpose": [
                  "search_discovery"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "Claude-SearchBot",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "no_preference_observed_open",
                "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
              },
              {
                "crawlerSlug": "claude-user",
                "displayName": "Claude-User",
                "provider": "Anthropic",
                "purpose": [
                  "user_triggered_retrieval"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "Claude-User",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "no_preference_observed_open",
                "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
              },
              {
                "crawlerSlug": "claudebot",
                "displayName": "ClaudeBot",
                "provider": "Anthropic",
                "purpose": [
                  "model_training"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "ClaudeBot",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "no_preference_observed_open",
                "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
              },
              {
                "crawlerSlug": "google-extended",
                "displayName": "Google-Extended",
                "provider": "Google",
                "purpose": [
                  "data_use_control"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "Google-Extended",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "no_preference_observed_open",
                "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
              },
              {
                "crawlerSlug": "googlebot",
                "displayName": "Googlebot",
                "provider": "Google",
                "purpose": [
                  "general_search"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "Googlebot",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "no_preference_observed_open",
                "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
              },
              {
                "crawlerSlug": "gptbot",
                "displayName": "GPTBot",
                "provider": "OpenAI",
                "purpose": [
                  "model_training"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "GPTBot",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "no_preference_observed_open",
                "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
              },
              {
                "crawlerSlug": "oai-searchbot",
                "displayName": "OAI-SearchBot",
                "provider": "OpenAI",
                "purpose": [
                  "search_discovery"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "OAI-SearchBot",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "no_preference_observed_open",
                "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
              },
              {
                "crawlerSlug": "perplexity-user",
                "displayName": "Perplexity-User",
                "provider": "Perplexity",
                "purpose": [
                  "user_triggered_retrieval"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "Perplexity-User",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "no_preference_observed_open",
                "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
              },
              {
                "crawlerSlug": "perplexitybot",
                "displayName": "PerplexityBot",
                "provider": "Perplexity",
                "purpose": [
                  "search_discovery"
                ],
                "purposeConfidence": "documented",
                "robotsToken": "PerplexityBot",
                "hasDedicatedGroup": false,
                "verdict": "allowed",
                "matchedRule": "Allow: /",
                "alignment": "aligned",
                "reasonCode": "no_preference_observed_open",
                "reason": "No target state was declared for this purpose, and the crawler is explicitly allowed."
              }
            ]
          }
        }
      },
      "deliveryDiagnostics": {
        "rulesVersion": "ofb-delivery-diagnostics-r1-2026-08-07",
        "status": "not_requested",
        "requestProfiles": [],
        "paths": [],
        "invalidPaths": [],
        "limitations": []
      },
      "remediation": {
        "rulesVersion": "ofb-remediation-r1-2026-08-07",
        "robotsGoalPatches": {
          "search_visibility_balanced": [
            {
              "crawlerSlug": "applebot-extended",
              "robotsToken": "Applebot-Extended",
              "patchable": true,
              "snippet": "User-agent: Applebot-Extended\nDisallow: /",
              "explanation": "Applebot-Extended currently has no dedicated robots.txt group, so it falls back to the wildcard rule. Appending this group makes it explicitly blocked, matching the selected policy goal, without changing any existing directive."
            },
            {
              "crawlerSlug": "claudebot",
              "robotsToken": "ClaudeBot",
              "patchable": true,
              "snippet": "User-agent: ClaudeBot\nDisallow: /",
              "explanation": "ClaudeBot currently has no dedicated robots.txt group, so it falls back to the wildcard rule. Appending this group makes it explicitly blocked, matching the selected policy goal, without changing any existing directive."
            },
            {
              "crawlerSlug": "google-extended",
              "robotsToken": "Google-Extended",
              "patchable": true,
              "snippet": "User-agent: Google-Extended\nDisallow: /",
              "explanation": "Google-Extended currently has no dedicated robots.txt group, so it falls back to the wildcard rule. Appending this group makes it explicitly blocked, matching the selected policy goal, without changing any existing directive."
            },
            {
              "crawlerSlug": "gptbot",
              "robotsToken": "GPTBot",
              "patchable": true,
              "snippet": "User-agent: GPTBot\nDisallow: /",
              "explanation": "GPTBot currently has no dedicated robots.txt group, so it falls back to the wildcard rule. Appending this group makes it explicitly blocked, matching the selected policy goal, without changing any existing directive."
            }
          ],
          "training_opt_out": [
            {
              "crawlerSlug": "applebot-extended",
              "robotsToken": "Applebot-Extended",
              "patchable": true,
              "snippet": "User-agent: Applebot-Extended\nDisallow: /",
              "explanation": "Applebot-Extended currently has no dedicated robots.txt group, so it falls back to the wildcard rule. Appending this group makes it explicitly blocked, matching the selected policy goal, without changing any existing directive."
            },
            {
              "crawlerSlug": "claudebot",
              "robotsToken": "ClaudeBot",
              "patchable": true,
              "snippet": "User-agent: ClaudeBot\nDisallow: /",
              "explanation": "ClaudeBot currently has no dedicated robots.txt group, so it falls back to the wildcard rule. Appending this group makes it explicitly blocked, matching the selected policy goal, without changing any existing directive."
            },
            {
              "crawlerSlug": "google-extended",
              "robotsToken": "Google-Extended",
              "patchable": true,
              "snippet": "User-agent: Google-Extended\nDisallow: /",
              "explanation": "Google-Extended currently has no dedicated robots.txt group, so it falls back to the wildcard rule. Appending this group makes it explicitly blocked, matching the selected policy goal, without changing any existing directive."
            },
            {
              "crawlerSlug": "gptbot",
              "robotsToken": "GPTBot",
              "patchable": true,
              "snippet": "User-agent: GPTBot\nDisallow: /",
              "explanation": "GPTBot currently has no dedicated robots.txt group, so it falls back to the wildcard rule. Appending this group makes it explicitly blocked, matching the selected policy goal, without changing any existing directive."
            }
          ]
        },
        "deliveryGuidance": [],
        "llmsTxtGuidance": []
      },
      "observations": [
        {
          "id": "obs.business_clarity.clear-count",
          "capability": "business_clarity",
          "dimension": "content",
          "evidence": "heuristic",
          "value": 6,
          "source": null
        },
        {
          "id": "obs.business_clarity.limited-count",
          "capability": "business_clarity",
          "dimension": "content",
          "evidence": "heuristic",
          "value": 0,
          "source": null
        },
        {
          "id": "obs.business_clarity.missing-count",
          "capability": "business_clarity",
          "dimension": "content",
          "evidence": "heuristic",
          "value": 0,
          "source": null
        },
        {
          "id": "obs.business_clarity.status",
          "capability": "business_clarity",
          "dimension": "content",
          "evidence": "heuristic",
          "value": "available",
          "source": "https://invoicecraftly.com/"
        },
        {
          "id": "obs.entity_trust.opportunity-count",
          "capability": "entity_trust",
          "dimension": "identity_trust",
          "evidence": "observed",
          "value": 0,
          "source": null
        },
        {
          "id": "obs.entity_trust.primary-count",
          "capability": "entity_trust",
          "dimension": "identity_trust",
          "evidence": "observed",
          "value": 2,
          "source": null
        },
        {
          "id": "obs.entity_trust.status",
          "capability": "entity_trust",
          "dimension": "identity_trust",
          "evidence": "observed",
          "value": "available",
          "source": "https://invoicecraftly.com/"
        },
        {
          "id": "obs.entity_trust.warning-count",
          "capability": "entity_trust",
          "dimension": "identity_trust",
          "evidence": "observed",
          "value": 0,
          "source": null
        },
        {
          "id": "obs.llms_txt.opportunity-count",
          "capability": "llms_txt",
          "dimension": "structure",
          "evidence": "observed",
          "value": 0,
          "source": null
        },
        {
          "id": "obs.llms_txt.status",
          "capability": "llms_txt",
          "dimension": "structure",
          "evidence": "observed",
          "value": "available",
          "source": "https://invoicecraftly.com/llms.txt"
        },
        {
          "id": "obs.llms_txt.warning-count",
          "capability": "llms_txt",
          "dimension": "structure",
          "evidence": "observed",
          "value": 0,
          "source": null
        },
        {
          "id": "obs.public_html.http-status",
          "capability": "public_html",
          "dimension": "access",
          "evidence": "observed",
          "value": 200,
          "source": "https://invoicecraftly.com/"
        },
        {
          "id": "obs.public_html.meaningful-content",
          "capability": "public_html",
          "dimension": "access",
          "evidence": "heuristic",
          "value": true,
          "source": "https://invoicecraftly.com/"
        },
        {
          "id": "obs.public_html.status",
          "capability": "public_html",
          "dimension": "access",
          "evidence": "observed",
          "value": "available",
          "source": "https://invoicecraftly.com/"
        },
        {
          "id": "obs.public_html.word-count",
          "capability": "public_html",
          "dimension": "access",
          "evidence": "heuristic",
          "value": 1477,
          "source": "https://invoicecraftly.com/"
        },
        {
          "id": "obs.robots_policy.blocked-count",
          "capability": "robots_policy",
          "dimension": "access",
          "evidence": "observed",
          "value": 0,
          "source": "https://invoicecraftly.com/robots.txt"
        },
        {
          "id": "obs.robots_policy.search-blocked-count",
          "capability": "robots_policy",
          "dimension": "access",
          "evidence": "observed",
          "value": 0,
          "source": "https://invoicecraftly.com/robots.txt"
        },
        {
          "id": "obs.robots_policy.status",
          "capability": "robots_policy",
          "dimension": "access",
          "evidence": "observed",
          "value": "available",
          "source": "https://invoicecraftly.com/robots.txt"
        },
        {
          "id": "obs.structured_data.entity-count",
          "capability": "structured_data",
          "dimension": "structure",
          "evidence": "observed",
          "value": 6,
          "source": null
        },
        {
          "id": "obs.structured_data.fail-count",
          "capability": "structured_data",
          "dimension": "structure",
          "evidence": "observed",
          "value": 0,
          "source": null
        },
        {
          "id": "obs.structured_data.malformed-count",
          "capability": "structured_data",
          "dimension": "structure",
          "evidence": "observed",
          "value": 0,
          "source": null
        },
        {
          "id": "obs.structured_data.status",
          "capability": "structured_data",
          "dimension": "structure",
          "evidence": "observed",
          "value": "available",
          "source": "https://invoicecraftly.com/"
        },
        {
          "id": "obs.structured_data.warning-count",
          "capability": "structured_data",
          "dimension": "structure",
          "evidence": "observed",
          "value": 0,
          "source": null
        }
      ],
      "findings": [
        {
          "id": "finding.robots_policy.policy-inspected",
          "findingId": "finding.robots_policy.policy-inspected",
          "capability": "robots_policy",
          "category": "access",
          "criterionId": "ROBOTS-SEARCH-ACCESS-001",
          "criterion": {
            "id": "ROBOTS-SEARCH-ACCESS-001",
            "version": "1.0.0",
            "title": "Search-relevant crawler token is not explicitly denied for the tested path",
            "description": "Evaluates the robots.txt group and rule that applies to a documented crawler token for the tested public path.",
            "passCondition": "No applicable blocking Disallow rule is matched for the tested crawler token and path.",
            "failCondition": "An applicable robots.txt Disallow rule blocks the tested crawler token and path.",
            "unknownCondition": "The robots resource cannot be retrieved or the applicable policy cannot be determined.",
            "limitations": [
              "A robots policy instruction does not prove that the provider has visited the site.",
              "An allowed result does not prove indexing, retrieval, citation, ranking, recommendation or model use.",
              "A blocked result does not prove the provider would otherwise have used the content."
            ]
          },
          "status": "pass",
          "resultStatus": "pass",
          "verificationStatus": "not_started",
          "title": "Crawler policy was inspected",
          "meaning": "No current search-relevant crawler restriction requiring action was identified for the tested root path.",
          "observedFact": "12 registered crawler tokens were evaluated against the root path and no search-relevant crawler was found blocked.",
          "interpretation": "No current search-relevant crawler restriction requiring action was identified for the tested root path.",
          "limitation": "An allowed or unrestricted robots result does not prove provider crawling, indexing, retrieval, citation, ranking, recommendation or model use.",
          "doesNotProve": [
            "An allowed or unrestricted robots result does not prove provider crawling, indexing, retrieval, citation, ranking, recommendation or model use."
          ],
          "severity": "info",
          "confidence": "high",
          "evidenceTypes": [
            "observed"
          ],
          "evidenceIds": [
            "obs.robots_policy.status",
            "obs.robots_policy.blocked-count"
          ],
          "targetHostname": "invoicecraftly.com",
          "targetUrl": "https://invoicecraftly.com/robots.txt",
          "resourceType": "robots.txt",
          "testedUserAgent": null,
          "checkTimestamp": "2026-10-02T20:44:48.711Z",
          "auditId": null,
          "request": {
            "method": "GET",
            "url": "https://invoicecraftly.com/robots.txt"
          },
          "response": {
            "statusCode": 200
          },
          "rawEvidence": "0 search-relevant crawler restrictions observed",
          "evidenceLocation": "root robots.txt resource",
          "providerRelevance": null,
          "sourceReferences": [],
          "recommendedAction": null,
          "whyItMatters": null,
          "implementationHint": null,
          "verificationCondition": null,
          "verificationCommand": "curl -i 'https://invoicecraftly.com/robots.txt'",
          "estimatedEffort": null
        }
      ],
      "recommendations": [],
      "executive": {
        "summary": "All 6 audit capabilities completed. No capability currently requires technical review. No material implementation action was generated; rerun the audit after meaningful website changes. No aggregate score is produced.",
        "strengths": [
          {
            "capability": "robots_policy",
            "title": "Crawler policy was retrieved and evaluated."
          },
          {
            "capability": "public_html",
            "title": "Substantial readable content is present in the initial response."
          },
          {
            "capability": "business_clarity",
            "title": "6 clarity signals were clear."
          },
          {
            "capability": "structured_data",
            "title": "2 valid JSON-LD blocks found."
          },
          {
            "capability": "llms_txt",
            "title": "The optional llms.txt file was retrieved and parsed."
          },
          {
            "capability": "entity_trust",
            "title": "2 primary identity entities found."
          }
        ],
        "priorities": [],
        "unavailableCapabilities": []
      },
      "methodology": {
        "reportVersion": "ofb-audit-r2.1",
        "evidenceEngineVersion": "ofb-evidence-r1-2026-08-02",
        "criteriaVersion": "ofb-criteria-r1-2026-08-09",
        "capabilityRuleVersions": {
          "structuredData": "ofb-jsonld-r1.1-2026-10-02",
          "llmsTxt": "ofb-llms-r1-2026-08-02",
          "entityTrust": "ofb-entity-r1-2026-08-02"
        },
        "limitations": [
          "The report analyses public technical and content signals; it does not observe provider rankings, citations, recommendations or model use.",
          "Capability summaries are evidence-backed orientations, not an aggregate score.",
          "Heuristic findings retain their underlying observations and limitations."
        ],
        "roadmapRulesVersion": "ofb-roadmap-r2-2026-08-03"
      },
      "roadmap": {
        "rulesVersion": "ofb-roadmap-r2-2026-08-03",
        "generatedAt": "2026-10-02T20:44:48.711Z",
        "status": "maintenance",
        "noScore": true,
        "phases": [
          {
            "id": "access_foundations",
            "order": 1,
            "title": "Access foundations",
            "capabilities": [
              "robots_policy"
            ],
            "requiredCapabilities": [
              "robots_policy"
            ],
            "state": "complete",
            "itemIds": [],
            "completedFoundationIds": [
              "roadmap.foundation.robots_policy.1"
            ]
          },
          {
            "id": "content_clarity",
            "order": 2,
            "title": "Content clarity",
            "capabilities": [
              "public_html",
              "business_clarity"
            ],
            "requiredCapabilities": [
              "public_html"
            ],
            "state": "complete",
            "itemIds": [],
            "completedFoundationIds": [
              "roadmap.foundation.public_html.2",
              "roadmap.foundation.business_clarity.3"
            ]
          },
          {
            "id": "machine_readable_structure",
            "order": 3,
            "title": "Machine-readable structure",
            "capabilities": [
              "structured_data",
              "llms_txt"
            ],
            "requiredCapabilities": [
              "structured_data"
            ],
            "state": "complete",
            "itemIds": [],
            "completedFoundationIds": [
              "roadmap.foundation.structured_data.4",
              "roadmap.foundation.llms_txt.5"
            ]
          },
          {
            "id": "identity_trust",
            "order": 4,
            "title": "Identity and trust",
            "capabilities": [
              "entity_trust"
            ],
            "requiredCapabilities": [
              "entity_trust"
            ],
            "state": "complete",
            "itemIds": [],
            "completedFoundationIds": [
              "roadmap.foundation.entity_trust.6"
            ]
          },
          {
            "id": "verification_maintenance",
            "order": 5,
            "title": "Verification and maintenance",
            "capabilities": [],
            "requiredCapabilities": [],
            "state": "active",
            "itemIds": [
              "roadmap.verification.rerun-audit"
            ],
            "completedFoundationIds": []
          }
        ],
        "items": [
          {
            "id": "roadmap.verification.rerun-audit",
            "sourceRecommendationId": null,
            "phase": "verification_maintenance",
            "phaseOrder": 5,
            "title": "Maintain the verified public foundation",
            "action": "Rerun the audit after material website, hosting, robots.txt, structured-data, or identity changes.",
            "reason": "The current audit produced no material implementation action, but future changes can invalidate the observed foundation.",
            "category": "verification",
            "effort": "small",
            "capabilityIds": [],
            "findingIds": [],
            "evidenceIds": [],
            "evidence": "manual",
            "evidenceLabels": [
              "manual"
            ],
            "confidence": "not_determined",
            "dependencies": [],
            "verificationCondition": "A later audit records the new checked timestamp, rule versions, findings, and recommendation states.",
            "guidancePath": "/methodology/",
            "limitation": "A later audit can verify public technical and content evidence; it still cannot prove indexing, citation, ranking, recommendation, or model use.",
            "state": "ready",
            "resolution": "not_started"
          }
        ],
        "nextActions": [
          "roadmap.verification.rerun-audit"
        ],
        "completedFoundations": [
          {
            "id": "roadmap.foundation.robots_policy.1",
            "capability": "robots_policy",
            "phase": "access_foundations",
            "title": "Crawler policy was retrieved and evaluated.",
            "state": "complete"
          },
          {
            "id": "roadmap.foundation.public_html.2",
            "capability": "public_html",
            "phase": "content_clarity",
            "title": "Substantial readable content is present in the initial response.",
            "state": "complete"
          },
          {
            "id": "roadmap.foundation.business_clarity.3",
            "capability": "business_clarity",
            "phase": "content_clarity",
            "title": "6 clarity signals were clear.",
            "state": "complete"
          },
          {
            "id": "roadmap.foundation.structured_data.4",
            "capability": "structured_data",
            "phase": "machine_readable_structure",
            "title": "2 valid JSON-LD blocks found.",
            "state": "complete"
          },
          {
            "id": "roadmap.foundation.llms_txt.5",
            "capability": "llms_txt",
            "phase": "machine_readable_structure",
            "title": "The optional llms.txt file was retrieved and parsed.",
            "state": "complete"
          },
          {
            "id": "roadmap.foundation.entity_trust.6",
            "capability": "entity_trust",
            "phase": "identity_trust",
            "title": "2 primary identity entities found.",
            "state": "complete"
          }
        ],
        "unavailableCapabilities": [],
        "limitations": [
          "Roadmap order is deterministic guidance derived from the current audit evidence, not a score or provider-outcome forecast.",
          "Resolution state does not alter the underlying observations or findings.",
          "A later audit can verify public evidence changes but cannot prove indexing, citation, ranking, recommendation, traffic, or model use."
        ]
      }
    }
  },
  "captureMethod": "live_network_runAudit"
}
