269 Commits

Author SHA1 Message Date
Andrey Epifancev
835083ca4d fix(osv): вторые итоговые строки («Итого развернутое») вне тождества строки, R-11 отменён R-16 (#59)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 13:19:18 +04:00
Andrey Epifancev
69564ffcbd docs: README, CLAUDE.md и change osv-flat-form (#59)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 13:19:18 +04:00
Andrey Epifancev
cdbe23b9b6 feat(osv): контрагенты расчётных счетов без названия вида — по плану счетов (#59)
counterparty_accounts в osv_groups.yaml (R-9: без 71 и 73), is_counterparty_account,
OSV_ROWS по счёту; формулировка проверки «Итого» без корня ACCOUNT (T4.1);
ожидания s40–s44 в синтетике (T1.1/T1.2), тест испорченной «Итого» плоского списка (T4.2).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 13:19:01 +04:00
Andrey Epifancev
71c4c93db2 feat(osv): стратегия header_account — плоский список под счётом шапки (#59)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 13:18:23 +04:00
Andrey Epifancev
774141588e fix(osv): «Итого развернутое» перед «Итого» — итоговая строка, сверка по основной «Итого» (#59)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 13:18:06 +04:00
Andrey Epifancev
8dd8a50868 fix(osv): метка валюты без двоеточия не становится видом субконто (#59)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 13:17:34 +04:00
Andrey Epifancev
883c6fb628 fix(osv): строка вида субконто не добавляет метки шапки и ACCOUNT в схему (#59)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 13:17:34 +04:00
Andrey Epifancev
29f264d842 feat(osv): код счёта «по счету: X», строка вида субконто, «План счетов» в шапке (#59)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 13:17:34 +04:00
Andrey Epifancev
e625409818 test: синтетика s40–s44 — плоская форма ОСВ 1С (#59)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 13:17:34 +04:00
Andrey Epifancev
ecb23475db docs(plan): учёт R-8…R-10 в плане osv-flat-form (#59)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 13:17:05 +04:00
Andrey Epifancev
23a5b7b419 docs(openspec): рулинги R-8…R-10 change osv-flat-form (#59)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 13:17:05 +04:00
Andrey Epifancev
32b8ad76ec docs(openspec): change osv-flat-form и план — плоская форма ОСВ 1С (#59)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 13:17:05 +04:00
aep
0c1236efed Merge pull request 'Архив OpenSpec: osv-indicator-column (#58)' (#61) from chore/58-archive-osv-indicator-column into main 2026-10-19 12:06:00 +03:00
Andrey Epifancev
ece851b0ed Архив OpenSpec: osv-indicator-column (#58)
Change перенесён в openspec/changes/archive/2026-10-19-osv-indicator-column,
дельта влита в openspec/specs/osv-parsing/spec.md (строки-показатели, колонка
«Показатели», «В валюте», BU по умолчанию, счёт 90 в OQ-132).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 13:05:49 +04:00
aep
b70d2866e8 Merge pull request 'Строки-показатели ОСВ: колонка «Показатели», «В валюте», BU по умолчанию (#58)' (#60) from feat/58-osv-indicators into main 2026-10-19 12:04:57 +03:00
Andrey Epifancev
1262bde706 checks.py: перенос строки докстринга (E501, O-1)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 12:55:56 +04:00
Andrey Epifancev
ad17212ba7 design: O-1 fixed 1d2a46f
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 12:52:19 +04:00
Andrey Epifancev
1d2a46f3e7 Счёт 90 в списке счетов без сальдо по аналитике (OQ-132, O-1, #58)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 12:52:03 +04:00
Andrey Epifancev
d6dd341003 Правки итогового ревью: спека, предупреждение, README, design (#58)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 12:47:49 +04:00
Andrey Epifancev
480db4f3aa Документация: строки-показатели ОСВ (#58)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 12:26:03 +04:00
Andrey Epifancev
598d2c8fae Умолчание БУ по строкам вывода, без реэкспорта row_data_type (#58)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 12:17:18 +04:00
Andrey Epifancev
8924dd13a6 Классификация и проверки по признаку строки-показателя, BU по умолчанию (#58)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 12:09:05 +04:00
Andrey Epifancev
33b32cbad6 Строки-показатели вне каскада иерархии (#58)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 12:00:03 +04:00
Andrey Epifancev
ef07ced609 Строки-показатели: метка колонки «Показатели» при сборе строк (#58)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 11:55:05 +04:00
Andrey Epifancev
43653f1b6f Заголовок ОСВ: колонка «Показатели» (#58)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 11:49:28 +04:00
Andrey Epifancev
af70c4c466 test(osv): синтетика s33–s36 — колонка «Показатели», срезы валют, шапка без типа данных (#58)
Сценарии намеренно красные: воспроизводят баги AURORA-1613 и AURORA-1661.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 11:40:23 +04:00
Andrey Epifancev
74ba89c417 Словари: колонка «Показатели», «В валюте» (#58)
Словари для колонки вида суммы «Показатели» (БУ/НУ/Кол./Вал./ПР/ВР) и строки «В валюте» (AURORA-1613, AURORA-1661).
Код их пока не читает — это Task 2–3 плана.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 11:34:33 +04:00
Andrey Epifancev
d564d4998d План: номера синтетики s33–s36 вместо s40–s43 (R-1, #58)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 11:29:53 +04:00
Andrey Epifancev
656486a7d2 OpenSpec change osv-indicator-column и план (#58)
Колонка «Показатели», строки-показатели, «В валюте», BU по умолчанию (AURORA-1613, AURORA-1661 — валютная часть).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 11:03:13 +04:00
aep
aef2d3557b Merge pull request 'Архив OpenSpec: contract-identity-window и unified-normalization-tp (#50, #54)' (#56) from chore/54-archive-statements-v2 into main 2026-10-19 08:27:57 +03:00
Andrey Epifancev
acaa5021ce chore(openspec): архив contract-identity-window и unified-normalization-tp (#50, #54)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 09:26:49 +04:00
aep
4d1709ae0d Merge pull request 'Формы через arm_statements, контракт результата v2.0 (#54)' (#55) from feat/54-statements-v2 into main 2026-10-19 07:38:05 +03:00
Andrey Epifancev
b583b0472f test: plan_sheets с дедлайном в тесте реальных форм, порядок импортов (#54)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 22:14:48 +04:00
Andrey Epifancev
4d30718689 docs: дельты OpenSpec, design.md, README и CLAUDE.md под контракт 2.0 (#54)
I-3: дельты osv-parsing (листы ОСВ, иерархия, golden, XLS_NO_CODEPAGE) и
перечень словарей api/rules; пункт об архивации (Purpose спек) в tasks.md.
I-4: README, CLAUDE.md и docstring hierarchy.py совпадают с кодом, пример
вывода CLI переснят. M-6: tasks.md, proposal.md, design.md с решениями P4/R.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 22:08:30 +04:00
Andrey Epifancev
0d82b5cf5e fix: черновик продолжения несёт число колонок сумм (#54)
M-1: _separate считает form_amount_columns, следующий лист без маркера
больше не получает ложный SHEET_NOT_JOINED.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 22:05:06 +04:00
Andrey Epifancev
2fce78080b fix: дедлайн при классификации листов и тесты путей отказа форм (#54)
I-1: plan_sheets проверяет дедлайн на каждом листе (регрессия против main).
I-2: тесты исключения пакета на кандидате (RECOGNITION_FAILED с
предупреждениями файла), TIMEOUT в адаптере и конвейере, RulesError в get_parser.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 22:04:37 +04:00
Andrey Epifancev
be5ad8ce86 refactor: удалён собственный конвейер форм и словари форм — шаги 2–8 в arm_statements (#54)
Удалены модули statements/{checks,columns,detect,header,lines,merge,statement,legacy_models}.py, словари
rules/statement_{headers,periods,checks}.yaml и их тесты. Словари форм и шаги 2–8 — в пакете arm_statements.
Rules без полей statement_*; покрытие словарей ОСВ (DICTIONARIES) без словарей форм. Документация сервиса
переписана под адаптер форм, контракт 2.0 и коды OSV_*.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 21:53:29 +04:00
Andrey Epifancev
0f12c0eb3d test: манифест реальных форм и Review Focus под общий код и v2.0 (#54)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 21:41:54 +04:00
Andrey Epifancev
f5d071f602 chore(arm_statements): копия пакета arm-statements@3390f92 (#54)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 21:30:20 +04:00
Andrey Epifancev
9e694796ad test: согласованные формы для статуса книги, test_pipeline, флаг BookRead.no_outline (fix round 1, #54)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 21:01:53 +04:00
Andrey Epifancev
71f596cdb7 feat: формы через arm_statements, контракт результата и конверта v2.0, статус и OSV_* у ОСВ (#54)
- копия схем и примеров контракта v2.0 (запрос остаётся v1.0), модели result/common/message/request;
  ResultWarning/FileWarning, статус и предупреждения у документов, строки forms v2.0, service.statements_version
- statements/pipeline.py: кандидаты адаптера -> normalize_candidate -> to_contract / warning_to_contract
- BookParser: статус книги через envelope_status, SHEET_OTHER / FILE_TYPE_MISMATCH / XLS_NO_CODEPAGE как предупреждения
  файла, OSV_* и OSV_XLSB_NO_OUTLINE в документах ОСВ, тексты иерархии по спеке
- воркер, app и CLI получают statements_version из require_statements_version()
- старые модели документа формы вынесены в statements/legacy_models.py до удаления старого конвейера (задача 9)
- OpenSpec: MODIFIED «Парсер — заменяемый интерфейс» в дельте tabular-recognition-service

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 20:52:52 +04:00
Andrey Epifancev
702ea1dff9 refactor(osv): предупреждения листа ОСВ с кодами OSV_* (вывод 1.x прежний) (#54)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 20:35:29 +04:00
Andrey Epifancev
ebc1f438da fix(statements): подпись колонки в строке-шапке таблицы не заголовок формы (R-8, #54)
Ячейка в строке с подписью «Код» (словарь пакета) не открывает блок формы:
«Пояснения» на листах-продолжениях НПЗ больше не даёт DISCLOSURE.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 20:28:39 +04:00
Andrey Epifancev
c858a85d85 feat(statements): адаптер шага 1 — книга → FormCandidate, склейка листов, segment_breaks (#54)
Тест test_npz_candidates красный: НПЗ — BLOCKED (Р-31), см. отчёт задачи 5.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 20:24:47 +04:00
Andrey Epifancev
12f4701754 feat(statements): блоки форм, вид листа и шапка-ячейки на словарях arm_statements (#54)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 20:17:11 +04:00
Andrey Epifancev
ce8372d754 feat(statements): ячейка Excel → Cell: текст по числовому формату, value, ref <лист>!<A1> (#54)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 20:07:02 +04:00
Andrey Epifancev
8b9a5a07c4 openspec: change unified-normalization-tp — адаптер Excel, общий код, контракт v2.0 (#54)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 19:55:36 +04:00
aep
0b7b23eda0 Merge pull request 'Подключение копии пакета arm_statements (#52)' (#53) from feat/52-arm-statements-copy into main 2026-10-18 18:50:01 +03:00
Andrey Epifancev
bdb1c7479e chore(arm_statements): копия arm-statements@52857a0 (#52)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 19:45:10 +04:00
Andrey Epifancev
f5ced4177e build: копия arm_statements в линтерах и тестах, statements-check в check-full (#52)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 19:42:12 +04:00