← [Раздел](README.md) · [Главная](../README.md)

# Многофайловые правки и контекст

## Цель

Управлять **многофайловыми** изменениями в Agent: декомпозиция, порядок правок, контроль diff и откат без хаоса в monorepo.

## Предварительно

- [rejimy-chat-agent-plan.md](rejimy-chat-agent-plan.md)
- Git basics: branch, commit, diff
- Rules проекта в `.cursor/rules/`

## Время

~60 минут теории + одна учебная фича на 2–4 файла.

---

## Почему многофайловые задачи ломаются

| Причина | Симптом |
|---------|---------|
| Нет scope | Агент трогает 40 файлов |
| Большой контекст | «Забывает» начало плана |
| Нет тестов | Регрессии |
| Accept all без review | Мусор в diff |

---

## Алгоритм работы

### 1. Ограничить scope в промпте

```text
Измени только:
- internal/auth/*.go
- internal/auth/*_test.go

Не трогай cmd/, migrations/, helm/.
```

### 2. Plan на 5+ файлов

Plan mode → список файлов и порядок → Agent по **батчам**:

```text
Батч 1: типы и интерфейсы
Батч 2: реализация
Батч 3: тесты
```

### 3. Коммиты между батчами

```bash
git add -p
git commit -m "refactor(auth): extract validator interface"
```

Агенту: «продолжи с батча 2, main уже с батчем 1».

### 4. Review каждого батча

`/code-review` или субагент `code-reviewer` из `ECC/.cursor/agents/`.

---

## Контекст при N файлах

| Файлов | Стратегия |
|--------|-----------|
| 1–3 | Прямой @each file |
| 4–10 | @папка + имена в тексте |
| 10+ | Plan + grep/semantic search агентом |
| 50+ | Не одна сессия; эпики |

**Не прикрепляйте** весь monorepo «на всякий случай».

---

## .cursor/rules для multi-file

Пример glob в rule:

```yaml
---
globs: "internal/auth/**"
---
```

Правило автоматически активно при работе в зоне — меньше повторений в промпте.

---

## Параллельные субагенты

Для независимых областей (ECC pattern):

```text
Запусти два explore-агента параллельно:
1) auth module
2) billing module
Собери общий план интеграции.
```

Команды ECC: `/multi-plan`, `/multi-execute` — только на учебных ветках.

---

## Diff hygiene

1. `git diff --stat` после каждого батча.
2. Отклоняйте правки вне scope (`git checkout -- path`).
3. Используйте `.cursorignore` для generated кода.
4. Не смешивайте рефакторинг и фичу в одном commit.

---

## Тесты как якорь

Промпт:

```text
После каждого батча запускай `go test ./internal/auth/...`.
Если красное — исправь до следующего батча.
```

Skill `tdd-workflow` в ECC усиливает этот цикл.

---

## Откат

| Уровень | Команда |
|---------|---------|
| Один файл | `git checkout -- file` |
| Весь эксперимент | `git reset --hard` (осторожно) |
| Уже закоммичено | `git revert` |

Rule: агент не делает `reset --hard` без явного запроса.

---

## Упражнение

Добавьте фичу «валидация email» в учебный модуль:

- минимум 2 `.go` / `.ts` файла + тест;
- 2 коммита;
- явный scope в промпте.

---

## Самопроверка

1. Зачем батчи при 10+ файлах?
2. Как rule с glob помогает multi-file?
3. Почему accept all опасен?
4. Когда использовать multi-агентов?

---

## Дальше

→ [11 — ECC](../11-ecc/README.md)  
← [MCP-серверы](mcp-servery.md)
