c82a8f31a9
Merge pull request 'Итоги исполнения #116 : решения дорожек, открытые вопросы, гайд API ( #124 )' ( #125 ) from feat/124-normalization-execution-decisions into main
2026-10-18 21:57:31 +03:00
Andrey Epifancev
10317ae4d3
docs: итоги исполнения единой нормализации ББ/ОФР ( #124 , #116 )
...
Решения дорожек (планы 3А, 3Б, 4, 5, 6) перенесены в design.md change'а,
добавлен раздел «Открытые вопросы исполнения»; гайд фронта по API приведён
к arm-core main 35a24e7a; уточнена строка про зависимости в dev/checks.md.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 22:57:03 +04:00
535fcba040
Merge pull request 'Шаг 2: числа правее таблицы формы — не колонки сумм ( #122 , #116 )' ( #123 ) from feat/122-amount-columns-right-of-table into main
2026-10-18 20:28:59 +03: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
3fe7ad46ce
Merge pull request 'docs( #116 ): дизайн единой нормализации ББ/ОФР (scan-gateway + tabular-parser)' ( #117 ) from feat/116-unified-normalization into main
2026-10-18 18:43:04 +03: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
34bb1850d4
Merge pull request 'Скрипт sync-statements: копия пакета arm_statements в хостах ( #120 , #116 )' ( #121 ) from feat/120-sync-statements into main
2026-10-18 18:36:44 +03:00
Andrey Epifancev
321cfe05e7
openspec( #116 ): R-5 плана 2 — --in-place только в worktree фичи
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 19:33:13 +04:00
Andrey Epifancev
fdd25a6000
fix(scripts): sync-statements.sh --in-place не пишет в основной checkout и main, --check всегда печатает итог, правки доков ( #120 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 19:31:22 +04:00
Andrey Epifancev
7194b16471
openspec( #116 ): sync-statements — режим --in-place, подключение копии к хостам, решения P2-n и R-n плана 2
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 19:26:03 +04:00
Andrey Epifancev
7900191401
feat(scripts): prepare-contour-snapshot.sh проверяет свежесть копии arm_statements (sync-statements --check, Р-42) ( #120 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 19:24:42 +04:00
Andrey Epifancev
bb7c1a0c07
feat(make): sync-statements, statements-check и test-sync-statements в check ( #120 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 19:22:44 +04:00
Andrey Epifancev
df85505735
fix(scripts): sync-statements.sh — сбой tea не обрывает скрипт молча, повторная проверка копии после make check ( #120 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 19:20:26 +04:00
Andrey Epifancev
17c0fd20f9
feat(scripts): sync-statements.sh — worktree хоста, issue, make check и PR; --dry-run; предупреждение «сначала ядро» ( #120 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 19:18:14 +04:00
Andrey Epifancev
97777cbd7a
fix(scripts): sync-statements.sh --in-place — защиты копии срабатывают и при повторе, .DS_Store не считается игнорируемым ( #120 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 19:14:59 +04:00
Andrey Epifancev
b5ad8a0f4c
feat(scripts): sync-statements.sh --in-place — раскладка копии в рабочее дерево хоста с защитой от .gitignore и путей для контура ( #120 )
...
Также: evaluate при коммите VERSION без arm_statements/ даёт код 20 вместо падения с 128 (T2.1).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 19:13:16 +04:00
Andrey Epifancev
7851446999
feat(scripts): sync-statements.sh --check — свежесть копии arm_statements в хосте, коды 0/10/20/2 ( #120 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 19:10:11 +04:00
Andrey Epifancev
ddf6927332
feat(scripts): помощник statements_check.py — зависимости пакета и коды словаря имён против перечня ( #120 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 19:06:56 +04:00
Andrey Epifancev
bb1b761c46
docs( #116 ): решения плана 1 (P1-1…P1-31, R-1…R-8 плана 1) в design.md
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 16:01:49 +04:00
Andrey Epifancev
e6eef2760e
docs: arm-statements в таблицу workspace (Р-43)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 14:15:17 +04:00
Andrey Epifancev
cb1bf36ba9
docs( #116 ): тест идентичности копии контракта — ARM_KA_DOCS в scan-gateway, решения плана 0 (P0-1…P0-5, R-1)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 13:20:07 +04:00
Andrey Epifancev
e6f69b5e80
plan( #116 ): дорожная карта исполнения — планы, волны, выкладка, решения Р-31…Р-43 по планам
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 13:04:39 +04:00
Andrey Epifancev
1146c0bc3f
plan( #116 ): план 6 — экран на дополненном API ядра
...
line_code_confidence и okei в типах, header.source.confidence — строка, подсказка кода из
StatementOut.edition_lines, ошибка элемента lines[] у поля строки по detail.line_id
(lineErrorTarget вместо codeTakenKeys), значок документа в панели файлов по
DocumentBrief.issue_counts (rowBadge). Закрыты O-1…O-6, снят В-2.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 13:02:40 +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
c385b7ec42
docs( #116 ): решения владельца Р-31…Р-43 по открытым вопросам планов реализации
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 12:56:09 +04:00
Andrey Epifancev
37d58a4869
plan( #116 ): планы 4 и 5 — потребители дополненного API пакета
...
tabular-parser: столбец кодов и колонки сумм — code_column / amount_columns пакета, метки —
normalize_label / normalize_caption, маркер — is_continuation, контракт — to_contract /
warning_to_contract (statements/contract.py не пишется), XLS_NO_CODEPAGE — предупреждение файла
вместо OSV_XLS_NO_CODEPAGE; scan-gateway: contract_map.py не пишется, form_name из пакета,
WarningCode в make_warning, FailedRelation.expected/actual — Money | None. Закрыты O-1…O-7, O-9
плана 4 и O-2…O-7 плана 5.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 12:56:04 +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
1701bdb940
plan( #116 ): план 4 — задача 2 сверена с планом 2 (подготовка хоста — его задача 8, здесь только сверка и --in-place)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 12:34:18 +04:00
Andrey Epifancev
7b99c65373
plan( #116 ): план 4 — tabular-parser: адаптер Excel шага 1, общий код arm_statements, контракт v2.0
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 12:33:09 +04:00
Andrey Epifancev
6c413ccc0f
openspec( #116 ): план 5 — подготовка хоста сверена с планом 2 (задача 9, --in-place)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 12:32:52 +04:00
Andrey Epifancev
687eb19f9b
openspec( #116 ): план 5 — scan-gateway: адаптер OCR → arm_statements, контракт результата 2.0
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 12:32:07 +04:00
Andrey Epifancev
414f8075f9
plan( #116 ): план 6 — arm-web: экран формы ББ/ОФР и карточка файла по API v5.19
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 12:30:32 +04:00
Andrey Epifancev
87b32a0db3
openspec( #116 ): план 2 — sync-statements и statements-check в docs, подключение копии arm_statements к хостам
...
Скрипт docs/scripts/sync-statements.sh (--check 0/10/20/2, --in-place, --dry-run, обычный режим
с worktree/issue/PR), помощник statements_check.py, тест на синтетических репозиториях; три
bounded PR подключения копии в arm-core, tabular-parser, scan-gateway. Решения P2-1…P2-21,
открытые O-1…O-4; закрыты O-1…O-4 плана 1.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 12:29:02 +04:00
Andrey Epifancev
0b7d691735
openspec( #116 ): план 3 — вызовы пакета приведены к публичному API плана 1 (O-8)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 12:16:21 +04:00
d4f5453980
Merge pull request '§1 правил ОСВ: cp1251 для xls без CODEPAGE, «Кол-во»/«Вал», конец таблицы на первой «Итого» (tabular-parser #47 )' ( #119 ) from feat/47-osv-encoding-labels-tail into main
2026-10-18 11:15:47 +03:00
Andrey Epifancev
f84e89288b
openspec( #116 ): план 1 — resolve_relative и порядок редакций в публичном API, сверка с планом 3 (O-5)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 12:11:56 +04:00
Andrey Epifancev
14dcb0fbee
openspec( #116 ): план 1 — пакет общего кода arm_statements (репозиторий arm-statements), публичный API
...
19 задач: каркас и make check, типы и сериализация, словари и загрузчик, разборы текста/кода/дат/сумм, шапка,
шаги 2–8, функция статуса, конвейер кандидата, точка входа пересчёта, golden на обезличенных входах aep_3, 1С и НПЗ.
Решения автора плана P1-1…P1-20, открытые вопросы O-1…O-4.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 12:11:11 +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
7436d2efc0
plan( #116 ): план 3 — arm-core: хранение v5.19, правка формы, приём контракта 2.0
...
Две части — два PR в RSHB/arm-core: часть А (A0–A13) не зависит от пакета
arm_statements, часть Б (B0–B6) — после плана 2; интерфейс-заглушка пакета,
решения P3-1…P3-18, открытые вопросы O-1…O-10.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 12:03:51 +04:00
Andrey Epifancev
0bb33e88c2
openspec( #116 ): план 0 — тест идентичности копий контракта на окне перехода v1 → v2 (arm-core, tabular-parser, scan-gateway)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 11:53:09 +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
cecb5dea2a
docs( #116 ): решения владельца Р-27…Р-30 по открытым вопросам доработки спеки
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 11:40:57 +04:00
Andrey Epifancev
6047677ed0
openspec( #116 ): спека по повторному ревью L-1…L-30 и решениям владельца Р-23…Р-26; решения S-53…S-74
...
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
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
0e680c89e0
model( #116 ): v5.19 — миграция без пересчёта §7 после очистки форм, откат по точному правилу, file_ordinal у всех документов, document_issue у ОСВ (Р-24, L-3, L-4, L-9, L-24)
...
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
51d0f935ff
contracts( #116 ): OTHER убран из v2.0, form_variant обязателен; проверка числа повторов перечня кодов (L-22, L-28)
...
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
ad1cd307a1
docs( #116 ): повторное ревью спеки вслепую на Opus (L-1…L-30, оценка S-26…S-52)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 02:38:24 +04:00
Andrey Epifancev
248f8b0c74
openspec( #116 ): спека по ревью K-1…K-25 и решениям владельца Р-20…Р-22; решения S-26…S-52
...
- design.md: Р-20 (законные повторы кода в перечне, синонимы в словаре имён), Р-21 (мягкое соотношение, сошедшееся
точно, подтверждает неуверенное значение), Р-22 (S-1…S-25 приняты с оговорками; отмечены утверждённые владельцем);
решения при доработке S-26…S-52 с ценой ошибки
- statement-normalization: отдельное требование sync-statements (пути, VERSION, коды 0 / 10 / 20 / 2), словарь
единиц и ОКЕИ, ref Excel с кавычками, нумерация с двойниками и пропуском, номер колонки, содержимое строки, столбец
кодов у DISCLOSURE, упрощённый 2400 мягкий, Р-20 / Р-21 со сценариями, обе редакции перечня, интерфейс функции
статуса, TABLE_PARSE_ERROR / SHEET_OTHER уровня файла
- arm-core: признак строки правки row_index IS NULL, header_source, формы без checks (1.x и миграция) — §7 ядром в
document_issue, codes / column_index, RESULT_STATUS_INCONSISTENT, синонимы и «итого по разделу», PATCH
organization_name / confirmed: false / подтверждение даты, LINE_CODE_TAKEN, акцепт и подтверждения, LINES_UNRESOLVED
с текстом, «того же периода», откат миграции
- recognition-contract: MODIFIED «Копия контракта … идентична» — сверка по MAJOR копии, *.v1.schema.json на окне;
1.x — MAPPING_WARNING / LEGACY_WARNING; okei, column_index, пустые массивы DISCLOSURE, статус ОСВ одной формулировкой
- quality-checks (новая дельта): make check охватывает копию arm_statements, make check-full — statements-check
- tabular-recognition-service: манифест statements_manifest.yaml — failed_relations страниц 2 баланса (K-25)
- scan-gateway, arm-web: TABLE_PARSE_ERROR файла; подсказки шапки, снятие подтверждений, LINE_CODE_TAKEN
- proposal: шаг 0 выкладки, перечни кодов, ожидания на реальных сканах, Impact
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
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