# Скелет ядра C2: generate-then-select (Р2). Тот же раннер, что C1 — различия
# только в конфиге: fan-out N кандидатов + стадия select. Фаза 0 фиксирует
# СХЕМУ (парсится и валидируется); исполнение fan-out/селекции — механика
# раннера Фазы 2 (пилот 4 рук решает, войдёт ли C2 в прод).
core: C2
version: 1

defaults:
  max_output_ratio: 2.2
  min_max_tokens: 2048

context:
  glossary_injection: selective
  glossary_token_budget: 800
  stm_depth: 2
  overlap_tokens: 200
  cache_ttl: "5m"

retries:
  regenerate_before_escalate: 1

stages:
  - name: draft
    role: translator
    model: deepseek-v4-flash
    prompt: ../prompts/translator.md
    prompt_version: v0-draft
    temperature: 0.8 # C2: кандидаты сэмплируются горячее (Р2: T=0.6–1.0)
    reasoning: "off"
  # Judge-селектор (пара судей, шкала Комиссарова) — Фаза 2; стадия объявлена,
  # чтобы схема конфига не менялась: селектор получает N кандидатов от draft.
  # Судья Р4 — Gemini (нативный адаптер, Фаза 2); провизорно glm-5, чтобы скелет
  # валидировался (Anthropic убран из стека). C2 в Фазе 0 не исполняется.
  - name: select
    role: judge
    model: glm-5
    prompt: ../prompts/judge-selector.md
    prompt_version: v0-skeleton
    temperature: 0
    reasoning: "off"
  - name: edit
    role: editor
    # Дефолт-редактор — grok-4.3 (D1/D3, bake-off эксп-04; glm-5 был плейсхолдером).
    # reasoning:"off" → grok шлёт ЯВНЫЙ reasoning_effort:"none" (control:effort/off_effort:none).
    # (Стадия select выше — judge/glm-5, Gemini-слот Фазы 2; её НЕ трогаем.)
    model: grok-4.3
    prompt: ../prompts/editor.md
    # D1-уточнение №3: editor.md стал монолингвальным (6a68dfd убрал {{text}}) → SHA сменился,
    # лейбл v0-draft остался (один лейбл на два SHA). Бамп на v1-monolingual (тот же editor.md,
    # что в C1). Стадию select выше НЕ трогаем.
    prompt_version: v1-monolingual
    temperature: 0.4
    reasoning: "off"

gates:
  coverage:
    enabled: false
    len_ratio_bounds:
      zh-ru: [2.2, 4.2]
      ja-ru: [1.4, 2.6]
      en-ru: [0.70, 1.4]
    sent_cov_min: 0.75
    min_chunk_chars: 500

escalation:
  chains:
    # ⚠️ ИНТЕРИМ-ЗАГЛУШКА, НЕ контракт. Ратифицированная D3: канал A deepseek-v4-pro →
    # glm-5.1 → gemini-3.1-pro, канал B grok-4.3 (эти модели/провайдеры gemini/openai в
    # models.yaml не заведены — цены/ключи; заводка — отдельный шаг). Провизорный kimi-k2.6.
    default: [kimi-k2.6]
    adult: [kimi-k2.6]
  budget_usd: 0

fanout:
  candidates: 3 # C2: N кандидатов (fan-out — механика раннера, N — конфиг)
