25 lines
2.7 KiB
Markdown
25 lines
2.7 KiB
Markdown
# AGENTS.md
|
||
|
||
## Назначение
|
||
|
||
Krona Staff — автономно развёртываемый блок Krona Business Platform, а не отдельный конкурирующий продукт. Предметные функции добавляются только по подтверждённым требованиям владельца.
|
||
|
||
## Неизменяемые инварианты
|
||
|
||
- Core владеет Tenant, User, Role, Permission, SSO, platform settings, files, notifications и event bus. Staff владеет Employee и HR-доменом. `User != Employee`.
|
||
- Все tenant-данные имеют `tenant_id`; запросы идут через tenant-scoped transaction; новые таблицы включают и форсируют PostgreSQL RLS. Добавляйте тест утечки между двумя tenant.
|
||
- ID — ULID в `VARCHAR(26)`. Деньги — `BIGINT` minor units + ISO 4217 currency. Временные метки — UTC; локальная интерпретация — IANA timezone tenant.
|
||
- Межмодульные вызовы только через публичные порты/platform gateway или versioned events. Прямые импорты и запись в чужие таблицы запрещены.
|
||
- События имеют version, tenant, subject, actor, correlation/causation; публикация через transactional outbox; consumer через inbox и идемпотентность.
|
||
- Локальный диск не является постоянным хранилищем. Вложения — через `FileStoragePort`/platform Files/S3.
|
||
- Standalone adapters совместимы, мигрируемы и отключаемы; они не становятся вторым постоянным source of truth.
|
||
|
||
## Перед изменением
|
||
|
||
Прочитайте `docs/109-PLATFORM-BLOCK-CONTRACT.md` и связанные актуальные контракты в `ochenstarik/business-platform`. Если контракт изменился, сначала синхронизируйте manifest/ADR и тесты. Не копируйте архитектуру Omnichannel механически.
|
||
|
||
## Проверка
|
||
|
||
Запускайте `npm run check`. Для изменений БД дополнительно проверьте up/down на чистой PostgreSQL и tenant isolation. Не объявляйте Docker/restore/CI проверенными, если соответствующая среда реально не запускалась.
|
||
|
||
Файлы UTF-8 без BOM, LF. Коммиты небольшие, объясняют причину. Ветка задачи: `codex/bootstrap-platform-foundation` или отдельная ASCII feature-ветка.
|