{
  "rules_version": "1.2",
  "base_rules": "decision-rules.md",
  "applicability_supplement": "applicability-v1.2.md",
  "check_rules": {
    "seo.http.preferred_origin": "http.core_contract",
    "seo.http.core_page": "http.core_contract",
    "seo.http.not_found": "http.missing_contract",
    "seo.http.machine_errors": "http.machine_error",
    "seo.http.robots_headers": "http.robots_header_safety",
    "seo.canonical.page": "canonical.identity",
    "seo.canonical.target": "canonical.identity",
    "seo.canonical.duplicate_hosts": "canonical.identity",
    "seo.canonical.cross_surface": "canonical.identity",
    "seo.canonical.variants": "canonical.identity",
    "seo.graph.reachable": "graph.discovery",
    "seo.graph.crawlable_links": "graph.discovery",
    "seo.graph.bounded": "graph.discovery",
    "seo.graph.noindex_children": "graph.discovery",
    "seo.graph.orphans": "graph.discovery",
    "seo.sitemap.robots": "sitemap.policy",
    "seo.sitemap.protocol": "sitemap.policy",
    "seo.sitemap.url_integrity": "sitemap.policy",
    "seo.sitemap.discovered_membership": "sitemap.policy",
    "seo.sitemap.lastmod": "sitemap.policy",
    "seo.sitemap.index_children": "sitemap.policy",
    "seo.sitemap.purpose_separation": "sitemap.policy",
    "seo.render.initial_html": "render.initial",
    "seo.render.hydration_parity": "render.initial",
    "seo.render.text_access": "render.initial",
    "seo.render.interstitials": "render.initial",
    "aeo.truth.entity": "truth.public_contract",
    "aeo.truth.capabilities": "truth.public_contract",
    "aeo.truth.availability": "truth.public_contract",
    "aeo.truth.commercial_terms": "truth.public_contract",
    "aeo.truth.integration_trust": "truth.public_contract",
    "aeo.truth.freshness": "truth.public_contract",
    "aeo.truth.cross_surface": "truth.public_contract",
    "aeo.schema.type_match": "schema.semantic_parity",
    "aeo.schema.visible_parity": "schema.semantic_parity",
    "aeo.schema.stable_ids": "schema.semantic_parity",
    "aeo.schema.current_facts": "schema.semantic_parity",
    "aeo.schema.faq_howto": "schema.semantic_parity",
    "aeo.schema.syntax": "schema.semantic_parity",
    "aeo.machine.alternate_advertised": "machine.reference_contract",
    "aeo.machine.clean_markdown": "machine.reference_contract",
    "aeo.machine.negotiation_cache": "machine.reference_contract",
    "aeo.machine.fact_parity": "machine.reference_contract",
    "aeo.machine.metadata": "machine.reference_contract",
    "aeo.machine.missing_error": "machine.reference_contract",
    "aeo.discovery.map": "discovery.map_contract",
    "aeo.discovery.valid_links": "discovery.map_contract",
    "aeo.discovery.bounded": "discovery.map_contract",
    "agent.a11y.semantics_names": "a11y.core_path",
    "agent.a11y.inputs_errors": "a11y.core_path",
    "agent.a11y.keyboard_focus": "a11y.core_path",
    "agent.a11y.structure": "a11y.core_path",
    "agent.a11y.mobile_text": "a11y.core_path",
    "agent.a11y.dynamic_state": "a11y.core_path",
    "agent.a11y.overlays": "a11y.core_path",
    "agent.stability.space": "stability.layout",
    "agent.stability.movement": "stability.layout",
    "agent.stability.responsive": "stability.layout",
    "agent.stability.loading_motion": "stability.layout",
    "agent.task.action_scope": "task.public_boundary",
    "agent.task.inputs_auth": "task.public_boundary",
    "agent.task.cost_limits": "task.public_boundary",
    "agent.task.output_errors": "task.public_boundary",
    "agent.task.confirmation_idempotency": "task.public_boundary",
    "agent.task.escalation": "task.public_boundary",
    "agent.capabilities.api_contract": "capability.contract",
    "agent.capabilities.oauth_discovery": "capability.contract",
    "agent.capabilities.skill": "capability.contract",
    "agent.capabilities.mcp_webmcp": "capability.contract",
    "agent.capabilities.operational_metadata": "capability.contract",
    "reliability.performance.ttfb": "performance.ttfb",
    "reliability.performance.lcp": "performance.lcp",
    "reliability.performance.cls": "performance.cls",
    "reliability.performance.transfer_interaction": "performance.transfer_interaction",
    "reliability.cache.directives": "cache.representation",
    "reliability.cache.vary": "cache.representation",
    "reliability.cache.auth": "cache.representation",
    "reliability.cache.challenge_content_type": "cache.representation",
    "reliability.freshness.effective_state": "freshness.provenance",
    "reliability.freshness.commercial_compatibility": "freshness.provenance",
    "reliability.freshness.provenance": "freshness.provenance",
    "reliability.freshness.deprecated_replacement": "freshness.provenance",
    "reliability.errors.http_status": "http.missing_contract",
    "reliability.errors.next_step": "errors.recovery",
    "reliability.errors.404_noindex": "http.missing_contract",
    "reliability.errors.auth_detail": "errors.recovery",
    "reliability.errors.rate_limit_retry": "errors.recovery"
  },
  "frozen_report_rule_aliases": {
    "reliability.performance.ttfb": {
      "reported_rule_id": "performance.lab_thresholds",
      "canonical_rule_id": "performance.ttfb",
      "criteria": "decision-rules.md#performance-rules",
      "note": "The frozen Dawn export uses the shared lab-threshold identifier. Apply the separate TTFB, LCP or CLS section for this check; no status or observation is changed."
    },
    "reliability.performance.lcp": {
      "reported_rule_id": "performance.lab_thresholds",
      "canonical_rule_id": "performance.lcp",
      "criteria": "decision-rules.md#performance-rules",
      "note": "The frozen Dawn export uses the shared lab-threshold identifier. Apply the separate TTFB, LCP or CLS section for this check; no status or observation is changed."
    },
    "reliability.performance.cls": {
      "reported_rule_id": "performance.lab_thresholds",
      "canonical_rule_id": "performance.cls",
      "criteria": "decision-rules.md#performance-rules",
      "note": "The frozen Dawn export uses the shared lab-threshold identifier. Apply the separate TTFB, LCP or CLS section for this check; no status or observation is changed."
    }
  }
}
