docs(#116): Р-2 решено — отсутствующая позиция под колонкой = чистый null, по данным fixtures/ocr

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
Andrey Epifancev 2026-10-17 19:00:29 +04:00
parent 3d7b32ca87
commit 26df4ad2d1

View File

@ -1,7 +1,7 @@
# Единый алгоритм нормализации ББ/ОФР (scan-gateway и tabular-parser) — дизайн # Единый алгоритм нормализации ББ/ОФР (scan-gateway и tabular-parser) — дизайн
Issue: arm-ka-docs#116. Статус: черновик; текущая цепочка описана, целевая картина по шагам 1–9 — предложение, ждёт Issue: arm-ka-docs#116. Статус: черновик; текущая цепочка описана, целевая картина по шагам 1–9 — предложение, ждёт
решений владельца Р-1, Р-2, Р-5…Р-7; Р-3 и Р-4 решены (brainstorming 17.10.2026). решений владельца Р-5…Р-7; Р-1…Р-4 решены (brainstorming 17.10.2026).
## Цель ## Цель
@ -454,7 +454,7 @@ sheet:<A>,<B>`. `DISCLOSURE` и форма без колонки кодов —
- **4. Единицы** — одно правило: единицы «тыс. руб.» и дробных ≥ 10 % → предупреждение документа - **4. Единицы** — одно правило: единицы «тыс. руб.» и дробных ≥ 10 % → предупреждение документа
- scan-gateway: добавляет - scan-gateway: добавляет
- tabular-parser: как сейчас - tabular-parser: как сейчас
- **5. Пустая ячейка** — одно правило: позиции нет, текст пуст или прочерк → `amount = null`, `string_value = null`, `is_recognized = true`, `confidence` ячейки (нет ячейки — 100). Потерянную OCR-ячейку ловят проверки §7 (Р-2) - **5. Пустая ячейка** — **решение владельца (17.10.2026, Р-2):** одно правило: позиции нет, текст пуст или прочерк → `amount = null`, `string_value = null`, `is_recognized = true`, `confidence` ячейки (нет ячейки — 100), собственной подсветки нет. По `fixtures/ocr` ИС отдаёт ячейку на каждую позицию каждой строки: пустые — пустой текст с уверенностью 100, непрочитанные — с уверенностью 0, и такие идут в `needs_review` по общему правилу шага 8; позиция отсутствует только при несовпадении колонок сегмента, что покрыто предупреждением `error` шага 2 п. 2
- scan-gateway: «ячейки нет → 0, не распознано» уходит - scan-gateway: «ячейки нет → 0, не распознано» уходит
- tabular-parser: как сейчас - tabular-parser: как сейчас
@ -588,8 +588,10 @@ column_index?}`, а не строка.
скрипт `sync-statements` в docs по образцу `sync-web.sh`, `make check` потребителя проверяет свежесть копии, прямые скрипт `sync-statements` в docs по образцу `sync-web.sh`, `make check` потребителя проверяет свежесть копии, прямые
правки копии запрещены. Когда платформа научится собирать пакеты, копия заменяется строкой зависимости без смены правки копии запрещены. Когда платформа научится собирать пакеты, копия заменяется строкой зависимости без смены
импортов. импортов.
- **Р-2** (шаг 4, п. 5) — отсутствующая OCR-ячейка под колонкой: чистый `null` (предложение; потерю ловит §7) или - **Р-2** (шаг 4, п. 5) — **решено владельцем 17.10.2026:** отсутствующая позиция под колонкой — чистый `null` без
подсветка «не распознано», как сейчас (больше ложных подсветок, AURORA-1524). собственной подсветки. Основание: по fixtures ИС отдаёт ячейку на каждую позицию (пустая — уверенность 100,
непрочитанная — 0, и её ловит общее правило `needs_review`); отсутствие позиции бывает только при несовпадении
колонок сегмента и покрыто предупреждением шага 2 п. 2.
- **Р-3** (шаг 5, п. 1) — **решено владельцем 17.10.2026:** сервисы отдают распознанный текст наименования; - **Р-3** (шаг 5, п. 1) — **решено владельцем 17.10.2026:** сервисы отдают распознанный текст наименования;
соответствие «код → наименование» — только в ядре, при необходимости (= решение № 2 по спринту 2, AURORA-1406 / соответствие «код → наименование» — только в ядре, при необходимости (= решение № 2 по спринту 2, AURORA-1406 /
1522; договорённость ДБД «из справочника» выполняется на экране). 1522; договорённость ДБД «из справочника» выполняется на экране).