# Build 016.2 — Coordinator Protocol

**Engineering Build Document**

---

# Контроль документа

| Свойство | Значение |
|----------|-----------|
| Build | 016.2 |
| Название | Coordinator Protocol |
| Статус | **Accepted** |
| Подсистема | Market Intelligence |
| Layer | Coordinator |
| Тип | Architecture + Implementation |
| Версия | 1.0 |
| Язык | Русский |

---

# Цель Build

Создать официальный публичный контракт Coordinator Layer.

---

# Причина появления Build

После появления модели `CoordinatorResult` Coordinator Layer должен получить стабильный интерфейс взаимодействия.

Контракт Coordinator определяет единственную модель взаимодействия:

```text
RuntimeResult
        ↓
Coordinator
        ↓
CoordinatorResult
```

---

# Architecture

`CoordinatorProtocol` описывает только внешний интерфейс Coordinator.

Он не содержит:

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

---

# Architecture Review

Проверка подтвердила:

- Coordinator получает только `RuntimeResult`;
- Coordinator возвращает только `CoordinatorResult`;
- контракт не содержит реализации;
- контракт не зависит от внутренних компонентов Runtime;
- контракт не зависит от конкретных Engine;
- контракт не содержит торговой логики.

**Статус:** ✅ Passed

---

# ADR

Принято решение добавить официальный контракт:

```text
CoordinatorProtocol
```

Утверждённый метод:

```python
async def coordinate(
    self,
    runtime_result: RuntimeResult,
) -> CoordinatorResult:
    ...
```

**Статус:** Accepted

---

# Implementation

Создан файл:

```text
app/src/trading/market_intelligence/coordinator/protocol.py
```

Содержимое контракта:

```python
class CoordinatorProtocol(Protocol):
    async def coordinate(
        self,
        runtime_result: RuntimeResult,
    ) -> CoordinatorResult:
        ...
```

---

# Compile Check

```bash
python -m compileall src/trading/market_intelligence
```

Результат:

```text
Passed
```

---

# Domain Review

Подтверждено:

- Coordinator принимает исключительно `RuntimeResult`;
- Coordinator возвращает исключительно `CoordinatorResult`;
- протокол не содержит аналитической логики;
- протокол не содержит торговой логики;
- протокол не зависит от конкретных Engine;
- протокол не зависит от реализации Runtime Layer.

**Статус:** ✅ Passed

---

# Code Review

Проверка пройдена.

Замечаний нет.

**Статус:** ✅ Passed

---

# Acceptance

Build завершён.

Выполнены:

- ✅ Architecture Design
- ✅ Architecture Review
- ✅ ADR
- ✅ Build Design
- ✅ Implementation
- ✅ Compile Check
- ✅ Domain Review
- ✅ Code Review
- ✅ Documentation

Статус Build:

```text
Accepted
```

---

# Следующий Build

```text
Build 016.3

Coordinator Exceptions

coordinator/exceptions.py
```