5.6 KiB
5.6 KiB
Инструкции для AI-агента
Старт сессии
Сначала проверь CONTINUE.md в корне проекта. Если файл есть — начни с недоделок из него, затем бери новую задачу пользователя.
Общий принцип
Не MVP, а production. Каждая задача выполняется полностью, как для enterprise-продукта. Никаких заглушек, TODO и «сделаем потом».
1. Завершённость задач
- Перед завершением: проверь, что все части задачи сделаны. Чеклист обязателен.
- Если задача «добавить X» — значит: код, типы, обработка ошибок, edge cases.
- Контекстное окно ограничено — всё за один проход нереально. Обязательно документируй недоделки (см. раздел 7).
- После правок — пройдись по связанным файлам: импорты, экспорты, зависимости.
2. Качество кода
- TypeScript: строгая типизация. Не
any. Явные типы для параметров и возвращаемых значений. - Стиль: следуй существующему коду в проекте. Используй Prettier/ESLint.
- Именование: чёткие, понятные имена.
handleSubmit, а неdoStuff. - Структура: логика в отдельных модулях, UI — в компонентах. Избегай «god functions».
3. Обработка ошибок
- Каждый API route: try/catch, понятные сообщения об ошибках.
- Внешние сервисы: таймауты, retry, fallback где уместно.
- Пользователь должен видеть понятное сообщение, не сырой stack trace.
4. Безопасность
- Входные данные: валидация (Zod и т.п.), никогда не доверять клиенту.
- Секреты: только переменные окружения, не в коде.
- SQL/запросы: параметризованные запросы, без конкатенации строк.
5. Производительность
- Компоненты:
useMemo,useCallbackгде нужно. - API: не тянуть лишние данные, пагинация для списков.
- БД: индексы для частых запросов, N+1 избегать.
6. Чеклист перед завершением
- Все новые файлы созданы и подключены
- Импорты и экспорты корректны
- Типы указаны, ошибок TypeScript нет
- Обработка ошибок добавлена
- Нет
console.log,TODO, заглушек - Проверены связанные компоненты/роуты
- Нет поломанного существующего функционала
7. Файл недоделок (CONTINUE.md)
Когда контекст заканчивается или задача не завершена — записывай в CONTINUE.md в корне проекта. Следующая генерация читает его первой и продолжает с этого места.
Формат файла
# Недоделки — начать отсюда
## Задача (исходный запрос)
[кратко что хотел пользователь]
## Сделано
- [список файлов и изменений]
- [что уже работает]
## Осталось сделать (в порядке приоритета)
1. [конкретное действие] — файл `src/path/file.ts`, строка ~X
2. [следующее действие] — файл `path/to/other.ts`
3. [ ] Добавить обработку ошибок в route X
4. [ ] Проверить импорты в компоненте Y
## Контекст для продолжения
- Изменённые файлы: `file1.ts`, `file2.tsx`
- Зависимости: компонент A использует B из `lib/B.ts`
Правила ведения
- Перед завершением сессии: если что-то не доделано — обнови CONTINUE.md. Не полагайся на память.
- В начале новой сессии: если есть CONTINUE.md — прочитай его и начни с «Осталось сделать». Не начинай задачу с нуля.
- Каждый пункт — конкретный, с путём к файлу. Не «доделать», а «добавить try/catch в
api/chat/route.ts». - После полного завершения — очисти или удали CONTINUE.md, чтобы не путать следующие задачи.
8. Запреты
- Не оставлять недоделанную реализацию без записи в CONTINUE.md
- Не использовать
anyбез крайней необходимости - Не коммитить закомментированный код
- Не забывать про loading и error states в UI
- Не игнорировать accessibility (a11y) для интерактивных элементов