Это два разных хранилища: планы чата лежат в 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 со счётчиками |
| Фильтры вкладки Chat | All, 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 файлы ищутся только глазами.
- Шаги показываются только у планов, у которых агент их действительно прислал: у плана без шагов полоски прогресса нет.
- Планы привязаны к проекту, поэтому в другом проекте этой же библиотеки вы их не увидите.
- Планы из переписки попадают в библиотеку только из тех диалогов, которые вы открытали в приложении: непрочитанные диалоги в библиотеку ещё не сдают свои планы.