← Вайбкодинг · Курс 30/70 EN FR Курс по OpenCode →

Промптотека

Готовые формулировки. Копируйте, подставляйте своё в <...>. Каждый промпт построен по схеме: контекст → задача → ограничения → формат → запрет.


1. Стартовые

1.1 План без правок

Прочитай <путь/файлы>. Задача: <одно предложение>.
Покажи план из 4–6 шагов, каждый с проверяемым результатом.
Файлы не меняй, код не пиши. Жду подтверждения плана.

1.2 Онбординг в чужой проект

Это проект <название>. Прочитай README, package.json/pyproject.toml и структуру папок.
Ответь: стек, как запустить, как тестировать, 3 самых важных файла, 3 непонятных места.
Файлы не меняй.

1.3 Инструкция проекта

Создай AGENTS.md со стеком, командами запуска/тестов/линта, правилами стиля и
запретами (не править тесты, не менять legacy, не добавлять зависимости без
согласия). Основано на реальном содержимом проекта, без домыслов.

2. Постановка задачи

2.1 Спека из сырой идеи

Идея: <как есть, сумбурно>.
Преврати в спеку: цель, пользователь и сценарий, входы/выходы с примерами,
edge-кейсы (пусто, очень много, неверный тип), ограничения, 4 критерия приёмки
(проверяемые да/нет), что НЕ делаем.
Не пиши код. Максимум 15 строк.

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

Вот спека. Найди 5 мест, где исполнитель будет угадывать: неоднозначные
формулировки, отсутствующие edge-кейсы, непроверяемые критерии.
Только список проблем, без переписывания.

2.3 Декомпозиция

Разбей задачу на шаги по 15–20 минут работы агента. Для каждого: название,
файлы, критерий приёмки, что не трогать. Шагов не больше 6.
Не пиши код.

2.4 Критерий приёмки → /goal

/goal <команда тестов> выходит с кодом 0, <линт> чист,
git diff --name-only показывает только <папка>/, или стоп после <N> ходов

Требования: измеримый признак, доказательство в выводе сессии, границы по файлам, лимит ходов. Снять гол: /goal clear. Статус: /goal без аргументов.

2.5 Проверка критерия на пригодность для /goal

Вот критерий приёмки: <текст>. Проверь его на три вещи: (1) можно ли проверить
командой или кодом возврата, (2) увидит ли доказательство агент в своём выводе,
(3) какие файлы надо явно запретить менять. Если критерий непроверяем —
переформулируй в проверяемый и покажи разницу.

3. Реализация

3.1 Минимальная правка

В <файл>, функция <имя>: <что изменить>.
Требования: <точное поведение, включая границы>.
Только этот файл. Не рефакторить, не менять форматирование, не добавлять
зависимостей. После правки покажи дифф и вывод проверки.

3.2 Новый модуль

Создай <файл> с <функция/класс>, который <поведение>.
Вход: <тип, пример>. Выход: <тип, пример>. Ошибки: <какие и как>.
Стиль как в <соседний файл>. Без новых зависимостей. Добавь 2 теста:
главный сценарий и <граница>.

3.3 Работа по тесту

Тест: <код теста>. Он падает. Реализуй минимальный код, чтобы он прошёл.
Тест не менять. Не добавлять функциональность сверх теста.
Покажи вывод теста после правки.

3.4 Продолжение после паузы

Состояние: сделано <A, B>, коммит <hash>. Осталось <C>.
Задача сейчас: только <C>. Контекст: <файлы>.
Не пересматривай решения по A и B.

4. Проверка и ревью

4.1 Самопроверка перед сдачей

Проверь свою правку по списку и ответь по пунктам:
1) удалены ли проверки/валидация; 2) нет ли тихого catch/except; 3) нет ли
хардкода и магических констант; 4) тронуты ли файлы вне задачи; 5) добавлены ли
зависимости; 6) изменены ли тесты.
Код не меняй, только отчёт.

4.2 Объясни решение

Объясни в 5 строках: почему выбрано это решение, какие альтернативы
рассматривались, какие компромиссы приняты. Код не меняй.

4.3 Проверка критериев приёмки

Вот критерии приёмки: <список>. По каждому: выполнен / не выполнен / не проверял,
и как именно проверить командой. Код не меняй.

5. Отладка

5.1 Факт, потом гипотеза

Ошибка: <симптом>. Стектрейс:
<вставить>
Сначала процитируй 3 строки стектрейса, которые указывают на наш код.
Затем предложи 3 гипотезы. Для каждой — команда проверки.
Правок не делай, пока я не выберу.

5.2 Против угадывания

