124 Commits

Author SHA1 Message Date
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
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
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
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
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
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
928457f0e7 docs: 05-domain-rules §13.5 — проверка пары «тип, КПП» при PATCH
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EAKRDNzXtRrwmWz9z6PZu3
2026-10-07 18:51:53 +04: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
d8af9579aa docs: контракт файлов и справочников, поля консолидаций (arm-core#42), OQ-43, модалка [42]
Closes #50.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-07 18:00:58 +04:00
Andrey Epifancev
9445791c57 docs(context): OQ-154 — автозамена файла с формами ББ/ОФР на уровне файла (#48)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-07 15:05:03 +04:00
Andrey Epifancev
8c399daac6 docs(context): Срез 3b — откат формулировки о присутствии цели §7 (#48)
Цель проверки присутствует, если строка есть в форме; пустая сумма и отсутствующий
код — 0, как в tabular-parser. Решение №20 отозвано.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-07 14:46:12 +04:00
Andrey Epifancev
4287d583e6 docs(context): Срез 3b — правки по финальному ревью arm-core (#48)
inn=null — 422, удаление файла удаляет формы и комментарии, заголовки исходного
файла (no-store, CSP sandbox), повторы колонок и пар, присутствие цели §7,
ссылки на решения №1–22.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-07 14:36:38 +04:00
Andrey Epifancev
d82c7f9a2d docs(context): Срез 3b — сверка CSV чек-листа и заголовков с финальным кодом (#48)
ASCII filename у CSV, формат format=json|csv, nosniff у исходного файла,
before.checks_accepted с комментарием в аудите сброса акцепта.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-07 14:07:54 +04:00
Andrey Epifancev
15d069c730 docs(context): Срез 3b — правки по ревью PR #49 (#48)
Порядок проверок в контракте, ссылки на решения №1–19, разделители в OQ,
уточнения по units и /users/brief, номера PR закрытых срезов 2a/2c/3a, убрана
ссылка на исполнителя экранов.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-07 13:39:21 +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
7c6c3ba140 docs: OQ-138 закрыт (тыс. руб. верим, округление итогов мягкое), контракт — $comment и примеры (M-12), §12/§7, 06-test-data, статус Среза 2b
Refs RSHB/arm-tabular-parser#20

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EAKRDNzXtRrwmWz9z6PZu3
2026-10-06 23:17:36 +04:00
Andrey Epifancev
5b34868784 docs(2b): OQ-143 реализовано, st07, текст пропуска листов, tasks.md по факту (O-9, M-2, M-4)
Refs #26

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EAKRDNzXtRrwmWz9z6PZu3
2026-10-06 21:58:24 +04:00
Andrey Epifancev
9235e6ad79 docs: перенумерация OQ-137…142 -> OQ-138…143 (R-15)
Номер OQ-137 в main занят вопросом о раскладке горячих папок ИС Сканирование.

Refs #26

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: cedd7915-2efe-41e5-988c-a9117033598b
2026-10-06 21:25:40 +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
4729e40177 docs(2b): fix round 1 по задаче 16 — счётчики golden, формулировки предупреждений, проверка копий контракта
Refs #26

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: cedd7915-2efe-41e5-988c-a9117033598b
2026-10-06 21:22:30 +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
4272ba8061 docs(2b): OQ-137…OQ-142, статусы OQ-100/113/130/131/133/134 по факту реализации
Закрывает A11-6, A9-5 (arm-tabular-parser#18), OQ-113.

Refs #26

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: cedd7915-2efe-41e5-988c-a9117033598b
2026-10-06 21:18:05 +04:00
Andrey Epifancev
6d39800e02 docs(2b): §12 ББ/ОФР по реализации, §7 жёсткие/мягкие, §1.1/§1.3–§1.5 по факту PR tabular-parser #13/#15
Refs #26

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: cedd7915-2efe-41e5-988c-a9117033598b
2026-10-06 21:17:12 +04:00
aep
3ef8ed19b7 Merge pull request 'docs(context): §11.1 очистка OCR-текста из модуля старого ядра для нормализатора scan-gateway' (#43) from feat/42-ocr-cleanup-rules into main
Reviewed-on: #43
2026-10-06 16:49:14 +03:00
Andrey Epifancev
087109c9a4 docs(context): §11.1 очистка OCR-текста — правила из модуля старого ядра для нормализатора scan-gateway (#42)
- 05-domain-rules §11.1: буквы-двойники, `|` как разделитель, разбор дат из OCR, раскладка без шапки,
  классы строк, тип таблицы по кодам, очистка кода/наименования, суммы и критерий is_recognized,
  шапка документа, ошибка разбора одного документа. Перенос кода ofr_result_conversion — единственное
  исключение для reference-old-arm (решение владельца 06.10.2026); обвязка записи в БД не переносится.
- 09-delivery-plan: Срез 3 — нормализатор по §11 и §11.1.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-06 17:33:40 +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
6e27259cb5 docs: пакет ДКБ 06.10.2026 — §4а в 06-test-data, osv-dkb/statements-xlsx/analysis-reports в раскладке, 72 ОСВ / 88 снимков, OQ-113 частично, OQ-131…136, QA §6.7
Refs #24

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-06 12:23:25 +04:00
Andrey Epifancev
b9680d3c68 docs(oq): OQ-100 решён (ИНН извлекает парсер), OQ-130 — ИНН над названием контрагента; issue arm-tabular-parser#9
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-06 10:36:48 +04:00
Andrey Epifancev
e221c7cc9e docs(oq): OQ-124 закрыт — ОСВ за Q1 равнозначна нарастающей и квартальной (решение владельца 07.10.2026)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-06 10:12:14 +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
ab564c1ab0 docs: DBML v5.16, entities-v5.16, guide
DBML v5.16 (Срез 4): enum counterparty_match_kind и osv_entry.counterparty_match_kind; уточнение семантики
consolidation_document (точки привязки/отвязки) и consolidation_lock (без истечения, OQ-119). entities-v5.16.md,
04-data-model-guide (DECISION-5: способ сопоставления хранится, пробелы и свод — нет), repo-templates -> v5.16,
tasks.md change'а: пункт 1 выполнен.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-06 03:23:03 +04:00
Andrey Epifancev
e3d3c2a9eb model: v5.15 — индексы osv_entry(parent_entry_id, recognition_job_id), stored_file(current_recognition_job_id) (I-1, OQ-117)
- data-model-v5.15.dbml: обычные индексы osv_entry (parent_entry_id), osv_entry (recognition_job_id),
  stored_file (current_recognition_job_id) с note; п. 4 changelog v5.15 — индексы для удаления файла и
  обхода дерева строк; замер: DELETE документа 1000 строк 8,6 с → 16 мс на 200 тыс. строк.
- entities-v5.15.md: строка 4 в «Что изменилось в v5.15».
- 07-open-questions: OQ-117 закрыт в v5.15 (v5.16 и миграция 0004 не понадобились).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-06 00:55:25 +04:00
Andrey Epifancev
8c73fe941c docs: OQ-117 индексы osv_entry, актуализация плана срезов и qa-guide
- 07-open-questions: OQ-117 — индексы osv_entry(parent_entry_id),
  osv_entry(recognition_job_id), stored_file(current_recognition_job_id); без них
  DELETE /files/{id} делает seq scan на проверке self-FK (I-1 final review, R-24);
  нужны DBML v5.16 и миграция 0004, блокер до прода / до подсреза 2d.
- 09-delivery-plan: итог make check-full приведён к фактическому прогону
  (e2e skipped в check-full, отдельный e2e 1 passed, fixtures 13 + 1 skipped);
  решения без обсуждения №1–52 (T12.6).
- qa-guide U16: до ERROR файл остаётся UPLOADED (ack нет) (T12.7).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-06 00:37:53 +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
5545ee539f docs: entities-v5.15, guide, ссылки на DBML v5.15
entities-v5.15.md — копия v5.14 + «Что изменилось в v5.15» (osv_data_type NU, email в нижнем регистре, семантика
stored_file.status); 04-data-model-guide и шаблон CLAUDE.md arm-core — на v5.15; tasks.md change'а: 1.2 выполнена.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-05 21:27:52 +04:00
Andrey Epifancev
e369f289c7 openspec: архив change slice-2a-osv-parser; OQ-60/61/62/64/65/66/82 по техдолгу arm-core #10; qa-guide — настройки .env, вход по email, HTTPS-клон
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-05 20:23:36 +04:00
Andrey Epifancev
447e8f06d4 Merge origin/main в feat/9-slice-2a-osv-parser: 07-open-questions — решения владельца (OQ-01/02/45/96/97) + OQ-98…109 Среза 2a
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-05 20:19:30 +04:00
Andrey Epifancev
a181f4ad96 docs: OQ-108 — остаточные риски предсканирования (R-26), OQ-105 — формулировка слепой зоны
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-05 17:18:46 +04:00
Andrey Epifancev
68b50a563f docs: R-25 — слепая зона R-21 (свёрнутого прямого родителя достаточно), лимиты чтения, остаточные риски OQ-108
05-domain-rules §1.4: слепая зона R-21 переформулирована — достаточно свёрнутого непосредственного родителя (N2);
§1 «Лимиты»: expat-скан всех XML-частей, после-чтения счёт только индексируемых диапазонов, что не ограничено.
07-open-questions OQ-108: остаточные риски (объём ячеек, sharedStrings/стили, entity expansion) и рекомендации
(лимит памяти контейнера, предпроверка dimension/счётчик ячеек, подпроцесс с RLIMIT).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-05 17:06:40 +04:00
Andrey Epifancev
c2005a4699 docs: финальное ревью Среза 2a — §1 (лимиты чтения, ИНН, ACCOUNT_RE, риски R-21), OQ-106…OQ-109
- 05-domain-rules §1.0 п. 1: признак ОСВ в первых 30 строках листа; п. 4, §1.3: ИНН по значениям без дополнения
  нулём, дополнение при извлечении (R-24); ACCOUNT_RE с re.ASCII | re.DOTALL (M-1); §1.4: остаточные риски R-21
  (RR-1…RR-4, слепые зоны); §1.6: лимиты чтения (R-23), логирование.
- 06-test-data §3 п. 17: ИНН в тексте строки — ОСВ 76 Счастливочной за 1–3 кв. 2024 (6 + 7 + 7 строк).
- 07-open-questions: OQ-106 (Итого = первый корень), OQ-107 (hierarchy=sums), OQ-108 (defusedxml, лимиты чтения),
  OQ-109 (размер объекта S3 до скачивания); OQ-105 ссылается на риски §1.4.
- OQ-81 «частично закрыт» в 09-delivery-plan, tasks.md и proposal.md change.
- contracts/examples/result-osv-needs-check.json — как пишет парсер (копия tabular-parser байт в байт).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-05 16:32:52 +04:00
Andrey Epifancev
baeb9189f6 docs: §1 по факту парсера, 06-test-data, план срезов 2a–2d, OQ, пример контракта
- 05-domain-rules §1: обязательные группы (R-12), hierarchy=<имя>, TOTAL в rows, буквенные субсчета и Вал./Кол. (R-16, R-18, R-19), ИНН (R-15, R-17), сверка по нетто (R-21), R-20, пустая ОСВ, ASSUMPTION(OQ-02), новый §1.6 (статусы, коды, лимиты, словари)
- 06-test-data: синтетика s01–s16, golden (82 снимка), рукописный xlsb, пустые ОСВ, буквенные субсчета
- 09-delivery-plan: Срез 2 → 2a–2d, 2a по факту
- 07-open-questions: OQ-98…OQ-105, пометки допущений парсера у OQ-01/02/45, OQ-81 частично закрыт
- contracts/examples/result-osv-needs-check.json: ACCOUNT в group_schema, ИНН из колонки, «Вал.» без контрагента, строка TOTAL
- openspec tasks.md: 1.2, 2.1

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-05 15:53:11 +04:00
Andrey Epifancev
d7c69fa58b OQ-01, 02, 04, 05, 42, 45: решения владельца 05.10.2026 (хранение строк ОСВ, квартальные ОСВ, субсчёт в чек-листе, статус RECOGNIZED, экран проверки ОСВ, NU в ядре)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-05 13:07:03 +04:00
Andrey Epifancev
d4a085f7ee OQ-17, OQ-21, OQ-33, OQ-34: закрыты реализацией Среза 1 и решениями владельца
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-05 12:58:41 +04:00
Andrey Epifancev
f59511f1e6 OQ-96, OQ-97: закрыты решениями владельца 05.10.2026 (effective_date по МСК — follow-up; DIRECTORY_DELETE не расширять)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-05 12:58:41 +04:00