{
  "schemaVersion": 1,
  "id": "P42-C06",
  "title": "Розетки: механизм, рамка и комплект в разных строках",
  "author": {
    "id": "P42",
    "name": "Борис Зайцев"
  },
  "specialty": "Сопоставление прайсов и номенклатуры",
  "projectStatus": "concept",
  "source": {
    "document": "catalogue_60_personas.md",
    "briefId": "P42-C06",
    "title": "Электроустановочные изделия",
    "kind": "editorial_concept",
    "data": "synthetic"
  },
  "context": "В одном прайсе R1 означает механизм, в другом — рамку на два поста. У комплекта дополнительно важно наличие обоих элементов, а не только общий цвет.",
  "decision": "Я сравниваю серию, тип компонента, число постов, цвет и состав. Для состава разрешена перестановка перечисления, но не исчезновение элемента. Пустой тип идет на уточнение.",
  "constraint": "Компоненты обозначены в авторской спецификации; электрическая совместимость и безопасность не оценивались.",
  "steps": [
    "Разделить исходные записи по типу компонента.",
    "Проверить серию, посты, цвет и полный состав.",
    "Сравнить перестановку элементов набора и реальную потерю рамки."
  ],
  "inspection": [
    "Все восемь пар совпадают с независимо заданными решениями — проверено.",
    "Отсутствующее значимое поле отправляет совпадение на уточнение — проверено.",
    "Перестановка двух сторон не меняет решение — проверено."
  ],
  "sample": {
    "headers": [
      "Пара",
      "Позиция A",
      "Позиция B",
      "Решение",
      "Основание"
    ],
    "rows": [
      [
        "PAIR-01",
        "R1 механизм",
        "R1 механизм",
        "Совпадают признаки",
        "Все значимые поля совпали"
      ],
      [
        "PAIR-02",
        "R1 рамка",
        "R1 механизм",
        "Разные позиции",
        "Различаются: Тип, Состав"
      ],
      [
        "PAIR-03",
        "R1 рамка 2",
        "R1 рамка 1",
        "Разные позиции",
        "Различаются: Посты"
      ],
      [
        "PAIR-04",
        "R1 комплект",
        "R1 комплект",
        "Совпадают признаки",
        "Все значимые поля совпали"
      ],
      [
        "PAIR-05",
        "R1 безтипа",
        "R1 рамка",
        "Нужно уточнение",
        "Не заданы: Тип"
      ],
      [
        "PAIR-06",
        "R2 рамка",
        "R1 рамка",
        "Разные позиции",
        "Различаются: Серия"
      ],
      [
        "PAIR-07",
        "комплект без рамки",
        "комплект",
        "Разные позиции",
        "Различаются: Состав"
      ],
      [
        "PAIR-08",
        "комплект не сверен",
        "комплект",
        "Нужно уточнение",
        "Не заданы: Состав"
      ]
    ]
  },
  "sampleNote": "Авторские пары номенклатуры с явно заданными спецификациями. Это проверка правил сопоставления, не ассортимент действующего поставщика.",
  "caseStudy": {
    "role": "Специалист по сопоставлению номенклатуры",
    "contribution": "Я собрал разбор электротехнической номенклатуры с раздельной проверкой типа изделия и комплектации.",
    "objective": "Обозначение серии R1 не объединяет разные компоненты и составы комплекта.",
    "problem": "В одном прайсе R1 означает механизм, в другом — рамку на два поста. У комплекта дополнительно важно наличие обоих элементов, а не только общий цвет.",
    "result": "Механизм совпал с механизмом, а полный комплект — с тем же комплектом при другом порядке перечисления. Рамка и механизм, один и два поста, R1/R2 и комплект без рамки остались четырьмя различиями. Две неполные строки отправлены на уточнение.",
    "deliverables": [
      "index.html",
      "source.json",
      "source.csv",
      "result.json",
      "result.csv",
      "engine.js",
      "checks.json",
      "style.css"
    ],
    "blocks": [
      {
        "type": "text",
        "title": "Серия R1 не превращает рамку в механизм",
        "text": "В PAIR-02 совпадают серия, цвет и число постов, но одна позиция является рамкой, другая механизмом. Следующая пара различается уже числом постов. Я оставил тип и комплектность отдельными условиями, чтобы похожие названия в прайсе не скрывали разные единицы закупки."
      }
    ]
  },
  "deliverable": {
    "type": "app",
    "entry": "/catalogue/deliverables/p42-c06/index.html",
    "label": "Открыть работающий материал",
    "files": [
      {
        "path": "/catalogue/deliverables/p42-c06/index.html",
        "name": "index.html",
        "mimeType": "text/html"
      },
      {
        "path": "/catalogue/deliverables/p42-c06/source.json",
        "name": "source.json",
        "mimeType": "application/json"
      },
      {
        "path": "/catalogue/deliverables/p42-c06/source.csv",
        "name": "source.csv",
        "mimeType": "text/csv"
      },
      {
        "path": "/catalogue/deliverables/p42-c06/result.json",
        "name": "result.json",
        "mimeType": "application/json"
      },
      {
        "path": "/catalogue/deliverables/p42-c06/result.csv",
        "name": "result.csv",
        "mimeType": "text/csv"
      },
      {
        "path": "/catalogue/deliverables/p42-c06/engine.js",
        "name": "engine.js",
        "mimeType": "text/javascript"
      },
      {
        "path": "/catalogue/deliverables/p42-c06/verify.cjs",
        "name": "verify.cjs",
        "mimeType": "text/javascript"
      },
      {
        "path": "/catalogue/deliverables/p42-c06/checks.json",
        "name": "checks.json",
        "mimeType": "application/json"
      },
      {
        "path": "/catalogue/deliverables/p42-c06/style.css",
        "name": "style.css",
        "mimeType": "text/css"
      }
    ],
    "summary": "Механизм совпал с механизмом, а полный комплект — с тем же комплектом при другом порядке перечисления. Рамка и механизм, один и два поста, R1/R2 и комплект без рамки остались четырьмя различиями. Две неполные строки отправлены на уточнение."
  },
  "takeaway": "Механизм совпал с механизмом, а полный комплект — с тем же комплектом при другом порядке перечисления. Рамка и механизм, один и два поста, R1/R2 и комплект без рамки остались четырьмя различиями. Две неполные строки отправлены на уточнение.",
  "capabilities": [
    "completed_app"
  ],
  "externalConnections": []
}
