# ExitPlanMode

Подає план реалізації, складений під час режиму планування, на затвердження користувача та — якщо затверджено — переводить сесію з режиму планування, щоб можна було розпочати правки.

## Коли використовувати

- План, написаний під час `EnterPlanMode`, завершений і готовий до перегляду.
- Завдання орієнтоване на реалізацію (зміни коду чи конфігурації), а не чисте дослідження, тому явний план є доцільним.
- Усе необхідне читання та аналіз виконано; подальше дослідження не потрібне перед рішенням користувача.
- Асистент перелічив конкретні шляхи файлів, функції та кроки — не лише цілі.
- Користувач попросив побачити план, або робочий процес режиму планування готується передати керування інструментам редагування.

## Параметри

- `allowedPrompts` (array, необовʼязковий): Промпти, які користувач може ввести на екрані затвердження, щоб автоматично затвердити або змінити план. Кожен елемент вказує дозвіл з областю дії (наприклад, імʼя операції та інструмент, до якого вона застосовується). Залиште невстановленим, щоб використати типовий потік затвердження.

## Приклади

### Приклад 1: Стандартна подача

Після дослідження рефакторингу автентифікації в режимі планування та запису файлу плану на диск асистент викликає `ExitPlanMode` без аргументів. Оболонка читає план з його канонічного розташування, показує його користувачеві та чекає на затвердження або відхилення.

### Приклад 2: Попередньо затверджені швидкі дії

```
ExitPlanMode(allowedPrompts=[
  {"tool": "Bash", "prompt": "run tests"},
  {"tool": "Bash", "prompt": "install dependencies"}
])
```

Дозволяє користувачеві надати дозвіл наперед для рутинних подальших команд, щоб асистенту не потрібно було робити паузу для кожного запиту дозволу під час реалізації.

## Примітки

- `ExitPlanMode` має сенс лише для роботи, орієнтованої на реалізацію. Якщо запит користувача є завданням дослідження чи пояснення без змін файлів, відповідайте напряму — не маршрутизуйте через режим планування, аби лише вийти з нього.
- План має бути вже записаним на диск перед викликом цього інструмента. `ExitPlanMode` не приймає тіло плану як параметр; він читає зі шляху, який очікує оболонка.
- Якщо користувач відхиляє план, ви повертаєтесь у режим планування. Перегляньте на основі відгуку та подайте знову; не починайте редагувати файли, поки план не затверджений.
- Затвердження надає дозвіл залишити режим планування та використовувати мутаційні інструменти (`Edit`, `Write`, `Bash` тощо) для області, описаної в плані. Розширення області після цього вимагає нового плану або явної згоди користувача.
- Не використовуйте `AskUserQuestion`, щоб запитати "чи виглядає цей план добре?" перед викликом цього інструмента — запит затвердження плану — це саме те, що робить `ExitPlanMode`, а користувач не бачить плану, доки його не подадуть.
- Тримайте план мінімальним та дієвим. Рецензент має бути здатним перечитати його менш ніж за хвилину та зрозуміти, що саме зміниться.
- Якщо посеред реалізації ви усвідомите, що план був неправильним, зупиніться та доповідьте користувачеві, а не відхиляйтеся мовчки. Повторний вхід у режим планування — дійсний наступний крок.
