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

Заготовки промптов

Библиотека заготовок: заранее написанные тексты задач с пустыми полями. Вы заполняете поля и отправляете готовый текст агенту одной кнопкой, вместо того чтобы каждый раз диктовать структуру задачи словами. Открывается из хаба инструментов и прямо из меню чата.

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

Возможности

  • Список заготовок с поиском: ищет по названию, тегам и самому тексту.
  • Фильтр по тегам чипами, первым идёт «все».
  • У каждой строки видно название и первую непустую строку текста, причём вместо подстановок в ней многоточие.
  • Счётчик использований показывается справа, но только у уже использованных заготовок.
  • Звёздочка у закреплённых заготовок, закреплённые всегда выше остальных.
  • В шапке — счётчик: сколько заготовок и сколько из них встроенных.
  • Кнопка «+» открывает пустую заготовку с уже готовым скелетом текста и тремя полями: цель (обязательное), контекст, критерий готовности (обязательное).
  • Меню «⋮»: обновить из файла, скопировать всю библиотеку в буфер как JSON, заменить библиотеку документом из буфера.
  • Кнопка «Встроенные» возвращает встроенные заготовки, которых нет в файле.
  • Форма работает в двух режимах и переключается одной кнопкой в шапке: «Заполнить» и «Изменить».
  • В режиме заполнения — поля заготовки плюс предпросмотр готового текста с числом символов в заголовке секции.
  • Подстановки {{project}}, {{thread}}, {{model}} показываются отдельными полями, но только если они реально упомянуты в тексте заготовки; из чата они приходят уже заполненными, и их можно поправить руками.
  • Пока не заполнено хоть одно обязательное поле, главная кнопка неактивна и под полями красной строкой перечислено, что дописать.
  • В режиме правки: название, теги через запятую, тело текста, редакторы полей с ключом, подписью, значением по умолчанию и переключателями «обязательное» и «многострочное», добавление и удаление полей.
  • Кнопки «Создать» / «Сохранить», «Дублировать», «Удалить» с подтверждением.
  • Кнопка удаления прямо пишет, что заготовку можно вернуть встроенной кнопкой.
  • Дубликат получает название с пометкой «(копия)», счётчик обнуляется, закрепление снимается.
  • Перед сохранением показывается карточка «Не сохранилось» с первыми шестью проблемами — ждать ошибки от сервера не нужно.
  • Импорт из буфера заменяет библиотеку целиком, а не дополняет её.
  • Главная кнопка зависит от того, откуда открыт экран: из чата — «Вставить в чат», из хаба — «Скопировать». Если вставка не сработала, текст всё равно попадает в буфер, а под кнопкой появляется об этом сообщение.
  • Если фильтры ничего не нашли, в списке будет подсказка снять фильтры или вернуть встроенные заготовки.
  • Счётчик использований растёт сразу в списке, а на сервер уходит фоном.
  • В файле рядом лежит резервная копия библиотеки — она переписывается перед каждой записью.

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

ПараметрЗначение
Где лежитфайл ~/.y83-ws/prompts.json на сервере
Резервная копиятот же файл с расширением .bak, один уровень
Версия документа1
Заготовок максимум200
Полей в заготовке максимум12
Длина тела максимум8000 байт
Длина названия максимум80 символов
Идентификаторлатиница, цифры, дефис, подчёркивание
Ключ полялатиница и цифры, начинается с буквы
Тегидо 8 штук, приводятся в нижний регистр, повторы убираются
Значение по умолчаниюобрезается до 200 символов
Иконкатолько латинские буквы, иначе стирается
Зарезервированные подстановки{{project}}, {{thread}}, {{model}}
Встроенных заготовок13
Длина предпросмотра в списке96 символов
Запросов к серверу4

Более длинные границы: идентификатор до 48 символов, ключ поля до 32, один тег до 24 символов.

Четыре запроса: прочитать документ, записать документ, вернуть встроенные заготовки, отметить использование.

Что во встроенных заготовках

Тринадцать заготовок приезжают вместе с сервером, каждая под одну частую задачу и с проверяемым критерием готовности.

