{
  "schemaVersion": 1,
  "id": "P50-C01",
  "title": "Поиск по инструкциям: полный текст и отбор по модели",
  "author": {
    "id": "P50",
    "name": "Вячеслав Фомин"
  },
  "specialty": "Стоимость и скорость ИИ-сервисов",
  "projectStatus": "concept",
  "source": {
    "document": "catalogue_60_personas.md",
    "briefId": "P50-C01",
    "title": "RAG-помощник",
    "kind": "editorial_concept",
    "data": "synthetic"
  },
  "context": "Короткий контекст полезен, только если в нем осталось правило нужной модели. Я взял шесть полных инструкций, включая похожие действия для другого устройства.",
  "decision": "Baseline собирает весь активный корпус. Revised сначала ограничивает моделью A2, затем выбирает разделы с запросом «сброс». Сравнение проверяет наличие точной процедуры и отсутствие процедуры B2, а не только число символов.",
  "constraint": "Ответ не генерируется языковой моделью. Измеряется выбор текста, а не качество RAG-сервиса.",
  "steps": [
    "Зафиксировать полный вход и два режима обработки.",
    "Проверить правильность результата до сравнения времени.",
    "Выполнить 50 прогревочных запусков и 30 серий по 100 повторов; сохранить все сводные времена."
  ],
  "inspection": [
    "Короткий контекст сохраняет полную процедуру A2 и исключает B2 — проверено.",
    "Полный режим содержит шесть документов и чужой сброс — проверено.",
    "Неизвестная модель не подменяется похожей — проверено."
  ],
  "sample": {
    "headers": [
      "Источник",
      "Текст"
    ],
    "rows": [
      [
        "A-RESET",
        "Сброс A2: откройте настройки, выберите «Очистить локальный набор» и подтвердите действие вводом A2. Удаляются только записи выбранного набора."
      ]
    ]
  },
  "sampleNote": "Авторский набор. В timings.json записан фактически выполненный локальный замер кода; тариф модели и сеть в него не входят.",
  "caseStudy": {
    "role": "Разработчик стендов измерения обработки данных",
    "contribution": "Я реализовал два способа отбора документов и измерил их локальное выполнение на одинаковом корпусе.",
    "objective": "Два способа формируют контекст из одних документов; сравниваются объем, сохранность нужного правила и локальное время.",
    "problem": "Короткий контекст полезен, только если в нем осталось правило нужной модели. Я взял шесть полных инструкций, включая похожие действия для другого устройства.",
    "result": "Отбор оставил 1 полный документ и 142 символа с процедурой A2. Правило подтверждения сохранено, процедура B2 исключена. Фактические локальные времена обоих режимов доступны в timings.json.",
    "deliverables": [
      "index.html",
      "source.json",
      "source.csv",
      "result.json",
      "result.csv",
      "engine.js",
      "checks.json",
      "style.css",
      "timings.json"
    ],
    "blocks": [
      {
        "type": "text",
        "title": "Сокращение входа с сохранением нужной инструкции",
        "text": "В корпусе из шести документов предварительный отбор должен оставить процедуру модели A2. Я сравниваю полный и отфильтрованный путь на одних исходниках и проверяю сохранённый документ отдельно от времени. Иначе быстрый проход мог бы выглядеть улучшением только потому, что выбросил нужный материал."
      }
    ]
  },
  "deliverable": {
    "type": "analysis",
    "entry": "/catalogue/deliverables/p50-c01/index.html",
    "label": "Открыть работающий материал",
    "files": [
      {
        "path": "/catalogue/deliverables/p50-c01/index.html",
        "name": "index.html",
        "mimeType": "text/html"
      },
      {
        "path": "/catalogue/deliverables/p50-c01/source.json",
        "name": "source.json",
        "mimeType": "application/json"
      },
      {
        "path": "/catalogue/deliverables/p50-c01/source.csv",
        "name": "source.csv",
        "mimeType": "text/csv"
      },
      {
        "path": "/catalogue/deliverables/p50-c01/result.json",
        "name": "result.json",
        "mimeType": "application/json"
      },
      {
        "path": "/catalogue/deliverables/p50-c01/result.csv",
        "name": "result.csv",
        "mimeType": "text/csv"
      },
      {
        "path": "/catalogue/deliverables/p50-c01/engine.js",
        "name": "engine.js",
        "mimeType": "text/javascript"
      },
      {
        "path": "/catalogue/deliverables/p50-c01/verify.cjs",
        "name": "verify.cjs",
        "mimeType": "text/javascript"
      },
      {
        "path": "/catalogue/deliverables/p50-c01/checks.json",
        "name": "checks.json",
        "mimeType": "application/json"
      },
      {
        "path": "/catalogue/deliverables/p50-c01/style.css",
        "name": "style.css",
        "mimeType": "text/css"
      },
      {
        "path": "/catalogue/deliverables/p50-c01/benchmark.cjs",
        "name": "benchmark.cjs",
        "mimeType": "text/javascript"
      },
      {
        "path": "/catalogue/deliverables/p50-c01/timings.json",
        "name": "timings.json",
        "mimeType": "application/json"
      }
    ],
    "summary": "Отбор оставил 1 полный документ и 142 символа с процедурой A2. Правило подтверждения сохранено, процедура B2 исключена. Фактические локальные времена обоих режимов доступны в timings.json."
  },
  "takeaway": "Отбор оставил 1 полный документ и 142 символа с процедурой A2. Правило подтверждения сохранено, процедура B2 исключена. Фактические локальные времена обоих режимов доступны в timings.json.",
  "capabilities": [
    "completed_analysis"
  ],
  "externalConnections": []
}
