Спеки применены: 5 новых capability (arm-core, arm-web, scan-gateway,
statement-normalization, tabular-recognition-service) с Purpose, изменения
quality-checks и recognition-contract. Ссылки в 05-domain-rules, DBML v5.19,
entities, dev/checks.md и dev/qa-statements-v2.md ведут в архив.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- dev/qa-statements-v2.md: что изменилось для пользователя, как работает, предусловия
стенда контура (очистка форм, «сначала ядро», признаки новой версии), справка по
цветам, значкам и кодам предупреждений, чек-лист N1–N66, известные замечания
I-1…I-5, M-1…M-9, O-2, F-1, F-2, «не баг», как заводить баги по формам.
- dev/qa-guide.md: ссылки на новый гайд (шапка, §1, §6.9, §8.5, §8.7, §9); §6.7, §6.8,
§6.9 приведены к контракту 2.0; §7.2 и W18/W30 — несопоставленных 1236 (было 1260);
W16 — плоская таблица ОСВ; W32a — счётчики «ГСК/ГК/Внешний» и отличие «Внешний»
от «Осталось»; W13 — значок «ⓘ 1» у ОСВ; W20 — подсветка по «требует внимания».
- dev/README.md: ссылка на гайд, ожидания aep_3/aep_6 по контракту 2.0.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
CHANGE ?= slice-0-skeleton указывал на давно заархивированный change, make check был красным (O-1 плана 0, #116). По умолчанию теперь openspec validate --all --strict; CHANGE=<id> — один change.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Решения дорожек (планы 3А, 3Б, 4, 5, 6) перенесены в design.md change'а,
добавлен раздел «Открытые вопросы исполнения»; гайд фронта по API приведён
к arm-core main 35a24e7a; уточнена строка про зависимости в dev/checks.md.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Пакет: engine.edition (choose_edition) и engine.contract_document_status
(status_input_from_contract) вместо сборки StoredForm ради редакции и status_input_from_v2;
FailedRelation.expected/actual — Decimal | None; O-8 закрыт.
API для плана 6: LineOut.line_code_confidence, StatementHeaderOut.okei, header.source.confidence —
строка Decimal, StatementOut.edition_lines, DocumentBrief.issue_counts, line_id/line_code в detail
ошибок элемента lines[]; P3-19…P3-24; спека arm-core и гайд §5.6.1 дополнены.
Р-34: подтверждение кода не меняет уверенность — буква спеки arm-core, §9.5 п. 9 и гайда приведена;
O-2 закрыт. Р-35: очистка отказывает только при верифицированной версии — P3-12, тесты A4, спека
«Очистка форм» п. 2 и сценарий; O-5 закрыт.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
- §7: мягкое соотношение, сошедшееся точно, подтверждает неуверенные значения (Р-21); ОФР упрощённого набора
2400 — мягкое (Р-22 / S-5); form_variant = null — полный набор; 1.x и мигрированные формы — §7 копией
arm_statements один раз в document_issue, экран и подтверждение читают только его (K-2)
- §9.3: страховка согласованности document.status = done (K-24), «того же периода» — год и квартал (K-20),
1.x после правки — общим кодом (K-21)
- §9.5: признак строки правки — row_index IS NULL (K-1); header_source, codes/column_index document_issue (K-3, K-13);
LINES_UNRESOLVED — сумма или текст (K-16); PATCH: organization_name (K-12), confirmed: false, line_status только
detail, обратного detail нет, дата колонки обязательна, акцепт сбрасывает только правка данных, подтверждение даты
отчёта тем же значением (K-17, K-23); 409 LINE_EXISTS → LINE_CODE_TAKEN (K-18)
- §11: TABLE_PARSE_ERROR и SHEET_OTHER — уровня файла (K-7); столбец кодов ищется всегда, DISCLOSURE с кодами ББ/ОФР —
TYPE_CONFLICT (K-10); номер колонки (K-6); содержимое строки (K-14); нумерация с двойниками и одним пропуском (S-13);
ref Excel с кавычками (S-15); единицы по словарю и ОКЕИ (K-22); перечень кодов — данные, законные повторы (K-5, Р-20),
обе редакции всегда; синонимы и «итого по разделу» в сверке имён (S-4); интерфейс функции статуса (K-14); ожидание на
реальных сканах (K-4); бланк 66н с относительными подписями (K-17)
- 07-open-questions: OQ-148 закрыт (Р-22 / S-7), OQ-166 уточнён, OQ-168 — коды перечня без образца
- dev/checks.md: копия arm_statements, sync-statements (коды 0 / 10 / 20 / 2), statements-check в check-full,
проверки docs (K-9); frontend-api-guide §5.6.1 по новым правилам
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
- §5.6.1: новые поля StatementOut (статусы строк, повторы кода, reference_name, needs_review, text,
issues[], period_kind, form_variant), PATCH values[].confirmed / columns / lines, порядок 409
подтверждения с LINES_UNRESOLVED и DUPLICATE_FORM, crm_id ГСК/ГСЗ
- §9: новые коды ошибок с пометкой «после #116»; §11: строка о предстоящем изменении
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
prepare-contour-snapshot.sh урезает web/package.json arm-core по разрешённому списку
(devDependencies: @rsbuild/core, @rsbuild/plugin-react, tailwindcss, daisyui; optional: raisa-*;
scripts: build, start, preview), сокращает web-check до npm install + npm run build, пишет убранное
в SNAPSHOT.md и сам собирает урезанный web/ во временной копии: не собралось — снимка нет.
Гайд: раздел 3.2 и правило «web/package.json из контура обратно не переносить».
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Решение владельца 14.10.2026: поле «ID ГСК/ГСЗ в CRM» форм 51-03/51-04/77-02
принимается POST/PATCH и отбрасывается; колонка — arm-core #112.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
`LegalEntityOut.memberships` — в журнале изменений гайда фронта, таблице справочников и
контракте files-directories; убран совет брать членства из `related-groups/{id}` или карточки.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- dev/README.md: примеры /healthcheck дополнены subjects по сервисам
- design.md (решение 7) и dev/README.md: уточнено, что запросы в тестах ядра идут на умолчательные subject'ы
- repo-templates: имена files.* помечены как умолчания
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Шапка черновика интеграционных тестов: OQ-83 закрыт частично
(тесты tabular-parser и scan-gateway идут на своих subject'ах),
make e2e ядра остаётся открытым (design R-7).
- Утверждение про SecretStr вынесено в отдельное предложение.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 07-open-questions.md: OQ-161 — документ с периодом не той версии молча не привязывается;
временное допущение CONSOLIDATION_PERIOD_FROM_VERSION (arm-core#103), постоянное решение открыто
- qa-guide.md: §7.4 — как включить режим локально и в контуре, ограничения; строка в §9
- contour-transfer-guide.md: OPENBAO__APP__CONSOLIDATION_PERIOD_FROM_VERSION=true на период тестов
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Скрипт делает одной командой то, что делалось вручную в arm-core #94 и #100:
точка синхронизации по хэшу дерева src (без хранения состояния), worktree по
абсолютному пути, issue и PR в arm-core через tea, перенос набора (всё кроме
служебного arm-web), контроль diff -rq, проверки vitest/tsc/biome/build до
коммита. Режимы --check (0/10/20), --dry-run, --ref, --core-ref.
prepare-contour-snapshot.sh для arm-core перед снимком вызывает sync-web.sh
--check: при отставании спрашивает «перенести как есть?», «n» запускает
синхронизацию и останавливает перенос (код 3) до merge PR и закрытия issue;
без терминала — флаг --web-as-is; расхождение (прямые правки web/) — стоп.
Тест test_sync_web.sh на синтетических репозиториях, цели make test-sync-web
и sync-web, гайд §3 шаг 0, §3.1, §8.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
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>
- 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>
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>
F8a: line_code 1600 (LINE_EXISTS) и 9999 (вне справочника) с реальным column_id;
F8b: уточнены формулировки; в гайде фронта — текст ошибки при отсутствии редакции.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Фронт перенесён в 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
Решение владельца 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
W34 уточнён, новый W34a: ИНН из файла без «Указать», «таблетка» с ИНН ЮЛ у строк, связанных без ИНН в файле,
пересопоставление с «Связано» у текущего ЮЛ (arm-web #17).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019qoydUVv8g1qHxc123u2RR
Решения владельца 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