287 Commits

Author SHA1 Message Date
aep
4fe8161d0a Merge pull request 'OQ-161 и временный режим «период ОСВ из версии консолидации» (#96)' (#97) from feat/96-osv-period-from-version into main
Reviewed-on: #97
2026-10-12 19:05:55 +03:00
Andrey Epifancev
28bb9112c7 docs(qa-guide): перепривязка при периметре из двух ЮЛ, результат проверки на стенде (#96)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 19:44:37 +04:00
Andrey Epifancev
410e96d643 docs: режим «период из версии» — только ОСВ «не того» периода (#96)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 19:42:31 +04:00
Andrey Epifancev
24c7e48600 docs: OQ-161 и временный режим «период ОСВ из версии консолидации» (#96)
- 07-open-questions.md: OQ-161 — документ с периодом не той версии молча не привязывается;
  временное допущение CONSOLIDATION_PERIOD_FROM_VERSION (arm-core#103), постоянное решение открыто
- qa-guide.md: §7.4 — как включить режим локально и в контуре, ограничения; строка в §9
- contour-transfer-guide.md: OPENBAO__APP__CONSOLIDATION_PERIOD_FROM_VERSION=true на период тестов

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 19:18:01 +04:00
aep
c2f9e7af98 Merge pull request 'Скрипт синхронизации arm-core/web с arm-web и проверка отставания в пайплайне переноса в контур (#94)' (#95) from feat/94-sync-web-script into main
Reviewed-on: #95
2026-10-10 09:47:42 +03:00
Andrey Epifancev
e8dbcff83f feat(scripts): sync-web.sh — синхронизация arm-core/web с arm-web и проверка отставания в пайплайне переноса (#94)
Скрипт делает одной командой то, что делалось вручную в arm-core #94 и #100:
точка синхронизации по хэшу дерева src (без хранения состояния), worktree по
абсолютному пути, issue и PR в arm-core через tea, перенос набора (всё кроме
служебного arm-web), контроль diff -rq, проверки vitest/tsc/biome/build до
коммита. Режимы --check (0/10/20), --dry-run, --ref, --core-ref.

prepare-contour-snapshot.sh для arm-core перед снимком вызывает sync-web.sh
--check: при отставании спрашивает «перенести как есть?», «n» запускает
синхронизацию и останавливает перенос (код 3) до merge PR и закрытия issue;
без терминала — флаг --web-as-is; расхождение (прямые правки web/) — стоп.
Тест test_sync_web.sh на синтетических репозиториях, цели make test-sync-web
и sync-web, гайд §3 шаг 0, §3.1, §8.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-10 10:45:35 +04:00
aep
a434f614f4 Merge pull request 'openspec: архив console-files (#90)' (#93) from chore/90-archive-console-files into main
Reviewed-on: #93
2026-10-10 09:08:31 +03:00
Andrey Epifancev
2bb0e999c0 openspec: архив сквозного change console-files (#90)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-10 10:06:16 +04:00
aep
07549a4eba Merge pull request 'DBML v5.18: файлы в контексте консолидации — stored_file.consolidation_id, маршруты консоли (#90)' (#91) from feat/90-console-files into main
Reviewed-on: #91
2026-10-09 23:44:54 +03:00
Andrey Epifancev
40b3b92714 docs: правки по финальному ревью — рабочий стол, права, формулировки (#90)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-09 23:44:04 +04:00
Andrey Epifancev
f126c27ac9 dev: гайд фронта — коды ошибок загрузки в консолидацию (#90)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-09 23:36:06 +04:00
Andrey Epifancev
9ba8d29033 docs: QA-гайд, OQ-160 (целевая модель версий), план срезов — файлы консолидации (#90)
QA-гайд переведён на маршрут консоли (POST /consolidations/{cid}/legal-entities/{le}/files),
OQ-159 закрыт, OQ-160 добавлен, Срез 2d дополнен, решения R-9…R-14 в design.md,
config.yaml переведён на DBML v5.18, формулировка SUPERSEDED выровнена.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-09 23:35:53 +04:00
Andrey Epifancev
49ccd4e157 dev: маршруты файлов консолидации в гайде фронта, контрактах и пути пользователя (#90)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-09 23:31:50 +04:00
Andrey Epifancev
e4abd1717a rules: §9.1/§9.5 — загрузка в консолидацию и рабочий стол консоли (#90)
Ссылки на текущую модель в 05 и 08 переведены на v5.18 (R-12).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-09 23:30:12 +04:00
Andrey Epifancev
0684481255 model: v5.18 — consolidation_id последней колонкой stored_file (#90)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-09 23:28:52 +04:00
Andrey Epifancev
64ccfe3b89 docs: entities v5.18 и ссылки на модель v5.18 (#90)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-09 23:27:14 +04:00
Andrey Epifancev
c2c95012ea model: DBML v5.18 — stored_file.consolidation_id, рабочий стол консоли (#90)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-09 23:24:57 +04:00
Andrey Epifancev
1cf067cd8b plan: console-files — план для репозитория docs (#90)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-09 23:10:32 +04:00
Andrey Epifancev
a329e5e9fb openspec: change console-files — файлы в контексте консолидации (#90)
Спека по решениям владельца 09.10.2026: stored_file.consolidation_id (период, не версия),
маршруты /consolidations/{cid}/legal-entities/{le}/files, рабочий стол = DESK ∪ BOUND,
заморозка через consolidation_document и ЕХ. Дочерние change'и — arm-core и arm-web.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-09 22:36:12 +04:00
aep
ff5a9c8450 Merge pull request 'Срок ответа OCR 20 мин, запись в горячую папку прямо в Input; OQ-159 (#84)' (#87) from feat/84-ocr-timeout-direct-write into main
Reviewed-on: #87
2026-10-09 16:22:13 +03:00
aep
2f482c7b01 Merge pull request 'Инструкция пользователя АРМ КА (прототип arm-web) со скриншотами (#85)' (#86) from feat/85-user-guide into main
Reviewed-on: #86
2026-10-09 16:04:27 +03:00
Andrey Epifancev
fda568c1f4 docs(user): инструкция пользователя АРМ КА по прототипу arm-web со скриншотами (#85)
- docs/user/user-guide.md: вход, меню, группы компаний, новая консолидация, страница ГК, первичные документы, просмотр ОСВ,
  проверка ББ/ОФР, сводная ОСВ (фильтры, пробелы, тип контрагента, сопоставление без ИНН, экспорт), администрирование,
  статусы и термины, ограничения версии
- docs/user/img/: 42 снимка реального стенда (Playwright 1600×1000, arm-web test + arm-core main, 09.10.2026)
- ссылки на инструкцию в dev/README.md и dev/qa-guide.md

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-09 16:53:45 +04:00
Andrey Epifancev
f70522e1e0 docs: срок ответа OCR 20 мин, запись в горячую папку прямо в Input (#84)
- 05-domain-rules §9.4, 01-project-overview: OCR 20 мин (парсер 5 мин)
- 03-architecture: scan-gateway пишет прямо в Input с перезаписью, как в старом АРМ
- 07-open-questions: дополнены OQ-58, OQ-79, OQ-137; новый OQ-159 (note DBML «OCR — 5 мин»)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 16:24:08 +04:00
aep
530267e98f Merge pull request 'Гайды: форма ЮЛ одним запросом (arm-core #84)' (#83) from feat/84-le-form-fields into main
Reviewed-on: #83
2026-10-09 13:03:12 +03:00
Andrey Epifancev
d6c616a118 docs(dev): форма ЮЛ одним запросом в гайдах фронта и QA (arm-core #84)
POST/PATCH /directories/legal-entities принимают aliases, gsk_id, gsz_id
(arm-core PR #85): строка в «Что изменилось», §5.3, экраны [51-02]/[79],
«Что перечитать», каталог ошибок (WRONG_GROUP_KIND, ALIAS_EXISTS в форме);
в гайде тестировщика — проверки D25–D30.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 13:57:43 +04:00
aep
e3c6419392 Merge pull request 'Полный состав строк ББ/ОФР: §7, OQ-150, гайды (#81)' (#82) from feat/81-statement-template-lines into main
Reviewed-on: #82
2026-10-09 11:53:34 +03:00
Andrey Epifancev
2b3ead461a docs: исправить вставку в §11 и сигнатуры контракта 3b (#81)
M-7: вставка про достройку строк разорвала перечисление в 05-domain-rules.md §11, вынесена отдельным предложением.
M-8: в api-contract-slice-3b.md у LineOut/ValueOut добавлены id | null и origin, у StatementPatch.values - line_id | line_code.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-09 12:31:35 +04:00
Andrey Epifancev
b55db422f8 docs: исправить примеры F8a/F8b в qa-guide (#81)
F8a: line_code 1600 (LINE_EXISTS) и 9999 (вне справочника) с реальным column_id;
F8b: уточнены формулировки; в гайде фронта — текст ошибки при отсутствии редакции.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-09 12:23:48 +04:00
Andrey Epifancev
1851c248fa docs: полный состав строк ББ/ОФР — §7, OQ-150, гайды (#81)
- 05-domain-rules: §7 абзац «Полный состав формы», §11 пометка про достройку строк
- 07-open-questions: OQ-150 — решение владельца 09.10.2026
- frontend-api-guide, api-contract-slice-3b: values[] с line_code, origin, id = null, новые случаи UNKNOWN_CELL
- qa-guide: F8a, F8b, W28a, W28b

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-09 12:21:41 +04:00
aep
045604062e Merge pull request 'openspec: архив nats-files-subjects (#74)' (#78) from chore/74-archive-nats-files-subjects into main 2026-10-08 22:50:42 +03:00
Andrey Epifancev
afe40c70da openspec: архив nats-files-subjects (#74)
Change слит PR #77; спеки обновлены (subject'ы files.tabular_uploaded,
files.img_uploaded, files.tabular_parsed).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-08 23:50:10 +04:00
aep
d44e4fcb0b Merge pull request 'NATS: subject'ы как в старом АРМ — files.*_uploaded, files.tabular_parsed (#74)' (#77) from feat/74-nats-files-subjects into main
Reviewed-on: #77
2026-10-08 22:47:50 +03:00
Andrey Epifancev
0f1686498e openspec: nats-files-subjects — дочерние change'и сервисов готовы (#74)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-08 23:46:26 +04:00
aep
24089e50cc Merge pull request 'Снимок для контура: артефакты агента вырезаются на любой глубине (#75)' (#76) from feat/75-snapshot-nested-cleanup into main
Reviewed-on: #76
2026-10-08 22:42:58 +03:00
Andrey Epifancev
7b37e696ca fix(dev): снимок для контура вырезает артефакты агента на любой глубине (#75)
Фронт перенесён в arm-core/web/ из arm-web вместе со своими .claude/, CLAUDE.md,
openspec/config.yaml, docs/superpowers/ и .codegraph/. Скрипт удалял их только в
корне, поэтому в arm-core их пришлось вычищать вручную (arm-core #73).

- prepare-contour-snapshot.sh: удаление и проверка через find по всему дереву;
  опустевшие docs/ убираются; Dockerfile/.dockerignore — по-прежнему только корень
- scripts/test_prepare_contour_snapshot.sh + make test-snapshot (входит в make check):
  синтетический arm-core с артефактами в корне и в web/
- dev/contour-transfer-guide.md §1–§3 и текст SNAPSHOT.md

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019qoydUVv8g1qHxc123u2RR
2026-10-08 23:42:04 +04:00
Andrey Epifancev
50e588b6bd contracts: subject'ы NATS как в старом АРМ — files.*_uploaded, files.tabular_parsed (#74)
Решение владельца 08.10.2026: запросы — files.tabular_uploaded / files.img_uploaded
(было recognition.{tabular|image}.request), ack и результаты обоих сервисов —
files.tabular_parsed (было recognition.result); files.img_parsed не используется,
старый АРМ гасится. Тела сообщений, Nats-Msg-Id, queue group'ы и schema_version
не меняются.

Change nats-files-subjects: дельта recognition-contract (3 требования), Purpose
спеки; описания subject'ов в contracts/*.schema.json; 03-architecture (схема,
таблица потоков, NATS платформы), 09-delivery-plan, dev/README, dev/qa-guide,
repo-templates. DBML v5.17 не поднимается (R-3, deferred).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-08 23:34:01 +04:00
aep
a1eaf60120 Merge pull request 'Сводная ОСВ: отмена П-1 («Осталось N» только без ИНН), ИНН сопоставленного ЮЛ (#72)' (#73) from feat/72-osv-unmapped-no-inn into main
Reviewed-on: #73
2026-10-08 22:02:10 +03:00
Andrey Epifancev
e1482357b0 docs(qa): чек-лист сводной ОСВ — ячейка ИНН по макету, «Показать ЮЛ без ИНН» (#72)
W34 уточнён, новый W34a: ИНН из файла без «Указать», «таблетка» с ИНН ЮЛ у строк, связанных без ИНН в файле,
пересопоставление с «Связано» у текущего ЮЛ (arm-web #17).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019qoydUVv8g1qHxc123u2RR
2026-10-08 20:00:08 +04:00
Andrey Epifancev
b619611912 docs(osv): отмена П-1 — «Осталось N» только без ИНН; ИНН сопоставленного ЮЛ в строке свода (#72)
Решения владельца 08.10.2026 (arm-core #74): несопоставленная строка свода — без ЮЛ и без ИНН из файла;
`ConsolidatedRowOut.counterparty_entity_inn` (П-8). Обновлены frontend-api-guide (таблица изменений, п. 10,
схема, пробелы API), api-contract-slice-4, 10-user-journey 3.1, qa-guide (контрольные цифры 1381 → 1260).
Новый открытый вопрос OQ-158: строки аналитики, не являющиеся организациями, в «Осталось N».

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019qoydUVv8g1qHxc123u2RR
2026-10-08 19:51:01 +04:00
aep
5b96c9ab7b Merge pull request '§9.3, §9.5, OQ-157: автоподтверждение чистых документов (RSHB/arm-core#64)' (#71) from feat/64-auto-confirm-rules into main
Reviewed-on: #71
2026-10-08 17:09:48 +03:00
Andrey Epifancev
6141828790 docs: fix round 2 — W17 через API, F3/F17/F21 уточнены, §9.1 перечень удаления
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 17:02:41 +04:00
Andrey Epifancev
e975f56386 docs: fix round 1 — автоподтверждение: §9.1/§9.3/§9.5, OQ-157, гайды QA и фронта
Правки по ревью: цепочка F3–F10 на форме с нарушением (чистая CONFIRMED),
F11 — ручное подтверждение после правки, DISCLOSURE/OTHER автоподтверждаются,
удаление — условия вне корректировки данных, W17 — файл вне демо-периметра.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 16:59:21 +04:00
Andrey Epifancev
9e0115c2c7 docs: автоподтверждение чистых документов — §9.3, §9.5, OQ-157, гайды (RSHB/arm-core#64)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 16:54:28 +04:00
aep
800bb05185 Merge pull request '§11.1 п. 4 и OQ-156: склеенные строки ответа ИС «1500\n1700»' (#70) from feat/oq156-merged-codes into main
Reviewed-on: #70
2026-10-08 13:54:48 +03:00
Andrey Epifancev
7e2111ff5f docs(domain-rules): склеенные строки ответа ИС — §11.1 п. 4, OQ-156
ИС возвращает соседние строки формы одной строкой («1500\n1700», суммы через
перевод строки) — ББ РБ и Счастливочной за 1 кв. 2025. Решение владельца
08.10.2026: разлеплять, если в каждой непустой ячейке значений столько же
частей, сколько кодов; иначе — как раньше (нечисловой код). Реализация —
RSHB/arm-scan-gateway#16.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 12:51:04 +04:00
aep
503a411c18 Merge pull request 'Гайд тестировщика: колонка «Тип контрагента» в сводной ОСВ (arm-web#8)' (#69) from feat/osv-type-qa-guide into main
Reviewed-on: #69
2026-10-08 11:03:25 +03:00
Andrey Epifancev
3ea0d52d1b docs(qa-guide): колонка «Тип контрагента» в сводной ОСВ — W32, W32a, §8.7 (RSHB/arm-web#8)
Колонка «Тип контрагента» появилась в arm-web (PR RSHB/arm-web#9): W32 проверяет
бейдж «ГСК», новый шаг W32a — фильтр по типу и цвета бейджей; из «не считать
багом» убрано отсутствие колонки признака.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 11:57:17 +04:00
aep
786430f8ef Merge pull request 'Гайд тестировщика: фронт arm-web — запуск и UI-чек-лист (#66)' (#67) from feat/66-qa-guide-web into main
Reviewed-on: #67
2026-10-08 10:26:32 +03:00
Andrey Epifancev
8be9a20825 Гайд тестировщика: фронт arm-web — запуск и UI-чек-лист (#66)
- §1–§4: что есть в UI arm-web, клонирование (ветка test, tabular-parser и
  scan-gateway для сборки сервисов), запуск make start с dev-proxy /api, вход.
- Новый §8 «Сквозной сценарий в UI»: W1–W35 по экранам макета [03], [34], [42],
  [39], [40], [41], [30]; контрольные цифры §7.2 в формате экрана; что в UI не баг.
- §6.1: дефект уведомлений /admin (arm-web#7) и обход через arm-core/web.
- §6.6, §6.9, §7: какие сценарии есть в UI; §9, §11, §12 — ограничения, куда
  заводить баги UI, проблемы запуска фронта. Разделы 8–11 стали 9–12.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-08 11:16:37 +04:00
aep
55b79bb535 Merge pull request 'Docs по итогам 08.10: §1.4 (R-3), гайд фронта (#59/#60), OQ-155 «алгоритм ТЗ» (#64)' (#65) from feat/64-docs-followups into main
Reviewed-on: #65
2026-10-08 09:49:46 +03:00