{
  "schemaVersion": 1,
  "id": "P46-C03",
  "title": "Подарки для рисования: рекомендации только из каталога SKU",
  "author": {
    "id": "P46",
    "name": "Дмитрий Елисеев"
  },
  "specialty": "Умный поиск и подбор в каталогах",
  "projectStatus": "concept",
  "source": {
    "document": "catalogue_60_personas.md",
    "briefId": "P46-C03",
    "title": "Подарки по интересам",
    "kind": "editorial_concept",
    "data": "synthetic"
  },
  "context": "Запрос ограничен 3000 ₽ и интересом к рисованию. В каталоге есть товары для живописи, дорогой мольберт, закончившийся скетчбук и похожий набор для другого занятия.",
  "decision": "Я задал открытый словарь интересов и использую его только для тегов существующих SKU. Возрастное ограничение применяется отдельно. Неизвестный интерес дает запрос уточнения, а не новый товар.",
  "constraint": "Каталог и остатки авторские. Выдача не является действующим магазином.",
  "steps": [
    "Создать карточки восьми существующих в наборе SKU.",
    "Связать интерес с тегом, затем проверить бюджет, остаток и возраст.",
    "Проверить неизвестный интерес и более строгий возраст."
  ],
  "inspection": [
    "Рисованиедо 3000 даетчетыре существующих SKU — проверено.",
    "Возраст 8 исключает A12 и INK1 независимо от бюджета — проверено.",
    "Неизвестный интерес не генерирует товар — проверено.",
    "Отрицательный параметр строки исключает ложный подбор — проверено.",
    "Нечисловой параметр строки исключает ложный подбор — проверено."
  ],
  "sample": {
    "headers": [
      "SKU",
      "Название",
      "Цена, ₽",
      "Остаток",
      "Решение",
      "Основание"
    ],
    "rows": [
      [
        "C6",
        "Мелки 6 цветов",
        "500",
        "10",
        "Подходит",
        "Все условия выполнены"
      ],
      [
        "P24",
        "Карандаши 24 цвета",
        "1800",
        "4",
        "Подходит",
        "Все условия выполнены"
      ],
      [
        "A12",
        "Акварель 12 цветов",
        "2400",
        "7",
        "Подходит",
        "Все условия выполнены"
      ],
      [
        "INK1",
        "Перьевой набор",
        "2800",
        "3",
        "Подходит",
        "Все условия выполнены"
      ],
      [
        "M1",
        "Набор медиаторов",
        "700",
        "8",
        "Исключен",
        "другой интерес"
      ],
      [
        "SK1",
        "Скетчбук A5",
        "900",
        "0",
        "Исключен",
        "нет остатка"
      ],
      [
        "T1",
        "Походная кружка",
        "1500",
        "5",
        "Исключен",
        "другой интерес"
      ],
      [
        "E1",
        "Настольный мольберт",
        "3400",
        "2",
        "Исключен",
        "выше бюджета"
      ]
    ]
  },
  "sampleNote": "Авторский контрольный набор; не клиентские документы и не результаты внешней модели.",
  "caseStudy": {
    "role": "Разработчик подбора в каталогах",
    "contribution": "Я составил подбор подарков с ограничениями цены и остатка и добавил обработку недопустимых значений.",
    "objective": "Предпочтение «рисование» отбирает существующие товары с ценой и остатком, не придумывая идеальный набор.",
    "problem": "Запрос ограничен 3000 ₽ и интересом к рисованию. В каталоге есть товары для живописи, дорогой мольберт, закончившийся скетчбук и похожий набор для другого занятия.",
    "result": "Для взрослого получателя найдены четыре SKU стоимостью 500–2800 ₽. Для возраста 8 лет остаются C6 и P24. Закончившийся SK1 не появляется, неизвестная астрономия не порождает новый набор.",
    "deliverables": [
      "index.html",
      "source.json",
      "source.csv",
      "result.json",
      "result.csv",
      "engine.js",
      "checks.json",
      "style.css"
    ],
    "blocks": [
      {
        "type": "text",
        "title": "Скетчбук подходит по цене, но закончился",
        "text": "SK1 стоит 900 и связан с рисованием, однако остаток равен нулю. Карандаши P24 стоят 1800, подходят по возрасту и доступны в количестве четырёх. Я оставил наличие обязательным условием: привлекательное описание скетчбука не должно превращаться в рекомендацию недоступного подарка."
      }
    ]
  },
  "deliverable": {
    "type": "app",
    "entry": "/catalogue/deliverables/p46-c03/index.html",
    "label": "Открыть работающий материал",
    "files": [
      {
        "path": "/catalogue/deliverables/p46-c03/index.html",
        "name": "index.html",
        "mimeType": "text/html"
      },
      {
        "path": "/catalogue/deliverables/p46-c03/source.json",
        "name": "source.json",
        "mimeType": "application/json"
      },
      {
        "path": "/catalogue/deliverables/p46-c03/source.csv",
        "name": "source.csv",
        "mimeType": "text/csv"
      },
      {
        "path": "/catalogue/deliverables/p46-c03/result.json",
        "name": "result.json",
        "mimeType": "application/json"
      },
      {
        "path": "/catalogue/deliverables/p46-c03/result.csv",
        "name": "result.csv",
        "mimeType": "text/csv"
      },
      {
        "path": "/catalogue/deliverables/p46-c03/engine.js",
        "name": "engine.js",
        "mimeType": "text/javascript"
      },
      {
        "path": "/catalogue/deliverables/p46-c03/verify.cjs",
        "name": "verify.cjs",
        "mimeType": "text/javascript"
      },
      {
        "path": "/catalogue/deliverables/p46-c03/checks.json",
        "name": "checks.json",
        "mimeType": "application/json"
      },
      {
        "path": "/catalogue/deliverables/p46-c03/style.css",
        "name": "style.css",
        "mimeType": "text/css"
      }
    ],
    "summary": "Для взрослого получателя найдены четыре SKU стоимостью 500–2800 ₽. Для возраста 8 лет остаются C6 и P24. Закончившийся SK1 не появляется, неизвестная астрономия не порождает новый набор."
  },
  "takeaway": "Для взрослого получателя найдены четыре SKU стоимостью 500–2800 ₽. Для возраста 8 лет остаются C6 и P24. Закончившийся SK1 не появляется, неизвестная астрономия не порождает новый набор.",
  "capabilities": [
    "completed_app"
  ],
  "externalConnections": []
}
