docs(context): §11.1 очистка OCR-текста из модуля старого ядра для нормализатора scan-gateway #43

Merged
aep merged 1 commits from feat/42-ocr-cleanup-rules into main 2026-10-06 16:49:16 +03:00
Owner

Closes #42.

Решение владельца 06.10.2026: модуль очистки OCR старого ядра (DKB_ARMKA api/src/services/ofr_result_conversion/, в локальном reference-old-arm — api/src/core/PDFWorker/, содержимое совпадает) проверен на стенде ИС Сканирование и может быть перенесён в нормализатор scan-gateway. Единственное исключение для reference-old-arm; зафиксировано также в CLAUDE.md workspace (вне git).

  • 05-domain-rules.md §11.1 — девять правил очистки и разбора со ссылками на функции-источники; переносятся чистые функции, обвязка записи в financial_statement_* — нет, результат идёт в statementDocument v1.2.
  • 09-delivery-plan.md — Срез 3: нормализатор по §11 и §11.1.

Rulings I made:

  • R-1: документ без шапки — раскладку колонок выводить по данным (как в старом ядре), но документ всё равно needs_check с причиной; прежняя формулировка §11 («колонки без дат, NEEDS_CHECK») заменена, не удалена из истории.
  • R-2: наименование строки берётся из справочника по коду (rules/statement_lines.yaml из §12), а не из OCR, если код известен — как в consts.codes_mapping старого ядра.
  • R-3: расхождение типа таблицы по кодам (п. 5) с label.form_name → needs_check, а не ошибка.
  • R-4: ошибка разбора одного документа → BACKEND_PARSING_ERROR на документе, конверт needs_check, если есть хотя бы один разобранный документ.

🤖 Generated with Claude Code

https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2

Closes #42. Решение владельца 06.10.2026: модуль очистки OCR старого ядра (`DKB_ARMKA` `api/src/services/ofr_result_conversion/`, в локальном `reference-old-arm` — `api/src/core/PDFWorker/`, содержимое совпадает) проверен на стенде ИС Сканирование и может быть перенесён в нормализатор scan-gateway. Единственное исключение для `reference-old-arm`; зафиксировано также в CLAUDE.md workspace (вне git). - `05-domain-rules.md` §11.1 — девять правил очистки и разбора со ссылками на функции-источники; переносятся чистые функции, обвязка записи в `financial_statement_*` — нет, результат идёт в `statementDocument` v1.2. - `09-delivery-plan.md` — Срез 3: нормализатор по §11 и §11.1. Rulings I made: - R-1: документ без шапки — раскладку колонок выводить по данным (как в старом ядре), но документ всё равно `needs_check` с причиной; прежняя формулировка §11 («колонки без дат, NEEDS_CHECK») заменена, не удалена из истории. - R-2: наименование строки берётся из справочника по коду (`rules/statement_lines.yaml` из §12), а не из OCR, если код известен — как в `consts.codes_mapping` старого ядра. - R-3: расхождение типа таблицы по кодам (п. 5) с `label.form_name` → `needs_check`, а не ошибка. - R-4: ошибка разбора одного документа → `BACKEND_PARSING_ERROR` на документе, конверт `needs_check`, если есть хотя бы один разобранный документ. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
aep added 1 commit 2026-10-06 16:33:45 +03:00
- 05-domain-rules §11.1: буквы-двойники, `|` как разделитель, разбор дат из OCR, раскладка без шапки,
  классы строк, тип таблицы по кодам, очистка кода/наименования, суммы и критерий is_recognized,
  шапка документа, ошибка разбора одного документа. Перенос кода ofr_result_conversion — единственное
  исключение для reference-old-arm (решение владельца 06.10.2026); обвязка записи в БД не переносится.
- 09-delivery-plan: Срез 3 — нормализатор по §11 и §11.1.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
aep merged commit 3ef8ed19b7 into main 2026-10-06 16:49:16 +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-ka-docs#43
No description provided.