{
  "schemaVersion": 1,
  "id": "P50-C02",
  "title": "Карточки товаров: цена принятого пакета при явном тарифе",
  "author": {
    "id": "P50",
    "name": "Вячеслав Фомин"
  },
  "specialty": "Стоимость и скорость ИИ-сервисов",
  "projectStatus": "concept",
  "source": {
    "document": "catalogue_60_personas.md",
    "briefId": "P50-C02",
    "title": "Пакетная генерация описаний",
    "kind": "editorial_concept",
    "data": "synthetic"
  },
  "context": "Цена одной попытки скрывает стоимость брака. В наборе есть числовая масса, отсутствие массы и два разных комплекта; приемка обязана сохранять подтвержденные поля.",
  "decision": "Baseline использует короткий шаблон без массы. Revised добавляет единицу и не заполняет неизвестную массу. После фактического формирования строк независимый валидатор сравнивает обязательный фрагмент с исходной спецификацией.",
  "constraint": "Денежная цена — изменяемое допущение для расчета, а не реальный счет модели. Генерация здесь шаблонная и локальная.",
  "steps": [
    "Зафиксировать полный вход и два режима обработки.",
    "Проверить правильность результата до сравнения времени.",
    "Выполнить 50 прогревочных запусков и 30 серий по 100 повторов; сохранить все сводные времена."
  ],
  "inspection": [
    "Revised сохраняет все пять известных масс; неизвестные не выдумывает — проверено.",
    "Baseline проходит только на трех позициях без заданной массы — проверено.",
    "Нулевой тариф дает нулевую стоимость, не пустое значение — проверено."
  ],
  "sample": {
    "headers": [
      "ID",
      "Описание",
      "Приемка"
    ],
    "rows": [
      [
        "K1",
        "Блокнот. Комплект: 1 блокнот. Масса: 120 г.",
        "Принято"
      ],
      [
        "K2",
        "Карандаш. Комплект: 3 карандаша. Масса: 8 г.",
        "Принято"
      ],
      [
        "K3",
        "Папка. Комплект: 1 папка. Масса: 90 г.",
        "Принято"
      ],
      [
        "K4",
        "Конверт. Комплект: 5 конвертов. Масса: 12 г.",
        "Принято"
      ],
      [
        "K5",
        "Лента. Комплект: 1 рулон. Масса: 45 г.",
        "Принято"
      ],
      [
        "K6",
        "Открытка. Комплект: 1 открытка.",
        "Принято"
      ],
      [
        "K7",
        "Закладка. Комплект: 2 закладки.",
        "Принято"
      ],
      [
        "K8",
        "Наклейка. Комплект: 6 наклеек.",
        "Принято"
      ]
    ]
  },
  "sampleNote": "Авторский набор. В timings.json записан фактически выполненный локальный замер кода; тариф модели и сеть в него не входят.",
  "caseStudy": {
    "role": "Разработчик стендов измерения обработки данных",
    "contribution": "Я собрал восемь карточек, исправил их подготовку и пересчитал прохождение валидатора и условную стоимость попыток.",
    "objective": "Две процедуры формируют восемь описаний; валидатор отбрасывает потерянную массу и считает стоимость только принятых карточек.",
    "problem": "Цена одной попытки скрывает стоимость брака. В наборе есть числовая масса, отсутствие массы и два разных комплекта; приемка обязана сохранять подтвержденные поля.",
    "result": "Восемь строк действительно сформированы в обоих режимах. Короткий вариант прошел приемку в трех случаях, исправленный — в восьми. При условной цене 0,40 ₽ попытки принятая карточка стоит 1,07 и 0,40 ₽ соответственно; тариф можно изменить.",
    "deliverables": [
      "index.html",
      "source.json",
      "source.csv",
      "result.json",
      "result.csv",
      "engine.js",
      "checks.json",
      "style.css",
      "timings.json"
    ],
    "blocks": [
      {
        "type": "text",
        "title": "Повторная попытка из-за неверной карточки",
        "text": "До исправления проверку проходят три карточки из восьми, после — все восемь. В расчёте каждая лишняя попытка имеет одинаковую условную цену 0,4. Это позволяет разобрать влияние ошибок подготовки на число попыток отдельно от тарифов внешнего сервиса и не выдавать расчётную сумму за счёт провайдера."
      }
    ]
  },
  "deliverable": {
    "type": "analysis",
    "entry": "/catalogue/deliverables/p50-c02/index.html",
    "label": "Открыть работающий материал",
    "files": [
      {
        "path": "/catalogue/deliverables/p50-c02/index.html",
        "name": "index.html",
        "mimeType": "text/html"
      },
      {
        "path": "/catalogue/deliverables/p50-c02/source.json",
        "name": "source.json",
        "mimeType": "application/json"
      },
      {
        "path": "/catalogue/deliverables/p50-c02/source.csv",
        "name": "source.csv",
        "mimeType": "text/csv"
      },
      {
        "path": "/catalogue/deliverables/p50-c02/result.json",
        "name": "result.json",
        "mimeType": "application/json"
      },
      {
        "path": "/catalogue/deliverables/p50-c02/result.csv",
        "name": "result.csv",
        "mimeType": "text/csv"
      },
      {
        "path": "/catalogue/deliverables/p50-c02/engine.js",
        "name": "engine.js",
        "mimeType": "text/javascript"
      },
      {
        "path": "/catalogue/deliverables/p50-c02/verify.cjs",
        "name": "verify.cjs",
        "mimeType": "text/javascript"
      },
      {
        "path": "/catalogue/deliverables/p50-c02/checks.json",
        "name": "checks.json",
        "mimeType": "application/json"
      },
      {
        "path": "/catalogue/deliverables/p50-c02/style.css",
        "name": "style.css",
        "mimeType": "text/css"
      },
      {
        "path": "/catalogue/deliverables/p50-c02/benchmark.cjs",
        "name": "benchmark.cjs",
        "mimeType": "text/javascript"
      },
      {
        "path": "/catalogue/deliverables/p50-c02/timings.json",
        "name": "timings.json",
        "mimeType": "application/json"
      }
    ],
    "summary": "Восемь строк действительно сформированы в обоих режимах. Короткий вариант прошел приемку в трех случаях, исправленный — в восьми. При условной цене 0,40 ₽ попытки принятая карточка стоит 1,07 и 0,40 ₽ соответственно; тариф можно изменить."
  },
  "takeaway": "Восемь строк действительно сформированы в обоих режимах. Короткий вариант прошел приемку в трех случаях, исправленный — в восьми. При условной цене 0,40 ₽ попытки принятая карточка стоит 1,07 и 0,40 ₽ соответственно; тариф можно изменить.",
  "capabilities": [
    "completed_analysis"
  ],
  "externalConnections": []
}
