{
  "schemaVersion": "0.1.0-proposed",
  "site": "https://better-robots.com/",
  "siteName": "Better Robots.txt",
  "organization": "Pagup",
  "updated": "2026-07-09",
  "status": "proposed",
  "generatedFrom": "scripts/data/better-robots-situational-applicability.blueprint.json",
  "type": "DoctrineGlossary",
  "purpose": "Lock canonical layer tokens for Better Robots.txt governance and block drift in machine identifiers.",
  "canonicalTokens": [
    {
      "token": "ccl",
      "machineName": "causal-context",
      "displayNameEn": "Causal Context Layer",
      "displayNameFr": "Couche de contexte causal",
      "status": "proposed",
      "definitionEn": "Declares the causal need context in which a Better Robots.txt surface, product capability or audit function becomes relevant.",
      "definitionFr": "Déclare le contexte de besoin causal dans lequel une surface, une capacité produit ou une fonction d’audit Better Robots.txt devient pertinente.",
      "forbiddenAliases": [],
      "forbiddenDefinitions": [
        "service recommendation layer",
        "guarantee layer"
      ]
    },
    {
      "token": "sal",
      "machineName": "situational-applicability",
      "displayNameEn": "Situational Applicability Layer",
      "displayNameFr": "Couche d’applicabilité situationnelle",
      "status": "proposed",
      "definitionEn": "Declares the conditions under which a Better Robots.txt capability becomes applicable to a situation, including non-applicability, required evidence and forbidden inferences.",
      "definitionFr": "Déclare les conditions dans lesquelles une capacité Better Robots.txt devient applicable à une situation, y compris la non-applicabilité, les preuves requises et les inférences interdites.",
      "forbiddenAliases": [
        "cas"
      ],
      "forbiddenDefinitions": [
        "contextual value layer",
        "marketing value layer",
        "automatic recommendation layer"
      ]
    },
    {
      "token": "cpi",
      "machineName": "interpretive-weighting",
      "displayNameEn": "Interpretive Weighting Layer",
      "displayNameFr": "Couche de pondération interprétative",
      "status": "proposed",
      "definitionEn": "Weights Better Robots.txt sources and claims according to claim class, authority scope, evidence status and query context.",
      "definitionFr": "Pondère les sources et claims Better Robots.txt selon la classe de claim, la portée d’autorité, le statut probatoire et le contexte de requête.",
      "forbiddenAliases": [
        "iwl"
      ],
      "forbiddenDefinitions": [
        "interpretive plurality",
        "pluralité interprétative"
      ]
    },
    {
      "token": "cai",
      "machineName": "attested-integrity",
      "displayNameEn": "Attested Integrity Layer",
      "displayNameFr": "Couche d’attestation d’intégrité",
      "status": "proposed",
      "definitionEn": "Attests the integrity of selected canonical Better Robots.txt units with reproducible SHA-256 digests.",
      "definitionFr": "Atteste l’intégrité de certaines unités canoniques Better Robots.txt au moyen d’empreintes SHA-256 reproductibles.",
      "forbiddenAliases": [
        "ail"
      ],
      "forbiddenDefinitions": [
        "interpretive arbitration",
        "arbitrage interprétatif"
      ]
    },
    {
      "token": "q-layer",
      "machineName": "response-legitimacy",
      "displayNameEn": "Q-Layer",
      "displayNameFr": "Q-Layer",
      "status": "active",
      "definitionEn": "Adjudicates whether an answer can be produced without exceeding source support, declared scope, evidence or governance boundaries.",
      "definitionFr": "Arbitre si une réponse peut être produite sans dépasser les sources, la portée, les preuves ou les limites de gouvernance déclarées.",
      "forbiddenAliases": [],
      "forbiddenDefinitions": [
        "ranking layer",
        "marketing recommendation layer"
      ]
    }
  ],
  "machineTokenRule": "Use ccl, sal, cpi, cai and q-layer as canonical machine tokens. Do not use cas, iwl or ail as active machine tokens.",
  "forbiddenMachineTokens": [
    "cas",
    "iwl",
    "ail"
  ],
  "canonicalMachineTokens": [
    "ccl",
    "sal",
    "cpi",
    "cai",
    "q-layer"
  ]
}
