228 Commits

Author SHA1 Message Date
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
Andrey Epifancev
f24ca32360 Docs по итогам 08.10: §1.4 (R-3), гайд фронта (#59/#60), OQ-155 «алгоритм ТЗ» (#64)
- 05-domain-rules §1.4: на счетах без сальдо по аналитике обороты «дети = родитель» сверяются всегда, сальдо — только
  у родителя с субсчетами; сопоставление счёта со списком (R-3 arm-tabular-parser#26, подтверждено владельцем).
- 05-domain-rules §5, 07-open-questions OQ-155: эталон РБ элиминирует полную сумму ВГО стороны, ТЗ — min по паре;
  решение владельца 08.10.2026 — алгоритм ТЗ; OQ-07 (1:1 или гибрид) открыт.
- 09-delivery-plan Срез 5: сверка с эталоном — только по точным парам.
- dev/frontend-api-guide: предупреждение автозамены в job.mapping_warnings (arm-core #60), алиас приоритетнее имени
  (arm-core #59); состояние — main d8bf5b2.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-08 01:16:35 +04:00
aep
15f722a60c Merge pull request 'Решения владельца по OQ-114, 128, 132, 145, 146, 153, 154 (#62)' (#63) from feat/62-oq-decisions into main
Reviewed-on: #63
2026-10-07 23:02:59 +03:00
Andrey Epifancev
36cce063df Решения владельца по OQ-114, 128, 132, 145, 146, 153, 154 (#62)
- 07-open-questions: статусы семи вопросов по разбору 07.10.2026.
- 05-domain-rules: §1.4 — счета без сальдо по аналитике (91, 99) вне тождества строк (OQ-132); §3 п. 4 — алиас
  приоритетнее имени (OQ-128); §9.5 п. 3 — предупреждение о выпавших документах при замене файла (OQ-154);
  п. 4 — ручной правки строк ОСВ нет (OQ-114); п. 6 — скачивание и CSV не журналируются (OQ-153); §7 — редакция
  по дате, в контракт не передаётся (OQ-145), словари по редакциям — с OQ-150 (OQ-146).
- dev/qa-guide: счёт 91 — решение OQ-132, до реализации needs_check ожидаем.

Код: RSHB/arm-core#57 (OQ-128), RSHB/arm-core#58 (OQ-154), arm-tabular-parser#11 п. 2 (OQ-132).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-08 00:01:38 +04:00
aep
4ca1c373b5 Merge pull request 'Устаревшая документация: модель v5.17, диаграммы по частям, сделанное — в сделанное (#60)' (#61) from feat/60-outdated-docs into main
Reviewed-on: #61
2026-10-07 22:38:15 +03:00
Andrey Epifancev
2eb28d6d3c Убрать .pyc из коммита, __pycache__/ в .gitignore (#60)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-07 23:36:25 +04:00
Andrey Epifancev
d643453dee Устаревшая документация: модель v5.17, диаграммы по частям, сделанное — в сделанное (#60)
- Ссылки на источник истины v5.13/v5.14/v5.15 → v5.17: openspec/config.yaml, KICKOFF-PROMPT, 00-workspace-layout,
  08-source-docs-index, заголовок 05-domain-rules, dev/checks.md; спека quality-checks — без привязки к версии
  (путь — переменная DBML Makefile).
- Диаграммы model/diagrams/part01…09 перерисованы по v5.17 (были v5.12): scripts/gen_model_diagrams.py
  (разбиение DBML на части + dbml-renderer + resvg через npx, версии закреплены), цель make diagrams;
  описание в 04-data-model-guide, 06-test-data, 08-source-docs-index.
- dev/frontend-api-guide.md: КПП (arm-core #52) и DB_SCHEMA (#53) — из §11 в §1, КПП в маршрутах §5.2/§5.3,
  схеме §5.8 и каталоге ошибок §9 (сверено с кодом 99669cd).
- Ссылки на заархивированные change'и (dev/README, dev/checks, api-contract-slice-3b/4), путь к v4 DBML в индексе.
- 09-delivery-plan: статусы Срезов 0, 2d, 3b, 4.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-07 23:35:44 +04:00
aep
c20fe57005 Merge pull request 'Гайд фронтенд-разработчика по API arm-core (#55)' (#57) from feat/55-frontend-api-guide into main
Reviewed-on: #57
2026-10-07 18:11:16 +03:00
Andrey Epifancev
0e030bd5c4 docs(dev): единый гайд фронтенд-разработчика по API arm-core (#55)
dev/frontend-api-guide.md — точка входа для фронта: подключение, общие правила
(три формы detail, видимость, деньги строками, PATCH-семантика, лишние поля,
лимиты), все 62 операции по областям с правами и кодами ошибок, сценарии
экранов и что перечитывать после действий, скачивание файлов, каталог кодов,
известные ограничения, изменения 05–07.10.2026 и ближайшие (КПП, #45).
Сверено с OpenAPI и кодом arm-core main (f4a7806, после #46 и #47).

api-contract-files-directories.md: is_head_office у филиала, outside_group/closed
у ЮЛ (M-5), FILE_TOO_LARGE — настройка UPLOAD_MAX_BYTES (M-6), дочитывание ЮЛ
модалки [42] по offset (M-7), филиал объектом (arm-core #47).
README: ссылка на гайд и на контракт файлов и справочников.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-07 19:08:25 +04:00
aep
fa32e8e16a Merge pull request 'DBML v5.17: КПП юридического лица (legal_entity.kpp), пересмотр OQ-31 (#53)' (#54) from feat/53-kpp-dbml-v5-17 into main
Reviewed-on: #54
2026-10-07 18:01:21 +03:00