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.