A classifier guardrail scoring a wire-transfer amount as "87% likely to be fraudulent" is a genuinely useful signal, and it is also the wrong tool for the actual requirement sitting right next to it: "never allow a transfer above $10,000 without a second human approval." That second requirement is not probabilistic at all — it is a fixed, known threshold with a fixed, known consequence, and running it through a classifier trained to output a confidence score adds latency, cost, and an unnecessary failure mode to a check that a single comparison operator handles perfectly and for free.
Rule-based guardrails are deterministic checks — regexes, allowlists, denylists, numeric thresholds, schema constraints — that produce the same output for the same input every single time, with zero training data and zero inference cost. The previous lesson built the case for classifiers precisely because rules cannot generalize past what they were explicitly written to catch; this lesson builds the opposite case, because the reflexive move toward the newer, fancier tool systematically undersells what a plain rule still does better, and getting this trade-off backwards is a common, expensive guardrail design mistake.
This lesson works through what rules are actually good at — exact-match policy boundaries, numeric limits, allowlists for anything with a fixed, enumerable set of safe values — the auditability advantage that comes from a rule being inspectable by a compliance reviewer with no ML background at all, and a decision framework for choosing between a rule and a classifier for a specific guardrail requirement before the next lesson combines both into one layered pipeline.