arm-ka-docs/repo-templates/scan-gateway.CLAUDE.md
Andrey Epifancev 50e588b6bd contracts: subject'ы NATS как в старом АРМ — files.*_uploaded, files.tabular_parsed (#74)
Решение владельца 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
2026-10-08 23:34:01 +04:00

1.8 KiB
Raw Blame History

CLAUDE.md — scan-gateway

Общий контекст системы — ../CLAUDE.md и ../docs/. Этот файл — только про этот сервис.

Что это

Адаптер внешней ИС Сканирование (Content AI) для PDF/PNG/JPG: положить файл во «Входящие» как <job_id>.<ext> (временный .part — в Tmp), забрать все Исходящие/<job_id>/*.json (по одному json на документ), сохранить склеенный сырой ответ в S3 raw/{job_id}.json (в БД не регистрируется), очистить горячую папку (только при SCAN_CLEANUP=true), нормализовать в ../docs/contracts/recognition-result.schema.json (statementDocument), опубликовать files.tabular_parsed. Таймаут 5 мин → TIMEOUT. Нет доступа к БД.

Правила

  • Нормализация по фактическим ответам ../fixtures/ocr/aep_*.json, а не по ТЗ (OQ-13, OQ-14): confidence → 0–100, поля организации/даты — по тому, что реально приходит.
  • Один PDF может содержать ББ и ОФР → два документа в результате (по одному на таблицу ответа).
  • Dev-режим: эмулятор ИС Сканирование (python -m src.scan_emulator) ищет пару PDF + JSON по sha256 содержимого входящего файла; имя файла на выбор пары не влияет. Промах — набор SCAN_EMULATOR_DEFAULT, иначе INVALID_DOCUMENT.

Соглашения шаблона