ЗаготовкаПод что
Багфикс с воспроизведениемсимптом, где, приёмка
UI-правка по y83-uxчто не так, экран и файл, приёмка
Собрать APK и поставитьчто менялось
Ревью измененийчто ревьюить, базовая ветка
Разведка подсистемычто разведать, без правок
План крупной задачизадача, как поймём что готово
Разбить монолит-файлфайл, целевой размер
Разбор «зависло / пропали шаги»что видно в приложении
Релиз на продчто вошло, версия
Фича по существующему образцучто сделать, образец в коде
Починить падающую сборку или тесттекст ошибки, команда проверки
Объяснить незнакомый кодчто объяснить, насколько глубоко
Исследование темы с источникамитема, зачем это нам

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

Их можно править и удалять как обычные: кнопка «Встроенные» не затирает правки, а возвращает только те, которых в файле не хватает.

Подстановки и пустые строки

Плейсхолдер в тексте записывается как {{ключ}}, ключ — латиница, цифры и подчёркивание. Если значение поля не заполнено, берётся значение по умолчанию; если и его нет, подстановка считается пустой.

Рендер убирает из результата строки, в которых не осталось ничего, кроме подписи с двоеточием. Например, строка «Контекст: {{where}}» при незаполненном поле исчезает целиком, и в сообщение не попадает хвост с висящим двоеточием. Строка, где вокруг подстановки есть свой текст, остаётся: «Цель: собрать APK {{notes}}» — это не дыра.

Подряд идущие пустые строки тоже не дублируются, а лишние пробелы и переводы строк в конце текста срезаются.

Проверки на двух сторонах

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

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

Мелкие огрехи сервер не считает ошибкой, а молча чинит: пустую иконку стирает, теги приводит к нижнему регистру, длинное значение по умолчанию обрезает, идентификатор и ключи в нижний регистр, переносы строк приводит к unix-виду.

Почему заготовок нет в самом приложении

Вся библиотека лежит в одном файле на сервере, и этим же файлом пользуются инструменты агента. Второй копии нет намеренно: если бы экран держал свою версию, правки из чата и правки агента разъезжались бы, и пришлось бы разрешать конфликты. Вместо этого при недоступном сервере экран показывает текст ошибки и кнопку «Обновить».

Что агент умеет с заготовками

  • prompt_list — список заготовок с идентификатором, названием, тегами, объявленными полями и счётчиком, с фильтрами по подстроке и по тегу.
  • prompt_get — подставить значения в текст заготовки и вернуть готовый текст и список незаполненных обязательных полей.
  • prompt_save — создать или изменить заготовку, правила те же, что на экране; правки встроенных разрешены, счётчик и признак встроенной при этом не сбрасываются.

Чего агент не умеет: вставить текст в поле ввода вашего чата. Он получает готовый текст сам и может отправить его в свой ход, а кнопка «Вставить в чат» остаётся ручным действием.

Чего нет на экране: закрепления, ручного порядка и иконки. Эти три поля заготовка хранит, и агент может их задать через prompt_save, но вручную из приложения поставить их нельзя — ни закрепить заготовку, ни поднять её выше другой. Сортировка в списке: сначала закреплённые, дальше по заданному порядку, при равенстве по названию; заготовки без порядка уходят в конец.

Ограничения

  • Экран бесполезен без сервера: локальной копии библиотеки нет, будет только текст ошибки и кнопка «Обновить».
  • Импорт заменяет библиотеку целиком. Если в буфере документ из трёх заготовок, после импорта не останется ничего кроме них.
  • Кнопка «Встроенные» возвращает только встроенные заготовки. Свою удалённую заготовку вернуть можно лишь импортом из буфера или из резервной копии файла, а кнопка удаления обещает возврат всем подряд — на деле это верно только для встроенных.
  • Подстановки {{project}}, {{thread}}, {{model}} заполняются только при открытии из чата. Из хаба они пустые и останутся пустыми, если не вписать руками.
  • Счётчик использований может не сохраниться, если связь с сервером пропала сразу после вставки: в списке он уже вырос, в файле — нет.
  • Ключи полей и идентификаторы пишутся только латиницей. У русского названия без латинских букв идентификатор не получится — сохранится как prompt-N.
  • Правила проверки существуют в двух местах и правятся вручную. Расхождение проявится только формулировкой сообщения, а не сутью проверки.

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

Заготовки промптов Вернуться к справочнику