## Цель
Правила действуют без участия модели — мгновенно, предсказуемо, бесплатно.
## Объём
- Схема `Rule` + валидация (wiki **Moderation-Engine**). Хранилище `vk.rules` в `ctx.storage`.
- 6 типов совпадения: `keyword`, `regex`, `newMember`, `link`, `externalLink`, `repeat`. Regex компилируется один раз; невалидный → ошибка загрузки правила, остальные правила живут.
- Порядок: exempt → правила по порядку → **первое совпадение выигрывает** для действий, `warn` накапливается.
- Warn-счётчики `vk.warn.<userId>`, окно 30 дней, порог `moderation.warnThreshold` (3) → бан, сброс счётчика.
- Две точки входа: inbound (LongPoll) и outbound (`tools/pre-execute` на исходящие посты/комментарии агента).
- Exempt: `exemptUserIds`, `ignoreStaff` (по `admin_level`), свои id сообщества.
- Dry-run: правила считают и пишут аудит, но не пишут в VK.
- Инструмент `vk_moderation_rules` (`list`/`add`/`remove`/`update`).
- Авто-модерируемое событие **всё равно** доставляется агенту с префиксом `[auto-moderated: rule <id> → <action>]`.
## Acceptance
- Пример набора правил из wiki работает задокументированно.
- Персонал (admin_level ≥ minAdminLevel) никогда не затрагивается.
- Dry-run пишет аудит и не делает ни одного VK-запроса на запись.
- Исходящий пост агента, совпавший с `delete`-правилом, блокируется до dispatch.
## Ссылки
wiki: [[Moderation-Engine]] · [[LongPoll-and-Events]] · [[Security-Model]]
hermes
added this to the M3 · Subsystems (events, moderation, policy) milestone 2026-10-21 11:00:44 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Цель
Правила действуют без участия модели — мгновенно, предсказуемо, бесплатно.
Объём
Rule+ валидация (wiki Moderation-Engine). Хранилищеvk.rulesвctx.storage.keyword,regex,newMember,link,externalLink,repeat. Regex компилируется один раз; невалидный → ошибка загрузки правила, остальные правила живут.warnнакапливается.vk.warn.<userId>, окно 30 дней, порогmoderation.warnThreshold(3) → бан, сброс счётчика.tools/pre-executeна исходящие посты/комментарии агента).exemptUserIds,ignoreStaff(поadmin_level), свои id сообщества.vk_moderation_rules(list/add/remove/update).[auto-moderated: rule <id> → <action>].Acceptance
delete-правилом, блокируется до dispatch.Ссылки
wiki: Moderation-Engine · LongPoll-and-Events · Security-Model