krona-staff/AGENTS.md
2026-09-10 23:29:28 +07:00

2.7 KiB
Raw Permalink Blame History

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-ветка.