{
  "schemaVersion": 1,
  "title": {
    "ru": "Telegram-запись: протокол изолированной проверки",
    "kk": "Telegram-да жазылу: оқшауланған тексеру хаттамасы"
  },
  "author": "Technokod",
  "testedAt": "2026-10-22T07:40:31.769Z",
  "publishedOn": "2026-10-23",
  "status": "isolated_functional_prototype",
  "method": "Synthetic Telegram Bot API Update fixtures; disposable PostgreSQL using the own Technokod CRM Lead schema; outbox records intents only, no network sender.",
  "counts": {
    "passed": 20,
    "failed": 0,
    "syntheticCRMRows": 5,
    "commercialCustomers": 0,
    "externalMessagesSent": 0
  },
  "checks": [
    {
      "name": "RU: no CRM lead before explicit confirmation",
      "status": "passed"
    },
    {
      "name": "RU: confirmation atomically creates genuine Lead and booking without phone",
      "status": "passed"
    },
    {
      "name": "Duplicate update is idempotent, including outbox",
      "status": "passed"
    },
    {
      "name": "Different update on same confirmation does not duplicate lead",
      "status": "passed"
    },
    {
      "name": "Foreign cancellation cannot change another booking",
      "status": "passed"
    },
    {
      "name": "Foreign contact is rejected",
      "status": "passed"
    },
    {
      "name": "Optional same-user contact fixture updates existing CRM card",
      "status": "passed"
    },
    {
      "name": "Handoff records request without staff notification or new lead",
      "status": "passed"
    },
    {
      "name": "KK: persisted language survives new handler instance and creates second Lead",
      "status": "passed"
    },
    {
      "name": "KK reply contains explicit CRM acknowledgement and exact UTC+5 slot",
      "status": "passed"
    },
    {
      "name": "Cancellation preserves CRM history and frees slot",
      "status": "passed"
    },
    {
      "name": "Stale confirmation after cancellation cannot recreate booking",
      "status": "passed"
    },
    {
      "name": "Two concurrent clients competing for one slot yield exactly one booking/Lead",
      "status": "passed"
    },
    {
      "name": "Concurrent duplicate update creates one response and one Lead",
      "status": "passed"
    },
    {
      "name": "Invalid slot and forged confirmation cannot create Lead",
      "status": "passed"
    },
    {
      "name": "Group and mismatched sender updates are ignored",
      "status": "passed"
    },
    {
      "name": "CRM database error rolls back update, booking and success acknowledgement; retry can succeed",
      "status": "passed"
    },
    {
      "name": "Webhook secret helper rejects missing/wrong values (no HTTP delivery claimed)",
      "status": "passed"
    },
    {
      "name": "All generated Leads are test-only; real scope is zero; acquisition unknown",
      "status": "passed"
    },
    {
      "name": "No network sender, bot token, source question or unlabelled reply",
      "status": "passed"
    }
  ],
  "nativeTelegramDeliveryVerified": false,
  "productionCRMVerified": false,
  "thirdPartyCRMVerified": false,
  "aiUsed": false,
  "independentHumanKKReview": false,
  "limitations": [
    "No real Telegram Update received; no device delivery verified.",
    "No production deployment, real calendar, reminders, payments or actual staff notifications.",
    "Optional phone and unknown acquisition source; test rows are not customers.",
    "Webhook secret check is a pure helper test, not a verified HTTPS webhook.",
    "The public summary omits fixtures, contact values, identifiers and private infrastructure. Source hash identifies the retained internal protocol; it is not independent certification."
  ],
  "internalOriginalProtocolSHA256": "ca5f27e35c46d64e5cf0bae9db00c280f638586023755f6fecc1bff8ac8bf4db",
  "serviceURLs": [
    "https://technokod.kz/services/telegram-bot",
    "https://technokod.kz/kk/services/telegram-bot"
  ]
}
