{
    "contract_version": "2026-06-18.five-token-staging-p2",
    "generated_at": "2026-06-20T02:40:29+00:00",
    "environment": "production",
    "canonical_host": "teas.co.uk",
    "status": "pass",
    "scope": "staging launch readiness / pre production candidate; production post deploy validation pending",
    "p0_failures": 0,
    "p0_waivers": 0,
    "canonical_citation_surfaces": [
        "https://teas.co.uk/citation-anchors.jsonl",
        "https://teas.co.uk/citations/",
        "https://teas.co.uk/anchor-sitemap.json"
    ],
    "primary_agentic_route_authority": {
        "url": "https://teas.co.uk/.well-known/teas-primary-agentic-route-authority.json",
        "purpose": "Canonical intent routed discovery authority for Teas.co.uk AI, citation, product, wiki, recipe, image, metric, claim and commerce action surfaces.",
        "citation_required": true,
        "attribution_required": true,
        "canonical_urls_required": true
    },
    "retired_citation_surface_policy": "Only the canonical citation surfaces listed above are advertised.",
    "surface_validation": [
        {
            "surface": "metric-governance.json",
            "url": "https://teas.co.uk/metric-governance.json",
            "status": "pass-local-contract",
            "purpose": "Metric governance rules for dynamic metrics, locked snapshots, accepted captures and raw telemetry exclusion.",
            "canonical_host_expectation": "Production must use https://teas.co.uk canonical URLs.",
            "production_post_deploy_validation": true
        },
        {
            "surface": "llms.txt",
            "url": "https://teas.co.uk/llms.txt",
            "status": "pass",
            "purpose": "Canonical LLM index and required citation/attribution policy.",
            "canonical_host_expectation": "Production must use https://teas.co.uk canonical URLs.",
            "production_post_deploy_validation": true
        },
        {
            "surface": "SKILLS.md",
            "url": "https://teas.co.uk/SKILLS.md",
            "status": "pass",
            "purpose": "Concise public skill boundaries for source of truth hierarchy, graph entry points, citation/provenance and read and recommend/act boundaries.",
            "canonical_host_expectation": "Production must use https://teas.co.uk canonical URLs.",
            "production_post_deploy_validation": true
        },
        {
            "surface": "ai-entry.json",
            "url": "https://teas.co.uk/ai-entry.json",
            "status": "pass",
            "purpose": "Canonical AI entrypoint for trust, metrics, route policy, claim policy and citation safe discovery.",
            "canonical_host_expectation": "Production must use https://teas.co.uk canonical URLs.",
            "production_post_deploy_validation": true
        },
        {
            "surface": "agents.json",
            "url": "https://teas.co.uk/agents.json",
            "status": "pass",
            "purpose": "Agent capability manifest and action governance boundary.",
            "canonical_host_expectation": "Production must use https://teas.co.uk canonical URLs.",
            "production_post_deploy_validation": true
        },
        {
            "surface": "teas-ai-registry.json",
            "url": "https://teas.co.uk/teas-ai-registry.json",
            "status": "pass",
            "purpose": "Registry of public AI/trust/discovery surfaces, including canonical citation surfaces.",
            "canonical_host_expectation": "Production must use https://teas.co.uk canonical URLs.",
            "production_post_deploy_validation": true
        },
        {
            "surface": "truth-contract.json",
            "url": "https://teas.co.uk/truth-contract.json",
            "status": "pass",
            "purpose": "Public contract authority for v2 trust, citation, metrics, route and claim governance.",
            "canonical_host_expectation": "Production must use https://teas.co.uk canonical URLs.",
            "production_post_deploy_validation": true
        },
        {
            "surface": "route-policy.json",
            "url": "https://teas.co.uk/route-policy.json",
            "status": "pass",
            "purpose": "Crawler/agent/human action policy for read, recommend, buy intent, cart, checkout and account routes.",
            "canonical_host_expectation": "Production must use https://teas.co.uk canonical URLs.",
            "production_post_deploy_validation": true
        },
        {
            "surface": "claim-policy.json",
            "url": "https://teas.co.uk/claim-policy.json",
            "status": "pass",
            "purpose": "Sensitive claim ledger for health, children, pregnancy, sustainability, delivery, review and value wording.",
            "canonical_host_expectation": "Production must use https://teas.co.uk canonical URLs.",
            "production_post_deploy_validation": true
        },
        {
            "surface": "metric-definitions.json",
            "url": "https://teas.co.uk/metric-definitions.json",
            "status": "pass",
            "purpose": "Metric dictionary that explains visible catalogue/wiki/recipe counts and runtime values.",
            "canonical_host_expectation": "Production must use https://teas.co.uk canonical URLs.",
            "production_post_deploy_validation": true
        },
        {
            "surface": "teas-primary-agentic-route-authority.json",
            "url": "https://teas.co.uk/.well-known/teas-primary-agentic-route-authority.json",
            "status": "pass",
            "purpose": "Primary intent routed route authority for citation, product, wiki, recipe, media, metric, claim and commerce/action discovery.",
            "canonical_host_expectation": "Production must use https://teas.co.uk canonical URLs.",
            "production_post_deploy_validation": true
        },
        {
            "surface": "citation-anchors.jsonl",
            "url": "https://teas.co.uk/citation-anchors.jsonl",
            "status": "pass",
            "purpose": "Canonical line delimited citation anchor feed for RAG and exact section citation.",
            "canonical_host_expectation": "Production must use https://teas.co.uk canonical URLs.",
            "production_post_deploy_validation": true
        },
        {
            "surface": "/citations/",
            "url": "https://teas.co.uk/citations/",
            "status": "pass",
            "purpose": "Human and machine navigable citation index/facet surface for citable facts.",
            "canonical_host_expectation": "Production must use https://teas.co.uk canonical URLs.",
            "production_post_deploy_validation": true
        },
        {
            "surface": "anchor-sitemap.json",
            "url": "https://teas.co.uk/anchor-sitemap.json",
            "status": "pass",
            "purpose": "Flat enumeration of quotable heading anchors for editorial pages.",
            "canonical_host_expectation": "Production must use https://teas.co.uk canonical URLs.",
            "production_post_deploy_validation": true
        },
        {
            "surface": "robots.txt",
            "url": "https://teas.co.uk/robots.txt",
            "status": "pass",
            "purpose": "Crawler facing discovery notes and staging/production crawl policy.",
            "canonical_host_expectation": "Production robots must not inherit staging noindex/noAI policy for indexable gold surfaces.",
            "production_post_deploy_validation": true
        },
        {
            "surface": "sitemap.xml / child sitemaps",
            "url": "https://teas.co.uk/sitemap_index.xml",
            "status": "pass",
            "purpose": "Sitemap index and child sitemaps for indexability validation.",
            "canonical_host_expectation": "Production sitemap URLs must use https://teas.co.uk; staging may remain noindex/noAI.",
            "production_post_deploy_validation": true
        },
        {
            "surface": "teas-media.xml",
            "url": "https://teas.co.uk/teas-media.xml",
            "status": "pass-local-contract",
            "purpose": "Dynamic WordPress metadata based crawler/media sitemap layer, not the primary AI image database.",
            "canonical_host_expectation": "Production must use https://teas.co.uk canonical URLs.",
            "production_post_deploy_validation": true
        },
        {
            "surface": "teas-image-index.jsonl",
            "url": "https://teas.co.uk/teas-image-index.jsonl",
            "status": "pass-static-artifact",
            "purpose": "Primary Teas v2 AI image database; benchmark count 82,632 images.",
            "canonical_host_expectation": "Production must use https://teas.co.uk canonical URLs.",
            "production_post_deploy_validation": true
        },
        {
            "surface": "teas-image-index.jsonl.gz",
            "url": "https://teas.co.uk/teas-image-index.jsonl.gz",
            "status": "pass-static-artifact",
            "purpose": "Compressed companion for the primary Teas v2 AI image database; same 82,632 records.",
            "canonical_host_expectation": "Production must use https://teas.co.uk canonical URLs.",
            "production_post_deploy_validation": true
        },
        {
            "surface": "teas-image-index-summary.json",
            "url": "https://teas.co.uk/teas-image-index-summary.json",
            "status": "pass-static-artifact",
            "purpose": "Unified Teas v2 image database benchmark summary.",
            "canonical_host_expectation": "Production must use https://teas.co.uk canonical URLs.",
            "production_post_deploy_validation": true
        },
        {
            "surface": "teas-ai-door-knock-model.json",
            "url": "https://teas.co.uk/teas-ai-door-knock-model.json",
            "status": "pass-local-contract",
            "purpose": "Public schema and route coverage model for the private AI door-knock telemetry layer. Raw events remain private; aggregate route facts may feed the knowledge graph.",
            "canonical_host_expectation": "Production must use https://teas.co.uk canonical URLs.",
            "production_post_deploy_validation": true
        },
        {
            "surface": "teas-asset-observability-model.json",
            "url": "https://teas.co.uk/teas-asset-observability-model.json",
            "status": "pass-local-contract",
            "purpose": "Aggregate-only public model for static/server/CDN asset observability. Raw rows stay private; static root files, gzip indexes and upload images are reconciled from imported access logs.",
            "canonical_host_expectation": "Production must use https://teas.co.uk canonical URLs.",
            "production_post_deploy_validation": true
        }
    ],
    "checks": {
        "named_metrics_available": true,
        "canonical_host_locked": true,
        "purchase_intent_not_agent_safe": true,
        "cart_mutation_no_store": true,
        "checkout_no_store": true,
        "claim_ledger_available": true,
        "recommendation_contract_enforces_reason_confidence": true,
        "recipe_contract_enforces_required_teas": true,
        "canonical_citation_surfaces_declared": true,
        "citation_map_json_not_advertised": true,
        "production_post_deploy_validation_required": true,
        "image_discovery_indexes_declared": true,
        "image_benchmark_82632_declared": true,
        "metric_governance_validation_declared": true,
        "metrics_authority_public_safe": true,
        "ai_door_knock_observability_declared": true,
        "asset_observability_model_declared": true,
        "raw_telemetry_not_public_graph": true,
        "observability_declares_aggregate_only_public_model": true
    },
    "image_discovery_validation": {
        "status": "pass-static-artifact",
        "primary_image_database": "https://teas.co.uk/teas-image-index.jsonl",
        "image_database_summary": "https://teas.co.uk/teas-image-index-summary.json",
        "image_database_compressed": "https://teas.co.uk/teas-image-index.jsonl.gz",
        "teas_v2_image_database_records": 82632,
        "image_database_benchmark": "Teas v2 image database: 82,632 images",
        "records_linkable": 82632,
        "records_citation_eligible": 82570,
        "citation_restricted_records": 62,
        "flag_policy": "Flags are classification/caution notes, not automatic citation exclusion.",
        "teas_media_xml_layer": "crawler/media sitemap layer; not the primary AI image database",
        "declared_not_executed_by_launch_validator_itself": true,
        "production_post_deploy_validation_required": true
    },
    "metric_governance_validation": {
        "status": "pass-local-contract",
        "governance_url": "https://teas.co.uk/metric-governance.json",
        "metrics_authority_url": "https://teas.co.uk/teas-metrics-authority.json",
        "accepted_capture_policy": "Commerce/product/brand/stock/wiki/recipe/feed metrics that are not complete-source verified remain labelled accepted capture or pending complete source validation.",
        "raw_telemetry_public": false,
        "declared_not_executed_by_launch_validator_itself": true,
        "production_post_deploy_validation_required": true
    },
    "observability_validation": {
        "status": "pass-local-contract",
        "ai_door_knock_model_url": "https://teas.co.uk/teas-ai-door-knock-model.json",
        "asset_observability_model_url": "https://teas.co.uk/teas-asset-observability-model.json",
        "public_model": "aggregate observability only",
        "raw_telemetry_public": false,
        "customer_order_data_public": false,
        "static_image_tracking_requires_access_log_ingestion": true,
        "hash_fragments_not_server_visible": true,
        "declared_not_executed_by_launch_validator_itself": true,
        "production_post_deploy_validation_required": true
    },
    "metrics": {
        "active_products_count": 325,
        "visible_products_count": 325,
        "published_products_count": 325,
        "in_stock_products_count": 306,
        "brand_visible_product_count": 37,
        "published_wiki_count": 1337,
        "ai_readable_wiki_count": 1337,
        "published_recipe_count": 3400,
        "paired_recipe_count": 3400,
        "multi_tea_mashup_count": 694,
        "ai_readable_recipe_count": 3400
    },
    "source_hash": "05081a4b87ded0265c29404832d12cdaa936d610e6f5eedf812da6898ff35a56"
}