OQ-179 (срок хранения raw/{job_id}.json), роль raw и dkb_metrics в 03-architecture.md,
openspec proposal/design/specs, план реализации (AURORA-1759).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
6.2 KiB
Proposal: Метрики качества первички (AURORA-1759)
Срез: вне docs/context/09-delivery-plan.md (спринт AWPCA_Sprint_3_Corrections, эпик AURORA-1353).
Репозиторий: arm-ka-docs (сквозная часть — модель данных). Issue: RSHB/arm-ka-docs#202.
Дочерние change'и: arm-core/openspec/changes/quality-metrics (arm-core#190) — запись фактов, атрибуция,
API, экран. tabular-parser и scan-gateway не меняются.
Полное обоснование и все решения владельца — ../../arm-core/openspec/changes/quality-metrics/design.md
(брейнсторминг 27.10.2026, подтверждено владельцем 05.11.2026). Этот change переносит из него в модель данных
только то, что становится структурой: таблицы, перечисления, столбцы, контракт payload, правила подсчёта.
Why
Заказчику нужно подтверждать эффект АРМ КА цифрами (доля ББ/ОФР, дошедшая без правок), владельцу — доказательная база
о качестве сервиса разбора PDF с разделением «ошибка сервиса / наша нормализация / документ клиента». Ядро сейчас не
хранит ничего для этого: document/financial_statement_* переписываются при правке и перестройке, подтверждённый
результат недоступен после следующей правки, сырой ответ ИС Сканирование не регистрируется в БД (решение v5.13,
отменяется этим change).
What Changes
- Три новые таблицы фактов (плоские, append-only, без FK на рабочие таблицы, отдельная схема PostgreSQL
dkb_metrics— имя настройка):quality_intake_fact(документ «как распознано», пишется в момент маппинга),quality_outcome_fact(исход: автоподтверждён / подтверждён / удалён / заменён — в т. ч. после подтверждения — с атрибуцией правок и причиной попадания в ячейку матрицы),quality_failure_fact(технический отказ задания распознавания). Точные столбцы —design.md§1. s3_bucket_role: новое значениеraw— сырой ответ ИС Сканирование (raw/{job_id}.json) регистрируется вs3_object, не удаляется вместе с файлом (вход для будущего эталонного прогона, ASSUMPTION(OQ-179) — срок хранения решает платформа).recognition_job.raw_s3_object_id— ссылка на зарегистрированный сырой ответ (image pipeline).stored_file.is_scan— признак скан/цифровой PDF, определяется при загрузке по текстовому слою.permission_object: новое значениеQUALITY_METRICS— объект права для экрана (действиеVIEW, правоQUALITY_METRICS_VIEW; seed — в arm-core).docs/contracts/quality-facts.schema.json— JSON Schema payload (jsonb) трёх фактов.docs/context/05-domain-rules.md§14 — счёт документов/матрица причин, правило атрибуции правки (сервис/наш разбор), правило «документ клиента» (акцепт жёстких нарушений), признак скана.
Capabilities
New Capabilities
quality-metrics-model: модель данных и контракт фактов качества распознавания первички — какие факты пишутся, в каком формате, как считается матрица причин.
Modified Capabilities
Impact
- Пишет факты только
arm-core(единственный писатель в БД, см.../CLAUDE.md). Читает — Superset платформы отдельной read-only ролью к схемеdkb_metrics(создаёт платформа, описание в03-architecture.md). - Таблицы DBML v5.24, которые это затрагивает:
recognition_job,s3_object,s3_bucket_role,stored_file,document,financial_statement_meta/column/line/value,osv_entry,document_issue,permission_object. Новых FK на них из таблиц фактов нет (факты самодостаточны). - Миграция Alembic — в
arm-core(общая цепочка, не в этом репозитории).
Non-goals
- Метрики по документам до выкладки фичи (ретро-подсчёт) — не считаем.
- Время работы аналитика (визиты документа) — будущий раунд; факты уже ключуются
document_idдля последующего присоединения. - Отдельный счётчик «документ есть, но сервис его не разбирает» — не отделить от технических отказов (решение владельца 27.10.2026).
- Сам эталонный прогон перенормализации сохранённых сырых ответов — этот change только обеспечивает вход (хранение
raw/{job_id}.json, отказ от ретеншна). - Ограничение видимости метрик по филиалу/ГК — пока все роли видят всё.