y83 code / справочник

Планы

Планы — это экран, где собрано всё, что агент обещал сделать: планы из переписки и файлы plans/<key>.md в корне проекта. Экран нужен, чтобы не искать по всей переписке, где агент собирался что-то менять и что он уже выполнил. Внутри плана видно шаги с отметками, поэтому по нему сразу понятно, на чём агент остановился.

раздел
Чат с агентом (Codex)
пунктов возможностей
111
источник
docs/codex/plans.md

Это два разных хранилища: планы чата лежат в Room и остаются историей диалога, а файлы plans/<key>.md — долговременная память агента, которую он читает перед новой крупной задачей.

Вход в экран

Пункт Plans стоит в меню треда, в секции про ревью и инструменты, рядом с пунктами про MCP, скиллы и бета-функции.

  • Пункт открывает полноэкранный список планов проекта, к которому привязан этот диалог.
  • Подпись пункта подсказывает, что именно вы увидите: планы из чата и файлы планов проекта.
  • Экран открывается из любого диалога рабочей папки и показывает планы всего проекта, а не только одного разговора.

Шапка

В шапке написано название экрана и короткая сводка, сколько планов нашлось с каждой стороны.

  • Слева в шапке стоит стрелка назад, которая просто закрывает экран.
  • В первой строке шапки написано Plans.
  • Во второй строке шапки написано название проекта и два числа: сколько планов из переписки и сколько файлов планов.
  • Числа в шапке обновляются вместе со списком, поэтому они всегда показывают то, что сейчас на экране.

Две вкладки

Под шапкой стоят две вкладки-переключателя, между которыми можно прыгать в любой момент.

  • Первая вкладка называется Chat и показывает планы, которые агент строил прямо в переписке.
  • Вторая вкладка называется Files и показывает файлы планов, которые лежат в папке проекта.
  • Рядом с названием каждой вкладки стоит число — сколько записей в ней сейчас.
  • Вкладка запоминается только на время открытия экрана: при следующем открытии снова показывается Chat.

Вкладка Chat: фильтры и поиск

Сверху над списком планов есть строка фильтров и поле поиска.

  • Фильтров четыре: All, Active, Done и Rejected.
  • Рядом с каждым фильтром стоит число — сколько планов ему соответствует прямо сейчас.
  • Фильтр All показывает все планы без разбора.
  • Фильтр Active показывает планы в работе: ждущие решения, одобренные и те, что уже выполняются.
  • Фильтр Done показывает выполненные планы и те, что закрылись.
  • Фильтр Rejected показывает планы, которые вы отклонили.
  • Счётчики считаются по всем планам, а не по отфильтрованным, поэтому цифры не меняются при переключении фильтров.
  • Поле поиска появляется только когда планов больше пяти: при небольшом списке искать нечего.
  • Поиск ищет по трём местам сразу: по названию плана, по тексту плана и по названию диалога, где план появился.
  • Регистр не учитывается, поэтому можно искать строчными или заглавными буквами.
  • Если фильтр и поиск ничего не нашли, показывается подсказка попробовать другой фильтр или очистить поиск.

Что показывает строка плана

Каждый план из переписки занимает одну строку, по которой видно его состояние и ход работы.

  • Строки отсортированы по свежести: сверху стоит план, который обновляли последним, а не тот, который создали последним.
  • В начале строки стоит чип со статусом плана, и по нему сразу видно, на какой стадии находится план.
  • Чип рисуется рамкой, а не заливкой, чтобы строка оставалась лёгкой и читаемой.
  • Цвет чипа зависит от статуса: выполненные планы фиолетовые, отклонённые красные, закрытые серые, остальные бирюзовые.
  • Дальше идёт название плана — заголовок, который агент дал плану, а если заголовка нет, то первый шаг плана.
  • Если нет ни заголовка, ни шагов, плану даётся запасное название Plan.
  • Название занимает не больше двух строк, длинное обрезается многоточием.
  • Под названием идёт строка подробностей, а части в ней разделяются точкой с пробелом.
  • Если у плана есть шаги, первым идёт отметка вида 2/5 steps — сколько шагов уже выполнено из скольких.
  • Дальше идёт время, когда план последний раз обновляли, например, 3 Oct, 14:20.
  • В конце строки стоит название диалога, в котором этот план появился.
  • Под этими строками идёт тонкая полоска прогресса шириной во всю строку: закрашенная часть — это выполненные шаги.
  • Полоса прогресса появляется только когда у плана есть хотя бы один шаг, у плана без шагов её нет.
  • Полоска прогресса доезжает плавно, а не скачком, так что изменение видно как короткое движение.

Как читать статус плана

Статус отвечает на один вопрос: что сейчас происходит с планом.

  • PENDING значит, что план ждёт вашего одобрения: агент закончил ход и стоит, пока вы не ответите в переписке.
  • APPROVED значит, что вы одобрили план, но агент ещё не начал по нему работать.
  • IN PROGRESS значит, что агент сейчас выполняет этот план, и его ход идёт прямо сейчас.
  • DONE значит, что все шаги плана выполнены.
  • CLOSED значит, что план закрылся, но выполнен был не полностью: ход закончился или часть шагов осталась не сделана.
  • REJECTED значит, что вы отклонили план, и агент его не выполнял.
  • Закрытым планом может оказаться и обычное предложение, на которое вы ответили обычным текстом, а не кнопкой: шагов у него нет, и в Active он больше не висит.

