{
  "schemaVersion": "0.1.0-proposed",
  "site": "https://better-robots.com/",
  "siteName": "Better Robots.txt",
  "organization": "Pagup",
  "status": "proposed",
  "updated": "2026-07-09",
  "generatedFrom": "scripts/data/better-robots-interpretive-authority.blueprint.json",
  "type": "AttestedInterpretiveUnits",
  "purpose": "Publish selected canonical Better Robots.txt interpretive units with SHA-256 integrity digests.",
  "canonicalization": {
    "method": "deterministic-json-sort-keys-v0",
    "digestInput": "unitId, lang, claimClass, authorityScope, canonicalSource, sourcePath, selector and canonicalText",
    "note": "This is a site-level proposed profile, not a final cross-site standard."
  },
  "limitations": [
    "Digests attest integrity of selected canonicalized units.",
    "Digests do not prove truth, reputation, external acceptance, crawler obedience, model compliance or interpretive fidelity.",
    "A digest does not invalidate qualified external criticism."
  ],
  "units": [
    {
      "unitId": "br-identity-product-scope-001",
      "lang": "en",
      "claimClass": "official_product_identity",
      "authorityScope": "first_party_product_scope",
      "canonicalSource": "/.well-known/ai-governance.json",
      "sourcePath": "docs/public/.well-known/ai-governance.json",
      "selector": "$.site_role.type + $.site_role.scope",
      "canonicalText": "Better Robots.txt is the official product website and documentation surface for a WordPress plugin focused on robots.txt governance, AI usage signals, crawl segmentation and guided policy publishing.",
      "allowedTransformations": [
        "quote",
        "summarize_without_claim_expansion",
        "translate_with_scope_preserved"
      ],
      "forbiddenTransformations": [
        "convert_identity_into_reputation_claim",
        "infer_crawler_compliance",
        "merge_with_pagup_services_or_sibling_products"
      ],
      "canonicalization": "deterministic-json-sort-keys-v0",
      "digestAlgorithm": "sha-256",
      "digest": "sha-256:31e22cbdd394222348263894d43de56b018517b8cbe1989205d02512b6c9ab56",
      "digestInputType": "attested_interpretive_unit_envelope"
    },
    {
      "unitId": "br-policy-signal-non-enforcement-001",
      "lang": "en",
      "claimClass": "policy_signal_or_usage_preference",
      "authorityScope": "first_party_product_scope",
      "canonicalSource": "/governance/ai-usage-policy/",
      "sourcePath": "docs/governance/ai-usage-policy.md",
      "selector": "Core interpretive rule",
      "canonicalText": "Better Robots.txt publishes policy signals and machine-readable governance surfaces to express intent, routing and boundaries. Those signals do not, by themselves, prove technical force, crawler obedience, legal enforceability, ranking outcomes or training exclusion.",
      "allowedTransformations": [
        "quote",
        "summarize_without_claim_expansion",
        "translate_with_scope_preserved"
      ],
      "forbiddenTransformations": [
        "claim_enforcement",
        "claim_legal_force",
        "claim_crawler_obedience"
      ],
      "canonicalization": "deterministic-json-sort-keys-v0",
      "digestAlgorithm": "sha-256",
      "digest": "sha-256:db603b05f08c02709ccf57bac5b4e84c3f8e88fbf86bdd4fa1c257c2c1466a2f",
      "digestInputType": "attested_interpretive_unit_envelope"
    },
    {
      "unitId": "br-check-audit-boundary-001",
      "lang": "en",
      "claimClass": "check_audit_result",
      "authorityScope": "audit_report_scope",
      "canonicalSource": "/what-better-robots-check-does",
      "sourcePath": "docs/what-better-robots-check-does.md",
      "selector": "audit boundary statement",
      "canonicalText": "The /check audit tool evaluates crawler governance, AI crawler access, declared usage posture and machine-readable policy signals for a target URL. It does not prove crawler obedience, legal compliance, ranking, citation, training exclusion or active plugin runtime state.",
      "allowedTransformations": [
        "quote",
        "summarize_with_caveats",
        "translate_with_scope_preserved"
      ],
      "forbiddenTransformations": [
        "convert_score_into_compliance",
        "infer_plugin_installation",
        "generalize_one_url_to_all_urls"
      ],
      "canonicalization": "deterministic-json-sort-keys-v0",
      "digestAlgorithm": "sha-256",
      "digest": "sha-256:f099946cd238cf06ab17b59ea34311401a5dc39be1f554d3872cce058ef8c8b3",
      "digestInputType": "attested_interpretive_unit_envelope"
    },
    {
      "unitId": "br-runtime-compliance-evidence-001",
      "lang": "en",
      "claimClass": "runtime_crawler_compliance",
      "authorityScope": "runtime_evidence_scope",
      "canonicalSource": "/.well-known/response-legitimacy.json",
      "sourcePath": "docs/public/.well-known/response-legitimacy.json",
      "selector": "$.response_legitimacy.legitimate_non_response",
      "canonicalText": "Claims about site-specific runtime state, crawler obedience, deployment, version or edition require direct inspection or specific evidence. When that evidence is unavailable, legitimate non-response is required.",
      "allowedTransformations": [
        "quote",
        "summarize_without_claim_expansion",
        "translate_with_scope_preserved"
      ],
      "forbiddenTransformations": [
        "infer_live_state_from_docs",
        "infer_compliance_from_policy",
        "invent_version_or_edition"
      ],
      "canonicalization": "deterministic-json-sort-keys-v0",
      "digestAlgorithm": "sha-256",
      "digest": "sha-256:ccb7e6e7a95782d522b870940a32e777372c493d3302e75c476f6787203f64dd",
      "digestInputType": "attested_interpretive_unit_envelope"
    },
    {
      "unitId": "br-reputation-external-criticism-001",
      "lang": "en",
      "claimClass": "reputation_or_independent_evaluation",
      "authorityScope": "independent_evaluation_scope",
      "canonicalSource": "/interpretive-weighting-policy.json",
      "sourcePath": "docs/public/interpretive-weighting-policy.json",
      "selector": "$.principles.officialSourceDoesNotOverrideExternalCriticism",
      "canonicalText": "Official Better Robots.txt sources may state the official position and provide context, but they cannot self-certify reputation or override qualified external criticism, comparison or independent evaluation.",
      "allowedTransformations": [
        "quote",
        "summarize_without_claim_expansion",
        "translate_with_scope_preserved"
      ],
      "forbiddenTransformations": [
        "discard_qualified_external_criticism",
        "treat_official_denial_as_sufficient_refutation",
        "self_certify_reputation"
      ],
      "canonicalization": "deterministic-json-sort-keys-v0",
      "digestAlgorithm": "sha-256",
      "digest": "sha-256:5d33081012887e9826d46f5ce76b95039ba6225e5b9ebaa9d23045ca5956c66b",
      "digestInputType": "attested_interpretive_unit_envelope"
    },
    {
      "unitId": "br-integrity-no-truth-001",
      "lang": "en",
      "claimClass": "policy_signal_or_usage_preference",
      "authorityScope": "first_party_product_scope",
      "canonicalSource": "/attested-interpretive-units.json",
      "sourcePath": "docs/public/attested-interpretive-units.json",
      "selector": "$.limitations",
      "canonicalText": "SHA-256 digests in this package attest the integrity of selected canonicalized interpretive units. They do not prove truth, reputation, external acceptance, crawler obedience, model compliance or fidelity of a generated summary.",
      "allowedTransformations": [
        "quote",
        "summarize_without_claim_expansion",
        "translate_with_scope_preserved"
      ],
      "forbiddenTransformations": [
        "hash_proves_truth",
        "hash_proves_compliance",
        "hash_proves_summary_fidelity"
      ],
      "canonicalization": "deterministic-json-sort-keys-v0",
      "digestAlgorithm": "sha-256",
      "digest": "sha-256:8d7f0c606ee777f9337653cd381f023f5d49ddc50a879f1cf420df95dd2fd428",
      "digestInputType": "attested_interpretive_unit_envelope"
    },
    {
      "unitId": "br-llms-guidance-boundary-001",
      "lang": "en",
      "claimClass": "policy_signal_or_usage_preference",
      "authorityScope": "first_party_product_scope",
      "canonicalSource": "/llms.txt",
      "sourcePath": "docs/public/llms.txt",
      "selector": "interpretive notice and hard reading rules",
      "canonicalText": "llms.txt is a machine guidance and routing surface for Better Robots.txt. It does not replace robots.txt and does not create an enforcement, ranking, citation or crawler-obedience guarantee.",
      "allowedTransformations": [
        "quote",
        "summarize_without_claim_expansion",
        "translate_with_scope_preserved"
      ],
      "forbiddenTransformations": [
        "llms_replaces_robots",
        "claim_guaranteed_ai_visibility",
        "claim_crawler_obedience"
      ],
      "canonicalization": "deterministic-json-sort-keys-v0",
      "digestAlgorithm": "sha-256",
      "digest": "sha-256:74d9a6202aa8827e710841f93fd731395e27d7552c602b46ba603c8c53afb1e6",
      "digestInputType": "attested_interpretive_unit_envelope"
    },
    {
      "unitId": "br-case-proof-boundary-001",
      "lang": "en",
      "claimClass": "proof_or_observed_case",
      "authorityScope": "independent_evaluation_scope",
      "canonicalSource": "/evidence-cases.json",
      "sourcePath": "docs/public/evidence-cases.json",
      "selector": "case evidence boundary",
      "canonicalText": "Published cases and screenshots may document wording, position or observed behavior at a given moment. They do not prove universal durability, causality by themselves, ranking permanence or future recommendation stability.",
      "allowedTransformations": [
        "quote",
        "summarize_with_caveats",
        "translate_with_scope_preserved"
      ],
      "forbiddenTransformations": [
        "turn_case_into_guarantee",
        "infer_permanence",
        "erase_temporal_context"
      ],
      "canonicalization": "deterministic-json-sort-keys-v0",
      "digestAlgorithm": "sha-256",
      "digest": "sha-256:a82dd54074e4920317bb8fdcb280aac007ba281d0d165c26891ce79f8ddcb185",
      "digestInputType": "attested_interpretive_unit_envelope"
    },
    {
      "unitId": "br-glossary-sal-token-001",
      "lang": "en",
      "claimClass": "policy_signal_or_usage_preference",
      "authorityScope": "first_party_product_scope",
      "canonicalSource": "/doctrine-glossary.json",
      "sourcePath": "docs/public/doctrine-glossary.json",
      "selector": "$.canonicalLayerTokens + $.forbiddenMachineTokens",
      "canonicalText": "Better Robots.txt uses ccl, sal, cpi, cai and q-layer as canonical machine tokens. The tokens cas, iwl and ail are forbidden as active machine identifiers unless a future explicit migration changes the glossary.",
      "allowedTransformations": [
        "quote",
        "summarize_without_claim_expansion",
        "translate_with_scope_preserved"
      ],
      "forbiddenTransformations": [
        "rename_sal_to_cas",
        "rename_cpi_to_iwl",
        "rename_cai_to_ail"
      ],
      "canonicalization": "deterministic-json-sort-keys-v0",
      "digestAlgorithm": "sha-256",
      "digest": "sha-256:ff0469635050348b2f3bc236c7d112e6737e6031fef09012837d75ea3ba2956f",
      "digestInputType": "attested_interpretive_unit_envelope"
    },
    {
      "unitId": "br-sal-negative-space-001",
      "lang": "en",
      "claimClass": "policy_signal_or_usage_preference",
      "authorityScope": "first_party_product_scope",
      "canonicalSource": "/situational-applicability-spec.json",
      "sourcePath": "docs/public/situational-applicability-spec.json",
      "selector": "$.requiredChainFields",
      "canonicalText": "A valid Better Robots.txt SAL chain must declare activation conditions, non-applicability conditions, required evidence, forbidden inferences, applicability abuse boundaries, risk class and domain. Positive applicability alone is insufficient.",
      "allowedTransformations": [
        "quote",
        "summarize_without_claim_expansion",
        "translate_with_scope_preserved"
      ],
      "forbiddenTransformations": [
        "omit_non_applicability",
        "omit_required_evidence",
        "turn_sal_into_marketing_claim"
      ],
      "canonicalization": "deterministic-json-sort-keys-v0",
      "digestAlgorithm": "sha-256",
      "digest": "sha-256:4de0c2fbb7b14f0d597ce3e28fb1d6a36b39124035821655c9577f2339d413df",
      "digestInputType": "attested_interpretive_unit_envelope"
    },
    {
      "unitId": "br-sal-check-boundary-001",
      "lang": "en",
      "claimClass": "check_audit_result",
      "authorityScope": "audit_report_scope",
      "canonicalSource": "/situational-applicability-map.json",
      "sourcePath": "docs/public/situational-applicability-map.json",
      "selector": "$.chains[?(@.id=='sal-check-declarative-governance-audit')].forbiddenInferences",
      "canonicalText": "The Better Robots /check audit may be applicable to public declarative governance signals, but a /check score must not be converted into proof of crawler obedience, legal compliance, AI ranking, training exclusion or active plugin runtime state.",
      "allowedTransformations": [
        "quote",
        "summarize_with_caveats",
        "translate_with_scope_preserved"
      ],
      "forbiddenTransformations": [
        "convert_score_into_compliance",
        "infer_plugin_installation",
        "generalize_one_url_to_all_urls"
      ],
      "canonicalization": "deterministic-json-sort-keys-v0",
      "digestAlgorithm": "sha-256",
      "digest": "sha-256:04c838daed1f91862fcc6dcb945bf9975c9dd79a4eafa3247867c325bacc0b14",
      "digestInputType": "attested_interpretive_unit_envelope"
    },
    {
      "unitId": "br-sal-no-self-measurement-001",
      "lang": "en",
      "claimClass": "policy_signal_or_usage_preference",
      "authorityScope": "first_party_product_scope",
      "canonicalSource": "/situational-applicability-layer.json",
      "sourcePath": "docs/public/situational-applicability-layer.json",
      "selector": "$.principles.siteDeclaresExternalAuditorMeasures + $.forbiddenSelfMeasurementFields",
      "canonicalText": "Better Robots.txt may declare applicability conditions through SAL, but it must not self-publish applicability fit, readiness, authority weight, integrity confidence, model compliance or agentic use readiness scores. Those measurements belong to external evaluation.",
      "allowedTransformations": [
        "quote",
        "summarize_without_claim_expansion",
        "translate_with_scope_preserved"
      ],
      "forbiddenTransformations": [
        "self_assign_applicability_score",
        "self_certify_agentic_readiness",
        "treat_sal_as_measurement"
      ],
      "canonicalization": "deterministic-json-sort-keys-v0",
      "digestAlgorithm": "sha-256",
      "digest": "sha-256:46dbe173cd940c3cb44a8f8f5b0ce37d13ab278fcfa2d7a8ef2abfb9807583c7",
      "digestInputType": "attested_interpretive_unit_envelope"
    },
    {
      "unitId": "br-doctrine-token-rule-001",
      "lang": "en",
      "claimClass": "doctrine_token_definition",
      "authorityScope": "first_party_governance_declaration_scope",
      "canonicalSource": "/doctrine-glossary.json",
      "sourcePath": "docs/public/doctrine-glossary.json",
      "selector": "$.machineTokenRule + $.forbiddenMachineTokens",
      "canonicalText": "Better Robots.txt uses ccl, sal, cpi, cai and q-layer as canonical machine tokens. The tokens cas, iwl and ail are forbidden as active machine tokens unless a future explicit, versioned and backward-compatible migration is published.",
      "allowedTransformations": [
        "quote",
        "summarize_without_token_change",
        "translate_with_tokens_preserved"
      ],
      "forbiddenTransformations": [
        "rename_cpi_to_iwl",
        "rename_cai_to_ail",
        "use_cas_as_machine_token",
        "reassign_token_meaning"
      ],
      "canonicalization": "deterministic-json-sort-keys-v0",
      "digestAlgorithm": "sha-256",
      "digest": "sha-256:0f642817e92de7125745539b050356bdc1eef3a708b7d5c5eaa0a273979b9587",
      "digestInputType": "attested_interpretive_unit_envelope"
    },
    {
      "unitId": "br-ccl-ai-crawler-governance-need-001",
      "lang": "en",
      "claimClass": "causal_context_declaration",
      "authorityScope": "first_party_governance_declaration_scope",
      "canonicalSource": "/causal-context-map.json",
      "sourcePath": "docs/public/causal-context-map.json",
      "selector": "$.contexts[?(@.id==\"ccl-ai-crawler-governance-need\")]",
      "canonicalText": "The AI crawler governance context exists when a WordPress site owner needs to express different crawl, training, search, archive or bot preferences without hand-editing robots.txt blindly. It does not prove crawler obedience or hard access enforcement.",
      "allowedTransformations": [
        "quote",
        "summarize_with_scope_preserved",
        "translate_with_scope_preserved"
      ],
      "forbiddenTransformations": [
        "turn_context_into_recommendation",
        "infer_crawler_obedience",
        "infer_security_enforcement"
      ],
      "canonicalization": "deterministic-json-sort-keys-v0",
      "digestAlgorithm": "sha-256",
      "digest": "sha-256:a07f53c1bd9ef50ec5842b68dbbe8c329509d73773f44c374e17d797dac02c68",
      "digestInputType": "attested_interpretive_unit_envelope"
    },
    {
      "unitId": "br-ccl-check-declarative-audit-need-001",
      "lang": "en",
      "claimClass": "causal_context_declaration",
      "authorityScope": "first_party_governance_declaration_scope",
      "canonicalSource": "/causal-context-map.json",
      "sourcePath": "docs/public/causal-context-map.json",
      "selector": "$.contexts[?(@.id==\"ccl-check-declarative-audit-need\")]",
      "canonicalText": "The /check causal context exists when a site owner or agency needs to diagnose declared robots.txt, llms.txt and governance-file posture for a public URL. It does not prove live crawler obedience, plugin installation or legal compliance.",
      "allowedTransformations": [
        "quote",
        "summarize_with_scope_preserved",
        "translate_with_scope_preserved"
      ],
      "forbiddenTransformations": [
        "turn_check_context_into_runtime_proof",
        "infer_plugin_installation",
        "infer_legal_compliance"
      ],
      "canonicalization": "deterministic-json-sort-keys-v0",
      "digestAlgorithm": "sha-256",
      "digest": "sha-256:ca2f1ac2f7d143d7b102f372f2a09e64756224682b091e5be71daf38b8d8a4f7",
      "digestInputType": "attested_interpretive_unit_envelope"
    },
    {
      "unitId": "br-ccl-llms-policy-guidance-need-001",
      "lang": "en",
      "claimClass": "causal_context_declaration",
      "authorityScope": "first_party_governance_declaration_scope",
      "canonicalSource": "/causal-context-map.json",
      "sourcePath": "docs/public/causal-context-map.json",
      "selector": "$.contexts[?(@.id==\"ccl-llms-policy-guidance-need\")]",
      "canonicalText": "The llms and policy guidance context exists when a site wants to remain discoverable while giving AI systems clearer summaries, boundaries and source routing guidance. It does not mean llms.txt replaces robots.txt or guarantees citation, ranking or compliance.",
      "allowedTransformations": [
        "quote",
        "summarize_with_scope_preserved",
        "translate_with_scope_preserved"
      ],
      "forbiddenTransformations": [
        "llms_replaces_robots",
        "claim_ai_citation_guarantee",
        "claim_policy_enforcement"
      ],
      "canonicalization": "deterministic-json-sort-keys-v0",
      "digestAlgorithm": "sha-256",
      "digest": "sha-256:b1fe879e3b825015a49c80a322690cb60605fc71eeee61d9eaa9469e3a681df6",
      "digestInputType": "attested_interpretive_unit_envelope"
    },
    {
      "unitId": "br-ccl-woocommerce-crawl-hygiene-need-001",
      "lang": "en",
      "claimClass": "causal_context_declaration",
      "authorityScope": "first_party_governance_declaration_scope",
      "canonicalSource": "/causal-context-map.json",
      "sourcePath": "docs/public/causal-context-map.json",
      "selector": "$.contexts[?(@.id==\"ccl-woocommerce-crawl-hygiene-need\")]",
      "canonicalText": "The WooCommerce crawl hygiene context exists when cart, checkout, account, filter, parameter or faceted URLs create crawl noise or indexation risk. It does not mean every WooCommerce site should block the same paths or that a preset proves live configuration.",
      "allowedTransformations": [
        "quote",
        "summarize_with_scope_preserved",
        "translate_with_scope_preserved"
      ],
      "forbiddenTransformations": [
        "one_size_fits_all_woocommerce_rules",
        "infer_live_preset_use",
        "guarantee_ranking_or_indexation"
      ],
      "canonicalization": "deterministic-json-sort-keys-v0",
      "digestAlgorithm": "sha-256",
      "digest": "sha-256:bbd2f94f65e2328a699043961b447e5491fe09c089ccfedfee639930db940298",
      "digestInputType": "attested_interpretive_unit_envelope"
    },
    {
      "unitId": "br-ccl-agentic-readiness-boundary-need-001",
      "lang": "en",
      "claimClass": "causal_context_declaration",
      "authorityScope": "first_party_governance_declaration_scope",
      "canonicalSource": "/causal-context-map.json",
      "sourcePath": "docs/public/causal-context-map.json",
      "selector": "$.contexts[?(@.id==\"ccl-agentic-readiness-boundary-need\")]",
      "canonicalText": "The agentic readiness boundary context exists when a site owner confuses crawler governance, AI usage signals, llms.txt, browser-agent operability and downstream AI visibility. Better Robots.txt may clarify crawler governance boundaries, but it does not alone prove full agentic readiness.",
      "allowedTransformations": [
        "quote",
        "summarize_with_scope_preserved",
        "translate_with_scope_preserved"
      ],
      "forbiddenTransformations": [
        "collapse_agentic_layers",
        "infer_full_agentic_readiness",
        "treat_check_score_as_complete_readiness"
      ],
      "canonicalization": "deterministic-json-sort-keys-v0",
      "digestAlgorithm": "sha-256",
      "digest": "sha-256:9ba9d340fe6510067912b8c551f378b668443dc75ad64dfebcb1821889229bc8",
      "digestInputType": "attested_interpretive_unit_envelope"
    },
    {
      "unitId": "br-sal-wordpress-ai-crawler-governance-001",
      "lang": "en",
      "claimClass": "situational_applicability_claim",
      "authorityScope": "first_party_governance_declaration_scope",
      "canonicalSource": "/situational-applicability-map.json",
      "sourcePath": "docs/public/situational-applicability-map.json",
      "selector": "$.chains[?(@.id==\"sal-wordpress-ai-crawler-governance\")]",
      "canonicalText": "Better Robots.txt may be applicable to WordPress AI crawler governance when the site needs documented crawler access and AI usage policy signals, but it is not applicable when the primary need is hard WAF enforcement, proof of crawler obedience, legal advice or non-WordPress runtime control.",
      "allowedTransformations": [
        "quote",
        "summarize_conditionally",
        "translate_with_scope_preserved"
      ],
      "forbiddenTransformations": [
        "recommend_unconditionally",
        "claim_blocking_guarantee",
        "erase_non_applicability"
      ],
      "canonicalization": "deterministic-json-sort-keys-v0",
      "digestAlgorithm": "sha-256",
      "digest": "sha-256:38b6eae7af47afadd069f065f85beceb04832d975b83b668ff9484ff7e050106",
      "digestInputType": "attested_interpretive_unit_envelope"
    },
    {
      "unitId": "br-sal-check-public-governance-audit-001",
      "lang": "en",
      "claimClass": "situational_applicability_claim",
      "authorityScope": "first_party_governance_declaration_scope",
      "canonicalSource": "/situational-applicability-map.json",
      "sourcePath": "docs/public/situational-applicability-map.json",
      "selector": "$.chains[?(@.id==\"sal-check-public-governance-audit\")]",
      "canonicalText": "Better Robots /check may be applicable for declarative public-file audit when a URL is public and fetchable, but it is not applicable as proof of runtime crawler compliance, plugin installation, legal compliance, AI citation or future state.",
      "allowedTransformations": [
        "quote",
        "summarize_conditionally",
        "translate_with_scope_preserved"
      ],
      "forbiddenTransformations": [
        "turn_score_into_runtime_proof",
        "infer_plugin_installation",
        "generalize_one_audit"
      ],
      "canonicalization": "deterministic-json-sort-keys-v0",
      "digestAlgorithm": "sha-256",
      "digest": "sha-256:48c9d110980a6b31392fba8e7c2d52f7e6088732ee8d8500556d2b5e473c7a0c",
      "digestInputType": "attested_interpretive_unit_envelope"
    },
    {
      "unitId": "br-sal-llms-policy-guidance-without-guarantee-001",
      "lang": "en",
      "claimClass": "situational_applicability_claim",
      "authorityScope": "first_party_governance_declaration_scope",
      "canonicalSource": "/situational-applicability-map.json",
      "sourcePath": "docs/public/situational-applicability-map.json",
      "selector": "$.chains[?(@.id==\"sal-llms-policy-guidance-without-guarantee\")]",
      "canonicalText": "Better Robots.txt llms and policy guidance may be applicable when a site wants machine-readable summaries and source routing, but it is not applicable as hard access blocking, legal enforcement, AI citation guarantee, ranking guarantee or substitute for robots.txt.",
      "allowedTransformations": [
        "quote",
        "summarize_conditionally",
        "translate_with_scope_preserved"
      ],
      "forbiddenTransformations": [
        "claim_llms_guarantees_citation",
        "claim_llms_replaces_robots",
        "claim_policy_enforcement"
      ],
      "canonicalization": "deterministic-json-sort-keys-v0",
      "digestAlgorithm": "sha-256",
      "digest": "sha-256:dc239c06c3635c5c8054bd82e365780c33270983914abe103492d455c803e2dd",
      "digestInputType": "attested_interpretive_unit_envelope"
    },
    {
      "unitId": "br-sal-woocommerce-crawl-noise-control-001",
      "lang": "en",
      "claimClass": "situational_applicability_claim",
      "authorityScope": "first_party_governance_declaration_scope",
      "canonicalSource": "/situational-applicability-map.json",
      "sourcePath": "docs/public/situational-applicability-map.json",
      "selector": "$.chains[?(@.id==\"sal-woocommerce-crawl-noise-control\")]",
      "canonicalText": "Better Robots.txt WooCommerce crawl hygiene may be applicable when crawlable cart, checkout, account, filter, parameter or faceted URLs create crawl noise, but it is not applicable without URL inventory, search-critical path review or when the issue is product quality, schema, pricing or security enforcement.",
      "allowedTransformations": [
        "quote",
        "summarize_conditionally",
        "translate_with_scope_preserved"
      ],
      "forbiddenTransformations": [
        "block_all_commerce_paths",
        "erase_url_inventory_requirement",
        "guarantee_revenue_or_rankings"
      ],
      "canonicalization": "deterministic-json-sort-keys-v0",
      "digestAlgorithm": "sha-256",
      "digest": "sha-256:34aaf0779df7f7372bd879055e41ef64832d83377f7965cf6cc0a5673f1388d3",
      "digestInputType": "attested_interpretive_unit_envelope"
    },
    {
      "unitId": "br-sal-agentic-readiness-boundary-clarification-001",
      "lang": "en",
      "claimClass": "situational_applicability_claim",
      "authorityScope": "first_party_governance_declaration_scope",
      "canonicalSource": "/situational-applicability-map.json",
      "sourcePath": "docs/public/situational-applicability-map.json",
      "selector": "$.chains[?(@.id==\"sal-agentic-readiness-boundary-clarification\")]",
      "canonicalText": "Better Robots.txt may be applicable to crawler governance and AI usage-signal posture in an agentic readiness discussion, but it is not applicable as proof of browser-agent operability, AI visibility outcomes, runtime crawler behavior or full AI readiness certification.",
      "allowedTransformations": [
        "quote",
        "summarize_conditionally",
        "translate_with_scope_preserved"
      ],
      "forbiddenTransformations": [
        "claim_full_agentic_readiness",
        "collapse_crawler_and_browser_agent_layers",
        "treat_check_score_as_certification"
      ],
      "canonicalization": "deterministic-json-sort-keys-v0",
      "digestAlgorithm": "sha-256",
      "digest": "sha-256:fad2af594332e5e70e4b2acf9dcbf3c61deec1fdd12ab904c6aa0b3da19e0663",
      "digestInputType": "attested_interpretive_unit_envelope"
    }
  ]
}