Ты предлагаешь причину, не проверив. Ответь: какие данные подтверждают это?
Какая команда это подтвердит или опровергнет? Если проверка невозможна — скажи прямо.

5.3 Минимальный кейс

Сократи проблему до минимального воспроизводимого примера: 10–15 строк,
без нашего проекта, только стандартная библиотека. Покажи его и ожидаемое/реальное.

5.4 Тупик

Две попытки не сдвинули проблему. Останавливаемся.
Сформулируй: что точно известно, что проверено, что осталось непроверенным,
какие 2 варианта есть. Правок не делай — я решу, откатывать или продолжать.

5.5 Версия библиотеки

Стек: <библиотека> версии <X> (из package.json). Используй только API этой версии.
Если не уверен, что API существует в этой версии — скажи об этом, а не угадывай.

6. Тесты

6.1 Тест до кода

Напиши тест на поведение: <описание>. Тест должен падать сейчас.
Не реализуй функциональность. Покажи, что он падает, и по какой причине.

6.2 Проверка теста на прочность

Сломай реализацию так, чтобы <поведение> перестало работать. Тесты не правь.
Скажи, какие тесты упали. Если ни один не упал — тесты бесполезны, скажи это прямо.

6.3 Запрет на правку тестов

Тесты — спецификация. Если тест падает, чини реализацию. Менять тест нельзя.
Если считаешь ожидание в тесте неверным — объясни почему и жди моего решения.

6.4 Границы

Добавь тесты на границы для <функция>: пустой вход, один элемент, максимум,
неверный тип, отсутствующее поле. По одному тесту на кейс, названия говорящие.

7. Данные и API

7.1 По реальному ответу

Вот реальный ответ API (сокращён):
<вставить>
Используй только эти поля и эту структуру. Не придумывай поля, которых нет.
Сделай клиент с валидацией и обработкой 4xx/5xx/таймаут/невалидный JSON.

7.2 Секреты

Ключи только через переменные окружения. Добавь .env.example с именами без
значений. Убедись, что .env в .gitignore и не попал в историю git.
Если ключ уже в истории — скажи, что нужен отзыв ключа.

7.3 Валидация на границе

Добавь валидацию входных данных на границе через <zod/pydantic>:
обязательные поля, типы, ограничения. На невалидных данных — 400 с понятным
текстом, без падения. Плюс 3 теста на плохие данные.

8. Деплой и гигиена

8.1 Первый деплой

Подготовь проект к деплою на <Vercel/Netlify>: проверь команду сборки и выходную
папку, перечисли переменные окружения для панели, укажи версию рантайма.
Ничего не выдумывай про настройки — если не уверен, скажи, что проверить руками.

8.2 Чек-лист перед мерджем

Пройди по PR <номер> и ответь по каждому пункту: проверки не ослаблены, тесты
не менялись, нет тихих catch, нет секретов, нет хардкода путей, нет новых
зависимостей без обоснования, нет SQL-конкатенации, нет правок вне задачи.
Формат: пункт — ок / проблема (файл:строка).

8.3 Сообщение коммита / описание PR

Сделай сообщение коммита в формате тип(область): что сделано, до 70 символов.
И описание PR: что меняется, зачем, как проверить (шаги), что не входит,
какие компромиссы приняты. По диффу, без домыслов.

9. Перезапуск сессии

9.1 Чистый старт

Новая сессия. Контекст: <проект, стек, 3 важных файла>.
Проблема: <симптом>. Проверено: <факты>. Не проверено: <...>.
Стектрейс: <...>.
Предложи 3 гипотезы с командой проверки. Правок не делай.

9.2 Передача состояния

Итог сессии: сделано <...>, коммиты <hash...>, осталось <...>.
Открытые вопросы: <...>. Известные ограничения: <...>.
Сохрани это в notes/session-<дата>.md, чтобы продолжить завтра.

10. Антипаттерны: как не надо

Не пишите Почему не работает Замените на
«починить ошибку» даёт карт-бланш на угадывание «процитируй стектрейс, предложи 3 гипотезы»
«сделай красиво» нет критерия «белый фон, один акцент, system-ui, максимум 2 цвета»
«оптимизируй» нет метрики «сократи до <200 мс, замер через <команда>»
«добавь обработку ошибок» тихий except «на 4xx текст сервера, на 5xx "попробуйте позже", тест на каждый»
«отрефактори» переписан весь проект «вынеси X из Y в Z, поведение не меняется, тесты зелёные»
«сделай как в <сервис>» копия без ваших требований перечислить 3 конкретных элемента
«улучши код» неограниченный объём одна конкретная проблема + критерий