{
  "file_type": "SYNTHETIC_TRAINING_CODEBOOK_SNAPSHOT",
  "snapshot_id": "SYNTHETIC-REC-CODEBOOK-SNAPSHOT-v1",
  "version": "1.0",
  "notice": "Машиночитаемый учебный снимок создан для вымышленного примера NR-METH-014. Нормативным источником остаётся канонический словарь NeuroReach; примеры в этом файле не являются наблюдениями реальных AI-систем.",
  "source_protocol": {
    "id": "NR-GEO-ERSR-CODING-001",
    "version": "v1.0",
    "status": "canonical_internal_source"
  },
  "source_codebook": {
    "id": "NR-GEO-REC-CODEBOOK-001",
    "version": "v1.0",
    "status": "CURRENT_FOR_NEW_METHODOLOGY_AND_REPORTING / AMENDED_2026-08-09"
  },
  "outcome_fields": {
    "entity_mention": "1, если сущность содержательно названа в полном ответе; иначе 0.",
    "entity_recommendation": "1, если сущность прямо рекомендована для сценария; 0 для нейтрального присутствия или отсутствия; null для неисчислимой записи.",
    "top1": "1 только при явном основном выборе; 0 при равном списке или отсутствии основного выбора; null при неразрешённой неоднозначности.",
    "not_calculable": "1, если запись не даёт валидного бинарного итога для ERSR; тогда неисчислимые outcome-поля не заменяются нулями, а reason_code обязателен."
  },
  "result_codes": {
    "best_choice": {
      "entity_mention": 1,
      "entity_recommendation": 1,
      "top1": 1,
      "not_calculable": 0
    },
    "explicit_recommendation": {
      "entity_mention": 1,
      "entity_recommendation": 1,
      "top1": {
        "default": 0,
        "allowed": [0, 1, null],
        "rule": "1 only for an explicit primary choice; unresolved top1 becomes null with top1_status=review_required"
      },
      "not_calculable": 0
    },
    "one_of_best": {
      "entity_mention": 1,
      "entity_recommendation": 1,
      "top1": 0,
      "not_calculable": 0
    },
    "candidate_list": {
      "entity_mention": 1,
      "entity_recommendation": 0,
      "top1": 0,
      "not_calculable": 0
    },
    "mention_only": {
      "entity_mention": 1,
      "entity_recommendation": 0,
      "top1": 0,
      "not_calculable": 0
    },
    "not_present": {
      "entity_mention": 0,
      "entity_recommendation": 0,
      "top1": 0,
      "not_calculable": 0
    },
    "review_required": {
      "entity_mention": {
        "allowed": [0, 1],
        "rule": "record the observed mention fact"
      },
      "entity_recommendation": null,
      "top1": null,
      "not_calculable": 1
    },
    "technical_error": {
      "entity_mention": null,
      "entity_recommendation": null,
      "top1": null,
      "not_calculable": 1
    },
    "invalid_run": {
      "entity_mention": null,
      "entity_recommendation": null,
      "top1": null,
      "not_calculable": 1
    }
  },
  "decision_rules": {
    "ambiguous_recommendation": "Если полный ответ доступен, но сам факт рекомендации нельзя надёжно установить, используется review_required до арбитража.",
    "ambiguous_top1_only": "Установленная рекомендация сохраняется; top1 остаётся null, top1_status получает review_required, а запись остаётся исчислимой для ERSR.",
    "unknown_due_to_technical_failure": "Если пригодного для интерпретации ответа нет, используется technical_error и not_calculable=1.",
    "not_applicable_to_scope": "Если запуск не соответствует квалифицированному scope, используется invalid_run и not_calculable=1.",
    "neutral_list": "Позиция в перечне сама по себе не является советом или TOP1; применяется candidate_list.",
    "ersr_positive_codes": ["best_choice", "explicit_recommendation", "one_of_best"],
    "ersr_negative_codes": ["candidate_list", "mention_only", "not_present"]
  },
  "training_anchor_examples": {
    "positive": [
      {
        "text": "Лучший вариант для этой задачи — «Пекарня Утро».",
        "result_code": "best_choice",
        "outcome": [1, 1, 1, 0]
      },
      {
        "text": "Можно рассмотреть «Пекарню Утро» для предзаказа к завтраку.",
        "result_code": "explicit_recommendation",
        "outcome": [1, 1, 0, 0]
      },
      {
        "text": "Среди подходящих равных вариантов — «Пекарня Утро» и ещё две пекарни.",
        "result_code": "one_of_best",
        "outcome": [1, 1, 0, 0]
      }
    ],
    "negative": [
      {
        "text": "В городе работают «Пекарня Утро», «Хлебный Дом» и другие пекарни.",
        "result_code": "candidate_list",
        "outcome": [1, 0, 0, 0]
      },
      {
        "text": "«Пекарня Утро» открылась несколько лет назад.",
        "result_code": "mention_only",
        "outcome": [1, 0, 0, 0]
      },
      {
        "text": "Ответ содержит рекомендации, но «Пекарня Утро» в нём не названа.",
        "result_code": "not_present",
        "outcome": [0, 0, 0, 0]
      }
    ]
  },
  "calibration_and_qc": {
    "before_coding": "Кодировщики изучают один и тот же словарь и учебные anchors до кодирования наблюдений.",
    "independent_coding": "Первичный и независимый кодировщики работают до просмотра кодов друг друга.",
    "record_required": ["оба исходных кода", "локатор полного ответа", "версия словаря", "итог арбитража"],
    "agreement_threshold": "NOT_SET_IN_SOURCE_CODEBOOK",
    "disagreement_resolution": "Арбитр выбирает один канонический код либо оставляет review_required; нейтральное присутствие нельзя повысить до рекомендации без прямого текста ответа."
  },
  "reason_codes_used_in_training_set": {
    "AI_SURFACE_TIMEOUT": "Запуск не дал полного ответа из-за технического тайм-аута.",
    "REQUIRED_MODE_NOT_CONFIRMED": "Обязательный режим не подтверждён, поэтому запуск не квалифицирован."
  },
  "collection_status_vocabulary": ["success", "invalid_run", "technical_error", "blocked", "cancelled"],
  "rq_assignment": {
    "source": "NR-GM-6002 v0.5.0, sections 16–18",
    "purchase_category_basis": "Предзаказ выпечки к выбранному времени",
    "adjudication_note": "Фильтр на поставщика, близость, точное время или срок переводят формулировку в RQ-04; название самой покупаемой услуги остаётся RQ-01."
  }
}
