{
  "schemaVersion": 1,
  "id": "P37-C02",
  "title": "Пост салона: цена из выбранной версии прайса",
  "author": {
    "id": "P37",
    "name": "Дарья Крылова"
  },
  "specialty": "Конвейер контента с согласованием",
  "projectStatus": "concept",
  "source": {
    "document": "catalogue_60_personas.md",
    "briefId": "P37-C02",
    "title": "Сеть салонов",
    "kind": "editorial_concept",
    "data": "synthetic"
  },
  "context": "Цена услуги хранится в прайсе, а одобрение — у материала. Я сделал эти две версии видимыми рядом: иначе отметка «согласовано» переживёт изменение суммы.",
  "decision": "Сборщик требует совпадения филиала и версии. Он не пересогласовывает материал сам: после смены v4 на v5 показывает причину остановки, и только явное обновление версии согласования открывает сборку нового текста.",
  "constraint": "Преобразование выполняется в браузере по явным правилам подготовленного формата. Внешних систем, распознавания произвольных документов и генерации ответов LLM нет.",
  "steps": [
    "В v4 собирается объявление за 2800 ₽ для филиала Север.",
    "Изменить текущую версию на v5: сборка остановлена.",
    "Указать согласованную v5 и цену 3000: собирается новая сумма."
  ],
  "inspection": [
    "В v4 собирается объявление за 2800 ₽ для филиала Север.",
    "Изменить текущую версию на v5: сборка остановлена.",
    "Указать согласованную v5 и цену 3000: собирается новая сумма.",
    "Изменить филиал прайса: обнаруживается несоответствие."
  ],
  "sample": {
    "headers": [
      "Действие",
      "Наблюдаемый результат"
    ],
    "rows": [
      [
        "1",
        "В v4 собирается объявление за 2800 ₽ для филиала Север."
      ],
      [
        "2",
        "Изменить текущую версию на v5: сборка остановлена."
      ],
      [
        "3",
        "Указать согласованную v5 и цену 3000: собирается новая сумма."
      ],
      [
        "4",
        "Изменить филиал прайса: обнаруживается несоответствие."
      ]
    ]
  },
  "sampleNote": "Самостоятельный проект на подготовленных исходных данных. Действия выполняются локально.",
  "caseStudy": {
    "role": "Разработка исполняемого преобразования",
    "contribution": "Подготовил исходный материал, реализовал правила разбора и проверок, связал извлеченные поля с исходными фрагментами и добавил сохранение результата.",
    "objective": "Связать филиал, услугу и согласованную редакцию прайса до сборки объявления.",
    "problem": "Цена услуги хранится в прайсе, а одобрение — у материала. Я сделал эти две версии видимыми рядом: иначе отметка «согласовано» переживёт изменение суммы.",
    "result": "С исходными данными выходит объявление для филиала «Север»: уход S-12, 2800 ₽, 60 минут и предварительная запись. Разные метки текущей и согласованной версии или разные филиалы останавливают сборку. Сравнение цен внутри одной версии в эту модель не входит.",
    "deliverables": [
      "Исходный материал → результат",
      "Объявление с версией прайса",
      "Исходные данные и порядок самостоятельной проверки"
    ],
    "blocks": [
      {
        "type": "text",
        "title": "Согласование должно совпасть с прайсом",
        "text": "Сборщик требует совпадения филиала и версии. Он не пересогласовывает материал сам: после смены v4 на v5 показывает причину остановки, и только явное обновление версии согласования открывает сборку нового текста."
      },
      {
        "type": "text",
        "title": "Прайс обновился раньше согласования",
        "text": "Если текущая версия стала v5, а согласование осталось v4, пост не собирается. Простая замена цены не исправляет расхождение: сначала требуется согласовать именно новую редакцию."
      },
      {
        "type": "callout",
        "title": "Граница работы",
        "text": "Преобразование выполняется в браузере по явным правилам подготовленного формата. Внешних систем, распознавания произвольных документов и генерации ответов LLM нет."
      }
    ]
  },
  "deliverable": {
    "type": "workflow",
    "entry": "/catalogue/deliverables/p37-c02/index.html",
    "label": "Открыть работающий результат",
    "files": [
      {
        "path": "/catalogue/deliverables/p37-c02/index.html",
        "name": "Интерактивный результат",
        "mimeType": "text/html"
      },
      {
        "path": "/catalogue/deliverables/p37-c02/source.json",
        "name": "Исходные условия и модель",
        "mimeType": "application/json"
      },
      {
        "path": "/catalogue/deliverables/p37-c02/README.html",
        "name": "Повторить проверку",
        "mimeType": "text/html"
      },
      {
        "path": "/catalogue/deliverables/p37-c02/input.txt",
        "name": "Исходный материал",
        "mimeType": "text/plain"
      },
      {
        "path": "/catalogue/deliverables/p37-c02/example-output.json",
        "name": "Результат разбора исходного примера",
        "mimeType": "application/json"
      }
    ],
    "summary": "С исходными данными выходит объявление для филиала «Север»: уход S-12, 2800 ₽, 60 минут и предварительная запись. Разные метки текущей и согласованной версии или разные филиалы останавливают сборку. Сравнение цен внутри одной версии в эту модель не входит."
  },
  "takeaway": "С исходными данными выходит объявление для филиала «Север»: уход S-12, 2800 ₽, 60 минут и предварительная запись. Разные метки текущей и согласованной версии или разные филиалы останавливают сборку. Сравнение цен внутри одной версии в эту модель не входит.",
  "capabilities": [
    "completed_workflow"
  ],
  "externalConnections": []
}
