20 Commits

Author SHA1 Message Date
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
Andrey Epifancev
99cbcffea5 Гайд переноса §6: настройки контура через OPENBAO__APP__*, dev-заглушка аутентификации (#52)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EAKRDNzXtRrwmWz9z6PZu3
2026-10-07 18:41:48 +04:00
Andrey Epifancev
6197cf404b docs: DBML v5.17 — КПП юридического лица (legal_entity.kpp), пересмотр OQ-31 (#53)
Решение владельца 07.10.2026: КПП нужен. data-model-v5.17.dbml и entities-v5.17.md (v5.16 не тронуты):
legal_entity.kpp и legal_entity_history.kpp (nullable). Формат 9 символов (4 цифры, 2 цифры/латинские A-Z,
3 цифры), иначе INVALID_KPP; у ИП запрещён; для ЮЛ необязателен; уникален только inn; изменение —
обычный PATCH со снимком. 05-domain-rules: §13.1/13.2 (колонка КПП, код INVALID_KPP) и новый §13.5.
OQ-31 — новое решение (старое оставлено в истории строки). Гайд модели, 03-architecture,
mockup/INDEX, 10-user-journey, repo-templates — на v5.17.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EAKRDNzXtRrwmWz9z6PZu3
2026-10-07 18:30:04 +04:00
Andrey Epifancev
68bde14b5a docs(context): Срез 3b — §7/§9 по факту, контракт API форм, OQ (#48)
§7 (проверки в ядре, межформенная мягкая, акцепт), §9.3/§9.5 (формы ББ/ОФР, период,
правка до подтверждения, условия подтверждения, исходный файл и комментарии),
OQ-153 и пометки «допущение реализовано» у OQ-23/36/77/140/145, раздел 3b в
03-architecture, статусы срезов в 09-delivery-plan, dev/api-contract-slice-3b.md,
сценарии 6.9 в dev/qa-guide.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-07 13:30:02 +04:00
Andrey Epifancev
a2811ebc52 docs(context): Срез 3a — правки по ревью (OQ-149, устаревшие описания эмулятора, locator, решения №28–35)
- 07-open-questions: OQ-149 переписан (пустой код у «БАЛАНС»/«Выручка», предупреждения №29, `|` экранирован), новый OQ-152
  (повтор кода 2410 в aep_6), уточнены OQ-137 и OQ-144 (Input)
- 05-domain-rules: §11 locator `file:<имя json>;table:<i>`; §11.1 п. 2 (длина даты №31), п. 4 (предупреждения о пропущенных
  строках), п. 7 (все точки удаляются, Money и confidence №30), п. 8 (ИНН неуверенно), п. 9 (№28), п. 10 (редакция не определена)
- 03-architecture: формулировка про `.part`; 06-test-data, dev/README (сценарии 2/2а), repo-templates/scan-gateway.CLAUDE.md —
  раскладка `<job_id>.<ext>` и пары по sha256
- dev/compose, qa-guide §6.8/§8 (ожидаемые предупреждения по эталонам, OQ-151), 09-delivery-plan (статус 3a)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-07 03:49:05 +04:00
Andrey Epifancev
a3f33fbe40 docs(context): Срез 3a — раскладка горячих папок, §11.1 п. 6/9/10, OQ по редакциям и очистке, compose (#46)
- 03-architecture: scan-gateway — .part остаётся в Tmp, очистка под SCAN_CLEANUP, OcrNormalizer, эмулятор по sha256
- 05-domain-rules §11.1: п. 1 (двойники только для дат), п. 4 (повтор кода, пропуск строк с мусорным кодом),
  п. 6 (свой statement_lines.yaml с редакциями), п. 7 (string_value, скобки, тире), п. 9 (BACKEND_PARSING_ERROR на таблицу),
  новый п. 10 «Редакции форм»
- 07-open-questions: OQ-137 уточнён; OQ-12, OQ-139 дополнены; новые OQ-144…OQ-151
- 09-delivery-plan: Срез 3 разделён на 3a (scan-gateway) и 3b (arm-core)
- dev: SCAN_CLEANUP и SCAN_EMULATOR_DEFAULT в compose, комментарий про <uuid>.<ext> и пары по sha256; qa-guide §6.8

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-07 02:55:11 +04:00
Andrey Epifancev
e93b28e20f Merge origin/main в feat/26-slice-2b-statement-parser
Refs #26

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: cedd7915-2efe-41e5-988c-a9117033598b
2026-10-06 21:25:05 +04:00
Andrey Epifancev
00d171564e docs(2b): 06-test-data (подраздел 4б, синтетика st01–st06, golden форм), 03-architecture (BookParser, контракт v1.2), 09-delivery-plan (Срез 2b)
Refs #26

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: cedd7915-2efe-41e5-988c-a9117033598b
2026-10-06 21:19:08 +04:00
Andrey Epifancev
f46a34169c docs(context): NATS на платформе по armka_file_worker, один JWT, раскладка горячих папок (#40)
- 03-architecture: core NATS без JetStream подтверждён кодом armka_file_worker (работает в контуре);
  один JWT на все сервисы с правами по subject'ам; старое семейство subject'ов files.*; соглашение
  ROOT_PATH платформы Aurora; FileWorker не реализует DECISION-4 — только инфраструктурный референс.
- 03-architecture: описание scan-gateway — эталон раскладки горячих папок ИС Сканирование как у FileWorker
  (Input/<job_id>.<ext>, *.tmp рядом, Output/<job_id>/*.json, очистка); расхождение кода — arm-scan-gateway #6.
- 07-open-questions: OQ-85 дополнен, новый OQ-137 (раскладка папок) закрыт владельцем 06.10.2026.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-06 17:21:59 +04:00
Andrey Epifancev
308b493d3f docs(slice-4): уточнения по ревью Task 14 (замер, сводка, PROPAGATED, нумерация решений)
Co-Authored-By: Claude Sonnet <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-06 08:10:57 +04:00
Andrey Epifancev
9246a61439 docs(slice-4): правила §2/§3/§9/§10 по факту, OQ, контракт API для фронта, QA-гайд
- 05-domain-rules: §2 (выбор источников, склейка, пробелы, Q1-эквивалентность), §3 (явная привязка, дорезолв, match_kind,
  кандидаты, ручное сопоставление), §9.1 (переходы Среза 4), §9.3, §9.5 (отвязка при автозамене, OQ-110), §10 (политика
  «в работе + своя блокировка»)
- 03-architecture: консолидации, чистый домен свода, порядок блокировок
- 07-open-questions: закрыты OQ-03, OQ-19, OQ-110 (Срез 4), OQ-40 принят; добавлены OQ-118…OQ-129
- 09-delivery-plan, 10-user-journey: Срез 4 по факту, эндпоинты у шагов 2.1–2.6 и 3.1
- dev/api-contract-slice-4.md: маршруты, схемы, коды ошибок, нюансы для фронта
- dev/qa-guide: раздел 7 «Консолидация через API»

Co-Authored-By: Claude Sonnet <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-06 08:02:50 +04:00
Andrey Epifancev
45ee08c0f8 docs: §1.3/§1.5/§3/§9 по факту маппинга, архитектура (цикл маппинга), OQ, план срезов, qa-guide
05-domain-rules: §1.3, §1.5, §3 п. 4, §9.2–9.3, новый §9.5 (загрузка, маппинг, автозамена, подтверждение, удаление, аудит).
03-architecture: цикл маппинга, порядок блокировок, схема ключей S3. 07-open-questions: закрыты OQ-67/69/70/59/109,
новые OQ-110…116. 09-delivery-plan: Срез 2c по факту. dev/qa-guide: раздел 6.6 «Загрузка ОСВ и просмотр строк через API».
tasks.md: 2.1 выполнен.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-06 00:11:52 +04:00
Andrey Epifancev
70ba5e9db8 docs: Срез 1 — entities-v5.14, guide, план срезов, индексы, сверка §13 с кодом
- model/entities-v5.14.md: таблица «Что изменилось в v5.14», related_group_member (ГСК и ГСЗ одновременно), audit_event
- context/04: файлы и partial unique (legal_entity_id, kind) v5.14, OQ-31/32 закрыты
- ссылки на v5.14: 00, 03, 05, KICKOFF-PROMPT, dev/checks.md, openspec/config.yaml, repo-templates/arm-core.CLAUDE.md
- 09: Срез 1 по факту (вариант Б), перенос UI справочника; 10: статус экранов справочника и /admin
- 08: выгрузка ЕЦП; 06: §6.1 фикстура directories/ecp-export-russkiy-biskvit.xlsx
- 05 §13: сверка с ImportCode (добавлен GSZ_CREATED, перечень 16 кодов), порядок проверок, уточнения реализации,
  лимиты файла, ошибки файла, след в аудите и S3
- tasks.md: 2.1–2.3, 3.1 выполнены

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-05 11:09:03 +04:00
Andrey Epifancev
5456a7df3b docs(context): 03-architecture — ack публикуется на корректный запрос
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 07:17:53 +04:00
Andrey Epifancev
3e1f39cd9e docs(context): 03-architecture — SCHEMA_MISMATCH без ack, нечитаемый запрос без ответа, PUBLISH_RETRIES, примеры контракта
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 06:41:29 +04:00
Andrey Epifancev
5bebdfe9fc docs(architecture): актуализировать описание контракта распознавания и версионирование
- убрана устаревшая пометка «черновик» у recognition-result.schema.json (M-1)
- в строку ack добавлен schema_version, metrics и raw_s3_key помечены как опциональные,
  правило версионирования дополнено принятием любого MINOR и порядком раскатки (M-2)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-03 18:59:03 +04:00
Andrey Epifancev
3074632fb1 Архитектура: таблица контракта NATS со ссылками на схемы, ack и правила Nats-Msg-Id
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-03 18:07:32 +04:00
Andrey Epifancev
a0be5ab5a1 docs: Срез 0 под факты платформы — NATS без JetStream, Python 3.11, PostgreSQL 16, без CI и Nexus
По ответам пользователя 03.10.2026: обмен через recognition_job перестроен на core NATS (queue group'ы,
ack сервиса = конверт status=processing, повторная публикация ядром 30 с × 3 → dlq, дедуп по result_msg_id);
capability ci-template заменена на quality-checks (make check / make check-full, конфигураций CI нет);
compose: PostgreSQL 16, NATS без --jetstream, python:3.11-slim; пакеты raisa_* фильтруются при dev-установке,
npm raisa-* → optionalDependencies. Обновлены 03-architecture, 09-delivery-plan, 00-workspace-layout,
proposal/design/specs/tasks change'а; открытые вопросы к платформе закрыты, остались Node и JWT РАИСА.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-03 16:21:39 +04:00
Andrey Epifancev
ed940e3d73 docs: соглашения шаблона команды, раскладка api/src, схема dkb, контракт NATS v1.0
03-architecture.md: раздел «Соглашения шаблона команды» (раскладка, конфигурация, БД и миграции,
клиенты, DI, тесты, линтеры, сборка, фронт, что вырезано в сервисах распознавания); слои arm-core
переписаны под реальный шаблон (api/src вместо backend/app, web вместо frontend); таблица обмена
через NATS — три схемы контракта v1.0, Nats-Msg-Id, group_schema только в файле результата;
один бакет S3 с префиксами-ролями; схема PostgreSQL dkb. 00-workspace-layout.md: worktree среза
в зеркальном workspace .wt/<срез>/.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-03 02:44:14 +04:00
Andrey Epifancev
e4e2b3ee83 docs: стартовый контекст 2026-10-02 23:02:44 +04:00