## Why На проде платформа завела subject'ы NATS старого АРМ: `files.tabular_uploaded`, `files.img_uploaded`, `files.tabular_parsed`, `files.img_parsed`. Наш контракт публикует запросы в `recognition.{tabular|image}.request`, а ack и результаты — в `recognition.result`; этих subject'ов в правах общего JWT нет. Решение владельца 08.10.2026: subject'ы — «правильно как в старом АРМ», используем три (`files.img_parsed` не используем), старый АРМ гасится. Срез: вне плана срезов `09-delivery-plan.md` — подготовка к контуру (инфраструктура NATS платформы). ## What Changes - Запрос `tabular` — subject `files.tabular_uploaded` (было `recognition.tabular.request`). - Запрос `image` — subject `files.img_uploaded` (было `recognition.image.request`). - Ack `processing` и результаты обоих сервисов — общий subject `files.tabular_parsed` (было `recognition.result`). - Тела сообщений, `Nats-Msg-Id`, queue group'ы, `schema_version` и файл результата не меняются. - Документы: `03-architecture.md` (схема, таблица потоков, NATS платформы), `09-delivery-plan.md`, `dev/README.md`, `dev/qa-guide.md`, `repo-templates/*.CLAUDE.md`, описания subject'ов в `contracts/*.schema.json`. Читают и пишут контракт: `arm-core` (публикует запросы, подписан на результат), `tabular-parser` и `scan-gateway` (подписаны на свой запрос, публикуют ack и результат). Дочерние change'и `nats-files-subjects`: RSHB/arm-core#77, RSHB/arm-tabular-parser#28, RSHB/arm-scan-gateway#22. Issue этого репозитория — RSHB/arm-ka-docs#74. ## Non-goals - Subject'ы не выносятся в настройки (префикс для тестов — OQ-83, отдельно). - `files.img_parsed` не используется, раздельные subject'ы результата по pipeline не вводятся. - DBML v5.17 не поднимается: заметки `DECISION-4` и `recognition_job.request_subject` обновятся в следующей версии модели (design, решение 3). - `schema_version` контракта не меняется (design, решение 2). ## Capabilities ### New Capabilities ### Modified Capabilities - `recognition-contract`: имена subject'ов запроса и результата. ## Impact - Сервисы: `arm-core`, `tabular-parser`, `scan-gateway` — константы `api/src/contract/subjects.py`, тесты, спеки, README. - Копии схем `api/contracts/*.schema.json` в сервисах обновляются побайтно из `docs/contracts/`. - Выкат: все три сервиса одновременно (старые и новые имена несовместимы на шине). Задания, опубликованные до выката и не получившие ack, ядро повторит уже в новый subject: subject вычисляется по `pipeline` при каждой публикации, `recognition_job.request_subject` — справочное поле.