<!-- English translation of adr/0008-mcp-contracts-and-testable-infrastructure.md. Canonical Russian: ../../adr/0008-mcp-contracts-and-testable-infrastructure.md -->
The agent communicates with the IDE via MCP. Within the application, predictable boundaries are needed: otherwise the tools duplicate business rules, and git/processes cannot be replaced in tests.
Git, `Process`, long-term operations are behind **abstraction**, which can be replaced in tests (interface or `internal` + `InternalsVisibleTo` - depending on the situation).