{
  "schemaVersion": 1,
  "id": "P49-C06",
  "title": "Справочная: неясный ответ, исправление адреса и выход к человеку",
  "author": {
    "id": "P49",
    "name": "Григорий Никитин"
  },
  "specialty": "Проверка качества ИИ-помощников",
  "projectStatus": "concept",
  "source": {
    "document": "catalogue_60_personas.md",
    "briefId": "P49-C06",
    "title": "Голосовая справочная",
    "kind": "editorial_concept",
    "data": "synthetic"
  },
  "context": "Неясное высказывание нельзя считать согласием. Важны границы диалога: число повторов, исправление предыдущего значения и возможность закончить разговор.",
  "decision": "Я разделил события unknown, address, correct, human и stop. Неясность увеличивает счетчик, но не меняет адрес. Исправление хранит только последнее подтвержденное значение; после завершения события игнорируются.",
  "constraint": "Вход — уже размеченные текстовые события. Аудио, ASR и распознавание намерения не оцениваются.",
  "steps": [
    "Зафиксировать вход и ожидаемое поведение до запуска.",
    "Выполнить обработчик на обычном и конфликтном сценарии.",
    "Сохранить фактический журнал и повторяемую проверку."
  ],
  "inspection": [
    "Исправленный адрес остается кандидатом до отдельного confirm — проверено.",
    "Поздний ввод после stop не меняет подтвержденный адрес — проверено.",
    "Три неясности переводят к человеку, шум не становится адресом — проверено.",
    "Без confirm кандидат не становится подтвержденным значением — проверено."
  ],
  "sample": {
    "headers": [
      "Сессия",
      "Вход",
      "Действие",
      "Кандидат",
      "Подтвержденный адрес",
      "Статус"
    ],
    "rows": [
      [
        "A",
        "Лесная, 4",
        "Повторить кандидат для подтверждения",
        "Лесная, 4",
        "",
        "Открыта"
      ],
      [
        "A",
        "Нет, Речная, 8",
        "Повторить кандидат для подтверждения",
        "Речная, 8",
        "",
        "Открыта"
      ],
      [
        "A",
        "Да, Речная, 8 — верно",
        "Адрес подтвержден",
        "Речная, 8",
        "Речная, 8",
        "Открыта"
      ],
      [
        "A",
        "Стоп",
        "Подтвердить остановку",
        "Речная, 8",
        "Речная, 8",
        "Завершена"
      ],
      [
        "A",
        "Ошибочный поздний адрес",
        "Игнорировать после завершения",
        "Речная, 8",
        "Речная, 8",
        "Завершена"
      ],
      [
        "B",
        "[неразборчиво]",
        "Переспросить",
        "",
        "",
        "Открыта"
      ],
      [
        "B",
        "М-м",
        "Переспросить",
        "",
        "",
        "Открыта"
      ],
      [
        "B",
        "[шум]",
        "Передать после трех уточнений",
        "",
        "",
        "Передача человеку"
      ],
      [
        "C",
        "Позовите человека",
        "Передать",
        "",
        "",
        "Передача человеку"
      ]
    ]
  },
  "sampleNote": "Авторский набор событий и полные тексты. Все решения выполняются локальным кодом, внешняя модель не вызывается.",
  "caseStudy": {
    "role": "Инженер проверки сценариев и доступа",
    "contribution": "Я разделил кандидат адреса, его подтверждение и остановку диалога и проверил поздние события.",
    "objective": "Текстовые события проходят конечный автомат; три неясных ответа завершают цикл переводом, а «стоп» закрывает сценарий.",
    "problem": "Неясное высказывание нельзя считать согласием. Важны границы диалога: число повторов, исправление предыдущего значения и возможность закончить разговор.",
    "result": "В A исправление создает чистый кандидат «Речная, 8», но подтвержденное поле остается пустым до отдельного confirm. После подтверждения и stop поздний ввод игнорируется. B передается человеку после третьей неясности, C — по прямой просьбе.",
    "deliverables": [
      "index.html",
      "source.json",
      "source.csv",
      "result.json",
      "result.csv",
      "engine.js",
      "checks.json",
      "style.css"
    ],
    "blocks": [
      {
        "type": "text",
        "title": "Исправление адреса ещё нужно подтвердить",
        "text": "Реплика «Нет, Речная, 8» исправляет кандидат, но в адресное поле попадает чистое «Речная, 8». До отдельного подтверждения оно не становится согласованным значением. После остановки поздняя реплика также не оживляет сценарий. Здесь важен переход состояния, а не просто удачное извлечение улицы из текста."
      }
    ]
  },
  "deliverable": {
    "type": "app",
    "entry": "/catalogue/deliverables/p49-c06/index.html",
    "label": "Открыть работающий материал",
    "files": [
      {
        "path": "/catalogue/deliverables/p49-c06/index.html",
        "name": "index.html",
        "mimeType": "text/html"
      },
      {
        "path": "/catalogue/deliverables/p49-c06/source.json",
        "name": "source.json",
        "mimeType": "application/json"
      },
      {
        "path": "/catalogue/deliverables/p49-c06/source.csv",
        "name": "source.csv",
        "mimeType": "text/csv"
      },
      {
        "path": "/catalogue/deliverables/p49-c06/result.json",
        "name": "result.json",
        "mimeType": "application/json"
      },
      {
        "path": "/catalogue/deliverables/p49-c06/result.csv",
        "name": "result.csv",
        "mimeType": "text/csv"
      },
      {
        "path": "/catalogue/deliverables/p49-c06/engine.js",
        "name": "engine.js",
        "mimeType": "text/javascript"
      },
      {
        "path": "/catalogue/deliverables/p49-c06/verify.cjs",
        "name": "verify.cjs",
        "mimeType": "text/javascript"
      },
      {
        "path": "/catalogue/deliverables/p49-c06/checks.json",
        "name": "checks.json",
        "mimeType": "application/json"
      },
      {
        "path": "/catalogue/deliverables/p49-c06/style.css",
        "name": "style.css",
        "mimeType": "text/css"
      }
    ],
    "summary": "В A исправление создает чистый кандидат «Речная, 8», но подтвержденное поле остается пустым до отдельного confirm. После подтверждения и stop поздний ввод игнорируется. B передается человеку после третьей неясности, C — по прямой просьбе."
  },
  "takeaway": "В A исправление создает чистый кандидат «Речная, 8», но подтвержденное поле остается пустым до отдельного confirm. После подтверждения и stop поздний ввод игнорируется. B передается человеку после третьей неясности, C — по прямой просьбе.",
  "capabilities": [
    "completed_app"
  ],
  "externalConnections": []
}