Что можно сделать с планом из переписки

Обычное нажатие открывает план целиком, а долгое нажатие вызывает меню действий.

  • Нажатие на строку открывает план на весь экран, где видны и шаги, и текст плана.
  • Долгое нажатие открывает меню из трёх пунктов: Copy, Open thread и Delete.
  • Пункт Copy кладёт план в буфер обмена и показывает уведомление Plan copied.
  • В буфер уходит готовый текст плана: заголовок, шаги в виде чек-листа с галочками и текст плана под ними.
  • Пункт Open thread возвращает вас в диалог, где этот план появился.
  • Пункт Delete убирает план из библиотеки, и об этом будет подробнее ниже.

План из переписки целиком

Открытый план показывает и заголовок, и чек-лист шагов, и текст плана.

  • В шапке написано название плана, а под ним время обновления и название диалога.
  • В шапке есть три кнопки: копировать план, открыть диалог и удалить план.
  • Под шапкой стоит чип статуса и подпись вида 2 of 5 done — сколько шагов выполнено из скольких.
  • Дальше идёт подпись // steps и сам чек-лист шагов.
  • Готовый шаг отмечен галочкой и выделен фиолетовым.
  • Шаг в работе отмечен стрелкой вправо и выделен бирюзовым.
  • Шаг, который ещё не начат, отмечен пустым кружком и выглядит приглушённо.
  • Если текст шага длинный, он переносится на несколько строк и не обрезается.
  • После списка шагов идёт разделитель, а под ним подпись // plan и текст плана, отрисованный как обычный документ с заголовками, списками и кодом.
  • Если текст плана просто повторяет шаги, он не показывается второй раз: чек-листа выше уже достаточно.

Удаление плана из переписки

Удаление плана из библиотеки не трогает саму переписку.

  • После выбора Delete появляется окно с вопросом, удалить ли этот план.
  • В окне показан заголовок плана, чтобы было видно, что именно удаляется.
  • В окне есть две кнопки: Delete удаляет, Cancel ничего не делает.
  • После удаления появляется уведомление Plan deleted или Delete failed, если удалить не получилось.
  • Из переписки этот план не исчезает: удаляется только запись в библиотеке, сам диалог остаётся целым.

Вкладка Files: файлы планов проекта

Эта вкладка показывает файлы, которые агент сохранил в <cwd>/plans.

  • Список показывает только файлы с расширением .md, остальное содержимое папки игнорируется.
  • Строки отсортированы свежими сверху, самый недавно изменённый файл стоит первым.
  • Старые служебные файлы от прежних версий приложения в список не попадают, поэтому в нём остаются только настоящие планы.
  • Нажатие на строку открывает файл целиком с отрисовкой текста как документа.
  • Долгое нажатие открывает меню из двух пунктов: Copy path и Delete.
  • Пункт Copy path кладёт в буфер полный путь к файлу и показывает уведомление Path copied.
  • Пункт Delete удаляет сам файл из папки проекта, а не только строку из списка.
  • В шапке открытого файла написано имя плана без расширения и время изменения файла.
  • В шапке открытого файла есть две кнопки: скопировать текст и удалить файл.
  • Копирование открытого файла кладёт в буфер весь текст файла и показывает уведомление Copied.
  • Удаление файла спрашивает подтверждение и показывает имя файла в окне вопроса.
  • Если файл не удалось прочитать, вместо текста показывается короткое сообщение о неудаче.
  • plans/INDEX.txt во вкладке не показывается: это служебный TSV-индекс, а не план.

Обновление списка

Обе вкладки умеют обновляться по требованию.

  • Потяните список вниз — и он перечитается.
  • Пока обновление идёт, сверху видно вращающийся кружок.
  • Пока список читается в первый раз, вместо него показан кружок и слово Loading.
  • Если проект заведён как удалённый, файлы планов читаются с сервера по SSH, а не с телефона.

Откуда берутся планы

