ADR 0008: Стабильные контракты MCP и тестируемая инфраструктура
Статус: Accepted · Implemented
Дата: 2026-04-02
Связанные ADR
Вне ADR
| Документ | Роль |
|---|---|
| MCP-PROTOCOL.md | MCP PROTOCOL |
Снимок реализации
| Элемент | Значение |
|---|---|
| — | IIdeMcpActions, исполнитель MCP, контракты в MCP-PROTOCOL |
Контекст
Агент взаимодействует с IDE через MCP. Внутри приложения нужны предсказуемые границы: иначе тулы дублируют бизнес-правила, а git/процессы невозможно подменить в тестах.
Решение
MCP
Контракты агента (IIdeMcpActions, DTO) — стабильные; изменения сознательно и с версионированием контракта там, где это принято в репо.
Реализация MCP делегирует в сервисы и ViewModels без дублирования одних и тех же бизнес-правил в каждом обработчике тула.
Внешний мир
Git, Process, длительные операции — за абстракцией, которую в тестах можно подменить (интерфейс или internal + InternalsVisibleTo — по ситуации).
Последствия
Новые тулы добавляются с опорой на существующие сервисы; тяжёлая логика не копируется в слой диспетчера MCP-команд.
Отклонённые альтернативы
- Делать каждый тул самодостаточным с прямым доступом к файловой системе и процессам — отклонено как неподдерживаемое при росте числа команд.