DBML v5.25: факты качества первички (AURORA-1759) #203
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "feat/202-quality-metrics-dbml"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #202. Jira: AURORA-1759 (arm-core #190 реализует код по этой модели).
Что сделано
quality_intake_fact,quality_outcome_fact,quality_failure_fact(отдельная схемаdkb_metrics).s3_bucket_role.raw,recognition_job.raw_s3_object_id(сырой ответ ИС Сканирование теперь регистрируется — отменяет решение v5.13),stored_file.is_scan,permission_object.QUALITY_METRICS.entities-v5.25.md,context/05-domain-rules.md§14 (счёт документов, атрибуция правки сервис/наш разбор, причина ячейки матрицы, технические отказы, признак скана),contracts/quality-facts.schema.json.raw/{job_id}.json), правки03-architecture.md, openspec changequality-metrics(proposal/design/specs), план реализации.arm-core/openspec/changes/quality-metrics/design.md§1-3, §10 (брейнсторминг 27.10, подтверждено 05.11).Проверки
openspec validate quality-metrics --strict,make check,make diagrams DBML=model/data-model-v5.25.dbml— зелёные.Ревью ветки (opus, фоновый агент)
Assessment: With fixes. 1 critical + 5 important исправлены одним проходом (коммит
8abbf50):stored_file.is_scanбыл описан наоборот (true=цифровой вместо true=скан) — противоречил §14.6 и имени столбца.lines/valuesв payload — добавили и текст, иdependentSchemasв контракте.quality_outcome_fact.document_idне unique и метрики берут последний факт поoutcome_at.values[].amountбылnumberвместо decimal-строки (какmoneyвrecognition-result.schema.json) — деньги не float.fixes_header_*.uploads, на который ссылается факт) — согласовано на «не экспирится ниraw, ни такойuploads» (OQ-179).Rulings I made
quality_cause— отдельный enum-столбец (денормализация §6 вместо вычисления на лету). Цена ошибки: расхождение сохранённого значения с правилом §14, если правило изменится — старые факты не пересчитываются (ожидаемо для append-only).quality-facts.schema.jsonне подключается кscripts/validate_contracts.py(он жёстко завязан на NATS-контракт). Цена ошибки: изменение payload не поймаетmake checkздесь — ловит тест arm-core.legal_entity_name/group_nameдобавлены и вquality_failure_fact, хотя design arm-core §4.3 их не перечис��ял (общее правило §4 — копировать имена во все факты). Цена ошибки: 2 лишних столбца, если экран всё же джойнит live-справочник для отказов.*_AFTER_CONFIRMиз матрицы правильным — решение владельца в arm-core design §4.2/§10, не пересматривалось здесь.Deferred minors (из финального ревью)
issues[].levelсмешивает kind/severity; payload-схемы безrequired; фрагменты#intake-payload/#outcome-payloadбез$anchor; противоречивая фраза в Notequality_outcome_fact; 3 новых enum не в таблице изменений entities; допущение о скрытом OCR-слое без своего OQ; Notes3_objectне упоминаетraw; design.md §2 обещает 3 $id, реализовано 2 без $id;payload_schema_versionnullable приpayloadnot null.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>Обновление после ревью arm-core (feat/190-ocr-metrics):
contracts/metrics/quality-facts.schema.json(чтобы не требовать копии в tabular-parser и scan-gateway);is_recognizedтеперь["boolean","null"];stored_file.is_scanиrecognition_job.raw_s3_object_id— последние колонки таблиц (версия не менялась);05-domain-rules.md§10: добавлен объект/правоQUALITY_METRICS_VIEW(17 прав);Порядок merge: этот PR раньше arm-core.
Слито в main merge-коммитом
d3386b7: Gitea оборвала ответ на merge, PR остался открытым. Закрываю вручную. Архив change — #212.Pull request closed