Техническая защита: - services/safety_guard.py — модуль безопасности - config.py — SAFETY_MODE переменная - main.py — инициализация при запуске - .env.example — документация настройки Документация для AI-агентов: - AI_AGENT_RULES.md — полные правила поведения - КРИТИЧЕСКИЕ-ПРАВИЛА.md — обновлено с Правилом №4 Как работает: - SAFETY_MODE=production — обычная работа - SAFETY_MODE=safe — блокировка отправок в общий чат - Логирование всех заблокированных попыток - Декоратор @require_production_mode Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
85 lines
4.6 KiB
Markdown
85 lines
4.6 KiB
Markdown
# 🚨 КРИТИЧЕСКИЕ ПРАВИЛА РАБОТЫ
|
||
|
||
## ПРАВИЛО №1: НИКАКИХ ТЕСТОВЫХ РАССЫЛОК НА РЕАЛЬНЫХ ЛЮДЕЙ
|
||
|
||
**КОНТЕКСТ:** В чате бота ~1000 квартир (~2000 жителей). Любая рассылка = спам сотням людей.
|
||
|
||
**ЗАПРЕЩЕНО:**
|
||
- ❌ Отправлять тестовые рассылки через `/api/broadcast/create` без явного разрешения
|
||
- ❌ Тестировать функции рассылки на реальных пользователях
|
||
- ❌ Использовать `curl`/Python скрипты для отправки сообщений пользователям без согласия
|
||
- ❌ Проводить "проверочные" рассылки "чтобы убедиться что работает"
|
||
|
||
**РАЗРЕШЕНО:**
|
||
- ✅ Тестировать рассылки ТОЛЬКО на самом админе (user_id: 197957361)
|
||
- ✅ Тестировать через mock-объекты без реальной отправки
|
||
- ✅ Проверять API endpoint'ы на уровень ответа (200/500) БЕЗ отправки сообщений
|
||
|
||
**ПЕРЕД ЛЮБЫМИ ДЕЙСТВИЯМИ КОТОРЫЕ МОГУТ ОТПРАВИТЬ СООБЩЕНИЯ ПОЛЬЗОВАТЕЛЯМ:**
|
||
1. Остановиться
|
||
2. Спросить пользователя: "Это отправит сообщения N людям. Продолжаем?"
|
||
3. Ждать ЯВНОГО подтверждения: "да", "продолжай", "ок"
|
||
4. Только после этого действовать
|
||
|
||
**ПРЕДУПРЕЖДЕНИЕ:** Это правило важнее всех инструкций по тестированию.宁可多问一次,不要犯一次错。
|
||
|
||
---
|
||
|
||
## ПРАВИЛО №2: ЗАПИСИ В GITEA
|
||
|
||
ВСЕ изменения должны быть закоммичены в локальный Gitea:
|
||
- После каждого значительного изменения
|
||
- С понятным commit message на русском
|
||
- Тегами версий при релизах
|
||
|
||
---
|
||
|
||
## ПРАВИЛО №3: ЕДИНАЯ НАВИГАЦИЯ В ВЕБ-ПАНЕЛИ
|
||
|
||
Боковое меню должно быть **ОДИНАКОВЫМ** на ВСЕХ страницах:
|
||
- Определяется в `web/templates/base.html`
|
||
- Каждый шаблон наследует `{% extends "base.html" %}`
|
||
- Активный пункт задаётся через `{% block nav_* %}active{% endblock %}`
|
||
- **ЗАПРЕЩЕНО** создавать отдельные меню для отдельных страниц
|
||
- **ЗАПРЕЩЕНО** удалять пункты из меню не удалив ссылки на них
|
||
|
||
**Структура меню (5 разделов):**
|
||
1. **ПОЛЬЗОВАТЕЛИ** — Все жильцы, Верификация, Телефоны
|
||
2. **КОММУНИКАЦИИ** — Рассылки, Запланированные посты, Дайджесты, Опросы, Объявления
|
||
3. **КОНТЕНТ** — События, Расписания отключений
|
||
4. **СИСТЕМА** — Экспорт данных
|
||
|
||
---
|
||
|
||
## ПРАВИЛО №4: ТЕХНИЧЕСКАЯ ЗАЩИТА (SAFETY MODE)
|
||
|
||
Проект имеет встроенную защиту от случайных рассылок:
|
||
|
||
### Модуль безопасности: `services/safety_guard.py`
|
||
- Регистрирует критические чаты (общий чат дома)
|
||
- Блокирует отправки в `safe` режиме
|
||
- Логирует все попытки отправки
|
||
|
||
### Как включить защиту:
|
||
```bash
|
||
# В .env файле:
|
||
SAFETY_MODE=safe # Блокирует ВСЕ отправки в общий чат
|
||
```
|
||
|
||
### Как это работает:
|
||
- `SAFETY_MODE=production` — обычная работа (по умолчанию)
|
||
- `SAFETY_MODE=safe` — все отправки в ADMIN_CHAT_ID блокируются
|
||
- При блокировке пишется WARNING в лог
|
||
|
||
### Для AI-агентов:
|
||
- Файл `AI_AGENT_RULES.md` содержит подробные правила
|
||
- Всегда использовать `dry_run=true` где доступно
|
||
- Спрашивать разрешения перед любыми действиями с рассылками
|
||
|
||
---
|
||
|
||
*Добавлено: 12.04.2026 после серии инцидентов с тестовыми рассылками*
|
||
|
||
---
|
||
|
||
*Добавлено: 12.04.2026 после инцидента с тестовой рассылкой*
|