{
  "id": "POL-156",
  "slug": "pol-156",
  "title": "Published policy must not contain unreplaced template tokens",
  "statement": "The live privacy policy and terms must contain no {curly brace} or {{PLACEHOLDER}} tokens left from a template.",
  "rationale": "An unreplaced token proves the document was generated and never finished, which invalidates the whole page in a reviewer's eyes — if the company name is still a placeholder, no promise in the document is attributable to anyone. It is trivially detectable and embarrassingly common.",
  "layer": "POLICY_PAGE",
  "layerSlug": "policy-page",
  "object": "privacy policy body + terms body",
  "severity": "HIGH",
  "detectability": [
    "DETERMINISTIC"
  ],
  "failureClass": "TERMINAL_POLICY",
  "artifact": "privacy_policy",
  "authorities": [
    "TCR",
    "Twilio"
  ],
  "applicabilityText": "Applies to every 10DLC registration.",
  "universal": true,
  "remediation": "Search the published pages for \"{\" and \"[\" and replace every remaining token with real values, then re-publish.",
  "example": "Replace \"{{COMPANY_NAME}}\" with \"Acme Coffee Co, LLC\" and \"[EFFECTIVE DATE]\" with a real date.",
  "phase": "approval",
  "automated": true,
  "url": "https://ekas.io/rules/10dlc/policy-page/pol-156/",
  "markdown": "https://ekas.io/rules/10dlc/policy-page/pol-156.md",
  "registry": "https://ekas.io/rules/10dlc/",
  "updated": "2026-07-25",
  "licence": "CC BY 4.0 — https://creativecommons.org/licenses/by/4.0/"
}
