# Build 017.7 — Trading Boundary Correction

**Engineering Build Document**

---

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

| Свойство | Значение |
|----------|-----------|
| Build | 017.7 |
| Название | Trading Boundary Correction |
| Статус | **Accepted** |
| Подсистема | Trading / Market Intelligence |
| Тип | Architecture Refactoring |
| Версия | 1.0 |
| Язык | Русский |

---

# Цель Build

Исправить архитектурную границу между **Market Intelligence** и **Trading Decision**.

---

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

В ходе подготовки к Build 018 было обнаружено, что Trading Foundation был размещён внутри:

```text
src/trading/market_intelligence/trading/
```

Это нарушало границу ответственности, поскольку `market_intelligence` должен содержать только компоненты анализа рынка.

---

# Architecture

Trading Foundation перенесён в самостоятельный слой:

```text
src/trading/decision/
```

Целевая структура:

```text
src/trading/decision/
├── __init__.py
├── models.py
├── protocol.py
├── exceptions.py
├── validation.py
├── rules.py
└── service.py
```

---

# Architecture Review

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

- `market_intelligence` содержит только компоненты анализа рынка;
- `TradingDecision` больше не находится в `market_intelligence/common/models.py`;
- Trading Decision вынесен в самостоятельный слой `src/trading/decision`;
- существующий `src/trading/execution/` не затронут;
- дублирования Execution Layer не создано.

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

---

# ADR

Принято решение перенести Trading Foundation из `market_intelligence` в самостоятельный слой `decision`.

`market_intelligence/common/models.py` должен содержать только модели Market Intelligence:

```text
Engine*
Runtime*
Coordinator*
```

Trading Decision использует `CoordinatorResult`, но не является частью Market Intelligence.

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

---

# Implementation

Создан каталог:

```text
app/src/trading/decision/
```

Создан файл:

```text
app/src/trading/decision/models.py
```

Перенесены файлы:

```text
protocol.py
exceptions.py
validation.py
rules.py
service.py
```

Удалены модели Trading из:

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

Удалён старый каталог:

```text
app/src/trading/market_intelligence/trading/
```

---

# Compile Check

Проверены оба контура:

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

Результат:

```text
Passed
```

---

# Domain Review

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

- `market_intelligence` снова содержит только Market Intelligence компоненты;
- Trading Decision вынесен в самостоятельный слой;
- `decision` корректно использует `CoordinatorResult` как входной контракт;
- существующая подсистема `execution` не затронута;
- дублирования Execution Layer не создано.

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

---

# Code Review

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

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

- новые импорты используют `src.trading.decision`;
- старых импортов из `src.trading.market_intelligence.trading` не обнаружено;
- `TradingDecision` находится в `decision/models.py`;
- `market_intelligence/common/models.py` очищен от Trading-моделей;
- архитектурная граница восстановлена.

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

---

# Acceptance

Build завершён.

Выполнены:

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

Статус Build:

```text
Accepted
```

---

# Итог Build

Build 017.7 восстановил правильную архитектурную границу:

```text
Market Intelligence
        ↓
CoordinatorResult
        ↓
Decision Layer
        ↓
TradingDecision
        ↓
Execution
```

Теперь `market_intelligence` отвечает только за аналитику рынка, а `decision` отвечает за формирование торгового решения.

---

# Следующий Build

```text
Build 018

Execution Layer Architecture
```