Forge
markdowndeeb25a2
1# ADR 0008: Стабильные контракты MCP и тестируемая инфраструктура
2
3**Статус:** Accepted · Implemented
4**Дата:** 2026-04-02
5## Связанные ADR
6
7### Вне ADR
8
9| Документ | Роль |
10|----------|------|
11| [MCP-PROTOCOL.md](../MCP-PROTOCOL.md) | MCP PROTOCOL |
12
13### Снимок реализации
14
15| Элемент | Значение |
16|---------|----------|
17| — | `IIdeMcpActions`, исполнитель MCP, контракты в MCP-PROTOCOL |
18
19---
20## Контекст
21
22Агент взаимодействует с IDE через MCP. Внутри приложения нужны предсказуемые границы: иначе тулы дублируют бизнес-правила, а git/процессы невозможно подменить в тестах.
23
24## Решение
25
26### MCP
27
28Контракты агента (`IIdeMcpActions`, DTO) — **стабильные**; изменения сознательно и с версионированием контракта там, где это принято в репо.
29
30Реализация MCP **делегирует** в сервисы и ViewModels без дублирования одних и тех же бизнес-правил в каждом обработчике тула.
31
32### Внешний мир
33
34Git, `Process`, длительные операции — за **абстракцией**, которую в тестах можно подменить (интерфейс или `internal` + `InternalsVisibleTo` — по ситуации).
35
36## Последствия
37
38Новые тулы добавляются с опорой на существующие сервисы; тяжёлая логика не копируется в слой диспетчера MCP-команд.
39
40## Отклонённые альтернативы
41
42- Делать каждый тул самодостаточным с прямым доступом к файловой системе и процессам — отклонено как неподдерживаемое при росте числа команд.
43
View only · write via MCP/CIDE