From 819ded363849dce95b0fc4549f08bac3b28ce53d Mon Sep 17 00:00:00 2001 From: Andrey Epifancev Date: Sat, 7 Nov 2026 04:14:07 +0400 Subject: [PATCH] =?UTF-8?q?docs(#202):=20=D1=80=D0=B5=D1=88=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20R-24=20=D0=B2=20design=20quality-metrics?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 --- openspec/changes/quality-metrics/design.md | 1 + 1 file changed, 1 insertion(+) diff --git a/openspec/changes/quality-metrics/design.md b/openspec/changes/quality-metrics/design.md index ccaf0f8..1ca6bba 100644 --- a/openspec/changes/quality-metrics/design.md +++ b/openspec/changes/quality-metrics/design.md @@ -179,3 +179,4 @@ NATS-контракта (`request-`/`result-message-`/`result-` префиксы | 05.11.2026 | `quality-facts.schema.json` не подключается к `scripts/validate_contracts.py` | скрипт — для NATS wire-контракта с дедупом/версией сообщений; payload фактов — внутренний формат arm-core, не обмен между сервисами | изменение формата payload не поймает `make check` в этом репозитории; ловит тест arm-core | | 05.11.2026 | `legal_entity_name`/`group_name` добавлены и в `quality_failure_fact`, хотя design arm-core §4.3 их не перечислял | общее правило §4 design arm-core («имена ЮЛ и ГК копируются на момент факта») относится ко всем фактам; итемized список там был неполным | лишние 2 столбца, если экран всё же джойнит live-справочник для отказов | | 07.11.2026 | Схема перенесена в `contracts/metrics/quality-facts.schema.json` (R-16 arm-core) | в корне `contracts/` каждая `*.schema.json` обязана иметь копию в сервисах (`contract_identity.py`); подкаталог глубины 2 вне `examples/` копию не требует — схема не относится к NATS-контракту распознавания; содержание схемы не менялось | при возврате в корень тесты идентичности tabular-parser и scan-gateway покраснеют | +| 07.11.2026 | В схеме `contracts/metrics/quality-facts.schema.json` поле `is_recognized` значений — `["boolean", "null"]` (R-24 arm-core) | в модели `financial_statement_value.is_recognized` NULL: ячейка, созданная правкой аналитика, и пустая ячейка колонки источника при приёме; схема с `boolean` отвергала такие payload | потребитель фактов обязан обрабатывать null |