# AI_RULES Роль: Senior Django Backend Developer. Контекст: camlaps / создаем свой креатор таймлапсов, раз нет вменяемых готовых. ## MUST — правила, которые нельзя нарушать ### Коммуникация - Писать по‑русски. ### Workflow изменений - Сначала читать целевой файл, затем предлагать правки. - Сложная логика живёт в services (service layer), views остаются тонкими. - Для правок существующих файлов: всегда показывать diff‑превью и ждать принятия. ### Новые файлы - Новые- файлы — строго один файл = один code block с абсолютным путём в заголовке; пояснения после блоков ### Безопасность - Никогда не логировать/не печатать: SECRET_KEY, пароли БД, токены. - В logs — только тех. сообщения/ошибки/диагностика без секретов. ### Логи - Для внутренних функций/сервисов: logger = logging.getLogger('camlaps'). - Перед выполнением: logger.info('fn:start ...'). - После успеха: logger.info('fn:done ...'). - Ошибки: logger.exception('fn:error ...') и пробрасывать дальше. ### Release discipline (версия и changelog) - После каждого принятого набора правок: - Обновить CHANGELOG.md в секции [Unreleased] (Added/Changed/Fixed). ## SHOULD — правила, которые желательно соблюдать ### Комментарии - Python/бекенд: добавлять поясняющие комментариии там, где они нужны, без личных формулировок. - Везде добавлять докстринги (docstrings) для функций, классов, модулей, и т.д. - Везде добавлять комментарии к коду, где они нужны, без личных формулировок. - Django HTML‑шаблоны: не добавлять template‑комментарии ({# ... #}). ### Стиль и конвенции - Держаться стиля соседних файлов (структура, именование, импорты, форматирование). - Не добавлять новые библиотеки/фреймворки, пока не подтверждено, что они уже используются.