26 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Design: Срез 2c (сквозное, docs)
## Context
См. proposal и `arm-core/openspec/changes/slice-2c-osv-ingest/design.md` (D-1…D-13).
## Decisions
### D-1. v5.15 без expression-индекса
`lower(email)` как уникальный индекс не поддерживается сверкой ORM↔DBML (индексы сравниваются по колонкам). Вместо
этого email нормализуется в нижний регистр при записи, уникальность — прежний UNIQUE. Миграция приводит данные.
### D-2. Правила маппинга фиксируются в §1.3/§9 после реализации
Как в Срезе 2a: задача docs-change «по факту» выполняется после merge дочернего change'а, расхождения — правкой §.
### D-3. Автозамена — новый §9.5
Решение владельца 05.10.2026: новый файл с документом того же типа/счёта/периода заменяет прежние (в т.ч. `CONFIRMED`,
с пометкой в аудите); удаление файла — пока нет `CONFIRMED` и файл никого не заменял; после Среза 4 — ограничение по консолидациям.
## Decisions made without discussion
| № | Дата | Решение | Обоснование | Цена ошибки |
|---|---|---|---|---|
| 1 | 2026-10-05 | D-1: email в нижнем регистре вместо `lower(email)`-индекса | сверка DBML | индекс в v5.16 |
| 2 | 2026-10-05 | D-3: §9.5 автозамена/удаление по решению владельца; удаление заменившего файла запрещено | целостность цепочки версий | ослабить |
| 3 | 2026-10-05 | `period_check = UNKNOWN` до Среза 4 | нет версии консолидации | пересчёт в Срезе 4 |