docs(openspec): решения владельца по шахматке пресетов (ревью #141)
Фиксация версии правил и выбор по дате составления консолидации — в AURORA-1536; корректировки и unpaired-osv выносятся из PR (код — ветка wip/shahmatka-corrections-unpaired); пресет = правило ББ Прил. 3 как дополнение к §6. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
0e95f95c71
commit
3adaf6f3c3
@ -23,24 +23,35 @@
|
||||
7. xlsx пресета: имя `intercompany-matrix_<ГК>_<год>-<квартал>_v<n>_preset-<rule_id>.xlsx`, в шапке «Режим = Пресет»,
|
||||
коды счетов сторон (отсортированы) и строка «Показатель» (Сальдо/Оборот) для всех режимов.
|
||||
|
||||
## Known issues / вопросы владельцу
|
||||
## Решения владельца (2026-10-21, ревью PR #141)
|
||||
|
||||
Спека описывает фактическое поведение PR; пункты ниже не закреплены как окончательные и ждут решения автора и владельца.
|
||||
1. **Фиксация версии правил — в AURORA-1536.** Пока `consolidation_version.elimination_rules_version` пуст, шахматка
|
||||
берёт открытые правила (`valid_to IS NULL`); сейчас версия правил одна (`seed/core/elimination_rules_v1.yaml`,
|
||||
`valid_to` не задаётся, API управления правилами нет), поэтому результат не плавает. Фиксировать версию — при
|
||||
создании версии консолидации или при первом расчёте, но не в GET-запросе.
|
||||
2. **Какая версия правил берётся — действующая на дату составления консолидации**, а не на отчётный период версии.
|
||||
Реализация — вместе с п. 1 в AURORA-1536.
|
||||
3. **Корректировки из шахматки убираются** (решение 4 выше и `correction_ids_*` в ячейке). Причины: корректировки в
|
||||
ядре никто не создаёт (спринт корректировок), семантика ключа `(rule, A, B)` относительно ячейки (A, B) / (B, A) не
|
||||
утверждена, счета корректировки и `parent_correction_id` не учитывались; §6 описывает шахматку как суммы первички.
|
||||
Код сохранён в ветке `wip/shahmatka-corrections-unpaired` (`0e95f95`) и возвращается с задачей корректировок.
|
||||
4. **Ручка `…/preset/{rule_id}/unpaired-osv` убирается** (решение 5 выше). Причины: «без пары» по наличию строк
|
||||
(дефект AURORA-1651), ложные срабатывания при пересечении счетов сторон (76 в правиле № 6), нет ячейки и стороны
|
||||
строки, расхождение с «без пары» §5. Сценарий закрывают AURORA-1653 (строки ОСВ ячейки) и AURORA-1536 (строки без
|
||||
пары по упаковке §5). Код — в той же ветке `wip/shahmatka-corrections-unpaired`.
|
||||
5. **Пресет = правило Прил. 3 — дополнение к пресетам §6** (наборы счетов), не замена. PRESET ограничивается
|
||||
правилами ББ (`statement_type = balance`): правил ОФР в seed нет, ОФР в §4 открыт. Правка §6 — в `../docs`.
|
||||
|
||||
1. При пустом `consolidation_version.elimination_rules_version` берутся текущие открытые правила. Это расходится с
|
||||
DBML («фиксируется при первом расчёте, замораживается при VERIFIED») и критерием AURORA-1536; нужно решение
|
||||
владельца, в том числе для версий в статусе `VERIFIED`.
|
||||
2. «Актуальные» правила — `valid_to IS NULL` на сегодня, а не на отчётную дату консолидации.
|
||||
3. Если открытыми остаются несколько `version_no`, список правил даёт дубли `rule_no`.
|
||||
4. Семантика корректировки: `(rule, A, B)` дебетовой частью правит ячейку `(A, B)`, кредитовой — ячейку `(B, A)`;
|
||||
`debit_account_id`, `credit_account_id` и `parent_correction_id` не учитываются; корректировки в ядре пока никто
|
||||
не создаёт.
|
||||
5. `unpaired-osv` построена на `one_sided` по наличию строк — это дефект AURORA-1651, и «без пары» здесь не равно
|
||||
«без пары» по §5 и AURORA-1536.
|
||||
6. Пресет здесь — правило Прил. 3, а §6 описывает пресеты как наборы счетов; PRESET по ОФР на оборотах
|
||||
(`measure = turnover`) не подтверждён §5/§6.
|
||||
7. Имя файла содержит UUID правила, шапка xlsx не содержит номер правила и версию; audit не пишет номер/версию правил
|
||||
и ID применённых корректировок.
|
||||
После выноса п. 3–4 автором соответствующие требования дельты `consolidated-osv` удаляются из change.
|
||||
|
||||
## Known issues
|
||||
|
||||
1. Если открытыми остаются несколько `version_no`, список правил даёт дубли `rule_no` (обязательно в PR: одна версия
|
||||
или явная ошибка, тест).
|
||||
2. При незафиксированной версии ответ `elimination-rules` отдаёт `version_no = null` — фронт не видит, по какой версии
|
||||
посчитано (желательно отдавать фактический номер открытых правил).
|
||||
3. Имя файла содержит UUID правила, шапка xlsx не содержит номер правила и версию; audit EXPORT не пишет номер и
|
||||
версию правил.
|
||||
|
||||
## Decisions made without discussion
|
||||
|
||||
|
||||
@ -2,3 +2,12 @@
|
||||
|
||||
Реализация выполнена автором в PR RSHB/arm-core#141; задач плана нет. Доработки по замечаниям ревью — см.
|
||||
`design.md`, `## Known issues`.
|
||||
|
||||
## 2. Доработки по решениям владельца 2026-10-21 (автор)
|
||||
|
||||
- [ ] 2.1 Отдельным коммитом убрать учёт корректировок (`_apply_corrections`, `correction_for_version_consolidation`,
|
||||
`correction_ids_*`) и ручку `unpaired-osv` (`get_unpaired_rows`, `UnpairedOsvOut`, маршрут) вместе с тестами;
|
||||
код сохранён в `wip/shahmatka-corrections-unpaired`.
|
||||
- [ ] 2.2 PRESET — только правила `statement_type = balance`; правило ОФР — 422 `INVALID_RULE`, тест.
|
||||
- [ ] 2.3 Несколько открытых `version_no` — одна версия (max) или явная ошибка, тест.
|
||||
- [ ] 2.4 Ревьюер: убрать из дельты `consolidated-osv` требования про корректировки и `unpaired-osv`, обновить README.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user