# План, список дел и цель

> Большая задача в Buff Code: план с утверждением, список дел агента и цель /goal — агент делает ходы, пока проверка не подтвердит результат.

Три способа держать большую задачу под контролем:

| | Что это | Когда нужно |
| --- | --- | --- |
| **План** | агент сначала изучает код и предлагает план, ничего не меняя; работать начинает после вашего «да» | задача затрагивает несколько файлов или решений, и вы хотите согласовать подход |
| **Список дел** | агент разбивает работу на шаги и отмечает сделанное | любая многошаговая задача — агент ведёт его сам |
| **Цель** | агент делает ход за ходом, пока проверка не подтвердит результат | результат проверяемый, а число шагов заранее неизвестно |

## План

Нажмите **«План»** в строке под полем ввода и опишите задачу. Пока отметка включена, агент
читает и ищет, задаёт вопросы, но не правит файлы и не запускает команды, которые что-то
меняют.

1. Агент изучает код. Если в задаче не хватает решения, он спрашивает — вопросом с вариантами
   ответа (см. [Вопросы агента](/docs/buff-code/work/session#вопросы-агента)).
2. План приходит карточкой **«План · Ждёт утверждения»**: правила, шаги, файлы, проверка.
   «Показать целиком» раскрывает длинный план, «Копировать» — копирует его текстом.
3. Над полем ввода — вопрос «Утвердить план и начать работу? Или напишите, что поправить»:
   - **«Утвердить и начать»** — режим плана выключается, агент приступает к работе;
   - свой ответ — что поправить; агент перепишет план и спросит снова.

_Иллюстрация: План скидки: агент учёл ответы на свои вопросы и ждёт утверждения._

После утверждения карточка помечается «Утверждён». Начинать новые сессии сразу в «Плане» можно
выбрать при первом запуске или в настройках — см. [Настройки](/docs/buff-code/work/settings).

## Список дел

Для многошаговой работы агент ведёт **список дел**: строка «Дела 0/4 · Добавить дорогой чай в
catalog.js» показывает, сколько сделано и что идёт сейчас. Та же строка — над полем ввода; щелчок
раскрывает весь список, сделанное зачёркнуто.

_Иллюстрация: После утверждённого плана агент прошёл четыре шага: каталог, расчёт, тесты, прогон._

## Цель

`/goal <что должно быть правдой>` ставит сессии **цель**. Агент делает ход, после каждого хода
отдельная проверка решает, достигнута ли цель, — и если нет, агент получает причину и делает
следующий ход.

```text
/goal в файле stock.txt записано число 2. За один ход увеличивай число на 1 (нет файла — создай с 1) и заканчивай ход
```

Над полем ввода — строка цели:

- **«Цель · итерация 2 · Идёт: …»** — под ней вывод проверки после прошлого хода: что уже
  сделано и чего не хватает;
- **«Пауза»** — остановиться после текущего хода, **«Продолжить»** — вернуться к цели;
- **«Сбросить»** — убрать цель.

_Иллюстрация: Первый ход создал файл с числом 1. Проверка ответила, что нужно ещё одно увеличение, — идёт второй ход._

Когда проверка подтверждает результат, строка становится зелёной — **«Достигнута»** — с
объяснением, почему. В ленте под последним ответом — свёрнутая отметка «Цель» с тем же итогом.

_Иллюстрация: Цель достигнута за два хода; проверка объяснила, почему._

Что стоит знать:

- Если ответ проверки нельзя разобрать, она переспрашивает один раз, а затем ставит цель на
  паузу с её ответом — вместо бесконечного круга.
- Ход, оборвавшийся с ошибкой, ставит цель на паузу с текстом ошибки.
- Пишите цель как проверяемое утверждение о результате («тесты зелёные», «в файле записано 2»),
  а не как действие.

## В консоли

_Иллюстрация: Цель в консоли: та же строка цели и вывод проверки; управление — через палитру._

| Что | Как |
| --- | --- |
| план | shift+tab — смена агента на Plan и обратно; план приходит в ленту, утверждение — вопросом |
| список дел | строка «Дела N/M · /todos» под лентой; `/todos` — список целиком |
| цель | `/goal <текст>`; строка цели над полем ввода; пауза, продолжение и сброс — в палитре (`ctrl+p`): «Buff: goal — pause / resume / reset» |
