76 lines
4.7 KiB
Plaintext
76 lines
4.7 KiB
Plaintext
---
|
||
name: project-rule
|
||
description: Общее описание всех ролей и правил проекта
|
||
---
|
||
|
||
# Правила проекта Telegram Helper Bot
|
||
|
||
Этот файл объединяет все правила и паттерны разработки проекта. Для получения подробной информации по каждому разделу см. соответствующие файлы в `.cursor/rules/`.
|
||
|
||
## 📋 Список правил и шаблонов
|
||
|
||
### 1. Архитектура проекта
|
||
**Файл:** `.cursor/rules/architecture.md`
|
||
**Описание:** Архитектурные паттерны и структура проекта Telegram бота на aiogram 3.10.0
|
||
**Применение:** `alwaysApply: true` - применяется автоматически
|
||
|
||
### 2. Стиль кода
|
||
**Файл:** `.cursor/rules/code-style.md`
|
||
**Описание:** Стиль кода, соглашения по именованию и форматированию
|
||
**Применение:** `alwaysApply: true` - применяется автоматически
|
||
|
||
### 3. Паттерны работы с БД
|
||
**Файл:** `.cursor/rules/database-patterns.md`
|
||
**Описание:** Паттерны работы с базой данных, репозитории и модели
|
||
**Применение:** Применяется к файлам `database/**/*.py` и `**/repositories/*.py`
|
||
|
||
### 4. Зависимости и утилиты
|
||
**Файл:** `.cursor/rules/dependencies-and-utils.md`
|
||
**Описание:** Работа с зависимостями, утилитами, метриками и внешними сервисами
|
||
**Применение:** Применяется к файлам `helper_bot/utils/**/*.py` и `helper_bot/config/**/*.py`
|
||
|
||
### 5. Обработка ошибок
|
||
**Файл:** `.cursor/rules/error-handling.md`
|
||
**Описание:** Обработка ошибок, исключения и логирование
|
||
**Применение:** Опционально (не всегда применяется)
|
||
|
||
### 6. Паттерны Handlers
|
||
**Файл:** `.cursor/rules/handlers-patterns.md`
|
||
**Описание:** Паттерны для создания handlers, services и обработки событий aiogram
|
||
**Применение:** Применяется к файлам `helper_bot/handlers/**/*.py`
|
||
|
||
### 7. Паттерны Middleware
|
||
**Файл:** `.cursor/rules/middleware-patterns.md`
|
||
**Описание:** Паттерны создания и использования middleware в aiogram
|
||
**Применение:** Применяется к файлам `helper_bot/middlewares/**/*.py`
|
||
|
||
### 8. Паттерны тестирования
|
||
**Файл:** `.cursor/rules/testing.md`
|
||
**Описание:** Паттерны тестирования, структура тестов и использование pytest
|
||
**Применение:** Применяется к файлам `tests/**/*.py` и `test_*.py`
|
||
|
||
### 9. Шаблон Release Notes
|
||
**Файл:** `.cursor/rules/release-notes-template.md`
|
||
**Описание:** Инструкция по оформлению Release Notes
|
||
**Применение:** Используется при создании файлов Release Notes
|
||
|
||
## 🎯 Ключевые принципы проекта
|
||
|
||
1. **Архитектура:** Repository Pattern → Service Layer → Handlers
|
||
2. **Асинхронность:** Все операции с БД и API асинхронные
|
||
3. **Типизация:** Type hints везде, где возможно
|
||
4. **Логирование:** Всегда через `logs.custom_logger.logger`
|
||
5. **Метрики:** Декораторы `@track_time`, `@track_errors`, `@db_query_time`
|
||
6. **Версия Python:** Python 3.11.9 во всех окружениях
|
||
|
||
## 📚 Как использовать
|
||
|
||
При работе над проектом агент должен:
|
||
- Следовать архитектурным паттернам из `architecture.md`
|
||
- Применять стиль кода из `code-style.md`
|
||
- Использовать соответствующие паттерны в зависимости от контекста (handlers, middleware, database, testing)
|
||
- Обрабатывать ошибки согласно `error-handling.md`
|
||
- При создании Release Notes следовать `release-notes-template.md`
|
||
|
||
Все правила автоматически применяются в зависимости от контекста редактируемых файлов благодаря настройкам `alwaysApply` и `globs` в frontmatter каждого файла.
|