93 Commits

Author SHA1 Message Date
Andrey Epifancev
dfccabcada docs(counter-pairs): правки финального ревью (контракт слайса 4, §3 п. 9, путь пользователя)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 19:33:16 +04:00
Andrey Epifancev
6561caf19e Пары участников без встречных записей: §3 п. 9, контракт Среза 4, путь пользователя (#175)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 19:04:52 +04:00
aep
b6fae800bc Merge pull request 'AURORA-1646: чек-лист версии — по столу консолидации' (#174) from feat/188-checklist-scope into main 2026-10-27 09:58:37 +03:00
Andrey Epifancev
17092452bc AURORA-1646 чек-лист версии — по столу консолидации (§9.5 п. 11)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 10:54:50 +04:00
Andrey Epifancev
6dad50af2c Merge remote-tracking branch 'origin/main' into feat/172-osv-by-counterparty-codes 2026-10-27 10:43:22 +04:00
Andrey Epifancev
85056842d6 §1.3: поле словаря subaccount_sums вместо subtotal_row (AURORA-1714, #172)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 10:39:12 +04:00
Andrey Epifancev
c14349f0c8 §1.1/§1.3/§1.5: выгрузка ОСВ по счёту по контрагентам — метки счёта и периода, блоки субсчетов с кодами контрагентов (AURORA-1714, #172)
Решение владельца 27.10.2026: счёт из соседней ячейки, «За период» с диапазоном .. и годом из двух цифр,
вид субконто в таблице, субсчета с тремя цифрами, код контрагента + название + договоры, «ИТОГ по …» и «ИТОГ».

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 10:23:01 +04:00
aep
29db5f7059 Merge pull request '§1.4: «Итого» свёрнута при развёрнутом корне — сверка по нетто' (#171) from feat/170-osv-expanded-total into main 2026-10-27 09:22:10 +03:00
Andrey Epifancev
bf254ec41e AURORA-1708: §1.4 — уточнение роли «Итого развернутое» в сверке
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 01:20:06 +04:00
Andrey Epifancev
ab86e22653 §1.4: «Итого» свёрнута при развёрнутом корне — сверка по нетто (AURORA-1708, #170)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 01:18:23 +04:00
Andrey Epifancev
39fb5b7a16 §9.5 п. 3: автозамена не трогает пару с MISMATCH (AURORA-1644, arm-core#181)
Пара «новый документ — прежний» с counterparty_check = MISMATCH у любого из двух
в замене не участвует; UNKNOWN заменяется как прежде; оставленный файл —
предупреждение «автозамена не выполнена». Полная переработка — AURORA-1752.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 00:54:27 +04:00
Andrey Epifancev
e70f589112 DBML v5.23 (elimination_rules_version NOT NULL), §5 без каскада, пары ВГО по версии (#164, AURORA-1536)
Решения владельца 23.10.2026 по ревью arm-core #175:
- consolidation_version.elimination_rules_version — not null, существующим
  версиям номер проставляет миграция по дате создания;
- §5: каскад по остатку отменён (21.10), правила считаются отдельно до
  разнесения строк AURORA-1751; суммы сторон со знаком, при min <= 0 процент
  не считается; отрицательные строки в упаковку не идут (NEGATIVE_AMOUNT);
  группы сортируются по проценту расхождения; выдача — список троек версии
  и детализация тройки;
- OQ-173, OQ-174, OQ-175; страница аналитика; гайд фронта §5.7.2;
  ссылки на модель и диаграммы — v5.23.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 18:34:21 +04:00
Andrey Epifancev
61f89afcb2 Merge origin/main в feat/156-retry-osv-header-docs (ревью arm-core #161, раунд 2)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 17:59:42 +04:00
Andrey Epifancev
8fc189d9a9 §6 шахматка: one_sided по суммам, подсветка, «все счета» без забалансовых; OQ-175, OQ-176; гайд фронта (#158, AURORA-1651)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 23:46:38 +04:00
aep
4f98730752 Merge pull request '§6 пресет по правилу ББ, §4 версия правил на дату составления консолидации (OQ-174)' (#146) from feat/145-shahmatka-presets into main 2026-10-22 17:57:21 +03:00
Andrey Epifancev
546310e83c §6 показатель пресета — measure правила; гайд фронта: раздел шахматки §5.7.1 (#145, ревью arm-core#141)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 18:47:59 +04:00
Andrey Epifancev
21c0f900bd §9.4–9.5, гайд фронта: повтор обработки файла и уточнение шапки ОСВ (#156, AURORA-1442)
§9.4 — автоповтор публикации не наращивает attempt, ручной повтор — новое задание.
§9.5 п. 12 — ключ автозамены после уточнения; п. 13 — коды, 202, файл из консолидации,
состав пакета (только файлы в ERROR), accepted/skipped.
frontend-api-guide — маршруты retry и osv-header, новые поля DocumentOut, коды ошибок.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 17:12:04 +04:00
Andrey Epifancev
45e3cc0d35 §11.3 п. 5: строка нумерации со сбоем OCR под заголовком и повтор шапки со склеенной нумерацией (#153, AURORA-1517)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 16:35:25 +04:00
Andrey Epifancev
c43820ef4a model: DBML v5.21 — событие аудита FILE_REPROCESS (#149)
- audit_action: FILE_REPROCESS — повторная обработка файла пользователем
  (раздел PRIMARY_DOCUMENTS). Файл не загружается заново, создаётся новое
  recognition_job (attempt + 1), поэтому FILE_UPLOAD и FILE_REPLACE не подходят.
- 05-domain-rules §9.5 п. 13: правила повторной обработки (решение владельца
  19.10.2026, AURORA-1442) и состав события: object_type = stored_file,
  before — прежнее задание, after — новое, пакет — по событию на файл
  + consolidation_id; п. 6 и §9.4 — ссылки.
- entities-v5.21, диаграмма part09, ссылки на текущую версию модели.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 10:34:25 +04:00
Andrey Epifancev
f7ee6bee55 model: DBML v5.20 — уточнение периода и счёта ОСВ аналитиком (#147)
- document: is_modified, original_values, modified_by, modified_at — правка
  period_year / period_quarter / is_cumulative / osv_account_code на месте,
  распознанное в original_values (первичка не мутируется); копия document не
  создаётся.
- 05-domain-rules §9.5 п. 12: PATCH /documents/{id}/osv-header — проверки,
  сброс подтверждения и снятие привязок к версиям «в работе», аудит
  RECOGNIZED_DATA_EDIT; §3 п. 1 — новая точка отвязки.
- OQ-161 закрыт вариантом (2); флаг CONSOLIDATION_PERIOD_FROM_VERSION
  снимается после правки на экране.
- entities-v5.20, диаграммы, ссылки на текущую версию модели.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 18:57:47 +04:00
Andrey Epifancev
d5634c992f docs(context): §6 пресет по правилу ББ, §4 версия правил на дату составления консолидации (OQ-174) (#145)
Решения владельца 21.10.2026 по ревью arm-core PR #141: пресет шахматки —
дополнительно правило ББ Прил. 3 (без каскада §5, ОФР — нет); корректировки и
строки без пары в шахматку не входят (AURORA-1653, AURORA-1536); версия правил —
действующая на дату составления консолидации, фиксация — AURORA-1536.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 15:12:26 +04:00
Andrey Epifancev
2119790f72 §1: имена частей xlsx без учёта регистра, «Кол-во, <единица>» и «Кол. доп.» (tabular-parser#66, AURORA-1707, AURORA-1709)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 13:04:05 +04:00
Andrey Epifancev
68e944166b docs(#136): слияние main, OQ-169 этой ветки перенумерован в OQ-173
В main (#138) номера OQ-169…172 заняты вопросами ОСВ; пересечение счетов правил
элиминации — OQ-173 (закрыт решением владельца 19.10.2026).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 14:39:30 +04:00
Andrey Epifancev
c6768fad56 docs(#136): OQ-169 закрыт — каскад по остатку в порядке rule_no
§5: сумма элиминации пары (A, B) считается по правилам в порядке rule_no, каждое берёт
min из остатка сторон после предыдущих (как правило № 1 Прил. 3) — без двойной
элиминации по общим счетам № 3–8; упаковка в том же порядке, ничьей между правилами
нет; зеркальные № 9–16 — те же правила для (B, A). OQ-169 закрыт решением владельца
19.10.2026. Документ для аналитика: раздел 3.2, 3.3, пример, В-12.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 14:36:44 +04:00
Andrey Epifancev
a12c0779db docs(#136): OQ-07 закрыт — сопоставление ВГО группами с минимальной упаковкой
§5: два уровня по тройке (правило × A × B) — сумма элиминации (агрегат min(ΣA, ΣB),
порог 5 %, идёт в КФО) и упаковка строк 1:1 / 1:N / N:1 (N ≤ 5, N:M нет, минимальная
по числу строк, ничья → ручное). §8: eliminated_auto — Σ троек. OQ-07 закрыт решением
владельца 19.10.2026; новый OQ-169 — пересечение счетов правил (двойная элиминация).
Документ для аналитика: разделы 3.2, 3.3, 5, вопросы В-2 (решён), В-4, В-12.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 13:27:02 +04:00
Andrey Epifancev
7ed5a2b613 docs: §1.4 тождество вторых итогов (R-19), OQ-171 множественное число, OQ-172 источник (tabular-parser#59)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 13:16:51 +04:00
Andrey Epifancev
a5d468b020 §1.4 правил ОСВ: «Итого развернутое» не участвует в тождестве строки (tabular-parser#59)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 13:16:51 +04:00
Andrey Epifancev
a0dd569b4c §1 правил ОСВ: плоская форма 1С — счёт из шапки, «Итого развернутое», header_account, контрагенты по плану счетов (tabular-parser#59, AURORA-1661)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 13:16:51 +04:00
Andrey Epifancev
fa039ee8a4 §1.4/OQ-132: счёт 90 в списке без сальдо по аналитике (tabular-parser#58)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 12:52:12 +04:00
Andrey Epifancev
87cdf8becc 05-domain-rules §1.3/§1.4: строки-показатели, колонка «Показатели», «В валюте», BU по умолчанию (tabular-parser#58)
AURORA-1613, AURORA-1661 (валютная часть); решения владельца 19.10.2026.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 11:00:15 +04:00
Andrey Epifancev
47e6372cbe chore(openspec): архив unified-statement-normalization (#116)
Спеки применены: 5 новых capability (arm-core, arm-web, scan-gateway,
statement-normalization, tabular-recognition-service) с Purpose, изменения
quality-checks и recognition-contract. Ссылки в 05-domain-rules, DBML v5.19,
entities, dev/checks.md и dev/qa-statements-v2.md ведут в архив.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 09:25:43 +04:00
Andrey Epifancev
aafa656bc0 docs(#122): ревью — Р-44 в design.md, листы-продолжения, подписанный столбец без чисел
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 21:27:53 +04:00
Andrey Epifancev
222d7e08fc docs(#122): числа правее таблицы формы — не колонки сумм (шаг 2, NUMBERS_OUTSIDE_TABLE)
Решение владельца 18.10.2026 (Р-31 плана 4, #116).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 21:17:54 +04:00
Andrey Epifancev
f675c762af Слияние main в feat/116: §1 ОСВ cp1251 (tabular-parser #47) рядом с правилом v2.0
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 19:42:19 +04:00
Andrey Epifancev
8a7711da5a plan(#116): план 3 — ядро на дополненном API пакета, поля API для фронта, решения Р-34 и Р-35
Пакет: engine.edition (choose_edition) и engine.contract_document_status
(status_input_from_contract) вместо сборки StoredForm ради редакции и status_input_from_v2;
FailedRelation.expected/actual — Decimal | None; O-8 закрыт.
API для плана 6: LineOut.line_code_confidence, StatementHeaderOut.okei, header.source.confidence —
строка Decimal, StatementOut.edition_lines, DocumentBrief.issue_counts, line_id/line_code в detail
ошибок элемента lines[]; P3-19…P3-24; спека arm-core и гайд §5.6.1 дополнены.
Р-34: подтверждение кода не меняет уверенность — буква спеки arm-core, §9.5 п. 9 и гайда приведена;
O-2 закрыт. Р-35: очистка отказывает только при верифицированной версии — P3-12, тесты A4, спека
«Очистка форм» п. 2 и сценарий; O-5 закрыт.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 13:00:56 +04:00
Andrey Epifancev
042fc927dc plan(#116): план 1 — API пакета сведён с планами 3, 4, 5
choose_edition, status_input / status_input_from_contract, to_contract / warning_to_contract,
code_column, amount_columns, normalize_label / normalize_caption, is_continuation, WarningCode,
StatementHeader.form_name, FailedRelation.expected/actual — Decimal | None, явные типы Rules.*,
min_codes_continuation в словаре; новая задача 19 (форма контракта), golden — задача 20;
P1-21…P1-31. Код XLS_NO_CODEPAGE (info, файл) — в таблицу спеки «Шаг 8 — предупреждения» и §11.9.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 12:50:43 +04:00
Andrey Epifancev
e47f1ab69c §1.4: точное «Итого» ищется раньше «Итого …», хвост — числа в колонках таблицы (tabular-parser #47, AURORA-1664)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-18 12:04:48 +04:00
Andrey Epifancev
9863b46140 §1 правил ОСВ: cp1251 для xls без CODEPAGE, «Кол-во»/«Вал», конец таблицы на первой «Итого» (tabular-parser #47, AURORA-1662, 1663, 1664)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-18 11:50:44 +04:00
Andrey Epifancev
429f86760f docs(#116): §7, §9, §11 и гайды по повторному ревью спеки: detail вне needs_review, очистка форм, мусор в суммах, сегменты, предупреждения файла объектами; OQ-168 (Р-23…Р-26, L-1…L-30)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 11:36:12 +04:00
Andrey Epifancev
2a37a70189 docs(#116): *_original_value шапки как прежде, архитектура — механика копии arm_statements
- DBML и §9.5 п. 2: inn_original_value = inn, report_date_original_value = report_date_text, units_original_value =
  units_text; сырой текст и уверенность всех полей — header_source (K-3)
- 03-architecture: путь копии, VERSION, коды sync-statements --check, перечень кодов в contracts/ (K-9, K-5)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 02:17:36 +04:00
Andrey Epifancev
2b094ffe0b docs(#116): §7, §9.3, §9.5, §11 по ревью спеки; OQ-148 закрыт, OQ-168; гайд фронта и checks.md
- §7: мягкое соотношение, сошедшееся точно, подтверждает неуверенные значения (Р-21); ОФР упрощённого набора
  2400 — мягкое (Р-22 / S-5); form_variant = null — полный набор; 1.x и мигрированные формы — §7 копией
  arm_statements один раз в document_issue, экран и подтверждение читают только его (K-2)
- §9.3: страховка согласованности document.status = done (K-24), «того же периода» — год и квартал (K-20),
  1.x после правки — общим кодом (K-21)
- §9.5: признак строки правки — row_index IS NULL (K-1); header_source, codes/column_index document_issue (K-3, K-13);
  LINES_UNRESOLVED — сумма или текст (K-16); PATCH: organization_name (K-12), confirmed: false, line_status только
  detail, обратного detail нет, дата колонки обязательна, акцепт сбрасывает только правка данных, подтверждение даты
  отчёта тем же значением (K-17, K-23); 409 LINE_EXISTS → LINE_CODE_TAKEN (K-18)
- §11: TABLE_PARSE_ERROR и SHEET_OTHER — уровня файла (K-7); столбец кодов ищется всегда, DISCLOSURE с кодами ББ/ОФР —
  TYPE_CONFLICT (K-10); номер колонки (K-6); содержимое строки (K-14); нумерация с двойниками и одним пропуском (S-13);
  ref Excel с кавычками (S-15); единицы по словарю и ОКЕИ (K-22); перечень кодов — данные, законные повторы (K-5, Р-20),
  обе редакции всегда; синонимы и «итого по разделу» в сверке имён (S-4); интерфейс функции статуса (K-14); ожидание на
  реальных сканах (K-4); бланк 66н с относительными подписями (K-17)
- 07-open-questions: OQ-148 закрыт (Р-22 / S-7), OQ-166 уточнён, OQ-168 — коды перечня без образца
- dev/checks.md: копия arm_statements, sync-statements (коды 0 / 10 / 20 / 2), statements-check в check-full,
  проверки docs (K-9); frontend-api-guide §5.6.1 по новым правилам

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 02:09:04 +04:00
Andrey Epifancev
56a0ff4527 docs(#116): §11 — общая цепочка нормализации ББ/ОФР, §7 и §9 по v2.0, открытые вопросы
- 05-domain-rules: §11 объединяет прежние §11, §11.1 и §12 (источники OCR и Excel, шаги 2–8, таблица
  уровней предупреждений, что отменено); §12 — заголовок-ссылка; §7 — общий словарь у сервисов,
  «посчитанное» соотношение, abs_terms подтверждают величину, упрощённый набор; §9.3 — RECOGNIZED при
  приёме v2.0; §9.5 — хранение v2.0, агрегат по коду, 409 LINES_UNRESOLVED / DUPLICATE_FORM, PATCH
  lines/columns/confirmed; §1.6 — статус и предупреждения ОСВ в v2.0
- отменены: OQ-36/OQ-141 (Р-8), решение № 22 среза 3a (Р-11), решение 08.10.2026 по OQ-156 (Р-17);
  решение № 30 сохранено для OCR-текста
- 07-open-questions: закрыты OQ-36, OQ-141, OQ-147, OQ-152; OQ-156 пересмотрен; OQ-148 — допущение
  спеки; примечания к OQ-33, 145, 146, 149, 150; новые OQ-165 (склейка половин формы, Р-15),
  OQ-166 (упрощённая форма), OQ-167 (несколько периодов в файле ИС)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 00:50:00 +04:00
Andrey Epifancev
a3d6ef2c6f docs: пустая детализация не проверяется (§7, §12 п. 7; #114, AURORA-1527)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 19:09:42 +04:00
Andrey Epifancev
633bd4fca1 docs: parent_code у строк statement, показ подстрок ББ/ОФР (#114, AURORA-1527)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 18:48:11 +04:00
Andrey Epifancev
bca65ac51a docs: точка — тысячи при любом числе цифр до неё, §11 п. 7 (AURORA-1405, scan-gateway#37)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 13:35:36 +04:00
Andrey Epifancev
e20c1db7cd docs: точка — разделитель тысяч в суммах OCR, §11 п. 7 (AURORA-1405, scan-gateway#37)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 13:29:12 +04:00
Andrey Epifancev
508474fde1 Merge remote-tracking branch 'origin/main' into feat/42-xls-number-format 2026-10-15 18:36:52 +04:00
Andrey Epifancev
20dd0fe06a docs: уточнены правила числового формата ББ/ОФР, QA-гайд и тестовые данные (#42)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 17:42:45 +04:00
Andrey Epifancev
3230459f26 docs(§11.1): разделитель тысяч — уточнение скобок и формулировки источника
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 16:58:54 +04:00
Andrey Epifancev
a5527c3f1f docs(§11.1): разделитель тысяч в суммах OCR (AURORA-1405, scan-gateway#35)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 16:55:26 +04:00