Код, баги, день с агентом и старт проекта: какие доки заложить сразу.
ПЛОХО → ХОРОШО
ПЛОХО
Почини баг
ХОРОШО
В файле [путь] функция [имя] при [вход] возвращает [факт]. Ожидаю [ожидание]. Стек: [Next.js 16 / Prisma]. Сначала гипотеза в 3 пунктах, потом минимальный патч, потом команда проверки.
Без файла, факта и команды проверки агент перепишет полсервиса.
Было: Дифф на 40 файлов, тесты красные, непонятно что чинили. Стало: Один файл, один тест, команда `npx tsx scripts/check.ts` зелёная.
Ты — senior-разработчик. Объясни код человеку, который знает [язык], но не знает этот репозиторий.
Контекст сервиса: [что делает]
Файл: [путь]
Нужно:
1) что делает функция за 5 строк
2) побочные эффекты и зависимости
3) риски (гонки, N+1, утечки)
4) как проверить локально одной командой
Код:
[вставь код]
Запрещено: общие фразы вроде «это обрабатывает данные».
Без файла, запрета и команды проверки получите пересказ, а не карту кода.
Разбери баг. Не предлагай переписать модуль.
Стек: [Next.js / Prisma / Node]
Симптом: [что видит пользователь]
Ожидание: [что должно быть]
Лог / ошибка:
[вставь]
Файл, который подозреваю: [путь]
Ответ:
1) 3 гипотезы, от самой вероятной
2) как подтвердить каждую за 2 минуты
3) минимальный патч в одном файле
4) команда проверки
Без симптома и ожидания агент «починит» соседний код.
Сделай code review диффа. Тон: инженерный, без яда.
Правила репозитория: [AGENTS.md / lint]
Дифф:
[вставь]
Формат:
- Блокер (сломает прод / данные / секреты)
- Риск (гонка, a11y, перф)
- Нитра (имена, дубли) — не больше 5
- Что уже хорошо
Не предлагай рефакторинг «заодно». Не хвали абстрактно.
Без разделения блокер/нитра ревью превращается в вкусовщину.
Спроектируй один HTTP-эндпоинт, не весь API.
Ресурс: [название]
Действие: [создать / читать / обновить]
Кто вызывает: [роль]
Auth: [сессия / ключ]
Нужно:
- метод и путь
- request JSON с типами
- response 200 и 4 ошибки
- идемпотентность
- как проверить curl-ом
Стек уже выбран: [Next.js Route Handler + Prisma]. Не предлагай другой фреймворк.
«Спроектируй API» без одной ручки раздувается в 20 эндпоинтов.
Даны таблицы: [имена и ключевые поля].
Нужен запрос: [что получить].
СУБД: PostgreSQL.
Сейчас код делает [N запросов в цикле].
Выдай:
1) один SQL (или Prisma-запрос) с JOIN/include
2) какие индексы нужны
3) пример строки результата
4) как убедиться, что запросов не N
Не меняй схему без причины. Если не хватает полей — спроси, не выдумывай.
Без схемы таблиц модель напишет красивый SQL к несуществующим колонкам.
Отфактори файл [путь]. Поведение должно остаться тем же.
Симптомы боли: [дубли / длина / запутанные if]
Разрешено: вынести функцию, переименовать локально, упростить ветки.
Запрещено: новый стек, новые зависимости, «заодно» фичи.
План:
1) что не трогаем
2) шаги патча
3) как проверить тем же сценарием: [сценарий]
Без запрета «заодно» рефакторинг превращается в переписывание продукта.
Напиши сообщение коммита по диффу.
Стиль: [Conventional Commits / как в репо]
Дифф (кратко или git status + ключевые hunks):
[вставь]
Формат:
- type(scope): summary до 72 символов, по-русски или как в репо
- тело: зачем, не что
- breaking: да/нет
Не пиши «мелкие правки» и не перечисляй 20 файлов.
Коммит «update» нельзя откатить глазами через месяц.
Собери docker-compose только для локалки.
Сервисы: [app, postgres, …]
Порты, которые уже заняты на машине: [список]
Env: скопировать из .env.example, секреты не выдумывать.
Нужен:
- docker-compose.yml
- что сделать после up (миграция/seed)
- команда healthcheck
- как остановить и не потерять volume, если не просил
Без портов и healthcheck compose «просто не поднимается» час.
Ошибка компилятора:
[вставь TS2345 / текст]
Файл: [путь]
tsconfig: strict [да/нет]
Объясни человеческим языком, какой тип ожидался и какой пришёл.
Предложи минимальный фикс (не as any).
Если типов не хватает — какой интерфейс добавить, 5–10 строк.
Люди просят «почини типы», и агент раскидывает any по проекту.
Нужно изменить схему Prisma.
Сейчас: [модель]
Нужно: [новое поле / связь]
Данные в таблице уже есть: [да/нет, сколько примерно]
План:
1) изменение schema.prisma
2) migrate или SQL, если есть риск
3) что будет со старыми строками
4) откат
Запрещено: db push --force-reset.
Силовой reset убивает данные. Это правило проекта, его надо проговаривать.
Собери задачу для агента Cursor. Один шаг, не весь продукт.
Цель: [наблюдаемый результат]
Файлы, которые можно трогать: [список]
Файлы, которые нельзя: [список]
Definition of Done: [тест / скрин / URL]
Стек уже выбран: [Next.js 16 + Prisma]. Не предлагай другой.
Формат ответа агенту: план 5 буллетов → патч → как проверить.
«Сделай SaaS» без DoD даёт 30 файлов и ничего, что можно открыть.
Эндпоинт [метод путь] отвечает [N] мс, цель [M] мс.
Что уже знаем:
- запросы к БД: [сколько]
- payload: [размер]
- кэш: [есть/нет]
Не предлагай микросервисы и новый Redis «на всякий случай».
Дай 3 гипотезы, как измерить, и один самый дешёвый фикс.
Оптимизация без замера обычно добавляет кэш, который врёт.
Собери changelog для пользователя, не для гита.
Дифф / список PR:
[вставь]
Аудитория: [клиент продукта / другой разработчик]
Группы: Новое / Исправлено / Сломано (breaking).
Без внутренних имён файлов. Каждый пункт — что изменилось для человека.
Длина: до 12 пунктов.
Приведи ошибки эндпоинта [путь] к одному JSON.
Сейчас: [как падают]
Нужно поле: { code, message, details? }
Коды: [VALIDATION / UNAUTHORIZED / NOT_FOUND / CONFLICT]
Не свети стек и SQL в message.
Выдай таблицу код → HTTP → пример тела.
Разный формат ошибок ломает клиент сильнее, чем 500.
Напиши README для репозитория [название].
Стек: [список]
Обязательные секции:
- что это за 2 предложения
- требования (Node версия)
- .env.example (без секретов)
- команды: install, dev, test, build
- как прогнать одну проверку
Запрещено: бейджи ради бейджей, «built with love».
README без команды запуска — это лендинг репозитория.
Сравни два варианта для задачи [задача].
A: [подход]
B: [подход]
Ограничения: [срок, команда, хостинг]
Критерии: сложность, риск отката, время до первой проверки.
Таблица 5 строк + рекомендация одним абзацем.
Не предлагай третий стек, если A или B уже закрывает DoD.
Сравнение без ограничений всегда заканчивается «зависит».
Проверь список файлов на утечку секретов. Это аудит, не взлом.
Файлы / дифф:
[вставь]
Ищем: ключи, пароли, токены, .env в коммите, секреты в логах.
Формат:
- критично (уже в репо / в клиентском бандле)
- риск (логи, примеры)
- что сделать: gitignore, rotate, пример .env.example
Не пиши эксплойты и не проси реальные ключи.
Аудит секретов — защита своего репозитория, не инструкция к атаке.
Разложи фичу [название] на шаги одного рабочего дня.
Стек уже выбран: [стек]
Нельзя трогать: [модули]
DoD: [как увидим, что готово]
План:
1) утро — каркас
2) день — логика
3) вечер — проверка
Каждый шаг: файлы + команда проверки. Без «фаза 2 на месяц».
План без DoD и запретных файлов разрастается в дорожную карту.
Открой рабочий день. Не пиши код, пока не зафиксируем рамку.
Репозиторий: [путь]
Ветка: [имя]
Вчера остановились на: [факт]
Цель сегодня: [один наблюдаемый результат]
Нельзя трогать: [файлы]
DoD сегодня: [тест / URL / скрин]
Сначала:
1) git status и что опасно коммитить
2) одна миссия на день, не пять
3) первый шаг на 25 минут и команда проверки
Запрещено: «продолжи вчерашнее» без файла и DoD.
День без одной миссии превращается в 12 мелких правок и ноль сдачи.
Закрой день. Код уже в рабочей копии.
Что сделано (факты, не «поработал»): [список]
Что красное: [тесты / билд]
Что сознательно не трогали: [список]
Завтра первый шаг: [файл + команда]
Выдай:
1) 5 строк в DEVLOG.md за сегодня
2) сообщение для утреннего агента (можно вставить как есть)
3) что закоммитить сейчас, а что не commитить
Без отчёта «был продуктивный день».
Закрытие без артефакта завтрашний агент начинает с нуля.
Стартуем репозиторий [название]. Стек уже выбран: [стек].
Не предлагай другой стек и не пиши фичи.
Порядок на первый час:
1) README: что это, как поднять, одна команда проверки
2) .env.example без секретов
3) AGENTS.md: кто пользователь, запреты, ветка деплоя
4) PHILOSOPHY.md или 15 строк «зачем продукт»
5) REFERENCES.md: смотри это / не делай это
6) .gitignore
Выдай оглавление каждого файла (не роман). Первый коммит — каркас, не «hello world лендинг».
Старт с кода без правил даёт агента, который выдумывает продукт заново каждый чат.
Собери AGENTS.md для репозитория [название].
Продукт: [для кого / что делает]
Стек: [список]
Деплой: ветка [main], что нельзя (force-reset БД, пуш секретов)
Как агенту работать: один шаг → проверка → коммит по просьбе
Запреты: [3–7 пунктов]
Куда смотреть: PHILOSOPHY.md, DESIGN.md, REFERENCES.md
Формат: короткие императивы. Без воды «будь полезным». Без копирования чужих секретов и паролей.
AGENTS.md из общих советов агент пропускает. Запреты и ветка деплоя — читает.
Напиши PHILOSOPHY.md на 40–70 строк.
Продукт: [название]
Для кого: [роль]
Что считаем победой: [наблюдаемый результат]
Чего никогда не делаем: [3 антипаттерна]
Как принимаем решения: проще / честнее / проверяемо
Не манифест стартапа. Это файл, который агент читает до кода, чтобы не предложить «ещё одну соцсеть».
Без философии агент оптимизирует удобство себе, не смысл продукта.
Собери REFERENCES.md.
Продукт: [тип]
Смотри (принципы, не пиксели): [2–4 референса с URL или описанием]
Не копировать: [бренды / приёмы]
Не делать: фиолетовый AI-градиент, Inter по умолчанию, «сделай как у X 1:1», сетка из 4 одинаковых карточек как hero
Для каждого «смотри»: какой принцип снимаем (сетка, тон, плотность).
Для каждого «не делай»: почему ломает наш продукт.
Это не мудборд из 40 картинок — 8 строк, которые агент обязан прочитать.
«Вдохновись Dribbble» без запрета копирования даёт чужой бренд.
Список обязательных файлов для агентной разработки [продукт].
Нужна таблица: файл → зачем → что внутри минимум → кто читает (человек / агент / оба).
Минимум: README, AGENTS.md, PHILOSOPHY.md, REFERENCES.md, .env.example, DESIGN.md если есть UI.
Что не класть в день 1: 20-страничный PRD, пустые папки docs/ на будущее.
Пометь, какой файл писать первым, если время только 30 минут.
Стопка пустых docs/ не спасает. Четыре живых файла спасают.
Разложи правила проекта [название].
AGENTS.md: для любого агента (запреты, ветка, как проверять).
.cursor/rules: только то, что срабатывает на путь файлов (UI, Prisma, меню).
Не дублируй одно правило в трёх местах.
Выдай: 5 правил в AGENTS.md, 3 rule-файла с globs, что оставить только в PHILOSOPHY.
Если правило про «не хардкодить меню» — укажи путь header.tsx как glob.
Одинаковый текст в трёх файлах разъедется. Один источник правды — один файл.
Собери утренний статус. Вход:
git status:
[вставь]
Последние коммиты:
[вставь]
Красные тесты если есть:
[вставь]
Выдай: что реально на диске, какой один следующий патч, чего не делать «заодно».
Не выдумывай прогресс, которого нет в git.
Статус «вроде почти готово» без git врёт команде и агенту.
Напиши handoff на 12–18 строк.
Контекст: [продукт]
Сделано: [факты]
Сломано: [как воспроизвести]
Следующий патч: файл, что изменить, как проверить
Секреты: не вставлять. Ссылки на AGENTS.md / issue.
Формат, который можно вставить первым сообщением в новый чат Cursor.
Новый чат без handoff заново исследует репозиторий час.