Files
gooseek/AGENTS.MD

112 lines
5.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Инструкции для 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) для интерактивных элементов