Планы в библиотеке появляются сами, вам ничего сохранять не нужно. Но у двух вкладок разные источники.

  • Планы из вкладки Chat появляются автоматически, когда агент в переписке строит план с шагами.
  • Планы из переписки файлами в проект не пишутся, они лежат в базе приложения, поэтому в папке проекта их не видно.
  • Один план — одна строка в библиотеке, при обновлении плана его строка обновляется, а не добавляется вторая.
  • Планы из вкладки Files появляются, когда Codex или opencode-планировщик пишет <cwd>/plans/<key>.md нативно, либо когда вы сами кладёте туда файл.
  • Codex сохраняет файл после одобрения крупного плана: 3+ шага или 2+ файла/подсистемы. Мелкий фикс файл не создаёт.
  • Файл плана имеет шапку # Название и строку > Status: approved · Updated: <ISO UTC>; статусы — pending, approved, in-progress, done, rejected, closed.
  • pending значит, что план записан и ждёт одобрения; approved — можно выполнять, in-progress — работа идёт, done — проверено, rejected/closed — отклонён или закрыт.
  • plans/INDEX.txt собирается из файлов со строкой > Status: и служит агенту быстрым указателем. Старые файлы без статуса остаются историей и в индекс не попадают.
  • MCP plan_save/read/list — legacy: они пишут только в телефонный y83-ws/plans и не используются для памяти удалённых проектов.
  • Библиотека хранит до 200 планов на проект. Самые старые записи вытесняются, когда лимит превышен.
  • Старые служебные авто-дампы чата (имя по шаблону и шапка > Date:) убираются автоматически при первом открытии экрана для этого проекта, о чём приложение сообщает уведомлением. Обычные планы без > Status: не удаляются.
  • Один раз приложение закрывает старые записи без шагов, чтобы давно решённые планы не висели в фильтре Active вечно.

Технические данные

ПараметрЗначение
Где открываетсяменю треда, секция про ревью и инструменты
Подпись пункта менюChat plans + project plan files
Первая строка шапкиPlans
Вторая строка шапкиназвание проекта и два счётчика
Разделов на экранедва: Chat и Files
Чипы вкладокChat и Files со счётчиками
Фильтры вкладки ChatAll, Active, Done, Rejected
Что попадает в Activeпланы без решения, одобренные и выполняющиеся
Что попадает в Doneвыполненные и закрытые планы
Когда появляется поискпланов больше пяти
Где ищет поискназвание плана, текст плана, название диалога
Статусы планаPENDING, APPROVED, IN PROGRESS, DONE, CLOSED, REJECTED
Цвета статусоввыполненный фиолетовый, отклонённый красный, закрытый серый, остальные бирюзовые
Сортировка планов из перепискипо времени обновления, свежие сверху
Где хранятся планы из перепискилокальная база приложения, по проекту и ходу
Где хранятся планы агента<cwd>/plans/<key>.md в корне проекта
Индекс планов агентаplans/INDEX.txt, только файлы со строкой > Status:
Статусы файлов плановpending, approved, in-progress, done, rejected, closed
Кто пишет файлы плановCodex и opencode-планировщик нативно; MCP plan_* — legacy
Сколько планов хранится на проектдо 200
Какая папка читается на вкладке Filesпапка plans внутри проекта
Какие файлы показываютсятолько файлы .md
Сортировка файловпо времени изменения, свежие сверху
Знак выполненного шагагалочка
Знак шага в работестрелка вправо
Знак не начатого шагапустой кружок
Подпись списка шагов// steps
Подпись текста плана// plan
Уведомление о копировании планаPlan copied
Уведомление о копировании путиPath copied
Уведомление об удалении планаPlan deleted или Delete failed
Уведомление об удалении файлаFile deleted или Delete failed
Подтверждение удаленияесть, показывает заголовок плана или имя файла
Ошибка чтения файла планаFailed to load plan

Что агент умеет

  • Агент может разбить задачу на шаги и показать их планом, и этот план сам сохранится в библиотеке.
  • Агент может по ходу работы отмечать шаги выполненными, и вы видите это по галочкам и полоске прогресса.
  • Агент может задать вопрос с планом и остановиться, пока вы не ответите кнопкой.
  • Агент может начать работу по одобренному плану, и вы увидите это как статус IN PROGRESS.
  • Агент может держать в работе несколько планов сразу, и каждый из них получит свой статус.
  • Агент может сохранить одобренный крупный план файлом в <cwd>/plans/<key>.md, и он появится на вкладке Files.
  • Агент может прочитать plans/INDEX.txt и вернуться к решениям прошлой сессии, не открывая старый диалог.
  • Агент может вернуться к плану из другого диалога, потому что библиотека общая для всего проекта.

Ограничения

  • Удаление плана из библиотеки не удаляет его из переписки: в диалоге карточка плана останется.
  • Удаление файла плана на вкладке Files убирает файл из папки проекта по-настоящему, и вернуть его без нового сохранения нельзя.
  • Планы из переписки и файлы планов хранятся по-разному: вкладка Chat не показывает файлы, а вкладка Files не показывает планы из переписки.
  • Файлы без строки > Status: считаются историей: они видны во Files, но не попадают в plans/INDEX.txt.
  • В библиотеке остаются не все планы проекта: при числе больше двухсот самые старые записи вытесняются.
  • Список не обновляется сам, пока экран открыт: новый план появится только после обновления по требованию или после повторного открытия экрана.
  • Поиск есть только у планов из переписки, на вкладке Files файлы ищутся только глазами.
  • Шаги показываются только у планов, у которых агент их действительно прислал: у плана без шагов полоски прогресса нет.
  • Планы привязаны к проекту, поэтому в другом проекте этой же библиотеки вы их не увидите.
  • Планы из переписки попадают в библиотеку только из тех диалогов, которые вы открытали в приложении: непрочитанные диалоги в библиотеку ещё не сдают свои планы.

Источник: docs/codex/plans.md. Страница собрана из документации проекта при сборке сайта — без пересказа.