fix(statements): округление итогов мягкое (OQ-138), слабые продолжения, подстроки по порядку (#20) #21

Merged
aep merged 2 commits from fix/20-continuation-tolerance into main 2026-10-06 22:22:01 +03:00
Owner

Refs #20 (пакет 1 и часть пакета 2; issue остаётся открытой для мелких пунктов).

Что сделано

  • OQ-138 (решение владельца 06.10.2026): единице «тыс. руб.» верим; жёсткое расхождение больше ±1, но не больше 0,001 % от наибольшего по модулю числа соотношения — округление итогов: soft_relations_failed + предупреждение «сошлось в пределах округления», статус не меняется. Порог — rounding_tolerance_percent в statement_checks.yaml. База — наибольшее число соотношения, а не итог: у ОФР Унагранде Групп 3 кв. 2025 итог 2200 = −1 365 000 — малая разность слагаемых ~393 млн, расхождение 398.44.
  • N-1/N-2: лист с 1–2 кодами — продолжение только сразу после листа формы и только с кодами той же формы; присоединение видно в предупреждении. N-3: негативные тесты (лист после ОСВ, одиночный лист, «Справка» с кодом баланса после ОФР).
  • M-9: пятизначная подстрока относится к ближайшей четырёхзначной строке выше с теми же тремя цифрами (12310…12314 под 1230 у НПЗ — мягкое нарушение по 1230 исчезло само).
  • N-4: на продолжении без шапки «Пояснения» узнаются по коротким значениям.
  • T7.1: ответ с ошибкой листа ОСВ называет неразобранные листы форм. T7.2: metrics.rows для форм — в спеке.
  • M-12: копия docs/contracts ($comment, примеры).
  • Спеки statement-parsing и tabular-recognition-service, манифест, README словарей, интеграционный тест воркера (книга НПЗ → done).

Статусы реальных форм: done — Межениновская ББ и ОФР, книга НПЗ, ОФР стр. 1 Унагранде Компани и Групп 3 кв. 2025; needs_check — ББ стр. 1 (только актив), страницы 2 без шапки, шаблоны.

Проверка: make check-full 2217 passed, интеграция 10 passed, golden-check 138/138 (снимки — RSHB/arm-ka-fixtures fix/20-golden).

Порядок мержа. Мержить пачкой: docs → arm-core и scan-gateway (копии контракта) → fixtures → tabular-parser. Между мержем docs и копий тесты идентичности контракта в сервисах красные.

🤖 Generated with Claude Code

Refs #20 (пакет 1 и часть пакета 2; issue остаётся открытой для мелких пунктов). **Что сделано** - **OQ-138** (решение владельца 06.10.2026): единице «тыс. руб.» верим; жёсткое расхождение больше ±1, но не больше 0,001 % от наибольшего по модулю числа соотношения — округление итогов: `soft_relations_failed` + предупреждение «сошлось в пределах округления», статус не меняется. Порог — `rounding_tolerance_percent` в `statement_checks.yaml`. База — наибольшее число соотношения, а не итог: у ОФР Унагранде Групп 3 кв. 2025 итог 2200 = −1 365 000 — малая разность слагаемых ~393 млн, расхождение 398.44. - **N-1/N-2**: лист с 1–2 кодами — продолжение только **сразу** после листа формы и только с кодами той же формы; присоединение видно в предупреждении. **N-3**: негативные тесты (лист после ОСВ, одиночный лист, «Справка» с кодом баланса после ОФР). - **M-9**: пятизначная подстрока относится к ближайшей четырёхзначной строке выше с теми же тремя цифрами (12310…12314 под 1230 у НПЗ — мягкое нарушение по 1230 исчезло само). - **N-4**: на продолжении без шапки «Пояснения» узнаются по коротким значениям. - **T7.1**: ответ с ошибкой листа ОСВ называет неразобранные листы форм. **T7.2**: `metrics.rows` для форм — в спеке. - **M-12**: копия `docs/contracts` (`$comment`, примеры). - Спеки `statement-parsing` и `tabular-recognition-service`, манифест, README словарей, интеграционный тест воркера (книга НПЗ → `done`). **Статусы реальных форм:** `done` — Межениновская ББ и ОФР, книга НПЗ, ОФР стр. 1 Унагранде Компани и Групп 3 кв. 2025; `needs_check` — ББ стр. 1 (только актив), страницы 2 без шапки, шаблоны. **Проверка:** `make check-full` 2217 passed, интеграция 10 passed, `golden-check` 138/138 (снимки — RSHB/arm-ka-fixtures fix/20-golden). **Порядок мержа.** Мержить пачкой: docs → arm-core и scan-gateway (копии контракта) → fixtures → tabular-parser. Между мержем docs и копий тесты идентичности контракта в сервисах красные. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
aep added 2 commits 2026-10-06 22:18:08 +03:00
- OQ-138 (решение владельца 06.10.2026): единицы шапки верны; жёсткое расхождение до rounding_tolerance_percent = 0,001 %
  от наибольшего по модулю числа соотношения — округление итогов: soft_relations_failed + предупреждение, статус не
  меняется. НПЗ, ОФР стр. 1 Унагранде Компани и Групп теперь done.
- N-1/N-2: лист с 1–2 кодами — продолжение только сразу после листа формы, коды из диапазона формы открытого документа;
  присоединение видно в предупреждениях. N-3: негативные тесты BookParser и StatementParser.
- M-9: пятизначная подстрока относится к ближайшей четырёхзначной строке выше с теми же тремя цифрами (12310 под 1230).
- N-4: на продолжении без шапки колонка «Пояснения» узнаётся по коротким значениям и не даёт line_name.
- T7.1: ответ с ошибкой листа ОСВ называет неразобранные листы форм; T7.2: metrics.rows для форм — в спеке.
make check-full: 2217 passed, интеграция 10 passed; golden 138/138 (снимки — arm-ka-fixtures fix/20-golden).

Refs #20

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EAKRDNzXtRrwmWz9z6PZu3
Refs #20

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EAKRDNzXtRrwmWz9z6PZu3
aep merged commit 8be2cf1096 into main 2026-10-06 22:22:01 +03:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: RSHB/arm-tabular-parser#21
No description provided.