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
Решение владельца 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
Цель проверки присутствует, если строка есть в форме; пустая сумма и отсутствующий
код — 0, как в tabular-parser. Решение №20 отозвано.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
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
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
Порядок проверок в контракте, ссылки на решения №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
§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
- 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
- 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
Номер OQ-137 в main занят вопросом о раскладке горячих папок ИС Сканирование.
Refs #26
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: cedd7915-2efe-41e5-988c-a9117033598b
Копия .superpowers/sdd/…/progress.md для продолжения на другой машине: задачи 1–13 complete, рулинги R-1…R-12,
находки deferred, пауза перед задачей 14.
Refs #26
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: cedd7915-2efe-41e5-988c-a9117033598b
- 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
- 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
Вопрос разработчика при переносе в контур: .claude/ и CLAUDE.md
вырезаются, а openspec/config.yaml с контекстом агента остаётся.
Решение владельца 06.10.2026: вырезать, как CLAUDE.md. Блоки
context/rules — инструкции агенту с путями ../docs и ../fixtures,
которые в контуре никуда не ведут; openspec CLI в контуре нет,
specs/ и design.md читаются без него.
- prepare-contour-snapshot.sh: rm, проверка раздела 5, SNAPSHOT.md
- contour-transfer-guide.md: таблица раздела 1, разделы 2, 3, 9
Проверено прогоном скрипта на tabular-parser@3b32462.
Closes#36
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
Решения владельца 06.10.2026: в контур едут arm-core, tabular-parser, scan-gateway снимками без истории; docs и
fixtures не переносятся (разработка снаружи); вырезаются .claude/, CLAUDE.md, docs/superpowers/, Dockerfile;
openspec остаётся. Скрипт scripts/prepare-contour-snapshot.sh: git archive, вырезание, Makefile без uv и
docker-build (venv через python -m venv + pip с Nexus), замена ссылок на внешний Gitea, SNAPSHOT.md, проверки.
Снимки трёх сервисов проходят make check без docs/fixtures (1084/1087/726 passed, пропуски только fixtures/contract).
Closes#34
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: cedd7915-2efe-41e5-988c-a9117033598b
frontend-auth-guide §8 и qa-guide §4.5: кнопка Authorize есть только со схемой bearerAuth (arm-core #29), публичные
ручки без замка; на стенде старше — curl. Исправлен путь DELETE /directories/legal-entities/{id}/aliases/{alias_id}
в api-contract-slice-4 §4 п. 18 и qa-guide N8 (неточность PR #31).
Closes#32
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: cedd7915-2efe-41e5-988c-a9117033598b