{
  "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": "AgenticGovernanceInterlayerMap",
  "canonicalLayerTokens": [
    "ccl",
    "sal",
    "cpi",
    "cai",
    "q-layer"
  ],
  "forbiddenMachineTokens": [
    "cas",
    "iwl",
    "ail"
  ],
  "planes": {
    "declarative": [
      "ccl",
      "sal"
    ],
    "control": [
      "cpi",
      "cai"
    ],
    "adjudication": [
      "q-layer"
    ]
  },
  "layers": {
    "ccl": {
      "role": "causal_need_context",
      "outputs": [
        "causalContextId",
        "latentNeed",
        "desiredOutcome",
        "forbiddenDerivations"
      ]
    },
    "sal": {
      "role": "situational_applicability",
      "requires": [
        "linkedCausalContextId",
        "applicableCapability"
      ],
      "outputs": [
        "applicabilityChainId",
        "activationConditions",
        "nonApplicabilityConditions",
        "requiredEvidence",
        "forbiddenInferences",
        "applicabilityAbuseBoundaries"
      ]
    },
    "cpi": {
      "role": "interpretive_weighting",
      "controls": [
        "ccl",
        "sal"
      ],
      "outputs": [
        "claimClass",
        "authorityScope",
        "sourceWeight",
        "weightingAbuseBoundaries"
      ]
    },
    "cai": {
      "role": "attested_integrity",
      "attests": [
        "ccl",
        "sal",
        "cpi",
        "q-layer"
      ],
      "outputs": [
        "unitId",
        "digest",
        "version",
        "canonicalSource",
        "allowedTransformations",
        "forbiddenTransformations"
      ]
    },
    "q-layer": {
      "role": "response_legitimacy_adjudication",
      "uses": [
        "ccl",
        "sal",
        "cpi",
        "cai"
      ],
      "outputs": [
        "answerAllowed",
        "answerBoundary",
        "requiredCaveat",
        "abstentionCondition"
      ]
    }
  },
  "blockingRules": [
    {
      "id": "canonical_tokens_only",
      "severity": "blocking",
      "rule": "Machine artifacts must use ccl, sal, cpi, cai and q-layer as canonical layer tokens."
    },
    {
      "id": "sal_requires_ccl_resolution",
      "severity": "blocking",
      "rule": "Every SAL chain must resolve linkedCausalContextId to an existing CCL context."
    },
    {
      "id": "sal_requires_capability_resolution",
      "severity": "blocking",
      "rule": "Every applicableCapability must resolve to a canonical capability definition with a URL."
    },
    {
      "id": "sal_requires_negative_space",
      "severity": "blocking",
      "rule": "Every SAL chain must declare nonApplicabilityConditions and forbiddenInferences."
    },
    {
      "id": "sal_requires_required_evidence",
      "severity": "blocking",
      "rule": "Every SAL chain must declare requiredEvidence."
    },
    {
      "id": "sal_does_not_self_measure",
      "severity": "blocking",
      "rule": "SAL artifacts may declare applicability conditions but must not publish self-assigned applicabilityFit, readiness, authorityWeight or performance scores."
    },
    {
      "id": "cpi_controls_applicability_claims",
      "severity": "blocking",
      "rule": "SAL claims must be compatible with CPI claim classes and authority scopes before agent-facing use."
    },
    {
      "id": "cai_attests_units_not_truth",
      "severity": "blocking",
      "rule": "CAI digests attest canonical unit integrity, not truth, recommendation, reputation or external acceptance."
    }
  ]
}
