# Build №004 — Common Reasons

## Файл

```text
app/src/trading/market_intelligence/common/reasons.py
```

## Назначение

Создание единого реестра машинных кодов причин `ReasonCode`.

Файл определяет стандартный словарь причин, который используется будущими Engine для диагностики, payload, snapshot, событий и журналирования.

---

## Реализовано

Добавлен класс:

```text
ReasonCode
```

Он содержит группы причин для следующих областей:

- Common;
- Data;
- Engine Runtime;
- Validation;
- Market State;
- Structure;
- Trend;
- Momentum;
- Volatility;
- Wave;
- Cycle;
- Liquidity;
- Regime;
- Confidence;
- Signal Aging;
- Timeframe.

---

## Архитектурные решения

- движки публикуют стандартизированные коды причин;
- движки не формируют человекочитаемый текст;
- причины отделены от пользовательского интерфейса;
- причины не содержат торговых действий;
- единый словарь причин используется всеми Engine платформы;
- причины описывают состояние рынка или состояние работы движка.

---

## Compile Check

```text
PASSED
```

## Architecture Review

```text
PASSED
```

## Domain Review

```text
PASSED
```

## Обязательные замечания

Нет.

## Рекомендации

После завершения базовых моделей рекомендуется реализовать отдельный слой формирования человекочитаемых объяснений.

Возможное имя файла:

```text
common/reason_texts.py
```

или:

```text
common/explanations.py
```

Этот слой будет преобразовывать `ReasonCode` в понятные сообщения для журнала, интерфейса и отчётов.

## Статус

```text
ACCEPTED
```