The second distinction is about what is doing the checking.
Computational control
Also called Deterministic check
A check run by ordinary code, so the same input should give the same answer, usually within seconds. Type checkers, linters and tests are computational.
You can rely on the result and run it a thousand times a day, which is why you turn rules into code wherever a rule can be written as code. Reliable doesn't mean relevant, though: it answers the one question it was written to ask, and no other.
Say it to your agent
“Asking you nicely to use the logger isn't working. Write this as a lint rule that fails on console.log in src/, with an error message that names the logger to use.”