Add report template codec roadmap

This commit is contained in:
2026-08-14 11:57:30 +03:00
parent b7858d480e
commit 03fed309c6
@@ -61,6 +61,21 @@ parameters, layouts, nested schemas и settings. Макет оформления
контракт: регионы, шрифты, цвета, границы и правила оформления; его нельзя контракт: регионы, шрифты, цвета, границы и правила оформления; его нельзя
обрабатывать методом `scd.patch`. обрабатывать методом `scd.patch`.
## Долгосрочный план и критерии готовности
| Этап | Результат | Критерий перехода |
| --- | --- | --- |
| 1. Инвентарь | Реестр `Report → Template` с identity, container, SHA-1 и состоянием active/saved | У каждого fixture есть подтверждённая цепочка owner → template → payload, без имени формы в качестве подстановки. |
| 2. СКД read | Lossless контейнерный decoder с XML-путями для datasets, links, calculated fields, resources, parameters, layouts, nested schemas и settings | XML корректно читается на нескольких живых схемах; неизвестные XML узлы сохраняются в raw-carrier и не теряются. |
| 3. СКД write | Минимальный scalar writer (`dataset.query`, expression) и resolver `Report + Template` | `plan`, точная проверка SHA-1 и `apply_and_rollback` проходят на выделенной fixture; активность подтверждает человек в Configurator. |
| 4. Оформление СКД | Отдельный decoder/encoder XML оформления: regions, style rules, fonts, colors, borders, indents | Не используется путь `scd.patch`; один контролируемый before/after fixture доказывает carrier и round-trip. |
| 5. Прочие типы | Отдельная карточка codec-а на каждый из десяти platform types | Для Spreadsheet/Text/HTML/Geo/Graphical доказан собственный round-trip или выставлен explicit `unsupported`; Binary/Active/AddIn остаются opaque до отдельного доказательства. |
| 6. Report aggregate | API `report.inspect` возвращает identity, modules/forms/templates, main-SCD relation, overlay state и capability по каждому компоненту | Отчёт без подтверждённой СКД возвращает `unresolved`, а не выбирает форму или первый поток. |
| 7. Регрессия и выпуск | Fixture manifest, hash-baselines, unit tests, live SQL smoke и документация публичного контракта | Каждый write codec проходит план → rollback → SQL readback; ни один результат не заявляет применение в Configurator без ручного подтверждения. |
Работа выполняется последовательно по этому реестру: новый тип не получает
write endpoint до собственной fixture и доказанного обратного carrier codec-а.
## Ближайшая реализация ## Ближайшая реализация
Первый кодовый результат — resolver, который умеет различать форму и макет, Первый кодовый результат — resolver, который умеет различать форму и макет,