150 Commits

Author SHA1 Message Date
Andrey Epifancev
f1579b6f6b Влит main (#207 КФО, #203 метрики, #214): срез ЕХ поверх v5.26 на v5.25 (#208)
- DBML/entities v5.26: пункты 6–8 ЕХ легли после 1–5 КФО, ниже — v5.25 (автослияние, сверено)
- 05-domain-rules: §15 перенесён в конец, после §14 (git поставил его перед §11)
- диаграммы: part09 перерисована (в ветке не было EX_SNAPSHOT_WRITE); part04 — версия main
- проверено: make check, test_ex_payload, gen_kfo_openapi = закоммиченный OpenAPI

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 17:02:53 +04:00
Andrey Epifancev
ae2b791ff6 Архив change kfo-calculation-contract (AURORA-1546/1547, #206)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 16:41:44 +04:00
Andrey Epifancev
ace39873f5 Влит main (метрики качества #203, разрез по форме #214): DBML v5.26 перестроена поверх v5.25 (#206)
- data-model-v5.26.dbml, entities-v5.26.md = v5.25 + пункты 1–5 КФО; changelog v5.26 после v5.25,
  пометки «v5.25 занят PR #203» сняты
- 03/04/08: версия модели v5.26 с пунктами v5.25; OQ-179 перед OQ-180…194
- диаграммы: make diagrams (part10 из main; part04 — версия main, сдвиг раскладки рендера не берём)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 16:38:25 +04:00
Andrey Epifancev
97c8dc05a3 Архив change statement-form-split (AURORA-1734/1735, #214)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 10:21:12 +04:00
aep
e5274285ea AURORA-1734, AURORA-1735: разрез по смене формы и редкий столбец (#214) 2026-11-07 09:20:48 +03:00
Andrey Epifancev
6484cd67d0 AURORA-1734/1735: уточнения по финальному ревью — сдвинутое значение и XLSB_NO_FORMATS в частях
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 09:10:38 +04:00
Andrey Epifancev
c509c5ed76 AURORA-1734/1735: §11 — разрез по смене формы и редкий столбец (RSHB/pylib_ai_arm_statements#5)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 09:01:31 +04:00
Andrey Epifancev
1b92f2b2ca AURORA-1734/1735: change statement-form-split — разрез кандидата по смене формы и редкая колонка (RSHB/pylib_ai_arm_statements#5)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 08:54:42 +04:00
Andrey Epifancev
979fb74ff0 Архив change quality-metrics (AURORA-1759)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 08:51:29 +04:00
Andrey Epifancev
75f5b52cd4 merge: влить origin/main в feat/202-quality-metrics-dbml
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 04:15:03 +04:00
Andrey Epifancev
819ded3638 docs(#202): решение R-24 в design quality-metrics
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 04:14:07 +04:00
Andrey Epifancev
55f06e9458 fix(#202): схема quality-facts перенесена в contracts/metrics/ (не требует копии в сервисах)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 03:56:47 +04:00
Andrey Epifancev
f0af8d59f5 ЕХ: раздел среза — §15 (§14 занят метриками качества в #203) (#208)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 23:25:40 +04:00
Andrey Epifancev
f340760e84 ЕХ: tasks.md — п. 3 (#208)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 23:16:48 +04:00
Andrey Epifancev
50cafe571c ЕХ: правки финального ревью — пробелы Q1…Q4, проценты без ограничения, поля выгрузок, Ref в updated_by, заморозка КФО, согласованные примеры (#208)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 23:16:47 +04:00
Andrey Epifancev
3b698e53a2 ЕХ: OpenSpec-delta arm-core и tasks.md (#208)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 23:07:04 +04:00
Andrey Epifancev
9086c064e4 ЕХ: дизайн и план change ex-payload-schema (#208)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 23:03:19 +04:00
Andrey Epifancev
a9aa6f60b0 Архив change statement-checks-alternatives (AURORA-1864, #209)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 23:00:11 +04:00
Andrey Epifancev
dc374a54a4 AURORA-1864: группа альтернатив соотношений 2400, знак 2410 не определяем (RSHB/pylib_ai_arm_statements#3)
§7: правило group в statement_checks.yaml, соотношения 2400 полного и
упрощённого наборов — альтернативы; OQ-12 закрыт в части 2410.
Change statement-checks-alternatives: требование «Шаг 7» спеки
statement-normalization.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 22:57:45 +04:00
Andrey Epifancev
b6384a5ad3 КФО: tasks.md — п. 4 выполнен (PR #207, вложения AURORA-1546/1547) (#206)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 22:41:54 +04:00
Andrey Epifancev
232f82cfce КФО: правки финального ревью — порядок каскада, округление auto/manual, односторонние агрегаты, доля, итоги, OQ-194; генератор контракта в scripts/ (#206)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 20:43:26 +04:00
Andrey Epifancev
9ee0796314 КФО: OpenSpec-delta arm-core и tasks.md (#206)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 20:32:11 +04:00
Andrey Epifancev
cc3b518261 DBML v5.26: разрез КФО по компании, предупреждения и аудит КФО, режим min_or_full (#206)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 20:27:38 +04:00
Andrey Epifancev
228af4e4d9 КФО: дизайн change kfo-calculation-contract (#206)
Proposal и design: §8 «КФО», DBML v5.26, контракт API КФО под AURORA-1546/1547; ответы на вопросы проверки исполнителем.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 20:16:41 +04:00
Andrey Epifancev
8abbf50dd3 docs(#202): правки ревью ветки — is_scan, ОСВ без lines/values, retention raw/uploads
Критично: stored_file.is_scan был описан наоборот (true = цифровой вместо true = скан),
противоречил §14.6 и собственному имени столбца.

Важно: §14 не говорил явно, что ОСВ не получает lines/values в payload (теперь
dependentSchemas в контракте это ещё и проверяет); §14.3 не говорил, что
quality_outcome_fact.document_id не unique и метрики берут последний факт; амount в
контракте был float вместо decimal-строки (как money в recognition-result.schema.json);
правка "дата колонки" не имела счётчика — явно отнесена к fixes_header_*; правило
хранения S3 при удалении файла (OQ-179) не было согласовано между domain-rules,
architecture и spec.md (spec.md ошибочно утверждал, что uploads экспирится в отличие
от raw — не экспирится ни то, ни другое, если на них ссылается факт).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-11-05 15:02:48 +04:00
Andrey Epifancev
2676dfd731 docs(#202): открытые вопросы, architecture и openspec-change — метрики качества первички
OQ-179 (срок хранения raw/{job_id}.json), роль raw и dkb_metrics в 03-architecture.md,
openspec proposal/design/specs, план реализации (AURORA-1759).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-11-05 14:11:16 +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
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
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
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
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
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
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
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
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