{
  "proof": {
    "id": 48,
    "buyerLabel": "Интернет-магазинам — разработка проверки товарных карточек",
    "deliverableTitle": "Протокол проверки карточек",
    "deliverableDescription": "Пропуски и похожие артикулы разделены с решением редактора.",
    "pilotInputs": [
      "Выгрузка одной товарной категории",
      "Схема обязательных характеристик",
      "Правила различения и объединения артикулов"
    ],
    "pilotAcceptance": "Пропуски находят до публикации; заполненность не выдаётся за достоверность.",
    "scenario": {
      "title": "Похожее название не дубль",
      "before": "КАТ-048: у УЧ-048 «Учебный насос» не заполнена мощность, единица Вт.",
      "conflict": "Ручная подстановка 750 не доказывает, что значение есть в паспорте.",
      "decision": "Пометить 750 Вт как ручной учебный ввод; проверку паспорта оставить незавершённой.",
      "after": "Поле заполнено, но статус проверки источника остаётся отдельным."
    }
  },
  "version": "0.4",
  "status": "Проект для согласования",
  "solutionId": 48,
  "slug": "catalog-quality",
  "title": "Проверка товарного каталога",
  "goal": "Находите дубли и пробелы каталога до публикации",
  "buyer": "Руководитель товарного контента или интернет-магазина.",
  "system": "Товарный учёт / CRM",
  "reviewer": "Менеджер и ответственный за справочники",
  "entities": "Артикул, единица, количество",
  "phases": [
    {
      "title": "Разобрать ваш процесс",
      "description": "Новая выгрузка принесла дубли и пустые параметры.",
      "work": "Сверяем исходные примеры, роли и исключения. Фиксируем один сценарий пилота.",
      "result": "Схема процесса и согласованный состав первой версии."
    },
    {
      "title": "Собрать рабочий прототип",
      "description": "Отчёт качества.",
      "work": "Показываем интерфейс и правила на согласованной выборке. Проверяем неоднозначные случаи с вашей командой.",
      "result": "Очередь исправлений."
    },
    {
      "title": "Подключить данные",
      "description": "Исходный каталог.",
      "work": "Сначала проверяем доступные выгрузки и интерфейсы. Если обмен возможен, согласуем поля, направления и права записи.",
      "result": "Подтверждённый способ обмена либо согласованный импорт. Если интерфейса нет — зафиксированное ограничение и решение о следующем шаге."
    },
    {
      "title": "Проверить в работе",
      "description": "Обнаружены контрольные типы ошибок.",
      "work": "Проводим контрольные сценарии, обучаем ответственных, передаём документацию и порядок восстановления.",
      "result": "Проверенная выгрузка и журнал."
    }
  ],
  "mapping": [
    {
      "field": "Артикул",
      "type": "text",
      "unit": "",
      "example": "УЧ-048",
      "rule": "Правило и обязательность подтверждаются на ваших исходниках."
    },
    {
      "field": "Название",
      "type": "text",
      "unit": "",
      "example": "Учебный насос",
      "rule": "Правило и обязательность подтверждаются на ваших исходниках."
    },
    {
      "field": "Мощность",
      "type": "text",
      "unit": "",
      "example": "",
      "rule": "Правило и обязательность подтверждаются на ваших исходниках."
    },
    {
      "field": "Единица мощности",
      "type": "text",
      "unit": "",
      "example": "Вт",
      "rule": "Правило и обязательность подтверждаются на ваших исходниках."
    }
  ],
  "flow": [
    {
      "label": "Ваши исходники",
      "text": "Исходный каталог."
    },
    {
      "label": "Правила и интерфейс",
      "text": "Поиск дублей"
    },
    {
      "label": "Проверка сотрудником",
      "text": "Менеджер и ответственный за справочники"
    },
    {
      "label": "Результат в работе",
      "text": "Проверенная выгрузка и журнал."
    }
  ],
  "scope": [
    "Отчёт качества.",
    "Очередь исправлений.",
    "Проверенная выгрузка и журнал."
  ],
  "inputs": [
    "Исходный каталог.",
    "Правила заполнения категории.",
    "Подтверждённые примеры дублей и правильных карточек."
  ],
  "acceptance": [
    "Обнаружены контрольные типы ошибок.",
    "Исходники сохраняются для отмены.",
    "Дубли не объединяются без разрешённого правила."
  ],
  "boundary": "Неизвестные свойства не выдумываются; нужен подтверждённый первоисточник.",
  "budgets": [
    [
      70,
      140
    ],
    [
      220,
      450
    ],
    [
      450,
      900
    ]
  ],
  "group": "data",
  "openQuestions": [
    "Какой объём и формат каталога?",
    "Есть правила обязательных характеристик?",
    "Какие системы, версии и способы выгрузки используются сейчас?",
    "Кто подтверждает результат и кому разрешено менять правила?"
  ],
  "failureCases": [
    "Неполные или некорректные вводные: показать конкретные поля, не выдавать успешный результат.",
    "Неоднозначное соответствие или редакция: передать ответственному на проверку.",
    "Повторная отправка: исключить повторное создание по согласованному идентификатору.",
    "Недоступный внешний источник: сохранить состояние, показать ошибку и согласованный повтор.",
    "Изменение подтверждённых вводных: новая редакция и повторное подтверждение."
  ],
  "rights": [
    "Просмотр — только разрешённые записи и результаты.",
    "Исполнение — ввод и исправление в пределах назначенных задач.",
    "Согласование — подтверждение результата и возврат с причиной.",
    "Администрирование — пользователи, справочники и версии правил."
  ],
  "custom": "Возможна разработка отдельного решения под уникальный процесс, собственные правила, интерфейсы и инфраструктуру компании."
}