# ADR-0006: Снимки решений, календаря и факта Статус: предложено, 13.10.2026; к реализации после утверждения spec и относящихся Q. ## Контекст NFR 02 требует исходных и согласованных значений. Справочники/календари меняются, Time исправляет часы; повторная сумма приводит к дрейфу отчётов. ## Решение Хранить исходный Request, версии Assignment, append-only DecisionLog в одной транзакции. CostRateSnapshot фиксируется при решении. CalendarVersion явная; Time entries upsert по ID/version с coverage, не суммирование повторных импортов. Decimal вместо float. ## Последствия Историю можно объяснить человеку: автор, версия и источник каждого числа. Нужен срок хранения/удаления Q-09 и политика пересчёта Q-06. Старые месячные ставки мигрируются взвешенно только по отдельному принятому импорту; исходник сохраняется. ## Отвергнутые варианты Чтение текущей C для всех прошлых решений меняет историю; округление до суммирования и замена unknown на 0 дают неверные итоги; event sourcing всего приложения избыточен — достаточно версий агрегатов и журнала решений.