{
  "schemaVersion": "0.1.0-proposed",
  "type": "SituationalApplicabilitySpec",
  "site": "https://pagup.com/",
  "status": "proposed",
  "token": "sal",
  "requiredFields": [
    "linkedCausalContextId",
    "applicableCapability",
    "activationConditions",
    "nonApplicabilityConditions",
    "requiredEvidence",
    "forbiddenInferences",
    "applicabilityAbuseBoundaries",
    "riskClass",
    "domain"
  ],
  "requiredChainFields": [
    "linkedCausalContextId",
    "applicableCapability",
    "activationConditions",
    "nonApplicabilityConditions",
    "requiredEvidence",
    "forbiddenInferences",
    "applicabilityAbuseBoundaries",
    "riskClass",
    "domain"
  ],
  "validationRules": [
    {
      "id": "sal_requires_ccl_resolution",
      "severity": "blocking",
      "rule": "Every linkedCausalContextId must resolve to an existing and attested CCL unit."
    },
    {
      "id": "sal_requires_capability_resolution",
      "severity": "blocking",
      "rule": "Every applicableCapability must resolve to a canonical service, product, resource, or capability definition with a URL."
    },
    {
      "id": "sal_requires_negative_space",
      "severity": "blocking",
      "rule": "Every SAL chain must declare discriminating nonApplicabilityConditions and chain-specific forbiddenInferences."
    },
    {
      "id": "sal_requires_required_evidence",
      "severity": "blocking",
      "rule": "Every SAL chain must declare requiredEvidence before agent-facing use."
    },
    {
      "id": "sal_forbids_self_measurement",
      "severity": "blocking",
      "rule": "SAL artifacts may declare applicability conditions but must not publish self-assigned applicabilityFit, readinessScore, authorityWeight, integrityConfidence, agenticUseReadiness, or modelCompliance scores."
    },
    {
      "id": "sal_requires_risk_class_domain",
      "severity": "blocking",
      "rule": "Every SAL chain must declare riskClass and domain explicitly. No default to standard is allowed."
    }
  ],
  "antiTriviality": {
    "nonApplicabilityCondition": "A valid non-applicability condition must describe a plausible domain scenario where the capability should not be mobilized despite apparent neighboring need.",
    "forbiddenInference": "A valid forbidden inference must be specific to the chain and prevent a concrete abusive transformation, not generic boilerplate.",
    "weakExamples": [
      "not applicable if the customer does not want the service",
      "do not make abusive inferences"
    ]
  },
  "riskModel": {
    "requiredFields": [
      "riskClass",
      "domain"
    ],
    "riskClass": [
      "standard",
      "regulated",
      "high_stakes",
      "safety_critical"
    ],
    "domain": [
      "seo",
      "marketing",
      "health",
      "legal",
      "financial",
      "security",
      "education",
      "employment",
      "housing",
      "other"
    ],
    "noDefaultAllowed": true,
    "regulatedAdditionalRequirements": [
      "externalReferenceRequirements",
      "professionalReferralConditions",
      "disclaimerUnitId",
      "escalationConditions",
      "forbiddenDiagnosticInferences"
    ]
  }
}
