From d389676f50b4338436ce173f1240bf60ecfdb998 Mon Sep 17 00:00:00 2001 From: home Date: Fri, 20 Feb 2026 14:56:16 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20AGENTS.MD:=20=D0=B8=D0=BD=D1=81=D1=82=D1=80=D1=83?= =?UTF-8?q?=D0=BA=D1=86=D0=B8=D0=B8=20=D0=B4=D0=BB=D1=8F=20AI-=D0=B0=D0=B3?= =?UTF-8?q?=D0=B5=D0=BD=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Cursor --- AGENTS.MD | 111 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 AGENTS.MD diff --git a/AGENTS.MD b/AGENTS.MD new file mode 100644 index 0000000..faf7b1b --- /dev/null +++ b/AGENTS.MD @@ -0,0 +1,111 @@ +# Инструкции для 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`** в корне проекта. Следующая генерация читает его первой и продолжает с этого места. + +### Формат файла + +```markdown +# Недоделки — начать отсюда + +## Задача (исходный запрос) +[кратко что хотел пользователь] + +## Сделано +- [список файлов и изменений] +- [что уже работает] + +## Осталось сделать (в порядке приоритета) +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) для интерактивных элементов