domovoy_bot/КРИТИЧЕСКИЕ-ПРАВИЛА.md
Admin 23ee551271 🛡️ feat: Система защиты от случайных рассылок
Техническая защита:
- 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>
2026-04-12 18:57:42 +04:00

85 lines
4.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.

# 🚨 КРИТИЧЕСКИЕ ПРАВИЛА РАБОТЫ
## ПРАВИЛО №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 после инцидента с тестовой рассылкой*