docs(#116): подтверждение проверкой §7 — needs_review вместо подсветки по уверенности, Р-7

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
Andrey Epifancev 2026-10-17 18:13:39 +04:00
parent 631ec8c999
commit 3e51a95862

View File

@ -513,7 +513,7 @@ line_name_confidence, values}`: `line_code` — разобранный код (4
статус конверта — агрегат. Предупреждение — структура `{code, severity: error | info, message, line_ref?,
column_index?}`, а не строка.
- **1. Критерий `done`** — один критерий из самого результата: раскладка найдена ∧ (организация или ИНН) ∧ дата отчёта ∧ все строки `ok` ∧ все значения `is_recognized` ∧ `confidence` всех ячеек ≥ порога (Р-5) ∧ жёсткие проверки §7 сошлись ∧ нет предупреждений уровня `error`. Excel выполняет условия уверенности автоматически
- **1. Критерий `done`** — один критерий из самого результата: раскладка найдена ∧ (организация или ИНН) ∧ дата отчёта ∧ все строки `ok` ∧ нет значений `needs_review` (см. «Подтверждение проверкой» ниже) ∧ жёсткие проверки §7 сошлись ∧ нет предупреждений уровня `error`. Excel выполняет условия уверенности автоматически
- scan-gateway: «ничего не выброшено и уверенность 100» → общий критерий
- tabular-parser: `_is_ok` → общий критерий; добавляются строки и значения
- **2. Влияние предупреждений** — по уровню: `error` → `needs_check`, `info` — не влияет; у обоих одинаково
@ -529,6 +529,21 @@ column_index?}`, а не строка.
- scan-gateway: меняет
- tabular-parser: меняет
**Подтверждение проверкой (вопрос владельца 17.10.2026).** Проверка §7 — арбитр, уверенность — подсказка там, где
проверки нет. По каждому значению сервис считает `needs_review`:
- `true`, если `is_recognized = false` или `confidence` ниже порога (Р-5) **и** значение не покрыто сошедшимся жёстким
соотношением §7 в своей колонке (не входит ни в одно, соотношение не сошлось или оно мягкое);
- `true` у всех ячеек соотношения в колонке, где оно не сошлось, независимо от уверенности;
- иначе `false`: значение подтверждено проверкой, не подсвечивается и статус не трогает; сырой текст и уверенность
остаются в подсказке ячейки.
Экран подсвечивает ячейки только по `needs_review`; после PATCH ядро пересчитывает `checks` и `needs_review` общим
кодом. Не покрыто проверками и остаётся на уверенности: поля шапки, справочные строки ОФР 25xx / 29xx, детализация
без проверки родителя, `DISCLOSURE`, колонки, где есть только мягкие соотношения. Риск — две взаимно компенсирующие
ошибки в одном соотношении; принимается (перекрёстные соотношения баланса его снижают). Закрывает AURORA-1524 без
ущерба для 1519. Распространение на `is_recognized = false` — Р-7.
### Шаг 9 — Результат
Одинаково, как сейчас; контракт `recognition-result.schema.json` → **v1.3**: `line_status`, `line_code` nullable,
@ -545,8 +560,8 @@ column_index?}`, а не строка.
- Словарь строк и словарь §7: единственный экземпляр в общем коде (Р-1); копии ядра и шлюза удаляются.
- Достройка шаблонных строк: по тому же словарю; строки `missing` / `unreadable` / `duplicate` показываются как
пришли, с подсветкой.
- Экран: подсветка ячеек по `confidence`, `is_recognized` и нарушениям §7 (по кодам слагаемых и колонке); строк — по
`line_status`; предупреждения документа — с привязкой к месту.
- Экран: подсветка ячеек только по `needs_review` (уверенность, `is_recognized` и нарушения §7 уже сведены сервисом);
строк — по `line_status`; предупреждения документа — с привязкой к месту.
### Решения, которые нужны от владельца
@ -563,3 +578,6 @@ column_index?}`, а не строка.
100, как сейчас.
- **Р-6** (шаг 2, п. 6) — неизвестная числовая колонка без периода: оставлять без даты с предупреждением (`needs_check`)
или пропускать, как парсер сейчас.
- **Р-7** (шаг 8, «Подтверждение проверкой») — снимать ли подсветку сошедшимся соотношением §7 и с `is_recognized =
false` (число собрано из грязного текста), а не только с низкой уверенности; предложение — да: сошедшаяся проверка
сильнее догадки о мусоре.