Rule Engine

Rule Engine: явные правила должны быть сильнее вероятностного score

AntiPF разделяет declarative hard rules и вычисляемый risk. Если владелец явно разрешил crawler/URL или задал security block, такой policy имеет понятный authority и не должен случайно исчезать из-за изменения weights.

Manual hard rulesAuthority orderImport / exportSimulator
Effective policy
System policyseo_safe
ACTIVE
Crawler ruleverified Googlebot
ALLOW
Manual rule/private-path/
BLOCK
Risk score74 / 100
SECONDARY
SYSTEM → CRAWLER → MANUAL → SECURITY → RISK/ADAPTIVE.
Policy engine

Декларативная policy и probabilistic risk решают разные задачи

Rule Engine нужен для случаев, где решение известно заранее: конкретный URL, crawler, host/network context, исключение или hard security policy. Risk Engine остаётся вторичным слоем для неопределённых ситуаций.

AUTHORITY

Фиксированный порядок

Hard decisions не зависят от случайного изменения score weights.

SIMULATE

Проверка до применения

Simulator позволяет сравнить actual lookup и manual fixtures.

DRIFT

Контроль semantics

Effective Policy hash должен отражать смысл, а не порядок ключей JSON.

Архитектура

Policy компилируется, проверяется и трассируется

Массовый import или изменение правил должны проходить validation; actual decision сохраняет, какой уровень authority победил.

01
Define

Создать manual/security/system rule.

02
Validate

Проверить scope, action и conflicts.

03
Compile

Сформировать effective policy/compiled representation.

04
Evaluate

Сначала hard authority, затем secondary Risk.

05
Trace

Записать matched rule и override reason.

06
Audit

Изменения admin policy попадают в audit/backup path.

Semantic hash. Policy hash должен меняться из-за изменения поведения, а не из-за нерелевантного JSON ordering.
Что умеет модуль

Что даёт Rule Engine

Модуль превращает исключения и hard policy в явную управляемую систему.

01

Manual rules

Явные ALLOW/BLOCK/Challenge и другие поддерживаемые actions для известных условий.

Подробнее →
02

Crawler authority

Подтверждённый crawler decision живёт выше обычного score.

Подробнее →
03

Risk fallback

Если hard rule не совпал, решение может использовать Risk/Adaptive evidence.

Подробнее →
04

Simulator

Actual request и manual fixtures не смешиваются; synthetic output маркируется SIMULATED.

Подробнее →
05

Import / export

Массовое управление rules с validation и безопасным форматом.

Подробнее →
06

Effective Policy

Compliance/drift/override помогают видеть фактическую semantics установки.

Подробнее →
Readiness & evidence

Configured и effective — не одно и то же

После update/repair важно доказать, что active policy, overrides и semantic hash сохранились.

COMPLIANT
Policy соответствует профилюНет неожиданного drift.
OVERRIDE
Есть явное изменениеДопустимо, если владелец сделал его осознанно.
DRIFT
Semantics изменились неожиданноНужна диагностика source/change.
SIMULATED
Тестовый результатНе является фактическим visitor decision.
Практическое применение

Где Rule Engine нужен чаще всего

Он полезен для известных исключений, системных URL и бизнес-правил, которые нельзя доверять статистической эвристике.

OPS

Исключить служебный endpoint

Telemetry/API/system paths не должны попадать в Challenge/URL Map как обычные страницы.

Связанный сценарий →
TEST

Проверить policy перед включением

Simulator показывает predicted outcome на fixture без воздействия на visitor.

Связанный сценарий →
Ограничения

Чем больше hard rules, тем важнее управлять конфликтами и provenance

Rule Engine не должен превращаться в бесконтрольный список исключений. Для каждого override важны причина, scope и понимание того, какой higher-level policy он изменяет.

FAQ

Вопросы про Rule Engine

Что сильнее: manual rule или Risk score?

Manual/security hard rules имеют более высокий authority, чем Risk/Adaptive score.

Можно ли тестировать правило без применения?

Да, simulator предназначен для actual/manual fixtures и должен явно обозначать synthetic results.

Что такое policy drift?

Это изменение effective semantics относительно ожидаемого профиля. Оно может быть осознанным override или неожиданной регрессией после update.

Почему важен semantic hash?

Чтобы одинаковая policy не считалась изменённой только из-за другого порядка сериализации полей.

Следующий шаг

Соберём policy без конфликтующих исключений

Можно начать с текущих правил сайта, разложить их по authority и проверить в simulator до изменения production traffic.