48 Commits

Author SHA1 Message Date
Andrey Epifancev
e20c1db7cd docs: точка — разделитель тысяч в суммах OCR, §11 п. 7 (AURORA-1405, scan-gateway#37)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 13:29:12 +04:00
Andrey Epifancev
508474fde1 Merge remote-tracking branch 'origin/main' into feat/42-xls-number-format 2026-10-15 18:36:52 +04:00
Andrey Epifancev
20dd0fe06a docs: уточнены правила числового формата ББ/ОФР, QA-гайд и тестовые данные (#42)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 17:42:45 +04:00
Andrey Epifancev
3230459f26 docs(§11.1): разделитель тысяч — уточнение скобок и формулировки источника
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 16:58:54 +04:00
Andrey Epifancev
a5527c3f1f docs(§11.1): разделитель тысяч в суммах OCR (AURORA-1405, scan-gateway#35)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 16:55:26 +04:00
Andrey Epifancev
c4c15bdfe0 docs: ББ/ОФР из Excel — значение как показывает числовой формат (#42, AURORA-1528)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 16:53:39 +04:00
Andrey Epifancev
6a9cfdd30a Правила ОСВ: уточнения строк ИНН по финальному ревью tabular-parser#35 (§1.1, §1.3, OQ-130/162, s20–s28)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 16:27:07 +04:00
Andrey Epifancev
84953346b5 Правила: строки ИНН рядом с контрагентом — восемь раскладок, OQ-163 (tabular-parser#35)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 16:27:07 +04:00
Andrey Epifancev
7ca0082664 Правила ОСВ: реквизит «Контрагенты.ИНН» и в шапке варианта 1 (tabular-parser #32)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 12:03:10 +04:00
Andrey Epifancev
820492443a Правила ОСВ: реквизит «Контрагенты.ИНН» строкой под контрагентом, OQ-162 (tabular-parser #32)
§1.1 — элемент «<группировка>.ИНН» в списке субконто варианта 2 — реквизит,
не группировка; §1.3 — строка реквизита отдаёт ИНН родительскому контрагенту
и уходит из rows (условия склейки, needs_check, пустая ячейка — R-1), целое
число из ячейки xls — без «.0». OQ-162 — решение владельца 13.10.2026.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 11:11:11 +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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
0826be0cad Срез 1: DBML v5.14, §13 импорт из ЕЦП CRM, §10.1 видимость, OQ-86…91, change slice-1-directories
- data-model-v5.14.dbml: related_group_member.kind + partial unique (legal_entity_id, kind) WHERE is_current
  (ЮЛ одновременно в одной ГСК и одной ГСЗ — решение владельца 04.10.2026), audit_action + LEGAL_ENTITY_CHANGE,
  USER_CHANGE; КПП не вводится.
- 05-domain-rules.md: §13 правила импорта выгрузки ЕЦП (формат, построчные коды, транзакция, след, ручные операции),
  §10.1 видимость справочников по филиалу без кода роли.
- 07-open-questions.md: OQ-31/32 закрыты, OQ-25 уточнён по выгрузке, добавлены OQ-86…OQ-91.
- source/biq/ecp-export-lagal-entity.xlsx — первоисточник формата (добавлен владельцем).
- openspec/changes/slice-1-directories: proposal, design, tasks (skip_specs).

Issue: RSHB/arm-ka-docs#6

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-04 20:22:26 +04:00
Andrey Epifancev
e6ba1e0e30 docs: §11 и OQ-77 — убрано допущение о сегментах таблицы (поправка человека 04.10.2026)
Разбиение одной формы на несколько таблиц в образцах не встречалось; наблюдается только несколько таблиц разных
форм в одном json (баланс + ОФР). Нештатный случай (повтор label) — NEEDS_CHECK, правило — Срез 3.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-04 14:08:43 +04:00
Andrey Epifancev
3c1d1d1261 docs: §11 — таблицы и документы ИС не взаимно однозначны (поправка человека 04.10.2026)
Тип документа задаёт label таблицы; несколько таблиц одного типа (баланс по страницам) — части одного документа
(уникальный индекс document в DBML: один ББ и один ОФР на файл); в одном json может быть несколько таблиц.
Допущение вынесено в OQ-77 для подтверждения на реальном ответе.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-04 13:38:18 +04:00
Andrey Epifancev
f809cc936b docs: ответы человека 04.10.2026 — формат ответа ИС по aep_3/aep_6, OQ-13/14/56/76–79, JetStream как вопрос к платформе
§11 05-domain-rules.md переписан по реальным ответам ИС: data_ocr — объект, table_structure — список таблиц,
успех — error.code == "", в каталоге ответа несколько json (склейка), confidence 0–100. OQ-13/14/77/78/79 закрыты или
уточнены, OQ-56 — осознанный техдолг, OQ-76 — частично (образцы добавлены), новый OQ-85 — возможность JetStream
на платформе (проверить позже). OQ-73 остаётся открытым.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-04 13:33:55 +04:00
Andrey Epifancev
e4e2b3ee83 docs: стартовый контекст 2026-10-02 23:02:44 +04:00