Andrey Epifancev 01767fd2b9 chore(openspec): архив change slice-1-directories (2026-10-05)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-05 11:09:08 +04:00

54 lines
5.5 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.

# Proposal: Срез 1 (сквозное) — DBML v5.14, правила импорта из ЕЦП CRM, политика видимости, OQ
**Срез:** 1 «Справочники» (`docs/context/09-delivery-plan.md`), сокращённый по решению владельца 04.10.2026: без UI
справочника, минимальный экран администратора — цель быстрее дойти до Среза 2 (`tabular-parser`).
**Репозиторий:** arm-ka-docs. **Issue:** RSHB/arm-ka-docs#6. **Дочерние change'и:** `arm-core/openspec/changes/slice-1-directories`
(RSHB/arm-core#5), фикстура — RSHB/arm-ka-fixtures#2.
## Why
Срез 1 требует двух решений, которые нельзя принять в коде молча: модель данных (ЮЛ одновременно в одной ГСК и одной
ГСЗ — DBML v5.13 это запрещает) и правила импорта реальной выгрузки ЕЦП CRM, формат которой появился только сейчас
(`docs/source/biq/ecp-export-lagal-entity.xlsx`, 8400 строк) и отличается от макета [38] и от предположений ТЗ. По
CLAUDE.md изменение модели идёт только через новую версию DBML с changelog, алгоритмы — только через `05-domain-rules.md`.
## What Changes
- **DBML v5.14** (`docs/model/data-model-v5.14.dbml`, v5.13 остаётся в истории): `related_group_member.kind`
(денормализация `related_group.kind`) и частичный уникальный индекс `(legal_entity_id, kind) WHERE is_current` вместо
`legal_entity_id` — ЮЛ может состоять одновременно в одной ГСК и одной ГСЗ (решение владельца, отменяет ANL-030);
КПП не вводится; `audit_action` + `LEGAL_ENTITY_CHANGE`, `USER_CHANGE` (ТЗ 8.2 требует журнал изменений ЮЛ и пользователей,
в v5.13 для них не было действия); уточнена семантика `company_group.crm_id` / `base_regional_office_id` по выгрузке ЕЦП.
`entities-v5.14.md`, `04-data-model-guide.md`, ссылки в `CLAUDE.md` репозиториев — на v5.14.
- **`05-domain-rules.md`:** новый **§13 «Импорт справочников из выгрузки ЕЦП CRM»** (формат файла, построчные правила,
коды отчёта, транзакция, след в `audit_event` и S3, ручные операции справочника: перевод в другую ГК, вывод из состава,
алиасы, ГСК/ГСЗ); **§10.1 «Видимость справочников»** — policy через данные (`regional_office.is_head_office`), без кода роли;
ЗО не фильтрует (OQ-86).
- **`07-open-questions.md`:** OQ-31 и OQ-32 закрыты решением владельца; OQ-25 частично закрыт по выгрузке (состав ГК
«Русский Бисквит»); новые OQ-86…OQ-91 (ЗО-фильтр, типы `нерез.`/`ФЛ`, контрольные разряды ИНН, «ЦКБ»/«Головная
организация», ИНН в нескольких ГК, одна ГСК/ГСЗ на ГК в выгрузке).
- **Выгрузка ЕЦП** `docs/source/biq/ecp-export-lagal-entity.xlsx` закоммичена как первоисточник формата (добавлена
владельцем); срез по ГК «Русский Бисквит» — фикстура `fixtures/directories/ecp-export-russkiy-biskvit.xlsx`.
- **`09-delivery-plan.md`:** Срез 1 по факту (без UI справочника; минимальный экран администратора; импорт из ЕЦП);
**`10-user-journey.md`:** пометка, что экраны справочника (50, 51, 61, 77–80) реализуются позже, API — в Срезе 1.
- **`08-source-docs-index.md`:** строка про выгрузку ЕЦП.
## Capabilities
Change документный: поведение описывается спеками дочернего change'а в `arm-core` (`directories-api`, `directory-import`,
`directory-policy`, `users-admin`). Здесь — `skip_specs: true`.
## Impact
- Таблицы DBML: `related_group_member` (новая колонка, новый индекс) — миграция 0002 в `arm-core`; остальные таблицы
частей 01–02 без изменений структуры.
- Правила: §13 — новый; §10.1 — уточнение §10; §3 (алиасы) — без изменений.
- Потребители: `arm-core` (ORM, миграция, `check_dbml_vs_orm.py` на v5.14, импорт, policy), `fixtures` (срез выгрузки).
## Non-goals
- UI справочника по макету (экраны 50, 51, 61, 77–80) — отдельный срез по решению владельца.
- Расширение `entity_type` (нерезиденты, ФЛ), контрольные разряды ИНН, маппинг «ЦКБ» на ГО — после ответов на OQ-87…OQ-89.
- Онлайн-интеграция с ЕЦП CRM — только файл.
- Контракт сервисов распознавания — не затрагивается.