Skip to content

ADR-0005: Rule precedence

  • Status: Accepted
  • Date: 2026-07-25
  • Deciders: El
  • Superseded in part by: ADR-0017 (the precedence chain is extended to six scopes — role and personal added between tenant and learned).

Context

Multiple rules fire at once and can conflict; learned behaviour must never override deliberate policy or safety guardrails.

Decision

Precedence, highest wins: system guardrails (locked in code) -> vertical template rules -> tenant authored rules -> learned rules. Learned never overrides authored; authored never overrides guardrails. Non-conflicting actions compose (all tags apply, all notifications send); single-valued clashes use a priority tiebreak. At runtime the brain loads authored rules (control plane, hard policy) and learned rules (tenant memory, soft guidance) and applies them in that order.

Consequences

Predictable behaviour; the system can get smarter over time without ever letting "it learned to do X" defeat "we said never do X"; requires the two-source load and ordered application.

Alternatives considered

  • Flat rule set — rejected: no way to protect guardrails.
  • Auto-promoting learned rules to authority — rejected: unsafe self-improvement.