{
  "schema": 1,
  "product": "RAGRAF",
  "version": "0.4.0",
  "declared_at": "2026-10-27",
  "stage": "И28",
  "main": "README.md",
  "states": "docs/03_implementation/translations.json",
  "note": "Единственное место, где объявлены ДОПУСКИ проверки прозы переводов README: сколько абзацев в разделе и сколько предложений в абзаце перевод вправе разойтись с основным документом. Пороги лежат в данных, а не в коде проверки, по той же причине, что состояния переводов (docs/03_implementation/translations.json) и терминология (docs/03_implementation/glossary.json): объявить допуск для нового языка или нового вида расхождения можно правкой этого файла, и ни одна строка tools/check_prose_profile.py ради этого не меняется. Пороги СНЯТЫ ЗАМЕРОМ 27.10.2026, а не назначены на глаз: до правок счёт давал 12 расхождений в четырёх переводах, и все 12 оказались дефектами самого счёта (границы блоков, знаки конца предложения после жирного шрифта, иероглифические точки, сокращения внутри слов), а не пропущенной прозой; после их устранения расхождение в пяти переводах равно НУЛЮ, поэтому объявленный допуск — 0 и по абзацам, и по предложениям. Допуск остаётся объявленным полем, потому что языковое различие возможно по существу (русский вправе передать одно английское предложение двумя, немецкий — склеить два коротких); расширять его можно только решением владельца, названным числом, а не для того, чтобы прогон позеленел. Нулевой допуск — самое сильное из возможных значений: он ловит и пропавший абзац, и склейку двух абзацев в один, и потерянное предложение внутри абзаца.",
  "measured": {
    "date": "2026-10-27",
    "stage": "И28",
    "tool": "tools/check_prose_profile.py",
    "sections": 11,
    "paragraphs": 52,
    "before_fixes": {
      "findings": 12,
      "languages": ["ru", "es", "hi", "zh"],
      "cause": "дефекты счёта, а не перевода: строки-продолжения списков считались абзацами прозы; '。' без пробела после себя не признавался концом предложения; '.' после жирного шрифта ('**On the model cache.**') не признавался концом предложения; сокращения вида 'в.' съедали конец слова ('проектов.')"
    },
    "after_fixes": {
      "max_paragraph_deviation": 0,
      "max_sentence_deviation": 0
    }
  },
  "languages": {
    "ru": {
      "path": "community/README.ru.md",
      "paragraph_tolerance": 0,
      "sentence_tolerance": 0,
      "note": "замер 27.10.2026: 11 разделов и 52 абзаца, как в README.md; расхождений по числу предложений в абзаце — 0"
    },
    "de": {
      "path": "community/README.de.md",
      "paragraph_tolerance": 0,
      "sentence_tolerance": 0,
      "note": "замер 27.10.2026: 11 разделов и 52 абзаца, как в README.md; расхождений по числу предложений в абзаце — 0"
    },
    "es": {
      "path": "community/README.es.md",
      "paragraph_tolerance": 0,
      "sentence_tolerance": 0,
      "note": "замер 27.10.2026: 11 разделов и 52 абзаца, как в README.md; расхождений по числу предложений в абзаце — 0"
    },
    "hi": {
      "path": "community/README.hi.md",
      "paragraph_tolerance": 0,
      "sentence_tolerance": 0,
      "note": "замер 27.10.2026: 11 разделов и 52 абзаца, как в README.md; расхождений по числу предложений в абзаце — 0; граница предложения в хинди — «।» (danda), а не точка"
    },
    "zh": {
      "path": "community/README.zh.md",
      "paragraph_tolerance": 0,
      "sentence_tolerance": 0,
      "note": "замер 27.10.2026: 11 разделов и 52 абзаца, как в README.md; расхождений по числу предложений в абзаце — 0; граница предложения в китайском — «。！？», пробел после знака не требуется"
    }
  }
}
