mirror of
https://github.com/pese-git/cherrypick.git
synced 2026-03-25 04:40:33 +00:00
Add OpenSpec system specification
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
## ADDED Requirements
|
||||
|
||||
### Requirement: Сущность адаптера логирования
|
||||
Адаптер MUST предоставлять `TalkerCherryPickObserver`, реализующий `CherryPickObserver`.
|
||||
|
||||
#### Scenario: Доступность адаптера
|
||||
- **WHEN** разработчик импортирует пакет адаптера
|
||||
- **THEN** `TalkerCherryPickObserver` доступен для использования
|
||||
|
||||
### Requirement: Жизненный цикл наблюдателя
|
||||
Наблюдатель MUST подключаться при создании scope и работать в течение жизненного цикла этого scope.
|
||||
|
||||
#### Scenario: Подключение наблюдателя
|
||||
- **WHEN** observer передан при открытии scope
|
||||
- **THEN** все DI‑события в scope направляются в Talker
|
||||
|
||||
### Requirement: Маппинг уровней логирования
|
||||
Адаптер MUST маршрутизировать DI‑события в Talker с корректными уровнями (info/warning/verbose/handle).
|
||||
|
||||
#### Scenario: Диагностика
|
||||
- **WHEN** DI‑ядро генерирует диагностическое событие
|
||||
- **THEN** адаптер логирует его как verbose
|
||||
|
||||
#### Scenario: Ошибка резолва
|
||||
- **WHEN** DI‑ядро генерирует ошибку
|
||||
- **THEN** адаптер логирует ее через `handle` и включает stack trace при наличии
|
||||
|
||||
### Requirement: Ненавязчивость поведения
|
||||
Адаптер MUST быть наблюдателем и не изменять DI‑поведение, жизненный цикл или кэширование.
|
||||
|
||||
#### Scenario: Разрешение с адаптером
|
||||
- **WHEN** адаптер подключен
|
||||
- **THEN** резолв и поведение DI не изменяются, кроме появления логов
|
||||
|
||||
### Requirement: Ошибки логирования
|
||||
Адаптер MUST передавать ошибки логирования как есть и не содержит собственной обработки исключений.
|
||||
|
||||
#### Scenario: Исключение в Talker
|
||||
- **WHEN** Talker выбрасывает исключение при логировании
|
||||
- **THEN** исключение пробрасывается вызывающему коду
|
||||
|
||||
### Requirement: Точки расширения
|
||||
Адаптер MUST позволять использовать пользовательские настройки Talker без изменения адаптера.
|
||||
|
||||
#### Scenario: Кастомная конфигурация Talker
|
||||
- **WHEN** пользователь передает кастомный Talker
|
||||
- **THEN** адаптер использует переданную конфигурацию для всех DI‑событий
|
||||
Reference in New Issue
Block a user