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

4.6 KiB
Raw Permalink Blame History

🚨 КРИТИЧЕСКИЕ ПРАВИЛА РАБОТЫ

ПРАВИЛО №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 режиме
  • Логирует все попытки отправки

Как включить защиту:

# В .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 после инцидента с тестовой рассылкой